/* report.css — the one stylesheet of the summary and the symbol page (modules/REPORTS#assets).
   Dark theme only. Tokens on :root; the font URLs carry the first 12 hex of each file's SHA-256 so the
   immutable cache of /static never serves a replaced font; geometry through per-element custom properties, the one inline
   style being the --lo / --hi pair of an interval bar (CODING_STYLE#frontend). */

/* ==== 1. Fonts ==== */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Inter-Regular.woff2?v=e06f6b1bc553") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/Inter-Medium.woff2?v=0ff3e94614e1") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/Inter-SemiBold.woff2?v=5cb7103e4e60") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/Inter-Bold.woff2?v=fa888127b6da") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/Inter-ExtraBold.woff2?v=6f75025856f8") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:900;font-display:swap;src:url("../fonts/Inter-Black.woff2?v=12ed0eed6749") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/JetBrainsMono-Regular.woff2?v=a9cb1cd82332") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/JetBrainsMono-Medium.woff2?v=086c48dfbea9") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/JetBrainsMono-SemiBold.woff2?v=918edad542a1") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/JetBrainsMono-Bold.woff2?v=c503cc5ec5f8") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/JetBrainsMono-ExtraBold.woff2?v=88097a36a292") format("woff2")}

/* ==== 2. Tokens ==== */

:root{
 color-scheme:dark;
 --ui-bg-deep:#060A06;
 --ui-bg-dark:#0A140A;
 --ui-bg-card:rgba(16,28,16,.55);
 --ui-bg-nav:rgba(5,8,5,.92);
 --ui-bg-panel:rgba(10,20,10,.5);
 --ui-bg-inset:rgba(0,0,0,.35);
 --ui-green:#00FF66;
 --ui-green-glow:#33FF88;
 --ui-green-tint:rgba(0,255,102,.1);
 --ui-cyan:#00CCAA;
 --ui-series-1:#5CB8FF;
 --ui-series-2:#FF9F40;
 --ui-forest:#8AA38A;
 --ui-sage:#506A50;
 --ui-deep-forest:#3A4E3A;
 --ui-text-primary:#C8D8C8;
 --ui-text-bright:#EAF2EA;
 --ui-text-muted:#808080;
 --ui-error:#FF4444;
 --ui-warning:#FFCC00;
 --ui-success:#22CC55;
 --ui-border:rgba(50,100,50,.2);
 --ui-border-strong:rgba(50,100,50,.4);
 --ui-border-green:rgba(0,255,102,.14);
 --ui-hairline:rgba(255,255,255,.06);
 --ui-shadow-glow:rgba(0,255,102,.25) 0 4px 28px 0;
 --ui-shadow-elevated:rgba(0,0,0,.5) 0 8px 20px 0;
 --ui-radius-sm:8px;
 --ui-radius-md:14px;
 --ui-radius-lg:22px;
 --ui-blur:blur(12px);
 --font-sans:"Inter",-apple-system,system-ui,"Segoe UI",sans-serif;
 --font-mono:"JetBrains Mono","SF Mono","Fira Code",ui-monospace,monospace;
}

