/* Projection sections of the public midterms page (proj.js). Folio tokens; party fills and text
   colours as on the full model page (fills --dem/--rep, text --dem-ink/--rep-ink, 4.5:1 on paper). */
.pj-modebar{padding:var(--s-2) 18px;font-size:var(--text-sm);border-bottom:1px solid var(--rule)}
.pj-modebar.live{background:var(--surface)}
.pj-modebar.reh{background:repeating-linear-gradient(135deg,#fbf0d6 0 12px,#f7e8c4 12px 24px);color:#4a3300;border-bottom-color:#e7cf96}
.pj-modebar.reh b:first-child{font:700 var(--text-2xs)/1 var(--font-sans);letter-spacing:var(--tracking-label);text-transform:uppercase;background:#4a3300;color:#fff6df;padding:4px 7px;border-radius:3px;margin-right:var(--s-2)}
.pj-reh{background:#fbf0d6;border:1px solid #e7cf96;color:#4a3300;padding:var(--s-2) var(--s-3);margin:0 0 var(--s-3);font-size:var(--text-sm)}
main section{border-top:2px solid var(--ink);border-bottom:0;margin-top:var(--s-5);padding-top:var(--s-3)}
main section:first-of-type{margin-top:var(--s-3)}
main h3{font-size:var(--text-lg);margin:var(--s-5) 0 var(--s-2)}
.kicker{font:600 var(--text-2xs)/1.2 var(--font-sans);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--muted);margin:0 0 var(--s-2)}
.small{font-size:var(--text-xs);color:var(--muted)}
.big{font:500 var(--text-2xl)/1 var(--font-serif)}
#pj-lede b{font-weight:600}
.pj-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);margin:var(--s-3) 0}
@media(min-width:720px){.pj-grid{grid-template-columns:1fr 1fr}}
.pj-ch p{margin:var(--s-2) 0}
.pj-odds{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);flex-wrap:wrap;font-size:var(--text-sm)}
.pj-odds b{font:500 var(--text-3xl)/1 var(--font-serif);letter-spacing:var(--tracking-display);margin-right:4px}
.pj-odds .d b{color:var(--dem-ink)}.pj-odds .r b{color:var(--rep-ink)}
.pj-odds .n{color:#7a5a00;font-size:var(--text-sm);order:3;flex-basis:100%}
.pj-bar{display:flex;height:12px;border-radius:2px;overflow:hidden;background:var(--paper-sunk);margin:6px 0 4px;min-width:72px}
.pj-ch .pj-bar{height:16px}
.pj-bar span{display:block;height:100%}
.pj-bar .d{background:var(--dem)}.pj-bar .r{background:var(--rep)}.pj-bar .o{background:#c9a227}
.pj-hist{width:100%;height:auto;display:block;margin-top:var(--s-2)}
.pj-hist .hd{fill:var(--dem)}.pj-hist .hr{fill:var(--rep)}
.pj-hist .maj{stroke:var(--ink);stroke-dasharray:3 3}
.pj-hist text,.pj-line text,.pj-needle text{font:400 11px var(--font-sans);fill:var(--muted)}
.pj-needle{display:block;width:100%;max-width:260px;margin:0 auto var(--s-1)}
.pj-needle path{fill:none;stroke-width:16}
.pj-needle .arc-d{stroke:var(--dem)}.pj-needle .arc-r{stroke:var(--rep)}
.pj-needle .tick{stroke:var(--paper);stroke-width:2}
.pj-needle .ptr{stroke:var(--ink);stroke-width:3.5;stroke-linecap:round}
.pj-needle .ghost{stroke:var(--muted);stroke-width:2;stroke-dasharray:3 3}
.pj-needle .hub{fill:var(--ink)}
.pj-line{width:100%;height:auto;display:block}
.pj-line polyline{fill:none;stroke-width:2.5}
.pj-line .lh{stroke:var(--dem)}.pj-line .ls{stroke:#7a4fb3}
.pj-line .g{stroke:var(--rule)}
.pj-key{font-size:var(--text-xs);color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pj-key span{display:inline-block;width:18px;height:3px}.pj-key .kh{background:var(--dem)}.pj-key .ks{background:#7a4fb3;margin-left:10px}
.pj-chg{background:var(--accent-wash);border-left:4px solid var(--accent);padding:var(--s-2) var(--s-3);margin:var(--s-3) 0}
.pj-slider{background:var(--surface);border:1px solid var(--rule);padding:var(--s-3);margin:var(--s-3) 0}
.pj-slider label{display:block;font-weight:600}
.pj-slider output{font:500 var(--text-xl)/1 var(--font-serif);margin-left:6px}
.pj-slider input{width:100%;min-height:44px;accent-color:var(--ink)}
.pj-sl-ends{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--muted);margin-top:-6px}
.pj-sl-res{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-3)}
.pj-sl-res .big{color:var(--dem-ink)}
.pj-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--s-2) 0}
.pj-t{width:100%;border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.pj-t th,.pj-t td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--rule);vertical-align:top}
.pj-t th{font:600 var(--text-2xs)/1.2 var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule-strong)}
.pj-t th button{all:unset;cursor:pointer;min-height:32px;display:inline-flex;align-items:center}
.pj-t th button:focus-visible{box-shadow:var(--focus)}
.pj-t .n{text-align:right;white-space:nowrap}
.pj-t a{font-weight:600;text-decoration:none}.pj-t a:hover{text-decoration:underline}
.pj-t td .pj-bar{max-width:140px}
.pj-ladder tr.maj td{border-bottom:2px solid var(--ink)}
.pj-ladder tr.maj{background:var(--accent-wash)}
.pj-ladder tr.wh td{color:var(--muted)}
.tag{display:inline-block;font:600 .625rem/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;padding:3px 5px;border-radius:3px;background:var(--ink);color:var(--paper);vertical-align:2px}
.pj-if td.d b{color:var(--dem-ink)}.pj-if td.r b{color:var(--rep-ink)}
.pj-lab{font-weight:600;font-size:var(--text-xs)}.pj-lab.D{color:var(--dem-ink)}.pj-lab.R{color:var(--rep-ink)}.pj-lab.I{color:#7a5a00}
.pj-tip{list-style:none;padding:0;margin:var(--s-2) 0;display:grid;gap:6px}
.pj-tip li{display:grid;grid-template-columns:minmax(0,1fr) 30% 3.6rem;gap:2px 10px;align-items:center;font-size:var(--text-sm)}
.pj-tip li .small{grid-column:1;grid-row:2}
.pj-tip li a{grid-row:1}
.pj-tipbar{grid-column:2;grid-row:1/3;height:10px;background:var(--paper-sunk);border-radius:2px;overflow:hidden}
.pj-tipbar span{display:block;height:100%;background:var(--ink-2)}
.pj-tip li b{grid-column:3;grid-row:1/3;text-align:right;font-variant-numeric:tabular-nums}
.pj-filt{display:flex;gap:6px;flex-wrap:wrap;margin:var(--s-2) 0}
.pj-filt button{margin:0;min-height:40px;padding:6px 12px;border-radius:999px;font-size:var(--text-sm)}
.pj-filt button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pj-search{display:grid;gap:4px;font-size:var(--text-sm);color:var(--muted);max-width:28rem}
.pj-watch{background:var(--surface);border-left:3px solid var(--ink-2);padding:6px 10px;margin-top:6px}
#hours .slot p{margin:0 0 4px}
.counts{margin-top:var(--s-7);border-top:4px double var(--ink);padding-top:var(--s-4)}
.counts-h{font-size:var(--text-2xl);margin:0 0 var(--s-2)}
.counts>nav{margin-bottom:var(--s-2)}
.ph-only{display:inline}
@media(max-width:719px){.ph-hide{display:none}}
@media(min-width:720px){.ph-only{display:none}}
header nav a{white-space:nowrap}
.pj-races td:nth-child(2),.pj-races th:nth-child(2){min-width:7.5rem}
.pj-races td:first-child{min-width:9rem}
@media(max-width:719px){.pj-ladder .tag{display:none}.pj-ladder th,.pj-ladder td{padding:6px 3px}.pj-ladder td .small{display:none}}
