
:root{--ink:#1d1d1f;--muted:#5f6368;--line:#e3e3e6;--bg:#f6f6f4;--card:#fff;--a:#d93f3f;--b:#2f6fdb;--c:#c98a00;--d:#1f9d55;--e:#7a4fd6;--f:#d4568f;--ok:#1f9d55;--bad:#d93f3f;--accent:#2f6fdb}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
h1{font-size:1.6rem;margin:.2em 0 .6em;line-height:1.2}
button{font:inherit;cursor:pointer;border:0;border-radius:12px}
input{font:inherit;width:100%;padding:.75em .9em;border:2px solid var(--line);border-radius:12px;margin-top:.3em;background:#fff}
input:focus{outline:none;border-color:var(--accent)}
label{display:block;font-weight:600;margin:.9em 0}
.brand{font-weight:800;letter-spacing:.02em;color:var(--accent)}
.card{max-width:440px;margin:0 auto;padding:28px 22px}
.go{width:100%;padding:.9em;background:var(--ink);color:#fff;font-weight:700;font-size:1.1rem;margin-top:.4em}
.go:disabled{opacity:.5}
.msg{color:var(--bad);min-height:1.4em;font-weight:600}
.fine{color:var(--muted);font-size:.85rem}
.center{text-align:center}.big{font-size:2rem}
.muted{color:var(--muted)}
[hidden]{display:none!important}
/* phone */
.phone #play{max-width:560px;margin:0 auto;padding:18px 16px 40px}
.top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-weight:600;margin-bottom:10px}
.qtitle{font-size:1.25rem;font-weight:700;margin:.2em 0 .8em}
.choices{display:grid;gap:10px}
.choice{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 14px;color:#fff;font-weight:700;font-size:1.05rem;text-align:left}
.choice .tag{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,.22);font-weight:800}
.choice[aria-pressed=true]{outline:4px solid var(--ink);outline-offset:2px}
.choice:disabled{opacity:.45}
.choice.picked:disabled{opacity:1}
.c0{background:var(--a)}.c1{background:var(--b)}.c2{background:var(--c)}.c3{background:var(--d)}.c4{background:var(--e)}.c5{background:var(--f)}
.c6{background:#3d7d8a}.c7{background:#8a5a2b}.c8{background:#5b6b2e}.c9{background:#a33f6b}.c10{background:#44559e}.c11{background:#6e6e6e}
.scale{display:flex;flex-wrap:wrap;gap:8px}.scale .choice{flex:1 1 52px;justify-content:center;background:var(--b);min-height:56px}
.scale-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:.9rem;margin-top:6px}
textarea{font:inherit;width:100%;min-height:110px;padding:.8em;border:2px solid var(--line);border-radius:12px}
.status{margin-top:18px;padding:16px;border-radius:14px;background:#fff;text-align:center;font-weight:700;font-size:1.15rem}
.status.ok{background:#e7f6ee;color:#11663a}.status.bad{background:#fdecec;color:#9b1c1c}
.bigscore{font-size:2.6rem;font-weight:800;text-align:center;margin:.2em 0}
.timer-bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin-bottom:12px}.timer-bar>i{display:block;height:100%;background:var(--accent);transition:width .25s linear}
/* big screen */
.stage{background:#fff}
.stage main{min-height:100vh;display:flex;flex-direction:column;padding:3vh 4vw}
.bar{display:flex;align-items:center;justify-content:space-between;font-size:clamp(14px,1.6vw,26px);color:var(--muted);font-weight:700}
.bar .brand{font-size:1.1em}
.lobby{flex:1;display:grid;grid-template-columns:1.2fr 1fr;gap:4vw;align-items:center}
.howto{font-size:clamp(20px,2.6vw,44px);font-weight:700;line-height:1.3}
.howto .url{color:var(--accent)}
.code{font-size:clamp(56px,10vw,170px);font-weight:900;letter-spacing:.06em;line-height:1}
.qr{width:min(34vw,52vh);height:auto;image-rendering:pixelated;border:10px solid #fff;box-shadow:0 0 0 1px var(--line)}
.names{display:flex;flex-wrap:wrap;gap:10px;margin-top:2vh;max-height:30vh;overflow:auto}
.name{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.35em .9em;font-weight:700;font-size:clamp(14px,1.5vw,24px)}
.name button{background:none;color:var(--muted);margin-left:.4em;padding:0 .2em;font-size:.9em}
.controls{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:2vh}
.btn{padding:.7em 1.4em;font-weight:800;font-size:clamp(14px,1.4vw,22px);background:var(--ink);color:#fff}
.btn.ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.sq{flex:1;display:flex;flex-direction:column;gap:2.5vh;justify-content:flex-start;padding-top:3vh}
.sq h2{font-size:clamp(26px,3.6vw,64px);line-height:1.15;margin:0}
.sq .help{color:var(--muted);font-size:clamp(16px,1.6vw,26px)}
.sq img{max-height:30vh;max-width:60vw;object-fit:contain;align-self:center}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:1.6vh 1.4vw}
.tile{display:flex;align-items:center;gap:1vw;color:#fff;border-radius:16px;padding:2vh 1.4vw;font-size:clamp(18px,2.3vw,40px);font-weight:800;min-height:10vh;position:relative}
.tile .tag{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.6em;height:1.6em;border-radius:10px;background:rgba(255,255,255,.22)}
.tile.dim{opacity:.35}.tile.right::after{content:"\2713";position:absolute;right:1vw;font-size:1.3em}
.clock{font-size:clamp(28px,4vw,72px);font-weight:900;color:var(--ink);min-width:2.2em;text-align:center}
.chart{display:flex;align-items:flex-end;gap:2vw;height:34vh;padding:0 2vw}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.chart .barv{width:100%;border-radius:10px 10px 0 0;min-height:6px;transition:height .5s ease}
.chart .n{font-size:clamp(18px,2.4vw,42px);font-weight:900;margin-bottom:.3em}
.chart .lab{margin-top:.4em;font-weight:800;font-size:clamp(14px,1.5vw,26px);text-align:center}
.board{list-style:none;padding:0;margin:0 auto;width:min(900px,90vw)}
.board li{display:flex;justify-content:space-between;align-items:center;padding:1.4vh 1.6vw;border-bottom:1px solid var(--line);font-size:clamp(20px,2.6vw,46px);font-weight:800}
.board li .r{color:var(--muted);width:2.4em}.board li .nm{flex:1}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:2vw;height:42vh;margin-top:2vh}
.podium .step{height:100%;width:min(22vw,320px);display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.podium .blk{width:100%;border-radius:14px 14px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:1.5vh;color:#fff;font-size:clamp(28px,4vw,72px);font-weight:900}
.podium .who{font-size:clamp(18px,2.4vw,40px);font-weight:800;text-align:center;margin-bottom:.3em}
.texts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.texts span{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:.4em .8em;font-size:clamp(16px,1.8vw,30px);font-weight:700}
.savebox{text-align:center;color:var(--muted);font-weight:700;font-size:clamp(14px,1.5vw,24px);margin-top:1.5vh}
@media (max-width:800px){.lobby{grid-template-columns:1fr}.tiles{grid-template-columns:1fr}}
