:root{color-scheme:light;--paper:#f0f5eb;--card:#fefff9;--ink:#1c3029;--green:#1b654d;--muted:#465e53;--line:#c9d9cb;--pop:#f5c379;font-family:system-ui,sans-serif;background:var(--paper);color:var(--ink)}
*{box-sizing:border-box}
body{margin:0}
.shell{width:min(980px,calc(100% - 34px));margin-inline:auto}
.mast,.head,.controls{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mast{height:66px;border-bottom:1px solid var(--line)}
a{color:var(--green)}
.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:820;color:var(--ink)}
.brand span{border-radius:8px;padding:4px 8px;background:var(--pop);font-size:1.2rem}
.intro{padding:46px 0 29px}
.eyebrow{color:var(--green);font-weight:820;text-transform:uppercase;font-size:.74rem;letter-spacing:.11em;margin:0 0 8px}
h1,h2,p{margin-top:0}
h1{font-size:clamp(2.8rem,8.5vw,6.5rem);line-height:.9;letter-spacing:-.083em;margin-bottom:20px}
h2{font-size:clamp(1.5rem,4vw,2.15rem);letter-spacing:-.045em;margin-bottom:10px}
p{line-height:1.52}
.intro p:last-child{max-width:53ch;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:clamp(16px,3.2vw,28px);margin-bottom:15px}
.head{align-items:flex-start}
label,legend{font-size:.88rem;font-weight:750}
input,select,button{font:inherit}
input:not([type=checkbox]),select{border:1px solid var(--line);background:#f7faf3;color:var(--ink);padding:8px;border-radius:7px}
input[type=checkbox]{accent-color:var(--green)}
button{border:1px solid var(--line);border-radius:8px;background:white;color:var(--green);padding:8px 10px;font-weight:750;font-size:.86rem;cursor:pointer}
button.primary{background:var(--green);border-color:var(--green);color:white}
button:disabled{opacity:.5;cursor:default}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
#notice,#ballots,#resultsNote,.guide p:not(.eyebrow){color:var(--muted);font-size:.9rem}
#notice{min-height:1.35em;margin:0 0 11px}
.add>div{display:flex;gap:8px;margin:5px 0 11px}
.add input{flex:1;min-width:0}
#slate{padding-left:24px}
#slate li{padding:6px 0;border-bottom:1px solid var(--line)}
#slate li div{display:flex;align-items:center;justify-content:space-between;gap:8px;overflow-wrap:anywhere}
.controls{justify-content:flex-start;flex-wrap:wrap;margin-top:10px}
fieldset{border:1px solid var(--line);border-radius:9px;margin:0 0 11px;padding:8px 12px}
#options label{display:block;padding:5px 0;overflow-wrap:anywhere}
#options input{margin-right:8px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}
table{width:100%;min-width:410px;border-collapse:collapse;text-align:left}
th,td{padding:8px 10px;border-bottom:1px solid var(--line)}
th{background:var(--paper);font-size:.82rem}
footer{border-top:1px solid var(--line);padding:14px 0 24px;color:var(--muted);font-size:.86rem}
@media(max-width:580px){.head{flex-wrap:wrap}.intro{padding-top:34px}}
