@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f5f6f8;--ink:#17243b;--muted:#68758a;--line:#e6eaf0;--blue:#356fd4;--red:#d65c62;--green:#2e927b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,svg path:focus-visible{outline:3px solid #2d7eae;outline-offset:3px}header{height:82px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%}.brand{text-decoration:none;color:var(--ink);font-weight:800;letter-spacing:1.8px;font-size:14px;display:flex;gap:12px;align-items:center}.brandmark{font-size:31px;color:#2a685c}.edition{font-size:11px;letter-spacing:1px;background:#f0f3f7;padding:6px 9px;border-radius:5px;color:var(--muted)}.connection{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}#dot{width:7px;height:7px;border-radius:50%;background:#93a1b2}#dot.live{background:var(--green)}#refresh{background:none;border:1px solid var(--line);border-radius:7px;font-size:23px;line-height:25px;color:var(--muted);margin-left:8px}main{max-width:1530px;margin:auto;padding:46px 4.5% 30px}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:#698078;margin:0 0 11px}h1{font-family:Manrope,sans-serif;font-size:46px;letter-spacing:-2px;line-height:1.15;margin:0 0 13px;font-weight:800}.dek{color:var(--muted);margin:0;font-size:14px}.race-switch{display:flex;padding:5px;background:#e9edf2;border-radius:10px;gap:3px;flex-shrink:0}.race-switch button{border:0;background:transparent;padding:10px 17px;color:var(--muted);border-radius:7px;font-size:12px;font-weight:700}.race-switch .active{background:white;color:var(--ink);box-shadow:0 1px 5px #1a2c4320}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 324px;gap:23px;align-items:start}.map-card,aside,.below{background:white;border:1px solid var(--line);border-radius:14px}.map-top{display:flex;align-items:center;justify-content:space-between;padding:25px 26px 0;gap:15px}h2{font:800 18px Manrope,sans-serif;letter-spacing:-.4px;margin:0}p{line-height:1.6}.map-top p{font-size:12px;color:var(--muted);margin:5px 0 0}select{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 10px;font-size:11px;color:#536078;max-width:100%}.map-wrap{position:relative;padding:15px 20px 0}#map{width:100%;display:block;overflow:visible}#map path{fill:#e6eaf0;stroke:#fff;stroke-width:1.8;stroke-linejoin:round;cursor:pointer;transition:fill .35s}#map path.selected{stroke:#22394f;stroke-width:2.4;filter:drop-shadow(0 2px 2px #10243935)}#map path:hover{stroke:#22394f;stroke-width:2.4}#map text{font:11px 'DM Sans',sans-serif;fill:#52627a;pointer-events:none;text-anchor:middle;font-weight:600;paint-order:stroke;stroke:#ffffffb0;stroke-width:2px}.map-hint{text-align:center;font-size:10px;color:#8792a3;margin:-7px 0 18px}.legend{display:flex;gap:9px;align-items:center;justify-content:center;font-size:10px;color:var(--muted);padding:8px 15px 23px;flex-wrap:wrap}.gradient{width:112px;height:7px;background:linear-gradient(90deg,#356fd4,#dce5f1,#e9e4e9,#d65c62);border-radius:3px}.no-votes{display:flex;align-items:center;gap:5px;margin-left:14px}.no-votes i{width:9px;height:9px;border-radius:2px;background:#e6eaf0}.territories{display:flex;align-items:center;gap:15px;margin:0 25px;padding:16px 0;border-top:1px solid var(--line)}.territories>span{font-size:9px;letter-spacing:1.3px;color:var(--muted);font-weight:700}.territories>div{display:flex;gap:6px;flex-wrap:wrap}.territories button{border:1px solid var(--line);border-radius:5px;background:#f6f8fa;padding:6px 10px;font-size:10px;color:var(--ink)}.map-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:15px 25px;font-size:9px;color:var(--muted)}aside{padding:24px;min-height:530px}.state-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.state-heading h2{font-size:25px}.state-code{font-size:10px;background:#eef2f5;padding:8px;border-radius:7px;color:#63788a}.status-label{display:inline-block;font-size:10px;color:#547566;background:#edf5f0;border-radius:5px;padding:5px 8px;margin-bottom:22px}.status-label.waiting{background:#f0f2f5;color:#748094}.label{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);font-weight:700}.split{display:flex;justify-content:space-between;margin-top:13px}.split strong{display:block;font:800 29px Manrope,sans-serif;letter-spacing:-1px}.dem{color:var(--blue)}.rep{color:var(--red)}.split small{font-size:11px}.bar{height:8px;border-radius:4px;overflow:hidden;background:#edf0f4;display:flex;margin:13px 0 9px}.bar span{display:block;height:100%}.tiny{font-size:10px;color:var(--muted);line-height:1.65}.votes-line{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.compare{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.baseline-values{display:flex;justify-content:space-between;font-size:12px;margin-top:11px}.shift{background:#f4f6f9;border-radius:8px;padding:14px;margin-top:17px}.shift strong{font-size:17px;display:block;margin-bottom:5px}.shift span{font-size:10px;color:var(--muted)}.detail-footer{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.detail-footer button{background:#fff;border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:11px;padding:9px;width:100%;text-align:left}.local-results{max-height:330px;overflow:auto;margin-top:12px}.local-results h3{font-size:12px;margin:15px 0 5px}.local-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #f0f2f4;gap:9px;font-size:10px}.below{margin-top:25px;padding:26px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px;gap:15px}.section-heading .eyebrow{font-size:9px;margin-bottom:8px}.search{display:flex;align-items:center;border:1px solid var(--line);padding:9px 12px;border-radius:7px;gap:8px;color:var(--muted)}.search input{border:0;outline:0;font-size:11px;width:135px}.table-scroll{overflow-x:auto;max-height:420px}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:12px}th{font-size:9px;font-weight:600;color:var(--muted);padding:0 13px 14px;text-transform:uppercase;letter-spacing:.7px}td{padding:15px 13px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}td:first-child{font-weight:700}td button{background:none;border:0;color:var(--ink);font-weight:700;padding:0}tbody tr:hover{background:#f8fafc}.table-shift{font-size:11px}.method{max-width:960px;margin:33px 0 0}.method h2{font-size:13px}.method p{font-size:11px;color:var(--muted)}a{color:#3a637d}footer{border-top:1px solid var(--line);margin:0 4.5%;padding:22px 0 30px;display:flex;justify-content:space-between;font-size:11px;font-weight:700}footer span{font-weight:400;color:var(--muted);font-size:10px}#notice{background:#fff2d9;border:1px solid #ebd9b4;color:#75613c;padding:12px 16px;font-size:12px;margin-bottom:18px;border-radius:8px}.empty{padding:25px 0;color:var(--muted);font-size:13px}.race-picker{width:100%;margin-bottom:14px}@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 350px}aside{padding:28px}}@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 290px}.intro{align-items:flex-start;flex-direction:column}.map-top{padding:20px 18px 0}.map-top select{max-width:145px}h1{font-size:40px}}@media(max-width:760px){header{height:66px;padding:0 5%}.brand{font-size:11px;gap:7px}.edition{display:none}.connection{font-size:10px}main{padding:30px 5%}.intro{gap:21px}.dek{font-size:12px;max-width:280px}h1{font-size:36px}.race-switch{width:100%}.race-switch button{flex:1}.workspace{grid-template-columns:1fr}.map-wrap{padding:12px 7px 0}.map-top{padding:20px 15px 0}.map-top h2{font-size:16px}.map-top p{font-size:10px}.map-footer{font-size:8px;padding:13px 15px}.territories{margin:0 15px;gap:8px}.territories button{padding:6px 8px}.legend{font-size:9px;padding:8px 10px 15px;gap:5px}.gradient{width:70px}.map-hint{margin:2px 0 10px}aside{min-height:0}.below{padding:20px 15px}.section-heading{align-items:flex-start}.search input{width:80px}.search{padding:8px}footer{gap:15px;flex-direction:column}.method p{font-size:10px}.no-votes{margin-left:4px}}

