:root{--bg:#06154a;--panel:#0b2c78f2;--panel2:#071d59;--line:#2999d6;--text:#ffffff;--muted:#bdd9f0;--gold:#ffd51f;--red:#ff5368;--green:#67e5a4;--blue:#36b8ee;--schoolBlue:#102c8c;--schoolCyan:#259bd4;--schoolYellow:#ffd51f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;min-height:100vh}.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 12% 8%,#259bd455,transparent 34%),radial-gradient(circle at 88% 84%,#102c8caa,transparent 44%),linear-gradient(145deg,#04103c,#102c8c 52%,#07184a)}main{max-width:1050px;margin:auto;padding:24px}.panel{background:linear-gradient(145deg,#0c2e7cf5,#071d59f5);border:1px solid #2aa7df;border-radius:24px;padding:26px;box-shadow:0 18px 70px #0009,0 0 0 1px #ffffff08 inset}.hero{max-width:650px;text-align:center;margin:8vh auto}.hero h1{font-size:58px;line-height:.9;margin:22px 0;letter-spacing:-2px}.hero h1 span,.role{color:var(--gold)}.hero p{color:var(--muted);font-size:18px}.eyebrow{font-size:11px;letter-spacing:2.2px;color:var(--muted);font-weight:800}
.heroLogo{width:140px;max-width:42%;display:block;margin:0 auto 16px auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.35))}.schoolLogo{object-fit:contain;background:rgba(255,255,255,.04);border:1px solid var(--line);box-shadow:0 10px 30px #0005}.brandBar{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #1d3552}.topLogo{width:64px;height:64px;border-radius:16px;padding:6px;background:rgba(255,255,255,.06)}.brandTitle{font-size:22px;font-weight:900;letter-spacing:.3px}.brandText .eyebrow{margin-bottom:3px}
.narrow{max-width:480px;margin:8vh auto}.wide{max-width:1000px;margin:auto}.playerPanel{max-width:720px;margin:auto}.hidden{display:none!important}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0}button,input,.filebtn{width:100%;border:1px solid var(--line);border-radius:12px;background:#081526;color:white;font-size:15px;padding:13px 15px;margin:6px 0}button,.filebtn{font-weight:800;cursor:pointer;text-align:center}.gold{background:linear-gradient(180deg,#ffe453,#ffcc00);color:#10204b;border-color:transparent;box-shadow:0 5px 18px #ffd51f33}.danger{background:var(--red);color:#1c0b0e;border:0}.dangerGhost{border-color:#74394a;color:#ff9baa}.filebtn{display:inline-block;width:auto}.filebtn input{display:none}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar button{width:auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px}.roomcode{font-size:42px;font-weight:950;letter-spacing:8px;color:var(--gold);text-shadow:0 0 18px #ffd51f33}.roomcode.mini{font-size:25px}.score{display:flex;gap:8px}.score div{border:1px solid var(--line);background:var(--panel2);padding:10px 12px;border-radius:12px}.status{margin:16px 0;padding:14px 16px;border-radius:12px;background:#071b50;border-left:4px solid var(--gold);font-weight:700;box-shadow:inset 0 0 24px #259bd415}.muted{color:var(--muted);font-size:13px}.section{margin-top:18px;padding-top:6px}.section h3{margin-bottom:10px}.tableHead,.playerRow{display:grid;grid-template-columns:1.4fr 1fr .7fr .7fr;gap:8px;padding:9px 10px}.tableHead{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:1px}.playerRow{border-top:1px solid #1d3552;align-items:center}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#54677b}.dot.on{background:var(--green)}.eligible{color:var(--green);font-weight:800}.locked{color:var(--muted)}.identity{margin:16px 0;padding:18px;background:linear-gradient(145deg,#0a172a,#111f34);border:1px solid var(--line);border-radius:16px}.role{font-size:30px;font-weight:950}.faction{font-weight:900}.shadow{color:#ff8d9c}.frateran{color:#79dbab}.question{background:var(--panel2);padding:16px;border-radius:15px;border:1px solid var(--line);margin:14px 0}.question .qtext{font-size:18px;font-weight:800;line-height:1.4}.unlock{color:var(--green);font-weight:900;margin:12px 0}.teamgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.pick{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel2);border-radius:12px;padding:11px}.pick input{width:auto;margin:0}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.actions .full{grid-column:1/-1}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#172b46;margin:3px;font-size:12px}.historyItem{border-left:3px solid var(--line);padding:8px 12px;margin:8px 0;background:#091629}.secret{margin-top:16px;border:1px solid #53334b;background:#160e1b;border-radius:16px;padding:14px}.chat{max-height:190px;overflow:auto;background:#080d16;border-radius:10px;padding:8px;margin:8px 0}.msg{padding:6px 3px;border-bottom:1px solid #212937;font-size:14px}.msg b{color:var(--gold)}.chatInput{display:grid;grid-template-columns:1fr 110px;gap:7px}.winner{text-align:center;font-size:42px;font-weight:950;padding:25px;color:var(--gold)}#toast{position:fixed;right:18px;bottom:18px;max-width:340px;background:#0c1b2e;border:1px solid var(--line);border-radius:12px;padding:13px 16px;box-shadow:0 12px 40px #0009;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}.leader{color:var(--gold);font-weight:900}
@media(max-width:650px){main{padding:10px}.panel{padding:17px;border-radius:18px}.hero h1{font-size:40px}.two{grid-template-columns:1fr}.tableHead{display:none}.playerRow{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start}.roomcode{font-size:32px}.score{flex-direction:column}.actions{grid-template-columns:1fr}.chatInput{grid-template-columns:1fr}.toolbar button,.filebtn{width:100%}.brandBar{gap:10px}.topLogo{width:54px;height:54px;border-radius:14px;padding:5px}.brandTitle{font-size:18px}.heroLogo{width:108px}}
.answerOptions{display:grid;gap:9px;margin:14px 0}.answerOption{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#0a1526;cursor:pointer}.answerOption input{width:auto;margin:3px 0 0;flex:0 0 auto}.answerOption span{line-height:1.4}.matchingGrid{display:grid;gap:10px;margin:14px 0}.matchRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.8fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#0a1526}.matchRow select{margin:0}@media(max-width:650px){.matchRow{grid-template-columns:1fr}}

.volumeBox{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#081526;border-radius:12px;padding:5px 10px}.volumeBox span{font-size:12px;white-space:nowrap;color:var(--muted)}.volumeBox input{width:120px;margin:0;padding:0;border:0;background:transparent}.finalStats{margin:18px 0}.statHighlights{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.statHighlights>div{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:14px}.statHighlights span,.statHighlights small{display:block;color:var(--muted);font-size:12px}.statHighlights b{display:block;font-size:20px;color:var(--gold);margin:4px 0}.statsTable{overflow-x:auto;border:1px solid var(--line);border-radius:14px}.statsRow{display:grid;grid-template-columns:1.5fr .9fr 1fr 1fr 1fr;min-width:780px;border-top:1px solid var(--line)}.statsRow:first-child{border-top:0}.statsRow>span{padding:10px 12px}.statsRow small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.statsHead{background:#0a1729;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.7px;font-weight:800}@media(max-width:650px){.statHighlights{grid-template-columns:1fr}.volumeBox{width:100%;justify-content:space-between}.volumeBox input{width:50%}}

/* v1.5 school branding */
.hero{border-top:4px solid var(--schoolYellow)}
.hero h1 span,.role{color:var(--schoolYellow)}
.brandBar{background:linear-gradient(90deg,#259bd412,transparent);border-radius:14px;padding:9px 12px;margin-left:-4px;margin-right:-4px}
.finalBrand{display:flex;align-items:center;justify-content:center;gap:16px;margin:18px auto 14px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#071d59,#10358e);max-width:650px;text-align:left;box-shadow:0 12px 32px #0005}
.finalBrand img{width:78px;height:78px;object-fit:contain;filter:drop-shadow(0 5px 12px #0006)}
.finalBrand b{display:block;font-size:24px;color:var(--schoolYellow);letter-spacing:1px}
.finalBrand small{display:block;color:var(--muted);margin-top:3px}
.winner{text-shadow:0 0 24px #ffd51f33}
.statsTable,.statHighlights>div{box-shadow:inset 0 0 20px #259bd40c}
@media(max-width:650px){.finalBrand{justify-content:flex-start}.finalBrand img{width:62px;height:62px}.finalBrand b{font-size:19px}}

/* v1.6 pre-game role setup */
.roleSetupBox{border:1px solid var(--line);background:linear-gradient(145deg,#071b3d,#0a234c);border-radius:18px;padding:16px;margin-bottom:18px}.roleSetupHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.roleSetupHeader h3{margin:4px 0}.roleSetupHeader p{margin:4px 0 8px}.compactBtn{width:auto;padding:9px 12px;margin:0;white-space:nowrap}.roleSetupGrid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:12px 0}.roleSetupGrid label{display:block;background:#06152f;border:1px solid #244d87;border-radius:13px;padding:10px}.roleSetupGrid label>span{display:block;font-size:12px;font-weight:900;letter-spacing:.4px;margin-bottom:5px}.roleSetupGrid label>small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.roleSetupGrid input{margin:0;font-size:20px;font-weight:900;text-align:center;background:#071a39;border-color:#315c96}.rolePreview{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 12px}.rolePreview span{padding:7px 10px;border-radius:999px;font-size:12px;border:1px solid}.shadowChip{background:#30111d;border-color:#7c334c!important;color:#ffabc0}.goodChip{background:#0b2d43;border-color:#2b6f9c!important;color:#a8dcff}.startBox{border-top:1px solid #21436f;padding-top:12px;margin-top:4px}@media(max-width:760px){.roleSetupGrid{grid-template-columns:1fr 1fr}.roleSetupHeader{flex-direction:column}.compactBtn{width:100%}}@media(max-width:430px){.roleSetupGrid{grid-template-columns:1fr}}
