:root{--paper:#f6f1e7;--ink:#1f1c17;--mute:#6b6458;--rule:#d9cfbd;--d:#2b5c8a;--r:#b23a3a;--card:#fbf8f2}
*{box-sizing:border-box}html,body{margin:0;overflow-x:hidden}
body{background:var(--paper);color:var(--ink);font:16px/1.55 "IBM Plex Sans",system-ui,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.1}
h1{font-size:clamp(2rem,5.5vw,3.6rem);margin:.2em 0;font-weight:800}h1 em{display:block;font-weight:400;color:var(--mute)}
h2{font-size:1.8rem;border-top:3px solid var(--ink);padding-top:.5em;margin:2.2em 0 .8em}
.mast{border-bottom:1px solid var(--rule);padding:32px 0 24px}.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;color:var(--r);font-weight:600;margin:0}
.dek{max-width:720px;font-size:1.1rem;color:#3c372f}.stamp{font-size:.85rem;color:var(--mute)}
.lb{display:inline-block;font:600 .6rem/1 "IBM Plex Sans";letter-spacing:.06em;padding:3px 4px;border-radius:2px;vertical-align:middle;margin-left:4px;border:1px solid}
.lb.SOURCED{color:#55493a;border-color:#a99a83}.lb.ANALYST{color:#fff;background:var(--ink);border-color:var(--ink)}.lb.ESTIMATED{color:#7a5a12;border-color:#c9a352}.lb.LIVE{color:#1d6b3a;border-color:#1d6b3a}
.chambers{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}
.ch{background:var(--card);border:1px solid var(--rule);padding:18px}.ch h3{margin:0 0 4px;font-size:1.3rem}
.big{font-family:Fraunces,serif;font-size:3rem;font-weight:800;line-height:1}.big.d{color:var(--d)}.big.r{color:var(--r)}
.sub{color:var(--mute);font-size:.88rem}
.cmp{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:10px}.cmp td{padding:4px 2px;border-top:1px solid var(--rule)}.cmp td:last-child{text-align:right;white-space:nowrap}
.bar{height:6px;background:#e8dfcf;position:relative}.bar i{position:absolute;left:0;top:0;bottom:0;background:var(--d)}
svg.hist{width:100%;height:auto;display:block;margin-top:10px}
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.tabs{display:flex;border:1px solid var(--ink)}.tabs button{background:none;border:0;padding:8px 14px;font:500 .9rem "IBM Plex Sans";cursor:pointer;color:var(--ink)}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}
select,input[type=search]{font:inherit;font-size:.9rem;padding:7px 9px;border:1px solid var(--rule);background:var(--card);max-width:100%}input[type=search]{flex:1;min-width:160px}
.legend{font-size:.78rem;color:var(--mute);margin:4px 0 10px;display:flex;flex-wrap:wrap;gap:8px}.legend span i{display:inline-block;width:12px;height:12px;vertical-align:-2px;margin-right:3px}
.gridwrap{overflow:auto;max-height:70vh;border:1px solid var(--rule);background:var(--card);max-width:100%}
table#grid{border-collapse:collapse;font-size:.82rem;min-width:100%}
#grid th,#grid td{padding:6px 8px;border-bottom:1px solid #ebe3d4;text-align:center;white-space:nowrap}
#grid thead th{position:sticky;top:0;background:var(--paper);z-index:2;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
#grid th.rk{position:sticky;left:0;background:var(--card);text-align:left;z-index:1}#grid thead th.rk{z-index:3;background:var(--paper)}
#grid tbody tr{cursor:pointer}#grid tbody tr:hover td{outline:1px solid #cbbfa9}
.cell{display:inline-block;min-width:66px;padding:3px 5px;border-radius:2px}.gap{color:#b3a993}
.cat{font-weight:700}
#drawer{position:fixed;top:0;right:0;height:100%;width:min(560px,100%);background:var(--paper);border-left:2px solid var(--ink);transform:translateX(100%);transition:.25s;z-index:20;overflow-y:auto;padding:0 20px 40px}
#drawer.open{transform:none}#scrim{position:fixed;inset:0;background:rgba(30,25,15,.35);display:none;z-index:10}#scrim.open{display:block}
.dhead{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--rule)}
.dhead button{font-size:2rem;background:none;border:0;cursor:pointer}
.vt{width:100%;border-collapse:collapse;font-size:.85rem}.vt td{padding:6px 3px;border-bottom:1px solid var(--rule);vertical-align:top}
.why{background:var(--card);border-left:3px solid var(--r);padding:10px 12px;font-size:.92rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--rule);padding:14px;font-size:.86rem}.card h3{margin:0 0 4px;font-size:1.15rem}.card dl{margin:6px 0;display:grid;grid-template-columns:auto 1fr;gap:3px 10px}.card dt{color:var(--mute)}.card dd{margin:0}
.card.off{opacity:.72}.gaptxt{color:#8a6d3b;font-style:italic}
#methodbody{columns:2 340px;column-gap:36px;font-size:.92rem}#methodbody ul{padding-left:18px}#methodbody h3{break-after:avoid}
.foot{border-top:1px solid var(--rule);margin-top:50px;padding:20px;font-size:.82rem;color:var(--mute)}
a{color:var(--d)}
@media(max-width:600px){.big{font-size:2.4rem}h2{font-size:1.45rem}.wrap{padding:0 14px}}

.v2grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.v2t{width:100%;border-collapse:collapse;font-size:.85rem}.v2t td,.v2t th{padding:.25rem .4rem;border-bottom:1px solid #e4ddd0;text-align:left;vertical-align:top}
.tw{overflow-x:auto;max-width:100%}.v1small{font-size:.8rem;color:#6b6458}#miss{width:100%;max-width:520px}
svg.chart{width:100%;max-width:520px;height:auto;display:block}.md p,.md li{max-width:72ch}
.badge{display:inline-block;font:600 .7rem/1 "IBM Plex Sans";padding:3px 6px;border-radius:2px;margin-right:4px}.cbv{background:#dcefe1;color:#1d6b3a}.cbu{background:#f6e7c8;color:#7a5a12}
.excl s{color:#8a7f70}#v21score,#v21cal{overflow-x:auto}.small{font-size:.8rem;opacity:.8}
