/* Shared across every surface. Extracted 2026-10-09; identical in all four. */
:root{
  color-scheme: light;
  --bg:#F4F6F9; --surface:#FFFFFF; --surface-2:#EDEFF3; --sunk:#E9ECF1;
  --border:#DCE1E9; --border-2:#C9CED8; --hair:rgba(9,10,13,.06);
  --text:#090A0D; --text-2:#3C4451; --muted:#6B7482; --faint:#98A1AE;
  --accent:#2276C9; --accent-fg:#FFFFFF; --accent-soft:#E4EEF9; --ring:rgba(34,118,201,.40);
  --mark-1:#C9CED8; --mark-2:#D8DCE4; --blade:#2276C9;
  --good:#17845A; --warn:#A9650D; --crit:#C7343B;
  --good-bg:#E8F6EF; --warn-bg:#FBF2E1; --crit-bg:#FCECED;
  --s1:#2276C9; --s2:#F76B15; --s3:#12A594; --s4:#8E4EC6; --s5:#E93D82; --s6:#00A2C7; --s7:#8A8F98;
  --grid:#E7EBF1; --axis:#C4CAD5;
  --lift:0 1px 2px rgba(9,10,13,.05);
  --inner:inset 0 1px 0 rgba(255,255,255,.75);
  --tipbg:#12151A; --tipfg:#EDEFF3;
  --paper:#FFFFFF;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  color-scheme: dark;
  --bg:#090A0D; --surface:#101318; --surface-2:#171B22; --sunk:#0C0F13;
  --border:#202630; --border-2:#2A2D36; --hair:rgba(237,239,243,.05);
  --text:#EDEFF3; --text-2:#B7BFCB; --muted:#828B99; --faint:#5B636F;
  --accent:#6FB6F2; --accent-fg:#090A0D; --accent-soft:#111E2C; --ring:rgba(111,182,242,.45);
  --mark-1:#2A2D36; --mark-2:#344152; --blade:#6FB6F2;
  --good:#3FB984; --warn:#E0A03A; --crit:#EC6E6E;
  --good-bg:#0E241C; --warn-bg:#241C0D; --crit-bg:#271416;
  --s1:#4596DD; --s2:#DE6C1E; --s3:#17A08F; --s4:#9A67CE; --s5:#E0518A; --s6:#1E9CBE; --s7:#6B7280;
  --grid:#181D25; --axis:#333A45;
  --lift:none; --inner:inset 0 1px 0 rgba(237,239,243,.04);
  --tipbg:#1B212A; --tipfg:#EDEFF3; --paper:#101318;
}}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#090A0D; --surface:#101318; --surface-2:#171B22; --sunk:#0C0F13;
  --border:#202630; --border-2:#2A2D36; --hair:rgba(237,239,243,.05);
  --text:#EDEFF3; --text-2:#B7BFCB; --muted:#828B99; --faint:#5B636F;
  --accent:#6FB6F2; --accent-fg:#090A0D; --accent-soft:#111E2C; --ring:rgba(111,182,242,.45);
  --mark-1:#2A2D36; --mark-2:#344152; --blade:#6FB6F2;
  --good:#3FB984; --warn:#E0A03A; --crit:#EC6E6E;
  --good-bg:#0E241C; --warn-bg:#241C0D; --crit-bg:#271416;
  --s1:#4596DD; --s2:#DE6C1E; --s3:#17A08F; --s4:#9A67CE; --s5:#E0518A; --s6:#1E9CBE; --s7:#6B7280;
  --grid:#181D25; --axis:#333A45;
  --lift:none; --inner:inset 0 1px 0 rgba(237,239,243,.04);
  --tipbg:#1B212A; --tipfg:#EDEFF3; --paper:#101318;
}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--text);margin:0;
  font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:14px;line-height:1.55;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;}
.num{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;font-size:.94em;}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px 90px;}
.wide{max-width:1360px;}

/* ---------- header ---------- */
header.top{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--bg) 84%,transparent);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);}
/* The header's content box matches `.shell` exactly, and the brand carries the same
   13px inset as a rail link, so the logo and the nav labels share a left edge. */
.top-in{max-width:1160px;margin:0 auto;padding:11px 24px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.top-in.wide{max-width:1360px;}
.brand{display:flex;align-items:center;gap:9px;margin-right:auto;min-width:0;padding-left:13px;}
@media (max-width:940px){.brand{padding-left:0;}}
.mark{width:22px;height:22px;flex:none;display:block;}
.mark .disc{fill:url(#apGrad);} .mark .blade{fill:var(--blade);}
.brand b{font-size:14px;font-weight:600;letter-spacing:-.022em;white-space:nowrap;}

/* who this report is for, and which one it is — the two facts a header should carry */
/* Both dividers in the brand are produced the same way — a border on the element
   that follows — so they are pixel-identical rather than one being a drawn element. */
.brand .who{display:flex;align-items:center;gap:0;padding-left:10px;
  border-left:1px solid var(--border);}
.brand .who em{font:600 12.5px/1 'Instrument Sans',sans-serif;font-style:normal;color:var(--text);
  letter-spacing:-.018em;white-space:nowrap;}
.brand .who .bar{display:none;}
.brand .who i{font:500 10px/1 'IBM Plex Mono',monospace;font-style:normal;color:var(--faint);
  letter-spacing:.055em;text-transform:uppercase;white-space:nowrap;
  margin-left:10px;padding-left:10px;border-left:1px solid var(--border);}
@media (max-width:760px){.brand .who i{display:none;}}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:2px;gap:2px;}
.seg button{font:500 12px/1 'Instrument Sans',sans-serif;border:0;background:transparent;color:var(--muted);
  padding:6px 11px;border-radius:5px;cursor:pointer;white-space:nowrap;transition:color .12s,background .12s;}
.seg button:hover{color:var(--text-2)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--lift),0 0 0 1px var(--hair);}
.seg button:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.seg.icons button{padding:6px 8px;display:grid;place-items:center;}
.seg.icons svg{width:14px;height:14px;display:block;}
.seg-lab{font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.085em;text-transform:uppercase;
  color:var(--faint);display:block;margin-bottom:4px;white-space:nowrap;}
.ctl{display:flex;align-items:center;gap:9px;}
.ctl .seg-lab{margin-bottom:0;}

/* ---------- page head ---------- */
.pagehead{padding:34px 0 10px;}
.eyebrow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.pagehead h1{font-size:30px;font-weight:600;letter-spacing:-.035em;margin:6px 0 0;text-wrap:balance;line-height:1.15;}
.pagehead p{margin:7px 0 0;color:var(--muted);font-size:14px;max-width:62ch;}

/* ---------- the brief ---------- */
.brief{background:var(--surface);border:1px solid var(--border);border-radius:12px;
  box-shadow:var(--lift),var(--inner);overflow:hidden;margin-top:18px;}
.brief-head{display:flex;align-items:center;gap:11px;padding:15px 20px;border-bottom:1px solid var(--border);
  background:var(--surface-2);}
.av{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-fg);
  display:grid;place-items:center;font:600 11px/1 'Instrument Sans',sans-serif;flex:none;letter-spacing:-.01em;}
.brief-head .who{font-size:13px;font-weight:600;letter-spacing:-.015em;}
.brief-head .when{font-size:11.5px;color:var(--muted);}
/* The note is written by hand, once a month. It never re-renders when the reader
   changes the reporting period — it says which month it covers instead. The verdict
   and the three points are visible; the prose sits behind a disclosure. */
.brief-head .notetag{margin-left:auto;font:500 11px/1.35 'Instrument Sans',sans-serif;color:var(--muted);
  background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 10px;
  text-align:right;}
.brief-head .notetag:empty{display:none;}
.brief-lede{padding:17px 20px 15px;}
.brief-lede .lede{margin:0;font-size:18.5px;line-height:1.4;font-weight:600;letter-spacing:-.03em;
  color:var(--text);text-wrap:balance;max-width:42ch;}
.brief-lede .figs{margin:10px 0 0;font:500 11.5px/1.5 'IBM Plex Mono',monospace;color:var(--muted);
  letter-spacing:-.01em;}
.brief-more{border-top:1px solid var(--border);}
.brief-more>summary{padding:12px 20px;cursor:pointer;list-style:none;display:flex;align-items:center;
  gap:6px;font:600 12.5px/1 'Instrument Sans',sans-serif;color:var(--accent);}
.brief-more>summary::-webkit-details-marker{display:none;}
.brief-more>summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}
.brief-more>summary .chev{width:13px;height:13px;margin:0;transition:transform .16s;}
.brief-more[open]>summary{color:var(--muted);}
.brief-more[open]>summary .chev{transform:rotate(90deg);}
.brief-body{padding:4px 20px 18px;}
.brief-body p{margin:0 0 11px;font-size:14.5px;line-height:1.62;color:var(--text-2);max-width:66ch;}
.brief-body p:last-child{margin-bottom:0;}
.brief-body strong{color:var(--text);font-weight:600;}
.hl{display:grid;gap:1px;background:var(--border);border-top:1px solid var(--border);}
.hl-item{background:var(--surface);padding:13px 20px;display:flex;gap:12px;align-items:flex-start;}
.hl-item .tick{width:15px;height:15px;border-radius:4px;background:var(--accent);flex:none;margin-top:2px;
  display:grid;place-items:center;}
