:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#172b3c;background:#f6f8fb;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:#174f98;text-underline-offset:4px}a:focus-visible,summary:focus-visible{outline:3px solid #b45c06;outline-offset:5px}.skip{position:absolute;left:12px;top:-80px}.skip:focus{top:12px;background:white;padding:10px}header{background:white;border-bottom:1px solid #dce3eb}.bar{max-width:1120px;margin:auto;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:1.6rem;font-weight:800;text-decoration:none;color:#142c47;letter-spacing:-1px}.brand span{color:#216aaf}nav{display:flex;gap:23px;flex-wrap:wrap}nav a{font-size:.9rem;text-decoration:none;color:#46576a}nav a[aria-current]{color:#143c70;font-weight:700;border-bottom:2px solid #216aaf}main{max-width:1120px;margin:auto;padding:42px 28px 64px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.8rem;font-weight:700;color:#42637e}h1{font-size:clamp(2.25rem,5vw,3.6rem);line-height:1.1;letter-spacing:-.04em;max-width:780px;margin:17px 0 22px}h2{font-size:1.5rem;line-height:1.3;letter-spacing:-.02em}h3{font-size:1.2rem;margin:12px 0}.intro{max-width:690px;font-size:1.125rem;color:#526173}.ballot{margin:32px 0 38px;display:grid;grid-template-columns:1.4fr 1fr;border:1px solid #ccd8e4;border-radius:12px;overflow:hidden;background:white}.start{background:#153c60;color:white;padding:28px 32px}.start h2{margin-top:0}.start p{color:#dbe7f3;max-width:470px}.button{display:inline-block;background:white;color:#153c60;text-decoration:none;font-weight:700;padding:12px 18px;border-radius:6px}.example{padding:28px 32px}.example p{color:#526173}.label{font-size:.8rem;padding:4px 9px;background:#eaf0f7;color:#3d566f;border-radius:4px}.section-title{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.muted{color:#596b7b;font-size:.9rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{display:block;background:white;border:1px solid #d8e1eb;border-radius:10px;padding:26px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.card:hover{border-color:#216aaf;box-shadow:0 5px 16px #143c7010}.number{font-size:.85rem;color:#216aaf;font-weight:700}.card p{color:#526173;margin-bottom:24px}.card .link{color:#174f98;font-weight:650;font-size:.9rem}.trust{border-top:1px solid #d8e1eb;margin-top:36px;padding-top:22px;display:flex;justify-content:space-between;gap:24px}.trust p{margin:0;max-width:700px;color:#526173}.notice{border-left:4px solid #b27321;background:#fff5e6;padding:20px 24px;margin:28px 0}.content{max-width:760px}.content details{background:white;border:1px solid #d8e1eb;padding:20px;margin:16px 0;border-radius:8px}summary{cursor:pointer;font-weight:650}footer{border-top:1px solid #dce3eb;padding:22px 28px;color:#596b7b;font-size:.85rem;text-align:center}@media(max-width:760px){.bar{align-items:flex-start;flex-direction:column;gap:12px}nav{gap:12px 18px}.ballot,.cards{grid-template-columns:1fr}main{padding:28px 20px 42px}.start,.example{padding:24px}.trust,.section-title{flex-direction:column;gap:10px}h1{font-size:2.6rem}}

