:root{
  --bg:#EEEDF3; --surface:#FBFAFD; --surface-2:#F3F1F8; --line:#D9D5E4; --line-2:#C5BFD6;
  --ink:#1D1A2B; --ink-2:#4F4A63; --ink-3:#817B96;
  --accent:#4A3F9A; --accent-soft:#E5E1F6; --accent-ink:#FFFFFF;
  --gold:#A87A1E;
  --fire:#C4553E; --earth:#5E8636; --air:#B8901C; --water:#2F6FA3;
  --fire-t:#F6E3DE; --earth-t:#E4EDDA; --air-t:#F4ECD3; --water-t:#DCE8F3;
  --harm:#2F6FA3; --tense:#C4413A; --conj:#A87A1E; --minor:#8C86A0;
  --ok:#2E7D4F; --ok-t:#DDF0E4; --warn:#9A6A00; --warn-t:#F7ECCF; --danger:#B3352E; --danger-t:#F8DEDB;
  --wheel-bg:#FFFFFF;
  --f-display:"Forum",Georgia,serif;
  --f-body:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --f-sym:"Noto Sans Symbols","Noto Sans Symbols 2","Segoe UI Symbol","Apple Symbols",sans-serif;
  --r:10px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root[data-theme="auto"]{
    color-scheme:dark;
    --bg:#14121C; --surface:#1C1927; --surface-2:#231F31; --line:#332E45; --line-2:#443E5A;
    --ink:#ECE9F5; --ink-2:#B9B3CC; --ink-3:#8A849E;
    --accent:#A99CFF; --accent-soft:#2E2850; --accent-ink:#14121C;
    --gold:#E0B04E;
    --fire:#E77A62; --earth:#8DBA5E; --air:#E0BE4F; --water:#6BA7DA;
    --fire-t:#3A2320; --earth-t:#243020; --air-t:#352E18; --water-t:#1C2A3A;
    --harm:#6BA7DA; --tense:#EE6F66; --conj:#E0B04E; --minor:#7E7894;
    --ok:#6FCB94; --ok-t:#1D3326; --warn:#E6C067; --warn-t:#3A3018; --danger:#F08A82; --danger-t:#3E2020;
    --wheel-bg:#191623;
  }
}
/* ---- theme "night sky" ---- */
:root[data-theme="astro"]{
  color-scheme:dark;
  --bg:#090B1A; --surface:rgba(20,22,46,.82); --surface-2:rgba(36,38,74,.62); --line:rgba(168,158,230,.17); --line-2:rgba(178,168,240,.3);
  --ink:#EEEAF8; --ink-2:#BFB9DC; --ink-3:#8E89B2;
  --accent:#E3BA5C; --accent-soft:rgba(227,186,92,.15); --accent-ink:#17122A;
  --gold:#E8C46E;
  --fire:#F2836A; --earth:#9CC870; --air:#EACB63; --water:#72B6EE;
  --fire-t:rgba(242,131,106,.15); --earth-t:rgba(156,200,112,.14); --air-t:rgba(234,203,99,.14); --water-t:rgba(114,182,238,.15);
  --harm:#78B8F0; --tense:#F2766C; --conj:#E8C46E; --minor:#9C96BE;
  --ok:#74CF98; --ok-t:rgba(116,207,152,.14); --warn:#E9C46A; --warn-t:rgba(233,196,106,.14); --danger:#F48C84; --danger-t:rgba(244,140,132,.14);
  --wheel-bg:#0E1130;
  --f-display:"Cormorant Garamond","Forum",Georgia,serif;
}
:root[data-theme="astro"] body{
  background:
    radial-gradient(1px 1px at 12% 18%,rgba(255,255,255,.75) 50%,transparent 51%),
    radial-gradient(1px 1px at 72% 12%,rgba(255,255,255,.6) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 38% 64%,rgba(255,244,214,.7) 50%,transparent 51%),
    radial-gradient(1px 1px at 88% 44%,rgba(255,255,255,.55) 50%,transparent 51%),
    radial-gradient(1px 1px at 55% 88%,rgba(255,255,255,.5) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 22% 80%,rgba(210,220,255,.6) 50%,transparent 51%),
    radial-gradient(1px 1px at 94% 82%,rgba(255,255,255,.45) 50%,transparent 51%),
    radial-gradient(1px 1px at 5% 50%,rgba(255,255,255,.5) 50%,transparent 51%),
    radial-gradient(ellipse 60% 45% at 85% 0%,rgba(96,70,180,.28),transparent 70%),
    radial-gradient(ellipse 55% 40% at 0% 100%,rgba(40,90,170,.22),transparent 70%),
    linear-gradient(180deg,#0B0E22 0%,#090B1A 60%,#07081389 100%);
  background-color:#090B1A;
  background-size:420px 420px,520px 520px,610px 610px,470px 470px,560px 560px,650px 650px,390px 390px,730px 730px,100% 100%,100% 100%,100% 100%;
  background-attachment:fixed;
}
:root:is([data-theme="astro"],[data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .panel{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 18px 40px rgba(0,0,0,.25)}
:root[data-theme="astro"] .brand h1{background:linear-gradient(90deg,#F3D78E,#E3BA5C 45%,#C9A0FF);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500;font-size:30px}
:root[data-theme="astro"] .nav button[aria-current="page"]{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 1px rgba(227,186,92,.35)}
:root[data-theme="astro"] .btn.primary{box-shadow:0 6px 20px rgba(227,186,92,.25)}
:root[data-theme="astro"] svg.wheel{filter:drop-shadow(0 0 24px rgba(120,110,230,.18))}
:root:is([data-theme="astro"],[data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) :is(input,select,textarea){background-color:rgba(10,12,30,.55)}
:root:is([data-theme="astro"],[data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .menu .pop{background:#16183A}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg);margin:0}
body{font-family:var(--f-body);color:var(--ink);font-size:14px;line-height:1.45;min-height:100vh}
.sym{font-family:var(--f-sym);font-variant-emoji:text}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
a{color:var(--accent)}
.boot{display:grid;place-items:center;min-height:80vh;font-family:var(--f-display);font-size:28px;color:var(--ink-3)}
.wrap{max-width:1440px;margin:0 auto;padding-inline:16px}

/* header */
.top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-block:12px}
.brand{display:flex;align-items:baseline;gap:10px;margin-right:auto}
.brand h1{font-family:var(--f-display);font-weight:400;font-size:26px;margin:0;letter-spacing:.01em}
.brand .stage{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:99px}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav button{border:0;background:transparent;padding:7px 12px;border-radius:8px;color:var(--ink-2);cursor:pointer;position:relative}
.nav button[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.nav button .soon{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-left:4px}
.nav .badge{position:absolute;top:0;right:0;min-width:17px;height:17px;border-radius:99px;background:var(--danger);color:#fff;font-size:10px;display:grid;place-items:center;padding:0 4px}
.tools{display:flex;gap:8px;align-items:center}
.langsw{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:2px}
.langsw button{border:0;background:transparent;padding:4px 9px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;color:var(--ink-3)}
.langsw button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line-2)}
.menu{position:relative}
.menu > button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 12px 5px 5px;display:flex;gap:8px;align-items:center;cursor:pointer}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:12px;font-weight:600}
.menu .pop{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:210px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.12);z-index:20}
.menu .pop button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:6px;cursor:pointer}
.menu .pop button:hover{background:var(--surface-2)}
.menu .pop .who{padding:8px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;font-size:12px;color:var(--ink-3)}
.acting{background:var(--warn-t);color:var(--warn);border-bottom:1px solid var(--line)}
.acting .wrap{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-block:8px;font-size:13px}
.acting b{color:var(--ink)}
.acting button{margin-left:auto}

/* layout */
.app{display:grid;grid-template-columns:290px minmax(0,1fr) 340px;gap:16px;align-items:start;padding-bottom:32px}
@media (max-width:1180px){.app{grid-template-columns:280px minmax(0,1fr)}.side-r{grid-column:1 / -1}}
@media (max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.center{order:-1}}
.page{max-width:1100px;margin:0 auto;padding-bottom:40px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-h h2{font-family:var(--f-display);font-weight:400;font-size:21px;margin:0}
.panel-b{padding:14px;display:grid;gap:12px}
.lead{color:var(--ink-3);font-size:13px;margin:0}

/* form */
.field{display:grid;gap:4px}
.field label,.lbl{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;min-width:0;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--surface)}
input.bad{border-color:var(--tense)}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:2px}
.seg button{border:0;background:transparent;padding:6px 12px;border-radius:6px;cursor:pointer;color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line-2)}
.hint{font-size:12px;color:var(--ink-3);line-height:1.4}
.geo{font-size:12px;color:var(--ink-2)}
.btn{border:1px solid var(--line-2);background:var(--surface);padding:8px 12px;border-radius:8px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--accent)}
.btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ok{background:var(--ok);color:#fff;border-color:var(--ok)}
.btn.danger{color:var(--danger);border-color:var(--danger-t)}
.btn.danger.fill{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn.small{padding:5px 9px;font-size:12px}
.btn.link{border:0;background:transparent;color:var(--accent);padding:4px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.steps .now{grid-column:1 / -1}
.steps .btn{padding:6px 0;font-size:12px}
.btnrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.err{color:var(--tense);font-size:12px}
.msg{padding:10px 12px;border-radius:8px;font-size:13px}
.msg.warn{background:var(--warn-t);color:var(--warn)} .msg.err{background:var(--danger-t);color:var(--danger)} .msg.ok{background:var(--ok-t);color:var(--ok)}

/* auth */
.auth{min-height:100vh;display:grid;grid-template-columns:1fr minmax(320px,440px);gap:0}
@media (max-width:860px){.auth{grid-template-columns:1fr}.auth .art{display:none}}
.auth .art{background:var(--accent);color:#fff;display:grid;place-items:center;padding:40px;position:relative;overflow:hidden}
.auth .art svg{width:min(460px,80%);height:auto;opacity:.95}
.auth .art .cap{position:absolute;left:40px;bottom:36px;right:40px;max-width:52ch}
.auth .art h1{font-family:var(--f-display);font-weight:400;font-size:44px;margin:0 0 8px}
.auth .art p{margin:0;opacity:.85;font-size:15px}
.auth .form{background:var(--surface);padding:32px clamp(20px,5vw,44px);display:flex;flex-direction:column;gap:16px;justify-content:center}
.auth .form .top2{display:flex;justify-content:space-between;align-items:center}
.auth .form h2{font-family:var(--f-display);font-weight:400;font-size:30px;margin:0}
.auth .mobile-brand{display:none;font-family:var(--f-display);font-size:26px}
@media (max-width:860px){.auth .mobile-brand{display:block}}
.tabs{display:flex;gap:2px;background:var(--surface-2);border-radius:8px;padding:2px}
.tabs button{border:0;background:transparent;padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;color:var(--ink-2);flex:1}
.tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.pending{max-width:620px;margin:8vh auto;text-align:center;padding:36px 28px}
.pending h2{font-family:var(--f-display);font-weight:400;font-size:30px;margin:12px 0 8px}
.pending p{color:var(--ink-2);max-width:48ch;margin:0 auto 18px}
.pending .ring{width:64px;height:64px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);margin:0 auto;animation:spin 2.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.pending .ring{animation:none}*{transition:none!important}}

/* wheel */
.wheel-wrap{padding:14px;display:grid;gap:10px}
.chart-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.chart-head .who{font-family:var(--f-display);font-size:26px;line-height:1.1}
.chart-head .meta{color:var(--ink-2);font-size:13px}
.chart-head .meta span+span::before{content:"·";margin:0 6px;color:var(--ink-3)}
svg.wheel{width:100%;height:auto;max-width:720px;display:block;margin:0 auto}
.legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:12px;color:var(--ink-2)}
.legend i{display:inline-block;width:18px;height:0;border-top:2px solid;vertical-align:middle;margin-right:6px}

/* tables */
table{border-collapse:collapse;width:100%}
th{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:500;text-align:left;padding:6px;border-bottom:1px solid var(--line)}
td{padding:6px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.g{font-size:18px;width:26px;text-align:center}
td.r,th.r{text-align:right}
.retro{color:var(--tense);font-weight:600;font-size:12px}
.tbl-wrap{overflow-x:auto}
#p-as td{white-space:nowrap}
.grid-asp td,.grid-asp th{padding:0;width:26px;height:26px;text-align:center;border:1px solid var(--line);font-size:14px}
.grid-asp th{font-size:15px;color:var(--ink-2);text-transform:none;letter-spacing:0}
.stats{display:grid;gap:10px}
.bars{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;font-size:13px}
.bar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.bar>span{display:block;height:100%}
details summary{cursor:pointer;color:var(--ink-2);font-size:13px}
.orbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.orbs label{display:grid;gap:2px;font-size:12px;color:var(--ink-2)}
.orbs input{padding:5px 7px}

/* lists */
.card-list{display:grid;gap:6px}
.card{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);cursor:pointer;text-align:left}
.card:hover{border-color:var(--accent)}
.card b{font-weight:600}
.card small{color:var(--ink-3);grid-column:1}
.card .del{grid-row:1 / span 2;grid-column:2;align-self:center;border:0;background:transparent;color:var(--ink-3);cursor:pointer;padding:4px 6px;border-radius:6px}
.card .del:hover{color:var(--tense)}
.empty{color:var(--ink-3);font-size:13px;padding:10px 2px}

/* interpretation */
.toc{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line)}
.toc a{font-size:12.5px;color:var(--ink-2);text-decoration:none;padding:4px 10px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line)}
.toc a:hover{border-color:var(--accent);color:var(--ink)}
.interp{padding:6px 22px 28px;max-width:74ch;margin:0 auto;font-size:15px;line-height:1.62}
.interp h3{font-family:var(--f-display);font-weight:400;font-size:24px;margin:30px 0 4px;text-wrap:balance;scroll-margin-top:12px}
.interp h3 .n{font-family:var(--f-mono);font-size:12px;color:var(--ink-3);margin-right:8px;vertical-align:middle}
.interp .it{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
.interp h4{font-size:15px;font-weight:600;margin:0 0 2px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.interp h4 .sym{font-size:18px;font-weight:400}
.tag{font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:99px;font-weight:500;white-space:nowrap}
.tag.harm{background:var(--water-t);color:var(--harm)} .tag.tense{background:var(--fire-t);color:var(--tense)} .tag.conj{background:var(--air-t);color:var(--conj)} .tag.plain{background:var(--surface-2);color:var(--ink-3)}
.tag.pending{background:var(--warn-t);color:var(--warn)} .tag.approved{background:var(--ok-t);color:var(--ok)} .tag.blocked{background:var(--danger-t);color:var(--danger)} .tag.admin{background:var(--accent-soft);color:var(--accent)}
.interp .src{font-size:12px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px}
.interp p{margin:0 0 10px}
.interp p.sexnote{border-left:3px solid var(--accent);padding-left:10px}
.interp p.dim{opacity:.45;border-left-color:var(--line-2)}
.interp .pairnote{font-style:italic;color:var(--ink-2)}
.interp .meta{font-family:var(--f-mono);font-size:12px;color:var(--ink-3);font-weight:400}

/* admin */
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface-2);border-radius:99px;padding:5px 12px;cursor:pointer;font-size:13px;color:var(--ink-2)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chip .n{font-family:var(--f-mono);font-size:11px;margin-left:4px;opacity:.8}
.users td{vertical-align:top;padding:10px 8px}
.users .u b{display:block}
.users .u small{color:var(--ink-3)}
.users .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.users tr.st-pending td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.inline-box{margin-top:8px;padding:10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);display:grid;gap:8px;text-align:left}
.audit td{font-size:13px}
.audit .when{font-family:var(--f-mono);font-size:12px;color:var(--ink-3);white-space:nowrap}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50}
.toast.on{opacity:1}
.soonbox{padding:24px}
.soonbox ul{margin:10px 0 0;padding-left:20px;color:var(--ink-2)}
@media (max-width:860px){.auth .art{display:none}}
.cal td,#fc-p-now td{white-space:nowrap}
/* forecast methods & progressions */
.seg.fc-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.seg.fc-methods button{padding:6px 6px;font-size:12.5px;line-height:1.25}
.cusp-g{display:inline-block;min-width:22px;font:600 11px/1 var(--f-mono);color:var(--ink-2);text-align:center}
.pev{border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;background:var(--surface)}
.pev-harm{border-left-color:var(--harm)}.pev-tense{border-left-color:var(--tense)}.pev-conj{border-left-color:var(--conj)}
.pev-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13.5px}
.pev-f{font-size:12px;color:var(--ink-3)}
.pev-t{margin:0;padding-left:18px;font-size:13px;color:var(--ink-2);display:flex;flex-direction:column;gap:2px}
/* analysis */
.an-page{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.an-page{grid-template-columns:1fr}}
.an-head{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px}
.an-head .who{font-family:var(--f-display);font-size:24px}
.an-head .meta{color:var(--ink-3);font-size:13px}
.an-h{font-family:var(--f-display);font-weight:400;font-size:19px;margin:14px 0 2px;color:var(--ink)}
.an-p{margin:0;line-height:1.5;color:var(--ink-2)}
.an-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 34px;gap:10px;align-items:center;padding:3px 0;border-bottom:1px dashed var(--line)}
.an-k{font-size:14px}
.an-bar{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.an-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.an-v{text-align:right;font-size:13px;color:var(--ink-2)}
.an-grid{border-collapse:collapse;font-size:13px;width:100%;min-width:520px;table-layout:fixed;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.an-grid th,.an-grid td{border:1px solid var(--line);padding:4px 2px;text-align:center}
.an-grid th{color:var(--ink-3);font-weight:400}
.an-grid th.rh{width:44px}
.an-grid td{color:var(--ink)}
.an-grid td.z{color:var(--ink-3);opacity:.45}
.an-grid .s{color:var(--gold,#f0c96b);border-left:2px solid color-mix(in srgb,var(--gold,#f0c96b) 45%,transparent);font-weight:600;width:48px}
.an-infl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 16px;font-size:14px;font-family:var(--f-mono)}
.an-infl b{display:inline-block;min-width:44px;color:var(--ink-3);font-weight:400;font-size:12px}
@media print{
  header,.nav,.an-side,.toast{display:none!important}
  body{background:#fff}
  .an-page{display:block}
  .panel{border:0;box-shadow:none}
  .an-grid{page-break-inside:avoid}
}
.an-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.an-chips span{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:13px}
.an-chips b{font-family:var(--f-mono);color:var(--accent)}
details.extra{margin-top:10px}
details.extra summary{cursor:pointer;font-size:13px;color:var(--ink-2);padding:4px 0}
tr.hit td{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.asp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px}
@media (max-width:760px){.asp-grid{grid-template-columns:1fr}}
.orbtbl input[type=number]{width:70px;padding:4px 6px}
.minors{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:4px 10px;font-size:13px;margin-top:6px}
.minors label{display:flex;gap:6px;align-items:center}
/* day forecast of the program */
table.td td { vertical-align: middle; }
.td-ind { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; margin: 6px 0; }
.td-card { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; gap: 2px; background: var(--surface-2); }
.td-card span { font-size: 12px; color: var(--ink-3); }
.td-card b { font-size: 20px; font-weight: 600; }
.td-card small { color: var(--ink-3); }
.td-card.warn b { color: var(--tense); }
.td-card.good b { color: var(--ok); }
.td-card.bad b { color: var(--danger); }
table.td td { white-space: nowrap; }
table.td td.hint { white-space: normal; font-size: 12px; }
table.td .sym { font-size: 17px; }
.interp h4.psy-h { font-family: var(--f-display); font-weight: 400; font-size: 18px; margin: 18px 0 6px; text-transform: none; }
.toc:empty{display:none}
details.rect { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }
details.rect summary { cursor: pointer; font-size: 13px; font-weight: 600; }
details.rect[open] summary { margin-bottom: 6px; }
/* printing: the chart (or text) with all its tables, light colours, no controls */
@media print{
  @page{margin:12mm}
  html,body{background:#fff!important;color:#000!important}
  header,.nav,.side-l,.toast,.btn,.seg,.tabs,.toc,details.rect,[data-print]{display:none!important}
  .app{display:block!important;padding:0!important}
  .panel{border:0!important;box-shadow:none!important;background:#fff!important}
  .panel.center,.panel.side-r{width:100%!important;max-width:none!important;position:static!important}
  .side-r .panel-b[hidden]{display:block!important}
  .side-r .panel-b{break-inside:avoid-page}
  .tbl-wrap{overflow:visible!important;max-height:none!important}
  svg.wheel{width:16cm!important;height:16cm!important;max-width:100%;display:block;margin:0 auto}
  .interp p{orphans:3;widows:3}
  .interp h3,.interp h4{break-after:avoid}
}
/* night sky: login page */
:root[data-theme="astro"] .auth .art{background:radial-gradient(ellipse 70% 60% at 50% 45%,rgba(110,80,200,.35),transparent 70%),transparent;color:var(--ink)}
:root[data-theme="astro"] .auth .art svg{filter:drop-shadow(0 0 18px rgba(227,186,92,.35))}
:root[data-theme="astro"] .auth .art h1{background:linear-gradient(90deg,#F3D78E,#E3BA5C 45%,#C9A0FF);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500}
:root:is([data-theme="astro"],[data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .auth .form{background:rgba(14,16,38,.78);backdrop-filter:blur(10px);border-left:1px solid var(--line)}
table.td tr.frm td{border-top:0;padding-top:0;font-size:11.5px;color:var(--ink-3)}
table.td tr:has(+ tr.frm) td{border-bottom:0;padding-bottom:2px}
@media (max-width:760px){
  .nav{flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none}
  .nav button{white-space:nowrap}
  [data-print]{display:none}
}

/* ================= design variants ================= */
/* shared dark tokens for the three variants */
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]){
  color-scheme:dark;
  --ok:#74CF98; --ok-t:rgba(116,207,152,.14); --warn:#E9C46A; --warn-t:rgba(233,196,106,.14); --danger:#F48C84; --danger-t:rgba(244,140,132,.14);
  --fire:#F2836A; --earth:#9CC870; --air:#EACB63; --water:#72B6EE;
  --fire-t:rgba(242,131,106,.13); --earth-t:rgba(156,200,112,.12); --air-t:rgba(234,203,99,.12); --water-t:rgba(114,182,238,.13);
  --harm:#78B8F0; --tense:#F2766C; --minor:#8F94A8;
}
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .auth .art{color:var(--ink)}
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .brand h1,
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .auth .art h1{text-transform:uppercase;letter-spacing:.32em;font-family:var(--f-body);font-weight:300;font-size:22px}
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .auth .art h1{font-size:40px;letter-spacing:.2em}
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .panel-h h2,
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .chart-head .who{text-transform:uppercase;letter-spacing:.14em;font-family:var(--f-body);font-weight:500;font-size:15px}
:root:is([data-theme="nova"],[data-theme="glass"],[data-theme="hud"],[data-theme="orbit"]) .chart-head .who{font-size:22px;font-weight:300}

/* 1. NOVA: deep-space monochrome, white pills, soft green accent */
:root[data-theme="nova"]{
  --bg:#05060A; --surface:rgba(16,18,24,.78); --surface-2:rgba(30,33,42,.6); --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.18);
  --ink:#F2F3F5; --ink-2:#B6BAC4; --ink-3:#7B808C;
  --accent:#A6E27C; --accent-soft:rgba(166,226,124,.12); --accent-ink:#0A0C10; --gold:#D9DDE4; --conj:#E6E0C8;
  --wheel-bg:#0A0C12; --f-display:"Unbounded","Exo 2",sans-serif;
}
:root[data-theme="nova"] body{background:
  radial-gradient(circle at 78% 22%,rgba(160,200,255,.18) 0,rgba(90,130,200,.10) 16%,transparent 34%),
  radial-gradient(circle at 78% 22%,transparent 26%,rgba(166,226,124,.06) 27%,transparent 29%),
  radial-gradient(1px 1px at 20% 30%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 60% 70%,rgba(255,255,255,.7) 50%,transparent 51%),
  radial-gradient(1px 1px at 85% 55%,rgba(255,255,255,.6) 50%,transparent 51%),radial-gradient(1px 1px at 40% 90%,rgba(255,255,255,.5) 50%,transparent 51%),
  #05060A;
  background-size:100% 100%,100% 100%,380px 380px,520px 520px,460px 460px,600px 600px,auto;background-attachment:fixed}
:root[data-theme="nova"] .nav{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:99px;padding:3px}
:root[data-theme="nova"] .nav button{border-radius:99px}
:root[data-theme="nova"] .nav button[aria-current="page"]{background:#fff;color:#0A0C10;box-shadow:none}
:root[data-theme="nova"] .btn.primary{background:#fff;color:#0A0C10;border-color:#fff}
:root[data-theme="nova"] .panel{border-radius:18px}

/* 2. GLASS: navy glassmorphism with electric-blue neon */
:root[data-theme="glass"]{
  --bg:#040B1E; --surface:rgba(12,28,62,.55); --surface-2:rgba(22,48,98,.45); --line:rgba(90,170,255,.22); --line-2:rgba(110,190,255,.4);
  --ink:#EAF4FF; --ink-2:#A9C6EA; --ink-3:#6F8DB6;
  --accent:#3FA9FF; --accent-soft:rgba(63,169,255,.16); --accent-ink:#031027; --gold:#8FD3FF; --conj:#9FE0FF;
  --wheel-bg:#061431; --f-display:"Exo 2",sans-serif;
}
:root[data-theme="glass"] body{background:
  radial-gradient(ellipse 50% 40% at 70% 10%,rgba(40,120,255,.35),transparent 70%),
  radial-gradient(ellipse 45% 35% at 10% 90%,rgba(0,200,255,.18),transparent 70%),
  radial-gradient(ellipse 30% 25% at 95% 70%,rgba(120,80,255,.18),transparent 70%),
  linear-gradient(180deg,#051231,#030916);background-attachment:fixed}
:root[data-theme="glass"] .panel{border-radius:16px;box-shadow:0 0 0 1px rgba(90,170,255,.08) inset,0 0 28px rgba(40,140,255,.12),0 20px 50px rgba(0,0,0,.35)}
:root[data-theme="glass"] .btn.primary{background:linear-gradient(90deg,#1E7BFF,#3FC6FF);border:0;color:#fff;box-shadow:0 0 22px rgba(63,169,255,.45)}
:root[data-theme="glass"] .nav button[aria-current="page"]{background:var(--accent-soft);color:#BFE4FF;box-shadow:0 0 0 1px rgba(63,169,255,.5),0 0 14px rgba(63,169,255,.35)}
:root[data-theme="glass"] .brand h1{color:#DDF0FF;text-shadow:0 0 18px rgba(63,169,255,.6)}
:root[data-theme="glass"] svg.wheel{filter:drop-shadow(0 0 22px rgba(63,169,255,.25))}

/* 3. HUD: tactical console, graphite with amber/teal and a fine grid */
:root[data-theme="hud"]{
  --bg:#0C0F12; --surface:rgba(20,25,29,.86); --surface-2:rgba(34,41,47,.7); --line:rgba(120,160,160,.18); --line-2:rgba(130,180,180,.32);
  --ink:#E4ECEC; --ink-2:#A7B6B6; --ink-3:#6E8080;
  --accent:#FF7A3D; --accent-soft:rgba(255,122,61,.14); --accent-ink:#140905; --gold:#FFB36B; --conj:#FFC06E; --harm:#4FD1C5;
  --wheel-bg:#0F1417; --f-display:"Exo 2",sans-serif; --r:6px;
}
:root[data-theme="hud"] body{background:
  linear-gradient(rgba(79,209,197,.05) 1px,transparent 1px) 0 0/28px 28px,
  linear-gradient(90deg,rgba(79,209,197,.05) 1px,transparent 1px) 0 0/28px 28px,
  radial-gradient(ellipse 60% 50% at 30% 20%,rgba(255,122,61,.12),transparent 70%),
  radial-gradient(ellipse 50% 40% at 80% 80%,rgba(79,209,197,.10),transparent 70%),#0C0F12;background-attachment:fixed}
:root[data-theme="hud"] .panel{position:relative;border-radius:6px;box-shadow:none}
:root[data-theme="hud"] .panel::before{content:"";position:absolute;inset:-1px;border-radius:6px;pointer-events:none;
  background:linear-gradient(var(--accent),var(--accent)) top left/14px 2px no-repeat,linear-gradient(var(--accent),var(--accent)) top left/2px 14px no-repeat,
  linear-gradient(#4FD1C5,#4FD1C5) bottom right/14px 2px no-repeat,linear-gradient(#4FD1C5,#4FD1C5) bottom right/2px 14px no-repeat}
:root[data-theme="hud"] .nav button[aria-current="page"]{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);border-radius:4px}
:root[data-theme="hud"] .btn.primary{background:var(--accent);color:#140905;border-color:var(--accent);border-radius:4px}
:root[data-theme="hud"] .brand h1{color:#fff}
/* login: animated solar system */
.auth .art canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.auth .art .cap{z-index:1}
.auth .art .sky-date{margin-top:6px;font-size:12px;opacity:.6}
/* chart: 3D celestial sphere */
canvas.sky3d{width:100%;aspect-ratio:1/1;display:block;cursor:grab;touch-action:none;border-radius:12px;background:radial-gradient(circle at 50% 50%,rgba(90,70,180,.18),transparent 70%)}
canvas.sky3d:active{cursor:grabbing}
#btn-3d[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
/* night sky: pill navigation (detail borrowed from the "cosmos" variant) */
:root[data-theme="astro"] .nav{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:99px;padding:3px}
:root[data-theme="astro"] .nav button{border-radius:99px}
@media (max-width:760px){:root[data-theme="astro"] .nav{border-radius:12px}}
canvas.sky3d{max-width:720px;margin:0 auto}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.captcha:empty{display:none}
.captcha{min-height:78px}
/* ---- cues of the original program: coloured captions and switches ---- */
:root{--o-mag:#C43C9E;--o-yel:#E8C94A;--o-aqua:#43C3CB;--o-mar:#8F2E3E;--o-grn:#44B461}
.ol{display:block;font-size:12px;font-weight:600;letter-spacing:.02em;color:color-mix(in srgb,var(--o-mag) 55%,var(--ink));background:color-mix(in srgb,var(--o-mag) 16%,transparent);border-left:3px solid var(--o-mag);border-radius:6px;padding:3px 8px;margin-bottom:5px;text-transform:none}
.row3{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center}
.sexseg button{padding:6px 10px;min-width:34px}
.wd{font-size:12px;color:var(--ink-3);min-width:22px;text-align:center}
.tiles{display:grid;gap:6px;margin:6px 0}
.tiles.t2{grid-template-columns:1fr 1fr}.tiles.t3{grid-template-columns:1fr 1fr 1fr}
.tile{border:1px solid transparent;border-radius:10px;padding:8px 6px;font-size:15px;font-weight:600;cursor:pointer;text-align:center;transition:filter .15s,box-shadow .15s,opacity .15s;font-family:inherit}
.tile.wide{width:100%;margin:6px 0}
.tile.yel{background:color-mix(in srgb,var(--o-yel) 85%,#000);color:#231a00}
.tile.mag{background:color-mix(in srgb,var(--o-mag) 80%,#000);color:#fff}
.tile.aqua{background:color-mix(in srgb,var(--o-aqua) 85%,#000);color:#062226;cursor:default}
.tile.mar{background:color-mix(in srgb,var(--o-mar) 90%,#000);color:#FFD9A8}
.tile.grn{background:color-mix(in srgb,var(--o-grn) 85%,#000);color:#062410}
.tile:hover:not(.aqua){filter:brightness(1.12)}
.tile[aria-pressed="false"]{opacity:.55}
.tile[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ink) inset}
.tiles.plain .btn{width:100%}
.omenu{position:absolute;z-index:50;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.35);backdrop-filter:blur(10px);min-width:240px}
.omenu button{border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);border-radius:8px;padding:9px 12px;cursor:pointer;font:inherit;text-align:center}
.omenu button:hover,.omenu button:focus-visible{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.field .ol{text-transform:none!important;letter-spacing:.02em!important;font-size:12px!important;font-weight:600!important}
.side-l .panel-b{min-width:0}
.side-l .row,.side-l .row3{min-width:0}
.side-l .row>*,.side-l .row3>*{min-width:0;width:100%}
.side-l .row3>.sexseg,.side-l .row3>.wd,.side-l .row3>select{width:auto}
.side-l input,.side-l select{max-width:100%}
.tiles>*{min-width:0}
.tiles .btn,.tile{white-space:normal;overflow-wrap:anywhere}
.side-l .panel-b>*{min-width:0}
/* help & assistant */
#help-fab{position:fixed;right:18px;bottom:18px;z-index:60;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:var(--accent);color:var(--accent-ink);font:600 22px/1 var(--f-body);cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35)}
#help-fab:hover{filter:brightness(1.1)}
#help-panel{position:fixed;right:18px;bottom:76px;z-index:60;width:min(420px,calc(100vw - 24px));height:min(600px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.45);backdrop-filter:blur(12px)}
:root[data-theme="astro"] #help-panel,:root[data-theme="nova"] #help-panel,:root[data-theme="glass"] #help-panel{background:rgba(16,18,40,.96)}
.hp-h{display:flex;gap:8px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}
.hp-h .tabs{flex:1}
.hp-b{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px;min-height:0}
.hp-kb details{border-bottom:1px solid var(--line);padding:6px 0}
.hp-kb summary{cursor:pointer;font-weight:600}
.hp-kb h4{margin:8px 0 4px}.hp-kb p,.hp-kb li{font-size:13.5px;line-height:1.5}
.hp-chat{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;min-height:0}
.hp-chat .msg-user{align-self:flex-end;background:var(--accent-soft);border:1px solid var(--line-2);border-radius:12px 12px 2px 12px;padding:8px 10px;max-width:85%;white-space:pre-wrap}
.hp-chat .msg-assistant{align-self:flex-start;background:var(--surface-2);border:1px solid var(--line);border-radius:12px 12px 12px 2px;padding:8px 10px;max-width:92%;font-size:14px}
.hp-chat .msg-assistant p{margin:0 0 6px}.hp-chat .msg-assistant ul{margin:4px 0 6px;padding-left:18px}
.hp-f{display:flex;gap:6px;align-items:flex-end}.hp-f textarea{flex:1;resize:none}
@media print{#help-fab,#help-panel{display:none!important}}
.tsplit{display:flex;align-items:center;gap:2px;min-width:0}
.tsplit .tp{width:100%;min-width:0;text-align:center;padding-left:4px;padding-right:4px}
.tsplit .tc{color:var(--ink-3);font-weight:600}
/* ---- command bar under the chart (switches of the original), colours tuned to the theme ---- */
.cmdbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px 16px 14px;border-top:1px solid var(--line)}
.cmdbar .tiles{display:flex;gap:6px;margin:0}
.cmdbar .tiles.plain .btn{width:auto}
.cmdbar .field{margin:0;display:flex;gap:8px;align-items:center}
.cmdbar .field .ol{margin:0;white-space:nowrap}
.cmdbar select{width:auto;min-width:150px}
.cmdbar #btn-saveas{width:auto!important}
.tile,.tile.yel,.tile.mag,.tile.aqua,.tile.mar,.tile.grn{background:var(--surface-2);color:var(--ink);border:1px solid var(--line-2);font-size:13.5px;font-weight:600;padding:8px 14px;border-radius:10px;opacity:1;white-space:nowrap}
.tile::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tc,var(--accent));margin-right:8px;vertical-align:1px;box-shadow:0 0 8px var(--tc,var(--accent))}
.tile.yel{--tc:var(--o-yel)}.tile.mag{--tc:var(--o-mag)}.tile.mar{--tc:#D0596B}.tile.grn{--tc:var(--o-grn)}
.tile.aqua{background:transparent;border-color:transparent;color:var(--ink-3);padding-left:0;padding-right:2px;--tc:var(--o-aqua)}
.tile[aria-pressed="false"]{opacity:1}
.tile[aria-pressed="true"]{background:color-mix(in srgb,var(--tc) 20%,var(--surface-2));border-color:color-mix(in srgb,var(--tc) 65%,transparent);box-shadow:none}
.tile:hover:not(.aqua){border-color:color-mix(in srgb,var(--tc) 60%,var(--line-2));filter:none}
.field .ol{background:transparent!important;border-left:2px solid color-mix(in srgb,var(--o-mag) 65%,transparent)!important;color:var(--ink-2)!important;border-radius:0!important;padding:1px 8px!important}
@media print{.cmdbar{display:none!important}}
.side-l .row>.btn{white-space:normal;font-size:12.5px;line-height:1.15;padding:6px 8px}
.an-infl .sym{font-size:17px;color:var(--ink)}

.tp-h{font-family:var(--f-mono);font-size:11.5px;color:var(--ink-3);margin-left:2px}
.tp-c{font-family:var(--f-mono);font-size:12.5px;font-weight:600}
.tp-r{color:var(--tense);font-size:9px;margin-left:1px}
.tp-g{margin:12px 0 4px}
.tp-t{margin:0 0 4px;font-family:var(--f-display);font-weight:400;font-size:16px;color:var(--gold,#e0b04e)}
.tp-tbl{width:100%;border-collapse:collapse;font-size:13.5px;table-layout:fixed}
.tp-tbl td:nth-child(1),.tp-tbl td:nth-child(3){width:64px}.tp-tbl td:nth-child(2){width:24px}.tp-tbl td:nth-child(4){width:46px}.tp-tbl td:nth-child(5){width:30px}
.tp-tbl td{padding:3px 6px;border-bottom:1px solid var(--line);white-space:nowrap}
.tp-tbl .sym{font-size:17px;line-height:1}
.tp-tbl td.tp-x{text-align:center;padding:3px 2px}
.tp-tbl tr:not(.tp-fr) td{border-bottom:0;padding-bottom:0}
.tp-tbl td.tp-f{white-space:normal!important;font-size:12px;color:var(--ink-2);padding:0 6px 5px 22px}
.tp-tbl td.tp-p{padding-right:2px}
.tp-g summary{cursor:pointer;font-weight:600;padding:4px 0}

.tp-row,.tp-fr{cursor:pointer}
.tp-row:hover td,.tp-row:hover+.tp-fr td{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.tp-arr{display:inline-block;transition:transform .15s;color:var(--ink-3)}
.tp-row.open .tp-arr{transform:rotate(180deg)}
.tp-dr td{padding:0 6px 8px 22px;white-space:normal!important}
.tp-d{border-left:3px solid var(--line);padding:4px 0 4px 10px;font-size:13px;line-height:1.5}
.tp-d.pev-harm{border-color:var(--harm)}.tp-d.pev-tense{border-color:var(--tense)}.tp-d.pev-conj{border-color:var(--gold,#e0b04e)}
.tp-d ul{margin:0;padding-left:16px}
.tp-b{margin:4px 0 0;color:var(--ink-2)}

.an-grid tr.sum td,.an-grid tr.sum th{border-top:2px solid color-mix(in srgb,var(--gold,#f0c96b) 45%,transparent);border-left:1px solid var(--line)}
.an-grid tr.sum th{color:var(--gold,#f0c96b);font-weight:600}
.an-grid td.tot{border-left:2px solid color-mix(in srgb,var(--gold,#f0c96b) 45%,transparent)}

.an-ip{cursor:help;border-radius:4px;padding:0 2px}
.an-ip:hover,.an-ip:focus{background:color-mix(in srgb,var(--accent) 14%,transparent);outline:none}

/* ================= "Орбіта" (switchable futuristic design) ================= */
:root[data-theme="orbit"]{
  --bg:#0f1531; --surface:rgba(22,30,72,.62); --surface-2:rgba(40,52,110,.48); --line:rgba(140,180,255,.2); --line-2:rgba(242,162,58,.45);
  --ink:#EEF2FF; --ink-2:#BCC8EE; --ink-3:#8796C4;
  --accent:#F2A23A; --accent-soft:rgba(242,162,58,.16); --accent-ink:#1a1206; --gold:#F5C46A; --conj:#F5C46A;
  --cyan:#6FD6FF; --wheel-bg:#121a3d;
}
:root[data-theme="orbit"] body{background:#0f1531 var(--orb-bg,none) center/cover fixed no-repeat}
:root[data-theme="orbit"] .panel{position:relative;background:linear-gradient(160deg,rgba(40,54,120,.55),rgba(14,20,52,.72));backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-color:transparent;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 0 0 1px rgba(111,214,255,.14),0 24px 60px rgba(0,0,0,.4),0 0 40px rgba(242,162,58,.06)}
:root[data-theme="orbit"] .panel::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(242,162,58,.7),rgba(111,214,255,.15) 40%,rgba(111,214,255,.05) 60%,rgba(242,162,58,.5));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
:root[data-theme="orbit"] .brand h1{color:#fff;text-shadow:0 0 16px rgba(242,162,58,.55);cursor:pointer}
:root[data-theme="orbit"] .nav button[aria-current="page"]{background:linear-gradient(180deg,rgba(242,162,58,.28),rgba(242,162,58,.08));color:#FFD9A0;box-shadow:0 0 0 1px rgba(242,162,58,.5),0 0 18px rgba(242,162,58,.25)}
:root[data-theme="orbit"] .btn.primary{background:linear-gradient(180deg,#F7B85A,#E08A1E);color:#1a1206;box-shadow:0 6px 22px rgba(242,162,58,.35),0 1px 0 rgba(255,255,255,.4) inset}
:root[data-theme="orbit"] .btn{transition:box-shadow .2s,transform .2s}
:root[data-theme="orbit"] .btn:hover{box-shadow:0 0 0 1px rgba(111,214,255,.5),0 0 16px rgba(111,214,255,.25)}
:root[data-theme="orbit"] :is(input,select,textarea):focus{box-shadow:0 0 0 2px rgba(111,214,255,.45)}
:root[data-theme="orbit"] svg.wheel{filter:drop-shadow(0 0 26px rgba(242,162,58,.22)) drop-shadow(0 0 60px rgba(111,214,255,.12))}
:root[data-theme="orbit"] .menu .pop{background:#18214d}
.orbit-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:99px;border:1px solid var(--line-2);background:transparent;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}
.orbit-btn svg{width:16px;height:16px}
.orbit-btn[aria-pressed="true"]{color:#FFD9A0;border-color:rgba(242,162,58,.6);background:rgba(242,162,58,.14);box-shadow:0 0 16px rgba(242,162,58,.3)}
.orbit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* home overlay with the 3D solar-system menu */
.orb-home{position:fixed;inset:0;z-index:60;background:transparent;overflow:hidden;animation:orbIn .5s ease;pointer-events:none}
.orb-home>*{pointer-events:auto}.orb-home>.orb-load,.orb-home>.orb-hint,.orb-home>.orb-labels{pointer-events:none}
.orb-home.failed{background:#02030a}
@keyframes orbIn{from{opacity:0}to{opacity:1}}
.orb-gl{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none;transition:opacity 1.2s ease}
.orb-labels{position:absolute;inset:0;pointer-events:none}
.orb-lbl{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:1px;white-space:nowrap;transition:opacity .2s}
.orb-lbl b{font:500 12px/1.2 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:#EEF2FF;text-shadow:0 0 8px rgba(0,0,0,.8)}
.orb-lbl i{font:normal 11px/1.2 var(--f-body);color:#8fb4ff;opacity:0;transition:opacity .2s}
.orb-lbl.on b{color:#FFD9A0;text-shadow:0 0 12px rgba(242,162,58,.8)}
.orb-lbl.on i{opacity:1}
.orb-top{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));left:16px;right:16px;display:flex;align-items:center;gap:12px;z-index:2}
.orb-top h1{margin:0 auto 0 0;font:300 20px var(--f-body);letter-spacing:.32em;text-transform:uppercase;color:#fff;text-shadow:0 0 16px rgba(242,162,58,.55)}
.orb-top h1 small{display:block;font-size:10px;letter-spacing:.3em;color:#8fb4ff;margin-top:4px}
.orb-glass{position:absolute;z-index:2;width:min(300px,calc(100vw - 32px));padding:16px 18px;border-radius:16px;color:#EEF2FF;background:linear-gradient(160deg,rgba(40,54,120,.5),rgba(14,20,52,.7));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 0 0 1px rgba(111,214,255,.2),0 24px 60px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.14) inset;transition:transform .4s}
.orb-glass h3{margin:0 0 10px;font:500 11px var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:#F2A23A}
.orb-glass dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0 0 12px;font-size:13px}
.orb-glass dt{color:#8796C4}.orb-glass dd{margin:0;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.orb-glass.l{left:24px;bottom:28px;transform:perspective(900px) rotateY(10deg)}
.orb-glass.r{right:24px;bottom:28px;transform:perspective(900px) rotateY(-10deg)}
.orb-glass:hover{transform:none}
.orb-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:2;font-size:12px;color:#8fb4ff;letter-spacing:.06em;text-align:center;max-width:calc(100vw - 32px)}
.orb-fallback{position:absolute;inset:auto 16px 50% 16px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;z-index:2}
@media (max-width:980px){.orb-glass{display:none}.orb-top h1{font-size:15px}}
@media (prefers-reduced-motion:reduce){.orb-home{animation:none}}

.orb-sel{position:absolute;left:0;top:0;border-radius:50%;border:1px solid rgba(255,214,150,.75);box-shadow:0 0 14px rgba(255,190,110,.35),inset 0 0 10px rgba(255,190,110,.15);opacity:0;transition:opacity .2s;pointer-events:none}
.orb-sel::before,.orb-sel::after{content:"";position:absolute;left:50%;width:1px;height:8px;background:rgba(255,214,150,.8)}
.orb-sel::before{top:-10px}.orb-sel::after{bottom:-10px}
.orb-lbl b{font-weight:500;font-size:11px;letter-spacing:.2em}
.orb-lbl i{opacity:.75;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#a9b8dc}
.orb-nav{position:absolute;z-index:2;left:24px;top:calc(76px + env(safe-area-inset-top,0px));display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:14px;background:rgba(6,9,22,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 0 0 1px rgba(160,190,255,.14)}
.orb-nav button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:170px;padding:7px 12px;border:0;border-radius:9px;background:transparent;color:#e6ebfa;font:inherit;text-align:left;cursor:pointer}
.orb-nav button b{font-weight:500;font-size:13px;letter-spacing:.04em}
.orb-nav button i{font-style:normal;font-size:11px;color:#8d9cc4}
.orb-nav button:is(:hover,:focus-visible,.on){background:rgba(255,190,110,.13);color:#FFD9A0;outline:none;box-shadow:inset 2px 0 0 #F2A23A}
.orb-load{position:absolute;inset:0;display:grid;place-items:center;z-index:1;color:#a9b8dc;letter-spacing:.2em;text-transform:uppercase;font-size:12px;pointer-events:none;opacity:0;transition:opacity .4s}
html:not(.orb-ready) .orb-home .orb-load{opacity:1}
.orb-cred{position:absolute;z-index:2;right:16px;bottom:6px;font-size:10px;color:rgba(169,184,220,.6)}
.orb-cred a{color:inherit}
.orb-glass.l{bottom:34px}.orb-glass.r{bottom:34px}
@media (max-width:980px){.orb-nav{display:none}.orb-hint{bottom:22px}}

/* ---- live space behind the app: every section is framed by its planet ---- */
#orb-space{position:fixed;inset:0;z-index:0;background:#02030a}
html.orb-live #root{position:relative;z-index:1;transition:opacity .6s ease}
html.orb-live body{background:#02030a}
html.orb-at-home #root,html.orb-at-home #help-fab,html.orb-at-home #help-panel{opacity:0;visibility:hidden;pointer-events:none;transition:none}
@keyframes orbPanelIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
html.orb-live.orb-enter:not(.orb-at-home) main .panel{animation:orbPanelIn .9s cubic-bezier(.2,.7,.2,1) both}
html.orb-live.orb-enter:not(.orb-at-home) main .panel.side-l{animation-delay:.55s}
html.orb-live.orb-enter:not(.orb-at-home) main .panel.center{animation-delay:.35s}
html.orb-live.orb-enter:not(.orb-at-home) main .panel.side-r{animation-delay:.7s}
html.orb-live header.top{position:relative;z-index:2}
/* the wheel becomes a hologram around the planet */
html.orb-live .panel.center:has(> .wheel-wrap:not([hidden])){background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent}
html.orb-live .panel.center:has(> .wheel-wrap:not([hidden]))::before{display:none}
html.orb-live svg.wheel{filter:drop-shadow(0 0 10px rgba(0,0,0,.7))}
html.orb-live svg.wheel .face{fill:rgba(4,7,22,.42)}
html.orb-live svg.wheel :is(.hub,.hub2){fill:transparent;stroke:rgba(255,214,150,.6);stroke-width:1.4}
html.orb-live .wheel-wrap .chart-head,html.orb-live .wheel-wrap .legend{text-shadow:0 1px 6px rgba(0,0,0,.9)}
html.orb-live .wheel-wrap .chart-head{background:linear-gradient(180deg,rgba(4,7,22,.55),rgba(4,7,22,0));border-radius:12px;padding:6px 8px}
@media print{#orb-space{display:none}}
@media (prefers-reduced-motion:reduce){html.orb-live main .panel{animation:none!important}}
/* ---- planet stations (hero) ---- */
.orb-hero{--ph:min(300px,36vh);color:#e9eefc;z-index:1}
.orb-hero.side{position:fixed;top:92px;bottom:16px;width:360px;display:flex;flex-direction:column;align-items:center;gap:14px;overflow:auto;scrollbar-width:none;animation:orbPanelIn .9s cubic-bezier(.2,.7,.2,1) .3s both}
.orb-hero.side::-webkit-scrollbar{display:none}
.orb-hero.side-l{left:max(16px,calc((100vw - 1440px) / 2 + 16px))}
.orb-hero.side-r{right:max(16px,calc((100vw - 1440px) / 2 + 16px))}
html.orb-side-l main#main{padding-left:calc(16px + 360px + 24px)}
html.orb-side-r main#main{padding-right:calc(16px + 360px + 24px)}
.oh-planet{position:relative;flex:none;width:var(--ph);height:var(--ph)}
.oh-anchor{position:absolute;inset:11%;border-radius:50%}
.oh-hud{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.oh-hud line{stroke:rgba(170,195,255,.35);stroke-width:.5}
.oh-hud line.mj{stroke:rgba(255,200,130,.75);stroke-width:.8}
.oh-hud circle{fill:none}
.oh-hud .r1{stroke:rgba(255,214,150,.55);stroke-width:.5}
.oh-hud .r2{stroke:rgba(111,214,255,.5);stroke-width:.6;stroke-dasharray:2 5 30 5}
.oh-hud .r3{stroke:rgba(255,190,110,.45);stroke-width:1.1;stroke-dasharray:60 300}
.oh-hud .cr{stroke:rgba(255,214,150,.9);stroke-width:1}
.oh-hud .spin{transform-origin:0 0;animation:ohSpin 60s linear infinite}
.oh-hud .spin-r{transform-origin:0 0;animation:ohSpin 40s linear infinite reverse}
@keyframes ohSpin{to{transform:rotate(360deg)}}
.oh-info{width:100%;display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;background:linear-gradient(160deg,rgba(40,54,120,.42),rgba(10,14,40,.66));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 0 0 1px rgba(111,214,255,.16),0 20px 50px rgba(0,0,0,.4),0 1px 0 rgba(255,255,255,.1) inset}
.oh-id{display:flex;flex-direction:column;gap:3px;text-align:center}
.oh-pl{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:#F2A23A}
.oh-id h2{margin:0;font:300 26px/1.15 var(--f-body);letter-spacing:.06em;color:#fff;text-shadow:0 0 18px rgba(242,162,58,.35);text-wrap:balance}
.oh-facts{font:11px/1.4 var(--f-mono);color:#8fa3d4;font-variant-numeric:tabular-nums}
.oh-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.oh-stat{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(160,190,255,.12);min-width:0}
.oh-stat b{font:500 15px/1.2 var(--f-mono);color:#FFD9A0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.oh-stat span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#8d9cc4}
.oh-stat.big b{font-size:28px;font-weight:300}
.oh-stat.wide{grid-column:1 / -1}
.oh-bars{grid-column:1 / -1;display:grid;gap:5px;margin-top:2px}
.oh-bar{display:grid;grid-template-columns:96px 1fr 18px;gap:8px;align-items:center;font-size:12px;color:#bcc8ee}
.oh-bar i{height:5px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.oh-bar u{display:block;height:100%;border-radius:3px;box-shadow:0 0 8px currentColor}
.oh-bar b{font:12px var(--f-mono);text-align:right}
.oh-act{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.oh-act:empty{display:none}
.oh-act .chip{border:0;border-radius:99px;padding:6px 12px;background:rgba(242,162,58,.12);box-shadow:inset 0 0 0 1px rgba(242,162,58,.35);color:#FFD9A0;font:inherit;font-size:12px;cursor:pointer}
.oh-act .chip:is(:hover,:focus-visible){background:rgba(242,162,58,.25);outline:none}
.oh-none{margin:0;text-align:center;color:#8d9cc4}
/* band variant: the planet on the left, the station's data beside it */
.orb-hero.band{--ph:230px;max-width:1440px;margin:4px auto 16px;padding-inline:16px;display:grid;grid-template-columns:var(--ph) minmax(0,1fr);gap:28px;align-items:center;animation:orbPanelIn .9s cubic-bezier(.2,.7,.2,1) .2s both}
.orb-hero.band .oh-info{flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px 24px}
.orb-hero.band .oh-id{text-align:left;min-width:220px}
.orb-hero.band .oh-stats{display:flex;flex-wrap:wrap;flex:1;min-width:0}
.orb-hero.band .oh-stat{min-width:120px}
.orb-hero.band .oh-stat.wide{grid-column:auto}
.orb-hero.band .oh-act{justify-content:flex-start;flex-basis:100%}
.orb-hero.band .oh-bars{flex-basis:100%}
@media (max-width:1180px){
  .orb-hero.side{position:static;width:auto;max-width:1440px;margin:4px auto 16px;padding-inline:16px;display:grid;grid-template-columns:var(--ph) minmax(0,1fr);gap:20px;align-items:center;--ph:200px;overflow:visible}
  html:is(.orb-side-l,.orb-side-r) main#main{padding-inline:16px}
}
@media (max-width:640px){
  .orb-hero.side,.orb-hero.band{grid-template-columns:minmax(0,1fr);justify-items:center;--ph:min(220px,60vw)}
  .orb-hero.band .oh-id{text-align:center}
}
@media (prefers-reduced-motion:reduce){.oh-hud .spin,.oh-hud .spin-r{animation:none}.orb-hero{animation:none!important}}
html:is(.orb-side-l,.orb-side-r) main :is(#card-new,#card-imp,#hor-new){display:none}

@keyframes swapIn{from{opacity:.25;transform:translateY(6px) scale(.995)}to{opacity:1;transform:none}}
main.swap-in :is(.panel.center,.panel.side-r,.an-main){animation:swapIn .42s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){main.swap-in *{animation:none!important}}
/* ---- volume: thick glass, light from above, buttons you can press ---- */
:root[data-theme="orbit"] .panel{background:radial-gradient(130% 70% at 0% 0%,rgba(255,255,255,.075),transparent 55%),linear-gradient(165deg,rgba(44,58,128,.58),rgba(12,17,46,.78));
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 -1px 0 rgba(0,0,0,.45) inset,0 0 0 1px rgba(111,214,255,.14),0 2px 0 rgba(130,160,255,.10),0 12px 0 -8px rgba(18,26,66,.75),0 34px 70px -18px rgba(0,0,0,.75),0 0 60px -10px rgba(111,160,255,.12);
  transition:box-shadow .35s ease,transform .35s ease}
:root[data-theme="orbit"] main .panel:hover{box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 -1px 0 rgba(0,0,0,.45) inset,0 0 0 1px rgba(111,214,255,.24),0 2px 0 rgba(130,160,255,.14),0 14px 0 -8px rgba(18,26,66,.8),0 40px 80px -18px rgba(0,0,0,.8),0 0 70px -8px rgba(242,162,58,.12)}
:root[data-theme="orbit"] .panel-h{background:linear-gradient(180deg,rgba(255,255,255,.05),transparent)}
:root[data-theme="orbit"] .btn:not(.primary){background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.02) 60%,rgba(0,0,0,.08));box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 0 0 1px rgba(150,180,255,.22),0 4px 10px rgba(0,0,0,.35)}
:root[data-theme="orbit"] .btn:not(.primary):hover{box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 0 0 1px rgba(111,214,255,.55),0 0 18px rgba(111,214,255,.28),0 6px 14px rgba(0,0,0,.4)}
:root[data-theme="orbit"] .btn.primary{background:linear-gradient(180deg,#FFD089,#F2A23A 45%,#C9761A);box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 -2px 0 rgba(120,60,0,.45) inset,0 6px 22px rgba(242,162,58,.4),0 2px 0 #8a4f10}
:root[data-theme="orbit"] :is(.btn,.tile,.seg button,.tabs [role=tab]):active{transform:translateY(1px) scale(.99)}
:root[data-theme="orbit"] .tile{box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 -2px 0 rgba(0,0,0,.35) inset,0 0 0 1px rgba(150,180,255,.2),0 4px 10px rgba(0,0,0,.3)}
:root[data-theme="orbit"] :is(input,select,textarea){box-shadow:0 2px 6px rgba(0,0,0,.45) inset,0 0 0 1px rgba(150,180,255,.16);background-color:rgba(4,7,22,.6)}
:root[data-theme="orbit"] header.top{position:sticky;top:0;z-index:5;padding-block:10px;background:linear-gradient(180deg,rgba(6,9,26,.82),rgba(6,9,26,.5));backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 1px 0 rgba(111,214,255,.14),0 14px 30px -10px rgba(0,0,0,.6);border-radius:0 0 18px 18px}
:root[data-theme="orbit"] .nav button{transition:color .2s,box-shadow .2s,background .2s}
:root[data-theme="orbit"] .nav button:hover{color:#fff;text-shadow:0 0 12px rgba(111,214,255,.6)}
/* hologram text glow */
:root[data-theme="orbit"] :is(.panel-h h2,.chart-head .who){text-shadow:0 0 14px rgba(111,214,255,.35),0 1px 0 rgba(0,0,0,.6)}
/* 3D tilt (driven by the mouse) */
[data-tilt]{transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.7,.2,1);will-change:transform}
.oh-info[data-tilt]>*{transform:translateZ(18px)}
.oh-stat{transition:transform .3s,box-shadow .3s}
.oh-stat:hover{transform:translateZ(30px) translateY(-2px);box-shadow:inset 0 0 0 1px rgba(242,162,58,.45),0 10px 24px rgba(0,0,0,.45),0 0 18px rgba(242,162,58,.18)}
/* gyroscope ring around the station planet: the front half crosses in front of it */
.oh-planet{perspective:900px}
.oh-gyro{position:absolute;inset:-6%;pointer-events:none;transform-style:preserve-3d;animation:ohTilt 18s ease-in-out infinite alternate}
.oh-gyro i{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(255,200,130,.75);box-shadow:0 0 12px rgba(255,170,80,.5),inset 0 0 12px rgba(255,170,80,.3);transform:rotateX(74deg);-webkit-mask:linear-gradient(180deg,rgba(0,0,0,.18) 50%,#000 50%);mask:linear-gradient(180deg,rgba(0,0,0,.18) 50%,#000 50%)}
.oh-gyro i::after{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:#FFE1B0;box-shadow:0 0 12px 3px rgba(255,190,110,.9);animation:ohSat 7s linear infinite;offset-path:inset(0 round 50%)}
.oh-gyro b{position:absolute;inset:7%;border-radius:50%;border:1px dashed rgba(111,214,255,.55);transform:rotateX(74deg) rotateY(-18deg);-webkit-mask:linear-gradient(180deg,rgba(0,0,0,.12) 50%,#000 50%);mask:linear-gradient(180deg,rgba(0,0,0,.12) 50%,#000 50%)}
@keyframes ohTilt{from{transform:rotateZ(-14deg)}to{transform:rotateZ(10deg)}}
@keyframes ohSat{from{offset-distance:0%}to{offset-distance:100%}}
@media (prefers-reduced-motion:reduce){.oh-gyro,.oh-gyro i::after{animation:none}[data-tilt]{transition:none}}
/* ---- "Небо зараз" on the main menu ---- */
.orb-lbl em{font-style:normal;font:11px/1.2 var(--f-mono);color:#cfd8f5;letter-spacing:.02em;text-shadow:0 0 6px rgba(0,0,0,.9)}
.orb-lbl em:empty{display:none}
.orb-lbl.nosec b{display:none}
.orb-lbl.nosec i{opacity:.85;color:#e6ebfa}
.orb-lbl.lum i{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#FFD9A0}
.orb-lbl.retro em{color:#ff8a7e}
.orb-lbl.mine i,.orb-lbl.mine em{color:#FFD089;text-shadow:0 0 10px rgba(242,162,58,.8)}
.os-side{position:absolute;z-index:2;right:20px;top:calc(18px + env(safe-area-inset-top,0px));bottom:118px;width:300px;display:flex;flex-direction:column;gap:10px;overflow:auto;scrollbar-width:none;pointer-events:auto}
.os-side::-webkit-scrollbar{display:none}
.os-card{padding:12px 14px;border-radius:14px;color:#e6ebfa;background:linear-gradient(160deg,rgba(40,54,120,.40),rgba(8,12,34,.66));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 0 0 1px rgba(111,214,255,.15),0 18px 40px -12px rgba(0,0,0,.6);font-size:12.5px}
.os-card h3{margin:0 0 8px;font:500 10.5px var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:#F2A23A}
.os-card .os-h2{margin-top:10px}
.os-mrow{display:grid;grid-template-columns:84px 1fr;gap:12px;align-items:center}
.os-mrow canvas{width:84px;height:84px;filter:drop-shadow(0 0 10px rgba(255,230,190,.25))}
.os-mtxt{display:flex;flex-direction:column;gap:3px;min-width:0}
.os-mtxt b{font-weight:500;font-size:14px;color:#fff}
.os-dim{color:#8d9cc4}
.os-list{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.os-list li{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}
.os-list .sym{color:#FFD9A0;width:16px;text-align:center}
.os-list b{color:#ff8a7e;font-weight:600}
.os-asp li{display:grid;grid-template-columns:16px 16px 16px 1fr auto;gap:6px}
.os-asp i{font-style:normal;text-align:center}
.os-asp .k-harm i{color:#78B8F0}.os-asp .k-tense i{color:#F2766C}.os-asp .k-conj i{color:#F5C46A}
.os-ev li{display:grid;grid-template-columns:78px 16px 1fr;gap:6px}
.os-ev .os-d{color:#8fb4ff;font-size:11px}
.os-ev li.ecl span:last-child{color:#FFD089}
.os-adv p{margin:0 0 6px;line-height:1.45;color:#d7def5}
.os-adv .os-ah{color:#FFD9A0}
.os-adv i{font-style:normal}
.os-time{position:absolute;z-index:2;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(760px,calc(100vw - 32px));display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 14px;border-radius:16px;pointer-events:auto;
  background:linear-gradient(180deg,rgba(30,40,92,.5),rgba(8,12,34,.72));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 0 0 1px rgba(111,214,255,.18),0 20px 50px -10px rgba(0,0,0,.7)}
.os-modes{display:flex;gap:6px;flex-wrap:wrap}
.os-modes button{border:0;border-radius:99px;padding:6px 11px;font:inherit;font-size:12px;color:#c8d3f2;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(150,180,255,.2);cursor:pointer}
.os-modes button[aria-pressed="true"]{color:#1a1206;background:linear-gradient(180deg,#FFD089,#F2A23A);box-shadow:0 0 14px rgba(242,162,58,.4)}
.os-slide{display:flex;align-items:center;gap:6px;min-width:0}
.os-slide input{flex:1;min-width:0;accent-color:#F2A23A}
.os-step{width:28px;height:28px;border-radius:50%;border:0;background:rgba(255,255,255,.07);color:#FFD9A0;font-size:16px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(150,180,255,.22)}
.os-when{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.os-when span{color:#FFD9A0;font-size:13px}
.orb-home.os-mine .os-time{box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 0 0 1px rgba(242,162,58,.5),0 0 30px rgba(242,162,58,.2),0 20px 50px -10px rgba(0,0,0,.7)}
@media (max-width:980px){
  .os-side{left:12px;right:12px;width:auto;top:auto;bottom:132px;height:auto;max-height:42vh;flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}
  .os-card{flex:0 0 260px;scroll-snap-align:start;overflow:auto}
  .os-time{grid-template-columns:1fr;gap:8px}
  .os-when{flex-direction:row;justify-content:space-between;align-items:center}
}
.os-advc{position:absolute;z-index:2;left:20px;bottom:118px;width:300px;max-height:30vh;overflow:auto;pointer-events:auto}
.orb-lbl.lum em{color:#fff}
.orb-lbl.lum{filter:drop-shadow(0 0 4px #000) drop-shadow(0 0 8px #000)}
@media (max-width:980px){.os-advc{display:none}}
@media (max-width:980px){
  .os-side{bottom:150px;max-height:27vh}
  .os-card{flex-basis:240px;padding:10px 12px;font-size:11.5px}
  .os-mrow{grid-template-columns:54px 1fr;gap:8px}
  .os-mrow canvas{width:54px;height:54px}
  .os-time{padding:8px 10px}
}
.oh-why{font-size:11.5px;line-height:1.35;color:#d9c3a0;font-style:italic;text-wrap:balance}
.remember{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-2);cursor:pointer}
.ses-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.ses-list li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;padding:8px 10px;border-radius:10px;background:var(--surface-2)}
.ses-list li.cur{box-shadow:inset 0 0 0 1px var(--accent)}
.ses-list .hint{flex-basis:100%}
/* ---- the Sun's assistant ---- */
html.orb-oracle #root,html.orb-oracle #help-fab,html.orb-oracle #help-panel,html.orb-oracle .orb-home>:not(.orb-top){opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s,visibility 0s .4s}
html.orb-oracle .orb-labels{opacity:0;transition:opacity .4s}
.orc{position:fixed;z-index:70;left:max(24px,7vw);top:50%;width:min(440px,calc(100vw - 32px));height:min(72vh,640px);transform:translateY(-50%);display:flex;flex-direction:column;border-radius:20px;color:#e8ecfb;
  background:linear-gradient(160deg,rgba(36,44,104,.52),rgba(8,10,30,.78));backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 0 0 1px rgba(160,140,255,.25),0 0 60px rgba(140,110,255,.18),0 30px 80px -20px rgba(0,0,0,.8);animation:orcIn .8s cubic-bezier(.2,.7,.2,1) 2.3s both}
.orc.out{animation:orcOut .45s ease both}
@keyframes orcIn{from{opacity:0;transform:translateY(-50%) translateX(-24px) scale(.97)}to{opacity:1;transform:translateY(-50%)}}
@keyframes orcOut{to{opacity:0;transform:translateY(-50%) translateX(-24px) scale(.97)}}
.orc-h{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(160,170,255,.16)}
.orc-h>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.orc-h b{font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:13px;color:#FFD9A0}
.orc-h small{font-size:11.5px;color:#9aa6d0}
.orc-sun{width:30px;height:30px;border-radius:50%;flex:none;background:radial-gradient(circle at 40% 40%,#fff6d8,#ffc35c 45%,#f07a1a 75%,rgba(240,122,26,0) 76%);box-shadow:0 0 18px 4px rgba(255,170,70,.55);animation:orcPulse 3s ease-in-out infinite}
@keyframes orcPulse{50%{box-shadow:0 0 28px 8px rgba(255,170,70,.7)}}
.orc-x{width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.07);color:#e8ecfb;font-size:20px;line-height:1;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(160,170,255,.25)}
.orc-x:hover{background:rgba(255,255,255,.14)}
.orc-msgs{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}
.orc-m{max-width:88%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5}
.orc-m p{margin:0 0 6px}.orc-m p:last-child{margin:0}.orc-m ul{margin:4px 0;padding-left:18px}
.orc-m.assistant{align-self:flex-start;background:linear-gradient(160deg,rgba(120,100,255,.16),rgba(70,160,255,.08));box-shadow:inset 0 0 0 1px rgba(170,150,255,.22)}
.orc-m.user{align-self:flex-end;background:rgba(242,162,58,.16);box-shadow:inset 0 0 0 1px rgba(242,162,58,.35)}
.orc-wait{display:flex;gap:5px}.orc-wait i{width:7px;height:7px;border-radius:50%;background:#b9a8ff;animation:orcDot 1s ease-in-out infinite}
.orc-wait i:nth-child(2){animation-delay:.15s}.orc-wait i:nth-child(3){animation-delay:.3s}
@keyframes orcDot{50%{opacity:.25;transform:translateY(-3px)}}
.orc-f{display:flex;gap:8px;padding:12px 14px;border-top:1px solid rgba(160,170,255,.16)}
.orc-f textarea{flex:1;min-width:0;resize:none;border-radius:12px;padding:9px 11px;font:inherit;font-size:14px}
.orb-nav .orb-nav-sun b{color:#FFD9A0}
.orb-nav .orb-nav-sun{border-bottom:1px solid rgba(160,190,255,.14);margin-bottom:4px;padding-bottom:9px}
@media (max-width:760px){.orc{left:12px;right:12px;width:auto;top:auto;bottom:calc(12px + env(safe-area-inset-bottom,0px));height:min(52vh,460px);transform:none}
  @keyframes orcIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  @keyframes orcOut{to{opacity:0;transform:translateY(24px)}}}
@media (prefers-reduced-motion:reduce){.orc{animation:none}}
/* ---- the login page in "Орбіта": the live Solar System behind the form ---- */
html.orb-live.orb-auth .auth{background:transparent}
html.orb-live.orb-auth .auth .art{background:transparent;pointer-events:none;color:#eef2ff}
html.orb-live.orb-auth .auth .art #orrery{display:none}
html.orb-live.orb-auth .auth .art .cap{pointer-events:auto;left:clamp(20px,4vw,48px);bottom:clamp(20px,5vh,48px);padding:18px 22px;border-radius:18px;max-width:46ch;background:linear-gradient(160deg,rgba(30,40,92,.35),rgba(6,9,26,.55));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 0 0 1px rgba(160,190,255,.14),0 20px 50px -14px rgba(0,0,0,.7)}
html.orb-live.orb-auth .auth .art h1{font:300 46px/1.1 var(--f-body);letter-spacing:.3em;text-transform:uppercase;color:#fff;text-shadow:0 0 24px rgba(242,162,58,.55);margin:0 0 10px}
html.orb-live.orb-auth .auth .art p{color:#c8d3f2}
html.orb-live.orb-auth .auth .art .sky-date{opacity:1;color:#FFD9A0;font-size:12.5px;line-height:1.6;margin-top:10px}
html.orb-live.orb-auth .auth .form{background:linear-gradient(165deg,rgba(36,46,108,.5),rgba(6,9,26,.82));backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);box-shadow:-1px 0 0 rgba(160,190,255,.18),-30px 0 80px rgba(0,0,0,.45);border-left:0}
html.orb-live.orb-auth .auth .form h2{font:300 30px var(--f-body);letter-spacing:.06em;color:#fff}
@media (max-width:860px){html.orb-live.orb-auth .auth{min-height:100vh;align-content:end}html.orb-live.orb-auth .auth .form{margin:42vh 12px 12px;border-radius:20px;box-shadow:0 0 0 1px rgba(160,190,255,.18),0 30px 80px rgba(0,0,0,.6)}}
html.orb-live.orb-auth .auth .art h1{font-size:clamp(28px,3.2vw,42px);letter-spacing:.22em;white-space:nowrap}
html.orb-live.orb-auth .auth .mobile-brand{font:300 20px var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:#fff;text-shadow:0 0 16px rgba(242,162,58,.55)}
