:root { color-scheme: light; font-family: system-ui, sans-serif; line-height: 1.6; color: #203c32; background: #f6f5ef; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
main { width: 100%; max-width: 42rem; margin: 0 auto; padding: 3rem 1.25rem; flex: 1; }
h1 { font-size: clamp(2.5rem, 8vw, 4rem); line-height: 1.1; margin: .5rem 0 1.5rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; font-weight: 700; }
fieldset { border: 0; padding: 0; margin: 2rem 0 1rem; }
legend { font-weight: 700; margin-bottom: .8rem; }
label { display: flex; align-items: center; gap: .8rem; border: 1px solid #9daea5; background: white; border-radius: .6rem; padding: 1rem; margin-bottom: .75rem; cursor: pointer; }
label:has(input:checked) { background: #e4efe5; border-color: #255d41; }
input { width: 1.2rem; height: 1.2rem; accent-color: #255d41; }
button { font: inherit; font-weight: 700; border: 0; border-radius: .5rem; padding: .8rem 1.5rem; background: #255d41; color: white; cursor: pointer; }
button:disabled { opacity: .65; cursor: default; }
:focus-visible { outline: 3px solid #a45c13; outline-offset: 4px; }
.privacy, footer { font-size: .9rem; }
footer { text-align: center; border-top: 1px solid #ccd5cd; padding: 1.25rem; }
#vote-status { min-height: 1.6em; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: .4rem .6rem; border-bottom: 1px solid #8884; }
td .leading { font-weight: 700; color: #255d41; margin-left: .4rem; }
