/* ============================================================
   MAC — shared design system  v2
   Inspired-by notes: Stripe (layered depth, gradient accents),
   Apple (confident type, spacious rhythm), Lusion (orchestrated
   motion). Signature: the monitor-trace / capnogram motif.
   ============================================================ */
:root{
  --bg:#eff2f6; --panel:#f7f9fb; --surface:#ffffff;
  --ink:#0a1220; --ink-2:#303d4d; --muted:#66717f; --faint:#95a0ae;
  --line:#e6eaf0; --line-2:#d5dce5;
  --accent:#0e6f7a; --accent-dk:#0a565f; --accent-soft:#e6f1f2;
  --accent-2:#17a2ad; --accent-3:#3bc0c9;
  --pos:#16794f; --pos-soft:#e8f4ee;
  --warn:#a23a2c; --warn-soft:#fbedeb; --warn-line:#f0cdc7;
  --amber:#9a6212; --amber-soft:#fbf4e6; --amber-line:#e7d3ac;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --disp:'Space Grotesk',var(--sans);
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --r:16px; --r-sm:10px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --shadow-sm:0 1px 2px rgba(10,18,32,.05),0 1px 1px rgba(10,18,32,.03);
  --shadow-md:0 1px 2px rgba(10,18,32,.05),0 8px 24px -12px rgba(10,18,32,.16);
  --shadow-lg:0 2px 4px rgba(10,18,32,.05),0 24px 48px -24px rgba(10,18,32,.22);
  --ring:0 0 0 3px rgba(14,111,122,.14);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);line-height:1.55;overflow-x:hidden;
  background:var(--bg);
  background-image:linear-gradient(180deg,#f4f7fa 0%,var(--bg) 340px);
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0 0 auto 0;height:3px;z-index:20;
  background:linear-gradient(90deg,var(--accent),var(--accent-2) 55%,var(--accent-3))}
::selection{background:rgba(23,162,173,.22)}
.wrap{max-width:620px;margin:0 auto;padding:36px 20px 76px;animation:fade .5s ease;position:relative}
.wrap.wide{max-width:820px}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

/* ---------- topbar ---------- */
.topbar{position:sticky;top:0;z-index:40;background:rgba(247,249,251,.85);
  backdrop-filter:saturate(1.5) blur(14px);-webkit-backdrop-filter:saturate(1.5) blur(14px);
  border-bottom:1px solid var(--line)}
.topbar-in{max-width:820px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:18px}
.tb-brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-family:var(--disp);font-weight:700;font-size:.95rem;color:var(--ink);letter-spacing:-.01em}
.tb-back{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 13px;
  border:1px solid var(--line-2);border-radius:99px;background:var(--surface);font-size:.76rem;font-weight:600;
  color:var(--muted);text-decoration:none;transition:color .18s var(--ease),border-color .18s var(--ease)}