/* ==== 3. Base ==== */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:64px}
body{margin:0;background:var(--ui-bg-deep);color:var(--ui-text-primary);font:400 14.08px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a.ul{text-decoration:underline}
:focus-visible{outline:2px solid var(--ui-green);outline-offset:2px;border-radius:4px}
.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.nw{white-space:nowrap}

/* ==== 4. Navigation and page frame ==== */

.nav{position:sticky;top:0;z-index:30;height:48px;display:flex;align-items:center;gap:16px;padding:0 48px;background:var(--ui-bg-nav);backdrop-filter:var(--ui-blur);-webkit-backdrop-filter:var(--ui-blur);border-bottom:1px solid var(--ui-border);white-space:nowrap}
.nav .brand{font-weight:800;font-size:11.52px;letter-spacing:.14em;color:var(--ui-text-bright)}
.nav .crumb{font-weight:500;font-size:11.52px;color:var(--ui-forest);overflow:hidden;text-overflow:ellipsis}
.nav .crumb a:hover{color:var(--ui-green)}
.nav .crumb i{font-style:normal;color:var(--ui-sage);margin:0 8px}
.wrap{max-width:1440px;margin:0 auto;padding:0 48px 96px}
.head{padding:48px 0 32px}
.head.compact{padding-bottom:24px}
.eyebrow{font-weight:600;font-size:11.52px;letter-spacing:.12em;text-transform:uppercase;color:var(--ui-forest);margin:0 0 16px}
h1{font-weight:900;font-size:56px;line-height:1;letter-spacing:-.05em;margin:0 0 24px;color:var(--ui-text-primary)}
h2{font-weight:800;font-size:19.2px;line-height:1.3;margin:0;color:var(--ui-text-bright)}
h3{font-weight:600;font-size:11.52px;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-forest);margin:0 0 8px}
section{margin-top:48px}
.sec-h{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid var(--ui-border)}
.sec-h .n{font:500 12.8px/1 var(--font-mono);color:var(--ui-sage)}
.sec-h .jump{margin-left:auto}
.foot{margin-top:64px;padding-top:16px;border-top:1px solid var(--ui-border);font-size:11.52px;color:var(--ui-forest);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
.btn{font:600 12.8px var(--font-sans);color:var(--ui-text-primary);background:transparent;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:0 14px;min-height:36px;cursor:pointer;transition:all .2s ease}
.btn:hover{color:var(--ui-green);border-color:var(--ui-border-strong);background:var(--ui-green-tint)}

/* ==== 5. Chips, badges, tooltips ==== */

.meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;font:500 11.52px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ui-forest);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:7px 10px}
.chip b{font-weight:700;color:var(--ui-text-bright)}
.chip.warn{color:var(--ui-warning);border-color:var(--ui-warning)}
.chip.warn b{color:var(--ui-warning)}
a.chip:hover{color:var(--ui-green);border-color:var(--ui-border-strong)}
.badge{display:inline-flex;align-items:center;gap:6px;font:700 12px/1 var(--font-sans);padding:6px 12px;border-radius:var(--ui-radius-sm);border:1px solid var(--ui-green);background:var(--ui-green-tint);color:var(--ui-green);white-space:nowrap}
.badge.no{border-color:var(--ui-border);background:transparent;color:var(--ui-forest)}
.dot{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ui-green)}
.no>.dot,.dot.no{background:transparent;border:1.5px solid var(--ui-sage)}
[data-tip]{position:relative;cursor:help;text-decoration:underline dotted var(--ui-sage);text-underline-offset:4px}
[data-tip]:hover::after,[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:max-content;max-width:min(320px,80vw);padding:10px 12px;background:var(--ui-bg-dark);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);box-shadow:var(--ui-shadow-elevated);font:400 12px/1.55 var(--font-sans);letter-spacing:0;text-transform:none;text-align:left;white-space:normal;color:var(--ui-text-primary)}
[data-tip].tip-r::after{left:auto;right:0}

/* ==== 6. Interval bars ==== */

