/* Boots Online Doctor · Competitor Intelligence — client portal stylesheet.
   One theme (Boots-led, light). A page is a head (title · scope · one Updated pill) and then
   its content; no verdict strip, KPI row or provenance footer. Phones (≤768 px) follow the AG Strata
   standard: a bottom tab bar, stream pages and provider profiles as bottom sheets, no table
   scrolling sideways; desktop ≥769 px is unchanged by the mobile block. */

:root{
  --bg:#EBEEF2;--surface:#fff;--surface-2:#F4F6F9;--ink:#05054B;--ink-soft:#3a3f66;--muted:#6a7080;--faint:#9AA1B1;
  --border:#E4E7EC;--border-soft:#EEF1F5;--brand:#05054B;--header-bg:#05054B;--brand-ink:#fff;
  --action:#0067B2;--accent:#0067B2;--accent-2:#34BE97;--nav-active-bg:#05054B;--nav-active-ink:#fff;--chip:#EEF1F6;
  --crit:#CA022C;--high:#C87A0A;--med:#0067B2;--low:#8A93A6;--good:#2E9E6B;
  --font-display:'Poppins',sans-serif;--font-ui:'Poppins',system-ui,sans-serif;--display-wght:600;
  --radius:9px;--shadow:0 1px 2px rgba(10,15,40,.04),0 8px 26px rgba(10,15,40,.06);
  /* Strata token aliases (AGIApps/style-mobile.md): the sheet kit below is pasted verbatim against these */
  --card:var(--surface);--line:var(--border);--line-2:var(--border-soft);--muted-2:var(--faint);--blue:var(--action);
  --grip:#D4DADE;--overlay:rgba(5,5,75,.46);--r-ctl:8px;--r-card:12px;--r-sheet:18px;--r-pill:999px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{color-scheme:light}
body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}
button{font:inherit;color:inherit}
a{color:var(--action)}
.num,td,.val,.pr,.tabular{font-variant-numeric:tabular-nums}
::selection{background:var(--accent);color:#fff}
[hidden]{display:none!important}

/* ===== shell ===== */
.app{min-height:100vh;display:flex;flex-direction:column;background:var(--surface)}
.topbar{display:flex;align-items:center;gap:20px;padding:16px 26px;background:var(--header-bg);color:var(--brand-ink)}
.brandlock{display:flex;align-items:center;gap:14px}
.boots-mark{font-family:'Great Vibes',cursive;font-size:34px;line-height:1;color:var(--brand-ink);position:relative;top:2px}
.brandlock .divider{width:1px;height:30px;background:rgba(255,255,255,.22)}
.brandlock .prod{display:flex;flex-direction:column;gap:2px}
.brandlock .prod .p1{font-size:13px;font-weight:600;letter-spacing:.02em}
.brandlock .prod .p2{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;opacity:.62}
.agi-logo{height:21px;width:auto;display:block}

.subbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 26px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}
.compswitch{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.compswitch button{font-family:var(--font-ui);font-size:12.5px;padding:6px 13px;border-radius:100px;border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);cursor:pointer;transition:.18s;display:flex;align-items:center;gap:7px}
.compswitch button.soon{opacity:.5;border-style:dashed;color:var(--muted);cursor:default;background:transparent}
.compswitch button.soon:hover{border-color:var(--border)}
.compswitch button.soon .soontag{font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-2);color:var(--muted);padding:2px 5px;border-radius:100px;margin-left:2px;border:1px solid var(--border)}
.compswitch button.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.compswitch button:not(.on):not(.soon):hover{border-color:var(--action)}
.compswitch .market{font-weight:600}
.compswitch .market svg{width:13px;height:13px}
.compswitch .sep{width:1px;height:20px;background:var(--border);margin:0 3px}
.runmeta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:14px}
.runmeta .dot{width:7px;height:7px;border-radius:50%;background:var(--good);display:inline-block;margin-right:6px}

.body{display:grid;grid-template-columns:224px 1fr;min-height:0;flex:1}
.nav{background:var(--surface-2);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column}
.nav .sec{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:6px 12px;margin-top:6px}
.nav .ctxlabel{font-family:var(--font-display);font-weight:var(--display-wght);font-size:16px;color:var(--ink);padding:2px 12px 12px;display:flex;align-items:center;gap:8px}
.nav button.nb{display:flex;align-items:center;gap:11px;width:100%;text-align:left;font-size:13.5px;color:var(--ink-soft);background:none;border:none;padding:10px 12px;border-radius:8px;cursor:pointer;transition:.16s}
.nav button.nb .ic{width:16px;height:16px;flex-shrink:0;opacity:.75}
.nav button.nb .badge{margin-left:auto;font-size:10px;font-weight:600;background:var(--action);color:#fff;border-radius:100px;padding:1px 7px}
.nav button.nb .badge.stale{background:var(--high)}
.nav button.nb.on{background:var(--nav-active-bg);color:var(--nav-active-ink)}
.nav button.nb.on .ic{opacity:1}
.nav button.nb:not(.on):hover{background:var(--chip)}
.nav .navfoot{margin-top:auto;padding:14px 12px 4px;font-size:10.5px;color:var(--muted);line-height:1.6;border-top:1px solid var(--border)}
.nav .navfoot b{color:var(--ink-soft);font-weight:600}

.main{padding:26px 30px 40px;overflow:hidden;min-width:0}
.body.home{grid-template-columns:1fr}
.body.home .nav{display:none}
.body.home #hub{max-width:1080px;margin:0 auto}
.view{display:none;animation:fade .34s ease}
.view.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.view{animation:none}}

.pagefoot{display:flex;align-items:center;justify-content:center;gap:9px;padding:20px 26px 26px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);background:var(--surface);border-top:1px solid var(--border)}
.pagefoot img{height:17px;filter:invert(1) brightness(.35)}

/* ===== page head ===== */
.vhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.vhead h1{font-family:var(--font-display);font-weight:var(--display-wght);font-size:31px;letter-spacing:-.01em;line-height:1.05;text-wrap:balance}
.vhead .vsub{font-size:13px;color:var(--muted);margin-top:5px;max-width:64ch;line-height:1.5}
.vhead .vsub b{color:var(--ink-soft);font-weight:600}
.pillrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pill{font-size:11px;padding:6px 12px;border-radius:100px;background:var(--chip);color:var(--ink-soft);font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.pill .prov{margin:0}

/* the week's verdict: one line in the head, jumps to Recent changes */
.week{display:flex;gap:12px;align-items:center;margin:0 0 22px;padding:11px 16px;min-height:44px;border-radius:10px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--action);cursor:pointer;transition:.15s}
.week:hover{border-color:var(--action);background:var(--surface-2)}
.week .k{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--action);white-space:nowrap}
.week .h{flex:1;font-size:13.5px;font-weight:500;line-height:1.35;color:var(--ink)}
.week .h small{font-weight:400;color:var(--muted)}
.week .ar{color:var(--action);font-weight:600;font-size:11.5px;white-space:nowrap}