.tb-back:hover{color:var(--accent-dk);border-color:var(--accent)}
.tb-links{margin-left:auto;display:flex;align-items:center;gap:20px}
.tb-links a{font-size:.82rem;font-weight:600;color:var(--muted);text-decoration:none;transition:color .15s}
.tb-links a:hover{color:var(--ink)}
.tb-links .tb-cta{background:var(--accent);color:#fff;padding:7px 14px;border-radius:99px}
.tb-links .tb-cta:hover{background:var(--accent-dk);color:#fff}
.topbar.landing{position:fixed;left:0;right:0;transform:translateY(-110%);transition:transform .35s var(--ease)}
.topbar.landing.show{transform:none}
[id]{scroll-margin-top:64px}

/* ---------- brand / header ---------- */
header{position:relative}
.brand{display:flex;align-items:center;gap:9px;margin-bottom:26px}
.brand a{display:flex;align-items:center;gap:9px;text-decoration:none;border-radius:8px}
.brand .mark{display:flex;filter:drop-shadow(0 2px 6px rgba(14,111,122,.28))}
.brand .word{font-family:var(--disp);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.brand .draft{margin-left:auto;font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.1em;
  color:var(--amber);border:1px solid var(--amber-line);background:var(--amber-soft);border-radius:5px;padding:3px 7px}
.eyebrow{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin-bottom:9px}
h1{font-family:var(--disp);font-size:2.05rem;font-weight:600;letter-spacing:-.025em;margin:0 0 8px;line-height:1.06}
.sub{color:var(--muted);font-size:.93rem;margin:0;max-width:50ch;line-height:1.6}
.backlink{position:absolute;top:2px;right:0;display:inline-flex;align-items:center;gap:6px;
  padding:7px 13px;border:1px solid var(--line-2);border-radius:99px;background:var(--surface);
  font-size:.78rem;font-weight:600;color:var(--muted);text-decoration:none;box-shadow:var(--shadow-sm);
  transition:color .18s var(--ease),border-color .18s var(--ease),transform .18s var(--ease)}
.backlink:hover{color:var(--accent-dk);border-color:var(--accent);transform:translateX(-2px)}

/* ---------- notice ---------- */
.notice{display:flex;gap:11px;margin:22px 0 26px;padding:13px 16px;background:var(--surface);
  border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:var(--r-sm);box-shadow:var(--shadow-sm)}
.notice svg{flex:none;margin-top:2px}
.notice p{margin:0;font-size:.78rem;color:var(--ink-2);line-height:1.5}
.notice b{color:var(--ink);font-weight:600}

/* ---------- card ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:8px 22px 22px;box-shadow:var(--shadow-md)}
.step{padding:20px 0;border-top:1px solid var(--line)}
.step:first-child{border-top:none}
.step.hidden{display:none}
label.q{display:flex;align-items:baseline;gap:11px;font-weight:600;font-size:1rem;margin-bottom:14px;
  letter-spacing:-.01em;color:var(--ink)}
.idx{font-family:var(--mono);font-size:.72rem;font-weight:600;color:var(--accent);letter-spacing:.02em;
  padding-top:3px;flex:none}
.sub-q{font-family:var(--mono);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;
  color:var(--muted);margin:0 0 8px}

/* ---------- fields ---------- */
select,input[type=number]{width:100%;padding:12px 14px;font-family:var(--sans);font-size:.98rem;color:var(--ink);
  border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);appearance:none;-webkit-appearance:none;
  box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7686' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;cursor:pointer}
select:hover,input:hover{border-color:#bfc9d6}
select:focus,input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
.row2{display:flex;gap:12px}
.row2>div:first-child{flex:1.5}
.row2>div:last-child{flex:1}

/* ---------- segmented control ---------- */
.seg{display:flex;gap:4px;background:#e9edf2;padding:4px;border-radius:12px;border:1px solid var(--line)}
.seg button{flex:1;padding:9px 8px;border:none;background:transparent;border-radius:9px;font-family:var(--sans);
  font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .18s var(--ease)}
.seg button:hover{color:var(--ink-2)}
.seg button.on{background:var(--surface);color:var(--accent-dk);box-shadow:0 1px 3px rgba(10,18,32,.14)}
.hint{font-size:.78rem;color:var(--muted);margin:10px 0 0;line-height:1.5}
.hint.hidden{display:none}

/* ---------- inline readout (conversion etc.) ---------- */
.conv{margin-top:14px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);
  padding:12px 14px;background:var(--panel);animation:rise .22s ease}
.conv.hidden{display:none}
.conv .eq{display:block;font-family:var(--mono);font-size:.82rem;font-weight:500;color:var(--ink-2);
  letter-spacing:-.01em;margin-bottom:5px}
.conv .cv{display:block;font-size:.9rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.conv small{display:block;margin-top:5px;font-size:.72rem;color:var(--faint)}
.conv.sup{border-left-color:var(--accent)} .conv.sup .cv{color:var(--accent-dk)}
.conv.nosup{border-left-color:var(--pos)} .conv.nosup .cv{color:var(--pos)}

/* ---------- answer / readout panel ---------- */
.answer{margin-top:16px;padding:24px 22px 22px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.answer.hidden{display:none}
.answer:not(.hidden){animation:rise .3s var(--ease)}
.answer::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;
  background:linear-gradient(180deg,var(--accent),var(--accent-3))}
.answer.is-nocover::before{background:var(--pos)}
.answer.is-warn::before{background:var(--warn)}
.tagrow{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.tag{font-family:var(--mono);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  padding:4px 9px;border-radius:6px;border:1px solid}
.tag.t1{color:#1c5a86;border-color:#c8ddec;background:#eef5fa}
.tag.t2{color:#5a3a9a;border-color:#d8cdee;background:#f2eefb}
.tag.tn{color:var(--pos);border-color:#c5e3d3;background:var(--pos-soft)}
.tag.tw{color:var(--warn);border-color:var(--warn-line);background:var(--warn-soft)}
.verdict-line{display:flex;align-items:center;gap:11px;font-family:var(--disp);font-size:1.24rem;font-weight:600;
  letter-spacing:-.015em;margin:0 0 4px;color:var(--ink)}
.verdict-line::before{content:"";width:10px;height:10px;border-radius:50%;flex:none;background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft)}
.verdict-line.nocover{color:var(--pos)}
.verdict-line.nocover::before{background:var(--pos);box-shadow:0 0 0 4px var(--pos-soft)}
.verdict-line.warn{color:var(--warn)}
.verdict-line.warn::before{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}

.block{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.block h3{margin:0 0 11px;font-family:var(--mono);font-size:.68rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)}
.block ul{margin:0;padding:0;list-style:none}
.block li{position:relative;padding-left:18px;margin:8px 0;font-size:.95rem;color:var(--ink-2);line-height:1.5}
.block li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;
  background:var(--line-2)}
.block li b{color:var(--ink);font-weight:600}
.block .lead{margin:0 0 12px;font-size:.82rem;color:var(--muted)}
.block li.opt{list-style:none;padding:13px 15px;margin:0 0 10px;background:var(--surface);border:1px solid var(--line-2);
  border-radius:var(--r-sm);font-size:.94rem;color:var(--ink-2);transition:border-color .15s,box-shadow .15s}
.block li.opt:last-child{margin-bottom:0}
.block li.opt:hover{border-color:#bfc9d6;box-shadow:var(--shadow-sm)}
.block li.opt::before{display:none}
.block li.opt .lbl{display:inline-block;font-family:var(--mono);font-size:.64rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.07em;color:var(--accent-dk);border:1px solid #bcdadd;background:var(--accent-soft);
  border-radius:5px;padding:3px 8px;margin-right:9px;vertical-align:1px}

.notes{margin-top:20px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm)}
.notes h3{margin:0 0 9px;font-family:var(--mono);font-size:.66rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)}
.notes ul{margin:0;padding:0;list-style:none}
.notes li{position:relative;padding-left:16px;font-size:.84rem;color:var(--ink-2);margin:6px 0;line-height:1.5}
.notes li::before{content:"";position:absolute;left:2px;top:8px;width:4px;height:4px;border-radius:50%;background:var(--faint)}
.notes.warn{background:var(--warn-soft);border-color:var(--warn-line)}
.notes.warn h3{color:var(--warn)}
.notes.warn li b{color:var(--warn)}
.notes.warn li::before{background:var(--warn)}

.src{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:.75rem;color:var(--faint);line-height:1.5}
.reset{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:9px 15px;background:transparent;
  border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:var(--sans);font-size:.82rem;font-weight:600;
  color:var(--muted);cursor:pointer;transition:all .15s}
.reset:hover{border-color:#bfc9d6;color:var(--ink-2)}

.footer{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-2);font-size:.72rem;color:var(--faint);
  line-height:1.6}
.footer b{color:var(--muted);font-weight:600}
.feedback-bar{margin-top:22px;display:flex;justify-content:center}
.feedback-bar a{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line-2);
  border-radius:var(--r-sm);background:var(--surface);font-size:.82rem;font-weight:600;color:var(--muted);text-decoration:none;
  box-shadow:var(--shadow-sm);transition:all .15s}
.feedback-bar a:hover{border-color:var(--accent);color:var(--accent-dk)}
.recs{margin-top:22px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);padding:0 16px}
.recs summary{cursor:pointer;font-family:var(--mono);font-size:.7rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.08em;color:var(--accent-dk);padding:13px 0;list-style-position:inside}
.recs summary::marker{color:var(--accent)}
.recs ol{margin:2px 0 14px;padding-left:20px}
.recs li{font-size:.85rem;color:var(--ink-2);line-height:1.5;margin:7px 0}
.recs li b{color:var(--ink)}

/* ============================================================
   Landing page
   ============================================================ */
.hero{margin-bottom:30px;padding-top:14px;position:relative}
.hero::before{content:"";position:absolute;top:-90px;left:-45%;width:760px;height:480px;z-index:-1;
  background:
    radial-gradient(closest-side at 42% 40%,rgba(14,111,122,.16),transparent 72%),
    radial-gradient(closest-side at 68% 30%,rgba(59,192,201,.10),transparent 70%);
  filter:blur(6px);pointer-events:none}
.hero .brand{margin-bottom:10px;gap:13px;animation:rise .5s var(--ease) both}
.hero .brand .mark svg{width:54px;height:54px}
.hero .brand .word{font-size:2.5rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);text-transform:none}
.hero .eyebrow{font-size:.8rem;letter-spacing:.14em;margin-bottom:16px;font-weight:600;
  animation:rise .5s var(--ease) .06s both}
.hero h1{font-size:2.85rem;font-weight:600;letter-spacing:-.032em;color:var(--ink);line-height:1.07;
  max-width:24ch;animation:rise .5s var(--ease) .12s both}
.hero h1 .soft{color:#7d99a0}
@supports (-webkit-background-clip:text) or (background-clip:text){
  .hero h1 .soft{background:linear-gradient(105deg,var(--accent) 20%,var(--accent-2) 55%,#57b6be 90%);
    -webkit-background-clip:text;background-clip:text;color:transparent}
}
.hero .sub{font-size:.97rem;max-width:50ch;animation:rise .5s var(--ease) .18s both}

/* signature: capnogram trace draws across the hero */
.capno-wrap{position:relative;margin:20px 0 4px;padding:6px 0;
  background:
    repeating-linear-gradient(90deg,rgba(14,111,122,.07) 0 1px,transparent 1px 36px),
    repeating-linear-gradient(0deg,rgba(14,111,122,.07) 0 1px,transparent 1px 17px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.capno{display:block;width:100%;height:56px;overflow:visible;
  animation:fade .4s ease .3s both}
.capno path{fill:none;stroke:var(--accent-2);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 3px 8px rgba(23,162,173,.35));
  stroke-dasharray:1155;stroke-dashoffset:1155;animation:draw 2.6s cubic-bezier(.4,0,.25,1) .4s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
/* live-monitor dot + readout at the end of the trace */
.capno-dot{position:absolute;right:-1px;top:calc(50% + 15px);width:8px;height:8px;border-radius:50%;
  background:var(--accent-2);opacity:0;animation:dotin .4s ease 2.9s forwards,pulse 2.2s ease 3.3s infinite}
@keyframes dotin{to{opacity:1}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(23,162,173,.45)}50%{box-shadow:0 0 0 7px rgba(23,162,173,0)}}
.capno-read{position:absolute;right:0;top:-8px;font-family:var(--mono);font-size:.62rem;font-weight:500;
  letter-spacing:.06em;color:var(--muted);opacity:0;animation:dotin .5s ease 3s forwards}
.capno-read b{color:var(--accent-dk);font-weight:600;font-size:.78rem}

/* vitals readout strip */
.vitals{display:flex;flex-wrap:wrap;gap:10px 28px;margin:18px 0 0;padding:14px 18px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);
  animation:rise .5s var(--ease) .26s both}
.vitals div{display:flex;flex-direction:column;gap:2px}
.vitals .vl{font-family:var(--mono);font-size:.58rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint)}
.vitals .vv{font-family:var(--mono);font-size:.92rem;font-weight:600;color:var(--accent-dk);letter-spacing:-.01em}

/* hero CTAs */
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;animation:rise .5s var(--ease) .3s both}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;
  font-size:.9rem;font-weight:600;text-decoration:none;letter-spacing:-.01em;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s,border-color .18s}
.btn.primary{background:linear-gradient(135deg,var(--accent-dk),var(--accent) 60%,var(--accent-2));color:#fff;
  box-shadow:0 2px 4px rgba(14,111,122,.25),0 10px 22px -10px rgba(14,111,122,.55)}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(14,111,122,.25),0 16px 30px -12px rgba(14,111,122,.6)}
.btn.ghost{background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2);box-shadow:var(--shadow-sm)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent-dk);transform:translateY(-2px)}

