:root{
  color-scheme:light;
  --bg:#f3f6f6; --surface:#ffffff; --surface-2:#eaf0f1; --ink:#13232d; --ink-2:#3d4d57; --muted:#5f6f78;
  --rule:#d9e1e4; --grid:#e6ecee; --accent:#0f6e78; --accent-wash:#dcecee;
  --good:#0ca30c; --good-ink:#0b6b12; --good-wash:#e2f3e2; --critical:#d03b3b; --critical-ink:#a42a2a; --critical-wash:#fbe7e7;
  --partial-ink:#7a5200; --partial-wash:#fff1d1; --warn-wash:#fff4dc; --warn-ink:#7a5200;
  --f-jev:#2a78d6; --f-decider:#eb6834; --f-anyjev:#1baf7a; --f-gliner:#eda100; --f-laya:#e87ba4; --f-julia:#008300;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a;
  --seq-0:#f2f7fd; --seq-1:#cde2fb; --seq-2:#9ec5f4; --seq-3:#6da7ec; --seq-4:#3987e5; --seq-5:#256abf; --seq-6:#184f95; --seq-7:#0d366b;
  --sans:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0e1518; --surface:#162024; --surface-2:#1d292e; --ink:#e6eef0; --ink-2:#c3d0d5; --muted:#93a4ab;
    --rule:#2b393f; --grid:#223036; --accent:#56b8c2; --accent-wash:#1b3338;
    --good:#2fbf37; --good-ink:#6fd876; --good-wash:#17311b; --critical:#e66767; --critical-ink:#f09a9a; --critical-wash:#3a1d1e;
    --partial-ink:#f0c46a; --partial-wash:#33290f; --warn-wash:#33290f; --warn-ink:#f0c46a;
    --f-jev:#3987e5; --f-decider:#d95926; --f-anyjev:#199e70; --f-gliner:#c98500; --f-laya:#d55181; --f-julia:#008300;
    --s1:#3987e5; --s2:#d95926; --s3:#199e70;
    --seq-0:#18252b; --seq-1:#104281; --seq-2:#184f95; --seq-3:#1c5cab; --seq-4:#256abf; --seq-5:#3987e5; --seq-6:#6da7ec; --seq-7:#9ec5f4;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0e1518; --surface:#162024; --surface-2:#1d292e; --ink:#e6eef0; --ink-2:#c3d0d5; --muted:#93a4ab;
  --rule:#2b393f; --grid:#223036; --accent:#56b8c2; --accent-wash:#1b3338;
  --good:#2fbf37; --good-ink:#6fd876; --good-wash:#17311b; --critical:#e66767; --critical-ink:#f09a9a; --critical-wash:#3a1d1e;
  --partial-ink:#f0c46a; --partial-wash:#33290f; --warn-wash:#33290f; --warn-ink:#f0c46a;
  --f-jev:#3987e5; --f-decider:#d95926; --f-anyjev:#199e70; --f-gliner:#c98500; --f-laya:#d55181; --f-julia:#008300;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70;
  --seq-0:#18252b; --seq-1:#104281; --seq-2:#184f95; --seq-3:#1c5cab; --seq-4:#256abf; --seq-5:#3987e5; --seq-6:#6da7ec; --seq-7:#9ec5f4;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px;padding-block:28px 64px;display:grid;gap:26px}
h1,h2,h3{text-wrap:balance;line-height:1.15;margin:0}
h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.02em}
h2{font-size:clamp(20px,2.6vw,24px)}
h3{font-size:16px}
p{margin:0}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lede{color:var(--ink-2);max-width:75ch}
.pagehead{display:grid;gap:8px}
.muted{color:var(--muted)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:18px;display:grid;gap:14px;min-width:0}
.controls{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.ctl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ctl > label,.ctl > .lab{font-size:13px;color:var(--muted)}
select,input[type=search]{font:inherit;font-size:14px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 10px;max-width:100%}
input[type=search]{min-width:0;width:220px}
.chip{font:inherit;font-size:14px;border:1px solid var(--rule);background:var(--surface);color:var(--ink-2);border-radius:99px;padding:5px 12px;cursor:pointer}
.chip:hover{border-color:var(--muted);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.fam{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;color:var(--ink-2)}
.fam input{accent-color:var(--accent)}
.sw{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
.note{font-size:14px;border-radius:8px;padding:10px 12px;background:var(--surface-2);color:var(--ink-2)}
.note.warn{background:var(--warn-wash);color:var(--warn-ink)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--ink-2)}
.legend span{display:inline-flex;gap:6px;align-items:center}
.tablewrap{overflow-x:auto;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.03em;white-space:nowrap}
td.n,th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.chart{position:relative;width:100%}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{font-family:var(--sans);fill:var(--ink-2)}
.chart .tick{font-family:var(--mono);font-size:11px;fill:var(--muted)}
.tip{position:fixed;pointer-events:none;background:var(--ink);color:var(--surface);border-radius:8px;padding:9px 11px;font-size:13px;line-height:1.35;max-width:300px;box-shadow:0 6px 20px rgba(0,0,0,.18);opacity:0;transition:opacity .08s;z-index:30}
.tip b{font-family:var(--mono);font-size:15px;font-weight:500}
.tip .k{opacity:.75}
/* verdict badges: shape + text, never colour alone */
.v{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:1px 6px;font-size:13px;line-height:1.5;white-space:nowrap}
.v.ok{background:var(--good-wash);color:var(--good-ink)}
.v.half{background:var(--partial-wash);color:var(--partial-ink)}
.v.bad{background:var(--critical-wash);color:var(--critical-ink)}
.v .ic{font-family:var(--mono);font-weight:500}
.prob{font-family:var(--mono);font-size:12px;color:var(--muted)}
.loading{color:var(--muted);font-size:14px}
code{font-family:var(--mono);font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:4px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
footer.site{border-top:1px solid var(--rule);padding-top:16px;font-size:13px;color:var(--muted);display:grid;gap:4px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
