:root{color-scheme:dark;--bg:#0b1019;--surface:#131c29;--line:#263447;--text:#eef4fc;--muted:#8da0b8;--accent:#b7f36c;--cyan:#46d9f0;font-family:Inter,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:#202e40;color:var(--text);padding:12px 16px;border-radius:10px;font-weight:600;transition:background .15s,transform .15s}button:hover{background:#30435b}button:active{transform:translateY(1px)}button.primary{background:var(--accent);color:#14250a;border-color:var(--accent)}button.primary:hover{background:#ceff94}button.ghost{background:transparent}button:disabled{opacity:.45;cursor:wait}input,select{background:#0b131f;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:12px;width:100%;min-width:0}label{display:grid;gap:8px;color:var(--muted);font-size:13px}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}
.scene-page{height:100dvh;display:flex;justify-content:center;align-items:center;overflow:hidden;background:#070c13}.scene-page canvas{display:block;width:min(100vw,177.777777dvh);height:auto;max-height:100dvh;aspect-ratio:16/9}.scene-page #connection{position:fixed;bottom:18px;padding:12px 18px;border-radius:8px;background:#913c20;color:white;font-size:14px}
.admin-page{max-width:1420px;margin:auto;padding:30px 36px 48px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:26px;border-bottom:1px solid var(--line)}.brand{font-weight:850;font-size:22px;letter-spacing:-.5px}.brand span{color:var(--accent)}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:9px}.badge{display:inline-flex;gap:7px;align-items:center;padding:7px 10px;font-size:12px;border-radius:30px;background:#1b2b22;color:var(--accent)}.badge:before{content:"";width:6px;height:6px;background:currentColor;border-radius:50%}.top-links{display:flex;gap:16px;align-items:center;font-size:13px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:32px;margin-top:30px}.intro h1{font-size:30px;letter-spacing:-1px;margin:4px 0 10px}.intro p{color:var(--muted);line-height:1.6;font-size:14px;margin:0 0 24px}.panel{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:22px;margin-bottom:18px}.panel h2{font-size:15px;margin:0 0 18px;display:flex;justify-content:space-between;align-items:center}.small{font-size:12px;font-weight:400;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.stat{background:#0e1723;border-radius:10px;padding:14px}.stat span{font-size:11px;color:var(--muted);display:block;margin-bottom:8px}.stat strong{font-size:20px}.actions{display:flex;gap:10px;flex-wrap:wrap}.split{height:1px;background:var(--line);margin:20px 0}.row{display:flex;gap:12px;align-items:end}.row>label{flex:1}.row>button{flex-shrink:0}.notice{margin-top:15px;color:var(--muted);line-height:1.6;font-size:12px}.notice strong{color:var(--text)}.command-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.command-form .wide{grid-column:1/-1}.quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.quick button{padding:8px 12px;font-size:13px}.directions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:280px;margin-top:16px}.directions button{padding:10px;font-family:monospace}.preview{position:sticky;top:24px;align-self:start}.preview-head{display:flex;justify-content:space-between;margin-bottom:14px;font-size:12px;color:var(--muted)}.preview iframe{width:100%;aspect-ratio:16/9;border:1px solid var(--line);border-radius:18px;background:#14291d}.preview p{font-size:12px;color:var(--muted);line-height:1.6}.roster{display:grid;gap:8px}.racer{display:flex;gap:12px;align-items:center;background:#0d1622;border-radius:9px;padding:10px 12px}.racer .dot{width:10px;height:10px;background:var(--racer-color);border-radius:50%;flex-shrink:0}.racer .who{flex:1;min-width:0}.racer strong{font-size:13px}.racer .detail{font-size:11px;color:var(--muted);margin-top:3px}.racer button{padding:7px 9px;font-size:11px}.empty{font-size:13px;color:var(--muted);line-height:1.6}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;padding:14px 22px;background:#21382a;color:#d5f6c2;border:1px solid #527448;border-radius:12px;box-shadow:0 15px 50px #0006;z-index:10}.toast.error{background:#462127;border-color:#8e4550;color:#ffd6db}.key{color:var(--accent);font-family:monospace}.footer{margin-top:20px;font-size:11px;color:var(--muted)}.winner-box{color:var(--accent);font-size:14px;margin-top:12px}
@media(max-width:1000px){.admin-page{padding:20px}.layout{grid-template-columns:minmax(0,1fr) 300px;gap:20px}.top-links .badge{display:none}}
@media(max-width:760px){.layout{grid-template-columns:1fr}.preview{position:static;max-width:360px;width:100%;margin:auto}.topbar{align-items:flex-start}.top-links{font-size:11px}.top-links .status-text{display:none}.panel{padding:17px}.intro h1{font-size:26px}.command-form{grid-template-columns:1fr}.stats{gap:7px}.stat{padding:11px}.row{flex-wrap:wrap}.row>label{min-width:160px}}

.scene-frame{position:relative;flex:none;width:min(100vw,177.777777dvh);aspect-ratio:16/9}
.scene-frame canvas{width:100%;height:100%;max-height:none}
#soundToggle{position:absolute;right:2%;bottom:2.3%;padding:5px 10px;font-size:12px;line-height:1.25;border-radius:7px;background:#173b30;color:#d3efcf;border:1px solid #81ad7155;max-width:176px}

#musicControls{position:absolute;right:2%;bottom:6.3%;display:flex;gap:8px;align-items:center;font-size:12px;color:#d4e7cf;line-height:1}
#musicVolume{width:90px;padding:0;height:15px;accent-color:#b7f36c;border:0;background:transparent}
#musicValue{font-size:11px;min-width:27px}
