: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}.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)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.login-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:1rem;padding:3rem 2.5rem;width:100%;max-width:400px;text-align:center}.login-card h1{font-size:2rem;font-weight:700;margin-bottom:.5rem}.login-subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:.875rem}.btn-google-login{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem 1.5rem;background:#fff;color:#1f2937;border:1px solid #e5e7eb;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-google-login:hover{background:#f9fafb;box-shadow:0 1px 3px #0000001a}.google-icon{width:20px;height:20px}.error-message{background:#ef44441a;border:1px solid var(--error);color:var(--error);padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;font-size:.875rem}.error-hint{color:var(--text-secondary);font-size:.875rem;margin-top:1rem}.user-info{margin:1.5rem 0;padding:1rem;background:var(--bg-tertiary);border-radius:.5rem}.user-avatar{width:64px;height:64px;border-radius:50%;margin-bottom:.75rem}.user-email{color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.user-menu{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--bg-tertiary);border-radius:.5rem;margin-bottom:1rem}.user-menu img{width:32px;height:32px;border-radius:50%}.user-menu-info{flex:1;text-align:left}.user-menu-name{font-size:.875rem;font-weight:500}.user-menu-email{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}.login-card{margin:1rem;padding:2rem 1.5rem}}.location-selector{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem}.location-selector.loading,.location-selector.empty{opacity:.6;font-size:.875rem;color:var(--text-secondary)}.location-selector.single{cursor:default}.location-selector.dropdown{cursor:pointer}.location-icon{font-size:1.125rem;line-height:1}.location-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.location-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.location-id{font-size:.75rem;color:var(--text-secondary)}.location-text{font-size:.875rem;color:var(--text-secondary)}.location-select{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;outline:none;padding:.125rem 0}.location-select option{background:var(--bg-tertiary);color:var(--text-primary)}.role-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:.375rem;font-weight:500;line-height:1;white-space:nowrap}.role-badge-small{font-size:.6875rem;padding:.1875rem .375rem}.role-badge-small .role-icon{font-size:.75rem}.role-badge-medium{font-size:.75rem;padding:.25rem .5rem}.role-badge-medium .role-icon{font-size:.875rem}.role-badge-large{font-size:.875rem;padding:.375rem .75rem}.role-badge-large .role-icon{font-size:1rem}.role-super-admin{background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.3)}.role-location-admin{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.role-default{background:#a0a0a026;color:#a0a0a0;border:1px solid rgba(160,160,160,.3)}.role-icon,.role-text{line-height:1}.modal-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.75rem;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #00000080}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table thead{background:var(--bg-tertiary);border-bottom:2px solid var(--border)}.table th{text-align:left;padding:.75rem 1rem;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.table td{padding:1rem;border-bottom:1px solid var(--border)}.table tbody tr:hover{background:var(--bg-tertiary)}.table tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;line-height:1}.status-badge.success{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.status-badge.error{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.status-badge.warning{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.status-badge.pending{background:#a0a0a026;color:#a0a0a0;border:1px solid rgba(160,160,160,.3)}.btn-danger{background:var(--error);color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-danger:hover{background:#dc2626;transform:translateY(-1px)}.btn-danger:active{transform:translateY(0)}.loading-spinner{width:48px;height:48px;margin:0 auto;border:4px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.profile-switcher{position:relative}.profile-switcher-trigger{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem;cursor:pointer;transition:all .15s}.profile-switcher-trigger:hover{background:var(--border)}.profile-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.profile-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;color:#fff}.profile-info{flex:1;text-align:left;overflow:hidden}.profile-name{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-email{display:block;font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-chevron{color:var(--text-secondary);transition:transform .15s}.profile-chevron.open{transform:rotate(180deg)}.profile-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 10px 25px #00000080;z-index:100;overflow:hidden}.profile-dropdown-header{display:flex;gap:.75rem;padding:1rem;background:var(--bg-tertiary)}.profile-dropdown-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover}.profile-dropdown-avatar-placeholder{width:48px;height:48px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.25rem;color:#fff}.profile-dropdown-info{flex:1}.profile-dropdown-name{display:block;font-weight:500;color:var(--text-primary)}.profile-dropdown-email{display:block;font-size:.875rem;color:var(--text-secondary)}.profile-dropdown-divider{height:1px;background:var(--border)}.profile-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .15s}.profile-dropdown-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.profile-dropdown-item.danger{color:var(--error)}.profile-dropdown-item.danger:hover{background:#ef44441a;color:var(--error)}.profile-recent-toggle{justify-content:flex-start}.profile-recent-chevron{transition:transform .15s}.profile-recent-chevron.open{transform:rotate(90deg)}.profile-recent-list{padding:.25rem 0;background:var(--bg-tertiary)}.profile-recent-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:none;border:none;cursor:pointer;transition:background .15s}.profile-recent-item:hover{background:var(--border)}.profile-recent-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.profile-recent-avatar-placeholder{width:28px;height:28px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;color:#fff}.profile-recent-info{flex:1;text-align:left;min-width:0}.profile-recent-name{display:block;font-size:.8125rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-recent-meta{display:block;font-size:.6875rem;color:var(--text-secondary)}.profile-recent-remove{padding:.25rem;background:none;border:none;border-radius:.25rem;color:var(--text-secondary);cursor:pointer;opacity:0;transition:all .15s}.profile-recent-item:hover .profile-recent-remove{opacity:1}.profile-recent-remove:hover{background:var(--error);color:#fff}.profile-recent-item.current{cursor:default;background:var(--bg-tertiary)}.profile-recent-item.current .profile-recent-name{color:var(--accent)}.profile-recent-item.current .profile-recent-meta{color:var(--accent);opacity:.7}.tab-nav{display:flex;gap:.25rem}.tab-nav-item{padding:.625rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all .15s;white-space:nowrap}.tab-nav-item:hover{color:var(--text-primary);background:var(--bg-tertiary)}.tab-nav-item.active{color:var(--accent);border-bottom-color:var(--accent)}.sidebar-nav-container{display:flex;flex-direction:column;gap:1rem;padding:0 1rem}.sidebar-nav-section{display:flex;flex-direction:column}.sidebar-nav-section-header{display:flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--warning);margin-bottom:.5rem}.sidebar-nav-section-icon{font-size:.875rem}.unified-layout{display:flex;min-height:100vh}.unified-sidebar{width:220px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.unified-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid var(--border)}.unified-sidebar .sidebar-header h1{font-size:1.125rem;font-weight:600;margin:0}.sidebar-role-badge{font-size:.625rem;font-weight:600;padding:.25rem .5rem;background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.3);border-radius:.25rem;text-transform:uppercase;letter-spacing:.05em}.sidebar-profile{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.sidebar-status{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.8125rem;color:var(--text-secondary);border-bottom:1px solid var(--border)}.sidebar-status .status-latency{margin-left:auto;font-family:monospace}.unified-sidebar .sidebar-nav{flex:1;padding:.75rem .5rem;display:flex;flex-direction:column;gap:.25rem}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--text-secondary);text-decoration:none;border-radius:.5rem;transition:all .15s;font-size:.875rem}.sidebar-nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--accent);color:#fff}.sidebar-nav-icon{font-size:1rem;width:1.25rem;text-align:center}.sidebar-nav-label{font-weight:500}.unified-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-tabs{display:flex;gap:.25rem;padding:0 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.content-tab{padding:.875rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;margin-bottom:-1px}.content-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.content-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.content-area{flex:1;padding:1.5rem;overflow-y:auto}.impersonation-banner{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(90deg,#fbbf2426,#fbbf240d);border-bottom:1px solid rgba(251,191,36,.3)}.impersonation-banner-content{display:flex;align-items:center;gap:.75rem}.impersonation-banner-icon{font-size:1.25rem}.impersonation-banner-text{font-size:.875rem;color:var(--text-primary)}.impersonation-banner-text strong{color:#fbbf24}.impersonation-banner-exit{padding:.5rem 1rem;background:transparent;border:1px solid rgba(251,191,36,.5);border-radius:.375rem;color:#fbbf24;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.impersonation-banner-exit:hover{background:#fbbf241a;border-color:#fbbf24}.impersonation-nav{background:var(--bg-secondary);border-bottom:1px solid var(--border)}.impersonation-nav-header{padding:.5rem 1.5rem;border-bottom:1px solid var(--border)}.impersonation-nav-location{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.impersonation-tabs{display:flex;gap:.25rem;padding:0 1rem}.impersonation-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.impersonation-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.impersonation-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.impersonation-tab-icon{font-size:1rem}.impersonation-content{background:var(--bg-primary)}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--text-secondary)}.dashboard-loading p{margin-top:1rem}.page-header{margin-bottom:1.5rem}.page-header h2{font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.page-subtitle{font-size:.875rem;color:var(--text-secondary)}.tab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.tab-header h3{font-size:1.125rem;font-weight:600;margin:0}.game-count{font-size:.875rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:.25rem .75rem;border-radius:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-title{font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.empty-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.placeholder-icon{font-size:4rem;margin-bottom:1rem;opacity:.3}.placeholder-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary)}.placeholder-subtitle{font-size:.875rem;color:var(--text-secondary);margin:0}.location-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.location-status-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem;padding:1rem}.location-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.location-status-name{display:flex;align-items:center;gap:.5rem;font-weight:600}.location-status-indicator{width:8px;height:8px;border-radius:50%}.location-status-badge{font-size:.75rem;font-weight:500}.location-status-stats{display:flex;gap:1.5rem}.location-status-stat{display:flex;flex-direction:column;gap:.125rem}.location-status-stat .stat-number{font-size:1.25rem;font-weight:700}.location-status-stat .stat-label{font-size:.75rem;color:var(--text-secondary)}.location-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.location-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;transition:all .15s}.location-card:hover{border-color:var(--accent)}.location-card.disabled{opacity:.6}.location-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.location-card-info{display:flex;align-items:center;gap:.75rem}.location-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.location-card-name{font-size:1rem;font-weight:600;margin:0}.location-card-id{font-size:.75rem;color:var(--text-secondary);margin:0}.location-disabled-badge{font-size:.625rem;font-weight:600;padding:.25rem .5rem;background:#ef444426;color:var(--error);border-radius:.25rem;text-transform:uppercase}.location-card-stats{display:flex;gap:1.5rem;margin-bottom:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:.5rem}.location-card-stat{display:flex;flex-direction:column;gap:.125rem}.location-card-stat .stat-value{font-size:1.25rem;font-weight:700}.location-card-stat .stat-label{font-size:.6875rem;color:var(--text-secondary);text-transform:uppercase}.location-card-actions{display:flex;gap:.5rem}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-weight:700;font-size:.875rem}.rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1a1a}.rank-2{background:linear-gradient(135deg,#9ca3af,#6b7280);color:#1a1a1a}.rank-3{background:linear-gradient(135deg,#cd7f32,sienna);color:#1a1a1a}.rank-4,.rank-5{background:var(--bg-tertiary);color:var(--text-secondary)}.new-badge{font-size:.625rem;font-weight:600;padding:.125rem .375rem;background:var(--accent);color:#fff;border-radius:.25rem}.seat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.seat-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem;padding:.75rem;text-align:center;transition:all .15s}.seat-available{border-color:var(--success);background:#22c55e1a}.seat-occupied{border-color:var(--warning);background:#f59e0b1a}.seat-reserved{border-color:var(--accent);background:#3b82f61a}.seat-maintenance{border-color:var(--error);background:#ef44441a}.seat-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.seat-number{font-weight:700;font-size:.875rem}.seat-status-badge{font-size:.5rem;padding:.125rem .25rem;border-radius:.25rem;color:#fff;font-weight:600}.seat-card-info{font-size:.75rem}.seat-player{font-weight:500;color:var(--text-primary)}.seat-duration{color:var(--text-secondary);font-size:.6875rem}.room-seat-count{font-size:.875rem;color:var(--text-secondary)}.alerts-list{display:flex;flex-direction:column;gap:.5rem}.alert-item{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;background:var(--bg-tertiary);border-radius:.5rem;transition:all .15s}.alert-item.unread{background:#3b82f61a;border-left:3px solid var(--accent)}.alert-icon{font-size:1rem;flex-shrink:0}.alert-content{flex:1;min-width:0}.alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.alert-title{font-weight:600;font-size:.875rem}.alert-time{font-size:.75rem;color:var(--text-secondary)}.alert-message{font-size:.8125rem;color:var(--text-secondary);margin:0}.alert-read-btn{padding:.25rem .5rem;background:transparent;border:1px solid var(--border);border-radius:.25rem;color:var(--text-secondary);font-size:.75rem;cursor:pointer;flex-shrink:0}.alert-read-btn:hover{background:var(--bg-secondary)}.unread-badge{font-size:.75rem;padding:.125rem .5rem;background:var(--error);color:#fff;border-radius:1rem;margin-left:.5rem}.games-list{display:flex;flex-direction:column;gap:.75rem}.game-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;padding:1rem}.game-waiting{border-left:3px solid var(--warning)}.game-active{border-left:3px solid var(--success)}.game-completed{border-left:3px solid var(--text-secondary)}.game-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.game-card-info{display:flex;align-items:center;gap:.75rem}.game-name{font-weight:600}.game-room{font-size:.75rem;color:var(--text-secondary);padding:.125rem .5rem;background:var(--bg-tertiary);border-radius:.25rem}.game-status-badge{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:.25rem}.game-status-badge.waiting{background:#f59e0b26;color:var(--warning)}.game-status-badge.active{background:#22c55e26;color:var(--success)}.game-status-badge.completed{background:#a0a0a026;color:var(--text-secondary)}.game-card-details{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:.75rem}.game-players,.game-duration,.game-score,.game-time{display:flex;flex-direction:column;gap:.125rem}.detail-label{font-size:.6875rem;color:var(--text-secondary);text-transform:uppercase}.detail-value{font-size:.875rem}.detail-value.duration{font-family:monospace;color:var(--accent)}.detail-value.score{font-weight:700;color:var(--success)}.game-card-actions{display:flex;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.equipment-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.5rem;padding:1rem}.equipment-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.equipment-info{display:flex;align-items:center;gap:.75rem}.equipment-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.equipment-name{display:block;font-weight:600;font-size:.875rem}.equipment-location{display:block;font-size:.75rem;color:var(--text-secondary)}.equipment-status-badge{font-size:.75rem;font-weight:500}.pc-metrics{display:flex;flex-direction:column;gap:.5rem}.metric{display:flex;align-items:center;gap:.5rem}.metric-label{width:50px;font-size:.75rem;color:var(--text-secondary)}.metric-bar{flex:1;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.metric-fill{height:100%;border-radius:3px;transition:width .3s ease}.metric-value{width:45px;text-align:right;font-size:.75rem;font-family:monospace}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item .detail-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.detail-item .detail-value{font-size:.875rem;font-weight:500}.detail-item .detail-value.success{color:var(--success)}.detail-item .detail-value.error{color:var(--error)}.room-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;transition:all .15s}.room-card:hover{border-color:var(--accent)}.room-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.room-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.room-card-title{display:flex;align-items:center;gap:.5rem}.room-status-indicator{width:8px;height:8px;border-radius:50%}.room-id{font-weight:600;font-size:1rem}.room-card-stats{display:flex;gap:1.5rem;margin-bottom:1rem}.room-stat{display:flex;flex-direction:column;gap:.125rem}.room-stat-label{font-size:.75rem;color:var(--text-secondary)}.room-stat-value{font-size:1.25rem;font-weight:600}.room-card-actions,.room-quick-actions{display:flex;gap:.5rem}.room-list{display:flex;flex-direction:column;gap:1.5rem}.room-list-header{display:flex;justify-content:space-between;align-items:center}.room-list-stats{display:flex;gap:2rem}.room-list-stat{display:flex;align-items:baseline;gap:.5rem}.room-list-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.room-list-stat-label{font-size:.875rem;color:var(--text-secondary)}.room-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.room-list-loading,.room-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.room-list-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.room-list-empty-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.room-list-empty-subtitle{font-size:.875rem;color:var(--text-secondary)}.location-dashboard{display:flex;flex-direction:column;gap:1.5rem}.location-dashboard-header{display:flex;justify-content:space-between;align-items:flex-start}.location-dashboard-title{font-size:1.5rem;font-weight:700;margin:0}.location-dashboard-subtitle{font-size:.875rem;color:var(--text-secondary);margin-top:.25rem}.location-dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.location-dashboard-empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.location-dashboard-empty-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.location-dashboard-empty-subtitle{font-size:.875rem;color:var(--text-secondary)}@media(max-width:768px){.location-admin-header{flex-wrap:wrap;height:auto;padding:1rem;gap:1rem}.location-admin-header-center{order:3;width:100%;justify-content:flex-start;overflow-x:auto}.tab-nav{width:100%}.room-list-grid{grid-template-columns:1fr}}.cartridge-management-page{display:flex;flex-direction:column;gap:1.5rem}.cartridge-list-tab .tab-header,.cartridge-details-tab .tab-header,.cartridge-edit-tab .tab-header,.cartridge-create-tab .tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.cartridge-list-tab .tab-header h3,.cartridge-details-tab .tab-header h3,.cartridge-edit-tab .tab-header h3,.cartridge-create-tab .tab-header h3{font-size:1.25rem;font-weight:600}.filter-buttons{display:flex;gap:.5rem}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.cartridge-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.cartridge-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;cursor:pointer;transition:all .15s}.cartridge-card:hover{border-color:var(--accent)}.cartridge-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px #3b82f633}.cartridge-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.cartridge-card-info{display:flex;align-items:baseline;gap:.5rem}.cartridge-name{font-weight:600;font-size:1rem}.cartridge-version{font-size:.75rem;color:var(--text-secondary);padding:.125rem .375rem;background:var(--bg-tertiary);border-radius:.25rem}.cartridge-status-badge{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:.25rem}.cartridge-status-badge.active{background:#22c55e26;color:var(--success)}.cartridge-status-badge.draft{background:#f59e0b26;color:var(--warning)}.cartridge-status-badge.archived{background:#a0a0a026;color:var(--text-secondary)}.cartridge-description{font-size:.875rem;color:var(--text-secondary);margin-bottom:1rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cartridge-card-details{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}.cartridge-detail{display:flex;flex-direction:column;gap:.125rem}.cartridge-card-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);margin-bottom:1rem}.cartridge-card-actions{display:flex;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.cartridge-select{width:auto;min-width:200px}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.details-section{display:flex;flex-direction:column;gap:.75rem}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.detail-row:last-child{border-bottom:none}.detail-row.full-width{flex-direction:column;align-items:flex-start;gap:.5rem}.detail-row .detail-label{font-size:.8125rem;color:var(--text-secondary)}.detail-row .detail-value{font-size:.875rem;font-weight:500}.detail-row code{font-family:Monaco,Menlo,monospace;font-size:.8125rem;background:var(--bg-primary);padding:.125rem .5rem;border-radius:.25rem}.phases-card,.teams-card{grid-column:1 / -1}.phase-count,.team-count{font-size:.875rem;color:var(--text-secondary);font-weight:400}.phases-list{display:flex;flex-direction:column;gap:.5rem}.phase-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:.5rem}.phase-item .phase-number{background:var(--accent);color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.phase-info{flex:1;display:flex;flex-direction:column;gap:.125rem}.phase-name{font-weight:500;font-size:.875rem}.phase-description{font-size:.75rem;color:var(--text-secondary)}.phase-duration{font-family:monospace;font-size:.875rem;color:var(--accent)}.teams-list{display:flex;flex-wrap:wrap;gap:.75rem}.team-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:.5rem}.team-color{width:16px;height:16px;border-radius:50%;flex-shrink:0}.team-info{display:flex;flex-direction:column;gap:.125rem}.team-name{font-weight:500;font-size:.875rem}.team-max{font-size:.75rem;color:var(--text-secondary)}.editor-actions{display:flex;gap:.5rem}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.dashboard-loading p{margin-top:1rem;color:var(--text-secondary)}@media(max-width:768px){.cartridge-cards-grid,.details-grid{grid-template-columns:1fr}.filter-buttons{flex-wrap:wrap}.cartridge-list-tab .tab-header,.cartridge-details-tab .tab-header,.cartridge-edit-tab .tab-header,.cartridge-create-tab .tab-header{flex-direction:column;gap:1rem;align-items:flex-start}}