/* guideline-body trust strip (Stripe logo-wall equivalent) */
.trust{margin:18px 2px 0;font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.06em;
  color:var(--faint);line-height:1.9;animation:rise .5s var(--ease) .38s both}
.trust .trust-label{display:inline-block;margin-right:10px;font-weight:600;font-size:.58rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* floating install pill (appears only when the browser offers PWA install) */
.install-pill{position:fixed;right:18px;bottom:18px;z-index:30;display:flex;align-items:center;gap:10px;
  padding:10px 12px 10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:99px;
  box-shadow:var(--shadow-lg);animation:rise .4s var(--ease)}
.install-pill .ip-txt{font-size:.8rem;font-weight:600;color:var(--ink-2)}
.install-pill button{border:none;background:var(--accent);color:#fff;font-family:var(--sans);font-size:.8rem;
  font-weight:600;padding:8px 14px;border-radius:99px;cursor:pointer;transition:background .15s}
.install-pill button:hover{background:var(--accent-dk)}
.install-pill .ip-x{background:transparent;color:var(--faint);padding:6px 8px;font-size:.85rem}
.install-pill .ip-x:hover{background:transparent;color:var(--ink-2)}

/* ---------- tool search ---------- */
.search-bar{display:flex;align-items:center;gap:10px;margin:30px 0 6px;padding:4px 14px 4px 16px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:99px;box-shadow:var(--shadow-sm);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.search-bar:focus-within{border-color:var(--accent);box-shadow:var(--ring)}
.search-bar .sb-icon{flex:none;color:var(--faint)}
.search-bar:focus-within .sb-icon{color:var(--accent)}
.search-bar input{flex:1;min-width:0;border:none;background:transparent;padding:11px 0;
  font-family:var(--sans);font-size:.95rem;color:var(--ink);outline:none;box-shadow:none}
.search-bar input::placeholder{color:var(--faint)}
.search-bar input::-webkit-search-cancel-button{display:none}
.sb-clear{flex:none;border:none;background:transparent;color:var(--faint);font-size:.85rem;
  padding:6px 8px;cursor:pointer;border-radius:99px;transition:color .15s}
.sb-clear:hover{color:var(--ink-2)}
.sb-clear.hidden{display:none}
.sb-kbd{flex:none;font-family:var(--mono);font-size:.68rem;font-weight:600;color:var(--faint);
  border:1px solid var(--line-2);border-radius:6px;padding:2px 8px;background:var(--panel)}
@media (max-width:560px){.sb-kbd{display:none}}
.sb-empty{margin:26px 4px 0;font-size:.88rem;color:var(--muted)}
.sb-empty.hidden{display:none}
.sb-empty a{color:var(--accent-dk);font-weight:600;text-decoration:none}
.sb-empty a:hover{text-decoration:underline}
.tool.sb-hide{display:none}
.group-title.sb-hide,.tool-grid.sb-hide{display:none}

.group-title{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.68rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:44px 0 14px}
.group-title::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
.group-title::after{content:"";flex:1;height:1px;background:var(--line-2);margin-left:6px;opacity:.7}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:13px}
.tool{display:block;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:17px 17px 15px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);
  transition:border-color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease)}
