:root{
  --paper:#fbfbf9; --ink:#14181f; --muted:#5b6270; --line:#e2e4e8;
  --red:#c0262d; --blue:#1f4aa8; --navy:#0f1b33; --gold:#d9a320;
  --head:"Archivo",system-ui,sans-serif; --narrow:"Archivo Narrow","Archivo",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--head);font-size:17px;line-height:1.5}
.inner{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.narrow{max-width:640px}
a{color:var(--blue)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mast{background:var(--navy);color:#fff;position:sticky;top:0;z-index:5;border-bottom:4px solid var(--red)}
.mast .inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;font-weight:900;letter-spacing:.06em;font-size:1.05rem}
.brand span{font-family:var(--narrow);font-weight:500;letter-spacing:0;text-transform:lowercase;color:var(--gold);margin:0 2px}
.mast nav{display:flex;gap:16px;flex-wrap:wrap}
.mast nav a{color:#dfe5f2;text-decoration:none;font-family:var(--narrow);font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em}
.mast nav a:hover,.mast nav a:focus-visible{color:#fff;text-decoration:underline}
.hero{background:var(--navy);color:#fff;padding-block:0;border-bottom:8px solid;border-image:linear-gradient(90deg,var(--red) 0 50%,var(--blue) 50% 100%) 1}
.hero .inner{padding-block:56px 48px}
.kicker{font-family:var(--narrow);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin:0 0 10px;font-size:.85rem}
h1{font-weight:900;font-size:clamp(2.1rem,6vw,3.8rem);line-height:1.02;margin:0;letter-spacing:-.01em;text-wrap:balance}
.sub{max-width:60ch;color:#d6dcea;font-size:1.1rem;margin:16px 0 0}
.count{margin-top:22px;display:inline-flex;align-items:baseline;gap:8px;border-top:3px solid var(--red);border-bottom:3px solid var(--blue);padding:6px 0;font-family:var(--narrow);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.count b{font-family:var(--head);font-weight:900;font-size:1.8rem;font-variant-numeric:tabular-nums;letter-spacing:0}
section{padding-block:48px;scroll-margin-top:80px}
.card{scroll-margin-top:90px}
.band{background:#f0f1f4}
h2{font-weight:900;font-size:1.8rem;margin:0 0 6px;text-wrap:balance}
.sechead{margin-bottom:20px}
.sechead p,#writein p,#ad p{color:var(--muted);margin:0;max-width:65ch}
.results{display:flex;flex-direction:column;gap:8px}
.row{display:grid;grid-template-columns:minmax(120px,210px) 1fr auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.row .nm{font-weight:800;font-size:.95rem;display:flex;align-items:center;gap:8px;min-width:0}
.row .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar{height:12px;background:#e9ebef;border-radius:6px;overflow:hidden}
.bar i{display:block;height:100%;border-radius:6px;transition:width .5s}
.bar i.R{background:var(--red)} .bar i.D{background:var(--blue)}
.row .n{font-variant-numeric:tabular-nums;font-weight:800;min-width:3.5ch;text-align:right}
.vote{font:inherit;font-family:var(--narrow);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;border:2px solid var(--ink);background:#fff;border-radius:999px;padding:4px 12px;cursor:pointer}
.vote:hover,.vote:focus-visible{background:var(--ink);color:#fff}
.vote:disabled{opacity:.45;cursor:default;background:#fff;color:var(--ink)}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.dot.R{background:var(--red)} .dot.D{background:var(--blue)}
.msg{min-height:1.4em;font-weight:600;margin-top:10px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.f{font:inherit;font-family:var(--narrow);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;border:2px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer}
.f.on{border-color:var(--ink);background:var(--ink);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.card{background:#fff;border:1px solid var(--line);border-top:6px solid var(--ink);border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card.R{border-top-color:var(--red)} .card.D{border-top-color:var(--blue)}
.mono{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;font-size:1.05rem}
.mono.R{background:var(--red)} .mono.D{background:var(--blue)}
.card h3{margin:0;font-size:1.15rem;font-weight:900;line-height:1.15}
.card .role{color:var(--muted);font-size:.92rem;margin:0}
.card .party{font-family:var(--narrow);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}
.card .party.R{color:var(--red)} .card .party.D{color:var(--blue)}
.card .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;align-items:center}
.draft{font:inherit;font-weight:800;border:0;border-radius:4px;padding:8px 14px;background:var(--ink);color:#fff;cursor:pointer}
.draft:hover,.draft:focus-visible{background:var(--red)}
.card.D .draft:hover,.card.D .draft:focus-visible{background:var(--blue)}
.draft:disabled{background:#8a8f99;cursor:default}
.card .dn{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.88rem}
.card .links{display:flex;gap:12px;font-size:.85rem}
.wform{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.wform input{flex:1 1 220px;font:inherit;padding:10px 12px;border:2px solid var(--line);border-radius:6px;background:#fff;min-width:0}
.wform input:focus{outline:none;border-color:var(--blue)}
.wform button,.cta{font:inherit;font-weight:800;border:0;border-radius:6px;padding:10px 18px;background:var(--red);color:#fff;cursor:pointer;text-decoration:none;display:inline-block}
.cta{margin-top:16px;background:var(--blue)}
.wform button:hover,.cta:hover{filter:brightness(1.1)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.foot{background:var(--navy);color:#b9c2d6;font-size:.85rem}
.foot .inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:20px}
@media (max-width:520px){.row{grid-template-columns:1fr auto;}.row .bar{grid-column:1/-1;order:3}}