.ibar{position:relative;display:block;height:12px;min-width:80px}
.ibar::before{content:"";position:absolute;left:0;right:0;top:5.5px;height:1px;background:var(--ui-hairline)}
.ibar::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--ui-sage)}
.ibar i{position:absolute;top:4px;height:4px;border-radius:2px;left:var(--lo);width:max(3px,calc(var(--hi) - var(--lo)));background:var(--ui-sage)}
.ibar.yes i{background:var(--ui-green)}
.ibar.cens i{border-radius:0 2px 2px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 60%);mask:linear-gradient(90deg,transparent,#000 60%)}
.ibar.cens-hi i{border-radius:2px 0 0 2px;-webkit-mask:linear-gradient(270deg,transparent,#000 60%);mask:linear-gradient(270deg,transparent,#000 60%)}
.ibar.cens.cens-hi i{border-radius:0;-webkit-mask:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}
.ibar.ins i{top:3px;height:6px;background:none;border:1px dashed var(--ui-warning)}
.mb{position:relative;display:block;height:12px;min-width:40px}
.mb::before{content:"";position:absolute;left:0;right:0;top:5.5px;height:1px;background:var(--ui-hairline)}
.mb::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--ui-sage)}
.mb i{position:absolute;left:var(--lo);width:max(3px,calc(var(--hi) - var(--lo)));top:3.5px;height:5px;border-radius:2.5px;background:var(--ui-green)}
.mb.no i{top:4.5px;height:3px;background:var(--ui-sage)}
.mb.ins i{top:3px;height:6px;background:none;border:1px dashed var(--ui-warning)}
.mb.clipL i,.ibar.clipL i{border-top-left-radius:0;border-bottom-left-radius:0}
.mb.clipR i,.ibar.clipR i{border-top-right-radius:0;border-bottom-right-radius:0}
.mb.clipL i::before,.mb.clipR i::after,.ibar.clipL i::before,.ibar.clipR i::after{content:"";position:absolute;top:50%;width:6px;height:11px;transform:translateY(-50%);background:inherit}
.mb.clipL i::before,.ibar.clipL i::before{right:100%;clip-path:polygon(100% 0,0 50%,100% 100%)}
.mb.clipR i::after,.ibar.clipR i::after{left:100%;clip-path:polygon(0 0,100% 50%,0 100%)}
.mb.ins.clipL i::before,.mb.ins.clipR i::after{background:var(--ui-warning)}
.mark{flex:none;width:16px;height:16px}
.mark circle{fill:var(--ui-green)}
.mark path{fill:none;stroke:var(--ui-bg-deep);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mk{flex:none;width:13px;height:13px;display:block}

/* ==== 7. Summary: tools and filters ==== */

.tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.tools input[type="search"]{height:36px;min-width:220px;padding:0 12px;background:var(--ui-bg-card);color:var(--ui-text-primary);font:400 14.08px var(--font-sans);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm)}
.tools input[type="search"]::placeholder{color:var(--ui-forest)}
.tools input[type="search"]:focus{outline:none;border-color:var(--ui-green)}
.tools .tl{margin-left:16px;font-weight:600;font-size:11.52px;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-forest)}
.tools .cnt{margin-left:auto;font:400 11.52px var(--font-mono);color:var(--ui-forest)}
.chks{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;margin:0 0 0 16px;padding:0;border:0}
.chks legend{float:left;margin:0 4px 0 0;padding:0}
.chk{display:inline-flex;gap:8px;align-items:center;min-height:36px;font:600 12px var(--font-sans);color:var(--ui-forest);cursor:pointer;white-space:nowrap}
.chk:hover{color:var(--ui-text-primary)}
.chk input{padding:0;box-sizing:border-box;appearance:none;-webkit-appearance:none;flex:none;position:relative;width:15px;height:15px;margin:0;border:1.5px solid var(--ui-sage);border-radius:3px;background:var(--ui-bg-card);cursor:pointer}
.chk input:hover{border-color:var(--ui-green)}
.chk input:checked{background:var(--ui-green);border-color:var(--ui-green)}
.chk input:checked::after{content:"";position:absolute;left:3.5px;top:.5px;width:4px;height:8px;border:solid var(--ui-bg-deep);border-width:0 2px 2px 0;transform:rotate(45deg)}
.chk input:checked+span{color:var(--ui-text-bright)}
.chk input:focus-visible{outline:2px solid var(--ui-green);outline-offset:2px}
.seg{display:inline-flex;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);overflow:hidden}
.seg button{border:0;background:none;color:var(--ui-forest);font:600 12px var(--font-mono);padding:7px 12px;cursor:pointer;border-left:1px solid var(--ui-border)}
.seg button:first-child{border-left:0}
.seg button:hover{color:var(--ui-text-primary)}
.seg button[aria-pressed="true"]{background:var(--ui-green-tint);color:var(--ui-green)}
.scope-note{margin:0 0 16px;font-size:12.8px;color:var(--ui-warning)}
.empty{margin:24px 0;color:var(--ui-forest)}

/* ==== 8. Summary: the table ==== */

