:root{--bg:#f6f5f1;--panel:#fff;--ink:#1d1d1b;--quiet:#6b6a65;--line:#dddbd3;--accent:#b5452b;--good:#2e7d4f;color:var(--ink);background:var(--bg);font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#171716;--panel:#22221f;--ink:#ecebe6;--quiet:#9e9c94;--line:#3a3934;--accent:#e0775c;--good:#5fbf88}}*{box-sizing:border-box}[hidden]{display:none!important}body{min-height:100vh;margin:0}.topbar{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:12px;padding:12px 16px;display:flex}.brand{color:var(--accent);letter-spacing:.02em;font-weight:700;text-decoration:none}.who{color:var(--quiet)}.conn{background:var(--quiet);border-radius:50%;width:10px;height:10px;margin-left:auto}.conn.up{background:var(--good)}.conn.down{background:var(--accent)}main{max-width:1440px;margin:0 auto;padding:24px 16px}.lobby{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}.lobby h1{margin:0 0 4px;font-size:24px}.lobby p{color:var(--quiet);margin:0 0 20px}.choices{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;padding:10px 16px;text-decoration:none;display:inline-block}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button[aria-disabled=true]{opacity:.5;pointer-events:none}.table{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:24px;display:grid}@media (max-width:720px){.table{grid-template-columns:minmax(0,1fr)}}.board{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}.side{gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.card h2{text-transform:uppercase;letter-spacing:.06em;color:var(--quiet);margin:0 0 8px;font-size:13px}.seats{gap:6px;margin:0;padding:0;list-style:none;display:grid}.seats li{align-items:center;gap:8px;display:flex}.seats li:before{content:"";background:0 0;border-radius:50%;width:8px;height:8px}.seats li.active:before{background:var(--accent)}.seats .tag{color:var(--quiet);font-size:13px}.log{max-height:320px;margin:0;padding:0;font-size:14px;list-style:none;overflow-y:auto}.log li{border-bottom:1px solid var(--line);padding:4px 0}.log li:last-child{border-bottom:0}.log .empty{color:var(--quiet)}.toast{background:var(--ink);color:var(--bg);border-radius:8px;max-width:calc(100% - 32px);padding:10px 16px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}
