:root{--fg:#1a1d23;--muted:#5b6472;--bg:#fff;--soft:#f5f7fa;--line:#e1e5ea;--accent:#2b5dd1;
  /* pill backgrounds: darkened so white text meets WCAG AA (>=4.5:1) at pill text size */
  --paper:#2b5dd1;--code:#1a855b;--infer:#976e09;--flag:#c0392b;
  --crit:#c0392b;--high:#af601a;--med:#926e10;--low:#6c7778;--green:#1a855b;--red:#c0392b;}
*{box-sizing:border-box;}
body{font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--fg);background:var(--bg);margin:0;}
a{color:var(--accent);text-decoration:none;} a:hover{text-decoration:underline;}
/* WCAG 1.4.1: links inside running text are underlined so they aren't distinguished by color alone */
.wrap p a,.wrap li a,.wrap td a,.wrap th a,.hero .meta a,.callout a,.finding a,.example a,.toc a,.foot-note a,ol.footnotes a{text-decoration:underline;}
#root a{text-decoration:underline;}
.wrap a.tag,.wrap a.card,.wrap a.card *{text-decoration:none;}
code{background:var(--soft);padding:1px 5px;border-radius:4px;font-size:0.88em;font-family:"SF Mono","JetBrains Mono",Consolas,monospace;}
header.site{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.92);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line);}
.site-inner{max-width:960px;margin:0 auto;padding:11px 28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.brand{font-weight:700;letter-spacing:-0.01em;color:var(--fg);}
header.site nav{display:flex;gap:18px;font-size:0.9rem;margin-left:auto;}
header.site nav a.on{color:var(--fg);font-weight:650;border-bottom:2px solid var(--accent);}
.wrap{max-width:960px;margin:0 auto;padding:34px 28px 110px;}
.hero h1{font-size:2rem;margin:10px 0 8px;letter-spacing:-0.01em;}
.hero .meta{color:var(--muted);font-size:0.9rem;}
.hero .lead{font-size:1.05rem;margin:18px 0 8px;max-width:70ch;}
.page-title{font-size:1.9rem;margin:14px 0 18px;letter-spacing:-0.01em;}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:34px 0 28px;}
/* long content that must not widen the page on any screen */
pre{overflow-x:auto;}
.katex-display{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:2px 0;}
/* wide tables scroll inside a wrapper instead of widening (and zooming out) the page */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
@media(max-width:680px){
  .cards{grid-template-columns:1fr;}
  .wrap{padding:24px 16px 80px;}
  .site-inner{padding:11px 16px;}
  header.site nav{gap:14px;}
  /* let long code / source refs / TOC entries wrap instead of overflowing */
  code{overflow-wrap:anywhere;}
  a.srcref{white-space:normal;}
  .toc a{white-space:normal;}
}
.card{display:block;border:1px solid var(--line);border-radius:0;padding:22px 24px;background:#fbfdff;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s;}
.card:hover{background-color:var(--accent);border-color:var(--accent);box-shadow:0 8px 24px rgba(43,93,209,0.25);transform:translateY(-2px);text-decoration:none;}
.card h2{margin:0 0 8px;font-size:1.25rem;color:var(--accent);transition:color .15s;}
.card p{margin:0;color:var(--fg);font-size:0.95rem;transition:color .15s;}
.card:hover h2,.card:hover p,.card:hover em,.card:hover strong{color:#fff;}
.card:hover code{background:rgba(255,255,255,0.18);color:#fff;}
.foot-note{color:var(--muted);font-size:0.9rem;border-top:1px solid var(--line);padding-top:16px;margin-top:30px;}
h2{font-size:1.45rem;margin:46px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line);}
h3{font-size:1.3rem;margin:38px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line);}
h4{font-size:1.06rem;margin:24px 0 8px;color:var(--accent);}
p,li{color:var(--fg);}
table{border-collapse:collapse;width:100%;margin:16px 0;font-size:0.9rem;}
th,td{border:1px solid var(--line);padding:8px 11px;text-align:left;vertical-align:top;}
th{background:var(--soft);font-weight:600;} tbody tr:nth-child(even){background:#fafbfc;}
pre.mermaid{background:none;border:none;text-align:center;margin:10px 0;}
svg{max-width:100%;height:auto;}
figure.fig{margin:20px 0;text-align:center;} figure.fig figcaption{font-size:0.82rem;color:var(--muted);margin-top:8px;}
.example{background:#f3f8ff;border:1px solid #cfe0ff;border-radius:9px;padding:4px 22px 16px;margin:20px 0;}
.example h4{margin:16px 0 4px;}
.tag{display:inline-block;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;padding:1px 7px;border-radius:4px;vertical-align:middle;color:#fff;}
.tag-paper{background:var(--paper);} .tag-code{background:var(--code);} .tag-infer{background:var(--infer);} .tag-flag{background:var(--flag);}
a.tag{text-decoration:none;} a.tag:hover{filter:brightness(1.12);text-decoration:none;} .tag-paper[title],.tag-code[title]{cursor:help;} a.tag.tag-code{cursor:pointer;}
a.srcref{font-family:"SF Mono",Consolas,monospace;white-space:nowrap;}
.legend{font-size:0.82rem;color:var(--muted);} .legend span{margin-right:14px;}
.key{font-size:0.8rem;color:var(--muted);}
.finding{border:1px solid var(--line);border-left-width:5px;border-radius:6px;padding:14px 16px;margin:16px 0;background:#fff;}
.finding.sev-critical{border-left-color:var(--crit);} .finding.sev-high{border-left-color:var(--high);}
.finding.sev-medium{border-left-color:var(--med);} .finding.sev-low{border-left-color:var(--low);} .finding.sev-good{border-left-color:var(--code);}
.finding .f-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px;} .finding .f-title{font-weight:700;font-size:1.02rem;}
.sev{font-size:0.7rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:4px;color:#fff;}
.sev-critical .sev{background:var(--crit);} .sev-high .sev{background:var(--high);} .sev-medium .sev{background:var(--med);} .sev-low .sev{background:var(--low);} .sev-good .sev{background:var(--code);}
.finding .loc{font-family:"SF Mono",Consolas,monospace;font-size:0.82rem;color:var(--muted);} .finding .conf{color:var(--muted);font-size:0.85rem;}
.callout{background:#fff8e1;border:1px solid #f0d98a;border-radius:6px;padding:12px 16px;margin:16px 0;} .callout.uncertain{background:#fdeceaff;border-color:#e8b4ad;}
sup a{font-size:0.72em;padding:0 1px;}
ol.footnotes{font-size:0.84rem;color:var(--muted);border-top:1px solid var(--line);margin-top:48px;padding-top:18px;} ol.footnotes li{margin-bottom:7px;}
@media print{a{color:var(--fg);} header.site{position:static;} .wrap{max-width:none;padding:0;} pre.mermaid,.finding{break-inside:avoid;}}
/* paper-tag hover tooltip (reliable, unlike the native title popup) */
.tag-paper{position:relative;}
.tag-paper[title]:hover::after{content:attr(title);position:absolute;left:0;bottom:150%;z-index:60;width:max-content;max-width:340px;white-space:normal;text-transform:none;letter-spacing:normal;font-weight:400;font-style:normal;font-size:0.78rem;line-height:1.4;color:#fff;background:#1a1d23;padding:7px 10px;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,0.2);}
/* in-page nav: TOC line + back-to-top arrows */
h2,h3,h4,.toc{scroll-margin-top:64px;}
.toc{font-size:0.92rem;margin:10px 0 4px;}
.toc a{white-space:nowrap;}
.totop{font-size:0.8em;margin:24px 0 -14px;}
.totop a{color:var(--muted);text-decoration:none;}
.totop a:hover{color:var(--accent);}
/* params section tabs: underline style; the active tab carries its section colour */
.subnav{display:flex;flex-wrap:wrap;gap:2px;margin:8px 0 18px;border-bottom:2px solid var(--line);}
.subnav-item{display:inline-block;padding:9px 18px;color:var(--muted);background:none;
  font-size:1.14rem;font-weight:600;letter-spacing:0.01em;line-height:1.2;text-decoration:none;
  border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;}
.subnav a.subnav-item:hover{color:var(--fg);border-bottom-color:var(--line);text-decoration:none;}
.subnav-item.current{cursor:default;}
.subnav-item.current.sn-primer{color:#6741d9;border-bottom-color:#6741d9;}
.subnav-item.current.sn-spec{color:#2b5dd1;border-bottom-color:#2b5dd1;}
.subnav-item.current.sn-gaps{color:#c0392b;border-bottom-color:#c0392b;}
.subnav-item.current.sn-fix{color:#1a855b;border-bottom-color:#1a855b;}
.subnav-item.current.sn-cost{color:#b5510a;border-bottom-color:#b5510a;}
.subnav-desc{color:var(--muted);font-size:1.02rem;line-height:1.55;margin:0 0 22px;max-width:72ch;}
/* Section nav (left, vertical) + tag legend (right, vertical), centres aligned */
.navlegend{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;margin:14px 0 26px;}
.navlegend .toc{order:0;display:flex;flex-direction:column;gap:8px;margin:0;}
.navlegend .toc a{white-space:nowrap;}
.navlegend .legend{order:1;display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:0;}
.navlegend .legend span{margin-right:0;}
@media (max-width:640px){.navlegend{gap:18px;}}
