/* Shared readability and navigation; preserve the established Iowa Decides palette. */
.market-provider-links strong{color:#eef4fb}
.kalshi-snapshot-quotes span{color:var(--navy)}
.market-tick small,.market-ruler-labels{font-size:14px}
.site-header nav{gap:19px;align-items:center}
.site-header nav a{font-size:14px;line-height:1.35;min-height:44px;display:flex;align-items:center}
.footer-inner{align-items:start}.footer-brand{max-width:740px}
.footer-guide-links{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:16px}
.footer-guide-links a{min-height:44px;display:inline-flex;align-items:center;font-size:14px}
.source-note,.image-credit,.review-label,td small,tbody th small{font-size:14px}
.stakes-number{color:#466078}
input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}
.poll-filters input,.poll-filters select,.poll-picker select{min-height:44px}
.candidate-links a,.resource-links a,.debate-links a,.leg-source-links a{display:inline-flex;align-items:center;min-height:44px}
.not-found{max-width:820px;padding-block:64px 80px;min-height:55vh}.not-found h1{font-size:clamp(36px,6vw,62px)}.not-found .actions{margin-top:28px}
/* Search is first in document and keyboard order. Zoom controls occupy their own row. */
.leg-map-column>.leg-search-box{margin-bottom:18px}
.leg-search-box input{min-height:48px;font-size:16px}
.leg-map-stage{display:flex;flex-direction:column;min-height:0;aspect-ratio:auto}
.leg-map{aspect-ratio:1000 / 680;height:auto;display:block;flex-shrink:0}
.leg-zoom{position:static;order:-1;max-width:none;padding:10px 14px;background:#eef2f6;border-bottom:1px solid var(--line);gap:8px}
.leg-zoom button{min-height:44px;min-width:44px;font-size:15px}
.leg-view-switch button,.leg-text-button,.challenge-clear-all,.challenge-next-pick{min-height:44px;font-size:14px!important}
.leg-seat{min-height:44px;aspect-ratio:auto}.leg-seat-grid{grid-auto-rows:minmax(44px,auto)}
.leg-seat-grid:empty{min-height:538px}
.leg-map-card{position:relative}
#leg-simulator[aria-busy=true] .leg-map-card:after{content:'Loading districts…';position:absolute;top:140px;left:20px;right:20px;text-align:center;padding:18px;background:#f7f9fb;color:var(--navy);font-size:16px;border:1px solid var(--line);border-radius:4px}
.leg-detail:empty{min-height:300px}
.leg-sidebar .leg-search-box{margin:0}
@media(max-width:1150px){.header-date{display:none}}
@media(max-width:800px){
 .leg-map-card[data-district-view=auto] .leg-map-stage{display:none}
 .leg-map-card[data-district-view=auto] .leg-seat-grid[hidden]{display:grid!important}
 .leg-sidebar{display:flex;flex-direction:column;gap:16px}.leg-sidebar>*{width:100%}
 .leg-map-toolbar{flex-wrap:wrap;gap:12px}.leg-map-toolbar h3{margin:0}.leg-view-switch{display:flex}
}
@media(max-width:700px){
 .site-header nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 10px;width:100%;overflow:visible}
 .site-header nav a,.site-header nav a:nth-last-child(-n+2){grid-column:auto;min-height:44px;padding:8px 2px;justify-content:center;text-align:center;white-space:normal;font-size:14px}
 .election-clock .clock-inner{flex-wrap:wrap;gap:8px 18px;padding-block:12px}
 .election-clock .clock-inner>div:first-child strong,.election-clock .clock-inner p{font-size:14px;max-width:none}
 .election-clock .countdown{gap:14px;flex:1;justify-content:space-between;max-width:310px}
 .election-clock .countdown span{font-size:14px;letter-spacing:0}.election-clock .countdown strong{font-size:25px}
 .home-contest{flex-wrap:wrap}.home-contest p{font-size:14px}.home-contest .challenge-cta{max-width:none;min-height:48px}
 .issue-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.issue-filters button{width:100%;margin:0;line-height:1.4}
 .footer-guide-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
 .footer-guide-links a{line-height:1.4}
 /* Keep a single accessible table, with mobile labels alongside the existing data. */
 .poll-table-wrap{border:0;overflow:visible}
 .poll-table-wrap table{display:block;min-width:0;background:transparent;font-size:16px}
 .poll-table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .poll-table-wrap tbody{display:grid;gap:18px}
 .poll-table-wrap tbody tr{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
 .poll-table-wrap tbody th{grid-column:1/-1;min-width:0;padding:18px;background:#eef2f5;font-size:18px}
 .poll-table-wrap td{min-width:0;padding:14px 18px;border:0;font-size:16px;overflow-wrap:anywhere}
 .poll-table-wrap td:before{content:attr(data-label);display:block;font-size:14px;font-weight:600;color:var(--muted);margin-bottom:5px}
 .poll-table-wrap td.value-d,.poll-table-wrap td.value-r{font-size:28px;border-block:1px solid var(--line);background:#fbfcfe}
 .poll-table-wrap td:nth-child(6),.poll-table-wrap td.source-cell{grid-column:1/-1;max-width:none;min-width:0}
 .poll-table-wrap td.source-cell{padding-top:0}.poll-table-wrap td.source-cell a{display:inline-flex;align-items:center;min-height:44px}
 .poll-table-wrap td small,.poll-table-wrap th small{font-size:14px;line-height:1.6}
 .challenge-page .challenge-entry-bar{gap:12px;align-items:center;flex-wrap:wrap}
 .challenge-entry-bar .challenge-progress{flex:1;min-width:150px}
 .challenge-entry-bar .challenge-progress strong,.challenge-entry-action small{font-size:14px}
 .challenge-page .contest-entry-button{font-size:16px;min-height:48px;gap:10px}
 .challenge-page .leg-sidebar{top:auto}.challenge-page .leg-detail,.challenge-page .challenge-race{scroll-margin-top:210px}
 .challenge-page .contest-status,.challenge-page .contest-attached-summary,.challenge-page .contest-final-note,.challenge-page .contest-all-picks summary,.challenge-page .contest-privacy,.contest-submit-agreement{font-size:14px}
 .challenge-page .challenge-tabs button{font-size:14px;line-height:1.4}
}
@media(max-width:520px){.leg-seat-grid:empty{min-height:1064px}.leg-seat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.leg-zoom{padding:10px}.leg-map-caption,.leg-legend,.leg-chamber small{font-size:14px}.challenge-page .challenge-entry-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:6px 12px;padding:10px}.challenge-entry-bar .challenge-progress{display:contents}.challenge-progress-heading{grid-column:1/-1;gap:8px;justify-content:space-between}.challenge-entry-bar .challenge-progress progress{grid-column:1/-1;width:100%;height:5px}.challenge-entry-bar .challenge-next-pick{grid-column:1;grid-row:3}.challenge-entry-action{grid-column:2;grid-row:3}.challenge-entry-action .contest-entry-button{width:100%;white-space:normal}.challenge-entry-action small{font-size:14px;text-align:center}.challenge-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-tabs button{flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:82px!important;padding:10px}.challenge-tabs button span{margin:0}}
@media print{.leg-zoom{display:none}.poll-table-wrap table{display:table}.poll-table-wrap tbody{display:table-row-group}.poll-table-wrap tbody tr{display:table-row}.poll-table-wrap td:before{display:none}}

/* October 3: readable mobile voting and poll summaries. */
.voting-guide{display:grid;gap:24px}.voting-guide .panel{padding:24px}.vote-dates{display:grid;gap:0;margin:0}.vote-dates>div{display:grid;grid-template-columns:minmax(150px,1fr) 2fr;gap:20px;padding:16px 0;border-bottom:1px solid #dce1e6}.vote-dates dt{font-weight:700}.vote-dates dd{margin:0}.source-poll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.source-poll{border:1px solid #dce1e6;border-top:4px solid #10243e;padding:22px;background:#fff;min-width:0}.source-poll h3{margin:0 0 12px}.source-poll p{margin:10px 0}.source-poll .source-note{font-size:14px;line-height:1.6}.leg-map-toolbar h2{font:inherit;font-weight:700;margin:0}.leg-seat[data-fixed=true]{border-style:dashed;border-width:2px}.leg-legend{font-size:14px}.congress-debates{margin:28px auto}.congress-debates li{margin:16px 0}.voting-guide details{padding:16px 0;border-bottom:1px solid #dce1e6}.voting-guide summary{font-weight:700;cursor:pointer;min-height:24px}.voting-guide li{margin:8px 0}@media(max-width:650px){.source-poll-grid{grid-template-columns:1fr}.vote-dates>div{grid-template-columns:1fr;gap:6px}.voting-guide .panel{padding:18px}}

/* Polling clarity and accessible race filtering. */
#other-polls .source-poll .eyebrow{color:#29465f;font-weight:800}
.source-poll[hidden],.other-poll-controls[hidden]{display:none!important}
.other-poll-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:24px 0 12px}
.other-poll-controls label{font-weight:700}.other-poll-controls select{padding:10px 14px;border:1px solid #8496a8;border-radius:4px;background:#fff;color:#10243e;max-width:100%;min-height:44px}
.other-poll-controls p{width:100%;margin:0;color:#465769;font-size:14px}
.chart-selection{padding:12px 14px;background:#edf2f6;border-left:3px solid #29465f;color:#203b53;font-size:14px;font-weight:650}
.poll-plot-status{font-weight:750;color:#29465f}.chart-point[aria-pressed=true] .marker{stroke:#10243e;stroke-width:4}
@media(max-width:650px){.other-poll-controls{display:block}.other-poll-controls label{display:block;margin-bottom:6px}.other-poll-controls select{width:100%;margin-bottom:10px}.chart-selection{overflow-wrap:anywhere}}
/* Modest presentation refinements, October 7. */
a[href^="http"]::after{content:"";display:inline-block;width:.82em;height:.82em;margin-left:.28em;vertical-align:baseline;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M9 2h5v5M14 2 7 9M6 3H2v11h11v-4' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M9 2h5v5M14 2 7 9M6 3H2v11h11v-4' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.home-quick-links{display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:24px}.home-quick-links a{padding:8px 13px;border:1px solid #cbd6df;border-radius:4px;color:#203b53;text-decoration:none;font-size:14px;font-weight:650}.home-quick-links a:hover{background:#edf2f6}
.september-update{padding-top:20px;padding-bottom:35px}.september-update .section-heading{margin-bottom:18px;gap:30px}.featured-debate .debate-card{padding:18px 22px;gap:8px 28px}.featured-debate .debate-card p{margin-bottom:8px}.featured-debate .debate-links{gap:8px}.featured-debate .calendar-link{padding:7px 12px;min-height:36px}.debate-schedule{margin-top:14px}
.poll-verification{margin:9px 0;color:#465769;font-size:14px;line-height:1.55}.poll-verification summary{cursor:pointer;font-weight:650;padding:6px 0;color:#29465f}.poll-verification p{margin:8px 0}.poll-key-caveat{color:#465769;font-size:14px;line-height:1.55}.poll-key-caveat:empty{display:none}
.vote-quick-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}.vote-lookup{background:#10243e;color:white}
.leg-map-column>.leg-legend{margin:0 0 12px;padding:12px 14px;background:#f0f4f7;border-radius:4px}.leg-map-column>.leg-legend strong{flex-basis:100%;font-size:14px;color:#10243e}
@media(max-width:650px){.home-quick-links{gap:8px}.home-quick-links a{flex:1 1 40%;text-align:center}.featured-debate .debate-card{padding:16px;gap:6px}.september-update .section-heading{gap:12px}.vote-quick-links{display:grid;grid-template-columns:1fr}.vote-quick-links a{width:100%;text-align:center}}

/* Keep both candidates aligned within each existing issue area. */
.candidate-profiles .bio{min-height:0}.candidate-profiles .candidate-links{margin-top:20px}
.issue-comparisons{margin-top:24px}.issue-comparison-row{margin:0 0 24px}.issue-comparison-row[hidden]{display:none!important}.issue-comparison-row>h3{font-size:20px;line-height:1.3;margin:0 0 12px;color:#10243e}
.issue-position-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.issue-position{min-width:0;padding:22px 26px;border:1px solid #dce1e6;border-top:3px solid #ae443e;border-radius:4px;background:white}.issue-position.democratic{border-top-color:#28679e}.issue-position h4{font-size:16px;line-height:1.4;margin:0 0 12px;color:#10243e}.issue-position h4 span{font-size:13px;font-weight:500;color:#596879;margin-left:8px}.issue-position-copy{font-size:16px;line-height:1.6;color:#596879}.issue-position .stance-source{margin:12px 0 0}
@media(max-width:700px){.issue-position-grid{grid-template-columns:1fr;gap:10px}.issue-position{padding:18px 20px}.issue-comparison-row{margin-bottom:25px}.candidate-profiles{gap:14px}}

/* Clear, consistent hierarchy for Senate, House and statewide polling. */
.poll-release-heading{font-family:Arial,sans-serif;font-size:20px;line-height:1.3;margin:28px 0 16px;color:var(--navy)}
.poll-race-group{padding-top:30px;margin-top:36px;border-top:3px solid var(--navy);scroll-margin-top:90px}
.poll-race-heading .eyebrow{color:#465769;font-size:12px;letter-spacing:.09em;margin:0 0 8px}
.poll-race-heading h2{font-family:Georgia,serif;font-size:38px;line-height:1.15;font-weight:400;margin:0;color:var(--navy)}
.poll-race-group .source-poll-grid{margin-top:24px}
.poll-race-group[data-poll-group="senate"]{border-top-color:#bda369}
.poll-race-group[hidden]{display:none!important}
@media(max-width:650px){.poll-race-heading h2{font-size:30px}.poll-race-group{padding-top:24px;margin-top:28px}.poll-race-heading .eyebrow{line-height:1.6}.poll-release-heading{font-size:19px}}

.featured-article{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:26px 28px;margin-top:28px;margin-bottom:12px;background:#fff;border:1px solid #dce1e6;border-top:3px solid #c9a45e}
.featured-article .eyebrow{margin:0 0 10px;font-size:12px}.featured-article h2{font:400 28px/1.2 Georgia,serif;color:#10243e;margin:0;max-width:760px}.featured-article-meta{font-size:13px;color:#596879;margin:12px 0 0}.featured-article .button{flex-shrink:0;white-space:nowrap}
.senate-article-link{padding:16px 20px;border-left:3px solid #c9a45e;background:#f5f7f9;line-height:1.6}.senate-article-link a{color:#28679e}
@media(max-width:650px){.featured-article{display:block;padding:22px}.featured-article h2{font-size:25px}.featured-article .button{margin-top:20px;white-space:normal}.senate-article-link{padding:14px 16px}}

/* Eight shared destinations remain readable across the existing responsive navigation. */
@media(min-width:701px){.site-header nav{gap:14px;flex-wrap:wrap}.site-header nav a{font-size:13px}.nav-shell{gap:22px}}
@media(max-width:650px){.site-header nav a{white-space:normal;line-height:1.25;min-height:42px}.site-header nav{align-items:stretch}}

/* Keep the free Prediction Tool discoverable alongside the election guides. */
.site-header .brand{flex-shrink:0}.site-header nav{min-width:0}
.site-header nav .nav-prediction-tool{color:var(--gold);font-weight:750;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.site-header nav .nav-prediction-tool:hover{color:#fff}
@media(max-width:700px){.site-header nav .nav-prediction-tool{min-height:44px}}
