.poll-page { max-width: 820px; padding-block: 48px 64px; }
.poll-page h1 { font: 400 clamp(2.2rem, 5vw, 3.4rem)/1.15 Georgia, serif; margin-top: 22px; }
.poll-card { border: 1px solid var(--line); border-radius: 18px; background: var(--surface); padding: clamp(20px, 4vw, 36px); margin: 28px 0; }
.poll-card h2 { font-size: 1.4rem; }
.poll-options { display: grid; gap: 10px; margin: 24px 0; }
.poll-choice { text-align: left; background: var(--page); border: 1px solid var(--control-border); color: var(--ink); border-radius: 10px; padding: 14px 16px; min-height: 48px; font: inherit; cursor: pointer; }
.poll-choice[aria-pressed="true"] { border-color: var(--green); background: var(--soft); box-shadow: inset 0 0 0 1px var(--green); }
.poll-choice[aria-pressed="true"]::after { content: ' ✓'; }
.poll-choice:focus-visible, .poll-card button:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.poll-card button:disabled { opacity: .6; cursor: default; }
.poll-vote { border: 0; font: inherit; cursor: pointer; }
.poll-secondary { display: inline-block; margin: 12px 12px 12px 0; min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: var(--green); text-decoration: underline; font: inherit; cursor: pointer; }
.poll-card [hidden] { display: none !important; }
.poll-note, .poll-status, .poll-participation { font-size: .88rem; color: var(--muted); }
.poll-results { margin-top: 24px; }
.poll-result-list { list-style: none; padding: 0; }
.poll-result-list li { margin: 20px 0; }
.poll-result-label { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: .9rem; }
.poll-bar { height: 9px; border-radius: 6px; background: var(--soft); overflow: hidden; margin-top: 8px; }
.poll-bar-fill { height: 100%; background: var(--green); width: 0; }
.poll-your-vote { font-size: .75rem; color: var(--green); }
.poll-card[hidden] { display: none; }