.hl-item .tick svg{width:9px;height:9px;stroke:var(--accent-fg);stroke-width:2.6;fill:none;}
.hl-item .txt{font-size:13.5px;line-height:1.55;color:var(--text-2);}
.hl-item .txt b{color:var(--text);font-weight:600;}

/* ---------- questions index ---------- */
.qlist{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);
  border-radius:11px;overflow:hidden;box-shadow:var(--lift);}
.qrow{background:var(--surface);}
.qrow summary{padding:14px 18px;cursor:pointer;list-style:none;display:flex;gap:13px;align-items:flex-start;}
.qrow summary::-webkit-details-marker{display:none;}
.qrow summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}
.qrow .qn{font-size:14px;font-weight:600;letter-spacing:-.018em;color:var(--text);flex:1;min-width:0;}
.qrow .qa{display:block;font-size:13.5px;color:var(--text-2);margin-top:3px;line-height:1.55;font-weight:400;}
.chev{width:15px;height:15px;flex:none;margin-top:3px;color:var(--faint);transition:transform .16s;}
.qrow[open] .chev{transform:rotate(90deg);}
.qbody{padding:0 18px 16px 46px;font-size:13.5px;line-height:1.65;color:var(--text-2);}
.qbody p{margin:0 0 9px;max-width:64ch;} .qbody p:last-child{margin:0;}
.qbody .goto{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:12.5px;
  color:var(--accent);text-decoration:none;margin-top:3px;}
.qbody .goto:hover{text-decoration:underline;}

/* ---------- sections ---------- */
section.block{margin-top:46px;scroll-margin-top:92px;--sec:var(--accent);}
section.block[data-sec="dash"]     {--sec:var(--accent);}
section.block[data-sec="insights"] {--sec:var(--s2);}
section.block[data-sec="traffic"]  {--sec:var(--s1);}
section.block[data-sec="leads"]    {--sec:var(--s3);}
section.block[data-sec="compare"]  {--sec:var(--s5);}
section.block[data-sec="ai"]       {--sec:var(--s4);}
section.block[data-sec="ads"]      {--sec:var(--s6);}
section.block[data-sec="trends"]   {--sec:var(--s7);}

.chapter{display:flex;align-items:center;gap:10px;margin-bottom:11px;}
.chapter .cnum{font:700 11px/1 'IBM Plex Mono',monospace;letter-spacing:.04em;color:var(--sec);
  background:color-mix(in srgb,var(--sec) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--sec) 32%,transparent);border-radius:6px;padding:5px 7px;}
.chapter .cname{font:700 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.13em;text-transform:uppercase;
  color:var(--sec);}
.chapter .crule{flex:1;height:2px;border-radius:2px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--sec) 42%,transparent),transparent);}

/* the section you are in, named in the header beside the period control */
.nowsec{display:inline-flex;align-items:center;gap:7px;font:600 11px/1 'Instrument Sans',sans-serif;
  letter-spacing:-.005em;color:var(--sec,var(--accent));
  background:color-mix(in srgb,var(--sec,var(--accent)) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--sec,var(--accent)) 28%,transparent);
  border-radius:999px;padding:6px 11px;white-space:nowrap;}
.nowsec i{font:700 9.5px/1 'IBM Plex Mono',monospace;font-style:normal;opacity:.75;}
@media (max-width:860px){.nowsec{display:none;}}
.blockhead{margin-bottom:14px;}
.blockhead h2{font-size:24px;font-weight:700;letter-spacing:-.035em;margin:0;text-wrap:balance;}
.blockhead .answer{margin:7px 0 0;font-size:15px;line-height:1.6;color:var(--text-2);}
.blockhead .answer b{color:var(--text);font-weight:600;}
.tierpip{font:500 10px/1 'IBM Plex Mono',monospace;padding:4px 6px;border-radius:4px;
  background:var(--surface-2);color:var(--muted);border:1px solid var(--border);vertical-align:2px;margin-left:8px;}
.tierpip.t2{background:var(--accent-soft);color:var(--accent);border-color:transparent;}

/* ---------- cards / panels ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--lift),var(--inner);}
.pad{padding:17px 19px;}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:11px;}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:11px;}
.chartcard{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:16px 18px 13px;
  position:relative;box-shadow:var(--lift),var(--inner);}
.chartcard h3{margin:0 0 2px;font-size:13.5px;font-weight:600;letter-spacing:-.02em;padding-right:110px;}
.chartcard .sub{margin:0 0 12px;font-size:12px;color:var(--muted);line-height:1.55;}
.block .disc summary{color:var(--sec,var(--accent));}
.block .chartcard h3{color:var(--text);}
.block .goto,.block .src-more{color:var(--sec,var(--accent));}
.rng{position:absolute;top:15px;right:17px;font:500 10px/1 'IBM Plex Mono',monospace;padding:4px 6px;
  border-radius:4px;background:var(--surface-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap;}
.chartbox{position:relative;} .chartbox svg{display:block;width:100%;height:auto;overflow:visible;}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:11.5px;color:var(--text-2);}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.swatch{width:9px;height:9px;border-radius:2px;display:inline-block;flex:none;}

/* ---------- channel share rows (the hero) ---------- */
.shares{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:11px;
  overflow:hidden;box-shadow:var(--lift);}
.shrow{background:var(--surface);padding:13px 16px;display:grid;
  grid-template-columns:154px 1fr 76px 88px;gap:16px;align-items:center;
  transition:background .12s;}
.shrow:hover{background:var(--surface-2);}
.shrow .nm{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:550;letter-spacing:-.012em;min-width:0;}
.shrow .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.track{height:10px;background:var(--sunk);border-radius:6px;overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--hair);}
.track i{display:block;height:100%;border-radius:6px;
  background-image:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0));}
.shrow .pc{text-align:right;font-size:14px;font-weight:600;letter-spacing:-.03em;
  font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
.shrow .mo{text-align:right;}
.shhead{background:var(--surface-2);padding:10px 16px;display:grid;
  grid-template-columns:154px 1fr 76px 88px;gap:16px;font:600 9.5px/1.3 'IBM Plex Mono',monospace;
  letter-spacing:.085em;text-transform:uppercase;color:var(--faint);}
.shhead div:nth-child(3),.shhead div:nth-child(4){text-align:right;}
@media (max-width:620px){
  .shrow,.shhead{grid-template-columns:112px 1fr 64px;}
  .shrow .mo,.shhead div:nth-child(4){display:none;}
}

/* ---------- chips ---------- */
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px 3px 6px;border-radius:6px;
  font-size:10.5px;line-height:1.5;font-weight:600;white-space:nowrap;
  border:1px solid transparent;}
.chip.up{border-color:color-mix(in srgb,var(--good) 24%,transparent);}
.chip.dn{border-color:color-mix(in srgb,var(--crit) 24%,transparent);}
.chip.flat{border-color:var(--border);}
.chip .num{font-size:10.5px;}
.chip.up{background:var(--good-bg);color:var(--good);} .chip.dn{background:var(--crit-bg);color:var(--crit);}
.chip.flat{background:var(--surface-2);color:var(--muted);}
.car{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;flex:none;}
.chip.up .car{border-bottom:4.5px solid currentColor;} .chip.dn .car{border-top:4.5px solid currentColor;}
.chip.flat .car{border:0;width:7px;height:1.5px;background:currentColor;border-radius:1px;}

/* ---------- stat tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--surface);
  border:1px solid var(--border);border-radius:11px;overflow:hidden;box-shadow:var(--lift);}
.tile{background:var(--surface);padding:14px 15px 15px;display:flex;flex-direction:column;gap:2px;
  box-shadow:0 0 0 1px var(--border);}
.tile .spk{margin-top:auto;}
.tile .lab{font-size:11px;color:var(--muted);} .tile .val{font-size:22px;font-weight:600;letter-spacing:-.04em;
  line-height:1.2;font-variant-numeric:tabular-nums;}
.tile .cmp{display:grid;gap:4px;margin-top:6px;}
.tile .cmprow{display:grid;grid-template-columns:34px auto;gap:7px;align-items:center;justify-content:start;}
.tile .cmprow .cl{text-align:left;}
.cl{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:500;}
.spk{width:100%;height:24px;display:block;overflow:visible;margin:5px 0 1px;}
.spk path,.spk circle{vector-effect:non-scaling-stroke;}

/* ---------- tables ---------- */
.tblwrap{overflow-x:auto;border:1px solid var(--border);border-radius:11px;background:var(--surface);box-shadow:var(--lift);}
table{border-collapse:collapse;width:100%;font-size:12.5px;min-width:520px;}
th,td{padding:9px 13px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;}
th{font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--faint);font-weight:500;
   background:var(--surface-2);position:sticky;top:0;}
