/* Shared visual hierarchy: native tabs, live blocks, focused result tools. */
.interactive{--accent:#285577;--line:#dce3e9;--muted:#52616f;background:#f4f6f8;color:#172b3a;font-size:16px}
.interactive .shell{max-width:1240px;margin:auto;padding:20px 32px 32px;gap:10px}
.interactive .masthead{padding-bottom:4px;border-bottom:0;align-items:center}
.interactive .wordmark{letter-spacing:-.04em;color:#173e59}
.interactive .app-download{margin:0;padding:6px 12px;background:#fff;border:1px solid var(--line);border-radius:12px}
.interactive .app-download>img{width:40px;height:40px}.interactive .app-download-link{min-height:44px;padding:8px 14px}
.interactive .app-download h2{font-size:1rem}.interactive .app-download p{font-size:.875rem}
.interactive .connection-status{margin:0;min-height:1.4em;font-size:.875rem}
.interactive .web-push[data-push-enhanced].is-compact{margin:0;padding:0;min-height:32px}
.interactive .web-push.is-compact [data-push-toggle]{min-height:44px;padding:4px 8px;line-height:20px;font-size:.8125rem}
.primary-nav{display:flex;gap:4px;background:#e6edf2;padding:4px;border-radius:14px;margin:0}
.primary-nav button{flex:1;min-height:44px;border:0;border-radius:10px;background:transparent;color:#52616f;font:600 1rem Barlow,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.primary-nav button span{font-size:1.4rem}.primary-nav button[aria-current]{color:#173e59;background:#fff;box-shadow:0 2px 6px #173e5910}
.interactive .filters{padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;gap:12px;align-items:end}
.interactive .filters label{font-size:.875rem;color:var(--muted);display:flex;flex-direction:column;gap:6px}
.interactive select,.interactive input[type=search]{font:inherit;border:1px solid #bdcbd6;border-radius:8px;background:#fff;color:#172b3a;min-height:44px;padding:8px 12px;max-width:100%}
.selection-actions{display:flex;justify-content:space-between;align-items:center;margin:0;font-size:.875rem}
.selection-actions>a,.interactive .tv-link{display:inline-flex;align-items:center;min-height:44px}
.text-button{background:none;border:0;padding:10px 0;color:#285577;cursor:pointer;font:600 .9375rem Barlow,sans-serif;min-height:44px}
.live-overview{padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:16px;margin:0;box-shadow:0 3px 16px #173e5906}
.live-overview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.live-overview-heading h2{font:600 1.6rem 'Barlow Condensed',sans-serif;margin:5px 0 14px}.live-overview-heading .eyebrow{font-size:.75rem}
.live-scores{display:flex;justify-content:space-between;gap:20px}.live-score{display:flex;flex-direction:column;gap:4px;max-width:49%;min-width:0}.live-score>span{font-size:.875rem;font-weight:600;overflow-wrap:anywhere}.live-score strong{font:700 clamp(2.5rem,6vw,4rem) 'Barlow Condensed',sans-serif;line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.live-score small{font-size:.875rem;color:var(--muted)}.live-score-0{color:#c72b43}.live-score-1{color:#1760a5;text-align:right}
.live-vote-bar{display:flex;height:12px;border-radius:8px;overflow:hidden;background:#eef1f4;margin:20px 0 12px}.live-fill-0{background:#cf344b}.live-fill-1{background:#2778c7}
.live-overview-meta{display:flex;justify-content:space-between;gap:16px;font-size:.8125rem;color:var(--muted);line-height:1.5}.live-overview-meta span:last-child{flex-shrink:0}
.interactive .view-nav{border-bottom:1px solid var(--line);padding:0 0 6px;margin-bottom:4px;gap:8px}.interactive .view-nav button{min-height:44px;font-size:.875rem;padding:10px 13px;border-radius:8px;white-space:nowrap}.interactive .view-nav button[aria-current]{background:#173e59;color:#fff;border-color:#173e59}
.interactive .section-title h1{font-size:2rem;letter-spacing:-.025em}.interactive .section-title p{font-size:.9375rem;line-height:1.5}
.interactive .frame{background:#fff;border:1px solid var(--line);border-radius:12px}.interactive .note{font-size:.875rem;line-height:1.5}.interactive .source-line{font-size:.8125rem;gap:16px;flex-wrap:wrap}
.discovery-view{max-width:920px;margin:auto;width:100%}.party-search-controls{display:grid;grid-template-columns:1fr 220px;gap:16px;margin:0 0 22px}.party-search-controls label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:600}.party-discovery-list,.party-geographies{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.discovery-row,.geography-row{width:100%;display:flex;align-items:center;gap:16px;padding:18px 20px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;color:inherit;font:inherit;cursor:pointer;min-height:88px}.discovery-row:last-child,.geography-row:last-child{border-bottom:0}.discovery-row:hover,.geography-row:hover{background:#f0f5f8}.discovery-row>span:nth-child(2){flex:1;min-width:0}.discovery-row strong,.geography-row strong{display:block;font-size:1rem;overflow-wrap:anywhere}.discovery-row small,.geography-row small{display:block;font-size:.875rem;color:var(--muted);margin-top:5px;line-height:1.4}.party-monogram{display:grid;place-items:center;flex-shrink:0;min-width:48px;max-width:100px;min-height:48px;padding:6px;border-radius:10px;background:#e6eef4;color:#173e59;font:600 1.2rem 'Barlow Condensed',sans-serif;overflow-wrap:anywhere}.party-profile-title{display:flex;align-items:center;gap:16px;margin:12px 0 24px}.party-profile-title h2{font:600 2rem 'Barlow Condensed',sans-serif;margin:0}.party-profile-title p{margin:5px 0;color:var(--muted)}.geography-row{justify-content:space-between}.geography-metric{text-align:right;flex-shrink:0}.geography-metric strong{font:600 1.65rem 'Barlow Condensed',sans-serif}.favorite-row{display:flex;align-items:center;border-bottom:1px solid var(--line);padding-right:18px}.favorite-row:last-child{border-bottom:0}.favorite-row .geography-row{border:0}.favorite-row>.text-button{flex-shrink:0}.loading-state{padding:32px 0;color:var(--muted)}
.push-phase-options{display:flex;gap:14px;flex-wrap:wrap;font-size:.875rem}.push-phase-options label{display:flex;gap:8px;align-items:center;min-height:44px}.push-phase-options input{width:18px;height:18px;accent-color:#285577}
.interactive button:focus-visible,.interactive a:focus-visible,.interactive input:focus-visible,.interactive select:focus-visible{outline:3px solid #2d79bb;outline-offset:3px}
[hidden]{display:none!important}
/* On desktop, compact notification settings share the existing status row.
   Keep the expanded consent panel in normal flow and retain 44px hit targets. */
@media(min-width:741px){
 .interactive .shell:has(>.app-download):has(>.web-push.is-compact:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start}
 .interactive .shell:has(>.app-download):has(>.web-push.is-compact:not([hidden]))>*{grid-column:1/-1;min-width:0}
 .interactive .shell:has(>.app-download):has(>.web-push.is-compact:not([hidden]))>.web-push{grid-column:2;grid-row:3;align-self:center}
 .interactive .shell:has(>.app-download):has(>.web-push.is-compact:not([hidden]))>.connection-status{grid-column:1;grid-row:3;align-self:center}
}
@media(max-width:740px){.interactive .shell{padding:18px 16px 100px}.interactive .masthead{gap:14px}.interactive .header-stats{gap:14px}.interactive .header-stats strong{font-size:1.3rem}.interactive .subtitle{font-size:.8125rem;flex-wrap:wrap}.primary-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;margin:0;padding:7px 8px max(7px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 20px #173e5910}.primary-nav button{flex-direction:column;gap:2px;min-height:54px;font-size:.75rem}.primary-nav button[aria-current]{background:#eaf1f6;box-shadow:none}.interactive .filters{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.interactive .filters .area-control{grid-column:1/-1}.interactive .filters .tv-link{align-self:center;font-size:.875rem}.live-overview{padding:18px 16px;margin-bottom:20px}.live-overview-meta{flex-direction:column;gap:3px}.live-overview-heading h2{font-size:1.4rem}.live-overview-heading .text-button{font-size:.875rem}.party-search-controls{grid-template-columns:1fr}.discovery-row,.geography-row{padding:16px 12px;gap:12px}.geography-row strong{font-size:.9375rem}.geography-metric strong{font-size:1.4rem}.interactive .view-nav{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.interactive .web-push{padding:14px}.interactive .app-download{display:none}.interactive .section-title h1{font-size:1.85rem}.favorite-row>.text-button{font-size:.8125rem}.interactive .live-notice{bottom:90px}}
@media(prefers-reduced-motion:reduce){.interactive *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:740px){.interactive .shell{gap:10px;padding-top:14px}.interactive .masthead{gap:10px}.interactive .live-overview{margin-bottom:0}.interactive .view-nav{margin-bottom:4px}}

.favorite-live-panel{margin-bottom:20px}.live-choice-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.live-choice-heading h2{font:600 1.65rem 'Barlow Condensed',sans-serif;margin:0 0 8px}.live-choice-heading p{font-size:.9375rem;line-height:1.5;color:var(--muted);max-width:55ch;margin:0 0 18px}.live-choice-heading label{display:flex;flex-direction:column;gap:6px;font-size:.875rem}.live-choice-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px}.live-choice-actions .action-button{border-radius:8px;color:#fff;background:#285577;font-weight:700;min-height:44px}.favorite-row{gap:12px}.favorite-row [data-favorite-live][aria-pressed=true]{color:#174566;background:#e7f0f6;border-radius:8px;padding:8px 12px}.live-policy-note{padding:14px;border-radius:10px;color:#263f52;background:#edf2f6;line-height:1.5}
@media(max-width:740px){.live-choice-heading{flex-direction:column;gap:8px}.live-choice-heading label{width:100%;margin-bottom:16px}.live-choice-actions{align-items:stretch;flex-direction:column;gap:6px}.live-choice-actions .action-button{text-align:center}.favorite-row{flex-wrap:wrap;padding:0 12px 12px;gap:8px 18px}.favorite-row .geography-row{padding-left:0;padding-right:0}.favorite-row .text-button{flex:1}.favorite-live-panel .live-overview-heading{align-items:start}}
