:root{--bg-0:#141519;--bg-1:#1c1d23;--bg-2:#24252c;--bg-3:#2d2e37;--bg-hover:#33343e;--text:#e9eaee;--text-muted:#9a9ca8;--text-faint:#686a76;--accent:#ec4d6f;--accent-hover:#f56a88;--accent-soft:#ec4d6f24;--ok:#3fb47e;--warn:#e2b93d;--danger:#e5484d;--border:#34353f;--border-soft:#2a2b33;--radius-sm:6px;--radius:10px;--radius-lg:16px;--rail-w:76px;--sidebar-w:250px;--font:"gg sans", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg-2);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:15px;line-height:1.45}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:650;line-height:1.2}p{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--bg-0);border-radius:4px}::-webkit-scrollbar-track{background:0 0}.btn{border-radius:var(--radius-sm);background:var(--bg-3);color:var(--text);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:550;transition:background .12s;display:inline-flex}.btn:hover{background:var(--bg-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.ghost{color:var(--text-muted);background:0 0}.btn.ghost:hover{background:var(--bg-3);color:var(--text)}.btn.danger{color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger);background:0 0}.btn.danger:hover{background:var(--danger);color:#fff}.input,select.input,textarea.input{border-radius:var(--radius-sm);border:1px solid var(--border-soft);background:var(--bg-0);width:100%;color:var(--text);font:inherit;outline:none;padding:9px 12px;font-size:14px;transition:border-color .12s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-faint)}.field{flex-direction:column;gap:6px;display:flex}.field>label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px;font-weight:650}.card{background:var(--bg-1);border:1px solid var(--border-soft);border-radius:var(--radius)}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge.gm{color:var(--warn);background:#e2b93d26}.badge.player{color:#7ea6ff;background:#5891ff26}.badge.observer{background:var(--bg-3);color:var(--text-muted)}.empty{border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-faint);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 20px;font-size:14px;display:flex}.error-text{color:var(--danger);font-size:13px}.ui-tooltip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-0);max-width:22rem;color:var(--text);font:12px/1.35 var(--font);pointer-events:none;overflow-wrap:anywhere;align-items:center;gap:8px;margin:0;padding:5px 8px;animation:.1s ease-out ui-tooltip-in;display:flex;position:fixed;inset:auto;box-shadow:0 4px 16px #0006}.ui-tooltip:not(:popover-open){display:none}.ui-tooltip .keys{flex-shrink:0;gap:3px;display:flex}.ui-tooltip kbd{border:1px solid var(--border);background:var(--bg-2);min-width:18px;color:var(--text-muted);font:11px/1.3 var(--font);text-align:center;border-bottom-width:2px;border-radius:4px;padding:1px 5px}@keyframes ui-tooltip-in{0%{opacity:0;transform:translateY(-2px)}}.touch-lifted{outline:2px solid var(--accent);outline-offset:-2px;-webkit-user-select:none;user-select:none}
