:root{--bg: #f6f6f6;--panel: #ffffff;--panel-border: #e4e4e4;--ink: #0e0e0e;--ink-muted: #4a5464;--accent: #f0523d;--accent-text: #d23b1f;--accent-soft: #fed9db;--pro-dc: #00b2ff;--link: #0a6f96;--maxw: 1100px;--radius: 10px;--gap: 1.25rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5;overflow-wrap:break-word}#app{max-width:var(--maxw);margin:0 auto;padding:2rem 1.25rem 4rem}.loading{color:var(--ink-muted)}.app-header h1{font-size:clamp(1.5rem,3vw,2.1rem);margin:0 0 .35rem;letter-spacing:-.01em}.app-header .lede{color:var(--ink-muted);margin:0 0 1rem;max-width:70ch}.methodology{font-size:.82rem;color:var(--ink-muted);border-left:3px solid var(--accent-soft);padding:.4rem 0 .4rem .85rem;margin:0 0 1.5rem;max-width:80ch}.methodology-details,.coverage-details{margin:0 0 1.5rem;max-width:80ch;font-size:.82rem;color:var(--ink-muted)}.methodology-details summary,.coverage-details summary{cursor:pointer;font-weight:600;font-size:.82rem;color:var(--ink-muted);list-style:none;display:flex;align-items:center;gap:.4rem;padding:.25rem 0;-webkit-user-select:none;user-select:none}.methodology-details summary:before,.coverage-details summary:before{content:"▶";font-size:.6rem;transition:transform .15s;display:inline-block}.methodology-details[open] summary:before,.coverage-details[open] summary:before{transform:rotate(90deg)}.methodology-details .methodology,.coverage-details .coverage-notes{margin-top:.5rem;margin-bottom:0}.event-summary{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:2rem}.event-summary h2{margin:0 0 .5rem;font-size:1.2rem}.event-summary .summary-text{margin:0 0 1rem;color:var(--ink)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.85rem;margin:0}.stat{background:var(--bg);border:1px solid var(--panel-border);border-radius:8px;padding:.65rem .8rem}.stat .stat-value{display:block;font-size:1.35rem;font-weight:700;letter-spacing:-.01em}.stat .stat-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);margin-top:.15rem}.coverage-notes{font-size:.8rem;color:var(--ink-muted);margin:.5rem 0 0}.scrubber-host[hidden]{display:none}.scrubber{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1rem 1.25rem 1.1rem;margin-bottom:2rem}.scrubber-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem}.scrubber-title{font-weight:600;font-size:.95rem}.scrubber-date{color:var(--accent-text);font-variant-numeric:tabular-nums;font-weight:600}.scrubber-reset{margin-left:auto;background:var(--bg);color:var(--ink);border:1px solid var(--panel-border);border-radius:8px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer}.scrubber-reset:disabled{opacity:.45;cursor:default}.scrubber-reset:not(:disabled):hover{border-color:var(--accent)}.scrubber-range{width:100%;margin:.85rem 0 .3rem;accent-color:var(--accent);cursor:pointer}.scrubber-ends{display:flex;justify-content:space-between;font-size:.72rem;color:var(--ink-muted)}.scrubber-readout{margin-top:.7rem;font-size:.92rem}.scrubber-readout strong{display:block;letter-spacing:-.01em}.scrubber-caveat{display:block;font-size:.78rem;color:var(--ink-muted);margin-top:.15rem}.viz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}.viz-panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1rem 1.1rem 1.2rem}.viz-panel.full{grid-column:1 / -1}.viz-panel h3{margin:0 0 .2rem;font-size:1.05rem}.viz-panel .caption{margin:0 0 .9rem;font-size:.83rem;color:var(--ink-muted)}.viz-mount{min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--ink-muted);font-size:.85rem;border:1px dashed var(--panel-border);border-radius:8px;overflow-x:auto}.viz-panel.full .viz-mount{min-height:260px}.viz-mount.has-viz{display:block;align-items:stretch;justify-content:flex-start;border:none;padding:0;color:var(--ink);font-size:inherit;overflow-x:auto}.viz-content{width:100%}.viz-annotation{margin-bottom:.5rem}.viz-annotation-headline{font-weight:700;font-size:.95rem;letter-spacing:-.01em;color:var(--ink)}.viz-annotation-caption{font-size:.74rem;color:var(--ink-muted);margin-top:.1rem;max-width:60ch}.viz-content figure{margin:0}.viz-mount svg,.viz-mount figure,.viz-content svg,.viz-content figure{max-width:100%;height:auto}.viz-placeholder{display:flex;align-items:center;justify-content:center;min-height:160px;border:1px dashed var(--panel-border);border-radius:8px;color:var(--ink-muted);font-size:.85rem;text-align:center;padding:1rem}.app-error{background:#fdecea;border:1px solid var(--accent);color:#7a1d10;border-radius:var(--radius);padding:1.25rem 1.5rem}.app-error h2{margin:0 0 .5rem}.app-error pre{white-space:pre-wrap;font-size:.85rem;margin:.5rem 0 0}.congress-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--panel-border)}.congress-section h2{font-size:1.4rem;margin:0 0 .5rem;letter-spacing:-.01em}.congress-section .lede{color:var(--ink-muted);margin:0 0 1.5rem;max-width:80ch}.congress-scorecards{margin:1.25rem 0 0;color:var(--ink-muted);font-size:.95rem}.congress-scorecards a{color:var(--link);font-weight:600;text-decoration:none}.congress-scorecards a:hover{text-decoration:underline}.freedc-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--panel-border)}.freedc-section h2{font-size:1.4rem;margin:0 0 .5rem;letter-spacing:-.01em}.freedc-section .lede{color:var(--ink-muted);margin:0 0 1.5rem;max-width:80ch}.freedc-leaderboard-heading{margin:1rem 0 .4rem;font-size:.95rem;color:var(--ink)}[aria-label=tip]>g>path{fill:#fff;stroke:var(--panel-border)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}@media (max-width: 720px){.viz-grid{grid-template-columns:1fr}.scrubber-reset{min-height:44px;padding-top:.6rem;padding-bottom:.6rem}.stat .stat-label,.viz-annotation-caption,.scrubber-ends{font-size:.85rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