th:first-child,td:first-child{text-align:left;}
tbody tr:last-child td{border-bottom:0;} tbody tr:hover td{background:var(--surface-2);}
td.bcell{position:relative;}
.bfill{position:absolute;right:0;top:5px;bottom:5px;opacity:.14;border-radius:3px;pointer-events:none;}
.bnum{position:relative;}
tbody tr:hover .bfill{opacity:.22;}
.pill{font:500 11px/1 'IBM Plex Mono',monospace;padding:3px 6px;border-radius:4px;display:inline-block;}
.pill.good{background:var(--good-bg);color:var(--good)} .pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.crit{background:var(--crit-bg);color:var(--crit)} .pill.neut{background:var(--surface-2);color:var(--muted)}
.tag{font:500 10px/1 'IBM Plex Mono',monospace;padding:4px 6px;border-radius:4px;background:var(--surface-2);
  color:var(--muted);white-space:nowrap;border:1px solid var(--border);}
.tag.emerging{background:var(--warn-bg);color:var(--warn);border-color:transparent;}
tr.lowvol td{opacity:.5;} tr.lowvol:hover td{opacity:.8;}

/* ---------- AI tiles ---------- */
.aitiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:11px;}
.aitile{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:15px 16px;
  box-shadow:var(--lift),var(--inner);display:flex;flex-direction:column;gap:7px;}
.aitile .eng{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;letter-spacing:-.015em;}
.aidot{width:8px;height:8px;border-radius:50%;flex:none;}
.aitile .pg{font:500 12px/1.45 'IBM Plex Mono',monospace;color:var(--text);word-break:break-all;}
.aitile .mt{font-size:11.5px;color:var(--muted);}
.heat{display:flex;gap:3px;margin-top:2px;}
.heat i{height:6px;flex:1;border-radius:2px;background:var(--sunk);}

/* ---------- notes ---------- */
.note{font-size:11.5px;color:var(--muted);margin-top:10px;line-height:1.65;}
.note b{color:var(--text-2);font-weight:550;}
.tip{position:absolute;pointer-events:none;opacity:0;transition:opacity .09s;z-index:20;background:var(--tipbg);
  color:var(--tipfg);border-radius:7px;padding:8px 10px;font-size:11.5px;min-width:116px;
  box-shadow:0 8px 26px -10px rgba(0,0,0,.55),0 0 0 1px var(--hair);}
.tip .tt{font-weight:600;margin-bottom:4px;font-size:11px;opacity:.72;}
.tip .tr{display:flex;justify-content:space-between;gap:14px;line-height:1.7;}
.tip .tr i{width:7px;height:7px;border-radius:2px;display:inline-block;margin-right:6px;}
.hidden{display:none !important;}
footer{margin-top:52px;padding-top:20px;border-top:1px solid var(--border);font-size:11.5px;color:var(--muted);line-height:1.7;}
footer b{color:var(--text-2);font-weight:550;}
/* The service upsell. It is an offer, not an apology — the setup work is the product,
   which is what the 2026-09-23 call settled when it put white-glove above plug-and-play. */
.upsell{margin-top:12px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(200px,.95fr);gap:0;
  border:1px solid var(--accent);border-radius:12px;overflow:hidden;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface) 62%);
  box-shadow:var(--lift),var(--inner);}
.upsell .u-main{padding:20px 22px;}
.upsell .u-eyebrow{font:600 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.07em;text-transform:uppercase;
  color:var(--accent);margin-bottom:9px;}
.upsell h3{margin:0;font-size:17.5px;font-weight:600;letter-spacing:-.03em;color:var(--text);text-wrap:balance;}
.upsell p{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--text-2);max-width:54ch;}
.upsell .u-list{margin:13px 0 0;padding:0;list-style:none;display:grid;gap:7px;}
.upsell .u-list li{position:relative;padding-left:19px;font-size:12.5px;line-height:1.55;color:var(--text-2);}
.upsell .u-list li::before{content:'';position:absolute;left:0;top:6px;width:7px;height:7px;border-radius:2px;
  background:var(--accent);}
.upsell .u-cta{padding:20px 22px;border-left:1px solid var(--border);background:var(--surface);
  display:flex;flex-direction:column;gap:9px;justify-content:center;}
.upsell .u-cta .btn{text-align:center;}
.upsell .u-note{font-size:11px;color:var(--muted);line-height:1.5;margin-top:2px;}
@media (max-width:760px){.upsell{grid-template-columns:minmax(0,1fr);}
  .upsell .u-cta{border-left:0;border-top:1px solid var(--border);}}

/* Appearance is a preference, not a feature. It lives at the foot of the page. */
.pref{display:flex;align-items:center;gap:9px;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--border);flex-wrap:wrap;}
.pref .seg-lab{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:600;}
.pref .seg{background:transparent;border-color:var(--border);}
.pref .seg button{padding:5px 7px;}
.demobar{background:var(--warn-bg);border-bottom:1px solid var(--border);font-size:12px;color:var(--text-2);}
.demobar div{max-width:1160px;margin:0 auto;padding:7px 24px;}
.demobar.wide div{max-width:1360px;}
.demobar strong{color:var(--text);font-weight:600;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}

/* ===================== added 2026-10-01: UX round ===================== */

/* surface switcher — internal only, never on the client page */
.surf{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:7px;padding:2px;}
.surf a{font:500 12px/1 'Instrument Sans',sans-serif;color:var(--muted);padding:6px 11px;border-radius:5px;
  text-decoration:none;white-space:nowrap;transition:color .12s,background .12s;}
.surf a:hover{color:var(--text-2);}
.surf a[aria-current="page"]{background:var(--surface);color:var(--text);box-shadow:var(--lift),0 0 0 1px var(--hair);}
.surf a:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}

/* client sub-nav */
.subnav{position:sticky;top:var(--hh,64px);z-index:30;border-bottom:1px solid var(--border);
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);}
.subnav-in{max-width:900px;margin:0 auto;padding:0 24px;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;}
.subnav-in::-webkit-scrollbar{display:none;}
.subnav a{font:500 11.5px/1 'Instrument Sans',sans-serif;color:var(--muted);padding:11px 10px;
  text-decoration:none;white-space:nowrap;border-bottom:1.5px solid transparent;transition:color .12s,border-color .12s;}
.subnav a:hover{color:var(--text);}
.subnav a.on{color:var(--text);border-bottom-color:var(--accent);}
.subnav a:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:4px;}
section.block{scroll-margin-top:calc(var(--hh,64px) + 54px);}

/* accordion affordance */
details.disc{background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--lift),var(--inner);}
details.disc > summary{padding:14px 18px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;
  font-size:13px;font-weight:600;letter-spacing:-.015em;color:var(--text-2);border-radius:11px;}
details.disc > summary::-webkit-details-marker{display:none;}
details.disc > summary:hover{color:var(--text);background:var(--surface-2);}
details.disc[open] > summary{border-bottom:1px solid var(--border);border-radius:11px 11px 0 0;background:var(--surface-2);}
details.disc > summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}
.discchev{width:14px;height:14px;flex:none;color:var(--faint);transition:transform .16s;}
details.disc[open] .discchev{transform:rotate(90deg);}
.disccount{margin-left:auto;font:500 10.5px/1 'IBM Plex Mono',monospace;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--border);padding:4px 7px;border-radius:5px;}
details.disc[open] .disccount{background:var(--surface);}
.discbody{padding:16px 18px 18px;}

/* ask affordance */
.ask{display:flex;align-items:center;gap:11px;padding:13px 20px;border-top:1px solid var(--border);
  background:var(--surface-2);flex-wrap:wrap;}
.ask .t{font-size:12.5px;color:var(--text-2);flex:1;min-width:180px;}
.btn{font:600 12.5px/1 'Instrument Sans',sans-serif;border:1px solid var(--border-2);background:var(--surface);
  color:var(--text-2);border-radius:7px;padding:9px 13px;cursor:pointer;text-decoration:none;display:inline-block;}
.btn:hover{color:var(--text);} .btn:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);}
.btn.sm{padding:7px 10px;font-size:11.5px;}

/* filters */
.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
.fchip{font:500 12px/1 'Instrument Sans',sans-serif;border:1px solid var(--border);background:var(--surface);
  color:var(--muted);border-radius:999px;padding:7px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.fchip:hover{color:var(--text);}
.fchip[aria-pressed="true"]{background:var(--accent-soft);border-color:transparent;color:var(--accent);}
.fchip:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.fchip .n{font-family:'IBM Plex Mono',monospace;font-size:11px;}
.search{flex:1;min-width:150px;max-width:260px;}
.search input{width:100%;font:400 12.5px/1 'Instrument Sans',sans-serif;color:var(--text);background:var(--surface);
  border:1px solid var(--border);border-radius:7px;padding:9px 11px;}
.search input:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}