.tool::after{content:"→";position:absolute;right:15px;bottom:12px;font-size:.85rem;color:var(--accent);
  opacity:0;transform:translateX(-5px);transition:opacity .22s var(--ease),transform .22s var(--ease)}
a.tool:hover{border-color:var(--accent);transform:translateY(-3px);
  box-shadow:0 1px 2px rgba(10,18,32,.05),0 18px 34px -16px rgba(14,111,122,.38)}
a.tool:hover::after{opacity:1;transform:none}
a.tool:active{transform:translateY(-1px)}
.tool .ticon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;
  margin-bottom:11px;border-radius:9px;background:var(--accent-soft);color:var(--accent-dk);
  transition:background .22s var(--ease),color .22s var(--ease)}
.tool .ticon svg{width:19px;height:19px}
a.tool:hover .ticon{background:var(--accent);color:#fff}
.tool h2{font-family:var(--disp);font-size:1rem;font-weight:600;letter-spacing:-.01em;margin:0 0 4px;
  display:flex;align-items:center;gap:8px;padding-right:44px}
.tool p{margin:0;font-size:.78rem;color:var(--muted);line-height:1.45}
.tool .srcline{display:block;margin-top:10px;font-family:var(--mono);font-size:.62rem;color:var(--faint);
  letter-spacing:.02em}
.tool .status{position:absolute;top:13px;right:13px;font-family:var(--mono);font-size:.58rem;font-weight:600;
  letter-spacing:.09em;padding:3px 7px;border-radius:5px;border:1px solid}
.tool .status.live{color:var(--accent-dk);border-color:#bcdadd;background:var(--accent-soft)}
.tool .status.soon{color:var(--faint);border-color:var(--line);background:var(--panel)}
.tool.pending{pointer-events:none}
.tool.pending h2,.tool.pending p{opacity:.55}

/* featured tool (verified) */
@media (min-width:561px){.tool.featured{grid-column:span 2}}
.tool.featured{background:linear-gradient(135deg,var(--surface) 55%,var(--accent-soft))}

/* ---------- about / features section ---------- */
.about{margin-top:84px}
.sec-title{font-family:var(--disp);font-size:1.75rem;font-weight:600;letter-spacing:-.025em;margin:0 0 20px;color:var(--ink)}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:13px}
.feat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 18px;box-shadow:var(--shadow-sm)}
.feat .ficon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:10px;background:var(--accent-soft);color:var(--accent-dk);margin-bottom:12px}
.feat .ficon svg{width:19px;height:19px}
.feat h3{font-family:var(--disp);font-size:.98rem;font-weight:600;margin:0 0 6px;letter-spacing:-.01em}
.feat p{margin:0;font-size:.82rem;color:var(--muted);line-height:1.55}

