/* =====================================================================================================================
   Calibic console — design system v2 (docs: scratchpad/redesign/DESIGN-SYSTEM.md)
   1. tokens  2. base + type  3. shell (sidebar / header / palette / drawer)  4. primitives (U.*)  5. charts  6. states
   Legacy names (--card, --well, --lime*, --c1..5, --seq-*, --high, --med, --grid, --axis, --sh-*) are ALIASES of the new
   semantic tokens so untouched page files keep rendering. New code uses the semantic names only.
   ===================================================================================================================== */
:root{
  /* --- light: warm off-white --- */
  --bg:#F7F6F3;--surface:#FFFFFF;--surface-2:#F2F0EC;--surface-3:#E9E7E2;--line:#E6E4DF;--line-2:#D4D1CA;
  --ink:#1A1A1A;--ink-2:#44433F;--muted:#5F5E5A;--faint:#8C8A84;
  --accent:#0F766E;--accent-strong:#0B5F59;--accent-soft:#E3F1EF;--accent-soft-2:#CCE6E2;--accent-muted:#6FA9A3;--on-accent:#FFFFFF;
  --good:#166534;--good-soft:#E4F3E9;--warn:#A94A07;--warn-soft:#FBEEDD;--crit:#B91C1C;--crit-soft:#FBE7E2;--info:#1D4ED8;--info-soft:#E7ECFA;
  --scrim:rgba(26,26,26,.28);--frost:rgba(255,255,255,.72);
  /* --- radii / shadows / spacing / z / motion --- */
  --r:14px;--r-sm:10px;--r-xs:8px;--r-lg:18px;--pill:999px;
  --sh-0:none;--sh-1:0 1px 2px rgba(26,26,26,.04);--sh-2:0 4px 14px rgba(26,26,26,.08),0 1px 3px rgba(26,26,26,.05);--sh-3:0 18px 48px rgba(26,26,26,.14),0 4px 12px rgba(26,26,26,.06);--sh-pill:var(--sh-1);
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;
  --z-side:30;--z-top:20;--z-tip:80;--z-scrim:40;--z-panel:50;--z-drawer:60;--z-pal:70;--z-toast:95;--z-modal:98;
  --d-fast:120ms;--d-micro:160ms;--d-hover:180ms;--d-med:280ms;--d-page-out:250ms;--d-page-in:450ms;--d-count:700ms;
  --ease:cubic-bezier(.2,.8,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-inout:cubic-bezier(.65,0,.35,1);
  --sans:"Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --side-w:240px;--side-rail:56px;--content-max:1400px;
  /* --- legacy aliases (pages) --- */
  --bg-2:var(--surface-2);--card:var(--surface);--well:var(--surface-2);--well-2:var(--surface-3);
  --lime:var(--accent);--lime-2:var(--accent-strong);--lime-ink:var(--on-accent);--lime-soft:var(--accent-soft);--lime-wash:var(--accent-soft-2);
  --high:var(--warn);--high-soft:var(--warn-soft);--med:#8A6A00;
  --c1:var(--accent);--c2:var(--info);--c3:var(--good);--c4:var(--accent-muted);--c5:#8C8A84;
  --seq-1:#D9ECE9;--seq-2:#A9D3CD;--seq-3:#6FB0A8;--seq-4:#0F766E;--seq-5:#0A4F4A;
  --grid:var(--line);--axis:var(--line-2);
  color-scheme:light;
}
:root:not([data-theme="light"]){@media (prefers-color-scheme:dark){
  --bg:#0B0E13;--surface:#11151C;--surface-2:#171C24;--surface-3:#1E242E;--line:#232A34;--line-2:#303845;
  --ink:#E6E8EB;--ink-2:#C3C8CF;--muted:#9AA3AE;--faint:#6B7480;
  --accent:#3BB5A8;--accent-strong:#5CC9BD;--accent-soft:#14302E;--accent-soft-2:#1B413E;--accent-muted:#5F8F8A;--on-accent:#06201D;
  --good:#46C07A;--good-soft:#14301F;--warn:#E0A04A;--warn-soft:#332814;--crit:#EF6F5F;--crit-soft:#3A1F1B;--info:#7FA3F5;--info-soft:#1B2540;
  --scrim:rgba(0,0,0,.5);--frost:rgba(17,21,28,.72);
  --sh-1:0 1px 2px rgba(0,0,0,.35);--sh-2:0 4px 14px rgba(0,0,0,.4);--sh-3:0 18px 48px rgba(0,0,0,.55);
  --med:#D4B04A;--c5:#8792A0;--seq-1:#1B3A37;--seq-2:#245C57;--seq-3:#2F8A81;--seq-4:#3BB5A8;--seq-5:#8ADBD2;
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0B0E13;--surface:#11151C;--surface-2:#171C24;--surface-3:#1E242E;--line:#232A34;--line-2:#303845;
  --ink:#E6E8EB;--ink-2:#C3C8CF;--muted:#9AA3AE;--faint:#6B7480;
  --accent:#3BB5A8;--accent-strong:#5CC9BD;--accent-soft:#14302E;--accent-soft-2:#1B413E;--accent-muted:#5F8F8A;--on-accent:#06201D;
  --good:#46C07A;--good-soft:#14301F;--warn:#E0A04A;--warn-soft:#332814;--crit:#EF6F5F;--crit-soft:#3A1F1B;--info:#7FA3F5;--info-soft:#1B2540;
  --scrim:rgba(0,0,0,.5);--frost:rgba(17,21,28,.72);
  --sh-1:0 1px 2px rgba(0,0,0,.35);--sh-2:0 4px 14px rgba(0,0,0,.4);--sh-3:0 18px 48px rgba(0,0,0,.55);
  --med:#D4B04A;--c5:#8792A0;--seq-1:#1B3A37;--seq-2:#245C57;--seq-3:#2F8A81;--seq-4:#3BB5A8;--seq-5:#8ADBD2;
  color-scheme:dark;
}

/* ===== 2. base + type ===== */
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1{font-size:28px;font-weight:400;letter-spacing:-.02em;margin:0;line-height:1.15}h1 b{font-weight:600}
h2{font-size:16px;font-weight:600;margin:0;display:flex;align-items:center;gap:8px;letter-spacing:-.005em}h2 svg{width:16px;height:16px;color:var(--muted)}
h3{font-size:14px;font-weight:600;margin:0;color:var(--ink-2)}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}a{color:inherit;text-decoration:none}svg{display:block}
b,strong{font-weight:600}em,i:not([class]){font-style:normal}   /* Outfit has no italics */
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:13px}.dim{color:var(--ink-2)}.tnum,.num{font-variant-numeric:tabular-nums}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}
::selection{background:var(--accent-soft-2)}
input,select,textarea{font:inherit;color:inherit}
/* 44px minimum targets for every interactive control */
.btn,.fbtn,.apply,.ic,.nav a,.nav .ngh,.tabs a,.subtabs a,.seg button,.segc button,.inp,.sel,.mini-act,.toggle,.pal-item{min-height:44px}
.mini-act{min-width:44px}

