:root{--paper:#f3f4f5;--surface:#fff;--ink:#242729;--muted:#5e6267;--rule:#cdd1d5;--faint:#e9ebed;--cardinal:#8c1515;--dem:#1f5aa6;--rep:#b32624;--serif:"Times New Roman",Times,serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.4 var(--serif)}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:var(--cardinal);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid #815f0c;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}.dem{color:var(--dem)}.rep{color:var(--rep)}.neutral{color:var(--ink)}.app-header{background:var(--surface);border-top:4px solid var(--cardinal);border-bottom:1px solid #b8bdc2}.header-inner{max-width:1680px;margin:auto;min-height:103px;padding:18px 28px;display:flex;align-items:center;gap:22px}.brand{font-size:34px;text-decoration:none;letter-spacing:-1.6px;padding-right:22px;border-right:1px solid var(--rule);line-height:1.6}.firm-name{font:11px/1.3 var(--sans);color:var(--cardinal);letter-spacing:.6px;margin-bottom:4px}.title-block h1{font-size:27px;font-weight:400;line-height:1.15}.title-block p{font:11px/1.5 var(--sans);color:var(--muted);margin-top:8px}.title-block p span{padding:0 8px}.edition-meta{margin:0 0 0 auto;min-width:225px;font:11px/1.5 var(--sans)}.edition-meta>div{display:flex;justify-content:space-between;gap:22px;padding:3px 0}.edition-meta dt{color:var(--muted)}.edition-meta dd{margin:0;font-variant-numeric:tabular-nums}.app-tabs{display:flex;max-width:1680px;padding:0 28px;margin:auto;overflow-x:auto;gap:0;scrollbar-width:thin}.app-tabs button{font:13px/1.25 var(--sans);padding:13px 23px;border:0;border-bottom:3px solid transparent;background:transparent;white-space:nowrap;color:#555c61;position:relative}.app-tabs button:hover{background:#f5f6f7}.app-tabs button[aria-selected=true]{color:var(--cardinal);background:#f8f5f5;border-bottom-color:var(--cardinal);font-weight:600}.tab-count{font-size:10px;margin-left:5px;color:var(--muted)}.workspace{max-width:1680px;margin:0 auto;padding:24px 28px 32px;min-height:calc(100vh - 216px)}[role=tabpanel]:focus{outline:none}.panel-heading{display:flex;justify-content:space-between;align-items:baseline;gap:25px;margin:0 0 18px}.panel-heading h2{font-size:23px;font-weight:400;line-height:1.25}.panel-heading>p{font:12px/1.5 var(--sans);color:var(--muted);text-align:right}.coverage-stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);background:#fff;margin-bottom:20px}.stat-item{padding:13px 20px;display:flex;align-items:baseline;gap:12px;border-right:1px solid var(--rule)}.stat-item:last-child{border:0}.stat-value{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}.stat-label{font:12px var(--sans);color:var(--muted)}.overview-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(300px,1fr);gap:20px}.overview-sidebar{display:flex;flex-direction:column;gap:18px}.panel-box{background:#fff;border:1px solid var(--rule);min-width:0;align-self:start}.box-heading{min-height:43px;padding:11px 15px;border-bottom:1px solid var(--rule);display:flex;gap:16px;justify-content:space-between;align-items:baseline;background:#fafafa}.box-heading h3{font-size:17px;font-weight:400;line-height:1.2}.box-heading>span{font:10px/1.4 var(--sans);color:var(--muted)}.table-scroll{overflow:auto;max-width:100%;scrollbar-width:thin;scrollbar-color:#afb5bb #f2f3f4}.data-table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.35}.data-table caption{caption-side:top}.data-table thead th{background:#eef0f2;font:600 11px/1.35 var(--sans);color:#454a50;padding:9px 12px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:bottom;white-space:nowrap;position:sticky;top:0;z-index:2}.data-table tbody td,.data-table tbody th{padding:8px 12px;border-bottom:1px solid #e1e4e6;vertical-align:top;text-align:left;font-weight:400}.data-table tbody tr:nth-child(even){background:#f8f9fa}.data-table tbody tr:hover{background:#edf1f5}.data-table tbody tr:last-child>td,.data-table tbody tr:last-child>th{border-bottom:0}.data-table .numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table button[data-sort]{font:inherit;font-weight:600;background:none;border:0;padding:0;text-align:inherit}.data-table th[aria-sort]{cursor:pointer}.table-link,.race-link{font:inherit;background:none;border:0;padding:0;color:var(--cardinal);text-align:left;text-decoration:none}.table-link:hover,.race-link:hover{text-decoration:underline}.table-link:focus-visible,.race-link:focus-visible{outline-offset:2px}.rating-label{font:11px/1.35 var(--sans);white-space:normal}.cell-note{display:block;color:var(--muted);font:11px/1.4 var(--sans);margin-top:3px}.candidate-cell{font-size:13px;min-width:205px;max-width:280px}.poll-cell{max-width:260px;font-size:13px}.save-button{font:20px/1 var(--serif);border:0;background:none;color:#636970;padding:1px 3px}.save-button[aria-pressed=true]{color:var(--cardinal)}.source-links{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:9px;font:11px/1.4 var(--sans)}.source-links a{color:#545b63;text-decoration:underline}.control-summary{padding:13px 16px;font-size:15px;line-height:1.5}.control-summary p+p{margin-top:9px}.control-summary strong{font-weight:600}.control-summary .control-stat{display:flex;justify-content:space-between;border-bottom:1px solid var(--faint);padding:6px 0}.overview-lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:20px;margin-top:20px}.assessment-text{padding:15px 18px;font-size:15px;line-height:1.5}.assessment-text p+p{margin-top:12px}.assessment-text>div+div{margin-top:14px}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;background:#fff;border:1px solid var(--rule);padding:13px 15px}.filter-bar label{display:flex;flex-direction:column;gap:5px;flex:1;min-width:125px;max-width:230px}.filter-bar label>span{font:11px var(--sans);color:#555c63}.filter-bar input,.filter-bar select{font:12px var(--sans);height:34px;padding:6px 9px;border:1px solid #bcc2c8;background:#fff;border-radius:0;min-width:0;width:100%}.filter-bar .search-field{flex:1.6;min-width:220px;max-width:330px}.filter-bar.compact{margin-bottom:18px;justify-content:flex-start}.filter-bar.compact label{flex:0 1 210px}.filter-bar.compact>p{font:12px var(--sans);color:var(--muted);margin-left:auto;margin-bottom:7px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0 10px;min-height:30px;font:12px var(--sans)}.table-toolbar>div{display:flex;gap:8px}.table-toolbar p{color:var(--muted)}.small-button{font:12px/1.3 var(--sans);padding:7px 11px;border:1px solid #b7bec5;background:#fff;border-radius:0}.small-button:hover{background:#e9edf1}.small-button[aria-pressed=true]{border-color:var(--cardinal);color:var(--cardinal);background:#f8eded}.small-button span{font-variant-numeric:tabular-nums;margin-left:6px}.main-race-table{border:1px solid var(--rule);background:#fff;max-height:70vh}.main-race-table .data-table{min-width:1160px}.main-race-table .data-table td{padding-top:10px;padding-bottom:10px}.table-empty{padding:24px!important;text-align:center!important;font-size:15px;color:var(--muted)}.polling-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:20px;align-items:start}.polling-table{max-height:69vh}.polling-table .data-table{min-width:620px}.polling-table .data-table td:last-child{min-width:310px}.chart-description{padding:12px 16px 4px;font:11px var(--sans);color:var(--muted)}.senate-chart{padding:5px 16px 16px}.chart-row{display:grid;grid-template-columns:105px 1fr 48px;gap:10px;align-items:center;width:100%;padding:9px 0;border:0;border-bottom:1px solid #e4e7e9;background:none;text-align:left;font:12px/1.3 var(--sans)}.chart-row:hover{background:#f3f5f7}.chart-row:last-child{border-bottom:0}.chart-track{height:7px;background:#e8ebee;display:block;position:relative}.chart-bar{display:block;height:100%;background:currentColor;min-width:2px}.chart-zero{position:absolute;top:-3px;bottom:-3px;left:50%;width:1px;background:#969da4}.chart-value{text-align:right;font-variant-numeric:tabular-nums;font-size:11px;white-space:nowrap}.party-legend{display:flex;gap:20px;padding:0 16px 15px;font:10px var(--sans)}.closings-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr);gap:20px}.map-panel{padding:10px 18px 14px;position:relative}#mapContainer{min-height:300px}#mapContainer svg{display:block;width:100%;height:auto;max-height:465px}.map-state{cursor:pointer}.map-state:hover,.map-state:focus{filter:brightness(.83)}.map-state[aria-pressed=true]{filter:drop-shadow(0 0 2px #8c1515)}.map-tooltip{position:absolute;left:25px;top:25px;background:#fff;border:1px solid #8d969e;max-width:280px;padding:10px 12px;font:12px/1.4 var(--sans);pointer-events:none;z-index:3;box-shadow:0 2px 6px #0002}.map-tooltip strong{display:block;margin-bottom:3px}.tooltip-cue{display:block;margin-top:7px;font-size:11px;border-top:1px solid var(--rule);padding-top:7px}.map-legend{display:flex;flex-wrap:wrap;gap:7px 13px;justify-content:center;border-top:1px solid var(--rule);padding:12px 0 6px}.legend-item{display:flex;gap:6px;align-items:center;font:10px var(--sans)}.legend-dot{width:12px;height:12px;border:1px solid #0002;display:inline-block}.figure-note{font:11px/1.5 var(--sans);color:var(--muted);margin:10px 0 0}.figure-note.inset{padding:0 14px 13px}.state-schedule{margin-top:20px}.state-schedule .table-scroll{max-height:520px}.state-schedule .data-table{min-width:680px}.state-schedule td:last-child{min-width:300px}.history-block{background:#fff;border:1px solid var(--rule);padding:0;margin-bottom:16px;break-inside:avoid}.history-block h3{font-size:18px;font-weight:400;padding:11px 16px;border-bottom:1px solid var(--rule);background:#fafafa}.history-block p{padding:11px 16px 0;font-size:15px;line-height:1.5}.history-block .source-links{padding:0 16px 14px}.history-block .data-table{margin:0}.history-block .table-scroll{width:100%}#historyResults>.data-table{background:#fff;border:1px solid var(--rule)}.history-result-count{font:12px var(--sans);color:var(--muted);margin-bottom:12px}.updates-table{min-width:600px}#refreshStatus{font:12px/1.5 var(--sans);color:var(--muted);margin-bottom:12px}#refreshStatus:empty{display:none}.update-entry{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:17px 20px;border-bottom:1px solid var(--rule)}.update-entry:last-child{border:0}.update-date{font:12px/1.5 var(--sans);color:var(--muted)}.update-entry h3{font-size:18px;font-weight:400;margin-bottom:8px}.update-entry p{font-size:15px;line-height:1.5}.update-race-links{margin-top:8px}.documents-table{min-width:680px}.documents-table td,.documents-table th{padding:15px!important}.documents-table tbody th{width:26%;font-size:16px}.documents-table td:nth-child(2){width:47%;color:#50565b}.document-link{font:12px var(--sans);white-space:nowrap}.app-footer{border-top:1px solid var(--rule);padding:13px 28px 18px;display:flex;justify-content:space-between;gap:20px;font:10px var(--sans);color:var(--muted);max-width:1680px;margin:auto}dialog{padding:0;border:1px solid #9da5ac;max-width:850px;width:calc(100% - 40px);max-height:92vh;background:#fff;color:var(--ink);box-shadow:0 10px 32px #0003}dialog::backdrop{background:#20283085}.dialog-top{padding:11px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule);position:sticky;top:0;background:#f4f5f6;z-index:1}.dialog-top>span{font:11px var(--sans);color:var(--muted)}#closeDialog{border:0;background:none;font:25px/1 var(--sans);padding:0 0 0 15px}.dialog-content,#dialogBody{padding:22px 28px 28px}#dialogBody .dialog-content{padding:0}#dialogTitle{font-size:28px;font-weight:400;line-height:1.2;margin:0 0 9px}.candidate-line{font-size:17px;margin-bottom:13px;color:#484e53}.cook-line{font:12px/1.4 var(--sans);margin-bottom:12px}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 20px}.dialog-actions button{font:11px var(--sans);background:#fff;border:1px solid #b7bec5;padding:8px 11px}.dialog-actions button[aria-pressed=true]{border-color:var(--cardinal);color:var(--cardinal)}.dialog-summary,.dialog-metrics{background:#f1f3f5;border:1px solid var(--rule);padding:14px 17px;margin:15px 0 22px}.dialog-summary p+p,.dialog-metrics p+p{margin-top:8px}.detail-heading{font-size:18px;font-weight:400;border-bottom:1px solid var(--rule);padding-bottom:5px;margin:22px 0 10px;color:var(--ink)}.detail-prose{font-size:16px;line-height:1.55;margin-bottom:12px}.history-disclosure{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:13px 0;margin-top:20px}.history-disclosure summary{font-size:17px;cursor:pointer}.history-disclosure[open] summary{margin-bottom:12px}.history-disclosure p+p{margin-top:8px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:10px 15px;background:#2c3339;color:#fff;z-index:100;font:12px/1.4 var(--sans)}.loading{font:13px var(--sans);padding:25px;color:var(--muted)}.skip-link{position:fixed;top:-60px;left:20px;background:#fff;border:2px solid var(--cardinal);padding:8px 12px;z-index:100;font:13px var(--sans)}.skip-link:focus{top:10px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.main-race-table .data-table td{padding-top:11px;padding-bottom:11px}.workspace{padding-top:27px}}
@media(max-width:1100px){.header-inner{gap:17px;padding:16px 22px}.title-block h1{font-size:24px}.edition-meta{min-width:190px;font-size:10px}.app-tabs{padding:0 22px}.app-tabs button{padding:13px 17px}.workspace{padding:20px 22px 28px}.overview-layout{grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:16px}.overview-senate .data-table{font-size:13px}.overview-senate .data-table td,.overview-senate .data-table th{padding:8px}.box-heading{padding:11px 12px}.box-heading>span{max-width:150px;text-align:right}.filter-bar .search-field{min-width:190px}.filter-bar label{min-width:110px}.polling-layout{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}.closings-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr)}}
@media(max-width:850px){.header-inner{flex-wrap:wrap;gap:10px 15px;padding:15px 18px}.brand{font-size:29px;padding-right:15px}.title-block{flex:1}.title-block h1{font-size:23px}.edition-meta{display:flex;gap:24px;min-width:0;width:100%;padding-top:7px;border-top:1px solid var(--faint);margin-top:3px}.edition-meta>div{justify-content:flex-start;gap:9px}.app-tabs{padding:0 10px}.app-tabs button{padding:12px 16px;font-size:12px}.workspace{padding:19px 18px 25px}.panel-heading{align-items:flex-start;margin-bottom:15px}.panel-heading h2{font-size:22px}.panel-heading>p{max-width:50%;font-size:11px}.coverage-stats{margin-bottom:16px}.stat-item{padding:11px 13px;gap:8px}.stat-value{font-size:23px}.stat-label{font-size:10px}.overview-layout,.overview-lower,.closings-layout,.polling-layout{grid-template-columns:1fr}.overview-sidebar{display:grid;grid-template-columns:1fr 1.25fr;gap:16px}.overview-lower{gap:16px;margin-top:16px}.polling-layout .chart-panel{max-width:none}.senate-chart{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.chart-row{grid-template-columns:95px 1fr 45px}.main-race-table{max-height:65vh}.filter-bar{gap:10px}.filter-bar label{max-width:none}.filter-bar .search-field{max-width:none}.map-panel{padding:10px 15px 14px}.box-heading>span{max-width:none}.app-footer{padding-left:18px;padding-right:18px}}
@media(max-width:540px){.header-inner{padding:13px 14px;gap:9px}.brand{font-size:26px;padding-right:10px}.firm-name{font-size:10px}.title-block h1{font-size:20px}.title-block p{font-size:10px;line-height:1.5;margin-top:5px}.title-block p span{padding:0 3px}.edition-meta{display:block;font-size:10px;padding-top:5px}.edition-meta>div{justify-content:space-between;padding:1px 0}.app-tabs{padding:0 4px}.app-tabs button{padding:11px 14px;font-size:12px}.workspace{padding:16px 12px 22px}.panel-heading{display:block}.panel-heading>p{max-width:none;text-align:left;margin-top:7px;font-size:11px}.panel-heading>.small-button{margin-top:12px}.panel-heading h2{font-size:22px}.coverage-stats{grid-template-columns:repeat(2,1fr)}.stat-item{padding:10px 12px;gap:9px}.stat-item:nth-child(2){border-right:0}.stat-item:nth-child(-n+2){border-bottom:1px solid var(--rule)}.stat-value{font-size:23px}.stat-label{font-size:11px}.overview-sidebar{grid-template-columns:1fr}.overview-senate .data-table{min-width:610px}.box-heading{gap:10px}.box-heading h3{font-size:16px}.box-heading>span{font-size:9px;text-align:right;max-width:140px}.filter-bar{padding:11px;display:grid;grid-template-columns:1fr 1fr}.filter-bar label{min-width:0}.filter-bar .search-field{grid-column:1/-1;min-width:0}.filter-bar input,.filter-bar select{font-size:12px}.filter-bar.compact{display:grid}.filter-bar.compact>p{grid-column:1/-1;margin:0}.filter-bar.compact .search-field{grid-column:1/-1}.table-toolbar{align-items:flex-start;gap:8px;flex-direction:column;font-size:11px}.small-button{font-size:11px;padding:7px 9px}.table-toolbar>div{width:100%;justify-content:flex-end}.main-race-table{max-height:66vh}.data-table{font-size:13px}.data-table thead th{font-size:10px}.data-table tbody td,.data-table tbody th{padding:8px 10px}.senate-chart{grid-template-columns:1fr;padding:4px 14px 10px}.chart-row{grid-template-columns:105px 1fr 48px;font-size:11px}.map-panel{padding:7px 10px 12px}#mapContainer{min-height:0}.map-legend{gap:7px 10px}.legend-item{font-size:9px}.figure-note{font-size:10px}.map-tooltip{left:14px;top:12px;max-width:245px}.history-block h3{font-size:17px}.history-block p{font-size:14px}.update-entry{grid-template-columns:1fr;gap:8px;padding:14px}.update-date{font-size:11px}.app-footer{display:block;padding:13px 12px 16px;font-size:9px}.app-footer span+span{display:block;margin-top:4px}dialog{width:calc(100% - 16px);max-height:95vh}.dialog-top{padding:10px 17px}.dialog-top>span{font-size:10px}#dialogBody{padding:18px 18px 22px}#dialogTitle{font-size:25px}.candidate-line{font-size:16px}.detail-prose{font-size:15px}.dialog-summary,.dialog-metrics{padding:12px;font-size:15px}.dialog-actions button{font-size:10px}.detail-heading{font-size:17px}.source-links{font-size:10px}}
@media print{body{background:#fff}.app-header,.app-tabs,.filter-bar,.table-toolbar,.app-footer,.save-button,.dialog-actions,.toast{display:none!important}.workspace{padding:0;max-width:none}.panel-box{break-inside:avoid}.table-scroll{overflow:visible!important;max-height:none!important}.overview-layout,.overview-lower,.polling-layout,.closings-layout{display:block}.panel-box{margin-bottom:16px}.data-table{font-size:11px}.data-table thead th{position:static}dialog[open]{position:static;width:100%;max-height:none;box-shadow:none;border:0}dialog::backdrop{background:#fff}}
/* Dashboard table and chart details */
.data-table tfoot th,.data-table tfoot td{padding:8px 12px;border-top:1px solid var(--rule);background:#eef0f2;font:600 11px var(--sans)}
.market-cell{font-variant-numeric:tabular-nums;min-width:125px;max-width:185px}.poll-lead{font-variant-numeric:tabular-nums;white-space:nowrap}.save-cell{width:35px;text-align:center!important}.sort-mark{font-size:9px;color:#6c747c}.overview-senate .data-table th:first-child{min-width:92px}.overview-senate .market-cell{font-size:12px}.overview-senate .data-table td:nth-child(2){font-size:12px}.overview-senate .data-table tbody td,.overview-senate .data-table tbody th{padding-top:7px;padding-bottom:7px}#overviewAnalysis>.assessment-text{padding:0}#overviewAnalysis>.source-links{margin-bottom:16px}#overviewAnalysis>.source-links:last-child{margin-bottom:0}.polling-table .data-table td:last-child{min-width:125px}.polling-text{min-width:280px;max-width:520px}.chart-axis{display:flex;justify-content:space-between;grid-column:1/-1;font:9px/1.5 var(--sans);color:var(--muted);padding:5px 0 9px 115px;gap:13px}.chart-bar{position:absolute;top:0}.chart-label{text-align:left}.dialog-summary{margin-left:0;margin-right:0}.dialog-summary dt{font:600 11px/1.5 var(--sans);margin-bottom:4px}.dialog-summary dd{margin:0 0 12px;font-size:16px;line-height:1.5}.dialog-summary dd:last-child{margin-bottom:0}.map-tooltip>span{display:block}.result-summary{font:12px var(--sans);color:var(--muted);margin:0 0 12px}#historyResults>.table-scroll{background:#fff;border:1px solid var(--rule);max-height:72vh}#historyResults .data-table{min-width:760px}#historyResults .data-table td{min-width:160px}#historyResults .data-table td:nth-child(2){min-width:290px}#historyResults .data-table td:last-child{min-width:160px}#updatesList{overflow:auto}#updatesList>.data-table{min-width:620px}
.overview-sidebar>.panel-box{width:100%;align-self:stretch}#ratingMatrix .race-link{color:var(--ink)}#ratingMatrix tr:has(th.dem) .race-link{color:var(--dem)}#ratingMatrix tr:has(th.rep) .race-link{color:var(--rep)}

.presidential-cell{font-variant-numeric:tabular-nums;white-space:nowrap}

/* Vintage basketball scoreboard */
.overview-layout{grid-template-areas:"senate scoreboard" "senate sidebar";grid-template-rows:auto 1fr;align-items:start}
.overview-senate-panel{grid-area:senate}
.overview-sidebar{grid-area:sidebar;display:block}
.overview-scoreboard{--board:#454c4e;--board-ink:#f0ece2;--board-amber:#ffd59a;--board-type:"Helvetica Neue",Arial,sans-serif;grid-area:scoreboard;container-type:inline-size;min-width:0;position:relative;color:var(--board-ink);background:linear-gradient(120deg,rgba(255,255,255,.045),transparent 55%),var(--board);border:3px solid #2c3234;box-shadow:inset 0 1px 0 #737a78,inset 1px 0 0 #626a68;padding:0 12px 10px;font-family:var(--board-type)}
.overview-scoreboard h3{text-align:center;text-transform:uppercase;letter-spacing:1.4px;font-size:11px;font-weight:500;line-height:1.4;padding:14px 0 9px;color:#eee9de}
.countdown-inline{margin:0 0 9px;padding:6px 2px;text-align:center;color:var(--board-amber);background:#24282c;border:1px solid #1c2224;font:400 clamp(10px,2.8cqi,12px)/1.5 var(--board-type);font-variant-numeric:tabular-nums;white-space:nowrap}
.manual-scoreboard{width:100%;table-layout:fixed;border-collapse:collapse;text-align:center}
.manual-scoreboard .scoreboard-office{width:22%}
.manual-scoreboard th,.manual-scoreboard td{padding:7px 5px;vertical-align:middle;border:0}
.manual-scoreboard thead th{padding-top:0;padding-bottom:4px}
.score-team{display:block;padding:6px 1px;color:var(--board-amber);background:#24282c;border:1px solid #1d2325;font-size:clamp(9px,2.9cqi,13px);font-weight:500;line-height:1.2;letter-spacing:.25px;text-transform:uppercase}
.manual-scoreboard tbody th{font-size:clamp(11px,3cqi,14px);font-weight:500;text-transform:uppercase;text-align:left;letter-spacing:.65px;padding-left:0}
.manual-scoreboard tbody tr+tr>*{border-top:1px solid #626a69;padding-top:10px}
.score-plate{display:flex;align-items:center;justify-content:center;min-width:0;background:#111218;border:1px solid #252a2d;box-shadow:0 1px 0 rgba(197,208,200,.22),inset 0 0 8px #080a0e;padding:6px 5px}
.score-dem{--led-color:#75b8ff;--led-unlit:#172031}
.score-rep{--led-color:#ff727d;--led-unlit:#2c1821}
.score-led{display:block;width:100%;max-width:112px;height:clamp(34px,10.5cqi,46px);overflow:visible}
.led-on{fill:var(--led-color);filter:drop-shadow(0 0 .5px var(--led-color))}
.led-off{fill:var(--led-unlit)}
.score-likely{display:block;color:#ecebe5;font:400 clamp(10px,2.8cqi,12px)/1.3 var(--board-type);margin-top:5px;white-space:nowrap}
#overviewSenate .race-link.dem{color:var(--dem)}
#overviewSenate .race-link.rep{color:var(--rep)}
#raceTable .race-link{color:#000}
.senate-majority-note{padding:12px 15px;border-top:1px solid var(--rule);font-size:14px;line-height:1.45}
@media(max-width:1100px) and (min-width:851px){.overview-scoreboard{padding-left:7px;padding-right:7px}.manual-scoreboard th,.manual-scoreboard td{padding-left:3px;padding-right:3px}.manual-scoreboard tbody th{padding-left:0}.score-plate{padding-left:3px;padding-right:3px}}
@media(max-width:850px){.overview-layout{grid-template-areas:"scoreboard" "senate" "sidebar";grid-template-rows:auto}.overview-scoreboard{width:100%;max-width:520px;justify-self:end}}
@media(max-width:540px){.overview-scoreboard{max-width:none}}
@media print{.overview-scoreboard{break-inside:avoid;margin-bottom:16px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.countdown-inline{display:none}}

/* References appear only in the final dashboard tab. */
.overview-lower{align-items:start}
.overview-house .race-link{color:#171a1c}
.endnotes-group{background:var(--surface);border:1px solid var(--rule);margin-bottom:12px}
.endnotes-group>summary{padding:13px 16px;cursor:pointer;font-size:18px;background:#fafafa}
.endnotes-group>summary:focus-visible{outline:2px solid #815f0c;outline-offset:2px}
.endnotes-group[open]>summary{border-bottom:1px solid var(--rule)}
.endnotes-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;padding:0 20px}
.endnote-entry{padding:18px 0;border-bottom:1px solid var(--faint);break-inside:avoid}
.endnote-entry h3{font-size:16px;font-weight:400;margin-bottom:8px}
.endnote-entry ol{margin:0;padding-left:22px;font:12px/1.55 var(--sans);color:var(--muted)}
.endnote-entry li+li{margin-top:5px}.endnote-entry a{color:var(--ink);overflow-wrap:anywhere}
@media(max-width:700px){.endnotes-entries{grid-template-columns:1fr;padding:0 16px}}

/* Race profiles follow the final guide's map-and-text layout. */
.race-view-switch{display:flex;border:1px solid #aeb4ba;background:#fff;padding:2px;gap:2px}
.race-view-switch button{border:0;background:transparent;padding:7px 13px;font:12px/1.35 var(--sans);color:var(--muted)}
.race-view-switch button[aria-pressed=true]{background:#e8ebee;color:#202326;font-weight:600}
.race-closing-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:12px 14px;border:1px solid var(--rule);background:#fff;position:sticky;top:0;z-index:5;box-shadow:0 2px 3px #00000006}
.race-closing-nav>span{font:11px/1.4 var(--sans);color:var(--muted);margin-right:8px}
.race-closing-nav button{padding:6px 10px;font:12px/1.4 var(--sans);border:1px solid #d6dadd;background:#f6f7f8;white-space:nowrap}
.race-closing-nav button:hover{background:#e5e9ec}.race-closing-nav small{margin-left:8px;color:#6a7075;font-size:10px}
.district-map-legend{font:11px/1.5 var(--sans);color:var(--muted);margin:10px 0 22px}
#raceGuide{max-width:1280px;margin:0 auto}.closing-race-group{margin:24px 0 42px;scroll-margin-top:80px}
.closing-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-top:3px solid #343a40;border-bottom:1px solid #b8bec4;padding:13px 0 10px;margin-bottom:20px}
.closing-group-heading h2{font-size:28px;line-height:1.1;font-weight:400}.closing-group-heading h2 span{font:11px var(--sans);color:var(--muted);margin-left:8px}
.closing-group-heading p{font:11px var(--sans);color:var(--muted)}
.state-race-group{margin:0 0 24px}.state-race-group>h3{font-size:23px;line-height:1.2;font-weight:400;margin:0;padding:9px 16px;background:#e7eaed;border:1px solid var(--rule);border-bottom:0}
.state-reporting{display:grid;grid-template-columns:230px minmax(0,1fr);gap:0 27px;padding:14px 23px;background:#f7f8f9;border:1px solid var(--rule);border-bottom:1px solid #dfe2e5}
.reporting-title{display:flex;flex-direction:column;justify-content:center;gap:4px;font:12px/1.4 var(--sans)}.reporting-title strong{font-weight:400}.reporting-title>span{font-size:10px;color:var(--muted)}
.reporting-milestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:14px}.reporting-milestones>div{border-left:1px solid #cfd4d8;padding-left:17px}.reporting-milestones dt{font:11px/1.4 var(--sans);color:#555d64;margin-bottom:3px}.reporting-milestones dd{margin:0;font:18px/1.3 var(--serif);font-variant-numeric:tabular-nums}.reporting-milestones dd strong{font-weight:400}.reporting-milestones dd>span{font:10px/1.4 var(--sans);color:var(--muted);margin-left:7px}
.reporting-outlook{grid-column:1/-1;font:12px/1.5 var(--sans);color:#4e555b;border-top:1px solid #dfe2e5;padding-top:9px;margin-top:12px}.reporting-outlook strong{font-weight:600}
.reporting-schedule caption{text-align:left;padding:13px 16px;font:12px/1.4 var(--sans);color:var(--muted)}.reporting-time-cell{min-width:104px;font-variant-numeric:tabular-nums}.reporting-time-cell strong{font-weight:400;display:block;white-space:nowrap}.reporting-time-cell>span{font:10px/1.4 var(--sans);color:var(--muted)}.schedule-outlook{margin-top:7px}
@media(min-width:1500px){.state-reporting{grid-template-columns:265px minmax(0,1fr)}}
@media(max-width:900px){.state-reporting{grid-template-columns:190px minmax(0,1fr);gap:0 20px;padding:13px 18px}.reporting-milestones dd{font-size:16px}.reporting-milestones dd>span{display:block;margin-left:0}}
@media(max-width:650px){.state-reporting{display:block;padding:11px 13px 13px}.reporting-title{flex-direction:row;justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:11px}.reporting-title>span{font-size:9px}.reporting-milestones{gap:5px}.reporting-milestones>div{padding-left:10px}.reporting-milestones>div:first-child{border:0;padding-left:0}.reporting-milestones dd{font-size:17px}.reporting-milestones dd>span{display:block;font-size:10px;margin:2px 0 0}.reporting-outlook{font-size:11px}}
.race-profile{display:grid;grid-template-columns:230px minmax(0,1fr);gap:27px;background:#fff;padding:23px;border:1px solid var(--rule);border-top:0}
.race-profile+.race-profile{border-top:1px solid var(--rule);margin-top:-1px}.profile-aside{min-width:0}.profile-content{max-width:850px;min-width:0}
.district-map-button{display:block;width:100%;padding:0;border:0;background:#f1f2f3;cursor:zoom-in}.district-map-button img{display:block;width:100%;height:auto}.district-map-button:hover{outline:1px solid #a8afb5}
.profile-metrics{margin:14px 0 0}.without-map .profile-metrics{margin-top:2px}.profile-metrics>div+div{margin-top:16px}.profile-metrics dt{font:10px/1.4 var(--sans);color:var(--muted);margin-bottom:4px}.profile-metrics dd{font:16px/1.4 var(--serif);margin:0;font-variant-numeric:tabular-nums}
.profile-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.profile-heading h4{font-size:24px;line-height:1.18;margin:0;font-weight:400}.profile-heading h4 button{border:0;background:none;padding:0;font:inherit;color:#171a1c;text-align:left}.profile-heading h4 button:hover{text-decoration:underline;text-underline-offset:4px}
.profile-office{font:10px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:5px}.profile-heading .save-button{margin-top:3px;font-size:23px}
.profile-candidates{font-size:17px;line-height:1.4;margin-bottom:9px}.candidate-separator{color:#82888d}.profile-seat{font-size:14px;line-height:1.5;color:#50575c;margin-bottom:10px}
.profile-poll{font-size:16px;line-height:1.5;font-weight:600;margin:9px 0}.profile-history{font-size:15px;color:#42484d;line-height:1.45;margin:10px 0 5px}
.profile-presidential{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:15px;line-height:1.4;margin:5px 0 12px}.profile-presidential>span{color:#535a60}.profile-presidential strong{font-weight:400}
.profile-prose{font-size:16px;line-height:1.55;margin:10px 0}.profile-prose strong{font-weight:600}.profile-spending{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:12px 0;font-size:15px;line-height:1.4}.profile-spending strong{font-weight:600}.profile-spending small{display:block;width:100%;font:10px/1.4 var(--sans);color:var(--muted)}
.profile-detail-link{border:0;border-bottom:1px solid #9ba2a8;background:none;padding:0;font:11px/1.6 var(--sans);color:#444b50;margin-top:7px}.profile-detail-link:hover{color:#000;border-color:#000}
.detail-district-map{margin:18px 0}.detail-district-map img{display:block;width:100%;max-height:460px;object-fit:contain;height:auto;background:#f3f4f5}.endnote-description{font:12px/1.5 var(--sans);color:var(--muted);margin-bottom:10px}
@media(min-width:1500px){.race-profile{grid-template-columns:265px minmax(0,1fr)}}
@media(max-width:900px){.race-profile{grid-template-columns:190px minmax(0,1fr);gap:20px;padding:18px}.profile-heading h4{font-size:22px}.profile-candidates{font-size:16px}.profile-prose{font-size:15px}}
@media(max-width:650px){.race-view-switch{margin-top:12px;width:fit-content}.race-closing-nav{flex-wrap:nowrap;overflow-x:auto;padding:9px;gap:5px}.race-closing-nav>span{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.race-closing-nav button{padding:6px 8px}.district-map-legend{font-size:10px;margin-bottom:16px}.closing-group-heading{padding-top:11px;margin-bottom:13px}.closing-group-heading h2{font-size:25px}.closing-group-heading p{font-size:10px}.closing-race-group{scroll-margin-top:62px}.state-race-group>h3{font-size:21px;padding:9px 13px}.race-profile{display:flex;flex-direction:column;padding:16px;gap:17px}.profile-aside{display:grid;grid-template-columns:minmax(100px,42%) minmax(0,1fr);gap:14px}.without-map .profile-aside{display:block;order:1}.without-map .profile-metrics{display:flex;gap:23px;border-top:1px solid var(--rule);padding-top:12px}.without-map .profile-metrics>div+div{margin-top:0}.profile-metrics{margin-top:0}.profile-metrics dd{font-size:14px}.profile-metrics>div+div{margin-top:10px}.profile-heading h4{font-size:23px}.profile-prose{font-size:16px}.profile-content{width:100%}.profile-spending{font-size:14px}}
@media print{.race-view-switch,.race-closing-nav,.profile-detail-link{display:none}.race-profile{break-inside:avoid}.closing-race-group{break-before:page}.state-race-group>h3{break-after:avoid}.profile-heading h4{font-size:19px}.profile-prose{font-size:12px}.race-profile{grid-template-columns:180px minmax(0,1fr)}}
