:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#f8fafc;background:#0f172a}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}.home,.host{max-width:1400px;margin:auto;padding:40px}.home{text-align:center}.cards{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin:40px}.cards a,.btn,button{background:#f8fafc;color:#0f172a;border:0;border-radius:12px;padding:16px 22px;font-weight:700;text-decoration:none;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.hint{opacity:.75}.stage{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6vw}.stage h1{font-size:clamp(42px,6vw,96px);margin:.2em}.stage h2{font-size:clamp(26px,3vw,52px)}.stage .answer{font-size:clamp(34px,5vw,78px)}.audience-note{font-size:clamp(24px,3vw,44px)}.meta{font-size:clamp(18px,2vw,30px);opacity:.8}.controls{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.sticky-controls{position:sticky;top:0;z-index:5;background:#0f172a;padding:12px 0}.team,.current-card{background:#1e293b;padding:14px;border-radius:12px}.current-card p{font-size:1.2rem;white-space:normal}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.board{width:min(1000px,90vw);margin:auto}.row{display:grid;grid-template-columns:80px 1fr 140px;gap:20px;padding:18px;border-bottom:1px solid #475569;font-size:clamp(24px,3vw,48px)}.round{color:#fbbf24}.danger{background:#7f1d1d;color:white}.small{padding:9px 12px}
.score-table-wrap{overflow-x:auto;border:1px solid #475569;border-radius:12px}
.score-table{width:100%;border-collapse:collapse;background:#1e293b}
.score-table th,.score-table td{padding:10px;border-bottom:1px solid #475569;text-align:center;min-width:110px}
.score-table th:first-child,.score-table td:first-child{min-width:210px;text-align:left}
.score-table th small{display:block;font-weight:400;opacity:.75}
.score-table input{width:100%;min-width:75px;padding:10px;border:2px solid transparent;border-radius:8px}
.score-table .active-round{background:#334155}
.score-table .active-round input{border-color:#fbbf24}
.score-table .total{font-size:1.4rem;font-weight:800}
.screen-change{animation:screen-in .28s ease-out}
@keyframes screen-in{from{opacity:.2;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.screen-change{animation:none}}
@media (max-width:700px){.host{padding:20px}.sticky-controls{position:static}.section-heading{align-items:flex-start;flex-direction:column}}
.log{white-space:pre-wrap;font-size:.95rem;line-height:1.5;padding:14px;border-radius:12px;border-left:6px solid;max-height:40vh;overflow:auto}
.log.good{background:#082f20;border-color:#34d399;color:#d1fae5}
.log.bad{background:#3f1414;border-color:#f87171;color:#fee2e2}

.badge{display:inline-block;padding:6px 14px;border-radius:999px;font-size:.9rem;font-weight:700;border:2px solid}
.badge.off{background:#1e293b;border-color:#64748b;color:#cbd5e1}
.badge.connecting{background:#1e293b;border-color:#fbbf24;color:#fde68a}
.badge.live{background:#082f20;border-color:#34d399;color:#d1fae5}
.badge.offline,.badge.error{background:#3f1414;border-color:#f87171;color:#fee2e2}

/* Optional question countdown. The state word or the number carries the
   meaning; colour only reinforces it, per AGENTS.md on not relying on hue. */
.timerpanel{background:#1e293b;padding:14px 18px;border-radius:12px;margin:20px 0}
.timerpanel h2{margin:0 0 .2em}
.timerreadout{font-size:2.6rem;font-weight:800;margin:.1em 0;font-variant-numeric:tabular-nums}
.timerreadout.running{color:#d1fae5}
.timerreadout.warning{color:#fde68a}
.timerreadout.expired{color:#fecaca}
.timerreadout.paused,.timerreadout.none{color:#cbd5e1}
/* Sits below the centred question rather than over it, and stays readable
   from the back of the hall on the 1920x1080 TV. */
.timerbar{position:fixed;left:50%;transform:translateX(-50%);bottom:3vh;padding:.1em .6em;border-radius:18px;border:3px solid;font-size:clamp(40px,6vw,110px);font-weight:800;font-variant-numeric:tabular-nums;line-height:1.25}
.timerbar.running{background:#082f20;border-color:#34d399;color:#d1fae5}
.timerbar.warning{background:#1e293b;border-color:#fbbf24;color:#fde68a}
.timerbar.expired{background:#3f1414;border-color:#f87171;color:#fee2e2}
.timerbar.paused{background:#1e293b;border-color:#94a3b8;color:#e2e8f0}