/* ===== 3. shell ===== */
.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100%;position:relative;transition:grid-template-columns var(--d-med) var(--ease)}
html[data-rail="1"] .app{grid-template-columns:var(--side-rail) minmax(0,1fr)}
/* sidebar */
.side{position:sticky;top:0;height:100vh;height:100dvh;display:flex;z-index:var(--z-side)}
.side .panel{background:var(--surface);border-right:1px solid var(--line);flex:1;display:flex;flex-direction:column;padding:14px 10px 12px;overflow:hidden;min-width:0}
.brand{display:flex;align-items:center;gap:10px;padding:4px 6px 12px;min-height:48px}
.brand-link{display:flex;align-items:center;text-decoration:none;min-height:36px;flex:1;min-width:0}
.brand-logo{display:block;height:26px;width:auto;max-width:145px;object-fit:contain}
.brand-logo-mark{display:none;width:28px;height:28px;object-fit:contain}
.brand-logo.dark-only{display:none}
.brand-logo.light-only{display:block}
html[data-theme="dark"] .brand-logo.dark-only{display:block}
html[data-theme="dark"] .brand-logo.light-only{display:none}
:root:not([data-theme="light"]){@media (prefers-color-scheme:dark){
  .brand-logo.dark-only{display:block}
  .brand-logo.light-only{display:none}
}}
.brand .mk{width:32px;height:32px;border-radius:10px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none}.brand .mk svg{width:18px;height:18px}
.brand small{display:block;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.brand .rail-btn{margin-left:auto}
.rail-btn{width:32px;height:32px;min-height:32px;border-radius:var(--r-xs);display:grid;place-items:center;color:var(--muted);flex:none}.rail-btn:hover{background:var(--surface-2);color:var(--ink)}.rail-btn svg{width:16px;height:16px;transition:transform var(--d-med) var(--ease)}
html[data-rail="1"] .rail-btn svg{transform:rotate(180deg)}
.nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden;margin:0 -4px;padding:0 4px 8px;scrollbar-width:thin;flex:1}
.nav .grp{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:14px 12px 4px}
/* groups (accordion) */
.ng{display:flex;flex-direction:column}
.ng+.ng{margin-top:2px}
.ngh{display:flex;align-items:center;gap:10px;padding:0 10px;height:44px;border-radius:var(--r-sm);color:var(--ink-2);font-size:15px;font-weight:500;width:100%;text-align:left;transition:background var(--d-hover),color var(--d-hover)}
.ngh:hover{background:var(--surface-2);color:var(--ink)}
.ngh>svg:first-child{width:18px;height:18px;flex:none;color:var(--muted)}
.ngh .chev{margin-left:auto;width:14px;height:14px;color:var(--faint);transition:transform var(--d-med) var(--ease)}
.ng.open .ngh .chev{transform:rotate(90deg)}
.ng.has-on .ngh{color:var(--ink)}.ng.has-on .ngh>svg:first-child{color:var(--accent)}
.ngi{display:none;flex-direction:column;gap:1px;padding:2px 0 6px 0;position:relative}
.ng.open .ngi{display:flex}
.ngi::before{content:"";position:absolute;left:18px;top:6px;bottom:10px;width:1px;background:var(--line)}
.nav a,.nav-bottom a{display:flex;align-items:center;gap:10px;padding:0 10px 0 36px;height:40px;min-height:40px;border-radius:var(--r-sm);color:var(--ink-2);font-size:15px;font-weight:450;position:relative;transition:background var(--d-hover),color var(--d-hover),transform var(--d-hover) var(--ease)}
.nav a svg,.nav-bottom a svg{width:16px;height:16px;flex:none;opacity:.9}.nav a>span:first-of-type,.nav-bottom a>span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav a .cnt,.nav-bottom a .cnt{font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:var(--pill);background:var(--crit-soft);color:var(--crit);font-variant-numeric:tabular-nums}
.nav a:hover,.nav-bottom a:hover{background:var(--surface-2);color:var(--ink)}
.nav a.on,.nav-bottom a.on{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}
.nav a.on::before{content:"";position:absolute;left:17px;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--accent)}
.nav a.on .cnt,.nav-bottom a.on .cnt{background:var(--accent);color:var(--on-accent)}
.nav a .pin{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:var(--faint);opacity:0;flex:none;margin-right:-6px;transition:opacity var(--d-fast),color var(--d-fast),background var(--d-fast)}
.nav a:hover .pin,.nav a .pin:focus-visible,.nav a .pin.on{opacity:1}.nav a .pin:hover{background:var(--surface-3);color:var(--ink)}
.nav a .pin.on{color:var(--warn)}.nav a .pin svg{width:14px;height:14px}
.ng.pinned .ngi::before{display:none}.ng.pinned .nav-a,.ng.pinned a{padding-left:10px}.ng.pinned a.on::before{display:none}
.ng.pinned .ngh{color:var(--faint);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;height:32px;min-height:32px;cursor:default}.ng.pinned .ngh:hover{background:none}
.nav-bottom{border-top:1px solid var(--line);padding-top:8px;margin:0 -4px;padding-left:4px;padding-right:4px}
.nav-bottom a{padding-left:10px!important}.nav-bottom a.on::before{display:none}.nav-bottom a .pin{display:none}
.side .foot{padding-top:10px}
.upsell{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-size:12.5px;color:var(--ink-2)}
.upsell b{display:block;font-weight:600;margin-bottom:1px;color:var(--ink)}.upsell .row{display:flex;align-items:center;gap:7px;margin-top:6px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--good-soft);flex:none}
/* icon rail */
html[data-rail="1"] .side .panel{padding-left:6px;padding-right:6px}
html[data-rail="1"] .brand-logo-full,html[data-rail="1"] .brand>span:not(.mk),html[data-rail="1"] .ngh>span,html[data-rail="1"] .ngh .chev,html[data-rail="1"] .nav a>span,html[data-rail="1"] .nav-bottom a>span,html[data-rail="1"] .nav a .pin,html[data-rail="1"] .upsell>*:not(.row),html[data-rail="1"] .upsell .row .small,html[data-rail="1"] .ng.pinned .ngh{display:none}
html[data-rail="1"] .brand{flex-direction:column;gap:8px;padding:4px 0 10px;align-items:center}html[data-rail="1"] .brand .rail-btn{margin:0}
html[data-rail="1"] .brand-logo-mark.light-only{display:block}
html[data-rail="1"][data-theme="dark"] .brand-logo-mark.light-only{display:none}
html[data-rail="1"][data-theme="dark"] .brand-logo-mark.dark-only{display:block}
:root:not([data-theme="light"]){@media (prefers-color-scheme:dark){
  html[data-rail="1"] .brand-logo-mark.light-only{display:none}
  html[data-rail="1"] .brand-logo-mark.dark-only{display:block}
}}
html[data-rail="1"] .ngh{justify-content:center;padding:0;height:40px}html[data-rail="1"] .ngi{display:flex;padding:0 0 6px}html[data-rail="1"] .ngi::before{display:none}
html[data-rail="1"] .nav a,html[data-rail="1"] .nav-bottom a{justify-content:center;padding:0!important;height:40px}html[data-rail="1"] .nav a.on::before{display:none}
html[data-rail="1"] .nav a .cnt,.nav-bottom a .cnt{position:absolute;top:4px;right:4px;font-size:9.5px;padding:0 4px;min-width:14px;text-align:center}
html[data-rail="1"] .upsell{padding:8px 0;display:grid;place-items:center;border:0;background:none}
html[data-rail="1"] .ng+.ng{margin-top:0;border-top:1px solid var(--line);padding-top:4px}
.side-scrim{display:none}
/* main + header */
.main{min-width:0;padding:12px 24px 72px;position:relative;z-index:1}
.main>*{max-width:var(--content-max)}
.top{display:flex;align-items:center;gap:10px;margin-bottom:14px;min-height:48px;position:sticky;top:0;z-index:var(--z-top);padding:8px 0;margin-top:-8px;background:linear-gradient(var(--bg) 70%,transparent)}
.top .ttl{flex:1;min-width:0;order:0}
.top .ttl h1{font-size:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.subinfo{display:inline-grid;place-items:center;vertical-align:middle;width:28px;height:28px;margin-left:8px;border-radius:50%;color:var(--accent);background:var(--accent-soft);transition:background var(--d-hover),transform var(--d-hover)}.subinfo:hover,.subinfo:focus-visible{background:var(--accent);color:var(--on-accent);outline:none}.subinfo svg{width:16px;height:16px}
.top .ttl .sub{color:var(--ink-2);margin-top:3px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top .ttl .sub b{color:var(--ink);font-weight:600}
.crumb{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);margin-bottom:2px;font-weight:500}.crumb a:hover{color:var(--ink)}.crumb svg{width:12px;height:12px;color:var(--faint)}
.burger{display:none;width:44px;height:44px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);align-items:center;justify-content:center;order:-1}.burger svg{width:18px;height:18px}
.search{flex:0 1 300px;max-width:300px;display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:var(--pill);padding:0 12px 0 14px;min-height:44px;cursor:text;transition:border-color var(--d-hover),box-shadow var(--d-hover)}
.search:hover{border-color:var(--line-2)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search svg{width:16px;height:16px;color:var(--muted);flex:none}.search input{border:0;outline:0;background:none;font:inherit;width:100%;color:var(--ink);cursor:pointer;min-height:42px}.search input::placeholder{color:var(--muted)}
.search kbd{font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--surface-2);border-radius:5px;padding:2px 6px;border:1px solid var(--line)}
.top .sp{flex:1}
.ask-btn{display:flex;align-items:center;gap:7px;background:var(--ink);color:var(--bg);border-radius:var(--pill);padding:0 16px 0 12px;min-height:44px;font-weight:500;font-size:14px;transition:transform var(--d-hover) var(--ease),box-shadow var(--d-hover)}
.ask-btn:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}.ask-btn svg{width:16px;height:16px}
.ic{width:44px;height:44px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;position:relative;flex:none;transition:background var(--d-hover),border-color var(--d-hover),transform var(--d-hover) var(--ease)}
.ic:hover{background:var(--surface-2);border-color:var(--line-2)}.ic svg{width:17px;height:17px;color:var(--ink)}
.ic .badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:9px;background:var(--crit);color:#fff;font-size:10.5px;font-weight:600;display:grid;place-items:center;padding:0 5px;font-variant-numeric:tabular-nums}
.theme-toggle{position:static}
/* keyframes shared with the onboarding wizard (#tvonb) */
@keyframes meshMorph{0%{transform:rotate(0deg) scale(1) translate(0,0)}33%{transform:rotate(4deg) scale(1.08) translate(3%,2%)}66%{transform:rotate(-3deg) scale(.96) translate(-2%,4%)}100%{transform:rotate(2deg) scale(1.04) translate(1%,-3%)}}
@keyframes floatOrb1{0%{transform:translate(0,0) scale(1)}50%{transform:translate(45px,60px) scale(1.15)}100%{transform:translate(-30px,30px) scale(.95)}}
@keyframes floatOrb2{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-60px,-50px) scale(1.2)}100%{transform:translate(40px,-20px) scale(.9)}}
@keyframes btnShimmer{0%,60%{left:-100%}100%{left:200%}}
.profile-wrap{position:relative;flex:none}
.profile-btn{padding:0;width:44px;height:44px;border-radius:50%;overflow:hidden;border:1px solid var(--line)}
.pavatar{width:100%;height:100%;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:14px;font-weight:600}
.profile-menu{position:absolute;top:50px;right:0;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-3);padding:8px;z-index:96;display:none}
.profile-menu.on{display:block;animation:popIn var(--d-med) var(--ease-out)}
@keyframes popIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.profile-menu .pm-id{padding:8px 10px 11px;border-bottom:1px solid var(--line);margin-bottom:6px}
.profile-menu .pm-id b{display:block;font-size:14px;color:var(--ink)}.profile-menu .pm-id small{color:var(--muted);font-size:12px;word-break:break-all}
.profile-menu button{width:100%;text-align:left;display:flex;align-items:center;gap:9px;padding:0 10px;min-height:44px;border-radius:var(--r-xs);font-size:14px;color:var(--ink)}
.profile-menu button:hover{background:var(--surface-2)}.profile-menu button svg{width:15px;height:15px;color:var(--muted);flex:none}
/* page title area (p.tabs) */
.hero{margin-bottom:12px}.hero:empty{display:none}.hero .sub{color:var(--ink-2);margin-top:6px;font-size:14px}.hero .sub b{color:var(--ink);font-weight:600}
.tabs{display:flex;gap:6px;margin-top:0;flex-wrap:wrap}
.tabs a{padding:0 16px;min-height:40px;display:inline-flex;align-items:center;border-radius:var(--pill);font-size:14px;font-weight:500;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);transition:background var(--d-hover),color var(--d-hover),border-color var(--d-hover)}
.tabs a:hover{border-color:var(--line-2);color:var(--ink)}.tabs a.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tabs a .d{opacity:.62;margin-left:5px;font-weight:400}
.subtabs{display:flex;gap:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px;overflow-x:auto;margin-bottom:14px;scrollbar-width:none;max-width:max-content}
.subtabs a{padding:0 14px;min-height:38px;border-radius:8px;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap;display:flex;align-items:center;gap:6px;cursor:pointer;transition:background var(--d-hover),color var(--d-hover)}
.subtabs a svg{width:15px;height:15px;flex:none}.subtabs a:hover{color:var(--ink)}
.subtabs a.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.subtabs a .b{font-size:11px;background:var(--crit-soft);color:var(--crit);border-radius:var(--pill);padding:0 6px;font-variant-numeric:tabular-nums}
/* command palette */
.pal-scrim{position:fixed;inset:0;z-index:var(--z-pal);background:var(--scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.pal-scrim.on{display:flex;animation:fadeIn var(--d-micro) ease-out}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.pal{width:620px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);overflow:hidden;animation:palIn var(--d-med) var(--ease-out);max-height:70vh;display:flex;flex-direction:column}
@keyframes palIn{from{opacity:0;transform:translateY(8px) scale(.97);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
.pal-in{display:flex;align-items:center;gap:10px;padding:6px 14px;border-bottom:1px solid var(--line)}
.pal-in svg{width:18px;height:18px;color:var(--muted);flex:none}.pal-in input{flex:1;border:0;outline:0;background:none;font-size:17px;min-height:48px;color:var(--ink)}
.pal-in kbd{font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--surface-2);border-radius:5px;padding:2px 6px;border:1px solid var(--line)}
.pal-list{overflow-y:auto;padding:6px;scrollbar-width:thin}
.pal-g{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:10px 10px 4px}
.pal-item{display:flex;align-items:center;gap:10px;padding:0 10px;min-height:44px;border-radius:var(--r-sm);color:var(--ink);cursor:pointer;width:100%;text-align:left}
.pal-item svg{width:16px;height:16px;color:var(--muted);flex:none}.pal-item .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.pal-item .t small{color:var(--muted);margin-left:8px;font-size:12.5px}
.pal-item .k{font-size:11.5px;color:var(--faint);font-family:var(--mono)}
.pal-item.sel,.pal-item:hover{background:var(--accent-soft);color:var(--accent-strong)}.pal-item.sel svg{color:var(--accent-strong)}
.pal-empty{padding:22px 14px;color:var(--muted);text-align:center;font-size:14px}
.pal-foot{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--faint)}.pal-foot kbd{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-right:4px}
/* drawer (U.drawer) + ask panel + scrim */
.scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-scrim);opacity:0;pointer-events:none;transition:opacity var(--d-med)}.scrim.on{opacity:1;pointer-events:auto}
.drawer-scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:var(--z-drawer);opacity:0;transition:opacity var(--d-med)}.drawer-scrim.on{opacity:1}
.drawer{position:fixed;top:0;right:0;height:100%;width:var(--dw,520px);max-width:100vw;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--sh-3);z-index:calc(var(--z-drawer) + 1);display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--d-page-in) var(--ease-out)}
.drawer.on{transform:none}
.drawer .dh{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.drawer .dh h2{font-size:17px;flex:1;min-width:0}.drawer .dh small{display:block;color:var(--muted);font-size:12.5px;font-weight:400}
.drawer .db{flex:1;overflow-y:auto;padding:16px;scrollbar-width:thin}.drawer .df{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.ask{position:fixed;top:0;right:0;height:100%;width:440px;max-width:94vw;background:var(--bg);border-left:1px solid var(--line);z-index:var(--z-panel);transform:translateX(100%);transition:transform var(--d-page-in) var(--ease-out);display:flex;flex-direction:column;box-shadow:var(--sh-3)}.ask.on{transform:none}
.ask .ah{display:flex;align-items:center;gap:10px;padding:16px 16px 12px}.ask .ah .mk{width:32px;height:32px;border-radius:10px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none}.ask .ah .mk svg{width:16px;height:16px}.ask .ah b{font-weight:600}.ask .ah small{display:block;color:var(--muted);font-size:12px}
.ask .thread{flex:1;overflow-y:auto;padding:6px 16px 16px;display:flex;flex-direction:column;gap:14px}
.msg.u{align-self:flex-end;background:var(--accent);color:var(--on-accent);padding:10px 14px;border-radius:16px 16px 4px 16px;max-width:82%;font-size:15px}
.msg.a{align-self:flex-start;max-width:97%}.msg.a .plan{font-size:12px;color:var(--muted);margin-bottom:7px;display:flex;flex-wrap:wrap;gap:5px}.msg.a .plan span{background:var(--surface);border:1px solid var(--line);border-radius:var(--pill);padding:2px 9px}
.msg.a .ans{background:var(--surface);border:1px solid var(--line);border-radius:4px 16px 16px 16px;padding:13px 14px;font-size:15px}.msg.a .src{margin-top:9px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ask .compose{padding:12px 16px 16px;border-top:1px solid var(--line)}.ask .compose .box{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:4px 4px 4px 12px}.ask .compose .box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ask .compose input{flex:1;border:0;outline:0;background:none;font:inherit;color:var(--ink);min-height:40px}.ask .compose .send{width:40px;height:40px;border-radius:10px;background:var(--accent);display:grid;place-items:center;flex:none}.ask .compose .send svg{width:16px;height:16px;color:var(--on-accent)}
.sugs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.sugs button{font-size:12.5px;padding:7px 11px;border-radius:var(--pill);background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}.sugs button:hover{border-color:var(--line-2);color:var(--ink)}
/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,16px);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:var(--r);font-size:14.5px;font-weight:500;box-shadow:var(--sh-3);z-index:var(--z-toast);opacity:0;transition:opacity var(--d-med),transform var(--d-med) var(--ease-out);pointer-events:none;max-width:88vw;text-align:center;display:flex;align-items:center;gap:10px}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}.toast svg{width:16px;height:16px;flex:none}.toast.good svg{color:var(--good)}.toast.crit svg{color:var(--crit)}.toast.warn svg{color:var(--warn)}
.toast button{color:var(--accent-strong);font-weight:600;margin-left:4px;text-decoration:underline}
:root[data-theme="dark"] .toast,:root:not([data-theme="light"]) .toast{background:var(--surface-3);color:var(--ink);border:1px solid var(--line-2)}
.demo-note{position:fixed;bottom:14px;left:calc(var(--side-w) + 16px);z-index:4;font-size:11.5px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--pill);padding:5px 11px;box-shadow:var(--sh-1)}
html[data-rail="1"] .demo-note{left:calc(var(--side-rail) + 16px)}
/* tooltip (data-tip + Chart.js share it) — one surface card */
.tip{position:fixed;z-index:var(--z-tip);pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;font-size:13px;box-shadow:var(--sh-3);opacity:0;transition:opacity var(--d-fast);max-width:260px;font-variant-numeric:tabular-nums}
.tip b{font-weight:600}.tip .r{display:flex;justify-content:space-between;gap:16px;margin-top:3px;align-items:center}.tip .r b{font-family:var(--mono);font-size:12.5px;font-weight:500}.tip .r span{color:var(--muted)}.tip i{width:8px;height:8px;border-radius:2px;display:inline-block;margin-right:6px;vertical-align:0}
.tip .r[style*="rgba(255,255,255"]{border-top-color:var(--line)!important}

