.predictions-section{--dem:#7facd0;--rep:#d58b79;--close:#d7b875;--no-race:#2c3832;background:#18221f;border-block:1px solid var(--line)}
.predictions-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:36px}.predictions-heading .section-label{margin-bottom:24px}.predictions-heading h2{font-size:64px;line-height:1.03}.predictions-heading h2>span{color:var(--accent)}.predictions-intro{font-size:13px;line-height:1.9;color:var(--muted);margin-top:22px}.prediction-datestamp{display:flex;flex-direction:column;align-items:flex-end;gap:7px;font-size:10px;color:var(--muted);padding-bottom:4px;flex-shrink:0}.prediction-datestamp time{color:var(--ink);font-size:16px}.prediction-status{font-size:8px;letter-spacing:1.4px;padding:7px 11px;border:1px solid #5e705f;color:#c5d4bf;margin-bottom:8px}
.prediction-scorecards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:30px}.prediction-scorecard{border:1px solid #44534a;background:#1d2923;padding:23px 29px 19px}.prediction-card-top{display:flex;justify-content:space-between;gap:18px;align-items:center}.prediction-card-top h3{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.2}.prediction-card-top>span{font-size:8px;letter-spacing:1px;color:var(--muted)}.prediction-seat-totals{display:flex;justify-content:space-between;gap:15px;margin:16px 0 17px;font-size:14px;line-height:1}.prediction-seat-totals strong{font-size:60px;letter-spacing:-2px;font-weight:400;font-family:var(--serif)}.prediction-d{color:var(--dem)}.prediction-r{color:var(--rep)}.prediction-close{color:var(--close)}.prediction-seat-bar{position:relative;height:7px;display:flex;gap:2px}.prediction-seat-bar>span:first-child{background:var(--dem);flex-shrink:0}.prediction-seat-bar>span:nth-child(2){background:var(--rep);flex:1}.prediction-seat-bar i{position:absolute;width:1px;top:-4px;bottom:-4px;background:var(--ink)}.prediction-scorecard>p{font-size:10px;color:var(--muted);margin-top:13px}.prediction-scorecard>p strong{color:var(--ink);font-weight:500}.prediction-scorecard>p span{margin-left:5px}
.prediction-explorer{border:1px solid var(--line);background:#121d18}.prediction-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 25px;border-bottom:1px solid var(--line)}.prediction-chambers{display:flex;gap:4px;padding:4px;border:1px solid #415047}.prediction-chambers button{border:0;background:transparent;color:var(--muted);padding:10px 17px;min-height:44px;font-size:12px}.prediction-chambers button span{margin-left:10px;font-size:9px;opacity:.7}.prediction-chambers button[aria-pressed=true]{background:var(--ink);color:#18221c}.prediction-state-select{display:flex;align-items:center;gap:12px;font-size:10px;color:var(--muted)}.prediction-state-select select{background:#1e2b23;border:1px solid #526052;border-radius:0;color:var(--ink);font:inherit;font-size:12px;min-height:44px;padding:8px 30px 8px 12px;max-width:190px;cursor:pointer}.prediction-state-select select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.prediction-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px}.prediction-map-column{min-width:0;padding:24px 21px 22px}.prediction-map-caption{padding-inline:8px}.prediction-map-caption h3{font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.3}.prediction-map-caption p{font-size:10px;color:var(--muted);margin-top:4px}.prediction-map{display:block;width:100%;height:auto;overflow:visible;margin:20px 0 8px}.prediction-state{cursor:pointer}.prediction-state>path:not(.prediction-leader){stroke:#101c16;stroke-width:1.6;transition:stroke .15s,filter .15s}.prediction-state[data-tone=d]>path:not(.prediction-leader){fill:var(--dem)}.prediction-state[data-tone=r]>path:not(.prediction-leader){fill:var(--rep)}.prediction-state[data-tone=close]>path:not(.prediction-leader){fill:var(--close)}.prediction-state[data-tone=none]>path:not(.prediction-leader){fill:var(--no-race);stroke:#526155}.prediction-state[data-tone=house]>path:not(.prediction-leader){fill:var(--state-fill)}.prediction-state text{font-family:var(--sans);fill:#0f1b15;font-size:13px;font-weight:700;text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:transparent;stroke-width:2px}.prediction-state[data-tone=none] text{fill:#a7b5aa}.prediction-state:has(.prediction-leader) text{fill:var(--ink)}.prediction-state .prediction-leader{stroke:#889b8d;stroke-width:1;fill:none;pointer-events:none}.prediction-state:hover>path:not(.prediction-leader),.prediction-state.is-selected>path:not(.prediction-leader){stroke:#fff9dd;stroke-width:3.1;filter:brightness(1.08)}.prediction-inset-note{font-size:10px;letter-spacing:2px;fill:#819888;text-anchor:middle}.prediction-gradient-d{stop-color:var(--dem)}.prediction-gradient-r{stop-color:var(--rep)}.prediction-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 16px;font-size:9px;color:#c4cdc3;margin-top:12px}.prediction-legend>span{display:flex;align-items:center;gap:6px}.prediction-legend i{display:inline-block;width:9px;height:9px}.legend-d{background:var(--dem)}.legend-r{background:var(--rep)}.legend-close{background:var(--close)}.legend-none{background:var(--no-race);border:1px solid #738775}.prediction-map-explanation{font-size:10px;color:var(--muted);line-height:1.8;padding:16px 8px 0;max-width:690px;margin:auto}
.prediction-state-detail{border-left:1px solid var(--line);padding:28px 24px;background:#1b2720;min-width:0}.prediction-state-detail>h3{font-family:var(--serif);font-size:38px;line-height:1.1;font-weight:400;margin:13px 0 23px}.prediction-call{font-family:var(--serif);font-size:28px;line-height:1.1}.prediction-candidate{font-size:13px;color:var(--ink);margin-top:12px}.prediction-reason{font-size:11px;color:var(--muted);line-height:1.9;margin-top:17px}.prediction-state-allocation{font-size:10px;color:var(--close);margin-top:14px}.prediction-local-ballots{display:flex;flex-direction:column;border-top:1px solid #405244;padding-top:18px;margin-top:25px;gap:4px}.prediction-local-ballots>span{font-size:9px;color:var(--muted)}.prediction-local-ballots>strong{font-size:23px;font-family:var(--serif);font-weight:400;line-height:1.3}.prediction-local-ballots>small{font-size:9px;color:var(--muted)}.prediction-districts{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:20px;max-height:270px;overflow:auto;scrollbar-color:#586f5b #1b2720}.prediction-district{border:1px solid #405244;padding:8px 9px;font-size:10px;display:flex;flex-direction:column;gap:3px}.prediction-district>strong{font-size:12px;font-weight:500}.prediction-delegation{display:flex;gap:14px;font-family:var(--serif);font-size:32px;line-height:1.1}.prediction-delegation small{font-family:var(--sans);font-size:11px}
.prediction-key-races{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-top:1px solid var(--line);padding:16px 28px}.prediction-key-races .small-label{margin-right:12px}.prediction-key-races button{border:1px solid #415147;background:transparent;color:var(--muted);width:44px;min-height:38px;font-size:10px}.prediction-key-races button:hover,.prediction-key-races button[aria-pressed=true]{border-color:var(--accent);color:var(--ink);background:#30362b}.prediction-sensitivity{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid var(--line);padding:27px}.prediction-sensitivity h3{font-family:var(--serif);font-weight:400;font-size:30px;margin:9px 0}.prediction-sensitivity p:not(.small-label){font-size:11px;color:var(--muted);max-width:400px}.prediction-slider-block label{display:flex;flex-direction:column;font-size:10px;color:var(--muted);gap:5px}.prediction-slider-block output{font-size:25px;font-family:var(--serif);color:var(--ink)}.prediction-slider-block input{width:100%;accent-color:var(--accent);margin:15px 0 3px;min-height:25px;cursor:pointer}.prediction-slider-ticks{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.prediction-reset{font-size:10px;background:transparent;color:var(--ink);border:0;border-bottom:1px solid #6c7e70;padding:9px 0 5px;min-height:36px;margin-top:8px}
.prediction-data-note{font-size:10px;color:var(--muted);line-height:1.7;margin-top:18px}.prediction-updates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:33px;margin-bottom:30px}.prediction-updates article{border-top:1px solid #445749;padding-top:17px}.prediction-updates article>p:last-child{font-size:11px;color:var(--muted);line-height:1.85;margin-top:10px}.prediction-method{border-top:1px solid var(--line)}.prediction-method:last-of-type{border-bottom:1px solid var(--line)}.prediction-method summary{cursor:pointer;display:flex;justify-content:space-between;gap:15px;align-items:center;list-style:none;padding:18px 0;font-size:12px}.prediction-method summary::-webkit-details-marker{display:none}.prediction-method summary>span{font-size:20px;color:var(--accent)}.prediction-method[open] summary>span{transform:rotate(45deg)}.prediction-method-body{display:grid;grid-template-columns:1fr 1fr;gap:30px 40px;padding:5px 0 30px}.prediction-method-body h3{font-family:var(--serif);font-size:26px;line-height:1.2;font-weight:400;margin-bottom:13px}.prediction-method-body p,.prediction-method-body li{font-size:11px;line-height:1.9;color:var(--muted)}.prediction-method-body p+p{margin-top:12px}.prediction-method-body a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.prediction-method-body ul{margin:0;padding-left:16px}.prediction-downloads{display:flex;gap:20px;margin-top:20px!important}.prediction-table-wrap{overflow:auto;max-height:380px;margin-bottom:24px;border:1px solid var(--line);scrollbar-color:#586f5b #1b2720}.prediction-table-wrap table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}.prediction-table-wrap caption{text-align:left;padding:12px 15px;color:var(--muted);font-size:10px}.prediction-table-wrap td,.prediction-table-wrap th{padding:11px 15px;border-top:1px solid var(--line)}.prediction-table-wrap thead th{background:#28352c;position:sticky;top:0;font-weight:500;color:var(--ink)}.prediction-table-wrap tbody th{font-weight:500}.prediction-table-wrap td{color:var(--muted)}
@media(max-width:1000px){.prediction-map-layout{grid-template-columns:minmax(0,1fr) 230px}.prediction-state-detail{padding:23px 18px}.prediction-map-column{padding:22px 12px}.prediction-state-detail>h3{font-size:32px}.prediction-toolbar{padding:16px}.prediction-state-select{flex-direction:column;align-items:flex-start;gap:5px}.prediction-scorecard{padding:22px}.predictions-heading h2{font-size:56px}}
@media(max-width:800px){.prediction-map-layout{grid-template-columns:1fr}.prediction-state-detail{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:0 24px;padding:25px}.prediction-state-detail>.small-label,.prediction-state-detail>h3{grid-column:1}.prediction-state-detail>h3{margin-bottom:18px}.prediction-state-detail #prediction-state-content{grid-column:1;grid-row:3}.prediction-local-ballots{grid-column:2;grid-row:1/4;align-self:start;border-top:0;border-left:1px solid var(--line);padding:5px 0 5px 24px;margin:0;min-height:100%}.prediction-map{max-height:490px}.prediction-updates{gap:20px}.prediction-chambers button span{display:none}.prediction-districts{max-height:220px}.prediction-seat-totals strong{font-size:52px}.prediction-scorecard>p span{display:block;margin-left:0}}
@media(max-width:600px){.predictions-heading{display:block;margin-bottom:26px}.predictions-heading h2{font-size:49px}.predictions-heading .section-label{font-size:9px;margin-bottom:21px}.predictions-intro{font-size:12px;margin-top:18px}.prediction-datestamp{align-items:flex-start;margin-top:23px;gap:5px}.prediction-status{margin-bottom:3px}.prediction-datestamp time{font-size:13px}.prediction-scorecards{gap:10px;margin-bottom:20px}.prediction-scorecard{padding:16px 13px}.prediction-card-top{display:block}.prediction-card-top h3{font-size:25px;margin-bottom:6px}.prediction-card-top>span{font-size:6px;letter-spacing:.5px}.prediction-seat-totals{font-size:10px;margin-block:17px}.prediction-seat-totals strong{font-size:39px;letter-spacing:-1px}.prediction-scorecard>p{font-size:8px;line-height:1.8}.prediction-toolbar{gap:14px;padding:13px 12px;align-items:flex-end}.prediction-chambers{padding:3px;gap:1px}.prediction-chambers button{padding:8px 12px;font-size:11px}.prediction-state-select{font-size:9px;min-width:0}.prediction-state-select select{max-width:150px;width:100%;font-size:10px;padding-left:8px;padding-right:12px}.prediction-map-column{padding:20px 8px 18px}.prediction-map-caption{padding-inline:7px}.prediction-map-caption h3{font-size:27px}.prediction-map-caption p{font-size:9px}.prediction-map{margin-top:15px;margin-bottom:0}.prediction-state text{font-size:16px}.prediction-inset-note{font-size:12px}.prediction-legend{gap:8px 13px;font-size:8px;justify-content:flex-start;padding-inline:7px}.prediction-map-explanation{font-size:9px;padding-top:13px}.prediction-state-detail{display:block;padding:23px 21px}.prediction-state-detail>h3{font-size:36px;margin:10px 0 18px}.prediction-local-ballots{border-left:0;border-top:1px solid #405244;padding:14px 0 0;margin-top:20px;min-height:0}.prediction-reason{font-size:12px;line-height:1.8}.prediction-key-races{padding:14px 18px;gap:7px}.prediction-key-races .small-label{flex-basis:100%;margin:0 0 4px}.prediction-key-races button{min-height:40px;width:40px}.prediction-sensitivity{grid-template-columns:1fr;gap:22px;padding:23px 20px}.prediction-sensitivity h3{font-size:29px}.prediction-updates{grid-template-columns:1fr;gap:22px;margin-top:25px}.prediction-updates article>p:last-child{font-size:12px}.prediction-method-body{grid-template-columns:1fr;gap:25px}.prediction-method-body p,.prediction-method-body li{font-size:12px}.prediction-data-note{font-size:9px}.prediction-districts{grid-template-columns:repeat(3,minmax(0,1fr))}.prediction-table-wrap{font-size:10px}.prediction-table-wrap td,.prediction-table-wrap th{padding:10px}.prediction-table-wrap table{font-size:10px}}
@media(prefers-reduced-motion:reduce){.prediction-state>path{transition:none}}