.comparison-controls{display:flex;align-items:center;gap:13px;margin:-8px 0 26px;flex-wrap:wrap}.comparison-controls label{font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--muted)}.comparison-controls select{font-size:12px;min-width:215px;padding:11px 13px}.comparison-controls>span{font-size:11px;color:var(--muted)}#baseline-term{margin:12px 0 0}@media(max-width:760px){.comparison-controls{gap:9px;margin-top:0}.comparison-controls>span{flex-basis:100%;font-size:10px}.comparison-controls select{flex:1;min-width:180px}}
/* Full-screen state exploration */
#state-explorer{width:min(1440px,94vw);max-width:none;height:92dvh;max-height:92dvh;padding:0;border:1px solid #d9e0e8;border-radius:18px;background:#f5f6f8;color:var(--ink);box-shadow:0 30px 120px #14223855}#state-explorer::backdrop{background:#15283db3;backdrop-filter:blur(4px)}.explorer-shell{height:100%;display:flex;flex-direction:column}.explorer-header{flex-shrink:0;height:auto;padding:22px 30px;position:relative}.explorer-header h2{font-size:30px}.explorer-header .eyebrow{margin-bottom:6px}.explorer-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:28px;color:var(--muted)}.explorer-scroll{overflow:auto;overscroll-behavior:contain;flex:1;padding:0 30px 25px;scroll-behavior:smooth}.explorer-intro{display:flex;gap:20px;justify-content:space-between;align-items:center;padding-top:15px}.explorer-intro p{color:var(--muted);font-size:13px}.explorer-intro button{white-space:nowrap;padding:10px 15px;border:1px solid var(--line);border-radius:7px;background:white;font-size:12px;color:var(--ink)}.explorer-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 30px}.office-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.office-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.office-heading h3{font:800 17px Manrope,sans-serif;margin:0}.office-heading a{font-size:11px;text-decoration:none}.explorer-split{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:22px 0 17px}.explorer-split span{display:flex;flex-direction:column;gap:6px}.explorer-split small{font-size:10px}.explorer-split b{font:800 26px Manrope,sans-serif;letter-spacing:-1px}.explorer-split span:last-child{color:var(--muted)}.office-total{font-size:12px;border-top:1px solid var(--line);padding-top:12px}.automatic-comparison{background:#f6f8fa;border-radius:7px;padding:12px;margin-top:16px;display:flex;flex-direction:column;gap:9px}.automatic-comparison span{font-size:10px;color:var(--muted)}.automatic-comparison strong{font-size:15px}.office-empty{padding:26px 0;color:var(--muted);min-height:106px}.historical-section,.explorer-races{background:#fff;border:1px solid var(--line);padding:25px;border-radius:12px;margin:0 0 25px}.historical-section h3,.explorer-races h3{font:800 21px Manrope,sans-serif;margin:0 0 13px}.historical-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px}.historical-cards article{padding:15px;background:#f8f9fb;border-radius:8px}.historical-cards h4{margin:0;font-size:12px}.historical-cards .explorer-split b{font-size:20px}.historical-cards .explorer-split{margin:17px 0 12px}.comparison-matrix{margin-top:20px}.comparison-matrix .same-office{background:#edf5f4}.comparison-matrix td{font-size:11px}.office-races{padding-top:10px;scroll-margin-top:15px}.office-races>h4{font:700 15px Manrope,sans-serif;margin:15px 0}.office-races>h4 span{font:400 11px 'DM Sans',sans-serif;color:var(--muted);margin-left:10px}.race-detail{border:1px solid var(--line);border-radius:8px;margin:9px 0}.race-detail>summary{padding:16px;cursor:pointer;font-weight:700;font-size:13px}.race-detail>summary small{float:right;font-size:11px;font-weight:400;color:var(--muted)}.race-body{padding:0 18px 18px}.candidate-list>div{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.candidate-list small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.candidate-list>div>span:last-child{text-align:right;font-variant-numeric:tabular-nums}.local-section{margin-top:22px}.local-section>summary{font-size:12px;font-weight:700;cursor:pointer}.county-column-labels{display:flex;justify-content:space-between;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:13px 0}.county-detail{border-top:1px solid var(--line)}.county-detail>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;padding:12px 0;font-size:12px}.county-detail>summary>span:first-child:before{content:'▸';margin-right:8px;color:var(--muted)}.county-detail[open]>summary>span:first-child:before{content:'▾'}.county-detail>summary small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.county-detail>summary>span:last-child{text-align:right}.county-candidates{background:#f6f8fa;padding:10px 16px;border-radius:8px;margin-bottom:12px}.geography-note{padding:15px;background:#f5f7fa;color:var(--muted);font-size:12px;border-radius:8px;margin-top:20px}.explorer-sources{margin:0}.explorer-close:focus-visible{outline:3px solid var(--blue)}@media(max-width:1050px){.explorer-overview{grid-template-columns:1fr}.explorer-split{max-width:480px}.historical-section,.explorer-races{padding:18px}}@media(max-width:600px){#state-explorer{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}.explorer-header{padding:16px 18px}.explorer-header h2{font-size:25px}.explorer-scroll{padding:0 14px 20px}.explorer-intro{align-items:flex-start;gap:10px}.explorer-intro p{font-size:11px;margin:0}.explorer-intro button{font-size:10px;padding:8px}.office-card{padding:18px}.explorer-split b{font-size:24px}.historical-cards{grid-template-columns:1fr}.race-detail>summary{padding:13px;font-size:11px}.race-detail>summary small{float:none;display:block;margin-top:5px}.race-body{padding:0 12px 12px}.county-column-labels{font-size:8px;gap:12px}.historical-section h3,.explorer-races h3{font-size:18px}}

