
/* Layout: navy sidebar + cool-white work surface on desktop; top bar + bottom tab bar on phones. Drawers slide in from the right (bottom sheet on phones). */
:root{
  --bg:#F3F6FB; --surface:#FFFFFF; --surface2:#F7F9FD; --ink:#1B2552; --muted:#5B6584; --line:#E1E6F0;
  --navy:#1F2A5E; --navy2:#17204A; --sky:#00A9EF; --sky-ink:#006CA3; --sky-soft:#E3F4FC; --red:#E8312F;
  --ok:#1C7550; --ok-soft:#E2F3EA; --warn:#935808; --warn-soft:#FBF0DC; --bad:#C2302C; --bad-soft:#FBE6E5; --idle:#5B6584; --idle-soft:#ECEFF6;
  --shadow:0 18px 40px -28px rgba(20,28,68,.35);
  --display:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --body:"Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --r:12px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]):not([data-theme="blue"]){
  --bg:#0D1330; --surface:#151D42; --surface2:#1A2350; --ink:#E7EBF7; --muted:#9BA4C3; --line:#28325E;
  --navy:#0A1029; --navy2:#070C22; --sky-ink:#5CC8F5; --sky-soft:#13314F;
  --ok:#5BC48F; --ok-soft:#173A33; --warn:#E3A84B; --warn-soft:#3A2E1A; --bad:#F07B77; --bad-soft:#40202A; --idle:#9BA4C3; --idle-soft:#222B55;
  --shadow:0 18px 40px -26px rgba(0,0,0,.7); color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0D1330; --surface:#151D42; --surface2:#1A2350; --ink:#E7EBF7; --muted:#9BA4C3; --line:#28325E;
  --navy:#0A1029; --navy2:#070C22; --sky-ink:#5CC8F5; --sky-soft:#13314F;
  --ok:#5BC48F; --ok-soft:#173A33; --warn:#E3A84B; --warn-soft:#3A2E1A; --bad:#F07B77; --bad-soft:#40202A; --idle:#9BA4C3; --idle-soft:#222B55;
  --shadow:0 18px 40px -26px rgba(0,0,0,.7); color-scheme:dark }

/* Blue theme: a soft blue work surface with a deep-blue sidebar (chosen per person in the top bar). */
:root[data-theme="blue"]{
  --bg:#E6EFF9; --surface:#FFFFFF; --surface2:#F1F6FC; --ink:#13204A; --muted:#4A5B82; --line:#CCDAEC;
  --navy:#0B3A75; --navy2:#082C5A; --sky:#00A9EF; --sky-ink:#00649A; --sky-soft:#D3EAF9;
  --ok:#196D47; --ok-soft:#DDF0E6; --warn:#985B07; --warn-soft:#F8ECD6; --bad:#B42B27; --bad-soft:#F8E1E0; --idle:#4A5B82; --idle-soft:#E2E9F4;
  --shadow:0 18px 40px -28px rgba(11,40,90,.38) }

*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.num{font-variant-numeric:tabular-nums lining-nums}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0}
a{color:var(--sky-ink)}