/* flag-coloured rows */
tr.fl-Urgent td:first-child{box-shadow:inset 3px 0 0 var(--crit);}
tr.fl-Opportunity td:first-child{box-shadow:inset 3px 0 0 var(--good);}
tr.fl-Stable td:first-child{box-shadow:inset 3px 0 0 var(--border-2);}
tr.rowlink{cursor:pointer;}
tr.rowlink:hover td{background:var(--surface-2);}

/* side tray */
.scrim{position:fixed;inset:0;background:rgba(9,10,13,.42);opacity:0;pointer-events:none;transition:opacity .18s;z-index:60;}
.scrim.on{opacity:1;pointer-events:auto;}
.tray{position:fixed;top:0;right:0;bottom:0;width:min(460px,92vw);background:var(--surface);z-index:61;
  border-left:1px solid var(--border);transform:translateX(100%);transition:transform .22s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;box-shadow:-20px 0 50px -25px rgba(0,0,0,.5);}
.tray.on{transform:translateX(0);}
.tray-head{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--border);
  padding:16px 20px;display:flex;align-items:flex-start;gap:12px;z-index:2;}
.tray-head h3{margin:0;font-size:17px;font-weight:600;letter-spacing:-.028em;}
.tray-head .sub{font-size:12px;color:var(--muted);margin-top:2px;}
.tray-close{margin-left:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:7px;
  width:30px;height:30px;display:grid;place-items:center;cursor:pointer;color:var(--muted);flex:none;}
.tray-close:hover{color:var(--text);} .tray-close:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.tray-body{padding:18px 20px 28px;}
.kv{display:grid;grid-template-columns:1fr auto;gap:9px 14px;font-size:13px;}
.kv dt{color:var(--muted);} .kv dd{margin:0;text-align:right;font-family:'IBM Plex Mono',monospace;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em;}

/* freshness */
.fresh{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);}
.dotlive{width:7px;height:7px;border-radius:50%;background:var(--good);flex:none;}

/* queue */
.queue{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:11px;overflow:hidden;}
.qitem{background:var(--surface);padding:12px 15px;display:flex;align-items:center;gap:11px;cursor:pointer;
  border:0;width:100%;text-align:left;font:inherit;color:inherit;}
.qitem:hover{background:var(--surface-2);}
.qitem:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}
.qitem[aria-current="true"]{background:var(--accent-soft);}
.qitem .nm{flex:1;min-width:0;font-size:13px;font-weight:550;letter-spacing:-.012em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.st{font:500 10px/1 'IBM Plex Mono',monospace;padding:4px 7px;border-radius:4px;white-space:nowrap;}
.st.draft{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);}
.st.approved{background:var(--good-bg);color:var(--good);}
.st.sent{background:var(--accent-soft);color:var(--accent);}

/* screen-reader table fallback for charts */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

@media (max-width:980px){
  .stickyprev{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);
    margin:0 -18px -18px;padding:14px 18px;border-radius:0 0 11px 11px;}
}

@media print{
  header.top,.subnav,.demobar,.seg,.surf,.ask,.btn,.tray,.scrim,.filters{display:none !important;}
  body{background:#fff;color:#000;}
  details{open:true;} details > summary{display:none;}
  details > div,.discbody{display:block !important;}
  .card,.chartcard,.tblwrap,.shares,.tiles,.qlist{break-inside:avoid;box-shadow:none;}
  .wrap{max-width:100%;padding:0;}
  a[href^="#"]:after{content:"";}
}

/* ===================== left rail navigation ===================== */
.shell{display:grid;grid-template-columns:184px minmax(0,1fr);gap:42px;
  max-width:1160px;margin:0 auto;padding:0 24px 90px;}
.shell.wide{max-width:1360px;}
.rail{position:sticky;top:calc(var(--hh,64px) + 22px);align-self:start;
  max-height:calc(100vh - var(--hh,64px) - 44px);overflow-y:auto;padding-top:34px;}
.rail-lab{font:700 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-2);padding:0 11px 10px 13px;}
.rail a{display:block;font:500 12.5px/1.4 'Instrument Sans',sans-serif;color:var(--muted);
  padding:8px 11px;border-radius:7px;text-decoration:none;border-left:2px solid transparent;
  transition:color .12s,background .12s,border-color .12s;}
.rail a:hover{color:var(--text);background:var(--surface-2);}
/* the rail item takes the colour of the section it points at, so the page and the
   nav never disagree about where you are */
.rail a.on{color:var(--text);background:var(--surface);border-left-color:var(--na,var(--accent));
  box-shadow:var(--lift),0 0 0 1px var(--hair);}
.rail a.on::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--na,var(--accent));margin-right:7px;vertical-align:1px;}
.rail a:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.shell > main{min-width:0;}
/* appearance belongs with the page's own furniture, at the foot of the rail */
.menu .pref{padding:8px 10px 4px;gap:8px;margin:0;border:0;}
.menu .pref .seg{width:100%;}
.menu .pref .seg button{flex:1;}

@media (max-width:940px){
  /* Tablet and phone: the rail becomes an accordion.
     A horizontal scroller hid the sections that did not fit, which on a phone was
     most of them, and it had nowhere to put the connected-accounts block or the
     appearance control. Collapsed, it names where you are; open, it is the same
     list the desktop rail shows. */
  .shell{grid-template-columns:minmax(0,1fr);gap:0;}
  .rail{position:sticky;top:var(--hh,64px);z-index:30;max-height:none;overflow:visible;
    display:block;margin:0 -24px;padding:0;
    background:color-mix(in srgb,var(--bg) 92%,transparent);
    backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);
    border-bottom:1px solid var(--border);}

  .railtoggle{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;
    padding:13px 24px;background:none;border:0;cursor:pointer;text-align:left;
    font:600 13px/1.3 'Instrument Sans',sans-serif;color:var(--text);}
  .railtoggle .rt-lab{font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.11em;
    text-transform:uppercase;color:var(--faint);}
  .railtoggle .rt-now{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .railtoggle .rt-chev{width:14px;height:14px;flex:none;color:var(--muted);transition:transform .18s;}
  .railtoggle[aria-expanded="true"] .rt-chev{transform:rotate(180deg);}
  .railtoggle:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}

  /* Closed by default on every load, so the page opens on the report rather than
     on a menu. */
  .rail > :not(.railtoggle){display:none;}
  .rail.open > :not(.railtoggle){display:block;}
  .rail.open{padding-bottom:10px;max-height:calc(100vh - var(--hh,64px) - 10px);overflow-y:auto;}

  .rail-lab{display:block;padding:10px 24px 6px;}
  .rail a{border-left:0;border-radius:0;white-space:normal;padding:11px 24px;
    border-bottom:1px solid var(--border);}
  .rail a:last-child{border-bottom:0;}
  .rail a.on{background:var(--surface);box-shadow:none;}
  .rail a.on::before{margin-right:8px;}
  .rail-src{margin:0;padding:6px 0 0;}
  .src{padding:5px 24px;}
  .src-more{padding:8px 24px 4px;}
  .rail .pref{padding:10px 24px;}
}

/* The toggle exists only on small screens; on desktop the rail is always open.
   Scoped to a min-width query rather than left unscoped: an unscoped rule after
   the max-width block wins at every width on source order, which hid the toggle
   on phones and took the whole rail with it. */
@media (min-width:941px){ .railtoggle{display:none;} }

@media print{.rail{display:none !important;} .shell{grid-template-columns:1fr;}}

/* ===================== question cards ===================== */
.qgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(286px,1fr));gap:11px;}
.qcard{background:var(--surface);border:1px solid var(--border);border-radius:11px;
  box-shadow:var(--lift),var(--inner);overflow:hidden;}
.qcard > summary{list-style:none;cursor:pointer;padding:14px 16px 13px;display:block;}
.qcard > summary::-webkit-details-marker{display:none;}
.qcard > summary:hover{background:var(--surface-2);}
.qcard > summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}
.qcard .q{display:block;font-size:11px;letter-spacing:.02em;color:var(--muted);font-weight:500;
  margin-bottom:5px;line-height:1.4;}
.qcard .a{display:block;font-size:14px;font-weight:600;letter-spacing:-.02em;color:var(--text);
  line-height:1.4;text-wrap:balance;}
.qcard .a b{font-weight:600;}
.qcard .more{display:inline-flex;align-items:center;gap:5px;margin-top:9px;
  font-size:11.5px;font-weight:500;color:var(--accent);}
