/* trivia-live — portal look: dark slate + indigo/violet, no green (Jason's UI rule). */
:root {
  --bg: #0b0e16; --panel: #141a26; --panel2: #1b2232; --line: #2a3346;
  --text: #e6e9f2; --muted: #8b93a8; --accent: #7c6cf6; --accent2: #a78bfa; --indigo: #6366f1;
  --gold: #fbbf24; --rose: #f43f5e; --sky: #38bdf8; --amber: #f59e0b; --pink: #ec4899;
  --a: #6366f1; --b: #ec4899; --c: #f59e0b; --d: #38bdf8;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: radial-gradient(1200px 700px at 20% -10%, #1e1b4b 0%, var(--bg) 55%) fixed; color: var(--text);
  font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif; -webkit-tap-highlight-color: transparent; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; }
.muted { color: var(--muted); }
.badge { display: inline-block; padding: .25em .8em; border-radius: 999px; background: var(--panel2); border: 1px solid var(--line);
  font-weight: 600; letter-spacing: .02em; }
.badge.hot { background: linear-gradient(90deg, #7c2d12, #be185d); border-color: transparent; }
.badge.final { background: linear-gradient(90deg, #4c1d95, #7c6cf6); border-color: transparent; }
.chip { display: inline-flex; align-items: center; gap: .4em; padding: .35em .9em; border-radius: 999px; background: var(--panel2);
  border: 1px solid var(--line); margin: .25em; }
.chip.done { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }
.chip.off { opacity: .45; }
.dot { width: .55em; height: .55em; border-radius: 50%; background: var(--accent2); display: inline-block; }
.chip.off .dot { background: var(--muted); }
.card { background: linear-gradient(180deg, var(--panel), #111624); border: 1px solid var(--line); border-radius: 18px; padding: 1.2em 1.4em; }
.tile { border-radius: 16px; padding: .9em 1.1em; display: flex; align-items: center; gap: .8em; font-weight: 600; position: relative;
  border: 2px solid transparent; transition: transform .15s, opacity .3s, border-color .3s; }
.tile .L { flex: none; width: 2em; height: 2em; border-radius: 10px; display: grid; place-items: center; background: rgba(0,0,0,.28); font-weight: 800; }
.tile.A { background: linear-gradient(135deg, #4338ca, var(--a)); } .tile.B { background: linear-gradient(135deg, #9d174d, var(--b)); }
.tile.C { background: linear-gradient(135deg, #b45309, var(--c)); } .tile.D { background: linear-gradient(135deg, #0369a1, var(--d)); }
.tile.dim { opacity: .28; }
.tile.right { border-color: #fff; box-shadow: 0 0 0 4px var(--accent2), 0 0 40px rgba(167,139,250,.55); transform: scale(1.03); }
.tile .count { margin-left: auto; background: rgba(0,0,0,.35); border-radius: 999px; padding: .1em .7em; font-weight: 800; }
.timerbar { height: 12px; border-radius: 999px; background: var(--panel2); overflow: hidden; border: 1px solid var(--line); }
.timerbar > div { height: 100%; background: linear-gradient(90deg, var(--accent), var(--pink)); transition: width .25s linear; }
.timerbar.low > div { background: linear-gradient(90deg, var(--rose), var(--amber)); }
.board { width: 100%; border-collapse: collapse; }
.board td { padding: .45em .5em; border-bottom: 1px solid var(--line); }
.board td:first-child { white-space: nowrap; }
.streak { font-size: .7em; color: var(--amber); margin-left: .3em; }
.board td.num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
.plus { color: var(--accent2); font-weight: 700; } .minus { color: var(--rose); font-weight: 700; }
.quip { border-left: 4px solid var(--accent); }
input, select { font: inherit; color: var(--text); background: var(--panel2); border: 1px solid var(--line); border-radius: 12px; padding: .6em .8em; }
.btn { padding: .8em 1.2em; border-radius: 14px; background: var(--panel2); border: 1px solid var(--line); font-weight: 600; }
.btn.primary { background: linear-gradient(135deg, var(--indigo), var(--accent)); border-color: transparent; }
.btn.danger { background: #3b0d18; border-color: #7f1d2d; }
.btn:disabled { opacity: .4; cursor: default; }
@keyframes pop { 0% { transform: scale(.6); opacity: 0 } 70% { transform: scale(1.08) } 100% { transform: scale(1); opacity: 1 } }
.pop { animation: pop .45s ease-out both; }
@keyframes fall { to { transform: translateY(110vh) rotate(720deg); } }
.confetti { position: fixed; top: -20px; width: 10px; height: 16px; border-radius: 2px; animation: fall linear forwards; pointer-events: none; z-index: 50; }
