
:root {
  --cyan-050:#e6f7fe; --cyan-500:#00b0f0; --cyan-600:#0096ce; --cyan-700:#0079a8;
  --amber-050:#fff6dc; --amber-500:#ffc000; --ink:#141a22; --ink-700:#3a4654;
  --body-c:#5a6675; --muted:#8a94a2; --rule:#e4e9ef; --bg:#ffffff; --bg-soft:#f5f8fb;
  --surface:#0e1620; --critical:#d03b3b; --zone:rgba(208,59,59,0.06); --zonelbl:#c56a6a;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100;
  --grid:#e9edf2; --axis:#c9d1da; --tick:#8a94a2;
  --mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --display:"Raleway", system-ui, sans-serif;
  --sans:"Lato", system-ui, sans-serif;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
:root { color-scheme: only light; }
html,body { margin:0; }
body { font:400 16px/1.62 var(--sans); color:var(--body-c); background:var(--bg-soft); }
a { color:var(--cyan-700); }
.wrap { max-width:880px; margin:0 auto; padding:28px 24px 80px; }
.topbar { display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid var(--rule); }
.topbar img { height:30px; }
.topbar .crumb { font:700 11px var(--sans); letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); }
.topbar .crumb a { color:var(--cyan-700); text-decoration:none; }
.topbar .spacer { flex:1; }
.topbar .who { font:400 11px var(--mono); color:var(--muted); }
h1 { font:800 clamp(26px,4.5vw,36px)/1.15 var(--display); color:var(--ink); margin:20px 0 8px; text-wrap:balance; }
h2 { font:800 20px/1.25 var(--display); color:var(--ink); margin:34px 0 10px; }
.eyebrow { font:700 11px var(--sans); letter-spacing:0.14em; text-transform:uppercase; color:var(--cyan-700); margin-top:26px; }
.eyebrow span { color:var(--muted); }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.chip { font:700 10px var(--sans); letter-spacing:0.1em; text-transform:uppercase;
  border:1px solid var(--rule); border-radius:999px; padding:4px 11px; color:var(--muted); background:var(--bg); }