.sumt{width:100%;border-collapse:separate;border-spacing:0;font:400 12.5px/1.3 var(--font-mono);font-variant-numeric:tabular-nums}
.sumt thead{position:sticky;top:48px;z-index:20}
.sumt th{background:var(--ui-bg-deep);padding:8px 10px;text-align:left;font:600 11.52px var(--font-sans);letter-spacing:.06em;color:var(--ui-forest);white-space:nowrap;vertical-align:bottom}
.sumt thead tr:last-child th,.sumt th[rowspan]{border-bottom:1px solid var(--ui-border-strong)}
.sumt th.grp{text-transform:uppercase;padding-bottom:2px}
.sumt th.grp .n{font-family:var(--font-mono);color:var(--ui-sage);margin-right:8px}
.sumt .sort{all:unset;cursor:pointer;font:inherit;letter-spacing:inherit;color:inherit}
.sumt th:not(.grp) .sort{font-family:var(--font-mono);letter-spacing:0;font-weight:500}
.sumt th[rowspan] .sort{font-family:var(--font-sans);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.sumt .sort:hover{color:var(--ui-green)}
.sumt .sort:focus-visible{outline:2px solid var(--ui-green);outline-offset:2px;border-radius:4px}
.sumt .sort::after{content:"↕";margin-left:4px;color:var(--ui-sage)}
.sumt th[aria-sort="ascending"] .sort,.sumt th[aria-sort="descending"] .sort{color:var(--ui-green)}
.sumt th[aria-sort="ascending"] .sort::after{content:"↑";color:var(--ui-green)}
.sumt th[aria-sort="descending"] .sort::after{content:"↓";color:var(--ui-green)}
.sumt td{padding:12px 10px;vertical-align:middle;border-bottom:1px solid var(--ui-border-strong);white-space:nowrap;color:var(--ui-forest)}
.sumt .gs{border-left:1px solid var(--ui-hairline);padding-left:16px}
.sumt td.bc{padding-right:16px}
.sumt tbody tr:nth-child(even) td{background:var(--ui-bg-card)}
.sumt tbody tr:hover td{background:var(--ui-green-tint)}
.sumt td.s a{display:block;font:700 14.4px var(--font-sans);color:var(--ui-text-bright)}
.sumt td.s a:hover{color:var(--ui-green)}
.sumt td.collect{white-space:normal;font:400 12px/1.5 var(--font-sans);color:var(--ui-forest)}
.sumt td.collect.bad{color:var(--ui-error)}
.pips{display:inline-flex;gap:4px;vertical-align:-1px}
.pips i{width:8px;height:10px;border-radius:2px;border:1px solid var(--ui-sage);background:transparent}
.pips i.on{background:var(--ui-green);border-color:var(--ui-green)}
.pips i.wait{background:var(--ui-text-muted);border-color:var(--ui-text-muted)}
.pips i.stale{background:var(--ui-warning);border-color:var(--ui-warning)}
.pips i.bad{background:var(--ui-error);border-color:var(--ui-error)}
.pips i.off{background:transparent;border-color:var(--ui-text-muted)}
.sumt th.st .dca{display:flex;gap:4px;margin-top:4px;text-decoration:none;cursor:help}
.sumt th.st .dca i{width:8px;text-align:center;font:500 9.6px/1 var(--font-mono);font-style:normal;letter-spacing:0;color:var(--ui-forest)}
.stk{position:relative;display:grid;gap:1px}
.stk::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--ui-sage)}
.stk .mb{height:11px;min-width:130px;margin:0 7px}
.stk .mb::after{display:none}
.stk .mb::before{top:5px}
.stk .mb i{top:3.5px;height:4px}
.stk .mb.no i{top:4px;height:3px}
.stk .mb.ins i{top:2.5px;height:6px}
.stk .mb.all{height:14px;margin-bottom:3px}
.stk .mb.all::before{top:6.5px}
.stk .mb.all i{top:3px;height:8px;border-radius:4px}
.stk .mb.all.no i{top:4.5px;height:5px}
.stk .mb.all.ins i{top:3px;height:8px}
.stk a.mb:hover{background:var(--ui-green-tint)}
.scl{display:grid;gap:1px;font:400 9.6px/11px var(--font-mono);color:var(--ui-forest)}
.scl>span{display:flex;gap:8px;justify-content:space-between;min-width:44px}
.scl b{font-weight:500}
.scl .all{font:700 11px/14px var(--font-mono);color:var(--ui-text-bright);margin-bottom:3px}
.scl .all b{font-weight:700;letter-spacing:.05em}
.scl .ins{color:var(--ui-warning)}
.keyline{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin:16px 0 32px;font-size:11.52px;color:var(--ui-forest)}
.keyline span{display:inline-flex;align-items:center;gap:8px}
.keyline .mb{min-width:56px;width:56px}
.keyline .mb.clipL{margin-left:7px}
.keyline .glyph{font:700 11px var(--font-mono);color:var(--ui-text-primary)}
@media (max-width:1439px){.scroll-narrow{overflow-x:auto}.sumt thead{position:static}.sumt td.s,.sumt th.s{position:sticky;left:0;z-index:1;background:var(--ui-bg-deep)}}

