.election-control{display:grid;grid-template-columns:minmax(220px,300px) 1fr;align-items:end;gap:1.5rem;margin-top:1.75rem;padding:1.35rem 0;border-top:1px solid #ccd9da;border-bottom:1px solid #ccd9da}
.election-control label{color:#082d42;font-size:.78rem;font-weight:800}
.election-control select{display:block;width:100%;margin-top:.45rem}
.election-control p{margin:0;color:#526b75;line-height:1.6}
.election-overview{margin-top:2rem}
.election-overview-card{display:grid;grid-template-columns:minmax(250px,.7fr) 1.3fr;gap:2rem;padding:1.5rem;border-radius:18px;background:#082d42;color:#fff}
.election-overview-copy h2{margin:.4rem 0;font-size:clamp(1.65rem,3vw,2.35rem)}
.election-overview-copy>p{margin:.4rem 0;color:#c4d7df;line-height:1.55}
.election-overview-copy .share-actions{grid-template-columns:1fr 1fr;margin-top:1.25rem}
.election-overview-copy .share-actions a{background:#fff;color:#1456a8}
.election-overview-copy .share-actions a:first-child{background:#f4c430;color:#26323a}
.election-ballot-order{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;counter-reset:election-choice}
.election-ballot-order li{counter-increment:election-choice;display:grid;grid-template-columns:1.75rem 1fr;align-items:center;gap:.55rem;min-height:58px;padding:.6rem;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.06)}
.election-ballot-order li:before{content:counter(election-choice);display:grid;width:1.75rem;height:1.75rem;place-items:center;border-radius:50%;background:#21b6b0;color:#062f39;font-size:.72rem;font-weight:800}
.election-ballot-order span{font-size:.75rem;font-weight:800;line-height:1.25}
.election-ballot-order small{display:block;color:#a9c4cf;font-size:.63rem;font-weight:500}
.election-overview-empty{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.25rem 0;border-bottom:1px solid #ccd9da}
.election-overview-empty h2{margin:0;font-size:1.25rem}.election-overview-empty p{margin:.3rem 0 0;color:#60757e}
.election-overview-empty a{flex:0 0 auto;color:#1456a8;font-weight:800}
.election-type-switch{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:2.5rem;padding:.85rem 0;border-bottom:1px solid #ccd9da}
.election-type-switch>span{color:#526a74;font-size:.78rem;font-weight:800}
.election-type-switch>div{display:flex;gap:.4rem}
.election-type-switch button{min-height:40px;border:1px solid #c4d3d5;border-radius:999px;padding:.55rem .85rem;background:#fff;color:#294b57;font-size:.76rem;font-weight:800;cursor:pointer}
.election-type-switch button.is-active{border-color:#1768d7;background:#e8f1ff;color:#1456a8}
.elections-view .office-group{padding:4.5rem 0}
.elections-view .office-group[hidden]{display:none}
.elections-view .office-grid{gap:1rem;border:0}
.elections-view .office-grid article,.elections-view .office-grid article+article{position:relative;min-height:335px;padding:1.5rem;border:1px solid #d2dfe1;border-radius:16px;background:#fff}
.elections-view .office-grid article:hover{border-color:#8ebfba;box-shadow:0 14px 34px rgba(7,42,64,.07)}
.elections-view .proportional-group{margin:0;padding-right:0;padding-left:0;background:transparent}
.elections-view .proportional-office{border-top:4px solid #21b6b0!important}
.elections-view .senate-office{border-top:4px solid #f4c430!important}
.office-card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.office-card-top>b{padding:.3rem .5rem;border-radius:999px;background:#edf4f5;color:#526a74;font-size:.68rem}
.elections-view .office-grid h3{margin:.8rem 0 .5rem;font-size:1.55rem}
.elections-view .office-grid p{min-height:0;margin:.25rem 0;color:#4a626d;font-size:.9rem;line-height:1.55}
.elections-view .senate-note{padding:.65rem .75rem;border-left:3px solid #f4c430;background:#fff9e8}
.elections-view .office-data-context{margin-top:auto;padding-top:1rem}
.elections-view .office-data-context strong{color:#082d42;font-size:.88rem}
.elections-view .office-data-context small{font-size:.72rem;line-height:1.45}
.elections-view .office-link{display:flex;align-items:center;justify-content:space-between;margin-top:.85rem;padding:.75rem .85rem;border-radius:9px;background:#e8f1ff;color:#1456a8;text-decoration:none}
.elections-view .office-link:after{content:'→'}
.elections-view .office-link[aria-disabled=true]{background:#edf1f1;color:#72868d}
.elections-view .office-link[aria-disabled=true]:after{content:''}
.elections-view .election-next{padding-bottom:5rem}

@media(max-width:900px){
  .election-overview-card{grid-template-columns:1fr}
  .election-ballot-order{grid-template-columns:repeat(3,minmax(0,1fr))}
  .elections-view .office-grid{grid-template-columns:1fr}
  .elections-view .office-grid article,.elections-view .office-grid article+article{min-height:0;padding:1.4rem;border:1px solid #d2dfe1}
}
@media(max-width:650px){
  .election-control{grid-template-columns:1fr;gap:.8rem;margin-top:1rem}
  .election-overview{margin-top:1.25rem}
  .election-overview-card{gap:1.3rem;padding:1.1rem}
  .election-overview-copy .share-actions{grid-template-columns:1fr}
  .election-ballot-order{grid-template-columns:1fr 1fr}
  .election-type-switch{align-items:flex-start;flex-direction:column;gap:.65rem;margin-top:1.5rem}
  .election-type-switch>div{width:100%;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}
  .election-type-switch button{flex:0 0 auto}
  .election-overview-empty{align-items:flex-start;flex-direction:column;gap:.75rem}
  .elections-view .office-group{padding:3.2rem 0}
}
