:root{--color-primary: #5865f2;--color-primary-hover: #4752c4;--color-secondary: #4f545c;--color-secondary-hover: #40444b;--color-success: #57f287;--color-danger: #ed4245;--color-warning: #faa61a;--bg-primary: #36393f;--bg-secondary: #2f3136;--bg-tertiary: #202225;--bg-elevated: #40444b;--text-primary: #ffffff;--text-secondary: #b9bbbe;--text-muted: #72767d;--border-primary: #4f545c;--border-secondary: #40444b;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 4px 6px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .2);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--text-primary);background:var(--bg-primary);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);user-select:none;white-space:nowrap}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:var(--text-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-secondary);color:var(--text-primary)}.btn-secondary:hover{background:var(--color-secondary-hover)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-xs)}.btn-icon{font-size:1.1em}.card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.loading-content{text-align:center;max-width:400px}.loading-spinner{position:relative;width:60px;height:60px;margin:0 auto var(--spacing-xl)}.spinner-ring{position:absolute;width:100%;height:100%;border:3px solid transparent;border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1.2s linear infinite}.spinner-ring:nth-child(2){border-top-color:var(--color-success);animation-delay:.4s}.spinner-ring:nth-child(3){border-top-color:var(--color-warning);animation-delay:.8s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-sm);color:var(--text-primary)}.loading-subtitle{color:var(--text-muted);font-size:var(--font-size-sm)}.welcome-screen{min-height:100vh;background:var(--bg-primary);padding:var(--spacing-xl)}.welcome-content{max-width:800px;margin:0 auto}.welcome-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.player-info{display:flex;align-items:center;gap:var(--spacing-md)}.player-avatar img{width:48px;height:48px;border-radius:50%;border:3px solid var(--color-primary)}.player-name{font-size:var(--font-size-xl);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.player-status{color:var(--color-success);font-size:var(--font-size-sm)}.game-hub-title{text-align:center;margin-bottom:var(--spacing-2xl)}.game-hub-title h2{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-sm)}.game-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.game-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);text-align:center;cursor:pointer;transition:all var(--transition-normal)}.game-card:hover{background:var(--bg-elevated);border-color:var(--color-primary);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.game-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.game-card h3{margin-bottom:var(--spacing-sm);color:var(--text-primary)}.game-card p{color:var(--text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.game-status{font-size:var(--font-size-xs);font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:var(--color-success);color:var(--text-primary);display:inline-block}.game-status.coming-soon{background:var(--color-secondary);color:var(--text-secondary)}.welcome-actions{display:flex;gap:var(--spacing-md);justify-content:center}.lobby-screen{min-height:100vh;background:var(--bg-primary);padding:var(--spacing-xl)}.lobby-content{max-width:1200px;margin:0 auto}.lobby-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.lobby-title h2{margin-bottom:var(--spacing-xs)}.lobby-body{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xl)}.lobby-section{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.section-header h3{margin-bottom:0}.rooms-list,.messages-list{max-height:400px;overflow-y:auto}.room-card{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-secondary);transition:all var(--transition-fast)}.room-card:hover{background:var(--bg-elevated);border-color:var(--color-primary)}.room-game{font-weight:500;color:var(--text-primary)}.room-players{font-size:var(--font-size-sm);color:var(--text-muted)}.message{padding:var(--spacing-sm);margin-bottom:var(--spacing-xs);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.message-time{color:var(--text-muted);margin-right:var(--spacing-sm)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--text-muted)}.empty-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.empty-subtitle{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.lobby-footer{margin-top:var(--spacing-xl);text-align:center}.game-screen{min-height:100vh;background:var(--bg-primary);padding:var(--spacing-xl)}.game-content{max-width:1200px;margin:0 auto}.game-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.game-body{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xl)}.game-board{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);min-height:400px}.game-sidebar{display:flex;flex-direction:column;gap:var(--spacing-lg)}.game-status,.players-list{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.status-indicator{display:flex;align-items:center;gap:var(--spacing-sm)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.status-dot.active{background:var(--color-success)}.player-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-secondary)}.player-item:last-child{border-bottom:none}.player-item img{width:32px;height:32px;border-radius:50%}.player-status{margin-left:auto;font-size:var(--font-size-xs);color:var(--text-muted)}.game-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.connect4-board{text-align:center}.board-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:var(--spacing-lg);background:var(--color-primary);padding:var(--spacing-md);border-radius:var(--radius-lg)}.cell{width:60px;height:60px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--border-primary);transition:all var(--transition-fast)}.cell.empty:hover{background:var(--bg-elevated)}.board-controls{display:flex;gap:var(--spacing-sm);justify-content:center}.drop-btn{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:var(--text-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.drop-btn:hover{background:var(--color-primary-hover)}.error-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.error-content{text-align:center;max-width:400px}.error-icon{font-size:4rem;margin-bottom:var(--spacing-lg)}.error-title{margin-bottom:var(--spacing-md);color:var(--text-primary)}.error-message{margin-bottom:var(--spacing-xl);color:var(--text-secondary)}.error-actions{display:flex;gap:var(--spacing-md);justify-content:center}@media (max-width: 768px){.lobby-body,.game-body{grid-template-columns:1fr}.welcome-actions,.error-actions{flex-direction:column}.game-options{grid-template-columns:1fr}.lobby-header,.game-header{flex-direction:column;gap:var(--spacing-md);text-align:center}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--color-secondary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-secondary-hover)}button:focus,.game-card:focus{outline:2px solid var(--color-primary);outline-offset:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.welcome-screen,.lobby-screen,.game-screen{animation:fadeIn .3s ease-out}
