[hidden]{display:none!important}
body{margin:0;background:#111827;color:#fff;font-family:system-ui,sans-serif;min-height:100vh;-webkit-tap-highlight-color:transparent}
#app{max-width:520px;margin:0 auto;padding:16px 16px 48px;text-align:center}
.home{display:block;text-align:left;color:#9fb3d9;text-decoration:none;font-size:.9rem}
h1{font-size:1.5rem;margin:8px 0 14px}
h2{font-size:1.2rem;margin:18px 0 8px}
.note{opacity:.75;font-size:.92rem;margin:0 0 14px}
.err{color:#ff9aa5;min-height:1.2em}
form{display:grid;gap:12px;text-align:left}
label{display:grid;gap:6px;font-weight:600}
input{padding:13px;border-radius:10px;border:1px solid #3b4660;background:#0b1220;color:#fff;font-size:1.05rem;min-width:0}
button{padding:14px;border:0;border-radius:12px;background:#2f7bf5;color:#fff;font-size:1.05rem;font-weight:800;cursor:pointer}
button.secondary{background:#374151}
button:disabled{opacity:.5}
.spinner{width:46px;height:46px;margin:24px auto 8px;border:5px solid #263250;border-top-color:#ffc857;border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#board{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;align-items:stretch;margin-bottom:10px}
.player{display:grid;gap:2px;padding:10px;border-radius:12px;background:#1e3a8a}
.player{background:#7f1d2b}
.player.me{background:#1e3a8a}
.player.out{opacity:.45}
select{padding:13px;border-radius:10px;border:1px solid #3b4660;background:#0b1220;color:#fff;font-size:1.05rem}
#round{text-align:center;font-weight:800;margin-bottom:6px;color:#ffc857}
.player span{font-size:.85rem;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player strong{font-size:1.8rem}
.player.turn{outline:3px solid #ffd76a}
#round{align-self:center;font-size:.8rem;font-weight:800;letter-spacing:.08em;color:#ffc857}
#timer{font-size:2rem;font-weight:800;min-height:2.4rem}
#timer.low{color:#ff6b6b}
#q-card{background:#18233b;border-radius:14px;padding:16px;margin:8px 0 14px;text-align:left}
#q-label{margin:0 0 6px;font-size:.8rem;font-weight:800;letter-spacing:.08em;color:#ffc857}
#q-text{margin:0;font-size:1.2rem;line-height:1.4}
#q-answer{margin:12px 0 0;padding:10px;border-radius:10px;background:#14532d;font-weight:700}
#buzz{width:100%;padding:26px;font-size:1.8rem;background:#d62839}
#answer-form{grid-template-columns:1fr auto}
#status{min-height:1.4em;font-weight:600}
#leaderboard{margin-top:28px;text-align:left}
#leaderboard h2{text-align:center}
#leaders{margin:0;padding:0;list-style:none;display:grid;gap:6px}
#leaders li{display:grid;grid-template-columns:2rem 1fr auto;gap:8px;padding:10px 12px;border-radius:10px;background:#18233b}
#leaders li:nth-child(1) .rank{color:#ffd76a}
.rank{font-weight:800;opacity:.9}
.pts{font-weight:800}
.sub{opacity:.6;font-size:.8rem}
#end h2{font-size:1.7rem}

#chat{margin-top:14px;border:1px solid #3b4660;border-radius:12px;background:#0b1220;overflow:hidden}
#chat-list{list-style:none;margin:0;padding:10px;height:140px;overflow-y:auto;display:grid;align-content:start;gap:4px;font-size:.92rem;overflow-wrap:anywhere}
#chat-list strong{color:#ffc857}
#chat-form{display:flex;gap:8px;padding:8px;border-top:1px solid #3b4660}
#chat-form input{flex:1}
#chat-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:10px 12px;border:0;border-radius:0;background:#16203a;color:#fff;font-weight:700;text-align:left;cursor:pointer}
#chat-toggle .chev{margin-left:auto}
#chat-unread{background:#e0425a;border-radius:99px;padding:1px 8px;font-size:.8rem}
#chat-body[hidden],#chat-unread[hidden]{display:none}
