.poll-editor { width: min(520px, calc(100vw - 24px)); max-height: min(90dvh, 900px); overflow-y: auto; box-sizing: border-box; }
.poll-editor h2, .poll-editor h3 { margin: 0 0 16px; }
.poll-editor h3, .poll-question-label { color: var(--accent, #43a5e9); }
.poll-question-label { display: block; margin: 12px 0 8px; font-weight: 600; }
.poll-editor textarea, .poll-option-text { width: 100%; min-width: 0; padding: 12px; border: 1px solid var(--border, #94a3b855); border-radius: 10px; background: var(--surface, transparent); color: inherit; font: inherit; box-sizing: border-box; }
.poll-editor textarea { resize: vertical; }
.poll-editor-options { display: grid; gap: 10px; margin: 16px 0 8px; }
.poll-editor-option { display: flex; align-items: center; gap: 8px; }
.poll-editor-option input[type=checkbox], .poll-editor-option input[type=radio] { flex: 0 0 22px; height: 22px; accent-color: #4ba8e8; }
.poll-remove { background: transparent; color: inherit; border: 0; min-width: 40px; min-height: 44px; font-size: 26px; cursor: pointer; }
#pollAddOption { margin-bottom: 24px; }
.poll-settings { display: grid; gap: 4px; }
.poll-setting { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; cursor: pointer; }
.poll-setting input { appearance: none; width: 44px; height: 26px; flex: 0 0 44px; border-radius: 20px; background: #64748b; position: relative; cursor: pointer; }
.poll-setting input::before { content: ''; position: absolute; inset: 3px auto 3px 3px; width: 20px; border-radius: 50%; background: white; transition: transform .15s; }
.poll-setting input:checked { background: #419fdf; }
.poll-setting input:checked::before { transform: translateX(18px); }
.poll-setting input:disabled { opacity: .4; cursor: default; }
.poll-hint, .poll-kind, .poll-total { color: var(--muted, #7c8fa3); font-size: 13px; }
.poll-hint { line-height: 1.5; }
.poll-error { color: #e46b74; }
.poll-editor :focus-visible, .poll-card :focus-visible { outline: 2px solid #4ba8e8; outline-offset: 3px; }
.poll-card { display: flex; flex-direction: column; gap: 10px; width: min(350px, 100%); min-width: min(245px, 65vw); white-space: normal; }
.poll-card-question { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.poll-choices { display: grid; gap: 8px; }
.poll-choice { display: flex; position: relative; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px; border: 1px solid #8998a344; border-radius: 10px; background: linear-gradient(90deg, #49a4e333 var(--poll-percent, 0%), transparent var(--poll-percent, 0%)); cursor: pointer; box-sizing: border-box; }
.poll-choice input { flex: 0 0 18px; height: 18px; margin: 0; accent-color: #49a4e3; }
.poll-answer { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.poll-answer-mark { display: block; font-size: 12px; }
.poll-count { font-size: 13px; font-variant-numeric: tabular-nums; }
.poll-choice.is-correct { border-color: #48a976; }
.poll-choice.is-wrong { border-color: #d96972; }
.poll-feedback { font-size: 13px; }
.poll-feedback:empty { display: none; }
.poll-vote, .poll-show-voters, .poll-retry { border: 0; border-radius: 9px; padding: 10px; color: inherit; background: #49a4e32b; font: inherit; cursor: pointer; min-height: 44px; }
.poll-card button:disabled { opacity: .5; cursor: default; }
.poll-voters { width: min(480px, calc(100vw - 24px)); max-height: 85dvh; overflow-y: auto; box-sizing: border-box; }
.poll-voters h3, .poll-voters li { overflow-wrap: anywhere; }
.poll-card [hidden], .poll-editor [hidden], #pollModal[hidden], #pollVotersModal[hidden] { display: none !important; }
@media (max-width: 480px) { .poll-editor { max-height: 90dvh; padding: 20px; } }
