/* AstroVuk / midnight glass. Instrument Sans + Fraunces are self-hosted. */
:root {
  --text: #f5f7fa; --text-70: rgba(245,247,250,.78); --text-50: rgba(245,247,250,.64);
  --glass: rgba(12,24,39,.32); --glass-soft: rgba(245,245,247,.035);
  --panel: var(--glass); --panel-2: var(--glass); --surface: var(--glass);
  --surface-raised: var(--glass-hover); --surface-soft: var(--glass-soft);
  --glass-border: rgba(235,243,255,.15); --glass-hover: rgba(255,255,255,.12);
  --radius-card: 24px; --radius-control: 9999px;
  --bone: var(--text); --bone-2: var(--text-70); --muted: var(--text-50);
  --line: var(--glass-border);
}
html { background: #07111e; }
body { background: transparent; }
body::before {
  content: ''; position: fixed; z-index: 0; inset: 0; pointer-events: none;
  background: linear-gradient(#071321,#102942 60%,#22425c);
}
.living-sky { position: fixed; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; }
.sky-noise { display: none; }
.auth-gate { background: transparent; }
.landing { max-width: 1180px; }
.landing-nav { padding-top: 30px; }
.landing-hero { position: relative; padding: 85px 0 90px; }
.landing-hero-mark { width: 72px; height: 72px; margin-bottom: 25px; }
.landing-hero h1 { font-size: clamp(52px,6.8vw,88px); letter-spacing: -2.5px; line-height: 1.07; }
.landing-hero h1 em { color: var(--text-70); }
.landing-lead { max-width: 550px; font-size: 18px; line-height: 1.7; }
.landing-kicker,.landing-eyebrow { color: var(--text-70); letter-spacing: .13em; }
.landing-hero::after {
  content: '☽'; position: absolute; right: 6%; top: 18%; font: 240px/1 var(--serif);
  color: rgba(229,240,255,.7); text-shadow: 0 0 100px rgba(220,238,255,.23);
  transform: rotate(-15deg); pointer-events: none;
}
.landing-section { padding: 36px 0 45px; border-color: var(--glass-border); }
.landing-section h2 { font-weight: 400; font-size: clamp(30px,3.5vw,44px); }
.landing-pillars li,.landing-trust li,.landing-signup {
  background: var(--glass); border: 1px solid var(--glass-border); border-radius: var(--radius-card);
  backdrop-filter: blur(22px); box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.landing-pillars { gap: 14px; }
.landing-pillars li { padding: 26px; }
.landing-pillars li p,.landing-trust li p { color: var(--text-70); }
.landing-signup { padding: 40px; max-width: 650px; margin: 30px auto 70px; }
.auth-gate-form { max-width: none; }
.auth-gate-form input { border-radius: 14px; background: rgba(2,10,20,.4); border-color: var(--glass-border); }
.landing .primary-cta,.primary-cta { border-radius: var(--radius-control); text-decoration: none; }
.landing-nav-cta { background: var(--glass-soft); }
.landing-sticky { border-radius: 22px; background: var(--glass); backdrop-filter: blur(22px); }
.rail { background: var(--glass); border: 1px solid var(--glass-border); border-radius: 24px; min-height: calc(100vh - 32px); margin: 16px 0 16px 16px; backdrop-filter: blur(12px); }
.rail-link { min-height: 42px; border-radius: 12px; color: var(--text-70); }
.rail-link span { color: var(--text-50); }
.rail-link.active,.rail-link:hover { background: var(--glass-hover); }
.saved>p,.person small { color: var(--text-50); }
.topbar { border: 0; background: transparent; gap: 12px; padding: 22px 30px; height: 90px; }
.crumb { margin-right: auto; }
.crumb>span { color: var(--text-50); }
.topbar .membership-pill,.topbar .location { display: none; }
.observatory-switch { display: flex; padding: 4px; border: 1px solid var(--glass-border); border-radius: 9999px; background: var(--glass); backdrop-filter: blur(18px); }
.observatory-switch button { border: 0; border-radius: 9999px; min-height: 38px; padding: 0 20px; background: transparent; color: var(--text-70); cursor: pointer; }
.observatory-switch button[aria-pressed='true'] { background: rgba(255,255,255,.15); color: var(--text); }
.observatory-search { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--glass-border); border-radius: 50%; background: var(--glass-soft); cursor: pointer; }
.observatory-search svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.account-access-bar { margin: -10px 30px 10px; }
.desktop-surface { background: transparent; }
.desktop-workspace { grid-template-columns: minmax(0,1fr) 325px; gap: 18px; padding-right: 28px; }
.chart-column { padding-right: 0; }
.inspector { align-self: start; margin-top: 74px; }
:is(.chart-hero,.inspector,.time-ribbon,.day-editorial,.focus-card,.horizon-panel,.calendar-grid,.calendar-insight,.transit-detail,.year-river,.sky-observatory,.ephemeris,.soul-story,.soul-vuk-reading,.relationship-reading,.synastry-stage,.compass-stage,.compass-reading,.journal-detail,.journal-list,.bio-instrument,.bio-reading,.vuk-context-rail,.vuk-answer-card,.regression-result,.regression-form-panel,.natal-reading-book,.natal-reading-margin) {
  background: var(--glass) !important; border: 1px solid var(--glass-border); border-radius: var(--radius-card);
  backdrop-filter: blur(22px); box-shadow: 0 12px 40px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.035);
}
.chart-caption h1 em { color: var(--text-70); }
.inspector { padding: 26px; }
.mode-tabs,.desktop-vuk-followups button,.vuk-depth button { background: var(--glass-soft); border-color: var(--glass-border); }
.desktop-vuk-layout { gap: 24px; }
.vuk-context-rail { padding: 24px; }
.vuk-dialogue-stage { background: transparent; }
.desktop-vuk-composer { background: var(--glass) !important; border: 1px solid var(--glass-border); border-radius: 28px; backdrop-filter: blur(24px); box-shadow: 0 10px 40px rgba(0,0,0,.22); }
.desktop-vuk-composer textarea { background: transparent; border: 0; font: 16px/1.5 var(--sans); }
.desktop-vuk-composer>small { color: var(--text-50); font-size: 12px; }
.vuk-answer-card :is(.vuk-story,.vuk-agency) { background: transparent; }
.observatory-clock { display: flex; gap: 18px; align-items: baseline; margin-bottom: 16px; color: var(--text-70); }
.observatory-clock time { font: 400 clamp(44px,5vw,72px)/1 var(--sans); font-variant-numeric: tabular-nums; letter-spacing: -3px; color: var(--text); }
.observatory-clock span { font-size: 15px; }
.desktop-page-head h1 { font-weight: 400; }
.account-dialog { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; border-radius: 0; background: rgba(8,17,29,.94); }
.account-shell { background: transparent; max-width: 1040px; margin: auto; min-height: 100dvh; }
.account-layout { padding-top: 55px; }
.account-card,.account-privacy { background: var(--glass); border-color: var(--glass-border); border-radius: 24px; }
.account-story h1 { font-weight: 400; }
.account-settings { display: grid; gap: 0; margin-top: 26px; border-top: 1px solid var(--glass-border); }
.account-settings button { display: flex; justify-content: space-between; padding: 18px 0; min-height: 52px; color: var(--text-70); background: transparent; border: 0; border-bottom: 1px solid var(--glass-border); text-align: left; cursor: pointer; }
.account-settings button:hover { color: var(--text); }
.account-settings [data-delete] { color: var(--text); }
.account-settings button:disabled { opacity: .4; cursor: default; }
.deletion-dialog { width: min(560px,calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: clamp(24px,5vw,40px); border: 1px solid var(--glass-border); border-radius: 24px; background: var(--glass); color: var(--text); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.deletion-dialog h2 { font-family: Fraunces,serif; font-size: clamp(28px,5vw,40px); font-weight: 400; margin: 16px 0; overflow-wrap: anywhere; }
.deletion-dialog p { font-size: 14px; line-height: 1.7; color: var(--text-70); }
.deletion-dialog .deletion-kicker { font: 11px 'JetBrains Mono',monospace; letter-spacing: .08em; }
.deletion-dialog .deletion-copies { font-size: 12px; color: var(--text-50); margin: 16px 0 24px; }
.deletion-dialog label { display: block; margin-top: 18px; font-size: 13px; color: var(--text-70); }
.deletion-dialog label[hidden] { display: none; }
.deletion-dialog strong { color: var(--text); font-weight: 600; }
.deletion-dialog input { display: block; box-sizing: border-box; width: 100%; padding: 14px; margin-top: 10px; border: 1px solid var(--glass-border); border-radius: 12px; color: var(--text); background: var(--glass-soft); font: inherit; }
.deletion-dialog footer { display: flex; gap: 12px; justify-content: flex-end; margin-top: 28px; }
.deletion-dialog footer button { min-height: 44px; padding: 12px 20px; border: 1px solid var(--glass-border); border-radius: 9999px; color: var(--text); background: var(--glass-soft); cursor: pointer; }
.deletion-dialog [type=submit] { background: var(--glass-hover); }
.deletion-dialog button:disabled { opacity: .4; cursor: default; }
.deletion-dialog .deletion-error { color: var(--text); border-left: 2px solid currentColor; padding-left: 12px; }
.account-close { min-width: 44px; min-height: 44px; }
.search-dialog { width: min(580px,calc(100vw - 32px)); max-height: min(660px,calc(100dvh - 40px)); padding: 0; background: rgba(15,25,39,.96); color: var(--text); border: 1px solid var(--glass-border); border-radius: 24px; box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.search-dialog::backdrop { background: rgba(2,8,16,.55); backdrop-filter: blur(12px); }
.search-dialog header { display: flex; align-items: center; gap: 16px; padding: 22px 24px; border-bottom: 1px solid var(--glass-border); }
.search-dialog label { flex: 1; display: grid; gap: 10px; font-size: 13px; color: var(--text-70); }
.search-dialog input { width: 100%; border: 0; background: transparent; color: var(--text); font: 20px var(--sans); outline-offset: 8px; }
.search-dialog header button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--glass-border); color: inherit; background: transparent; cursor: pointer; }
.search-results { display: grid; gap: 5px; padding: 12px; max-height: 420px; overflow: auto; }
.search-results button { display: flex; align-items: center; gap: 16px; min-height: 56px; padding: 12px 16px; border: 0; border-radius: 14px; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.search-results button:hover,.search-results button:focus-visible { background: var(--glass-hover); }
.search-results button>span { color: var(--text-70); font-size: 24px; width: 30px; }
.search-results button b { font-weight: 400; }
.search-results button small { display: block; margin-top: 4px; color: var(--text-50); font-size: 13px; }
.search-empty { margin: 20px; color: var(--text-70); }
.search-dialog footer { border-top: 1px solid var(--glass-border); padding: 16px 24px; color: var(--text-50); font-size: 12px; }


body.light {
  --text: #172b40; --text-70: rgba(23,43,64,.92); --text-50: rgba(23,43,64,.85);
  --glass: rgba(224,240,251,.16); --glass-soft: rgba(224,240,251,.045);
  --glass-border: rgba(37,60,85,.18); --glass-hover: rgba(30,55,80,.09);
  --panel: var(--glass); --panel-2: var(--glass); --surface: var(--glass);
  --surface-raised: var(--glass-hover); --surface-soft: var(--glass-soft);
  --bone: var(--text); --bone-2: var(--text-70); --muted: var(--text-50); --line: var(--glass-border);
}
html.light { background: #e6edf5; }
body.light { background: transparent; }
body.light::before { background: linear-gradient(#589cd0,#9fc9e5 60%,#e3ecf1); }
.light :is(.app-shell,.main-stage,.desktop-surface,.mobile-screen) { background: transparent; }
.light .auth-gate { background: transparent; }
.light .rail { background: var(--glass); }
.light .topbar { background: transparent; }
.light .landing-hero::after { color: rgba(50,80,110,.45); }
.light .landing-signup,.light .search-dialog { background: var(--glass); }
.light .auth-gate-form input { background: var(--glass-soft); }
.light .account-dialog { background: var(--glass); }
.light .account-shell { background: transparent; }
.light .observatory-switch button[aria-pressed='true'] { background: rgba(25,55,85,.1); }
@media (max-width: 1100px) and (min-width: 701px) {
  .topbar { padding-inline: 24px; }
  .observatory-switch button { padding-inline: 14px; }
  .desktop-workspace { grid-template-columns: minmax(0,1fr) 290px; }
  .chart-caption h1 { font-size: 29px; }
  .chart-hero { min-height: 530px; }
  .chart-mount { max-width: 100%; }
}
@media (max-width: 700px) {
  .landing { padding-inline: 22px; }
  .landing-nav { padding-top: 22px; }
  .landing-hero { padding: 60px 0 50px; }
  .landing-hero h1 { font-size: 54px; letter-spacing: -1.7px; }
  .landing-hero::after { font-size: 125px; right: -5px; top: 45px; opacity: .5; }
  .landing-lead { font-size: 16px; }
  .landing-signup { padding: 26px 22px; }
  .landing-pillars li { padding: 21px; }
  .topbar { height: 74px; padding: 14px 18px; gap: 10px; background: rgba(9,19,33,.52); backdrop-filter: blur(20px); }
  .topbar .observatory-switch { display: none; }
  .topbar .observatory-search { margin-left: auto; }
  .topbar .language-open { display: none; }
  .topbar .profile { margin-left: 0; }
  .mobile-screen { background: transparent; }
  :is(.today-signal,.today-focus,.mobile-card-hero,.selected-day,.mobile-ephemeris,.mobile-sky-map,.mobile-bio-stage,.mobile-bio-reading,.message.assistant,.mobile-journal-card,.relationship-mobile-reading,.mobile-compass-reading) {
    background: var(--glass) !important; border-color: var(--glass-border); border-radius: 24px; backdrop-filter: blur(18px);
  }
  .bottom-nav { background: rgba(10,21,36,.88); border: 1px solid var(--glass-border); border-radius: 24px; margin: 0 12px 12px; width: calc(100% - 24px); padding-bottom: max(8px,env(safe-area-inset-bottom)); backdrop-filter: blur(24px); }
  .light .bottom-nav { background: rgba(249,252,255,.9); }
  .vuk-composer { background: var(--glass) !important; backdrop-filter: blur(24px); border-radius: 24px 24px 0 0; }
  .account-dialog { inset: 0; max-height: none; height: 100dvh; border-radius: 0; }
  .account-layout { padding: 30px 22px; }
  .account-shell>header { background: transparent; }
  .observatory-clock { gap: 12px; margin: 15px 0 20px; }
  .observatory-clock time { font-size: 48px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; }
}

/* Fluid page grids keep the same composition on smaller desktop windows. */
.profile.profile-labelled { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 13px; border-radius: 9999px; background: var(--glass-soft); color: var(--text-70); white-space: nowrap; }
.sky-layout,.desktop-calendar-layout { grid-template-columns: minmax(0,1fr) 340px; }
.today-grid { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
:is(.sky-layout,.desktop-calendar-layout,.today-grid,.relationship-layout,.timeline-layout,.journal-layout,.bio-layout)>* { min-width: 0; }
:is(.horizon-dome,.mobile-horizon,.month-board,.soul-axis-card,.compass-map,.compass-question-panel,.journal-summary,.bio-chart,.regression-form,.natal-toc,.vuk-thread-map) { background: var(--glass) !important; border: 1px solid var(--glass-border); border-radius: 24px; backdrop-filter: blur(22px); }
.horizon-dome { min-height: 580px; }
:is(.sky-clock small,.sky-clock span,.ephemeris-head,.ephemeris-row .position,.ephemeris-row .speed,.ephemeris-row .altitude,.dome-caption span,.sky-body small,.mini-body small,.mobile-horizon-copy p,.trust-note,.day-editorial p,.focus-card p) { color: var(--text-70); }
.horizon-panel { padding: 22px; }
.account-settings [data-access-signout] { border-radius: 0; margin: 0; font: inherit; background: transparent; }
html:has(body.light) { background: #e6edf5; }
body.light :is(.timeline-page,.journal-page,.compass-page,.relationship-page,.soul-page,.desktop-today,.desktop-calendar-page,.desktop-sky-page) { background: transparent !important; }
@media(min-width:701px) and (max-width:1250px) {
  .sky-layout,.desktop-calendar-layout,.relationship-layout,.timeline-layout,.journal-layout,.bio-layout { grid-template-columns: 1fr; }
  .desktop-workspace { grid-template-columns: 1fr; padding: 0 28px 32px; }
  .chart-column { padding: 0; }
  .inspector { margin-top: 0; }
  .desktop-vuk-layout,.natal-reading-layout,.regression-layout { grid-template-columns: minmax(0,1fr); }
  .vuk-context-rail,.natal-toc { position: static; }
  .vuk-context-rail { display: none; }
  .natal-toc nav { display: flex; gap: 4px; overflow: auto; }
  .natal-toc nav button { flex: 0 0 auto; }
  .soul-layout,.compass-layout { grid-template-columns: minmax(0,1fr); }
  .topbar { gap: 10px; padding-inline: 22px; }
  .language-open { margin-left: 0; }
  .profile.profile-labelled { margin-left: 0; min-width: 42px; }
  .today-grid { grid-template-columns: 1fr; }
}
@media(min-width:701px) and (max-width:860px) {
  .topbar .observatory-switch { display: none; }
  .desktop-page-head { flex-wrap: wrap; gap: 20px; }
}

.birth-form .legacy-import { margin-top: 20px; padding: 12px 16px; border: 1px solid var(--glass-border); border-radius: 9999px; background: var(--glass-soft); color: var(--text-70); cursor: pointer; }

.sky-body[hidden] { display: none; }
.sky-body { cursor: pointer; }
.sky-body:focus-visible { outline: 2px solid var(--text-70); outline-offset: 7px; border-radius: 9999px; }

.desktop-today .desktop-page-head h1 em { margin-left: .16em; }
.empty-observatory { display: none; margin: 45px auto; max-width: 720px; padding: clamp(28px,5vw,64px); border: 1px solid var(--glass-border); border-radius: 24px; background: var(--glass); backdrop-filter: blur(22px); }
.empty-observatory>span { font: 40px var(--serif); color: var(--text-70); }
.empty-observatory h1 { font: 400 clamp(38px,5vw,64px)/1.1 var(--serif); margin: 28px 0; }
.empty-observatory p { color: var(--text-70); line-height: 1.7; }
.empty-observatory .primary-cta { padding: 14px 24px; }
.profile-empty .empty-observatory { display: block; }
.profile-empty :is(.desktop-surface,.desktop-surface.active,.mobile-screen,.mobile-screen.active,.bottom-nav) { display: none !important; }
@media(max-width:700px) { .empty-observatory { margin: 30px 18px; } }

/* One glass treatment in both themes, including legacy nested reading panels. */
:root body :is(.desktop-vuk-page,.natal-reading-page,.regression-page,.biorhythm-page,.timeline-page,.journal-page,.compass-page,.relationship-page,.soul-page,.desktop-today,.desktop-calendar-page,.desktop-sky-page,.vuk-dialogue-stage,.account-shell) {
  background: transparent !important;
}
:root body :is(.chart-hero,.inspector,.time-ribbon,.day-editorial,.focus-card,.horizon-panel,.calendar-grid,.calendar-insight,.transit-detail,.year-river,.horizon-dome,.sky-observatory,.ephemeris,.soul-story,.soul-vuk-reading,.relationship-reading,.synastry-stage,.compass-stage,.compass-reading,.journal-detail,.journal-ledger,.journal-list,.bio-instrument,.bio-reading,.vuk-context-rail,.vuk-answer-card,.regression-result,.regression-input-panel,.regression-method,.natal-reading-book,.natal-reading-margin,.month-board,.soul-axis-card,.compass-map,.compass-question-panel,.journal-summary,.bio-chart,.regression-form,.natal-toc,.vuk-thread-map,.account-card,.account-privacy,.birth-form,.accuracy-choices>button,.reveal-insight,.landing-pillars li,.landing-trust li,.landing-signup,.empty-observatory,
  .today-signal,.today-focus,.mobile-card-hero,.mobile-wheel-wrap,.month-climate,.for-you,.mobile-placement,.selected-day,.mobile-ephemeris,.mobile-sky-map,.mobile-horizon,.mobile-synastry-stage,.relationship-lead,.relationship-mobile-reading,.relationship-vuk,.year-weather,.mobile-transit-detail,.mobile-journal-entry,.journal-mobile-insight,.mobile-journal-card,.mobile-compass-entry,.mobile-compass-question,.mobile-compass-orbit,.mobile-compass-guidance,.mobile-compass-reading,.mobile-soul-entry,.mobile-soul-axis,.mobile-soul-reading,.mobile-reading-opening,.mobile-natal-chapter,.mobile-natal-chapter[open],.mobile-reading-vuk,.mobile-regression-entry,.mobile-regression-intro,.mobile-regression-form,.mobile-regression-result,.mobile-bio-entry,.mobile-bio-date,.mobile-bio-stage,.mobile-bio-reading,.message.assistant,.vuk-welcome,.vuk-decision-brief,.desktop-vuk-composer,.vuk-composer,.bottom-nav,.landing-sticky) {
  background: var(--glass) !important; border-color: var(--glass-border) !important;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
:root body :is(.natal-reading-opening,.natal-reading-margin>section,.mobile-natal-body>section,.journal-detail>section,.vuk-dialogue-head,.vuk-story,.vuk-agency,.vuk-evidence,.vuk-trust,.vuk-memory,.vuk-context,.vuk-honesty,.vuk-regression-tease,.domain-reading,.mobile-domain-reading,.soul-boundary,.soul-chapter-copy,.soul-now,.soul-evidence,.soul-question,.mobile-soul-now,.compass-agency,.compass-plan,.in-your-hands,.natal-chapter-evidence,.journal-sky-context,.regression-definition,.regression-demo-note,.regression-verdict,.regression-gap,.regression-honesty,.bio-next,.mobile-bio-values article,.coordinate-details,.reminder-event,.privacy-row,.account-conflict,.connected-identity,.birth-trust,.reveal-facts>span) {
  background: var(--glass-soft) !important; border-color: var(--glass-border) !important;
}
:root body :is(.natal-reading-vuk,.natal-reading-margin>.ask-vuk,.inspector>.ask-vuk,.pair-person,.domain-tabs,.domain-tabs button.active,.decision-orbit>div,.soul-node>i,.soul-thread span,.bio-date-control>button,.sky-aspects span,.sky-trust,.sky-body i,.mini-body i,.mobile-ephemeris-row>i,.mode-tabs,.mode.active,.quiet-cta,.suggestions button,.desktop-vuk-followups button,.timeline-event,.journal-entry,.compass-window-list>button,.mobile-compass-windows>button,.soul-chapters button,.mobile-soul-chapters>button,.mobile-reading-index button,.vuk-depth button,.calendar-grid .cal-day,.account-provider,.account-sync,.vuk-history-item,.vuk-feedback-reasons button) {
  background: var(--glass-soft) !important; border-color: var(--glass-border) !important;
}
:root body :is(.rail-link.active,.person.active,.mode.active,.domain-tabs button.active,.timeline-event.active,.timeline-event:hover,.journal-entry.active,.compass-window-list>button.active,.mobile-compass-windows>button.active,.soul-chapters button.active,.mobile-soul-chapters>button.active,.mobile-reading-index button.active,.vuk-depth button.active,.vuk-context-rail section button.active,.vuk-turn.user-turn,.calendar-grid .cal-day.supportive,.calendar-grid .cal-day.prepare,.calendar-grid .cal-day.selected,.vuk-history-item.active,.vuk-feedback-reasons button.selected) {
  background: var(--glass-hover) !important;
}
:root body :is(.account-dialog,.search-dialog,.person-dialog,.journal-dialog,.reminder-dialog,.vuk-sheet,.sky-body-dialog,.vuk-history-dialog,.vuk-feedback-dialog,.birth-date-picker,.membership-dialog,.mobile-observatory-menu,.onboarding) {
  background: var(--glass) !important; color: var(--text);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
:root body dialog::backdrop { background: rgba(6,17,30,.16); backdrop-filter: blur(4px); }
:root body :is(.account-shell>header,.mobile-observatory-menu>header,.auth-gate-form input,.birth-form input,#accountEmailForm input,.vuk-sheet textarea,.regression-input-panel input,.regression-input-panel textarea,.mobile-regression-form input,.mobile-regression-form textarea,.journal-field textarea,.vuk-feedback-dialog textarea) {
  background-color: var(--glass-soft) !important; background-image: none; color: var(--text) !important;
}
:root body :is(.natal-reading-opening h2,.natal-signature b,.natal-chapter-body p,.natal-reading-opening blockquote,.natal-reading-margin>p,.natal-chapter-evidence article small,.mobile-reading-opening>p,.mobile-natal-body p,.mobile-natal-body article small,.vuk-story p,.vuk-agency p) { color: var(--text-70); }
:root body :is(.natal-reading-opening h2,.natal-signature b) { color: var(--text); }
:root body :is(.natal-toc nav button,.natal-toc nav button>span,.natal-signature small,.natal-signature em,.natal-chapter-evidence>small,.mobile-natal-signature small,.mobile-natal-signature em) { color: var(--text-50); }
:root body .natal-toc nav button.active { color: var(--text); }
:root body .chart-mount .planet circle { fill: var(--glass); }
:root body .chart-mount .planet.selected circle { fill: var(--glass-hover); }
:root { color-scheme: dark; }
html:has(body.light) { color-scheme: light; }
* { scrollbar-color: var(--glass-border) transparent; scrollbar-width: thin; }
*::-webkit-scrollbar { width: 6px; height: 6px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: var(--glass-border); border-radius: 9999px; }
:root body .app-update { background: var(--glass); backdrop-filter: blur(12px); }
:root body :is(.desktop-calendar-grid .cal-day,.regression-vuk) { background: var(--glass-soft) !important; }
:root body :is(.desktop-calendar-grid .cal-day.supportive,.desktop-calendar-grid .cal-day.prepare,.desktop-calendar-grid .cal-day.selected) { background: var(--glass-hover) !important; }
:root body :is(.mobile-domain-tabs button,.mobile-transit-detail>section,.mobile-menu-profile>button,.mobile-menu-group button) { background: var(--glass-soft) !important; border-color: var(--glass-border); }
:root body :is(.mobile-domain-tabs button.active,.mobile-menu-group button.active,.mobile-menu-group button:active) { background: var(--glass-hover) !important; }
body.light .mobile-screen :is(.mobile-natal-body>section,.mobile-domain-reading,.mobile-bio-values article) { background: var(--glass-soft) !important; }
body.light :is(.rail-link,.rail-link span,.rail-link.active span,.observatory-search,.language-open,.natal-reading-head>div>p,.natal-reading-opening>p,.natal-reading-margin>small,.natal-reading-margin section small,.natal-reading-margin section p,.natal-reading-progress small,.natal-reading-method) { color: var(--text-70); }

/* Shared transparent instrument surfaces and restrained neutral accents. */
:root body .chart-mount :is(.wheel-center,.syn-center) { fill: transparent; stroke: var(--glass-border); }
:root body .synastry-wheel .syn-center { fill: transparent; stroke: var(--glass-border); }
:root body .chart-mount :is(.center-title,.syn-center-a,.syn-center-b) { fill: var(--text); }
:root body .chart-mount .center-sub { fill: var(--text-70); }
:root body :is(#desktopVukSend,#vukSend) {
  width: 36px; height: 36px; min-width: 36px; min-height: 36px; max-height: 36px;
  position: relative; padding: 0; align-self: start; justify-self: end; flex: 0 0 36px;
  display: grid; place-items: center; border: 1px solid var(--glass-border);
  border-radius: 50%; background: var(--glass-hover); color: var(--text);
  font: 18px/1 var(--sans); cursor: pointer;
}
:root body :is(#desktopVukSend,#vukSend):hover { background: var(--glass-soft); border-color: var(--text-50); }
:root body :is(#desktopVukSend,#vukSend)::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; }
:root body :is(.regression-head h1 em,.mobile-regression-intro h2 em) { color: var(--text-70); }
:root body :is(.regression-head>div:first-child>p,.regression-input-panel>small,.regression-method>small,.regression-definition>span,.regression-demo-note>i) { color: var(--text-50); }
:root body :is(.regression-input-panel fieldset button,.mobile-regression-form>div button) { color: var(--text-70); border-color: var(--glass-border); }
:root body :is(.regression-input-panel fieldset button.active,.mobile-regression-form>div button.active) { color: var(--text); background: var(--glass-hover); border-color: var(--text-50); }
:root body .regression-run { color: var(--text); background: var(--glass-hover); border: 1px solid var(--glass-border); border-radius: 12px; }
:root body .regression-run:hover { border-color: var(--text-50); }
:root body :is(.regression-page,.mobile-regression-screen) :is(p,small,label,legend,em) { color: var(--text-70); }
:root body :is(.regression-page,.mobile-regression-screen) :is(h1,h2,h3,b,strong) { color: var(--text); }

.calendar-navigation { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 22px; }
.calendar-view-toggle { display: flex; padding: 4px; border: 1px solid var(--glass-border); border-radius: 999px; background: var(--glass-soft); }
.calendar-view-toggle button { border: 0; border-radius: 999px; padding: 10px 16px; color: var(--text-70); background: transparent; cursor: pointer; }
.calendar-view-toggle button.active { background: var(--glass-hover); color: var(--text); }
.calendar-period { display: flex; align-items: center; gap: 10px; }
.calendar-period>button { width: 36px; height: 36px; padding: 0; border: 1px solid var(--glass-border); border-radius: 50%; background: var(--glass-soft); color: var(--text); cursor: pointer; }
.calendar-period>button:disabled { opacity: .3; cursor: default; }
.calendar-period label { display: grid; gap: 5px; font: 10px var(--mono); color: var(--text-50); }
.calendar-period label[hidden] { display: none; }
.calendar-period select,.calendar-period .glass-select-trigger { min-width: 88px; color: var(--text); }
.calendar-period label[data-calendar-month-label] :is(select,.glass-select-trigger) { min-width: 130px; }
.calendar-year-content { display: none; }
[data-calendar-view="year"] .calendar-year-content { display: block; }
[data-calendar-view="year"] .calendar-month-content,[data-calendar-view="year"] .desktop-filter { display: none; }
.calendar-year-note { margin: 0 0 20px; color: var(--text-70); font-size: 13px; line-height: 1.6; }
.calendar-year-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.calendar-mini-month { padding: 18px; border: 1px solid var(--glass-border); border-radius: 24px; background: var(--glass); backdrop-filter: blur(10px); }
.calendar-month-open { margin: 0 0 16px; padding: 0; border: 0; background: transparent; color: var(--text); font: 24px var(--serif); cursor: pointer; }
.calendar-month-open:hover { color: var(--text-70); }
.calendar-mini-weekdays,.calendar-mini-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; text-align: center; }
.calendar-mini-weekdays { margin-bottom: 8px; color: var(--text-50); font: 10px var(--mono); }
.calendar-mini-days button { width: 100%; min-height: 32px; padding: 5px 0; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--text-70); font-size: 12px; cursor: pointer; }
.calendar-mini-days button:hover,.calendar-mini-days button.is-today { background: var(--glass-hover); border-color: var(--glass-border); color: var(--text); }
.calendar-navigation :focus-visible,.calendar-year-grid :focus-visible { outline: 2px solid var(--text-50); outline-offset: 3px; }
.calendar-month-content.is-loading { opacity: .5; pointer-events: none; }
.calendar-error { grid-column: 1/-1; color: var(--text-70); }
.calendar-month-content :is(h2,h3,.cal-day,.score-ring strong,.climate-score) { color: var(--text); }
.calendar-month-content :is(p,small,.cal-day>small,.calendar-weekdays span,.micro-signals span,.micro-signals b,.calendar-legend,.selected-date small) { color: var(--text-70); }
:root body :is(.desktop-calendar-grid .cal-day,.calendar-grid .cal-day) { color: var(--text-70) !important; border-color: var(--glass-border) !important; }
:root body :is(.desktop-calendar-grid .cal-day.selected,.calendar-grid .cal-day.selected) { color: var(--text) !important; border-color: var(--text-50) !important; }
.calendar-retry { display: block; margin-top: 12px; padding: 10px 16px; border: 1px solid var(--glass-border); border-radius: 999px; background: var(--glass-hover); color: var(--text); cursor: pointer; }
@media(min-width:701px) and (max-width:1100px) { .calendar-year-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
  .calendar-navigation { gap: 14px; margin-bottom: 18px; }
  .calendar-period { width: 100%; justify-content: space-between; gap: 6px; }
  .calendar-period label[data-calendar-month-label] :is(select,.glass-select-trigger) { min-width: 118px; }
  .calendar-year-grid { grid-template-columns: 1fr; gap: 14px; }
  .calendar-mini-month { padding: 20px; }
  .calendar-mini-days button { min-height: 40px; }
}
