.ptr{position:fixed;top:0;left:50%;z-index:100;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);box-shadow:0 4px 12px #00000073}.ptr svg{width:22px;height:22px}.ptr.ready{color:var(--accent);border-color:var(--accent)}.ptr.reloading svg{animation:ptr-spin .7s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}:root{--bg: #12161d;--panel: #1a212c;--panel-2: #222b39;--line: #2f3a4c;--fg: #e6ecf5;--muted: #8794a8;--gold: #e0c25a;--danger: #d46a5e;--accent: #6fbfa8;color-scheme:dark only}@media (prefers-color-scheme: light){:root{color-scheme:dark only}html,body{background:#12161d;color:#e6ecf5}}@media (prefers-color-scheme: dark){html,body{background:#12161d;color:#e6ecf5}}html{background:#12161d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html.in-game,html.in-game body{height:100%;overflow:hidden;overscroll-behavior:none}html.in-game #root{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}img,svg,a{-webkit-user-drag:none}.shell{max-width:1360px;margin:0 auto;padding:20px 16px 40px}.dim{color:var(--muted);font-size:13px}.alert{margin-bottom:12px;padding:10px 14px;background:#d46a5e1f;border:1px solid var(--danger);border-radius:8px;color:var(--danger);font-size:14px}.result{margin-bottom:12px;padding:12px 16px;background:var(--panel-2);border:1px solid var(--gold);border-radius:10px}.result ol{margin:8px 0 0;padding-left:20px}button{padding:10px 16px;background:var(--panel-2);color:var(--fg);border:1px solid var(--line);border-radius:9px;font:inherit;font-weight:600;cursor:pointer}@media (hover: hover){button:hover:not(:disabled){background:#2b3648}}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);color:#10251f;border-color:transparent}@media (hover: hover){button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}}input{padding:10px 12px;background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:9px;font:inherit}.lobby,.waiting{display:flex;flex-direction:column;gap:10px;max-width:360px}.lobby h1,.waiting h2{margin:0 0 6px}.games{display:flex;flex-wrap:wrap;gap:8px}.games button{flex:0 0 auto;white-space:nowrap;padding:9px 14px}.seats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.seats li{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:var(--panel);border:1px solid var(--line);border-left:3px solid transparent;border-radius:8px}.seats li.ready{border-left-color:var(--accent)}.badge{margin-left:6px;padding:1px 6px;background:var(--line);border-radius:4px;font-size:11px;color:var(--muted)}.row{display:flex;gap:8px}.opt{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--muted);cursor:pointer}.opt input{accent-color:var(--accent)}.opt select{margin-left:auto;padding:4px 8px;font:inherit;color:var(--fg);background:var(--panel-2);border:1px solid var(--line);border-radius:6px}.opt:has(input:disabled){cursor:default;opacity:.6}.lobby{max-width:420px}.lobby .join{display:flex;flex-direction:column;gap:8px}.rooms{margin-top:18px}.rooms h2{margin:0 0 8px;font-size:14px;color:var(--muted)}.rooms ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.rooms li button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;background:var(--panel);text-align:left;font-weight:500}.rooms li button.picked{border-color:var(--accent)}.rooms li button:disabled{opacity:.45}button.ghost{background:transparent;border-color:var(--line);color:var(--muted);font-weight:500}button.ghost:hover:not(:disabled){color:var(--fg);background:var(--panel)}.waiting .leave{align-self:flex-start;margin-top:6px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.topbar b{color:var(--fg)}.topbar button{padding:6px 12px;font-size:13px}.rooms .resume{font-style:normal;font-size:11px;color:var(--accent);margin-left:6px}.net-banner{position:sticky;top:0;z-index:30;margin:-20px -16px 12px;padding:8px 16px;background:var(--danger);color:#fff;font-size:13px;font-weight:600;text-align:center}.update-banner{position:sticky;top:0;z-index:30;display:block;width:calc(100% + 32px);margin:-20px -16px 12px;padding:9px 16px;border:none;border-radius:0;background:var(--accent);color:#fff;font-size:13px;font-weight:700;text-align:center}.update-banner .dim{color:#fffc;font-weight:500}.screen-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 0;text-align:center}.install-app{align-self:flex-start}button.install-app{padding:8px 14px;font-size:14px}.install-app.ios{display:flex;flex-direction:column;gap:6px}.install-app.ios .ghost{align-self:flex-start;padding:6px 12px;font-size:13px}.install-app.ios p{margin:0;font-size:13px;line-height:1.6}.is-left{opacity:.45}.left-tag{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;vertical-align:middle;background:var(--line);color:var(--muted);font-size:11px;font-weight:600;line-height:1.6}.opt.topics{flex-direction:column;align-items:stretch;cursor:default}.topic-chips{display:flex;flex-wrap:wrap;gap:6px}.topic-chips button{padding:4px 10px;font-size:12px;border-radius:999px}.topic-chips button.on{border-color:var(--accent);color:var(--accent);background:#6fbfa81f}.leave-ask{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;gap:8px;padding:10px 12px;margin-bottom:8px;border-radius:12px;background:var(--panel-2);border:1px solid var(--danger);box-shadow:0 6px 18px #00000080}.leave-ask p{margin:0;font-size:13px;line-height:1.45}.leave-ask .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.leave-ask button{padding:10px}.leave-ask button.danger{background:var(--danger);border-color:var(--danger);color:#fff}
