:root{--paper:#faf8f1;--paper-ink:#202b30;--paper-accent:#8a3a25}
.ap-site-nav{color:var(--paper-ink);background:repeating-linear-gradient(2deg,transparent 0 6px,#9b7b4006 7px,transparent 8px 17px),repeating-linear-gradient(91deg,transparent 0 13px,#b4976105 14px,transparent 15px 37px),var(--paper);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem 1.5rem;padding:1rem max(1rem,calc((100vw - 1160px)/2));border-bottom:1px solid #cabea8}.ap-site-nav a{color:var(--paper-accent)}.ap-site-nav .ap-brand{font-weight:800;color:var(--paper-ink);text-decoration:none}.ap-site-nav nav{display:flex;gap:1rem;flex-wrap:wrap}.hero h1{font-size:clamp(1.9rem,5.5vw,4.3rem);letter-spacing:.025em}.service-record{font-size:9px}.civic-coverage,.civic-privacy,.county-fallback{padding:1.2rem;border:1px solid var(--line);margin:1rem 0;background:var(--panel)}.coverage-grid{display:grid;grid-template-columns:minmax(190px,1fr) 2fr;gap:1.2rem;align-items:start}.coverage-grid p{margin:.4rem 0}.civic-label{display:block;font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:.5rem 0}.coverage-pending{font-size:.85rem;color:var(--muted)}.civic-coverage strong{color:var(--amber)}.privacy-actions,.shortlist-actions,.filter-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:.8rem 0}.privacy-actions button,.shortlist-actions button{white-space:normal}.privacy-status{font-size:.85rem;color:var(--cyan)}.privacy-limit,.evidence-limit{color:var(--muted);font-size:.85rem;line-height:1.55}.filter-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0}.evidence-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}.evidence-groups fieldset{border:1px solid var(--line);min-width:0;padding:1rem}.evidence-groups legend{padding:0 .4rem;color:var(--cyan)}.evidence-option,.shortlist-choice{display:flex;align-items:flex-start;gap:.65rem;font-size:.9rem;margin:.7rem 0}.evidence-option input,.shortlist-choice input{width:20px;min-height:20px;height:20px;flex:0 0 20px;margin:2px 0 0;accent-color:var(--cyan)}.active-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:.9rem 0}.filter-chip{border:1px solid var(--cyan);font-size:.8rem;padding:.45rem .7rem}.candidate-race{margin:2rem 0}.race-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.candidate-item{padding:1rem;margin:1rem 0}.candidate-item h4{font-size:1.15rem;margin:.25rem 0}.candidate-brief{line-height:1.6}.candidate-item>.shortlist-choice{padding-top:.6rem;border-top:1px solid var(--line)}.candidate-record{margin:.8rem 0}.record-kind{font:10px var(--mono);text-transform:uppercase;color:var(--cyan);letter-spacing:.04em}.criminal-record{border-left:3px solid var(--amber);padding:.7rem 1rem;background:#b58b1710}.case-outcome{font-weight:700}.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:1rem}.compare-column{padding:1rem;border:1px solid var(--line);min-width:0}.compare-column h3{font-size:1.2rem}.compare-column p{overflow-wrap:anywhere}.comparison-boundary{border-left:3px solid var(--cyan);padding:.5rem .8rem}.civic-dialog{width:min(1120px,calc(100vw - 24px));max-height:88svh;overflow:auto;border:1px solid var(--cyan);background:var(--bg);color:var(--ink);padding:1.2rem}.civic-dialog::backdrop{background:#000a}.dialog-bar{display:flex;align-items:start;justify-content:space-between;gap:1rem}.dialog-bar h2{margin:.2rem 0 1rem}.dialog-controls{display:flex;gap:.7rem;flex-wrap:wrap;align-items:end}.dialog-controls label{flex:1;min-width:180px}.dialog-controls select{margin:.4rem 0}.feedback-text{width:100%;min-height:150px;padding:.8rem;color:var(--ink);background:var(--panel);border:1px solid var(--line)}.shortlist-count{font:11px var(--mono);color:var(--cyan)}.print-preview{margin:1rem 0}.print-sheet{background:white;color:#152027;padding:1.5rem;margin:1rem 0}.print-sheet a{color:#183a4a}.print-sheet p{font-size:14px}.print-race-heading{border-top:2px solid #33434a;padding-top:.8rem}.print-candidate{border-top:1px solid #a5afb2;margin:1rem 0;padding:.8rem 0}.print-candidate h3{margin:.25rem 0}.print-only-new{display:none}.civic-dialog a{overflow-wrap:anywhere}.county-fallback ul{padding-left:1.2rem}.county-fallback li{margin:.7rem 0}.civic-guide-footer{padding:2rem 0 3rem;border-top:1px solid var(--line);font-size:.85rem}.civic-guide-footer p{max-width:85ch}.privacy-heading{font:12px var(--mono);letter-spacing:.06em;color:var(--cyan)}
@media(max-width:650px){.coverage-grid,.filter-panel{grid-template-columns:1fr}.hero{gap:1.4rem}.civic-dialog{padding:1rem}.race-header{align-items:start}.ap-site-nav{font-size:14px}.ap-site-nav nav{gap:.7rem}.print-sheet{padding:1rem}.shortlist-actions button{flex:1 1 140px}}
@media print{html,body{background:white!important;color:#111!important;font:11pt/1.45 Georgia,serif!important}body>*{display:none!important}body>#civic-print-output{display:block!important}#civic-print-output *{color:#111!important;background:transparent!important;box-shadow:none!important;text-shadow:none!important}#civic-print-output .print-sheet{padding:0;margin:0}#civic-print-output .print-candidate{break-inside:auto}#civic-print-output h1,#civic-print-output h2,#civic-print-output h3{break-after:avoid;line-height:1.2;letter-spacing:normal;font-family:Georgia,serif}#civic-print-output .print-race-heading{break-after:avoid}#civic-print-output .candidate-content{display:block!important}#civic-print-output details>*{display:block!important}#civic-print-output summary{display:block!important;font-weight:700}#civic-print-output a[href^="http"]::after{content:" [" attr(href) "]";font-size:8pt;overflow-wrap:anywhere}#civic-print-output .no-print,#civic-print-output button,#civic-print-output input,#civic-print-output .compare-choice{display:none!important}#civic-print-output a{overflow-wrap:anywhere}@page{size:A4;margin:14mm}}

.civic-skip{position:absolute;left:1rem;top:-8rem;z-index:10000;background:#fff;color:#202b30;padding:.8rem}.civic-skip:focus{top:1rem}

@media print{#civic-print-output .micro,#civic-print-output .record-kind{font:9pt/1.4 Georgia,serif!important;letter-spacing:normal!important;text-transform:none!important}#civic-print-output .print-format-short .print-candidate{break-inside:avoid-page}#civic-print-output .print-closing{break-before:avoid;orphans:3;widows:3}#civic-print-output .source-ref{font-size:9pt!important}}

.countdown-city{padding-bottom:14px;border-bottom:1px solid var(--line)}.countdown-city .civic-label{margin:0 0 9px}.countdown-city select{width:100%;min-height:44px}.countdown-city #city-status:empty{display:none}.countdown-city #city-status{font-size:.82rem;margin:.5rem 0 0}.coverage-body p{margin:.6rem 0}

#county-help{scroll-margin-top:calc(var(--controls-height,120px) + 16px)}
/* Quick-read layer: policy notes remain visible; records open on demand. */
.candidate-item .candidate-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.candidate-item .candidate-name{font-size:1.25rem;margin:0}.candidate-item .candidate-meta{margin:0;font-size:.85rem}.candidate-brief{font-size:.95rem;line-height:1.5}.candidate-brief p{margin:.65rem 0}.brief-basis{color:var(--muted);font-size:.8em}.candidate-item>.candidate-card{margin-top:.8rem;border-top:1px solid var(--line);padding-top:.6rem}.candidate-item>.candidate-card>summary{font-size:.86rem;color:var(--cyan);min-height:32px}.candidate-filter-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin:.65rem 0}.candidate-filter-tag{font-size:.78rem;border:1px solid var(--cyan);padding:.25rem .45rem;line-height:1.4}.filter-emoji{display:inline-block;margin-right:.15em}.candidate-item.evidence-marked{border-color:var(--cyan);box-shadow:inset 4px 0 var(--cyan);background:var(--cyan-dim)}.candidate-item.evidence-crossed .candidate-name,.candidate-item.evidence-crossed .candidate-brief{ text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:var(--amber)}.selected-mark-label{font-size:.8rem;color:var(--amber);margin:.6rem 0}.filter-mode{padding:.8rem 0}.filter-mode label{font-size:.9rem;display:block;margin-bottom:.4rem}.filter-mode p{font-size:.85rem;line-height:1.4;color:var(--muted);margin:.4rem 0}.filter-mode select{max-width:100%;width:100%}.evidence-option{min-height:40px;align-items:center}.print-party{font-size:.8em;font-weight:400;display:block;margin-top:.2em}.print-source-label{font-size:.8rem}.print-case-note{border-left:2px solid #555;padding-left:.5rem}.print-eyebrow,.print-intro,.print-limits,.print-closing{font-size:.8rem}.print-format-short .print-race-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.4rem}.print-format-short .print-candidate{break-inside:avoid-page;margin:.4rem 0;padding:.6rem 0}.print-format-short .print-candidate p{margin:.4rem 0}.print-format-short .print-race-heading{font-size:1.1rem;padding-top:.5rem;margin:.7rem 0 .2rem}.print-format-short .candidate-filter-tags{margin:.3rem 0}.print-format-short .candidate-filter-tag{border-color:#666;font-size:.75rem}.print-format-short .print-closing a::after{content:none!important}
@media(max-width:650px){.print-preview .print-race-candidates{grid-template-columns:1fr}.candidate-item{padding:.9rem}.candidate-item .candidate-heading{align-items:start}.candidate-item .candidate-meta{width:100%}}
@media print{@page{size:letter;margin:12mm}#civic-print-output .print-format-short{font:10.5pt/1.3 Georgia,serif!important}#civic-print-output .print-format-short h1{font-size:17pt!important;margin:2mm 0!important}#civic-print-output .print-format-short h2{font-size:12pt!important;margin:3mm 0 1mm!important;padding-top:2mm!important}#civic-print-output .print-format-short h3{font-size:11.5pt!important;margin:0 0 1.5mm!important}#civic-print-output .print-format-short p{font:10.5pt/1.3 Georgia,serif!important;margin:1.5mm 0!important}#civic-print-output .print-format-short .brief-basis,#civic-print-output .print-format-short .print-source-label,#civic-print-output .print-format-short .print-party,#civic-print-output .print-format-short .candidate-filter-tag{font:9.5pt/1.3 Georgia,serif!important}#civic-print-output .print-format-short .print-eyebrow,#civic-print-output .print-format-short .print-intro,#civic-print-output .print-format-short .print-limits,#civic-print-output .print-format-short .print-closing{font:9pt/1.3 Georgia,serif!important}#civic-print-output .print-format-short .print-race-candidates{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 6mm!important}#civic-print-output .print-format-short .print-candidate{margin:0!important;padding:2mm 0!important;break-inside:avoid-page!important}#civic-print-output .filter-emoji{display:none!important}}
/* Override the earlier edition's checkbox side column and strike-through rule. */
.candidate-item{display:block;border:1px solid var(--party-color)}.candidate-item[hidden]{display:none!important}.candidate-item .candidate-heading{flex-direction:row}.candidate-item.evidence-marked .candidate-name{text-decoration:none;color:var(--ink)}.candidate-item .candidate-brief{width:100%;min-width:0}.candidate-item .candidate-brief p{overflow-wrap:break-word}

.filter-mode #filter-mode-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Issue direction is about a named policy, separately from evidence kind. */
.position-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.position-controls[hidden]{display:none}.position-controls>p{grid-column:1/-1}.candidate-positions{font-size:.9rem;line-height:1.5;border-left:2px solid var(--cyan);padding-left:.7rem;margin:.7rem 0}.candidate-positions p{margin:.5rem 0}.candidate-positions a{overflow-wrap:anywhere}.candidate-positions .position-caveat,.position-limit{font-size:.82rem;color:var(--muted)}.additional-positions summary,.position-source summary{font-size:.85rem;min-height:32px;color:var(--cyan)}.position-direction{margin:.5rem 0}.filter-mode #filter-mode-status{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal}
@media(max-width:650px){.filter-panel,.position-controls{grid-template-columns:1fr}}
