:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #252525;--text-primary: #ffffff;--text-secondary: #a0a0a0;--accent: #3b82f6;--accent-hover: #2563eb;--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--border: #333333}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:1rem;display:flex;flex-direction:column}.sidebar-header{padding:1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.sidebar-header h1{font-size:1.25rem;font-weight:600}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--text-secondary);text-decoration:none;border-radius:.5rem;transition:all .15s}.sidebar-nav a:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-nav a.active{background:var(--accent);color:#fff}.main-content{flex:1;padding:2rem;overflow-y:auto}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-title{font-size:1.125rem;font-weight:600}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.stat-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:700}.stat-value.success{color:var(--success)}.stat-value.warning{color:var(--warning)}.stat-value.error{color:var(--error)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.5rem;border:none;cursor:pointer;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--error);color:#fff}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.connected{background:var(--success)}.status-dot.disconnected{background:var(--error)}.status-dot.pending{background:var(--warning)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.table th{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.table tbody tr:hover{background:var(--bg-tertiary)}.connection-status{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-tertiary);border-radius:.5rem;font-size:.875rem}.player-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:.5rem;margin-bottom:.5rem}.player-info{display:flex;align-items:center;gap:.75rem}.player-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.player-name{font-weight:500}.player-status{font-size:.75rem;color:var(--text-secondary)}.game-state{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.game-state.idle{background:var(--bg-tertiary);color:var(--text-secondary)}.game-state.lobby{background:#3b82f620;color:#3b82f6}.game-state.countdown{background:#f59e0b20;color:#f59e0b}.game-state.playing{background:#22c55e20;color:#22c55e}.game-state.paused{background:#f59e0b20;color:#f59e0b}.game-state.gameOver{background:#ef444420;color:#ef4444}input[type=text],input[type=number],select{width:100%;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);font-size:.875rem}input:focus,select:focus{outline:none;border-color:var(--accent)}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-secondary)}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);padding-bottom:0}.tab{padding:.75rem 1.5rem;background:transparent;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;background:var(--bg-tertiary)}.data-table tbody tr:hover{background:var(--bg-tertiary)}.data-table code{background:var(--bg-primary);padding:.125rem .5rem;border-radius:.25rem;font-size:.8125rem;font-family:Monaco,Menlo,monospace}.tag{display:inline-flex;align-items:center;padding:.125rem .5rem;background:var(--bg-primary);border:1px solid var(--border);border-radius:9999px;font-size:.75rem;color:var(--text-secondary)}textarea{width:100%;padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);font-size:.875rem;font-family:inherit;resize:vertical}textarea:focus{outline:none;border-color:var(--accent)}input[type=color]{padding:0;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-tertiary)}.btn:disabled{opacity:.5;cursor:not-allowed}input:disabled,select:disabled{opacity:.6;cursor:not-allowed}small{font-size:.75rem;color:var(--text-secondary)}@media (max-width: 768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.sidebar{position:fixed;left:-240px;height:100vh;z-index:100;transition:left .3s}.sidebar.open{left:0}}