/* ---------- install CTA ---------- */
.install{margin-top:48px;padding:34px 30px;border-radius:20px;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--accent-dk),var(--accent) 55%,var(--accent-2));
  box-shadow:0 2px 4px rgba(14,111,122,.2),0 24px 48px -20px rgba(14,111,122,.5)}
.install::before{content:"";position:absolute;inset:0;opacity:.15;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.5) 0 1px,transparent 1px 36px),
             repeating-linear-gradient(0deg,rgba(255,255,255,.5) 0 1px,transparent 1px 17px)}
.install h2{font-family:var(--disp);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;margin:0 0 6px;position:relative}
.install p{margin:0 0 18px;font-size:.9rem;opacity:.9;position:relative}
.install-steps{display:flex;flex-wrap:wrap;gap:10px;position:relative}
.istep{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:12px;
  padding:12px 16px;font-size:.84rem;line-height:1.5;backdrop-filter:blur(4px)}
.istep .ios{display:block;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;opacity:.75;margin-bottom:4px}
.istep b{font-weight:700}

/* ---------- site footer ---------- */
.site-footer{margin-top:70px;border-top:1px solid var(--line-2);background:var(--panel)}
.sf-in{max-width:820px;margin:0 auto;padding:42px 20px 30px;display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;gap:26px}
.sf-brand p{margin:12px 0 0;font-size:.78rem;color:var(--muted);line-height:1.6;max-width:24ch}
.sf-col h4{margin:0 0 10px;font-family:var(--mono);font-size:.62rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}
.sf-col h4.sf-gap{margin-top:20px}
.sf-col a{display:block;font-size:.8rem;font-weight:500;color:var(--ink-2);text-decoration:none;
  padding:3.5px 0;transition:color .15s}
.sf-col a:hover{color:var(--accent-dk)}
.sf-bottom{max-width:820px;margin:0 auto;padding:16px 20px 30px;border-top:1px solid var(--line);
  font-size:.72rem;color:var(--faint);line-height:1.6}
.sf-bottom p{margin:4px 0}
.sf-bottom a{color:var(--muted);font-weight:600;text-decoration:none}
.sf-bottom a:hover{color:var(--accent-dk)}

/* scroll reveal (class added by app.js; no-JS = visible) */
.reveal{opacity:0;transform:translateY(14px);
  transition:opacity .5s var(--ease),transform .5s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ============================================================
   Calculator components (LA dose etc.)
   ============================================================ */
.drug-row{display:grid;grid-template-columns:1.4fr .9fr .9fr auto;gap:8px;align-items:end;
  padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;
  animation:rise .2s ease}
.drug-row .fld label{display:block;font-family:var(--mono);font-size:.6rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.08em;color:var(--muted);margin-bottom:5px}
.drug-row select,.drug-row input{padding:9px 10px;font-size:.9rem;border-radius:8px}
.drug-row select{padding-right:30px;background-position:right 9px center}
.row-del{width:34px;height:38px;border:1px solid var(--line-2);background:var(--surface);border-radius:8px;
  color:var(--faint);cursor:pointer;font-size:1rem;line-height:1;transition:all .15s}
.row-del:hover{color:var(--warn);border-color:var(--warn-line)}
.row-result{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--mono);font-size:.76rem;color:var(--muted);padding-top:2px}
.row-result b{color:var(--ink-2);font-weight:600}
.add-row{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;background:transparent;
  border:1px dashed var(--line-2);border-radius:var(--r-sm);font-family:var(--sans);font-size:.84rem;font-weight:600;
  color:var(--muted);cursor:pointer;transition:all .15s;width:100%;justify-content:center}
