:root{--bg:#f6f7fb;--surface:#fff;--text:#14161f;--muted:#555b6e;--accent:#5b2bd9;--accent-strong:#4a1fbf;--danger:#b3261e;--success:#1b7a3a;--border:#d5d8e3;--focus:#ffb000;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:400px;padding:32px 28px;box-shadow:0 8px 24px #14161f14}.brand h1{letter-spacing:-.02em;color:var(--accent);margin:0;font-size:2.5rem}.brand p{color:var(--muted);margin:0 0 24px}.brand.compact h1{font-size:1.5rem}h2{margin:0 0 16px;font-size:1.25rem}form{gap:8px;display:grid}label{margin-top:8px;font-weight:600}input{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:10px 12px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:10px 16px;font-weight:600}form button{margin-top:16px}button:hover:not(:disabled){background:var(--accent-strong)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:var(--accent);background:0 0}button.secondary:hover:not(:disabled){background:#5b2bd914}.error{color:var(--danger);margin:8px 0 0;font-weight:600}.hint,.empty{color:var(--muted)}.hint{margin:24px 0 0;font-size:.9rem}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.account{align-items:center;gap:16px;display:flex}.content{max-width:960px;margin:0 auto;padding:32px 16px}.quiz-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.quiz-link{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:14px 16px;text-decoration:none;display:flex}.quiz-link:hover{border-color:var(--accent);box-shadow:0 2px 8px #5b2bd91f}a{color:var(--accent)}.button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-block}.button:hover{background:var(--accent-strong)}.button.secondary-button{color:var(--accent);background:0 0}.button.secondary-button:hover{background:#5b2bd914}button.danger{background:var(--danger);border-color:var(--danger)}button.danger:hover:not(:disabled){background:#8f1e18}button.danger-outline{border-color:var(--danger);color:var(--danger);background:0 0}button.danger-outline:hover:not(:disabled){background:#fff5f4}.confirm{border:2px solid var(--danger);background:#fff5f4;border-radius:10px;margin:16px 0;padding:12px 16px}.confirm p{margin:0;font-weight:600}.confirm .actions{margin-top:12px}.back-link{margin:0 0 12px}.brand-link{color:inherit;text-decoration:none}.detail-meta{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.9rem;display:flex}.actions.top{margin:12px 0 16px}.quiz-title{overflow-wrap:anywhere;font-weight:600}.quiz-meta{color:var(--muted);font-size:.9rem}.section-head,.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-head h2,.panel-head h2{margin:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px}.hint-inline{color:var(--muted);margin:0 0 16px}.file-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.file-name{overflow-wrap:anywhere;font-family:ui-monospace,Consolas,monospace}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.success{color:var(--success);font-weight:600}.import-errors{border:2px solid var(--danger);background:#fff5f4;border-radius:10px;padding:12px 16px}.import-errors .error{margin-top:0}.import-errors ul{margin:8px 0 0;padding-left:20px}.import-errors li+li{margin-top:4px}.preview-title{overflow-wrap:anywhere;margin:0 0 4px;font-size:1.5rem}.preview-description{color:var(--muted);margin:0 0 16px}.settings{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;margin:16px 0;display:grid}.settings div{background:var(--bg);border-radius:8px;padding:8px 12px}.settings dt{color:var(--muted);font-size:.85rem}.settings dd{margin:0;font-weight:600}.callout{border-left:4px solid var(--accent);background:#5b2bd90f;border-radius:0 8px 8px 0;margin:12px 0;padding:8px 16px}.callout.note{border-left-color:var(--focus);background:#ffb0001a}.callout h4{margin:4px 0;font-size:.95rem}.callout ul{margin:4px 0 8px;padding-left:20px}.questions{gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.question{border:1px solid var(--border);border-radius:12px;padding:16px}.question-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.question-number{color:var(--accent);font-weight:700}.question-meta{color:var(--muted);font-size:.9rem}.question-prompt{overflow-wrap:anywhere;white-space:pre-wrap;margin:8px 0 12px;font-size:1.1rem;font-weight:600}.options{gap:6px;margin:0;padding:0;list-style:none;display:grid}.option{border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.option.correct{border:2px solid var(--success);background:#f0faf3}.option-letter{background:var(--text);color:#fff;border-radius:6px;flex:none;place-items:center;width:28px;height:28px;font-weight:700;display:inline-grid}.option-text{overflow-wrap:anywhere;white-space:pre-wrap;flex:1}.option-badge{color:var(--success);flex:none;font-weight:700}.explanation{color:var(--muted);white-space:pre-wrap;margin:12px 0 0}.actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.nav-group{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.main-nav{gap:4px;display:flex}.main-nav a{color:var(--text);border-radius:8px;padding:6px 12px;font-weight:600;text-decoration:none}.main-nav a:hover{background:var(--bg)}.main-nav a.active{color:var(--accent);background:#5b2bd91a}.panel+.panel,.section-head+.panel,.run-title+.panel{margin-top:16px}.panel h3{margin:0 0 8px;font-size:1.15rem}.panel-head h3{margin:0}.run-title{overflow-wrap:anywhere;margin:0 0 4px}button.small,.button.small{padding:6px 12px;font-size:.9rem}.hint-inline.small{font-size:.9rem}.actions.inline{gap:8px;margin-top:8px}.state-badge{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:700;display:inline-block}.state-badge.state-prepared{color:var(--accent);background:#5b2bd91a;border-color:#5b2bd94d}.state-badge.state-completed{color:var(--success);background:#f0faf3;border-color:#b7e0c3}.state-badge.state-aborted{color:var(--danger);background:#fff5f4;border-color:#f2c2be}.run-row{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.run-code{letter-spacing:.08em;font-family:ui-monospace,Consolas,monospace;font-size:1.1rem;font-weight:700}.access-grid{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;display:grid}@media (width<=720px){.access-grid{grid-template-columns:1fr}}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 4px;font-size:.85rem;font-weight:700}.access-grid .label:first-child{margin-top:0}.session-code{letter-spacing:.15em;margin:0 0 8px;font-family:ui-monospace,Consolas,monospace;font-size:2.5rem;font-weight:800}.url{overflow-wrap:anywhere;background:var(--bg);border-radius:6px;margin:0;padding:6px 10px;font-family:ui-monospace,Consolas,monospace;font-size:.95rem}.qr{justify-items:center;gap:8px;margin:0;display:grid}.qr img{border:1px solid var(--border);border-radius:8px;max-width:100%;height:auto}.settings-form{gap:12px}.check{align-items:flex-start;gap:10px;margin:0;font-weight:400;display:flex}.check input{flex:none;width:20px;height:20px;margin-top:2px}.code-input{letter-spacing:.2em;text-align:center;text-transform:uppercase;font-family:ui-monospace,Consolas,monospace;font-size:1.75rem}.join-status{gap:8px;display:grid}.join-title{overflow-wrap:anywhere;margin:0}.join-code-display{color:var(--muted);margin:0;font-family:ui-monospace,Consolas,monospace}.join-message{margin:8px 0 0;font-size:1.25rem;font-weight:700}.app-footer{max-width:960px;color:var(--muted);margin:0 auto;padding:24px 16px 32px;font-size:.8rem}.connection-banner{z-index:10;border:1px solid var(--focus);background:#fff4d6;border-radius:8px;margin:-8px 0 12px;padding:8px 12px;font-weight:600;position:sticky;top:0}.primary-action{padding:12px 22px;font-size:1.1rem}.confirm.neutral{border-color:var(--accent);background:#5b2bd90f}.live-state{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px;display:flex}.participant-count{font-weight:700}.participant-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;margin:16px 0 0;padding:0;list-style:none;display:grid}.participant-list li{background:var(--bg);border-radius:8px;align-items:center;gap:8px;padding:4px 8px;display:flex}.animal-icon{flex:none}.identity{background:#5b2bd914;border-radius:12px;align-items:center;gap:16px;margin:8px 0;padding:16px;display:flex}.identity-label{color:var(--muted);margin:0}.identity-name{margin:0;font-size:1.5rem;font-weight:800}.beamer{background:#fff;grid-template-rows:1fr auto;min-height:100vh;display:grid}.beamer-stage{place-items:center;padding:4vh 5vw;display:grid}.beamer-center{text-align:center}.beamer-title{overflow-wrap:anywhere;margin:0 0 2vh;font-size:clamp(2rem,5vw,4.5rem);line-height:1.15}.beamer-sub{color:var(--muted);margin:0;font-size:clamp(1.5rem,3vw,2.5rem)}.beamer-intro{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5vw;width:100%;max-width:1600px;display:grid}.beamer-intro .qr img{width:min(42vh,480px);height:auto}.beamer-steps{margin:0 0 3vh;padding-left:1.4em;font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.5}.beamer-steps .muted{color:var(--muted)}.beamer-code{letter-spacing:.12em;color:var(--accent);font-family:ui-monospace,Consolas,monospace}.beamer-count{margin:2vh 0 0;font-size:clamp(1.4rem,2.6vw,2.2rem)}.beamer-footer{background:var(--text);color:#fff;flex-wrap:wrap;justify-content:center;gap:1.5em;padding:1.5vh 2vw;font-size:clamp(1.2rem,2.2vw,2rem);display:flex}.beamer-footer-code{letter-spacing:.12em;font-family:ui-monospace,Consolas,monospace}.beamer-message-title{margin:0 0 8px;font-size:1.75rem}.opt-a{--opt:#c62828;--opt-text:#fff}.opt-b{--opt:#1565c0;--opt-text:#fff}.opt-c{--opt:#f9c22e;--opt-text:#1a1a1a}.opt-d{--opt:#2e7d32;--opt-text:#fff}.opt-e{--opt:#6a1b9a;--opt-text:#fff}.opt-f{--opt:#00695c;--opt-text:#fff}.option-letter[class*=opt-]{background:var(--opt);color:var(--opt-text)}.countdown{justify-items:center;gap:4px;min-width:64px;display:inline-grid}.countdown-number{font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:800}.countdown.countdown-large .countdown-number{font-size:clamp(2.5rem,6vw,5rem)}.countdown-bar{background:var(--border);border-radius:3px;width:100%;height:6px;display:block;overflow:hidden}.countdown-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s linear;display:block}.teacher-question{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.teacher-question-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.answer-progress{margin:0 0 12px}.teacher-options{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.teacher-options li{border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.teacher-options li.correct{border:2px solid var(--success);background:#f0faf3}.option-count{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.run-item{align-items:stretch;gap:8px;display:flex}.run-item .quiz-link{flex:1;min-width:0}.icon-button{background:var(--surface);border:1px solid var(--border);width:48px;color:var(--danger);border-radius:10px;flex:none;padding:0;font-size:1.2rem}.icon-button:hover:not(:disabled){border-color:var(--danger);background:#fff5f4}.row-confirm{align-items:center;gap:6px;display:flex}.bulk-delete{justify-content:flex-end;margin-bottom:8px;display:flex}.bulk-delete .confirm{width:100%;margin:0}.abort-area{border-top:1px dashed var(--border);margin-top:24px;padding-top:16px}.participants-details{margin-top:16px}.participants-details summary{cursor:pointer;font-weight:600}.beamer-question{gap:3vh;width:100%;max-width:1700px;display:grid}.beamer-question-head{justify-content:space-between;align-items:center;gap:2vw;display:flex}.beamer-question-number{color:var(--muted);font-size:clamp(1.2rem,2.2vw,2rem);font-weight:700}.beamer-closed{background:var(--text);color:#fff;border-radius:999px;padding:.3em .8em;font-size:clamp(1.4rem,2.8vw,2.6rem);font-weight:800}.beamer-prompt{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:clamp(1.8rem,4vw,3.8rem);line-height:1.2}.beamer-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:2vh 2vw;margin:0;padding:0;list-style:none;display:grid}.beamer-options.count-2,.beamer-options.count-3{grid-template-columns:1fr}.beamer-option{border:3px solid var(--border);background:var(--surface);color:var(--text);border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:1.5vw;padding:1.6vh 1.6vw;font-size:clamp(1.4rem,2.8vw,2.6rem);font-weight:600;display:grid}.beamer-option.correct{border-color:var(--success);background:#f0faf3}.beamer-option.dimmed{opacity:.5}.beamer-option-letter{background:var(--opt);width:1.8em;height:1.8em;color:var(--opt-text);border-radius:10px;place-items:center;font-weight:800;display:inline-grid}.beamer-option-text{overflow-wrap:anywhere}.beamer-option-result{grid-column:1/-1;align-items:center;gap:1vw;display:flex}.beamer-correct{color:var(--success);font-size:1.3em}.beamer-bar{background:var(--bg);border-radius:.35em;flex:1;height:.7em;overflow:hidden}.beamer-bar-fill{background:var(--opt);height:100%;display:block}.beamer-share{font-variant-numeric:tabular-nums;white-space:nowrap}.beamer-question.density-1 .beamer-prompt{font-size:clamp(1.6rem,3.2vw,3rem)}.beamer-question.density-1 .beamer-option{font-size:clamp(1.25rem,2.3vw,2.1rem)}.beamer-question.density-2{gap:2vh}.beamer-question.density-2 .beamer-prompt{font-size:clamp(1.4rem,2.6vw,2.4rem)}.beamer-question.density-2 .beamer-option{padding:1.2vh 1.2vw;font-size:clamp(1.1rem,1.85vw,1.7rem)}.beamer-question.density-3{gap:1.5vh}.beamer-question.density-3 .beamer-prompt{font-size:clamp(1.2rem,2vw,1.9rem)}.beamer-question.density-3 .beamer-option{padding:1vh 1vw;font-size:clamp(1rem,1.5vw,1.4rem)}.beamer-explanation{border-left:8px solid var(--success);background:#f0faf3;border-radius:0 12px 12px 0;margin:0;padding:1.5vh 2vw;font-size:clamp(1.3rem,2.4vw,2.2rem)}.beamer-progress{text-align:center;margin:0;font-size:clamp(1.3rem,2.4vw,2.2rem)}.participant .card{max-width:560px}.p-question{gap:12px;margin-top:8px;display:grid}.p-question-head{justify-content:space-between;align-items:center;display:flex}.p-question-number{color:var(--muted);font-weight:700}.p-prompt{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:1.25rem;font-weight:700}.p-options{gap:10px;margin:0;padding:0;list-style:none;display:grid}.p-option{border:2px solid var(--border);background:var(--surface);width:100%;min-height:60px;color:var(--text);text-align:left;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:1.05rem;font-weight:500;display:flex}@media (hover:hover) and (pointer:fine){.p-option:hover:not(:disabled){background:var(--surface);border-color:var(--accent)}}.p-option:disabled{opacity:1;cursor:default}.p-option.chosen{border-color:var(--accent);background:#5b2bd912}.p-option.correct{border-color:var(--success);background:#f0faf3}.p-option.chosen.wrong{border-color:var(--danger);background:#fff5f4}.p-option.dimmed:not(.chosen){opacity:.55}.p-option-letter{background:var(--opt);width:34px;height:34px;color:var(--opt-text);border-radius:8px;flex:none;place-items:center;font-weight:800;display:inline-grid}.p-option-text{overflow-wrap:anywhere;flex:1}.p-option-mark{color:var(--accent);flex:none;font-size:.9rem;font-weight:700}.p-option-mark.ok{color:var(--success)}.p-status{background:var(--bg);border-radius:10px;margin:0;padding:10px 12px;font-weight:600}.p-status.ok{color:var(--success);background:#f0faf3}.p-status.warn{background:#fff4d6}.p-status.warn p{margin:0 0 8px}.p-status.error{color:var(--danger);background:#fff5f4}.p-result{margin:4px 0 0;font-size:1.5rem;font-weight:800}.p-result.right{color:var(--success)}.p-result.wrong{color:var(--danger)}.p-explanation{color:var(--muted);margin:0}.leaderboard{gap:.6vh;margin:0;padding:0;list-style:none;display:grid}.leaderboard-row{grid-template-columns:2.2em 5.5em minmax(0,1fr);align-items:center;gap:.6em;display:grid}.leaderboard-rank{text-align:right;color:var(--muted);font-weight:800}.leaderboard-points{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.leaderboard-track{align-items:center;gap:.5em;min-width:0;display:flex}.leaderboard-bar{border-radius:0 6px 6px 0;flex:none;height:1.6em;transition:width .9s ease-out}.leaderboard-who{align-items:center;gap:.4em;min-width:0;display:inline-flex}.leaderboard-name{overflow-wrap:anywhere;font-weight:600}.leaderboard.leaderboard-beamer{font-size:clamp(1.2rem,2.3vw,2.1rem)}.leaderboard.leaderboard-compact{font-size:.95rem}.beamer-leaderboard{gap:3vh;width:100%;max-width:1600px;display:grid}.teacher-leaderboard{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.teacher-leaderboard h4{margin:0}.small-text{color:var(--muted);font-size:.85rem}.p-points{color:var(--accent);margin:0;font-size:1.25rem;font-weight:800}.standing{text-align:center;background:#5b2bd914;border-radius:12px;padding:16px}.standing p{margin:0}.standing-label{color:var(--muted);font-weight:600}.standing-rank{font-size:2rem;font-weight:900}.standing-rank .muted{color:var(--muted);font-size:1.1rem;font-weight:600}.standing-points{font-size:1.2rem;font-weight:700}.results h4{margin:20px 0 8px}.results-warning{background:#fff5f4;border:1px solid #f2c2be;border-radius:8px;padding:10px 14px}.result-questions{gap:12px;margin:0;padding:0;list-style:none;display:grid}.result-questions .not-asked{opacity:.6}.result-options li{grid-template-columns:28px minmax(0,1fr) minmax(80px,22%) 5.5em 1.25em;gap:10px;display:grid}.result-options .option-count{text-align:right}.result-options .option-badge{text-align:center}.result-bar{background:var(--bg);border-radius:5px;height:10px;overflow:hidden}.result-bar-fill{background:var(--opt);height:100%;display:block}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