.vote-count-change{display:flex;flex-direction:column;gap:7px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink)}.vote-count-change>span{font-size:10px;color:var(--muted)}.vote-count-change>strong{font-size:14px;line-height:1.5;color:var(--ink)}.vote-count-change>small{font-size:10px;line-height:1.5;color:var(--muted)}.matrix-vote-change{font-size:11px;font-weight:400;color:var(--ink);margin-top:8px}.sidebar-vote-change{margin-top:15px}.comparison-matrix td{vertical-align:top}
/* Flat, aligned local returns: one scroll through all three offices. */
.office-card>h3{margin:0 0 18px;font-size:18px}.overview-reporting{font-size:22px;font-weight:800;color:var(--ink)}.county-section{margin:0 0 24px}.county-section>h3{font-size:24px;margin:8px 0}.county-table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:white;margin:20px 0}.county-results{table-layout:fixed;width:100%;min-width:690px;margin:0;border-collapse:separate;border-spacing:0}.county-results thead th{background:#eaf0f7;font-size:16px;padding:20px;text-align:left;color:var(--ink);width:33.333%}.county-results td{vertical-align:top;text-align:left;padding:20px;border-right:1px solid var(--line);white-space:normal}.county-results td:last-child{border-right:0}.county-results .county-name th{padding:12px 20px;background:#f1f4f8;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;font-size:16px;color:var(--ink)}.county-name small{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px}.local-reporting{font-weight:700;font-size:13px;margin-bottom:16px}.local-shares{display:flex;gap:18px;font-size:20px;font-variant-numeric:tabular-nums}.local-lead{font-size:14px;font-weight:700;margin-top:9px}.local-comparison{display:flex;flex-direction:column;gap:7px;background:#f5f7fa;padding:12px;border-radius:8px;font-size:14px}.local-comparison small{font-size:11px;color:var(--muted)}.local-result+.local-result{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.broad-result .explorer-split b{font-size:22px}.broad-result h4{margin-top:0}.historical-section>summary{cursor:pointer;font-weight:700;font-size:14px}@media(min-width:850px){.explorer-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.county-results td{padding:14px}.local-shares{font-size:18px;gap:12px}}
@media(min-width:850px){.county-table-scroll{overflow:visible}.county-results thead th{position:sticky;top:0;z-index:2;border-bottom:1px solid var(--line)}.county-results thead th:first-child{border-top-left-radius:12px}.county-results thead th:last-child{border-top-right-radius:12px}}
.polling-section{margin:0 0 32px}.polling-section>h3{font-size:24px;margin:8px 0}.polling-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.poll-office{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}.poll-office>h4{font-size:17px;margin:0 0 16px}.poll-race{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.poll-race h4{font-size:14px;margin:0 0 14px}.poll-race label{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.poll-race select{width:100%;min-width:0;padding:10px 8px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);font-size:12px}.poll-margins{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.poll-margins>div,.poll-difference{display:flex;flex-direction:column;gap:7px}.poll-margins small,.poll-difference small{font-size:10px;color:var(--muted)}.poll-margins strong{font-size:21px}.poll-difference{padding:12px;border-radius:8px;background:#f1f5f9;font-size:14px}.poll-sources{list-style:none;padding:0;margin:18px 0 0}.poll-sources li{padding:9px 0;border-top:1px solid var(--line);font-size:11px;overflow-wrap:anywhere}.poll-sources span{display:block;font-size:10px;color:var(--muted);margin-top:5px}@media(max-width:849px){.polling-columns{grid-template-columns:1fr}.polling-section>h3{font-size:21px}}

.commentary-card{background:#fff;border:1px solid var(--line,#dfe4ec);border-radius:16px;padding:24px;margin:0 0 24px;max-width:100%;}.commentary-card[hidden]{display:none}.commentary-card h2{margin:0 0 8px}.commentary-card h3{margin:20px 0 8px}.commentary-card li,.commentary-card p{line-height:1.6}.commentary-card ul{padding-left:22px}.commentary-card .tiny{color:#586477}

.commentary-toggle{cursor:pointer;font-weight:700;font-size:1.1rem;padding:2px 0}.commentary-toggle small{font-weight:400;font-size:.8rem;color:#586477;margin-left:12px}.commentary-history{max-height:440px;overflow-y:auto;overscroll-behavior:contain;margin-top:18px;padding-right:12px}.commentary-entry+.commentary-entry{border-top:1px solid #dfe4ec;margin-top:24px;padding-top:24px}.commentary-entry h2{font-size:1.15rem}.commentary-entry h3{font-size:1rem}@media(max-width:600px){.commentary-history{max-height:360px}.commentary-card{padding:18px}}