.add-row:hover{border-color:var(--accent);color:var(--accent-dk)}

/* stat cards (weight tool) */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin-bottom:6px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 13px}
.stat .lab{font-family:var(--mono);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);margin-bottom:6px}
.stat .val{font-family:var(--mono);font-size:1.35rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1}
.stat .val small{font-size:.72rem;color:var(--muted);font-weight:500;margin-left:2px}
.stat.hi{border-color:#bcdadd;background:var(--accent-soft)} .stat.hi .val{color:var(--accent-dk)}
.stat .sub2{font-size:.68rem;color:var(--faint);margin-top:3px}
.dose-group{margin-top:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}
.dose-group .dg-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 14px;
  background:var(--panel);border-bottom:1px solid var(--line)}
.dose-group .dg-head .t{font-family:var(--mono);font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}
.dose-group .dg-head .kg{font-family:var(--mono);font-size:1.05rem;font-weight:600;color:var(--accent-dk)}
.dose-group ul{margin:0;padding:10px 14px;list-style:none}
.dose-group li{font-size:.9rem;color:var(--ink-2);padding:3px 0}

/* gauge */
.gauge-wrap{margin-top:4px}
.gauge-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.gauge-head .glabel{font-family:var(--mono);font-size:.68rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)}
.gauge-head .gval{font-family:var(--mono);font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.gauge-head .gval small{font-size:.8rem;color:var(--muted);font-weight:500}
.gauge{height:10px;background:#e4e9ef;border-radius:6px;overflow:hidden;position:relative}
.gauge .fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-2));
  transition:width .3s var(--ease),background .25s}