/* ==== 9. Symbol page: the grid of tests by scopes ==== */

.verdict-line{margin:16px 0 0;font-size:12.8px;color:var(--ui-forest)}
.gridhint{margin:0 0 16px;font-size:12.8px;color:var(--ui-forest)}
.g3 .row{display:grid;grid-template-columns:250px repeat(4,minmax(0,1fr));align-items:stretch;border-bottom:1px solid var(--ui-hairline)}
.g3 .row.hd{border-bottom-color:var(--ui-border-strong);font:600 11.52px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ui-forest)}
.g3 .row.hd>*{padding:8px 12px}
.g3 .row.hd .a{color:var(--ui-text-bright)}
.g3 .row.hd small{display:block;font:400 10.4px var(--font-mono);letter-spacing:0;text-transform:none;margin-top:2px}
.g3 .name{border-bottom:1px solid transparent;display:flex;gap:10px;align-items:center;padding:12px;font:600 12.8px var(--font-sans);color:var(--ui-text-primary)}
.g3 .name .n{font:500 11px var(--font-mono);color:var(--ui-sage)}
.g3 .name .rn{margin-left:auto;font:400 10.4px var(--font-mono);color:var(--ui-forest)}
.cb{display:grid;grid-template-columns:13px minmax(50px,1fr) auto;gap:8px;align-items:center;padding:12px;border:1px solid transparent;border-left-color:var(--ui-hairline);background:none;cursor:pointer;color:var(--ui-forest);text-align:left;font:inherit}
.cb.all{color:var(--ui-text-primary)}
.cb:hover{background:var(--ui-green-tint)}
.cb:focus-visible{outline-offset:-3px}
.cb .ibar{margin:0 7px;min-width:50px}
.tx{font:400 11px/1.2 var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.cb.yes>.tx{color:var(--ui-green-glow)}
.cb.ins>.tx{color:var(--ui-warning)}
.cb.all>.tx{font-weight:700}
.cb.none{cursor:default}
.g3 .row.open{border-bottom-color:transparent}
.g3 .row.open>*{border-bottom-color:var(--ui-border-strong)}
.g3 .row.open .name{color:var(--ui-text-bright)}
.g3 .row.open>.cb.on{background:var(--ui-bg-card);border-color:var(--ui-border-strong);border-bottom-color:transparent;border-radius:var(--ui-radius-md) var(--ui-radius-md) 0 0;box-shadow:inset 0 3px 0 var(--ui-green);cursor:default}
.g3 .row.open>.cb.on+.cb{border-left-color:transparent}
@media (max-width:1100px){.g3{overflow-x:auto}.g3 .row{min-width:980px}.det{min-width:0}}

/* ==== 10. Symbol page: the detail of a cell ==== */

.det{margin:-1px 0 16px;padding:24px;background:var(--ui-bg-card);border:1px solid var(--ui-border-strong);border-top:0;border-radius:0 0 var(--ui-radius-md) var(--ui-radius-md);scroll-margin-top:120px}
.det .card,.det figure{background:var(--ui-bg-panel);backdrop-filter:none;-webkit-backdrop-filter:none}
.dh{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;margin-bottom:20px}
.dh .n{font:500 12.8px var(--font-mono);color:var(--ui-sage)}
.dh .badge{margin-left:auto}
.dh .scope{font:600 12px var(--font-mono);color:var(--ui-text-primary);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);padding:6px 10px}
.expl{font:500 11px var(--font-mono);color:var(--ui-warning);text-decoration-color:var(--ui-warning)}
.card{background:var(--ui-bg-card);backdrop-filter:var(--ui-blur);-webkit-backdrop-filter:var(--ui-blur);border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);padding:18px 20px}
.split{display:flex;flex-direction:column;gap:16px}
.stats{display:flex;flex-wrap:wrap;gap:24px 40px}
.stat h3{text-transform:none;letter-spacing:.02em;font:500 11.52px var(--font-mono)}
.stat .v{font:700 24px/1.2 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ui-text-bright);white-space:nowrap}
.stat .v .u{font-weight:400;font-size:12.8px;color:var(--ui-forest);margin-left:6px}
.stat .v .sm{font-size:16px}
.stat .v .cz{margin-left:10px;font:600 10.4px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ui-warning);border:1px solid var(--ui-warning);border-radius:4px;padding:2px 6px;vertical-align:3px}
.stat .ibar{margin-top:8px}
.stat.hero{min-width:300px}
.stat.hero .v{color:var(--ui-forest)}
.stat.hero .ibar{max-width:320px}
.yes .stat.hero .v{color:var(--ui-green-glow)}
.reading{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--ui-hairline);color:var(--ui-text-primary)}
.exec.yes{border-color:var(--ui-border-green)}
.rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.rules li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:baseline}
.side{font:700 11.52px/1.6 var(--font-mono);letter-spacing:.06em;color:var(--ui-forest)}
.side.long{color:var(--ui-green-glow)}
.side.short{color:var(--ui-error)}
.exec .ret{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--ui-hairline);font-size:12.8px;color:var(--ui-forest)}
.exec .ret.more{margin-top:6px;padding-top:0;border-top:0}
.blk{margin-top:24px}

