:root{
  --bg:#0f1117; --bg2:#171a23; --card:#1d212c; --border:#2a2f3d;
  --accent:#7c5cff; --accent2:#00d4a0; --danger:#ff5c7a; --warn:#ffb84d;
  --text:#e8e9ee; --text2:#9099ab; --radius:14px;
  --team-rot:#ff5c7a; --team-blau:#4d9bff;
  font-family:'Segoe UI',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);min-height:100vh;}
.app{max-width:1000px;margin:0 auto;padding:24px 16px 60px;}
h1,h2,h3{margin:0 0 8px;font-weight:700;}
h1{font-size:26px;letter-spacing:-.5px;}
h2{font-size:19px;}
h3{font-size:15px;color:var(--text2);text-transform:uppercase;letter-spacing:.6px;}
p{color:var(--text2);margin:4px 0 0;font-size:14px;}
p.err{color:var(--danger);}
.view.hidden{display:none;}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:640px){.grid2{grid-template-columns:1fr;}}
input,select,textarea{background:var(--bg2);border:1px solid var(--border);color:var(--text);
  border-radius:9px;padding:10px 12px;font-size:14px;width:100%;font-family:inherit;}
textarea{resize:vertical;min-height:60px;}
label{font-size:12px;color:var(--text2);display:block;margin:10px 0 4px;font-weight:600;}
button{cursor:pointer;border:none;border-radius:9px;padding:10px 16px;font-size:14px;font-weight:600;
  background:var(--accent);color:#fff;transition:.15s;}
button:hover{filter:brightness(1.1);}
button.secondary{background:var(--bg2);border:1px solid var(--border);color:var(--text);}
button.danger{background:var(--danger);}
button.ghost{background:transparent;border:1px solid var(--border);color:var(--text2);}
button:disabled{opacity:.4;cursor:not-allowed;}
button.sm{padding:5px 10px;font-size:12px;border-radius:7px;}
.badge{display:inline-block;background:var(--bg2);border:1px solid var(--border);padding:2px 9px;
  border-radius:100px;font-size:11px;color:var(--text2);font-weight:600;}
.badge.accent{background:rgba(124,92,255,.18);color:#b8a7ff;border-color:transparent;}
.badge.ok{background:rgba(0,212,160,.15);color:var(--accent2);border-color:transparent;}
.badge.warn{background:rgba(255,184,77,.15);color:var(--warn);border-color:transparent;}
.player-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;
  background:var(--bg2);border-radius:10px;margin-bottom:7px;border:1px solid var(--border);}
.player-row.eliminated{opacity:.35;}
.player-row.team-Rot{border-left:3px solid var(--team-rot);}
.player-row.team-Blau{border-left:3px solid var(--team-blau);}
.player-name{font-weight:600;}
.score{font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent2);}
.qcard{border-left:3px solid var(--accent);}
.option-btn{display:block;width:100%;text-align:left;background:var(--bg2);border:1px solid var(--border);
  color:var(--text);padding:12px 14px;margin-bottom:8px;border-radius:10px;font-size:14px;cursor:pointer;}
.option-btn:hover{border-color:var(--accent);}
.option-btn.selected{border-color:var(--accent);background:rgba(124,92,255,.15);}
.option-btn.correct{border-color:var(--accent2);background:rgba(0,212,160,.15);}
.option-btn.wrong{border-color:var(--danger);background:rgba(255,92,122,.15);}
.tag{cursor:pointer;padding:8px 12px;border-radius:9px;border:1px solid var(--border);background:var(--bg2);font-size:13px;display:inline-block;margin-right:6px;}
.tag.active{border-color:var(--accent);color:var(--accent);background:rgba(124,92,255,.12);}
.tabs{margin-bottom:14px;}
.qlist-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;
  background:var(--bg2);border-radius:8px;margin-bottom:6px;font-size:13px;}
.log{max-height:160px;overflow-y:auto;font-size:12px;color:var(--text2);}
.log div{padding:3px 0;border-bottom:1px solid var(--border);}
.center{text-align:center;}
.code{font-size:34px;font-weight:800;letter-spacing:6px;color:var(--accent);}
.hidden{display:none !important;}
.flex-between{display:flex;justify-content:space-between;align-items:center;}
img.qimg{max-width:100%;border-radius:10px;margin:10px 0;max-height:280px;object-fit:contain;background:#000;display:block;}
audio.qaudio{width:100%;margin:10px 0;}
.small{font-size:12px;color:var(--text2);}
.buzzer-btn{width:100%;padding:26px;font-size:20px;border-radius:16px;}
.buzz-order{padding:6px 10px;background:var(--bg2);border-radius:8px;margin-bottom:5px;font-size:13px;}
.timer-bar{height:6px;background:var(--bg2);border-radius:4px;overflow:hidden;margin:10px 0;}
.timer-bar-fill{height:100%;background:var(--accent);transition:width 1s linear;}
.team-block{border-radius:10px;padding:12px;margin-bottom:10px;}
.team-block.Rot{background:rgba(255,92,122,.1);border:1px solid var(--team-rot);}
.team-block.Blau{background:rgba(77,155,255,.1);border:1px solid var(--team-blau);}