.chip.src { color:var(--cyan-700); border-color:#9edcf5; }
.chip.lead { color:var(--ink); background:var(--amber-050); border-color:#f2dc9c; }
p { margin:13px 0; max-width:70ch; }
.card { background:var(--bg); border:1px solid var(--rule); border-radius:12px; padding:20px 22px; margin:18px 0; }
figure { margin:22px 0 6px; }
figcaption { font:700 10px var(--sans); letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.chartbox { overflow-x:auto; }
.chart { width:100%; min-width:560px; height:auto; display:block; background:var(--bg); border:1px solid var(--rule); border-radius:10px; }
.chart .grid { stroke:var(--grid); stroke-width:1; }
.chart .axis { stroke:var(--axis); stroke-width:1; }
.chart .tick { font:400 10px var(--mono); fill:var(--tick); }
.chart .tick2 { fill:var(--muted); }
.chart .zone { fill:var(--zone); }
.chart .zonelbl { font:700 9px var(--sans); letter-spacing:0.1em; text-transform:uppercase; fill:var(--zonelbl); }
.chart .marker { stroke:var(--critical); stroke-width:1.5; stroke-dasharray:4 4; }
.chart .markerlbl { font:700 10px var(--sans); fill:var(--critical); }
.chart .note { font:italic 11px var(--sans); fill:var(--muted); }
.chart .line { fill:none; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; }
.chart .dot { stroke:var(--bg); stroke-width:1.5; }
.chart .endlbl { font:700 11px var(--sans); }
.chart .s1 { stroke:var(--s1); } .chart circle.s1 { fill:var(--s1); } .chart text.s1 { fill:var(--s1); stroke:none; }
.chart .s2 { stroke:var(--s2); } .chart circle.s2 { fill:var(--s2); } .chart text.s2 { fill:var(--s2); stroke:none; }
.chart .s3 { stroke:var(--s3); } .chart circle.s3 { fill:var(--s3); } .chart text.s3 { fill:var(--s3); stroke:none; }
.chart .s4 { stroke:var(--s4); } .chart circle.s4 { fill:var(--s4); } .chart text.s4 { fill:var(--s4); stroke:none; }
.chart .bar { fill:var(--s1); }
/* timeline */
.timeline { min-width:640px; }
.timeline .lanelbl { font:700 10px var(--sans); letter-spacing:0.12em; fill:var(--muted); }
.timeline .cyanlbl { fill:var(--cyan-700); }
.timeline .stem { stroke:var(--axis); stroke-width:1; }
.timeline .sigdot { fill:var(--s1); stroke:var(--bg); stroke-width:1.5; }
.timeline .pubdot { fill:var(--critical); stroke:var(--bg); stroke-width:1.5; }
.timeline .evlbl { font:600 10.5px var(--sans); fill:var(--ink-700); }
.timeline .leadband { fill:rgba(0,176,240,0.07); }
.timeline .leadhalo { fill:var(--bg); opacity:0.85; }
.timeline .dashedband { fill:rgba(0,176,240,0.045); }
.timeline .leadlbl { font:800 11px var(--display); letter-spacing:0.08em; fill:var(--cyan-700); text-transform:uppercase; }
.verdict { background:var(--bg); border:1px solid var(--rule); border-left:3px solid var(--amber-500);
  border-radius:0 10px 10px 0; padding:14px 18px; color:var(--ink); margin:22px 0; }
.vlabel { display:block; font:700 10px var(--sans); letter-spacing:0.12em; text-transform:uppercase; color:var(--cyan-700); margin-bottom:3px; }
.facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; margin:14px 0; }
.fact { background:var(--bg); border:1px solid var(--rule); border-radius:10px; padding:12px 14px; }
.fact .k { font:700 9.5px var(--sans); letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); }
.fact .v { font:700 14px var(--sans); color:var(--ink); margin-top:2px; }
ul.links { padding-left:0; list-style:none; margin:10px 0; }
ul.links li { margin:8px 0; padding-left:0; max-width:76ch; }
ul.links .lnote { color:var(--muted); font-size:14px; }
.kit { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin:16px 0; }
.kit a.tile { display:block; background:var(--bg); border:1px solid var(--rule); border-radius:10px;
  padding:14px 16px; text-decoration:none; transition:border-color 150ms ease; }
.kit a.tile:hover { border-color:var(--cyan-500); }
.kit .tk { font:700 10px var(--sans); letter-spacing:0.1em; text-transform:uppercase; color:var(--cyan-700); }
.kit .tv { font:700 14px var(--sans); color:var(--ink); margin-top:2px; }
.kit .td { font:400 12.5px var(--sans); color:var(--muted); margin-top:2px; }
.copyblock { position:relative; background:var(--bg); border:1px solid var(--rule); border-radius:10px; padding:16px 18px; margin:14px 0; }
.copyblock pre { white-space:pre-wrap; font:400 14px/1.55 var(--sans); color:var(--ink-700); margin:0; }
.copyblock .cb-label { font:700 10px var(--sans); letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:8px; }
.copy-btn { position:absolute; top:12px; right:12px; font:700 12px var(--sans); padding:5px 12px;
  border-radius:8px; border:1px solid var(--rule); background:var(--bg); cursor:pointer; }
.copy-btn:hover { border-color:var(--cyan-500); color:var(--cyan-700); }
.copy-btn.copied { background:var(--cyan-500); color:var(--ink); border-color:var(--cyan-500); }
.cases-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin:24px 0; }
.pdf-bar { display:flex; justify-content:flex-end; margin:18px 0 -6px; }
.pdf-btn { font:700 12px var(--sans); letter-spacing:0.08em; text-transform:uppercase; color:#fff; background:var(--cyan-600); padding:9px 16px; border-radius:6px; text-decoration:none; }
.pdf-btn:hover, .pdf-btn:focus-visible { background:var(--cyan-700); }
.cs-group { font:800 20px var(--display); color:var(--ink); margin:30px 0 2px; display:flex; align-items:center; gap:10px; }
.cs-count { font:600 12px var(--mono); color:var(--muted); background:var(--rule); border-radius:10px; padding:2px 8px; }
.cs-group-sub { margin:0; color:var(--muted); font-size:14px; }
.report-intro { margin:18px 0 10px; display:grid; gap:8px; }
.report-frame { width:100%; border:0; display:block; min-height:1200px; background:var(--bg); }
a.case-card { display:block; background:var(--bg); border:1px solid var(--rule); border-radius:12px;
  padding:18px 20px; text-decoration:none; transition:border-color 150ms ease, transform 150ms ease; }
a.case-card:hover { border-color:var(--cyan-500); transform:translateY(-1px); }
.case-card .num { font:600 12px var(--mono); color:var(--cyan-700); }
.case-card h3 { font:800 17px/1.25 var(--display); color:var(--ink); margin:6px 0 6px; }
.case-card .one { font:400 13.5px/1.5 var(--sans); color:var(--body-c); }
.case-card .leadrow { margin-top:10px; }
.footer { border-top:1px solid var(--rule); margin-top:52px; padding-top:14px;
  display:flex; justify-content:space-between; font:400 11px var(--mono); color:var(--muted); }
#tip { position:fixed; pointer-events:none; background:var(--ink); color:#fff;
  font:700 12px var(--sans); padding:5px 10px; border-radius:6px; opacity:0; transition:opacity .12s; z-index:10; white-space:nowrap; }