/* ==== 11. Disclosure panels, formulas, tables ==== */

.panels{display:flex;flex-direction:column;gap:8px;margin-top:16px}
details.panel{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-bg-panel)}
details.panel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 16px;font-weight:600;font-size:12.8px;color:var(--ui-text-primary);border-radius:var(--ui-radius-sm)}
details.panel>summary::-webkit-details-marker{display:none}
details.panel>summary::before{content:"+";flex:none;width:12px;text-align:center;font:500 14px/1 var(--font-mono);color:var(--ui-forest)}
details.panel[open]>summary::before{content:"−"}
details.panel>summary:hover{color:var(--ui-green)}
details.panel>summary .hint{margin-left:auto;font:400 11.52px var(--font-mono);color:var(--ui-forest)}
.panel-body{padding:8px 16px 16px 40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px 40px}
.panel-body.one{display:block}
.fx{margin:0 0 6px;padding:8px 12px;background:var(--ui-bg-inset);border:1px solid var(--ui-hairline);border-radius:var(--ui-radius-sm);font:500 12.8px/1.6 var(--font-mono);color:var(--ui-text-bright);overflow-wrap:anywhere}
.where{margin:0 0 6px;font-size:12.8px;line-height:1.6;color:var(--ui-forest)}
.where.below{margin:6px 0 0}
.where.span{grid-column:1/-1}
.kv{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 24px;font-size:12.8px}
.kv dt{font-weight:600;color:var(--ui-forest)}
.kv dd{margin:0;color:var(--ui-text-primary)}
.scroll{overflow-x:auto}
table.data{border-collapse:collapse;width:100%;font:400 12.8px/1.4 var(--font-mono);font-variant-numeric:tabular-nums}
.data th{font:600 11.52px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ui-forest);text-align:left;padding:8px 16px 8px 0;border-bottom:1px solid var(--ui-border);white-space:nowrap}
.data td{padding:8px 16px 8px 0;border-bottom:1px solid var(--ui-hairline);white-space:nowrap;color:var(--ui-text-primary)}
.data tr:last-child td{border-bottom:0}
.data .r{text-align:right}
.data td.bar{width:30%;min-width:120px}
.data tr.best td{color:var(--ui-text-bright);font-weight:700}
.data .tag{font:700 10.4px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ui-cyan);border:1px solid var(--ui-cyan);border-radius:4px;padding:2px 6px;margin-left:8px}
.data .dot{margin-right:8px}
.hat{position:relative;display:inline-block;line-height:inherit}
.hat::before{content:"^";position:absolute;left:50%;top:-.42em;transform:translateX(-50%) scaleX(1.25);font-size:.85em;line-height:1;font-weight:700;pointer-events:none}
.hat .hc{font-size:0}
h2 .hat::before{top:-.34em}
.hat.lc::before{top:-.2em}

/* ==== 12. Charts ==== */