/* Sign-in */
.signin{min-height:100%;display:grid;place-items:center;padding-block:40px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  background:radial-gradient(1200px 500px at 80% -10%, var(--sky-soft), transparent 60%), var(--bg)}
.si-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:34px 28px;box-shadow:var(--shadow);display:grid;gap:18px}
.si-logo{height:30px;width:auto}
.logo-w{display:none!important}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo-d{display:none!important}:root:not([data-theme="light"]) .logo-w{display:block!important}}
:root[data-theme="dark"] .logo-d{display:none!important}:root[data-theme="dark"] .logo-w{display:block!important}
.si-card h1{font:600 34px/1.05 var(--display)}
.si-card .sub{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:99px;border:1px solid transparent;padding:10px 18px;font-weight:700;font-size:14px;line-height:1.2;text-decoration:none;white-space:nowrap}
.btn-p{background:var(--navy);color:#fff}
:root[data-theme="dark"] .btn-p{background:var(--sky);color:#06122E}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn-p{background:var(--sky);color:#06122E}}
.btn-s{background:var(--surface);border-color:var(--line);color:var(--ink)}
.btn-g{background:transparent;color:var(--sky-ink);padding-inline:8px}
.btn-d{background:var(--bad);color:#fff}
.btn-lg{padding:14px 20px;font-size:15px;width:100%}
.btn svg{width:18px;height:18px}
.si-note{font-size:12.5px;color:var(--muted);background:var(--surface2);border-radius:10px;padding:10px 12px}
.scan{display:grid;place-items:center;gap:10px;padding:8px 0}
.scan .ring{width:74px;height:74px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--sky);animation:spin 0.9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* App shell */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}
.side{background:var(--navy);color:#D6DDF2;padding:22px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;max-height:100%;overflow:auto}
.side .brand{padding:4px 10px 10px;display:grid;gap:4px}
.side .brand img{height:24px;width:auto}
.side .brand small{color:#8E9AC6;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.nav{display:grid;gap:2px}
.nav .lab{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#AEB8DC;padding:12px 12px 4px;text-align:left;cursor:pointer;border-radius:8px}
.nav .lab:hover{color:#fff}
.nav .lab::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 4px 3px auto;transition:transform .2s;opacity:.8}
.nav .lab[aria-expanded="false"]::after{transform:rotate(-45deg);margin-bottom:0}
.nav .lab-n{margin-left:8px;font-weight:600;letter-spacing:0;opacity:.8}
.nav button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:0;color:#D6DDF2;border-radius:10px;padding:9px 12px;font-weight:600;font-size:14px}
.nav button svg{width:18px;height:18px;opacity:.85;flex:none}
.nav button:hover{background:rgba(255,255,255,.06)}
.nav button[aria-current="page"]{background:rgba(0,169,239,.16);color:#fff}
.nav button[aria-current="page"] svg{color:var(--sky);opacity:1}
.nav .badge{margin-left:auto;background:var(--red);color:#fff;font-size:11px;border-radius:99px;padding:1px 7px;font-weight:700}
.side .me{margin-top:auto;display:flex;gap:10px;align-items:center;padding:12px;border-top:1px solid rgba(255,255,255,.08)}
.side .me div{min-width:0}
.side .me b{display:block;color:#fff;font-size:13.5px}
.side .me span{font-size:12px;color:#8E9AC6}

.main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:12px;padding-block:16px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.top .t-logo{display:none}.top .t-logo img{height:22px;width:auto}
.top h1{font:600 26px/1.1 var(--display)}
.top .crumb{font-size:12.5px;color:var(--muted)}
.top .grow{flex:1;min-width:0}
.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;position:relative;flex:none}
.icon-btn svg{width:19px;height:19px}
.icon-btn .pip{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--surface)}
.view{padding-block:24px 40px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));display:grid;gap:22px;align-content:start}

.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;color:#fff;flex:none;letter-spacing:.02em}
.av.sm{width:26px;height:26px;font-size:10px}
.av.lg{width:56px;height:56px;font-size:18px}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:14px;min-width:0}
.panel h2{font-size:15px;font-weight:800;letter-spacing:.01em}
.ph{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.ph .hint{font-size:12.5px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.greet h2{font:600 34px/1.1 var(--display)}
.greet p{color:var(--muted)}

.pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.s-idle{background:var(--idle-soft);color:var(--idle)}
.s-warn{background:var(--warn-soft);color:var(--warn)}
.s-ok{background:var(--ok-soft);color:var(--ok)}
.s-bad{background:var(--bad-soft);color:var(--bad)}
.s-sky{background:var(--sky-soft);color:var(--sky-ink)}
.chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;padding:1px 8px;font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}

.rows{display:grid}
.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);min-width:0}
.row:first-child{border-top:0}
.row .grow{flex:1;min-width:0}
.row .ttl{font-weight:700;font-size:14px;overflow-wrap:anywhere}
.row .meta{font-size:12.5px;color:var(--muted)}
button.row{background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;width:100%;color:inherit}
button.row:first-child{border-top:0}
button.row:hover .ttl{color:var(--sky-ink)}

/* KPI tiles */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:6px;position:relative;overflow:hidden}
.kpi .k-l{font-size:12.5px;color:var(--muted);font-weight:600}
.kpi .k-v{font:700 28px/1 var(--body);letter-spacing:-.01em}
.kpi .k-s{font-size:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--muted)}
.kpi .rag{position:absolute;top:14px;right:14px;width:9px;height:9px;border-radius:50%}
.rag.g{background:var(--ok)} .rag.a{background:var(--warn)} .rag.r{background:var(--bad)}
.up{color:var(--ok);font-weight:700} .down{color:var(--bad);font-weight:700}

/* bars */
.bars{display:grid;gap:10px}
.bar{display:grid;grid-template-columns:132px minmax(0,1fr) 46px;gap:10px;align-items:center;font-size:13px}
.bar .bl{color:var(--muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .bt{height:10px;background:var(--idle-soft);border-radius:99px;overflow:hidden}
.bar .bf{display:block;height:100%;background:var(--sky);border-radius:99px;transition:width .6s ease}
.bar .bv{text-align:right;font-weight:700}
.funnel .bf{background:var(--navy)}
:root[data-theme="dark"] .funnel .bf{background:#7C8CD6}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .funnel .bf{background:#7C8CD6}}

table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl td.r,.tbl th.r{text-align:right}
.tscroll{overflow-x:auto;min-width:0}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.who b{font-weight:700;display:block;white-space:nowrap}
.who span{font-size:12px;color:var(--muted)}

/* toolbar */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:3px}
.seg button{border:0;background:transparent;border-radius:99px;padding:6px 14px;font-weight:700;font-size:13px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:7px 14px;min-width:0;flex:1 1 200px;max-width:340px}
.search input{border:0;background:transparent;outline:0;min-width:0;width:100%}
.search svg{width:16px;height:16px;color:var(--muted);flex:none}
.sel{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:7px 12px;font-size:13px;font-weight:600}
.toolbar .end{margin-left:auto;display:flex;gap:8px}

/* boards */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:16px;overflow-x:auto;padding-bottom:6px;min-width:0}
.col{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.col-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 4px}
.col-h b{font-size:13px}
.col-h .cnt{font-size:12px;color:var(--muted);font-weight:700}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:8px;text-align:left;width:100%;color:inherit}
.card:hover{border-color:var(--sky)}
.card .ttl{font-weight:700;font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.card .foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.card .foot .sp{flex:1}
.due-late{color:var(--bad);font-weight:700}
.prio{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.prio.h{color:var(--bad)} .prio.m{color:var(--warn)} .prio.l{color:var(--muted)}
.col-empty{font-size:12.5px;color:var(--muted);padding:10px 4px}
.tabs-m{display:none}

/* drawer */
.scrim{position:fixed;inset:0;background:rgba(10,14,36,.42);z-index:60;opacity:0;animation:fade .2s forwards}
@keyframes fade{to{opacity:1}}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100%);background:var(--surface);z-index:61;display:flex;flex-direction:column;box-shadow:-30px 0 60px -30px rgba(0,0,0,.4);animation:slide .25s ease;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px)}
@keyframes slide{from{transform:translateX(40px);opacity:.4}}
.dr-h{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--line)}
.dr-h .grow{flex:1;min-width:0}
.dr-h h2{font:600 26px/1.15 var(--display);overflow-wrap:anywhere}
.dr-b{padding:18px 22px 28px;overflow:auto;display:grid;gap:18px;align-content:start;flex:1}
.dr-f{padding:14px 22px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.kv{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 14px;font-size:14px}
.kv dt{color:var(--muted);font-size:13px}
.kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.field{display:grid;gap:6px}
.field label{font-size:13px;font-weight:700}
.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 12px;width:100%;min-width:0}
.field textarea{min-height:80px;resize:vertical}
.field .help{font-size:12px;color:var(--muted)}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.toggle{display:flex;gap:12px;align-items:flex-start;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:12px}
.toggle input{width:18px;height:18px;margin-top:2px;accent-color:var(--sky-ink);flex:none}
.toggle b{display:block;font-size:14px}
.toggle span{font-size:12.5px;color:var(--muted)}
.mailbox{font-weight:800;color:var(--sky-ink);overflow-wrap:anywhere}
.statusbar{display:flex;gap:6px;flex-wrap:wrap}
.statusbar button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:6px 12px;font-size:13px;font-weight:700;color:var(--muted)}
.statusbar button[aria-pressed="true"]{border-color:transparent}
.statusbar button[aria-pressed="true"].s-idle{background:var(--idle-soft);color:var(--idle)}
.statusbar button[aria-pressed="true"].s-warn{background:var(--warn-soft);color:var(--warn)}
.statusbar button[aria-pressed="true"].s-ok{background:var(--ok-soft);color:var(--ok)}
.statusbar button[aria-pressed="true"].s-bad{background:var(--bad-soft);color:var(--bad)}
.timeline{display:grid;gap:0}
.tl{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding-bottom:14px;position:relative}
.tl::before{content:"";position:absolute;left:10px;top:20px;bottom:0;width:1px;background:var(--line)}
.tl:last-child::before{display:none}
.tl i{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;border:1px solid var(--line);background:var(--surface)}
.tl i.done{background:var(--ok);border-color:var(--ok);color:#fff}
.tl i.next{border-color:var(--sky);color:var(--sky-ink)}
.tl i.off{border-style:dashed;color:var(--muted)}
.tl b{font-size:13.5px;display:block}
.tl span{font-size:12.5px;color:var(--muted)}
.comment{display:flex;gap:10px}
.comment .bubble{background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13.5px;min-width:0;overflow-wrap:anywhere}
.comment .bubble small{display:block;color:var(--muted);font-size:11.5px}
.addc{display:flex;gap:8px}
.addc input{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:9px 14px}
.confirm-box{border:1px solid var(--bad);background:var(--bad-soft);border-radius:10px;padding:14px;display:grid;gap:12px}
.confirm-box p{font-size:13.5px}

/* attendance */
.ci-wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"map steps" "status steps";gap:22px;align-items:start}
.ci-map{grid-area:map;min-width:0}.ci-steps{grid-area:steps;min-width:0}.ci-status{grid-area:status;min-width:0}
.map{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--surface2);aspect-ratio:4/3;max-width:100%}
.map svg{width:100%;height:100%;display:block}
.map .tag{position:absolute;left:12px;bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:5px 12px;font-size:12.5px;font-weight:700}
.steps{display:grid;gap:12px}
.step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.step .n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;background:var(--idle-soft);color:var(--idle)}
.step.done .n{background:var(--ok);color:#fff}
.step.cur{border-color:var(--sky)}
.step.cur .n{background:var(--sky);color:#06122E}
.step b{display:block;font-size:14px}
.step span{font-size:13px;color:var(--muted)}
.selfie{margin-top:10px;width:150px;max-width:100%;aspect-ratio:3/4;border-radius:14px;background:linear-gradient(160deg,var(--navy),#3B4C93);display:grid;place-items:center;position:relative;overflow:hidden}
.selfie svg{width:70%;opacity:.55}
.selfie .flash{position:absolute;inset:0;background:#fff;animation:flash .5s forwards}
@keyframes flash{to{opacity:0}}
.selfie .ok{position:absolute;bottom:8px;left:8px;right:8px;text-align:center;font-size:11px;font-weight:800;background:rgba(35,129,90,.92);color:#fff;border-radius:99px;padding:3px}
.big-status{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.big-status .clock{font:700 40px/1 var(--body);letter-spacing:-.02em}
.privacy{font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:flex-start}
.privacy svg{width:16px;height:16px;flex:none;margin-top:2px}
.cnts{display:flex;gap:8px;flex-wrap:wrap}
.thumb{width:30px;height:38px;border-radius:6px;background:linear-gradient(160deg,#2B3A7A,#5468B8);flex:none}

/* staff directory */
.dept-chips{display:flex;gap:6px;flex-wrap:wrap}
.dept-chips button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:5px 12px;font-size:12.5px;font-weight:700;color:var(--muted)}
.dept-chips button[aria-pressed="true"]{background:var(--sky-soft);color:var(--sky-ink);border-color:transparent}

/* sequences */
.seq-steps{display:grid;gap:8px}
.sq{display:grid;grid-template-columns:64px 26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.sq .d{font-weight:800;font-size:12.5px;color:var(--muted)}
.sq .ch{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--sky-soft);color:var(--sky-ink)}
.sq .ch svg{width:15px;height:15px}
.sq.wa{border-style:dashed;opacity:.75}
.sq.wa .ch{background:var(--ok-soft);color:var(--ok)}
.sq b{font-size:13.5px;display:block;overflow-wrap:anywhere}
.sq span{font-size:12px;color:var(--muted)}

/* toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--navy);color:#fff;border-radius:12px;padding:12px 18px;font-size:14px;font-weight:600;z-index:80;max-width:min(520px,calc(100% - 32px));box-shadow:var(--shadow);animation:up .25s ease;display:flex;gap:10px;align-items:center}
.toast svg{width:18px;height:18px;color:#5BC48F;flex:none}
@keyframes up{from{transform:translate(-50%,10px);opacity:0}}

/* phone bottom bar */
.tabbar{display:none}
.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.more-grid button{display:flex;gap:10px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:14px;font-weight:700;text-align:left}
.more-grid svg{width:20px;height:20px;color:var(--sky-ink)}

.device{display:flex;gap:12px;align-items:center}
.device svg{width:22px;height:22px;color:var(--muted);flex:none}
.notice{background:var(--sky-soft);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:13.5px;display:flex;gap:10px;align-items:flex-start}
.notice svg{width:18px;height:18px;color:var(--sky-ink);flex:none;margin-top:1px}
.phase{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--line);border-radius:6px;padding:2px 7px;white-space:nowrap}

@media (max-width:1100px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  .top{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:12px}
  .top .t-logo{display:block}
  .top h1,.top .crumb{display:none}
  .view{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:18px calc(96px + env(safe-area-inset-bottom,0px));gap:16px}
  .view-title{display:block!important}
  .grid2,.grid3,.ci-wrap{grid-template-columns:minmax(0,1fr)}
  .ci-wrap{grid-template-areas:"map" "steps" "status";gap:16px}
  .map{aspect-ratio:16/10}
  .fgrid{grid-template-columns:minmax(0,1fr)}
  .tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);
    padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));padding-left:max(6px,env(safe-area-inset-left,0px));padding-right:max(6px,env(safe-area-inset-right,0px))}
  .tabbar button{border:0;background:transparent;display:grid;justify-items:center;gap:2px;font-size:11px;font-weight:700;color:var(--muted);padding:6px 2px;position:relative}
  .tabbar button svg{width:22px;height:22px}
  .tabbar button[aria-current="page"]{color:var(--sky-ink)}
  .tabbar .ci-tab svg{width:26px;height:26px}
  .board.tasks-board{display:block}
  .board.tasks-board .col{display:none}
  .board.tasks-board .col.on{display:flex}
  .board.tasks-board .col-h{display:none}
  .tabs-m{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
  .tabs-m button{flex:none}
  .drawer{top:auto;width:100%;max-height:92%;border-radius:18px 18px 0 0;animation:sheet .25s ease;padding-left:env(safe-area-inset-left,0px)}
  @keyframes sheet{from{transform:translateY(40px);opacity:.4}}
  .dr-h,.dr-b,.dr-f{padding-left:18px;padding-right:18px}
  .kv{grid-template-columns:110px minmax(0,1fr)}
  .bar{grid-template-columns:96px minmax(0,1fr) 40px}
  .greet h2{font-size:28px}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .sq{grid-template-columns:52px 26px minmax(0,1fr)}
  .sq .st{grid-column:3}
}
.view-title{display:none}
.view-title h1{font:600 28px/1.1 var(--display)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- live app additions ---------- */
html,body{margin:0}
[hidden]{display:none!important}
img{max-width:100%}
:root{padding-top:env(safe-area-inset-top,0px)}
.boot{min-height:100vh;display:grid;place-items:center;background:var(--bg)}
.boot img{opacity:.85;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.4}}
.skel{display:grid;gap:14px}
.skel div{height:64px;border-radius:12px;background:linear-gradient(90deg,var(--surface) 0%,var(--surface2) 50%,var(--surface) 100%);background-size:200% 100%;animation:sh 1.2s linear infinite;border:1px solid var(--line)}
@keyframes sh{to{background-position:-200% 0}}
.empty{padding:26px 10px;text-align:center;color:var(--muted);font-size:14px;display:grid;gap:10px;justify-items:center}
.empty b{color:var(--ink);font-size:15px}
.err-box{border:1px solid var(--bad);background:var(--bad-soft);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:13.5px}
.cam{position:relative;width:220px;max-width:100%;aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:#0A1029;margin-top:10px}
.cam video,.cam img{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);display:block}
.cam .hint{position:absolute;left:8px;right:8px;bottom:8px;text-align:center;font-size:12px;font-weight:700;color:#fff;background:rgba(10,16,41,.6);border-radius:99px;padding:4px}
.cam-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.thumb-img{width:34px;height:44px;border-radius:6px;object-fit:cover;display:block;background:var(--idle-soft)}
.mini-btns{display:flex;gap:6px;flex-wrap:wrap}
.mini-btns .btn{padding:5px 10px;font-size:12.5px}
.step-edit{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px;background:var(--surface2)}
.step-edit .row3{display:grid;grid-template-columns:90px 130px minmax(0,1fr) auto;gap:8px;align-items:end}
.step-edit textarea{min-height:130px}
.vars{font-size:12px;color:var(--muted)}
.vars code{background:var(--idle-soft);padding:1px 5px;border-radius:4px}
.badge-n{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:var(--red);color:#fff;font-size:10.5px;font-weight:800;padding:0 5px;position:absolute;top:2px;right:calc(50% - 22px)}
.icon-btn .badge-n{top:-4px;right:-4px}
.lead-msg{white-space:pre-wrap;background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13.5px}
.ev{display:flex;gap:10px;font-size:13.5px;padding:8px 0;border-top:1px solid var(--line)}
.ev:first-child{border-top:0}
.ev .k{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-width:74px}
.ev .b{min-width:0;overflow-wrap:anywhere}
.ev small{display:block;color:var(--muted);font-size:11.5px}
.dept-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center}
.dept-row input,.dept-row select{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;min-width:0;width:100%}
.big-cta{display:grid;gap:12px;justify-items:start}
.pager{display:flex;gap:8px;justify-content:flex-end}
a.btn{text-decoration:none}
.link{background:none;border:0;color:var(--sky-ink);font-weight:700;padding:0;cursor:pointer}
@media (max-width:860px){
  .step-edit .row3{grid-template-columns:1fr 1fr}
  .dept-row{grid-template-columns:1fr}
  .badge-n{right:calc(50% - 20px)}
}

/* ---------- phase 2 modules ---------- */
:root{--navy-chart:#1F2A5E;--gold:#B8913A;--silver:#8A93A8;--bronze:#A0673C}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]):not([data-theme="blue"]){--navy-chart:#7C8CD6}}
:root[data-theme="dark"]{--navy-chart:#7C8CD6}
.nav .lab{padding-top:10px}
.u-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.u-tabs button{border:0;background:none;padding:10px 14px;font-weight:700;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.u-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--sky)}
.u-tabs .u-n{background:var(--idle-soft);border-radius:99px;padding:0 7px;font-size:11.5px;margin-left:4px}
.u-period{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.u-period .seg{flex-wrap:wrap}
.u-date{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted);font-weight:600}
.u-date input{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:6px 10px}
.u-filters .sel{max-width:220px}
.u-export{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.u-export .hint{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.u-export .btn{padding:6px 12px;font-size:12.5px}
.u-chart-wrap{display:grid;gap:8px}
.u-chart{width:100%;height:auto;max-width:100%}
.u-chart .u-grid{stroke:var(--line);stroke-width:1}
.u-chart .u-ax{fill:var(--muted);font-size:11px;font-family:var(--body)}
.u-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);font-weight:600}
.u-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.u-legend .doc-dot{margin-right:6px}
.bars.money .bar{grid-template-columns:132px minmax(0,1fr) 78px}
.u-prog{display:grid;gap:6px}
.u-prog-h{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);font-weight:600}
.u-prog .bt{height:12px;background:var(--idle-soft);border-radius:99px;overflow:hidden}
.u-prog .bf{display:block;height:100%;border-radius:99px}
.tbl tfoot td{border-top:2px solid var(--line);border-bottom:0}
.tbl-click tbody tr:hover td{background:var(--surface2)}
/* access */
.acc-tbl td,.acc-tbl th{white-space:nowrap}
.acc-sel{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:12.5px;font-weight:700;background:var(--surface)}
.acc-sel.lv-none{color:var(--muted)}
.acc-sel.lv-view{color:var(--sky-ink);background:var(--sky-soft);border-color:transparent}
.acc-sel.lv-edit{color:var(--warn);background:var(--warn-soft);border-color:transparent}
.acc-sel.lv-manage{color:var(--ok);background:var(--ok-soft);border-color:transparent}
/* leaderboard */
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}
.pod{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 14px;display:grid;justify-items:center;gap:6px;text-align:center;position:relative}
.pod-1{padding-top:30px;border-color:var(--gold);box-shadow:var(--shadow)}
.pod-rank{position:absolute;top:-14px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:var(--silver)}
.pod-1 .pod-rank{background:var(--gold)} .pod-3 .pod-rank{background:var(--bronze)}
.pod b{font-size:15px}
.pod-v{font:700 22px/1.1 var(--body)}
.pod-s{font-size:12px;color:var(--muted)}
/* documents */
.docs-tbl th.doc-col,.docs-tbl td.doc-col{text-align:center;width:72px}
.doc-dot{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:800}
.doc-sec{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:grid;gap:10px}
.doc-sec .eyebrow{margin:0}
/* chat */
.chat-wrap{display:grid;grid-template-columns:280px minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);height:calc(100vh - 170px);min-height:440px;overflow:hidden}
.chat-side{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.chat-side-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.chat-rooms{overflow:auto;padding:6px;display:grid;gap:2px;align-content:start}
.chat-rooms .lab{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:10px 8px 4px;font-weight:700}
.room{display:flex;gap:10px;align-items:center;border:0;background:none;border-radius:10px;padding:8px;text-align:left;width:100%}
.room:hover{background:var(--surface2)}
.room.on{background:var(--sky-soft)}
.room-hash{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--idle-soft);font-weight:800;color:var(--muted);flex:none}
.room-n{display:grid;min-width:0;flex:1}
.room-n b{font-size:13.5px}
.room-n span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room .badge{background:var(--red);color:#fff;font-size:11px;border-radius:99px;padding:1px 7px;font-weight:700}
.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.chat-h{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.chat-h .grow{display:grid}
.chat-h .grow span{font-size:12px;color:var(--muted)}
.chat-back{display:none}
.chat-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:2px}
.day-sep{text-align:center;margin:12px 0 6px;font-size:11.5px;color:var(--muted);font-weight:700}
.day-sep span{background:var(--surface2);border:1px solid var(--line);border-radius:99px;padding:2px 10px}
.msg{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:4px 0}
.msg.cont{padding-top:0}
.msg-h{display:flex;gap:8px;align-items:baseline}
.msg-h b{font-size:13.5px}
.msg-h span{font-size:11.5px;color:var(--muted)}
.msg-t{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.msg-t .mention{color:var(--sky-ink)}
.msg-file{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px;margin-top:4px;text-decoration:none;color:var(--ink)}
.msg-file svg{width:15px;height:15px}
.chat-compose{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line)}
.chat-compose textarea{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:9px 14px;resize:none;max-height:140px;font:inherit}
.chat-compose .btn{padding:10px 14px}
.chat-att{font-size:12.5px;color:var(--muted);padding:0 14px 8px;display:flex;gap:6px;align-items:center}
.chat-att svg{width:14px;height:14px}
.chat-empty{display:grid;place-items:center;height:100%}
/* meetings */
.meet-row{align-items:flex-start}
.meet-time{display:grid;min-width:64px}
.meet-time b{font-size:16px}
.meet-time span{font-size:12px;color:var(--muted)}
.meet-people{display:flex;gap:4px;margin-top:6px;align-items:center}
.meet-ov{position:fixed;inset:0;z-index:90;background:#0A1029;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.meet-bar{display:flex;gap:12px;align-items:center;padding:10px max(16px,env(safe-area-inset-left,0px));color:#fff}
.meet-bar .hint{color:#9BA4C3;font-size:12.5px;flex:1}
.meet-ov iframe{flex:1;border:0;width:100%}
.meet-ph{flex:1;display:grid;place-items:center;color:#C9D3EE}
/* Recording on this computer (93-meetrec.js) */
.rec-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#E8312F;box-shadow:0 0 0 0 rgba(232,49,47,.55);animation:recPulse 1.6s ease-out infinite;flex:none}
@keyframes recPulse{0%{box-shadow:0 0 0 0 rgba(232,49,47,.55)}70%{box-shadow:0 0 0 9px rgba(232,49,47,0)}100%{box-shadow:0 0 0 0 rgba(232,49,47,0)}}
@media (prefers-reduced-motion:reduce){.rec-dot{animation:none}}
.rec-dock{position:fixed;z-index:95;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:calc(100vw - 32px);background:var(--surface,#fff);color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:10px 12px 10px 16px;box-shadow:0 18px 40px -18px rgba(20,28,68,.45);font-size:13.5px}
.rec-dock b{letter-spacing:.08em;color:#C2302C}
.rec-time{font-variant-numeric:tabular-nums;font-weight:700;font-size:15px}
.rec-sz{color:var(--muted);font-variant-numeric:tabular-nums}
.rec-ttl{color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rec-done{display:grid;gap:2px;min-width:0}
.rec-done b{letter-spacing:0;color:var(--ok);display:flex;gap:6px;align-items:center}
.rec-done b svg{width:16px;height:16px}
.rec-done span{color:var(--muted);overflow-wrap:anywhere}
.rec-done .rec-err{color:var(--bad)}
.rec-up{display:flex;align-items:center;gap:10px;color:var(--muted)}
.rec-bar{width:140px;height:6px;border-radius:99px;background:var(--idle-soft);overflow:hidden}
.rec-bar i{display:block;height:100%;background:var(--sky,#00A9EF);transition:width .4s}
.rec-sheet{position:fixed;inset:0;z-index:96;background:rgba(10,16,41,.55);display:grid;place-items:center;padding:16px}
.rec-card{background:var(--surface,#fff);color:var(--ink);border-radius:18px;padding:22px;max-width:460px;width:100%;box-shadow:0 30px 60px -30px rgba(10,16,41,.6)}
.rec-card h2{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.rec-steps{margin:0 0 12px;padding-left:20px;display:grid;gap:6px;font-size:14px}
.rec-card .mini-btns{justify-content:flex-end;margin-top:14px}
.rec-card .hint{margin:0 0 8px}
.meet-bar .rec-flag,.meet-bar .rec-no{flex:none}
.meet-bar .rec-no{color:#9BA4C3}
.notice.warn{background:var(--warn-soft)}
.notice.warn svg{color:var(--warn)}
.rec-lost{align-items:center;flex-wrap:wrap;margin-bottom:12px}
.rec-lost>span:first-of-type{flex:1;min-width:200px}
.obs-card summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.obs-card summary::-webkit-details-marker{display:none}
.obs-card summary h2{margin:0}
.obs-card[open] summary{margin-bottom:12px}
@media (max-width:620px){.rec-dock{left:16px;right:16px;transform:none;bottom:calc(84px + env(safe-area-inset-bottom,0px))}.rec-ttl{display:none}}
.meet-ph .empty b{color:#fff}
@media (max-width:860px){
  .podium{grid-template-columns:1fr;gap:20px}
  .pod-1{order:-1}
  .chat-wrap{grid-template-columns:minmax(0,1fr);height:calc(100vh - 220px)}
  .chat-wrap.has-room .chat-side{display:none}
  .chat-wrap:not(.has-room) .chat-main{display:none}
  .chat-back{display:grid}
  .chat-h .btn span{display:none}
  .bars.money .bar{grid-template-columns:96px minmax(0,1fr) 64px}
}
.tbl td svg,.link svg,.doc-sec a svg{width:16px;height:16px;vertical-align:-3px;flex:none}
.link{display:inline-flex;gap:6px;align-items:center}
@media (max-width:860px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:12px}
  .kpi .k-v{font-size:22px}
  .kpi .k-l{font-size:12px}
}
@media (min-width:861px){.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
/* finance import + AI + security */
.imp-drop{display:grid;justify-items:center;text-align:center;gap:10px;padding:34px 20px;border:2px dashed var(--line);cursor:pointer}
.imp-drop:hover{border-color:var(--sky)}
.imp-drop p{max-width:560px;color:var(--muted);font-size:14px}
.imp-ico{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--sky-soft);color:var(--sky-ink)}
.imp-ico svg{width:26px;height:26px}
.imp-steps{margin:0;padding-left:20px;display:grid;gap:8px;font-size:13.5px}
.imp-issues{display:flex;gap:6px;flex-wrap:wrap}
.imp-sheet .ph{flex-wrap:wrap}
.imp-map td{vertical-align:middle}
.ai-panel{border-color:color-mix(in srgb,var(--sky) 45%,var(--line))}
.ai-panel h2{display:flex;gap:8px;align-items:center}
.ai-panel h2 svg{width:18px;height:18px;color:var(--sky-ink)}
.ai-sum{font-size:15px;line-height:1.6;max-width:80ch}
.ai-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.ai-card{border:1px solid var(--line);border-left:3px solid var(--sky);border-radius:10px;padding:12px;display:grid;gap:4px;background:var(--surface2)}
.ai-card .eyebrow{margin:0;font-size:10.5px}
.ai-card b{font-size:15px}
.ai-card span:last-child{font-size:12.5px;color:var(--muted)}
.ai-ok{border-left-color:var(--ok)} .ai-warn{border-left-color:var(--warn)} .ai-bad{border-left-color:var(--bad)}
.ai-chips{display:flex;gap:6px;flex-wrap:wrap}
.ai-chips .chip{cursor:pointer;background:var(--surface)}
.ai-answer{border:1px solid var(--line);border-radius:10px;padding:14px;display:grid;gap:10px;background:var(--surface2);font-size:14px;line-height:1.6}
.ai-rec{align-items:flex-start}
.heat td.heat-c{background:color-mix(in srgb,var(--sky) calc(var(--a)*70%),transparent);font-size:12px}
.heat th{white-space:nowrap}
.sec-score{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.sec-ring{--p:0;width:110px;height:110px;border-radius:50%;background:conic-gradient(var(--ok) calc(var(--p)*1%),var(--idle-soft) 0);display:grid;place-items:center;position:relative;flex:none}
.sec-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--surface)}
.sec-ring b,.sec-ring span{position:relative}
.sec-ring b{font-size:24px;line-height:1}
.sec-ring span{font-size:11px;color:var(--muted);margin-top:-30px}
.sec-score > div:last-child{flex:1;min-width:240px}
.sec-ring{display:flex;flex-direction:column;justify-content:center;align-items:center}
.sec-ring span{margin-top:2px}
.panel h2 svg{width:18px;height:18px;vertical-align:-3px;color:var(--sky-ink);margin-right:4px}
.sec-vault .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.room-hash svg{width:15px;height:15px}
/* 0.2.0: import, payroll, media, chat picker */
.drop{display:grid;justify-items:center;text-align:center;gap:6px;padding:28px 18px;border:2px dashed var(--line);border-radius:12px;cursor:pointer;color:var(--muted)}
.drop:hover,.drop:focus-visible{border-color:var(--sky)}
.drop svg{width:28px;height:28px;color:var(--sky-ink)}
.drop b{color:var(--ink);font-size:15px}
.steps-ol{margin:0;padding-left:20px;display:grid;gap:6px;font-size:14px}
.notice.ok{background:var(--ok-soft,#E6F6EC)}
.notice.ok svg{color:var(--ok,#1E8E4E)}
.confirm-box{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:10px;background:var(--surface)}
.confirm-box p{margin:0}
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.asset{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto}
.asset-th{display:grid;place-items:center;aspect-ratio:4/3;background:var(--sky-soft);overflow:hidden}
.asset-th img{width:100%;height:100%;object-fit:cover}
.asset-ico svg{width:34px;height:34px;color:var(--sky-ink)}
.asset-b{padding:10px 12px;display:grid;gap:2px;min-width:0}
.asset-b b{font-size:14px;overflow-wrap:anywhere}
.asset-b span{font-size:12px;color:var(--muted)}
.asset .mini-btns{padding:0 8px 8px}
.pick-list{display:grid;gap:4px;max-height:52vh;overflow:auto}
.pick-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid transparent;background:none;text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit}
.pick-row:hover{background:var(--sky-soft)}
.pick-row > span:not(.av){display:grid;flex:1;min-width:0}
.pick-row small{color:var(--muted);font-size:12px}
.pick-row > svg{width:18px;height:18px;color:var(--sky-ink)}
.pick-row input{width:18px;height:18px;accent-color:var(--navy)}
details summary{cursor:pointer}
/* step-up (passkey confirmation) */
.step-ov{position:fixed;inset:0;z-index:200;background:rgba(10,16,40,.55);display:grid;place-items:center;padding:16px}
.step-card{background:var(--surface);color:var(--ink);border-radius:18px;padding:24px;max-width:400px;width:100%;display:grid;gap:12px;justify-items:start;box-shadow:0 30px 60px -20px rgba(0,0,0,.4)}
.step-card > svg{width:34px;height:34px;color:var(--sky-ink)}
.step-card h2{margin:0;font-size:22px}
.step-card p{margin:0;color:var(--muted);font-size:14px}
.step-err{color:var(--bad);font-size:13px}
/* sales register + investments */
.sheet-wrap{padding:0;overflow:hidden}
.sheet{font-size:12.5px;white-space:nowrap}
.sheet th,.sheet td{padding:7px 9px}
.sheet thead tr.grp th{background:var(--navy);color:#fff;text-align:center;font-weight:600;border-left:1px solid rgba(255,255,255,.15)}
.sheet .stick{position:sticky;left:0;background:var(--surface);z-index:1;box-shadow:1px 0 0 var(--line)}
.sheet tbody tr{cursor:pointer}
.sheet tbody tr:hover td{background:var(--sky-soft)}
.inv-prev{background:var(--sky-soft);border-radius:12px;padding:12px 14px;font-size:14px}
.inv-prev p{margin:0 0 8px}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.calc-grid div{display:grid;gap:2px}
.calc-grid span{font-size:12px;color:var(--muted)}
.calc-grid b{font-size:16px}
fieldset.ask{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:8px;margin:0}
fieldset.ask legend{font-weight:700;font-size:14px;padding:0 6px}
label.radio{display:flex;gap:10px;align-items:flex-start;cursor:pointer;padding:6px;border-radius:8px}
label.radio:hover{background:var(--sky-soft)}
label.radio input{margin-top:3px;accent-color:var(--sky);width:17px;height:17px}
label.radio span{display:grid}
label.radio small{color:var(--muted);font-size:12.5px}
/* long naira figures shrink instead of being cut off */
.kpi .k-v{font-size:clamp(20px,2.1vw,30px);overflow-wrap:anywhere;line-height:1.1}
.kpi{min-width:0}
/* finance categories */
.cat-list{display:grid;gap:6px;margin-bottom:14px}
.cat-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 80px 84px 64px;gap:8px;align-items:center}
.cat-row input[data-cat],.cat-row .cat-code{min-width:0}
.cat-row.is-hidden input[data-cat]{opacity:.55;text-decoration:line-through}
.cat-hide{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted);white-space:nowrap}
.cat-add{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;gap:10px;align-items:end;border-top:1px solid var(--line);padding-top:14px}
@media (max-width:640px){.cat-row{grid-template-columns:1fr 70px;}.cat-row .hint{grid-column:1}.cat-add{grid-template-columns:1fr}}
/* finance setup */
.pct-in{width:80px;text-align:right}
.price-list input,.price-list select{width:100%;min-width:84px;text-align:right}
.price-list select{text-align:left}
.sticky-save{position:sticky;bottom:12px;display:flex;justify-content:flex-end;z-index:5}
.sticky-save .btn{box-shadow:0 10px 24px -10px rgba(0,0,0,.4)}
.lb-depts{display:flex;flex-wrap:wrap;gap:10px 18px}
/* help + policies */
.help-btn{font-weight:800;font-size:16px}
.help-search{flex:1;max-width:560px}
.md h3{font-size:16px;margin:14px 0 6px}
.md p{margin:0 0 8px;line-height:1.55}
.md ul,.md ol{margin:0 0 10px;padding-left:20px;line-height:1.55}
/* lead temperature */
.temp{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;vertical-align:1px}
.t-hot{background:var(--bad-soft);color:var(--bad)}
.t-warm{background:var(--warn-soft);color:var(--warn)}
.t-cold{background:var(--sky-soft);color:var(--sky-ink)}
.kv.answers dt{white-space:normal;max-width:260px}

/* Finance Setup: add a product */
.inline-add{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}
.inline-add input{flex:1 1 220px;min-width:0}
.btn-xs{padding:2px 8px;font-size:11.5px;min-height:0;margin-left:6px}

/* Sales targets panel */
.tg .tg-row{padding:10px 0;border-top:1px solid var(--line)}
.tg .tg-row:first-of-type{border-top:0}
.tg-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tg-top b{font-weight:600}
.tg-pct{margin-left:auto;font-weight:700;font-size:18px}
.tg-bar{position:relative;height:10px;border-radius:99px;background:var(--surface2);margin-top:8px;overflow:visible}
.tg-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1F2A5E,#00A9EF)}
.tg-bar em{position:absolute;top:-4px;bottom:-4px;width:2px;background:#1F2A5E;opacity:.55}
.tg-amt{font-size:12.5px;color:var(--muted);margin-top:6px}
.prob-box{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:12px 0;background:var(--surface2);color:var(--ink)}

/* Media weekly plan */
.mw-people{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mw-people .chip{display:inline-flex;align-items:center;gap:6px}
.mw-day h2{font-size:15px;margin:0 0 6px}
.mw-item{display:flex;gap:10px;align-items:flex-start;padding:9px 2px;border-top:1px solid var(--line);cursor:pointer}
.mw-item:first-of-type{border-top:0}
.mw-item input{margin-top:3px;width:18px;height:18px;flex:none}
.mw-item .meta{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.mw-item.is-done b{text-decoration:line-through;color:var(--muted)}
.mw-edit{display:grid;gap:10px}
.mw-edit-row{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto;gap:6px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px}
.mw-edit-row .mw-detail{grid-column:1/-1}
.mw-edit-row .pill{grid-column:1/-1;justify-self:start}
@media (max-width:640px){.mw-edit-row{grid-template-columns:1fr 1fr}.mw-edit-row>input[data-f=title]{grid-column:1/-1}}

/* GestPoint AI */
.ai-btn{font-weight:800;font-size:12px;letter-spacing:.04em;background:linear-gradient(135deg,#1F2A5E,#00A9EF);color:#fff;border:0}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.ai-chips .chip{cursor:pointer;border:1px solid var(--line);background:transparent;padding:5px 10px;border-radius:99px;font-size:12.5px;color:inherit}
.req{color:var(--bad,#d63638);font-weight:700}
.report-body h3{font-size:15px;margin:16px 0 6px}
.report-body table{width:100%;border-collapse:collapse}
.report-body td,.report-body th{border-bottom:1px solid var(--line);padding:6px}

/* "?" explainers */
.tip{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;font-weight:800;cursor:pointer;vertical-align:middle;padding:0;line-height:1}
.tip:hover,.tip[aria-expanded=true]{background:var(--sky,#00A9EF);color:#fff;border-color:transparent}
.tip-box{display:block;margin-top:6px;padding:8px 10px;border-radius:8px;background:rgba(0,169,239,.12);border:1px solid rgba(0,169,239,.35);color:inherit;font-size:12.5px;font-weight:500;line-height:1.45;white-space:normal;text-transform:none;letter-spacing:normal}
.fee-group{border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px;margin:0}
.fee-group legend{font-size:12.5px;font-weight:700;padding:0 6px;color:var(--muted)}

/* Tab bars: wrap on wide screens (every tab visible); slide with arrows on narrow screens */
.u-tabs-wrap{position:relative;min-width:0;max-width:100%}
.u-tabs-wrap .u-tabs{min-width:0;max-width:100%}
.u-tabs-arr{display:none;position:absolute;top:0;bottom:1px;z-index:2;width:34px;border:0;font-size:22px;font-weight:700;color:var(--ink);cursor:pointer}
.u-tabs-arr.l{left:0;background:linear-gradient(90deg,var(--bg,#0B1230) 55%,transparent)}
.u-tabs-arr.r{right:0;background:linear-gradient(270deg,var(--bg,#0B1230) 55%,transparent)}
.u-tabs-wrap.can-l .u-tabs-arr.l,.u-tabs-wrap.can-r .u-tabs-arr.r{display:block}
.u-tabs{scroll-behavior:smooth}
@media (min-width:900px){.u-tabs{flex-wrap:wrap;overflow:visible}.u-tabs-arr{display:none!important}}
/* Weekly report */
.row-end{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.wk-goals{margin:0 0 12px;padding-left:22px;display:grid;gap:6px}
.wk-glist,.wk-rl{display:grid;gap:8px;margin:6px 0 8px}
.wk-gi{display:flex;gap:8px;align-items:center}.wk-gi .num{width:20px;color:var(--muted);text-align:right}.wk-gi input{flex:1;min-width:0}
.wk-gr{display:grid;grid-template-columns:1fr 160px;gap:6px 10px;padding:10px 0;border-top:1px solid var(--line)}.wk-gr:first-of-type{border-top:0}
.wk-gr b{grid-column:1/-1;font-weight:600}.wk-gr .wk-gn{grid-column:1/-1}
@media (min-width:700px){.wk-gr{grid-template-columns:1fr 170px 1.2fr}.wk-gr b{grid-column:1}.wk-gr .wk-gn{grid-column:auto}}
.wk-ri{display:grid;grid-template-columns:1.4fr 1fr;gap:8px}
.wk-fs{border:1px solid var(--line);border-radius:12px;padding:12px 14px 4px;display:grid;gap:14px;margin:0}.wk-fs legend{padding:0 6px;font-weight:700}
.wk-bars{display:grid;gap:10px;margin:4px 0 10px}
.wk-a{padding:8px 0;border-top:1px solid var(--line)}.wk-a:first-child{border-top:0}.wk-a b{display:block;font-size:13px;color:var(--muted);font-weight:600}.wk-a p{margin:3px 0 0;white-space:pre-line}
.wk-ins{list-style:none;margin:0;padding:0;display:grid;gap:6px}.wk-ins li{padding:8px 12px;border-radius:10px;border-left:4px solid var(--sky);background:var(--card2,rgba(0,169,239,.06))}
.wk-ins li.warn{border-color:var(--warn)}.wk-ins li.bad{border-color:var(--bad)}.wk-ins li.ok{border-color:var(--ok)}
/* Chat v2: reactions, replies, pins, menus, images, mentions, celebrations */
.msg{position:relative}
.msg-more{position:absolute;top:2px;right:2px;opacity:0;border:0;background:var(--card,#16204a);color:var(--muted);border-radius:8px;padding:2px 8px;font-size:16px;cursor:pointer}
.msg:hover .msg-more,.msg.sel .msg-more{opacity:1}
@media (hover:none){.msg-more{opacity:.55}}
.msg.flash{animation:msgflash 1.8s ease}@keyframes msgflash{0%,40%{background:rgba(0,169,239,.18)}100%{background:transparent}}
.msg.is-pinned{background:rgba(232,49,47,.04)}
.pin-tag{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--warn);margin-left:6px}.pin-tag svg{width:12px;height:12px}
.msg-ed{font-size:11px;color:var(--muted)}
.msg-t.gone{font-style:italic;color:var(--muted)}
.msg-reply{display:block;text-align:left;width:100%;max-width:520px;border:0;border-left:3px solid var(--sky);background:rgba(0,169,239,.07);color:inherit;padding:5px 9px;border-radius:6px;margin:2px 0 4px;font-size:12.5px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-img{display:block;margin-top:6px}.msg-img img{max-width:min(320px,100%);max-height:320px;border-radius:12px;display:block;border:1px solid var(--line)}
.msg-reacts{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.msg-reacts button{border:1px solid var(--line);background:transparent;color:inherit;border-radius:99px;padding:1px 8px;font-size:13px;cursor:pointer}
.msg-reacts button.on{border-color:var(--sky);background:rgba(0,169,239,.14)}
.msg-menu{margin:2px 0 8px 44px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--card,#16204a);display:grid;gap:6px;max-width:520px}
.mm-reacts{display:flex;flex-wrap:wrap;gap:2px}.mm-reacts button{border:0;background:none;font-size:20px;padding:4px 5px;cursor:pointer;border-radius:8px}.mm-reacts button:hover{background:rgba(255,255,255,.08)}
.mm-acts{display:flex;flex-wrap:wrap;gap:4px}.mm-acts button{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:transparent;color:inherit;border-radius:8px;padding:5px 10px;font-size:13px;cursor:pointer}.mm-acts button svg{width:14px;height:14px}.mm-acts .bad{color:var(--bad)}
.msg-task{display:flex;align-items:center;gap:8px;margin-top:6px;max-width:420px;width:100%;text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.03);color:inherit;border-radius:10px;padding:7px 10px;cursor:pointer}
.msg-task span{flex:1;min-width:0}.msg-task b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-task small{color:var(--muted);font-size:11.5px}.msg-task .pill{flex:none}
.msg-sys{display:flex;flex-wrap:wrap;align-items:center;gap:6px;justify-content:center;font-size:12.5px;color:var(--muted);margin:6px 0}.msg-sys svg{width:13px;height:13px}
.msg-kudos{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:linear-gradient(120deg,rgba(255,196,0,.16),rgba(0,169,239,.12));margin:4px 0}
.kd-badge{font-size:34px;line-height:1}.msg-kudos b{display:block}.msg-kudos span{font-size:13px;color:var(--muted)}
.msg-announce .msg-b{border-left:3px solid var(--warn);padding-left:10px}.msg-ann-h{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--warn);font-size:13px}.msg-ann-h svg{width:14px;height:14px}
.mention.me{background:rgba(255,196,0,.18);border-radius:4px;padding:0 2px}
.chat-pins{border-bottom:1px solid var(--line);font-size:13px}.chat-pins>button{display:flex;align-items:center;gap:6px;width:100%;border:0;background:rgba(232,49,47,.06);color:inherit;padding:7px 14px;cursor:pointer;text-align:left}.chat-pins>button span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-pins svg{width:14px;height:14px}
.pin-list{display:grid;max-height:220px;overflow:auto}.pin-list button{border:0;border-top:1px solid var(--line);background:none;color:inherit;text-align:left;padding:7px 14px;cursor:pointer;font-size:13px}
.chat-mention{position:relative;margin:0 10px;border:1px solid var(--line);border-radius:12px;background:var(--card,#16204a);max-height:240px;overflow:auto}.chat-mention .pick-row.on{background:rgba(0,169,239,.14)}
.chat-emoji{display:flex;flex-wrap:wrap;gap:2px;padding:6px 10px;border-top:1px solid var(--line)}.chat-emoji button{border:0;background:none;font-size:20px;padding:3px 5px;cursor:pointer;border-radius:8px}
.att-thumb{width:40px;height:40px;object-fit:cover;border-radius:6px}
.chat-side .chat-search{flex:0 0 auto;max-width:none;margin:0 10px 8px}
@media (max-width:600px){.hide-sm{display:none}.msg-menu{margin-left:0}}
/* Rewards */
.rw-top{display:flex;gap:14px;align-items:center;background:linear-gradient(120deg,rgba(255,196,0,.14),rgba(0,169,239,.10))}
.rw-top h2{margin:2px 0}.rw-top p{margin:2px 0 0}.rw-top.sm{padding:12px 16px}.rw-top .meta{display:block;font-size:12.5px;color:var(--muted)}
.rw-trophy{font-size:40px;line-height:1}.rw-top.sm .rw-trophy{font-size:30px}
.rw-card{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;background:var(--card,transparent)}
.rw-card p{margin:4px 0}.rw-card .meta{font-size:12px;color:var(--muted)}
.rw-ic{font-size:28px;line-height:1;flex:none}
.rw-board{list-style:none;margin:0;padding:0;display:grid;gap:6px}.rw-board li{display:flex;align-items:center;gap:10px;padding:6px 4px;border-top:1px solid var(--line)}.rw-board li:first-child{border-top:0}.rw-board .num{width:22px;text-align:right}
.rw-defs{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.rw-def{display:flex;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px}.rw-def p{margin:2px 0;font-size:13px}.rw-def .meta{font-size:12px;color:var(--muted)}
.rw-pick{display:grid;gap:6px}.rw-opt{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.rw-opt:has(input:checked){border-color:var(--sky);background:rgba(0,169,239,.08)}.rw-opt small{display:block;color:var(--muted);font-size:12px}
/* Announcements */
.ann{border:1px solid var(--line);border-left:4px solid var(--sky);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--card,transparent)}
.ann-important{border-left-color:var(--warn)}.ann-urgent{border-left-color:var(--bad)}.ann-celebrate{border-left-color:var(--ok)}.ann.is-read{opacity:.8}
.ann-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.ann-h .meta{font-size:12px;color:var(--muted)}
.ann-b{margin:8px 0;white-space:normal}.ann-img{max-width:100%;max-height:340px;border-radius:10px;margin-top:8px;display:block}
.ann-home{margin-bottom:12px}
/* Calendar */
.cal-wrap{display:grid;gap:14px}@media (min-width:1100px){.cal-wrap{grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr);align-items:start}}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-w{font-size:11.5px;color:var(--muted);text-align:center;padding:4px 0;font-weight:600}
.cal-c{min-height:84px;border:1px solid var(--line);border-radius:10px;padding:5px;display:flex;flex-direction:column;gap:2px;align-items:stretch;text-align:left;background:transparent;color:inherit;cursor:pointer;overflow:hidden}
.cal-c.out{border:0;cursor:default}.cal-c.today{border-color:var(--sky);box-shadow:inset 0 0 0 1px var(--sky)}.cal-c.hol{background:rgba(232,49,47,.07)}.cal-c.sel{background:rgba(0,169,239,.12)}
.cal-n{font-size:12.5px;font-weight:700}
.cal-e{font-size:11px;line-height:1.25;padding:1px 5px;border-radius:5px;background:color-mix(in srgb,var(--c) 22%,transparent);border-left:3px solid var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-more{font-size:10.5px;color:var(--muted)}
.cal-dot{width:10px;height:10px;border-radius:50%;flex:none;margin-top:6px}
@media (max-width:640px){.cal-c{min-height:52px;padding:3px}.cal-e{font-size:0;height:6px;padding:0;border-left:0;background:var(--c)}.cal-more{display:none}}
/* Tickets */
.tk-thread{display:grid;gap:8px;margin:12px 0}
.tk-msg{border:1px solid var(--line);border-radius:12px;padding:9px 12px;background:var(--card,transparent)}.tk-msg.staff{border-left:3px solid var(--sky)}.tk-msg.internal{border-left:3px solid var(--warn);background:rgba(255,196,0,.06)}
.tk-msg .meta{font-size:12px;color:var(--muted);margin-left:8px}.tk-msg p{margin:4px 0 0}
.tk-stars button{border:0;background:none;font-size:22px;color:var(--warn);cursor:pointer;padding:0 2px}.tk-stars button:hover~button{opacity:.35}
.toggle-inline{display:inline-flex;gap:6px;align-items:center;font-size:13px}
/* Home hero: greeting + a line house that builds once on arrival (about 5 s), then rests finished.
   Shown finished straight away on later visits in the same session and with reduced motion. */
.home-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 26px;padding:14px 4px 6px}
.home-hero .greet{min-width:0}
.hero-line{margin:6px 0 0;color:var(--muted);font-size:14px}
.build-anim{width:min(380px,42%);height:auto;color:color-mix(in srgb,var(--ink) 38%,transparent);flex:none;overflow:visible}
.build-anim .ba-sun,.build-anim .ba-win,.build-anim .ba-beam{color:var(--sky)}
.build-anim .ba-sun{stroke:var(--sky);opacity:.55}
.build-anim .ba-ground{opacity:.5}
.build-anim .ba-d{stroke-dasharray:1;stroke-dashoffset:1;animation:baDraw 1.6s cubic-bezier(.16,1,.3,1) forwards}
.build-anim .ba-walls{animation-delay:.5s}.build-anim .ba-roof{animation-delay:1.3s}.build-anim .ba-chim{animation-delay:1.9s}
.build-anim .ba-win,.build-anim .ba-door,.build-anim .ba-tree{opacity:0;animation:baPop .9s cubic-bezier(.16,1,.3,1) forwards}
.build-anim .ba-win{stroke:var(--sky);animation-delay:2.3s}.build-anim .ba-door{animation-delay:2.6s}.build-anim .ba-tree{animation-delay:2.9s}
.build-anim .ba-win rect{fill:color-mix(in srgb,var(--sky) 14%,transparent)}
.build-anim .ba-scaf{opacity:.45;animation:baScaf 1.4s ease 3.6s forwards}
.build-anim .ba-bricks rect{opacity:0;animation:baBrick .7s cubic-bezier(.16,1,.3,1) forwards}
.build-anim .ba-bricks .b1{animation-delay:.9s}.build-anim .ba-bricks .b2{animation-delay:1.2s}.build-anim .ba-bricks .b3{animation-delay:1.5s}
.build-anim .ba-jib{transform-origin:370px 22px;animation:baSwing 2.4s ease-in-out 3 alternate}
.build-anim .ba-hook{transform-origin:320px 22px;animation:baSway 1.6s ease-in-out 4 alternate}
.build-anim .ba-beam{stroke:var(--sky)}
@keyframes baDraw{to{stroke-dashoffset:0}}
@keyframes baPop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes baScaf{to{opacity:0}}
@keyframes baBrick{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes baSwing{from{transform:rotate(-2deg)}to{transform:rotate(2.5deg)}}
@keyframes baSway{from{transform:rotate(-1.5deg)}to{transform:rotate(1.5deg)}}
.build-anim.still *{animation:none!important}.build-anim.still .ba-d{stroke-dashoffset:0}.build-anim.still .ba-win,.build-anim.still .ba-door,.build-anim.still .ba-tree,.build-anim.still .ba-bricks rect{opacity:1}.build-anim.still .ba-scaf{opacity:0}
@media (prefers-reduced-motion: reduce){.build-anim *{animation:none!important}.build-anim .ba-d{stroke-dashoffset:0}.build-anim .ba-win,.build-anim .ba-door,.build-anim .ba-tree,.build-anim .ba-bricks rect{opacity:1}.build-anim .ba-scaf{opacity:0}}
@media (max-width:640px){.home-hero{flex-direction:column;align-items:stretch;margin-bottom:18px}.build-anim{width:100%;max-width:320px;align-self:center}}
/* Portal health */
.hl-head{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.hl-head h2{margin:2px 0}
.hl-score{position:relative;width:96px;height:96px;flex:none}
.hl-score b{position:absolute;inset:0;display:grid;place-items:center;font:600 32px/1 var(--display);font-variant-numeric:lining-nums}
.hl-ring{width:96px;height:96px;transform:rotate(-90deg)}
.hl-ring circle{fill:none;stroke-width:9;stroke-linecap:round}
.hl-ring .t{stroke:var(--line)}
.hl-ring .v{transition:stroke-dasharray 1.2s cubic-bezier(.16,1,.3,1)}
.hl-item{align-items:flex-start}.hl-item .pill{flex:none;margin-top:2px;min-width:64px;text-align:center}
.hl-fix{display:flex;gap:6px;align-items:flex-start;margin-top:6px;font-size:13px;color:var(--ink)}.hl-fix svg{width:14px;height:14px;flex:none;margin-top:3px;color:var(--sky-ink)}
.hl-areas{display:grid;gap:4px}@media (min-width:900px){.hl-areas{grid-template-columns:1fr 1fr}}
.hl-list{margin:10px 0 14px;padding-left:20px;display:grid;gap:4px}
@media (prefers-reduced-motion: reduce){.hl-ring .v{transition:none}}
.doc-case-text{font:13.5px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;min-height:120px;resize:vertical}
/* Celebrations */
.cb-row{align-items:flex-start}.cb-cake{font-size:24px;line-height:1;margin-top:2px}
.cb-row.today{background:color-mix(in srgb,var(--sky) 7%,transparent);border-radius:12px}
.cb-done{display:flex;gap:5px;align-items:center;color:var(--ok)}.cb-done svg{width:13px;height:13px}
.cb-miss input{max-width:150px}
@media (max-width:640px){.cb-row{flex-wrap:wrap}.cb-row .mini-btns{width:100%}}
/* ARCH-BG: architectural line art behind every page (generated by tools/arch_svg.py; do not edit by hand) */
:root{--arch:#1F2A5E;--arch-o:.07}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]):not([data-theme="blue"]){--arch:#BFD3FF;--arch-o:.1}}
:root[data-theme="dark"]{--arch:#BFD3FF;--arch-o:.1}
.arch-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.arch-bg i{position:absolute;display:block;background:var(--arch);opacity:var(--arch-o)}
.arch-bg .sky{left:-60px;right:-60px;bottom:0;height:min(38vh,340px);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1800 620' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg stroke-opacity='0.12'%3E%3Cpath d='M36 250L446 250L446 560L36 560Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.14'%3E%3Cpath d='M540 560L-990 620'/%3E%3Cpath d='M580 560L-780 620'/%3E%3Cpath d='M620 560L-570 620'/%3E%3Cpath d='M660 560L-360 620'/%3E%3Cpath d='M700 560L-150 620'/%3E%3Cpath d='M740 560L60 620'/%3E%3Cpath d='M780 560L270 620'/%3E%3Cpath d='M820 560L480 620'/%3E%3Cpath d='M860 560L690 620'/%3E%3Cpath d='M900 560L900 620'/%3E%3Cpath d='M940 560L1110 620'/%3E%3Cpath d='M980 560L1320 620'/%3E%3Cpath d='M1020 560L1530 620'/%3E%3Cpath d='M1060 560L1740 620'/%3E%3Cpath d='M1100 560L1950 620'/%3E%3Cpath d='M1140 560L2160 620'/%3E%3Cpath d='M1180 560L2370 620'/%3E%3Cpath d='M1220 560L2580 620'/%3E%3Cpath d='M1260 560L2790 620'/%3E%3C/g%3E%3Cg stroke-opacity='0.2'%3E%3Cpath d='M60 268L60 384' stroke-dasharray='3 5'/%3E%3Cpath d='M290 268L290 384' stroke-dasharray='3 5'/%3E%3Cpath d='M940 150L1070 150'/%3E%3Cpath d='M940 172L1070 172'/%3E%3Cpath d='M940 194L1070 194'/%3E%3Cpath d='M940 216L1070 216'/%3E%3Cpath d='M940 238L1070 238'/%3E%3Cpath d='M940 260L1070 260'/%3E%3Cpath d='M940 282L1070 282'/%3E%3Cpath d='M940 304L1070 304'/%3E%3Cpath d='M940 326L1070 326'/%3E%3Cpath d='M940 348L1070 348'/%3E%3Cpath d='M940 370L1070 370'/%3E%3Cpath d='M940 392L1070 392'/%3E%3Cpath d='M940 414L1070 414'/%3E%3Cpath d='M940 436L1070 436'/%3E%3Cpath d='M940 458L1070 458'/%3E%3Cpath d='M940 480L1070 480'/%3E%3Cpath d='M940 502L1070 502'/%3E%3Cpath d='M940 524L1070 524'/%3E%3Cpath d='M955 140L955 540'/%3E%3Cpath d='M978 140L978 540'/%3E%3Cpath d='M1001 140L1001 540'/%3E%3Cpath d='M1024 140L1024 540'/%3E%3Cpath d='M1047 140L1047 540'/%3E%3C/g%3E%3Cg stroke-opacity='0.25'%3E%3Cpath d='M545 490L545 540'/%3E%3Cpath d='M615 490L615 540'/%3E%3Cpath d='M685 490L685 540'/%3E%3Cpath d='M755 490L755 540'/%3E%3C/g%3E%3Cg stroke-opacity='0.275'%3E%3Cpath d='M101 410L101 456'/%3E%3Cpath d='M101 476L101 522'/%3E%3Cpath d='M167 410L167 456'/%3E%3Cpath d='M167 476L167 522'/%3E%3Cpath d='M233 410L233 456'/%3E%3Cpath d='M233 476L233 522'/%3E%3Cpath d='M1184 440L1184 470'/%3E%3Cpath d='M1222 440L1222 470'/%3E%3Cpath d='M1270 440L1270 470'/%3E%3Cpath d='M1308 440L1308 470'/%3E%3Cpath d='M1356 440L1356 470'/%3E%3Cpath d='M1394 440L1394 470'/%3E%3Cpath d='M1442 440L1442 470'/%3E%3Cpath d='M1480 440L1480 470'/%3E%3Cpath d='M1580 490L1580 526'/%3E%3Cpath d='M1650 490L1650 526'/%3E%3Cpath d='M1720 490L1720 526'/%3E%3C/g%3E%3Cg stroke-opacity='0.3'%3E%3Cpath d='M296 440L296 462'/%3E%3Cpath d='M306 440L306 462'/%3E%3Cpath d='M316 440L316 462'/%3E%3Cpath d='M326 440L326 462'/%3E%3Cpath d='M336 440L336 462'/%3E%3Cpath d='M346 440L346 462'/%3E%3Cpath d='M356 440L356 462'/%3E%3Cpath d='M366 440L366 462'/%3E%3Cpath d='M376 440L376 462'/%3E%3Cpath d='M386 440L386 462'/%3E%3Cpath d='M396 440L396 462'/%3E%3Cpath d='M406 440L406 462'/%3E%3Cpath d='M60 262L290 262'/%3E%3Cpath d='M60 256L60 268'/%3E%3Cpath d='M56 266L64 258'/%3E%3Cpath d='M290 256L290 268'/%3E%3Cpath d='M286 266L294 258'/%3E%3Cpath d='M432.4 520.8A13.2 13.2 0 0 1 445.6 498.0'/%3E%3Cpath d='M455.8 482.6A12.1 12.1 0 0 1 465.9 504.5'/%3E%3Cpath d='M470 550L840 550'/%3E%3Cpath d='M560 360L880 360'/%3E%3Cpath d='M560 354L560 366'/%3E%3Cpath d='M556 364L564 356'/%3E%3Cpath d='M880 354L880 366'/%3E%3Cpath d='M876 364L884 356'/%3E%3Cpath d='M1105.6 528.0A10.8 10.8 0 0 1 1116.4 509.2'/%3E%3Cpath d='M1124.7 496.7A9.9 9.9 0 0 1 1133.0 514.6'/%3E%3Cpath d='M1580 420L1620 472'/%3E%3Cpath d='M1720 420L1680 472'/%3E%3Cpath d='M1500 560L1500 538'/%3E%3Cpath d='M1514 560L1514 538'/%3E%3Cpath d='M1528 560L1528 538'/%3E%3Cpath d='M1542 560L1542 538'/%3E%3Cpath d='M1556 560L1556 538'/%3E%3Cpath d='M1570 560L1570 538'/%3E%3Cpath d='M1584 560L1584 538'/%3E%3Cpath d='M1598 560L1598 538'/%3E%3Cpath d='M1612 560L1612 538'/%3E%3Cpath d='M1626 560L1626 538'/%3E%3Cpath d='M1640 560L1640 538'/%3E%3Cpath d='M1654 560L1654 538'/%3E%3Cpath d='M1668 560L1668 538'/%3E%3Cpath d='M1682 560L1682 538'/%3E%3Cpath d='M1696 560L1696 538'/%3E%3Cpath d='M1710 560L1710 538'/%3E%3Cpath d='M1724 560L1724 538'/%3E%3Cpath d='M1738 560L1738 538'/%3E%3Cpath d='M1752 560L1752 538'/%3E%3Cpath d='M1766 560L1766 538'/%3E%3Cpath d='M1780 560L1780 538'/%3E%3Cpath d='M1794 560L1794 538'/%3E%3Cpath d='M1500 544L1800 544'/%3E%3Cpath d='M1480.8 517.3A14.4 14.4 0 0 1 1495.2 492.3'/%3E%3Cpath d='M1506.3 475.6A13.2 13.2 0 0 1 1517.4 499.4'/%3E%3Ccircle cx='36' cy='250' r='5'/%3E%3Ccircle cx='446' cy='250' r='5'/%3E%3Ccircle cx='36' cy='560' r='5'/%3E%3Ccircle cx='446' cy='560' r='5'/%3E%3C/g%3E%3Cg stroke-opacity='0.4'%3E%3Cpath d='M998 82L1012 82'/%3E%3C/g%3E%3Cg stroke-opacity='0.45'%3E%3Cpath d='M290 462L410 462'/%3E%3Cpath d='M580 392L580 470'/%3E%3Cpath d='M610 392L610 470'/%3E%3Cpath d='M640 392L640 470'/%3E%3Cpath d='M670 392L670 470'/%3E%3Cpath d='M700 392L700 470'/%3E%3Cpath d='M730 392L730 470'/%3E%3Cpath d='M760 392L760 470'/%3E%3Cpath d='M790 392L790 470'/%3E%3Cpath d='M820 392L820 470'/%3E%3Cpath d='M850 392L850 470'/%3E%3C/g%3E%3Cg stroke-opacity='0.5'%3E%3Cpath d='M520 490L570 490L570 540L520 540Z'/%3E%3Cpath d='M590 490L640 490L640 540L590 540Z'/%3E%3Cpath d='M660 490L710 490L710 540L660 540Z'/%3E%3Cpath d='M730 490L780 490L780 540L730 540Z'/%3E%3Cpath d='M1218 372L1230 372L1230 400L1218 400Z'/%3E%3Cpath d='M1390 372L1402 372L1402 400L1390 400Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.55'%3E%3Cpath d='M175 300L175 286'/%3E%3Cpath d='M80 410L122 410L122 456L80 456Z'/%3E%3Cpath d='M80 476L122 476L122 522L80 522Z'/%3E%3Cpath d='M146 410L188 410L188 456L146 456Z'/%3E%3Cpath d='M146 476L188 476L188 522L146 522Z'/%3E%3Cpath d='M212 410L254 410L254 456L212 456Z'/%3E%3Cpath d='M212 476L254 476L254 522L212 522Z'/%3E%3Cpath d='M450 560L450 522.6'/%3E%3Ccircle cx='450' cy='502.8' r='22'/%3E%3Cpath d='M1005 108L1005 70'/%3E%3Cpath d='M1120 560L1120 529.4'/%3E%3Ccircle cx='1120' cy='513.2' r='18'/%3E%3Cpath d='M1172 440L1196 440L1196 470L1172 470Z'/%3E%3Cpath d='M1210 440L1234 440L1234 470L1210 470Z'/%3E%3Cpath d='M1258 440L1282 440L1282 470L1258 470Z'/%3E%3Cpath d='M1296 440L1320 440L1320 470L1296 470Z'/%3E%3Cpath d='M1344 440L1368 440L1368 470L1344 470Z'/%3E%3Cpath d='M1382 440L1406 440L1406 470L1382 470Z'/%3E%3Cpath d='M1430 440L1454 440L1454 470L1430 470Z'/%3E%3Cpath d='M1468 440L1492 440L1492 470L1468 470Z'/%3E%3Cpath d='M1560 490L1600 490L1600 526L1560 526Z'/%3E%3Cpath d='M1630 490L1670 490L1670 526L1630 526Z'/%3E%3Cpath d='M1700 490L1740 490L1740 526L1700 526Z'/%3E%3Cpath d='M1500 560L1500 519.2'/%3E%3Ccircle cx='1500' cy='497.6' r='24'/%3E%3C/g%3E%3Cg stroke-opacity='0.7'%3E%3Cpath d='M0 560L1800 560'/%3E%3Cpath d='M950 108L1060 108L1060 130L950 130Z'/%3E%3Cpath d='M1190 500L1216 500L1216 560L1190 560Z'/%3E%3Cpath d='M1276 500L1302 500L1302 560L1276 560Z'/%3E%3Cpath d='M1362 500L1388 500L1388 560L1362 560Z'/%3E%3Cpath d='M1448 500L1474 500L1474 560L1448 560Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.8'%3E%3Cpath d='M150 500L200 500L200 560L150 560Z'/%3E%3Cpath d='M548 392L892 392'/%3E%3Cpath d='M760 500L790 500L790 560L760 560Z'/%3E%3Cpath d='M980 520L1030 520L1030 560L980 560Z'/%3E%3Cpath d='M1690 500L1724 500L1724 560L1690 560Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.9'%3E%3Cpath d='M1246 420L1246 400L1332 400L1332 420'/%3E%3Cpath d='M1418 420L1418 400L1504 400L1504 420'/%3E%3C/g%3E%3Cg stroke-opacity='1'%3E%3Cpath d='M60 390L290 390L290 560L60 560Z'/%3E%3Cpath d='M48 392L175 300L302 392'/%3E%3Cpath d='M290 440L410 440L410 560L290 560Z'/%3E%3Cpath d='M282 440L418 440'/%3E%3Cpath d='M500 470L800 470L800 560L500 560Z'/%3E%3Cpath d='M560 392L880 392L880 470L560 470Z'/%3E%3Cpath d='M548 384L892 384'/%3E%3Cpath d='M930 130L1080 130L1080 560L930 560Z'/%3E%3Cpath d='M920 130L1090 130'/%3E%3Cpath d='M1160 420L1246 420L1246 560L1160 560Z'/%3E%3Cpath d='M1156 422L1203 370L1250 422'/%3E%3Cpath d='M1246 420L1332 420L1332 560L1246 560Z'/%3E%3Cpath d='M1332 420L1418 420L1418 560L1332 560Z'/%3E%3Cpath d='M1328 422L1375 370L1422 422'/%3E%3Cpath d='M1418 420L1504 420L1504 560L1418 560Z'/%3E%3Cpath d='M1540 470L1760 470L1760 560L1540 560Z'/%3E%3Cpath d='M1528 472L1580 420L1720 420L1772 472'/%3E%3C/g%3E%3C/svg%3E") bottom center/auto 100% repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1800 620' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg stroke-opacity='0.12'%3E%3Cpath d='M36 250L446 250L446 560L36 560Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.14'%3E%3Cpath d='M540 560L-990 620'/%3E%3Cpath d='M580 560L-780 620'/%3E%3Cpath d='M620 560L-570 620'/%3E%3Cpath d='M660 560L-360 620'/%3E%3Cpath d='M700 560L-150 620'/%3E%3Cpath d='M740 560L60 620'/%3E%3Cpath d='M780 560L270 620'/%3E%3Cpath d='M820 560L480 620'/%3E%3Cpath d='M860 560L690 620'/%3E%3Cpath d='M900 560L900 620'/%3E%3Cpath d='M940 560L1110 620'/%3E%3Cpath d='M980 560L1320 620'/%3E%3Cpath d='M1020 560L1530 620'/%3E%3Cpath d='M1060 560L1740 620'/%3E%3Cpath d='M1100 560L1950 620'/%3E%3Cpath d='M1140 560L2160 620'/%3E%3Cpath d='M1180 560L2370 620'/%3E%3Cpath d='M1220 560L2580 620'/%3E%3Cpath d='M1260 560L2790 620'/%3E%3C/g%3E%3Cg stroke-opacity='0.2'%3E%3Cpath d='M60 268L60 384' stroke-dasharray='3 5'/%3E%3Cpath d='M290 268L290 384' stroke-dasharray='3 5'/%3E%3Cpath d='M940 150L1070 150'/%3E%3Cpath d='M940 172L1070 172'/%3E%3Cpath d='M940 194L1070 194'/%3E%3Cpath d='M940 216L1070 216'/%3E%3Cpath d='M940 238L1070 238'/%3E%3Cpath d='M940 260L1070 260'/%3E%3Cpath d='M940 282L1070 282'/%3E%3Cpath d='M940 304L1070 304'/%3E%3Cpath d='M940 326L1070 326'/%3E%3Cpath d='M940 348L1070 348'/%3E%3Cpath d='M940 370L1070 370'/%3E%3Cpath d='M940 392L1070 392'/%3E%3Cpath d='M940 414L1070 414'/%3E%3Cpath d='M940 436L1070 436'/%3E%3Cpath d='M940 458L1070 458'/%3E%3Cpath d='M940 480L1070 480'/%3E%3Cpath d='M940 502L1070 502'/%3E%3Cpath d='M940 524L1070 524'/%3E%3Cpath d='M955 140L955 540'/%3E%3Cpath d='M978 140L978 540'/%3E%3Cpath d='M1001 140L1001 540'/%3E%3Cpath d='M1024 140L1024 540'/%3E%3Cpath d='M1047 140L1047 540'/%3E%3C/g%3E%3Cg stroke-opacity='0.25'%3E%3Cpath d='M545 490L545 540'/%3E%3Cpath d='M615 490L615 540'/%3E%3Cpath d='M685 490L685 540'/%3E%3Cpath d='M755 490L755 540'/%3E%3C/g%3E%3Cg stroke-opacity='0.275'%3E%3Cpath d='M101 410L101 456'/%3E%3Cpath d='M101 476L101 522'/%3E%3Cpath d='M167 410L167 456'/%3E%3Cpath d='M167 476L167 522'/%3E%3Cpath d='M233 410L233 456'/%3E%3Cpath d='M233 476L233 522'/%3E%3Cpath d='M1184 440L1184 470'/%3E%3Cpath d='M1222 440L1222 470'/%3E%3Cpath d='M1270 440L1270 470'/%3E%3Cpath d='M1308 440L1308 470'/%3E%3Cpath d='M1356 440L1356 470'/%3E%3Cpath d='M1394 440L1394 470'/%3E%3Cpath d='M1442 440L1442 470'/%3E%3Cpath d='M1480 440L1480 470'/%3E%3Cpath d='M1580 490L1580 526'/%3E%3Cpath d='M1650 490L1650 526'/%3E%3Cpath d='M1720 490L1720 526'/%3E%3C/g%3E%3Cg stroke-opacity='0.3'%3E%3Cpath d='M296 440L296 462'/%3E%3Cpath d='M306 440L306 462'/%3E%3Cpath d='M316 440L316 462'/%3E%3Cpath d='M326 440L326 462'/%3E%3Cpath d='M336 440L336 462'/%3E%3Cpath d='M346 440L346 462'/%3E%3Cpath d='M356 440L356 462'/%3E%3Cpath d='M366 440L366 462'/%3E%3Cpath d='M376 440L376 462'/%3E%3Cpath d='M386 440L386 462'/%3E%3Cpath d='M396 440L396 462'/%3E%3Cpath d='M406 440L406 462'/%3E%3Cpath d='M60 262L290 262'/%3E%3Cpath d='M60 256L60 268'/%3E%3Cpath d='M56 266L64 258'/%3E%3Cpath d='M290 256L290 268'/%3E%3Cpath d='M286 266L294 258'/%3E%3Cpath d='M432.4 520.8A13.2 13.2 0 0 1 445.6 498.0'/%3E%3Cpath d='M455.8 482.6A12.1 12.1 0 0 1 465.9 504.5'/%3E%3Cpath d='M470 550L840 550'/%3E%3Cpath d='M560 360L880 360'/%3E%3Cpath d='M560 354L560 366'/%3E%3Cpath d='M556 364L564 356'/%3E%3Cpath d='M880 354L880 366'/%3E%3Cpath d='M876 364L884 356'/%3E%3Cpath d='M1105.6 528.0A10.8 10.8 0 0 1 1116.4 509.2'/%3E%3Cpath d='M1124.7 496.7A9.9 9.9 0 0 1 1133.0 514.6'/%3E%3Cpath d='M1580 420L1620 472'/%3E%3Cpath d='M1720 420L1680 472'/%3E%3Cpath d='M1500 560L1500 538'/%3E%3Cpath d='M1514 560L1514 538'/%3E%3Cpath d='M1528 560L1528 538'/%3E%3Cpath d='M1542 560L1542 538'/%3E%3Cpath d='M1556 560L1556 538'/%3E%3Cpath d='M1570 560L1570 538'/%3E%3Cpath d='M1584 560L1584 538'/%3E%3Cpath d='M1598 560L1598 538'/%3E%3Cpath d='M1612 560L1612 538'/%3E%3Cpath d='M1626 560L1626 538'/%3E%3Cpath d='M1640 560L1640 538'/%3E%3Cpath d='M1654 560L1654 538'/%3E%3Cpath d='M1668 560L1668 538'/%3E%3Cpath d='M1682 560L1682 538'/%3E%3Cpath d='M1696 560L1696 538'/%3E%3Cpath d='M1710 560L1710 538'/%3E%3Cpath d='M1724 560L1724 538'/%3E%3Cpath d='M1738 560L1738 538'/%3E%3Cpath d='M1752 560L1752 538'/%3E%3Cpath d='M1766 560L1766 538'/%3E%3Cpath d='M1780 560L1780 538'/%3E%3Cpath d='M1794 560L1794 538'/%3E%3Cpath d='M1500 544L1800 544'/%3E%3Cpath d='M1480.8 517.3A14.4 14.4 0 0 1 1495.2 492.3'/%3E%3Cpath d='M1506.3 475.6A13.2 13.2 0 0 1 1517.4 499.4'/%3E%3Ccircle cx='36' cy='250' r='5'/%3E%3Ccircle cx='446' cy='250' r='5'/%3E%3Ccircle cx='36' cy='560' r='5'/%3E%3Ccircle cx='446' cy='560' r='5'/%3E%3C/g%3E%3Cg stroke-opacity='0.4'%3E%3Cpath d='M998 82L1012 82'/%3E%3C/g%3E%3Cg stroke-opacity='0.45'%3E%3Cpath d='M290 462L410 462'/%3E%3Cpath d='M580 392L580 470'/%3E%3Cpath d='M610 392L610 470'/%3E%3Cpath d='M640 392L640 470'/%3E%3Cpath d='M670 392L670 470'/%3E%3Cpath d='M700 392L700 470'/%3E%3Cpath d='M730 392L730 470'/%3E%3Cpath d='M760 392L760 470'/%3E%3Cpath d='M790 392L790 470'/%3E%3Cpath d='M820 392L820 470'/%3E%3Cpath d='M850 392L850 470'/%3E%3C/g%3E%3Cg stroke-opacity='0.5'%3E%3Cpath d='M520 490L570 490L570 540L520 540Z'/%3E%3Cpath d='M590 490L640 490L640 540L590 540Z'/%3E%3Cpath d='M660 490L710 490L710 540L660 540Z'/%3E%3Cpath d='M730 490L780 490L780 540L730 540Z'/%3E%3Cpath d='M1218 372L1230 372L1230 400L1218 400Z'/%3E%3Cpath d='M1390 372L1402 372L1402 400L1390 400Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.55'%3E%3Cpath d='M175 300L175 286'/%3E%3Cpath d='M80 410L122 410L122 456L80 456Z'/%3E%3Cpath d='M80 476L122 476L122 522L80 522Z'/%3E%3Cpath d='M146 410L188 410L188 456L146 456Z'/%3E%3Cpath d='M146 476L188 476L188 522L146 522Z'/%3E%3Cpath d='M212 410L254 410L254 456L212 456Z'/%3E%3Cpath d='M212 476L254 476L254 522L212 522Z'/%3E%3Cpath d='M450 560L450 522.6'/%3E%3Ccircle cx='450' cy='502.8' r='22'/%3E%3Cpath d='M1005 108L1005 70'/%3E%3Cpath d='M1120 560L1120 529.4'/%3E%3Ccircle cx='1120' cy='513.2' r='18'/%3E%3Cpath d='M1172 440L1196 440L1196 470L1172 470Z'/%3E%3Cpath d='M1210 440L1234 440L1234 470L1210 470Z'/%3E%3Cpath d='M1258 440L1282 440L1282 470L1258 470Z'/%3E%3Cpath d='M1296 440L1320 440L1320 470L1296 470Z'/%3E%3Cpath d='M1344 440L1368 440L1368 470L1344 470Z'/%3E%3Cpath d='M1382 440L1406 440L1406 470L1382 470Z'/%3E%3Cpath d='M1430 440L1454 440L1454 470L1430 470Z'/%3E%3Cpath d='M1468 440L1492 440L1492 470L1468 470Z'/%3E%3Cpath d='M1560 490L1600 490L1600 526L1560 526Z'/%3E%3Cpath d='M1630 490L1670 490L1670 526L1630 526Z'/%3E%3Cpath d='M1700 490L1740 490L1740 526L1700 526Z'/%3E%3Cpath d='M1500 560L1500 519.2'/%3E%3Ccircle cx='1500' cy='497.6' r='24'/%3E%3C/g%3E%3Cg stroke-opacity='0.7'%3E%3Cpath d='M0 560L1800 560'/%3E%3Cpath d='M950 108L1060 108L1060 130L950 130Z'/%3E%3Cpath d='M1190 500L1216 500L1216 560L1190 560Z'/%3E%3Cpath d='M1276 500L1302 500L1302 560L1276 560Z'/%3E%3Cpath d='M1362 500L1388 500L1388 560L1362 560Z'/%3E%3Cpath d='M1448 500L1474 500L1474 560L1448 560Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.8'%3E%3Cpath d='M150 500L200 500L200 560L150 560Z'/%3E%3Cpath d='M548 392L892 392'/%3E%3Cpath d='M760 500L790 500L790 560L760 560Z'/%3E%3Cpath d='M980 520L1030 520L1030 560L980 560Z'/%3E%3Cpath d='M1690 500L1724 500L1724 560L1690 560Z'/%3E%3C/g%3E%3Cg stroke-opacity='0.9'%3E%3Cpath d='M1246 420L1246 400L1332 400L1332 420'/%3E%3Cpath d='M1418 420L1418 400L1504 400L1504 420'/%3E%3C/g%3E%3Cg stroke-opacity='1'%3E%3Cpath d='M60 390L290 390L290 560L60 560Z'/%3E%3Cpath d='M48 392L175 300L302 392'/%3E%3Cpath d='M290 440L410 440L410 560L290 560Z'/%3E%3Cpath d='M282 440L418 440'/%3E%3Cpath d='M500 470L800 470L800 560L500 560Z'/%3E%3Cpath d='M560 392L880 392L880 470L560 470Z'/%3E%3Cpath d='M548 384L892 384'/%3E%3Cpath d='M930 130L1080 130L1080 560L930 560Z'/%3E%3Cpath d='M920 130L1090 130'/%3E%3Cpath d='M1160 420L1246 420L1246 560L1160 560Z'/%3E%3Cpath d='M1156 422L1203 370L1250 422'/%3E%3Cpath d='M1246 420L1332 420L1332 560L1246 560Z'/%3E%3Cpath d='M1332 420L1418 420L1418 560L1332 560Z'/%3E%3Cpath d='M1328 422L1375 370L1422 422'/%3E%3Cpath d='M1418 420L1504 420L1504 560L1418 560Z'/%3E%3Cpath d='M1540 470L1760 470L1760 560L1540 560Z'/%3E%3Cpath d='M1528 472L1580 420L1720 420L1772 472'/%3E%3C/g%3E%3C/svg%3E") bottom center/auto 100% repeat-x}
.arch-bg .fade{position:absolute;left:0;right:0;bottom:0;height:min(38vh,340px);background:linear-gradient(to top,transparent 0%,transparent 30%,var(--bg) 100%);opacity:.85}
.arch-bg .corner{top:-40px;right:-60px;width:min(46vw,520px);aspect-ratio:1;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 560' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg stroke-opacity='0.07'%3E%3Cpath d='M0 0L0 560'/%3E%3Cpath d='M0 0L560 0'/%3E%3Cpath d='M28 0L28 560'/%3E%3Cpath d='M0 28L560 28'/%3E%3Cpath d='M56 0L56 560'/%3E%3Cpath d='M0 56L560 56'/%3E%3Cpath d='M84 0L84 560'/%3E%3Cpath d='M0 84L560 84'/%3E%3Cpath d='M112 0L112 560'/%3E%3Cpath d='M0 112L560 112'/%3E%3Cpath d='M140 0L140 560'/%3E%3Cpath d='M0 140L560 140'/%3E%3Cpath d='M168 0L168 560'/%3E%3Cpath d='M0 168L560 168'/%3E%3Cpath d='M196 0L196 560'/%3E%3Cpath d='M0 196L560 196'/%3E%3Cpath d='M224 0L224 560'/%3E%3Cpath d='M0 224L560 224'/%3E%3Cpath d='M252 0L252 560'/%3E%3Cpath d='M0 252L560 252'/%3E%3Cpath d='M280 0L280 560'/%3E%3Cpath d='M0 280L560 280'/%3E%3Cpath d='M308 0L308 560'/%3E%3Cpath d='M0 308L560 308'/%3E%3Cpath d='M336 0L336 560'/%3E%3Cpath d='M0 336L560 336'/%3E%3Cpath d='M364 0L364 560'/%3E%3Cpath d='M0 364L560 364'/%3E%3Cpath d='M392 0L392 560'/%3E%3Cpath d='M0 392L560 392'/%3E%3Cpath d='M420 0L420 560'/%3E%3Cpath d='M0 420L560 420'/%3E%3Cpath d='M448 0L448 560'/%3E%3Cpath d='M0 448L560 448'/%3E%3Cpath d='M476 0L476 560'/%3E%3Cpath d='M0 476L560 476'/%3E%3Cpath d='M504 0L504 560'/%3E%3Cpath d='M0 504L560 504'/%3E%3Cpath d='M532 0L532 560'/%3E%3Cpath d='M0 532L560 532'/%3E%3C/g%3E%3Cg stroke-opacity='0.25'%3E%3Ccircle cx='205' cy='305' r='18'/%3E%3C/g%3E%3Cg stroke-opacity='0.3'%3E%3Cpath d='M266 250L300 250'/%3E%3Cpath d='M330 160L420 160L420 210L330 210Z'/%3E%3Cpath d='M170 270L240 270L240 340L170 340Z'/%3E%3Cpath d='M150 112L450 112'/%3E%3Cpath d='M150 106L150 118'/%3E%3Cpath d='M146 116L154 108'/%3E%3Cpath d='M450 106L450 118'/%3E%3Cpath d='M446 116L454 108'/%3E%3Cpath d='M150 392L300 392'/%3E%3Cpath d='M150 386L150 398'/%3E%3Cpath d='M146 396L154 388'/%3E%3Cpath d='M300 386L300 398'/%3E%3Cpath d='M296 396L304 388'/%3E%3Cpath d='M478 140L478 360'/%3E%3Cpath d='M472 140L484 140'/%3E%3Cpath d='M472 360L484 360'/%3E%3Ccircle cx='470' cy='470' r='30'/%3E%3Cpath d='M510 470L520 470'/%3E%3Cpath d='M514.433 481.906L518.296 482.941'/%3E%3Cpath d='M509.837 493L513.301 495'/%3E%3Cpath d='M498.284 498.284L505.355 505.355'/%3E%3Cpath d='M493 509.837L495 513.301'/%3E%3Cpath d='M481.906 514.433L482.941 518.296'/%3E%3Cpath d='M470 510L470 520'/%3E%3Cpath d='M458.094 514.433L457.059 518.296'/%3E%3Cpath d='M447 509.837L445 513.301'/%3E%3Cpath d='M441.716 498.284L434.645 505.355'/%3E%3Cpath d='M430.163 493L426.699 495'/%3E%3Cpath d='M425.567 481.906L421.704 482.941'/%3E%3Cpath d='M430 470L420 470'/%3E%3Cpath d='M425.567 458.094L421.704 457.059'/%3E%3Cpath d='M430.163 447L426.699 445'/%3E%3Cpath d='M441.716 441.716L434.645 434.645'/%3E%3Cpath d='M447 430.163L445 426.699'/%3E%3Cpath d='M458.094 425.567L457.059 421.704'/%3E%3Cpath d='M470 430L470 420'/%3E%3Cpath d='M481.906 425.567L482.941 421.704'/%3E%3Cpath d='M493 430.163L495 426.699'/%3E%3Cpath d='M498.284 441.716L505.355 434.645'/%3E%3Cpath d='M509.837 447L513.301 445'/%3E%3Cpath d='M514.433 458.094L518.296 457.059'/%3E%3C/g%3E%3Cg stroke-opacity='0.35'%3E%3Cpath d='M408 470L532 470'/%3E%3C/g%3E%3Cg stroke-opacity='0.45'%3E%3Cpath d='M266.0 250.0A34 34 0 0 1 300.0 216.0'/%3E%3Cpath d='M330.0 290.0A30 30 0 0 1 300.0 320.0'/%3E%3C/g%3E%3Cg stroke-opacity='0.5'%3E%3Ccircle cx='470' cy='470' r='46'/%3E%3C/g%3E%3Cg stroke-opacity='0.55'%3E%3Cpath d='M470 408L479 470L470 532L461 470Z'/%3E%3Cpath d='M465 392L465 380L475 392L475 380'/%3E%3C/g%3E%3Cg stroke-opacity='0.6'%3E%3Cpath d='M150 250L300 250'/%3E%3Cpath d='M300 140L300 360'/%3E%3Cpath d='M300 290L450 290'/%3E%3C/g%3E%3Cg stroke-opacity='0.8'%3E%3Cpath d='M150 140L450 140L450 360L150 360Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 560' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg stroke-opacity='0.07'%3E%3Cpath d='M0 0L0 560'/%3E%3Cpath d='M0 0L560 0'/%3E%3Cpath d='M28 0L28 560'/%3E%3Cpath d='M0 28L560 28'/%3E%3Cpath d='M56 0L56 560'/%3E%3Cpath d='M0 56L560 56'/%3E%3Cpath d='M84 0L84 560'/%3E%3Cpath d='M0 84L560 84'/%3E%3Cpath d='M112 0L112 560'/%3E%3Cpath d='M0 112L560 112'/%3E%3Cpath d='M140 0L140 560'/%3E%3Cpath d='M0 140L560 140'/%3E%3Cpath d='M168 0L168 560'/%3E%3Cpath d='M0 168L560 168'/%3E%3Cpath d='M196 0L196 560'/%3E%3Cpath d='M0 196L560 196'/%3E%3Cpath d='M224 0L224 560'/%3E%3Cpath d='M0 224L560 224'/%3E%3Cpath d='M252 0L252 560'/%3E%3Cpath d='M0 252L560 252'/%3E%3Cpath d='M280 0L280 560'/%3E%3Cpath d='M0 280L560 280'/%3E%3Cpath d='M308 0L308 560'/%3E%3Cpath d='M0 308L560 308'/%3E%3Cpath d='M336 0L336 560'/%3E%3Cpath d='M0 336L560 336'/%3E%3Cpath d='M364 0L364 560'/%3E%3Cpath d='M0 364L560 364'/%3E%3Cpath d='M392 0L392 560'/%3E%3Cpath d='M0 392L560 392'/%3E%3Cpath d='M420 0L420 560'/%3E%3Cpath d='M0 420L560 420'/%3E%3Cpath d='M448 0L448 560'/%3E%3Cpath d='M0 448L560 448'/%3E%3Cpath d='M476 0L476 560'/%3E%3Cpath d='M0 476L560 476'/%3E%3Cpath d='M504 0L504 560'/%3E%3Cpath d='M0 504L560 504'/%3E%3Cpath d='M532 0L532 560'/%3E%3Cpath d='M0 532L560 532'/%3E%3C/g%3E%3Cg stroke-opacity='0.25'%3E%3Ccircle cx='205' cy='305' r='18'/%3E%3C/g%3E%3Cg stroke-opacity='0.3'%3E%3Cpath d='M266 250L300 250'/%3E%3Cpath d='M330 160L420 160L420 210L330 210Z'/%3E%3Cpath d='M170 270L240 270L240 340L170 340Z'/%3E%3Cpath d='M150 112L450 112'/%3E%3Cpath d='M150 106L150 118'/%3E%3Cpath d='M146 116L154 108'/%3E%3Cpath d='M450 106L450 118'/%3E%3Cpath d='M446 116L454 108'/%3E%3Cpath d='M150 392L300 392'/%3E%3Cpath d='M150 386L150 398'/%3E%3Cpath d='M146 396L154 388'/%3E%3Cpath d='M300 386L300 398'/%3E%3Cpath d='M296 396L304 388'/%3E%3Cpath d='M478 140L478 360'/%3E%3Cpath d='M472 140L484 140'/%3E%3Cpath d='M472 360L484 360'/%3E%3Ccircle cx='470' cy='470' r='30'/%3E%3Cpath d='M510 470L520 470'/%3E%3Cpath d='M514.433 481.906L518.296 482.941'/%3E%3Cpath d='M509.837 493L513.301 495'/%3E%3Cpath d='M498.284 498.284L505.355 505.355'/%3E%3Cpath d='M493 509.837L495 513.301'/%3E%3Cpath d='M481.906 514.433L482.941 518.296'/%3E%3Cpath d='M470 510L470 520'/%3E%3Cpath d='M458.094 514.433L457.059 518.296'/%3E%3Cpath d='M447 509.837L445 513.301'/%3E%3Cpath d='M441.716 498.284L434.645 505.355'/%3E%3Cpath d='M430.163 493L426.699 495'/%3E%3Cpath d='M425.567 481.906L421.704 482.941'/%3E%3Cpath d='M430 470L420 470'/%3E%3Cpath d='M425.567 458.094L421.704 457.059'/%3E%3Cpath d='M430.163 447L426.699 445'/%3E%3Cpath d='M441.716 441.716L434.645 434.645'/%3E%3Cpath d='M447 430.163L445 426.699'/%3E%3Cpath d='M458.094 425.567L457.059 421.704'/%3E%3Cpath d='M470 430L470 420'/%3E%3Cpath d='M481.906 425.567L482.941 421.704'/%3E%3Cpath d='M493 430.163L495 426.699'/%3E%3Cpath d='M498.284 441.716L505.355 434.645'/%3E%3Cpath d='M509.837 447L513.301 445'/%3E%3Cpath d='M514.433 458.094L518.296 457.059'/%3E%3C/g%3E%3Cg stroke-opacity='0.35'%3E%3Cpath d='M408 470L532 470'/%3E%3C/g%3E%3Cg stroke-opacity='0.45'%3E%3Cpath d='M266.0 250.0A34 34 0 0 1 300.0 216.0'/%3E%3Cpath d='M330.0 290.0A30 30 0 0 1 300.0 320.0'/%3E%3C/g%3E%3Cg stroke-opacity='0.5'%3E%3Ccircle cx='470' cy='470' r='46'/%3E%3C/g%3E%3Cg stroke-opacity='0.55'%3E%3Cpath d='M470 408L479 470L470 532L461 470Z'/%3E%3Cpath d='M465 392L465 380L475 392L475 380'/%3E%3C/g%3E%3Cg stroke-opacity='0.6'%3E%3Cpath d='M150 250L300 250'/%3E%3Cpath d='M300 140L300 360'/%3E%3Cpath d='M300 290L450 290'/%3E%3C/g%3E%3Cg stroke-opacity='0.8'%3E%3Cpath d='M150 140L450 140L450 360L150 360Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask-composite:source-in;opacity:calc(var(--arch-o)*.6)}
.arch-bg .corner-fade{position:absolute;top:-40px;right:-60px;width:min(46vw,520px);aspect-ratio:1;background:radial-gradient(circle at 78% 18%,transparent 0%,transparent 30%,var(--bg) 72%)}
@keyframes archDrift{from{transform:translateX(0)}to{transform:translateX(-60px)}}
@media (prefers-reduced-motion: reduce){.arch-bg .sky{animation:none}}
.app,.signin{position:relative;z-index:1}
.side{z-index:2}
@media print{.arch-bg{display:none}}
.panel,.kpi{background:color-mix(in srgb,var(--surface) 93%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
/* /ARCH-BG */
/* APP LOOK (phones and installed app, for the Auto and Dark looks; Light and Blue stay as chosen): night navy ground, frosted glass with a light edge and depth, glowing
   active states. Calm: the glow drifts very slowly and stops with reduced motion. Desktop is unchanged. */
@media (max-width:640px), (display-mode: standalone) {
  html:not([data-theme="light"]):not([data-theme="blue"]){
    --bg:#070C24; --surface:#101838; --surface2:#141E46; --ink:#EAF0FF; --muted:#A3AED3; --line:rgba(255,255,255,.10);
    --navy:#060A1E; --navy2:#050818; --sky-ink:#6CD3FA; --sky-soft:rgba(0,169,239,.14);
    --ok:#5FD39A; --ok-soft:rgba(95,211,154,.14); --warn:#F0B45A; --warn-soft:rgba(240,180,90,.14); --bad:#FF8A84; --bad-soft:rgba(255,138,132,.14); --idle:#A3AED3; --idle-soft:rgba(255,255,255,.07);
    --shadow:0 22px 40px -24px rgba(0,0,0,.85); --arch:#BFD3FF; --arch-o:.08; color-scheme:dark;
  }
  html:not([data-theme="light"]):not([data-theme="blue"]) body{background:#070C24}
  html:not([data-theme="light"]):not([data-theme="blue"]) body::before{content:"";position:fixed;inset:-20%;z-index:0;pointer-events:none;
    background:radial-gradient(40% 32% at 82% 8%,rgba(0,169,239,.20),transparent 70%),radial-gradient(46% 36% at 8% 92%,rgba(92,80,255,.16),transparent 72%),radial-gradient(30% 24% at 50% 55%,rgba(0,169,239,.06),transparent 70%);
    animation:appGlow 38s ease-in-out infinite alternate}
  @keyframes appGlow{from{transform:translate3d(0,0,0)}to{transform:translate3d(-3%,2%,0)}}
  html:not([data-theme="light"]):not([data-theme="blue"]) .panel, html:not([data-theme="light"]):not([data-theme="blue"]) .kpi, html:not([data-theme="light"]):not([data-theme="blue"]) .ann, html:not([data-theme="light"]):not([data-theme="blue"]) .rw-card, html:not([data-theme="light"]):not([data-theme="blue"]) .rw-top, html:not([data-theme="light"]):not([data-theme="blue"]) .tk-msg, html:not([data-theme="light"]):not([data-theme="blue"]) .hl-head{background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.12);
    -webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(0,0,0,.25),0 24px 40px -26px rgba(0,0,0,.9),0 0 0 1px rgba(0,169,239,.03);border-radius:20px}
  html:not([data-theme="light"]):not([data-theme="blue"]) .kpi{transform:perspective(900px) translateZ(0);transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
  html:not([data-theme="light"]):not([data-theme="blue"]) .kpi:active, html:not([data-theme="light"]):not([data-theme="blue"]) .row:active, html:not([data-theme="light"]):not([data-theme="blue"]) .rw-card:active{transform:perspective(900px) translateZ(-14px) scale(.985)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .kpi .k-v{background:linear-gradient(180deg,#FFFFFF,#9FDDFB);-webkit-background-clip:text;background-clip:text;color:transparent}
  html:not([data-theme="light"]):not([data-theme="blue"]) .kpi::after{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(108,211,250,.55),transparent)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .top{background:rgba(7,12,36,.62);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .tabbar{background:rgba(9,14,40,.72);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border-top:1px solid rgba(255,255,255,.10);box-shadow:0 -18px 30px -24px rgba(0,0,0,.9)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .tabbar button[aria-current="page"]{color:#9FE3FF;text-shadow:0 0 14px rgba(0,169,239,.55)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .tabbar button[aria-current="page"] svg{filter:drop-shadow(0 0 8px rgba(0,169,239,.6))}
  html:not([data-theme="light"]):not([data-theme="blue"]) .btn-p{background:linear-gradient(135deg,#19B8F5,#3D7BFF);color:#fff;box-shadow:0 10px 24px -12px rgba(0,169,239,.8),inset 0 1px 0 rgba(255,255,255,.25)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .btn-s, html:not([data-theme="light"]):not([data-theme="blue"]) .btn-g{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:var(--ink)}
  html:not([data-theme="light"]):not([data-theme="blue"]) input, html:not([data-theme="light"]):not([data-theme="blue"]) select, html:not([data-theme="light"]):not([data-theme="blue"]) textarea{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:var(--ink)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .drawer{background:#0C1434;border-left:1px solid rgba(255,255,255,.1)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .pill{backdrop-filter:blur(6px)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .greet h2{background:linear-gradient(180deg,#FFFFFF,#BFE8FC);-webkit-background-clip:text;background-clip:text;color:transparent}
  html:not([data-theme="light"]):not([data-theme="blue"]) .build-anim{color:rgba(220,232,255,.45)}
  html:not([data-theme="light"]):not([data-theme="blue"]) .logo-d{display:none!important}
  html:not([data-theme="light"]):not([data-theme="blue"]) .logo-w{display:block!important}
}
@media (prefers-reduced-motion: reduce){body::before{animation:none}.kpi,.row,.rw-card{transition:none}}
/* Rows and toolbars on small screens: icons keep their size, titles get the width, buttons are never stretched tall. */
.row>svg{width:22px;height:22px;flex:none;color:var(--sky-ink)}
.toolbar .btn,.toolbar .end{align-self:center}
@media (max-width:640px){
  .row{flex-wrap:wrap}
  .row .grow{flex:1 1 180px}
  .row>.pill,.row>.end{margin-left:auto}
}
/* Home story hero: enquiry → inspection → deposit → owner. */
.home-hero{position:relative;isolation:isolate}
.home-hero>.build-anim{display:none}
.journey{flex:1 1 52%;max-width:640px;min-width:0;position:relative}
.jr-head{margin:0 0 2px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.jr-svg{width:100%;height:auto;display:block;overflow:visible;color:color-mix(in srgb,var(--ink) 42%,transparent)}
.jr-road{stroke:var(--sky);opacity:.55;stroke-dasharray:1;stroke-dashoffset:1;animation:baDraw 3.4s cubic-bezier(.45,0,.25,1) .35s forwards}
.jr-road2{opacity:.35}
.jr-acc{stroke:var(--sky)}
.jr-win{fill:color-mix(in srgb,var(--sky) 16%,transparent)}
.jr-dot{fill:var(--card,var(--bg));stroke:var(--sky);stroke-width:2}
.jr-sun{stroke:var(--warn,#E7A93C);opacity:0;animation:jrSun 1.6s cubic-bezier(.16,1,.3,1) 3.7s forwards}
.jr-house{stroke-dasharray:1;stroke-dashoffset:1;animation:baDraw 1.2s cubic-bezier(.16,1,.3,1) 2.9s forwards}
.jr-light{fill:var(--sky);filter:drop-shadow(0 0 6px var(--sky)) drop-shadow(0 0 14px color-mix(in srgb,var(--sky) 60%,transparent))}
.jr-st{opacity:0;transform:translateY(8px);transform-box:fill-box;animation:jrPop 1s cubic-bezier(.16,1,.3,1) forwards}
.jr-s1{animation-delay:.55s}.jr-s2{animation-delay:1.35s}.jr-s3{animation-delay:2.15s}.jr-s4{animation-delay:2.85s}
.jr-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:4px;text-align:center}
.jr-col{opacity:0;animation:jrPop .9s cubic-bezier(.16,1,.3,1) forwards;display:grid;gap:1px;justify-items:center}
.jr-c1{animation-delay:.7s}.jr-c2{animation-delay:1.5s}.jr-c3{animation-delay:2.3s}.jr-c4{animation-delay:3.05s}
.jr-n{font-family:var(--serif,"Cormorant Garamond",Georgia,serif);font-size:34px;font-weight:600;line-height:1;font-variant-numeric:lining-nums tabular-nums;background:linear-gradient(135deg,var(--ink),var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent}
.jr-col span{font-weight:700;font-size:13px;color:var(--ink)}
.jr-col small{font-size:11.5px;color:var(--muted);line-height:1.3}
@keyframes jrPop{to{opacity:1;transform:none}}
@keyframes jrSun{from{opacity:0;transform:translateY(10px)}to{opacity:.85;transform:none}}
.jr-sun{transform-box:fill-box}
.journey.still *,.journey.still{animation:none!important}
.journey.still .jr-road,.journey.still .jr-house{stroke-dashoffset:0}
.journey.still .jr-st,.journey.still .jr-col{opacity:1;transform:none}
.journey.still .jr-sun{opacity:.85}
.journey.still .jr-light{display:none}
@media (prefers-reduced-motion: reduce){.journey *{animation:none!important}.journey .jr-road,.journey .jr-house{stroke-dashoffset:0}.journey .jr-st,.journey .jr-col{opacity:1;transform:none}.journey .jr-sun{opacity:.85}.journey .jr-light{display:none}}
@media (max-width:640px){
  .home-hero>.build-anim{display:block;position:absolute;z-index:-1;right:-14px;top:-6px;width:230px;max-width:62%;opacity:.16;pointer-events:none}
  .home-hero .greet{min-height:96px}
  .journey{flex-basis:100%;max-width:none;margin-top:0;padding:12px 12px 14px;border-radius:18px;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .jr-dot{fill:#0E1838}
  .jr-n{font-size:26px}
  .jr-col small{font-size:10.5px}
}
/* Sign-in arrival: house draws, logo appears inside it, house settles into the background, card rises to the centre. */
.signin{position:relative;overflow-x:hidden;overflow-y:auto;min-height:100dvh;isolation:isolate}
/* Phone keyboard open: the card moves to the top of what is still visible, so the field being typed in stays in view. */
.signin.si-kb{place-items:start center;padding-block:12px calc(var(--kb,0px) + 24px)}
.signin.si-kb .si-card{gap:12px;padding-block:20px}
.signin.si-kb .si-logo{max-height:34px}
.si-intro{position:absolute;inset:0;display:grid;place-items:center;z-index:0;pointer-events:none}
.si-stage{position:relative;width:min(560px,88vw);color:color-mix(in srgb,var(--ink) 55%,transparent);animation:siSettle 1.1s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(2.15s + var(--si-off,0s))}
.si-house{width:100%;height:auto;display:block;overflow:visible}
.si-house .sh-d{stroke-dasharray:1;stroke-dashoffset:1;animation:baDraw 1.2s cubic-bezier(.45,0,.25,1) forwards;animation-delay:var(--si-off,0s)}
.si-house .sh-ground{animation-delay:calc(.1s + var(--si-off,0s))}.si-house .sh-walls{animation-delay:calc(.35s + var(--si-off,0s))}.si-house .sh-roof{animation-delay:calc(.7s + var(--si-off,0s));stroke:var(--sky)}
.si-house .sh-chim{animation-delay:calc(1.05s + var(--si-off,0s))}.si-house .sh-door{animation-delay:calc(1.15s + var(--si-off,0s))}.si-house .sh-dim{animation-delay:calc(.5s + var(--si-off,0s));opacity:.45}.si-house .sh-grid{animation-delay:calc(.9s + var(--si-off,0s));opacity:.35}
.si-intro-logo{position:absolute;left:50%;top:61%;height:clamp(26px,6.4vw,40px);width:auto;transform:translate(-50%,-50%) scale(.92);opacity:0;animation:siLogo 1.4s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(1.25s + var(--si-off,0s))}
.signin .si-card{position:relative;z-index:1;opacity:0;transform:translateY(26px) scale(.98);animation:siCard .9s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(2.35s + var(--si-off,0s));
  background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@keyframes siLogo{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}45%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.04)}}
@keyframes siSettle{to{opacity:.13;transform:scale(1.55) translateY(-4%)}}
@keyframes siCard{to{opacity:1;transform:none}}
.signin.si-done .si-stage{animation:none;opacity:.13;transform:scale(1.55) translateY(-4%)}
.signin.si-done .sh-d{animation:none;stroke-dashoffset:0}
.signin.si-done .si-intro-logo{display:none}
.signin.si-done .si-card{animation:none;opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.si-stage,.si-house .sh-d,.si-intro-logo,.signin .si-card{animation:none!important}.si-stage{opacity:.13;transform:scale(1.55) translateY(-4%)}.si-house .sh-d{stroke-dashoffset:0}.si-intro-logo{display:none}.signin .si-card{opacity:1;transform:none}}
@media (max-width:640px){.si-stage{width:94vw}@keyframes siSettle{to{opacity:.13;transform:scale(1.25) translateY(-22%)}}.signin.si-done .si-stage{transform:scale(1.25) translateY(-22%)}.signin .si-card{padding:28px 20px}}
/* Staff bio data form */
.bf-form{display:grid;gap:18px}
.bf-group{border:0;padding:0;margin:0;display:grid;gap:10px}
.bf-group legend{font:600 19px/1.2 var(--display);margin-bottom:6px;padding:0}
.bf-private legend{color:var(--muted)}
.bf-wide{grid-column:1/-1}
.bf-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.5}
.bf-consent input{margin-top:3px;flex:none;width:18px;height:18px}
.bf-pct{height:6px;border-radius:99px;background:color-mix(in srgb,var(--line) 80%,transparent);overflow:hidden;margin:8px 0 4px;max-width:360px}
.bf-pct span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sky),var(--ink))}
.bf-nudge{display:flex;gap:14px;align-items:center}.bf-nudge .grow{display:grid;gap:2px}
.bf-link{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.bf-link input{flex:1 1 260px;min-width:0}
.bf-h{font:600 17px/1.2 var(--display);margin:18px 0 6px}
.bf-dl{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:6px 14px;margin:0;font-size:14px}.bf-dl dt{color:var(--muted)}.bf-dl dd{margin:0;overflow-wrap:anywhere}
.bf-join{align-items:start}.bf-card{max-width:760px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
@media (max-width:640px){.bf-nudge{flex-direction:column;align-items:stretch}.bf-dl{grid-template-columns:1fr}.bf-dl dt{margin-top:6px}}

/* Sign-in: password first, then Face ID and the email link. */
.si-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.14em}
.si-or::before,.si-or::after{content:"";flex:1;height:1px;background:var(--line)}
.si-new{margin:0;text-align:center;font-size:14px;line-height:1.6}
.btn-link{background:none;border:0;padding:0;color:var(--sky-ink,#0076AE);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.signin .chk{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--muted)}
.signin .chk input{margin-top:3px;width:18px;height:18px;flex:none}
.signin .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:420px){.signin .fgrid{grid-template-columns:1fr}}

/* Import: rows to check */
.rv-row{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px;display:grid;gap:8px;background:var(--surface)}
.rv-row.rv-done{opacity:.72}
.rv-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.rv-why{font-weight:600;font-size:13.5px}
.rv-cells{display:flex;flex-wrap:wrap;gap:6px}
.rv-cells span{font-size:12.5px;background:var(--bg,#F3F6FB);border-radius:6px;padding:2px 8px;max-width:100%;overflow-wrap:anywhere}
.rv-cells em{font-style:normal;color:var(--muted);margin-right:4px}
.rv-fix{margin:0;font-size:13px;color:var(--muted)}
.rv-edit{display:flex;flex-wrap:wrap;gap:10px}
.rv-edit label{display:grid;gap:4px;font-size:12px;color:var(--muted);flex:1 1 160px}
.rv-blank{margin-top:10px}
.rv-blank summary{cursor:pointer;color:var(--muted);font-size:13px;padding:6px 0}
.rv-mini{padding:8px 10px}
/* Test / Live */
.mode-bar{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;background:#FFF4D6;color:#5A4300;border-bottom:1px solid #F0D58A;padding:8px clamp(14px,3vw,28px);font-size:13px}
.mode-bar b{letter-spacing:.14em;font-size:11.5px}
.mode-card.is-test{border-color:#F0D58A;background:linear-gradient(180deg,#FFF9E8,var(--surface))}
.mode-seg button[aria-pressed="true"]{font-weight:700}
@media (prefers-color-scheme:dark){.mode-bar{background:#3A2F0B;color:#F6E2A6;border-color:#5E4C14}.mode-card.is-test{background:linear-gradient(180deg,#2E260D,var(--surface))}}
.imp-money{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:center;background:var(--bg,#F3F6FB);border-radius:12px;padding:10px 14px;font-size:14px;margin:6px 0 10px}
.imp-found .rows{margin-top:10px}
.prod-ch{display:grid;gap:6px;margin-top:6px}.prod-ch .chk{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13.5px}.prod-ch input.prod-name{min-width:200px;flex:1}
.rv-match{display:flex;flex-wrap:wrap;gap:6px;width:100%}
/* Import, step by step */
.imp-stepper{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 14px;padding:0}
.imp-stepper li button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:7px 14px 7px 7px;font:inherit;font-size:13.5px;color:var(--muted);cursor:pointer}
.imp-stepper li button b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--bg,#F3F6FB);font-size:12px}
.imp-stepper li.on button{border-color:var(--navy,#1F2A5E);color:var(--ink,#1B2552);font-weight:700}
.imp-stepper li.on button b{background:var(--navy,#1F2A5E);color:#fff}
.imp-stepper li.done button b{background:#1a7f37;color:#fff}
.imp-stepper li button:disabled{opacity:.55;cursor:default}
.imp-plain{margin:6px 0 14px;padding-left:18px;line-height:1.7}
.imp-plain .bad{color:var(--bad,#C2302C)}
.imp-nav{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:14px}
.imp-nav .meta{flex:1;text-align:center}
.imp-adv{margin-top:14px}.imp-adv summary{cursor:pointer;color:var(--muted);font-size:13.5px;padding:6px 0}
.notice.ok{background:#E9F7EE;border-color:#BFE3CB}
.rv-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin:0 0 12px;display:grid;gap:10px}
.rv-card.is-done{opacity:.75}
.rv-card header{display:flex;gap:10px;align-items:flex-start}
.rv-card h3{margin:0;font-size:17px}
.rv-card header p{margin:2px 0 0;color:var(--muted);font-size:13px}
.rv-card .rv-why{display:flex;gap:8px;margin:0;font-size:14px;background:var(--bg,#F3F6FB);border-radius:10px;padding:8px 10px}
.rv-pays{width:100%;border-collapse:collapse;font-size:13.5px}
.rv-pays th{font-size:11.5px;color:var(--muted);text-align:left;font-weight:700;padding:4px 6px;border-bottom:1px solid var(--line)}
.rv-pays td{padding:6px;border-bottom:1px solid var(--line)}
.rv-pays .r{text-align:right}
.rv-pays tr.rv-bad td{background:#FFF4D6}
.rv-in{width:100%;max-width:170px;padding:6px 8px;border:2px solid #E0A400;border-radius:8px;font:inherit}
.rv-was{display:block;color:var(--muted);font-size:11.5px}
.rv-facts{display:flex;flex-wrap:wrap;gap:6px}.rv-facts span{font-size:12.5px;background:var(--bg,#F3F6FB);border-radius:6px;padding:2px 8px}.rv-facts em{font-style:normal;color:var(--muted);margin-right:4px}
.rv-q{display:grid;gap:6px}
@media (prefers-color-scheme:dark){.rv-pays tr.rv-bad td{background:#3A2F0B}.notice.ok{background:#12301D;border-color:#1F4D2E}}
@media (max-width:640px){.rv-pays{font-size:12.5px}.rv-pays th:nth-child(4),.rv-pays td:nth-child(4),.rv-pays th:nth-child(5),.rv-pays td:nth-child(5){display:none}}
.rv-card .rv-why svg{width:18px;height:18px;flex:none;margin-top:2px}
.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.imp-sum{font-size:15px;line-height:1.8;margin:6px 0}
.msg-pre{white-space:pre-wrap;font:inherit;background:var(--bg,#F3F6FB);border-radius:12px;padding:12px;margin:0}
/* Finance → Income & expenses: quick views and spending by category / product (tap a line to filter). */
.u-quick{display:flex;flex-wrap:wrap;margin:0 0 12px}
.u-bars{list-style:none;margin:0;padding:0}
.u-bars li button{display:grid;grid-template-columns:1fr auto;gap:2px 12px;width:100%;text-align:left;background:none;border:0;padding:8px 4px;border-radius:10px;cursor:pointer;color:inherit;font:inherit}
.u-bars li button:hover,.u-bars li button:focus-visible{background:var(--sky-soft,#E7F6FE)}
.u-bars .u-bl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-bars b{font-variant-numeric:tabular-nums}
.u-bars .u-bar{grid-column:1/-1;height:5px;border-radius:99px;background:var(--line,#E1E6F0);overflow:hidden}
.u-bars .u-bar i{display:block;height:100%;background:var(--sky,#00A9EF);border-radius:99px}
/* Finance sections: four large buttons (Money · Sales · Investors · Tools), then that section's own tabs. */
.u-fgroups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 12px}
.u-fgroups button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border-radius:14px;border:1px solid var(--line,#E1E6F0);background:var(--surface,#fff);color:inherit;font:inherit;cursor:pointer;min-height:44px}
.u-fgroups button b{font-size:15px}
.u-fgroups button span{font-size:12px;color:var(--muted,#5B6584)}
.u-fgroups button[aria-selected="true"]{border-color:var(--sky,#00A9EF);background:var(--sky-soft,#E7F6FE);box-shadow:inset 0 0 0 1px var(--sky,#00A9EF)}
.u-fgroups button:focus-visible{outline:2px solid var(--sky,#00A9EF);outline-offset:2px}
@media (max-width:640px){.u-fgroups{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.u-fgroups button{padding:10px 12px}.u-fgroups button span{display:none}}

/* Theme picker (top bar) */
.theme-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;gap:2px}
.theme-menu p{margin:4px 8px 6px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.theme-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;border-radius:10px;padding:9px 10px;text-align:left;color:var(--ink);font-weight:600;min-height:40px}
.theme-menu button:hover{background:var(--surface2)}
.theme-menu button[aria-checked="true"]{background:var(--sky-soft)}
.theme-menu .sw{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);flex:none;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}
.theme-menu .sw i:first-child{background:var(--a)}.theme-menu .sw i:last-child{background:var(--b)}
.theme-menu small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.theme-wrap{position:relative}
/* Go to… (quick search) */
.goto{position:fixed;inset:0;z-index:90;background:rgba(10,16,41,.45);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.goto-box{width:min(560px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 70px -30px rgba(10,16,41,.6);overflow:hidden}
.goto-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.goto-in svg{width:18px;height:18px;color:var(--muted);flex:none}
.goto-in input{flex:1;border:0;background:none;font-size:16px;outline:none;color:var(--ink);min-height:28px}
.goto-list{list-style:none;margin:0;padding:6px;max-height:min(52vh,420px);overflow:auto}
.goto-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer}
.goto-list li svg{width:18px;height:18px;color:var(--sky-ink);flex:none}
.goto-list li b{display:block;font-weight:600;color:var(--ink)}
.goto-list li small{display:block;color:var(--muted);font-size:12px}
.goto-list li[aria-selected="true"],.goto-list li:hover{background:var(--sky-soft)}
.goto-none{color:var(--muted);cursor:default!important}
.goto-tip{margin:0;padding:8px 16px 10px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
@media (max-width:640px){.goto{padding-top:8vh}.goto-tip{display:none}}
.theme-menu button > svg{width:16px;height:16px;margin-left:auto;flex:none;color:var(--sky-ink)}
.theme-menu .sw i{display:block;height:100%}
.theme-menu button > span:not(.sw){flex:1;min-width:0}
/* What's new + suggest an improvement */
.whatsnew ul{margin:4px 0 8px;padding-left:20px;display:grid;gap:6px}
.whatsnew li{line-height:1.5}
.whatsnew h2 svg{width:18px;height:18px;color:var(--sky-ink);vertical-align:-3px}
.linkbtn{background:none;border:0;padding:0;color:var(--sky-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.improve-note{margin-bottom:12px}
/* Phones: the logo keeps its size; six top-bar buttons share the rest. */
@media (max-width:860px){.top .t-logo{flex:none}.top .t-logo img{height:24px;width:auto;max-width:none}}
@media (max-width:480px){.top{gap:6px}.top .icon-btn{width:38px;height:38px;min-width:38px}.top .help-btn{display:none}.top .t-logo img{height:22px}}

/* Phone menu ("More"): parents that fold open onto their related screens. */
.mg-me{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface2);text-align:left;color:var(--ink)}
.mg-me .av{width:44px;height:44px;flex:none}
.mg-me>span:not(.mg-go):not(.av){display:grid;min-width:0;flex:1}
.mg-me b{font-size:15px}
.mg-me small,.mg-t small,.mg-kid small{color:var(--muted);font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mg-find{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 16px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--muted);font-weight:600;text-align:left}
.mg-find svg{width:18px;height:18px;color:var(--sky-ink)}
.mg-list{display:grid;gap:8px}
.mg{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.mg.open{border-color:color-mix(in srgb,var(--sky) 45%,var(--line));box-shadow:0 14px 30px -24px rgba(20,28,68,.45)}
.mg-head{display:flex;align-items:center;gap:12px;width:100%;min-height:62px;padding:10px 14px;border:0;background:none;text-align:left;color:var(--ink);cursor:pointer}
.mg-solo{border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.mg-solo[aria-current="page"],.mg-kid[aria-current="page"]{background:var(--sky-soft)}
.mg-ic{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--sky-soft);color:var(--sky-ink)}
.mg-ic svg{width:19px;height:19px}
.mg.open .mg-ic{background:var(--navy);color:#fff}
.mg-t{display:grid;min-width:0;flex:1}
.mg-t b{font-size:15px;font-weight:700}
.mg-c{font-style:normal;font-size:12px;font-weight:700;color:var(--muted);background:var(--idle-soft);border-radius:99px;padding:2px 9px}
.mg-n{font-style:normal;font-size:11px;font-weight:800;color:#fff;background:var(--red);border-radius:99px;padding:2px 8px;margin-left:auto}
.mg-chev,.mg-go{width:9px;height:9px;flex:none;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 4px 4px 2px;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.mg-go{transform:rotate(-45deg);margin:0 4px 0 2px}
.mg.open .mg-chev{transform:rotate(225deg);margin-bottom:-4px}
.mg-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.16,1,.3,1)}
.mg.open .mg-body{grid-template-rows:1fr}
.mg-in{overflow:hidden;display:grid;gap:2px;padding:0 8px;visibility:hidden;transition:padding .3s,visibility 0s .3s}
.mg.open .mg-in{padding:0 8px 10px;visibility:visible;transition:padding .3s,visibility 0s}
.mg-kid{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 12px 8px 14px;border:0;border-radius:12px;background:none;text-align:left;color:var(--ink);font-weight:600;font-size:14.5px}
.mg-kid:hover,.mg-head:hover{background:var(--surface2)}
.mg-kid svg{width:18px;height:18px;flex:none;color:var(--sky-ink)}
.mg-kid span{display:grid;min-width:0;flex:1}
.mg-kid b{font-weight:600}
.mg-kid[aria-current="page"] b{color:var(--sky-ink)}
.mg-head:focus-visible,.mg-kid:focus-visible,.mg-me:focus-visible,.mg-find:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
@media (min-width:560px){.mg-in{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.mg-body,.mg-in,.mg-chev{transition:none}}

/* Finance → Tools → Accuracy check */
.chk-top{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.chk-ring{--p:0;width:96px;height:96px;flex:none;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(closest-side,var(--surface) 78%,transparent 80% 100%),conic-gradient(var(--ok) calc(var(--p)*1%),var(--idle-soft) 0)}
.chk-ring b{font-family:var(--display,"Cormorant Garamond",serif);font-size:34px;line-height:1;font-variant-numeric:lining-nums}
.chk-ring span{font-size:12px;color:var(--muted)}
.chk-list{display:grid;gap:10px}
.chk{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:14px;background:var(--surface);padding:14px 16px;display:grid;gap:8px}
.chk-bad{border-left-color:var(--bad)}.chk-warn{border-left-color:var(--warn)}.chk-ok{border-left-color:var(--ok)}
.chk-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.chk-h h3{font-size:15.5px;margin:0;flex:1;min-width:180px}
.chk-n{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.chk p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.chk .chk-fix{display:flex;gap:8px;color:var(--ink)}
.chk-fix svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--sky-ink)}
.chk details summary{cursor:pointer;font-weight:600;color:var(--sky-ink);font-size:13.5px}
.chk ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;color:var(--muted);display:grid;gap:3px}
details.chk-ok>summary{cursor:pointer;padding:4px 0}
details.chk-ok .chk-list{margin-top:12px}
/* Report a problem → bug receipt */
.bug-ok{display:flex;gap:14px;align-items:flex-start}
.bug-ic{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--ok-soft);color:var(--ok)}
.bug-ic svg{width:20px;height:20px}
.bug-ref{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px;margin:2px 0 6px;letter-spacing:.02em}
.bug-ok p{margin:0;color:var(--muted);font-size:14px}
.bug-pre{max-height:44vh;overflow:auto;white-space:pre-wrap;word-break:break-word;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:12px;margin:0;color:var(--ink)}
.improve-note .linkbtn+span{display:inline}
/* Names to confirm (payout / commission payees) */
.pl-names{display:grid;gap:8px;margin-top:10px}
.pl-row{display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.pl-who{display:grid}.pl-who small{color:var(--muted);font-size:12.5px}
.pl-pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pl-other{display:flex;gap:6px;flex:1;min-width:220px}
.pl-other input{flex:1;min-width:0}
@media (min-width:900px){.pl-row{grid-template-columns:minmax(200px,1fr) 2fr;align-items:center}}
/* Sign-out after inactivity: the one-minute warning */
.idle-warn{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:rgba(10,14,36,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}
.iw-card{width:min(420px,100%);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:24px;display:grid;gap:10px;justify-items:start;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.iw-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn)}
.iw-ic svg{width:22px;height:22px}
.iw-card h2{margin:0;font-family:var(--display,"Cormorant Garamond",serif);font-size:28px;font-weight:600}
.iw-card p{margin:0;color:var(--muted);line-height:1.6}
.iw-card b{color:var(--ink);font-variant-numeric:tabular-nums}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.idle-warn{animation:none}}
/* Home → Your desk (by position) */
.desk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.desk-card{position:relative;display:grid;gap:4px;align-content:start;text-align:left;padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);min-height:96px}
button.desk-card{cursor:pointer;transition:transform .15s cubic-bezier(.2,.7,.2,1),box-shadow .15s}
button.desk-card:hover{transform:translateY(-1px);box-shadow:0 14px 28px -22px rgba(20,28,68,.45)}
button.desk-card:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.desk-card.rag-r{border-left-color:var(--bad)}.desk-card.rag-a{border-left-color:var(--warn)}.desk-card.rag-g{border-left-color:var(--ok)}.desk-card.rag-idle{border-left-color:var(--sky)}
.dk-t{font-size:12.5px;font-weight:700;color:var(--muted);letter-spacing:.01em}
.dk-v{font-family:var(--display,"Cormorant Garamond",serif);font-size:30px;line-height:1.05;font-weight:600;font-variant-numeric:lining-nums tabular-nums;overflow-wrap:anywhere}
.dk-n{font-size:12.5px;color:var(--muted)}
.dk-go{position:absolute;right:14px;top:16px;width:8px;height:8px;border-right:2px solid var(--muted);border-top:2px solid var(--muted);transform:rotate(45deg)}
@media (max-width:420px){.desk-grid{grid-template-columns:1fr 1fr}.dk-v{font-size:26px}}
/* Side menu accordion: the open group's screens sit indented under their heading. */
.nav .nav-kids{display:grid;gap:2px;margin:0 0 6px;padding-left:6px;border-left:1px solid rgba(255,255,255,.08);margin-left:12px;animation:navIn .2s ease}
.nav .lab-n .badge{margin-left:0}
@keyframes navIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.nav .nav-kids{animation:none}}
/* Check in: Google hybrid map (when a key is set) */
.map.gmap{position:relative;padding:0;overflow:hidden}
.gmap-slot,.gmap-el{width:100%;height:100%;min-height:300px}
.gmap-el{border-radius:inherit}
.map.gmap .tag{position:absolute;left:12px;bottom:12px;z-index:2;background:rgba(10,14,36,.78);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sl-branchbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.sl-branchbar select{width:auto;min-width:160px}
.s-info{background:var(--sky-soft);color:var(--sky-ink,var(--navy))}
/* Import analyst (0.4.5): reading of the file, Ask about this file / row, client-by-client check */
.ia-read h2 svg,.ia-ask h2 svg,.ia-check h2 svg{width:18px;height:18px;vertical-align:-3px;margin-right:4px;color:var(--sky-ink,#006CA3)}
.ia-sheet{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:8px 0;background:var(--bg)}
.ia-sheet summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;list-style:none}
.ia-sheet summary::-webkit-details-marker{display:none}
.ia-sheet summary::before{content:"›";display:inline-block;transition:transform .2s;color:var(--muted)}
.ia-sheet[open] summary::before{transform:rotate(90deg)}
.ia-h{font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:10px 0 4px}
.ia-probs{margin:0 0 6px;padding-left:18px;line-height:1.7}
.ia-probs b{display:inline-block;min-width:26px;color:var(--warn,#935808)}
.ia-sugg{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.ia-sugg .chip{border:1px solid var(--line,#E3E8F2);background:transparent;color:inherit;border-radius:99px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
.ia-sugg .chip:hover{border-color:var(--sky-ink,#006CA3)}
.ia-form{display:flex;gap:8px}
.ia-form .ia-q{flex:1;min-width:0}
.ia-ans{margin-top:12px;border-left:3px solid var(--sky-ink,#006CA3);padding:8px 12px;background:var(--bg,#F3F6FB);border-radius:0 10px 10px 0;line-height:1.6}
.ia-ans p{margin:4px 0}.ia-ans ul{margin:4px 0;padding-left:18px}
.ia-ans .ia-qq{font-weight:700}
.ia-row{margin-top:10px}
.rv-card .ia-rbtn{margin-top:8px;font-size:13px}
.rv-card .ia-rbtn svg{width:15px;height:15px;vertical-align:-3px;margin-right:4px}
@media (max-width:600px){.ia-form{flex-direction:column}.ia-form .btn{width:100%}}
.ia-rec{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 2px}
.ia-rec .btn svg{width:15px;height:15px;vertical-align:-3px;margin-right:4px}
.ia-list{display:grid;gap:8px}
.ia-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--bg);display:grid;gap:3px}
.ia-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.ia-nums{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13.5px}
.ia-nums b{font-variant-numeric:tabular-nums}
.ia-diff{font-weight:700;color:var(--bad)}
/* Tax pack (0.4.6) */
.tp h2 svg{width:18px;height:18px;vertical-align:-3px;margin-right:4px;color:var(--sky-ink)}
.tp .ph{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.tp-build{display:flex;gap:8px;flex-wrap:wrap}.tp-build select{min-width:200px}
.tp-row{flex-wrap:wrap;gap:8px}
.tp-lines{display:grid;gap:6px}
.tp-line{display:flex;align-items:center;gap:8px;justify-content:space-between;border-bottom:1px solid var(--line);padding:4px 0}
.tp-line span{flex:1;min-width:0}.tp-line input{width:72px;text-align:right}.tp-line select{max-width:190px}.tp-line em{font-style:normal;color:var(--muted)}
.tp-chk{display:flex;gap:10px;align-items:flex-start;line-height:1.45;cursor:pointer}
.tp-chk input{width:18px;height:18px;margin-top:2px;flex:none}
.acc-extra{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;align-items:center}
.acc-extra .pill .link{padding:0 2px;font-weight:700}
.sel-s{font-size:12px;padding:4px 8px;min-height:30px}
.pos-extra summary{cursor:pointer;font-weight:600;font-size:13.5px}
.pos-extra-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px;max-height:240px;overflow:auto;margin-top:6px}
.sec-h{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.4vw,26px);margin:22px 0 10px;display:flex;align-items:center;gap:8px;color:var(--ink)}
.br-row{display:grid;grid-template-columns:minmax(120px,200px) 1fr auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.br-row:first-of-type{border-top:0}
.br-n{display:flex;flex-direction:column}.br-n small{color:var(--muted);font-size:12px}
.br-bar{height:10px;border-radius:99px;background:var(--surface2);overflow:hidden}
.br-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sky),var(--navy))}
.me-row td{background:var(--sky-soft)}
.ch-congrats{align-items:center;flex-wrap:wrap;gap:10px}
.ch-cert{width:100%;height:auto;border-radius:10px;border:1px solid var(--line);display:block}
ul.plain{margin:6px 0 10px;padding-left:18px}ul.plain li{margin:3px 0}
@media (max-width:560px){.br-row{grid-template-columns:1fr auto}.br-bar{grid-column:1/-1;order:3}}
.sec-h svg{width:22px;height:22px;flex:none;color:var(--sky-ink)}
.sig-panel summary{cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sig-panel summary svg{width:16px;height:16px}
.sig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:10px}
.sig-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface2)}
.mk-wrap{position:relative}
.mk-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:color-mix(in srgb,var(--surface) 82%,transparent);border-radius:10px;text-align:center;padding:12px}
.mk-empty svg{width:28px;height:28px;color:var(--sky-ink)}.mk-empty span{color:var(--muted);font-size:13px}
.mk-fit input[type=range]{width:100%;accent-color:var(--sky)}
.pin-in{letter-spacing:.5em;font-size:22px;text-align:center;font-variant-numeric:tabular-nums}
.step-btns{display:flex;gap:8px;justify-content:center;margin-top:12px;flex-wrap:wrap}
.step-alt{font-size:13px;margin-top:10px;color:var(--muted)}
.step-card .field{text-align:left;margin-top:10px}
.call-ov{position:fixed;inset:0;z-index:9999;background:rgba(7,12,36,.72);display:grid;place-items:center;padding:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.call-card{background:var(--surface);color:var(--ink);border-radius:22px;padding:28px 24px;width:min(360px,100%);display:grid;justify-items:center;gap:8px;text-align:center;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.call-card b{font-size:20px}.call-card > span:not(.call-pulse){color:var(--muted);font-size:14px}
.call-pulse{border-radius:50%;box-shadow:0 0 0 0 rgba(0,169,239,.6);animation:callpulse 1.6s infinite}
@keyframes callpulse{0%{box-shadow:0 0 0 0 rgba(0,169,239,.55)}70%{box-shadow:0 0 0 22px rgba(0,169,239,0)}100%{box-shadow:0 0 0 0 rgba(0,169,239,0)}}
@media (prefers-reduced-motion:reduce){.call-pulse{animation:none}}
.call-btns{display:flex;gap:14px;margin-top:14px}
.call-btns .btn{min-width:120px;min-height:48px;border-radius:99px;font-weight:700}
.call-yes{background:#1E9E5A;color:#fff}.call-no{background:var(--bad);color:#fff}
.ga-steps{margin:8px 0 6px;padding-left:20px;display:grid;gap:8px;line-height:1.55}
.ga-copy{display:flex;gap:8px;flex-wrap:wrap}.ga-copy input{flex:1;min-width:200px}
.ga-card .ttl svg{width:18px;height:18px;vertical-align:-3px;color:var(--sky-ink)}
.k-why{display:block;margin-top:6px;padding-top:8px;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.45;color:var(--muted)}
.md-say,.md-legend{display:flex;gap:8px;align-items:flex-start;margin:-2px 0 10px;font-size:13px;line-height:1.5;color:var(--muted)}
.md-say svg,.md-legend svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--sky-ink)}
.md-legend{background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 14px}
.k-v-long{font-size:clamp(17px,1.55vw,26px)!important;white-space:nowrap;letter-spacing:-.01em}
.ps-panel .ph{flex-wrap:wrap;gap:10px}
.ps-pick{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.ps-pick select{width:auto;min-width:160px}
.ps-read{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--surface2);border:1px solid var(--line)}
.ps-read ul{margin:4px 0 8px;padding-left:18px;display:grid;gap:4px;line-height:1.55}
.ps-read .eyebrow svg{width:14px;height:14px;vertical-align:-2px}
/* Import → Investor check (42-reconcile.js) */
.imp-three{display:flex;gap:8px;align-items:flex-start;text-align:left;max-width:640px;margin:6px auto 14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--sky-soft);font-size:13.5px;color:var(--ink)}
.imp-three svg{flex:none;width:18px;height:18px;margin-top:2px;color:var(--sky-ink)}
.rc-ev{margin:4px 0 2px;padding-left:18px;font-size:12.5px;color:var(--muted);display:grid;gap:3px}
.rc-ev li{overflow-wrap:anywhere}
.rc-tag{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sky-ink);margin-left:4px}
.btn.rc-sug{border-color:var(--sky-ink)}
.rc-amt{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.rc-amt .rv-in{max-width:180px}
.rc-fixes{margin:6px 0 0;padding-left:22px;font-size:13px;display:grid;gap:3px}
.rc-card .rv-match{flex-wrap:wrap}
.rc-adds{margin:8px 0 0;font-size:13px;color:var(--muted);line-height:1.6}
.rc-adds b{color:var(--ink)}
.rc-adds svg{width:15px;height:15px;vertical-align:-2px;color:var(--ok)}
.rc-tbl td,.rc-tbl th{white-space:nowrap}
.rc-card .rv-match .btn{white-space:normal;text-align:left;height:auto;min-height:40px;line-height:1.35;padding-top:8px;padding-bottom:8px;max-width:100%}
.rc-card .rv-match{display:flex;gap:8px}
@media (max-width:640px){.rc-card .rv-match .btn{width:100%}}

/* ---------- 0.4.22 (2026-10-21, Elijah's phone screenshots) ---------- */
/* Header: sticks to the very top and fills the iPhone clock/battery strip, so nothing scrolls behind it. */
.top{top:0;margin-top:calc(-1 * env(safe-area-inset-top,0px));padding-top:calc(16px + env(safe-area-inset-top,0px))}
@media (max-width:860px){.top{padding-top:calc(12px + env(safe-area-inset-top,0px))}}
/* Phones: typing never zooms the page (iPhone zooms into any box under 16px and leaves the page shifted sideways). */
@media (max-width:860px){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}}
html,body{overflow-x:hidden}

/* Chat like WhatsApp: bubbles, yours on the right. */
.chat-msgs{gap:3px;background:var(--bg)}
.msg{grid-template-columns:34px minmax(0,1fr);align-items:end}
.msg-b{justify-self:start;max-width:min(78%,560px);background:var(--surface);border:1px solid var(--line);border-radius:4px 16px 16px 16px;padding:6px 11px 7px}
.msg.cont .msg-b{border-radius:16px}
.msg.mine{grid-template-columns:minmax(0,1fr)}
.msg.mine .msg-av{display:none}
.msg.mine .msg-b{justify-self:end;background:rgba(0,169,239,.16);border-color:rgba(0,169,239,.32);border-radius:16px 4px 16px 16px}
.msg.mine.cont .msg-b{border-radius:16px}
.msg.mine .msg-h b{display:none}
.msg.mine .msg-h{justify-content:flex-end}
.msg-sys,.msg-kudos{max-width:100%}
.msg.mine .msg-more{left:0;right:auto}

/* Phones: an open conversation fills the screen like WhatsApp. Own header (back · name · call), messages in the
   middle, the message box always sits on top of the keyboard (height follows the visible screen). */
@media (max-width:860px){
  .chat-wrap.has-room{position:fixed;left:0;right:0;top:var(--vv-top,0px);height:var(--vvh,100dvh);width:auto;min-height:0;z-index:70;border:0;border-radius:0;display:flex;flex-direction:column;background:var(--bg)}
  .chat-wrap.has-room .chat-main{flex:1;min-height:0;display:flex;flex-direction:column}
  .chat-wrap.has-room .chat-h{padding-top:calc(10px + env(safe-area-inset-top,0px));padding-left:max(10px,env(safe-area-inset-left,0px));background:var(--surface);flex:0 0 auto}
  .chat-wrap.has-room .chat-back{width:40px;height:40px;font-size:20px}
  .chat-wrap.has-room .chat-msgs{flex:1;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 10px 6px}
  .chat-wrap.has-room .chat-compose{flex:0 0 auto;background:var(--surface);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))}
  html.kb-open .chat-wrap.has-room .chat-compose{padding-bottom:8px}
  .chat-wrap.has-room .chat-compose textarea{min-height:42px;border-radius:21px}
  .chat-wrap.has-room .chat-compose .btn-p{width:44px;height:44px;border-radius:50%;padding:0;display:grid;place-items:center}
  body:has(.chat-wrap.has-room) .tabbar,body:has(.chat-wrap.has-room) .top{visibility:hidden}
  body:has(.chat-wrap.has-room){overflow:hidden}
  .msg-b{max-width:84%}
}
.msg.msg-kudos .msg-b,.msg.msg-announce .msg-b{background:none;border:0;padding:0;max-width:min(92%,560px)}
.chat-pins>button>:first-child{white-space:nowrap;flex:none}
/* Pill button rows (status, kind, period…) wrap inside their box instead of spilling out of it (Operations "Vehicle"). */
.seg{flex-wrap:wrap;max-width:100%;row-gap:2px}
.seg button{flex:0 0 auto}
@media (max-width:860px){.seg{border-radius:18px}}
.toolbar{flex-wrap:wrap;min-width:0;max-width:100%}
/* Analysis (43-analysis.js): one question bar, the answer straight under it. */
.an-ask{display:grid;gap:12px}
.an-q{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.an-q label{display:grid;gap:4px;min-width:150px;flex:1 1 170px}
.an-q label span,.an-when>span{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.an-q .sel{width:100%}
.an-when{display:grid;gap:6px}
.an-help{display:flex;gap:6px;align-items:flex-start;margin:0}
.an-help svg{flex:none;width:15px;height:15px;margin-top:2px}
.an-total{font:600 clamp(30px,6vw,44px)/1.05 var(--display);font-variant-numeric:lining-nums tabular-nums;margin:2px 0 6px}
.an-sub{margin:0}
.an-say{font-size:14.5px;line-height:1.6;margin:4px 0 12px}
.an-ans.is-busy{opacity:.55;transition:opacity .2s}
.an-table{margin-top:14px}
@media (max-width:640px){.an-q label{flex:1 1 100%}}
/* Button groups at the end of a toolbar wrap instead of running off the screen (Reports, Meetings, My commission, Bio data). */
.toolbar .end{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;max-width:100%;min-width:0}
@media (max-width:640px){.toolbar .end{width:100%;justify-content:flex-start;margin-left:0}.toolbar .end .btn{flex:1 1 auto}}
.mini-btns{flex-wrap:wrap;max-width:100%}
/* Finance overview order (0.4.22) */
.fin-period .kpis{margin-top:12px}
.fin-range{margin:12px 0 0}
.fin-sep{margin:6px 0 -8px}
.fin-an-link{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:1px dashed var(--line);border-radius:var(--r);background:transparent;color:var(--ink);padding:12px 14px;font:inherit;font-size:13.5px;cursor:pointer}
.fin-an-link svg{flex:none;width:18px;height:18px;color:var(--sky-ink)}
.fin-an-link span:nth-child(2){flex:1}
.fin-an-link:hover{border-color:var(--sky)}
/* Nothing inside a panel may push it wider than the screen (a wide table scrolls inside its own box). */
.panel,.panel>*{min-width:0}
.sel{max-width:100%;min-width:0}
.ph{flex-wrap:wrap;min-width:0}
.ph>div{min-width:0}
form.addc,.ai-chips{max-width:100%;min-width:0;flex-wrap:wrap}
.an-ans .ph>div{flex:1 1 240px}
.an-table,.an-say{min-width:0;overflow-wrap:anywhere}
.ai-chips .chip,.chip{white-space:normal;max-width:100%;text-align:left;height:auto}
.eyebrow svg{width:14px;height:14px;vertical-align:-2px;flex:none}
.an-when-m{display:none}
.an-ans{scroll-margin-top:calc(76px + env(safe-area-inset-top,0px))}
@media (max-width:640px){
  .an-q{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .an-q label{min-width:0}
  .an-q label span,.an-when>span{font-size:10.5px}
  .an-when .u-period{display:none}
  .an-when-m{display:block;width:100%}
  .an-ask{gap:8px;padding-block:12px}
  .an-help{font-size:12.5px}
}
.an-table td.r,.an-table th.r{white-space:nowrap}
/* Team targets (01-targets.js) */
.tp-rows{display:grid;gap:8px;margin:10px 0}
.tp-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.tp-n{display:flex;gap:8px;align-items:center;min-width:0}
.tp-n span{display:grid;min-width:0}
.tp-n small{color:var(--muted);font-size:12px}
.tp-row .rv-in{max-width:150px;text-align:right}
.ps-inv{display:flex;gap:8px;align-items:flex-start;margin:-4px 0 14px;font-size:13px;color:var(--muted);line-height:1.5}
.ps-inv svg{flex:none;width:15px;height:15px;margin-top:2px;color:var(--sky-ink)}
.ps-inv b{color:var(--ink)}

/* Accuracy check → Dates to check */
.dq{margin-top:12px;display:grid;gap:10px;min-width:0}
.dq-rows{display:grid;gap:8px}
.dq-row{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);min-width:0}
.dq-what{font-size:14px;overflow-wrap:anywhere}
.dq-when{margin-top:4px;font-size:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dq-sug{color:var(--sky-ink,#0076AE)}
.dq-row .hint{margin:6px 0 0}
.dq-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.dq-own input{min-height:40px;max-width:170px}
.dq-undo{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;padding:8px 12px;border-radius:12px;background:var(--sky-soft,#E7F6FE)}
.dq-undo .btn{margin-left:auto}
.dq-undo svg{width:18px;height:18px;flex:none;color:var(--sky-ink)}

/* Check in: why the Google map is off (MD/GM only) */
.gmap-why{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;padding:10px 12px;border-radius:12px;background:var(--sky-soft);font-size:13.5px;overflow-wrap:anywhere}
.gmap-why svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--sky-ink)}
.gmap-why i{color:var(--muted)}

/* Chat privacy note (bottom of the conversation list) */
.chat-priv{margin:auto 0 0;display:flex;gap:8px;align-items:flex-start;padding:10px 14px 12px;border-top:1px solid var(--line);font-size:12px;line-height:1.5;color:var(--muted)}
.chat-priv svg{width:14px;height:14px;flex:none;margin-top:2px;color:var(--sky-ink)}

/* Chat gradient style (Elijah, 2026-10-21: "rebrand the chat" like the gold-to-blue kudos cards). Others' messages:
   a quiet blue-to-gold wash; mine: a stronger blue. Kudos and announcements keep their own cards. Light and dark. */
.chat-msgs{background:radial-gradient(120% 80% at 0% 0%,rgba(0,169,239,.06),transparent 60%),radial-gradient(90% 70% at 100% 100%,rgba(255,196,0,.05),transparent 60%),var(--bg)}
.msg:not(.msg-kudos):not(.msg-announce) .msg-b{background:linear-gradient(120deg,rgba(0,169,239,.16),rgba(255,196,0,.13) 85%),var(--surface);border-color:color-mix(in srgb,var(--sky) 20%,var(--line))}
.msg.mine:not(.msg-kudos):not(.msg-announce) .msg-b{background:linear-gradient(120deg,rgba(0,169,239,.38),rgba(0,169,239,.20) 55%,rgba(255,196,0,.20)),var(--surface);border-color:rgba(0,169,239,.40)}
.msg-kudos{background:linear-gradient(120deg,rgba(255,196,0,.20),rgba(0,169,239,.16));border:1px solid rgba(255,196,0,.22)}
.chat-compose{background:linear-gradient(90deg,rgba(0,169,239,.06),rgba(255,196,0,.05)),var(--surface)}
.msg-more{background:var(--surface2);border:1px solid var(--line)}

/* ===================================================================== 0.4.24: places menu, Overview, Monthly ROI
   From the preview the GM approved (2026-10-29). Prefixes: pl- (menu), ov- (Overview), roi- (Monthly ROI). */
:root{--ov-bar:#C9D6EA;--ov-r:18px}
:root[data-theme="dark"]{--ov-bar:#33407A}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]):not([data-theme="blue"]){--ov-bar:#33407A}}
/* menu */
.pl-sec{font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#8FA2D4;padding:14px 12px 4px}
.nav .pl-sec:first-child{padding-top:2px}
.nav button[data-act="place"]{position:relative}
.nav button[data-act="place"][aria-current="page"]{background:#fff;color:var(--navy);box-shadow:0 10px 24px -14px rgba(0,0,0,.6)}
.nav button[data-act="place"][aria-current="page"] svg{color:var(--sky-ink)}
.nav button[data-act="place"][aria-current="page"]::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--sky)}
:root[data-theme="dark"] .nav button[data-act="place"][aria-current="page"]{background:#E7EBF7;color:#141C44}
.nav button .badge{margin-left:auto}
button.me{background:none;border:0;color:inherit;text-align:left;width:100%;cursor:pointer;font:inherit;border-radius:12px}
button.me:hover{background:rgba(255,255,255,.06)}
.pl-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 14px;padding:2px}
.pl-tabs button{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:700 13px var(--body);padding:8px 14px;border-radius:99px;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.pl-tabs button:hover{color:var(--ink)}
.pl-tabs button[aria-current="page"]{background:var(--navy);color:#fff;border-color:transparent}
:root[data-theme="dark"] .pl-tabs button[aria-current="page"]{background:#2F5FAE}
/* building blocks */
.ov-cardx{background:var(--surface);border:1px solid var(--line);border-radius:var(--ov-r);padding:16px 18px;min-width:0;position:relative}
.ov-h{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.ov-h h3{margin:0;font:800 15.5px var(--body);color:var(--ink)}
.ov-h p{margin:2px 0 0;color:var(--muted);font-size:12.5px}
.ov-h>.ov-link,.ov-h>.ov-aibtn,.ov-h>.ov-hr{margin-left:auto}
.ov-hr{display:flex;gap:8px;align-items:center}
.ov-link{color:var(--sky-ink);font-weight:700;font-size:13px;text-decoration:none;white-space:nowrap}
.ov-muted{color:var(--muted)}
.ov-grow{flex:1}
.ov-aibtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface2);color:var(--sky-ink);font:800 11.5px var(--body);padding:5px 10px;border-radius:99px;cursor:pointer;white-space:nowrap}
.ov-aibtn svg{width:13px;height:13px}
.ov-aibtn:hover{background:var(--sky-soft)}
.ov-src .ov-aibtn,.ov-atm .ov-aibtn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);color:#fff}
.ov-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap}
.ov-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.ov-pill.ok{background:var(--ok-soft);color:var(--ok)}.ov-pill.warn{background:var(--warn-soft);color:var(--warn)}.ov-pill.sky{background:var(--sky-soft);color:var(--sky-ink)}.ov-pill.idle{background:var(--surface2);color:var(--muted)}
.ov-trend{display:inline-flex;align-items:center;gap:3px;font-weight:800;font-size:12px;padding:2px 8px;border-radius:99px}
.ov-trend.up{background:var(--ok-soft);color:var(--ok)}.ov-trend.down{background:var(--bad-soft);color:var(--bad)}
.ov-kico{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--sky-soft);color:var(--sky-ink);flex:none}
.ov-kico svg{width:18px;height:18px}
.ov-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:800;font-size:13.5px;flex:none}
.ov-av.sm{width:28px;height:28px;font-size:11px}.ov-av.big{width:52px;height:52px;font-size:17px}
.ov-num,.ov-kv{font-family:var(--display);font-variant-numeric:lining-nums;font-weight:600}
.ov-tab{font-variant-numeric:tabular-nums}
.ov-live{width:8px;height:8px;border-radius:50%;background:#2BB673;display:inline-block;animation:ovPulse 2.4s infinite}
.ov-live.away{background:#E0A23B;animation:none}
@keyframes ovPulse{0%{box-shadow:0 0 0 0 rgba(43,182,115,.55)}70%{box-shadow:0 0 0 9px rgba(43,182,115,0)}100%{box-shadow:0 0 0 0 rgba(43,182,115,0)}}
.ov-livetag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#9BE6BE;background:rgba(91,196,143,.18);padding:2px 9px;border-radius:99px;margin-left:6px;vertical-align:2px}
.ov-livetag.light{color:var(--ok);background:var(--ok-soft)}
/* hero */
.ov-hero{position:relative;overflow:hidden;border-radius:var(--ov-r);padding:16px 20px 18px;background:var(--surface);border:1px solid var(--line);display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:center;margin-bottom:14px}
.ov-hero>*{min-width:0}
.ov-art{position:absolute;right:0;bottom:0;width:46%;height:56px;opacity:.09;pointer-events:none;color:var(--navy)}
:root[data-theme="dark"] .ov-art{color:#BFD3FF;opacity:.14}
.ov-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--sky-ink)}
.ov-eyebrow::before{content:"";width:20px;height:1px;background:currentColor;opacity:.6}
.ov-hero h2{margin:6px 0 4px;padding-bottom:.06em;font:500 clamp(28px,2.8vw,36px)/1.18 var(--display);color:var(--ink)}
.ov-hero h2 em{font-style:italic;color:var(--sky-ink)}
.ov-split .w{display:inline-block;padding-bottom:.08em;opacity:0;transform:translateY(.4em);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.in .ov-split .w{opacity:1;transform:none}
.ov-lead{margin:0;color:var(--muted);font-size:14.5px}
.ov-ask{margin-top:12px;display:flex;align-items:center;gap:10px;width:100%;max-width:520px;background:var(--surface2);border:1px solid var(--line);border-radius:99px;padding:6px 6px 6px 16px;cursor:pointer;color:var(--muted);font:500 13.5px var(--body);text-align:left}
.ov-ask span{display:flex;align-items:center;gap:10px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-ask svg{width:16px;height:16px;flex:none}
.ov-ask b{background:var(--navy);color:#fff;border-radius:99px;padding:8px 16px;font-size:13px}
:root[data-theme="dark"] .ov-ask b{background:#2F5FAE}
/* online now */
.ov-online{position:relative;z-index:1;min-width:0}
.ov-online.ov-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--ov-r);padding:14px 16px;margin-bottom:14px}
.ov-online-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:10px}
.ov-online-h a{margin-left:auto;color:var(--sky-ink);text-decoration:none;font-weight:700}
.ov-rail{display:flex;gap:12px;overflow:hidden;padding:4px 2px 6px}
.ov-person{display:flex;flex-direction:column;align-items:center;gap:5px;width:58px;flex:none;background:none;border:0;padding:0;cursor:pointer;color:var(--ink);text-decoration:none;font:inherit;opacity:0;transform:translateY(8px) scale(.92);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}
.ov-rail.ov-in .ov-person{opacity:1;transform:none}
.ov-person.ov-gone{display:none}
.ov-ring{position:relative;padding:3px;border-radius:50%;isolation:isolate}
.ov-ring::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,var(--sky),#2F5FAE,var(--navy),var(--sky));z-index:-1;animation:ovSpin 9s linear infinite}
.ov-ring.away::before{background:var(--line);animation:none}
@keyframes ovSpin{to{transform:rotate(360deg)}}
.ov-ring .ov-av{width:46px;height:46px;font-size:15px;box-shadow:0 0 0 3px var(--surface)}
.ov-ring i{position:absolute;right:1px;bottom:2px;width:12px;height:12px;border-radius:50%;background:#2BB673;box-shadow:0 0 0 3px var(--surface)}
.ov-ring.away i{background:#E0A23B}
.ov-person b{font-size:12px;max-width:58px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-person small{font-size:10.5px;color:var(--muted);margin-top:-5px;white-space:nowrap;max-width:58px;overflow:hidden;text-overflow:ellipsis}
.ov-more .ov-ring::before{display:none}
.ov-more .ov-av{background:var(--sky-soft);color:var(--sky-ink);box-shadow:0 0 0 1px var(--line)}
.ov-pop{position:fixed;z-index:90;width:260px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px -30px rgba(10,16,41,.55);padding:14px;display:grid;gap:10px}
.ov-pop-h{display:flex;gap:12px;align-items:center}
.ov-pop-h b{display:block;color:var(--ink)}.ov-pop-h small{color:var(--muted);font-size:12.5px}
.ov-pop-s{margin:0;font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:center}
/* toolbar */
.ov-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.ov-chips{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:4px}
.ov-chips button{border:0;background:none;color:var(--muted);font:700 13px var(--body);padding:7px 14px;border-radius:99px;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.ov-chips button.on{background:var(--navy);color:#fff}
:root[data-theme="dark"] .ov-chips button.on{background:#2F5FAE}
.ov-sel{appearance:none;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%235B6584' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center;border:1px solid var(--line);border-radius:99px;padding:9px 38px 9px 16px;font:700 13px var(--body);color:var(--ink);min-height:40px}
/* top row */
.ov-grid3{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,1.2fr);gap:14px;margin-bottom:14px}
.ov-g21{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.ov-g21.one{grid-template-columns:1fr}
.ov-money-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ov-money-top h3{margin:0;font:800 15px var(--body);color:var(--ink)}
.ov-seg{margin-left:auto;display:inline-flex;background:var(--surface2);border:1px solid var(--line);border-radius:99px;padding:4px;gap:2px}
.ov-seg button{border:0;background:none;color:var(--muted);font:700 13px var(--body);padding:7px 13px;border-radius:99px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s}
.ov-seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 6px 16px -10px rgba(20,28,68,.5)}
:root[data-theme="dark"] .ov-seg button.on{background:#2F5FAE;color:#fff}
.ov-mbody{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;align-items:end;margin-top:12px;min-height:112px}
.ov-mbody.swap{animation:ovSegIn .45s cubic-bezier(.16,1,.3,1)}
@keyframes ovSegIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.ov-bignum{display:flex;align-items:center;gap:10px}
.ov-bignum b{font:600 clamp(32px,3.2vw,46px)/1.05 var(--display);font-variant-numeric:lining-nums;color:var(--ink)}
.ov-eye{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--muted);border:1px solid var(--line);background:none;cursor:pointer}
.ov-eye svg{width:15px;height:15px}
.ov-secret{transition:filter .35s}
body.ov-hide .ov-secret{filter:blur(9px);user-select:none}
.ov-msub{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--muted);flex-wrap:wrap;margin-top:6px}
.ov-minibars{display:flex;align-items:flex-end;gap:5px;height:70px}
.ov-minibars i{width:12px;border-radius:5px 5px 3px 3px;background:var(--ov-bar);transform-origin:bottom;animation:ovGrowB .8s cubic-bezier(.16,1,.3,1) both}
.ov-minibars i.hi{background:linear-gradient(180deg,var(--sky),#2F5FAE)}
@keyframes ovGrowB{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ov-segline{grid-column:1/-1;display:grid;gap:6px}
.ov-segline .bars{display:flex;gap:4px;height:10px}
.ov-segline .bars i{border-radius:99px;transform-origin:left;animation:ovGrowX .9s cubic-bezier(.16,1,.3,1) both}
@keyframes ovGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ov-segline .lbl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);font-weight:600}
.ov-segline .lbl span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c);margin-right:6px}
.ov-macts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.ov-macts .btn{justify-content:center;min-height:42px;border:1px solid var(--line);background:var(--surface2);color:var(--ink);font-size:12.5px;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-macts .btn svg{flex:none}
.ov-macts .btn.ov-prim{background:var(--navy);color:#fff;border-color:transparent}
:root[data-theme="dark"] .ov-macts .btn.ov-prim{background:#2F5FAE}
/* where the money came from */
.ov-src{background:linear-gradient(150deg,#00A9EF 0%,#2F5FAE 55%,#1F2A5E 100%);color:#fff;border:0;overflow:hidden;display:flex;flex-direction:column}
.ov-src .ov-h h3{color:#fff}.ov-src .ov-h p{color:#E3F4FC}
.ov-src .ov-h{position:relative;z-index:1}
.ov-sheets{position:absolute;right:-18px;top:64px;width:140px;height:100px;pointer-events:none;opacity:.9}
.ov-sheets i{position:absolute;right:0;width:110px;height:72px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25)}
.ov-sheets i:nth-child(1){top:0;transform:rotate(-8deg) translateX(-26px)}
.ov-sheets i:nth-child(2){top:14px;transform:rotate(-2deg) translateX(-12px)}
.ov-sheets i:nth-child(3){top:28px;transform:rotate(5deg)}
.ov-sheets i::after{content:"";position:absolute;left:12px;top:14px;width:50%;height:6px;border-radius:9px;background:rgba(255,255,255,.5);box-shadow:0 12px 0 rgba(255,255,255,.3),0 24px 0 -1px rgba(255,255,255,.25)}
.in .ov-sheets i{animation:ovFloat 6s ease-in-out infinite}
.in .ov-sheets i:nth-child(2){animation-delay:.6s}.in .ov-sheets i:nth-child(3){animation-delay:1.2s}
@keyframes ovFloat{0%,100%{margin-top:0}50%{margin-top:-5px}}
.ov-tot{font:600 38px/1 var(--display);font-variant-numeric:lining-nums;margin-top:auto}
.ov-tot small{display:block;font:700 11.5px var(--body);letter-spacing:.06em;color:#E3F4FC;margin-bottom:4px}
.ov-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;border-top:1px solid rgba(255,255,255,.25);padding-top:12px}
.ov-parts div{padding:0 8px;border-left:1px solid rgba(255,255,255,.22)}
.ov-parts div:first-child{border-left:0;padding-left:0}
.ov-parts small{display:block;font-size:11.5px;color:#E3F4FC;font-weight:600}
.ov-parts b{font:600 18px var(--display);font-variant-numeric:lining-nums}
/* Money just in: client cards */
.ov-atm{background:linear-gradient(165deg,#141C44,#0D1330);color:#fff;border:0;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.ov-atm .ov-h h3{color:#fff}.ov-atm .ov-h p{color:#9FB2E0}
.ov-empty-dark{color:#9FB2E0;margin:0}
.ov-stack{position:relative;height:226px;perspective:900px;cursor:pointer;margin-top:4px;outline-offset:4px}
.ov-bcard{position:absolute;left:0;right:0;top:0;height:186px;border-radius:18px;padding:14px 16px;color:#fff;display:flex;flex-direction:column;box-shadow:0 22px 34px -22px rgba(0,0,0,.8);border:1px solid rgba(255,255,255,.14);transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .5s;overflow:hidden}
.ov-bcard::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at 85% 0%,rgba(255,255,255,.22),transparent 55%),repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px);pointer-events:none}
.ov-bcard[data-pos="0"]{transform:translateY(40px);z-index:4;opacity:1}
.ov-bcard[data-pos="1"]{transform:translateY(20px) scale(.94);z-index:3;opacity:.9}
.ov-bcard[data-pos="2"]{transform:translateY(0) scale(.88);z-index:2;opacity:.7}
.ov-bcard[data-pos="3"]{transform:translateY(-12px) scale(.82);z-index:1;opacity:0}
.ov-bcard[data-pos="new"]{transform:translateY(-80px) scale(1.04);opacity:0;z-index:5}
.ov-stack:hover .ov-bcard[data-pos="0"]{transform:translateY(36px) rotateX(4deg)}
.ov-bc-top{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:rgba(255,255,255,.88)}
.ov-bc-top small{display:block;font-size:10.5px;font-weight:600;letter-spacing:0;color:rgba(255,255,255,.72);margin-top:2px}
.ov-lplate{margin-left:auto;background:rgba(255,255,255,.92);border-radius:10px;padding:4px 7px;display:grid;place-items:center;height:30px}
.ov-lplate img{height:22px;width:auto}
.ov-gp{height:13px;margin-left:auto;opacity:.9}
.ov-pc-name{font:600 19px/1.15 var(--display);margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ov-pc-what{font-size:11px;color:rgba(255,255,255,.78);font-weight:600}
.ov-pc-mid{display:flex;align-items:center;gap:12px;margin-top:8px}
.ov-chip{width:34px;height:25px;border-radius:6px;background:linear-gradient(135deg,#F3D58B,#C99A3E);position:relative;flex:none}
.ov-chip::after{content:"";position:absolute;inset:5px 9px;border:1px solid rgba(80,55,10,.35);border-radius:3px}
.ov-pc-mid small{display:block;font-size:9.5px;letter-spacing:.1em;color:rgba(255,255,255,.72);font-weight:800}
.ov-pc-mid b{font:600 22px/1.05 var(--display);font-variant-numeric:lining-nums}
.ov-pc-tag{margin-left:auto;font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:99px;background:rgba(255,255,255,.18);white-space:nowrap}
.ov-pc-tag.full{background:#F3D58B;color:#3A2A06}
.ov-pc-prog{margin-top:auto}
.ov-pc-bar{height:5px;border-radius:99px;background:rgba(255,255,255,.2);overflow:hidden}
.ov-pc-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#fff,rgba(255,255,255,.75))}
.ov-pc-foot{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:rgba(255,255,255,.82);margin-top:5px;font-weight:600}
.ov-bcard.ov-fresh::after{content:"";position:absolute;inset:-2px;border-radius:20px;border:2px solid #7FD3F7;box-shadow:0 0 28px rgba(127,211,247,.7);animation:ovFresh 2.6s forwards;pointer-events:none}
@keyframes ovFresh{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
.ov-newbadge{position:absolute;top:10px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:900;letter-spacing:.14em;background:#7FD3F7;color:#0D1330;padding:2px 9px;border-radius:99px;animation:ovFresh 3s forwards}
.ov-atm-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ov-dots{display:flex;gap:5px;width:100%;justify-content:center;margin-bottom:2px}
.ov-dots i{width:7px;height:7px;border-radius:99px;background:rgba(255,255,255,.25);transition:width .3s,background .3s}
.ov-dots i.on{width:20px;background:var(--sky)}
.ov-atm-foot .btn{flex:1;justify-content:center;min-height:38px;font-size:12.5px}
.btn.ov-sky{background:var(--sky);color:#0D1330;border:0}
.btn.ov-glass{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}
/* quick actions */
.ov-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.ov-qa{position:relative;overflow:hidden;border-radius:18px;padding:14px 16px;color:#fff;border:0;display:flex;align-items:center;gap:12px;min-height:70px;text-align:left;cursor:pointer;font:inherit;transition:transform .25s,box-shadow .25s}
.ov-qa:hover{transform:translateY(-3px);box-shadow:0 18px 30px -18px rgba(20,28,68,.6)}
.ov-qa::after{content:"";position:absolute;top:0;bottom:0;width:60%;left:-70%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.25),transparent);transform:skewX(-18deg);transition:left .7s}
.ov-qa:hover::after{left:120%}
.ov-qi{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.16);display:grid;place-items:center;flex:none}
.ov-qi svg{width:20px;height:20px}
.ov-qa b{display:block;font-size:14px}.ov-qa small{font-size:12px;opacity:.88}
/* charts */
.ov-chart{position:relative;width:100%}
.ov-chart svg{display:block;width:100%;height:auto;overflow:visible}
.ov-b{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);transition:transform .95s cubic-bezier(.16,1,.3,1),opacity .2s}
.in .ov-b{transform:scaleY(1)}
.ov-chart svg:hover .ov-b{opacity:.45}
.ov-chart svg .ov-col:hover .ov-b{opacity:1}
.ov-tip{position:absolute;pointer-events:none;background:#141C44;color:#fff;border-radius:12px;padding:9px 12px;font-size:12.5px;line-height:1.5;box-shadow:0 18px 30px -18px rgba(0,0,0,.6);opacity:0;transform:translate(-50%,-110%);transition:opacity .15s;white-space:nowrap;z-index:4}
.ov-tip i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.ov-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:6px}
.ov-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.ov-gwrap{display:grid;place-items:center;position:relative}
.ov-gauge{width:100%;max-width:280px}
.ov-gs{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.6);transition:opacity .35s,transform .45s cubic-bezier(.16,1,.3,1)}
.in .ov-gs{opacity:1;transform:none}
.ov-gv{position:absolute;bottom:6px;text-align:center}
.ov-gv b{font-size:36px;display:block;line-height:1;color:var(--ink)}
.ov-gv small{color:var(--muted);font-size:12.5px;font-weight:600}
.ov-mrows{display:grid;gap:12px;margin-top:12px}
.ov-mrow{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;font-size:13px;color:var(--ink)}
.ov-track{grid-column:1/-1;height:8px;border-radius:99px;background:var(--surface2);overflow:hidden;border:1px solid var(--line)}
.ov-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sky),#2F5FAE);width:0;transition:width 1s cubic-bezier(.16,1,.3,1)}
/* journey */
.ov-journey{display:grid;grid-template-columns:repeat(4,1fr);position:relative;padding-top:6px}
.ov-journey::before{content:"";position:absolute;left:12%;right:12%;top:72px;border-top:2px dashed var(--line)}
.ov-traveller{position:absolute;top:67px;left:12%;width:12px;height:12px;border-radius:50%;background:var(--sky);box-shadow:0 0 0 5px rgba(0,169,239,.18);z-index:2;animation:ovTravel 7s ease-in-out infinite}
@keyframes ovTravel{0%{left:12%;opacity:0}8%{opacity:1}88%{opacity:1}100%{left:88%;opacity:0}}
.ov-step{text-align:center;position:relative;padding:0 6px;color:var(--ink)}
.ov-step-ic{width:58px;height:52px;color:var(--navy)}
:root[data-theme="dark"] .ov-step-ic{color:#BFD3FF}
.ov-dot{width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--sky);margin:6px auto 10px;position:relative;z-index:1}
.ov-step b{font-size:30px;display:block;line-height:1}
.ov-step strong{display:block;font-size:13.5px;margin-top:4px}
.ov-step small{color:var(--muted);font-size:12px}
/* lists, table, estates */
.ov-list{display:grid}
.ov-li{display:flex;align-items:center;gap:12px;padding:10px 0;border:0;border-top:1px solid var(--line);background:none;text-align:left;width:100%;cursor:pointer;font:inherit;color:var(--ink)}
.ov-li:first-child{border-top:0}
.ov-t{min-width:0;flex:1}.ov-t b{display:block;font-size:14px}.ov-t small{color:var(--muted);font-size:12.5px}
.ov-ic2{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--warn-soft);color:var(--warn)}
.ov-ic2 svg{width:18px;height:18px}
.ov-go{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);flex:none;color:var(--muted)}
.ov-go svg{width:14px;height:14px}
.ov-needs .ov-li:first-child .ov-ic2{position:relative}
.ov-needs .ov-li:first-child .ov-ic2::after{content:"";position:absolute;inset:-3px;border-radius:14px;border:2px solid var(--warn);opacity:0;animation:ovNeed 2.8s 1.2s infinite}
@keyframes ovNeed{0%{opacity:.6;transform:scale(.9)}100%{opacity:0;transform:scale(1.25)}}
.ov-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.ov-tabs button{border:0;background:none;color:var(--muted);font:700 13px var(--body);padding:7px 14px;border-radius:99px;cursor:pointer}
.ov-tabs button.on{background:var(--sky-soft);color:var(--sky-ink)}
.ov-tblw{overflow-x:auto;margin:0 -18px;padding:0 18px}
.ov-tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:600px;color:var(--ink)}
.ov-tbl th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:800;text-align:left;padding:9px 12px;background:var(--surface2);white-space:nowrap}
.ov-tbl th:first-child{border-radius:10px 0 0 10px}.ov-tbl th:last-child{border-radius:0 10px 10px 0}
.ov-tbl td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.ov-tbl tr:last-child td{border-bottom:0}
.ov-tbl .r{text-align:right}
.ov-tbl tbody tr{transition:background .15s}.ov-tbl tbody tr:hover{background:var(--surface2)}
.in .ov-tbl tbody tr,.in .ov-li,.in .ov-estate{animation:ovRow .6s cubic-bezier(.16,1,.3,1) both}
@keyframes ovRow{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ov-who{display:flex;align-items:center;gap:10px}
.ov-amt{font-weight:800}.ov-amt.in{color:var(--ok)}
.ov-estate{display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);color:var(--ink)}
.ov-estate:first-of-type{border-top:0}
.ov-edot{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:11.5px;grid-row:span 2}
.ov-estate b{font-size:14px}.ov-estate small{color:var(--muted);font-size:12px}
.ov-estate .ov-track{grid-column:2/4;height:6px;border:0}
/* KPI tiles (Monthly ROI) */
.ov-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.ov-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--ov-r);padding:14px 16px;display:grid;gap:4px;color:var(--ink)}
.ov-kpi .ov-ktop{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--muted)}
.ov-kpi .ov-kv{font-size:clamp(24px,2.1vw,30px);line-height:1.1}
.ov-kpi small{color:var(--muted);font-size:12.5px}
.ov-kpi.hero{background:linear-gradient(140deg,var(--navy),#2B3D86);border-color:transparent;color:#fff}
:root[data-theme="dark"] .ov-kpi.hero{background:linear-gradient(140deg,#1D2B66,#2F5FAE)}
.ov-kpi.hero .ov-ktop,.ov-kpi.hero small{color:#C9D4F2}
.ov-kpi.hero .ov-kico{background:rgba(255,255,255,.12);color:#fff}
/* reveal */
.ov-rv{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.ov-rv.in{opacity:1;transform:none}
/* Monthly ROI */
.roi-lock{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);padding:6px 12px;border-radius:99px}
.roi-lock svg{width:14px;height:14px}
.roi-split{display:grid;grid-template-columns:minmax(0,370px) minmax(0,1fr);background:linear-gradient(160deg,#141C44,#1F2A5E);border-radius:22px;overflow:hidden;color:#fff;min-height:500px;margin-bottom:12px}
.roi-list{padding:16px 12px 16px 16px;border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:10px;min-width:0}
.roi-list h3{margin:2px 4px;font:800 15px var(--body);display:flex;align-items:center;gap:8px;color:#fff}
.roi-list h3 small{margin-left:auto;font-weight:600;color:#9FB2E0;font-size:12px}
.roi-search{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:99px;padding:8px 14px}
.roi-search input{border:0;background:transparent;outline:0;color:#fff;font:500 13px var(--body);width:100%}
.roi-search input::placeholder{color:#9FB2E0}
.roi-search svg{width:15px;height:15px;color:#9FB2E0}
.roi-items{display:grid;gap:6px;overflow:auto;max-height:560px;padding-right:2px}
.roi-none{color:#AFC0EA;padding:12px;margin:0}
.roi-it{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:center;padding:10px 12px;border-radius:16px;text-align:left;color:#fff;background:none;border:0;cursor:pointer;font:inherit;transition:background .2s}
.roi-it:hover{background:rgba(255,255,255,.06)}
.roi-it.on{background:linear-gradient(135deg,#2F5FAE,#00A9EF);box-shadow:0 14px 28px -16px rgba(0,169,239,.8)}
.roi-it .ov-av{grid-row:span 2;width:38px;height:38px;font-size:13px}
.roi-it b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roi-it small{color:#AFC0EA;font-size:11.5px}
.roi-it.on small{color:#E3F4FC}
.roi-amt{font:600 17px var(--display);font-variant-numeric:lining-nums;text-align:right}
.roi-st{justify-self:end;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:99px;background:rgba(255,255,255,.12)}
.roi-st.paid{background:rgba(91,196,143,.2);color:#9BE6BE}.roi-st.due{background:rgba(127,211,247,.18);color:#BDEBFF}.roi-st.late{background:rgba(240,123,119,.22);color:#FFC3BF}
.roi-it.on .roi-st{background:rgba(255,255,255,.22);color:#fff}
.roi-st.big{font-size:12px;padding:5px 12px;margin-left:auto}
.roi-detail{padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0;background:radial-gradient(600px circle at 90% -10%,rgba(0,169,239,.18),transparent 50%)}
.roi-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.roi-head h3{margin:0;font:600 26px/1.1 var(--display);color:#fff}
.roi-head small{color:#AFC0EA;font-size:12.5px}
.roi-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.roi-tiles>div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:12px 14px}
.roi-tiles small{display:block;color:#AFC0EA;font-size:11px;font-weight:700;letter-spacing:.04em}
.roi-tiles b{display:block;font:600 22px/1.2 var(--display);font-variant-numeric:lining-nums;margin-top:4px}
.roi-tiles span{font-size:12px;color:#CFDAF6}
.roi-bank{border-radius:18px;padding:14px 16px;background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.16);display:grid;gap:8px}
.roi-row{display:grid;grid-template-columns:120px 1fr auto;gap:10px;align-items:center;font-size:13px}
.roi-row span{color:#AFC0EA;font-weight:700;font-size:12px}
.roi-row b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roi-acct{font:600 19px/1.2 ui-monospace,Menlo,monospace!important;letter-spacing:.08em}
.roi-copy{display:inline-flex;align-items:center;gap:6px;font:800 12px var(--body);padding:6px 12px;border-radius:99px;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer}
.roi-copy:hover{background:rgba(255,255,255,.22)}
.roi-copy svg{width:14px;height:14px}
.roi-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.btn.roi-white{background:#fff;color:#141C44;border:0}
.btn.roi-glass{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18);text-decoration:none}
.roi-note{margin:0;font-size:12.5px;color:#FFD9A0}
.roi-inst{display:grid;gap:8px}
.roi-inst-top{font-size:13px;color:#CFDAF6}
.roi-inst-top b{font:600 21px var(--display);color:#fff;font-variant-numeric:lining-nums}
.roi-dots{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:5px}
.roi-dots i{height:10px;border-radius:99px;background:rgba(255,255,255,.14);transform:scaleX(.3);opacity:.4;transform-origin:left;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s}
.roi-dots i.paid{background:linear-gradient(90deg,#7FD3F7,#00A9EF)}
.roi-dots i.now{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.18)}
.roi-dots.go i{transform:none;opacity:1}
.roi-dl{display:flex;justify-content:space-between;font-size:11px;color:#9FB2E0}
.roi-histw{margin:0;padding:0}
.roi-hist{width:100%;border-collapse:collapse;font-size:12.5px}
.roi-hist th{background:rgba(255,255,255,.06);color:#AFC0EA;font-size:10.5px;text-align:left;padding:8px 12px;text-transform:uppercase;letter-spacing:.05em}
.roi-hist td{border-bottom:1px solid rgba(255,255,255,.08);color:#E7EBF7;padding:8px 12px}
.roi-hist .r{text-align:right}
.roi-foot{display:flex;gap:8px;align-items:flex-start;font-size:12px;margin:0}
.roi-foot svg{width:14px;height:14px;flex:none;margin-top:2px}
@media (max-width:1180px){.ov-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-grid3>.ov-money{grid-column:1/-1}.ov-quick,.ov-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-g21{grid-template-columns:1fr}.ov-hero{grid-template-columns:1fr}}
@media (max-width:860px){
  .ov-grid3{grid-template-columns:1fr}.ov-grid3>.ov-money{grid-column:auto}
  .ov-money-top .ov-seg{margin-left:0;width:100%;display:flex}.ov-money-top .ov-seg button{flex:1;padding:8px 6px;font-size:12.5px}
  .ov-macts{grid-template-columns:1fr 1fr}.ov-macts .btn.ov-prim{grid-column:1/-1}
  .ov-bar .ov-chips{width:100%;display:flex}.ov-bar .ov-chips button{flex:1;padding:8px 6px;font-size:12.5px}.ov-bar .ov-sel{flex:1}
  .ov-quick{gap:10px}.ov-qa{padding:12px;min-height:62px}.ov-qa small{display:none}
  .ov-journey{grid-template-columns:repeat(2,1fr);row-gap:18px}.ov-journey::before,.ov-traveller{display:none}
  .ov-tblw{margin:0 -16px;padding:0 16px}
  .roi-split{grid-template-columns:1fr;border-radius:18px}
  .roi-list{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .roi-items{max-height:300px}
  .roi-tiles{grid-template-columns:1fr 1fr}
  .roi-row{grid-template-columns:1fr auto}.roi-row span{grid-column:1/-1;margin-bottom:-6px}
  .pl-tabs{margin:0 -16px 12px;padding:2px 16px}
}
@media (prefers-reduced-motion:reduce){
  .ov-rv,.ov-person,.ov-split .w,.ov-gs{opacity:1!important;transform:none!important;transition:none!important}
  .ov-b{transform:none!important;transition:none!important}
  .ov-minibars i,.ov-segline .bars i,.ov-tbl tbody tr,.ov-li,.ov-estate,.ov-sheets i,.ov-ring::before,.ov-live,.ov-needs .ov-ic2::after{animation:none!important}
  .ov-traveller{display:none}.roi-dots i{transform:none;opacity:1}
}

/* ===================================================================== 0.4.25: shared dashboard cards (gk-)
   From the GM's 15 sample dashboards (preview v7, approved 2026-10-29). */
:root{--gk-plum:#7A3F9A;--gk-plum-soft:#F1E8F7;--gk-navy-soft:#E6E9F5;--gk-track:#E4EAF4;--gk-ease:cubic-bezier(.16,1,.3,1)}
:root[data-theme="dark"]{--gk-plum:#C79BE0;--gk-plum-soft:#3A2A4A;--gk-navy-soft:#26305E;--gk-track:#2A345E}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]):not([data-theme="blue"]){--gk-plum:#C79BE0;--gk-plum-soft:#3A2A4A;--gk-navy-soft:#26305E;--gk-track:#2A345E}}
.t-sky{--c:var(--sky-ink);--s:var(--sky-soft)}.t-ok{--c:var(--ok);--s:var(--ok-soft)}.t-warn{--c:var(--warn);--s:var(--warn-soft)}.t-bad{--c:var(--bad);--s:var(--bad-soft)}.t-navy{--c:var(--navy);--s:var(--gk-navy-soft)}.t-plum{--c:var(--gk-plum);--s:var(--gk-plum-soft)}
:root[data-theme="dark"] .t-navy{--c:#BFD3FF}
.gk-num{font-family:var(--display);font-variant-numeric:lining-nums;font-weight:600}
/* KPI cards */
.gk-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:14px}
.gk-kpi{position:relative;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 16px 0;min-width:0;overflow:hidden}
.gk-kt{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.gk-ki{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--s);color:var(--c);flex:none}.gk-ki svg{width:20px;height:20px}
.gk-chip{margin-left:auto;display:inline-flex;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:99px;background:var(--ok-soft);color:var(--ok);white-space:nowrap}
.gk-chip.down{background:var(--bad-soft);color:var(--bad)}
.gk-i{margin-left:auto;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:var(--surface2);color:var(--muted);font:800 12px var(--body);cursor:pointer;flex:none}
.gk-chip+.gk-i{margin-left:6px}
.gk-kpi .gk-num{font-size:clamp(24px,2.1vw,30px);line-height:1.1;color:var(--ink);overflow-wrap:anywhere}
.gk-kl{font-weight:800;font-size:13.5px;color:var(--ink)}
.gk-ks{color:var(--muted);font-size:12.5px}
.gk-why{margin:8px 0 0;padding:9px 11px;border-radius:12px;background:var(--surface2);color:var(--ink);font-size:12.5px;line-height:1.5}
.gk-pg{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:10px}.gk-pg b{color:var(--ink)}
.gk-bar{height:7px;border-radius:99px;background:var(--gk-track);overflow:hidden;margin-top:5px}
.gk-bar i{display:block;height:100%;width:0;border-radius:99px;background:var(--c);transition:width 1.1s var(--gk-ease)}
.gk-bar.go i{width:var(--w)}
.gk-foot{display:flex;align-items:center;justify-content:space-between;width:calc(100% + 32px);margin:12px -16px 0;padding:11px 16px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:700 13px var(--body);cursor:pointer;text-align:left}
.gk-foot svg{width:15px;height:15px;transition:transform .2s}.gk-foot:hover svg{transform:translateX(3px)}
.gk-kpi:not(:has(.gk-foot)){padding-bottom:16px}
.gk-kpi.gk-hero{background:linear-gradient(140deg,var(--navy),#2F5FAE 70%,#00A9EF);border-color:transparent}
.gk-hero .gk-ki{background:rgba(255,255,255,.16);color:#fff}
.gk-hero .gk-num,.gk-hero .gk-kl,.gk-hero .gk-pg b,.gk-hero .gk-foot{color:#fff}
.gk-hero .gk-ks,.gk-hero .gk-pg{color:#D3DEF7}
.gk-hero .gk-chip{background:rgba(255,255,255,.18);color:#fff}
.gk-hero .gk-i{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);color:#fff}
.gk-hero .gk-why{background:rgba(255,255,255,.12);color:#fff}
.gk-hero .gk-bar{background:rgba(255,255,255,.2)}.gk-hero .gk-bar i{background:#7FD3F7}
.gk-hero .gk-foot{border-color:rgba(255,255,255,.2)}
/* welcome band */
.gk-band{position:relative;overflow:hidden;border-radius:22px;padding:20px 22px 16px;margin-bottom:14px;color:#fff;background:linear-gradient(125deg,#141C44 0%,#1F2A5E 38%,#2F5FAE 72%,#0076AE 100%);box-shadow:0 26px 50px -34px rgba(20,28,68,.8)}
.gk-band::before{content:"";position:absolute;width:280px;height:280px;right:-70px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(127,211,247,.35),transparent 70%);pointer-events:none}
.gk-art{position:absolute;right:0;bottom:0;width:52%;height:120px;color:#fff;opacity:.08;pointer-events:none}
.gk-bh{position:relative;display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.gk-bh h2{margin:2px 0 0;font:500 clamp(28px,2.8vw,36px)/1.15 var(--display);color:#fff}
.gk-bh h2 em{font-style:italic;color:#7FD3F7}
.gk-bh p{margin:4px 0 0;color:#D3DEF7;font-size:14px}
.gk-date{margin:0!important;font-size:11px!important;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#9FD8F5!important}
.gk-tiles{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.gk-tile{display:grid;gap:2px;align-content:start;text-align:left;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:12px 14px;color:#fff;font:inherit;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s,transform .25s var(--gk-ease);min-width:0}
button.gk-tile{cursor:pointer}button.gk-tile:hover{background:rgba(255,255,255,.17);transform:translateY(-2px)}
.gk-ti{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.16);display:grid;place-items:center;margin-bottom:4px}.gk-ti svg{width:16px;height:16px}
.gk-tile small{font-size:12px;color:#D3DEF7;font-weight:700}
.gk-tile .gk-num{font-size:26px;line-height:1.1;overflow-wrap:anywhere}
.gk-tile em{font-style:normal;font-size:11.5px;color:#BDEBFF}
.gk-bfoot{position:relative;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}
.gk-bfoot .ov-online{margin:0}
.gk-bfoot .ov-online-h{color:#D3DEF7}.gk-bfoot .ov-online-h a{color:#7FD3F7}
.gk-bfoot .ov-person b{color:#fff}.gk-bfoot .ov-person small{color:#AFC0EA}
.gk-bfoot .ov-ring .ov-av{box-shadow:0 0 0 3px #22306B}.gk-bfoot .ov-ring i{box-shadow:0 0 0 3px #22306B}
/* waiting for you */
.gk-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;padding:4px 11px;border-radius:99px;white-space:nowrap}
.gk-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.gk-pill.bad{background:var(--bad-soft);color:var(--bad)}.gk-pill.ok{background:var(--ok-soft);color:var(--ok)}.gk-pill.sky{background:var(--sky-soft);color:var(--sky-ink)}.gk-pill.warn{background:var(--warn-soft);color:var(--warn)}
.gk-pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.gk-pc{display:flex;flex-direction:column;gap:4px;border-radius:18px;padding:14px;background:linear-gradient(160deg,var(--s),var(--surface) 78%);border:1px solid var(--line);min-width:0}
.gk-pch{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}
.gk-pci{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--c);color:#fff}.gk-pci svg{width:19px;height:19px}
:root[data-theme="dark"] .gk-pci,:root[data-theme="dark"] .gk-bub,:root[data-theme="dark"] .gk-pbtn{color:#0D1330}
.gk-bub{min-width:30px;height:30px;padding:0 8px;border-radius:99px;display:grid;place-items:center;background:var(--c);color:#fff;font-weight:800;font-size:14px;animation:gkBub 2.6s 1s infinite}
@keyframes gkBub{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,.12)}50%{box-shadow:0 0 0 7px rgba(0,0,0,0)}}
.gk-pc b{font-size:15px;color:var(--ink)}.gk-pc small{color:var(--muted);font-size:12.5px;flex:1}
.gk-pbtn{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--c);color:#fff;border:0;font:800 13px var(--body);padding:10px;border-radius:12px;cursor:pointer;min-height:42px}
.gk-pbtn:hover{filter:brightness(1.08)}.gk-pbtn svg{width:14px;height:14px}
/* flow */
.gk-flow{display:flex;align-items:center;justify-content:space-between;gap:6px;overflow-x:auto;padding:4px 2px;scrollbar-width:none}
.gk-fs{display:grid;justify-items:center;text-align:center;gap:2px;min-width:92px;flex:1;opacity:0;transform:translateY(8px);transition:opacity .6s var(--gk-ease),transform .6s var(--gk-ease)}
.gk-flow.go .gk-fs{opacity:1;transform:none}
.gk-fi{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--sky-soft);color:var(--sky-ink);margin-bottom:6px}.gk-fi svg{width:23px;height:23px}
.gk-fs small{font-weight:800;font-size:12.5px;color:var(--ink)}
.gk-fs .gk-num{font-size:28px;line-height:1}
.gk-fs em{font-style:normal;font-size:11.5px;color:var(--muted)}
.gk-arrow{color:var(--muted);flex:none}.gk-arrow svg{width:16px;height:16px}
/* marked lists */
.gk-wl{display:grid}
.gk-wr{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.gk-wr:first-child{border-top:0}
.gk-wt{flex:1;min-width:0}.gk-wt b{display:block;font-size:13.5px;color:var(--ink)}.gk-wt small{color:var(--muted);font-size:12.5px}
.gk-wi{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--s);color:var(--c)}.gk-wi svg{width:15px;height:15px}
.gk-wr .btn{min-height:34px;padding:5px 12px;font-size:12.5px}
/* rank medals */
.gk-rank{display:grid;gap:8px}
.gk-rk{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--surface2);border:1px solid var(--line)}
.gk-medal{position:relative;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:13px;flex:none}
.gk-medal.m0{background:linear-gradient(135deg,#F3C14B,#B98321)}.gk-medal.m1{background:linear-gradient(135deg,#B9C3D3,#7C8AA0)}.gk-medal.m2{background:linear-gradient(135deg,#E99A63,#B0582A)}.gk-medal.m3{background:linear-gradient(135deg,#7FA4E0,#2F5FAE)}
.gk-medal i{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--surface);color:var(--ink);font-style:normal;font-size:11px;display:grid;place-items:center;box-shadow:0 2px 6px rgba(20,28,68,.25)}
.gk-rt{flex:1;min-width:0}.gk-rt b{display:block;font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gk-rt small{color:var(--muted);font-size:12px}
.gk-rv{font-family:var(--display);font-size:19px;font-weight:600;color:var(--ink);white-space:nowrap}
/* gauge */
.gk-gauge{position:relative;max-width:300px;margin:0 auto}
.gk-gauge svg{width:100%;height:auto;display:block}
.gk-gs{fill:var(--gk-track);transition:fill .35s}
.gk-gauge.go .gk-gs.on{fill:#2F5FAE}.gk-gauge.go .gk-gs.on2{fill:var(--sky,#00A9EF)}
.gk-gv{position:absolute;left:0;right:0;bottom:4px;text-align:center}
.gk-gv .gk-num{display:block;font-size:34px;line-height:1;color:var(--ink)}.gk-gv small{color:var(--muted);font-size:12px}
.gk-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.gk-two>div{background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;gap:2px;min-width:0}
.gk-two small{color:var(--muted);font-size:12px;font-weight:700}.gk-two .gk-num{font-size:20px;color:var(--ink);overflow-wrap:anywhere}.gk-two span{font-size:12px;color:var(--muted)}
/* ring pills */
.gk-pills{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:14px}
.gk-rp{display:flex;align-items:center;gap:14px;border-radius:99px;padding:8px 22px 8px 8px;background:var(--surface);border:1px solid var(--line)}
.gk-rp.dark{background:linear-gradient(110deg,#0D1330,#1F2A5E);border-color:transparent}
.gk-rp b{display:block;font-size:14.5px;color:var(--ink)}.gk-rp small{color:var(--muted);font-size:12px}
.gk-rp.dark b{color:#fff}.gk-rp.dark small{color:#AFC0EA}
.gk-rtrack{fill:none;stroke:var(--gk-track);stroke-width:6}
.gk-rp.dark .gk-rtrack{stroke:rgba(255,255,255,.15)}
.gk-rfill{fill:none;stroke:var(--sky,#00A9EF);stroke-width:6;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.3s var(--gk-ease)}
.gk-rp.dark .gk-rfill{stroke:#7FD3F7}
.gk-rp.go .gk-rfill{stroke-dasharray:var(--d) 100}
.gk-rp text{font:800 15px var(--body);fill:var(--ink)}.gk-rp.dark text{fill:#fff}
/* AI card */
.gk-ai{position:relative;overflow:hidden;border-radius:20px;padding:20px;margin-bottom:14px;color:#fff;background:radial-gradient(420px circle at 50% 125%,rgba(0,169,239,.35),transparent 60%),linear-gradient(165deg,#141C44,#0D1330);display:flex;flex-direction:column;gap:8px}
.gk-aig{position:absolute;left:50%;bottom:-130px;width:320px;height:180px;transform:translateX(-50%);border-radius:50%;border:1px solid rgba(127,211,247,.35);box-shadow:0 0 60px rgba(0,169,239,.35);pointer-events:none}
.gk-aii{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.12);display:grid;place-items:center}.gk-aii svg{width:21px;height:21px}
.gk-ai h2{margin:0;font:600 22px/1.2 var(--display);color:#fff}
.gk-ai>p{margin:0;color:#C3D0F0;font-size:13px;line-height:1.55;position:relative}
.gk-ai .ai-answer{position:relative;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#E7EBF7;border-radius:14px}
.gk-ai .ai-answer .eyebrow{color:#9FD8F5}
.gk-ai .hint{color:#AFC0EA}
.gk-ai .addc{position:relative;display:flex;gap:8px;flex-wrap:wrap}
.gk-ai .addc input{flex:1;min-width:180px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;border-radius:99px;padding:10px 16px}
.gk-ai .addc input::placeholder{color:#9FB2E0}
.gk-ai .btn-p,.gk-ai .btn-s{background:linear-gradient(135deg,#7FD3F7,#00A9EF);color:#0D1330;border:0;box-shadow:0 10px 30px -10px rgba(0,169,239,.8)}
.gk-ai .btn-s,.gk-ai>button{position:relative;align-self:flex-start}
.gk-ai .tbl{color:#E7EBF7}
/* banner */
.gk-cta{display:flex;align-items:center;gap:14px;border-radius:20px;padding:16px 20px;margin-bottom:14px;color:#fff;background:linear-gradient(110deg,#1F2A5E,#2F5FAE 60%,#00A9EF);position:relative;overflow:hidden}
.gk-ctai{width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.16);display:grid;place-items:center;flex:none}.gk-ctai svg{width:22px;height:22px}
.gk-cta b{display:block;font:600 21px/1.2 var(--display)}.gk-cta small{color:#DCE6FB;font-size:13px}
.gk-ctab{margin-left:auto;display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1F2A5E;border:0;font:800 13.5px var(--body);padding:11px 18px;border-radius:99px;cursor:pointer;white-space:nowrap}
.gk-ctab svg{width:15px;height:15px}
/* Today: check-in + day timeline */
.gk-ck{display:flex;align-items:center;gap:14px;margin:4px 0 10px}
.gk-ck .gk-num{font-size:42px;line-height:1;color:var(--ink)}
.gk-ck b{display:block;font-size:14px;color:var(--ink)}.gk-ck span{color:var(--muted);font-size:12.5px}
.gk-day{list-style:none;margin:0;padding:0;display:grid}
.gk-day li{position:relative;display:grid;grid-template-columns:70px 16px 1fr;gap:10px;align-items:start;padding:8px 0}
.gk-day li::after{content:"";position:absolute;left:87px;top:24px;bottom:-8px;width:2px;background:var(--line)}
.gk-day li:last-child::after{display:none}
.gk-day .gk-dt{font-size:12px;font-weight:800;color:var(--muted);padding-top:2px}
.gk-day .gk-dt.late{color:var(--bad)}
.gk-dd{width:12px;height:12px;border-radius:50%;border:2px solid var(--sky,#00A9EF);background:var(--surface);margin-top:3px;position:relative;z-index:1}
.gk-day li.late .gk-dd{border-color:var(--bad);background:var(--bad-soft)}
.gk-day li.now .gk-dd{background:var(--sky,#00A9EF);box-shadow:0 0 0 4px var(--sky-soft)}
.gk-day button{all:unset;cursor:pointer;display:block}
.gk-day b{display:block;font-size:13.5px;color:var(--ink)}.gk-day small{color:var(--muted);font-size:12px}
.gk-feed{display:grid}
.gk-fd{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line);text-align:left;width:100%;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;color:inherit;cursor:pointer}
.gk-fd:first-child{border-top:0}
.gk-fdi{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;background:var(--s);color:var(--c)}.gk-fdi svg{width:17px;height:17px}
.gk-fd b{display:block;font-size:13.5px;color:var(--ink)}.gk-fd small{display:block;color:var(--muted);font-size:12px}
.gk-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--ok)}
.gk-live::before{content:"";width:8px;height:8px;border-radius:50%;background:#2BB673;animation:ovPulse 2.4s infinite}
.gk-g2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.gk-g2>.panel,.gk-g3>.panel{margin:0}
.gk-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.gk-g11{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.gk-g11>.panel,.gk-g11>.gk-ai{margin:0}
@media (max-width:1180px){.gk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.gk-g3{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  .gk-band{padding:16px;border-radius:18px}.gk-tiles{gap:8px}.gk-tile{padding:10px}.gk-tile .gk-num{font-size:21px}.gk-tile em{font-size:11px}
  .gk-pgrid{grid-template-columns:1fr 1fr}.gk-pc{padding:12px}.gk-pc small{font-size:12px}
  .gk-g2,.gk-g3,.gk-g11{grid-template-columns:1fr}
  .gk-row{grid-template-columns:1fr 1fr;gap:10px}.gk-kpi{padding:12px 12px 0}.gk-foot{width:calc(100% + 24px);margin:10px -12px 0;padding:10px 12px}
  .gk-cta{flex-wrap:wrap}.gk-ctab{margin-left:0;width:100%;justify-content:center}
  .gk-flow{justify-content:flex-start}
  .gk-day li{grid-template-columns:58px 16px 1fr}.gk-day li::after{left:75px}
}
@media (max-width:420px){.gk-row{grid-template-columns:1fr}.gk-pgrid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.gk-bub,.gk-live::before{animation:none!important}.gk-fs{opacity:1;transform:none;transition:none}.gk-bar i,.gk-rfill,.gk-gs{transition:none}.gk-bar i{width:var(--w)}.gk-rfill{stroke-dasharray:var(--d) 100}.gk-gs.on{fill:#2F5FAE}.gk-gs.on2{fill:var(--sky,#00A9EF)}}
.gk-g2>.panel,.gk-g11>.panel{align-content:start;align-self:stretch}
.gk-g2>.panel>.btn,.gk-g11>.panel>.btn{align-self:flex-start;justify-self:start;flex:none;height:auto}
/* 0.4.25 How we are performing: one card, period buttons + figure tiles switch the same card (Steadi) */
.gk-perf .ph{flex-wrap:wrap;gap:10px}
.gk-ph{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.gk-seg{display:inline-flex;background:var(--surface2);border:1px solid var(--line);border-radius:99px;padding:4px;gap:2px}
.gk-seg button{border:0;background:none;color:var(--muted);font:700 13px var(--body);padding:7px 14px;border-radius:99px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s}
.gk-seg button[aria-pressed="true"]{background:var(--navy);color:#fff;box-shadow:0 6px 16px -10px rgba(20,28,68,.6)}
:root[data-theme="dark"] .gk-seg button[aria-pressed="true"]{background:#2F5FAE}
.gk-pgrid2{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:14px;margin-top:12px}
.gk-mets{display:grid;gap:8px;align-content:start}
.gk-met{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"i l c" "i v c";gap:0 12px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:10px 12px;cursor:pointer;font:inherit;color:var(--ink);transition:background .25s,border-color .25s,transform .2s}
.gk-met:hover{transform:translateX(2px)}
.gk-mi{grid-area:i;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--sky-soft);color:var(--sky-ink)}.gk-mi svg{width:17px;height:17px}
.gk-met small{grid-area:l;font-size:12px;font-weight:700;color:var(--muted)}
.gk-met .gk-num{grid-area:v;font-size:20px;line-height:1.15}
.gk-met .gk-chip{grid-area:c;margin:0}
.gk-met.on{background:linear-gradient(140deg,var(--navy),#2F5FAE);border-color:transparent;color:#fff}
.gk-met.on small{color:#D3DEF7}.gk-met.on .gk-mi{background:rgba(255,255,255,.16);color:#fff}
.gk-met.on .gk-chip{background:rgba(255,255,255,.18);color:#fff}
.gk-num.neg{color:var(--bad)}.gk-met.on .gk-num.neg{color:#FFC3BF}
.gk-pbig{border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--surface2);min-width:0;animation:gkSwap .45s var(--gk-ease)}
@keyframes gkSwap{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.gk-pbn small{display:block;font-size:12px;font-weight:700;color:var(--muted)}
.gk-pbn>.gk-num{display:block;font-size:clamp(30px,3vw,42px);line-height:1.1;color:var(--ink);margin:2px 0}
.gk-pbc{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.gk-pbc .gk-chip{margin:0}
.gk-pbw{margin:6px 0 0;font-size:12.5px;color:var(--muted);max-width:62ch}
.gk-trend{display:flex;align-items:flex-end;gap:6px;height:150px;margin-top:14px;padding-top:22px}
.gk-tb{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative;min-width:0}
.gk-tb i{display:block;width:100%;max-width:34px;height:0;border-radius:8px 8px 4px 4px;background:var(--gk-track);transition:height .9s var(--gk-ease)}
.gk-perf .gk-trend i{height:var(--h)}
.gk-tb.on i{background:repeating-linear-gradient(135deg,#2F5FAE 0 6px,#4C79C8 6px 12px)}
.gk-tb.neg i{background:var(--bad-soft)}.gk-tb.on.neg i{background:var(--bad)}
.gk-tb span{font-size:10.5px;color:var(--muted);margin-top:5px}
.gk-tb.on span{color:var(--ink);font-weight:800}
.gk-tb em{position:absolute;top:-22px;font-style:normal;font-size:11px;font-weight:800;color:#fff;background:var(--navy);padding:2px 7px;border-radius:99px;white-space:nowrap}
.gk-split{margin-top:14px}
.gk-sb{display:flex;gap:4px;height:12px}
.gk-sb i{border-radius:99px;transform-origin:left;animation:gkGrowX .9s var(--gk-ease) both}
.gk-sb i.ex{background:#2F5FAE}.gk-sb i.kp{background:var(--ok);animation-delay:.12s}
@keyframes gkGrowX{from{transform:scaleX(0)}to{transform:none}}
.gk-sl{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12.5px;font-weight:700;margin-top:6px}
.gk-sl .ex{color:#2F5FAE}.gk-sl .kp{color:var(--ok)}
:root[data-theme="dark"] .gk-sl .ex{color:#9EC3F0}
.gk-split small{color:var(--muted);font-size:11.5px}
@media (max-width:860px){.gk-pgrid2{grid-template-columns:1fr}.gk-mets{grid-template-columns:1fr 1fr}.gk-met{grid-template-columns:1fr;grid-template-areas:"i" "l" "v" "c";gap:4px}.gk-ph{margin-left:0;width:100%}.gk-seg{width:100%;display:flex}.gk-seg button{flex:1;padding:8px 6px;font-size:12.5px}.gk-trend{height:120px;gap:3px}}
@media (prefers-reduced-motion:reduce){.gk-pbig,.gk-sb i{animation:none}.gk-tb i{transition:none}}
.ov-hero{grid-template-columns:1fr}
.gk-tb em{top:auto;bottom:calc(var(--h) + 24px);z-index:1}
/* 0.4.25 one card, switch tabs */
.gk-swt{display:flex;overflow-x:auto;scrollbar-width:none;margin:6px 0 12px;max-width:100%;width:max-content}
.gk-cnt{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 5px;border-radius:99px;background:var(--surface);font-size:11px;margin-left:2px}
.gk-seg button[aria-pressed="true"] .gk-cnt{background:rgba(255,255,255,.2);color:#fff}
.gk-swb.swap{animation:gkSwap .45s var(--gk-ease)}
.gk-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.gk-fig{position:relative;display:grid;gap:2px;align-content:start;background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;min-width:0}
.gk-fig::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}
.gk-fig.t-sky::before{background:var(--line)}
.gk-fgh{display:flex;align-items:center;gap:6px}.gk-fgh small{font-size:12px;font-weight:700;color:var(--muted);flex:1}
.gk-fgh .gk-i{margin:0;width:22px;height:22px;font-size:11px}
.gk-fig .gk-num{font-size:22px;line-height:1.15;color:var(--ink);overflow-wrap:anywhere}
.gk-fig>span{font-size:12px;color:var(--muted)}
.gk-flink{justify-self:start;display:inline-flex;align-items:center;gap:4px;margin-top:6px;border:0;background:none;color:var(--sky-ink);font:800 12px var(--body);cursor:pointer;padding:0}
.gk-flink svg{width:13px;height:13px}
.gk-swb .gk-figs+*{margin-top:12px}
@media (max-width:860px){.gk-swt{width:100%}.gk-figs{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.gk-swb.swap{animation:none}}
.gk-swt{flex-wrap:wrap;width:auto;border-radius:18px;overflow:visible}
/* Phones: tabs slide sideways in one row (edges fade), never wrap; the card swipes between tabs */
@media (max-width:860px){
  .gk-swt{flex-wrap:nowrap;width:100%;overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;border-radius:99px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent)}
  .gk-swt button,.gk-seg button{min-height:40px;flex:none}
  .gk-perf .gk-seg button{flex:1}
  .gk-swb{touch-action:pan-y}
  .gk-sw .ph h2{font-size:17px}
}
/* 0.4.25 user-test fixes: card tabs look different from page tabs (light track, white chosen tab) */
.gk-sw .gk-swt,.gk-perf .gk-seg{background:var(--surface2);border:1px solid var(--line)}
.gk-sw .gk-swt button[aria-pressed="true"],.gk-perf .gk-seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 0 var(--line),0 6px 14px -10px rgba(20,28,68,.55);outline:1px solid var(--line)}
:root[data-theme="dark"] .gk-sw .gk-swt button[aria-pressed="true"],:root[data-theme="dark"] .gk-perf .gk-seg button[aria-pressed="true"]{background:#2A3566;color:#fff;outline-color:transparent}
.gk-sw .gk-swt button[aria-pressed="true"] .gk-cnt{background:var(--sky-soft);color:var(--sky-ink)}
.gk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bad);margin-left:4px;vertical-align:1px;box-shadow:0 0 0 3px var(--bad-soft)}
.gk-tip{border-color:var(--sky);background:linear-gradient(160deg,var(--sky-soft),var(--surface) 70%)}
.gk-tipl{margin:0;padding-left:20px;display:grid;gap:6px;font-size:13.5px;color:var(--ink)}
@media (hover:none){.gk-i{width:32px;height:32px;font-size:13px}.gk-fgh .gk-i{width:30px;height:30px}}
@media (max-width:860px){.gk-g2>.gk-ci{order:-1}}
/* 0.4.25 payroll: one path, one main button per step */
.py-now{display:grid;gap:12px}
.py-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;counter-reset:s}
.py-steps li{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--muted);padding:8px 10px;border-radius:12px;background:var(--surface2);border:1px solid var(--line);min-width:0}
.py-steps li span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--surface);border:1px solid var(--line);font-size:12px}
.py-steps li span svg{width:13px;height:13px}
.py-steps li.done{color:var(--ok)}.py-steps li.done span{background:var(--ok);border-color:var(--ok);color:#fff}
.py-steps li.now{color:var(--ink);border-color:var(--sky);background:var(--sky-soft)}.py-steps li.now span{background:var(--navy);border-color:var(--navy);color:#fff}
.py-nowr{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.py-nowr p{margin:0;flex:1;min-width:240px;font-size:14px;color:var(--ink)}
.py-nowr .mini-btns{margin:0}
.py-items{display:grid;gap:8px;margin-bottom:8px}
.py-it{display:grid;grid-template-columns:1fr 130px auto;gap:8px}
.py-it input{min-width:0}
.py-prog{display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:13px;color:var(--ink)}
.py-prog .gk-bar{flex:1;margin:0}
.ho-list{display:grid;gap:6px}
@media (max-width:860px){.py-steps{grid-template-columns:1fr 1fr}.py-it{grid-template-columns:1fr 100px auto}}
.py-it{grid-template-columns:1fr 120px auto auto}
.py-every{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.py-std summary{cursor:pointer;list-style:none}.py-std summary::-webkit-details-marker{display:none}
.py-std summary::before{content:"▸ ";color:var(--muted)}.py-std[open] summary::before{content:"▾ "}
@media (max-width:860px){.py-it{grid-template-columns:1fr 96px;grid-auto-flow:row}.py-every{grid-column:1}}
/* 0.4.25 one look across the portal: older blocks follow the new cards */
.panel,.kpi{border-radius:18px}
.kpi{gap:4px;padding:14px 16px}
.kpi .k-v{font-family:var(--display);font-weight:600;font-variant-numeric:lining-nums;letter-spacing:0}
.kpi .k-s{font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kpi .k-i{position:absolute;top:10px;right:28px;margin:0}
.kpi .gk-why{margin:6px 0 0}
.k-why{display:none}
.privacy{font-size:12px;cursor:pointer;opacity:.85}
.privacy span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.privacy.open span{-webkit-line-clamp:unset}
.privacy:focus-visible{outline:2px solid var(--sky);outline-offset:3px;border-radius:6px}
.gk-more-notes{margin:0}
.gk-more-notes>summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--sky-ink);padding:4px 2px;list-style:none}
.gk-more-notes>summary::-webkit-details-marker{display:none}
.gk-more-notes>summary::before{content:"▸ "}.gk-more-notes[open]>summary::before{content:"▾ "}
.gk-more-notes>.notice{margin-top:8px}
/* 0.4.25 charts: donut, histogram, trend line (animate once; reduced motion shows them finished) */
.gk-donut{display:grid;grid-template-columns:minmax(120px,170px) 1fr;gap:18px;align-items:center}
.gk-dc{position:relative;aspect-ratio:1}
.gk-dc svg{width:100%;height:100%;transform:rotate(-90deg)}
.gk-dc circle{fill:none;stroke-width:5.2}
.gk-dc .gk-dtr{stroke:var(--line,#E1E6F0)}
.gk-dc circle[style]{stroke-dasharray:0 100;stroke-dashoffset:var(--o);transition:stroke-dasharray 1.1s cubic-bezier(.16,1,.3,1) calc(var(--i)*90ms)}
.gk-donut.go .gk-dc circle[style]{stroke-dasharray:var(--d) calc(100 - var(--d))}
.gk-dm{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:2px}
.gk-dm .gk-num{font-family:"Cormorant Garamond",serif;font-variant-numeric:lining-nums;font-size:clamp(18px,2.4vw,24px);font-weight:600;color:var(--ink)}
.gk-dm small{font-size:11px;color:var(--muted)}
.gk-dl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.gk-dl li{display:grid;grid-template-columns:10px 1fr auto 38px;gap:8px;align-items:center;font-size:13px}
.gk-dl i{width:10px;height:10px;border-radius:3px}
.gk-dl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.gk-dl b{font-variant-numeric:tabular-nums;font-weight:700}
.gk-dl em{font-style:normal;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:560px){.gk-donut{grid-template-columns:1fr}.gk-dc{width:min(180px,60%);margin:0 auto}}
.gk-hist{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;align-items:end;height:170px;padding-top:6px}
.gk-hc{display:grid;grid-template-rows:auto 1fr auto;height:100%;text-align:center;gap:6px;min-width:0}
.gk-hc b{font-size:14px;color:var(--ink)}
.gk-hb{display:flex;align-items:flex-end;background:var(--idle-soft);border-radius:8px;overflow:hidden}
.gk-hb i{display:block;width:100%;height:var(--h);background:var(--c,var(--sky));border-radius:8px 8px 0 0;transform:scaleY(0);transform-origin:bottom;transition:transform .9s cubic-bezier(.16,1,.3,1) calc(var(--i)*80ms)}
.gk-hist.go .gk-hb i{transform:scaleY(1)}
.gk-hc small{font-size:11.5px;color:var(--muted);line-height:1.25}
.gk-hc.t-ok{--c:var(--ok)}.gk-hc.t-warn{--c:var(--warn)}.gk-hc.t-bad{--c:var(--bad)}.gk-hc.t-sky{--c:var(--sky)}.gk-hc.t-navy{--c:var(--navy-chart)}.gk-hc.t-idle{--c:var(--idle)}
.gk-hf{margin:10px 0 0}
.gk-spark{display:block;width:100%;height:28px;margin:6px 0 2px;overflow:visible}
.gk-spark .gk-sl{fill:none;stroke:var(--sky);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s cubic-bezier(.16,1,.3,1)}
.gk-spark .gk-sa{fill:var(--sky);opacity:0;transition:opacity 1s .4s}
.gk-spark.down .gk-sl{stroke:var(--warn)}.gk-spark.down .gk-sa{fill:var(--warn)}
.gk-spark.go .gk-sl{stroke-dashoffset:0}.gk-spark.go .gk-sa{opacity:.1}
@media (prefers-reduced-motion:reduce){.gk-dc circle[style]{transition:none;stroke-dasharray:var(--d) calc(100 - var(--d))}.gk-hb i{transition:none;transform:none}.gk-spark .gk-sl{transition:none;stroke-dashoffset:0}.gk-spark .gk-sa{transition:none;opacity:.1}}
.gk-sub{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.gk-sub h3{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--ink)}
.panel>.gk-sub:first-child{margin-top:0;padding-top:0;border-top:0}
/* Small icons inside hint and meta lines never grow to the default SVG size (bell on Client payments, phones). */
.hint>svg:not([class]),.meta>svg:not([class]){width:15px;height:15px;vertical-align:-3px;flex:none}
/* Phones: "Waiting for you" as compact rows: icon · title with its count · note and button on the second line. */
.gk-bubm{display:none}
@media (max-width:560px){
  .gk-pgrid{grid-template-columns:1fr;gap:8px}
  .gk-pc{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"ic t t" "ic s go";column-gap:12px;row-gap:6px;align-items:center;padding:12px}
  .gk-pch{display:contents}
  .gk-pci{grid-area:ic;align-self:start}
  .gk-pch .gk-bub{display:none}
  .gk-bubm{display:inline-block;vertical-align:1px;margin-left:4px;padding:1px 8px;border-radius:99px;background:var(--c);color:#fff;font-size:11.5px;font-weight:800;white-space:nowrap}
  :root[data-theme="dark"] .gk-bubm{color:#0D1330}
  .gk-pc b{grid-area:t;font-size:14px;line-height:1.3}
  .gk-pc small{grid-area:s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .gk-pbtn{grid-area:go;margin:0;padding:7px 12px;min-height:38px;font-size:12.5px;border-radius:99px;white-space:nowrap}
}
/* Small phones: figure cards two to a row (the first, navy one across), so five figures take two and a half rows, not five. */
@media (max-width:420px){
  .gk-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gk-row>.gk-hero,.gk-row>.gk-kpi:only-child{grid-column:1/-1}
  .gk-row>.gk-kpi:not(.gk-hero) .gk-num{font-size:clamp(19px,5.6vw,24px);overflow-wrap:anywhere}
  .gk-row>.gk-kpi:not(.gk-hero) .gk-ks{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
.ps-more{margin:4px 0 8px}
.ps-more summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--sky-ink);list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:32px}
.ps-more summary::-webkit-details-marker{display:none}
.ps-more summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.ps-more[open] summary::after{transform:rotate(-135deg)}
.ps-more[open] summary{font-size:0}.ps-more[open] summary::before{content:"Less";font-size:12.5px}
/* Phones: period and branch choices slide sideways on one line instead of wrapping onto three. */
@media (max-width:560px){
  .u-period,.u-filters{min-width:0;max-width:100%}
  .u-period .seg,.u-filters .seg{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
  .u-period .seg::-webkit-scrollbar,.u-filters .seg::-webkit-scrollbar{display:none}
  .u-period .seg>button,.u-filters .seg>button{flex:none;white-space:nowrap;scroll-snap-align:start}
}
/* Live month bars (GM 2026-10-29): tap, click or slide along them; the big figure counts to that month. */
.gk-trend{touch-action:pan-y;user-select:none;-webkit-user-select:none}
button.gk-tb{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px}
button.gk-tb:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
button.gk-tb:hover i{filter:brightness(1.15)}
button.gk-tb:not(.on):hover::before{content:attr(data-val);position:absolute;bottom:calc(var(--h) + 26px);font-size:10.5px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--line);padding:1px 6px;border-radius:99px;white-space:nowrap;z-index:2;pointer-events:none}
@media (hover:none){button.gk-tb:not(.on):hover::before{display:none}}
.gk-tb em{animation:gkTag .35s var(--gk-ease,cubic-bezier(.16,1,.3,1))}
@keyframes gkTag{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.gk-pbn.flip small,.gk-pbn.flip .gk-pbc{animation:gkTag .4s var(--gk-ease,cubic-bezier(.16,1,.3,1))}
.gk-pback{margin-left:6px;border:0;background:none;padding:2px 0;font:700 12px var(--body);color:var(--sky-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){.gk-tb em,.gk-pbn.flip small,.gk-pbn.flip .gk-pbc{animation:none}}
/* Live charts: point, tap or slide; the picked bar/slice stays bright, the rest dim, its figure shows. */
.u-read{min-height:26px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:13px;color:var(--muted);margin:0 0 6px}
.u-read b{color:var(--ink);font-variant-numeric:tabular-nums}
.u-read .u-rl{font-size:14px;font-weight:800;min-width:34px}
.u-read i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:0}
.u-read .u-rh{font-size:12px}
.u-read b.neg{color:var(--bad)}
.u-net{padding-left:12px;border-left:1px solid var(--line)}
.u-chart{touch-action:pan-y}
.u-hit{fill:transparent;cursor:pointer}
.u-g rect:not(.u-hit){transition:opacity .25s}
.u-chart.has-pick .u-g:not(.pick) rect:not(.u-hit){opacity:.25}
.u-g.pick .u-hit{fill:var(--sky);fill-opacity:.07}
.gk-dc circle[data-di]{cursor:pointer;transition:stroke-dasharray 1.1s cubic-bezier(.16,1,.3,1) calc(var(--i)*90ms),stroke-width .25s,opacity .25s}
.gk-donut.has-pick .gk-dc circle[data-di]:not(.pick){opacity:.28}
.gk-dc circle[data-di].pick{stroke-width:7}
.gk-dc svg{overflow:visible}
.gk-dl li{cursor:pointer;border-radius:8px;padding:3px 6px;margin:0 -6px;transition:background .2s,opacity .2s}
.gk-dl li:hover{background:var(--idle-soft)}
.gk-donut.has-pick .gk-dl li:not(.pick){opacity:.45}
.gk-donut.has-pick .gk-dl li.pick{background:var(--idle-soft)}
.gk-dm small{max-width:72%;margin:0 auto;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gk-hist{touch-action:pan-y}
.gk-hc{cursor:pointer;transition:opacity .25s}
.gk-hist.has-pick .gk-hc:not(.pick){opacity:.38}
.gk-hc.pick b{color:var(--sky-ink)}
@media (prefers-reduced-motion:reduce){.gk-dc circle[data-di]{transition:none}}
.u-chart.nar .u-ax{font-size:13px}