.gauge .mark80{position:absolute;left:80%;top:-2px;bottom:-2px;width:1.5px;background:var(--faint);opacity:.55}
.gauge-wrap.ok .gval{color:var(--accent-dk)}
.gauge-wrap.near .gval{color:var(--amber)} .gauge-wrap.near .fill{background:#c9841a}
.gauge-wrap.over .gval{color:var(--warn)} .gauge-wrap.over .fill{background:var(--warn)}
.gauge-note{margin-top:7px;font-size:.76rem;color:var(--muted)}
.gauge-note.over{color:var(--warn);font-weight:600}

/* risk checkboxes */
.chk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.chk{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;background:var(--surface);
  border:1px solid var(--line-2);border-radius:var(--r-sm);cursor:pointer;transition:border-color .15s,box-shadow .15s;
  font-size:.84rem;color:var(--ink-2);line-height:1.35}
.chk:hover{border-color:#bfc9d6;box-shadow:var(--shadow-sm)}
.chk input{margin:2px 0 0;accent-color:var(--accent);flex:none}
.chk.on{border-color:var(--accent);background:var(--accent-soft)}

/* ============================================================
   Dark mode — "theatre mode". Default is light; toggled manually
   (button injected by app.js), persisted in localStorage.
   ============================================================ */
html[data-theme="dark"]{
  --bg:#0c1219; --panel:#111a24; --surface:#16202c;
  --ink:#e9eef4; --ink-2:#c4ced9; --muted:#8fa0b0; --faint:#65768b;
  --line:#22303f; --line-2:#2e3e51;
  --accent:#2ea8b4; --accent-dk:#8fd9df; --accent-soft:#123239;
  --accent-2:#3bc0c9; --accent-3:#57d3db;
  --pos:#52cf98; --pos-soft:#11301f;
  --warn:#e98a75; --warn-soft:#341f1a; --warn-line:#553228;
  --amber:#e3b360; --amber-soft:#2e2412; --amber-line:#544320;
  --ring:0 0 0 3px rgba(59,192,201,.25);
  --shadow-sm:0 1px 2px rgba(0,0,0,.35),0 1px 1px rgba(0,0,0,.25);
  --shadow-md:0 1px 2px rgba(0,0,0,.35),0 8px 24px -12px rgba(0,0,0,.55);
  --shadow-lg:0 2px 4px rgba(0,0,0,.4),0 24px 48px -24px rgba(0,0,0,.65)}
html[data-theme="dark"] body{background-image:linear-gradient(180deg,#0e1621 0%,var(--bg) 340px)}
html[data-theme="dark"] .topbar{background:rgba(15,23,32,.82)}
html[data-theme="dark"] .seg{background:#0d151f}
html[data-theme="dark"] .gauge{background:#22303f}
html[data-theme="dark"] .tag.t1{color:#7db8e0;border-color:#27455e;background:#14212e}
html[data-theme="dark"] .tag.t2{color:#b39ce8;border-color:#3d3159;background:#1e1930}
html[data-theme="dark"] .tag.tn{border-color:#1f4a37}
html[data-theme="dark"] .stat.hi,html[data-theme="dark"] .tool .status.live{border-color:#1f4a37}
html[data-theme="dark"] .block li.opt .lbl{border-color:#1f4a52}
html[data-theme="dark"] .btn.primary,
html[data-theme="dark"] .install{background:linear-gradient(135deg,#0a565f,#0e6f7a 55%,#17a2ad)}
html[data-theme="dark"] .hero h1 .soft{color:#5f8b93}
html[data-theme="dark"] select:hover,html[data-theme="dark"] input:hover{border-color:#3c4f66}
html[data-theme="dark"] .seg button.on,
html[data-theme="dark"] .tab-strip button.on{box-shadow:0 1px 3px rgba(0,0,0,.5)}

/* theme switch — two-state Light/Dark pill (injected by app.js) */
.mode-switch{display:inline-flex;flex:none;gap:2px;padding:3px;margin-left:12px;
  background:var(--panel);border:1px solid var(--line-2);border-radius:99px}
.hero .brand .mode-switch{margin-left:14px}
.mode-switch button{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:none;border-radius:99px;
  background:transparent;font-family:var(--sans);font-size:.72rem;font-weight:600;color:var(--muted);cursor:pointer;
  transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease)}
.mode-switch button:hover{color:var(--ink-2)}
.mode-switch button svg{width:13px;height:13px;flex:none}
.mode-switch button.on{background:var(--surface);color:var(--accent-dk);box-shadow:0 1px 3px rgba(10,18,32,.18)}
html[data-theme="dark"] .mode-switch button.on{box-shadow:0 1px 3px rgba(0,0,0,.5)}
@media (max-width:480px){
  .mode-switch button span{display:none}
  .mode-switch button{padding:6px 9px}
}

/* ============================================================
   Status badges — DRAFT (amber, unverified) vs VERIFIED (green)
   ============================================================ */
.tool .status.draft{color:var(--amber);border-color:var(--amber-line);background:var(--amber-soft)}
.tool .status.live{color:var(--pos);border-color:#c5e3d3;background:var(--pos-soft)}
.tool .status.live::before{content:"✓ "}

/* ============================================================
   Option buttons — progressive enhancement of <select> (app.js)
   ============================================================ */
select.enhanced{display:none !important}
.optlist,.optgrid{animation:rise .22s var(--ease)}
.optlist{display:flex;flex-direction:column;gap:8px}
.optgrid{display:flex;flex-wrap:wrap;gap:8px}
.optlist button,.optgrid button{font-family:var(--sans);text-align:left;padding:11px 14px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);
  font-size:.88rem;font-weight:500;color:var(--ink-2);line-height:1.4;cursor:pointer;
  box-shadow:var(--shadow-sm);
  transition:border-color .15s var(--ease),background .15s var(--ease),color .15s var(--ease)}
.optgrid button{flex:1 1 auto;min-width:104px;text-align:center;padding:10px 12px}
.optlist button:hover,.optgrid button:hover{border-color:#bfc9d6;color:var(--ink)}
html[data-theme="dark"] .optlist button:hover,html[data-theme="dark"] .optgrid button:hover{border-color:#3c4f66}
.optlist button.on,.optgrid button.on{border-color:var(--accent);background:var(--accent-soft);
  color:var(--accent-dk);font-weight:600;box-shadow:var(--ring)}

/* ============================================================
   Sticky verdict bar (injected by app.js on tool pages)
   ============================================================ */
.verdict-bar{position:fixed;left:50%;bottom:14px;z-index:35;transform:translate(-50%,150%);opacity:0;
  display:flex;align-items:center;gap:10px;max-width:min(92vw,600px);padding:11px 18px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:99px;box-shadow:var(--shadow-lg);
  font-family:var(--sans);cursor:pointer;
  transition:transform .3s var(--ease),opacity .3s var(--ease)}
.verdict-bar.show{transform:translate(-50%,0);opacity:1}
.verdict-bar .vb-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft)}
.verdict-bar.nocover .vb-dot{background:var(--pos);box-shadow:0 0 0 3px var(--pos-soft)}
.verdict-bar.warn .vb-dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.verdict-bar .vb-txt{font-family:var(--disp);font-size:.88rem;font-weight:600;letter-spacing:-.01em;
  color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.verdict-bar svg{flex:none;color:var(--muted)}

/* ============================================================
   "Behind this tool" tabs
   ============================================================ */
.behind{margin-top:30px}
.tabs{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);
  box-shadow:var(--shadow-sm);overflow:hidden}
.tab-strip{display:flex;gap:3px;padding:6px;background:var(--panel);border-bottom:1px solid var(--line)}
.tab-strip button{flex:1;padding:9px 8px;border:none;background:transparent;border-radius:8px;
  font-family:var(--sans);font-size:.79rem;font-weight:600;color:var(--muted);cursor:pointer;
  transition:all .18s var(--ease)}
.tab-strip button:hover{color:var(--ink-2)}
.tab-strip button.on{background:var(--surface);color:var(--accent-dk);box-shadow:0 1px 3px rgba(10,18,32,.14)}
.tabpanel{display:none;padding:17px 19px;font-size:.85rem;color:var(--ink-2);line-height:1.6}
.tabpanel.on{display:block;animation:rise .25s var(--ease)}
.tabpanel p{margin:0 0 10px}
.tabpanel p:last-child{margin-bottom:0}
.tabpanel ul,.tabpanel ol{margin:0;padding-left:20px}
.tabpanel li{margin:7px 0}
.tabpanel b{color:var(--ink)}
.tabpanel .tp-src{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);
  font-size:.76rem;color:var(--faint);line-height:1.6}

/* ---------- accessibility & motion ---------- */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-delay:0ms !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .capno path{stroke-dashoffset:0}
  .reveal{opacity:1;transform:none}
}

@media (max-width:700px){
  .sf-in{grid-template-columns:1fr 1fr;padding:34px 20px 22px}
  .sf-brand{grid-column:1/-1}
}
@media (max-width:560px){
  .drug-row{grid-template-columns:1fr 1fr;padding:12px}
  .drug-row .fld.f-drug{grid-column:1/-1}
  .row-del{width:100%}
  .chk-grid{grid-template-columns:1fr}
}
@media (max-width:440px){
  h1{font-size:1.72rem}
  .hero h1{font-size:1.95rem}
  .hero .brand .mark svg{width:44px;height:44px}
  .hero .brand .word{font-size:2rem}
  .hero .eyebrow{font-size:.72rem}
  .backlink{position:static;margin-bottom:18px}
  .vitals{gap:10px 20px;padding:12px 14px}
  .card{padding:6px 16px 18px}
  .answer{padding:20px 16px 18px}
  .row2{flex-direction:column;gap:14px}
}

/* ---------- nav overview (tap the logo for a jump menu) ---------- */
.topbar .tb-brand{cursor:pointer}
.nav-caret{display:inline-flex;align-items:center;margin-left:2px;color:var(--muted);transition:transform .2s var(--ease)}
.nav-ov{position:fixed;inset:0;z-index:60;background:rgba(12,20,30,.44);
  opacity:0;transition:opacity .22s var(--ease);
  display:flex;align-items:flex-start;justify-content:center}
.nav-ov[hidden]{display:none}          /* the hidden attr must win over display:flex, or the invisible overlay eats every click */
.nav-ov:not(.show){pointer-events:none} /* belt-and-braces: never intercept clicks unless fully open */
.nav-ov.show{pointer-events:auto}
@supports (backdrop-filter:blur(2px)){.nav-ov:not([hidden]){backdrop-filter:blur(3px)}}
.nav-ov.show{opacity:1}
.nav-sheet{width:100%;max-width:560px;max-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;
  background:var(--surface);border:1px solid var(--line);border-top:none;
  border-radius:0 0 18px 18px;box-shadow:var(--shadow-lg);
  transform:translateY(-16px);transition:transform .26s var(--ease);
  padding:0 16px 22px}
.nav-ov.show .nav-sheet{transform:none}
.nav-top{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:1;
  background:var(--surface);padding:14px 0 12px;border-bottom:1px solid var(--line)}
.nav-home{flex:1;display:inline-flex;align-items:center;gap:9px;font-family:var(--disp);
  font-weight:600;font-size:1rem;color:var(--ink);text-decoration:none}
.nav-home svg{color:var(--accent);flex:none}
.nav-home.cur{color:var(--accent-dk)}
.nav-x{width:36px;height:36px;flex:none;border:1px solid var(--line-2);background:var(--surface);
  border-radius:10px;color:var(--muted);font-size:1.05rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:color .14s,border-color .14s}
.nav-x:hover{color:var(--warn);border-color:var(--warn-line)}
.nav-groups{display:flex;flex-direction:column;gap:15px;margin-top:15px}
.nav-grp-t{font-family:var(--mono);font-size:.62rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.09em;color:var(--muted);margin-bottom:8px}
.nav-link{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:11px;
  border:1px solid var(--line);background:var(--panel);text-decoration:none;color:var(--ink-2);
  font-size:.92rem;font-weight:500;margin-bottom:7px;transition:border-color .14s,background .14s,color .14s}
.nav-link:last-child{margin-bottom:0}
.nav-link:hover{border-color:var(--accent);color:var(--ink)}
.nav-link.cur{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dk);font-weight:600}
.nav-link .nl-t{flex:1}
.nav-badge{font-family:var(--mono);font-size:.55rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;color:var(--pos);background:var(--pos-soft);border:1px solid #c5e3d3;
  padding:2px 7px;border-radius:99px;flex:none}
.nav-here{font-family:var(--mono);font-size:.55rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;color:var(--accent-dk);flex:none}
html[data-theme="dark"] .nav-badge{border-color:#1f4a37}
html[data-theme="dark"] .nav-ov{background:rgba(0,0,0,.55)}
@media (prefers-reduced-motion:reduce){
  .nav-ov,.nav-sheet{transition:none}
}