.legend{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin:0 0 12px;font-size:11.52px;color:var(--ui-forest)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend .sep{width:1px;height:12px;background:var(--ui-border-strong)}
.key{display:inline-block;width:24px;height:0;border-top:2px solid var(--ui-sage)}
.key-file{border-top-color:var(--ui-forest)}
.key-median{border-top-color:var(--ui-green)}
.key-band{border-top:2px dashed var(--ui-green)}
.key-primary{border-top-color:var(--ui-series-1)}
.key-secondary{border-top-color:var(--ui-series-2)}
.key-t0{border-top-color:var(--ui-text-primary)}
.key-settled{border-top:2px dashed var(--ui-text-muted)}
.key-settlement{border-top-color:var(--ui-warning)}
.cgs{display:grid;gap:20px}
.cgs.pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cg h4{margin:0 0 6px;font:600 12.8px var(--font-sans);color:var(--ui-text-primary)}
.cg h4 span.u{margin-left:8px;font:400 11px var(--font-mono);color:var(--ui-forest)}
.charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.charts.n1{grid-template-columns:minmax(0,1fr)}
figure{margin:0;padding:8px 4px 4px;background:var(--ui-bg-card);border:1px solid var(--ui-border);border-radius:var(--ui-radius-md)}
figure.perset{padding:12px 12px 8px}
figcaption{display:flex;justify-content:space-between;align-items:baseline;padding:0 8px 4px;font:700 12.8px var(--font-mono);color:var(--ui-text-bright)}
figcaption span{font-weight:400;font-size:11.52px;color:var(--ui-forest)}
figure.perset figcaption span{font:400 11.52px var(--font-sans)}
svg.chart{display:block;width:100%;height:auto}
svg .frame{fill:none;stroke:var(--ui-border-strong)}
svg .grid{stroke:var(--ui-hairline)}
svg .settlement{stroke:var(--ui-warning);stroke-opacity:.8}
svg .file{fill:none;stroke:var(--ui-forest);stroke-opacity:.45;stroke-width:.7}
svg .settled{fill:none;stroke:var(--ui-text-muted);stroke-width:1;stroke-dasharray:4 3}
svg .band{fill:none;stroke:var(--ui-green);stroke-opacity:.75;stroke-width:1.1;stroke-dasharray:5 3}
svg .median{fill:none;stroke:var(--ui-green);stroke-width:1.7;stroke-linejoin:round}
svg .zero{stroke:var(--ui-sage);stroke-width:1}
svg .file-secondary{fill:none;stroke:var(--ui-series-2);stroke-opacity:.4;stroke-width:.7}
svg .band-secondary{fill:none;stroke:var(--ui-series-2);stroke-opacity:.8;stroke-width:1.1;stroke-dasharray:5 3}
svg .median-secondary{fill:none;stroke:var(--ui-series-2);stroke-width:1.7;stroke-linejoin:round}
svg.chart text{font:400 11px var(--font-mono);fill:var(--ui-forest)}
svg.chart .y-label{text-anchor:end}
svg.chart .y-label-secondary{text-anchor:start;fill:var(--ui-series-2)}
svg.chart .x-label{text-anchor:middle;font-size:9.5px}
.dual svg .file{stroke:var(--ui-series-1);stroke-opacity:.4}
.dual svg .band{stroke:var(--ui-series-1);stroke-opacity:.8}
.dual svg .median{stroke:var(--ui-series-1)}
.dual svg.chart .y-label{fill:var(--ui-series-1)}
.dual svg .settlement{stroke:var(--ui-text-primary);stroke-opacity:.6}
g.other polyline{fill:none;stroke:var(--ui-forest);stroke-opacity:.45;stroke-width:1}
g.other circle{fill:var(--ui-forest);fill-opacity:.5}
g.best polyline{fill:none;stroke:var(--ui-green);stroke-width:2}
g.best circle{fill:var(--ui-green)}
.perset svg .zero{stroke:var(--ui-text-primary);stroke-opacity:.5;stroke-dasharray:4 3}

/* ==== 13. Responsive and print ==== */

@media (max-width:1100px){.cgs.pair{grid-template-columns:1fr}}
@media (max-width:640px){
 .nav{padding:0 16px}.nav .crumb{display:none}
 .wrap{padding:0 16px 64px}
 h1{font-size:40px}
 .head{padding:32px 0 24px}
 .panel-body{padding-left:16px;grid-template-columns:1fr}
}
@media print{.nav{position:static}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.det[hidden]{display:block}}