.qcard .more svg{width:11px;height:11px;transition:transform .16s;}
.qcard[open] .more svg{transform:rotate(90deg);}
.qcard[open] > summary{border-bottom:1px solid var(--border);background:var(--surface-2);}
.qcard .qbody{padding:13px 16px 15px;font-size:13px;line-height:1.62;color:var(--text-2);}
.qcard .qbody p{margin:0 0 9px;} .qcard .qbody p:last-child{margin:0;}
.qcard .goto{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:12px;
  color:var(--accent);text-decoration:none;}
.qcard .goto:hover{text-decoration:underline;}

/* ===================== account chip ===================== */
/* The account control: a chip that opens the same four destinations as the profile
   page's own rail, plus the way out. The Log in button sits to its right and is only
   there when nobody is signed in. */
.acctwrap{position:relative;display:flex;align-items:center;gap:8px;}
.acct{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);
  border:1px solid var(--border);border-radius:999px;padding:4px 9px 4px 4px;text-decoration:none;
  color:var(--text-2);font:500 12px/1 'Instrument Sans',sans-serif;cursor:pointer;}
.acct .caret{width:12px;height:12px;color:var(--faint);transition:transform .16s;}
.acct[aria-expanded="true"] .caret{transform:rotate(180deg);}
.acct[aria-expanded="true"]{background:var(--surface);border-color:var(--border-2);color:var(--text);}
.menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:216px;
  background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:5px;
  box-shadow:0 14px 34px -10px rgba(10,14,22,.26),0 0 0 1px var(--hair);}
.menu[hidden]{display:none;}
.menu .mhead{display:flex;align-items:center;gap:9px;padding:9px 10px 11px;
  border-bottom:1px solid var(--border);margin-bottom:5px;}
.menu .mhead .av{width:30px;height:30px;font-size:11px;}
.menu .mn{font-size:12.5px;font-weight:600;letter-spacing:-.015em;color:var(--text);}
.menu .me{font-size:11px;color:var(--muted);margin-top:1px;}
.menu a,.menu button{display:block;width:100%;text-align:left;box-sizing:border-box;
  font:500 12.5px/1.3 'Instrument Sans',sans-serif;color:var(--text-2);text-decoration:none;
  padding:8px 10px;border-radius:7px;border:0;background:transparent;cursor:pointer;}
.menu a:hover,.menu button:hover{background:var(--surface-2);color:var(--text);}
.menu a:focus-visible,.menu button:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;}
.menu .msep{height:1px;background:var(--border);margin:5px 0;}
.menu #logoutbtn{color:var(--muted);}
.acctwrap [hidden]{display:none !important;}

/* a period chip, where a sentence used to restate what the toggle already says.
   Named apart from `.chip`, which is the up/down delta chip in every table. */
.pchip{display:inline-flex;align-items:center;gap:6px;font:600 11px/1 'Instrument Sans',sans-serif;
  letter-spacing:-.005em;color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,transparent);
  border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:999px;padding:5px 11px;}
.pchip::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent);}
.acct:hover{color:var(--text);border-color:var(--border-2);}
.acct:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.acct .av{width:24px;height:24px;font-size:9.5px;}

/* ===================== profile page ===================== */
.pcard{background:var(--surface);border:1px solid var(--border);border-radius:11px;
  box-shadow:var(--lift),var(--inner);overflow:hidden;}
.pcard > h3{margin:0;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-2);
  font-size:13px;font-weight:600;letter-spacing:-.018em;}
.pcard .inner{padding:17px 18px 19px;}
.field{display:grid;grid-template-columns:168px minmax(0,1fr);gap:12px 16px;align-items:center;
  padding:11px 0;border-bottom:1px solid var(--border);}
.field:last-child{border-bottom:0;} .field:first-child{padding-top:0;}
.field label{font-size:12.5px;color:var(--muted);}
.field input,.field select{width:100%;font:400 13px/1 'Instrument Sans',sans-serif;color:var(--text);
  background:var(--sunk);border:1px solid var(--border);border-radius:7px;padding:9px 11px;}
.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.field .hintl{grid-column:2;font-size:11.5px;color:var(--muted);margin-top:-4px;}
@media (max-width:640px){.field{grid-template-columns:1fr;gap:6px;} .field .hintl{grid-column:1;}}

.conn{display:flex;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.conn:last-child{border-bottom:0;} .conn:first-child{padding-top:0;}
.conn .ico{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;flex:none;
  background:var(--surface-2);border:1px solid var(--border);font:600 11px/1 'Instrument Sans',sans-serif;color:var(--muted);}
.conn .meta{flex:1;min-width:170px;}
.conn .nm{font-size:13px;font-weight:600;letter-spacing:-.015em;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.conn .dsc{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.5;}
.badge{font:500 10px/1 'IBM Plex Mono',monospace;padding:4px 7px;border-radius:4px;white-space:nowrap;}
.badge.on{background:var(--good-bg);color:var(--good);}
.badge.off{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);}
.badge.warn{background:var(--warn-bg);color:var(--warn);}
.badge.soon{background:var(--accent-soft);color:var(--accent);}

.notif{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--border);}
.notif:last-child{border-bottom:0;} .notif:first-child{padding-top:0;}
.notif .meta{flex:1;min-width:0;}
.notif .nm{font-size:13px;font-weight:600;letter-spacing:-.015em;}
.notif .dsc{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.5;}
.sw{position:relative;width:40px;height:23px;flex:none;margin-top:2px;}
.sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.sw i{position:absolute;inset:0;background:var(--border-2);border-radius:999px;transition:background .15s;pointer-events:none;}
.sw i::after{content:'';position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;
  background:#fff;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.25);}
.sw input:checked + i{background:var(--accent);}
.sw input:checked + i::after{transform:translateX(17px);}
.sw input:focus-visible + i{outline:2px solid var(--ring);outline-offset:2px;}

/* ===================== the Signal Board =====================
   The hero. One number at scale, a twelve-month chart behind it with the chosen
   window lit, a scoreboard strip under it, and Ian and Neil's note demoted to a
   dated strip at the foot that opens the archive. It stays dark in both themes
   on purpose: it is the one object on the page that is a statement rather than a
   surface, and the contrast is what makes a login feel like an arrival. */
.board{--b-fg:#F3F7FC;--b-dim:#9CB2CE;--b-faint:#6D86A6;--b-acc:#6FB6F2;--b-line:rgba(255,255,255,.09);
  position:relative;margin-top:18px;border-radius:16px;overflow:hidden;color:var(--b-fg);
  background:radial-gradient(118% 150% at 84% -10%,#1A4473 0%,#0D2039 46%,#070D17 100%);
  border:1px solid rgba(255,255,255,.085);
  box-shadow:0 26px 54px -26px rgba(6,12,22,.62),inset 0 1px 0 rgba(255,255,255,.07);}
.board-main{position:relative;display:grid;grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);
  align-items:center;gap:18px;padding:24px 26px 18px;}
.b-lab{font:600 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.09em;text-transform:uppercase;
  color:var(--b-faint);}
/* The headline number used to be set like a billboard. It is a lead count, not a
   stadium score — scaled back, with the unit beside it so it reads as a sentence. */
.b-num{display:flex;align-items:baseline;gap:9px;margin-top:10px;}
.b-num .v{font-size:clamp(34px,3.6vw,44px);font-weight:600;letter-spacing:-.04em;line-height:1;
  font-variant-numeric:tabular-nums;}
.b-num .u{font:600 13px/1 'Instrument Sans',sans-serif;color:var(--b-dim);letter-spacing:-.015em;}
.b-row{display:flex;align-items:center;gap:9px;margin-top:11px;flex-wrap:wrap;}
.b-chip{display:inline-flex;align-items:center;gap:5px;font:600 11.5px/1 'Instrument Sans',sans-serif;
  border-radius:999px;padding:5px 10px;border:1px solid transparent;}
.b-chip.up{color:#8BE6B8;background:rgba(49,196,141,.14);border-color:rgba(49,196,141,.3);}
.b-chip.dn{color:#F7A8A8;background:rgba(232,86,86,.14);border-color:rgba(232,86,86,.3);}
.b-chip.flat{color:var(--b-dim);background:rgba(255,255,255,.07);border-color:var(--b-line);}
.b-chip .cl{font-weight:500;color:inherit;opacity:.72;}
.b-verdict{margin-top:14px;font-size:14px;line-height:1.5;color:var(--b-dim);max-width:34ch;text-wrap:balance;}
.b-verdict b{color:var(--b-fg);font-weight:600;}
.b-chart{position:relative;min-width:0;}
.b-chart svg{display:block;width:100%;height:150px;overflow:visible;}
.b-chart .ax{font:500 9.5px/1 'IBM Plex Mono',monospace;fill:var(--b-faint);letter-spacing:.04em;}
.b-draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:bdraw 1.05s cubic-bezier(.4,0,.2,1) forwards;}
.b-fade{opacity:0;animation:bfade .7s ease .5s forwards;}
@keyframes bdraw{to{stroke-dashoffset:0;}}
@keyframes bfade{to{opacity:1;}}
@media (prefers-reduced-motion:reduce){.b-draw,.b-fade{animation:none;stroke-dashoffset:0;opacity:1;}}

.board-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--b-line);
  border-top:1px solid var(--b-line);}
