/* v0.5.39 — self-hosted election results atlas; no external tiles or runtime chart libraries. */
.tna-election-atlas{--atlas-ink:#f5f7fe;--atlas-dim:#afbed4;--atlas-stroke:#33445b;--atlas-dem:#3091e0;--atlas-rep:#ed5467;--atlas-gold:#f4be61;--atlas-other:#9489c9;color:var(--atlas-ink);background:radial-gradient(ellipse 82% 60% at 80% -15%,rgba(36,91,154,.37),transparent 76%),linear-gradient(155deg,#111f33,#0a1422 71%);border:1px solid #283851;border-radius:14px;margin:15px 0 20px;padding:22px 26px 16px;box-shadow:0 10px 36px rgba(11,25,43,.12);font-family:Arial,Helvetica,sans-serif}
.tna-election-atlas *{box-sizing:border-box}
.tna-atlas-topline,.tna-atlas-hero,.tna-atlas-map-heading,.tna-atlas-state-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.tna-atlas-topline{font-size:10px;font-weight:850;letter-spacing:.14em;color:#c4d1e5}
.tna-atlas-topline b{color:#edae4f}
.tna-atlas-status{display:inline-flex;gap:7px;align-items:center;font-size:10px;color:#cbd6e7}
.tna-atlas-status i{width:7px;height:7px;border-radius:50%;display:inline-block;background:#f2bc69;box-shadow:0 0 8px rgba(243,193,103,.6)}
.tna-atlas-hero{padding:16px 0 14px}
.tna-atlas-hero h1{font-weight:850;font-size:clamp(30px,4vw,48px)!important;letter-spacing:-.045em;line-height:1.05!important;color:#fff!important;margin:0 0 8px!important}
.tna-atlas-star{color:#edb965;font-size:18px;vertical-align:top;margin-left:8px}
.tna-atlas-hero p{color:#b9c8db;font-size:13px;line-height:1.55;margin:0}
.tna-atlas-switch{display:flex;flex-wrap:wrap;gap:6px;background:#17273a;border:1px solid #2b3c51;border-radius:9px;padding:5px;margin:2px 0 16px}
.tna-atlas-switch button{flex:1 1 120px;min-height:38px;padding:8px 10px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;color:#b9c6d7;font-size:12px;font-weight:800;white-space:nowrap;transition:background .12s ease,color .12s ease}
.tna-atlas-switch button:hover,.tna-atlas-switch button:focus-visible{color:#fff;background:#233b56}
.tna-atlas-switch button.is-active{background:#f1f4f8;color:#17263a;border-color:#fff;box-shadow:0 2px 8px #0004}
.tna-atlas-switch button:focus-visible{outline:2px solid #f3c069;outline-offset:2px}
.tna-atlas-summary{padding:15px 18px;border-radius:10px;background:linear-gradient(115deg,#1c2b41,#15263c);border:1px solid #394b60;margin-bottom:12px;min-height:145px}
.tna-atlas-loading{font-size:13px;color:#b9c7d9}
.tna-atlas-headline{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:13px}
.tna-atlas-overline{font-size:9px!important;letter-spacing:.13em!important;font-weight:850!important;text-transform:uppercase;color:#d2a664!important;line-height:1.5!important}
.tna-atlas-headline h4{font-size:23px!important;letter-spacing:-.035em;margin:3px 0 3px!important;line-height:1.12;color:#fff!important}
.tna-atlas-headline p{font-size:11px;color:#b6c4d6;margin:0}
.tna-atlas-total{text-align:right;min-width:78px}.tna-atlas-total strong{display:block;color:#fff;font-size:31px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.tna-atlas-total span{display:block;font-size:10px;color:#b4c5d8;margin-top:4px}
.tna-atlas-numbers{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:5px 0 10px}
.tna-atlas-numbers>div{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px;border-bottom:1px solid #43516a;padding:0 0 5px}
.tna-atlas-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#d5dfed;line-height:1.2}
.tna-atlas-label i,.tna-atlas-house-sums i{display:inline-block;flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:#9b9eb1}
.tna-atlas-label.d i,.tna-atlas-house-sums i.dem{background:var(--atlas-dem)}
.tna-atlas-label.r i,.tna-atlas-house-sums i.rep{background:var(--atlas-rep)}
.tna-atlas-numbers b{font-size:18px;line-height:1.2;font-variant-numeric:tabular-nums}
.tna-atlas-meter{height:12px;display:flex;overflow:hidden;border-radius:20px;background:#344359;box-shadow:inset 0 0 0 1px #ffffff16}
.tna-atlas-meter span{display:block;height:100%;flex:none}
.tna-atlas-meter .dem,.tna-atlas-cand-rail i.dem{background:linear-gradient(90deg,#286bbd,#51acf2)}
.tna-atlas-meter .rep,.tna-atlas-cand-rail i.rep{background:linear-gradient(90deg,#e24758,#fa7a78)}
.tna-atlas-meter .other,.tna-atlas-cand-rail i.other{background:#918cb0}
.tna-atlas-meter .measure-yes{background:#35b9b3}
.tna-atlas-meter .measure-no{background:#e8a24a}
.tna-atlas-count-detail{font-size:10px;color:#b7c5d7;margin-top:9px}
.tna-atlas-map-panel{border:1px solid #37475c;border-radius:10px;background:radial-gradient(ellipse at 53% 43%,#213953 0%,#15283e 62%,#122237 100%);padding:16px 16px 12px;overflow:hidden}
.tna-atlas-map-heading strong{font-size:13px;font-weight:850;color:#fff}
.tna-atlas-map-heading span{font-size:10px;color:#b6c4d6}
.tna-atlas-map{width:100%;max-width:900px;margin:auto;min-height:270px}
.tna-atlas-map svg{display:block;width:100%;height:auto;max-height:500px;margin:2px auto}
.tna-atlas-inset{fill:#15273c;stroke:#4b5a6e;stroke-width:1;stroke-dasharray:3 5}
.tna-atlas-inset-caption{fill:#9bb0c7;font-size:11px;font-weight:800;letter-spacing:2px;pointer-events:none}
.tna-atlas-state path{fill:#546175;stroke:#15253b;stroke-width:1.45;stroke-linejoin:round;transition:fill .15s ease,stroke .15s ease,filter .15s ease}
.tna-atlas-state.dem path{fill:#318cde}
.tna-atlas-state.rep path{fill:#ec5667}
.tna-atlas-state.mixed path{fill:#a18bc4}
.tna-atlas-state.other path{fill:#b2a1be}
.tna-atlas-state.measures path{fill:#d6ad63}
.tna-atlas-state:hover path,.tna-atlas-state:focus path,.tna-atlas-state.is-selected path{stroke:#ffe19f;stroke-width:3;filter:brightness(1.3)}
.tna-atlas-state:focus{outline:none}
.tna-atlas-state-label{fill:#fff;font-weight:850;font-size:9px;paint-order:stroke;stroke:#10223d88;stroke-width:2;stroke-linecap:round;pointer-events:none}
.tna-atlas-state.no-data .tna-atlas-state-label{fill:#e0e6ee}
.tna-atlas-legend{display:flex;align-items:center;justify-content:center;gap:9px 15px;flex-wrap:wrap;padding:0 6px 7px;color:#bdcde0;font-size:10px;line-height:1.3}
.tna-atlas-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:-8px}
.tna-atlas-dot.dem{background:#318cde}.tna-atlas-dot.rep{background:#ec5667}.tna-atlas-dot.mixed{background:#a18bc4}.tna-atlas-dot.none{background:#546175}.tna-atlas-dot.measures{background:#d6ad63}
.tna-atlas-footnote{font-size:10px!important;line-height:1.5;color:#adbed4!important;text-align:center;margin:0!important}
.tna-atlas-credit{font-size:9px;color:#849ab4;line-height:1.5;padding:11px 1px 0}
.tna-atlas-state[hidden]{display:none!important}
.tna-atlas-state{margin-top:13px;border-top:1px solid #31425a;padding:16px 0 3px}
.tna-atlas-state-head{margin-bottom:12px}
.tna-atlas-state-head h4{color:#fff!important;margin:1px 0 5px!important;font-size:22px!important}
.tna-atlas-state-head p{color:#b5c3d5;font-size:11px;margin:0}
.tna-atlas-state-head>a{border:1px solid #48607d;border-radius:6px;padding:8px 10px;background:#182d44;color:#e6edf9!important;text-decoration:none;font-size:11px;font-weight:800;white-space:nowrap}
.tna-atlas-state-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tna-atlas-state-box{border:1px solid #30465e;border-radius:9px;padding:13px;background:#192b41;min-width:0}
.tna-atlas-state-box h4{margin:3px 0 12px!important;font-size:15px!important;line-height:1.3!important;color:#f3f5fa!important}
.tna-atlas-state-box p,.tna-atlas-state-box small{font-size:10px;color:#c0cce0;line-height:1.5}
.tna-atlas-state-box small{display:block;margin-top:7px}
.tna-atlas-candidate{margin:10px 0 11px}
.tna-atlas-cand-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 9px;font-size:11px;color:#fff;font-weight:750}
.tna-atlas-cand-head>span{overflow-wrap:anywhere}
.tna-atlas-cand-head strong{text-align:right;font-variant-numeric:tabular-nums}
.tna-atlas-cand-head small{grid-column:1/-1;font-size:9px;color:#b7c7da;margin:0}
.tna-atlas-cand-rail{height:7px;border-radius:8px;background:#31465f;overflow:hidden;margin-top:5px}
.tna-atlas-cand-rail i{display:block;height:100%;border-radius:8px}
.tna-atlas-house-sums{display:flex;justify-content:space-between;gap:8px;font-size:10px;margin:13px 0;color:#d0dcec}
.tna-atlas-house-sums span{display:flex;gap:6px;align-items:center}
.tna-atlas-house-sums b{color:#fff;font-size:17px}
.tna-atlas-measure{margin:10px 0}
.tna-atlas-measure>div:first-child{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:10px;color:#d9e1ee;margin-bottom:5px}
.tna-atlas-measure>div:first-child span{display:block;overflow-wrap:anywhere;line-height:1.3}
.tna-atlas-measure b{font-size:10px;white-space:nowrap}
.tna-atlas-measure .tna-atlas-meter{height:7px}
@media(max-width:900px){.tna-atlas-state-grid{grid-template-columns:1fr 1fr}.tna-atlas-state-grid>.tna-atlas-state-box:last-child{grid-column:1/-1}}
@media(max-width:630px){.tna-election-atlas{padding:14px 12px 12px;border-radius:10px}.tna-atlas-hero{padding-top:11px}.tna-atlas-switch button{flex:1 1 calc(50% - 8px);font-size:11px}.tna-atlas-summary{padding:12px}.tna-atlas-numbers{gap:7px}.tna-atlas-numbers>div{display:block}.tna-atlas-numbers b{display:block;margin:5px 0 0;font-size:18px}.tna-atlas-label{font-size:9px}.tna-atlas-total strong{font-size:25px}.tna-atlas-map-panel{padding:10px 5px}.tna-atlas-map-heading{padding:4px 8px}.tna-atlas-map-heading span{font-size:9px}.tna-atlas-map{min-height:unset}.tna-atlas-state-label{font-size:12px}.tna-atlas-state-grid{grid-template-columns:1fr}.tna-atlas-state-grid>.tna-atlas-state-box:last-child{grid-column:auto}.tna-atlas-state-head h4{font-size:19px!important}.tna-atlas-legend{font-size:9px}}
@media(prefers-reduced-motion:reduce){.tna-atlas-state path,.tna-atlas-switch button{transition:none}}

/* Three simultaneous, non-partisan office reporting snapshots. */
.tna-atlas-quicklook{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:-1px 0 12px}
.tna-atlas-quick-card{min-width:0;text-align:left;padding:12px 12px 11px;background:#15273c;border:1px solid #33475e;color:#eaf1fa;cursor:pointer;border-radius:9px;transition:border-color .15s ease,transform .15s ease}
.tna-atlas-quick-card:hover,.tna-atlas-quick-card:focus-visible,.tna-atlas-quick-card.is-active{border-color:#d7b578;background:#1b3049}
.tna-atlas-quick-card:focus-visible{outline:2px solid #f3ca80;outline-offset:2px}
.tna-atlas-quick-card>span{display:flex;align-items:baseline;justify-content:space-between;gap:5px;font-weight:850;font-size:12px;line-height:1.3}
.tna-atlas-quick-card>span small{color:#a9bdd5;font-size:8px;font-weight:750;letter-spacing:.09em}
.tna-atlas-quick-numbers{display:flex;justify-content:space-between;align-items:baseline;gap:7px;padding:13px 0 12px}
.tna-atlas-quick-numbers b{font-size:20px;line-height:1;font-variant-numeric:tabular-nums}
.tna-atlas-quick-numbers b.d{color:#6db8fb}.tna-atlas-quick-numbers b.r{color:#ff8590}
.tna-atlas-quick-numbers small{color:#afbcd0;font-size:10px}
.tna-atlas-quick-card .tna-atlas-meter{height:6px}
@media(max-width:670px){.tna-atlas-quicklook{grid-template-columns:1fr;gap:5px}.tna-atlas-quick-card{padding:9px 12px}.tna-atlas-quick-numbers{padding:7px 0}.tna-atlas-quick-numbers b{font-size:18px}.tna-atlas-quick-card>span small{font-size:8px}}

/* 0.5.39: single primary heading; lightweight freshness/refresh controls. */
.tna-atlas-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.tna-atlas-refresh{appearance:none;cursor:pointer;border:1px solid #60748b;border-radius:7px;background:#1c324a;color:#eff5fb;padding:7px 11px;font-size:11px;font-weight:800;letter-spacing:0;text-transform:none;line-height:1.2}
.tna-atlas-refresh:hover,.tna-atlas-refresh:focus-visible{background:#2f4a6d;border-color:#e2c27d;outline-offset:2px}
.tna-atlas-refresh:disabled{opacity:.55;cursor:wait}
.tna-atlas-hero .tna-atlas-location{color:#f1c779!important;font-size:12px!important;font-weight:800;margin:0 0 5px!important}
.tna-atlas-hero .tna-election-update{border:0;border-top:1px solid #344961;padding:9px 0 0;margin-top:12px;font-size:11px;color:#b9c9db;line-height:1.5}
@media(max-width:640px){.tna-atlas-topline{align-items:flex-start;flex-wrap:wrap;gap:8px}.tna-atlas-controls{width:100%;justify-content:space-between}.tna-atlas-hero h1{font-size:clamp(27px,7vw,36px)!important}}

/* v0.5.40: source links first; detailed tables are opt-in and never duplicate
 * the primary state charts on initial render. */
.tna-atlas-sourcebar{display:flex;align-items:center;gap:6px 13px;flex-wrap:wrap;font-size:11px;line-height:1.45;margin:11px 0 7px;color:#bbd0e8}
.tna-atlas-sourcebar strong{color:#f5d597;font-size:11px}
.tna-atlas-sourcebar a{color:#d5e8ff!important;text-decoration:underline;text-underline-offset:2px}
.tna-atlas-sourcebar a:hover{color:#fff!important}
.tna-atlas-source-state{flex-basis:100%;border-top:1px solid #344961;padding-top:8px;color:#dce6f4}
.tna-atlas-detail-panel{margin:16px 0 0;border:1px solid #41526c;border-radius:9px;background:#182b42;color:#f6f8ff}
.tna-atlas-detail-panel>summary{cursor:pointer;list-style:none;padding:13px 15px;font-weight:850;font-size:13px;color:#fff;display:flex;align-items:center;flex-wrap:wrap;gap:4px 15px}
.tna-atlas-detail-panel>summary::-webkit-details-marker{display:none}
.tna-atlas-detail-panel>summary:before{content:'+';border:1px solid #60748b;border-radius:5px;font-size:14px;line-height:1;padding:3px 6px;color:#f2ce7a}
.tna-atlas-detail-panel[open]>summary:before{content:'−'}
.tna-atlas-detail-panel>summary span{font-weight:500;color:#a5bcd5;font-size:11px}
.tna-atlas-detail-body{padding:13px;background:#fff;color:#15223a;border-radius:0 0 8px 8px}
.tna-atlas-detail-body .tna-election-filterbar{margin:0 0 8px}
.tna-atlas-detail-body .tna-election-results{margin-top:10px}
.tna-atlas-detail-body .tna-election-state-links{margin:8px 0}
@media(max-width:650px){.tna-atlas-sourcebar{font-size:10px;gap:7px 10px}.tna-atlas-detail-body{padding:9px}}

/* v0.5.41 — attribution follows the map and detailed results, never the hero. */
.tna-election-atlas>.tna-atlas-sourcebar{border-top:1px solid #40516a;padding:15px 2px 0;margin:19px 0 0;gap:8px 14px;align-items:center}
.tna-atlas-sourcebar>strong{letter-spacing:.09em;font-size:10px}
#tna-atlas-current-sources{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;flex:1 1 100%;min-width:0}
#tna-atlas-current-sources>small{font-size:10px;color:#b2c1d5;flex:1 1 100%}
.tna-atlas-authorities{flex:1 1 100%;margin:3px 0 0;font-size:11px;color:#c6d5e8}
.tna-atlas-authorities>summary{cursor:pointer;color:#d9e7f8;font-weight:700}
.tna-atlas-authorities>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 0}
.tna-atlas-authorities>small{display:block;margin:2px 0 0;color:#a8bad1}
@media(max-width:630px){.tna-atlas-authorities>div{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.5.43: unified state dashboard; four equal cards, not filtered by map mode. */
.tna-atlas-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tna-atlas-state-grid>.tna-atlas-state-box:last-child{grid-column:auto}
.tna-atlas-detail-panel{scroll-margin-top:24px}
@media(max-width:680px){.tna-atlas-state-grid{grid-template-columns:minmax(0,1fr)}}
