:root{--navy:#0e1632;--blue:#2b50d9;--line:#dce2ed;--muted:#596477}*{box-sizing:border-box}body{margin:0;background:#f8fafc;color:var(--navy);font:16px/1.55 system-ui,sans-serif}header{background:var(--navy);padding:14px max(20px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}header img{width:160px;display:block}header a{color:white;text-decoration:none}main{max-width:1160px;margin:auto;padding:38px 24px 60px}h1{font-size:clamp(30px,4vw,48px);line-height:1.15;letter-spacing:-.035em;margin:16px 0}h2{font-size:21px;line-height:1.3;margin:0 0 14px}h3{font-size:17px;margin:0 0 8px}p{margin:0 0 16px}.kicker{text-transform:uppercase;font-size:12px;letter-spacing:.1em;font-weight:700;display:flex;align-items:center;gap:14px}.kicker span{background:#e6ebfb;color:#203aa7;padding:4px 10px;letter-spacing:.04em}.lead{max-width:760px;color:var(--muted);font-size:18px}.finder{border-top:3px solid var(--blue);background:white;padding:24px;margin:28px 0;border-bottom:1px solid var(--line)}label{display:block;font-weight:600;margin-bottom:8px}.form-row{display:flex;gap:10px;max-width:800px}input,button{font:inherit;border-radius:4px;min-height:46px}input{border:1px solid #a7b1c4;padding:10px 12px;min-width:0;flex:1}button{cursor:pointer;padding:9px 16px;background:var(--blue);border:1px solid var(--blue);color:white;font-weight:600}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid #f0b429;outline-offset:3px}#status{color:var(--muted);font-size:14px;margin:12px 0 0}#matches{display:grid;gap:8px;margin-top:12px}#matches:empty{display:none}#matches button{text-align:left;background:#f0f4ff;color:var(--navy)}.layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:24px;align-items:start}.map-panel,.detail{background:white;border:1px solid var(--line);padding:24px}.map-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.map-heading button{background:white;color:var(--blue);border-color:var(--line);font-size:13px;min-height:36px;padding:5px 10px}.map-heading h2{margin:0}#map{margin:18px 0;background:#f5f7fb}#map>svg{display:block;width:100%;height:auto;max-height:540px}.ward{fill:#dce5fa;stroke:white;stroke-width:2;cursor:pointer;transition:fill .15s}.ward:hover{fill:#9eb6f2}.ward.selected{fill:var(--blue)}.ward-label{font-size:17px;font-weight:700;fill:var(--navy);pointer-events:none;text-anchor:middle;dominant-baseline:middle}.ward-label.selected{fill:white}.legend{font-size:13px;display:flex;align-items:center;gap:8px;color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:12px;height:12px;background:var(--blue)}.legend span{margin-left:auto}.ward-list{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:18px}.ward-list button{background:white;color:var(--navy);border-color:var(--line);font-size:13px;padding:5px;min-height:42px}.ward-list button[aria-pressed=true]{background:var(--blue);color:white;border-color:var(--blue)}.detail .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--blue);font-weight:700}.detail h2{font-size:30px;margin:8px 0 22px}.officeholder{border-top:1px solid var(--line);padding:18px 0}.officeholder strong{font-size:23px;display:block}.small,.note{font-size:13px;color:var(--muted)}.details-row{border-top:1px solid var(--line);padding:16px 0}.details-row p{font-size:14px;color:var(--muted);margin-bottom:0}.detail a,.sources a{color:var(--blue)}.detail-footer{border-top:1px solid var(--line);padding-top:18px;margin-top:4px}.sources{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}.sources p{max-width:900px;color:var(--muted);font-size:14px}.sources a{font-size:14px}.sources .small{margin-top:16px}@media(max-width:760px){main{padding:26px 16px 40px}.layout{grid-template-columns:1fr}.map-panel,.detail,.finder{padding:18px}.form-row{flex-direction:column}.legend span{margin-left:0}.map-panel{order:0}.detail{order:1}header img{width:128px}header a{font-size:13px}}

/* Match the main election map: quiet geographic context, clear ward overlays. */
#map.leaflet-container{height:560px;background:#f2f4f7;isolation:isolate;font-family:inherit}
#map .leaflet-tile-pane{filter:grayscale(1);opacity:.25}
#map .leaflet-control-attribution{background:rgba(255,255,255,.94);color:#475569;font-size:10px}
#map .leaflet-control-attribution a{color:#334e80}
#map .leaflet-control-zoom a{color:#0e1632}
#map .council-label{display:grid;place-items:center;background:transparent;border:0;font-size:14px;font-weight:800;color:#0e1632;text-shadow:0 1px 3px white,1px 0 3px white,-1px 0 3px white;pointer-events:none}
#map .council-label.is-selected span{background:#203aa7;color:white;border:1px solid white;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;text-shadow:none}
#map .leaflet-interactive:focus{outline:3px solid #f0b429;outline-offset:2px}
@media(max-width:760px){#map.leaflet-container{height:460px}}

.race-views{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;border-bottom:1px solid var(--line);padding-bottom:12px}
.race-views button{background:white;color:var(--navy);border-color:var(--line);font-size:14px}
.race-views button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}
.local-candidate{border:1px solid var(--line);border-left:3px solid #2b50d9;padding:14px;margin:10px 0;display:grid;gap:6px}
.local-candidate:has(.REP){border-left-color:#b4333c}.local-candidate:has(.IND){border-left-color:#6b7280}
.local-candidate strong{font-size:19px;line-height:1.35}.party{font-weight:700;font-size:12px;color:#2349be}.party.REP{color:#a12732}.party.IND{color:#525b6c}
.race-content{margin:18px 0 22px}.race-content>a{font-size:13px}
.precinct-summary{padding:16px;background:#fff8e9;border:1px solid #e6d5ae;margin-bottom:22px}.precinct-summary h3{margin-top:8px}.precinct-summary p{font-size:14px}
.district-links{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.district-links a{font-size:13px;font-weight:700}
.precinct-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.precinct-list button{min-height:38px;padding:6px 10px;background:white;border-color:#cbd5e1;color:#0e1632;font-size:13px}
.precinct-list button[aria-pressed=true]{background:#fff0c9;border-color:#cf7a00;color:#794500}
#map .precinct-label{font:700 11px/20px system-ui,sans-serif;color:#233553;text-align:center;pointer-events:none;text-shadow:0 1px 3px white,1px 0 3px white,-1px 0 3px white}
#map .precinct-label.is-selected{color:#7b4400;font-weight:900}.primary-table{overflow-x:auto;margin:16px 0}.primary-table table{width:100%;border-collapse:collapse;font-size:13px}.primary-table td,.primary-table th{text-align:left;padding:8px 5px;border-bottom:1px solid var(--line)}.primary-table td:not(:first-child),.primary-table th:not(:first-child){text-align:right;white-space:nowrap}