/* ===== the two bands ===== */
.band{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:30px 0 14px;padding-bottom:9px;border-bottom:1px solid var(--border)}
.band:first-child{margin-top:0}
.band .bk{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.band .bt{font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin-top:3px;line-height:1.2}
.band .ba{font-size:11px;color:var(--muted);text-align:right;line-height:1.45;max-width:46ch}
.band.changed .bk{color:var(--action)}
.sub{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:10.5px;font-weight:700;color:var(--muted);margin:18px 0 4px;text-transform:uppercase;letter-spacing:.08em}
.sub span{font-weight:500;text-transform:none;letter-spacing:0}
.stitle{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:22px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.stitle .ssub{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}
.stitle .ssub.push{margin-left:auto;font-weight:600;color:var(--ink-soft)}
.stitle.sev-high{border-left:3px solid var(--high);padding-left:10px}
.stitle.sev-medium{border-left:3px solid var(--med);padding-left:10px}
.stitle.sev-low{border-left:3px solid var(--low);padding-left:10px}
.stitle.sev-critical{border-left:3px solid var(--crit);padding-left:10px}

/* provenance markers: ● live this run · ■ fact base (page + date) · ○ third party, unconfirmed */
.prov{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle;position:relative;top:-1px;flex:none}
.prov.live{background:#1E8449;box-shadow:0 0 0 2px rgba(30,132,73,.15)}
.prov.base{background:#fff;border:1.6px solid #B7770A}
.prov.ref{background:#fff;border:1.6px solid #9AA3B2}
.prov.fact{background:var(--brand);border-radius:2px}
.prov.stale{background:#fff;border:1.6px solid var(--high)}
.provlegend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px}
.provlegend .k{display:inline-flex;align-items:center;gap:6px}
.provlegend .prov{margin:0}

/* the model-written paragraph: the profile (fact base) or a per-run insight */
/* Full width, like every other block on the page. It was held to an 82ch measure for
   readability (session 11), which was right when the box sat among other prose — but every
   card, band, quiet box and change row is the page's full width, so the AI box was the one
   element that did not line up, and a lone short block reads as misalignment rather than as
   a considered measure. The paragraphs inside are capped at three sentences and ~70 words,
   so they run two or three lines at this width; a long measure only bites long text. */
.aibox{position:relative;background:linear-gradient(180deg,rgba(0,103,178,.055),rgba(0,103,178,.015));border:1px solid rgba(0,103,178,.22);border-radius:var(--radius);padding:14px 18px 14px 44px;margin:0 0 16px}
.aibox svg{position:absolute;left:15px;top:15px;width:18px;height:18px;color:var(--accent)}
.aibox .ail{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:5px}
.aibox .ait{font-size:13.5px;line-height:1.62;color:var(--ink)}
.aibox.mini{padding:11px 16px 11px 40px;margin:0 0 12px}
.aibox.mini svg{top:12px;left:14px;width:16px;height:16px}
.aibox.mini .ait{font-size:12.5px;line-height:1.55}

/* ===== cards ===== */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}
.card.flush{padding:0;overflow:hidden}
.card .k{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.card .t{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin-top:6px}
.cardfoot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);background:var(--surface-2);padding:13px 20px}
.cardfoot .lab{font-size:12.5px;flex:1;min-width:160px;color:var(--muted)}
.cardfoot .lab b{color:var(--ink);font-weight:600}
.cardfoot .lab small{display:block;color:var(--muted);font-size:11.5px}
.btn{font-size:12.5px;font-weight:600;border-radius:8px;padding:9px 15px;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:7px;min-height:38px}
.btn:hover{border-color:#c3ccd6}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.notice{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--high);border-radius:var(--radius);padding:13px 16px;font-size:13px;color:var(--ink-soft);line-height:1.55;margin-bottom:14px}
.notice b{color:var(--ink);font-weight:600}
.quiet{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:16px 18px;font-size:13px;color:var(--ink-soft);line-height:1.55}
.quiet b{color:var(--ink);font-weight:600;display:block;margin-bottom:3px}
.ghost{font-size:12.5px;color:var(--muted);font-style:italic;padding:12px 0}
.more{display:inline-flex;align-items:center;min-height:40px;font-size:12.5px;font-weight:600;color:var(--action);cursor:pointer}
.more:hover{text-decoration:underline}
.foot{font-size:11px;color:var(--muted);line-height:1.65;margin-top:26px;padding-top:12px;border-top:1px solid var(--border);display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center}
.foot a{text-decoration:none;font-weight:600}

/* theme cards: one number + this week's badge per stream; tap opens the stream (nav on desktop, sheet on phones) */
.themes{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 0 6px}
.tcard{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:13px 15px 12px;cursor:pointer;min-height:44px;transition:.15s;display:flex;flex-direction:column}
.tcard:hover{border-color:var(--action);box-shadow:var(--shadow)}
.tcard:active{transform:scale(.99)}
.tcard .tk{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tcard .tv{font-size:21px;font-weight:600;letter-spacing:-.015em;margin-top:6px;line-height:1.1;color:var(--ink)}
.tcard .tv small{font-size:11px;font-weight:500;color:var(--muted)}
.tcard .tl{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.35}
.tcard .tb{display:inline-block;align-self:flex-start;margin-top:9px;font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--muted);white-space:nowrap}
.tcard .tb.has{background:rgba(0,103,178,.1);color:var(--action)}
.tcard .tb.stale{background:rgba(200,122,10,.12);color:var(--high)}
.tcard .chev{position:absolute;right:12px;top:12px;color:var(--faint);font-weight:600;font-size:13px}

/* fact-base cards */
.fb-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fb-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px;display:flex;flex-direction:column;gap:8px}
.fb-card.wide{grid-column:1/-1}
.fb-k{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.fb-t{font-size:13px;line-height:1.55;color:var(--ink-soft)}
.fb-q{font-size:15.5px;font-weight:500;line-height:1.4;color:var(--ink)}
.fb-list{margin:0;padding-left:16px;font-size:13px;line-height:1.5;color:var(--ink-soft)}
.fb-list li{margin:3px 0}
.fb-list .d{color:var(--muted);font-size:11.5px;margin-right:6px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fb-list a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--border)}
.fb-chips{display:flex;flex-wrap:wrap;gap:6px}
.fb-chip{font-size:12px;padding:4px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--ink)}
.fb-src{margin-top:auto;font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fb-src a{color:var(--action);text-decoration:none}
.fb-src a:hover{text-decoration:underline}

/* change rows (Recent changes band, timeline): severity · stream · date · text · before → after */
.runhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;font-weight:600;color:var(--ink);padding:10px 0 6px;border-bottom:1px solid var(--border);margin-top:14px}
.runhead:first-child{margin-top:0}
.runhead span{font-size:11px;font-weight:400;color:var(--muted)}
.runhead.quietrun{font-weight:500;color:var(--muted);border-bottom-color:var(--border-soft)}
.chg{display:grid;grid-template-columns:64px 86px 1fr;gap:6px 12px;padding:10px 0;border-bottom:1px solid var(--border-soft);align-items:start;font-size:12.5px}
.chg:last-child{border-bottom:none}
/* Each change is a card, and the card carries the finding in one line. The before-and-after
   and the "for Boots" read that used to sit under every row are behind it now: a week of
   changes was a wall of text in which no single change looked more important than any other. */
.chg.tlcard{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:11px 14px;margin-bottom:8px}
.chg.tlcard:last-child{border-bottom:1px solid var(--border)}
.chg.opens{cursor:pointer;transition:border-color .15s,box-shadow .15s}
.chg.opens:hover{border-color:var(--action);box-shadow:0 2px 10px rgba(15,20,26,.06)}
.chg.opens:focus-visible{outline:2px solid var(--action);outline-offset:2px}
.chg .chgb{display:flex;align-items:baseline;justify-content:space-between;gap:14px;min-width:0}
.chg .chgb .tx{min-width:0}
.chg .chgx{flex:0 0 auto;font-size:11px;font-weight:600;color:var(--action);white-space:nowrap;opacity:.75}
.chg.opens:hover .chgx{opacity:1}
/* the modal's own key line: how big, who, what kind, when */
/* The change modal is the profile modal's shape: hero, strip, sections. Only the split test's
   probe record needs anything of its own — it is borrowed from the Pricing page's card and
   the section around it is already the container. */
.chgm-ab .abt{margin-top:0}
.chgm-ab .tbl.ab{margin-top:12px}
/* two links sit side by side in the footer, not stacked */
.sheet.pm .pm-foot{display:flex;gap:18px;flex-wrap:wrap}
.chg .sev{font-size:9px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:3px 0;border-radius:5px;text-align:center;background:rgba(138,147,166,.14);color:var(--low);margin-top:1px}
.chg .sev.critical{background:rgba(202,2,44,.1);color:var(--crit)}.chg .sev.high{background:rgba(200,122,10,.13);color:var(--high)}.chg .sev.medium{background:rgba(0,103,178,.1);color:var(--med)}
.chg .st{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding-top:3px}
/* The provider column, on the timeline that covers the whole market. Reading order is how
   big · who · what kind · what happened. */
.chg.withwho{grid-template-columns:64px 92px 86px 1fr}
.chg .who{font-size:11px;font-weight:600;color:var(--ink-soft);padding-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chg .tx{color:var(--ink-soft);line-height:1.5}
.chg .tx b{color:var(--ink);font-weight:600}
.chg .ba{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.45}
.chg .ba .bf{text-decoration:line-through;text-decoration-color:rgba(202,2,44,.5)}
.chg .ba .af{color:var(--ink-soft)}
.chg .imp{margin-top:6px;font-size:12px;color:var(--ink-soft);line-height:1.5;padding-left:10px;border-left:2px solid var(--action)}
.chg .imp .t{display:inline;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--action);margin-right:6px}
.chg .imp a{font-size:11.5px;text-decoration:none;font-weight:500;margin-left:6px}

/* what it means for Boots (the brief's moves) */
.moves{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.move{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--low);border-radius:13px;padding:17px 18px}
.move.crit{border-top-color:var(--crit)}.move.high{border-top-color:var(--high)}.move.med{border-top-color:var(--med)}
.move .mv-sev{font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.move .mv-sev .mv-when{float:right;font-weight:600;letter-spacing:.04em;opacity:.75;text-transform:none}
/* the provider a card belongs to, on the one list that spans them */
.move .mv-sev .mv-who{color:var(--ink);margin-right:8px;padding-right:8px;border-right:1px solid var(--border)}
/* Home's highlights: the four ways in stay the page; this sits under them, not beside them. */
.hl-head{margin:30px 0 12px}
.hl-t{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.hl-s{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}
.moves.home .move{cursor:pointer;transition:border-color .15s,box-shadow .15s}
.moves.home .move:hover{border-color:var(--action);box-shadow:0 2px 10px rgba(15,20,26,.06)}
.move.crit .mv-sev{color:var(--crit)}.move.high .mv-sev{color:var(--high)}.move.med .mv-sev{color:var(--med)}
.move .mv-obs{font-size:14px;font-weight:600;letter-spacing:-.01em;margin:8px 0 9px;line-height:1.3}
.move .mv-imp{font-size:12.5px;color:var(--ink-soft);line-height:1.55}
.move .mv-imp .t{display:block;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--action);margin-bottom:3px}
.move .mv-src{display:inline-block;margin-top:10px;font-size:11.5px;color:var(--action);text-decoration:none;font-weight:500}

/* where Boots sits on price */
.exhibits{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
.exhibits .card h3{font-size:13px;font-weight:600;margin:0 0 14px}
.exhibits .big{font-size:27px;font-weight:600;letter-spacing:-.02em;line-height:1;margin:2px 0 8px;color:var(--ink)}
.exhibits .footn{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.5}
.bars{display:flex;flex-direction:column;gap:9px}
.bar{display:grid;grid-template-columns:180px 1fr 116px;align-items:center;gap:14px}
.bar .nm{font-size:13px;font-weight:500;text-align:right;color:var(--ink-soft);display:flex;justify-content:flex-end;align-items:center;gap:0}
.bar.you .nm{color:var(--action);font-weight:700}
.bar.hero .nm{color:var(--ink);font-weight:700}
.bar .track{height:26px;background:var(--surface-2);border-radius:6px;overflow:hidden;border:1px solid var(--border-soft)}
.bar .fill{height:100%;border-radius:6px;background:var(--low);opacity:.5;transition:width .5s ease}
.bar.hero .fill{background:var(--accent);opacity:1}
.bar.you .fill{background:var(--action);opacity:1;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.22)0,rgba(255,255,255,.22)6px,transparent 6px,transparent 12px)}
.bar.base .fill{background:repeating-linear-gradient(45deg,#c9d2e3,#c9d2e3 5px,#e6ebf5 5px,#e6ebf5 10px);opacity:1}
.bar.base .val{color:#8A6D1B}
.bar .val{font-family:var(--font-display);font-weight:var(--display-wght);font-size:15px;color:var(--ink)}
.bar.nodata .nm{color:var(--muted)}
.bar.nodata .track{background:repeating-linear-gradient(90deg,var(--surface-2),var(--surface-2) 7px,transparent 7px,transparent 14px);border-style:dashed}
.bar.nodata .val{color:var(--muted);font-size:12px;font-weight:500;font-family:var(--font-ui)}
/* A figure and, under it, what kind of figure it is: a first month, a longer plan, a period
   the provider never stated — or, for a provider with no price, whether it sells the product
   at all. The caveat beside the number is the difference between a comparison and a mistake. */
.bar .val{line-height:1.18}
.bar .val small{display:block;font-family:var(--font-ui);font-weight:500;font-size:10.5px;color:var(--muted);margin-top:2px;white-space:normal}
.bar.compact{grid-template-columns:96px 1fr 44px;gap:8px}
.bar.compact .nm{font-size:12px}.bar.compact .track{height:18px}.bar.compact .val{font-size:13px}
.coverage{margin-top:14px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}

/* Head to head: one card per comparison that cleared the bar, the finding first and the two
   figures it rests on underneath, each with the date it was read. */
.h2hs{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.h2h{display:grid;grid-template-columns:132px 1fr;gap:14px;align-items:start;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px 16px}
.h2h.live{border-left:3px solid var(--accent)}
/* inside the change modal the section is already the container, so the card loses its box */
.h2h.flat{grid-template-columns:1fr;border:0;background:none;padding:0}
/* the creatives behind an ad row: what each one says, where it points, and a link to itself */
.adxs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.adx{border:1px solid var(--border-soft);border-radius:9px;overflow:hidden;background:var(--surface-2);display:flex;flex-direction:column}
.adx-i{aspect-ratio:16/10;overflow:hidden;background:var(--surface)}
.adx-i img{width:100%;height:100%;object-fit:cover;display:block}
.adx-b{padding:9px 11px 10px;display:flex;flex-direction:column;gap:5px;flex:1}
.adx-h{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.adx-h .fmt{font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.adx-h .thm{font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--action);background:rgba(0,103,178,.09);padding:2px 6px;border-radius:4px}
.adx-t{font-size:11.5px;line-height:1.42;color:var(--ink-soft)}
.adx-f{margin-top:auto;padding-top:6px;display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:10px;color:var(--muted)}
.adx-f span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adx-f a{font-size:10.5px;font-weight:600;text-decoration:none;white-space:nowrap}
.h2h-t{font-size:9.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.h2h.live .h2h-t{color:var(--accent)}
.h2h-f{font-size:13.5px;line-height:1.55;color:var(--ink)}
.h2h-v{display:flex;align-items:stretch;gap:14px;margin-top:12px;flex-wrap:wrap}
.h2h-s{flex:1 1 160px;min-width:0;border:1px solid var(--border-soft);border-radius:8px;padding:9px 12px;background:var(--surface-2)}
.h2h-s .n{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.h2h-s .v{font-family:var(--font-display);font-weight:var(--display-wght);font-size:20px;color:var(--action);line-height:1.15;margin-top:3px}
.h2h-s.them .v{color:var(--ink)}
.h2h-s .m{font-size:10.5px;color:var(--muted);margin-top:3px;line-height:1.35}
.h2h-x{align-self:center;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
@media(max-width:820px){
  .h2h{grid-template-columns:1fr;gap:8px;padding:12px 13px}
  .h2h-v{gap:8px}
  .h2h-s{flex:1 1 100%}
  .h2h-x{align-self:flex-start}
}
.shelf-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft);font-size:11.5px;color:var(--muted);line-height:1.5}
.shelf-foot b{color:var(--ink-soft);font-weight:600}
}

.coverage b{color:var(--ink-soft)}

/* ===== tables (desktop) and their row equivalents (phones) ===== */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.tbl th{text-align:left;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:11px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--border-soft);color:var(--ink-soft)}
.tbl tr:last-child td{border-bottom:none}
.tbl td b{color:var(--ink);font-weight:600}
.tbl .num{font-family:var(--font-display);font-weight:var(--display-wght);font-size:15px;color:var(--ink)}
.tbl .src{font-size:10.5px;color:var(--muted)}
.tbl tr.you td{background:var(--surface-2)}
.tbl.profiles td{font-size:12px;line-height:1.45;vertical-align:top;color:var(--ink-soft)}
.tbl.profiles td.n{white-space:nowrap}
.tbl.profiles td.n b{cursor:pointer}
.tbl.profiles td.n b:hover{text-decoration:underline}
.tbl.profiles td .d{display:block;color:var(--muted);font-size:10.5px;margin-top:4px}
.dn{color:var(--crit);font-weight:600}.up{color:var(--good);font-weight:600}.flat{color:var(--muted)}
.rows{display:none}
.dose{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--border-soft)}
.dose:first-child{border-top:0}
.dose .d{font-size:13px;font-weight:500}
.dose .d small{display:block;font-size:10.5px;color:var(--muted);font-weight:400}
.dose .p{font-size:17px;font-weight:600;white-space:nowrap}
.dose .p small{font-size:10px;font-weight:400;color:var(--muted)}
.dose .dl{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--chip);color:var(--muted);white-space:nowrap}
.dose .dl.dn{background:rgba(202,2,44,.1);color:var(--crit)}.dose .dl.up{background:rgba(46,158,107,.12);color:var(--good)}
.prow{display:grid;grid-template-columns:1fr auto auto;gap:8px 10px;align-items:center;padding:10px 0;border-top:1px solid var(--border-soft);cursor:pointer;min-height:44px}
.prow .chev{color:var(--faint);font-weight:600}
.prow:first-child{border-top:0}
.prow .n{font-size:13px;font-weight:500;display:flex;align-items:center;gap:0}
.prow .m{font-size:11px;color:var(--muted);margin-top:1px}
.prow .e{font-size:15px;font-weight:600}
.prow .e small{font-size:10px;color:var(--muted);font-weight:500;display:block;text-align:right}

/* pricing */
.medsel,.dosesel{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
.dosesel .dl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.medsel button,.dosesel button{font-size:13px;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);cursor:pointer;transition:.16s;min-height:36px}
.medsel button.on,.dosesel button.on{background:var(--action);color:#fff;border-color:var(--action)}
.medsel button:not(.on):hover,.dosesel button:not(.on):hover{border-color:var(--action)}
.medpane{display:none}.medpane.on{display:block}
.avail-strip{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;font-size:12px;color:var(--ink-soft)}
.avail-strip .as-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.avail-strip .as-val{display:flex;align-items:center;gap:7px;font-weight:500;color:var(--ink)}
.avail-strip .as-dot{width:7px;height:7px;border-radius:50%;background:var(--good);flex-shrink:0}
.avail-strip .as-dot.no{background:var(--muted)}
.pbd{margin:10px 0 6px;padding:11px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;color:var(--ink-soft)}
.pbd:empty{display:none}
.pbd .pbd-prog{font-size:11.5px;color:var(--ink-soft);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-soft)}
.pbd .pbd-intro{color:var(--good);font-weight:500;margin-bottom:8px}
.pbd-note{font-size:11.5px;color:var(--muted);margin-top:4px;font-weight:400;line-height:1.45}
.pbd .pbd-conds{display:flex;flex-wrap:wrap;gap:5px}
/* Standing across every medication, so it sits below the panes rather than inside one, and
   wears a rule instead of a second panel: it qualifies the whole card, not the pane above it. */
.plancond{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0 4px;padding-top:12px;border-top:1px solid var(--border-soft)}
.plancond .tg{font-size:10.5px;padding:3px 9px}
.tg{font-size:11.5px;padding:5px 11px;border-radius:100px;background:var(--chip);color:var(--ink-soft)}
.pbd .pbd-conds .tg{font-size:10.5px;padding:3px 9px}

/* promotions */
.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.offer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.offer .ot{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600;display:flex;align-items:center}
.offer .ov{font-family:var(--font-display);font-weight:var(--display-wght);font-size:22px;color:var(--ink);margin:9px 0 4px}
.offer .od{font-size:12.5px;color:var(--muted);line-height:1.45}
.offer .osrc{font-size:11px;margin-top:9px}.offer .osrc a{color:var(--accent);text-decoration:none}.offer .osrc a:hover{text-decoration:underline}

/* advertising */
.adv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 12px}
.adv-stat{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);padding:15px 16px}
.adv-stat .v{font-family:var(--font-display);font-weight:var(--display-wght);font-size:29px;color:var(--accent);line-height:1}
.adv-stat .v small{font-size:14px;color:var(--muted);font-weight:500}
.adv-stat .l{font-size:11.5px;color:var(--ink-soft);margin-top:6px;line-height:1.4}
.adv-stat .l b{color:var(--ink);font-weight:600}
.adv-split{display:flex;gap:6px;margin-top:9px}
.adv-split span{font-size:10px;font-weight:600;border-radius:5px;padding:2px 7px;color:#fff}
.adv-fbar{display:flex;height:32px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.adv-fseg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden}
.adv-fseg.s0{background:var(--accent)}.adv-fseg.s1{background:#5aa0d6}.adv-fseg.s2{background:#a9cbe8;color:var(--ink)}
.adv-flab{font-size:11px;color:var(--muted);margin-top:8px}
.adv-pbody{padding:20px 22px}
.adv-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.adv-bt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:11px}
.adv-rb{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.adv-rb .nm{width:118px;flex:none;font-size:12px;text-align:right;color:var(--ink-soft)}
.adv-rb .tk{flex:1;background:var(--surface-2);border-radius:5px;height:20px;overflow:hidden}
.adv-rb .fl{height:100%;background:linear-gradient(90deg,#7fb2dd,var(--accent));border-radius:5px}
.adv-rb .ct{width:24px;flex:none;font-size:12px;font-weight:700;color:var(--ink)}
.adv-hist{display:flex;align-items:flex-end;gap:10px;height:120px;padding-top:8px}
.adv-hcol{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.adv-hcol .br{width:100%;background:linear-gradient(180deg,var(--accent-2),#7fd8bf);border-radius:5px 5px 0 0;min-height:3px}
.adv-hcol .hn{font-size:12px;font-weight:700;margin-bottom:4px;color:var(--ink)}
.adv-hcol .hl{font-size:9.5px;color:var(--muted);margin-top:6px;text-align:center;line-height:1.2}
.adv-emph{display:flex;flex-direction:column;gap:14px}
.adv-erow{display:grid;grid-template-columns:152px 1fr 108px;align-items:center;gap:12px}
.adv-erow .el{font-size:12.5px;font-weight:600;text-align:right;line-height:1.25;color:var(--ink)}
.adv-erow .el small{display:block;font-weight:400;color:var(--muted);font-size:10.5px}
.adv-ebars{display:flex;flex-direction:column;gap:5px}
.adv-eb{display:flex;align-items:center;gap:8px}
.adv-eb .ebar{height:14px;border-radius:4px}
.adv-eb.before .ebar{background:#D7DBE6}.adv-eb.after .ebar{background:var(--accent)}
.adv-eb .bl{font-size:10px;color:var(--muted);width:44px;flex:none}
.adv-eb .pct{font-size:11.5px;font-weight:700}
.adv-eb.after .pct{color:var(--accent)}
.adv-edelta{font-size:11px;font-weight:700;border-radius:100px;padding:4px 9px;text-align:center}
.adv-edelta.up{background:#FBEEDC;color:var(--high)}
.adv-edelta.down{background:#EAF6F1;color:#1c7a53}
.adv-acards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.adv-acard{border:1px solid var(--border);border-radius:var(--radius);padding:15px 16px;background:var(--surface)}
.adv-acard .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700}
.adv-acard .t{font-size:14.5px;font-weight:600;margin:4px 0 7px;color:var(--ink)}
.adv-acard .d{font-size:12.5px;color:var(--ink-soft);line-height:1.55}
.adv-caplab{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 9px}
.adv-cats{display:flex;flex-wrap:wrap;gap:7px}
.adv-cat{font-size:12px;font-weight:500;color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:100px;padding:5px 12px}
.adv-cat b{color:var(--accent);font-weight:700}
.adv-cat.core{background:rgba(0,103,178,.08);border-color:rgba(0,103,178,.25);color:var(--accent);font-weight:600}
.advprev{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:100px;padding:2px 9px}
.aud-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.aud-pad{padding:20px 22px}
.h4b{font-size:14px;font-weight:600;margin-bottom:3px}
.sub2b{font-size:11.5px;color:var(--muted);margin-bottom:14px}
.aud-pyr{display:flex;flex-direction:column;gap:6px}
.aud-prow{display:grid;grid-template-columns:1fr 54px 1fr;align-items:center;gap:8px}
.aud-pbar{height:19px;display:flex;align-items:center}
.aud-pbar.f{justify-content:flex-end}
.aud-pbar .fill{height:100%;border-radius:4px}
.aud-pbar.f .fill{background:linear-gradient(90deg,#d98cb4,#B0447E)}
.aud-pbar.m .fill{background:linear-gradient(90deg,#0067B2,#5c9bd0)}
.aud-pbar .v{font-size:10.5px;font-weight:600;color:var(--muted);padding:0 6px}
.aud-age{text-align:center;font-size:11.5px;font-weight:600;color:var(--ink)}
.aud-pyrleg{display:flex;justify-content:center;gap:20px;margin-top:12px;font-size:11.5px;color:var(--muted)}
.aud-pyrleg .k{display:flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:0;text-transform:none;font-weight:400}
.aud-pyrleg .sw{width:11px;height:11px;border-radius:3px}
.aud-split{display:flex;gap:8px;margin-top:14px}
.aud-split .sc{flex:1;text-align:center;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:9px;padding:11px}
.aud-split .sc .n{font-size:22px;font-weight:700}
.aud-split .sc.f .n{color:#B0447E}.aud-split .sc.m .n{color:#0067B2}
.aud-split .sc .l{font-size:11px;color:var(--muted)}
.aud-prm{display:flex;flex-direction:column;gap:12px}
.aud-prm .row{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:baseline}
.aud-prm .k{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:right}
.aud-prm .chips{display:flex;flex-wrap:wrap;gap:6px}
.aud-chip{font-size:12px;color:var(--ink);background:var(--surface-2);border:1px solid var(--border);border-radius:100px;padding:4px 11px}
.aud-rb{display:grid;grid-template-columns:150px 1fr 120px;align-items:center;gap:12px;margin-bottom:10px}
.aud-rb .nm{font-size:12.5px;text-align:right;color:var(--ink-soft);font-weight:500}
.aud-rb .tk{background:var(--surface-2);border-radius:6px;height:26px;overflow:hidden}
.aud-rb .fl{height:100%;background:linear-gradient(90deg,#7fb2dd,var(--accent));border-radius:6px;display:flex;align-items:center;justify-content:flex-end;padding-right:9px}
.aud-rb .fl .rn{font-size:11.5px;font-weight:700;color:#fff}
.aud-rb .sv{font-size:11.5px;color:var(--muted)}
.aud-rb .sv b{color:var(--ink);font-weight:700;font-size:13px}

/* website */
.wc-cover{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px 18px}
.wc-cover-head{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:12px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.wc-cover-head span{font-size:11.5px;font-weight:400;color:var(--muted)}
.wc-cover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:8px}
.wc-page{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--border-soft);border-radius:7px;background:var(--surface-2);min-width:0}
.wc-page.chg{border-color:rgba(200,122,10,.35);background:rgba(200,122,10,.05)}
.wc-page .pd{width:7px;height:7px;border-radius:50%;flex:none;background:var(--good)}
.wc-page .pd.no{background:var(--muted)}
.wc-page .pi{min-width:0;display:flex;flex-direction:column;gap:1px}
.wc-page .pt{font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:600}
.wc-page.chg .pt{color:var(--high)}
.wc-page .pp{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wc-cover-foot{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.5}
.bawrap{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch}
/* One-sided: a block a competitor added, or one it removed. There is no arrow to draw and
   nothing to sit opposite, so the panel takes the width. */
.bawrap.one{grid-template-columns:1fr}
.babox{border-radius:8px;padding:12px 14px;font-size:12px;line-height:1.62;color:var(--ink-soft);white-space:pre-line;border:1px solid var(--border);overflow-wrap:anywhere}
.babox.before{background:var(--surface-2)}
.babox.after{background:rgba(46,158,107,.045);border-color:rgba(46,158,107,.2)}
.balab{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:7px}
.babox.before .balab{color:var(--muted)}
.babox.after .balab{color:var(--good)}
.baarrow{align-self:center;font-size:18px;color:#c7ccd6}
.wc-pages{margin-top:16px;border-top:1px solid var(--border-soft);padding-top:12px}
.wc-plab{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:2px}
.wc-prow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--border-soft);font-size:12px}
.wc-prow:first-of-type{border-top:none}
.wc-prow .pth{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--muted);overflow-wrap:anywhere}
.wc-prow .pth b{font-family:var(--font-ui);color:var(--ink)}
.wc-prow a{color:var(--action);font-weight:600;text-decoration:none;font-size:11.5px;white-space:nowrap}

/* home */
.status{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 18px}
.hchip{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--border);padding:8px 14px;border-radius:9px}
.hchip b{color:var(--ink);font-weight:600}
.hchip .d{width:7px;height:7px;border-radius:50%;background:var(--good)}
.hub-cards{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:14px}
.hcard{border:1px solid var(--border);border-radius:12px;padding:17px 19px;background:var(--surface);cursor:pointer;transition:.15s}
.hcard:hover{border-color:var(--action);box-shadow:var(--shadow)}
.hcard .hh{font-size:14.5px;font-weight:600;display:flex;align-items:center;justify-content:space-between}
.hcard .hh .ar{color:var(--action)}
.hcard .hdd{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.45;min-height:34px}
.hcard .hn{font-size:18px;font-weight:600;margin-top:12px;color:var(--ink)}
.monthly{border:1px solid var(--border);border-left:4px solid var(--action);border-radius:12px;background:var(--surface-2);padding:22px 26px;margin-bottom:16px}
.monthly .mo-kick{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--action)}
.monthly .mo-headline{font-size:22px;font-weight:600;line-height:1.2;letter-spacing:-.015em;margin-top:8px;max-width:48ch;text-wrap:balance}
.monthly .mo-summary{font-size:13.5px;color:var(--ink-soft);line-height:1.62;margin-top:12px;max-width:94ch}
.monthly .mo-themes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:18px}
.monthly .mo-theme{background:#fff;border:1px solid var(--border);border-radius:10px;padding:13px 15px}
.monthly .mo-theme .mt{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:5px}
.monthly .mo-theme .md{font-size:11.5px;color:var(--ink-soft);line-height:1.55}
.pcs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.pc{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface);cursor:pointer;transition:.15s;min-height:44px}
.pc:hover{border-color:var(--action);box-shadow:var(--shadow)}
.pc .n{font-weight:600;font-size:13px;color:var(--ink);display:flex;align-items:center}
.pc .q{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.45}
.pc .m{font-size:10.5px;color:var(--ink-soft);margin-top:7px}

/* generated cover art: drawn from the brand palette, never a borrowed logo */
.cover{position:absolute;inset:0;width:100%;height:100%;display:block}
/* where a provider sits in the market's entry-price band: the card's image is its own number */
.bandmark{margin:2px 0 2px}
.bm-track{position:relative;height:5px;border-radius:100px;background:linear-gradient(90deg,rgba(52,190,151,.35),rgba(0,103,178,.2) 55%,rgba(202,2,44,.28))}
.bm-fill{height:100%;border-radius:100px;background:transparent}
.bm-dot{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:var(--muted);border:2px solid #fff;box-shadow:0 1px 3px rgba(10,15,40,.28);transform:translate(-50%,-50%)}
.bm-dot.you{background:var(--action)}.bm-dot.live{background:var(--brand)}
.bm-l{display:flex;justify-content:space-between;font-size:9.5px;color:var(--faint);margin-top:4px;font-variant-numeric:tabular-nums}

/* Home: editorial boxes */
.eboxes{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ebox{position:relative;display:grid;grid-template-columns:150px 1fr;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:.16s;min-height:168px}
.ebox:hover{border-color:var(--action);box-shadow:var(--shadow);transform:translateY(-1px)}
.eb-art{position:relative;overflow:hidden}
.eb-b{padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.eb-k{font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--action)}
.eb-t{font-family:var(--font-display);font-weight:var(--display-wght);font-size:19px;letter-spacing:-.015em;line-height:1.15;color:var(--ink)}
.eb-l{font-size:12.5px;color:var(--ink-soft);line-height:1.5}
.eb-f{margin-top:auto;padding-top:8px;font-size:11.5px;font-weight:600;color:var(--action);display:flex;align-items:center;gap:6px}

/* the KPI row every page carries */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0 0 16px}
.kpi{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px}
.kpi.link{cursor:pointer;transition:.15s}
.kpi.link:hover{border-color:var(--action);box-shadow:var(--shadow)}
.kpi .kl{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.kpi .kv{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.1;margin-top:6px;color:var(--ink)}
.kpi .ks{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.4}
.kpi .ka{position:absolute;top:12px;right:14px;color:var(--action);font-weight:600}

/* provider cards → the profile modal */
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:12px}
.pcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;cursor:pointer;transition:.15s;display:flex;flex-direction:column;min-height:150px}
.pcard .pc-art{position:relative;height:64px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.pcard .pc-mono{position:relative;font-family:var(--font-display);font-weight:var(--display-wght);font-size:26px;color:#fff;letter-spacing:.06em;text-shadow:0 1px 8px rgba(5,5,75,.35)}
.pcard .pc-b{padding:13px 15px 14px;display:flex;flex-direction:column;gap:7px;flex:1}
.pcard:hover{border-color:var(--action);box-shadow:var(--shadow);transform:translateY(-1px)}
.pcard .pc-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.pcard .pc-n{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:7px}
.pcard .pc-you{font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--brand);color:#fff;border-radius:100px;padding:1px 7px}
.pcard .pc-e{font-size:17px;font-weight:600;white-space:nowrap;display:flex;align-items:center}
.pcard .pc-q{font-size:12px;color:var(--ink-soft);line-height:1.45}
.pcard .pc-m{font-size:11px;color:var(--muted);line-height:1.4}
.pcard .pc-f{margin-top:auto;padding-top:9px;border-top:1px solid var(--border-soft);display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.pcard .pc-a{color:var(--action);font-weight:600;white-space:nowrap}

/* the profile modal (magazine): a hero, four figures, then the facts with their sources */
.sheet.pm .sheet-head{padding:0;border-bottom:none}
.pm-hero{position:relative;background:var(--brand);color:#fff;padding:26px 30px 22px;overflow:hidden}
.pm-hero > *:not(.cover){position:relative;z-index:1}
.pm-hero .cover{z-index:0;opacity:.9}
.pm-hero::after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(5,5,75,.35),rgba(5,5,75,.88))}
.pm-hero .sheet-x{position:absolute;top:16px;right:18px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:13px}
.pm-kick{font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.72}
.pm-title{font-family:var(--font-display);font-weight:var(--display-wght);font-size:30px;line-height:1.05;margin:9px 0 0;letter-spacing:-.02em;color:#fff}
.pm-deck{font-size:13px;opacity:.85;margin-top:8px;line-height:1.45;max-width:56ch}
.pm-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));border-bottom:1px solid var(--border);margin:0 -20px 4px;padding:0 20px}
.pm-stat{padding:16px 14px 15px 0;border-right:1px solid var(--border-soft)}
/* Every cell but the first opens straight after the rule that divides it from the one before,
   so its figure sat against the line. The first stays flush with the body's left edge, which
   is what aligns the strip with everything under it. */
.pm-stat + .pm-stat{padding-left:18px}
.pm-stat:last-child{border-right:none}
.pm-stat .v{font-family:var(--font-display);font-weight:var(--display-wght);font-size:23px;line-height:1;color:var(--ink)}
.pm-stat .l{font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.pm-stat .s{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.35}
.pm-sec{padding:16px 0;border-top:1px solid var(--border-soft)}
.pm-sk{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--action);margin-bottom:9px}
.pm-q{font-size:15px;font-weight:500;line-height:1.45;color:var(--ink)}
.pm-t{font-size:13px;line-height:1.6;color:var(--ink-soft)}
.pm-sec .fb-src{margin-top:9px}
/* Key sources: one table under the profile, so a claim is not trailed by its own line. */
.pm-srcwrap{overflow-x:auto}
.pm-srctable{width:100%;border-collapse:collapse;font-size:12px}
.pm-srctable th{text-align:left;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 12px 7px 0;border-bottom:1px solid var(--border-soft);white-space:nowrap}
.pm-srctable td{padding:8px 12px 8px 0;border-bottom:1px solid var(--border-soft);vertical-align:top;color:var(--ink-soft)}
.pm-srctable tr:last-child td{border-bottom:none}
.pm-srctable td:first-child{color:var(--ink);white-space:nowrap}
.pm-srctable a{color:var(--action);text-decoration:none;word-break:break-word}
.pm-srctable a:hover{text-decoration:underline}
.pm-srctable td:last-child{white-space:nowrap;color:var(--muted)}
.pm-many,.pm-nodate{color:var(--muted)}
.pm-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);line-height:1.55}

/* what a new patient pays */
.card.cost{margin-top:12px}
.cost-head,.cost-row{display:grid;grid-template-columns:1fr 110px 110px 110px;gap:10px;align-items:center}
.cost-head{margin-top:10px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cost-head .you,.cost-row .you{color:var(--action)}
.cost-row{padding:9px 0;border-top:1px solid var(--border-soft)}
.cost-row .cl{font-size:13px;font-weight:500}
.cost-row .cl small{display:block;font-size:11px;color:var(--muted);font-weight:400}
.cost-row .cv{font-size:17px;font-weight:600;text-align:right}
.cost-head .cv,.cost-head .cd{text-align:right}
.cost-row .cd{font-size:11.5px;color:var(--muted);text-align:right}
.offcat{margin-top:8px;border-top:1px dashed var(--border);padding-top:4px;opacity:.85}
.offcat-h{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 0 2px}
.offcat-h span{font-weight:500;text-transform:none;letter-spacing:0}
.wc-page .ptitle{font-size:11.5px;color:var(--ink);margin-top:2px;white-space:normal;line-height:1.35}
.wc-cover-grid.titled{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.wc-cover-grid.titled .wc-page{align-items:flex-start}
.wc-cover-grid.titled .wc-page .pd{margin-top:5px}

/* timeline */
.tl-none{padding:8px 0 2px;font-size:12.5px;color:var(--muted)}

/* ===== captured-library: a centred modal on desktop, a bottom sheet on phones (kit §4) ===== */
.libov{position:fixed;inset:0;background:var(--overlay);display:none;align-items:center;justify-content:center;z-index:1200;padding:24px}
.libov.on{display:flex}
.libmodal{background:#fff;border-radius:14px;width:min(1000px,100%);max-height:88vh;display:flex;flex-direction:column;box-shadow:0 30px 80px -20px rgba(8,10,40,.5);overflow:hidden}
.modal-grip{display:none}
.libhead{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.libhead h3{font-size:16px;font-weight:600}
.libprov{font-size:11px;color:var(--muted)}
.libtabs{display:flex;gap:4px;margin-left:auto;background:var(--surface-2);border-radius:100px;padding:4px}
.libtab{font-size:12px;font-weight:600;color:var(--muted);border:none;background:none;padding:6px 14px;border-radius:100px;cursor:pointer;min-height:32px}
.libtab.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.libclose{border:none;background:var(--surface-2);width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px;color:var(--muted)}
.libbody{padding:18px 20px;overflow-y:auto;min-height:0}
.libgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.libcc{border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;background:#fff}
.libthumb{height:118px;position:relative;display:flex;align-items:center;justify-content:center}
.libthumb.m{background:linear-gradient(135deg,#1877F2,#4e9bff)}
.libthumb.g{background:#eef1f5;height:184px}
.libthumb.g img{object-fit:contain}
.libthumb.g .ph{color:var(--muted)}
.libthumb .ph{display:none;color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;opacity:.92}
.libthumb.noimg .ph{display:block}
.libthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.libccb{padding:11px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.libcch{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.libcch .fmt{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--ink);border-radius:5px;padding:2px 7px}
.libcch .thm{font-size:10.5px;font-weight:600;color:var(--accent);background:rgba(0,103,178,.08);border-radius:5px;padding:2px 7px}
.libcch .age{font-size:10.5px;font-weight:600;color:#1c7a53;background:#EAF6F1;border-radius:5px;padding:2px 7px}
.libl{font-size:11px;color:var(--muted);word-break:break-all;line-height:1.35}
.libtxt{font-size:12px;color:var(--ink-soft);line-height:1.45}
.libf{margin-top:auto;padding-top:8px;border-top:1px solid var(--border-soft);display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:var(--muted)}
.libf a{color:var(--accent);text-decoration:none;font-weight:600}
.libfoot-bar{padding:13px 20px;border-top:1px solid var(--border);background:var(--surface-2);font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.libfoot-bar a{color:var(--accent);font-weight:600;text-decoration:none}
.frz{font-size:10px;font-weight:700;letter-spacing:.03em;color:#1c7a53;background:#EAF6F1;border:1px solid #BEE6D5;border-radius:100px;padding:2px 9px;margin-right:8px}
.frz.stale{color:var(--high);background:#FBF2E0;border-color:#F0DDB0}
.libtxt b{display:block;color:var(--ink);font-size:13px;margin-bottom:3px}

/* ===== chat (kept, hidden until the decision on it) ===== */
.chat-fab{position:fixed;bottom:26px;right:26px;width:56px;height:56px;border-radius:50%;background:var(--action);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(8,12,40,.3);z-index:300}
.chat-fab svg{width:25px;height:25px;fill:#fff}
.chat-panel{position:fixed;bottom:94px;right:26px;width:390px;max-height:600px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 26px 64px rgba(8,10,40,.3);display:flex;flex-direction:column;z-index:300;overflow:hidden;transform:translateY(14px) scale(.98);opacity:0;pointer-events:none;transition:.22s}
.chat-panel.open{opacity:1;transform:none;pointer-events:all}
.chat-head{background:var(--brand);color:var(--brand-ink);padding:13px 16px;display:flex;align-items:center;gap:11px}
.chat-head .agi-logo{height:18px}
.chat-head .ct{font-weight:600;font-size:13.5px}
.chat-head .cs{font-size:11px;opacity:.6}
.chat-head .chat-x{margin-left:auto;background:none;border:none;color:var(--brand-ink);font-size:21px;line-height:1;cursor:pointer;opacity:.7}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:11px}
.cmsg{max-width:87%;font-size:13.5px;line-height:1.5}
.cmsg.u{align-self:flex-end;background:var(--brand);color:var(--brand-ink);padding:9px 13px;border-radius:12px 12px 3px 12px}
.cmsg.a{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);color:var(--ink-soft);padding:11px 14px;border-radius:12px 12px 12px 3px}
.cmsg.a b{color:var(--ink);font-weight:600}
.cmsg.a .cite{font-size:10.5px;color:var(--muted);margin-top:7px}
.chat-suggest{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 12px}
.chat-suggest button{font-size:12px;padding:7px 12px;border-radius:100px;border:1px solid var(--border);background:var(--surface);color:var(--action);cursor:pointer}
.chat-inrow{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}
.chat-in{flex:1;border:1px solid var(--border);border-radius:9px;padding:9px 12px;font:inherit;font-size:13.5px;resize:none;outline:none;max-height:90px;color:var(--ink);background:var(--surface)}
.chat-send{background:var(--action);border:none;border-radius:9px;color:#fff;width:38px;height:38px;cursor:pointer;display:flex;align-items:center;justify-content:center;align-self:flex-end}
.chat-send svg{width:16px;height:16px;fill:#fff}

/* ===== Strata tab bar (style-mobile.md, multi-view navigation) — phones only ===== */
.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:1000;align-items:stretch;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,8px)}
.tab{flex:1;min-height:52px;position:relative;gap:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--muted-2);font-size:10.5px;font-weight:500}
.tab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.tab.sel{color:var(--blue);font-weight:600}
.tab .ind{position:absolute;top:0;left:22%;right:22%;height:2.5px;background:var(--blue);border-radius:0 0 2px 2px;opacity:0;transition:opacity .15s}
.tab.sel .ind{opacity:1}

/* ===== Strata sheet kit (pattern-bottom-sheets.md §2, verbatim against the alias tokens) ===== */
.sheet-scrim{position:fixed;inset:0;background:var(--overlay);opacity:0;visibility:hidden;transition:opacity .26s;z-index:1099}
.sheet-scrim.open{opacity:1;visibility:visible}
/* A closed sheet still occupies its box — .pm parks it dead centre of the viewport at
   opacity 0 — so it must stop taking clicks, or the cards beneath it go dead once the
   modal has been opened. pointer-events, not visibility, so the close animation plays. */
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-radius:var(--r-sheet) var(--r-sheet) 0 0;z-index:1100;transform:translateY(102%);transition:transform .34s cubic-bezier(.22,1,.36,1);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 -10px 40px rgba(15,20,26,.22);touch-action:none;max-width:540px;margin:0 auto;pointer-events:none}
.sheet.open{transform:translateY(0);pointer-events:auto}
.sheet.dragging{transition:none}
.sheet-grip{padding:10px 0 4px;display:flex;justify-content:center;cursor:grab;flex:0 0 auto}
.sheet-grip i{width:38px;height:5px;border-radius:var(--r-pill);background:var(--grip);display:block}
.sheet-head{padding:4px 20px 14px;border-bottom:1px solid var(--line-2);flex:0 0 auto}
.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 20px calc(26px + env(safe-area-inset-bottom,0px));flex:1;min-height:0;touch-action:pan-y}
.sheet-title{font-size:17px;font-weight:600;margin:0;letter-spacing:-.01em;line-height:1.2}
.sheet-sub{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.45}
.sheet-head .pillrow{margin-top:8px}
.sheet-head{position:relative;padding-right:56px}
.sheet-x{position:absolute;right:14px;top:2px;width:36px;height:36px;border-radius:8px;border:none;background:var(--surface-2);color:var(--muted);font-size:15px;cursor:pointer}
.sheet-body .view{display:block;animation:none}
.sheet.pm .sheet-body{padding-top:0}
.sheet-body .vhead h1{display:none}
.sheet-body .week{display:none}
/* the provider profile sheet is the card's detail on the desktop too (Lego) */
@media (min-width:769px){
  .sheet{max-width:620px;max-height:86vh}
  .sheet.pm{max-width:760px;max-height:88vh;top:50%;bottom:auto;transform:translateY(-50%) scale(.97);opacity:0;border-radius:18px;overflow:hidden;transition:opacity .2s,transform .28s cubic-bezier(.22,1,.36,1)}
  .sheet.pm.open{transform:translateY(-50%) scale(1);opacity:1}
  .sheet.pm .sheet-grip{display:none}
}
@media (prefers-reduced-motion:reduce){.sheet,.sheet-scrim,.tab .ind,.week,.tcard{transition:none}}

/* ===== phones ≤768 px (Strata): data first, chrome collapses, sheets rise ===== */
@media (max-width:768px){
  .topbar{padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;gap:12px}
  .boots-mark{font-size:27px}
  .brandlock{gap:10px}.brandlock .divider{height:22px}
  .brandlock .prod .p1{font-size:11px}.brandlock .prod .p2{font-size:9px;letter-spacing:.12em}
  .subbar{display:none}
  .body,.body.home{display:block}
  .nav{display:none}
  .main{padding:16px 16px calc(84px + env(safe-area-inset-bottom,0px))}
  .body.home #hub{max-width:none}
  .pagefoot{padding:14px 16px calc(78px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border)}
  .pagefoot img{height:16px}
  .tabbar{display:flex}

  .vhead h1{font-size:24px}
  .vhead .vsub{font-size:12.5px}
  .week{margin-bottom:14px;padding:10px 13px}
  .week .h{font-size:13px}
  .band{margin:24px 0 10px}
  .band .bt{font-size:16px}
  .band .ba{font-size:10.5px;max-width:20ch}
  .themes{grid-template-columns:1fr 1fr;gap:9px}
  .tcard.wide{grid-column:1/-1;padding-right:40px}
  .tcard.wide .chev{top:50%;transform:translateY(-50%)}
  .aibox{padding:11px 14px 11px 38px}
  .aibox svg{left:13px;top:13px;width:16px;height:16px}
  .aibox .ait{font-size:12.5px}
  .card{padding:13px 14px}
  .cardfoot{padding:12px 14px}
  .fb-grid{grid-template-columns:1fr;gap:9px}
  .fb-q{font-size:13.5px}
  .fb-t,.fb-list{font-size:12.5px}
  .moves{grid-template-columns:1fr;gap:10px}
  .exhibits{grid-template-columns:1fr}
  .bar{grid-template-columns:76px 1fr 84px;gap:8px}
  .bar .nm{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar .track{height:18px}.bar .val{font-size:13px}.bar .val small{font-size:9.5px}
  .chg{grid-template-columns:auto 1fr;gap:4px 10px}
  .chg.tlcard{padding:11px 12px}
  .chg .chgb{flex-direction:column;align-items:flex-start;gap:6px}
  .chg.withwho{grid-template-columns:auto 1fr}
  .chg .who{grid-column:2;padding-top:0;order:2;font-size:10.5px}
  .chg .st{grid-column:2;padding-top:0;order:3}
  .chg .sev{width:62px}
  .chg > div{grid-column:2}
  .tbl{display:none}
  .rows{display:block}
  .medsel,.dosesel{flex-wrap:wrap;gap:6px;margin-bottom:10px}
  .medsel button,.dosesel button{flex:0 0 auto;border-radius:999px;padding:0 12px;font-size:12.5px}
  .offers{grid-template-columns:1fr}
  .adv-stats{grid-template-columns:1fr 1fr}
  .adv-stats .adv-stat:first-child{grid-column:1/-1}
  .adv-stat .v{font-size:24px}
  .adv-pbody{padding:14px}
  .adv-pgrid{grid-template-columns:1fr;gap:18px}
  .adv-erow{grid-template-columns:1fr;gap:6px}
  .adv-erow .el{text-align:left}
  .adv-edelta{justify-self:start}
  .adv-acards{grid-template-columns:1fr}
  .aud-two{grid-template-columns:1fr}
  .aud-rb{grid-template-columns:1fr;gap:4px}
  .aud-rb .nm{text-align:left}
  .bawrap{grid-template-columns:1fr;gap:10px}
  .baarrow{transform:rotate(90deg);justify-self:center}
  .wc-cover-grid{grid-template-columns:1fr}
  .hub-cards{grid-template-columns:1fr}
  .eboxes{grid-template-columns:1fr;gap:10px}
  .ebox{grid-template-columns:96px 1fr;min-height:0}
  .eb-b{padding:13px 14px}.eb-t{font-size:16px}.eb-l{font-size:12px}
  .kpis{grid-template-columns:1fr 1fr;gap:9px}
  .kpi{padding:12px 13px}.kpi .kv{font-size:20px}
  .pcards{grid-template-columns:1fr}
  .pm-hero{padding:20px 20px 18px}.pm-title{font-size:24px}
  .pm-strip{grid-template-columns:1fr 1fr}
  .cost-head,.cost-row{grid-template-columns:1fr 70px 70px 70px;gap:6px}
  .cost-row .cv{font-size:14px}.cost-row .cd{font-size:10px}
  .monthly{padding:16px}
  .monthly .mo-headline{font-size:19px}
  .monthly .mo-themes{grid-template-columns:1fr}
  .pcs{grid-template-columns:1fr 1fr;gap:8px}
  .status{gap:7px}
  .hchip{font-size:11.5px;padding:7px 11px}
  .foot{margin-top:20px}
  .libgrid{grid-template-columns:1fr}
  /* captured library → bottom sheet (kit §4) */
  @keyframes sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .libov{align-items:flex-end;padding:0}
  .libmodal{max-width:none;width:100%;height:auto;max-height:92vh;border-radius:var(--r-sheet) var(--r-sheet) 0 0;animation:sheet-up .32s cubic-bezier(.22,1,.36,1);transition:transform .3s cubic-bezier(.22,1,.36,1);touch-action:none}
  .libmodal.dragging{transition:none}
  .modal-grip{display:flex;justify-content:center;align-items:center;padding:11px 0 5px;cursor:grab;flex:0 0 auto}
  .modal-grip i{width:38px;height:5px;border-radius:var(--r-pill);background:var(--grip);display:block}
  .libhead{padding:4px 16px 12px}
  .libbody{touch-action:pan-y}
  .chat-panel{width:calc(100vw - 32px);right:16px}
}

/* Split test (website.experiments): a live state, so it reads as a fact panel, not an alert. */
.card.ab{border-left:3px solid var(--accent)}
.abt{font-size:13px;color:var(--ink-soft);line-height:1.55;margin-top:8px;max-width:82ch}
.tbl.ab{margin-top:14px}
.tbl.ab td{vertical-align:middle}