.login-wrap { min-height:80vh; display:flex; align-items:center; justify-content:center; }
.login-card { width:330px; background:var(--bg); border:1px solid var(--rule); border-radius:12px; padding:28px; display:flex; flex-direction:column; gap:8px; }
.login-card input { font:400 14px var(--sans); padding:9px 12px; border:1px solid var(--rule); border-radius:8px; }
.login-card button { font:700 14px var(--sans); padding:9px 12px; border-radius:8px; border:0; background:var(--cyan-500); color:var(--ink); cursor:pointer; }
.login-err { color:var(--critical); font-size:13px; min-height:18px; margin:0; }

/* watch sections */
.case { border-top:1px solid var(--rule); margin-top:48px; padding-top:30px; }
.casehead { display:flex; align-items:baseline; gap:14px; }
.casehead .num { font:600 15px var(--mono); color:var(--cyan-700); }
.casehead h2 { margin:0; }
/* section nav */
.site-nav { display:flex; gap:4px; border-bottom:1px solid var(--rule); margin-bottom:8px; overflow-x:auto; }
.site-nav a { font:700 11px var(--sans); letter-spacing:0.1em; text-transform:uppercase;
  color:var(--muted); text-decoration:none; padding:10px 14px 9px; border-bottom:2px solid transparent; white-space:nowrap; }
.site-nav a:hover { color:var(--cyan-700); }
.site-nav a.active { color:var(--cyan-700); border-bottom-color:var(--cyan-500); }
.site-nav a.ext { margin-left:auto; }
/* watch page */
.sig { font:700 12px var(--sans); letter-spacing:0.06em; text-transform:uppercase; color:var(--cyan-700); }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:26px 0 8px; }
.stat { background:var(--bg); border:1px solid var(--rule); border-radius:8px; padding:14px 16px; }
.stat .v { font:800 28px var(--display); color:var(--ink); }
.stat .l { font:700 10px var(--sans); letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-top:2px; }
.private-chip { display:inline-block; font:700 10px var(--sans); letter-spacing:0.12em; text-transform:uppercase;
  color:var(--critical); border:1px solid var(--critical); border-radius:4px; padding:2px 8px; margin-left:8px; vertical-align:middle; }
.twocol { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin-top:16px; }
.collbl { font:700 10px var(--sans); letter-spacing:0.12em; text-transform:uppercase; margin-bottom:4px; }
.collbl.confirm { color:var(--critical); }
.collbl.clearlbl { color:#0a8a4a; }
.twocol ul { margin:4px 0; padding-left:18px; }
.twocol li { margin:5px 0; font-size:14.5px; }

@media print {
  .topbar .who, .kit, #tip { display:none !important; }
  body { background:#fff; }
}