.b-tile{background:rgba(255,255,255,.012);padding:15px 18px 16px;min-width:0;}
.b-tile .t-lab{font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.085em;text-transform:uppercase;
  color:var(--b-faint);}
.b-tile .t-val{font-size:23px;font-weight:600;letter-spacing:-.035em;margin-top:8px;line-height:1;
  font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:5px;}
.b-tile .t-val small{font-size:12.5px;font-weight:500;color:var(--b-dim);letter-spacing:-.01em;}
.b-tile .t-foot{display:flex;align-items:center;gap:8px;margin-top:10px;}
.b-tile .t-spark{flex:1;min-width:0;height:22px;}
.b-tile .t-spark svg{display:block;width:100%;height:22px;}
.b-tile.dial{display:flex;align-items:center;gap:13px;}
.b-tile.dial .dialwrap{flex:none;}
.b-tile.dial .dialwrap svg{display:block;width:52px;height:52px;}

.board-note{display:flex;align-items:center;gap:11px;padding:13px 20px;flex-wrap:wrap;
  border-top:1px solid var(--b-line);background:rgba(255,255,255,.028);}
.board-note .av{width:27px;height:27px;font-size:10px;background:var(--b-acc);color:#06121F;}
.board-note .n-t{flex:1;min-width:190px;font-size:12.5px;line-height:1.5;color:var(--b-dim);}
.board-note .n-t b{color:var(--b-fg);font-weight:600;}
.board-note .n-btn{font:600 12px/1 'Instrument Sans',sans-serif;border:1px solid rgba(255,255,255,.17);
  background:rgba(255,255,255,.07);color:var(--b-fg);border-radius:7px;padding:8px 13px;cursor:pointer;}
.board-note .n-btn:hover{background:rgba(255,255,255,.13);}
.board-note .n-btn:focus-visible{outline:2px solid var(--b-acc);outline-offset:2px;}

@media (max-width:860px){
  .board-main{grid-template-columns:minmax(0,1fr);padding:22px 20px 16px;}
  .b-chart svg{height:118px;}
  .board-tiles{grid-template-columns:repeat(2,minmax(0,1fr));}
  .b-tile.dial{display:block;} .b-tile.dial .dialwrap{display:none;}
}

/* the note archive, read in the side tray */
.notedoc .nd-nav{display:flex;align-items:center;gap:7px;margin-bottom:14px;}
.notedoc .nd-nav button{font:600 12px/1 'Instrument Sans',sans-serif;border:1px solid var(--border-2);
  background:var(--surface);color:var(--text-2);border-radius:7px;padding:7px 10px;cursor:pointer;}
.notedoc .nd-nav button:disabled{opacity:.4;cursor:default;}
.notedoc .nd-nav .nd-m{flex:1;font-size:12.5px;font-weight:600;color:var(--text);letter-spacing:-.015em;}
.notedoc .nd-figs{font:500 11.5px/1.6 'IBM Plex Mono',monospace;color:var(--muted);
  padding:11px 13px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;margin-bottom:14px;}
.notedoc .nd-lede{font-size:16px;font-weight:600;letter-spacing:-.028em;line-height:1.42;margin:0 0 13px;
  text-wrap:balance;}
.notedoc p{margin:0 0 11px;font-size:13.5px;line-height:1.65;color:var(--text-2);}
.notedoc .nd-pts{display:grid;gap:9px;margin:15px 0;}
.notedoc .nd-pt{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--text-2);}
.notedoc .nd-pt b{color:var(--text);font-weight:600;}

/* ===================== the answer bar =====================
   Every data section opens by answering its own question. A rule and a weight
   change carry it instead of a box, so six answers down the page read as one
   argument rather than six cards competing for the same attention. */
.ansbox{margin:13px 0 20px;display:grid;gap:1px;background:var(--border);
  border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--lift),var(--inner);}
.ans{position:relative;padding:17px 20px 16px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--sec,var(--accent)) 8%,var(--surface)),var(--surface));}
.ans.sub{background:var(--surface);}
.ans .a-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.ans .a-q{font:600 10.5px/1.3 'IBM Plex Mono',monospace;letter-spacing:.075em;text-transform:uppercase;
  color:var(--sec,var(--accent));}
.ans.sub .a-q{color:var(--faint);}
.ans .a-top .pchip{margin-left:auto;color:var(--sec,var(--accent));
  background:color-mix(in srgb,var(--sec,var(--accent)) 11%,transparent);
  border-color:color-mix(in srgb,var(--sec,var(--accent)) 30%,transparent);}
.ans .a-top .pchip::before{background:var(--sec,var(--accent));}
.ans .a-txt{font-size:19px;font-weight:600;letter-spacing:-.03em;line-height:1.4;color:var(--text);
  text-wrap:balance;}
.ans.sub .a-txt{font-size:16px;}
.ans .a-txt b{color:var(--text);font-weight:700;}
.ans details{margin-top:8px;}
.ans summary{display:inline-flex;align-items:center;gap:5px;cursor:pointer;list-style:none;
  font:600 11.5px/1 'Instrument Sans',sans-serif;color:var(--sec,var(--accent));
  border:1px solid color-mix(in srgb,var(--sec,var(--accent)) 30%,transparent);border-radius:7px;padding:6px 10px;
  background:color-mix(in srgb,var(--sec,var(--accent)) 8%,transparent);}
.ans summary:hover{background:color-mix(in srgb,var(--sec,var(--accent)) 15%,transparent);}
.ans summary::-webkit-details-marker{display:none;}
.ans summary svg{width:12px;height:12px;transition:transform .16s;}
.ans details[open] summary svg{transform:rotate(90deg);}
.ans details[open] summary{color:var(--muted);}
.ans .a-why{margin:8px 0 0;font-size:13px;line-height:1.65;color:var(--text-2);}

/* ===================== Signal Insights ===================== */
.ins{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;}
.ins-item{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:17px 18px 18px;box-shadow:var(--lift),var(--inner);}
.ins-item .n{position:absolute;right:11px;top:2px;font:700 46px/1 'Instrument Sans',sans-serif;
  color:var(--accent);opacity:.09;letter-spacing:-.06em;pointer-events:none;}
.ins-item h4{margin:0 0 7px;font-size:13.5px;font-weight:600;letter-spacing:-.02em;color:var(--text);
  position:relative;max-width:20ch;text-wrap:balance;}
.ins-item p{margin:0;font-size:12.5px;line-height:1.6;color:var(--text-2);position:relative;}
@media (max-width:860px){.ins{grid-template-columns:minmax(0,1fr);}}

/* connection state: the fact first, the action under it and quieter */
.connstate{flex:none;text-align:right;}
.connstate .on{display:inline-flex;align-items:center;gap:5px;font:600 12px/1 'Instrument Sans',sans-serif;
  color:var(--good);}
.connstate .on svg{width:12px;height:12px;}
.connstate .unlink{display:block;margin:6px 0 0 auto;background:none;border:0;padding:0;cursor:pointer;
  font:500 11.5px/1 'Instrument Sans',sans-serif;color:var(--muted);text-decoration:underline;}
.connstate .unlink:hover{color:var(--text-2);}
.pchip.good{color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent);
  border-color:color-mix(in srgb,var(--good) 32%,transparent);}
.pchip.good::before{background:var(--good);}

/* ---------- rail: what the report is built from ---------- */
.rail-src{margin-top:26px;}
.src{display:flex;align-items:center;gap:8px;padding:4px 0 4px 13px;font-size:11.5px;color:var(--muted);
  line-height:1.35;}
.src i{width:6px;height:6px;border-radius:50%;flex:none;background:var(--border-2);}
.src.on i{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 18%,transparent);}
.src.on{color:var(--text-2);}
.src.soon i{background:var(--warn);}
.src-more{display:block;margin-top:9px;padding-left:13px;font:600 11px/1.4 'Instrument Sans',sans-serif;
  color:var(--accent);text-decoration:none;}
.src-more:hover{text-decoration:underline;}
@media (max-width:940px){.rail-src{display:none;}}

/* ---------- Signal Insights: the note's own byline, consolidated here ---------- */
.inshead{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:14px;padding:12px 15px;
  background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--lift),var(--inner);}
.inshead .ih-t{flex:1;min-width:200px;font-size:12.5px;line-height:1.5;color:var(--muted);}
.inshead .ih-t b{display:block;color:var(--text);font-weight:600;font-size:12.5px;letter-spacing:-.015em;}

/* ===================== Ask Signal =====================
   A question about your own numbers should never require finding the right page.
   The control follows the reader instead, and the panel stays out of the report. */
