:root{color-scheme:light;--navy:#06152f;--blue:#1769ff;--cyan:#23c7ff;--muted:#617088;--line:#dce5ef;--paper:#fff;--error:#b42318;--ok:#0a7a45}
*{box-sizing:border-box}
body{margin:0;background:#f0f5fb;color:var(--navy);font-family:Inter,'Segoe UI',system-ui,sans-serif;font-size:15px}
button,input{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
a{color:var(--blue)}
.muted{color:var(--muted)}

.topbar{max-width:980px;margin:auto;padding:26px 24px;display:flex;justify-content:space-between;align-items:center}
.wordmark{font-size:27px;font-weight:850;letter-spacing:-1.2px;text-decoration:none;color:var(--navy)}
.wordmark span,.intro h1 span{background:linear-gradient(100deg,var(--blue),#008fbf);background-clip:text;-webkit-background-clip:text;color:transparent}
.edition{font-size:11px;font-weight:750;letter-spacing:2px}

.layout{max-width:980px;margin:0 auto;padding:0 24px}
.intro{padding:10px 0 22px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.7px;color:#2870bc;margin:0 0 12px}
.intro h1{font-size:clamp(34px,5vw,50px);line-height:1.08;letter-spacing:-2px;margin:0 0 14px;font-weight:850}
.intro-text{color:var(--muted);line-height:1.7;max-width:620px;margin:0}

.tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 14px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{flex-shrink:0;padding:10px 16px;border:1px solid #c8d5e5;border-radius:999px;background:white;color:var(--navy);font-size:13px;font-weight:750;text-align:left}
.tabs button small{display:block;font-size:10px;font-weight:600;color:var(--muted)}
.tabs button[aria-selected=true]{background:var(--navy);border-color:var(--navy);color:white}
.tabs button[aria-selected=true] small{color:#b8c8e0}

.panel{border:1px solid var(--line);background:var(--paper);border-radius:18px;padding:22px;margin-bottom:16px;box-shadow:0 16px 48px #12356609}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel h2{font-size:19px;letter-spacing:-.5px;margin:0}
details.panel summary{font-size:15px;font-weight:750;cursor:pointer}

.status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;font-size:13px}
.status .countdown{margin-left:auto}
.dot{width:10px;height:10px;border-radius:50%;background:#9aa9bd;flex-shrink:0}
.dot.live{background:#e5322d;animation:pulse 1.6s ease-out infinite}
.dot.done{background:var(--ok)}
@keyframes pulse{0%{box-shadow:0 0 0 0 #e5322d80}100%{box-shadow:0 0 0 10px #e5322d00}}
@media(prefers-reduced-motion:reduce){.dot.live{animation:none}}
.text-button{border:0;background:transparent;color:var(--blue);font-size:12px;text-decoration:underline;padding:4px 0}
.notice{font-size:12px;line-height:1.6;background:#f0f6ff;padding:11px 14px;border-radius:8px;color:#365477;margin:14px 0 0}
.notice.error{color:var(--error);background:#fff1f0}

.progress-block{margin:18px 0 6px}
.progress-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;margin-bottom:8px}
.progress-head strong{font-size:24px;font-weight:850;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
progress{display:block;width:100%;height:10px;accent-color:var(--blue);border:0;border-radius:10px;background:#e8eef7}
progress::-webkit-progress-bar{background:#e8eef7;border-radius:10px}
progress::-webkit-progress-value{background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:10px}
progress::-moz-progress-bar{background:var(--blue);border-radius:10px}

.summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0 0}
.summary div{background:#f6f9fd;border-radius:10px;padding:12px}
.summary dt{font-size:10px;font-weight:750;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.summary dd{margin:6px 0 0;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.summary dd small{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-top:2px}

.filter{display:block}
.filter span{display:block;font-size:13px;font-weight:750;margin-bottom:8px}
.filter input{width:100%;padding:13px;border:1px solid #c8d5e5;border-radius:10px;background:#fafcff;color:var(--navy);font-size:16px}
.hint{font-size:12px;color:var(--muted);line-height:1.6;margin:10px 0 4px}

.candidates{list-style:none;padding:0;margin:8px 0 0}
.cand{display:grid;grid-template-columns:34px 46px minmax(0,1fr) auto 40px;gap:4px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.cand:first-child{border-top:0}
.cand .pos{font-size:13px;font-weight:800;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}
.cand .photo{width:46px;height:58px;border-radius:8px;background:#edf2f8;border:1px solid #e0e8f2;object-fit:cover;display:block}
.cand .who{min-width:0}
.cand .name{display:block;font-size:14px;font-weight:750;overflow-wrap:anywhere}
.cand .detail{display:block;font-size:11px;color:var(--muted);line-height:1.5}
.cand .result{text-align:right;font-variant-numeric:tabular-nums}
.cand .votes{display:block;font-size:15px;font-weight:800}
.cand .pct{display:block;font-size:12px;color:var(--muted)}
.cand .bar{grid-column:3/5;height:5px;border-radius:5px;background:#e8eef7;overflow:hidden}
.cand .bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--blue),var(--cyan))}
.cand .badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.4px;padding:2px 7px;border-radius:999px;background:#eef2f7;color:var(--muted);margin-top:4px}
.cand .badge.ok{background:#e3f6ec;color:var(--ok)}
.cand .pin{grid-row:1/3;grid-column:5;width:40px;height:40px;border:1px solid #c8d5e5;border-radius:10px;background:white;color:#8598af;font-size:18px;line-height:1}
.cand .pin[aria-pressed=true]{background:#fff7db;border-color:#f0c64a;color:#b98900}
.more{width:100%;margin-top:14px;padding:13px;border:1px solid #c5d3e6;border-radius:10px;background:white;color:var(--navy);font-size:13px;font-weight:750}

.table-wrap{overflow-x:auto;margin-top:12px}
table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}
th,td{padding:10px 8px;border-bottom:1px solid var(--line)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.source{font-size:11px;line-height:1.7;color:var(--muted);margin:18px 4px 0}
footer{text-align:center;padding:38px 20px;font-size:10px;color:var(--muted)}
footer a{font-size:11px;font-weight:800;letter-spacing:.3em;text-decoration:none;background:linear-gradient(90deg,var(--blue),#009acb);background-clip:text;-webkit-background-clip:text;color:transparent}

@media(max-width:700px){
  .topbar{padding:20px 16px}
  .layout{padding:0 14px}
  .panel{padding:16px;border-radius:15px}
  .summary{grid-template-columns:repeat(2,1fr)}
  .status .countdown{margin-left:0}
  .edition{font-size:10px;letter-spacing:1px}
  .cand{grid-template-columns:26px 40px minmax(0,1fr) auto 36px;gap:4px 9px}
  .cand .photo{width:40px;height:50px}
  .cand .pin{width:36px;height:36px}
}
