@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap";*{box-sizing:border-box}:root{--color-primary: #f59e0b;--color-primary-hover: #d97706;--color-primary-glow: rgba(245, 158, 11, .25);--color-success: #10b981;--color-success-glow: rgba(16, 185, 129, .25);--color-error: #ef4444;--color-error-glow: rgba(239, 68, 68, .25);--color-warning: #f59e0b;--bg-primary: #0c0f14;--bg-secondary: #141820;--bg-tertiary: #1c222d;--bg-elevated: #242b38;--bg-overlay: rgba(0, 0, 0, .7);--text-primary: #f4f4f5;--text-secondary: #a1a1aa;--text-muted: #52525b;--text-accent: var(--color-primary);--border-color: #27272a;--border-light: #3f3f46;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--shadow-glow: 0 0 40px var(--color-primary-glow);--shadow-success-glow: 0 0 30px var(--color-success-glow);--shadow-error-glow: 0 0 30px var(--color-error-glow);--font-display: "Bebas Neue", "Impact", sans-serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;font-family:var(--font-body);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--space-2xs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--transition-fast: .12s cubic-bezier(.4, 0, .2, 1);--transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:light){:root{--bg-primary: #fafafa;--bg-secondary: #f4f4f5;--bg-tertiary: #e4e4e7;--bg-elevated: #ffffff;--bg-overlay: rgba(255, 255, 255, .9);--text-primary: #18181b;--text-secondary: #52525b;--text-muted: #a1a1aa;--border-color: #e4e4e7;--border-light: #d4d4d8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .12)}}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background-color:var(--bg-primary);color:var(--text-primary);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at top,var(--bg-secondary) 0%,transparent 60%),radial-gradient(ellipse at bottom right,rgba(245,158,11,.03) 0%,transparent 50%);pointer-events:none;z-index:-1}#root{min-height:100vh;min-height:100dvh}button{font-family:inherit;border:none;cursor:pointer;background:none}input{font-family:inherit;border:none;outline:none;background:none}h1,h2,h3,h4,h5,h6,p{margin:0}.display-text{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-accent{color:var(--text-accent)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background-color:var(--color-primary);color:var(--bg-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.glass{background:#141820cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@media(prefers-color-scheme:light){.glass{background:#fffc}}.protected-route-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background)}.loading-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.loading-logo{font-size:4rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:.875rem;color:var(--color-text-secondary);margin:0}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.header-left,.header-right{display:flex;align-items:center;gap:.5rem;min-width:60px}.header-right{justify-content:flex-end}.header-title{font-size:1.125rem;font-weight:600;color:var(--color-text);margin:0;text-align:center;flex:1}.header-back-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--color-text);border-radius:8px;cursor:pointer;transition:background-color .15s}.header-back-btn:hover{background:var(--color-background)}.header-login-btn{padding:.5rem 1rem;border:none;background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;transition:opacity .15s}.header-login-btn:hover{opacity:.9}.user-menu-container{position:relative}.user-avatar-btn{width:36px;height:36px;border:none;background:transparent;padding:0;border-radius:50%;cursor:pointer;overflow:hidden;transition:box-shadow .15s}.user-avatar-btn:hover{box-shadow:0 0 0 2px var(--color-primary)}.user-avatar-img{width:100%;height:100%;object-fit:cover}.user-avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:#fff}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 4px 20px #00000026;overflow:hidden;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:1rem;display:flex;flex-direction:column;gap:.25rem}.user-menu-name{font-size:.9375rem;font-weight:600;color:var(--color-text)}.user-menu-email{font-size:.8125rem;color:var(--color-text-secondary)}.user-menu-divider{height:1px;background:var(--color-border)}.user-menu-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:none;background:transparent;font-size:.875rem;color:var(--color-text);text-align:left;cursor:pointer;transition:background-color .15s}.user-menu-item:hover{background:var(--color-background)}.user-menu-item svg{opacity:.7}.user-menu-item--danger{color:#ef4444}.user-menu-item--danger:hover{background:#ef44441a}.home-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative}.home-page>.app-header{flex-shrink:0}.home-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-lg);width:100%;max-width:520px;margin:0 auto;gap:var(--space-2xl);animation:fadeInUp .6s ease-out}.home-header{text-align:center}.logo{width:88px;height:88px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg);box-shadow:var(--shadow-lg),0 0 60px var(--color-primary-glow);position:relative;animation:fadeInScale .5s ease-out}.logo:before{content:"";position:absolute;inset:-2px;background:linear-gradient(135deg,var(--color-primary),transparent,var(--color-primary));border-radius:inherit;z-index:-1;opacity:.5}.logo-icon{font-size:44px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.home-title{font-family:var(--font-display);font-size:52px;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:var(--space-sm)}.home-subtitle{font-size:15px;color:var(--text-muted);letter-spacing:.02em}.modes-container{width:100%}.modes-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-md);text-align:center}.modes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.mode-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);text-align:center;position:relative;overflow:hidden}.mode-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));transform:scaleX(0);transition:transform var(--transition-normal)}.mode-card:hover{border-color:var(--color-primary);background-color:var(--bg-tertiary);transform:translateY(-4px);box-shadow:var(--shadow-lg),0 8px 32px var(--color-primary-glow)}.mode-card:hover:before{transform:scaleX(1)}.mode-card:active{transform:translateY(-2px)}.mode-icon{font-size:36px;line-height:1;margin-bottom:var(--space-xs)}.mode-label{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;line-height:1}.mode-description{font-size:12px;color:var(--text-muted);line-height:1.4}.training-section{width:100%;margin-top:var(--space-md)}.training-button{width:100%;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);text-align:left}.training-button:hover{border-color:var(--color-primary);background-color:var(--bg-tertiary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.training-button:active{transform:translateY(0)}.training-icon{font-size:28px;flex-shrink:0}.training-text{flex:1;display:flex;flex-direction:column;gap:2px}.training-label{font-size:15px;font-weight:600;color:var(--text-primary)}.training-desc{font-size:12px;color:var(--text-muted)}.training-arrow{font-size:18px;color:var(--text-muted);flex-shrink:0;transition:transform var(--transition-fast)}.training-button:hover .training-arrow{transform:translate(4px);color:var(--color-primary)}.home-footer{text-align:center;opacity:.6}.home-footer p{font-size:12px;color:var(--text-muted)}@media(max-width:400px){.modes-grid{grid-template-columns:1fr}.mode-card{padding:var(--space-md)}.mode-icon{font-size:28px}.mode-label{font-size:24px}.home-title{font-size:40px}}@media(min-width:640px){.home-title{font-size:64px}.home-container{max-width:640px}.modes-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.mode-card{padding:var(--space-xl) var(--space-lg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-weight:600;font-family:var(--font-body);letter-spacing:.01em;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-fast)}.btn:hover:before{opacity:1}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#000;font-weight:700;box-shadow:var(--shadow-md),inset 0 1px #fff3}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 8px 24px var(--color-primary-glow),inset 0 1px #fff3}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-elevated);border-color:var(--border-light);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,var(--color-error) 0%,#dc2626 100%);color:#fff;font-weight:700;box-shadow:var(--shadow-md)}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 8px 24px var(--color-error-glow)}.btn-ghost{background-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-ghost:before{display:none}.btn-small{padding:var(--space-sm) var(--space-md);font-size:13px;border-radius:var(--radius-sm)}.btn-medium{padding:12px var(--space-lg);font-size:14px;min-height:44px}.btn-large{padding:var(--space-md) var(--space-xl);font-size:15px;min-height:52px;border-radius:var(--radius-lg)}.btn-full{width:100%}.btn-icon{display:flex;align-items:center;justify-content:center}.player-input{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.player-input:focus-within{background-color:var(--bg-primary);border-color:var(--color-primary);box-shadow:0 0 16px var(--color-primary-glow)}.player-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px var(--color-primary-glow)}.player-avatar span{font-family:var(--font-display);font-size:16px;font-weight:400;color:#000;letter-spacing:.04em}.player-name-input{flex:1;font-size:15px;font-weight:500;color:var(--text-primary);background:transparent;padding:var(--space-sm) 0;min-width:0}.player-name-input::placeholder{color:var(--text-muted);font-weight:400}.player-remove-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background-color:transparent;color:var(--text-muted);border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0}.player-remove-btn:hover{background-color:#ef444426;color:var(--color-error)}.player-remove-btn:active{transform:scale(.95)}.rule-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);width:100%;padding:var(--space-md) 0;background:transparent;text-align:left;cursor:pointer;transition:all var(--transition-fast)}.rule-toggle:hover{opacity:.9}.rule-toggle-content{flex:1}.rule-toggle-label{display:block;font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.rule-toggle-description{display:block;font-size:13px;color:var(--text-muted);line-height:1.4}.toggle-switch{width:52px;height:28px;background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-full);padding:2px;transition:all var(--transition-fast);flex-shrink:0}.toggle-switch.active{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-color:transparent}.toggle-knob{width:20px;height:20px;background-color:var(--text-muted);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.toggle-switch.active .toggle-knob{transform:translate(24px);background-color:#000}.leg-selector{padding:var(--space-md) 0}.leg-selector-label{margin-bottom:var(--space-md)}.leg-selector-title{display:block;font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.leg-selector-description{display:block;font-size:13px;color:var(--text-muted);line-height:1.4}.leg-options{display:flex;gap:var(--space-sm)}.leg-option{flex:1;padding:var(--space-md);background-color:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-display);font-size:24px;font-weight:400;color:var(--text-secondary);letter-spacing:.02em;transition:all var(--transition-fast)}.leg-option:hover{border-color:var(--text-muted);transform:translateY(-2px)}.leg-option.active{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-color:transparent;color:#000;box-shadow:var(--shadow-md),0 4px 16px var(--color-primary-glow)}.qr-container{display:flex;align-items:center;justify-content:center;padding:var(--space-md);background-color:#fff;border-radius:var(--radius-lg)}.qr-canvas{display:block}.join-qr{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg);background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.join-code-display{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.join-code-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}.join-code-value{font-family:var(--font-display);font-size:36px;font-weight:400;color:var(--color-primary);letter-spacing:.2em;text-shadow:0 0 20px var(--color-primary-glow)}.copy-link-btn{padding:var(--space-sm) var(--space-lg);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.copy-link-btn:hover{background-color:var(--bg-elevated);border-color:var(--color-primary)}.copy-link-btn:active{transform:scale(.98)}.qr-hint{font-size:12px;color:var(--text-muted);text-align:center;line-height:1.5}.qr-url{color:var(--color-primary);font-family:var(--font-mono);font-size:11px}.connection-status{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);font-size:12px}.connection-status.connected{border-color:#22c55e4d}.connection-status.disconnected{border-color:#ef44444d}.status-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-error);flex-shrink:0}.status-dot.connected{background-color:var(--color-success)}.status-dot.polling{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.status-text{color:var(--text-secondary);font-weight:500}.status-time{color:var(--text-muted);margin-left:auto}.connection-compact{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.connection-compact .status-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-error)}.connection-compact.connected .status-dot{background-color:var(--color-success)}.connection-compact.polling .status-dot{animation:pulse 1s ease-in-out infinite}.connection-compact.error .status-dot{background-color:var(--color-warning);animation:blink .5s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.session-lobby{display:flex;flex-direction:column;gap:var(--space-lg)}.lobby-section{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border-color)}.lobby-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.lobby-section-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}.lobby-player-count{font-size:12px;color:var(--text-muted);background-color:var(--bg-tertiary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.lobby-player-list{display:flex;flex-direction:column;gap:var(--space-sm)}.player-card{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color);transition:all var(--transition-fast)}.player-card.is-me{border-color:var(--color-primary);background-color:#f59e0b0d}.player-card.disconnected{opacity:.6}.player-info{display:flex;align-items:center;gap:var(--space-md);flex:1;min-width:0}.player-position{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary);border-radius:50%;font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--text-muted);flex-shrink:0}.player-details{display:flex;flex-direction:column;gap:2px;min-width:0}.player-name{display:flex;align-items:center;gap:var(--space-sm);font-size:15px;font-weight:600;color:var(--text-primary)}.me-badge{font-size:10px;font-weight:700;color:var(--color-primary);background-color:#f59e0b26;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.host-badge{font-size:10px;font-weight:700;color:var(--color-success);background-color:#22c55e26;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.player-meta{display:flex;align-items:center;gap:var(--space-sm);font-size:12px;color:var(--text-muted)}.disconnected-badge{color:var(--color-error);font-weight:600}.player-actions{display:flex;gap:var(--space-xs)}.player-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.player-action-btn:hover{border-color:var(--text-muted)}.player-action-btn.remove:hover{background-color:#ef44441a;border-color:var(--color-error);color:var(--color-error)}.player-action-btn.takeover:hover{background-color:#f59e0b1a;border-color:var(--color-primary);color:var(--color-primary)}.add-player-trigger{display:flex;align-items:center;justify-content:center;padding:var(--space-md);background-color:transparent;border:2px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.add-player-trigger:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:#f59e0b0d}.add-player-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background-color:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.add-player-input{width:100%;padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;color:var(--text-primary)}.add-player-input:focus{outline:none;border-color:var(--color-primary)}.add-player-actions{display:flex;gap:var(--space-sm)}.lobby-error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:var(--space-md);color:var(--color-error);font-size:14px;text-align:center}.lobby-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.waiting-message{text-align:center;padding:var(--space-lg);color:var(--text-muted);font-size:14px;background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.setup-page{min-height:100vh;min-height:100dvh;background-color:var(--bg-primary)}.setup-header{position:sticky;top:0;z-index:10;padding:var(--space-md) var(--space-lg);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.setup-container{max-width:520px;margin:0 auto;padding:var(--space-lg);padding-bottom:140px;animation:fadeInUp .4s ease-out}.setup-hero{text-align:center;margin-bottom:var(--space-xl)}.setup-mode-badge{display:inline-block;font-family:var(--font-display);font-size:72px;font-weight:400;color:var(--color-primary);letter-spacing:.02em;line-height:1;text-shadow:0 0 40px var(--color-primary-glow)}.setup-title{font-size:14px;font-weight:600;color:var(--text-muted);margin-top:var(--space-sm);text-transform:uppercase;letter-spacing:.1em}.setup-description{font-size:14px;color:var(--text-secondary);margin-top:var(--space-sm);line-height:1.5}.setup-content{display:flex;flex-direction:column;gap:var(--space-xl)}.setup-section{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border-color);position:relative;overflow:hidden}.setup-section:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));opacity:.5}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.section-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}.section-hint{font-size:12px;color:var(--text-muted);background-color:var(--bg-tertiary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.players-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.setup-footer{position:fixed;bottom:0;left:0;right:0;padding:var(--space-lg);background:linear-gradient(to top,var(--bg-primary) 70%,transparent)}.setup-footer .btn{max-width:520px;margin:0 auto;display:flex}.section-actions{display:flex;align-items:center;gap:var(--space-sm)}.shuffle-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-size:18px;transition:all var(--transition-fast)}.shuffle-btn:hover{background-color:var(--bg-elevated);border-color:var(--color-primary);transform:rotate(15deg)}.shuffle-btn:active{transform:scale(.95) rotate(180deg)}.variant-selector{margin-top:var(--space-md)}.variant-label{display:block;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-sm)}.variant-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.variant-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md);background-color:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:center}.variant-btn:hover{border-color:var(--text-muted);transform:translateY(-2px)}.variant-btn.active{border-color:var(--color-primary);background-color:#f59e0b1a;box-shadow:0 0 16px var(--color-primary-glow)}.variant-name{font-size:14px;font-weight:600;color:var(--text-primary)}.variant-desc{font-size:11px;color:var(--text-muted);line-height:1.3}.lives-selector{margin-top:var(--space-md)}.lives-label{display:block;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-sm)}.lives-options{display:flex;gap:var(--space-sm)}.lives-btn{flex:1;padding:var(--space-md) var(--space-lg);background-color:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-display);font-size:24px;font-weight:400;color:var(--text-primary);transition:all var(--transition-fast);letter-spacing:.02em}.lives-btn:hover{border-color:var(--text-muted);transform:translateY(-2px)}.lives-btn.active{border-color:var(--color-error);background-color:#ef44441a;color:var(--color-error);box-shadow:0 0 16px var(--color-error-glow)}.dartboard-container{position:relative;overflow:visible;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.dartboard-svg{transition:transform .15s ease-out;transform-origin:center center;filter:drop-shadow(0 8px 32px rgba(0,0,0,.4))}.dartboard-zoomed .dartboard-svg{transform:scale(var(--zoom-scale, 1.6));transform-origin:var(--zoom-origin-x, 50%) var(--zoom-origin-y, 50%)}.dartboard-overlay{position:absolute;inset:0;background-color:#0000004d;border-radius:50%;pointer-events:none}.dartboard-zoom-label{position:absolute;top:-44px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:#000;padding:8px 20px;border-radius:var(--radius-full);font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:.04em;box-shadow:var(--shadow-lg),0 4px 20px var(--color-primary-glow);pointer-events:none;animation:zoomLabelIn .15s ease-out;z-index:10}@keyframes zoomLabelIn{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.score-display{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.score-player-name{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}.score-value{font-family:var(--font-display);font-size:96px;font-weight:400;color:var(--text-primary);line-height:.9;letter-spacing:.02em;transition:all var(--transition-fast)}.score-value.bust{color:var(--color-error);text-shadow:0 0 30px var(--color-error-glow);animation:bustShake .4s ease-out}.score-value.checkout{color:var(--color-success);text-shadow:0 0 40px var(--color-success-glow);animation:checkoutPulse .6s ease-out}.turn-delta{font-family:var(--font-display);font-size:32px;font-weight:400;color:var(--text-secondary);letter-spacing:.02em}.turn-delta.bust{color:var(--color-error)}@keyframes bustShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes checkoutPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media(min-width:768px){.score-value{font-size:128px}.turn-delta{font-size:40px}}.current-turn{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.current-turn-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}.dart-slots{display:flex;gap:var(--space-md)}.dart-slot{width:76px;height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast);position:relative;overflow:hidden}.dart-slot:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));transform:scaleX(0);transition:transform var(--transition-fast)}.dart-slot.active{border-color:var(--color-primary);border-style:dashed;box-shadow:0 0 20px var(--color-primary-glow)}.dart-slot.active:before{transform:scaleX(1)}.dart-slot.filled{background-color:var(--bg-tertiary);border-color:var(--border-light);animation:dartFilled .2s ease-out}.dart-slot.filled:before{transform:scaleX(1)}@keyframes dartFilled{0%{transform:scale(.95)}50%{transform:scale(1.02)}to{transform:scale(1)}}.dart-slot-value{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--text-primary);line-height:1;letter-spacing:.02em}.dart-slot-label{font-size:10px;font-weight:600;color:var(--text-muted);margin-top:var(--space-xs);text-transform:uppercase;letter-spacing:.05em}.dart-slot-empty{font-size:20px;font-weight:600;color:var(--text-muted);opacity:.3}.turn-controls{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;max-width:320px;padding:var(--space-md) 0}.turn-controls-row{display:flex;gap:var(--space-sm)}.undo-turn-btn{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);border-radius:var(--radius-sm)}.undo-turn-btn:hover{color:var(--text-secondary);background-color:var(--bg-tertiary)}.undo-turn-btn.confirm{color:var(--color-error);background-color:#ef44441a;animation:undoPulse 1.2s ease-in-out infinite}@keyframes undoPulse{0%,to{opacity:1}50%{opacity:.6}}.player-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-md);background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:2px solid var(--border-color);min-width:120px;transition:all var(--transition-fast);position:relative;overflow:hidden}.player-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));transform:scaleX(0);transition:transform var(--transition-normal)}.player-card.active{background-color:var(--bg-tertiary);border-color:var(--color-primary);box-shadow:0 0 24px var(--color-primary-glow)}.player-card.active:before{transform:scaleX(1)}.player-card.winner{background-color:var(--bg-tertiary);border-color:var(--color-success);box-shadow:0 0 24px var(--color-success-glow)}.player-card.winner:before{background:linear-gradient(90deg,var(--color-success),#059669);transform:scaleX(1)}.player-card-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.player-card-name{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.player-status-badge{font-size:9px;font-weight:700;color:#000;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));padding:3px var(--space-sm);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.player-status-badge.winner{background:linear-gradient(135deg,var(--color-success),#059669);color:#fff}.player-card-score{font-family:var(--font-display);font-size:36px;font-weight:400;color:var(--text-primary);line-height:1;letter-spacing:.02em;margin:var(--space-xs) 0}.player-card-stats{font-size:10px;color:var(--text-muted);letter-spacing:.02em}.player-list{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);overflow-x:auto;justify-content:center}.player-list::-webkit-scrollbar{display:none}.checkout-hint{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:linear-gradient(135deg,var(--color-success) 0%,#059669 100%);border-radius:var(--radius-full);box-shadow:var(--shadow-md),0 4px 16px var(--color-success-glow);animation:checkoutHintIn .3s ease-out}@keyframes checkoutHintIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.checkout-label{font-size:10px;font-weight:700;color:#fffc;text-transform:uppercase;letter-spacing:.1em}.checkout-path,.checkout-dart{display:flex;align-items:center;gap:var(--space-xs)}.checkout-arrow{color:#ffffff80;font-size:10px}.checkout-dart-value{font-family:var(--font-display);font-size:16px;font-weight:400;color:#fff;background-color:#fff3;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);letter-spacing:.04em}.match-stats{width:100%;max-width:600px}.leg-info{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-md)}.leg-label{font-size:14px;font-weight:700;color:var(--color-primary)}.leg-format{font-size:12px;color:var(--text-muted)}.stats-grid{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs)}.stats-grid::-webkit-scrollbar{display:none}.player-stats-card{flex:1;min-width:140px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md)}.player-stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.player-stats-name{font-size:13px;font-weight:600;color:var(--text-secondary)}.player-legs-won{font-size:20px;font-weight:800;color:var(--color-primary)}.stats-row{display:flex;gap:var(--space-md);justify-content:space-around}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-label{font-size:10px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.ton-stats{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm);justify-content:center}.ton-badge{font-size:10px;font-weight:600;padding:2px var(--space-sm);border-radius:var(--radius-full)}.ton-180{background-color:#ef444426;color:var(--color-danger)}.ton-140{background-color:#f59e0b26;color:var(--color-warning)}.ton-100{background-color:#3b82f626;color:var(--color-primary)}.cricket-scoreboard{width:100%;max-width:400px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.cricket-header{display:flex;background-color:var(--bg-tertiary);border-bottom:2px solid var(--border-color)}.cricket-corner{width:60px;min-width:60px;padding:var(--space-sm);display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border-color)}.variant-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.cricket-player-col{flex:1;padding:var(--space-sm) var(--space-xs);display:flex;flex-direction:column;align-items:center;text-align:center;border-right:1px solid var(--border-color);transition:background-color var(--transition-fast)}.cricket-player-col:last-child{border-right:none}.cricket-player-col.active{background-color:#3b82f61a}.cricket-player-col .player-name{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cricket-player-col .player-points{font-size:20px;font-weight:800;color:var(--color-primary);margin-top:var(--space-xs)}.cricket-player-col .player-points.cutthroat{color:var(--color-danger)}.cricket-grid{display:flex;flex-direction:column}.cricket-row{display:flex;border-bottom:1px solid var(--border-color);transition:opacity var(--transition-fast)}.cricket-row:last-child{border-bottom:none}.cricket-row.all-closed{opacity:.5}.cricket-number{width:60px;min-width:60px;padding:var(--space-md) var(--space-sm);display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border-right:1px solid var(--border-color)}.cricket-number span{font-size:16px;font-weight:700;color:var(--text-primary)}.cricket-cell{flex:1;padding:var(--space-md) var(--space-sm);display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border-color);transition:background-color var(--transition-fast)}.cricket-cell:last-child{border-right:none}.cricket-cell.active{background-color:#3b82f60d}.cricket-cell.closed{background-color:#22c55e1a}.marks{font-size:20px;font-weight:700;color:var(--text-secondary)}.marks.empty{color:var(--text-muted)}.marks.closed{color:var(--color-success)}@media(max-width:480px){.cricket-scoreboard{max-width:100%}.cricket-corner,.cricket-number{width:50px;min-width:50px}.cricket-number span{font-size:14px}.marks,.cricket-player-col .player-points{font-size:18px}}.clock-tracker{width:100%;max-width:400px}.current-target-section{text-align:center;padding:var(--space-lg);background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.target-label{display:block;font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-xs)}.target-number{display:block;font-size:72px;font-weight:900;color:var(--color-primary);line-height:1;margin-bottom:var(--space-sm)}.target-number.finished{color:var(--color-success)}.player-throwing{display:block;font-size:16px;font-weight:600;color:var(--text-secondary)}.progress-section{display:flex;flex-direction:column;gap:var(--space-md)}.player-progress{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);transition:all var(--transition-fast)}.player-progress.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633}.player-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.progress-player-name{font-size:14px;font-weight:600;color:var(--text-primary)}.progress-count{font-size:12px;font-weight:700;color:var(--color-primary);background-color:#3b82f61a;padding:2px var(--space-sm);border-radius:var(--radius-full)}.progress-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.progress-item{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-muted);background-color:var(--bg-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.progress-item.hit{background-color:var(--color-success);color:#fff}.progress-item.current{background-color:var(--color-primary);color:#fff;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media(max-width:400px){.target-number{font-size:56px}.progress-grid{grid-template-columns:repeat(7,1fr);gap:3px}.progress-item{font-size:10px}}.killer-status{width:100%;max-width:500px}.killer-phase{text-align:center;padding:var(--space-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.phase-label{display:block;font-size:12px;font-weight:700;color:var(--color-danger);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-xs)}.phase-hint{display:block;font-size:14px;color:var(--text-secondary)}.current-killer-display{text-align:center;padding:var(--space-lg);background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.throwing-label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.throwing-name{display:block;font-size:28px;font-weight:800;color:var(--text-primary);margin:var(--space-xs) 0}.killer-badge-large{display:inline-block;font-size:12px;font-weight:800;color:#fff;background-color:var(--color-danger);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);margin-bottom:var(--space-xs)}.throwing-double{display:block;font-size:24px;font-weight:700;color:var(--color-primary)}.killer-players-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-md)}.killer-player-card{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md);text-align:center;transition:all var(--transition-fast)}.killer-player-card.active{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f633}.killer-player-card.eliminated{opacity:.5;background-color:var(--bg-tertiary)}.killer-card-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm)}.killer-player-name{font-size:14px;font-weight:600;color:var(--text-primary)}.killer-badge{font-size:10px;font-weight:800;color:#fff;background-color:var(--color-danger);padding:2px var(--space-sm);border-radius:var(--radius-full)}.killer-card-body{margin-bottom:var(--space-sm)}.assigned-double{font-size:32px;font-weight:800;color:var(--color-primary)}.no-double{font-size:32px;font-weight:800;color:var(--text-muted)}.killer-card-footer{min-height:24px}.lives-display{display:flex;justify-content:center;gap:4px}.life-heart{font-size:18px;transition:all var(--transition-fast)}.life-heart.active{color:var(--color-danger)}.life-heart.lost{color:var(--text-muted);opacity:.3}.eliminated-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}@media(max-width:400px){.killer-players-grid{grid-template-columns:repeat(2,1fr)}.assigned-double,.no-double{font-size:24px}.life-heart{font-size:14px}}.recent-throws{width:100%;max-width:400px}.recent-throws-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.recent-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.player-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.turns-strip{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs)}.turn-card{flex-shrink:0;min-width:100px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-sm);transition:all var(--transition-fast)}.turn-card.recent{border-color:var(--color-primary);background-color:#3b82f60d}.turn-card.bust{border-color:var(--color-danger);background-color:#ef44440d}.turn-score{text-align:center;margin-bottom:var(--space-xs)}.score-value{font-size:20px;font-weight:800;color:var(--text-primary)}.bust-indicator{font-size:14px;font-weight:800;color:var(--color-danger);letter-spacing:1px}.turn-darts{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.dart-notation{font-size:10px;font-weight:600;padding:2px 4px;border-radius:var(--radius-sm);background-color:var(--bg-tertiary);color:var(--text-secondary)}.dart-notation.triple{background-color:#ef444433;color:var(--color-danger)}.dart-notation.double{background-color:#22c55e33;color:var(--color-success)}.dart-notation.bull{background-color:#fbbf2433;color:#f59e0b}.dart-notation.miss{background-color:var(--bg-tertiary);color:var(--text-muted)}.dart-notation.empty{visibility:hidden}.turns-strip::-webkit-scrollbar{height:4px}.turns-strip::-webkit-scrollbar-track{background:transparent}.turns-strip::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}.summary-modal-overlay{position:fixed;inset:0;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);z-index:100;animation:fadeIn .2s ease-out}.summary-modal{background-color:var(--bg-primary);border-radius:var(--radius-xl);border:1px solid var(--border-color);width:100%;max-width:480px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.summary-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary)}.summary-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.summary-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.summary-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.summary-content{flex:1;overflow-y:auto;padding:var(--space-lg)}.winner-banner{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-xl);background:linear-gradient(135deg,#fbbf241a,#f59e0b1a);border:2px solid rgba(251,191,36,.3);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);text-align:center}.winner-crown{font-size:48px}.winner-text{font-size:24px;font-weight:800;color:var(--text-primary)}.legs-text{font-size:14px;font-weight:600;color:var(--text-secondary)}.summary-section{margin-bottom:var(--space-xl)}.summary-section:last-child{margin-bottom:0}.section-title{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--space-md) 0}.standings-list{display:flex;flex-direction:column;gap:var(--space-sm)}.standing-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.standing-row.winner{border-color:#fbbf2480;background-color:#fbbf240d}.standing-position{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border-radius:50%;font-size:14px;font-weight:700;color:var(--text-secondary)}.standing-row.winner .standing-position{background-color:#fbbf2433;color:#f59e0b}.standing-name{flex:1;font-size:14px;font-weight:600;color:var(--text-primary)}.standing-legs{font-size:14px;font-weight:600;color:var(--text-secondary)}.player-stats-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md);margin-bottom:var(--space-md)}.player-stats-card:last-child{margin-bottom:0}.player-stats-header{margin-bottom:var(--space-md)}.player-stats-name{font-size:16px;font-weight:700;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.stat-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-sm);background-color:var(--bg-tertiary);border-radius:var(--radius-md)}.stat-card.highlight{background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3)}.stat-value{font-size:18px;font-weight:700;color:var(--text-primary)}.stat-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.best-checkout{margin-top:var(--space-sm);font-size:12px;color:var(--text-secondary);text-align:center}.best-checkout strong{color:var(--color-success)}.highlights-list{display:flex;flex-direction:column;gap:var(--space-sm)}.highlight-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--color-primary)}.highlight-item.one-eighty{border-left-color:#f59e0b}.highlight-item.high-checkout{border-left-color:var(--color-success)}.highlight-item.ton-plus{border-left-color:var(--color-primary)}.highlight-icon{font-size:16px}.highlight-text{font-size:13px;color:var(--text-primary)}.summary-footer{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--border-color);background-color:var(--bg-secondary)}.voice-bar{display:inline-flex;align-items:center;gap:var(--space-sm);padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:12px;color:var(--text-muted);transition:all var(--transition-fast)}.voice-bar-listening{background:#10b9811a;border-color:var(--color-success);color:var(--color-success)}.voice-bar-error{background:#ef44441a;border-color:var(--color-error);color:var(--color-error)}.voice-bar-connecting{background:#f59e0b1a;border-color:var(--color-primary);color:var(--color-primary)}.voice-bar-indicator{position:relative;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--bg-tertiary);flex-shrink:0}.voice-bar-listening .voice-bar-indicator{background:var(--color-success);color:#fff}.voice-bar-error .voice-bar-indicator{background:var(--color-error);color:#fff}.voice-bar-connecting .voice-bar-indicator{background:var(--color-primary);color:#000}.voice-bar-pulse{position:absolute;inset:-3px;border-radius:50%;background:var(--color-success);opacity:.4;animation:barPulse 1.5s ease-out infinite}@keyframes barPulse{0%{transform:scale(1);opacity:.4}to{transform:scale(1.8);opacity:0}}.voice-bar-status{font-weight:500}.voice-bar-divider{opacity:.4}.voice-bar-command{font-weight:600;color:var(--text-primary);background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm)}.voice-bar-listening .voice-bar-command{background:#10b98133;color:var(--color-success)}.voice-bar-debug-toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:8px;cursor:pointer;margin-left:var(--space-xs);transition:all var(--transition-fast)}.voice-bar-debug-toggle:hover{background:var(--bg-elevated);color:var(--text-primary)}.voice-debug-panel{position:fixed;top:60px;right:16px;width:340px;max-height:280px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column;overflow:hidden;animation:debugSlideIn .2s ease-out}@keyframes debugSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.voice-debug-header{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.voice-debug-status{font-weight:600;font-size:13px}.voice-debug-listening{color:var(--color-success)}.voice-debug-connecting{color:var(--color-primary)}.voice-debug-error{color:var(--color-error)}.voice-debug-idle{color:var(--text-muted)}.voice-debug-log{flex:1;overflow-y:auto;padding:var(--space-sm);font-size:11px;max-height:160px}.voice-debug-empty{color:var(--text-muted);font-style:italic;text-align:center;padding:var(--space-md)}.voice-debug-entry{display:flex;gap:var(--space-sm);padding:3px 0;border-bottom:1px solid var(--border-color)}.voice-debug-time{color:var(--text-muted);flex-shrink:0;font-size:10px;font-family:monospace}.voice-debug-message{flex:1;word-break:break-word}.voice-debug-info .voice-debug-message{color:var(--text-secondary)}.voice-debug-heard .voice-debug-message{color:var(--color-primary)}.voice-debug-command .voice-debug-message{color:var(--color-success);font-weight:600}.voice-debug-error .voice-debug-message{color:var(--color-error)}.voice-debug-hint{padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);font-size:10px;color:var(--text-muted);border-top:1px solid var(--border-color)}@media(max-width:768px){.voice-debug-panel{inset:auto 16px 80px;width:auto;max-height:200px}}.mp-scoreboard{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;width:100%;max-width:400px;box-shadow:0 4px 20px #00000026}.mp-player{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-md);position:relative;transition:all .3s ease}.mp-player.active{background:linear-gradient(180deg,rgba(var(--color-primary-rgb),.15),rgba(var(--color-primary-rgb),.05))}.mp-player.active:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-primary);animation:pulseGlow 2s ease-in-out infinite}@keyframes pulseGlow{0%,to{opacity:1;box-shadow:0 0 10px var(--color-primary)}50%{opacity:.7;box-shadow:0 0 20px var(--color-primary)}}.mp-player-header{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.mp-player-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-player.active .mp-player-name{color:var(--color-primary)}.mp-throw-indicator{font-size:16px;color:var(--color-primary);animation:bounce 1s ease-in-out infinite}.mp-throw-indicator.small{font-size:12px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.mp-player-score{font-family:var(--font-display);font-size:48px;font-weight:400;color:var(--text-primary);line-height:1;letter-spacing:.02em;margin:var(--space-xs) 0}.mp-player.active .mp-player-score{text-shadow:0 0 30px rgba(var(--color-primary-rgb),.3)}.mp-player-legs{display:flex;align-items:center;gap:6px;margin-top:var(--space-sm)}.mp-leg-pip{width:10px;height:10px;border-radius:50%;background:var(--bg-tertiary);border:2px solid var(--border-color);transition:all .3s ease}.mp-leg-pip.won{background:var(--color-success);border-color:var(--color-success);box-shadow:0 0 8px var(--color-success-glow)}.mp-leg-count{font-size:14px;font-weight:700;color:var(--color-success);margin-left:var(--space-xs)}.mp-divider{display:flex;align-items:center;justify-content:center;padding:0 var(--space-sm);background:var(--bg-tertiary);border-left:1px solid var(--border-color);border-right:1px solid var(--border-color)}.mp-vs{font-size:10px;font-weight:700;color:var(--text-muted);letter-spacing:.1em}.mp-extra-players{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border-top:1px solid var(--border-color);width:100%}.mp-extra-player{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:all .2s ease}.mp-extra-player.active{background:rgba(var(--color-primary-rgb),.1)}.mp-extra-name{flex:1;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.mp-extra-player.active .mp-extra-name{color:var(--color-primary)}.mp-extra-score{font-family:var(--font-display);font-size:20px;font-weight:400;color:var(--text-primary)}.mp-turn-status{flex-basis:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-sm) var(--space-md);text-align:center;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;border-top:1px solid var(--border-color)}.mp-turn-status.my-turn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;animation:pulseTurn 1.5s ease-in-out infinite}.mp-turn-status.waiting{background:var(--bg-tertiary);color:var(--text-muted)}.mp-turn-status.host{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.mp-turn-player{font-size:14px;font-weight:700}.mp-turn-hint{font-size:11px;font-weight:500;opacity:.8;text-transform:none;letter-spacing:0}@keyframes pulseTurn{0%,to{opacity:1}50%{opacity:.8}}@media(max-width:360px){.mp-player-score{font-size:40px}.mp-player-name{font-size:11px;max-width:80px}.mp-player{padding:var(--space-sm)}.mp-turn-status{font-size:12px;padding:var(--space-xs) var(--space-sm)}}.turn-notification{position:fixed;top:16px;left:50%;transform:translate(-50%) translateY(-100px);z-index:1000;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}.turn-notification.entering,.turn-notification.visible{transform:translate(-50%) translateY(0);opacity:1}.turn-notification.exiting{transform:translate(-50%) translateY(-20px);opacity:0}.turn-notification-content{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:#2563eb;border-radius:var(--radius-full);box-shadow:0 4px 20px #2563eb66}.turn-notification-name{font-size:14px;font-weight:600;color:#fff}.turn-notification-scored{font-size:13px;color:#fffc}.turn-notification-score{font-family:var(--font-display);font-size:22px;font-weight:600;color:#fff;letter-spacing:.02em}.turn-notification.score-180 .turn-notification-content{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 4px 20px #fbbf2480;animation:celebratePulse .5s ease-out}.turn-notification.score-high .turn-notification-content{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 20px #10b98166}.turn-notification.score-ton .turn-notification-content{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 20px #8b5cf666}.turn-notification.score-bust .turn-notification-content{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 20px #ef444466}@keyframes celebratePulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media(max-width:480px){.turn-notification{top:12px;left:12px;right:12px;transform:translate(0) translateY(-100px)}.turn-notification.entering,.turn-notification.visible{transform:translate(0) translateY(0)}.turn-notification.exiting{transform:translate(0) translateY(-20px)}.turn-notification-content{width:100%;justify-content:center;padding:var(--space-sm) var(--space-md)}.turn-notification-name{font-size:13px}.turn-notification-scored{font-size:12px}.turn-notification-score{font-size:20px}}.settings-modal-overlay{position:fixed;inset:0;background-color:var(--bg-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);z-index:100;animation:fadeIn .2s ease-out}.settings-modal{background-color:var(--bg-secondary);border-radius:var(--radius-xl);border:1px solid var(--border-color);width:100%;max-width:420px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out;box-shadow:var(--shadow-lg)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-color)}.settings-title{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;margin:0}.settings-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.settings-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary);transform:rotate(90deg)}.settings-content{flex:1;overflow-y:auto;padding:var(--space-lg)}.settings-section{margin-bottom:var(--space-xl)}.settings-section:last-child{margin-bottom:0}.settings-section-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 var(--space-md) 0}.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background-color:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;margin-bottom:var(--space-sm);transition:all var(--transition-fast)}.settings-toggle:hover{background-color:var(--bg-elevated)}.toggle-label{font-size:14px;font-weight:500;color:var(--text-primary)}.settings-toggle input{display:none}.toggle-slider{position:relative;width:48px;height:28px;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:14px;transition:all var(--transition-fast);flex-shrink:0}.toggle-slider:after{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;background-color:var(--text-muted);border-radius:50%;transition:all var(--transition-fast)}.settings-toggle input:checked+.toggle-slider{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-color:transparent}.settings-toggle input:checked+.toggle-slider:after{transform:translate(20px);background-color:#000}.settings-slider-group{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background-color:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-sm)}.slider-label{font-size:14px;font-weight:500;color:var(--text-primary);min-width:60px}.volume-slider{flex:1;height:4px;background-color:var(--bg-secondary);border-radius:2px;appearance:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{appearance:none;width:18px;height:18px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-radius:50%;cursor:pointer;box-shadow:0 2px 8px var(--color-primary-glow)}.volume-slider::-moz-range-thumb{width:18px;height:18px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-radius:50%;border:none;cursor:pointer}.slider-value{font-family:var(--font-display);font-size:18px;font-weight:400;color:var(--text-secondary);min-width:40px;text-align:right;letter-spacing:.02em}.settings-hint{font-size:12px;color:var(--text-muted);line-height:1.5;margin:var(--space-sm) 0 0 0}.settings-hint-inline{font-size:11px;color:var(--text-muted);line-height:1.4;margin:0 0 var(--space-sm) 0;padding-left:var(--space-md)}.settings-unavailable{font-size:14px;color:var(--text-muted);font-style:italic;margin:0 0 var(--space-sm) 0}.settings-footer{padding:var(--space-lg);border-top:1px solid var(--border-color)}.guest-prompt-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.guest-prompt-modal{background:var(--color-surface);border-radius:1rem;padding:2rem;max-width:400px;width:100%;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.guest-prompt-icon{width:60px;height:60px;margin:0 auto 1.5rem;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem;color:#fff}.guest-prompt-title{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:0 0 .75rem}.guest-prompt-message{font-size:.9375rem;color:var(--color-text-secondary);margin:0 0 1.5rem;line-height:1.5}.guest-prompt-benefits{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;text-align:left}.benefit-item{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--color-text)}.benefit-icon{width:24px;height:24px;background:var(--color-success-soft);color:var(--color-success);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}.guest-prompt-actions{display:flex;flex-direction:column;gap:.75rem}.game-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background-color:var(--bg-primary)}.game-loading{align-items:center;justify-content:center;gap:var(--space-lg)}.game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10}.game-header-center{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.game-mode-info{display:flex;flex-direction:column;align-items:center}.game-mode-score{font-family:var(--font-display);font-size:24px;font-weight:400;color:var(--text-primary);letter-spacing:.04em}.game-mode-rule{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.settings-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.settings-button:hover{color:var(--color-primary);background-color:var(--bg-tertiary)}.settings-button:active{transform:scale(.95)}.game-header-right{display:flex;align-items:center;gap:var(--space-xs)}.game-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding-bottom:var(--space-md)}.game-main.landscape{flex-direction:row;padding:var(--space-md)}.dartboard-section{display:flex;justify-content:center;align-items:center;padding:var(--space-md);position:relative}.spectator-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#00000080;border-radius:var(--radius-lg);pointer-events:none}.spectator-overlay span{padding:var(--space-md) var(--space-lg);background-color:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-weight:500}.game-main.landscape .dartboard-section{flex:1}.score-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:0 var(--space-md)}.game-main.landscape .score-section{flex:1;justify-content:center}.game-over-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-xl);padding:var(--space-xl);animation:fadeInUp .5s ease-out}.winner-announcement{text-align:center}.winner-label{display:block;font-size:12px;font-weight:700;color:var(--color-success);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-sm)}.winner-name{display:block;font-family:var(--font-display);font-size:56px;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;line-height:1;text-shadow:0 0 40px var(--color-success-glow)}.game-over-actions{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;max-width:320px}.leg-winner-announcement{text-align:center;animation:fadeInScale .4s ease-out}.leg-winner-label{display:block;font-size:12px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.15em;margin-bottom:var(--space-sm)}.leg-winner-name{display:block;font-family:var(--font-display);font-size:40px;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:var(--space-lg)}.leg-scores{display:flex;gap:var(--space-xl);justify-content:center}.leg-score-item{font-size:14px;font-weight:600;color:var(--text-secondary)}.final-scores{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg);padding:var(--space-lg);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.final-score-item{font-size:14px;font-weight:600;color:var(--text-secondary)}.game-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);padding:var(--space-md);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.copied-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--color-success) 0%,#059669 100%);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);font-size:14px;font-weight:600;box-shadow:var(--shadow-lg),0 4px 20px var(--color-success-glow);z-index:200;animation:toastIn .3s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.card{background-color:var(--bg-secondary);border-radius:var(--radius-lg);transition:all var(--transition-normal);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover));transform:scaleX(0);transition:transform var(--transition-normal)}.card-default{border:1px solid var(--border-color)}.card-elevated{box-shadow:var(--shadow-md);border:1px solid transparent}.card-elevated:hover{box-shadow:var(--shadow-lg)}.card-outlined{border:2px solid var(--border-color);background-color:transparent}.card-padding-none{padding:0}.card-padding-small{padding:var(--space-md)}.card-padding-medium{padding:var(--space-lg)}.card-padding-large{padding:var(--space-xl)}.card-clickable{cursor:pointer}.card-clickable:hover{border-color:var(--color-primary);background-color:var(--bg-tertiary);transform:translateY(-2px);box-shadow:var(--shadow-lg),0 8px 24px var(--color-primary-glow)}.card-clickable:hover:before{transform:scaleX(1)}.card-clickable:active{transform:translateY(0)}.training-home-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary)}.training-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.training-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.training-content{flex:1;padding:var(--space-md);max-width:600px;margin:0 auto;width:100%}.training-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--space-lg)}.training-modes-grid{display:flex;flex-direction:column;gap:var(--space-md)}.training-mode-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.training-mode-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.training-mode-card:active{transform:translateY(0)}.mode-icon{font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-md);flex-shrink:0}.mode-info{flex:1;min-width:0}.mode-name{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-xs) 0}.mode-description{font-size:13px;color:var(--text-secondary);margin:0 0 var(--space-sm) 0;line-height:1.4}.mode-meta{display:flex;align-items:center;gap:var(--space-sm)}.mode-difficulty{font-size:11px;font-weight:600;text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-full)}.mode-difficulty.easy{background:#22c55e26;color:var(--color-success)}.mode-difficulty.medium{background:#fbbf2426;color:#fbbf24}.mode-difficulty.hard{background:#ef444426;color:var(--color-error)}.mode-sessions{font-size:11px;color:var(--text-muted)}.mode-stats{display:flex;gap:var(--space-sm);margin-top:var(--space-xs)}.mode-stats .stat{font-size:11px;color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1);padding:2px 6px;border-radius:var(--radius-sm)}.mode-arrow{font-size:20px;color:var(--text-muted);flex-shrink:0}.training-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary)}.training-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.training-mode-title{display:flex;align-items:center;gap:var(--space-sm);font-size:18px;font-weight:700;color:var(--text-primary)}.mode-emoji{font-size:24px}.training-setup{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.setup-card{width:100%;max-width:400px;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);border:1px solid var(--border-color)}.setup-card h2{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-sm) 0}.setup-description{color:var(--text-secondary);margin-bottom:var(--space-xl);line-height:1.5}.setup-option{margin-bottom:var(--space-lg)}.setup-option label{display:block;font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.setup-option select{width:100%;padding:var(--space-sm) var(--space-md);font-size:16px;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer}.setup-option select:focus{outline:none;border-color:var(--color-primary)}.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.checkbox-label{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.checkbox-label:has(input:checked){background:#3b82f61a;border-color:var(--color-primary)}.checkbox-label input{accent-color:var(--color-primary)}.checkbox-label span{font-size:14px;color:var(--text-primary)}.training-main{flex:1;display:flex;flex-direction:column;padding:var(--space-md);gap:var(--space-md)}.training-dartboard{display:flex;justify-content:center;align-items:center}.training-info{display:flex;flex-direction:column;gap:var(--space-md)}.training-stats-display{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;border:1px solid var(--border-color)}.big-stat{display:flex;flex-direction:column;margin-bottom:var(--space-md)}.big-stat .stat-value{font-size:48px;font-weight:700;color:var(--text-primary);line-height:1}.big-stat .stat-label{font-size:14px;color:var(--text-muted);text-transform:uppercase;margin-top:var(--space-xs)}.big-stat.target-display .stat-value{font-size:36px;color:var(--color-primary)}.stat-row{display:flex;justify-content:center;gap:var(--space-xl)}.small-stat{display:flex;flex-direction:column;align-items:center}.small-stat .stat-value{font-size:24px;font-weight:600;color:var(--text-primary)}.small-stat .stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase}.current-darts{display:flex;justify-content:center;gap:var(--space-sm);margin-top:var(--space-md)}.dart-thrown{background:var(--bg-tertiary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-primary)}.a1-progress{display:flex;justify-content:center;gap:var(--space-xs);margin-top:var(--space-md);flex-wrap:wrap}.a1-number{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:12px;font-weight:600;background:var(--bg-tertiary);color:var(--text-muted);transition:all var(--transition-fast)}.a1-number.current{background:var(--color-primary);color:#fff;transform:scale(1.1)}.a1-number.closed{background:var(--color-success);color:#fff}.training-controls{display:flex;gap:var(--space-md);justify-content:center}.training-complete{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;border:1px solid var(--border-color)}.training-complete h3{font-size:24px;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-lg) 0}.final-stats{margin-bottom:var(--space-xl)}.final-score{font-size:64px;font-weight:700;color:var(--color-primary);line-height:1}.final-rating{font-size:18px;color:var(--text-secondary);margin-top:var(--space-sm)}.final-details{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-md);font-size:14px;color:var(--text-muted)}.complete-actions{display:flex;flex-direction:column;gap:var(--space-sm)}@media(min-width:768px){.training-main{flex-direction:row;justify-content:center;align-items:flex-start;padding:var(--space-lg)}.training-dartboard{flex:0 0 auto}.training-info{flex:0 0 320px}.stat-row{gap:var(--space-lg)}.complete-actions{flex-direction:row;justify-content:center}}@media(min-width:1024px){.training-info{flex:0 0 400px}.big-stat .stat-value{font-size:64px}.small-stat .stat-value{font-size:28px}}.stats-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary)}.stats-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.stats-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.stats-tabs{display:flex;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch}.stats-tab{padding:var(--space-sm) var(--space-md);border:none;background:transparent;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;border-radius:var(--radius-md);white-space:nowrap;transition:all var(--transition-fast)}.stats-tab:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.stats-tab.active{background-color:var(--color-primary);color:#fff}.stats-content{flex:1;padding:var(--space-md);max-width:800px;margin:0 auto;width:100%}.stats-empty{text-align:center;padding:var(--space-2xl);color:var(--text-muted)}.stats-empty p{margin:var(--space-sm) 0}.overview-stats{display:flex;flex-direction:column;gap:var(--space-md)}.stats-summary-card{padding:var(--space-lg)}.summary-stat{display:flex;flex-direction:column;align-items:center;text-align:center}.summary-value{font-size:36px;font-weight:700;color:var(--color-primary);line-height:1}.summary-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;margin-top:var(--space-xs)}.summary-row{display:flex;justify-content:space-around;gap:var(--space-lg)}.modes-stats-grid{display:grid;gap:var(--space-md)}.mode-stats-card{padding:var(--space-md)}.mode-stats-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.mode-stats-icon{font-size:24px}.mode-stats-name{font-size:16px;font-weight:600;color:var(--text-primary)}.mode-stats-body{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.mode-stat-item{display:flex;flex-direction:column}.mode-stat-item .stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.mode-stat-item .stat-value{font-size:18px;font-weight:600;color:var(--text-primary)}.mode-detail-stats{display:flex;flex-direction:column;gap:var(--space-md)}.chart-card{padding:var(--space-lg)}.chart-card h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md) 0}.chart-placeholder{text-align:center;color:var(--text-muted);padding:var(--space-lg)}.progress-chart{padding:var(--space-md) 0}.chart-bars{display:flex;align-items:flex-end;justify-content:space-between;height:150px;gap:var(--space-xs);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.chart-bar-container{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.chart-bar{width:100%;max-width:40px;background:linear-gradient(180deg,var(--color-primary) 0%,rgba(59,130,246,.7) 100%);border-radius:var(--radius-sm) var(--radius-sm) 0 0;display:flex;align-items:flex-start;justify-content:center;min-height:20px;position:relative;transition:all var(--transition-fast)}.chart-bar:hover{opacity:.8}.chart-bar-value{font-size:10px;font-weight:600;color:#fff;padding:2px;white-space:nowrap}.chart-bar-label{font-size:10px;color:var(--text-muted);margin-top:var(--space-xs)}.chart-legend{text-align:center;font-size:12px;color:var(--text-muted);margin-top:var(--space-sm)}.sessions-card{padding:var(--space-lg)}.sessions-card h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md) 0}.sessions-list{display:flex;flex-direction:column}.session-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border-color)}.session-row:last-child{border-bottom:none}.session-date{display:flex;flex-direction:column}.session-date .date{font-size:14px;font-weight:500;color:var(--text-primary)}.session-date .time{font-size:11px;color:var(--text-muted)}.session-result{display:flex;gap:var(--space-sm)}.result-score,.result-accuracy,.result-rounds{font-size:16px;font-weight:600;color:var(--color-primary)}.session-duration{font-size:12px;color:var(--text-muted)}@media(min-width:640px){.modes-stats-grid{grid-template-columns:repeat(2,1fr)}.summary-value{font-size:48px}}@media(min-width:1024px){.modes-stats-grid{grid-template-columns:repeat(3,1fr)}.chart-bars{height:200px}.chart-bar-value{font-size:12px}}.profile-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-background)}.profile-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.profile-title{font-size:1.25rem;font-weight:600;color:var(--color-text);margin:0}.profile-content{flex:1;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;max-width:600px;margin:0 auto;width:100%}.user-card{display:flex;align-items:center;gap:1.5rem;padding:1.5rem}.user-avatar{flex-shrink:0}.avatar-image{width:80px;height:80px;border-radius:50%;object-fit:cover}.avatar-placeholder{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff}.user-info{flex:1;min-width:0}.user-name{font-size:1.5rem;font-weight:700;color:var(--color-text);margin:0 0 .25rem}.user-email{font-size:.875rem;color:var(--color-text-secondary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-overview-card{padding:1.5rem}.stats-overview-card h3{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 1rem}.stats-overview-card h4,.stats-section-title{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin:1.25rem 0 .75rem;padding-top:1rem;border-top:1px solid var(--color-border)}.stats-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:1rem}.overview-stat{display:flex;flex-direction:column;align-items:center;text-align:center}.overview-stat .stat-value{font-size:1.5rem;font-weight:700;color:var(--color-primary)}.overview-stat .stat-label{font-size:.75rem;color:var(--color-text-secondary);margin-top:.25rem}.recent-activity-card{padding:1.5rem}.recent-activity-card h3{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 1rem}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.activity-item:last-child{border-bottom:none}.activity-icon{font-size:1.25rem;width:2rem;text-align:center}.activity-details{flex:1;display:flex;flex-direction:column}.activity-mode{font-size:.875rem;font-weight:500;color:var(--color-text)}.activity-date{font-size:.75rem;color:var(--color-text-secondary)}.activity-result{font-size:.875rem;font-weight:600;color:var(--color-primary)}.profile-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:auto;padding-top:1rem}.auth-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.auth-container{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--space-xl);animation:fadeInUp .6s ease-out}.auth-header{text-align:center;width:100%}.auth-logo{display:inline-flex;width:72px;height:72px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-radius:var(--radius-xl);align-items:center;justify-content:center;margin-bottom:var(--space-lg);box-shadow:var(--shadow-lg),0 0 40px var(--color-primary-glow);text-decoration:none;transition:transform var(--transition-fast)}.auth-logo:hover{transform:scale(1.05)}.auth-logo-icon{font-size:36px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.auth-title{font-family:var(--font-display);font-size:36px;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;line-height:1;margin-bottom:var(--space-sm)}.auth-subtitle{font-size:15px;color:var(--text-muted)}.auth-form{width:100%;display:flex;flex-direction:column;gap:var(--space-md)}.auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.auth-input{width:100%;padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:16px;transition:all var(--transition-fast)}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.auth-error{padding:var(--space-sm) var(--space-md);background:#ef44441a;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:14px;text-align:center}.auth-button{width:100%;padding:var(--space-md);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border:none;border-radius:var(--radius-md);color:#000;font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-sm)}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 8px 24px var(--color-primary-glow)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-divider{width:100%;display:flex;align-items:center;gap:var(--space-md);color:var(--text-muted);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.auth-social-button{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:15px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.auth-social-button:hover{border-color:var(--color-primary);background:var(--bg-tertiary);transform:translateY(-2px)}.auth-social-button:active{transform:translateY(0)}.auth-footer{font-size:14px;color:var(--text-muted)}.auth-footer a{color:var(--color-primary);text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}@media(max-width:400px){.auth-title{font-size:28px}.auth-container{gap:var(--space-lg)}}.join-page{min-height:100vh;min-height:100dvh;background-color:var(--bg-primary)}.join-header{position:sticky;top:0;z-index:10;padding:var(--space-md) var(--space-lg);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.join-container{max-width:480px;margin:0 auto;padding:var(--space-xl);animation:fadeInUp .4s ease-out}.join-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-lg)}.join-loading p{color:var(--text-muted);font-size:14px}.join-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-md);text-align:center}.error-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background-color:var(--color-error);color:#fff;font-family:var(--font-display);font-size:32px;font-weight:700;border-radius:50%}.join-error h1{font-size:24px;color:var(--text-primary);margin:0}.join-error p{color:var(--text-muted);margin-bottom:var(--space-lg)}.join-hero{text-align:center;margin-bottom:var(--space-xl)}.join-code{display:inline-block;font-family:var(--font-display);font-size:64px;font-weight:400;color:var(--color-primary);letter-spacing:.15em;line-height:1;text-shadow:0 0 40px var(--color-primary-glow)}.join-code-small{display:inline-block;font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--color-primary);letter-spacing:.15em;background-color:#f59e0b1a;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.join-title{font-size:14px;font-weight:600;color:var(--text-muted);margin-top:var(--space-sm);text-transform:uppercase;letter-spacing:.1em}.session-preview{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--border-color);margin-bottom:var(--space-lg)}.preview-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0}.preview-row:not(:last-child){border-bottom:1px solid var(--border-subtle)}.preview-label{font-size:13px;color:var(--text-muted)}.preview-value{font-size:14px;font-weight:600;color:var(--text-primary)}.preview-value.status-lobby{color:var(--color-primary)}.preview-value.status-playing{color:var(--color-success)}.preview-value.status-finished,.preview-value.status-abandoned{color:var(--text-muted)}.reconnect-notice{display:flex;gap:var(--space-md);align-items:flex-start;background-color:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.reconnect-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background-color:var(--color-success);color:#fff;font-size:14px;font-weight:700;border-radius:50%;flex-shrink:0}.reconnect-notice strong{color:var(--color-success);font-size:14px}.reconnect-notice p{color:var(--text-secondary);font-size:12px;margin-top:var(--space-xs)}.join-blocked{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);text-align:center}.join-blocked p{color:var(--color-error);font-size:14px;margin:0}.join-form{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--space-xl)}.form-field{display:flex;flex-direction:column;gap:var(--space-sm)}.form-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.12em}.form-input{width:100%;padding:var(--space-md);background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:16px;color:var(--text-primary);transition:all var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.form-input::placeholder{color:var(--text-muted)}.form-input:disabled{opacity:.6;cursor:not-allowed}.scoring-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.scoring-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md);background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:center}.scoring-btn:hover:not(:disabled){border-color:var(--text-muted);transform:translateY(-2px)}.scoring-btn.active{border-color:var(--color-primary);background-color:#f59e0b1a;box-shadow:0 0 16px var(--color-primary-glow)}.scoring-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.scoring-icon{font-size:24px}.scoring-name{font-size:14px;font-weight:600;color:var(--text-primary)}.scoring-desc{font-size:11px;color:var(--text-muted);line-height:1.3}.form-error{background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:var(--space-md);color:var(--color-error);font-size:14px;text-align:center}.join-actions{margin-top:var(--space-lg)}.auth-benefits{background-color:#22c55e14;border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.auth-benefits .benefit-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:13px;color:var(--text-secondary)}.auth-benefits .benefit-check{color:var(--color-success);font-weight:700}.join-auth-form{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.join-auth-form .form-field{gap:var(--space-xs)}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-md) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background-color:var(--border-color)}.auth-divider span{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}.google-button{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md);background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;font-size:14px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.google-button:hover:not(:disabled){border-color:var(--text-muted);transform:translateY(-1px)}.google-button:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:var(--space-lg)}.auth-toggle p{font-size:14px;color:var(--text-muted);margin:0}.auth-toggle button{background:none;border:none;color:var(--color-primary);font-weight:600;cursor:pointer;padding:0;font-size:inherit}.auth-toggle button:hover{text-decoration:underline}.guest-option{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.guest-link{background:none;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:0;text-decoration:underline}.guest-link:hover{color:var(--text-primary)}.guest-note{font-size:12px;color:var(--text-muted)}.guest-notice{background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);text-align:center}.guest-notice p{font-size:13px;color:var(--text-secondary);margin:0}.guest-notice button{background:none;border:none;color:var(--color-primary);font-weight:600;cursor:pointer;padding:0;font-size:inherit}.guest-notice button:hover{text-decoration:underline}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