.ballot-context{background:#eaf0f7;border-radius:8px;padding:20px 24px;margin:28px 0}.ballot-context p{margin:6px 0 0}.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.candidate{background:white;border:1px solid #d8e1eb;border-radius:10px;padding:26px}.candidate-head{display:flex;justify-content:space-between;gap:12px}.candidate h3{font-size:1.4rem}.position{min-height:78px}.candidate details{border-top:1px solid #d8e1eb;padding:15px 0}.candidate details:last-child{padding-bottom:0}.candidate summary{font-size:.95rem}.candidate a{overflow-wrap:anywhere}@media(max-width:760px){.comparison{grid-template-columns:1fr}.position{min-height:0}}

.topic{margin:18px 0;border:1px solid #ccd8e4;border-radius:10px;background:#fff}.topic>summary{padding:22px;font-size:1.2rem;color:#153c60;overflow-wrap:anywhere}.topic-index{margin:0 12px;color:#526173;font-size:.9rem}.topic-body{padding:0 20px 20px;background:#f6f8fb;border-radius:0 0 10px 10px}.topic-question{padding-top:20px;margin-top:0}.topic-method{border-bottom:1px solid #ccd8e4;padding:12px 0 20px}.topic-method p{max-width:780px}.topic .candidate{padding:22px}@media(max-width:760px){.topic>summary{padding:18px;font-size:1.05rem}.topic-body{padding:0 12px 12px}.topic-index{margin:0 6px}}

.guide-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate h4{margin:18px 0 5px;color:#153c60}.candidate h4+p{margin-top:0}@media(max-width:760px){.guide-cards{grid-template-columns:1fr}}

.back-link{display:inline-block;margin-bottom:24px;font-size:.9rem}.office-group{margin-top:42px;scroll-margin-top:24px}.jump-nav{padding:18px 0;border-bottom:1px solid #ccd8e4;gap:12px 22px}.jump-nav a{color:#174f98;text-decoration:underline}.source-list{padding-top:16px}.source-entry{padding:12px 0;border-bottom:1px solid #d8e1eb}.source-entry h3{font-size:1.05rem}.source-list a,.source-list .muted{overflow-wrap:anywhere}.source-list li{margin-bottom:18px}.candidate{min-width:0}.candidate .label{display:inline-block}.card .label{display:inline-block;font-size:.75rem}section[id],details[id]{scroll-margin-top:20px}@media print{header,.skip,.jump-nav{display:none}main{padding:0}.cards,.comparison{display:block}.candidate,.card{break-inside:avoid;margin-bottom:16px}body{background:white}}

/* Concise profiles and feedback */
.key-points{padding-left:20px}.key-points li{margin:0 0 16px}.research-note{border-bottom:1px solid #e0e6ed;padding:8px 0}.feedback-form{max-width:680px;background:white;border:1px solid #d8e1eb;border-radius:10px;padding:26px}.feedback-form label{display:block;font-weight:650;margin:16px 0 6px}.feedback-form input:not([type=hidden]),.feedback-form textarea{display:block;width:100%;font:inherit;border:1px solid #8396a8;border-radius:5px;padding:10px;background:#fff;color:#172b3c}.feedback-form textarea{resize:vertical}.submit-feedback{font:inherit;font-weight:700;background:#153c60;color:white;border:0;border-radius:6px;padding:12px 20px;cursor:pointer}.feedback-form :focus-visible{outline:3px solid #b45c06;outline-offset:3px}footer p{margin:0 0 10px}

/* Endorsement cheat sheet */
.endorsement-table{overflow-x:auto;background:white;border:1px solid #ccd8e4;border-radius:8px}.endorsement-table table{border-collapse:collapse;width:100%;min-width:580px}.endorsement-table th,.endorsement-table td{padding:16px;text-align:left;vertical-align:top;border-bottom:1px solid #d8e1eb}.endorsement-table thead{background:#eaf0f7}.endorsement-table th{width:34%}.endorsement-table tbody th{font-weight:600}.endorsement-table td{width:33%}@media print{.endorsement-table{overflow:visible}.endorsement-table table{min-width:0;font-size:11pt}.endorsement-table th,.endorsement-table td{padding:8px}}
/* Club tabs */
.club-tabs{margin:26px 0;gap:10px}.club-tabs a{border:1px solid #a7b9cc;border-radius:6px;padding:12px 18px}.club-tabs a[aria-current]{background:#153c60;color:white}.endorsement-table table{min-width:0}.endorsement-table th,.endorsement-table td{width:50%}@media(max-width:600px){.endorsement-table th,.endorsement-table td{padding:10px;font-size:.9rem}}/* Mobile polish */
.menu-toggle{display:none}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b45c06;outline-offset:3px}main a{overflow-wrap:anywhere}img{max-width:100%;height:auto}
@media(max-width:760px){
 .bar{padding:14px 18px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between}
 .mobile-ready .menu-toggle{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px;background:#fff;color:#153c60;border:1px solid #b6c7d7;border-radius:7px;font:inherit;font-weight:650}
 #site-nav{width:100%;display:grid;grid-template-columns:1fr;gap:4px}
 .mobile-ready:not(.menu-open) #site-nav{display:none}
 #site-nav a{padding:12px 14px;min-height:46px;border-radius:5px;font-size:1rem}
 #site-nav a[aria-current]{background:#eaf0f7;border:0;border-left:3px solid #216aaf}
 main{padding:26px 18px 38px}h1{font-size:clamp(2rem,8vw,2.6rem);line-height:1.15;margin:14px 0 18px}h2{font-size:1.35rem}.intro{font-size:1.05rem}
 .candidate,.card{padding:20px}.candidate h3{font-size:1.25rem}.comparison,.cards{gap:14px}.ballot-context,.notice{padding:18px;margin:22px 0}.start,.example{padding:22px}.ballot{margin:24px 0}
 summary{min-height:44px;padding-top:10px;padding-bottom:10px}.candidate details{padding-top:8px}.key-points li{margin-bottom:14px}
 .back-link{min-height:44px;padding:10px 0;margin-bottom:12px}.jump-nav{gap:6px 14px}.jump-nav a{padding:10px 0;min-height:44px}
 .club-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:22px 0}.club-tabs a{font-size:.95rem;text-align:center;padding:12px 8px;min-height:48px}
 .endorsement-table{overflow:visible}.endorsement-table table{table-layout:fixed}.endorsement-table th,.endorsement-table td{font-size:1rem;padding:14px 10px;overflow-wrap:anywhere}.endorsement-table th{width:56%}.endorsement-table td{width:44%}.endorsement-table th a{display:inline-block;padding:4px 0}
 .feedback-form{padding:18px}.feedback-form input:not([type=hidden]),.feedback-form textarea{font-size:16px;min-height:48px}.submit-feedback{width:100%;min-height:48px}footer{padding:22px 18px}footer a{display:inline-block;min-height:44px;padding:10px 18px;font-size:1rem}
}
@media print{.menu-toggle{display:none!important}}
/* Unified partisan cards */
.office-role{margin:24px 0;padding:20px 24px;background:#eef4f8;border-left:4px solid #153c60;border-radius:6px}.office-role h2{font-size:1.25rem;margin:0 0 10px}.office-role p:last-child{margin-bottom:0}.partisan-grid{align-items:start}.partisan-grid .candidate{min-width:0;height:auto;overflow:visible}.partisan-grid h3 a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}.verify-links{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0 20px}.verify-links a{display:inline-block;padding:8px 0}.verify-links small,.verify-links .campaign-gap{flex-basis:100%}.inline-sources{border-top:1px solid #d8e1eb;padding-top:12px}.inline-sources ul{padding-left:20px}.inline-sources li{margin:8px 0}.inline-sources a,.verify-links a{overflow-wrap:anywhere}.endorsement-route{display:block}.endorsement-route p{margin:12px 0}.endorsement-route h2{font-size:1.2rem}.review-date{font-size:.9rem}@media(max-width:600px){.office-role{padding:16px}.partisan-grid{grid-template-columns:1fr}}