.fab{position:fixed;right:22px;bottom:22px;z-index:70;width:54px;height:54px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);cursor:pointer;display:grid;
  place-items:center;color:var(--accent-fg);
  background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--accent) 86%,#fff),var(--accent));
  box-shadow:0 12px 28px -8px color-mix(in srgb,var(--accent) 55%,transparent),0 2px 6px rgba(8,14,24,.2);
  transition:transform .16s,box-shadow .16s;}
.fab:hover{transform:translateY(-2px);box-shadow:0 16px 34px -8px color-mix(in srgb,var(--accent) 62%,transparent);}
.fab:focus-visible{outline:2px solid var(--ring);outline-offset:3px;}
.fab svg{width:23px;height:23px;}
.fab .ping{position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--accent);opacity:.5;
  animation:fping 2.8s ease-out infinite;pointer-events:none;}
@keyframes fping{0%{transform:scale(.94);opacity:.5}70%{transform:scale(1.22);opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.fab .ping{animation:none;opacity:0;}}

.askpanel{position:fixed;right:22px;bottom:22px;z-index:71;width:min(400px,calc(100vw - 32px));
  max-height:min(620px,calc(100vh - 110px));display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;
  box-shadow:0 30px 70px -24px rgba(8,14,24,.42),0 0 0 1px var(--hair);
  transform-origin:100% 100%;animation:askin .2s cubic-bezier(.4,0,.2,1);}
.fab[hidden],.askpanel[hidden]{display:none !important;}
@keyframes askin{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.askpanel .ap-head{display:flex;align-items:center;gap:10px;padding:14px 15px;
  border-bottom:1px solid var(--border);background:var(--surface-2);}
.askpanel .ap-head .dot{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
  background:var(--accent);color:var(--accent-fg);flex:none;}
.askpanel .ap-head .dot svg{width:15px;height:15px;}
.askpanel .ap-head h3{margin:0;font-size:13.5px;font-weight:600;letter-spacing:-.02em;}
.askpanel .ap-head .sub{font-size:11px;color:var(--muted);margin-top:1px;}
.askpanel .ap-x{margin-left:auto;background:transparent;border:0;color:var(--muted);cursor:pointer;
  width:28px;height:28px;border-radius:7px;display:grid;place-items:center;font-size:14px;}
.askpanel .ap-x:hover{background:var(--surface);color:var(--text);}
.ap-body{flex:1;overflow-y:auto;padding:15px;display:flex;flex-direction:column;gap:11px;}
.ap-msg{max-width:88%;font-size:13px;line-height:1.6;}
.ap-msg.bot{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);
  border-radius:12px 12px 12px 4px;padding:11px 13px;color:var(--text-2);}
.ap-msg.me{align-self:flex-end;background:var(--accent);color:var(--accent-fg);
  border-radius:12px 12px 4px 12px;padding:10px 13px;}
.ap-msg.bot b{color:var(--text);font-weight:600;}
.ap-msg .tag{display:inline-block;font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.07em;
  text-transform:uppercase;padding:4px 7px;border-radius:5px;margin-bottom:7px;}
.ap-msg .tag.mine{background:var(--accent-soft);color:var(--accent);}
.ap-msg .tag.book{background:var(--surface);border:1px solid var(--border);color:var(--muted);}
.ap-sug{display:flex;flex-wrap:wrap;gap:6px;padding:0 15px 12px;}
.ap-sug button{font:500 11.5px/1.3 'Instrument Sans',sans-serif;border:1px solid var(--border);
  background:var(--surface-2);color:var(--text-2);border-radius:999px;padding:7px 11px;cursor:pointer;
  text-align:left;}
.ap-sug button:hover{color:var(--text);border-color:var(--border-2);}
.ap-form{display:flex;gap:8px;padding:12px 15px;border-top:1px solid var(--border);background:var(--surface-2);}
.ap-form input{flex:1;min-width:0;font:400 13px/1.4 'Instrument Sans',sans-serif;color:var(--text);
  background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:10px 12px;}
.ap-form input:focus{outline:2px solid var(--ring);outline-offset:-1px;}
.ap-form button{flex:none;background:var(--accent);color:var(--accent-fg);border:0;border-radius:9px;
  width:38px;display:grid;place-items:center;cursor:pointer;}
.ap-form button svg{width:16px;height:16px;}
.ap-foot{padding:0 15px 12px;background:var(--surface-2);}
.privlink{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;cursor:pointer;
  font:500 10.5px/1 'Instrument Sans',sans-serif;color:var(--faint);}
.privlink svg{width:11px;height:11px;}
.privlink:hover{color:var(--muted);}
.privnote{margin:7px 0 0;font-size:10.5px;line-height:1.5;color:var(--faint);}
.privnote[hidden]{display:none;}
@media print{.fab,.askpanel{display:none !important;}}

/* ===================== AI Search & Visibility ===================== */
.eng{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;}
.engcard{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:15px 16px 14px;
  box-shadow:var(--lift),var(--inner);min-width:0;}
.engcard .eh{display:flex;align-items:center;gap:9px;margin-bottom:12px;}
/* a hairline ring so a near-black or near-white brand chip stays defined in both themes */
.engcard .logo{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex:none;color:#fff;
  box-shadow:inset 0 0 0 1px rgba(127,134,148,.42);}
.engcard .logo svg{width:17px;height:17px;}
.engcard .en{font-size:12.5px;font-weight:600;letter-spacing:-.018em;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.engcard .dir{display:flex;align-items:center;gap:7px;}
.engcard .arrow{font-size:15px;line-height:1;font-weight:700;}
.engcard .arrow.up{color:var(--good);} .engcard .arrow.dn{color:var(--crit);}
.engcard .arrow.flat{color:var(--muted);}
.engcard .dirtxt{font-size:11.5px;color:var(--muted);line-height:1.4;}
.engcard .dirtxt b{color:var(--text-2);font-weight:600;}
.engcard .spark{margin-top:11px;height:28px;}
.engcard .spark svg{display:block;width:100%;height:28px;}
.engcard .vis{margin-top:11px;padding-top:10px;border-top:1px solid var(--border);
  font-size:11px;color:var(--muted);line-height:1.45;}
.engcard .vis b{color:var(--text);font-weight:600;}
@media (max-width:860px){.eng{grid-template-columns:repeat(2,minmax(0,1fr));}}

.cite{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:11px;
  overflow:hidden;box-shadow:var(--lift);}
.citehead,.citerow{display:grid;grid-template-columns:minmax(0,1fr) 128px 86px 76px;gap:14px;
  align-items:center;padding:12px 16px;}
.citehead{background:var(--surface-2);font:600 9.5px/1.3 'IBM Plex Mono',monospace;letter-spacing:.085em;
  text-transform:uppercase;color:var(--faint);}
.citehead div:nth-child(3),.citehead div:nth-child(4){text-align:right;}
.citerow{background:var(--surface);transition:background .12s;}
.citerow:hover{background:var(--surface-2);}
.citerow .pg{font-size:13px;font-weight:600;letter-spacing:-.015em;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.citerow .pg small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0;
  margin-top:2px;}
.citerow .marks{min-width:0;}
.citerow .bar{height:8px;border-radius:5px;background:var(--sunk);overflow:hidden;}
.citerow .bar i{display:block;height:100%;border-radius:5px;background:var(--s4);}
.citerow .tr{text-align:right;}
@media (max-width:760px){.citehead,.citerow{grid-template-columns:minmax(0,1fr) 76px;}
  .citehead div:nth-child(2),.citehead div:nth-child(3),.citerow .marks,.citerow .bar{display:none;}}

.prompts{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:11px;
  overflow:hidden;box-shadow:var(--lift);}
.prow{background:var(--surface);padding:13px 16px;display:grid;
  grid-template-columns:minmax(0,1fr) 150px;gap:14px;align-items:center;}
.prow:hover{background:var(--surface-2);}
.prow .q{font-size:13px;line-height:1.5;color:var(--text);min-width:0;}
.prow .q em{font-style:normal;color:var(--muted);display:block;font-size:11px;margin-top:3px;}
.prow .marks{min-width:0;text-align:right;}
@media (max-width:620px){.prow{grid-template-columns:minmax(0,1fr);} .prow .marks{justify-content:flex-start;}}

h3.subhead{font-size:15.5px;font-weight:700;letter-spacing:-.025em;margin:28px 0 4px;color:var(--text);}
h3.subhead:first-of-type{margin-top:22px;}

/* A tooltip for the sentence that explains a number. It belongs next to the number,
   not in a paragraph underneath it that nobody reads twice. */
.tip{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex:none;
  border-radius:50%;border:1px solid var(--border-2);background:var(--surface-2);color:var(--muted);
  cursor:help;font:700 9px/1 'Instrument Sans',sans-serif;margin-left:6px;padding:0;position:relative;
  vertical-align:middle;}
.tip:hover,.tip:focus-visible{color:var(--text);border-color:var(--accent);outline:none;}
.tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 9px);
  transform:translateX(-50%);width:270px;max-width:68vw;background:var(--tipbg);color:var(--tipfg);
  font:400 11.5px/1.55 'Instrument Sans',sans-serif;letter-spacing:-.004em;text-align:left;
  padding:10px 12px;border-radius:9px;opacity:0;pointer-events:none;transition:opacity .14s;z-index:55;
  box-shadow:0 12px 30px -10px rgba(8,14,24,.5);text-transform:none;}
