@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 0 rgba(27, 31, 36, .04);--shadow-md: 0 3px 6px rgba(140, 149, 159, .15);--shadow-lg: 0 8px 24px rgba(140, 149, 159, .2);--shadow-xl: 0 12px 28px rgba(140, 149, 159, .3);--shadow-2xl: 0 16px 32px rgba(27, 31, 36, .15);--transition-fast: 80ms cubic-bezier(.33, 1, .68, 1);--transition-base: .2s cubic-bezier(.33, 1, .68, 1);--transition-slow: .3s cubic-bezier(.33, 1, .68, 1)}:root[data-theme=light]{--body-bg: #ffffff;--surface-bg: #f6f8fa;--surface-secondary: #ffffff;--surface-tertiary: #f6f8fa;--text-primary: #1f2328;--text-secondary: #59636e;--text-tertiary: #818b98;--text-inverse: #ffffff;--primary: #0969da;--primary-hover: #0860ca;--primary-light: #ddf4ff;--primary-dark: #0550ae;--accent: #0969da;--accent-hover: #0860ca;--accent-light: #ddf4ff;--border-color: #d1d9e0;--border-hover: #0969da;--divider: #d1d9e0;--success: #1f883d;--success-bg: #dafbe1;--success-text: #0f5323;--success-border: #1f883d;--warning: #bf8700;--warning-bg: #fff8c5;--warning-text: #7d4e00;--warning-border: #bf8700;--error: #d1242f;--error-bg: #ffebe9;--error-text: #86061d;--error-border: #d1242f;--info: #0969da;--info-bg: #ddf4ff;--info-text: #0349b4;--info-border: #0969da;--card-bg: #ffffff;--hover-bg: #f3f4f6;--active-bg: #ddf4ff;--disabled-bg: #f6f8fa;--disabled-text: #818b98;--button-default-bg: #f6f8fa;--button-default-hover: #f3f4f6;--button-default-active: #e6eaef;--button-default-border: #d1d9e0;--button-default-text: #1f2328;--button-primary-bg: #1f883d;--button-primary-hover: #1c8139;--button-primary-active: #197935;--button-primary-text: #ffffff;--button-danger-bg: #d1242f;--button-danger-hover: #b62324;--button-danger-active: #a0161e;--button-danger-text: #ffffff;--shadow-colored: 0 0 0 4px rgba(9, 105, 218, .12)}:root[data-theme=dark]{--body-bg: #0d1117;--surface-bg: #161b22;--surface-secondary: #0d1117;--surface-tertiary: #010409;--text-primary: #e6edf3;--text-secondary: #8d96a0;--text-tertiary: #6e7681;--text-inverse: #0d1117;--primary: #539bf5;--primary-hover: #6cb6ff;--primary-light: #1c2d41;--primary-dark: #4184e4;--accent: #539bf5;--accent-hover: #6cb6ff;--accent-light: #1c2d41;--border-color: #30363d;--border-hover: #539bf5;--divider: #21262d;--success: #3fb950;--success-bg: #0f3a1a;--success-text: #7ee787;--success-border: #3fb950;--warning: #d29922;--warning-bg: #4a3c0f;--warning-text: #e3b341;--warning-border: #d29922;--error: #f85149;--error-bg: #490b0d;--error-text: #ff8182;--error-border: #f85149;--info: #539bf5;--info-bg: #0c2d6b;--info-text: #79c0ff;--info-border: #539bf5;--card-bg: #161b22;--hover-bg: #21262d;--active-bg: #1c2d41;--disabled-bg: #21262d;--disabled-text: #6e7681;--button-default-bg: #21262d;--button-default-hover: #30363d;--button-default-active: #292e33;--button-default-border: #30363d;--button-default-text: #e6edf3;--button-primary-bg: #238636;--button-primary-hover: #2ea043;--button-primary-active: #26a148;--button-primary-text: #ffffff;--button-danger-bg: #da3633;--button-danger-hover: #e5534b;--button-danger-active: #f47067;--button-danger-text: #ffffff;--shadow-sm: 0 0 transparent;--shadow-md: 0 3px 6px rgba(1, 4, 9, .12);--shadow-lg: 0 8px 24px rgba(1, 4, 9, .2);--shadow-xl: 0 12px 28px rgba(1, 4, 9, .3);--shadow-2xl: 0 16px 32px rgba(1, 4, 9, .4);--shadow-colored: 0 0 0 4px rgba(83, 155, 245, .12)}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;vertical-align:middle}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--body-bg);color:var(--text-primary);transition:background-color var(--transition-slow),color var(--transition-slow);overflow-x:hidden;max-width:100vw}code{font-family:JetBrains Mono,Fira Code,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh;overflow-x:hidden;max-width:100vw}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.card{background:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border-color)}.btn-primary{background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(27,31,36,.15);border-radius:var(--radius-md);transition:all var(--transition-base);font-weight:600;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--button-primary-hover);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){background:var(--button-primary-active)}.btn-secondary{background:var(--button-default-bg);color:var(--button-default-text);border:1px solid var(--button-default-border);border-radius:var(--radius-md);transition:all var(--transition-base);font-weight:600;box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--button-default-hover);border-color:var(--border-hover)}.btn-secondary:active:not(:disabled){background:var(--button-default-active)}input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:20px;height:20px;border:2px solid var(--border-color);border-radius:5px;background-color:transparent;cursor:pointer;position:relative;transition:all var(--transition-base);flex-shrink:0}input[type=checkbox]:hover{border-color:var(--primary);background-color:var(--primary-light)}input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px var(--shadow-colored)}input[type=checkbox]:checked{background-color:var(--primary);border-color:var(--primary);animation:checkboxBounce .3s ease-in-out}input[type=checkbox]:checked:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg) scale(0);width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;animation:checkmarkSlide .3s ease-in-out forwards;animation-delay:.1s}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed;background-color:var(--disabled-bg);border-color:var(--border-color)}input[type=checkbox]:disabled:hover{border-color:var(--border-color);background-color:var(--disabled-bg)}@keyframes checkboxBounce{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes checkmarkSlide{0%{transform:translate(-50%,-50%) rotate(45deg) scale(0)}50%{transform:translate(-50%,-50%) rotate(45deg) scale(1.2)}to{transform:translate(-50%,-50%) rotate(45deg) scale(1)}}input[type=radio]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:20px;height:20px;border:2px solid var(--border-color);border-radius:50%;background-color:transparent;cursor:pointer;position:relative;transition:all var(--transition-base);flex-shrink:0}input[type=radio]:hover{border-color:var(--primary);background-color:var(--primary-light)}input[type=radio]:focus{outline:none;box-shadow:0 0 0 3px var(--shadow-colored)}input[type=radio]:checked{background-color:var(--primary);border-color:var(--primary);animation:radioBounce .3s ease-in-out}input[type=radio]:checked:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:8px;height:8px;border-radius:50%;background-color:#fff;animation:radioDotSlide .3s ease-in-out forwards;animation-delay:.1s}input[type=radio]:disabled{opacity:.5;cursor:not-allowed;background-color:var(--disabled-bg);border-color:var(--border-color)}input[type=radio]:disabled:hover{border-color:var(--border-color);background-color:var(--disabled-bg)}@keyframes radioBounce{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes radioDotSlide{0%{transform:translate(-50%,-50%) scale(0)}50%{transform:translate(-50%,-50%) scale(1.3)}to{transform:translate(-50%,-50%) scale(1)}}.app-logo{display:inline-block;vertical-align:middle;-webkit-user-select:none;user-select:none;object-fit:contain}.app-logo-xs{max-height:20px}.app-logo-sm{max-height:32px}.app-logo-md{max-height:48px}.app-logo-lg{max-height:64px}.app-logo-xl{max-height:96px}.top-bar{position:fixed;top:0;left:0;right:0;height:60px;background:var(--surface-bg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:1000;box-shadow:var(--shadow-md)}.top-bar-left{display:flex;align-items:center}.logo-button{display:flex;align-items:center;gap:12px;background:transparent;border:none;padding:0;cursor:pointer;transition:opacity .2s}.logo-button:hover{opacity:.8}.app-title{font-size:1.5rem;font-weight:700;margin:0;color:var(--text-primary);-webkit-user-select:none;user-select:none}.game-info-topbar{display:flex;align-items:center;gap:16px;margin-left:24px;padding-left:24px;border-left:1px solid var(--border-color)}.game-info-item-topbar{display:flex;flex-direction:column;gap:2px}.game-info-label-topbar{font-size:.75rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.game-info-value-topbar{font-size:.95rem;color:var(--text-primary);font-weight:600;font-family:Courier New,monospace}.game-info-value-topbar.clickable-game-id{cursor:pointer;transition:color var(--transition-base),transform var(--transition-base);padding:2px 6px;border-radius:var(--radius-sm);background:var(--surface-secondary)}.game-info-value-topbar.clickable-game-id:hover{color:var(--primary);transform:scale(1.05);background:var(--hover-bg)}.top-bar-right{display:flex;align-items:center;gap:12px;color:var(--text-primary)}.theme-selector{display:flex;gap:4px;background:var(--surface-secondary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-color)}.theme-btn{background:transparent;border:none;padding:6px 12px;border-radius:var(--radius-sm);font-size:1.2rem;cursor:pointer;transition:all var(--transition-base);opacity:.6;color:var(--text-primary)}.theme-btn:hover{opacity:1;background:var(--hover-bg)}.theme-btn.active{opacity:1;background:var(--active-bg);box-shadow:var(--shadow-sm)}.icon-btn{background:var(--surface-secondary);border:1px solid var(--border-color);padding:8px 12px;border-radius:var(--radius-md);font-size:1.2rem;cursor:pointer;transition:all var(--transition-base);opacity:.8;color:var(--text-primary)}.icon-btn:hover{opacity:1;background:var(--hover-bg);transform:scale(1.05)}.user-menu-container{position:relative}.user-avatar-wrapper{position:relative;display:inline-flex;align-items:center;gap:8px}.user-avatar{width:40px;height:40px;border-radius:var(--radius-full);border:2px solid var(--border-color);cursor:pointer;background:var(--surface-secondary);overflow:hidden;transition:transform var(--transition-base);padding:0}.user-avatar:hover{transform:scale(1.05);border-color:var(--primary)}.user-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;background:var(--primary);color:var(--text-inverse)}.wins-badge{display:flex;align-items:center;gap:4px;background:var(--warning);color:#fff;padding:4px 10px;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;box-shadow:var(--shadow-md);white-space:nowrap;border:1px solid var(--warning-border);transition:transform var(--transition-base),box-shadow var(--transition-base)}.wins-badge:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:200px;background-color:#242832;background-image:linear-gradient(139deg,#242832,#242832 0%,#251c28);border-radius:10px;padding:15px 0;box-shadow:0 10px 30px #0000004d;overflow:hidden;animation:dropdownSlideIn .2s ease-out;display:flex;flex-direction:column;gap:10px}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-info{padding:0 10px}.user-name{font-weight:600;color:#fff}.user-dropdown hr{margin:0;border:none;border-top:1.5px solid #42434a}.dropdown-item{width:100%;padding:4px 7px;margin:0 10px;width:calc(100% - 20px);background:transparent;border:none;text-align:left;cursor:pointer;font-size:.95rem;color:#7e8590;font-weight:600;transition:all .3s ease-out;display:flex;align-items:center;gap:10px;border-radius:6px}.dropdown-item svg{width:19px;height:19px;transition:all .3s ease-out}.dropdown-item:hover{background-color:#5353ff;color:#fff;transform:translate(1px,-1px)}.dropdown-item:active{transform:scale(.99)}.logout-btn{color:#bd89ff}.logout-btn svg{stroke:#bd89ff}.logout-btn:hover{background-color:#382d47d5;color:#bd89ff}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.preferences-panel{position:fixed;top:60px;right:20px;width:360px;max-height:calc(100vh - 100px);background:var(--surface-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-2xl);z-index:1001;overflow:hidden;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.preferences-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-color);background:var(--surface-secondary)}.preferences-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.close-btn{background:transparent;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-tertiary);padding:4px 8px;border-radius:var(--radius-sm);transition:all var(--transition-base);line-height:1}.close-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.preferences-content{padding:20px;max-height:calc(100vh - 200px);overflow-y:auto}.preference-group{margin-bottom:24px}.preference-group:last-child{margin-bottom:0}.preference-group h3{margin:0 0 12px;font-size:1rem;font-weight:600;color:var(--text-primary)}.preference-item{margin-bottom:12px}.preference-item:last-child{margin-bottom:0}.preference-item label{display:flex;align-items:center;cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:background var(--transition-base)}.preference-item label:hover{background:var(--hover-bg)}.preference-item input[type=checkbox],.preference-item input[type=radio]{margin-right:10px;cursor:pointer;width:18px;height:18px}.preference-item span{color:var(--text-primary);font-size:.95rem}@media (max-width: 768px){.top-bar{padding:0 12px;height:56px}.top-bar-left{flex:1;min-width:0;overflow:hidden}.top-bar-right{gap:8px;flex-shrink:0}.logo-button{gap:8px;min-width:0}.app-title{font-size:1.1rem}.theme-selector{display:none}.icon-btn{padding:6px 10px;font-size:1.1rem}.user-avatar{width:36px;height:36px}.wins-badge{font-size:.75rem;padding:3px 8px}.preferences-panel{right:0;left:0;width:auto;margin:0 12px;top:56px}.game-info-topbar{display:none}}@media (max-width: 480px){.top-bar{padding:0 8px;height:52px}.top-bar-left{gap:0}.top-bar-right,.logo-button{gap:6px}.topbar-logo{width:28px;height:28px}.app-title{font-size:1rem}.icon-btn{padding:6px 8px;font-size:1rem}.user-avatar{width:32px;height:32px}.user-avatar-wrapper{gap:6px;position:relative}.wins-badge{position:static;font-size:.65rem;padding:2px 5px;min-width:20px;text-align:center;gap:2px}.game-info-topbar{margin-left:8px;padding-left:8px;gap:6px}.game-info-label-topbar{font-size:.6rem}.game-info-value-topbar{font-size:.8rem}.game-info-value-topbar.clickable-game-id{padding:1px 3px}.preferences-panel{margin:0 8px;top:52px;max-height:calc(100vh - 80px)}.user-dropdown{min-width:200px}}@media (max-width: 360px){.top-bar{padding:0 6px}.app-title{display:none}.logo-button{gap:0}.game-info-topbar{margin-left:6px;padding-left:6px;gap:4px}.game-info-item-topbar:last-child{display:none}.icon-btn{padding:5px 7px}}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--border-color)}.user-info-compact{display:flex;align-items:center;gap:10px}.user-avatar-small{width:40px;height:40px;border-radius:50%;border:2px solid var(--primary)}.user-name-small{font-weight:600;color:var(--text-primary)}.user-name-container{display:flex;align-items:center;gap:8px}.edit-name-button{background:transparent;border:none;cursor:pointer;font-size:1rem;padding:4px;line-height:1;opacity:.6;transition:all var(--transition-base);border-radius:4px}.edit-name-button:hover{opacity:1;background:var(--hover-bg)}.edit-name-button:active{transform:scale(.95)}.name-edit-container{display:flex;align-items:center}.name-edit-input{padding:6px 12px;border:2px solid var(--primary);border-radius:6px;font-size:1rem;font-weight:600;background:var(--input-bg);color:var(--text-primary);outline:none;min-width:200px;transition:border-color var(--transition-base)}.name-edit-input:focus{border-color:var(--primary-hover);box-shadow:var(--shadow-colored)}.name-confirm-button,.name-cancel-button{background:transparent;border:none;cursor:pointer;font-size:1.2rem;padding:6px 10px;line-height:1;transition:all var(--transition-base);border-radius:6px;font-weight:700}.name-confirm-button{color:var(--success)}.name-confirm-button:hover{background:var(--success-bg);transform:scale(1.1)}.name-cancel-button{color:var(--error)}.name-cancel-button:hover{background:var(--error-bg);transform:scale(1.1)}.name-confirm-button:active,.name-cancel-button:active{transform:scale(.95)}.edit-name-button-inline{background:transparent;border:none;cursor:pointer;font-size:.9rem;padding:2px 6px;margin-left:8px;line-height:1;opacity:.6;transition:all var(--transition-base);border-radius:4px;vertical-align:middle;color:var(--text-secondary)}.edit-name-button-inline:hover{opacity:1;background:var(--hover-bg)}.edit-name-button-inline:active{transform:scale(.95)}.player-name-edit-input{padding:4px 10px;border:2px solid var(--primary);border-radius:6px;font-size:1.1rem;font-weight:700;background:var(--input-bg);color:var(--text-primary);outline:none;min-width:150px;transition:border-color var(--transition-base)}.player-name-edit-input:focus{border-color:var(--primary-hover);box-shadow:var(--shadow-colored)}.name-edit-inline-container{display:inline-flex;align-items:center;gap:6px}.name-confirm-button-inline,.name-cancel-button-inline{background:transparent;border:none;cursor:pointer;font-size:1rem;padding:4px 8px;line-height:1;transition:all var(--transition-base);border-radius:4px;font-weight:700;vertical-align:middle}.name-confirm-button-inline{color:var(--success)}.name-confirm-button-inline:hover{background:var(--success-bg);transform:scale(1.1)}.name-cancel-button-inline{color:var(--error)}.name-cancel-button-inline:hover{background:var(--error-bg);transform:scale(1.1)}.name-confirm-button-inline:active,.name-cancel-button-inline:active{transform:scale(.95)}.logout-button-small{padding:8px 16px;background:var(--button-default-bg);border:2px solid var(--button-default-border);border-radius:6px;color:var(--button-default-text);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.logout-button-small:hover{background:var(--button-default-hover);border-color:var(--primary)}.player-info-card{background:var(--surface-bg);border:2px solid var(--border-color);border-radius:8px;padding:15px;margin-bottom:20px;text-align:center}.player-info-card p{margin:0;color:var(--text-secondary);font-size:1rem}.player-info-card strong{color:var(--text-primary);font-size:1.1rem}.lobby{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:var(--body-bg);padding:20px}.lobby-container{background:var(--card-bg);border-radius:16px;padding:48px;max-width:500px;width:100%;box-shadow:var(--shadow-xl);border:1px solid var(--border-color)}.lobby-title{margin:0 0 16px;color:var(--text-primary);text-align:center;font-size:2.5rem;display:flex;justify-content:center;align-items:center}.lobby-subtitle{margin:0 0 32px;color:var(--text-secondary);text-align:center;font-size:1.1rem}.guest-notice{display:flex;align-items:flex-start;gap:16px;background:var(--warning-bg);border:2px solid var(--warning-border);border-radius:12px;padding:20px;margin-bottom:24px}.guest-notice-icon{font-size:2rem;line-height:1;flex-shrink:0}.guest-notice-content{flex:1}.guest-notice-content strong{display:block;color:var(--text-primary);font-size:1.1rem;margin-bottom:8px}.guest-notice-content p{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.lobby-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.lobby-button{padding:16px 32px;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all var(--transition-base)}.lobby-button.primary{background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(27,31,36,.15);box-shadow:var(--shadow-md)}.lobby-button.primary:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.lobby-button.primary:active:not(:disabled){background:var(--button-primary-active);transform:translateY(0)}.lobby-button.secondary{background:var(--button-default-bg);color:var(--button-default-text);border:1px solid var(--button-default-border);box-shadow:var(--shadow-sm)}.lobby-button.secondary:hover{background:var(--button-default-hover)}.lobby-button.secondary:active{background:var(--button-default-active);transform:translateY(0)}.lobby-button:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-weight:600}.form-group input{width:100%;padding:12px 16px;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;transition:border-color var(--transition-base);box-sizing:border-box;background:var(--surface-bg);color:var(--text-primary)}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-colored)}.game-rules{background:var(--surface-bg);padding:24px;border-radius:12px;margin-top:32px;border:1px solid var(--border-color)}.game-rules h3{margin:0 0 16px;color:var(--text-primary);font-size:1.25rem}.game-rules ul{margin:0;padding-left:24px;color:var(--text-secondary);line-height:1.8}.game-rules li{margin-bottom:8px}.bonus-points-info{margin-top:16px;padding:12px 16px;background:var(--info-bg);border-left:4px solid var(--info-border);border-radius:6px;color:var(--info-text);font-size:.95rem}.bonus-points-info strong{color:var(--primary);font-weight:700}.game-options{background:var(--surface-bg);border:2px solid var(--border-color);border-radius:12px;padding:20px;margin-bottom:20px}.toggle-option{display:flex;align-items:flex-start;gap:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-option input[type=checkbox]{width:20px;height:20px;margin:2px 0 0;cursor:pointer;flex-shrink:0;accent-color:var(--primary)}.toggle-label{display:flex;flex-direction:column;gap:4px;flex:1}.toggle-title{color:var(--text-primary);font-weight:600;font-size:1.05rem;display:block}.toggle-description{color:var(--text-secondary);font-size:.9rem;line-height:1.5;display:block}@media (max-width: 768px){.lobby-container{padding:32px 24px}.lobby-title{font-size:2rem}.lobby-subtitle{font-size:1rem}.lobby-button{padding:14px 24px;font-size:1rem}.game-rules{padding:20px}.game-rules h3{font-size:1.1rem}.game-rules ul{font-size:.95rem;padding-left:20px}}.media-player{margin-top:12px;width:100%}.ios-play-section{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px;padding:16px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:12px;animation:pulse-border 2s ease-in-out infinite}@keyframes pulse-border{0%,to{border-color:#ffffff4d;box-shadow:0 0 #fff6}50%{border-color:#ffffff80;box-shadow:0 0 0 8px #fff0}}.ios-play-button{display:flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea66}.ios-play-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.ios-play-button:active{transform:translateY(0)}.ios-play-button svg{width:20px;height:20px}.ios-play-note{margin:0;font-size:.85rem;color:#fffc;text-align:center}.media-player-buttons{display:flex;gap:8px;justify-content:center;margin-bottom:8px}.media-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:6px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.media-button:hover{background:#ffffff4d;transform:translateY(-1px)}.media-button.active{background:#fff6;border-color:#ffffff80;box-shadow:0 2px 8px #0003}.media-button svg{width:16px;height:16px}.media-player-embed{position:relative;width:100%;padding-bottom:56.25%;border-radius:8px;overflow:hidden;background:#0003;box-shadow:0 4px 12px #0000004d}.media-player-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:8px}@media (max-width: 768px){.media-button{padding:6px 10px;font-size:.75rem}.media-button svg{width:14px;height:14px}}.song-card{position:relative;border-radius:var(--radius-xl, 16px);padding:16px;color:var(--text-primary);transition:transform .2s,border-color .2s;display:flex;flex-direction:column;justify-content:flex-start;text-align:center;min-width:120px;max-width:500px;overflow:hidden;background:var(--surface-bg);border:2px solid var(--border-color)}.song-card:before{content:"";position:absolute;top:.5px;right:.5px;bottom:.5px;left:.5px;background:var(--card-bg);border-radius:calc(var(--radius-xl, 16px) - 1px);z-index:0;opacity:.9}.song-card:after{content:"";position:absolute;width:14rem;height:12rem;background:var(--primary-light);filter:blur(50px);left:-50%;top:-50%;z-index:-1;opacity:.5}.song-card:hover{transform:translateY(-2px);border-color:var(--border-hover)}.song-card-small{min-width:100px;padding:12px;font-size:.85rem}.song-card-medium{min-width:140px;max-width:400px;padding:16px}.song-card-large{min-width:180px;max-width:500px;padding:20px;font-size:1.1rem}.song-card-content{display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}.song-artist{font-weight:600;font-size:1em;opacity:.95}.song-title{font-weight:400;font-size:.9em;opacity:.85;font-style:italic}.song-year{font-weight:700;font-size:1.3em;margin-top:4px;color:var(--warning);text-shadow:0 2px 4px rgba(0,0,0,.2)}.song-card-bonus{background:var(--warning-bg);border:3px solid var(--warning);position:relative;overflow:hidden}.song-card-bonus:before{background:var(--warning-bg);opacity:1}.song-card-bonus:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 0%,rgba(255,215,0,.2) 50%,transparent 100%);transform:rotate(45deg);animation:shimmer 3s infinite;z-index:0}@keyframes shimmer{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}.bonus-timeline-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px}.bonus-timeline-logo{width:40px;height:40px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.bonus-timeline-text{font-weight:800;font-size:1.1em;letter-spacing:1px;text-shadow:0 2px 4px rgba(0,0,0,.3);color:gold}.song-title-small{font-weight:600;font-size:.85em;opacity:.95;text-align:center;line-height:1.2}.song-source{font-size:.75em;opacity:.8;font-style:italic}.song-bonus-badge{background:#ffd7004d;padding:4px 12px;border-radius:20px;font-weight:700;font-size:.9em;border:2px solid #ffd700;margin-top:4px}@media (max-width: 768px){.song-card{border-radius:12px}.song-card:before{border-radius:11px}.song-card-small{min-width:70px;padding:6px;font-size:.7rem}.song-card-medium{min-width:100px;padding:10px;font-size:.85rem}.song-card-large{min-width:130px;padding:14px;font-size:.95rem}.bonus-timeline-logo{width:30px;height:30px}.song-year{font-size:1.2em}}@media (max-width: 480px){.song-card{border-radius:8px}.song-card:before{border-radius:7px}.song-card-small{min-width:60px;padding:5px;font-size:.65rem}.song-card-medium{min-width:90px;padding:8px;font-size:.8rem}.song-card-large{min-width:120px;padding:12px;font-size:.9rem}.bonus-timeline-logo{width:24px;height:24px}.song-year{font-size:1.1em}.song-artist{font-size:.95em}.song-title{font-size:.85em}}.player-timeline{background:var(--timeline-bg, white);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s}.player-timeline.current-player{box-shadow:0 0 0 3px var(--primary-color, #4f46e5),0 4px 12px #4f46e54d}.player-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--border-color, #e5e7eb)}.player-name-container{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.player-name{font-size:1.25rem;font-weight:600;color:var(--text-primary, #1f2937)}.bonus-points{font-size:.9rem;font-weight:600;color:#f59e0b;background:linear-gradient(135deg,#fef3c7,#fde68a);padding:4px 10px;border-radius:12px;border:1px solid #fbbf24;display:inline-flex;align-items:center;gap:4px;cursor:help;transition:transform .2s}.bonus-points:hover{transform:scale(1.05)}.player-score{font-size:1rem;font-weight:600;color:var(--button-primary-text);background:var(--button-primary-bg);padding:6px 12px;border-radius:20px;transition:background-color .5s ease}.timeline-container{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:12px 0;min-height:120px}.timeline-item{display:flex;align-items:center;gap:8px;flex-shrink:0}.placement-slot{width:48px;height:48px;border:2px dashed var(--slot-border, #9ca3af);background:var(--slot-bg, #f9fafb);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--slot-text, #9ca3af);cursor:pointer;transition:all .2s;flex-shrink:0}.placement-slot:hover,.placement-slot.hovered{background:var(--primary-color, #4f46e5);border-color:var(--primary-color, #4f46e5);color:#fff;transform:scale(1.1)}.placement-slot:active{transform:scale(.95)}.empty-timeline{color:var(--empty-text, #9ca3af);font-style:italic;text-align:center;width:100%;padding:32px}@media (max-width: 768px){.player-timeline{padding:12px}.player-info{flex-direction:column;align-items:flex-start;gap:8px}.player-name-container{gap:8px;width:100%}.player-name{font-size:1rem}.bonus-points{font-size:.8rem;padding:3px 8px}.player-score{font-size:.85rem;padding:5px 10px}.timeline-container{gap:4px;min-height:100px;padding:8px 0}.placement-slot{width:36px;height:36px;font-size:18px}}@media (max-width: 480px){.player-timeline{padding:10px;margin-bottom:12px}.player-info{gap:6px;margin-bottom:12px;padding-bottom:10px}.player-name{font-size:.95rem}.player-name .material-symbols-outlined{font-size:1.1rem}.bonus-points{font-size:.75rem;padding:2px 6px}.bonus-points .material-symbols-outlined{font-size:.9rem}.player-score{font-size:.8rem;padding:4px 8px}.timeline-container{gap:3px;min-height:90px;padding:6px 0}.placement-slot{width:32px;height:32px;font-size:16px}}:root[data-theme=dark] .player-timeline{--timeline-bg: #1f2937;--text-primary: #f9fafb;--border-color: #374151;--score-text: white;--score-bg: #374151;--slot-border: #6b7280;--slot-bg: #111827;--slot-text: #9ca3af;--empty-text: #6b7280;--primary-color: #818cf8}:root[data-theme=dark] .bonus-points{color:#fbbf24;background:linear-gradient(135deg,#451a03,#78350f);border-color:#92400e}.ios-play-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000d9;z-index:1000;gap:16px;padding:20px;border-radius:12px}.ios-play-button-large{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 40px;background:var(--button-primary-bg);border:1px solid rgba(27,31,36,.15);border-radius:16px;color:var(--button-primary-text);font-size:1.2rem;font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-lg)}.ios-play-button-large:hover{background:var(--button-primary-hover);box-shadow:var(--shadow-xl);transform:translateY(-2px)}.ios-play-button-large:active{background:var(--button-primary-active);transform:translateY(0)}.ios-play-button-large svg{width:48px;height:48px}.ios-play-overlay .ios-play-note{margin:0;font-size:.95rem;color:#ffffffe6;text-align:center;max-width:300px}.guess-card-container{width:100%;max-width:1400px;margin:0 auto;padding:20px;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.guess-card-container.visible{opacity:1;transform:translateY(0)}.guess-card{background:var(--guess-card-bg);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);display:grid;grid-template-columns:1fr;gap:0;animation:cardEntrance .8s ease-out}@keyframes cardEntrance{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.video-container{position:absolute;width:1px;height:1px;padding-bottom:0;opacity:.01;pointer-events:none;overflow:hidden;background:#000}.video-container-hidden{position:absolute;width:1px!important;height:1px!important;padding-bottom:0!important;opacity:.01;pointer-events:none;overflow:hidden}.video-player{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.no-video{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 40px;background:var(--primary);color:#fff}.audio-icon{font-size:120px;margin-bottom:20px;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.no-video p{font-size:1.5rem;font-weight:500;margin:0}.guess-section{padding:40px;background:var(--guess-section-bg)}.guess-header{text-align:center;margin-bottom:32px}.guess-header h2{font-size:2.5rem;color:var(--guess-title);margin:0 0 12px;font-weight:700}.guess-instruction{font-size:1.125rem;color:var(--guess-instruction);margin:0 0 8px;font-weight:400}.guess-instruction strong{color:var(--instruction-emphasis);font-weight:700}.guess-hint{font-size:1rem;color:var(--hint-badge-text);margin:0;font-weight:600;background:var(--hint-badge-bg);padding:8px 16px;border-radius:8px;display:inline-block}.guess-form{display:flex;flex-direction:column;gap:28px;max-width:600px;margin:0 auto}.year-input-container{position:relative;display:flex;flex-direction:column;gap:8px}.input-label{color:var(--input-text);font-size:.95rem;font-weight:600;text-align:left;padding-left:4px}.year-input{width:100%;padding:18px 24px;font-size:1.5rem;text-align:left;border:2px solid var(--input-border);border-radius:12px;background:var(--input-bg);color:var(--input-text);font-weight:600;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.year-input:focus{outline:none;border-color:var(--primary);background:var(--input-focus-bg);box-shadow:var(--shadow-colored)}.year-input::placeholder{color:var(--input-placeholder)}.year-input:disabled{opacity:.6;cursor:not-allowed}.decade-hints{background:var(--hints-bg);padding:24px;border-radius:12px;border:2px solid var(--hints-border)}.hint-label{font-size:.95rem;color:var(--hint-text);margin:0 0 16px;text-align:center;font-weight:500}.decade-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}.decade-button{padding:12px 16px;background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(27,31,36,.15);border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.decade-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.decade-button:active:not(:disabled){background:var(--button-primary-active);transform:translateY(0)}.decade-button:disabled{opacity:.5;cursor:not-allowed}.submit-guess-button{padding:20px 40px;font-size:1.375rem;font-weight:700;color:var(--button-primary-text);background:var(--button-primary-bg);border:1px solid rgba(27,31,36,.15);border-radius:16px;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;gap:10px}.submit-guess-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.submit-guess-button:active:not(:disabled){background:var(--button-primary-active);transform:translateY(0)}.submit-guess-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.media-links{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:16px}.media-links-label{font-size:.95rem;color:var(--hint-text);margin:0;font-weight:500;text-align:center}.media-link{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-size:1rem;font-weight:600;text-decoration:none;border-radius:12px;cursor:pointer;transition:all var(--transition-base);border:2px solid transparent}.youtube-link{background:red;color:#fff;box-shadow:var(--shadow-md)}.youtube-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);opacity:.9}.media-link:active{transform:translateY(0)}.media-link svg{flex-shrink:0}.action-buttons{display:flex;gap:12px;margin-top:8px}.skip-button{width:100%;padding:16px 32px;font-size:1.125rem;font-weight:600;color:var(--button-default-text);background:var(--button-default-bg);border:1px solid var(--button-default-border);border-radius:16px;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;gap:8px}.skip-button:hover:not(:disabled){background:var(--button-default-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.skip-button:active:not(:disabled){background:var(--button-default-active);transform:translateY(0)}.skip-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.report-button{flex:1;padding:16px 32px;font-size:1.125rem;font-weight:600;color:var(--button-danger-text);background:var(--button-danger-bg);border:1px solid rgba(27,31,36,.15);border-radius:16px;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;gap:8px}.report-button:hover:not(:disabled){background:var(--button-danger-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.report-button:active:not(:disabled){background:var(--button-danger-active);transform:translateY(0)}.report-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.report-message{text-align:center;padding:12px 20px;background:var(--success-bg);border:2px solid var(--success-border);border-radius:12px;color:var(--success-text);font-weight:600;font-size:.95rem;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.guess-card-container{padding:12px}.guess-section{padding:24px 20px}.guess-header h2{font-size:1.875rem}.guess-instruction{font-size:1rem}.guess-hint{font-size:.9rem;padding:6px 12px}.input-label{font-size:.85rem}.year-input{font-size:1.25rem;padding:14px 18px}.decade-buttons{grid-template-columns:repeat(2,1fr)}.decade-button{padding:10px 12px;font-size:.85rem}.submit-guess-button{padding:16px 32px;font-size:1.125rem}.media-links{gap:8px}.media-link{flex:1;min-width:140px;padding:10px 20px;font-size:.95rem}.action-buttons{flex-direction:column;gap:8px}.skip-button,.report-button{padding:14px 28px;font-size:1rem}.audio-icon{font-size:80px}.no-video{padding:80px 30px}.no-video p{font-size:1.125rem}}@media (max-width: 480px){.guess-header h2{font-size:1.5rem}.guess-instruction{font-size:.9rem}.guess-hint{font-size:.85rem;padding:6px 10px}.decade-buttons{grid-template-columns:1fr}.year-input{font-size:1.25rem}.media-link{padding:10px 16px;font-size:.9rem}.skip-button,.report-button{padding:12px 24px;font-size:.95rem}}:root[data-theme=dark] .guess-card{--guess-card-bg: var(--surface-bg);--guess-section-bg: var(--body-bg);--guess-title: var(--text-primary);--guess-instruction: var(--text-secondary);--instruction-emphasis: var(--primary);--input-bg: var(--surface-bg);--input-focus-bg: var(--surface-secondary);--input-border: var(--border-color);--input-text: var(--text-primary);--input-placeholder: var(--text-tertiary);--hints-bg: var(--surface-bg);--hints-border: var(--border-color);--hint-text: var(--text-secondary);--hint-badge-text: var(--warning-text);--hint-badge-bg: var(--warning-bg)}:root[data-theme=light] .guess-card{--guess-card-bg: var(--card-bg);--guess-section-bg: var(--surface-bg);--guess-title: var(--text-primary);--guess-instruction: var(--text-secondary);--instruction-emphasis: var(--primary);--input-bg: var(--card-bg);--input-focus-bg: var(--surface-bg);--input-border: var(--border-color);--input-text: var(--text-primary);--input-placeholder: var(--text-tertiary);--hints-bg: var(--card-bg);--hints-border: var(--border-color);--hint-text: var(--text-secondary);--hint-badge-text: var(--warning-text);--hint-badge-bg: var(--warning-bg)}n.bonus-song-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:24px;box-shadow:0 8px 32px #667eea4d;color:#fff;max-width:600px;width:100%;margin:0 auto;position:relative;overflow:hidden;box-sizing:border-box}.bonus-song-header{display:flex;justify-content:center;margin-bottom:20px;position:relative;z-index:1}.bonus-badge{display:flex;align-items:center;gap:12px;background:#fff3;padding:12px 24px;border-radius:50px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3)}.bonus-logo{width:32px;height:32px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.bonus-text{font-weight:700;font-size:16px;letter-spacing:1px;text-transform:uppercase;text-shadow:0 2px 4px rgba(0,0,0,.2)}.bonus-song-content{position:relative;z-index:1}.bonus-song-info{text-align:center;margin-bottom:20px}.bonus-song-info .song-title{font-size:24px;font-weight:700;margin-bottom:8px;text-shadow:0 2px 8px rgba(0,0,0,.3)}.bonus-song-info .song-artist{font-size:18px;opacity:.9;text-shadow:0 2px 4px rgba(0,0,0,.2)}.media-hint{text-align:center;font-size:14px;color:#ffffffe6;margin:8px 0;padding:6px 12px;background:#ffffff26;border-radius:8px;font-weight:500;animation:gentle-pulse 2s infinite}@keyframes gentle-pulse{0%,to{opacity:.9}50%{opacity:1}}.play-audio-button{background:#fff3;border:2px solid rgba(255,255,255,.4);color:#fff;padding:16px 32px;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:inline-flex;align-items:center;gap:10px;box-shadow:0 4px 12px #0003;text-shadow:0 2px 4px rgba(0,0,0,.2)}@media (hover: hover) and (pointer: fine){.play-audio-button:hover{background:#ffffff4d;border-color:#fff9;transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}}.play-audio-button:active{background:#ffffff4d;border-color:#fff9;box-shadow:0 2px 8px #0003}.ios-play-note{margin:8px 0 0;font-size:.875rem;color:#ffffffe6;text-align:center;font-weight:500}.auto-play-notice{font-size:14px;color:#ffffffe6;font-weight:500}.play-audio-container{text-align:center;margin-bottom:24px;animation:fade-in .5s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.bonus-question{margin-top:24px}.bonus-question h3{font-size:20px;text-align:center;margin-bottom:20px;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.2)}.bonus-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bonus-choice{background:#ffffffe6;border:2px solid rgba(255,255,255,.95);color:#1a1a1a;padding:16px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden;box-shadow:0 4px 12px #0003}@media (hover: hover) and (pointer: fine){.bonus-choice:hover:not(.disabled){background:#fff;border-color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}}.bonus-choice:active:not(.disabled){background:#ffffffd9;border-color:#ffffffe6;transform:translateY(0);box-shadow:0 2px 8px #0003}.bonus-choice.selected{background:#fff;border-color:#667eea;box-shadow:0 0 20px #667eea80,0 4px 12px #0000004d}.bonus-choice.correct{background:linear-gradient(135deg,#43a047,#66bb6a);border-color:#2e7d32;animation:pulse-correct .5s ease}.bonus-choice.incorrect{background:linear-gradient(135deg,#e53935,#ef5350);border-color:#c62828;animation:shake .5s ease}.bonus-choice.disabled{cursor:not-allowed;opacity:.6}@keyframes pulse-correct{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.bonus-result{margin-top:20px;padding:16px;border-radius:12px;text-align:center;font-size:18px;font-weight:600;animation:slide-up .5s ease}.bonus-result.correct-result{background:#43a0474d;border:2px solid #43a047}.bonus-result.incorrect-result{background:#e539354d;border:2px solid #e53935}.bonus-result strong{font-weight:700;text-decoration:underline}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 600px){.bonus-song-card{padding:16px}.bonus-choices{grid-template-columns:1fr}.bonus-badge{padding:8px 16px;gap:8px}.bonus-logo{width:24px;height:24px}.bonus-text{font-size:14px}.bonus-song-info .song-title{font-size:20px}.bonus-song-info .song-artist{font-size:16px}.bonus-question h3{font-size:18px}.bonus-choice{padding:12px;font-size:14px}}.share-results{margin-top:2rem;padding:2rem;background:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:2px solid var(--primary)}.share-results h3{margin:0 0 1.5rem;color:var(--primary);font-size:1.5rem;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem}.share-preview{background:var(--preview-bg, white);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;max-height:400px;overflow-y:auto;box-shadow:inset 0 2px 4px #0000000d}.share-preview pre{margin:0;font-family:Courier New,monospace;font-size:.9rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;color:var(--preview-text, #2d3748)}.share-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.share-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.share-button.primary{background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(27,31,36,.15);box-shadow:var(--shadow-sm)}.share-button.primary:hover{background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.share-button.secondary{background:var(--button-default-bg);color:var(--button-default-text);border:1px solid var(--button-default-border)}.share-button.secondary:hover{background:var(--button-default-hover);border-color:var(--border-hover);transform:translateY(-2px)}.new-game-section{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid var(--border-color);display:flex;justify-content:center}.share-button.new-game{background:var(--primary);color:var(--text-inverse);font-size:1.1rem;padding:1rem 2rem;box-shadow:var(--shadow-md);border:1px solid rgba(27,31,36,.15)}.share-button.new-game:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media (max-width: 768px){.share-results{padding:1rem;margin-top:1.5rem}.share-results h3{font-size:1.2rem;margin-bottom:1rem}.share-preview{padding:.75rem;max-height:250px;overflow-x:auto}.share-preview pre{font-size:.7rem;line-height:1.4}.share-actions{flex-direction:column;gap:.75rem}.share-button{width:100%;justify-content:center;padding:.65rem 1rem;font-size:.95rem}.new-game-section{margin-top:1rem;padding-top:1rem}.share-button.new-game{font-size:1rem;padding:.85rem 1.5rem}}@media (max-width: 480px){.share-results{padding:.75rem;margin-top:1rem;border-radius:8px}.share-results h3{font-size:1.1rem;margin-bottom:.75rem}.share-preview{padding:.5rem;max-height:200px}.share-preview pre{font-size:.65rem;line-height:1.3}.share-button{padding:.6rem .75rem;font-size:.9rem}.share-button.new-game{font-size:.95rem;padding:.75rem 1.25rem}}:root[data-theme=dark] .share-results{--preview-bg: #1f2937;--preview-text: #f9fafb}.lobby-waiting{max-width:600px;margin:2rem auto;padding:2rem;background:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-md);text-align:center}.lobby-waiting h2{margin-bottom:1rem;color:var(--text-primary)}.lobby-instruction{font-size:1.1rem;color:var(--text-tertiary);margin-bottom:2rem}.players-list{margin:2rem 0;padding:1.5rem;background:var(--surface-secondary);border-radius:var(--radius-md)}.players-list h3{margin-bottom:1rem;color:var(--text-primary)}.players-list ul{list-style:none;padding:0}.players-list li{padding:.75rem;margin:.5rem 0;background:var(--card-bg);border-radius:var(--radius-sm);font-size:1rem;color:var(--text-primary)}.start-game-button{padding:1rem 2rem;font-size:1.2rem;font-weight:700;background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(27,31,36,.15);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);margin:.2rem 0 1.5rem}.start-game-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.start-game-button:active:not(:disabled){background:var(--button-primary-active);transform:translateY(0)}.start-game-button:disabled{background:var(--disabled-bg);color:var(--disabled-text);cursor:not-allowed;opacity:.6}.lobby-note{margin-top:1rem;color:var(--text-tertiary);font-size:.9rem;font-style:italic}.game-id-section{background:var(--surface-secondary);border:3px solid var(--primary);border-radius:var(--radius-md);padding:24px;margin:24px 0;text-align:center}.game-id-section h3{margin:0 0 12px;color:var(--text-primary);font-size:1.1rem;font-weight:600}.game-id-display{margin:16px 0;padding:16px;background:var(--card-bg);border:2px dashed var(--primary);border-radius:var(--radius-md)}.game-id-display.clickable{cursor:pointer;transition:all var(--transition-base);-webkit-user-select:none;user-select:none}.game-id-display.clickable:hover{background:var(--active-bg);border-color:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-colored)}.game-id-display.clickable:active{transform:translateY(0)}.game-id-code{font-size:1.5rem;font-weight:700;color:var(--primary);font-family:JetBrains Mono,Fira Code,Courier New,monospace;letter-spacing:2px;padding:8px 16px;background:var(--surface-secondary);border-radius:var(--radius-sm);display:inline-block;transition:color var(--transition-base)}.clickable .game-id-code{pointer-events:none}.clickable:hover .game-id-code{color:var(--primary-hover)}.share-buttons{display:flex;gap:12px;justify-content:center;margin:16px 0;flex-wrap:wrap}.share-button{padding:12px 24px;border:2px solid var(--primary);border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-slow);display:flex;align-items:center;gap:8px;background:var(--card-bg);color:var(--primary)}.share-button:hover{background:var(--primary);color:var(--text-inverse);transform:translateY(-2px);box-shadow:var(--shadow-colored)}.share-button:active{transform:translateY(0)}.qr-code-container{margin:20px 0;padding:16px;background:var(--card-bg);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:8px}.qr-code-label{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary)}.qr-code-container svg{border:2px solid var(--primary);border-radius:var(--radius-md);background:#fff}.share-note{margin:12px 0 0;color:var(--text-tertiary);font-size:.9rem;font-style:italic}.game-board{max-width:1600px;margin:0 auto;padding:0 20px 20px;background:var(--body-bg);overflow-x:hidden;width:100%;box-sizing:border-box}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.5rem;color:var(--text-tertiary)}.game-header{background:var(--card-bg);padding:24px;border-radius:var(--radius-md);margin-bottom:20px;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:space-between;gap:32px}.game-heading{display:flex;align-items:center}.game-header h1{margin:0 0 12px;color:var(--text-primary);font-size:2rem}.game-info{display:flex;gap:32px;align-items:center}.game-info-item{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.game-info-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary)}.game-info-value{font-size:1.5rem;font-weight:700;color:var(--primary);font-family:JetBrains Mono,Fira Code,Courier New,monospace;letter-spacing:1px}.clickable-game-id{cursor:pointer;transition:all var(--transition-base);-webkit-user-select:none;user-select:none}.clickable-game-id:hover{color:var(--primary-hover);transform:scale(1.05)}.clickable-game-id:active{transform:scale(.98)}.message{position:fixed;bottom:120px;left:50%;transform:translate(-50%);padding:16px 24px;border-radius:var(--radius-md);font-weight:500;text-align:center;z-index:1000;max-width:90%;box-shadow:var(--shadow-xl);animation:slideInFloat .4s ease-out}@keyframes slideInFloat{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.message-success{background:var(--success-bg);color:var(--success-text);border:2px solid var(--success-border)}.message-error{background:var(--error-bg);color:var(--error-text);border:2px solid var(--error-border)}.message-info{background:var(--info-bg);color:var(--info-text);border:2px solid var(--info-border)}.guessing-section{margin:8px 0 30px;animation:fadeIn .5s ease-out}.speed-round-banner{display:flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(135deg,#ff6b6b,#ff8e53);color:#fff;padding:16px 24px;border-radius:var(--radius-md);margin-bottom:20px;font-weight:700;font-size:1.3rem;box-shadow:0 4px 20px #ff6b6b80;animation:speedPulse 1s infinite;border:3px solid #ff4757}.speed-round-icon{font-size:2rem;animation:bounce .5s infinite alternate}.speed-round-text{letter-spacing:2px;text-transform:uppercase;text-shadow:0 2px 4px rgba(0,0,0,.3)}.speed-round-timer{font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:1.8rem;background:#fff3;padding:8px 16px;border-radius:var(--radius-sm);min-width:80px;text-align:center;border:2px solid rgba(255,255,255,.3)}@keyframes speedPulse{0%,to{transform:scale(1);box-shadow:0 4px 20px #ff6b6b80}50%{transform:scale(1.02);box-shadow:0 6px 30px #ff6b6bcc}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.current-card-section-sticky{position:sticky;top:80px;z-index:10;background:var(--card-bg);padding:16px;border-radius:var(--radius-md);margin-bottom:20px;box-shadow:var(--shadow-lg);animation:slideInFromTop .6s ease-out}@media (max-width: 768px){.current-card-section-sticky{position:relative;top:auto}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.card-placement-wrapper{display:flex;align-items:center;gap:24px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.placement-card-preview{flex-shrink:0}.placement-instructions-compact{flex:1;text-align:left}.placement-instructions-compact h3{margin:0 0 8px;color:var(--primary);font-size:1.5rem}.instruction-text-compact{color:var(--text-primary);font-size:1.1rem;margin:0;font-weight:600}.current-card-container{display:flex;justify-content:center;margin-bottom:16px}.watching-section{margin:40px 0;text-align:center;padding:40px;background:var(--primary-light);border-radius:var(--radius-xl);animation:fadeIn .5s ease-out;border:1px solid var(--border-color)}.watching-section h2{color:var(--primary);font-size:1.8rem;margin-bottom:24px;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.bonus-card-preview{display:flex;flex-direction:column;align-items:center;gap:20px}.bonus-preview-badge{display:flex;align-items:center;gap:12px;background:var(--warning);padding:12px 24px;border-radius:50px;color:#fff;font-weight:700;font-size:16px;letter-spacing:1px;text-transform:uppercase;box-shadow:var(--shadow-md);border:2px solid var(--warning-border)}.bonus-preview-logo{width:32px;height:32px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.instruction{color:var(--primary);font-size:1.2rem;margin:8px 0 0;font-weight:600;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.tutorial-overlay{background:var(--primary);border:3px solid var(--primary-hover);border-radius:var(--radius-xl);padding:32px;margin-bottom:24px;box-shadow:var(--shadow-2xl);animation:slideDown .5s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.tutorial-content h3{color:#fff;font-size:2rem;margin:0 0 24px;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.2)}.tutorial-steps{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:16px}.tutorial-steps li{display:flex;align-items:flex-start;gap:16px;background:#ffffff26;padding:16px 20px;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2)}.step-number{font-size:1.5rem;flex-shrink:0;line-height:1}.step-text{color:#fff;font-size:1.1rem;line-height:1.5}.step-text strong{font-weight:700;color:gold}.tutorial-close{background:var(--warning);color:#fff;border:1px solid rgba(27,31,36,.15);padding:16px 32px;border-radius:var(--radius-md);font-size:1.2rem;font-weight:700;cursor:pointer;transition:all var(--transition-base);width:100%;box-shadow:var(--shadow-md)}.tutorial-close:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);opacity:.9}.tutorial-close:active{transform:translateY(0)}.turn-instruction{color:var(--text-tertiary);font-size:1.2rem;margin:0 0 20px;font-weight:500}.help-button{background:transparent;color:var(--primary);border:2px solid var(--primary);padding:12px 24px;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-base);margin-top:16px}.help-button:hover{background:var(--primary);color:var(--text-inverse);transform:translateY(-2px)}.help-button:active{transform:translateY(0)}.placement-instructions{background:var(--primary-light);border:2px dashed var(--primary);border-radius:var(--radius-md);padding:16px 24px;margin-bottom:20px}.instruction-text{color:var(--primary);font-size:1.15rem;margin:0;font-weight:600;text-align:center}.instruction-text strong{color:var(--primary-hover);font-weight:800}.turn-section{background:var(--card-bg);padding:32px;border-radius:var(--radius-md);margin-bottom:20px;text-align:center;box-shadow:var(--shadow-md);display:flex;flex-direction:column;align-items:center;gap:.5rem}.turn-section h2{margin:0 0 20px;color:var(--primary);font-size:1.75rem}.draw-button{width:auto;min-width:240px;height:50px;background-color:#414040;border:none;box-shadow:5px 5px 15px #00000057;border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden;transition-duration:.5s;padding:0 24px}.draw-button .text{color:#b8ec68;font-weight:800;letter-spacing:1.1px;z-index:2;font-size:1.1rem;font-family:Inter,sans-serif}.draw-button .svgIcon{z-index:2;width:1.2em;height:1.2em}.draw-button .svgIcon path{fill:#b8ec68}.draw-button .effect{position:absolute;width:10px;height:10px;background-color:#b8ec68;border-radius:50%;z-index:1;opacity:0;transition-duration:.5s}.draw-button:hover:not(:disabled){color:#e6ffc1;box-shadow:0 0 5px #b8ec68,0 0 10px #b8ec68,0 0 30px #b8ec68;transition-duration:.7s}.draw-button:hover:not(:disabled) .effect{transform:scale(30);transform-origin:center;opacity:1;transition-duration:.5s}.draw-button:hover:not(:disabled) .text{color:#414040}.draw-button:hover:not(:disabled) .svgIcon path{fill:#414040}.draw-button:active:not(:disabled){transform:scale(.98)}.draw-button:disabled{opacity:.6;cursor:not-allowed;background:var(--disabled-bg);color:var(--disabled-text)}.draw-button:disabled .text{color:var(--disabled-text)}.draw-button:disabled .svgIcon path{fill:var(--disabled-text)}.waiting-section{background:var(--card-bg);padding:24px;border-radius:var(--radius-md);margin-bottom:20px;text-align:center;box-shadow:var(--shadow-md)}.waiting-section p{margin:0;color:var(--text-tertiary);font-size:1.1rem}.waiting-player-info{display:flex;flex-direction:column;align-items:center;gap:16px;animation:fadeIn .5s ease-out}.player-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;box-shadow:var(--shadow-md);border:3px solid var(--primary);animation:pulse 2s infinite}.player-avatar-placeholder{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:#fff;box-shadow:var(--shadow-md);animation:pulse 2s infinite}.waiting-message{margin:0;color:var(--text-primary);font-size:1.3rem;font-weight:600}.players-section{background:transparent;padding:24px;border-radius:24px;margin-bottom:20px}.players-section h2{margin:0 0 20px;color:var(--text-primary)}.progress-indicator{position:fixed;bottom:0;left:0;right:0;padding:16px;text-align:center;font-weight:600;color:var(--button-primary-text);background:var(--button-primary-bg);box-shadow:var(--shadow-xl);transition:background-color var(--transition-slow);font-size:1.1rem;z-index:1000;border-radius:0}.game-finished{background:var(--card-bg);padding:48px;border-radius:var(--radius-md);text-align:center;box-shadow:var(--shadow-md);overflow-x:hidden}.game-finished h1{margin:0 0 16px;color:var(--primary);font-size:2.5rem}.game-finished h2{margin:0 0 32px;color:var(--text-primary);font-size:1.75rem}.winner-message{margin:16px 0 32px;font-size:1.3rem;font-weight:600;color:var(--primary);animation:sparkle 1.5s ease-in-out infinite;text-shadow:0 0 10px var(--primary-light)}@keyframes sparkle{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}.winner-bonus-points{margin:16px 0;font-size:1.4rem;font-weight:700;color:var(--primary);text-shadow:0 2px 4px rgba(102,126,234,.3)}.bonus-ranking{margin:32px auto;max-width:600px;background:var(--surface-secondary);padding:24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:2px solid var(--primary)}.bonus-ranking h3{margin:0 0 20px;color:var(--primary);font-size:1.5rem;text-align:center;font-weight:700}.ranking-list{display:flex;flex-direction:column;gap:12px}.ranking-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--card-bg);border-radius:var(--radius-md);transition:all var(--transition-base);border:2px solid transparent}.ranking-item:hover{transform:translate(4px);box-shadow:var(--shadow-sm)}.ranking-item.current-user{background:var(--primary-light);border-color:var(--primary);box-shadow:var(--shadow-colored)}.ranking-item .rank{font-size:1.5rem;min-width:50px;text-align:center}.ranking-item .player-name{flex:1;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 16px}.ranking-item.current-user .player-name{color:var(--primary)}.ranking-item .points{font-size:1.2rem;font-weight:700;color:var(--primary);font-family:JetBrains Mono,Fira Code,Courier New,monospace}.winner-timeline{margin-top:32px;overflow-x:auto}@media (max-width: 768px){.game-board{padding:8px;overflow-x:hidden}.card-placement-wrapper{flex-direction:column;gap:16px}.placement-card-preview{width:100%}.placement-instructions-compact{text-align:center}.game-header{padding:16px;flex-direction:column;gap:16px}.game-header h1{font-size:1.5rem}.game-info{flex-direction:row;gap:24px;width:100%;justify-content:center}.game-info-item{align-items:center}.game-info-value{font-size:1.25rem}.current-card-section,.turn-section,.waiting-section{padding:16px}.players-section{padding:16px;margin-left:-12px;margin-right:-12px;margin-bottom:20px;width:calc(100% + 24px);border-radius:24px;position:static;left:auto;right:auto}.draw-button{padding:14px 32px;font-size:1.1rem}.game-finished{padding:16px}.game-finished h1{font-size:1.5rem;margin-bottom:12px}.game-finished h2{font-size:1.15rem;margin-bottom:24px}.winner-message{font-size:1.1rem;margin:12px 0 24px}.winner-bonus-points{font-size:1.2rem;margin:12px 0}.winner-timeline{margin-top:24px}.bonus-ranking{margin:24px auto;padding:16px}.bonus-ranking h3{font-size:1.25rem;margin-bottom:16px}.ranking-list{gap:8px}.ranking-item{padding:12px 16px}.ranking-item .rank{font-size:1.25rem;min-width:40px}.ranking-item .player-name{font-size:1rem;margin:0 12px}.ranking-item .points{font-size:1rem}.game-id-section{padding:16px}.game-id-code{font-size:1.2rem;letter-spacing:1px;padding:6px 12px}.share-buttons{flex-direction:column}.share-button{width:100%;justify-content:center}.tutorial-overlay{padding:20px}.tutorial-content h3{font-size:1.5rem}.tutorial-steps li{padding:12px 16px}.step-text{font-size:1rem}.tutorial-close{font-size:1.1rem;padding:14px 24px}.turn-instruction{font-size:1.1rem}.instruction-text{font-size:1rem}}.media-player-demo{max-width:800px;margin:0 auto;padding:40px 20px;min-height:100vh}.demo-header{text-align:center;margin-bottom:40px}.demo-header h1{font-size:2.5rem;margin-bottom:10px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.demo-header p{font-size:1.1rem;color:#666}.song-selector{display:flex;flex-direction:column;gap:10px;margin-bottom:30px}.song-select-button{padding:15px 20px;background:#fff;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;text-align:left}.song-select-button:hover{border-color:#667eea;background:#f8f9ff}.song-select-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;font-weight:600}.demo-card-container{display:flex;justify-content:center;margin-bottom:40px}.demo-instructions{background:#f8f9ff;border-radius:12px;padding:20px;border:2px solid #e0e0ff}.demo-instructions h3{margin-top:0;color:#667eea}.demo-instructions ul{margin:10px 0 0 20px;line-height:1.8}.demo-instructions li{color:#555}@media (max-width: 768px){.demo-header h1{font-size:2rem}.song-select-button{padding:12px 15px;font-size:.9rem}}.friends-container{max-width:1000px;margin:0 auto;padding:20px;color:var(--text-primary, #333)}[data-theme=dark] .friends-container{color:var(--text-primary-dark, #e5e7eb)}.friends-loading{text-align:center;padding:40px;color:var(--text-secondary, #666)}[data-theme=dark] .friends-loading{color:var(--text-secondary-dark, #9ca3af)}.friends-header{text-align:center;margin-bottom:30px}.friends-header h2{margin:0 0 10px;font-size:2rem;color:var(--text-primary, #333)}[data-theme=dark] .friends-header h2{color:var(--text-primary-dark, #e5e7eb)}.friends-subtitle{margin:0;color:var(--text-secondary, #666);font-size:1.1rem}[data-theme=dark] .friends-subtitle{color:var(--text-secondary-dark, #9ca3af)}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:20px;background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33}.error-close{margin-left:auto;background:none;border:none;font-size:1.5rem;color:#c33;cursor:pointer;padding:0;width:24px;height:24px}.friends-search{background:var(--bg-secondary, white);border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 10px #0000001a}[data-theme=dark] .friends-search{background:var(--bg-secondary-dark, #1f2937);box-shadow:0 2px 10px #0000004d}.friends-search form{display:flex;gap:10px}.search-input{flex:1;padding:12px 16px;border:2px solid var(--border-color, #ddd);border-radius:8px;font-size:1rem;transition:border-color .3s ease;background:var(--bg-primary, white);color:var(--text-primary, #333)}[data-theme=dark] .search-input{border-color:var(--border-color-dark, #374151);background:var(--bg-primary-dark, #111827);color:var(--text-primary-dark, #e5e7eb)}.search-input:focus{outline:none;border-color:#667eea}.search-button{padding:12px 24px;background:#667eea;border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.search-button:hover:not(:disabled){background:#5568d3;transform:translateY(-2px)}.search-button:disabled{opacity:.6;cursor:not-allowed}.search-results{margin-top:20px;padding-top:20px;border-top:2px solid var(--border-color, #eee)}[data-theme=dark] .search-results{border-top-color:var(--border-color-dark, #374151)}.search-results h3{margin:0 0 15px;color:var(--text-primary, #333);font-size:1.1rem}[data-theme=dark] .search-results h3{color:var(--text-primary-dark, #e5e7eb)}.friends-tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #eee}.tab-button{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;font-size:1rem;font-weight:600;color:#666;cursor:pointer;transition:all .3s ease;position:relative}.badge{display:inline-block;padding:2px 8px;background:#f44;color:#fff;border-radius:12px;font-size:.75rem;margin-left:8px}.friends-content{background:var(--bg-secondary, white);border-radius:12px;padding:30px;box-shadow:0 2px 10px #0000001a}[data-theme=dark] .friends-content{background:var(--bg-secondary-dark, #1f2937);box-shadow:0 2px 10px #0000004d}.user-list{display:flex;flex-direction:column;gap:12px}.user-card,.friend-card,.request-card{display:flex;align-items:center;justify-content:space-between;padding:16px;border:2px solid var(--border-color, #eee);border-radius:10px;transition:all .3s ease;background:var(--bg-primary, white)}[data-theme=dark] .user-card,[data-theme=dark] .friend-card,[data-theme=dark] .request-card{border-color:var(--border-color-dark, #374151);background:var(--bg-primary-dark, #111827)}.user-card:hover,.friend-card:hover,.request-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.user-info{display:flex;align-items:center;gap:12px;flex:1}.user-avatar{width:48px;height:48px;border-radius:50%;border:2px solid #eee}.user-name{font-weight:600;color:var(--text-primary, #333);margin-bottom:4px}[data-theme=dark] .user-name{color:var(--text-primary-dark, #e5e7eb)}.user-stats-mini{font-size:.85rem;color:var(--text-secondary, #999)}[data-theme=dark] .user-stats-mini{color:var(--text-secondary-dark, #9ca3af)}.add-friend-button{padding:8px 16px;background:#667eea;border:none;border-radius:6px;color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease}.add-friend-button:hover:not(:disabled){background:#5568d3}.add-friend-button:disabled{background:#ccc;cursor:not-allowed}.friend-actions{display:flex;gap:8px}.invite-button,.remove-button{padding:8px 12px;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .3s ease}.invite-button{background:#667eea;color:#fff}.invite-button:hover{background:#5568d3}.remove-button{background:#fee;color:#c33}.remove-button:hover{background:#fcc}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary, #999)}[data-theme=dark] .empty-state{color:var(--text-secondary-dark, #9ca3af)}.empty-icon{font-size:4rem;margin-bottom:20px}.empty-hint{font-size:.9rem;margin-top:10px}.requests-list{display:flex;flex-direction:column;gap:30px}.request-section h3{margin:0 0 15px;color:var(--text-primary, #333);font-size:1.1rem;padding-bottom:10px;border-bottom:2px solid var(--border-color, #eee)}[data-theme=dark] .request-section h3{color:var(--text-primary-dark, #e5e7eb);border-bottom-color:var(--border-color-dark, #374151)}.no-requests{text-align:center;padding:30px;color:var(--text-secondary, #999)}[data-theme=dark] .no-requests{color:var(--text-secondary-dark, #9ca3af)}.request-date{font-size:.85rem;color:var(--text-secondary, #999)}[data-theme=dark] .request-date{color:var(--text-secondary-dark, #9ca3af)}.request-actions{display:flex;gap:8px}.accept-button,.reject-button,.cancel-button{padding:8px 16px;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s ease}.accept-button{background:#d4edda;color:#155724}.accept-button:hover{background:#c3e6cb}.reject-button,.cancel-button{background:#f8d7da;color:#721c24}.reject-button:hover,.cancel-button:hover{background:#f5c6cb}@media (max-width: 768px){.friends-search form{flex-direction:column}.user-card,.friend-card,.request-card{flex-direction:column;align-items:flex-start;gap:12px}.friend-actions,.request-actions{width:100%;justify-content:flex-end}.friends-tabs{overflow-x:auto}.tab-button{white-space:nowrap}}.user-profile{max-width:100%;padding:20px;color:var(--text-primary, #333)}[data-theme=dark] .user-profile{color:var(--text-primary-dark, #e5e7eb)}.profile-loading{text-align:center;padding:40px;color:#666}.profile-header{display:flex;justify-content:center;align-items:center;margin-bottom:30px}.card{--main-color: #000;--submain-color: #78858F;--bg-color: #fff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;position:relative;width:100%;height:384px;display:flex;flex-direction:column;align-items:center;border-radius:20px;background:var(--bg-color)}.card__img{height:192px;width:100%}.card__img svg{height:100%;border-radius:20px 20px 0 0}.card__avatar{position:absolute;width:114px;height:114px;background:var(--bg-color);border-radius:100%;display:flex;justify-content:center;align-items:center;top:calc(50% - 57px)}.card__avatar svg{width:100px;height:100px}.card__title{margin-top:60px;font-weight:500;font-size:18px;color:var(--main-color)}.card__subtitle{margin-top:10px;font-weight:400;font-size:15px;color:var(--submain-color)}.card__btn{margin-top:15px;width:76px;height:31px;border:2px solid var(--main-color);border-radius:4px;font-weight:700;font-size:11px;color:var(--main-color);background:var(--bg-color);text-transform:uppercase;transition:all .3s}.card__btn-solid,.card__btn:hover{background:var(--main-color);color:var(--bg-color)}.card__btn-solid:hover{background:var(--bg-color);color:var(--main-color)}.profile-tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #eee}.tab-button{flex:1;padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;font-size:1rem;font-weight:600;color:#666;cursor:pointer;transition:all .3s ease;min-width:0}[data-theme=dark] .tab-button{color:#9ca3af}.tab-button:hover{color:#667eea}[data-theme=dark] .tab-button:hover{color:#8b9eff}.tab-button.active{color:#667eea;border-bottom-color:#667eea}[data-theme=dark] .tab-button.active{color:#8b9eff;border-bottom-color:#8b9eff}.profile-content{background:var(--bg-secondary, white);border-radius:12px;padding:30px;box-shadow:0 2px 10px #0000001a;width:100%;color:var(--text-primary)}[data-theme=dark] .profile-content{background:var(--bg-secondary-dark, #1f2937);box-shadow:0 2px 10px #0000004d;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px;padding:24px;text-align:center;transition:transform .3s ease;cursor:help;position:relative}[data-theme=dark] .stat-card{background:linear-gradient(135deg,#1f2937,#374151)}.stat-card:hover{transform:translateY(-5px)}.stat-card:after{content:"info";font-family:Material Symbols Outlined;position:absolute;top:8px;right:8px;font-size:.9rem;opacity:.5;transition:opacity .3s ease}.stat-card:hover:after{opacity:.8}.stat-icon{font-size:2.5rem;margin-bottom:10px;color:var(--text-primary)}.stat-value{font-size:2rem;font-weight:700;color:#333;margin-bottom:5px}[data-theme=dark] .stat-value{color:#e5e7eb}.stat-label{color:#666;font-size:.9rem;font-weight:600}[data-theme=dark] .stat-label{color:#9ca3af}.game-history{min-height:300px}.game-filter{display:flex;gap:10px;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--border-color, #eee)}[data-theme=dark] .game-filter{border-bottom-color:var(--border-color-dark, #374151)}.filter-button{padding:8px 16px;background:var(--bg-tertiary, #f8f9fa);border:2px solid var(--border-color, #ddd);border-radius:20px;font-size:.9rem;font-weight:600;color:var(--text-secondary, #666);cursor:pointer;transition:all .3s ease}[data-theme=dark] .filter-button{background:var(--bg-tertiary-dark, #374151);border-color:var(--border-color-dark, #4b5563);color:var(--text-secondary-dark, #9ca3af)}.filter-button:hover{border-color:#667eea;color:#667eea;transform:translateY(-2px)}.filter-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.history-loading,.history-empty{text-align:center;padding:60px 20px;color:#999}.history-list{display:flex;flex-direction:column;gap:15px}.history-item{border:2px solid var(--border-color, #eee);border-radius:12px;padding:20px;transition:all .3s ease;background:var(--bg-primary, white)}[data-theme=dark] .history-item{border-color:var(--border-color-dark, #374151);background:var(--bg-primary-dark, #111827)}.history-item:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea1a}.history-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap;gap:10px}.history-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.game-status{font-weight:600;padding:4px 12px;border-radius:20px;font-size:.85rem;display:inline-flex;align-items:center;gap:4px}.game-status.status-completed{background:#d4edda;color:#155724}.game-status.status-in-progress{background:#fff3cd;color:#856404}.game-status.status-abandoned{background:#f8d7da;color:#721c24}.history-result{font-weight:700;padding:4px 12px;border-radius:20px;font-size:.9rem}.history-result.won{background:#d4edda;color:#155724}.history-result.lost{background:#f8d7da;color:#721c24}.history-date{color:var(--text-secondary, #999);font-size:.9rem}[data-theme=dark] .history-date{color:var(--text-secondary-dark, #9ca3af)}.history-details{display:flex;gap:20px;margin-bottom:12px;color:var(--text-secondary, #666);font-size:.95rem}[data-theme=dark] .history-details{color:var(--text-secondary-dark, #9ca3af)}.history-score strong,.history-duration{color:var(--text-primary, #333)}[data-theme=dark] .history-score strong,[data-theme=dark] .history-duration{color:var(--text-primary-dark, #e5e7eb)}.history-players{display:flex;flex-wrap:wrap;gap:10px;padding-top:12px;border-top:1px solid var(--border-color, #eee)}[data-theme=dark] .history-players{border-top-color:var(--border-color-dark, #374151)}.history-player{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-tertiary, #f8f9fa);border-radius:20px;font-size:.9rem;color:var(--text-primary, #333)}[data-theme=dark] .history-player{background:var(--bg-tertiary-dark, #374151);color:var(--text-primary-dark, #e5e7eb)}.history-player img{width:24px;height:24px;border-radius:50%}.history-player span{color:inherit}.player-score{font-weight:700;color:#fff}[data-theme=dark] .player-score{color:#fff}.history-actions{margin-top:12px;padding-top:12px;border-top:1px solid #eee}.rejoin-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:.9rem;transition:all .3s ease;border:none;cursor:pointer}.rejoin-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.preferences{max-width:600px}.preference-section{margin-bottom:30px}.preference-section h3{margin:0 0 15px;color:var(--text-primary, #333);font-size:1.1rem;padding-bottom:10px;border-bottom:2px solid var(--border-color, #eee)}[data-theme=dark] .preference-section h3{color:var(--text-primary-dark, #e5e7eb);border-bottom-color:var(--border-color-dark, #374151)}.preference-item{padding:15px 0;color:var(--text-primary, #333)}[data-theme=dark] .preference-item{color:var(--text-primary-dark, #e5e7eb)}.preference-item label{display:flex;align-items:center;gap:12px;cursor:pointer;color:inherit}.preference-item label span{color:inherit}.preference-item input[type=checkbox]{width:20px;height:20px;cursor:pointer}.preference-item input[type=range]{flex:1;cursor:pointer}.preference-item select{padding:8px 12px;border:2px solid var(--border-color, #ddd);border-radius:6px;font-size:1rem;cursor:pointer;background:var(--bg-primary, white);color:var(--text-primary, #333)}[data-theme=dark] .preference-item select{border-color:var(--border-color-dark, #374151);background:var(--bg-primary-dark, #111827);color:var(--text-primary-dark, #e5e7eb)}.volume-value{min-width:50px;text-align:right;font-weight:600;color:#667eea}.friends-tab{margin:-30px;padding:0}@media (max-width: 768px){.profile-header{flex-direction:column;text-align:center}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px}.profile-tabs{overflow-x:auto;gap:5px}.tab-button{flex:1;white-space:nowrap;padding:12px 16px;font-size:.95rem;min-width:0}.profile-content{padding:20px;width:100%}.history-details{flex-direction:column;gap:8px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface-bg);padding:20px}.login-card{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--border-color);max-width:500px;width:100%;overflow:hidden}.login-header{background:var(--primary);color:#fff;padding:40px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:15px}.login-header h1{margin:0;font-size:3rem;font-weight:700}.login-subtitle{margin:0;font-size:1.1rem;opacity:.95}.login-content{padding:40px 30px}.login-description{text-align:center;color:var(--text-secondary);margin:0 0 30px;font-size:1rem;line-height:1.6}.google-signin-button{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 24px;background:var(--button-default-bg);border:1px solid var(--button-default-border);border-radius:var(--radius-md);font-size:1rem;font-weight:600;color:var(--button-default-text);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.google-signin-button:hover:not(:disabled){background:var(--button-default-hover);border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.google-signin-button:active:not(:disabled){background:var(--button-default-active);transform:translateY(0)}.google-signin-button:disabled{opacity:.6;cursor:not-allowed}.google-logo{width:20px;height:20px}.loading-spinner{font-size:1.2rem;animation:spin 1s linear infinite}.guest-button{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 24px;background:var(--button-primary-bg);border:1px solid rgba(27,31,36,.15);border-radius:var(--radius-md);font-size:1rem;font-weight:600;color:var(--button-primary-text);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md);margin-bottom:20px}.guest-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.guest-button:active:not(:disabled){background:var(--button-primary-active);transform:translateY(0)}.guest-button:disabled{opacity:.6;cursor:not-allowed}.divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:var(--text-tertiary);font-size:.9rem}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.divider span{padding:0 15px}.email-form{display:flex;flex-direction:column;gap:12px;margin-top:20px}.email-form input{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;background:var(--surface-bg);color:var(--text-primary);transition:all var(--transition-base)}.email-form input:focus{outline:none;border-color:var(--primary);box-shadow:var(--shadow-colored)}.email-form input:disabled{background:var(--disabled-bg);cursor:not-allowed}.email-button{width:100%;padding:14px 24px;background:var(--button-primary-bg);border:1px solid rgba(27,31,36,.15);border-radius:var(--radius-md);font-size:1rem;font-weight:600;color:var(--button-primary-text);cursor:pointer;transition:all var(--transition-base);margin-top:8px;box-shadow:var(--shadow-sm)}.email-button:hover:not(:disabled){background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.email-button:active:not(:disabled){background:var(--button-primary-active);transform:translateY(0)}.email-button:disabled{opacity:.6;cursor:not-allowed}.auth-links{display:flex;justify-content:space-between;margin-top:12px;gap:10px}.link-button{background:none;border:none;color:var(--primary);font-size:.9rem;cursor:pointer;padding:4px 8px;text-decoration:underline;transition:color var(--transition-base)}.link-button:hover{color:var(--primary-hover)}.error-message{margin-top:20px;padding:12px 16px;background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error-text);display:flex;align-items:center;gap:10px;font-size:.95rem}.error-icon{font-size:1.2rem}.success-message{margin-top:20px;padding:12px 16px;background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-md);color:var(--success-text);display:flex;align-items:center;gap:10px;font-size:.95rem}.success-icon{font-size:1.2rem}.login-features{margin-top:40px;padding-top:30px;border-top:1px solid var(--border-color)}.login-features h3{margin:0 0 20px;color:var(--text-primary);font-size:1.1rem;text-align:center}.login-features ul{list-style:none;padding:0;margin:0}.login-features li{display:flex;align-items:center;gap:12px;padding:10px 0;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.feature-icon{font-size:1.5rem;flex-shrink:0}.login-footer{background:var(--surface-bg);padding:20px 30px;text-align:center;border-top:1px solid var(--border-color)}.privacy-note{margin:0;color:var(--text-tertiary);font-size:.85rem;line-height:1.5}@media (max-width: 600px){.login-header h1{font-size:2.5rem}.login-content{padding:30px 20px}.login-features{margin-top:30px;padding-top:20px}}.theme-selection{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--body-bg);padding:20px}.theme-selection-container{max-width:900px;width:100%;text-align:center}.theme-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:10px}.theme-subtitle{font-size:1.2rem;color:var(--text-secondary);margin-bottom:40px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:40px}.theme-card{position:relative;background:var(--card-bg);border-radius:12px;padding:30px 20px;cursor:pointer;border:2px solid var(--border-color);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.theme-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.theme-card.selected{border-color:var(--primary);background:var(--active-bg);box-shadow:var(--shadow-colored)}.theme-icon{font-size:4rem;margin-bottom:15px}.theme-card.selected .theme-icon{animation:spin .5s ease-in-out}.theme-name{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:10px}.theme-description{font-size:.95rem;color:var(--text-secondary);line-height:1.5}.theme-selected-indicator{position:absolute;top:15px;right:15px;background:var(--primary);color:var(--text-inverse);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;animation:scaleIn .3s ease-out}.continue-button{background:var(--button-primary-bg);color:var(--button-primary-text);border:1px solid rgba(27,31,36,.15);border-radius:50px;padding:18px 50px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.continue-button:hover{background:var(--button-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.continue-button:active{background:var(--button-primary-active);transform:translateY(0)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}@media (max-width: 768px){.theme-title{font-size:2rem}.theme-subtitle{font-size:1rem}.theme-grid{grid-template-columns:1fr;gap:15px}.theme-card{padding:25px 15px}.theme-icon{font-size:3rem}.theme-name{font-size:1.3rem}.continue-button{width:100%;padding:16px 30px;font-size:1.1rem}}.app-footer{padding:1rem;padding-bottom:70px;text-align:center;background-color:#0000000d;border-top:1px solid rgba(0,0,0,.1);margin-top:auto}.app-footer p{margin:0;font-size:.875rem;color:#666}.footer-link{color:#007bff;text-decoration:none;font-weight:500;transition:color .2s ease}.footer-link:hover{color:#0056b3;text-decoration:underline}@media (prefers-color-scheme: dark){.app-footer{background-color:#ffffff0d;border-top-color:#ffffff1a}.app-footer p{color:#aaa}.footer-link{color:#4da3ff}.footer-link:hover{color:#66b3ff}}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--body-bg);color:var(--text-primary);transition:background-color var(--transition-slow),color var(--transition-slow)}.app-content{padding-top:60px;min-height:100vh;display:flex;flex-direction:column}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);background:var(--primary);color:var(--text-inverse)}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:var(--text-inverse);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.app-loading p{font-size:1.25rem;margin:0}.app-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);background:var(--error-bg);padding:20px;text-align:center}.app-error h2{color:var(--error-text);margin:0 0 16px;font-size:2rem}.app-error p{color:var(--error-text);margin:0 0 24px;font-size:1.1rem;max-width:600px}.app-error button{background:var(--button-danger-bg);color:var(--button-danger-text);border:1px solid rgba(27,31,36,.15);padding:12px 24px;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.app-error button:hover{background:var(--button-danger-hover);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.app-error button:active{background:var(--button-danger-active);transform:translateY(0)}
