/* October 31 visual refresh. Presentation only; preserve data, DOM order and controls. */
@media screen {
 :root{--review-border:#ccd6df;--review-radius:5px}
 .nav-shell{min-height:72px}
 .election-clock .clock-inner{padding-block:8px;gap:16px}
 .election-clock .countdown{gap:16px}
 .election-clock .countdown strong{font-size:24px}
 .election-clock .countdown span{margin-top:1px;font-size:12px}
 .clock-inner p{margin-top:1px}
 .final-days{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 24px;margin-block:16px;padding:16px 22px;border-radius:var(--review-radius);border-top-width:3px}
 .final-days>div .eyebrow{font-size:11px;margin:0 0 3px;letter-spacing:.1em}
 .final-days h2{font-size:22px;line-height:1.25;margin:0 0 5px}
 .final-days p{margin:5px 0;font-size:15px}
 .final-days nav{align-self:center;gap:8px;margin:0}
 .final-days nav a{display:flex;align-items:center;justify-content:center;padding:9px 12px;font-size:14px;font-weight:650;border-radius:3px}
 .final-days details{grid-column:1/-1;min-width:0;font-size:14px}
 .final-days summary{padding:6px 0;min-height:36px}
 .rh-inner{padding-block:16px 24px}
 .rh-masthead{padding-bottom:12px;gap:20px}
 .rh-masthead h1{font-size:24px}
 .rh-heading{padding:17px 0 14px;gap:24px}
 .rh-heading h2{font-size:clamp(29px,3vw,38px)}
 .rh-kicker{margin-bottom:7px}
 .rh-chart-panel{border:1px solid #3d5469;border-radius:5px;padding:14px;background:#10283d}
 .rh-chart-meta,.rh-chart-note,.rh-help{font-size:13px;line-height:1.55}
 .rh-axis{font-size:12px;fill:#cfdae4}
 .rh-readout p,.rh-readout a{font-size:13px;line-height:1.55}
 .rh-readout-top{font-size:11px}
 .rh-readout{padding-bottom:14px}
 .rh-readouts{padding-left:22px}
 .summary-strip .source-note,.summary-strip small{color:#c9d7e5}
 .summary-strip a{color:#f0dfb5}
 .page-heading{padding-block:30px 22px}
 .page-heading h1{font-size:clamp(34px,4vw,46px);line-height:1.12;margin-bottom:12px}
 .congress-intro{gap:36px;padding-block:30px 26px}
 .congress-intro h1{font-size:clamp(36px,4vw,48px);line-height:1.1;margin-bottom:14px}
 .federal-ballot-note{padding:22px 24px;border-radius:var(--review-radius);border-top-width:3px}
 .federal-ballot-note h2{font-size:25px;margin-bottom:12px}
 .federal-ballot-note p{margin-bottom:10px}
 .gh-inner{padding-block:26px 24px;gap:34px}
 .gh-copy h1{font-size:clamp(36px,4vw,48px);margin-bottom:14px}
 .gh-kicker,.ph-kicker,.sh-kicker{margin-bottom:12px}
 .gh-intro{margin-bottom:18px}
 .gh-photo{height:160px}
 .gh-ticket-copy{padding:14px 16px}
 .gh-ticket h2{font-size:25px}
 .gh-ticket-note{font-size:12px}
 .sh-inner{padding-block:25px 20px}
 .sh-heading{margin-bottom:22px}
 .sh-heading h1,.ph-copy h1{font-size:clamp(34px,4vw,45px)}
 .sh-office{border-radius:var(--review-radius);padding:15px 14px}
 .ph-inner{padding-block:24px;gap:38px}
 .ph-measures{padding-left:24px;gap:16px}
 .ph-measures dd{font-size:21px}
 .coverage-card,.news-index-item,.retained-news-card,.race-overview-card,.source-poll,.issue-position,.office-candidates article{border-radius:var(--review-radius);border-left-color:var(--review-border);border-right-color:var(--review-border);border-bottom-color:var(--review-border)}
 .coverage-card,.news-index-item,.retained-news-card{border-top:3px solid #b69b58}
 .coverage-card h3 a,.news-index-item h2 a,.retained-news-card h4 a{text-decoration:none}
 .coverage-card h3 a:hover,.news-index-item h2 a:hover,.retained-news-card h4 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
 .news-index-item h2{font-size:25px;line-height:1.25;margin-block:9px 12px}
 .news-index-item .update-date,.retained-news-card .update-date{font-size:13px;line-height:1.5}
 .issue-position{padding:22px 24px;border-top-color:var(--red)}
 .issue-position.democratic{border-top-color:var(--blue)}
 .issue-position-copy{color:#45576a}
 .issue-position h4 span{display:block;margin:3px 0 0;font-size:13px}
 .issue-position .stance-source{padding-top:12px;border-top:1px solid #e0e6eb;margin-top:16px}
 .source-poll{padding:22px;border-top-color:var(--navy)}
 .poll-filters{border-radius:var(--review-radius)}
 .chart-selection{border-radius:0 4px 4px 0}
 .poll-picker select,.poll-filters select,.poll-filters input{border-color:#8091a3}
 .vote-hub-jumps{gap:12px;margin-block:16px 24px}
 .voter-home-links>a{border-radius:var(--review-radius);padding:17px 20px}
 .vote-hub-jumps a strong{font-size:18px}
 .voter-home-links span{font-size:14px;line-height:1.5;margin-top:6px}
 .voter-now,.election-night{padding:24px;border-radius:var(--review-radius)}
 .voter-action-grid article,.my-selector,.my-privacy,.my-guide-limit,.my-print-action{border-radius:var(--review-radius)}
 .voter-tools-heading>p:last-child{font-size:17px;margin-bottom:20px}
 .my-races-heading{padding-top:30px;padding-bottom:20px}
 .my-races-heading h1{font-size:clamp(34px,4vw,46px)}
 .my-selector{padding:24px;box-shadow:none}
 .my-selector-intro{gap:24px}
 .my-selector h2,.my-results h2,.my-next h2{font-size:26px}
 .leg-search-box,.leg-map-card,.leg-summary,.leg-detail,.challenge-entry-bar{border-radius:var(--review-radius)}
 .leg-map-caption{line-height:1.6}
 .leg-legend{gap:10px 18px}
 .leg-search-box{padding:18px}
 .challenge-tabs button{border-radius:4px}
 .contest-dialog{border-radius:var(--review-radius)}
 .contest-dialog input{border-color:#8292a3}
 .article-copy{line-height:1.7}
 /* Dual-tone focus stays visible on both paper and navy, without suppressing existing states. */
 a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b17b1e;outline-offset:3px;box-shadow:0 0 0 2px #fff}
 @media(max-width:1000px){
  .final-days{grid-template-columns:1fr;gap:8px}
  .final-days nav{justify-self:start}
  .rh-readouts{padding-left:0}
 }
 @media(max-width:700px){
  .nav-shell{min-height:68px}
  .election-clock .clock-inner{padding-block:8px}
  .final-days{margin-block:12px;padding:16px;gap:5px}
  .final-days nav{display:flex;width:100%;gap:8px}
  .final-days nav a{flex:1 1 130px;font-size:14px;padding:9px 10px}
  .final-days summary{line-height:1.45;padding-block:7px}
  .rh-masthead{gap:14px;padding-bottom:12px}
  .rh-masthead h1{font-size:22px}
  .rh-heading{padding-block:16px 13px}
  .rh-heading h2{font-size:30px}
  .rh-chart-panel{padding:10px 7px}
  .rh-readouts{padding-left:0}
  .rh-chart-meta{flex-wrap:wrap;gap:4px 10px}
  .rh-chart-meta>span{max-width:none}
  .page-heading{padding-block:24px 18px}
  .congress-intro{padding-block:25px;gap:20px}
  .congress-intro h1{font-size:36px}
  .federal-ballot-note{padding:20px}
  .gh-inner{padding-block:24px;gap:23px}
  .gh-copy h1{font-size:36px}
  .gh-photo{height:145px}
  .gh-ticket-copy{padding:12px 10px}
  .gh-ticket h2{font-size:23px}
  .sh-heading h1,.ph-copy h1{font-size:34px}
  .ph-inner{gap:23px;padding-block:24px}
  .ph-measures{padding-left:0;gap:15px}
  .ph-navigation>.shell{row-gap:6px;padding-block:8px}
  .ph-navigation a{padding-block:7px;line-height:1.45}
  .vote-hub-jumps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .vote-hub-jumps>a{padding:14px;min-width:0}
  .vote-hub-jumps a strong{font-size:17px;line-height:1.3}
  .vote-hub-jumps span{font-size:14px;line-height:1.45}
  .voter-now,.election-night,.my-selector{padding:20px}
  .issue-position{padding:19px 20px}
  .news-index-item{padding:20px}
  .news-index-item h2{font-size:24px}
  .my-races-heading{padding-top:24px}
  .my-races-heading h1{font-size:35px}
  .source-poll{padding:20px}
 }
 @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rh-ready .rh-chart-panel,.rh-ready .rh-readouts{animation:none}}
}