.tip:hover::after,.tip:focus-visible::after{opacity:1;}
.tip.r::after{left:auto;right:-6px;transform:none;}

/* a quiet link where a button was shouting */
.ans .learn{display:inline-flex;align-items:center;gap:4px;font:600 12px/1 'Instrument Sans',sans-serif;
  color:var(--sec,var(--accent));cursor:pointer;list-style:none;border:0;background:none;padding:0;
  border-bottom:1px solid color-mix(in srgb,var(--sec,var(--accent)) 35%,transparent);}
.ans .learn:hover{border-bottom-color:var(--sec,var(--accent));}
.ans .learn svg{width:11px;height:11px;transition:transform .16s;}
.ans details[open] .learn svg{transform:rotate(90deg);}

/* a section's own sub-heading, at a readable size */
h3.subhead{font-size:17px;font-weight:700;letter-spacing:-.028em;margin:30px 0 5px;color:var(--text);
  display:flex;align-items:center;}
h3.subhead:first-of-type{margin-top:24px;}
.leadin{margin:0 0 12px;font-size:13px;line-height:1.6;color:var(--text-2);}
.leadin b{color:var(--text);font-weight:600;}

/* the board chart's hover readout */
.b-chart{position:relative;}
.btip{position:absolute;transform:translate(-50%,-100%);background:#0B1626;color:#F3F7FC;
  border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:7px 10px;pointer-events:none;
  font:500 11px/1.45 'Instrument Sans',sans-serif;white-space:nowrap;z-index:5;
  box-shadow:0 10px 24px -8px rgba(0,0,0,.5);}
.btip b{display:block;font:700 12.5px/1.2 'Instrument Sans',sans-serif;letter-spacing:-.02em;}
.btip[hidden]{display:none;}
.b-chart .ax{font:500 9.5px/1 'IBM Plex Mono',monospace;fill:#6D86A6;letter-spacing:.04em;}

/* Signal Insights: a byline bar, not a card */
.insbar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin:4px 0 14px;padding-bottom:13px;
  border-bottom:1px solid var(--border);}
.insbar .ib-mark{font:700 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.14em;color:var(--sec,var(--accent));
  background:color-mix(in srgb,var(--sec,var(--accent)) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--sec,var(--accent)) 30%,transparent);
  border-radius:6px;padding:6px 8px;}
.insbar .ib-t{flex:1;min-width:190px;font-size:12.5px;color:var(--muted);}
.ins-item{display:flex;flex-direction:column;}
.ins-lab{font:600 9.5px/1 'IBM Plex Mono',monospace;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin-bottom:8px;position:relative;}
.ins-go{margin-top:auto;padding-top:12px;align-self:flex-start;background:none;border:0;cursor:pointer;
  font:600 11.5px/1 'Instrument Sans',sans-serif;color:var(--sec,var(--accent));position:relative;}
.ins-go:hover{text-decoration:underline;}

/* ---------- ad spend pacing ---------- */
.pace{display:flex;flex-direction:column;gap:11px;}
.pace-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.pace-lab{font:700 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);}
.pace-var{margin-left:auto;font:700 11.5px/1 'Instrument Sans',sans-serif;letter-spacing:-.01em;
  border-radius:999px;padding:7px 12px;}
.pace-var.under{color:var(--good);background:color-mix(in srgb,var(--good) 13%,transparent);
  border:1px solid color-mix(in srgb,var(--good) 32%,transparent);}
.pace-var.over{color:var(--crit);background:color-mix(in srgb,var(--crit) 13%,transparent);
  border:1px solid color-mix(in srgb,var(--crit) 32%,transparent);}
.pace-bar{position:relative;height:40px;background:var(--sunk);border:1px solid var(--border);
  border-radius:10px;overflow:visible;}
.pace-bar .spent{position:absolute;left:0;top:0;bottom:0;border-radius:9px 0 0 9px;display:flex;
  align-items:center;padding-left:12px;
  background:linear-gradient(135deg,var(--sec),color-mix(in srgb,var(--sec) 58%,var(--s1)));
  box-shadow:0 2px 10px -2px color-mix(in srgb,var(--sec) 55%,transparent);}
.pace-bar .spent span{font:700 13px/1 'Instrument Sans',sans-serif;color:#fff;letter-spacing:-.025em;
  text-shadow:0 1px 2px rgba(0,0,0,.25);white-space:nowrap;}
.pace-bar .proj{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,
  color-mix(in srgb,var(--sec) 30%,transparent) 0 6px, transparent 6px 12px);}
.pace-bar .plan{position:absolute;top:-7px;bottom:-7px;}
.pace-bar .plan i{position:absolute;top:0;bottom:0;width:2px;background:var(--text);border-radius:1px;}
.pace-bar .plan b{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font:700 9px/1 'IBM Plex Mono',monospace;letter-spacing:.08em;color:var(--text-2);}
.pace-key{display:flex;gap:18px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-top:14px;}
.pace-key span{display:inline-flex;align-items:center;gap:7px;}
.pace-key b{color:var(--text);font-weight:600;font-family:'IBM Plex Mono',monospace;letter-spacing:-.03em;}
.pace-key i{width:10px;height:10px;border-radius:3px;flex:none;}
.pace-key .k1{background:var(--sec);}
.pace-key .k2{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--sec) 45%,transparent) 0 3px,transparent 3px 6px);
  box-shadow:inset 0 0 0 1px var(--border-2);}
.pace-key .k3{background:var(--text);}

/* Signal Insights closes with the action, as the fourth card rather than a bar above the row. */
.ins{grid-template-columns:repeat(4,minmax(0,1fr));}
.ins-item.go{background:linear-gradient(160deg,color-mix(in srgb,var(--sec,var(--accent)) 11%,var(--surface)),var(--surface));
  border-color:color-mix(in srgb,var(--sec,var(--accent)) 34%,transparent);
  display:flex;flex-direction:column;justify-content:space-between;}
.ins-item.go .ins-lab{color:var(--sec,var(--accent));}
.ins-item.go h4{max-width:none;font-size:14.5px;}
.ins-item.go .gobtn{margin-top:14px;align-self:flex-start;background:var(--sec,var(--accent));color:#fff;
  border:0;border-radius:8px;padding:9px 13px;cursor:pointer;
  font:600 12px/1 'Instrument Sans',sans-serif;}
.ins-item.go .gobtn:hover{filter:brightness(1.07);}
.ins-item.go .ask{margin-top:9px;background:none;border:0;padding:0;cursor:pointer;align-self:flex-start;
  font:600 11.5px/1 'Instrument Sans',sans-serif;color:var(--muted);text-decoration:underline;}
.ins-item.go .ask:hover{color:var(--text-2);}
@media (max-width:1080px){.ins{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.ins{grid-template-columns:minmax(0,1fr);}}

/* engines named rather than badged, inside tables */
.engnames{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;
  font:600 11px/1.5 'Instrument Sans',sans-serif;letter-spacing:-.008em;}
.engnames span.on{color:var(--text);}
.engnames span.off{color:var(--faint);text-decoration:line-through;text-decoration-thickness:1px;
  font-weight:500;}
.engnames i{color:var(--faint);font-style:normal;font-weight:400;opacity:.8;}
.citehead,.citerow{grid-template-columns:minmax(0,1fr) 196px 100px 86px;}
.prow{grid-template-columns:minmax(0,1fr) 210px;}
@media (max-width:860px){.citehead,.citerow{grid-template-columns:minmax(0,1fr) 86px;}
  .prow{grid-template-columns:minmax(0,1fr);} .prow .marks{text-align:left;}}

/* ---------- the period control, per section ----------
   Quiet by design: it belongs to the section, and a prominent segmented control
   in seven places would shout seven times. */
.blockhead{position:relative;}
.secper{display:inline-flex;gap:2px;margin-top:10px;padding:2px;border-radius:7px;
  background:var(--surface-2);border:1px solid var(--border);}
.secper button{font:500 11px/1 'Instrument Sans',sans-serif;border:0;background:transparent;
  color:var(--muted);padding:5px 9px;border-radius:5px;cursor:pointer;white-space:nowrap;
  transition:color .12s,background .12s;}
.secper button:hover{color:var(--text-2);}
.secper button[aria-pressed="true"]{background:var(--surface);
  color:var(--sec,var(--accent));box-shadow:var(--lift),0 0 0 1px var(--hair);font-weight:600;}
.secper button:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
