/* Avenir-like editorial typography. Manrope is bundled under SIL OFL 1.1.
   Source and license: /reporting-assets/fonts/SOURCES.json and OFL-Manrope.txt. */
@font-face {
  font-family: "Manrope";
  src: url("/reporting-assets/fonts/Manrope-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --desk-font: "Avenir Next", "Avenir", "Manrope", "Segoe UI", sans-serif;
  --type-body: 17.5px;
  --type-reading: 16px;
  --type-table: 15px;
  --type-control: 15px;
  --type-meta: 13px;
  font-family: var(--desk-font);
  font-size: var(--type-body);
}
body {font-family:var(--desk-font);font-size:var(--type-body);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea,h1,h2,h3,h4,th,td,.brand,.page-heading h1,.dialog-heading h2,.ea-trend-chart text {font-family:var(--desk-font)}
.card-index,.tally-summary #tallyValue,.review-callout h2,.count-pill,.workflow-explainer article>span {font-family:var(--desk-font)}
button,input,select,textarea {font-size:var(--type-control)}
small,.small {font-size:var(--type-meta);line-height:1.65}
p {line-height:1.65}
h1,.page-heading h1 {font-size:clamp(32px,2.8vw,40px);font-weight:750;line-height:1.18;letter-spacing:-1.1px}
h2,.section-title-row h2,.region-results-section h2,.panel h2,.progress-panel h2,.ea-section-heading h2,#countyPartySection>.ea-section-heading h2 {font-size:28px;line-height:1.25;letter-spacing:-.65px}
h3 {font-size:21px;line-height:1.35}
.page-heading p,.section-title-row>div>p:last-child:not(.section-kicker),.ea-intro>div>p:last-child,.ea-description {font-size:var(--type-reading);line-height:1.65;max-width:950px}
.page-heading {gap:24px;align-items:flex-start;margin-bottom:26px}
.page-heading .eyebrow,.eyebrow,.section-kicker,.ea-kicker,.ea-intro .ea-kicker,.tiny-label,.sidebar-section {font-size:12.5px;line-height:1.6;letter-spacing:1.15px}

/* Header and controls retain readable text instead of shrinking on phones. */
.masthead {height:116px}
.brand,.sidebar .brand>span:last-child {font-size:35px;font-weight:800;letter-spacing:-1.1px;line-height:1.08}
.brand small,.sidebar .brand small {font-size:12px;font-weight:550;letter-spacing:2.5px;line-height:1.5;margin-top:9px}
.masthead-edition,.masthead-standard {font-size:12px;top:49px;letter-spacing:.75px}
.newsroom-header nav {height:auto;min-height:64px;gap:30px;padding:0 24px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.newsroom-header nav .nav-item,.nav-item {font-size:16px;line-height:1.45;min-height:64px;padding:18px 5px 15px;flex:0 0 auto}
.nav-count {font-size:12px;min-width:24px}
.topbar {height:auto;min-height:56px;padding-top:10px;padding-bottom:10px;gap:10px;flex-wrap:wrap}
.breadcrumb,.save-state,.topbar-right .save-state {font-size:13px;line-height:1.5}
.topbar-right {margin-left:auto;gap:14px}
.year-control,.year-control>span {font-size:13px;line-height:1.5}
.year-control select {font-size:16px;min-height:44px;padding:9px 28px 9px 12px}
.button,.heading-actions .button.primary,.reference-strip .button,.inline-controls .button,.review-actions>div button {font-size:14px;line-height:1.45;min-height:44px;padding:11px 15px}
.text-button,.map-next-form .text-button,.queue-panel .panel-heading>.text-button,.review-callout .text-button {font-size:14px;line-height:1.5}
.context-banner {font-size:13px;line-height:1.6;padding:12px 15px;gap:14px;flex-wrap:wrap}
.context-banner>div {flex-wrap:wrap;gap:8px}
.context-banner>span {font-size:12.5px}
.icon-button {min-width:38px;min-height:38px}

/* Result metrics and geographic reporting. */
.results-stat-strip article>span {font-size:12.5px;line-height:1.5;letter-spacing:1px;padding:13px 10px}
.results-stat-strip article strong {font-size:clamp(32px,3vw,44px);line-height:1.2;letter-spacing:-1.2px;margin:18px 8px 9px}
.results-stat-strip small {font-size:13px;line-height:1.6;padding:0 14px 18px}
.map-search {min-width:310px;padding:11px 14px}
.map-search input {font-size:15px;min-width:0}
.map-search svg {width:17px;height:17px}
.map-control-row {gap:18px;flex-wrap:wrap;padding:16px 0}
.map-layer-tabs {gap:5px;flex-wrap:wrap}
.map-layer-tabs button {font-size:14.5px;line-height:1.5;padding:10px 13px;min-height:43px}
.map-select-controls {gap:16px;min-width:0;flex-wrap:wrap}
.map-select-controls label {font-size:13px;line-height:1.5;gap:8px;flex-wrap:wrap}
.map-select-controls select {font-size:14px;line-height:1.5;min-height:43px;padding:9px 10px;max-width:100%}
.map-breadcrumbs {font-size:14px;gap:12px;line-height:1.6;margin-bottom:13px}
.map-breadcrumbs button {font-size:14px;line-height:1.6;padding:5px 0}
#mapLabels text {font-family:var(--desk-font);font-size:14px;font-weight:600;stroke-width:1.8px}
.map-north {font-size:13px}
.map-loading {font-size:16px;padding:20px;text-align:center}
.map-zoom button,.map-zoom button:last-child {font-size:24px;width:37px;height:37px;line-height:1}
.map-tooltip {font-size:14px;line-height:1.55;min-width:260px;max-width:300px;padding:16px}
.map-tooltip>strong {font-size:17px;line-height:1.4}
.map-tooltip .tooltip-leader {font-size:14px}
.map-tooltip small {font-size:12px;line-height:1.55}
.map-legend {font-size:13px;line-height:1.6;gap:12px 20px;padding:15px 16px}
.map-legend i {width:11px;height:11px}
.map-canvas-footer {font-size:12.5px;line-height:1.65;padding:13px 16px;flex-wrap:wrap}
.result-status {font-size:12px;line-height:1.5;letter-spacing:.45px;padding:5px 8px}
.map-results-heading h3 {font-size:30px;line-height:1.25;letter-spacing:-.8px;margin:13px 0 8px}
.map-results-heading p {font-size:13px;line-height:1.65}
.map-candidate-line {font-size:16px;gap:9px;align-items:flex-start}
.map-candidate-line strong {font-size:16px;line-height:1.5;flex:1;min-width:0;overflow-wrap:anywhere}
.map-candidate-line b {font-size:29px;line-height:1.2;letter-spacing:-.8px;flex-shrink:0}
.candidate-key {width:10px;height:10px;margin-top:7px}
.map-candidate-votes {font-size:14px;line-height:1.6;gap:8px;margin-top:10px}
.map-candidate-votes>span {font-size:12px;line-height:1.5;letter-spacing:.4px}
.no-results-mark {font-size:40px}
.map-no-results h3 {font-size:20px;line-height:1.4;font-weight:650}
.map-no-results p {font-size:15px;line-height:1.7}
.map-no-results .button,.map-next-form .button {font-size:14px;min-height:43px;padding:10px 13px}
.map-ballot-detail>div {font-size:13px;line-height:1.65;margin:9px 0}
.map-results-notes {font-size:13px;line-height:1.75;padding-top:16px;padding-bottom:16px}
.geography-method {font-size:13px;line-height:1.75;margin-top:17px}
.region-table-controls input,.region-table-controls select {font-size:14px;line-height:1.5;min-height:43px;padding:9px 11px}
.region-table-controls input {min-width:190px}

/* Tables keep full-size data; their established scroll containers handle width. */
th,.region-results-table th,.ea-table th {font-size:12px;line-height:1.6;letter-spacing:.5px;padding:14px 18px}
td,.region-results-table td,.ea-table td {font-size:var(--type-table);line-height:1.6;padding:16px 18px}
td strong,.region-results-table td strong,.ea-table td strong {font-size:var(--type-table);line-height:1.6}
td small,.region-results-table td small,.ea-table td small,.ea-table th small {font-size:12.5px;line-height:1.65;margin-top:5px}
.region-results-table td:first-child button {font-size:15px;line-height:1.5;gap:12px}
.region-results-table td:first-child button span {font-size:14px}
.table-leading {font-size:14px;line-height:1.5;gap:7px}
.table-leading i {width:9px;height:9px}
.table-action {font-size:14px}
.status-tag,.form-token,td .form-token,.count-pill {font-size:12px;line-height:1.5}
.form-level,.partial-label {font-size:12px!important;line-height:1.5}
.no-regions {font-size:15px!important;line-height:1.65}
.inline-reporting-track {height:4px;width:78px}
.empty-table h3,.empty-results h3 {font-size:19px;line-height:1.4}
.empty-table p,.empty-results p {font-size:15px;line-height:1.7}
.form-pagination,.form-pagination button {font-size:14px;line-height:1.5}
.form-pagination {flex-wrap:wrap}
.form-pagination button {min-height:40px;padding:8px 12px}

/* Polling, model, turnout and party analysis. */
.ea-intro h2 {font-size:32px;line-height:1.25;letter-spacing:-.8px}
.ea-verified,.ea-tag,.ea-scenario-tag {font-size:12px;line-height:1.55}
.ea-filter-title {font-size:15px}
.ea-filter-bar label,.ea-scenario-select,.ea-party-year {font-size:13px;line-height:1.6}
.ea-filter-bar select,.ea-inline-controls select,.ea-inline-controls input,.ea-scenario-select select,.ea-party-year select {font-size:15px;line-height:1.5;min-height:43px;padding:9px 11px}
.ea-pollster {font-size:23px;line-height:1.35;letter-spacing:-.35px}
.ea-poll-card h3 {font-size:18px;line-height:1.5}
.ea-question {font-size:15px;line-height:1.7}
.ea-chart-scale {font-size:12px;line-height:1.5}
.ea-share-top>span {font-size:16px;line-height:1.5}
.ea-share-top>strong {font-size:34px;line-height:1.25;letter-spacing:-.8px}
.ea-response-buckets>span {font-size:13px;line-height:1.6}
.ea-response-buckets b {font-size:16px}
.ea-poll-meta {font-size:13px;line-height:1.75;gap:8px 18px}
.ea-details,.ea-details>p {font-size:14px;line-height:1.8}
.ea-details summary,.ea-model-method summary {font-size:14px;line-height:1.65;padding-top:14px;padding-bottom:14px}
.ea-card-source,.ea-source-link {font-size:13px;line-height:1.75}
.ea-source-link>span {font-size:15px}
.ea-note {font-size:14px;line-height:1.8}
.ea-trend-chart text {font-size:13px}
.ea-trend-chart .ea-chart-value {font-size:19px}
.ea-research-footer,.ea-research-footer .ea-note {font-size:13px;line-height:1.8}
.ea-model-context {font-size:13px;line-height:1.75}
.ea-model-stats article>span {font-size:12.5px;line-height:1.65;letter-spacing:.5px}
.ea-model-stats article>strong {font-size:40px;line-height:1.25;letter-spacing:-1px}
.ea-model-stats article>small {font-size:12.5px;line-height:1.75}
.ea-model-stats article>.ea-no-estimate {font-size:22px;line-height:1.5;letter-spacing:-.3px;margin-top:18px;overflow-wrap:anywhere}
.ea-probability-value>b {font-size:16px;min-width:65px}
.ea-assumption-grid>span {font-size:13px;line-height:1.75;padding:13px}
.ea-assumption-grid b {font-size:20px;line-height:1.4;margin-bottom:4px}
.ea-reset {font-size:14px;line-height:1.5;min-height:43px;padding:10px 13px}
.ea-turnout-controls>label {font-size:15px;line-height:1.6}
.ea-turnout-controls output {font-size:21px;line-height:1.4}
.ea-turnout-controls small {font-size:12.5px;line-height:1.6}
.ea-turnout-stats article>strong {font-size:34px;line-height:1.3}
.ea-turnout-table-heading h3 {font-size:20px;line-height:1.4}
.ea-turnout-table-heading>.ea-muted,.ea-table-count {font-size:13px;line-height:1.65}
.ea-party-summary>span {font-size:15px;line-height:1.6}
.ea-party-summary>.ea-party-total {font-size:13px}
.ea-party-summary>.ea-party-total>b {font-size:20px}
.ea-party-stack>span {font-size:12px;height:auto}
.ea-name-dot {width:10px;height:10px}

/* Intake, source evidence and review dialogs. */
.intake-card h2 {font-size:21px;line-height:1.4}
.intake-card>p {font-size:15px;line-height:1.7}
.card-index {font-size:22px}
.card-footer>span {font-size:13px}
.card-footer button {font-size:14px;line-height:1.5}
.card-footer button span {font-size:19px}
.segmented button {font-size:14px;line-height:1.5;min-height:42px}
.tally-summary #tallyValue {font-size:44px;line-height:1.25}
.tally-summary small {font-size:13px;line-height:1.6}
.tally-context strong,.tally-context>span {font-size:14px;line-height:1.65}
.tally-footnote {font-size:13px;line-height:1.75}
.progress-row>div {font-size:14px;line-height:1.6}
.progress-panel>p {font-size:13px;line-height:1.75}
.review-callout .eyebrow {font-size:12px}
.review-callout h2 {font-size:28px;line-height:1.3}
.review-callout p {font-size:15px;line-height:1.7}
.reference-strip strong {font-size:17px;line-height:1.5}
.reference-strip p {font-size:14px;line-height:1.7}
.inline-controls select,.search-input input {font-size:15px;min-height:43px}
.workflow-explainer article>span {font-size:35px}
.workflow-explainer h3 {font-size:20px;line-height:1.4}
.workflow-explainer p,.panel-description,.source-library .panel-description {font-size:15px;line-height:1.75}
.audit-item strong,.audit-item span {font-size:14px;line-height:1.65}
.audit-item small {font-size:12.5px;line-height:1.6}
.candidate-details strong,.candidate-details>span:last-child {font-size:15px;line-height:1.6}
.candidate-details small {font-size:13px;line-height:1.6}
.source-links-grid h3 {font-size:18px;line-height:1.4}
.source-links-grid p {font-size:14px;line-height:1.75}
.source-links-grid a {font-size:14px;line-height:1.7}
.error-banner,.inline-error,.inline-success,.toast {font-size:15px;line-height:1.65}
.dialog-heading h2 {font-size:29px;line-height:1.3;letter-spacing:-.6px}
label,.review-layout form label,.upload-dialog label {font-size:14px;line-height:1.6}
label input:not([type=checkbox]),label select,label textarea,.review-layout label input:not([type=checkbox]),.review-layout label select,.review-layout textarea,.upload-dialog input,.upload-dialog select,.candidate-edit-row input {font-size:16px;line-height:1.5;min-height:44px}
label input::placeholder,label textarea::placeholder {font-size:15px}
.optional {font-size:12.5px}
.drop-zone strong {font-size:18px;line-height:1.45}
.drop-zone>span:not(.upload-glyph),.drop-zone small {font-size:14px;line-height:1.7}
.drop-zone input {font-size:15px!important}
.source-toolbar,.source-pane .source-toolbar {font-size:14px;line-height:1.6}
.source-pane pre {font-size:13px;line-height:1.75}
.source-fingerprint,.source-fingerprint code {font-size:12px;line-height:1.65;overflow-wrap:anywhere}
.source-fingerprint code,.source-pane pre {font-family:ui-monospace,"Cascadia Code",Consolas,monospace}
.review-meta,.review-help {font-size:14px;line-height:1.7}
.candidate-editor-heading h3 {font-size:18px;line-height:1.4}
.candidate-edit-row button {font-size:23px;min-height:44px}
.candidate-party {font-size:14px;line-height:1.5;min-height:43px;padding:9px 11px}
.arithmetic-check,.review-details,.review-details label select,.check-label {font-size:14px;line-height:1.75}
.pdf-page-controls,.pdf-page-controls .text-button {font-size:14px;line-height:1.5}
.page-footer {font-size:12px;line-height:1.7;letter-spacing:.45px;flex-wrap:wrap;gap:10px}

@media (max-width:1100px) {
  .masthead-edition,.masthead-standard {display:none}
  .masthead {height:108px}
  .brand,.sidebar .brand>span:last-child {font-size:33px}
  .election-map-layout {grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr)}
  .ea-filter-bar {flex-wrap:wrap}
  .map-select-controls {width:100%;justify-content:flex-start}
  .map-select-controls label {font-size:13px}
  .map-select-controls select {font-size:14px}
  .ea-model-stats article>strong {font-size:35px}
  .ea-turnout-stats article>strong {font-size:29px}
}
@media (max-width:800px) {
  .newsroom-header nav {justify-content:flex-start;gap:22px;padding-left:20px;padding-right:20px}
  .newsroom-header nav .nav-item {font-size:16px;min-height:60px;padding:17px 2px 14px}
  .page-heading {flex-wrap:wrap;gap:19px}
  .page-heading h1 {font-size:34px}
  .election-map-layout {grid-template-columns:minmax(0,1fr)}
  .map-results-heading h3 {font-size:29px}
  .map-no-results {display:block;text-align:left}
  .map-no-results p {margin-bottom:18px}
  .map-search {min-width:0;width:100%;max-width:460px}
  .region-results-section .section-title-row {gap:19px}
  .region-table-controls {flex-wrap:wrap}
  .ea-section-heading h2,#countyPartySection>.ea-section-heading h2,.region-results-section h2 {font-size:27px}
  .ea-pollster {font-size:23px}
  .ea-share-top>span {font-size:16px}
  .ea-share-top>strong {font-size:33px}
  .ea-model-stats article>strong {font-size:35px}
  .ea-turnout-stats article>strong {font-size:31px}
  .ea-model-stats article>.ea-no-estimate {font-size:21px}
  .ea-note,.ea-description,.ea-question {font-size:15px}
  .ea-inline-controls select,.ea-inline-controls input {font-size:15px}
  .ea-model-context {font-size:13px}
  .ea-intro h2 {font-size:30px}
  .form-pagination,.form-pagination button {font-size:14px}
}
@media (max-width:520px) {
  :root {--type-body:17px;--type-table:14.5px;--type-meta:12.5px}
  .masthead {height:103px;padding:0 16px}
  .brand,.sidebar .brand>span:last-child {font-size:27px;letter-spacing:-.85px;gap:10px}
  .brand small,.sidebar .brand small {font-size:12px;letter-spacing:2px;margin-top:8px}
  .newsroom-header nav {gap:22px;padding-left:16px;padding-right:16px;min-height:60px;justify-content:flex-start}
  .newsroom-header nav .nav-item {font-size:16px;min-height:60px;line-height:1.45;padding:17px 2px 14px}
  .topbar {padding:10px 16px;min-height:58px;gap:8px 12px}
  .breadcrumb,.topbar-right .save-state {font-size:12.5px}
  .page-heading h1 {font-size:32px;line-height:1.2;letter-spacing:-.85px}
  .page-heading .eyebrow,.eyebrow,.section-kicker,.ea-kicker,.ea-intro .ea-kicker {font-size:12px;line-height:1.6;letter-spacing:.8px}
  .page-heading p {font-size:16px;line-height:1.65;max-width:none}
  .heading-actions {flex-wrap:wrap;gap:12px}
  .heading-actions .button.primary {font-size:14px;min-height:44px;padding:10px 13px}
  .year-control>span {font-size:13px}
  .year-control select {font-size:16px;min-height:44px}
  .context-banner {font-size:13px;line-height:1.65;padding:12px;gap:8px}
  .context-banner>span {font-size:12px}
  .results-stat-strip {gap:10px}
  .results-stat-strip article>span {font-size:12px;letter-spacing:.6px;line-height:1.5;padding:11px 7px}
  .results-stat-strip article strong {font-size:clamp(26px,7.1vw,34px);letter-spacing:-.9px;margin:16px 5px 9px}
  .results-stat-strip small {font-size:12.5px;line-height:1.6;padding:0 9px 15px;min-height:0}
  h2,.section-title-row h2,.region-results-section h2,.panel h2,.progress-panel h2 {font-size:27px;line-height:1.3}
  .map-search {padding:11px 13px}
  .map-search input {font-size:16px}
  .map-layer-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:7px}
  .map-layer-tabs button {font-size:14.5px;line-height:1.5;padding:10px 9px;min-height:44px}
  .map-select-controls {display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
  .map-select-controls label {font-size:13px;gap:6px}
  .map-select-controls select {font-size:15px;min-height:44px;padding:10px;width:100%}
  .map-breadcrumbs button {font-size:14px;line-height:1.5}
  /* The SVG viewBox scales text down on phones; compensate in user units. */
  #mapLabels text {font-size:13px;stroke-width:1.6px}
  .map-north {font-size:13px}
  .map-legend {font-size:12.5px;line-height:1.65;gap:10px 15px;padding:14px 12px}
  .map-canvas-footer {font-size:12.5px;line-height:1.7;padding:12px;gap:8px}
  .map-tooltip {font-size:13px;min-width:240px;max-width:260px;padding:14px}
  .map-tooltip>strong {font-size:17px}
  .map-tooltip .tooltip-leader {font-size:13px}
  .map-tooltip small {font-size:12px}
  .map-results-heading h3 {font-size:29px}
  .map-results-heading p {font-size:13px;line-height:1.7}
  .map-no-results h3 {font-size:20px}
  .map-no-results p {font-size:15px;line-height:1.75}
  .map-no-results .button,.map-next-form .button {font-size:14px;min-height:44px}
  .map-candidate-line strong {font-size:16px;line-height:1.5}
  .map-candidate-line b {font-size:29px}
  .map-candidate-votes {font-size:14px;line-height:1.65}
  .map-candidate-votes>span {font-size:12px}
  .map-ballot-detail>div,.map-results-notes,.geography-method {font-size:13px;line-height:1.75}
  .region-table-controls input {font-size:15px;width:auto;min-width:150px;flex:1}
  .region-table-controls select {font-size:14px;min-height:43px}
  .region-results-table td,.ea-table td {font-size:14.5px;padding:15px 16px}
  .region-results-table th,.ea-table th {font-size:12px;padding:13px 16px}
  .region-results-table td:first-child button,.region-results-table td strong,.ea-table td strong {font-size:15px}
  .region-results-table td small,.ea-table td small,.ea-table th small {font-size:12.5px}
  .table-leading {font-size:14px}
  .ea-pollster {font-size:22px}
  .ea-poll-card h3 {font-size:18px}
  .ea-question,.ea-description,.ea-share-top>span {font-size:15px;line-height:1.65}
  .ea-share-top>strong {font-size:32px}
  .ea-tag,.ea-verified {font-size:12px}
  .ea-filter-bar label,.ea-scenario-select,.ea-party-year {font-size:13px}
  .ea-filter-bar select,.ea-inline-controls select,.ea-scenario-select select,.ea-party-year select {font-size:15px;min-height:44px}
  .ea-filter-bar {gap:14px}
  .ea-filter-bar label {flex:1 1 100%}
  .ea-poll-meta,.ea-card-source {font-size:12.5px;line-height:1.75}
  .ea-section-heading h2,#countyPartySection>.ea-section-heading h2,.ea-intro h2 {font-size:27px;line-height:1.3}
  .ea-assumption-grid>span {font-size:12.5px;line-height:1.7;padding:10px}
  .ea-assumption-grid b {font-size:19px;line-height:1.4}
  .ea-model-stats article>span {font-size:12px;line-height:1.65;letter-spacing:.2px}
  .ea-model-stats article>strong {font-size:32px;line-height:1.25}
  .ea-turnout-stats article>strong {font-size:27px;letter-spacing:-.75px}
  .ea-model-stats article>small {font-size:12.5px;line-height:1.75}
  .ea-model-stats article>.ea-no-estimate {font-size:20px;line-height:1.5}
  .ea-turnout-controls>label {font-size:15px}
  .ea-turnout-controls output {font-size:21px}
  .ea-turnout-controls small {font-size:12.5px;line-height:1.6}
  .form-grid,.form-grid.three {grid-template-columns:minmax(0,1fr)}
  .candidate-edit-row {grid-template-columns:minmax(0,1fr) 95px 28px}
  .dialog-heading h2 {font-size:27px}
  .review-actions {align-items:flex-start;flex-wrap:wrap}
  .review-actions>div {flex-wrap:wrap}
  .source-links-grid h3 {font-size:18px}
  .source-links-grid p,.source-links-grid a {font-size:14px;line-height:1.75}
  .page-footer {font-size:12px;line-height:1.7}
}

/* Election editions frame the current workspace and separate historical evidence. */
.newsroom-header .election-year-nav{display:flex;justify-content:center;gap:38px;padding:0 22px;min-height:58px;height:auto;background:#f8f5fc;border-top:1px solid #eee7f4;border-bottom:1px solid #e4daed;overflow-x:auto}
.election-year-tab{flex:0 0 auto;border:0;border-bottom:3px solid transparent;background:transparent;padding:14px 9px;font:inherit;font-size:18px;font-weight:750;line-height:1.5;color:#816991;cursor:pointer;white-space:nowrap}
.election-year-tab.active{color:#644179;border-bottom-color:#8057a2}.election-year-tab:focus-visible{outline:3px solid #a98cc0;outline-offset:-4px}
.newsroom-header .election-section-nav{min-height:57px;gap:24px}.newsroom-header .election-section-nav .nav-item{min-height:57px;font-size:15px;padding-top:15px;padding-bottom:13px}
body[data-view=history] .election-section-nav,body[data-view=history] .heading-actions,body[data-view=history] .context-banner{display:none}.heading-actions .year-control{display:none}
@media(max-width:700px){.newsroom-header .election-year-nav{justify-content:flex-start;gap:12px;padding:0 12px;min-height:53px}.election-year-tab{font-size:15.5px;padding:12px 2px}.newsroom-header .election-section-nav{justify-content:flex-start;gap:22px;padding:0 15px}.newsroom-header .election-section-nav .nav-item{font-size:14px;min-height:54px}}

.registration-source-update{background:#f1f6f5;border:1px solid #d0e0dc;border-left:4px solid #538d82;border-radius:7px;color:#42665f;padding:17px 20px;font-size:15px;line-height:1.7;margin:0 0 20px}.registration-source-update strong{color:#244e44}.registration-source-update a{color:#285f56;text-decoration:underline}

.map-tooltip .tooltip-candidates{display:block;border-top:1px solid #e4ddea;padding-top:8px;margin-top:10px}.tooltip-candidates>div{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin:8px 0;font-size:12px}.tooltip-candidates span{display:flex;align-items:center;gap:5px}.tooltip-candidates i{width:7px;height:7px;flex:0 0 7px;border-radius:2px}.tooltip-candidates b{text-align:right}.tooltip-candidates small{font-size:11px;display:block;margin-top:1px;white-space:nowrap}.map-tooltip:has(.tooltip-candidates){width:320px;min-width:0;max-width:calc(100% - 16px)}
