:root{--bg:#0a1420;--fg:#e8ecf1;--muted:#8a96a6;--accent:#4a90d9;--accent-strong:#2a70b9;--danger:#c33;--success:#2a9d8f;--warning:#e9c46a;--panel:#16202e;--panel-strong:#1f2d40;--border:#2a3a50;--radius:8px;--space:12px;--space-lg:24px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, Menlo, Consolas, monospace;font-family:var(--font);color:var(--fg);background:var(--bg);font-size:16px}*,:before,:after{box-sizing:border-box}html,body,#game,#ui-root{width:100%;height:100%;margin:0;padding:0;overflow:hidden}#ui-root{pointer-events:none;position:absolute;inset:0}#ui-root>*{pointer-events:auto}button{font:inherit;background:var(--panel-strong);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;min-height:44px;padding:10px 16px}button:hover{background:var(--accent);border-color:var(--accent-strong)}button:focus-visible{outline:3px solid var(--warning);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent-strong)}button.danger{background:var(--danger);border-color:#822}button:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=number],select{font:inherit;background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);width:100%;min-height:44px;padding:10px 12px}input[type=range]{width:100%}input:focus-visible,select:focus-visible{outline:3px solid var(--warning);outline-offset:2px}label{color:var(--muted);margin:8px 0;font-size:13px;display:block}label>input,label>select{margin-top:4px}.screen{padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:auto}.panel{background:var(--panel);border:1px solid var(--border);padding:var(--space-lg);border-radius:12px;width:100%;max-width:520px}.panel h1{margin:0 0 var(--space) 0;font-size:24px}.panel h2{margin:var(--space-lg) 0 var(--space) 0;font-size:18px}.row{gap:var(--space);flex-wrap:wrap;display:flex}.row>*{flex:1;min-width:0}.muted{color:var(--muted);font-size:13px}.error{color:var(--danger);min-height:18px;font-size:13px}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:480px){.screen{padding:8px}.panel{padding:var(--space)}button{padding:12px 16px}}.main-menu .buttons{gap:var(--space);margin-top:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.main-menu .buttons button{padding:20px;font-size:16px}.name-display{margin-top:var(--space);padding:var(--space);background:var(--panel-strong);border-radius:var(--radius);justify-content:space-between;align-items:center;display:flex}.name-display .change-btn{min-height:36px;padding:4px 10px}.version{color:var(--muted);font-size:11px;position:absolute;bottom:8px;right:12px}.create-room form>*{margin-bottom:var(--space)}.skin-grid{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin-top:4px;display:grid}.skin-tile{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;min-height:80px;padding:8px;font-size:12px;display:flex}.skin-tile.selected{border-color:var(--accent);background:var(--panel-strong)}.join-room .room-list{max-height:240px;margin-top:var(--space);flex-direction:column;gap:6px;display:flex;overflow:auto}.room-list .room-row{background:var(--panel-strong);border-radius:var(--radius);cursor:pointer;justify-content:space-between;gap:8px;padding:10px;display:flex}.room-list .room-row:hover{background:var(--accent-strong)}.room-list .empty{color:var(--muted);text-align:center;padding:24px}.room-lobby .share-url{background:var(--panel-strong);border-radius:var(--radius);font-family:var(--font-mono);word-break:break-all;margin-top:var(--space);align-items:center;gap:8px;padding:10px;font-size:12px;display:flex}.room-lobby .share-url button{min-height:36px;padding:4px 10px}.player-slots{gap:var(--space);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.player-slot{border:2px solid var(--border);border-radius:var(--radius);min-width:200px;padding:var(--space);background:var(--panel-strong);flex:1}.player-slot.empty{opacity:.7;text-align:center;border-style:dashed}.player-slot.ready{border-color:var(--success)}.my-controls{margin-top:var(--space-lg)}.ready-btn{width:100%;padding:16px;font-size:18px}.ready-btn.active{background:var(--success);border-color:#1a7d6f}.hud{pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud .scoreboard{z-index:2;font-family:var(--font-mono);border-radius:var(--radius);pointer-events:none;-webkit-user-select:none;user-select:none;background:#0009;padding:8px 16px;font-size:20px;position:absolute}.hud .sb-p{white-space:nowrap}.hud .sb-vs{opacity:.5;font-size:14px}.hud[data-scoreboard=top-h] .scoreboard{flex-direction:row;justify-content:space-between;align-items:center;gap:32px;min-width:300px;display:flex;top:12px;left:50%;transform:translate(-50%)}.hud[data-scoreboard=top-h] .sb-vs{display:inline}.hud[data-scoreboard=top-v] .scoreboard{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex;top:12px;left:50%;transform:translate(-50%)}.hud[data-scoreboard=top-v] .sb-vs{display:block}.hud[data-scoreboard=side] .scoreboard{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex;top:50%;left:12px;transform:translateY(-50%)}.hud[data-scoreboard=side] .sb-vs{display:block}.hud .match-timer{border-radius:var(--radius);font-family:var(--font-mono);z-index:2;background:#0009;align-self:center;margin-top:4px;padding:4px 10px;font-size:16px}.hud[data-scoreboard=top-h] .match-timer{margin-top:48px}.hud[data-scoreboard=top-v] .match-timer{margin-top:80px}.hud[data-scoreboard=side] .match-timer{align-self:auto;margin-top:0;position:absolute;top:calc(50% + 60px);left:12px}.hud .match-timer.low{color:var(--warning);animation:.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hud .spectators{border-radius:var(--radius);background:#0009;padding:6px 10px;font-size:13px;position:absolute;top:12px;right:12px}.hud .pause-banner{background:#000000b3;justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;inset:0}.hud .pause-menu{z-index:5;background:#000000bf;justify-content:center;align-items:center;position:absolute;inset:0}.hud .pause-menu-panel{background:var(--panel);text-align:center;border-radius:12px;flex-direction:column;align-items:stretch;gap:12px;min-width:220px;padding:24px 32px;display:flex}.hud .pause-menu-title{font-size:22px;font-family:var(--font-mono);margin-bottom:8px}.hud .serve-overlay{font-family:var(--font-mono);color:#fff;text-shadow:0 6px 24px #000c,0 0 40px #0009;pointer-events:none;justify-content:center;align-items:center;font-size:160px;animation:.6s ease-in-out infinite pulse;display:flex;position:absolute;inset:0}.hud .menu-btn{position:absolute;bottom:12px;right:12px}.game-over-overlay{z-index:10;background:#000000d9;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-over-overlay .content{background:var(--panel);text-align:center;border-radius:12px;min-width:320px;padding:32px}.game-over-overlay h1{margin:0 0 12px;font-size:36px}.game-over-overlay .final-score{font-family:var(--font-mono);margin:16px 0;font-size:24px}.game-over-overlay .actions{justify-content:center;gap:8px;margin-top:16px;display:flex}.chat-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-height:120px;max-height:240px;display:flex;overflow:hidden}.chat-panel .messages{flex-direction:column;flex:1;gap:4px;padding:8px;font-size:13px;display:flex;overflow-y:auto}.chat-panel .message{border-radius:4px;padding:4px 6px}.chat-panel .message .from{color:var(--muted);margin-right:4px;font-size:11px}.chat-panel .message.owner .from{color:var(--warning)}.chat-panel .message.opponent .from{color:var(--accent)}.chat-panel .input-row{border-top:1px solid var(--border);gap:6px;padding:6px;display:flex}.chat-panel .input-row input{flex:1;min-height:36px}.chat-panel .input-row button{min-height:36px;padding:4px 12px}.chat-panel.collapsed .messages,.chat-panel.collapsed .input-row{display:none}.chat-panel .toggle{cursor:pointer;background:var(--panel-strong);-webkit-user-select:none;user-select:none;padding:6px 8px;font-size:13px}@supports (padding-bottom:env(keyboard-inset-height)){.chat-panel .input-row{padding-bottom:calc(6px + env(keyboard-inset-height,0))}}
