body.us #bar{display:flex;align-items:center;gap:10px;height:40px}
.tg{display:flex;gap:0;border:1px solid var(--bd);border-radius:999px;overflow:hidden}
.tg button{background:rgba(17,35,55,.7);color:var(--fg);border:0;padding:7px 16px;font:600 15px 'Source Sans Pro',system-ui,sans-serif;cursor:pointer;display:flex;align-items:center}
.tg button.on{background:var(--ac)}.tg button .ii{margin-left:6px}
.tg button.on .ii{border-color:#fff;color:#fff}
.fs{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:14px;color:var(--mu);white-space:nowrap}
.fs b{color:var(--fg);font-weight:600}
.flag{white-space:nowrap}
/* overview */
.ov{display:flex;gap:12px;flex:1;min-width:0}
.ovc{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:10px 14px}
.ovc h2{font-size:24px;display:flex;align-items:center;gap:8px}.ovc h2 a{color:#fff;text-decoration:none}.ovc h2 a:hover{color:var(--cy)}
.ovc h2 .go{margin-left:auto;font-size:14px;font-weight:600;color:var(--cy);text-decoration:none;border:1px solid var(--cy);border-radius:999px;padding:3px 10px}
.mapbox{position:relative;flex:0 0 auto}
.mapbox svg{width:100%;height:auto;display:block}
.usm path.st,.usm path.cd,.usm path.hx{stroke:#081320;stroke-width:.7;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .4s}
.usm path.cd{stroke-width:.35}.usm path.hx{stroke-width:.6}
.usm path.ol{fill:none;stroke:#081320;stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:none}
.usm path.st:hover,.usm path.cd:hover,.usm path.hx:hover,.usm path.sel{stroke:#fff;stroke-width:2.2}
.usm path.na{cursor:default;fill:#4f5661!important}
.usm path.proj{stroke:#ffe9a8;stroke-width:2.4}
.usm text{fill:#eaf1fb;font:600 9px 'Source Sans Pro',sans-serif;text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:#081320;stroke-width:2px}
.usm.hexm text{font-size:1.05px;stroke-width:.18px}
.seat{position:relative;height:30px;display:flex;border-radius:6px;overflow:visible;margin-top:2px}
.seat i{display:block;height:100%}
.seat .mj{position:absolute;top:-6px;bottom:-6px;width:0;border-left:2px dashed #fff}
.seat .mj span{position:absolute;top:-17px;left:-30px;width:60px;text-align:center;font-size:12px;color:#fff;white-space:nowrap}
.tl{display:flex;justify-content:space-between;font-size:16px;margin-top:10px}.tl b{font-size:22px}
.tl .d{color:#8fb0ff}.tl .r{color:#ff8f9a}.tl .t{color:var(--tu)}
.note2{font-size:13px;color:var(--mu);line-height:1.3}
.lg{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:13px;color:var(--mu);align-items:center}
.lg span{display:inline-flex;align-items:center;gap:4px}.lg i{width:14px;height:12px;border-radius:2px;display:inline-block}
.kr{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 10px;font-size:14px;overflow:hidden}
.kr a{color:var(--fg);text-decoration:none;display:flex;justify-content:space-between;gap:6px;border-bottom:1px solid rgba(82,126,255,.12);padding:2px 0}
.kr a:hover{color:var(--cy)}.kr a span:last-child{color:var(--mu);white-space:nowrap}
/* chamber page */
.cm{flex:0 0 1180px;display:flex;flex-direction:column;gap:6px;padding:10px 14px;position:relative}
.cm .mapbox{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.cm .mapbox svg{width:auto;height:100%;max-width:100%}
.side{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.side .panel{overflow:hidden}
#det{flex:1;overflow:auto}
#det h2{font-size:26px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#det .sub2{color:var(--mu);font-size:15px;margin-bottom:6px}
.kv{display:grid;grid-template-columns:150px 1fr;gap:3px 10px;font-size:15px;margin:6px 0}
.kv>b{color:var(--mu);font-weight:600}
.sec{color:var(--cy);font-size:13px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin:10px 0 4px;display:flex;align-items:center}
.cand{display:flex;justify-content:space-between;font-size:16px;padding:2px 0;border-bottom:1px solid rgba(82,126,255,.1)}
.pD{color:#8fb0ff}.pR{color:#ff8f9a}.pO{color:var(--op)}
.btn{display:inline-block;margin:8px 8px 0 0;color:#fff;background:var(--ac);text-decoration:none;border-radius:999px;padding:6px 14px;font-weight:600;font-size:15px}
.btn.g{background:transparent;border:1px solid var(--cy);color:var(--cy)}
.hint{color:var(--mu);font-size:15px}
.oc a{color:var(--fg)}
/* county overview */
.usm.cmap path.cty{stroke:none;cursor:pointer}
.usm.cmap path.cty.nr{cursor:default}
.usm.cmap path.dol{fill:none;stroke:rgba(8,19,32,.85);stroke-width:.5;vector-effect:non-scaling-stroke;pointer-events:none}
.usm.cmap path.ol{fill:none;stroke:#081320;stroke-width:1.2;vector-effect:non-scaling-stroke;pointer-events:none}
.usm.cmap path.lv{stroke-width:2.2}
.usm.cmap path.proj{stroke-width:3;stroke-dasharray:none}
.usm.cmap path.sel{stroke:#fff!important;stroke-width:2.6}
.usm.cmap path.cty:hover{stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.ovc .mapbox{margin:2px -6px}
.cline{font-size:16px;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid rgba(82,126,255,.25)}
.cline .mu{font-size:13px}
.flag.f-BASELINE{background:#3a4656;color:#e6ecf5}

/* no-race grey + hatched no-county-data */
.lg i.hatch{background:repeating-linear-gradient(45deg,#2a3444 0 3px,#8592a6 3px 5px)}
.usm.cmap path.cty.nr:hover{stroke:none}
/* back / home */
nav a.bk{background:rgba(0,212,255,.14);border-color:var(--cy);color:#fff}
#tip.pin{pointer-events:auto}
#tip .tipx{float:right;margin:-2px -4px 6px 10px;background:var(--ac);color:#fff;border:0;border-radius:999px;padding:5px 12px;font:600 14px 'Source Sans Pro',system-ui,sans-serif;cursor:pointer}
/* scrolling overview: three full-width maps stacked */
html.ovp,body.ovp{overflow-x:hidden;overflow-y:auto;height:auto}
body.ovp #stage{position:absolute;height:auto}
body.ovp main{display:block;flex:none}
.ovst{display:flex;flex-direction:column;gap:16px}
.ovs{height:1000px;display:flex;gap:18px;padding:10px 14px;scroll-margin-top:8px}
.ovmap{flex:0 0 1290px;display:flex;align-items:center;justify-content:center}
.ovmap svg{width:100%;height:auto;max-height:978px;display:block}
.ovside{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.ovside h2{font-size:28px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ovside h2 a{color:#fff;text-decoration:none}.ovside h2 a:hover{color:var(--cy)}
.ovside h2 .go{margin-left:auto;font-size:15px;font-weight:600;color:var(--cy);border:1px solid var(--cy);border-radius:999px;padding:3px 12px}
.ovside .kn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--ac);font-size:20px;font-family:'Source Code Pro',monospace}
.ovside .lg{font-size:14px}.ovside .kr{font-size:15px}
#mini{position:fixed;right:12px;bottom:12px;z-index:8;display:flex;gap:6px;align-items:center;background:rgba(8,19,32,.92);border:1px solid var(--ac);border-radius:999px;padding:6px 8px;box-shadow:0 6px 24px rgba(0,0,0,.45)}
#mini a,#mini button{color:#fff;text-decoration:none;background:rgba(17,35,55,.9);border:1px solid var(--bd);border-radius:999px;padding:7px 14px;font:600 16px 'Source Sans Pro',system-ui,sans-serif;cursor:pointer;white-space:nowrap}
#mini a{border-color:var(--cy);background:rgba(0,212,255,.14)}
#mini button b{color:var(--cy);font-family:'Source Code Pro',monospace;margin-right:3px}
#mini a:hover,#mini button:hover{border-color:var(--cy)}#mini i{width:1px;height:24px;background:var(--bd);margin:0 2px}
/* zoomed state map (real county / district boundaries) */
.zh{display:flex;align-items:center;gap:12px;font-size:15px}.zh .btn{margin:0}
.usm.zm path.ctx{fill:#0f1c2c;stroke:#22364d;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}
.usm.zm path.cty{stroke:rgba(8,19,32,.75);stroke-width:.6;vector-effect:non-scaling-stroke}
.usm.zm path.dol.zd{stroke:#eaf1fb;stroke-width:1.1;stroke-opacity:.8}
.usm.zm path.dol.zd.sel{stroke:#fff!important;stroke-width:3.6;stroke-opacity:1}
.usm.zm path.ol.zol{stroke:#eaf1fb;stroke-width:1.8}

body.us footer #foot{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}body.us footer #keys{white-space:nowrap;margin-left:14px}
.zh{margin-bottom:12px}
