:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:#0f172a}*{box-sizing:border-box}body{margin:0}html,body,#app{height:100%}body{overflow:hidden}[hidden]{display:none!important}button,input{font:inherit}.shell{display:grid;grid-template-columns:minmax(320px,380px) 1fr;height:100vh;min-height:0;overflow:hidden}.sidebar{background:#fff;border-right:1px solid #cbd5e1;display:flex;flex-direction:column;height:100vh;min-height:0;overflow:hidden}.brand,.controls,.details{padding:18px}.brand{border-bottom:1px solid #e2e8f0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}h1,h2,h3,p{margin:0}h1{font-size:22px;line-height:1.15}h2{font-size:18px;line-height:1.2}h3{font-size:13px;margin-top:18px;text-transform:uppercase;color:#475569}.brand p,.muted,.caveat{color:#64748b;font-size:13px;line-height:1.45;margin-top:6px}.about-button,.about-close{border:1px solid #94a3b8;border-radius:7px;background:#fff;color:#0f172a;cursor:pointer;font-size:12px;font-weight:700;min-height:32px;padding:0 10px;white-space:nowrap}.about-button:hover,.about-close:hover{background:#f8fafc}.controls{display:grid;gap:14px;border-bottom:1px solid #e2e8f0}.segmented{display:grid;border:1px solid #94a3b8;border-radius:7px;overflow:hidden}.segmented.geography,.segmented.color-layer{grid-template-columns:repeat(2,1fr)}.segmented.metric{grid-template-columns:repeat(4,1fr)}.segmented.periods{grid-template-columns:repeat(3,1fr)}.segmented button{min-height:36px;border:0;border-right:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;font-size:12px;min-width:0}.segmented button:last-child{border-right:0}.segmented button.active{background:#0f172a;color:#fff}.segmented button:disabled{color:#94a3b8;cursor:not-allowed;background:#f8fafc}.segmented button span,.segmented button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented button small{margin-top:2px;font-size:10px;color:currentColor;opacity:.72}.toggle{display:flex;gap:9px;align-items:center;font-size:13px;color:#334155}.methodology{border:1px solid #cbd5e1;border-radius:7px;padding:10px 12px;background:#f8fafc}.methodology summary{cursor:pointer;font-size:13px;font-weight:700;color:#0f172a}.methodology ol{margin:10px 0 0;padding-left:18px;color:#334155;font-size:12px;line-height:1.42}.methodology li+li{margin-top:5px}.methodology p{color:#64748b;font-size:12px;line-height:1.42;margin-top:10px}.details{flex:1;min-height:0;overflow:auto}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 4px}.metrics div{border:1px solid #cbd5e1;border-radius:7px;padding:10px;min-width:0}dt{color:#64748b;font-size:11px;text-transform:uppercase;display:flex;gap:5px;align-items:center;min-width:0}dd{margin:4px 0 0;font-weight:700;font-size:15px;overflow-wrap:anywhere}dd.positive{color:#047857}dd.negative{color:#be123c}.help-dot{display:inline-grid;place-items:center;width:15px;height:15px;flex:0 0 auto;border:1px solid #94a3b8;border-radius:50%;color:#334155;background:#fff;font-size:10px;font-weight:800;line-height:1;text-transform:none}.math-panel{margin-top:14px;border:1px solid #cbd5e1;border-radius:7px;padding:12px;background:#f8fafc}.math-panel h3{margin-top:0}.math-panel ol{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:7px}.math-panel li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:baseline;font-size:13px;padding-bottom:7px;border-bottom:1px solid #e2e8f0}.math-panel li:last-child{border-bottom:0;padding-bottom:0}.math-panel span{color:#475569}.math-panel strong{text-align:right;color:#0f172a}.math-panel p{color:#64748b;font-size:12px;line-height:1.45;margin-top:10px}.compact{margin-top:6px}.fact-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:7px}.fact-list li{display:grid;grid-template-columns:1fr auto;gap:12px;padding-bottom:7px;border-bottom:1px solid #e2e8f0;font-size:13px}.workspace{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;height:100vh;overflow:hidden}.toolbar{min-height:64px;padding:14px 18px;border-bottom:1px solid #cbd5e1;display:flex;justify-content:space-between;gap:18px;align-items:center;background:#fff}.toolbar strong{display:block;font-size:15px}.toolbar span{color:#64748b;font-size:13px}.toolbar-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.repo-link{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid #94a3b8;border-radius:7px;background:#fff;color:#0f172a;text-decoration:none}.repo-link:hover,.repo-link:focus{background:#f8fafc;outline:none;border-color:#475569}.repo-link svg{width:22px;height:22px;display:block}.legend{display:flex;align-items:center;gap:8px;white-space:nowrap}.ramp{width:180px;height:12px;border-radius:999px;border:1px solid #cbd5e1}.ramp.net{background:linear-gradient(90deg,#be123c,#f8fafc,#047857)}.ramp.received{background:linear-gradient(90deg,#ecfdf5,#047857)}.ramp.paid{background:linear-gradient(90deg,#fff1f2,#be123c)}.ramp.covered{background:linear-gradient(90deg,#eef2ff,#1d4ed8)}.ramp.party{background:linear-gradient(90deg,#2563eb,#f8fafc,#dc2626)}.map-frame{position:relative;min-height:0;padding:16px;display:grid;place-items:center;overflow:hidden}#map{display:block;width:min(100%,1120px);height:min(100%,760px);max-height:calc(100vh - 110px)}.map-area{stroke:#000;stroke-width:1;vector-effect:non-scaling-stroke;outline:none;cursor:pointer;transition:fill .12s ease,stroke .12s ease}.map-area:hover,.map-area:focus,.map-area.selected{stroke:#0f172a;stroke-width:1}.state-outline{fill:none;stroke:#000;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.tooltip{position:fixed;z-index:5;pointer-events:none;display:grid;gap:3px;background:#0f172a;color:#fff;border-radius:7px;padding:10px 12px;width:220px;box-shadow:0 12px 26px #0f172a33;font-size:12px}.tooltip strong{font-size:13px}.about-overlay{position:fixed;inset:0;z-index:10;background:#0f172a75;display:grid;place-items:center;padding:18px}.about-panel{width:min(840px,100%);max-height:min(820px,calc(100vh - 36px));overflow:hidden;background:#fff;border:1px solid #cbd5e1;border-radius:7px;box-shadow:0 24px 60px #0f172a47;display:grid;grid-template-rows:auto minmax(0,1fr)}.about-panel>header{padding:16px 18px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.about-content{padding:16px 18px 20px;overflow:auto;display:grid;gap:16px}.about-content h3{margin-top:0}.about-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0 0}.about-stats div{border:1px solid #cbd5e1;border-radius:7px;padding:10px}.about-list,.about-bullets,.source-list{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}.about-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;font-size:13px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.about-list span,.source-list span{color:#64748b}.about-list strong{text-align:right;color:#0f172a}.about-ordered{margin:10px 0 0;padding-left:20px;color:#334155;font-size:13px;line-height:1.45}.about-ordered li+li,.about-bullets li+li{margin-top:6px}.about-bullets{list-style:disc;padding-left:18px;color:#334155;font-size:13px;line-height:1.45}.source-list li{display:grid;gap:2px;font-size:13px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.source-list a{color:#0f172a;font-weight:700}.ledger{border-top:1px solid #cbd5e1;background:#fff;padding:16px 18px 18px}.ledger p{margin-top:5px;color:#64748b;font-size:13px}.ledger-rows{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;max-height:260px;overflow:auto}.ledger-row{border:1px solid #cbd5e1;border-radius:7px;padding:12px;display:grid;gap:10px}.ledger-row div{display:grid;gap:2px}.ledger-row span{color:#64748b;font-size:12px}.fatal{margin:16px;white-space:pre-wrap}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #cbd5e1}.toolbar{align-items:flex-start;flex-direction:column}.legend{width:100%}.toolbar-actions{width:100%;justify-content:space-between}.ramp{flex:1}.about-panel>header,.about-list li{grid-template-columns:1fr}.about-list strong{text-align:left}}
