/* v0.5.23: self-contained unofficial election-results layer. */
.tna-election-night{border:1px solid #dfe3e8;border-top:4px solid #b21a25;background:#fff;padding:22px;margin:22px 0 30px}
.tna-election-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.tna-election-titlebar h2{font-size:clamp(28px,4vw,40px);line-height:1.07;margin:0 0 9px;letter-spacing:-.025em}
.tna-election-titlebar p{font-size:14px;line-height:1.5;color:#555e68;max-width:800px;margin:0 0 12px}
.tna-election-titlebar .tna-refresh{flex-shrink:0}
.tna-election-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 12px}
.tna-election-summary article{border:1px solid #dfe3e8;border-top:4px solid #111317;padding:16px;min-width:0}
.tna-election-summary article:nth-child(2){border-top-color:#b21a25}
.tna-election-summary article span{display:block;font-size:11px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#5c6470}
.tna-election-summary article strong{display:block;font-size:34px;line-height:1.25;letter-spacing:-.04em;margin-top:6px}
.tna-election-summary article small{display:block;font-size:11px;color:#5c6470;line-height:1.4}
.tna-election-update{font-size:12px;line-height:1.45;color:#525b66;padding:12px 0;border-bottom:1px solid #e5e8ed}
.tna-election-filterbar{display:grid;grid-template-columns:minmax(210px,1fr) minmax(150px,.75fr) minmax(220px,1.5fr);gap:10px;margin-top:16px;padding:12px;background:#f5f6f8;border:1px solid #dfe3e8}
.tna-election-filterbar label span{display:block;margin:0 0 6px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#5c6470}
.tna-election-filterbar input,.tna-election-filterbar select{display:block;width:100%;height:42px;padding:0 10px;background:#fff;color:#111317;border-radius:4px;border:1px solid #cbd1d7;font-size:14px}
.tna-election-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tna-election-race{min-width:0;padding:16px;border:1px solid #dfe3e8;background:#fff}
.tna-election-racehead{display:flex;justify-content:space-between;align-items:flex-start;gap:9px;border-bottom:1px solid #edf0f3;padding-bottom:10px}
.tna-election-statecode{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#a21f28}
.tna-election-race h3{font-size:19px;line-height:1.2;margin:5px 0 4px}
.tna-election-contest{font-size:11px;color:#5c6470;line-height:1.35}
.tna-election-badge{display:inline-block;flex-shrink:0;font-size:10px;line-height:1.25;background:#f0f1f4;padding:5px 7px;border-radius:3px;font-weight:800;color:#434a53}
.tna-election-candidates{padding:12px 0 5px;display:grid;gap:9px}
.tna-election-candrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(65px,auto) minmax(48px,auto);gap:10px;align-items:center;font-size:13px}
.tna-election-candname{min-width:0;font-weight:800;overflow-wrap:anywhere;line-height:1.3}
.tna-election-candname small{display:block;font-size:10px;font-weight:500;color:#59616a}
.tna-election-candrow strong{font-size:14px;white-space:nowrap;text-align:right}
.tna-election-candrow b{font-size:13px;white-space:nowrap;text-align:right}
.tna-election-bar{height:5px;border-radius:2px;background:#eef1f5;margin-top:5px;overflow:hidden}
.tna-election-bar span{height:100%;display:block;background:#8b929b}
.tna-election-bar .party-d{background:#356db6}
.tna-election-bar .party-r{background:#c43b3b}
.tna-election-racefoot{border-top:1px solid #edf0f3;padding-top:10px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;font-size:10px;line-height:1.45;color:#59616a}
.tna-election-racefoot span:first-child{max-width:65%}
.tna-election-racefoot span:last-child{text-align:right}
.tna-election-night a{font-weight:700;color:#1b4c86;text-decoration:underline}
.tna-election-empty{padding:20px;background:#f7f8fa;border:1px solid #dfe3e8;line-height:1.5;font-size:13px;color:#4f5965;grid-column:1/-1}
.tna-election-empty p{margin:8px 0}
.tna-election-credit{font-size:11px!important;color:#5c6470!important;line-height:1.55!important;margin:14px 0 0!important}
.tna-polls-preheader{padding:10px 1px 3px}
.tna-polls-preheader h2{font-size:30px;margin:0 0 6px}
.tna-polls-preheader p{font-size:13px;color:#5c6470;margin:0}
@media(max-width:900px){.tna-election-results{grid-template-columns:1fr}}
@media(max-width:680px){.tna-election-night{padding:12px;margin:16px 0 24px}.tna-election-titlebar{display:block}.tna-election-titlebar .tna-refresh{margin-bottom:4px}.tna-election-summary{gap:6px}.tna-election-summary article{padding:10px;min-height:109px}.tna-election-summary article strong{font-size:27px}.tna-election-summary article span{font-size:9px}.tna-election-summary article small{font-size:10px}.tna-election-filterbar{grid-template-columns:1fr;gap:8px}.tna-election-race{padding:12px}.tna-election-racefoot{display:block}.tna-election-racefoot span:first-child{max-width:none}.tna-election-racefoot span:last-child{display:block;text-align:left;margin-top:5px}.tna-election-candrow{gap:5px}.tna-election-candrow strong{font-size:12px}.tna-election-race h3{font-size:17px}}

/* v0.5.30: movable polling fieldwork badge in propositions header. */
.tna-measures-browser .tna-browser-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px}
.tna-measures-browser .tna-polls-asof{white-space:normal;max-width:100%;text-wrap:pretty;flex:0 1 auto}
@media(max-width:680px){.tna-measures-browser .tna-browser-head{display:block}.tna-measures-browser .tna-polls-asof{display:inline-block;margin-top:12px}}

/* v0.5.31: live proposition votes within the existing ballot-measure section. */
.tna-live-measures-block {margin:22px 0 32px;padding:18px 0 24px;border-bottom:1px solid rgba(119,130,141,.25)}
.tna-live-measures-head {display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:13px}
.tna-live-measures-head h3 {font-size:clamp(22px,2.5vw,30px);line-height:1.2;margin:0 0 5px}
.tna-live-measures-head p {font-size:14px;color:#666;max-width:680px;line-height:1.55;margin:0}
.tna-live-measures-head label {font-size:12px;font-weight:600;min-width:190px;color:#555;display:flex;gap:7px;flex-direction:column}
.tna-live-measures-head select {padding:9px 12px;border:1px solid #ccc;border-radius:4px;background:#fff}
.tna-live-measures-credit {color:#666;font-size:12px;line-height:1.5;margin:18px 0 0}
@media(max-width:640px){.tna-live-measures-head label{width:100%}}

/* v0.5.32 - visible navigation and proposition section before Latest Polls. */
#tna-election-night, #tna-measures-section, #tna-poll-browser, #tna-poll-trends{scroll-margin-top:20px}
.tna-polls-jumpnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 18px;padding:0 1px}
.tna-polls-jumpnav a{display:inline-flex;gap:5px;align-items:center;padding:9px 13px;color:#334155!important;border:1px solid #d8dee6;border-radius:4px;background:#fff;font-size:13px;font-weight:800;text-decoration:none!important;transition:border-color .15s ease,background .15s ease}
.tna-polls-jumpnav a:hover,.tna-polls-jumpnav a:focus-visible{background:#f5f7fa;border-color:#68778b;outline-offset:2px}
.tna-polls-jumpnav a.tna-jump-measures{border-color:#d8dee6;color:#334155!important}
.tna-polls-jumpnav .tna-jump-count{font-weight:600;color:#53616e;font-size:11px;white-space:nowrap}
.tna-measures-shortcut{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:12px 15px;background:#fff;border:1px solid #d8dee6;color:#1b2835!important;text-decoration:none!important;margin:4px 0 13px}
.tna-measures-shortcut strong{display:block;font-size:14px;color:#212934}
.tna-measures-shortcut small{display:block;font-size:11px;color:#5a6370;margin-top:3px}
.tna-measures-shortcut-arrow{font-size:12px;font-weight:850;color:#53616e;white-space:nowrap}
.tna-measures-shortcut:hover,.tna-measures-shortcut:focus-visible{border-color:#68778b;background:#f5f7fa}
#tna-measures-section{border-top:4px solid #334155;margin-top:26px;padding-top:22px}
#tna-measures-section .tna-browser-head h2{font-size:clamp(27px,3.4vw,36px)}
.tna-measures-archive-intro{margin:23px 0 10px;padding:13px 0 0;border-top:1px solid #dfe3e8}
.tna-measures-archive-intro h3{font-size:22px;line-height:1.2;margin:0 0 5px}
.tna-measures-archive-intro p{font-size:13px;color:#5d6774;line-height:1.5;margin:0}
@media(max-width:680px){.tna-polls-jumpnav{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tna-polls-jumpnav a{font-size:11px;padding:9px 8px;justify-content:center;text-align:center}.tna-measures-shortcut{padding:10px}.tna-measures-shortcut-arrow{font-size:11px}}

/* Clear, consistent Yes/No result bars for proposition cards in the main results grid. */
.tna-election-bar .party-yes{background:#288054}.tna-election-bar .party-no{background:#b5323b}

/* 0.5.36: stable, shareable US state and contest route navigation. */
.tna-polls-breadcrumbs{font-size:12px;line-height:1.5;margin:0 0 10px;color:#566272}
.tna-polls-breadcrumbs a{color:#315479;text-decoration:underline}
.tna-polls-breadcrumbs span{margin:0 3px}
.tna-election-state-links[hidden]{display:none!important}
.tna-election-state-links{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 18px}
.tna-election-state-links a{display:inline-flex;align-items:center;padding:8px 11px;border:1px solid #cdd5df;border-radius:4px;color:#334155;background:#fff;text-decoration:none;font-size:12px;font-weight:700}
.tna-election-state-links a[aria-current="page"]{border-color:#53657b;background:#eff3f8;color:#1d334a}
.tna-election-state-links a:hover,.tna-election-state-links a:focus-visible{border-color:#435b73;text-decoration:underline}
.tna-country-states{padding:18px 15px;margin:15px 0 25px;border:1px solid #d9e1e9;background:#fff}
.tna-country-states h2{font-size:21px;margin:0 0 14px}
.tna-country-states-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 14px}
.tna-country-states-grid a{color:#2d5276;font-size:12px;text-decoration:underline}
@media(max-width:750px){.tna-country-states-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.5.37 — cached-data state tally visualization; neutral reporting, not party colors. */
.tna-election-visuals{border:1px solid #dce2e8;background:#f9fafb;margin:14px 0 12px;padding:14px}
.tna-election-visual-heading h3{margin:0 0 4px;font-size:17px;line-height:1.25;color:#263748}
.tna-election-visual-heading p{margin:0 0 10px;font-size:12px;color:#65707d;line-height:1.4}
.tna-election-tally-details>summary{cursor:pointer;color:#2f516f;font-size:12px;font-weight:800;padding:6px 0}
.tna-election-state-chart{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;padding:11px 0 1px}
.tna-election-state-tile{display:flex;min-height:51px;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;text-decoration:none!important;border:1px solid #cbd5df;border-radius:4px;transition:border-color .12s ease,background .12s ease}
.tna-election-state-tile strong{font-size:11px;line-height:1;color:inherit}
.tna-election-state-tile span{font-size:10px;color:inherit;opacity:.85}
.tna-election-state-tile.has-counts{background:#285b80;border-color:#285b80;color:#fff!important}
.tna-election-state-tile.no-counts{background:#edf0f3;color:#5d6672!important}
.tna-election-state-tile:hover,.tna-election-state-tile:focus-visible{outline:2px solid #b88b28;outline-offset:1px;border-color:#a06e00}
.tna-election-office-chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin-top:8px}
.tna-election-office-chart[hidden],.tna-election-tally-details[hidden]{display:none!important}
.tna-election-tally-row{display:grid;grid-template-columns:minmax(80px,110px) minmax(0,1fr) 30px;align-items:center;gap:8px;text-decoration:none!important;padding:8px;border:1px solid #d9e0e6;background:#fff;color:#2b3949!important;border-radius:4px}
.tna-election-tally-row .tna-tally-name{font-size:11px;font-weight:750}
.tna-election-tally-row .tna-tally-track{height:7px;background:#e8edf1;border-radius:5px;overflow:hidden}
.tna-election-tally-row .tna-tally-track span{display:block;height:100%;background:#426d8e;border-radius:5px}
.tna-election-tally-row strong{font-size:13px;text-align:right}
.tna-election-tally-row:hover,.tna-election-tally-row:focus-visible{border-color:#6385a3;background:#f0f5fa}
@media(max-width:710px){.tna-election-state-chart{grid-template-columns:repeat(6,minmax(0,1fr))}.tna-election-office-chart{grid-template-columns:1fr}.tna-election-visuals{padding:10px}}

/* 0.5.39: the full-size election summary no longer precedes the Atlas. */
.tna-election-night{border:0;border-top:0;background:transparent;padding:0;margin:14px 0 28px}
.tna-election-night>.tna-election-atlas{margin:0 0 17px}
@media(max-width:680px){.tna-election-night{padding:0;margin:12px 0 22px}}
