/* Shared reading, navigation and touch layout. Election data lives in each page. */
:root{--muted:#5d6b61;--ui-accent:#806000;scroll-padding-top:100px}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--muted:#a0ada3;--ui-accent:#f0b928}}
:root[data-theme=dark]{--muted:#a0ada3;--ui-accent:#f0b928}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{line-height:1.6;-webkit-text-size-adjust:100%}
button,input,select,summary,a{-webkit-tap-highlight-color:transparent}
button,select,input[type=search]{min-height:44px;font-size:16px}
button,a,summary,input,select{touch-action:manipulation}
a,button,summary,input,select{outline-offset:4px}
:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.sitenav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:10px max(24px,calc((100vw - 1320px)/2));min-height:68px;z-index:70;background:var(--surface);box-shadow:0 1px 0 var(--rule)}
.sitenav .brand{font-size:24px;display:flex;align-items:center;min-height:44px;white-space:nowrap;letter-spacing:-.03em}
.sitenav nav{gap:8px;align-items:center}
.sitenav nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border-radius:8px}
.sitenav nav a:hover{background:var(--ground)}
.sitenav nav a[aria-current]{background:var(--ground);text-decoration:none;box-shadow:inset 0 -2px var(--lula)}
.sitenav .lg{border-radius:10px;flex:none;align-self:center}
.sitenav .lg a,.sitenav .lg span{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;font-size:13px}
.skiplink{position:fixed;left:16px;top:12px;transform:translateY(-200%);z-index:300;padding:12px 18px;background:var(--ink);color:var(--surface);border-radius:10px}
.skiplink:focus{transform:none}
.wrap{gap:28px}
h1{letter-spacing:-.015em}
h2,h3{text-wrap:balance}
.lede{line-height:1.65}
.card,.panel,.round,.kf,.case,.math,.mapbox{border-radius:14px}
.note,footer{line-height:1.65}
footer{padding-top:20px;border-top:1px solid var(--rule)}
.backtop{display:inline-flex;align-items:center;justify-self:start;min-height:44px;padding:0 14px;border:1px solid var(--axis);border-radius:9px;text-decoration:none;font-weight:500;margin-top:12px}
.home .wrap{padding-block:clamp(28px,5vw,64px) 64px;gap:32px}
.home .swing{border-radius:18px;padding:28px;background:var(--surface)}
.home .swing .arrow{color:var(--ui-accent)}
.home .go a{border-radius:16px;padding:26px;transition:transform .2s,border-color .2s,box-shadow .2s}
.home .go a:hover{transform:translateY(-3px);box-shadow:0 12px 28px #00000008}
.home .go .cta{min-height:44px;display:flex;align-items:center}
/* The map and its controls stay together. */
.map-page .main{scroll-margin-top:100px}
.explore-heading{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:4px 0}
.explore-heading h2{font-size:32px}
.explore-heading p{margin:0;color:var(--muted);font-size:14px}
.map-page .main{grid-template-columns:minmax(0,1fr) 350px}
.map-page .rail{position:sticky;top:88px;max-height:calc(100dvh - 110px);overflow-y:auto;scrollbar-width:thin;border-radius:14px}
.map-page .rail>.panel:not(.detail){display:none}
.maptools{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px;align-items:end}
.field{display:grid;gap:5px;min-width:0}
.field label{font-size:12px;font-weight:600;color:var(--muted)}
.field select,.field input{width:100%;min-width:0;max-width:100%;border-radius:9px;padding:9px 12px;min-height:46px}
.metric-field{grid-column:1/-1}
.metric-help{grid-column:1/-1;margin:0;color:var(--muted);font-size:13px;line-height:1.5;min-height:20px}
.maptools .seg{border-radius:9px;display:flex;width:100%;height:46px}
.maptools .seg button{flex:1;font-size:14px;font-weight:500;padding:8px 10px}
.maptools .search-field{grid-column:1/-1}
.maptools .iconbtn{border-radius:9px;min-height:46px;font-size:14px}
.maptools .spacer{display:none}
.maptools #reset{width:100%}
.search-message{grid-column:1/-1;font-size:13px;line-height:1.5;margin:0;color:var(--ink-2)}
.search-message:empty{display:none}
.maptools .search-results{grid-column:1/-1;display:grid;gap:2px;border:1px solid var(--axis);border-radius:10px;padding:4px;background:var(--surface);max-height:230px;overflow:auto}
.search-results button{background:transparent;border:0;text-align:left;border-radius:6px;min-height:44px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;color:var(--ink)}
.search-results button:hover,.search-results button:focus-visible{background:var(--ground)}
.search-results small{color:var(--muted);font:12px var(--mono)}
.map-canvas{position:relative}
#map{touch-action:pan-y;cursor:default}
#map[data-interactive=true]{touch-action:none;cursor:grab}
.map-interaction{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-block:1px solid var(--rule);background:var(--ground)}
.map-interaction span{font-size:12px;color:var(--muted);line-height:1.45}
.map-interaction button{flex:none;border:1px solid var(--axis);border-radius:9px;padding:8px 12px;background:var(--surface);font:500 13px var(--body);color:var(--ink)}
.map-interaction button[aria-pressed=true]{background:var(--ink);color:var(--surface)}
.legend{position:relative;inset:auto;max-width:none;width:auto;margin:0;padding:14px 18px;border:0;border-top:1px solid var(--rule);border-radius:0;background:var(--surface);box-shadow:none}
.legend svg{max-width:100%;height:auto}
.map-canvas .tip{z-index:10}
.detail{padding:20px}
.detail h3{font-size:28px}
.detail dl{font-size:14px;gap:7px 12px}
.detail dd{font-size:13px}
.detail .hint{font-size:14px;line-height:1.6}
.whybox{border:0;padding:0}
.account-details{margin-top:8px;border-top:1px solid var(--rule);padding-top:8px}
.account-details summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-weight:600;font-size:14px;color:var(--ink)}
.account-details summary:after{content:'+';font-size:22px;font-weight:400}
.account-details[open] summary:after{content:'−'}
.account-details .whybox{padding-top:8px}
.account-details .eyebrow{display:none}
.place-dialog{border:1px solid var(--axis);border-radius:20px 20px 0 0;background:var(--surface);color:var(--ink);padding:0;width:min(100%,600px);max-width:100%;max-height:85dvh;margin:auto auto 0;box-shadow:0 -12px 80px #0003;overscroll-behavior:contain}
.place-dialog::backdrop{background:#08150f70;backdrop-filter:blur(3px)}
.dialog-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--rule);font-size:13px;color:var(--muted)}
.dialog-head button{border:1px solid var(--axis);border-radius:10px;background:var(--ground);color:var(--ink);min-width:44px;min-height:44px;font-size:22px;line-height:1}
.place-dialog .detail{border:0;border-radius:0;padding:18px 20px calc(24px + env(safe-area-inset-bottom,0px));max-width:100%}
body:has(.place-dialog[open]){overflow:hidden}
.tscroll{scrollbar-width:thin;border:1px solid var(--rule);border-radius:10px}
table.data th{position:sticky;top:0;background:var(--surface);height:46px;min-width:80px}
table.data td{height:46px;padding:10px 12px}
table.data th:first-child,table.data td:first-child{position:sticky;left:0;z-index:1;background:var(--surface);box-shadow:1px 0 var(--rule);min-width:160px}
table.data th:first-child{z-index:2}
.table-hint{margin:0;color:var(--muted);font-size:13px;display:flex;gap:6px;align-items:center}
ol.rank li{min-height:46px;padding:10px 0;align-items:center}
.rg{padding:13px 0}
#breakdown .bridge>div{min-width:0}
.exact-bars{display:grid!important;gap:16px!important;margin-block:16px!important}
.exact-bar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px 16px!important}
.exact-bar>span:first-child{font-size:14px}
.exact-bar>span:nth-child(2){grid-column:1/-1;grid-row:2;height:12px!important}
.exact-bar>b{grid-column:2;grid-row:1;font-size:14px}
#breakdown .num{overflow-wrap:anywhere}
.scale .row{grid-template-columns:minmax(0,1fr);gap:6px;padding:8px 0}
/* Evidence can be skimmed or expanded without shrinking charts. */
.evidence-page .case{padding:0;scroll-margin-top:100px}
.case details{min-width:0}
.case summary{list-style:none;padding:22px;cursor:pointer;min-height:80px}
.case summary::-webkit-details-marker{display:none}
.case summary:after{content:'+';grid-column:3;grid-row:2;font-size:24px;justify-self:end;line-height:1;color:var(--muted)}
.case details[open]>summary:after{content:'−'}
.case .cbody{padding:0 22px 24px;border-top:1px solid var(--rule);padding-top:22px}
.case .chead .n{font-size:32px;color:var(--muted)}
.case .chead .short{font-size:15px}
.case-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.case-actions p{font-size:14px;color:var(--muted)}
.case-actions button{border:1px solid var(--axis);border-radius:10px;background:var(--surface);color:var(--ink);padding:9px 14px;cursor:pointer;font:500 14px var(--body)}
.board .tile{border-radius:12px;min-height:128px;padding:14px;transition:border-color .15s,background .15s}
.board .tile:hover{border-color:var(--ink);background:var(--ground)}
.hbars{display:grid;gap:16px}
.hbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
.hbar-label{font:500 14px/1.45 var(--body);color:var(--ink-2)}
.hbar-label small{display:block;font:12px/1.5 var(--mono);color:var(--muted);margin-top:2px}
.hbar-value{font:500 13px/1.5 var(--mono);color:var(--ink);align-self:start;text-align:right;white-space:nowrap}
.hbar-track{grid-column:1/-1;height:12px;border-radius:3px;background:var(--rule);overflow:hidden}
.hbar-track i{display:block;height:100%;min-width:2px;border-radius:3px}
.mobile-polls,.mobile-blank{display:none}
.poll-scroll{overflow:auto;max-width:100%}
.poll th,.poll td{padding:10px!important;font-size:14px}
.poll th{line-height:1.5}
.pill{line-height:1.25;white-space:normal}
.evidence-page .fig{min-width:0}
.evidence-page{--v-some:#356b21;--v-mixed:#806000;--v-open:#565e79}
@media(prefers-color-scheme:dark){.evidence-page{--v-some:#9ac86d;--v-mixed:#e0b14d;--v-open:#afb5d2}}
@media(min-width:961px){.map-page .maptools{grid-template-columns:1fr 1fr}.map-page .maptools .metric-field{grid-column:1}.map-page .maptools .metric-help{grid-column:1/-1;grid-row:2}.map-page .maptools .search-field{grid-column:1}.map-page .maptools .geo-field{grid-column:2;grid-row:1}.map-page .maptools .seg{grid-column:2;grid-row:3}.map-page .maptools #reset{grid-column:2;grid-row:4}.map-interaction{display:none}#map{touch-action:none;cursor:grab}}
@media(max-width:960px){.map-page .main{grid-template-columns:minmax(0,1fr)}.map-page .rail{position:static;max-height:none;overflow:visible}.map-page .rail:empty{display:none}}
@media(max-width:600px){
 :root{scroll-padding-top:132px}
 .sitenav{grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding:6px 16px 0;min-height:108px}
 .sitenav .brand{grid-row:1;grid-column:1;font-size:23px}
 .sitenav .lg{grid-row:1;grid-column:2}
 .sitenav nav{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;padding-top:4px}
 .sitenav nav a{padding:9px 6px;font-size:14px;border-radius:8px 8px 0 0}
 .wrap{padding-inline:16px;padding-block:24px 40px;gap:22px;min-width:0}
 h1{font-size:40px!important;line-height:1.02!important;text-wrap:pretty}
 h2{font-size:28px}
 .eyebrow{font-size:11px;letter-spacing:.065em;line-height:1.5}
 .lede{font-size:16px;line-height:1.65}
 .home .wrap{gap:26px;padding-block:28px 40px}
 .home h1{font-size:48px!important;line-height:1!important}
 .home .swing{grid-template-columns:1fr 1fr;gap:18px 12px;padding:20px}
 .home .swing .s:first-child{grid-column:1;grid-row:1}
 .home .swing .s:last-child{grid-column:2;grid-row:1;text-align:right}
 .home .swing .s b{font-size:29px;line-height:1.1;margin-top:6px}
 .home .swing .s span{font-size:12px;line-height:1.5;display:block}
 .home .swing .arrow{grid-column:1/-1;grid-row:2;font-size:12px;white-space:normal;border-top:1px solid var(--rule);padding-top:12px}
 .home .go a{padding:22px}
 .home .facts{gap:20px 16px}
 .card,.panel{padding:18px}
 .map-page .strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
 .map-page .round{padding:12px;gap:6px;min-width:0}
 .map-page .round .top{flex-wrap:wrap;gap:2px;font-size:10px}
 .map-page .round .top .eyebrow{font-size:10px;letter-spacing:.03em}
 .map-page .pair{flex-direction:column;gap:3px;font-size:12px}
 .map-page .pair b{font-size:24px}
 .map-page .round .pair .num{font-size:12px}
 .map-page .strip>.round:last-child{grid-column:1/-1}
 .map-page .strip>.round:last-child .pair{flex-direction:row;flex-wrap:wrap}
 .map-page .strip .note{font-size:11px;line-height:1.5}
 .map-page .keyfig{grid-template-columns:1fr 1fr;gap:8px}
 .map-page .kf{padding:14px 12px}
 .map-page .kf b{font-size:29px}
 .map-page .kf span{font-size:12px;line-height:1.5}
 .map-page .main{scroll-margin-top:132px}
 .map-page .mapbox{border-radius:16px}
 .explore-heading h2{font-size:30px}
 .explore-heading p{font-size:13px}
 .maptools{padding:14px;gap:10px}
 .maptools .metric-field{grid-column:1/-1}
 .maptools .metric-help{font-size:12px}
 .maptools #reset{grid-column:2}
 .maptools .seg{grid-column:1;min-width:0}
 .maptools .seg button{font-size:12px;padding:8px 6px}
 .maptools .search-field{grid-column:1/-1}
 .maptools .geo-field{grid-column:1/-1}
 #map{aspect-ratio:1/1;min-height:290px}
 .legend{padding:14px;gap:8px}
 .legend .lt{font-size:12px}
 .sw{font-size:14px;gap:8px}
 .map-page .cols{grid-template-columns:minmax(0,1fr)}
 .rg{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
 .rg>.trk{grid-column:1/-1;grid-row:auto;height:12px}
 .rg .v{grid-column:2;grid-row:auto;font-size:12px}
 .rg small{grid-column:1/-1;font-size:11px}
 .map-page .scale .row>span:last-child{grid-template-columns:1fr 100px!important}
 .map-page .whygrid{grid-template-columns:minmax(0,1fr)}
 .map-page .whybox p{font-size:14px}
 .map-page .detail .pair{flex-direction:row;flex-wrap:wrap}
 .map-page .extgrid{gap:18px}
 .map-page #breakdown{padding:18px}
 .map-page #breakdown .bridge h3{font-size:27px}
 .map-page #breakdown .num{font-size:13px;line-height:1.6}
 .evidence-page .mrow{grid-template-columns:1fr 1fr;gap:18px 12px}
 .evidence-page .mrow b{font-size:29px}
 .evidence-page .mrow span{font-size:12px;line-height:1.5}
 .evidence-page .math{padding:18px}
 .evidence-page .key{font-size:12px;gap:8px}
 .evidence-page .board{grid-template-columns:1fr!important;gap:8px}
 .board .tile{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;min-height:68px;padding:14px;gap:10px}
 .board .tile .q{font-size:18px;line-height:1.2}
 .board .tile .n{font-size:12px}
 .board .tile>span:last-child{max-width:110px;justify-items:end}
 .board .tile .meter{display:none}
 .board .tile .pill{font-size:9px;padding:4px 5px;letter-spacing:0;text-align:right}
 .board .tile .pill::before{display:none}
 .evidence-page #scale{gap:8px}
 .evidence-page #scale .pill{font-size:10px;min-height:24px;align-items:center}
 .case summary{padding:18px;grid-template-columns:28px minmax(0,1fr);gap:8px 10px}
 .case .chead .n{font-size:25px;grid-row:1}
 .case .chead .claim{grid-column:2;grid-row:1;gap:8px}
 .case .chead .claim h3{font-size:23px;line-height:1.15;text-wrap:pretty}
 .case .chead .short{font-size:14px;line-height:1.5}
 .case summary .pill{grid-column:2;grid-row:2;justify-self:start;font-size:10px}
 .case summary:after{grid-column:1;grid-row:2;align-self:center;justify-self:start}
 .case .cbody{padding:18px;gap:22px;grid-template-columns:minmax(0,1fr)!important}
 .case .ev ul{font-size:15px;line-height:1.65;gap:10px;padding-left:18px}
 .case .settle{font-size:14px;line-height:1.65}
 .hbar-label{font-size:14px}
 .hbar-value{font-size:12px;white-space:normal;max-width:126px}
 .fig .cap{font-size:11px;line-height:1.65}
 .desktop-poll-scroll{display:none}
 .mobile-polls{display:grid;gap:14px}
 .mobile-polls label{font-size:13px;font-weight:600;color:var(--muted)}
 .mobile-polls select{width:100%;min-height:46px;border:1px solid var(--axis);border-radius:9px;padding:8px 12px;background:var(--surface);color:var(--ink);font:16px var(--body)}
 .mobile-polls table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:13px}
 .mobile-polls th{padding:8px 2px;text-align:right;font-size:12px;color:var(--muted);border-bottom:1px solid var(--axis)}
 .mobile-polls td{padding:12px 2px;text-align:right;border-bottom:1px solid var(--rule);font-size:14px;vertical-align:top;font-variant-numeric:tabular-nums}
 .mobile-polls th:first-child,.mobile-polls td:first-child{text-align:left;width:43%;padding-right:8px;font-size:13px}
 .mobile-polls small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
 .mobile-polls .L{color:var(--lula);font-weight:600}.mobile-polls .F{color:var(--flavio);font-weight:600}
 #fig-blank>svg{display:none}
 .mobile-blank{display:grid;gap:16px}
 .next{grid-template-columns:1fr;gap:18px}
 .note,footer{font-size:13px}
 footer{overflow-wrap:anywhere}
 .case{scroll-margin-top:132px!important}
}
@media(max-width:350px){.wrap{padding-inline:12px}.sitenav{padding-inline:12px}.home h1{font-size:44px!important}.home .swing{padding:16px}.home .swing .s b{font-size:26px}.board .tile{grid-template-columns:22px minmax(0,1fr)}.board .tile>span:last-child{grid-column:2;justify-items:start;max-width:none}.board .tile .pill{text-align:left}.maptools{padding:12px}.evidence-page .mrow b{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.round-overview{min-width:0}
.round-overview>summary{display:none;list-style:none;cursor:pointer;border:1px solid var(--rule);border-radius:12px;background:var(--surface);padding:12px 16px;font:500 14px var(--body);min-height:48px}
.round-overview>summary::-webkit-details-marker{display:none}
.round-overview>summary:after{content:'+';font-size:24px;line-height:1}
.round-overview[open]>summary:after{content:'−'}
.map-page .main,.evidence-page .case{scroll-margin-top:16px!important}
@media(min-width:961px){
 .map-page .maptools{grid-template-columns:1fr 1fr 1.25fr}
 .map-page .maptools .metric-field{grid-column:1;grid-row:1}
 .map-page .maptools .geo-field{grid-column:2;grid-row:1}
 .map-page .maptools .search-field{grid-column:3;grid-row:1}
 .map-page .maptools .metric-help{grid-column:1/-1;grid-row:2}
 .map-page .maptools .seg{grid-column:1/3;grid-row:3}
 .map-page .maptools #reset{grid-column:3;grid-row:3}
}
@media(max-width:600px){
 .round-overview>summary{display:flex;align-items:center;justify-content:space-between;gap:12px}
 .round-overview[open]>summary{margin-bottom:10px}
 .maptools .geo-field{grid-column:1}
 .maptools .search-field{grid-column:2}
 .maptools .field label{font-size:12px}
 .board .tile .pill{font-size:10px}
}
table.data button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border:0;background:transparent;cursor:pointer;padding:0;min-height:44px;text-align:inherit}
table.data td:first-child button{display:flex;align-items:center;gap:6px;width:100%;text-align:left}
table.data th{padding-block:0}
table.data td{padding-block:0}
@media(min-width:961px){.map-interaction{display:flex;padding:8px 18px}.map-interaction button{display:none}.map-interaction span{font-size:12px}}
button{min-width:44px}
.controls-bottom{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-width:0}
.maptools .controls-bottom .seg{flex:1;width:auto;min-width:0}
.maptools .controls-bottom .seg button:first-child{flex:2}
.maptools .controls-bottom .seg button:last-child{flex:1}
.maptools .controls-bottom #reset{width:auto;flex:none;padding-inline:14px}
@media(min-width:961px){.maptools .controls-bottom{grid-row:3}.maptools .controls-bottom #reset{min-width:180px}}
@media(max-width:600px){.maptools .controls-bottom .seg button{padding-inline:4px}.maptools .controls-bottom #reset{font-size:12px;padding-inline:10px}}
/* Preserve room for display cutouts when viewport-fit=cover is active. */
.sitenav{padding-left:max(24px,env(safe-area-inset-left,0px),calc((100vw - 1320px)/2));padding-right:max(24px,env(safe-area-inset-right,0px),calc((100vw - 1320px)/2));padding-top:calc(10px + env(safe-area-inset-top,0px))}
.wrap{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media(max-width:600px){:root{scroll-padding-top:calc(132px + env(safe-area-inset-top,0px))}.sitenav{padding-top:calc(6px + env(safe-area-inset-top,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}
@media(max-width:350px){.sitenav,.wrap{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}}

/* Visible choices: layers and places are laid out openly at every screen size. */
.layer-picker,.state-directory{grid-column:1/-1;min-width:0;padding:24px;background:var(--surface);border:1px solid var(--rule);border-radius:16px}
.picker-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.picker-head h3{font:500 28px/1.15 var(--display);margin:6px 0 0;color:var(--ink)}
.picker-head .eyebrow{color:var(--muted);font-size:11px}
.picker-head a,.state-jump{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--axis);border-radius:8px;color:var(--ink);font:500 13px/1.4 var(--body);text-decoration:none;white-space:nowrap;background:var(--surface)}
.layer-groups{display:grid;grid-template-columns:1fr 1fr 2fr;gap:20px}
.layer-groups fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;grid-template-columns:1fr;align-content:start;gap:8px}
.layer-groups fieldset:last-child{grid-template-columns:1fr 1fr}
.layer-groups legend{padding:0 0 10px;font:600 12px/1.5 var(--body);color:var(--muted)}
.layer-choice{display:flex;gap:10px;align-items:center;min-height:56px;padding:10px 12px;border:1px solid var(--rule);border-radius:9px;cursor:pointer;background:var(--ground);font:500 14px/1.35 var(--body);color:var(--ink);transition:background .15s,border-color .15s}
.layer-choice:hover{border-color:var(--muted)}
.layer-choice:has(:checked){background:var(--ink);color:var(--surface);border-color:var(--ink)}
.layer-choice input{accent-color:var(--ink);width:16px;height:16px;flex:none;margin:0}
.layer-choice:has(:checked) input{accent-color:var(--surface)}
.layer-choice:has(:focus-visible){outline:3px solid var(--lula);outline-offset:3px}
.layer-picker .metric-help{margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--rule);font:13px/1.6 var(--body);color:var(--muted)}
.map-page .maptools{grid-template-columns:minmax(0,1fr) auto;gap:12px}
.map-page .maptools .search-field{grid-column:1;grid-row:1}
.maptools .state-jump{grid-column:2;grid-row:1;align-self:end;min-height:46px}
.map-page .maptools .controls-bottom{grid-column:1/-1;grid-row:auto}
.map-page .maptools #focus[hidden]{display:none!important}
.state-directory{margin-top:4px;scroll-margin-top:24px}
.state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.state-grid button,.all-brazil{min-height:50px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--rule);border-radius:9px;background:var(--ground);color:var(--ink);font:500 14px/1.4 var(--body);text-align:left;cursor:pointer}
.state-grid button b{font:500 12px var(--mono);color:var(--muted);flex:none}
.state-grid button[aria-pressed=true],.all-brazil[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.state-grid button[aria-pressed=true]:after{content:'✓';margin-left:auto;font-weight:600}
.state-grid button:hover,.all-brazil:hover{border-color:var(--muted)}
.map-page #mapCanvas{scroll-margin-top:20px}
.evidence-page .case>.chead{padding:24px;margin:0}
.survey-card{padding:14px 12px;border:1px solid var(--rule);border-radius:10px;background:var(--ground);min-width:0}
.survey-card h4{font:600 16px/1.4 var(--body);margin:0 0 10px;color:var(--ink)}
@media(max-width:960px){.layer-groups{grid-template-columns:1fr 1fr}.layer-groups fieldset:last-child{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.state-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){
 .layer-picker,.state-directory{padding:18px 14px}
 .picker-head{align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px}
 .picker-head h3{font-size:25px;max-width:260px}
 .picker-head a{padding:8px 12px;font-size:12px}
 .layer-groups{grid-template-columns:minmax(0,1fr);gap:18px}
 .layer-groups fieldset,.layer-groups fieldset:last-child{grid-column:auto;grid-template-columns:1fr 1fr;gap:8px}
 .layer-groups legend{font-size:12px;padding-bottom:8px}
 .layer-choice{font-size:13px;padding:10px 9px;min-height:64px;gap:7px}
 .layer-picker .metric-help{font-size:12px;margin-top:16px}
 .map-page .maptools{grid-template-columns:minmax(0,1fr)}
 .map-page .maptools .search-field{grid-column:1/-1}
 .maptools .state-jump{grid-column:1/-1;grid-row:auto}
 .state-grid{grid-template-columns:1fr 1fr;gap:8px}
 .state-grid button{min-height:60px;gap:7px;padding:10px 8px;font-size:12px}
 .state-grid button b{font-size:11px}
 .state-grid button[aria-pressed=true]:after{display:none}
 .evidence-page .case>.chead{padding:18px;grid-template-columns:28px minmax(0,1fr);gap:8px 10px}
 .case>.chead>.pill{grid-column:2}
 .mobile-polls{gap:18px}
 .mobile-polls th:first-child,.mobile-polls td:first-child{width:42%;font-size:12px}
 .mobile-polls th{font-size:11px}
 .mobile-polls td{font-size:13px}
}

/* Keep scrolling cheap and the map's controls explicit on touch devices. */
.sitenav,.layer-dock{backdrop-filter:none!important;background:var(--surface)!important}
.map-page .layer-dock{position:relative;top:auto;z-index:8}
.map-page .layer-dock .chips{flex-wrap:wrap;overflow:visible}
.map-page .layer-dock .chips button{white-space:normal;min-height:44px;min-width:44px;font-size:12px}
.map-viewport{min-width:0;isolation:isolate}
.map-viewport #map{position:relative;z-index:1;pointer-events:all}
.municipal-canvas{z-index:0}
.map-viewport .crumbs{z-index:6}
@media(max-width:600px){.map-page .layer-dock .glabel{width:100%;margin:6px 0 0}.map-page .layer-dock .chips button{flex:1 1 42%;border-radius:9px;justify-content:center;text-align:center}.map-page .layer-dock .desc{font-size:12px}.map-page .layer-dock{padding:14px}}

.map-zoom-controls{position:absolute;right:12px;bottom:12px;z-index:6;display:grid;gap:6px}
.map-zoom-controls button{display:flex;justify-content:center;align-items:center;width:44px;height:44px;border:1px solid var(--axis);border-radius:9px;background:var(--surface);color:var(--ink);font:500 25px/1 var(--body);box-shadow:0 2px 6px #0001;cursor:pointer}

.map-loading{font:500 14px var(--body);color:var(--muted);padding:18px;text-align:center}
.map-viewport>.map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;margin:0;z-index:3}

/* Plain headings and captions; numbers keep their tabular styling. */
.eyebrow,.layer-dock .glabel,.mm-menu .lbl,.mm-peek .leads span,.cap,.rlabel,.pill,.ev h4,.settle b,.next em,.legend .lt,.vgroup,table.data th,table.poll th{
 font-family:var(--body)!important;text-transform:none!important;letter-spacing:normal!important;
}
.eyebrow,.cap,.settle b{font-weight:500}
.source-context{margin:0;color:var(--muted);font:400 14px/1.5 var(--body)}
