@charset "UTF-8";
/* IMMUNE polls (2.69, design §1.2): the lobby poll card (web/polls.js) and the Activity → Polls rows (web/app.js). The card is a plain
   panel under the announcement bar slot: question, options or results, the status slot and one Vote button; results are a label, a
   thin bar and a whole-number percentage per option. No "Updated" stamp and no eye render here (owner console only). */
.lobby-poll{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:14px 18px;margin:0 0 24px;padding:20px 24px;border-left:3px solid var(--tone-cyan)}
/* 2.75 (spec §4): a cyan poll icon, the kicker "POLL · N votes", the question, and the options on the right (below on phones). Nobody sees
   percentages before voting; after the vote a status line takes focus, then result bars; the card collapses after ten seconds. */
.lobby-poll-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--tone-cyan) 15%,transparent);color:var(--tone-cyan)}.lobby-poll-icon .icon{width:20px;height:20px}
.lobby-poll-head{min-width:0}.lobby-poll-kicker{margin:0 0 4px;font-size:11px;letter-spacing:1.2px;font-weight:650;color:var(--tone-cyan)}
.lobby-poll-body{min-width:0;display:grid;gap:10px}.lobby-poll-plain{margin:0;color:var(--muted);font-size:13px}
.lobby-poll-login{justify-self:start;border-color:var(--gold);color:var(--gold)}
.lobby-poll-vote:not(:disabled){border-color:var(--gold);color:var(--gold)}
.lobby-poll-voted{font-size:13px;font-weight:600}.lobby-poll-voted:focus{outline:none}
.poll-result.leading .poll-result-bar>span{background:var(--tone-cyan)}.poll-mine{width:14px;height:14px;margin-right:4px;color:var(--gold)}
.lobby-poll.collapsing{overflow:hidden;animation:poll-collapse .2s ease forwards}
@keyframes poll-collapse{to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0}}
.lobby-poll-question{margin:0;font-size:17px;line-height:1.4;overflow-wrap:anywhere}
.lobby-poll-options{display:grid;gap:8px;margin:0;padding:0;border:0;min-width:0}
.lobby-poll-option{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--raised);cursor:pointer;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.lobby-poll-option:hover,.lobby-poll-option:focus-within{border-color:color-mix(in srgb,var(--tone-cyan) 60%,var(--line))}.lobby-poll-option:has(:checked){border-color:var(--tone-cyan);box-shadow:0 0 0 1px var(--tone-cyan)}
.lobby-poll-option input{accent-color:var(--gold);width:16px;height:16px;flex:none;margin:0}
.lobby-poll form{display:grid;gap:14px}.lobby-poll form>.button{justify-self:start;min-width:120px}
.lobby-poll-voted,.lobby-poll-signin{margin:0}
.poll-results{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.poll-result{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label percent" "bar bar";align-items:center;gap:4px 12px;font-size:13px;line-height:1.4}
.poll-result-label{grid-area:label;min-width:0;overflow-wrap:anywhere}.poll-result.mine .poll-result-label{color:var(--action);font-weight:600}
.poll-result-percent{grid-area:percent;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.poll-result-bar{grid-area:bar;display:block;height:6px;border-radius:4px;background:var(--raised);overflow:hidden}
.poll-result-bar>span{display:block;height:100%;border-radius:4px;background:var(--gold);transition:width .25s ease}
.poll-result.mine .poll-result-bar>span{background:var(--action)}
.poll-no-votes{margin:0}
/* Activity → Polls (app.js pollRow): the question keeps the row's title style, the results stack under it, then the player's choice,
   the final option and the owner's remark (escaped). */
.poll-question{overflow-wrap:anywhere}.poll-question .status{margin-left:8px}
td .poll-results{margin:8px 0 6px;max-width:420px}
.poll-my-vote,.poll-final{margin:4px 0 0}.poll-remark{margin:6px 0 0}
@media(prefers-reduced-motion:reduce){.poll-result-bar>span{transition:none}.lobby-poll.collapsing{animation:none}}
@media(max-width:980px){.lobby-poll{grid-template-columns:auto minmax(0,1fr)}.lobby-poll-body{grid-column:1 / -1}}
@media(max-width:700px){.lobby-poll{padding:18px 16px;gap:12px}.lobby-poll-question{font-size:16px}.lobby-poll form>.button{width:100%}}
