.portal-modal-open{overflow:hidden}.portal-form{display:grid;gap:15px;margin-top:22px}.portal-fields{display:grid;gap:14px}.portal-form label,.portal-fields label{display:grid;gap:7px;font-weight:700;color:var(--ink)}.portal-form input,.portal-form select{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}.portal-form-error{padding:10px;border-radius:8px;background:#fff0eb;color:#9b3d27}.portal-field-help{color:var(--muted);font-size:12px;line-height:1.5}.portal-place-field{position:relative}.portal-place-results{position:absolute;z-index:10;top:100%;left:0;right:0;max-height:235px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.portal-place-option{display:block;width:100%;padding:11px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.portal-place-option:hover,.portal-place-option:focus{background:var(--surface-2)}.place-search-results button{display:block;width:100%;padding:10px;border:0;background:var(--surface);text-align:left;cursor:pointer}.portal-result-heading{text-align:center;margin:38px auto 22px}.portal-result-heading h1{font-family:var(--serif);font-size:34px}.portal-result-heading p{color:var(--muted)}.portal-result-wheel{max-width:850px;margin:auto}.portal-result-wheel svg{display:block;width:100%;height:auto}.portal-result-table,.portal-aspect-list,.portal-result-subhead,.portal-result-note{max-width:950px;margin:24px auto}.portal-result-table{width:calc(100% - 40px)}.portal-aspect-list{padding-left:35px;line-height:1.7}.portal-result-note{padding:15px;border-radius:8px;background:var(--surface)}.portal-sky-day{padding:8px 12px;border-bottom:1px solid var(--line)}.person-actions{flex-wrap:wrap}.person-actions .text-button{min-width:100%;text-align:left}.calculation-modal .portal-form,.account-modal .portal-form{max-width:650px}.calculation-modal,.account-modal{overflow-y:auto;max-height:calc(100vh - 32px)}
.catalog-intro-actions,.catalog-toolbar .filter-button,.catalog-summary .sort-button,.category-tabs{display:none!important}
#save-result[hidden]{display:none!important}.result-header:has(#save-result[hidden]){grid-template-columns:1fr auto}
.quick-calculator-account[hidden]{display:none!important}
.toast span{background:#47768c}
.portal-result-wheel svg{min-width:0;max-width:100%}
.portal-wheel-controls{display:flex;justify-content:center;align-items:center;gap:8px;margin:8px auto 12px}
.portal-wheel-controls button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.portal-wheel-controls button:disabled{opacity:.45;cursor:default}
.portal-wheel-controls .portal-wheel-reset{min-width:76px;font-size:13px}
.portal-wheel-canvas{width:100%}
.portal-wheel-canvas:focus-visible{outline:2px solid var(--accent,#b78238);outline-offset:2px}
.portal-wheel-canvas .portal-program-light-wheel{width:calc(100% * var(--portal-wheel-zoom,1));max-width:none;height:auto;margin-inline:auto}
.portal-wheel-canvas.is-zoomed{max-height:min(75dvh,850px);overflow:auto;overscroll-behavior:contain}
.portal-result-house-system{text-align:center;color:var(--muted);font-size:13px;margin:-12px auto 18px}
.current-sky-chart .portal-program-light-wheel{display:block;width:100%;height:auto;max-height:680px}
.portal-result-table-wrap{max-width:950px;margin:24px auto;overflow-x:auto}
.portal-result-table-wrap .portal-result-table{width:100%;min-width:600px;margin:0}
@media(max-width:1100px){
  .mobile-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.portal-reading-open .mobile-nav{display:none!important}
  body.portal-reading-open #result-view{bottom:0;padding-bottom:env(safe-area-inset-bottom)}
  .portal-result-wheel{width:100%;padding-inline:clamp(8px,2vw,18px)}
  .portal-wheel-canvas .portal-program-light-wheel{width:calc(min(100%,max(160px,100dvh - 245px)) * var(--portal-wheel-zoom,1))}
  .portal-wheel-canvas.is-zoomed{max-height:min(70dvh,650px)}
}
.portal-site-footer { border-top: 1px solid #dedbd3; background: #fff; color: #70808c; }
.portal-site-footer .wrap { width: auto; max-width: 1480px; margin-inline: auto; padding: 24px clamp(22px, 3vw, 44px); }
.portal-site-footer .copyright { font-size: 12px; }
@media (max-width: 1100px) {
  .portal-site-footer .wrap { padding-bottom: calc(24px + 74px + env(safe-area-inset-bottom)); }
}