/* ===== 4. primitives ===== */
.grid{display:grid;gap:12px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
.g-2-1{grid-template-columns:2fr 1fr}.g-3-2{grid-template-columns:1.5fr 1fr}.mt{margin-top:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:none;padding:18px;min-width:0;transition:border-color var(--d-hover),box-shadow var(--d-hover),transform var(--d-hover) var(--ease)}
#page.busy .card,#page.busy .tblwrap{opacity:.55;transition:opacity .2s}#page.busy{cursor:progress}
a.card,.card.link{display:block;color:inherit}   /* a card that is a link must be a box: inline anchors paint their padding and background in pieces */
.mny-verdict>.kpi,.mny-verdict>a.kpi{display:block;height:100%;box-sizing:border-box}
.card.accent-good{border-left:3px solid var(--good)}.card.accent-high{border-left:3px solid var(--warn)}.card.accent-crit{border-left:3px solid var(--crit)}.card.accent-{border-left:3px solid var(--line-2)}
.card.pad0{padding:0}.card.tight{padding:14px}
.card-h{display:flex;align-items:center;gap:9px;margin-bottom:12px;min-height:32px}.card-h .tools{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.span2{grid-column:span 2}.span3{grid-column:span 3}
.tag{font-size:12px;font-weight:500;padding:2px 9px;border-radius:var(--pill);background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap;display:inline-block;line-height:1.5}
.tag.lime{background:var(--accent-soft);color:var(--accent-strong);border-color:transparent}.tag.crit{background:var(--crit-soft);color:var(--crit);border-color:transparent}
.tag.good{background:var(--good-soft);color:var(--good);border-color:transparent}.tag.high,.tag.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.tag.info{background:var(--info-soft);color:var(--info);border-color:transparent}
.lbl{font-size:12.5px;color:var(--muted);font-weight:500;letter-spacing:.01em}
.lbl svg{display:inline-block;width:13px;height:13px;vertical-align:-2px;margin-right:3px}
.v{font-size:30px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.05}.v small{font-size:14px;color:var(--muted);font-weight:400;margin-left:4px}
.kpi .v{margin-top:8px}.kpi{position:relative}
.split{display:flex;gap:13px;margin-top:10px;font-size:13px;color:var(--ink-2);flex-wrap:wrap}.split span{display:flex;align-items:center;gap:5px}.split i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}
.kfoot{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
a.kpi,a.card.link,.card.link{cursor:pointer}a.kpi:hover,a.card.link:hover,.card.link:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:var(--line-2)}
.arrow{margin-left:auto;width:28px;height:28px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;flex:none}.arrow svg{width:13px;height:13px;color:var(--ink-2)}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:500;padding:2px 9px;border-radius:var(--pill);font-variant-numeric:tabular-nums}.chip.up{color:var(--good);background:var(--good-soft)}.chip.down{color:var(--crit);background:var(--crit-soft)}.chip.flat{color:var(--ink-2);background:var(--surface-2)}
.delta{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.delta.up{color:var(--good)}.delta.down{color:var(--crit)}
.pbar{height:8px;border-radius:var(--pill);background:var(--surface-3);overflow:hidden;margin-top:8px}.pbar i{display:block;height:100%;border-radius:var(--pill);transition:width var(--d-page-in) var(--ease-out)}
/* progress (replaces gauges) */
.prog{display:flex;flex-direction:column;gap:6px}.prog .ph{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.prog .ph b{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.prog .ph span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.prog .pt{height:10px;border-radius:var(--pill);background:var(--surface-3);overflow:hidden;position:relative}.prog .pt i{display:block;height:100%;border-radius:var(--pill);background:var(--accent);transition:width var(--d-page-in) var(--ease-out)}.prog .pt .goal{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);border-radius:1px}
.prog .pf{font-size:12.5px;color:var(--muted)}
/* 100% bar (replaces donuts) */
.share{display:flex;flex-direction:column;gap:10px}.share .st{display:flex;align-items:baseline;gap:8px}.share .st b{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.share .st span{font-size:13px;color:var(--muted)}
.share .sb{display:flex;height:12px;border-radius:var(--pill);overflow:hidden;background:var(--surface-3);gap:2px}.share .sb i{display:block;height:100%;min-width:2px;transition:flex var(--d-page-in) var(--ease-out)}
.share .sl{display:grid;grid-template-columns:auto 1fr auto auto;gap:4px 10px;font-size:13px;align-items:center}.share .sl i{width:10px;height:10px;border-radius:3px}.share .sl span{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share .sl b{font-family:var(--mono);font-size:12.5px;font-weight:500;text-align:right}.share .sl small{color:var(--muted);font-family:var(--mono);font-size:11.5px;text-align:right;min-width:36px}
/* mtd */
.mtd{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.mtd .seg{min-width:90px;display:block;background:none;border:0;padding:0}.mtd .seg .mv{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:3px}.mtd .op{font-size:20px;color:var(--faint);font-weight:300}.mtd .barwrap{flex:1;min-width:200px}
.track{height:12px;border-radius:var(--pill);background:var(--surface-3);overflow:hidden;display:flex;position:relative}.track i{height:100%;display:block}.track .goal{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
/* legend + legacy svg charts */
.legend{display:flex;flex-wrap:wrap;gap:13px;margin-top:10px;font-size:13px;color:var(--ink-2)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;flex:none}
.chart{width:100%}.chart svg{width:100%;height:auto;overflow:visible;display:block}.chart text{font-family:var(--sans)}
.ringwrap{display:flex;align-items:center;gap:16px}.ringwrap .big{font-size:25px;font-weight:600;font-variant-numeric:tabular-nums}.gaugewrap{display:flex;flex-direction:column;align-items:stretch;text-align:left}.gaugewrap .big{font-size:24px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
/* Chart.js kit */
.tvc{position:relative;width:100%;min-width:0}.tvc canvas{display:block;width:100%!important}.tvc .tvc-fb{font-size:13px;color:var(--muted);padding:12px 0}
.tvc-table{overflow:auto;max-height:420px;scrollbar-width:thin}
.spark{display:block;width:100%;height:36px;overflow:visible}
/* table */
.tblwrap{overflow:auto;max-height:min(560px,68vh);scrollbar-width:thin;border-radius:var(--r-xs);overscroll-behavior:contain}.tblwrap::-webkit-scrollbar{height:8px;width:8px}.tblwrap::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}
.tblwrap.tall{max-height:none}   /* opt out: a table that must show every row (printed reports) */
@media (max-width:520px){.tblwrap{max-height:62vh}}
@media print{.tblwrap{max-height:none;overflow:visible}}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.tbl th{text-align:left;font-size:12px;line-height:1.2;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;padding:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line-2);white-space:nowrap;position:sticky;top:0;background:var(--surface-3);z-index:1;vertical-align:middle}
.tbl th:first-child{border-top-left-radius:var(--r-xs);border-left:1px solid var(--line)}.tbl th:last-child{border-top-right-radius:var(--r-xs);border-right:1px solid var(--line)}
.card.pad0 .tbl th:first-child,.card.pad0 .tbl td:first-child{padding-left:18px}.card.pad0 .tbl th:last-child,.card.pad0 .tbl td:last-child{padding-right:18px}
.card.pad0 .tbl th{border-left:0;border-right:0;border-radius:0}
.tbl th.sort{cursor:pointer;user-select:none}.tbl th.sort:hover{color:var(--ink)}.tbl th .sa{display:inline-block;width:8px;margin-left:4px;color:var(--accent)}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;min-height:40px}.tbl tr:last-child td{border-bottom:0}
.tbl tr.rl:hover td{background:var(--surface-2)}.tbl tr.rl[data-row]{cursor:pointer}
.tbl td.num{text-align:right;font-variant-numeric:tabular-nums;font-size:14px}.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.tbl.dense td{padding:6px 12px}.tbl.dense{font-size:13.5px}
.who{display:flex;align-items:center;gap:9px}.who .av{width:30px;height:30px;border-radius:9px;background:var(--surface-3);color:var(--ink-2);display:grid;place-items:center;font-size:11.5px;font-weight:600;flex:none}.who b{font-weight:500;color:var(--ink)}.who small{display:block;color:var(--muted);font-size:12px}
.pill-st{font-size:12px;font-weight:500;padding:2px 9px;border-radius:var(--pill);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.pill-st.ok{background:var(--good-soft);color:var(--good)}.pill-st.warn{background:var(--crit-soft);color:var(--crit)}.pill-st.mid{background:var(--surface-2);color:var(--ink-2)}.pill-st.info{background:var(--info-soft);color:var(--info)}.pill-st.high{background:var(--warn-soft);color:var(--warn)}
.mini-act{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);display:inline-grid;place-items:center;background:var(--surface);min-height:36px;min-width:36px}.mini-act svg{width:15px;height:15px;color:var(--ink-2)}.mini-act:hover{background:var(--surface-2)}
/* filters + buttons */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.fbtn{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:0 12px;font-size:14px;font-weight:500;transition:border-color var(--d-hover)}.fbtn:hover{border-color:var(--line-2)}.fbtn svg{width:14px;height:14px;color:var(--muted)}.fbtn .fv{color:var(--ink);font-weight:600}
.apply{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);padding:0 16px;font-weight:600;font-size:14px;white-space:nowrap;transition:transform var(--d-hover) var(--ease),box-shadow var(--d-hover),background var(--d-hover)}
.apply svg{width:15px;height:15px}.apply:hover{transform:translateY(-1px);box-shadow:var(--sh-2);background:var(--accent-strong)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border-radius:var(--r-sm);font-size:14px;font-weight:500;border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap;transition:transform var(--d-hover) var(--ease),box-shadow var(--d-hover),border-color var(--d-hover),background var(--d-hover)}
.btn svg{width:14px;height:14px}.btn:hover{border-color:var(--line-2);box-shadow:var(--sh-1);transform:translateY(-1px)}.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
.btn.lime,.btn.primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.btn.lime:hover,.btn.primary:hover{background:var(--accent-strong)}
.btn.dark{background:var(--ink);color:var(--bg);border-color:transparent}.btn.danger{color:var(--crit)}.btn.danger:hover{background:var(--crit-soft);border-color:transparent}
.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-2);box-shadow:none}
.btn.sm{min-height:36px;padding:0 10px;font-size:13px}
.exp{margin-left:auto;display:flex;gap:7px}
/* segmented (U.segmented / viz toggle) */
.segc{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px;gap:2px;position:relative}
.segc button{padding:0 12px;min-height:34px;border-radius:7px;font-size:13.5px;font-weight:500;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;position:relative;z-index:1;transition:color var(--d-hover)}
.segc button svg{width:14px;height:14px}.segc button.on{color:var(--ink)}.segc .thumb{position:absolute;top:3px;bottom:3px;background:var(--surface);border-radius:7px;box-shadow:var(--sh-1);z-index:0;transition:left var(--d-med) var(--ease),width var(--d-med) var(--ease)}
.segc.sm button{min-height:30px;padding:0 10px;font-size:12.5px}
/* form controls (settings) */
.setwrap{max-width:860px}
 html[data-msg="0"] [onclick*="pcMsg("],html[data-msg="0"] [onclick*="sgAll("],html[data-msg="0"] [onclick*="sgBulk("],html[data-msg="0"] .mini-act[data-a="text"],html[data-msg="0"] .mini-act[data-a="email"]{display:none!important}
.setrow{display:flex;align-items:flex-start;gap:18px;padding:14px 0;border-bottom:1px solid var(--line)}.setrow:last-child{border-bottom:0}
.setrow .lft{flex:1;min-width:0}.setrow .lft b{font-weight:600;font-size:15px}.setrow .lft .hint{color:var(--muted);font-size:13.5px;margin-top:2px;line-height:1.45}
.setrow .rgt{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:60%}
.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:12.5px;color:var(--muted);font-weight:500}
.inp,.sel{font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 12px;outline:none;min-width:0;transition:border-color var(--d-hover),box-shadow var(--d-hover)}
.inp:hover,.sel:hover{border-color:var(--line-2)}.inp:focus,.sel:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.inp.sm{width:96px}.inp.mid{width:150px}.inp.money{width:130px;font-variant-numeric:tabular-nums}.inp.wide{width:280px;max-width:100%}
.sel{cursor:pointer;padding-right:32px;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235F5E5A' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.toggle{position:relative;width:46px;height:26px;min-height:26px;border-radius:999px;background:var(--line-2);cursor:pointer;transition:background var(--d-med);flex:none}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform var(--d-med) var(--ease)}
.toggle.on{background:var(--accent)}.toggle.on::after{transform:translateX(20px)}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:3px;gap:2px}.seg button{padding:0 12px;min-height:34px;border-radius:7px;font-size:13.5px;font-weight:500;color:var(--ink-2)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.swatch{width:24px;height:24px;border-radius:6px;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line);cursor:pointer;flex:none}
.save-bar{position:sticky;bottom:0;background:linear-gradient(0deg,var(--bg) 55%,transparent);padding:14px 0 2px;display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:6px;z-index:2}
.pack-card{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:var(--surface);position:relative;cursor:pointer;transition:border-color var(--d-hover),box-shadow var(--d-hover)}.pack-card.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
/* callout + reco + bench + finding */
.callout{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:var(--r);background:var(--accent-soft);font-size:14.5px;color:var(--ink);border:1px solid transparent}.callout svg{width:19px;height:19px;flex:none;color:var(--accent-strong);margin-top:2px}.callout>div{min-width:0}
.callout.warn{background:var(--warn-soft)}.callout.warn svg{color:var(--warn)}.callout.crit{background:var(--crit-soft)}.callout.crit svg{color:var(--crit)}.callout.info{background:var(--info-soft)}.callout.info svg{color:var(--info)}.callout.neutral{background:var(--surface-2);border-color:var(--line)}.callout.neutral svg{color:var(--muted)}
.reco{display:flex;gap:11px;padding:13px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.reco+.reco{margin-top:9px}.reco .n{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:600;font-size:13px;flex:none;font-variant-numeric:tabular-nums}.reco b{font-weight:600}
.bench{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.bench:last-child{border-bottom:0}.bench .nm{flex:1;min-width:0}.bench .nm b{font-weight:500}.bench .nm small{display:block;color:var(--muted);font-size:12.5px}.bar-mini{height:8px;border-radius:var(--pill);background:var(--surface-3);overflow:hidden;width:120px;flex:none}.bar-mini i{display:block;height:100%}.stars{color:var(--warn);font-size:13px;letter-spacing:.5px}
.finding{display:flex;gap:12px;padding:14px 15px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);align-items:flex-start}.finding+.finding{margin-top:9px}
.finding .sev{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none}.finding .sev svg{width:17px;height:17px}
.sev.crit{background:var(--crit-soft);color:var(--crit)}.sev.high{background:var(--warn-soft);color:var(--warn)}.sev.med{background:var(--surface-2);color:var(--med)}
.finding .fb{flex:1;min-width:0}.finding .t{font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.finding .s{color:var(--ink-2);font-size:14px;margin-top:3px}
.finding .meta{display:flex;flex-wrap:wrap;gap:13px;margin-top:8px;font-size:13px;color:var(--muted)}.finding .meta b{color:var(--ink-2);font-weight:500}
.ba{display:flex;align-items:center;gap:9px;margin-top:9px;font-family:var(--mono);font-size:12.5px}.ba .from{color:var(--muted);text-decoration:line-through}.ba .to{color:var(--crit);font-weight:600}.ba svg{width:13px;height:13px;color:var(--faint)}
.finding .acts{display:flex;flex-direction:column;gap:6px;flex:none}
/* schedule grid (legacy) */
.sched{display:grid;grid-template-columns:52px repeat(var(--cols,4),1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:12px}
.sched .hd{background:var(--surface-2);padding:8px;font-weight:600;text-align:center;color:var(--ink-2)}.sched .tm{background:var(--surface);padding:6px 8px;color:var(--muted);font-family:var(--mono);font-size:11px;text-align:right}
.sched .cell{background:var(--surface);min-height:44px;padding:2px;position:relative}
.appt{border-radius:6px;padding:4px 6px;font-size:11.5px;font-weight:500;line-height:1.25;margin-bottom:2px;color:#fff}
.section-t{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:24px 0 10px}
/* ===== 6. states: empty / as-of / skeleton ===== */
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 16px;gap:6px}
.empty .ei{width:44px;height:44px;border-radius:13px;background:var(--surface-2);color:var(--muted);display:grid;place-items:center;margin-bottom:6px}.empty .ei svg{width:20px;height:20px}
.empty.k-nosync .ei{background:var(--warn-soft);color:var(--warn)}.empty.k-error .ei{background:var(--crit-soft);color:var(--crit)}.empty.k-nopms .ei{background:var(--info-soft);color:var(--info)}
.empty b{font-size:15.5px;font-weight:600;color:var(--ink)}.empty .why{font-size:14px;color:var(--muted);max-width:440px;line-height:1.5}.empty .ea{margin-top:10px}
.empty.inline{flex-direction:row;text-align:left;padding:12px 0;align-items:center;gap:12px}.empty.inline .ei{width:34px;height:34px;margin:0;border-radius:10px}.empty.inline .ei svg{width:16px;height:16px}.empty.inline .why{font-size:13px}
.asof{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.asof svg{width:12px;height:12px}.asof.stale{color:var(--warn)}
.sk{display:block;height:12px;border-radius:7px;background:var(--surface-3);position:relative;overflow:hidden}
.sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:skShim 1.4s ease-in-out infinite}
:root[data-theme="dark"] .sk::after,:root:not([data-theme="light"]) .sk::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent)}
@keyframes skShim{to{transform:translateX(100%)}}
.ttl .sk,.section-t .sk{background:var(--line)}
.sk-v{height:28px;width:55%;margin:10px 0}.sk-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.sk-row:last-child{border-bottom:0}
/* motion: CSS fallbacks when GSAP is unavailable, and view transitions */
.tvm-css{animation:tvmReveal var(--d-page-in) var(--ease-out) both}
@keyframes tvmReveal{from{opacity:0;transform:translateY(12px) scale(.96);filter:blur(12px)}to{opacity:1;transform:none;filter:blur(0)}}
#page{view-transition-name:tvpage}
::view-transition-old(tvpage){animation:tvOut var(--d-page-out) var(--ease-in) both}::view-transition-new(tvpage){animation:tvIn var(--d-page-in) var(--ease-out) both}
@keyframes tvOut{to{opacity:0;transform:translateY(-4px)}}@keyframes tvIn{from{opacity:0;transform:translateY(6px)}}
.press{transform:scale(.97)!important}
/* sync-health banner */
#tvbanner:empty{display:none}
.tvban{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;margin-bottom:12px;border-radius:var(--r);border:1px solid var(--line);font-size:14px;color:var(--ink);background:var(--surface)}
.tvban>svg{width:17px;height:17px;flex:none}.tvban .t{flex:1;min-width:0}.tvban .t small{display:block;color:var(--muted);font-size:12.5px}.tvban a{color:var(--info);font-weight:500}
.tvban.crit{background:var(--crit-soft);border-color:transparent}.tvban.crit>svg{color:var(--crit)}
.tvban.warn{background:var(--warn-soft);border-color:transparent}.tvban.warn>svg{color:var(--warn)}
.tvban.subtle{color:var(--ink-2)}.tvban.subtle>svg{color:var(--warn)}
.tvban.info{background:var(--surface-2)}.tvban.info>svg{color:var(--info)}
.tvban-x{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--muted);flex:none}.tvban-x:hover{background:var(--surface-3);color:var(--ink)}.tvban-x svg{width:14px;height:14px}
/* responsive */
@media (max-width:1180px){.g-2-1,.g-3-2{grid-template-columns:1fr}.g5{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:1fr 1fr}}
@media (max-width:900px){
 .app,html[data-rail="1"] .app{grid-template-columns:1fr}
 .side{position:fixed;left:0;top:0;width:min(300px,86vw);transform:translateX(-104%);transition:transform var(--d-med) var(--ease-out);box-shadow:none}
 .side.on{transform:none;box-shadow:var(--sh-3)}
 .side .panel{padding:14px 10px}
 html[data-rail="1"] .brand-logo-full{display:block!important}html[data-rail="1"] .brand-logo-mark{display:none!important}
 html[data-rail="1"] .brand>span:not(.mk),html[data-rail="1"] .ngh>span,html[data-rail="1"] .ngh .chev,html[data-rail="1"] .nav a>span,html[data-rail="1"] .nav-bottom a>span,html[data-rail="1"] .upsell>*{display:revert}
 html[data-rail="1"] .ngh,html[data-rail="1"] .nav a,html[data-rail="1"] .nav-bottom a{justify-content:flex-start;padding:0 10px!important}html[data-rail="1"] .nav a{padding-left:36px}html[data-rail="1"] .ngi{display:none}html[data-rail="1"] .ng.open .ngi{display:flex}
 .brand .rail-btn{display:none}
 .burger{display:flex}.search{flex:0 0 44px;max-width:44px;padding:0;justify-content:center;border-radius:50%}.search input,.search kbd{display:none}
 .top .ttl .sub{display:none}
 .main{padding:10px 16px 80px}.demo-note{display:none}
 .g3,.g4,.g5,.g2,.span2,.span3{grid-template-columns:1fr;grid-column:auto}
 .side-scrim{display:block;position:fixed;inset:0;z-index:calc(var(--z-side) - 1);background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity var(--d-med)}.side.on~.side-scrim,.side-scrim.on{opacity:1;pointer-events:auto}
 .drawer{width:100vw}
}
@media (max-width:520px){#theme{display:none}.top{flex-wrap:wrap;position:static;background:none;padding:0;margin-top:0}.top .ttl{flex-basis:100%;order:5}.top .ttl h1{font-size:23px;white-space:normal}.ask-btn span{display:none}.ask-btn{padding:0 12px}.top{gap:6px}.top>.ic,.top .profile-btn,.burger,.top .search,.ask-btn{width:40px;height:40px;min-height:40px;flex:0 0 40px;max-width:40px;padding:0;justify-content:center}.loc{min-width:0;flex:0 1 auto;margin-left:auto}.top .profile-wrap{flex:none}.top .pavatar{width:32px;height:32px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.tvm-css{animation:none!important}}
/* --- live auth overlay (Ultra-Luxury Always-Light Aesthetic + Interactive Torch Mesh) --- */
/* ===== Sign-in: Calibic split card. Left = rotating app mockups (js/ui/auth-showcase.js), right = the form. ===== */
#tvauth{
  --a:var(--accent,#0F766E);--a2:var(--accent-strong,#0B5F59);--as:var(--accent-soft,#E3F1EF);--sig:#13C2A3;
  --ai:#0F1518;--ab:#3A4649;--am:#6C797C;--al:#D7E2E3;
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:clamp(10px,2.5vh,28px) clamp(10px,3vw,32px);overflow:hidden;
  background:radial-gradient(1100px 640px at 6% 0%,#C9E9E8 0%,transparent 60%),radial-gradient(900px 620px at 100% 100%,#AAC7CB 0%,transparent 62%),linear-gradient(135deg,#EDF4F4,#DCE8E9);
  color:var(--ai);font-family:var(--sans);color-scheme:light!important;
}
#tvauth::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(rgba(7,90,104,.16) 1px,transparent 1.2px) 0 0/24px 24px;opacity:.55}
.tvauth-box{
  position:relative;z-index:2;width:min(1180px,100%);height:min(720px,calc(100vh - 28px));box-sizing:border-box;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:#fff;border-radius:30px;padding:14px;
  border:1px solid rgba(255,255,255,.85);box-shadow:0 44px 90px -38px rgba(5,66,78,.5),0 2px 0 rgba(255,255,255,.9) inset;
  overflow:hidden;text-align:left;color:var(--ai);
  transition:transform .75s cubic-bezier(.2,.8,.2,1),box-shadow .6s ease;
}
.tvauth-box *{box-sizing:border-box}
/* --- left: the showcase --- */
.tvauth-show{position:relative;border-radius:22px;overflow:hidden;color:#fff;
  background:radial-gradient(520px 380px at 85% 8%,rgba(19,194,163,.18),transparent 65%),linear-gradient(158deg,#07413E 0%,#0A2C2F 52%,#0F1518 100%)}
.tvauth-rings{position:absolute;right:-150px;top:-150px;width:520px;height:520px;color:rgba(255,255,255,.13);animation:tvSpin 90s linear infinite;pointer-events:none}
.tvauth-rings .tk{stroke-dasharray:1 9;stroke-width:6;opacity:.55}
@keyframes tvSpin{to{transform:rotate(360deg)}}
.tvauth-tag{position:absolute;left:28px;top:26px;z-index:4;max-width:230px;font-size:13px;line-height:1.45;color:rgba(255,255,255,.8);letter-spacing:.005em}
.tvauth-sample{position:absolute;right:22px;top:24px;z-index:4;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border:1px solid rgba(255,255,255,.32);border-radius:99px;color:rgba(255,255,255,.78)}
.tvauth-stage{position:absolute;left:50%;top:50%;width:540px;height:600px;margin:-300px 0 0 -270px;transform:scale(var(--k,1));transform-origin:50% 50%}
.tvs{position:absolute;inset:0}
.tvc{position:absolute;background:#fff;color:#0F1518;border-radius:20px;padding:16px 18px;font-size:12.5px;line-height:1.35;
  box-shadow:0 26px 54px -22px rgba(0,0,0,.65),0 0 0 1px rgba(15,21,24,.05);opacity:0;transform:translateY(26px) scale(.965);
  transition:opacity .6s ease,transform .85s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--d,0)*110ms)}
.tvs.on .tvc{opacity:1;transform:none}
.tvs.off .tvc{opacity:0;transform:translateY(-16px) scale(.975);transition:opacity .4s ease,transform .5s ease;transition-delay:0ms}
.tvs.on .tvc.fl{animation:tvFloat 6.5s ease-in-out infinite;animation-delay:calc(var(--d,0)*-1.3s)}
@keyframes tvFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
.tvc.sm{padding:11px 14px;border-radius:16px}
.tvc.dk{background:transparent;box-shadow:none;padding:0}
.tvc.acc2{background:linear-gradient(135deg,#0F766E,#0B5F59);color:#fff}
.tvc h4{margin:0 0 12px;font-size:13.5px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:10px}
.tvc .t{font-size:10px;font-weight:600;letter-spacing:.04em;padding:3px 9px;border-radius:99px;background:#E3F1EF;color:#0B5F59;white-space:nowrap}
.tvc .k{font-size:11px;color:#6C797C}.tvc .k.lt{color:rgba(255,255,255,.75)}
.tvc b{font-weight:600}
.tvc .n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}
.tvc .big{font-size:27px;line-height:1.15}.tvc .mid{font-size:19px}.tvc .huge{font-size:56px;line-height:1;margin:18px 0 4px}
.tvc .acc{color:#0F766E}.tvc .warn{color:#B7791F}.tvc .strike{color:#98A5A8;text-decoration:line-through;text-decoration-thickness:2px}
.tvc .two{display:flex;gap:26px;align-items:flex-end}
.tvc .two.cmp{gap:12px;margin-bottom:6px}
.tvc .arr{width:26px;height:2px;background:#13C2A3;position:relative;margin-bottom:14px}.tvc .arr::after{content:"";position:absolute;right:-1px;top:-4px;width:8px;height:8px;border-right:2px solid #13C2A3;border-top:2px solid #13C2A3;transform:rotate(45deg)}
.tvc .grow{flex:1;min-width:0}
.tvc .bar{height:6px;border-radius:99px;background:#E4EDED;overflow:hidden}.tvc .bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0F766E,#13C2A3);width:var(--w)}
.tvc .rw{display:flex;align-items:center;gap:10px;padding:9px 0 0;margin-top:9px;border-top:1px solid #EDF2F2}
.tvc .av{width:28px;height:28px;border-radius:50%;background:#E3F1EF;color:#0B5F59;display:inline-grid;place-items:center;font-size:10.5px;font-weight:600;flex:none}
.tvc .stack{display:flex;align-items:center;margin-top:8px}.tvc .stack .av{margin-left:-6px;border:2px solid #fff;width:26px;height:26px}.tvc .stack .av:first-child{margin-left:0}
.tvc.acc2 .stack .av{border-color:#0F766E}.tvc .stack span:last-child:not(.av){margin-left:8px;font-size:11px;opacity:.85}
.tvc .pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:99px;font-size:10.5px;font-weight:600;white-space:nowrap}
.tvc .pill.g{background:#DDF5EE;color:#0B6B55}.tvc .pill.a{background:#FCEFD0;color:#8A5A00}.tvc .pill.r{background:#FBE3E7;color:#A3283F}.tvc .pill.d{background:#0F1518;color:#fff}
.tvc .pill.d2{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.34);font-size:11.5px;padding:7px 14px;backdrop-filter:blur(6px)}
.tvc .grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.tvc .kp{background:#F2F7F7;border-radius:12px;padding:9px 11px}
.tvc .sch{display:flex;align-items:center;gap:8px;margin-top:7px}.tvc .lbl{width:34px;font-size:10.5px;color:#6C797C}
.tvc .trk{position:relative;flex:1;height:22px;background:#F2F7F7;border-radius:8px}.tvc .trk i{position:absolute;top:3px;bottom:3px;border-radius:6px;background:#0F766E}
.tvc .trk i:nth-child(2){background:#5A969B}.tvc .trk i:nth-child(3){background:#94BABD}
.tvc .gap{position:absolute;top:2px;bottom:2px;border:1.5px dashed #13C2A3;border-radius:7px;background:rgba(19,194,163,.12);font-style:normal;font-size:9.5px;font-weight:600;color:#0B6B55;display:grid;place-items:center;animation:tvGap 1.8s ease-in-out infinite}
@keyframes tvGap{0%,100%{box-shadow:0 0 0 0 rgba(19,194,163,.45)}50%{box-shadow:0 0 0 6px rgba(19,194,163,0)}}
.tvc .dotl{width:8px;height:8px;border-radius:50%;background:#13C2A3;box-shadow:0 0 0 4px rgba(19,194,163,.2);margin-right:2px;display:inline-block}
.tvc h4 .dotl{flex:none}
.tvc .bub{padding:9px 12px;border-radius:14px;margin:6px 0;font-size:12.5px}.tvc .bub.me{background:#0F766E;color:#fff;margin-left:48px;border-bottom-right-radius:5px}.tvc .bub.ai{background:#F2F7F7;border-bottom-left-radius:5px}
.tvc .plan{display:flex;align-items:center;gap:7px;font-size:11px;color:#6C797C;margin:8px 0 2px}.tvc .ck{width:12px;height:12px;border-radius:50%;border:1.5px solid #13C2A3;position:relative;flex:none}.tvc .ck::after{content:"";position:absolute;left:3px;top:0;width:3px;height:6px;border-right:1.5px solid #13C2A3;border-bottom:1.5px solid #13C2A3;transform:rotate(40deg)}
.tvc .seg{margin-top:12px;text-align:center;border:1.5px solid #0F766E;color:#0B5F59;font-weight:600;border-radius:12px;padding:9px;font-size:12px}
.tvc.ph{background:linear-gradient(170deg,#0B5F59 0%,#06302F 70%);color:#fff;border-radius:34px;padding:16px 18px;display:flex;flex-direction:column;box-shadow:0 30px 60px -24px rgba(0,0,0,.7),0 0 0 6px rgba(255,255,255,.08)}
.tvc.ph .prog{display:flex;gap:4px;margin-bottom:22px}.tvc.ph .prog i{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.28)}.tvc.ph .prog i.on{background:#fff}.tvc.ph .prog i.cur{background:linear-gradient(90deg,#fff 55%,rgba(255,255,255,.28) 55%)}
.tvc.ph .pt{font-size:11.5px;color:rgba(255,255,255,.72)}.tvc.ph .pl{font-size:15px;font-weight:500}.tvc.ph .spark{width:100%;margin:22px 0 auto;overflow:visible}.tvc.ph .spark path{stroke-dasharray:1;stroke-dashoffset:1;animation:tvDraw 1.4s .5s ease forwards}
@keyframes tvDraw{to{stroke-dashoffset:0}}
.tvc.ph .pf{font-size:12px;color:rgba(255,255,255,.78);line-height:1.5}.tvc.ph .pf b{display:inline-block;margin-top:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#13C2A3}
.tvc.pk{background:#E9F3F2}
.tvc .wave{display:flex;align-items:center;gap:3px;height:42px;margin-bottom:10px}.tvc .wave i{flex:1;max-width:6px;border-radius:3px;background:linear-gradient(#13C2A3,#0F766E);animation:tvWave 1.3s ease-in-out infinite;transform-origin:center}
@keyframes tvWave{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1.08)}}
.tvc .cap{font-size:12.5px;line-height:1.55;color:#3A4649}.tvc .cap u{text-decoration:none;background:linear-gradient(transparent 60%,rgba(19,194,163,.35) 60%);font-weight:500;color:#0F1518}
.tvc .ctl{display:flex;align-items:center;gap:8px;margin-top:12px}.tvc .play{width:30px;height:30px;border-radius:50%;background:#0F766E;position:relative;flex:none}.tvc .play::after{content:"";position:absolute;left:12px;top:9px;border-left:9px solid #fff;border-top:6px solid transparent;border-bottom:6px solid transparent}
.tvc.vid{padding:10px;background:linear-gradient(135deg,#0F766E,#0B5F59);color:#fff}.tvc .thumb{height:78px;border-radius:12px;background:radial-gradient(90px 60px at 30% 30%,rgba(19,194,163,.5),transparent 70%),#06302F;display:grid;place-items:center}
.tvc .play2{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.95);position:relative}.tvc .play2::after{content:"";position:absolute;left:12px;top:9px;border-left:9px solid #0F766E;border-top:6px solid transparent;border-bottom:6px solid transparent}
.tvc .stars{display:flex;align-items:center;gap:10px;margin-bottom:10px}.tvc .st{color:#E0A526;letter-spacing:1px;font-size:14px}.tvc .st em{font-style:normal;opacity:.4}
.tvc .rev{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #EDF2F2}.tvc .rev .av{background:#FBE3E7;color:#A3283F}
.tvc .draft{background:#EAF5F3;border-radius:14px;padding:12px 13px;font-size:12px;line-height:1.5;color:#2A3C3E}.tvc .dh{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:600;font-size:11.5px;color:#0B5F59}
.tvauth-cap{position:absolute;left:28px;right:26px;bottom:22px;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.tvauth-cap b{display:block;font-size:15px;font-weight:600;letter-spacing:-.005em}.tvauth-cap span{display:block;font-size:12.5px;color:rgba(255,255,255,.66);margin-top:2px}
.tvauth-dots{display:flex;gap:6px;align-items:center;flex:none;padding-bottom:4px}
.tvauth-dots button{width:7px;height:7px;padding:0;border:0;border-radius:99px;background:rgba(255,255,255,.3);cursor:pointer;transition:width .35s ease,background .35s ease}
.tvauth-dots button.on{width:22px;background:#13C2A3}
/* --- right: the form --- */
.tvauth-form{display:flex;flex-direction:column;justify-content:center;min-width:0;overflow:auto;padding:clamp(22px,4.5vh,44px) clamp(22px,4.2vw,58px)}
.tvauth-brand{margin-bottom:clamp(18px,4.2vh,40px)}.tvauth-brand img{height:34px;width:auto;display:block}
.tvauth-tabs{display:flex;gap:20px;margin-bottom:14px}
.tvauth-tab{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 6px;font:inherit;font-size:14px;font-weight:500;color:var(--am);cursor:pointer;transition:color .2s,border-color .2s}
.tvauth-tab:hover{color:var(--ai)}.tvauth-tab.active{color:var(--a);border-color:var(--a)}
.tvauth-form h2{display:block;margin:0 0 12px;font-size:clamp(30px,3.5vw,44px);line-height:1.07;font-weight:500;letter-spacing:-.022em;color:var(--ai)}
.tvauth-form h2::after{content:"";display:block;width:44px;height:2px;background:var(--a);margin-top:14px;border-radius:2px}
.tvauth-sub{color:var(--ab);font-size:14.5px;line-height:1.6;margin:0 0 24px;max-width:430px}
.tvauth-input-wrap{position:relative;margin-bottom:18px;text-align:left}
.tvauth-input-wrap label{display:block;font-size:12.5px;font-weight:500;color:var(--ab);margin-bottom:8px}
.tvauth-input-inner{position:relative;display:flex;align-items:center}
.tvauth-input-inner svg{position:absolute;left:16px;width:18px;height:18px;color:var(--am);pointer-events:none;transition:color .2s}
#tvauth input[type="email"]{width:100%;height:54px;padding:0 16px 0 47px;border:1px solid var(--al);border-radius:15px;font:inherit;font-size:15px;background:#fff;color:var(--ai);transition:border-color .2s,box-shadow .2s}
#tvauth input[type="email"]::placeholder{color:#98A5A8}
#tvauth input[type="email"]:focus{outline:none;border-color:var(--a);box-shadow:0 0 0 4px rgba(15,118,110,.14)}
#tvauth .tvauth-input-inner:focus-within svg{color:var(--a)}
.tvauth-btn{width:100%;height:54px;border:0;border-radius:15px;background:var(--a);color:#fff;font:inherit;font-weight:600;font-size:15px;letter-spacing:.005em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 12px 26px -12px rgba(15,118,110,.7)}
.tvauth-btn svg{transition:transform .25s ease}.tvauth-btn:hover{background:var(--a2);transform:translateY(-1px)}.tvauth-btn:hover svg{transform:translateX(3px)}.tvauth-btn:active{transform:none}.tvauth-btn:disabled{opacity:.7;cursor:progress}
.tvauth-trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.tvauth-trust span{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--a);border-radius:99px;font-size:12px;font-weight:500;color:var(--a);background:transparent}
.tvauth-trust span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--a)}
.tvauth-trust svg{display:none}
.tvauth-err{background:#FDEBEE;color:#B0283F;border:1px solid rgba(176,40,63,.22);border-radius:14px;padding:12px 16px;font-size:13px;margin-bottom:18px;animation:errShake .4s cubic-bezier(.36,.07,.19,.97) both}
@keyframes errShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(3px)}30%,50%,70%{transform:translateX(-3px)}40%,60%{transform:translateX(3px)}}
.tv-otp-wrap{display:flex;gap:10px;margin:22px 0 28px;perspective:600px;transform-style:preserve-3d}
.tv-otp-box{position:relative;transform-style:preserve-3d}
.tv-otp-box.float-3d{animation:floatDigit3D .5s cubic-bezier(.175,.885,.32,1.275) forwards}
@keyframes floatDigit3D{0%{transform:perspective(600px) translateZ(0) scale(1)}50%{transform:perspective(600px) translateZ(42px) rotateX(-25deg) rotateY(25deg) scale(1.15)}100%{transform:perspective(600px) translateZ(0) scale(1)}}
.tv-otp-box.disperse{animation:otpDisperse .75s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes otpDisperse{0%{transform:perspective(600px) translateZ(0) scale(1)}50%{transform:perspective(600px) translateZ(58px) rotateX(-28deg) rotateY(24deg) scale(1.22)}100%{transform:perspective(600px) translateZ(0) scale(1)}}
.tvauth-box.tilt-verifying{animation:cardTiltVerify .8s ease-in-out forwards}
@keyframes cardTiltVerify{0%{transform:perspective(1000px) rotateX(0) rotateY(0) scale(1)}50%{transform:perspective(1000px) rotateX(-8deg) rotateY(10deg) scale(1.02)}100%{transform:perspective(1000px) rotateX(0) rotateY(0) scale(1)}}
.tvauth-box.tilt-verified{box-shadow:0 44px 90px -34px rgba(5,66,78,.55),0 0 60px rgba(19,194,163,.35)}
.tv-otp-digit{width:52px;height:60px;background:#fff!important;border:1px solid var(--al)!important;border-radius:14px;color:var(--ai)!important;font-family:var(--mono);font-size:24px;font-weight:600;text-align:center;outline:none;transition:border-color .2s,box-shadow .2s,background .2s;caret-color:var(--a)}
.tv-otp-digit:focus{border-color:var(--a)!important;box-shadow:0 0 0 4px rgba(15,118,110,.14)!important}
.tv-otp-digit.filled{border-color:var(--a)!important;background:var(--as)!important;color:var(--a2)!important}
.tv-check-badge{width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#2FD9BC,#0F766E);box-shadow:0 0 45px rgba(19,194,163,.55),0 10px 30px rgba(15,21,24,.12);display:grid;place-items:center;margin:0 0 18px;animation:springBadge .6s cubic-bezier(.175,.885,.32,1.35) forwards}
@keyframes springBadge{0%{transform:scale(0) rotate(-45deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}
.tv-check-badge svg{width:36px;height:36px;stroke:#fff;stroke-width:3.2}
.tv-verified-tag{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:9px 20px;background:var(--as);border:1px solid var(--a);border-radius:99px;font-size:13px;font-weight:600;color:var(--a2)}
.tvauth-link{display:inline-block;background:none;border:none;color:var(--a);font-size:13px;font-weight:600;cursor:pointer;padding:6px;transition:color .2s}
.tvauth-link:hover{color:var(--a2);text-decoration:underline}
@media (max-width:900px){
  .tvauth-box{grid-template-columns:1fr;height:auto;max-height:calc(100vh - 20px);max-width:480px;border-radius:24px;padding:8px}
  .tvauth-show{display:none}
  .tvauth-form{padding:26px 22px 24px}
}
@media (prefers-reduced-motion:reduce){
  .tvauth-rings,.tvc.fl,.tvc .wave i,.tvc .gap{animation:none!important}
  .tvc{transition:none!important}
}
.profile-wrap{position:relative;flex:none}
.profile-btn{padding:0;width:40px;height:40px;border-radius:50%;overflow:hidden;border:1px solid var(--line)}
.pavatar{width:100%;height:100%;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:13.5px;font-weight:600}
.profile-menu{position:absolute;top:50px;right:0;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-3);padding:8px;z-index:96;display:none}
.profile-menu.on{display:block}
.profile-menu .pm-id{padding:8px 10px 11px;border-bottom:1px solid var(--line);margin-bottom:6px}
.profile-menu .pm-id b{display:block;font-size:13.5px;color:var(--ink)}
.profile-menu .pm-id small{color:var(--muted);font-size:12px;word-break:break-all}
.profile-menu button{width:100%;text-align:left;display:flex;align-items:center;gap:9px;padding:10px;border:none;background:none;border-radius:var(--r-xs);font:inherit;font-size:13.5px;color:var(--ink);cursor:pointer}
.profile-menu button:hover{background:var(--surface-2)}
.profile-menu button svg{width:16px;height:16px;color:var(--muted);flex:none}
/* --- office switcher --- */
.loc{padding:0;border:0;background:none;max-width:none;min-height:0}
.lm-btn{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 12px 4px 5px;border-radius:var(--pill);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-align:left;max-width:280px;transition:background var(--d-hover),border-color var(--d-hover),box-shadow var(--d-hover)}
.lm-btn:hover{background:var(--surface-2)}.lm-btn[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.lm-btn>svg{width:14px;height:14px;color:var(--muted);flex:none;transition:transform var(--d-med) var(--ease)}.lm-btn[aria-expanded="true"]>svg{transform:rotate(180deg)}
.lm-av{position:relative;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;font-size:13.5px;font-weight:600;flex:none}
.lm-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid var(--surface);background:var(--faint)}
.lm-dot.good{background:var(--good)}.lm-dot.warn{background:var(--warn)}
.lm-tx{min-width:0;display:flex;flex-direction:column;line-height:1.2}.lm-tx b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm-tx small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.lm-menu{position:fixed;z-index:97;display:none;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:8px;max-height:min(70vh,520px);overflow:auto}
.lm-menu.on{display:block}
.lm-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.lm-org{font-weight:600;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lm-q{display:flex;align-items:center;gap:8px;margin:2px 4px 8px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.lm-q svg{width:15px;height:15px;color:var(--muted)}.lm-q input{border:0;background:none;outline:none;font:inherit;font-size:14px;color:var(--ink);min-height:40px;flex:1}
.lm-sep{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:10px 10px 4px}
.lm-opt{width:100%;display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--r-sm);text-align:left;min-height:52px;color:var(--ink)}
.lm-opt:hover,.lm-opt:focus-visible{background:var(--surface-2);outline:none}.lm-opt[aria-selected="true"]{background:var(--accent-soft)}
.lm-opt .lm-tx{flex:1}.lm-ck{color:var(--accent-strong);flex:none}.lm-ck svg{width:16px;height:16px}
.lm-foot{display:flex;align-items:center;gap:8px;margin-top:6px;padding:12px 10px 6px;border-top:1px solid var(--line);font-size:13.5px;color:var(--info);font-weight:500}.lm-foot svg{width:15px;height:15px}
@media (max-width:900px){.lm-btn{padding:3px;max-width:none}.lm-btn .lm-tx,.lm-btn>svg{display:none}}
@media (max-width:520px){.lm-menu{left:0!important;right:0;bottom:0;top:auto!important;width:auto!important;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:75vh;padding:10px 10px calc(14px + env(safe-area-inset-bottom))}}
/* --- onboarding wizard --- */
/* --- onboarding wizard (Ultra-Luxury Always-Light Aesthetic + Interactive Torch Mesh) --- */
/* --- onboarding wizard (Ultra-Luxury Always-Light Aesthetic + Interactive Torch Mesh) --- */
#tvonb{
  position:fixed;inset:0;z-index:190;display:flex;align-items:center;justify-content:center;
  background:#FAFBF9;padding:clamp(8px, 1.8vh, 24px) clamp(10px, 2.5vw, 24px);
  overflow:hidden;perspective:1200px;
  color-scheme:light!important;color:#151815;
}
.onb-mesh-bg{
  position:fixed;inset:-40%;pointer-events:none;z-index:1;
  background:
    radial-gradient(circle at 18% 22%, rgba(196,242,65,0.38) 0%, transparent 48%),
    radial-gradient(circle at 82% 26%, rgba(112,136,223,0.30) 0%, transparent 52%),
    radial-gradient(circle at 45% 80%, rgba(169,221,30,0.28) 0%, transparent 55%),
    radial-gradient(circle at 75% 72%, rgba(244,114,182,0.22) 0%, transparent 45%),
    radial-gradient(circle at 30% 60%, rgba(56,189,248,0.22) 0%, transparent 48%);
  filter:blur(80px);
  animation:meshMorph 18s ease-in-out infinite alternate;
}
.onb-grid-bg{
  position:fixed;inset:0;pointer-events:none;z-index:2;
  background-image:
    linear-gradient(to right, rgba(21,24,21,0.065) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(21,24,21,0.065) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 85% 75% at 50% 50%, #000 40%, transparent 95%);
  -webkit-mask-image:radial-gradient(ellipse 85% 75% at 50% 50%, #000 40%, transparent 95%);
}
.onb-torch{
  position:fixed;inset:0;pointer-events:none;z-index:3;
  background:radial-gradient(680px circle at var(--tx,50%) var(--ty,50%), rgba(196,242,65,0.40) 0%, rgba(99,102,241,0.18) 35%, transparent 70%);
  mix-blend-mode:multiply;
}
.onb-torch-spot{
  position:fixed;inset:0;pointer-events:none;z-index:4;
  background:radial-gradient(300px circle at var(--tx,50%) var(--ty,50%), rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.2) 50%, transparent 70%);
  mix-blend-mode:overlay;
}
.onb-orb{
  position:fixed;border-radius:50%;pointer-events:none;z-index:2;filter:blur(45px);opacity:0.65;
}
.onb-orb-1{
  width:280px;height:280px;top:8%;left:10%;
  background:linear-gradient(135deg,#C4F241,#A9DD1E);
  animation:floatOrb1 12s ease-in-out infinite alternate;
}
.onb-orb-2{
  width:340px;height:340px;bottom:10%;right:12%;
  background:linear-gradient(135deg,#A9BAEC,#7088DF);
  animation:floatOrb2 15s ease-in-out infinite alternate;
}
.onb-box{
  width:min(580px, 94vw);max-height:min(96vh, 840px);position:relative;z-index:10;
  box-sizing:border-box;
  background:rgba(255,255,255,0.86)!important;
  backdrop-filter:blur(36px) saturate(190%)!important;
  -webkit-backdrop-filter:blur(36px) saturate(190%)!important;
  border:1.5px solid rgba(255,255,255,0.95)!important;
  border-radius:clamp(20px, 3vh, 32px);
  box-shadow:
    0 24px 70px rgba(21,24,21,0.08),
    0 4px 20px rgba(21,24,21,0.04),
    0 0 0 1px rgba(0,0,0,0.03) inset,
    0 1px 0 #fff inset,
    0 0 50px rgba(196,242,65,0.18)!important;
  padding:clamp(18px, 2.8vh, 32px) clamp(16px, 3.2vw, 32px);margin:auto;
  color:#151815!important;
  transition:all .3s cubic-bezier(.2,.8,.2,1);
  overflow:hidden;display:flex;flex-direction:column;justify-content:center;
}
.onb-box *{color-scheme:light}
.onb-brand-row{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(10px, 1.6vh, 18px);flex:none;
}
.onb-brand-badge{
  display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:clamp(13px, 1.8vh, 15px);color:#151815;
}
.onb-brand-badge .mk{
  width:clamp(28px, 3.6vh, 32px);height:clamp(28px, 3.6vh, 32px);border-radius:10px;background:linear-gradient(135deg,#C4F241,#9ED213);
  display:grid;place-items:center;box-shadow:0 4px 14px rgba(169,221,30,0.4);color:#243A00;
}
.onb-brand-badge .mk svg{width:clamp(16px, 2vh, 18px);height:clamp(16px, 2vh, 18px)}
.onb-steps{display:flex;gap:6px;margin-bottom:clamp(12px, 2vh, 22px);align-items:center;flex:none}
.onb-steps i{height:4px;flex:1;border-radius:999px;background:rgba(0,0,0,0.06);transition:all .35s ease}
.onb-steps i.on{background:linear-gradient(90deg,#C4F241,#A9DD1E);box-shadow:0 0 12px rgba(196,242,65,0.5)}
.onb-box h2{font-size:clamp(19px, 2.8vh, 23px);margin:0 0 4px;color:#151815!important;font-weight:700;letter-spacing:-.025em;line-height:1.2;flex:none}
.onb-box .sub{color:#646A63!important;font-size:clamp(12px, 1.5vh, 13px);line-height:1.45;margin:0 0 clamp(12px, 1.8vh, 20px);flex:none}
.onb-field{margin-bottom:clamp(8px, 1.5vh, 14px);text-align:left}
.onb-field label{display:block;font-size:clamp(10.5px, 1.4vh, 11.5px);font-weight:700;color:#383D37!important;margin-bottom:5px;letter-spacing:.02em}
.onb-field input,.onb-field select{
  width:100%;box-sizing:border-box;padding:clamp(9px, 1.4vh, 12px) 13px;
  border:1.5px solid #E4E8DF!important;border-radius:13px;font:inherit;font-size:clamp(12.5px, 1.5vh, 13.5px);
  background:#F5F7F2!important;color:#151815!important;transition:all .25s ease;
  box-shadow:0 1px 2px rgba(0,0,0,0.02) inset;
}
.onb-field input:focus,.onb-field select:focus{
  outline:none;border-color:#A9DD1E!important;background:#FFFFFF!important;
  box-shadow:0 0 0 4px rgba(196,242,65,0.35),0 2px 10px rgba(0,0,0,0.05)!important;
}
.onb-row{display:flex;gap:10px}.onb-row>*{flex:1;margin-bottom:0}
.onb-actions{display:flex;gap:10px;margin-top:clamp(12px, 2vh, 22px);align-items:center;flex:none}
.onb-actions .grow{flex:1}
.onb-btn{
  padding:clamp(10px, 1.5vh, 13px) clamp(18px, 2.5vw, 24px);border:none;border-radius:14px;
  background:linear-gradient(135deg,#C4F241,#A4DC16);
  color:#243A00!important;font:inherit;font-weight:700;font-size:clamp(12.5px, 1.5vh, 13.5px);
  letter-spacing:-.01em;cursor:pointer;text-decoration:none;
  box-shadow:0 6px 20px rgba(169,221,30,0.4),0 2px 6px rgba(0,0,0,0.04);
  transition:all .25s cubic-bezier(.2,.8,.2,1);
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  position:relative;overflow:hidden;
}
.onb-btn::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.45),transparent);
  transform:skewX(-20deg);animation:btnShimmer 3.5s infinite;
}
.onb-btn:hover{
  background:linear-gradient(135deg,#D2FA55,#AEE41C);
  transform:translateY(-2px);box-shadow:0 10px 28px rgba(169,221,30,0.5),0 4px 10px rgba(0,0,0,0.06);
}
.onb-btn:active{transform:translateY(0) scale(.99)}
.onb-btn.ghost{
  background:#F5F7F2!important;color:#494F49!important;border:1px solid #E4E8DF!important;
  box-shadow:none;
}
.onb-btn.ghost:hover{background:#EEF1EA!important;color:#151815!important;transform:none}
.onb-btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none;box-shadow:none}
.onb-check{
  display:flex;gap:10px;align-items:flex-start;padding:clamp(8px, 1.3vh, 12px) 14px;
  background:#F5F7F2!important;border:1px solid #E4E8DF!important;border-radius:14px;
  font-size:clamp(11.5px, 1.4vh, 12.5px);color:#383D37!important;cursor:pointer;transition:border-color .2s;flex:none;
}
.onb-check:hover{border-color:#D8DDD2!important}
.onb-check input{margin-top:2px;flex:none;accent-color:#89C70F;width:15px;height:15px;cursor:pointer}
.onb-dl{
  display:flex;align-items:center;gap:12px;padding:clamp(9px, 1.5vh, 14px) clamp(12px, 1.8vw, 16px);
  background:#FFFFFF!important;border:1.5px solid #E4E8DF!important;border-radius:16px;
  margin-bottom:clamp(8px, 1.3vh, 12px);box-shadow:0 2px 10px rgba(0,0,0,0.03);
  transition:all .25s ease;flex:none;
}
.onb-dl:hover{
  border-color:#A9DD1E!important;box-shadow:0 6px 20px rgba(196,242,65,0.22);
}
.onb-dl .ic-badge{
  width:clamp(34px, 4vh, 40px);height:clamp(34px, 4vh, 40px);border-radius:12px;background:#EDF7CF!important;
  color:#243A00!important;display:grid;place-items:center;flex:none;
  box-shadow:0 2px 8px rgba(169,221,30,0.3);
}
.onb-dl .ic-badge svg{width:clamp(17px, 2vh, 20px);height:clamp(17px, 2vh, 20px)}
.onb-psh{
  background:#FFFFFF!important;border:1.5px solid #E4E8DF!important;border-radius:16px;
  padding:clamp(9px, 1.3vh, 12px) clamp(12px, 1.8vw, 15px);margin-bottom:clamp(8px, 1.3vh, 12px);box-shadow:0 2px 10px rgba(0,0,0,0.03);flex:none;
}
.onb-psh-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;
  font-size:clamp(10.5px, 1.3vh, 11px);color:#646A63!important;font-weight:700;letter-spacing:.01em;
}
.onb-psh-code{
  font-family:var(--mono);font-size:clamp(10.5px, 1.3vh, 11px);line-height:1.45;color:#151815!important;
  word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap;
  user-select:all;background:#F5F7F2!important;
  padding:8px 11px;border-radius:10px;border:1px solid #E4E8DF!important;margin:0;
  max-height:clamp(45px, 7vh, 65px);overflow-y:auto;scrollbar-width:thin;
}
.onb-copy-btn{
  font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:7px;
  background:#F5F7F2!important;border:1px solid #E4E8DF!important;color:#151815!important;
  cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .18s;
}
.onb-copy-btn:hover{
  background:#FFFFFF!important;border-color:#A9DD1E!important;color:#243A00!important;
  box-shadow:0 2px 6px rgba(0,0,0,0.06);
}
.onb-sync-card{
  display:flex;align-items:center;gap:12px;padding:clamp(8px, 1.3vh, 12px) clamp(12px, 1.8vw, 15px);border-radius:15px;
  margin-bottom:clamp(8px, 1.3vh, 12px);transition:all .3s ease;flex:none;
}
.onb-sync-card.waiting{
  background:#FAFBF9!important;border:1.5px dashed #D8DDD2!important;
}
.onb-sync-card.synced{
  background:#EDF7CF!important;border:1.5px solid #A9DD1E!important;color:#243A00!important;
  box-shadow:0 0 24px rgba(196,242,65,0.4);
}
.pulse-dot{
  width:9px;height:9px;border-radius:50%;background:#E28A2C;
  box-shadow:0 0 0 0 rgba(226,138,44,0.7);animation:pulse 1.8s infinite;flex:none;
}
.pulse-dot.good{
  background:#3FA96B;box-shadow:0 0 0 0 rgba(63,169,107,0.7);animation:pulseGood 1.8s infinite;
}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(226,138,44,0.7)}70%{box-shadow:0 0 0 10px rgba(226,138,44,0)}100%{box-shadow:0 0 0 0 rgba(226,138,44,0)}}
@keyframes pulseGood{0%{box-shadow:0 0 0 0 rgba(63,169,107,0.7)}70%{box-shadow:0 0 0 10px rgba(63,169,107,0)}100%{box-shadow:0 0 0 0 rgba(63,169,107,0)}}
.onb-err{
  background:#FBE7E2!important;color:#DA4B37!important;border-radius:13px;
  padding:9px 13px;font-size:12.5px;margin-bottom:10px;
  border:1px solid rgba(218,75,55,0.25)!important;text-align:left;flex:none;
}
.onb-baa{
  max-height:clamp(75px, 12vh, 130px);overflow-y:auto;border:1.5px solid #E4E8DF!important;
  border-radius:14px;padding:clamp(9px, 1.4vh, 13px) clamp(11px, 1.8vw, 15px);margin-bottom:clamp(8px, 1.3vh, 12px);background:#F5F7F2!important;
  font-size:clamp(11px, 1.3vh, 12px);line-height:1.5;color:#494F49!important;scrollbar-width:thin;flex:none;
}
.onb-baa h3{font-size:13px;color:#151815!important;margin:0 0 6px;font-weight:700}
.onb-baa p{margin:0 0 7px}.onb-baa b{color:#151815!important}
.onb-place{position:relative}
.onb-place-results{
  position:absolute;left:0;right:0;top:100%;z-index:15;background:#FFFFFF!important;
  border:1.5px solid #E4E8DF!important;border-radius:14px;box-shadow:0 14px 34px rgba(21,24,21,0.12);
  margin-top:5px;max-height:230px;overflow-y:auto;display:none;
}
.onb-place-results.on{display:block}
.onb-place-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid #E4E8DF!important}
.onb-place-item:last-child{border-bottom:none}.onb-place-item:hover{background:#F5F7F2!important}
.onb-place-item b{display:block;font-size:13px;color:#151815!important}.onb-place-item small{color:#7D837B!important;font-size:11px}
.onb-place-sel{
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  background:#EDF7CF!important;border:1px solid #A9DD1E!important;border-radius:14px;
  font-size:13px;color:#243A00!important;
}
/* --- weekly recap: Overview strip + story viewer --- */
.rc-strip{padding:16px 18px}.rc-sh{display:flex;align-items:center;justify-content:space-between;gap:14px}.rc-sh b{display:block;font-family:"Newsreader",Georgia,serif;font-size:21px;font-weight:500;letter-spacing:-.01em;line-height:1.2;margin-top:4px}
.rc-sh .btn{flex:none}.rc-sh .btn svg{width:14px;height:14px}
.rc-k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.rc-bubs{display:flex;gap:14px;overflow-x:auto;padding:14px 2px 2px;scrollbar-width:none}.rc-bubs::-webkit-scrollbar{display:none}
.rc-bub{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none;width:76px;color:var(--ink)}
.rc-ring{width:62px;height:62px;border-radius:50%;padding:3px;background:conic-gradient(var(--accent),var(--info),var(--accent));display:grid;transition:transform var(--d-med) var(--ease)}
.rc-ring span{border-radius:50%;background:var(--surface);border:2px solid var(--surface);display:grid;place-items:center;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.rc-bub:hover .rc-ring{transform:scale(1.06)}.rc-bub small{font-size:11.5px;color:var(--muted);text-align:center;line-height:1.2}
.rc-view{position:fixed;inset:0;z-index:calc(var(--z-tip) - 1);display:none;align-items:center;justify-content:center;gap:28px;background:rgba(18,22,26,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:20px}
.rc-view.on{display:flex}
.rc-card{position:relative;width:min(460px,100%);height:min(780px,calc(100vh - 40px));background:var(--surface);color:var(--ink);border-radius:26px;box-shadow:0 30px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;touch-action:pan-y;user-select:none}
.rc-top{padding:14px 18px 0}
.rc-bars{display:flex;gap:4px}.rc-bars i{flex:1;height:3px;border-radius:3px;background:var(--line);overflow:hidden}.rc-bars i b{display:block;height:100%;background:var(--ink);border-radius:3px}
.rc-hd{display:flex;align-items:center;gap:10px;margin-top:14px}.rc-mark{width:28px;height:28px;border-radius:9px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.rc-mark svg{width:15px;height:15px}
.rc-wk{margin-left:auto}.rc-x{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}.rc-x:hover{background:var(--surface-2);color:var(--ink)}.rc-x svg{width:18px;height:18px}
.rc-body{flex:1;overflow:auto;padding:18px 22px 22px;display:flex;flex-direction:column;gap:16px}
.rc-title{font-family:"Newsreader",Georgia,serif;font-weight:500;font-size:clamp(28px,4.4vw,36px);line-height:1.08;letter-spacing:-.02em;margin:0;display:block}
.rc-panel{border:1px solid var(--line);border-radius:18px;padding:16px 16px 12px;background:var(--surface-2)}
.rc-num{display:flex;align-items:baseline;gap:10px;margin-top:10px;font-size:34px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.rc-delta{font-size:14px;font-weight:600;padding:3px 9px;border-radius:var(--pill);background:var(--surface-3);color:var(--ink-2)}.rc-delta.up{background:var(--good-soft);color:var(--good)}.rc-delta.down{background:var(--crit-soft);color:var(--crit)}
.rc-cmp{font-size:12.5px;color:var(--muted);margin-top:4px}.rc-chart{margin-top:12px}
.rc-text{font-size:16px;line-height:1.55;color:var(--ink-2);margin:0}
.rc-fb{display:flex;gap:8px;flex-wrap:wrap}.rc-fb button{display:flex;align-items:center;gap:7px;padding:0 14px;min-height:40px;border-radius:var(--pill);border:1px solid var(--line);font-size:13.5px;color:var(--ink-2);background:var(--surface)}
.rc-fb button svg{width:15px;height:15px}.rc-fb button:hover{background:var(--surface-2)}.rc-fb button[aria-pressed="true"]{background:var(--accent-soft);border-color:transparent;color:var(--accent-strong)}
.rc-src{font-size:12px;color:var(--faint);margin-top:auto}
.rc-end{justify-content:center;text-align:left}.rc-endb{display:flex;flex-wrap:wrap;gap:8px}.rc-endb .btn svg{width:14px;height:14px}
.rc-arrow{width:52px;height:52px;border-radius:50%;background:var(--surface);color:var(--ink);display:grid;place-items:center;box-shadow:var(--sh-3);flex:none;transition:transform var(--d-hover) var(--ease),opacity var(--d-hover)}
.rc-arrow:hover{transform:scale(1.06)}.rc-arrow:disabled{opacity:.35;pointer-events:none}.rc-arrow svg{width:20px;height:20px}.rc-arrow.prev svg{transform:rotate(180deg)}
@media (max-width:640px){.rc-view{padding:0;gap:0;background:var(--surface)}.rc-card{width:100%;height:100%;border-radius:0;box-shadow:none}.rc-arrow{display:none}.rc-top{padding-top:calc(12px + env(safe-area-inset-top))}}
@media print{
 .side,.side-scrim,.top .burger,.top .search,.top .ask-btn,.top #bell,.top #theme,.top .profile-wrap,.exp,.tabs,.subtabs,#tvbanner,.demo-note,.pal-scrim,.drawer,.drawer-scrim{display:none!important}
 .app{grid-template-columns:1fr!important}.main{margin:0!important;padding:0!important} #page{padding:0!important}
 .card{break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important}
 body{background:#fff!important}
 a[href]{color:inherit!important;text-decoration:none!important}
 /* Keep the chosen filter readable as plain text; drop the interactive chrome around it. */
 .filters{border:none!important;padding:0 0 10px!important}
 .filters .sel{appearance:none;-webkit-appearance:none;border:none!important;background:none!important;padding:0 12px 0 0!important;font-weight:600;color:#000!important}
}

/* ---- sign-in showcase: clean pass (one centred card per feature, lighter type) ---- */
body:has(#tvauth) #palscrim{display:none!important}
.tvs.on .tvc.fl{animation:none}
.tvs.off{position:absolute}
.tvc{font-weight:300;border-radius:18px;padding:20px 22px;box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.tvc h4{font-weight:400;font-size:13px;color:#3A4649;letter-spacing:.01em}
.tvc b{font-weight:400;color:#0F1518}
.tvc .n{font-weight:400;letter-spacing:-.01em}
.tvc .big{font-size:26px}.tvc .huge{font-weight:300}
.tvc .t,.tvc .pill,.tvc .av,.tvc .seg,.tvc .dh,.tvc .gap{font-weight:400}
.tvc .k{color:#7A878A}
.tvauth-tag{font-weight:300}
.tvauth-cap b{font-weight:400}.tvauth-cap span{font-weight:300}
.tvauth-sample{font-weight:400}
.tvauth-form h2{font-weight:300;letter-spacing:-.02em}
.tvauth-sub{font-weight:300}
.tvauth-tab{font-weight:400}
.tvauth-input-wrap label{font-weight:400}
.tvauth-btn{font-weight:400;letter-spacing:.01em}
.tvauth-trust span{font-weight:400}
.tvauth-rings{color:rgba(255,255,255,.08)}

/* ---- showcase grid: 2-3 cards of one module, no overlap ---- */
.tvs{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:center}
.tvs>.tvc{position:relative!important;left:auto!important;top:auto!important;right:auto!important;bottom:auto!important;width:auto!important;height:auto!important;margin:0}
.tvs>.tvc:first-child{grid-column:1/-1}
.tvs>.tvc:nth-child(2):last-child{grid-column:1/-1}
.tvs>.tvc.dk{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);box-shadow:none;padding:14px 16px;display:flex;align-items:center;border-radius:16px}
.tvs>.tvc.dk .pill.d2{background:none;border:0;padding:0;font-size:12.5px;backdrop-filter:none;white-space:normal}
.tvs>.tvc.ph{height:300px!important;padding:16px 20px}
.tvs>.tvc.ph .huge{margin:8px 0 2px;font-size:46px}
.tvs>.tvc.ph .spark{margin:12px 0 auto}
.tvc.sm{padding:14px 16px}
.tvauth-nav{display:flex;align-items:center;gap:10px;flex:none}
.tvauth-arr{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0;transition:background .2s,border-color .2s}
.tvauth-arr:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5)}
.tvauth-arr svg{width:15px;height:15px}
.tvauth-dots{padding-bottom:0}

.tvc .cmpt{display:grid;grid-template-columns:1.7fr .8fr .8fr .8fr;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #EDF2F2;font-size:12px}
.tvc .cmpt.hd{border-top:0;padding-top:0;font-size:10.5px;color:#7A878A}
.tvc .cmpt.me{background:#EAF5F3;margin:0 -10px;padding:8px 10px;border-radius:10px;border-top:0}
.tvc .cmpt .n{font-size:12.5px}.tvc .cmpt em{font-style:normal;color:#E0A526}
.tvc .act{display:flex;align-items:center;gap:8px;font-size:12px;padding:5px 0}
.tvc .act .pill{min-width:26px;justify-content:center}
.tvc .gsp{width:100%;height:32px;margin-top:6px}.tvc .gsp path{stroke-dasharray:1;stroke-dashoffset:1;animation:tvDraw 1.4s .4s ease forwards}

.tvauth-grid{position:absolute;inset:0;z-index:1;pointer-events:none}
.tvauth-stage{z-index:2}
.tvauth-pagegrid{position:absolute;inset:0;z-index:0;pointer-events:none}
/* ---- showcase: frosted reveal, GPU-friendly: ONE blurred layer per scene (not per card); cards only fade and rise ---- */
.tvs{opacity:0;filter:blur(8px);transform:translateZ(0);transition:opacity 1.1s cubic-bezier(.22,1,.36,1),filter 1.2s cubic-bezier(.22,1,.36,1)}
.tvs.on{opacity:1;filter:blur(0)}
.tvs.off{opacity:0;filter:none;transition:opacity .6s ease}
.tvs>.tvc{opacity:0;transform:translate3d(0,10px,0);filter:none;
  transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--d,0)*180ms)}
.tvs.on>.tvc{opacity:1;transform:none}
.tvs.off>.tvc{opacity:1;transform:none;transition:none}
.tvauth-rings{will-change:transform}
@media (prefers-reduced-motion:reduce){.tvs,.tvs>.tvc{filter:none!important;transform:none!important;transition:opacity .4s ease!important}}

/* ---- layout fixes: sidebar shows the wordmark only (the mark appears only when the sidebar is collapsed); top bar is solid, not see-through ---- */
.brand-logo-mark,.brand-logo-mark.light-only,.brand-logo-mark.dark-only{display:none!important}
html[data-rail="1"] .brand-logo-mark.light-only{display:block!important}
html[data-theme="dark"][data-rail="1"] .brand-logo-mark.light-only{display:none!important}
html[data-theme="dark"][data-rail="1"] .brand-logo-mark.dark-only{display:block!important}
@media (prefers-color-scheme:dark){html:not([data-theme="light"])[data-rail="1"] .brand-logo-mark.light-only{display:none!important}html:not([data-theme="light"])[data-rail="1"] .brand-logo-mark.dark-only{display:block!important}}
.top{background:var(--bg);box-shadow:0 1px 0 var(--line);padding:10px 0 10px;margin-bottom:18px}
@media (max-width:520px){.top{box-shadow:none;background:none}}
