.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.theme-toggle:hover{background:var(--color-surface-hover);border-color:var(--color-border-light);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);transition:all var(--transition-normal);animation:iconFadeIn var(--transition-normal) var(--ease-out)}.theme-toggle-icon.sun{animation:sunRotate .5s var(--ease-out)}.theme-toggle-icon.moon{animation:moonSlide .5s var(--ease-out)}@keyframes iconFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sunRotate{0%{opacity:0;transform:rotate(-90deg) scale(.8)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes moonSlide{0%{opacity:0;transform:translateY(-10px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}.theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--color-bg-secondary);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border);transition:background var(--transition-normal),border-color var(--transition-normal)}.navbar-container{max-width:95%;margin:0 auto;padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between}.navbar-logo{display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:opacity .2s ease}.navbar-logo:hover{opacity:.8}.logo-image{width:34px;height:34px;object-fit:contain;border-radius:8px;position:relative;left:7px;bottom:3px;filter:drop-shadow(0 0 1px rgba(255,255,255,.21))}[data-theme=light] .logo-image{filter:none}.navbar-logo .logo-text{font-size:1.3rem;font-weight:800;background-image:linear-gradient(135deg,#fff 20%,#8a94a5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;display:inline-block;letter-spacing:-.5px}[data-theme=light] .navbar-logo .logo-text{background-image:linear-gradient(135deg,#000 20%,#434343)}.logo-beta{font-size:.65rem;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.3);background:#e0dbdb1a;border-radius:6px;padding:2px 6px;margin-left:8px;letter-spacing:1px;transform:translateY(-2px)}[data-theme=light] .logo-beta{color:#000;border-color:#0000004d;background:#0000000d}.navbar-links{display:flex;align-items:center;gap:.5rem}.nav-link{background:transparent;border:none;color:var(--color-text-secondary);font-size:.8rem;font-weight:600;padding:.25rem 1rem;cursor:pointer;transition:all .2s ease;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:80px}.nav-link:hover{color:var(--color-text-primary);background:#ffffff0d}.nav-link.active{color:#e74c3c}.nav-icon{font-size:1.5rem;color:var(--color-text-secondary);transition:color .2s ease}.nav-link.active .nav-icon{color:#e74c3c}.nav-link:hover .nav-icon{color:var(--color-text-primary)}.nav-link.active:hover .nav-icon{color:#ff6b6b}.nav-link.locked{opacity:.5;cursor:not-allowed}.nav-link.locked:hover{background:transparent;color:var(--color-text-secondary)}.nav-link.locked:hover .nav-icon{color:var(--color-text-secondary)}.nav-text-with-lock{display:flex;align-items:center;gap:.25rem}.lock-icon{font-size:.8rem;color:var(--color-text-secondary)}.navbar-auth{display:flex;align-items:center;gap:.75rem}.auth-btn{border:none;font-size:.9rem;font-weight:600;padding:.6rem 1.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease}.login-btn{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.login-btn:hover{background:linear-gradient(135deg,#ff6b6b,#e74c3c);transform:translateY(-1px);box-shadow:0 4px 12px #e74c3c4d}.profile-btn{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.1)}.profile-btn:hover{background:#ffffff26;border-color:#fff3}@media(max-width:768px){.navbar-container{padding:0 .75rem;gap:.5rem}.navbar-links{display:flex;flex:1;justify-content:center;gap:.125rem;min-width:0}.navbar-logo .logo-text,.logo-beta{display:none}.nav-link{min-width:0;flex:1;padding:.25rem .4rem;font-size:.7rem}.nav-icon{font-size:1.2rem}.navbar-auth{gap:.5rem;flex-shrink:0}.auth-btn{padding:.5rem .75rem;font-size:.8rem}.user-info{padding:.25rem}.user-name{display:none}}.user-section{display:flex;align-items:center}.user-info{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.4rem .75rem;border-radius:8px;transition:background .2s ease}.user-info:hover{background:#ffffff0d}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid rgba(231,76,60,.5)}.user-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#e74c3c,#c0392b);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;color:#fff}.user-name{font-size:.9rem;font-weight:500;color:var(--color-text-primary)}.guest-section{display:flex;align-items:center;gap:.75rem}.guest-badge{font-size:.8rem;color:var(--color-text-secondary);padding:.35rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1625,#0f0a1a,#1a1625);position:relative;overflow:hidden;padding:2rem}.auth-page:before,.auth-page:after{content:"♔♕♖♗♘♙";position:absolute;font-size:8rem;opacity:.03;pointer-events:none;color:#9333ea;letter-spacing:2rem}.auth-page:before{top:10%;left:-5%;transform:rotate(-15deg)}.auth-page:after{bottom:10%;right:-5%;transform:rotate(15deg);content:"♚♛♜♝♞♟"}.auth-bg-glow{position:absolute;border-radius:50%;filter:blur(100px);opacity:.15;pointer-events:none}.auth-bg-glow.glow-1{width:400px;height:400px;background:#9333ea;top:-100px;right:-100px}.auth-bg-glow.glow-2{width:300px;height:300px;background:#7c3aed;bottom:-50px;left:-50px}.auth-logo{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;z-index:1}.auth-logo-icon{width:48px;height:48px;display:block;object-fit:contain;filter:drop-shadow(0 0 20px rgba(147,51,234,.5));animation:crownFloat 3s ease-in-out infinite}@keyframes crownFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.auth-logo-text{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#fff,#9333ea);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-card-container{position:relative;z-index:1;width:100%;max-width:440px}.auth-card-container .cl-card{background:#2d2438b3!important;-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;border:1px solid rgba(147,51,234,.2)!important;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #9333ea1a,inset 0 1px #ffffff0d!important;border-radius:20px!important}.auth-card-container .cl-headerTitle{color:#fff!important}.auth-card-container .cl-headerSubtitle{color:#a0a0a0!important}.auth-card-container .cl-socialButtonsBlockButton{background:#2d243899!important;border:1px solid rgba(147,51,234,.3)!important;transition:all .3s ease!important}.auth-card-container .cl-socialButtonsBlockButton:hover{background:#9333ea33!important;border-color:#9333ea80!important;transform:translateY(-2px)}.auth-card-container .cl-formFieldInput{background:#1a1625cc!important;border:1px solid rgba(147,51,234,.3)!important;color:#fff!important;transition:all .3s ease!important}.auth-card-container .cl-formFieldInput:focus{border-color:#9333ea!important;box-shadow:0 0 0 3px #9333ea33!important}.auth-card-container .cl-formButtonPrimary{background:linear-gradient(135deg,#9333ea,#7c3aed)!important;border:none!important;transition:all .3s ease!important}.auth-card-container .cl-formButtonPrimary:hover{background:linear-gradient(135deg,#a855f7,#8b5cf6)!important;transform:translateY(-2px);box-shadow:0 10px 30px -10px #9333ea80!important}.auth-card-container .cl-footerActionLink{color:#9333ea!important}.auth-card-container .cl-footerActionLink:hover{color:#a855f7!important}.auth-footer{margin-top:2rem;text-align:center;color:#666;font-size:.875rem;z-index:1}.auth-footer a{color:#9333ea;text-decoration:none;transition:color .2s ease}.auth-footer a:hover{color:#a855f7}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1625,#0f0a1a)}.loading-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.loading-spinner{width:48px;height:48px;border:3px solid rgba(147,51,234,.2);border-top-color:#9333ea;border-radius:50%;animation:spin .8s linear infinite}.loading-text{color:#a0a0a0;font-size:.875rem}@media(max-width:480px){.auth-page{padding:1rem}.auth-logo-icon{width:40px;height:40px}.auth-logo-text{font-size:1.5rem}.auth-page:before,.auth-page:after{font-size:4rem;letter-spacing:1rem}}.matchmaking-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000}.matchmaking-modal{padding:var(--spacing-2xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);min-width:320px;text-align:center}.matchmaking-spinner{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center}.spinner-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid transparent;border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.spinner-ring:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:3px solid transparent;border-top-color:var(--color-accent-secondary);border-radius:50%;animation:spin 2s linear infinite reverse}.spinner-icon{font-size:2.5rem;animation:pulse 2s ease-in-out infinite}.matchmaking-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.matchmaking-subtitle{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:.875rem}.online-dot{width:8px;height:8px;background:var(--color-success);border-radius:50%;animation:pulse 2s ease-in-out infinite}.matchmaking-cancel-btn{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-xl);background:transparent;border:2px solid var(--color-border-light);color:var(--color-text-secondary);font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.matchmaking-cancel-btn:hover{border-color:var(--color-error);color:var(--color-error)}.lobby{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.lobby-content{max-width:600px;width:100%;display:flex;flex-direction:column;gap:var(--spacing-xl)}.lobby-hero{text-align:center}.lobby-title{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.title-icon{font-size:3rem;color:var(--color-accent);animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.title-text{font-size:3rem;font-weight:800}.lobby-subtitle{color:var(--color-text-secondary);font-size:1.125rem}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg)}.status-indicator{display:flex;align-items:center;gap:var(--spacing-sm)}.status-dot{width:10px;height:10px;border-radius:50%;transition:background var(--transition-fast)}.status-indicator.connected .status-dot{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.status-indicator.disconnected .status-dot{background:var(--color-warning);animation:pulse 1.5s ease-in-out infinite}.status-text{font-size:.875rem;color:var(--color-text-secondary)}.online-count{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:.875rem}.online-icon{font-size:1rem}.game-modes{display:flex;flex-direction:column;gap:var(--spacing-md)}.game-mode-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);text-align:left;transition:all var(--transition-fast);position:relative;overflow:hidden}.game-mode-card:hover:not(:disabled){transform:translate(8px);border-color:var(--color-border-light)}.game-mode-card:disabled{opacity:.6;cursor:not-allowed}.game-mode-card.primary{background:linear-gradient(135deg,#e945601a,#0f34601a);border-color:var(--color-accent)}.game-mode-card.primary:hover:not(:disabled){box-shadow:var(--shadow-glow)}.mode-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border-radius:var(--radius-md)}.mode-info{flex:1}.mode-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.mode-desc{font-size:.875rem;color:var(--color-text-tertiary)}.mode-arrow{font-size:1.5rem;color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.game-mode-card:hover:not(:disabled) .mode-arrow{transform:translate(4px);color:var(--color-accent)}.mode-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:4px 8px;background:var(--color-surface);border-radius:var(--radius-full);font-size:.75rem;color:var(--color-text-tertiary)}@media(max-width:640px){.lobby{padding:var(--spacing-md)}.title-text,.title-icon{font-size:2rem}.game-mode-card{padding:var(--spacing-md)}.mode-icon{width:48px;height:48px;font-size:1.5rem}}.piece{position:absolute;display:flex;align-items:center;justify-content:center;transition:transform .1s ease;pointer-events:auto}.piece.dragging{transition:none;z-index:9999;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4))}.piece-image{width:85%;height:85%;object-fit:contain;pointer-events:none}.piece:not(.dragging){transition:transform .15s ease-out}.promotion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.promotion-modal{padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);min-width:280px}.promotion-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.promotion-pieces{display:flex;gap:var(--spacing-sm)}.promotion-piece-btn{width:64px;height:64px;background:var(--color-surface);border:2px solid transparent;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.promotion-piece-btn:hover{background:var(--color-surface-hover);border-color:var(--color-accent);transform:scale(1.1)}.promotion-piece-btn:active{transform:scale(.95)}.promotion-piece-img{width:48px;height:48px;object-fit:contain}.chessboard{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-board);-webkit-user-select:none;user-select:none}.chessboard:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(135deg,#fff3,#ffffff0d);border-radius:calc(var(--radius-lg) + 2px);z-index:-1}.piece-wrapper{position:absolute;top:0;left:0;will-change:transform;transition:transform .12s ease-out}.square.selected-light{background-color:var(--bg-selected-light)}.square.selected-dark{background-color:var(--bg-selected-dark)}.square.last-move-light{background-color:var(--bg-last-move-light)}.square.last-move-dark{background-color:var(--bg-last-move-dark)}.square.premove-light{background-color:var(--bg-premove-light)}.square.premove-dark{background-color:var(--bg-premove-dark)}.square.premove2-light{background-color:#b42814a6}.square.premove2-dark{background-color:#a01e0abf}.gameover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;display:flex;align-items:center;justify-content:center;z-index:2000;pointer-events:none}.gameover-overlay--parent{position:absolute;z-index:40}.gameover-modal{padding:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);min-width:280px;max-width:400px;text-align:center;position:relative;pointer-events:all;background:var(--color-bg-secondary);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)}.gameover-modal.winner{border-color:var(--color-success);box-shadow:0 0 40px #4ade8033}.gameover-modal.loser{border-color:var(--color-error)}.gameover-modal.draw{border-color:var(--color-warning)}.gameover-icon{font-size:3rem;line-height:1;margin-bottom:var(--spacing-xs)}.winner .gameover-icon{color:var(--color-success);text-shadow:0 0 20px var(--color-success)}.loser .gameover-icon{color:var(--color-text-tertiary)}.draw .gameover-icon{color:var(--color-warning)}.gameover-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.gameover-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:32px;height:32px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.gameover-close:hover{background:#ef44441a;border-color:var(--color-error);color:var(--color-error)}.gameover-info{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.gameover-winner{font-size:1rem;font-weight:600;color:var(--color-text-primary)}.gameover-reason{color:var(--color-text-secondary);font-size:.875rem}.gameover-moves{color:var(--color-text-tertiary);font-size:.875rem}.gameover-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);width:100%}.gameover-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);font-weight:600;font-size:.875rem;border-radius:var(--radius-md);transition:all var(--transition-fast)}.gameover-btn.primary{background:var(--gradient-primary);color:#fff}.gameover-btn.primary:hover{transform:scale(1.05);box-shadow:var(--shadow-glow)}.gameover-btn.secondary{background:transparent;border:2px solid var(--color-border-light);color:var(--color-text-secondary)}.gameover-btn.secondary:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.chess-clock{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 1rem;background:var(--color-bg-secondary);color:var(--color-text-primary);border-radius:8px;border:2px solid var(--color-border);transition:all .3s ease;position:relative;margin-left:auto}.chess-clock.user,.chess-clock.opponent{background:var(--color-bg-secondary);border-color:var(--color-border)}.chess-clock.active{border-color:var(--primary-color, #8b5cf6);box-shadow:0 0 20px #8b5cf666;animation:pulse 2s ease-in-out infinite}.chess-clock.low-time{background:#f4433633;border-color:#ef4444;animation:pulse-fast 1s ease-in-out infinite}.clock-player-name{display:none}.clock-time{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);font-family:Courier New,monospace;letter-spacing:.05em;min-width:70px;text-align:center}[data-theme=light] .clock-time{color:#1a1a2e;font-weight:800}[data-theme=light] .chess-clock{background:#e8ecf1;border-color:#0000001a}.clock-indicator{position:absolute;top:.5rem;right:.5rem;color:var(--primary-color, #8b5cf6);font-size:.75rem;animation:blink 1s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 20px #8b5cf666}50%{box-shadow:0 0 30px #8b5cf699}}@keyframes pulse-fast{0%,to{box-shadow:0 0 20px #ef444499;border-color:#ef4444}50%{box-shadow:0 0 35px #ef4444e6;border-color:#f87171}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@media(max-width:768px){.chess-clock{padding:.75rem 1rem}.clock-time{font-size:1.5rem;min-width:80px}.clock-player-name{font-size:.75rem}}.square{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:filter var(--transition-fast);-webkit-user-select:none;user-select:none}.square:hover{filter:brightness(1.05)}.valid-move-dot{width:30%;height:30%;background:var(--board-valid-move);border-radius:50%;pointer-events:none}.capture-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:5px solid var(--board-valid-move);border-radius:50%;pointer-events:none}.label{position:absolute;font-size:11px;font-weight:600;pointer-events:none;opacity:.9}.rank-label{top:2px;left:3px}.file-label{bottom:1px;right:3px}.move-list{width:280px;max-height:400px;display:flex;flex-direction:column;overflow:hidden}.move-list-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.move-list-title{font-size:1rem;font-weight:600;color:var(--color-text-primary)}.move-count{font-size:.75rem;color:var(--color-text-tertiary);background:var(--color-surface);padding:4px 8px;border-radius:var(--radius-full)}.move-list-content{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--spacing-sm)}.move-list-content--tree{padding:var(--spacing-md)}.move-list-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-tertiary)}.move-row{display:grid;grid-template-columns:32px 1fr 1fr;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.move-row:hover{background:var(--color-surface)}.move-row.latest{background:var(--color-surface-hover)}.move-row--tree{align-items:center}.move-cell{min-width:0}.move-number{color:var(--color-text-tertiary);font-size:.875rem;font-weight:500}.move{font-family:Fira Code,Consolas,monospace;font-size:.875rem;color:var(--color-text-primary);padding:2px 6px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border:none;background:transparent;text-align:left}.move:hover{background:var(--color-surface-active)}.white-move,.black-move{text-align:left}.move.active{background:var(--color-accent);color:#fff}.move-inline-item{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.move-prefix{font-size:.77rem;color:var(--color-text-tertiary);font-weight:600}.move-variation-block{margin:4px 0 2px;padding-left:calc(var(--variation-depth, 1) * 14px);border-left:1px solid color-mix(in srgb,var(--color-accent) 26%,transparent)}.move-variation-line{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;min-height:28px;padding:4px 0 4px 10px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:none}.move-variation-line::-webkit-scrollbar{height:0}.move-variation-children{width:100%}.move--variation{color:color-mix(in srgb,var(--color-text-primary) 80%,white);font-size:.82rem}.move--new-variation{animation:move-variation-pulse 1s ease-out}@keyframes move-variation-pulse{0%{transform:translate(-6px);background:color-mix(in srgb,var(--color-accent) 22%,transparent);box-shadow:0 0 color-mix(in srgb,var(--color-accent) 28%,transparent)}to{transform:translate(0);background:transparent;box-shadow:0 0 0 10px transparent}}.online-game{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:0;padding-bottom:env(safe-area-inset-bottom);background:var(--color-bg-primary);transition:background var(--transition-normal)}.online-game .game-layout{flex:1;display:flex;align-items:flex-start;justify-content:center;gap:var(--spacing-xl);padding:var(--spacing-xl)}.game-main-area{display:grid;grid-template-columns:minmax(0,auto) calc(280px * var(--online-scale, 1));grid-template-areas:"top ." "board sidebar" "bottom .";align-items:start;column-gap:var(--spacing-xl);row-gap:var(--spacing-md);justify-content:center;margin-top:50px}.player-card-top,.player-card-bottom{width:100%;max-width:560px;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)}.player-card-top{grid-area:top;margin-bottom:var(--spacing-sm)}.player-card-bottom{grid-area:bottom;margin-top:var(--spacing-sm)}.game-sidebar{grid-area:sidebar;width:280px;display:flex;flex-direction:column;gap:var(--spacing-md);align-items:stretch;align-self:flex-start;margin-top:0}.player-card,.player-card-top,.player-card-bottom{width:100%;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)}.player-avatar.highlight{background:var(--gradient-primary)}.avatar-text{font-size:.7rem;font-weight:600;color:var(--color-text-primary)}.player-avatar.highlight .avatar-text{color:#fff}.player-info{flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px}.player-details{display:flex;flex-direction:column}.name-container{display:flex;align-items:center;gap:var(--spacing-sm)}.status-dot{width:10px;height:10px;border-radius:50%;background-color:var(--color-text-tertiary)}.status-dot.online{background-color:var(--color-success);box-shadow:0 0 4px var(--color-success)}.status-dot.offline{background-color:var(--color-error)}.player-name-white,.player-name-black{color:var(--color-text-primary);font-weight:600}.player-status{font-size:.75rem}.player-status .connected{color:var(--color-success)}.player-status .disconnected{color:var(--color-error)}.player-color{font-size:.75rem;color:var(--color-text-tertiary)}.status-advantage-row{display:flex;align-items:center;gap:var(--spacing-sm);min-height:20px}.advantage-container{display:flex;align-items:center;gap:2px;background:#ffffff0d;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.advantage-score{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);margin-right:4px}.advantage-piece{width:14px;height:14px;object-fit:contain}.board-section{grid-area:board;position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);width:100%;max-width:100%}.game-main-area .player-card-top,.game-main-area .player-card-bottom{margin-top:0;margin-bottom:0}.turn-banner{padding:var(--spacing-sm) var(--spacing-lg);text-align:center}.your-turn{color:var(--color-success);font-weight:600}.opponent-turn{color:var(--color-text-secondary)}.sidebar-action-buttons{display:flex;flex-direction:row;gap:var(--spacing-sm);width:100%;align-items:flex-end}.action-slot{flex:1;display:flex;flex-direction:column;justify-content:flex-end;position:relative;height:40px}.rematch-section{margin-top:.5rem;margin-bottom:.5rem;align-items:stretch}.rematch-section .action-slot{height:auto;min-height:40px}.rematch-section--analyze-only .game-analysis-slot{flex:1 1 100%}.rematch-offer-container{position:relative}.rematch-primary-btn,.game-analyze-btn{width:100%;height:40px;display:flex;justify-content:center;align-items:center;gap:.5rem}.game-sidebar .game-analyze-btn{background:linear-gradient(135deg,#8fdcff,#dff5ff 55%,#f7fdff);color:#0d2f47;box-shadow:0 8px 20px #65c4ff66}.game-sidebar .game-analyze-btn:hover{background:linear-gradient(135deg,#79d4ff,#cdefff 58%,#eefaff);color:#08263a;box-shadow:0 10px 22px #53bafa7a}.resign-btn,.draw-offer-btn{flex:1;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.resign-btn{color:var(--color-text-tertiary)}.draw-offer-btn{color:var(--color-text-secondary);font-size:1.25rem;font-weight:600}.resign-btn:hover{border-color:var(--color-error);color:var(--color-error);background:#ef44441a}.draw-offer-btn:hover:not(.disabled){border-color:var(--color-primary);color:var(--color-primary);background:#8b5cf61a}.draw-offer-btn.disabled{opacity:.5;cursor:not-allowed}.draw-offer-btn.pending{opacity:.8!important;color:var(--color-primary)!important;border-color:var(--color-primary)!important}.waiting-icon{animation:rotate-clock 2s linear infinite}@keyframes rotate-clock{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.draw-offer-container{padding-bottom:0;width:100%;display:flex;flex-direction:column;gap:var(--spacing-xs);position:absolute;bottom:0;left:0;z-index:10}.draw-request-indicator{font-size:.75rem;font-weight:600;color:var(--color-success);text-align:center;background:#22c55e1a;padding:2px 0;border-radius:var(--radius-sm);animation:fadeIn .3s ease}.draw-response-split{flex:1;display:flex;gap:2px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.draw-reject-btn,.draw-accept-btn{flex:1;height:100%;border:none;background:var(--color-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.draw-reject-btn{color:var(--color-error)}.draw-reject-btn:hover{background:var(--color-error);color:#fff}.draw-accept-btn{color:var(--color-success)}.draw-accept-btn:hover{background:var(--color-success);color:#fff}.resign-response-split{flex:1;display:flex;gap:2px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.resign-cancel-btn,.resign-confirm-btn{flex:1;height:100%;border:none;background:var(--color-surface);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.resign-cancel-btn{color:var(--color-text-secondary)}.resign-cancel-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.resign-confirm-btn{color:var(--color-error)}.resign-confirm-btn:hover{background:var(--color-error);color:#fff}.resign-confirm-btn.confirm:hover{background:var(--color-success);color:#fff}.review-controls{display:flex;gap:var(--spacing-sm);width:100%}.review-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.875rem;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.review-btn:hover:not(.disabled){border-color:var(--color-primary);color:var(--color-primary);background:#8b5cf61a}@media(max-width:1200px){.online-game .game-layout{flex-direction:column;align-items:center}.game-main-area{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.game-sidebar{width:100%;max-width:560px;order:1;margin-top:0}.game-main-area{order:0}.player-card-top,.player-card-bottom{max-width:100%}}.first-move-timer{background:#ef444433;color:var(--color-error);padding:6px 12px;border-radius:var(--radius-md);font-weight:600;font-size:.9rem;border:1px solid var(--color-error);animation:pulse 2s infinite;white-space:nowrap;display:flex;align-items:center;gap:6px;box-shadow:0 0 10px #ef44441a}@keyframes pulse{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 6px #ef444400}to{box-shadow:0 0 #ef444400}}.online-game .game-sidebar{width:calc(280px * var(--online-scale, 1))}.online-game .player-card-top,.online-game .player-card-bottom{padding:calc(var(--spacing-md) * var(--online-scale, 1));gap:calc(var(--spacing-md) * var(--online-scale, 1))}.online-game .player-avatar{width:calc(48px * var(--online-scale, 1));height:calc(48px * var(--online-scale, 1));font-size:calc(1.5rem * var(--online-scale, 1))}.online-game .player-name{font-size:calc(1rem * var(--online-scale, 1))}.online-game .player-status,.online-game .player-color{font-size:calc(.75rem * var(--online-scale, 1))}.online-game .status-dot{width:calc(10px * var(--online-scale, 1));height:calc(10px * var(--online-scale, 1))}.online-game .chess-clock{padding:calc(.5rem * var(--online-scale, 1)) calc(1rem * var(--online-scale, 1));border-radius:calc(8px * var(--online-scale, 1))}.online-game .clock-time{font-size:calc(1.25rem * var(--online-scale, 1));min-width:calc(70px * var(--online-scale, 1))}.online-game .first-move-timer{font-size:calc(.9rem * var(--online-scale, 1));padding:calc(6px * var(--online-scale, 1)) calc(12px * var(--online-scale, 1));gap:calc(6px * var(--online-scale, 1))}.online-game .resign-btn,.online-game .draw-offer-btn{height:calc(40px * var(--online-scale, 1))}.online-game .resign-confirm-btn{padding:calc(var(--spacing-sm) * var(--online-scale, 1));font-size:calc(1.2rem * var(--online-scale, 1))}.online-game .review-controls{gap:calc(var(--spacing-sm) * var(--online-scale, 1))}.online-game .review-btn{font-size:calc(.875rem * var(--online-scale, 1));padding:calc(var(--spacing-sm) * var(--online-scale, 1)) calc(var(--spacing-md) * var(--online-scale, 1));gap:calc(var(--spacing-xs) * var(--online-scale, 1))}.online-game .move-list{width:calc(280px * var(--online-scale, 1))}.online-game .move-list-title{font-size:calc(1rem * var(--online-scale, 1))}.online-game .move-count{font-size:calc(.75rem * var(--online-scale, 1));padding:calc(4px * var(--online-scale, 1)) calc(8px * var(--online-scale, 1))}.online-game .move-row{grid-template-columns:calc(32px * var(--online-scale, 1)) 1fr 1fr;gap:calc(var(--spacing-xs) * var(--online-scale, 1));padding:calc(var(--spacing-xs) * var(--online-scale, 1)) calc(var(--spacing-sm) * var(--online-scale, 1))}.online-game .move-number{font-size:calc(.875rem * var(--online-scale, 1))}.online-game .move{font-size:calc(.875rem * var(--online-scale, 1));padding:calc(2px * var(--online-scale, 1)) calc(6px * var(--online-scale, 1))}@media(max-width:768px){.online-game .chess-clock{padding:calc(.5rem * var(--online-scale, 1)) calc(1rem * var(--online-scale, 1))}.online-game .clock-time{font-size:calc(1.25rem * var(--online-scale, 1));min-width:calc(70px * var(--online-scale, 1))}}.tempo-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:1.5rem;transition:all .3s cubic-bezier(.34,1.56,.64,1);cursor:pointer;display:flex;flex-direction:column;min-height:180px;width:100%;position:relative;overflow:hidden;--theme-color-rgb: 231, 76, 60;--theme-color-hex: #e74c3c}.tempo-type-bullet{--theme-color-rgb: 255, 71, 87;--theme-color-hex: #ff4757}.tempo-type-blitz{--theme-color-rgb: 255, 165, 2;--theme-color-hex: #ffa502}.tempo-type-rapid{--theme-color-rgb: 46, 134, 222;--theme-color-hex: #2e86de}.tempo-card:hover:not(.disabled):not(.searching):not(.match-found){background:var(--color-surface-hover);border-color:var(--color-border-light);transform:translateY(-2px)}.tempo-card.selected{background:rgba(var(--theme-color-rgb),.1);border-color:rgba(var(--theme-color-rgb),.5);box-shadow:0 0 20px rgba(var(--theme-color-rgb),.15)}.tempo-card.searching{transform:scale(.96);background:var(--color-surface-active);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.tempo-card.match-found{transform:scale(1.02);background:#4ade801a;border-color:var(--color-success);box-shadow:0 0 30px #4ade804d}.tempo-card.disabled{opacity:.4;pointer-events:none;filter:grayscale(.5)}.tempo-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;transition:opacity .3s ease}.tempo-state-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;animation:fadeIn .3s ease-out;padding:1rem 0}.searching-container,.match-success-container{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner-container{position:relative;width:40px;height:40px}.spinner-ring{width:100%;height:100%;border:3px solid rgba(255,255,255,.1);border-top:3px solid var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.state-text{font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.state-subtext{font-size:.85rem;color:var(--color-text-secondary)}.success-checkmark{width:60px;height:60px}.checkmark{width:60px;height:60px;border-radius:50%;display:block;stroke-width:2;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 0 var(--color-success);animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark-circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:var(--color-success);fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark-check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px var(--color-success)}}.tempo-card-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(var(--theme-color-rgb),.3),rgba(var(--theme-color-rgb),.15));border-radius:12px;color:var(--theme-color-hex);flex-shrink:0;filter:drop-shadow(0 0 4px rgba(var(--theme-color-rgb),.3));transition:all .3s ease}.tempo-card-icon svg{width:24px;height:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.tempo-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0;letter-spacing:-.3px}.tempo-controls{display:flex;gap:.5rem;margin-bottom:1rem;transition:opacity .3s ease;width:100%}.tempo-btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.85rem;font-weight:500;padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s ease;flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;text-align:center}.tempo-btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary);border-color:var(--color-border-light)}.tempo-btn.active{background:rgba(var(--theme-color-rgb),.2);border-color:rgba(var(--theme-color-rgb),.5);color:var(--theme-color-hex)}.tempo-btn:disabled{cursor:not-allowed;opacity:.5}.tempo-description{color:var(--color-text-tertiary);font-size:.8rem;margin:auto 0 0;line-height:1.5;transition:opacity .3s ease}@media(max-width:768px){.tempo-card{padding:1.25rem;min-height:auto}.tempo-title{font-size:1rem}.tempo-btn{padding:.4rem .75rem;font-size:.8rem}.tempo-card-icon{width:36px;height:36px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease}.modal-content.custom-tempo-modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:20px;width:90%;max-width:400px;animation:slideUp .3s ease;box-shadow:var(--shadow-xl)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.modal-close{background:transparent;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .2s ease}.modal-body{padding:1.5rem}.tempo-setting{margin-bottom:1.5rem}.tempo-setting label{display:block;font-size:.9rem;color:var(--color-text-secondary);margin-bottom:.75rem}.setting-control{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:.75rem}.setting-control .control-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font-size:1.25rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.setting-control .control-btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-light)}.setting-value{font-size:2rem;font-weight:700;color:var(--color-text-primary);min-width:60px;text-align:center}.tempo-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);border-radius:2px;outline:none}.tempo-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--gradient-primary);border-radius:50%;cursor:pointer;transition:transform .2s ease}.tempo-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.tempo-preview{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border)}.preview-label{color:var(--color-text-secondary);font-size:.9rem}.preview-value{color:var(--color-accent);font-size:1.25rem;font-weight:700}.modal-footer{display:flex;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid var(--color-border)}.btn-cancel,.btn-start{flex:1;padding:.75rem;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)}.btn-cancel:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.btn-start{background:var(--gradient-primary);border:none;color:#fff}.btn-start:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.modal-overlay{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-xl)}.modal-content.friend-invite-modal{border-radius:20px;background:linear-gradient(135deg,#222834b8,#22283480);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:0 24px 48px #00000047,inset 0 1px #ffffff2e}.friend-invite-modal .modal-header,.friend-invite-modal .modal-footer{border-color:#ffffff1f}.modal-header h2{color:var(--color-text-primary)}.modal-header{border-bottom:1px solid var(--color-border)}.modal-footer{border-top:1px solid var(--color-border)}.modal-close{color:var(--color-text-tertiary)}.modal-close:hover{color:var(--color-text-primary)}.friend-invite-modal .modal-body{text-align:center}.tempo-selection{padding:1rem 0}.selection-hint{color:var(--color-text-tertiary);font-size:.95rem;margin:0 0 1.5rem}.tempo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.tempo-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;aspect-ratio:1 / 1;padding:.9rem .7rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;--theme-color-rgb: 231, 76, 60;--theme-color-hex: #e74c3c}.tempo-type-bullet{--theme-color-rgb: 231, 76, 60;--theme-color-hex: #e74c3c}.tempo-type-blitz{--theme-color-rgb: 241, 196, 15;--theme-color-hex: #f1c40f}.tempo-type-rapid{--theme-color-rgb: 52, 152, 219;--theme-color-hex: #3498db}.tempo-option:hover{background:rgba(var(--theme-color-rgb),.08);border-color:rgba(var(--theme-color-rgb),.3);transform:translateY(-2px)}.tempo-option.selected{background:rgba(var(--theme-color-rgb),.15);border-color:var(--theme-color-hex);box-shadow:0 0 15px rgba(var(--theme-color-rgb),.1)}.invite-tempo-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(var(--theme-color-rgb),.1);border-radius:8px;color:var(--theme-color-hex);flex-shrink:0}.invite-tempo-icon svg{width:20px;height:20px}.tempo-label{color:var(--color-text-primary);font-size:1.1rem;font-weight:600}.tempo-name{color:var(--color-text-tertiary);font-size:.75rem;font-weight:500}.error-message{background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;color:#e74c3c;font-size:.9rem}.waiting-state{padding:2rem 0}.waiting-spinner{width:48px;height:48px;border:3px solid var(--color-border);border-top-color:#e74c3c;border-radius:50%;margin:0 auto 1.5rem;animation:spin 1s linear infinite}.waiting-text{color:var(--color-text-primary);font-size:1.1rem;font-weight:500;margin:0 0 .5rem}.waiting-hint{color:var(--color-text-secondary);font-size:.85rem;margin:0 0 1.5rem}.link-section{margin-top:1rem}.link-box{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:10px;padding:.75rem 1rem;margin-bottom:.75rem;overflow:hidden}.link-text{color:var(--color-text-secondary);font-size:.85rem;font-family:monospace;word-break:break-all}.copy-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:10px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.copy-btn:hover{background:linear-gradient(135deg,#ff6b6b,#e74c3c);transform:translateY(-1px)}[data-theme=light] .modal-content{background:#f8f9fa}[data-theme=light] .modal-content.friend-invite-modal{background:linear-gradient(135deg,#ffffffc7,#f8fafc9e);border:1px solid rgba(255,255,255,.68);box-shadow:0 20px 40px #0f172a29,inset 0 1px #ffffffe6}[data-theme=light] .modal-overlay{background:#0000004d}[data-theme=light] .btn-cancel{background:#e9ecef;border-color:#dee2e6;color:#495057}.friend-invite-modal .modal-footer{justify-content:center}.friend-invite-modal .btn-cancel{max-width:200px}[data-theme=light] .tempo-option{background:#fff;box-shadow:0 2px 4px #0000000d}[data-theme=light] .tempo-option:hover{background:rgba(var(--theme-color-rgb),.04);box-shadow:0 4px 8px #00000014}[data-theme=light] .tempo-option.selected{background:rgba(var(--theme-color-rgb),.08);border-color:var(--theme-color-hex)}[data-theme=light] .link-box{background:#f1f3f5}[data-theme=light] .waiting-spinner{border-color:#0000000d;border-top-color:#e74c3c}.dpw-root{position:relative;border-radius:24px;overflow:hidden;padding:1.35rem 1.35rem 1.2rem;background:radial-gradient(circle at top right,rgba(145,71,255,.1),transparent 40%),linear-gradient(145deg,#ffffff0d,#ffffff03),var(--color-surface);box-shadow:inset 0 0 0 1px #ffffff12,0 20px 48px #0003;display:flex;flex-direction:column;gap:1.1rem;max-width:416px;margin:0}.dpw-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.dpw-header-left{display:flex;flex-direction:column;gap:.15rem}.dpw-kicker{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#a78bfa}.dpw-date{font-size:.84rem;font-weight:600;color:var(--color-text-secondary)}.dpw-go-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border-radius:999px;background:#a78bfa1f;border:1px solid rgba(167,139,250,.2);color:#a78bfa;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .18s ease,border-color .18s ease}.dpw-go-btn:hover{background:#a78bfa33;border-color:#a78bfa66}.dpw-loading{display:flex;align-items:center;justify-content:center;min-height:200px}.dpw-spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(167,139,250,.2);border-top-color:#a78bfa;animation:dpw-spin .7s linear infinite}@keyframes dpw-spin{to{transform:rotate(360deg)}}.dpw-error{padding:1rem;border-radius:14px;background:#ff475714;border:1px solid rgba(255,71,87,.2);color:#ff4757;font-size:.9rem;text-align:center}.dpw-body{display:flex;justify-content:center;align-items:center;width:100%}.dpw-board-wrap{position:relative;border-radius:12px;overflow:hidden;flex-shrink:0}.dpw-board-inner{position:relative;pointer-events:none}.dpw-highlight{position:absolute;pointer-events:none;border-radius:3px}.dpw-highlight--correct{background:#64dc6473;box-shadow:inset 0 0 0 3px #64dc64cc}.dpw-highlight--wrong{background:#ff475766;box-shadow:inset 0 0 0 3px #ff4757b3}.dpw-highlight--hint{background:#f1c40f59;box-shadow:inset 0 0 0 3px #f1c40fbf}.home-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-primary);transition:background var(--transition-normal)}.home-content{max-width:1400px;margin:0 auto;padding:100px 2rem 3rem}.hero-section{text-align:center;margin-bottom:3rem}.hero-title{font-size:3rem;font-weight:700;color:var(--color-text-primary);margin:0 0 1rem;letter-spacing:-1px}.hero-subtitle{font-size:1.1rem;color:var(--color-text-secondary);max-width:500px;margin:0 auto}.main-grid{max-width:900px;margin:0 auto;width:100%}.daily-puzzle-container{margin-top:2rem;width:100%;display:flex;justify-content:flex-start}.tempo-section{display:flex;flex-direction:column;gap:1.5rem;width:100%}.section-header{margin-bottom:.5rem}.section-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.section-subtitle{font-size:.9rem;color:var(--color-text-tertiary);margin:0}.tempo-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%}.custom-options{margin-top:1rem}.custom-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.custom-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.custom-btn{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left}.custom-btn:hover{background:var(--color-surface-hover);border-color:var(--color-border-light);transform:translateY(-2px)}.custom-btn-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border-radius:10px;color:var(--color-text-secondary);flex-shrink:0;transition:all .2s ease}.custom-btn:hover .custom-btn-icon{background:linear-gradient(135deg,#e74c3c33,#e74c3c1a);color:#ff6b6b}.custom-btn-icon svg{width:20px;height:20px}.custom-btn-content{display:flex;flex-direction:column;gap:.25rem}.custom-btn-title{font-size:.95rem;font-weight:500;color:var(--color-text-primary)}.custom-btn-desc{font-size:.8rem;color:var(--color-text-tertiary)}.history-section{position:sticky;top:80px}@media(max-width:1024px){.main-grid{grid-template-columns:1fr}.history-section{position:static}}@media(max-width:768px){.home-content{width:100%;padding:80px .875rem 2rem}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.tempo-cards{grid-template-columns:minmax(0,1fr);gap:.85rem}.custom-buttons{grid-template-columns:1fr}}@media(max-width:540px){.home-content{padding-inline:.75rem}.tempo-section{gap:.9rem}.tempo-cards{gap:.75rem}}.search-status-bar{display:flex;justify-content:center;margin-top:1.5rem;min-height:40px}.cancel-search-btn{color:var(--color-text-secondary);font-size:.9rem;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;background:transparent;border:1px solid transparent}.cancel-search-btn:hover{color:var(--color-text-primary);background:var(--color-surface);border-color:var(--color-border)}.custom-options.disabled{opacity:.5;pointer-events:none;filter:grayscale(.5);transition:opacity .3s ease}.custom-btn.locked{opacity:.6;cursor:not-allowed;background:var(--color-bg-secondary);border-color:var(--color-border)}.custom-btn.locked:hover{transform:none;background:var(--color-bg-secondary);border-color:var(--color-border)}.custom-btn.locked .custom-btn-icon,.custom-btn.locked:hover .custom-btn-icon{color:var(--color-text-tertiary);background:#ffffff0d}.home-footer{width:100%;margin-top:auto;padding:15px 0;border-radius:0;text-align:center;border-top:1px solid var(--color-border)}.footer-links{display:flex;flex-direction:column;align-items:center;gap:12px}.seo-footer-links{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center}.footer-link-text{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:2px;font-size:.9rem}.footer-link-text:hover{color:var(--color-text-primary)}.footer-link{background:none;border:none;color:var(--color-text-secondary);font-size:1rem;font-weight:500;cursor:pointer;transition:color .2s ease;text-decoration:underline}.footer-link:hover{color:#e94560}.footer-copyright{color:var(--color-text-tertiary);font-size:.85rem}.ai-game-page{min-height:100vh;background:linear-gradient(180deg,#0f0f1a,#0a0a12)}.game-content{max-width:1400px;margin:0 auto;padding:80px 2rem 2rem}.game-container{display:flex;justify-content:center;align-items:flex-start;gap:2rem;margin-top:1rem}.side-panel{width:200px;display:flex;flex-direction:column;gap:1rem}.player-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#1e1e3099;border:1px solid rgba(255,255,255,.05);border-radius:12px;position:relative}.player-avatar{width:40px;height:40px;background:#0000004d;border-radius:50%;display:flex;align-items:center;justify-content:center}.player-card.you .player-avatar{background:linear-gradient(135deg,#e74c3c33,#c0392b33);border:1px solid rgba(231,76,60,.3)}.avatar-icon{font-size:1.25rem}.player-info{display:flex;flex-direction:column}.player-name{font-size:.95rem;font-weight:600;color:#fff}.player-color{font-size:.8rem;color:#6b6b7b}.turn-indicator{position:absolute;top:50%;right:1rem;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:#ffffff1a;transition:all .3s ease}.turn-indicator.active{background:#2ecc71;box-shadow:0 0 10px #2ecc7180}.clock-display{padding:1rem;background:#1e1e3099;border:1px solid rgba(255,255,255,.05);border-radius:12px;text-align:center;transition:all .3s ease}.clock-display.active{background:#e74c3c1a;border-color:#e74c3c4d}.clock-time{font-size:2rem;font-weight:700;font-family:Courier New,monospace;color:#fff}.clock-display.active .clock-time{color:#ff6b6b}.board-section{display:flex;flex-direction:column;align-items:center;gap:1rem}.tempo-badge{padding:.5rem 1rem;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:20px;font-size:.85rem;font-weight:500;color:#ff6b6b}.board-wrapper{border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #0006;max-width:100%}.board-controls{display:flex;gap:.5rem}.control-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#1e1e3099;border:1px solid rgba(255,255,255,.05);border-radius:10px;color:#a0a0b0;font-size:1.25rem;cursor:pointer;transition:all .2s ease}.control-btn:hover:not(:disabled){background:#1e1e30cc;color:#fff;border-color:#ffffff1a}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn.resign:hover:not(:disabled){background:#e74c3c33;border-color:#e74c3c4d;color:#ff6b6b}@media(max-width:1024px){.game-container{flex-direction:column;align-items:center}.side-panel{width:100%;max-width:520px;flex-direction:row;flex-wrap:wrap}.player-card{flex:1}.clock-display{width:auto}}@media(max-width:600px){.game-content{padding:70px 1rem 1rem}.board-wrapper{width:100%}}.profile-page{min-height:100dvh;height:100dvh;display:flex;flex-direction:column;background:var(--gradient-dark);color:var(--color-text-primary);font-family:inherit;transition:background var(--transition-normal);overflow:hidden}.profile-content{max-width:1040px;margin:0 auto;padding:100px var(--spacing-md) var(--spacing-xl)}h1,h2,h3,p{margin:0}.section-title{font-weight:700;color:var(--color-text-primary);letter-spacing:.5px;margin-bottom:var(--spacing-md);text-transform:uppercase;font-size:.85rem;opacity:.7}.section-title.main-title{font-size:1.4rem;opacity:1;margin-bottom:var(--spacing-lg);letter-spacing:-1px}.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--spacing-md);color:var(--color-text-secondary)}.games-loader-container{padding:4rem 0;text-align:center;color:var(--color-text-secondary)}.loading-spinner{width:40px;height:40px;border:2px solid var(--color-border);border-top-color:var(--color-premium);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin:0 auto 1rem}.profile-card{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:var(--color-surface);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:1.5rem;box-shadow:var(--shadow-xl)}.profile-card-left{display:flex;align-items:center;gap:var(--spacing-md)}.avatar-wrapper{position:relative;width:80px;height:80px}.avatar-img,.avatar-placeholder{width:100%;height:100%;border-radius:var(--radius-full);border:2px solid var(--color-premium);box-shadow:0 0 20px var(--color-premium-bg);object-fit:cover}.avatar-placeholder{background:var(--gradient-dark);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:var(--color-premium)}.online-dot{position:absolute;bottom:2px;right:2px;width:16px;height:16px;background:var(--color-success);border:3px solid var(--color-bg-secondary);border-radius:var(--radius-full)}.profile-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.profile-name{font-size:1.75rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.5px}.profile-email{font-size:.95rem;color:var(--color-text-secondary)}.profile-tags{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm);flex-wrap:wrap}.tag{padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.tag-gold{background:var(--color-premium-bg);color:var(--color-premium);border:1px solid var(--color-premium-border)}.tag-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.tag-error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.profile-card-right{display:flex;align-items:center;gap:var(--spacing-md)}.btn-primary,.btn-ghost{display:flex;align-items:center;gap:var(--spacing-sm);padding:.75rem 1.5rem;border-radius:var(--radius-full);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);border:none;line-height:1}.btn-primary{background:var(--color-premium);color:var(--color-bg-primary)}.btn-primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 6px 20px var(--color-premium-bg)}.btn-primary.loading svg{animation:spin 1s linear infinite}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover{color:var(--color-text-primary);border-color:var(--color-border-light);background:var(--color-surface)}.stats-section{margin-bottom:var(--spacing-xl)}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-md)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1.5rem;display:flex;align-items:center;gap:var(--spacing-md);transition:all var(--transition-normal);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-surface);opacity:0;transition:opacity var(--transition-normal)}.stat-card:hover{transform:translateY(-4px);border-color:var(--color-border-light);box-shadow:var(--shadow-lg)}.stat-card:hover:before{opacity:1}.stat-card.primary{background:var(--color-premium-bg);border-color:var(--color-premium-border)}.stat-card.primary:hover{border-color:var(--color-premium);box-shadow:0 10px 30px var(--color-premium-bg)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:var(--color-surface-hover);color:var(--color-text-secondary);flex-shrink:0}.stat-card.primary .stat-icon{background:var(--color-premium-bg);color:var(--color-premium)}.stat-icon.games{color:var(--color-text-secondary)}.stat-icon.wins{color:var(--color-success);background:var(--color-success-bg)}.stat-icon.losses{color:var(--color-danger);background:var(--color-danger-bg)}.stat-icon.winrate{color:var(--color-accent);background:var(--color-surface-active)}.stat-content{display:flex;flex-direction:column;z-index:1}.stat-value{font-size:1.6rem;font-weight:800;color:var(--color-text-primary);line-height:1;margin-bottom:var(--spacing-xs);letter-spacing:-.5px}.stat-card.primary .stat-value{color:var(--color-premium)}.stat-label{font-size:.8rem;font-weight:500;color:var(--color-text-secondary)}.themes-section{margin-bottom:var(--spacing-xl)}.themes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.theme-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);cursor:pointer;transition:all var(--transition-normal)}.theme-card:hover{border-color:var(--color-border-light);transform:translateY(-4px)}.theme-card.selected{border-color:var(--color-premium);background:var(--color-premium-bg);box-shadow:0 10px 30px var(--color-premium-bg)}.theme-preview{width:75px;height:75px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);pointer-events:none}.mini-board{width:100%;height:100%;display:flex;flex-direction:column}.mini-row{display:flex;flex:1}.mini-square{flex:1}.theme-name{font-size:.85rem;font-weight:600;color:var(--color-text-primary)}.theme-card.selected .theme-name{color:var(--color-premium)}.theme-check{position:absolute;top:-10px;right:-10px;width:28px;height:28px;background:var(--color-premium);color:var(--color-bg-primary);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.5);transition:all var(--transition-normal);box-shadow:var(--shadow-md)}.theme-card.selected .theme-check{opacity:1;transform:scale(1)}.save-theme-btn{width:100%;max-width:400px;margin:0 auto;display:block;padding:1rem;background:var(--color-premium);color:var(--color-bg-primary);border:none;border-radius:var(--radius-full);font-size:1rem;font-weight:700;cursor:pointer;transition:all var(--transition-normal)}.save-theme-btn:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 8px 25px var(--color-premium-bg)}.recent-games-section{background:transparent;margin-bottom:5rem}.games-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:2rem;flex-wrap:wrap}.filter-chips{display:flex;gap:.75rem}.chip{padding:.6rem 1.25rem;background:#ffffff0d;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.chip:hover{background:#ffffff1a;color:var(--color-text-primary)}.chip.active{background:var(--color-premium);color:var(--color-bg-primary);border-color:var(--color-premium)}.search-filter-group{display:flex;gap:1rem;flex:1;max-width:500px;justify-content:flex-end;align-items:center}.revalidate-spinner{display:flex;align-items:center;justify-content:center;color:var(--color-premium)}.spin-animation{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.search-box{position:relative;flex:1;display:flex;align-items:center;background:#ffffff08;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0 1rem;color:var(--color-text-secondary);transition:all var(--transition-normal)}.search-box:focus-within{border-color:var(--color-premium-border);background:#ffffff0f}.search-box input{background:transparent;border:none;padding:.75rem;color:var(--color-text-primary);width:100%;outline:none;font-family:inherit;font-size:.9rem}.search-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid transparent;border-radius:999px;background:#ffffff14;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal);flex-shrink:0}.search-icon-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-premium-border);background:#ffffff26}.search-icon-btn:disabled{opacity:.6;cursor:not-allowed}.search-result-box{margin:.9rem 0 1rem;padding:.85rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#ffffff08;color:var(--color-text-secondary)}.search-result-box.error{border-color:#ef444473;color:#fca5a5;background:#ef44441f}.search-result-user{display:flex;align-items:center;gap:.8rem}.search-result-avatar{width:36px;height:36px;border-radius:var(--radius-full);overflow:hidden;background:var(--color-surface-hover);display:flex;align-items:center;justify-content:center;color:var(--color-premium);font-weight:700;flex-shrink:0}.search-result-avatar img{width:100%;height:100%;object-fit:cover}.search-result-meta{display:flex;flex-direction:column;min-width:0}.search-result-meta strong{color:var(--color-text-primary);font-size:.95rem}.search-result-meta span{color:var(--color-text-secondary);font-size:.82rem}.search-result-stats{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.4rem}.search-result-stats span{font-size:.74rem;font-weight:700;padding:.2rem .45rem;border-radius:999px;border:1px solid var(--color-border);background:#ffffff0d}.search-result-stats .win{color:#86efac;border-color:#22c55e73;background:#22c55e26}.search-result-stats .loss{color:#fca5a5;border-color:#ef444473;background:#ef444426}.search-result-stats .draw{color:#fcd34d;border-color:#f59e0b73;background:#f59e0b26}.search-active-filter{margin:-.3rem 0 1rem;color:var(--color-text-secondary);font-size:.86rem}.search-active-filter strong{color:var(--color-text-primary)}.btn-filter-settings{display:flex;align-items:center;gap:.5rem;padding:0 1.25rem;background:#ffffff0d;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.btn-filter-settings:hover{background:#ffffff1a;color:var(--color-text-primary)}.btn-filter-settings.active{border-color:var(--color-premium-border);color:var(--color-premium);background:var(--color-premium-bg)}.profile-filter-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#070a1473;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem}.profile-filter-modal{width:100%;max-width:480px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.profile-filter-modal-header{padding:1rem 1.1rem;border-bottom:1px solid var(--color-border)}.profile-filter-modal-header h3{margin:0;color:var(--color-text-primary);font-size:1rem;font-weight:700}.profile-filter-modal-body{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:1rem}.profile-filter-group{display:flex;flex-direction:column;gap:.55rem}.profile-filter-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:700;letter-spacing:.02em}.profile-filter-options{display:flex;flex-wrap:wrap;gap:.45rem}.profile-filter-option{border:1px solid var(--color-border);border-radius:999px;background:#ffffff0a;color:var(--color-text-secondary);padding:.4rem .75rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.profile-filter-option:hover{color:var(--color-text-primary);border-color:var(--color-border-light)}.profile-filter-option.active{color:var(--color-premium);border-color:var(--color-premium-border);background:var(--color-premium-bg)}.profile-filter-modal-actions{display:flex;justify-content:flex-end;gap:.6rem;padding:0 1.1rem 1rem}.modal-action-btn{min-width:96px;justify-content:center}.games-table{display:flex;flex-direction:column}.games-list{display:flex;flex-direction:column;gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.game-row{display:grid;grid-template-columns:140px 1fr 140px 80px 140px;align-items:center;padding:1.25rem 1.5rem;background:var(--color-bg-primary);transition:all var(--transition-normal);gap:1rem}.game-row:hover{background:#ffffff08}.game-col{display:flex;flex-direction:column}.col-label{font-size:.65rem;font-weight:800;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:.25rem}.col-value-primary{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.opponent-col{flex-direction:row;align-items:center;gap:1rem}.opponent-avatar-box{width:48px;height:48px;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);flex-shrink:0}.opponent-avatar-box img{width:100%;height:100%;object-fit:cover}.avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-premium)}.opponent-info-box{display:flex;flex-direction:column}.opponent-name{font-size:1.05rem;font-weight:700;color:var(--color-text-primary)}.opponent-meta{font-size:.75rem;font-weight:600;color:var(--color-premium)}.result-col{align-items:center}.result-text{font-weight:900;font-size:.9rem;letter-spacing:1px}.result-text.win{color:var(--color-success)}.result-text.loss{color:var(--color-danger)}.result-text.draw{color:var(--color-neutral)}.tempo-icon-col{align-items:center}.profile-tempo-icon{color:var(--color-text-tertiary);opacity:.6}.action-col{align-items:flex-end}.btn-analyze{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.75rem;font-weight:800;cursor:pointer;transition:all var(--transition-normal)}.btn-analyze:hover:not(.locked){background:var(--color-surface);border-color:var(--color-text-secondary)}.btn-analyze.locked{opacity:.4;cursor:not-allowed;background:var(--color-surface-hover);border-color:var(--color-border)}.btn-analyze .lock-icon{font-size:14px}.pagination-footer{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:2rem}.btn-page-arrow{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff08;border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);transition:all var(--transition-normal)}.btn-page-arrow:hover:not(:disabled){background:var(--color-surface);color:var(--color-text-primary)}.btn-page-arrow:disabled{opacity:.2;cursor:not-allowed}.page-numbers{display:flex;align-items:center;gap:.5rem}.btn-page{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-lg);color:var(--color-text-secondary);font-weight:700;font-size:.9rem;transition:all var(--transition-normal)}.btn-page:hover:not(.active){background:#ffffff0d;color:var(--color-text-primary)}.btn-page.active{background:var(--color-premium);color:var(--color-bg-primary)}.page-dots{color:var(--color-text-tertiary);padding:0 .5rem}@media(max-width:900px){.stats-grid{grid-template-columns:repeat(3,1fr)}.stat-card.primary{grid-column:1 / -1;justify-content:center;text-align:center}.game-row{grid-template-columns:120px 1fr 100px 50px 110px;padding:1rem}}@media(max-width:768px){.games-controls{flex-direction:column;align-items:flex-start;gap:1rem}.search-filter-group{max-width:100%;width:100%}.game-row{grid-template-columns:1fr 1fr;grid-template-areas:"opponent opponent" "date action" "result tempo";gap:1.5rem;padding:1.5rem}.game-col.date-col{grid-area:date}.game-col.opponent-col{grid-area:opponent}.game-col.result-col{grid-area:result;align-items:flex-start}.game-col.tempo-icon-col{grid-area:tempo;align-items:flex-end}.game-col.action-col{grid-area:action}.opponent-col{border-bottom:1px solid var(--color-border);padding-bottom:1rem;margin-bottom:.5rem}}@media(max-width:600px){.profile-card{flex-direction:column;gap:var(--spacing-xl);text-align:center;padding:1.5rem}.profile-card-left{flex-direction:column}.profile-tags{justify-content:center}.profile-card-right>button{width:100%;justify-content:center}.stats-grid,.themes-grid{grid-template-columns:repeat(2,1fr)}}.skeleton-box{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.profile-page-wrapper{flex:1;display:flex;padding-top:65px;width:100%;overflow:hidden;min-height:0}.profile-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);transition:width .26s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;padding:0;position:relative;z-index:20;flex-shrink:0}.profile-sidebar.open{width:250px}.profile-sidebar.closed{width:72px}.profile-sidebar>.sidebar-toggle-floating{position:absolute;right:-14px;top:1.5rem;z-index:50;width:28px;height:28px;background:var(--color-sidebar-toggle-bg);border:1px solid var(--color-sidebar-toggle-border);color:var(--color-sidebar-toggle-text);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-floating-control);transition:background-color .2s ease,transform .2s ease,right .3s ease;padding:0}.profile-sidebar>.sidebar-toggle-floating:hover{background:var(--color-sidebar-toggle-bg-hover);transform:scale(1.05)}.profile-sidebar>.sidebar-content{overflow-x:hidden;overflow-y:auto;flex:1;display:flex;flex-direction:column;padding-top:.75rem}.profile-sidebar .sidebar-nav{display:flex;flex-direction:column;gap:.5rem}.profile-sidebar .sidebar-item{display:flex;align-items:center;gap:1rem;padding:.8rem 1.25rem;background:transparent;border:none;color:var(--color-text-secondary);font-weight:500;font-size:.95rem;cursor:pointer;transition:background .18s ease,color .18s ease;white-space:nowrap;text-align:left;outline:none;overflow:hidden;width:100%}.profile-sidebar .sidebar-icon{display:inline-flex;justify-content:center;align-items:center;min-width:24px;width:24px;flex-shrink:0}.profile-sidebar .sidebar-text{opacity:1;transition:opacity .2s ease,width .26s cubic-bezier(.22,1,.36,1),margin .26s cubic-bezier(.22,1,.36,1),transform .26s cubic-bezier(.22,1,.36,1);display:inline-block;overflow:hidden;transform:translate(0);transform-origin:left center}.profile-sidebar .sidebar-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.profile-sidebar .sidebar-item.active{color:var(--color-premium);background:var(--color-premium-bg)}.profile-sidebar.closed .sidebar-text{opacity:0;width:0;margin:0;pointer-events:none;transform:translate(-8px)}.profile-sidebar.closed .sidebar-item.active{border-right:none}.profile-sidebar-backdrop{display:none}@media(prefers-reduced-motion:reduce){.profile-sidebar,.profile-sidebar .sidebar-item,.profile-sidebar .sidebar-text,.profile-sidebar>.sidebar-toggle-floating{transition:none!important}}.profile-main-area{flex:1;overflow-y:auto;overflow-x:hidden;padding:2rem 2.5rem 4rem;min-width:0;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.profile-main-area::-webkit-scrollbar{display:none}.profile-main-area .profile-card{margin-bottom:var(--spacing-xl)}.profile-game-history{margin-top:2rem;margin-bottom:2rem}.profile-subpage{padding-top:.5rem;padding-bottom:3rem}.subpage-header{margin-bottom:var(--spacing-xl)}.subpage-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.5rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.5px;margin-bottom:var(--spacing-xs);text-transform:none;opacity:1}.subpage-desc{font-size:.9rem;color:var(--color-text-secondary);margin:0}.settings-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;transition:border-color var(--transition-normal)}.setting-row:hover{border-color:var(--color-border-light)}.setting-info{flex:1}.setting-title{font-size:1rem;font-weight:700;color:var(--color-text-primary);margin:0 0 .35rem}.setting-desc{font-size:.875rem;color:var(--color-text-secondary);margin:0;line-height:1.5}.toggle-switch{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff1a;border-radius:var(--radius-full);border:1px solid var(--color-border);transition:background var(--transition-normal),border-color var(--transition-normal)}.toggle-switch input:checked+.toggle-track{background:var(--color-success);border-color:var(--color-success)}.toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:var(--radius-full);transition:transform var(--transition-normal);box-shadow:0 1px 4px #0000004d}.toggle-switch input:checked+.toggle-track .toggle-thumb{transform:translate(24px)}@media(max-width:900px){.profile-page-wrapper{position:relative}.profile-sidebar{position:fixed;top:65px;left:0;bottom:0;height:calc(100dvh - 65px);z-index:40;background:var(--color-sidebar-mobile-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sidebar-mobile)}.profile-sidebar.open{width:220px}.profile-sidebar.closed{width:0;border-right:none}.profile-sidebar.closed .sidebar-content{opacity:0;pointer-events:none}.profile-sidebar.closed .sidebar-toggle-floating{right:-32px}.profile-sidebar-backdrop{display:block;position:fixed;top:65px;right:0;bottom:0;left:0;z-index:35;border:none;padding:0;margin:0;background:var(--color-sidebar-backdrop);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.profile-main-area{padding:1.5rem 1.25rem 3rem;width:100%}}@media(max-width:768px){.profile-main-area{padding:1rem 1rem 3rem}}@media(max-width:600px){.profile-card{flex-direction:column;gap:var(--spacing-xl);text-align:center;padding:1.5rem}.profile-card-left{flex-direction:column}.profile-tags{justify-content:center}.profile-card-right>button{width:100%;justify-content:center}}@media(max-width:1024px){.games-controls{align-items:flex-start;gap:1.25rem}.filter-chips{flex-wrap:wrap}.search-filter-group{max-width:100%;width:100%;justify-content:flex-start}.game-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 110px 56px 124px}}@media(max-width:768px){.profile-card{padding:1.25rem;gap:1.1rem;align-items:flex-start}.profile-card-left{width:100%;min-width:0}.profile-card-right{width:100%;gap:.75rem;justify-content:stretch}.profile-card-right>button{flex:1 1 0;min-width:0;justify-content:center}.profile-details{min-width:0}.profile-name{font-size:1.5rem;line-height:1.1;word-break:break-word}.profile-email{word-break:break-word}.games-controls{margin-bottom:1.25rem}.filter-chips{width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;white-space:nowrap}.search-filter-group{flex-direction:column;align-items:stretch;gap:.75rem}.revalidate-spinner{align-self:flex-end}.search-box{width:100%;min-height:48px;padding:0 .75rem}.search-box input{font-size:16px;padding:.8rem .65rem}.btn-filter-settings{width:100%;min-height:46px;justify-content:center;padding:.75rem 1rem}.search-result-box{padding:.85rem .9rem}.search-result-user{align-items:flex-start}.search-result-meta{width:100%}.search-result-stats{gap:.35rem}.game-row{grid-template-columns:1fr 1fr;grid-template-areas:"opponent opponent" "date tempo" "result action";gap:1rem;padding:1.1rem}.game-col.date-col,.game-col.result-col,.game-col.tempo-icon-col,.game-col.action-col{min-width:0}.game-col.date-col,.game-col.result-col{align-items:flex-start}.game-col.tempo-icon-col{align-items:flex-end;justify-content:center}.game-col.action-col{align-items:stretch}.opponent-col{gap:.85rem}.opponent-info-box{min-width:0}.opponent-name{font-size:.98rem;word-break:break-word}.btn-analyze{width:100%;justify-content:center}.pagination-footer{gap:.9rem;flex-wrap:wrap}.page-numbers{flex-wrap:wrap;justify-content:center}.profile-filter-modal-backdrop{padding:.75rem;align-items:flex-end}.profile-filter-modal{max-width:none;border-radius:18px 18px 0 0}.profile-filter-modal-actions{flex-wrap:wrap}.modal-action-btn{flex:1 1 0}.subpage-title{font-size:1.3rem;align-items:flex-start}.setting-row{align-items:flex-start;flex-direction:column}.toggle-switch{align-self:flex-end}}@media(max-width:560px){.profile-main-area{padding:.85rem .75rem 2.25rem}.profile-card{padding:1rem;gap:.95rem;border-radius:18px}.profile-card-left{flex-direction:row;align-items:center;gap:.85rem}.avatar-wrapper{width:68px;height:68px}.online-dot{width:14px;height:14px;border-width:2px}.profile-name{font-size:1.25rem}.profile-email{font-size:.88rem}.tag{padding:.3rem .72rem;font-size:.68rem}.profile-card-right{flex-direction:column}.btn-primary,.btn-ghost{width:100%;min-height:44px;padding:.72rem 1rem;font-size:.88rem}.games-controls{gap:.9rem}.search-result-user{flex-direction:column;gap:.65rem}.search-result-avatar{width:42px;height:42px}.search-result-meta strong{font-size:.92rem}.search-result-meta span{font-size:.8rem}.search-active-filter{font-size:.8rem;line-height:1.45}.game-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"opponent opponent opponent" "date result tempo" "action action action";gap:.85rem;padding:.95rem}.game-col.date-col,.game-col.result-col,.game-col.tempo-icon-col{justify-content:center}.game-col.result-col{align-items:center;text-align:center}.game-col.tempo-icon-col{align-items:flex-end}.game-col.action-col{align-items:stretch}.opponent-col{padding-bottom:.85rem}.opponent-avatar-box{width:42px;height:42px;border-radius:12px}.opponent-meta,.col-value-primary{font-size:.74rem}.result-text{font-size:.82rem}.pagination-footer{margin-top:1.4rem}.btn-page,.btn-page-arrow{width:36px;height:36px}.profile-filter-modal-header,.profile-filter-modal-body{padding-inline:.9rem}.profile-filter-modal-actions{padding:0 .9rem .9rem;gap:.5rem}.profile-filter-options{gap:.4rem}.profile-filter-option{flex:1 1 calc(50% - .2rem);text-align:center;justify-content:center}.themes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.theme-card{padding:.85rem;gap:.75rem}.theme-preview{width:64px;height:64px}.theme-name{font-size:.8rem;text-align:center}.subpage-header{margin-bottom:1rem}.subpage-desc{font-size:.85rem;line-height:1.5}.settings-list{gap:.75rem}.setting-row{padding:.95rem 1rem}.setting-title{font-size:.95rem}.setting-desc{font-size:.82rem}}@media(max-width:420px){.profile-card-left{flex-direction:column;align-items:center;text-align:center}.profile-details{align-items:center}.profile-tags{justify-content:center}.filter-chips{gap:.55rem}.chip{padding:.52rem .9rem;font-size:.78rem}.search-box{min-height:46px}.search-icon-btn{width:32px;height:32px}.btn-filter-settings span{font-size:.84rem}.profile-filter-option{flex-basis:100%}}.puzzle-page-wrapper{flex:1;display:flex;overflow:hidden;width:100%;padding-top:65px}.puzzle-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);transition:width .26s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;padding:0;position:relative;z-index:20;flex-shrink:0}.puzzle-sidebar>.sidebar-content{overflow-x:hidden;overflow-y:auto;flex:1;display:flex;flex-direction:column}.puzzle-sidebar.open{width:250px}.puzzle-sidebar.closed{width:72px}.puzzle-sidebar>.sidebar-toggle-floating{position:absolute;right:-14px;top:1.5rem;z-index:50;width:28px;height:28px;background:var(--color-sidebar-toggle-bg);border:1px solid var(--color-sidebar-toggle-border);color:var(--color-sidebar-toggle-text);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-floating-control);transition:background-color .2s ease,transform .2s ease,right .3s ease;padding:0;margin-top:0}.puzzle-sidebar>.sidebar-toggle-floating:hover{background:var(--color-sidebar-toggle-bg-hover);transform:scale(1.05)}.puzzle-sidebar .sidebar-nav{display:flex;flex-direction:column;gap:.5rem}.puzzle-sidebar .sidebar-item{display:flex;align-items:center;gap:1rem;padding:.8rem 1.25rem;background:transparent;border:none;color:var(--color-text-secondary);font-weight:500;font-size:.95rem;cursor:pointer;transition:background .18s ease,color .18s ease;white-space:nowrap;text-align:left;outline:none;overflow:hidden}.puzzle-sidebar .sidebar-icon{display:inline-flex;justify-content:center;align-items:center;min-width:24px;width:24px;flex-shrink:0}.puzzle-sidebar .sidebar-text{opacity:1;transition:opacity .2s ease,width .26s cubic-bezier(.22,1,.36,1),margin .26s cubic-bezier(.22,1,.36,1),transform .26s cubic-bezier(.22,1,.36,1);display:inline-block;overflow:hidden;transform:translate(0);transform-origin:left center}.puzzle-sidebar .sidebar-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.puzzle-sidebar .sidebar-item.active{color:var(--color-accent);background:#3b82f61a}.puzzle-sidebar .sidebar-item.locked{opacity:.5;cursor:not-allowed;pointer-events:none}.puzzle-sidebar .sidebar-item-inner{display:flex;align-items:center;width:100%}.puzzle-sidebar .sidebar-lock-icon{margin-left:auto;font-size:.9rem;color:var(--color-text-tertiary)}.puzzle-sidebar.closed .sidebar-item{border-right:none}.puzzle-sidebar.closed .sidebar-text{opacity:0;width:0;margin:0;pointer-events:none;transform:translate(-8px)}.puzzle-sidebar.closed .sidebar-item.active{border-right:none}.puzzle-sidebar-backdrop{display:none}@media(prefers-reduced-motion:reduce){.puzzle-sidebar,.puzzle-sidebar .sidebar-item,.puzzle-sidebar .sidebar-text,.puzzle-sidebar>.sidebar-toggle-floating{transition:none!important}}.puzzle-page-container{flex:1;display:flex;flex-direction:column;align-items:center;padding:2rem 11rem;color:var(--color-text-primary);font-family:Inter,sans-serif;width:100%;max-width:1600px;margin:0 auto;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.puzzle-play-container{align-items:flex-start;padding:2rem 2rem 2rem 12rem;margin:0}.puzzle-play-container--daily{align-items:stretch;padding:1rem 1.5rem}.page-h1{margin:0 0 1rem;font-size:1.75rem;font-weight:700;color:var(--color-text-primary)}.puzzle-btn{padding:10px 24px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:1rem;transition:all .2s ease;box-shadow:0 4px 6px #3b82f640;display:inline-flex;align-items:center;justify-content:center}.puzzle-btn:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 6px 8px #3b82f64d}.puzzle-btn:disabled{background-color:#4b5563;color:#9ca3af;cursor:not-allowed;box-shadow:none;transform:none}.puzzle-content{display:grid;grid-template-columns:auto minmax(0,550px);align-items:flex-start;justify-content:center;gap:2rem;width:100%;transform:translate(clamp(1.1rem,2.6vw,2rem))}.puzzle-content--daily{display:flex;width:100%;height:100%;flex:1;transform:none;justify-content:center;align-items:stretch}.puzzle-board-column--daily{width:100%;max-width:none;height:100%;flex:1}.puzzle-board-row--daily{width:100%;justify-content:center}.puzzle-content--daily .puzzle-board-stack{width:100%;max-width:none;align-items:center}.lab-analysis-content{display:flex;align-items:flex-start;gap:2rem;width:100%}.lab-analysis-content .puzzle-board-column{flex:0 0 560px;max-width:560px;min-width:560px}.lab-analysis-content .puzzle-board-row{width:100%;max-width:560px;align-items:flex-start;gap:10px}.lab-board-stack{display:flex;flex-direction:column;gap:.75rem;min-width:0}.lab-analysis-content .puzzle-right-column{flex:1 1 auto;min-width:0}.lab-page-container{max-width:1250px}.lab-analysis-content .move-list{width:100%;max-height:none;height:auto!important;flex:1 1 auto}.lab-analysis-content .move-list-content{max-height:none}.puzzle-status-card{background:var(--color-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:16px;padding:1.5rem;width:100%;display:flex;flex-direction:column;gap:1.2rem;box-shadow:var(--shadow-board)}.puzzle-info-row{display:flex;justify-content:space-between;align-items:center;padding-bottom:.8rem;border-bottom:1px solid var(--color-border)}.puzzle-nav-buttons{display:flex;gap:.4rem}.puzzle-nav-buttons .ctrl-btn--nav{padding:6px;height:32px;width:32px;background:var(--color-surface-active);border-color:var(--color-border-hover)}.puzzle-info-label{color:var(--color-text-secondary);font-size:.9rem;font-weight:500}.puzzle-info-value{color:var(--color-accent);font-weight:600;font-size:1.1rem}.puzzle-themes{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.theme-tag{background:var(--color-surface-active);color:var(--color-text-primary);padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:500;border:1px solid var(--color-border);text-transform:capitalize}.puzzle-status-message-container{margin-top:.5rem;display:flex;flex-direction:column;gap:.8rem}.status-badge{display:inline-flex;padding:6px 12px;border-radius:6px;font-size:.85rem;font-weight:600;align-items:center;justify-content:center;text-align:center}.status-badge.loading{background:var(--color-surface-active);color:var(--color-warning);border:1px solid var(--color-border)}.status-badge.your-turn{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-border)}.status-badge.opponent-turn{background:var(--color-surface-active);color:var(--color-accent);border:1px solid var(--color-border)}.status-badge.wrong-move{display:none}.status-badge.complete{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-border)}.status-text{display:none}.puzzle-board-container{position:relative;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-board);border:2px solid var(--color-border);background-color:var(--color-surface);padding:4px;transition:opacity .3s ease,background-color .3s ease,border-color .3s ease}.puzzle-board-container--with-bar{border-left:2px solid var(--color-border);border-top-left-radius:8px;border-bottom-left-radius:8px}.puzzle-board--fading{opacity:.25;pointer-events:none}@keyframes correctGlow{0%{box-shadow:0 0 #34d39900;opacity:0}20%{opacity:1;box-shadow:0 0 14px 6px #21c71bb3}80%{opacity:1;box-shadow:0 0 12px 5px #14ba258c}to{box-shadow:0 0 #34d39900;opacity:0}}@keyframes wrongFlash{0%{background-color:#ef444400}20%{background-color:#c917178c}50%{background-color:#c10a0a33}70%{background-color:#ef44448c}to{background-color:#ef444400}}.puzzle-square-highlight{position:absolute;z-index:10;border-radius:2px;pointer-events:none}.puzzle-square-highlight--correct{animation:correctGlow 1s ease forwards}.puzzle-square-highlight--wrong{animation:wrongFlash .9s ease forwards}@keyframes hintPulse{0%{box-shadow:0 0 #8b5cf600;opacity:.5}40%{box-shadow:0 0 12px 5px #8b5cf6b3;opacity:1}70%{box-shadow:0 0 10px 4px #8b5cf68c;opacity:1}to{box-shadow:0 0 12px 5px #8b5cf6b3;opacity:1}}.puzzle-square-highlight--hint{animation:hintPulse .6s ease forwards;box-shadow:0 0 12px 5px #8b5cf6a6}.puzzle-square-highlight--solution{background-color:#10b98159;box-shadow:inset 0 0 0 3px #10b981e6}.puzzle-board-column{grid-column:1;display:flex;flex-direction:column;align-items:center;gap:.6rem;position:relative}.puzzle-right-column{grid-column:2;justify-self:start;display:flex;flex-direction:column;gap:1rem;align-items:stretch;width:100%;height:100%;align-self:stretch;max-width:550px}.puzzle-board-row{display:flex;align-items:stretch;gap:2px}.puzzle-board-row--with-status{align-items:flex-start;gap:1.25rem;flex-wrap:nowrap}.puzzle-board-row--status-right{flex-direction:row}.puzzle-board-row-inner{display:flex;align-items:stretch;width:100%;justify-content:center}.puzzle-board-stack{display:flex;flex-direction:column;align-items:center;gap:.9rem;width:100%;max-width:512px}.puzzle-status-card--side{width:360px;flex:0 0 250px}.puzzle-control-bar{display:flex;flex-wrap:nowrap;align-items:center;gap:.6rem;background:var(--color-surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:12px;padding:8px 12px;width:100%;max-width:500px;box-sizing:border-box;justify-content:center}.puzzle-control-bar--board{align-self:center;width:100%;max-width:512px}.ctrl-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 22px;border-radius:9px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.92rem;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease;white-space:nowrap}.ctrl-btn--nav{padding:8px 10px}.ctrl-btn--hint{color:#c4b5fd;border-color:#8b5cf659;background:#8b5cf61a}.ctrl-btn--hint:hover{background:#8b5cf638;border-color:#8b5cf699;box-shadow:0 0 8px #8b5cf64d}.ctrl-btn--solution{color:#6ee7b7;border-color:#10b98159;background:#10b9811a}.ctrl-btn--solution:hover{background:#10b98138;border-color:#10b98199;box-shadow:0 0 8px #10b9814d}.ctrl-btn--solution.ctrl-btn--active{background:#10b98140;color:#34d399;border-color:#10b98199}.ctrl-btn--skip{color:#fdba74;border-color:#f9731659;background:#f973161a}.ctrl-btn--skip:hover{background:#f9731638;border-color:#f9731699;box-shadow:0 0 8px #f973164d}.ctrl-btn--analyze{color:#60a5fa;border-color:#3b82f659;background:#3b82f61a}.ctrl-btn--analyze:hover:not(:disabled){background:#3b82f638;border-color:#3b82f699;box-shadow:0 0 8px #3b82f64d}.ctrl-btn--analyze.ctrl-btn--active{background:#3b82f640;color:#1d4ed8;border-color:#3b82f699}.ctrl-btn--analyze:disabled{opacity:.5;cursor:not-allowed}.puzzle-analysis-panel{width:100%;background:var(--color-surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border-light);border-radius:12px;padding:1rem;box-sizing:border-box;display:flex;flex-direction:column;gap:.8rem;box-shadow:var(--shadow-board);margin-left:auto;margin-top:.2rem;max-height:none;max-width:520px;height:450px;overflow:hidden}.analysis-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.analysis-header-left{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}.analysis-header-right{display:inline-flex;align-items:center;color:var(--color-text-secondary)}.analysis-header-action{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.analysis-header-action:hover{border-color:var(--color-accent);background:var(--color-surface-hover);color:var(--color-text-primary);transform:translateY(-1px)}.analysis-header-action:focus-visible{outline:2px solid rgba(59,130,246,.9);outline-offset:2px}.analysis-header-action[aria-pressed=true]{border-color:#3b82f673;color:#60a5fa}.analysis-status-dot{width:14px;height:14px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 3px #22c55e26;border:none;padding:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}.analysis-status-dot:hover{transform:scale(1.06)}.analysis-status-dot:focus-visible{outline:2px solid rgba(59,130,246,.9);outline-offset:2px}.analysis-status-dot--off{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.analysis-score-chip{font-family:monospace;font-weight:700;font-size:.95rem;padding:4px 10px;border-radius:8px;background:var(--color-surface-active);color:var(--color-text-primary)}.analysis-engine-meta{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.analysis-engine-tag{font-size:.75rem;font-weight:700;color:#84cc16;background:#84cc1626;border:1px solid rgba(132,204,22,.4);padding:2px 6px;border-radius:999px}.analysis-panel-title{margin:0;font-size:1rem;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.analysis-loading{color:var(--color-text-secondary);font-size:.9rem;font-style:italic}.analysis-error{color:var(--color-warning);font-size:.9rem}.analysis-results{display:flex;flex-direction:column;gap:.5rem}.analysis-pv-strip{font-family:monospace;font-size:.9rem;color:var(--color-text-secondary);padding:.4rem 0;border-bottom:1px solid var(--color-border);white-space:nowrap;overflow-x:auto;overflow-y:hidden;flex:0 0 auto;scrollbar-width:none}.analysis-pv-strip::-webkit-scrollbar{height:0}.analysis-pv-strip::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.analysis-pv-strip-wrapper{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem}.analysis-pv-scroll-btn{border:none;background:var(--color-surface-active);color:var(--color-text-secondary);border-radius:6px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-board)}.analysis-pv-scroll-btn:hover{color:var(--color-text-primary);background:var(--color-surface-hover)}.analysis-move-list{display:flex;flex-direction:column;gap:.35rem;padding-top:.25rem;flex:1 1 auto;overflow-y:auto;padding-right:.35rem}.analysis-move-row{display:grid;grid-template-columns:28px 1fr 1fr;gap:.75rem;align-items:center;color:var(--color-text-secondary);font-size:.95rem;padding:.2rem .25rem;border-radius:6px}.analysis-move-row:hover{background:var(--color-surface-hover)}.analysis-move-number{color:var(--color-text-tertiary);text-align:right;font-variant-numeric:tabular-nums}.analysis-move{font-family:monospace}.analysis-move.white{color:var(--color-text-primary)}.analysis-move.black{color:var(--color-text-secondary)}.analysis-move-empty{color:var(--color-text-tertiary);font-size:.9rem;padding:.5rem 0}.lab-review-controls{margin-top:.75rem}.review-controls{display:flex;gap:.5rem;width:100%;padding:.45rem;border:2px solid var(--color-border-light);border-radius:12px;box-sizing:border-box}.review-btn{flex:1;padding:.45rem .6rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.85rem;border-radius:10px;transition:all .15s ease;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.25rem}.review-btn:hover:not(.disabled){border-color:var(--color-accent);color:var(--color-text-primary);background:var(--color-surface-hover)}.review-btn.disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-border);color:var(--color-text-tertiary)}.analysis-line{display:flex;gap:.8rem;font-size:.9rem;align-items:flex-start;min-width:0}.analysis-best-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#16a34a;font-weight:700;margin-top:2px}.analysis-score{font-family:monospace;font-weight:600;color:var(--color-accent);min-width:45px;text-align:right;background:var(--color-surface-active);padding:2px 6px;border-radius:4px}.analysis-pv{color:var(--color-text-secondary);flex:1;font-family:monospace;display:flex;flex-direction:row;flex-wrap:wrap;gap:.35rem;max-width:100%;min-width:0;overflow-wrap:anywhere}.analysis-pv-line{display:inline}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media(max-width:900px){.puzzle-page-wrapper{position:relative}.puzzle-sidebar{position:fixed;top:65px;left:0;bottom:0;height:calc(100dvh - 65px);z-index:180;background:var(--color-sidebar-mobile-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sidebar-mobile)}.puzzle-play-container{align-items:center;padding:1.5rem .5rem 1rem}.puzzle-sidebar.open{width:220px}.puzzle-sidebar.closed{width:0;border-right:none}.puzzle-sidebar.closed .sidebar-content{opacity:0;pointer-events:none}.puzzle-sidebar.closed .sidebar-toggle-floating{right:-32px}.puzzle-sidebar-backdrop{display:block;position:fixed;top:65px;right:0;bottom:0;left:0;z-index:170;border:none;padding:0;margin:0;background:var(--color-sidebar-backdrop);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.puzzle-content{display:grid;grid-template-columns:1fr;justify-items:center;gap:1.5rem;transform:none}.puzzle-page-container{padding:1.5rem .5rem 1rem}.puzzle-header{margin-bottom:1.5rem}.puzzle-header h2{font-size:1.5rem}.puzzle-board-column{grid-column:1;width:100%;max-width:512px}.puzzle-board-row{width:100%;justify-content:center}.puzzle-board-row--with-status{flex-direction:column;align-items:center;gap:1rem;width:100%}.puzzle-board-stack{width:100%;max-width:512px}.puzzle-board-row-inner{width:100%;justify-content:center}.puzzle-status-card--side{width:100%;max-width:512px;flex:0 0 auto}.puzzle-board-container--with-bar{border-left:2px solid var(--color-border);border-top-left-radius:8px;border-bottom-left-radius:8px}.puzzle-status-card{grid-column:1;justify-self:center;width:100%;max-width:500px;padding:1rem;box-sizing:border-box;gap:.75rem;border-radius:14px}.puzzle-info-row{padding-bottom:.6rem}.puzzle-info-label{font-size:.8rem}.puzzle-info-value{font-size:.94rem}.puzzle-nav-buttons .ctrl-btn--nav{width:30px;height:30px;padding:5px}.puzzle-themes{gap:.4rem;margin-top:.35rem}.theme-tag{padding:2px 6px;font-size:.66rem}.puzzle-right-column{grid-column:1;justify-self:center;width:100%;max-width:512px}.lab-page-container{max-width:100%}.lab-analysis-content{flex-direction:column;align-items:center;gap:1rem}.lab-analysis-content .puzzle-board-column{width:100%;max-width:512px;min-width:0;flex:1 1 auto}.lab-analysis-content .puzzle-board-row{width:100%;max-width:512px;gap:8px;justify-content:center}.lab-analysis-content .puzzle-right-column{width:100%;max-width:512px}.puzzle-analysis-panel{height:auto;min-height:340px}.puzzle-control-bar{width:100%;flex-wrap:wrap;gap:.5rem;padding:8px}.puzzle-control-bar--board{align-self:center;max-width:512px}.ctrl-btn{padding:6px 14px;font-size:.85rem;gap:6px;flex:1 1 calc(50% - .3rem);justify-content:center;min-width:0}.ctrl-btn--nav{padding:6px 8px;flex:0 0 auto}}@media(max-width:480px){.puzzle-play-container{align-items:center;padding:1rem .25rem .75rem}.puzzle-page-container{padding:1rem .25rem .75rem}.puzzle-board-column,.puzzle-board-stack,.puzzle-control-bar--board,.lab-analysis-content .puzzle-board-row,.lab-analysis-content .puzzle-right-column{max-width:calc(100vw - .5rem)}.ctrl-btn{font-size:.8rem;padding:6px 8px}}.daily-date-nav{width:fit-content;margin:0;display:flex;align-items:stretch;justify-content:center;gap:7px}.daily-date-nav__arrow,.daily-date-nav__center{border:1px solid var(--color-border);border-radius:14px;background:linear-gradient(180deg,#ffffff0d,#fff0),var(--color-surface);color:var(--color-text-primary);min-height:50px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-board);transition:transform .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease}.daily-date-nav__arrow{width:52px;flex-shrink:0}.daily-date-nav__center{min-width:98px;justify-content:center;gap:10px;padding:0 10px}.daily-date-nav__label{font-size:clamp(.7rem,1.2vw,1.4rem);font-weight:700;letter-spacing:.02em;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-date-nav__arrow:hover:not(:disabled),.daily-date-nav__center:hover{transform:translateY(-1px);border-color:var(--color-border-hover);background:linear-gradient(180deg,#ffffff17,#fff0),var(--color-surface-hover)}.daily-date-nav__arrow:disabled{cursor:not-allowed;opacity:.5}.daily-calendar-modal{position:fixed;top:65px;right:0;bottom:0;left:0;z-index:220}.daily-calendar-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;margin:0;padding:0;background:#080a14d1;backdrop-filter:none;-webkit-backdrop-filter:none}.daily-calendar-modal__panel{position:relative;width:min(92vw,430px);margin:24px auto 0;padding:16px;border:1px solid var(--color-border);border-radius:16px;background:#1a1a2e;box-shadow:var(--shadow-board);display:flex;flex-direction:column;gap:10px}.daily-calendar-modal__head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px}.daily-calendar-modal__month-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface-active);color:var(--color-text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.daily-calendar-modal__month-btn:disabled{opacity:.45;cursor:not-allowed}.daily-calendar-modal__month-title{text-align:center;font-size:1rem;font-weight:600;text-transform:capitalize}.daily-calendar-modal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;color:var(--color-text-secondary);font-size:.78rem;font-weight:600;text-align:center}.daily-calendar-modal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.daily-calendar-modal__empty{height:34px}.daily-calendar-day{height:34px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-surface-active);color:var(--color-text-tertiary);font-weight:600;cursor:not-allowed}.daily-calendar-day.is-available{color:var(--color-text-primary);border-color:var(--color-border-hover);cursor:pointer}.daily-calendar-day.is-available:hover{background:var(--color-surface-hover)}.daily-calendar-day.is-selected{border-color:#3b82f6cc;box-shadow:0 0 0 2px #3b82f633 inset;background:#3b82f633}.daily-calendar-modal__meta{color:var(--color-text-secondary);font-size:.82rem;text-align:center;padding-top:4px}.daily-calendar-modal__meta--error{color:var(--color-warning)}@media(max-width:900px){.daily-date-nav{width:100%;min-width:0;grid-template-columns:56px 1fr 56px;gap:8px}.daily-date-nav__arrow,.daily-date-nav__center{min-height:58px}.daily-date-nav__label{font-size:clamp(.92rem,4vw,1.2rem)}}.custom-puzzle-page-container{padding:2rem 2.5rem 2rem 2rem}.custom-puzzle-layout{display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:.9rem;width:100%;align-items:flex-start}.custom-puzzle-player{min-width:0;width:100%}.custom-puzzle-player .puzzle-content{justify-content:flex-start;grid-template-columns:1fr;gap:0;transform:none}.custom-puzzle-player .puzzle-board-column{align-items:flex-start}[data-theme=dark]{--puzzle-filter-panel-bg: linear-gradient(180deg, rgba(59, 130, 246, .08), rgba(15, 23, 42, .18));--puzzle-filter-icon-bg: rgba(59, 130, 246, .12);--puzzle-filter-icon-border: rgba(59, 130, 246, .24);--puzzle-filter-icon-color: #93c5fd;--puzzle-filter-rating-track: rgba(148, 163, 184, .2);--puzzle-filter-rating-range: linear-gradient(90deg, #60a5fa, #2563eb);--puzzle-filter-rating-range-shadow: 0 0 12px rgba(37, 99, 235, .22);--puzzle-filter-rating-thumb-border: rgba(191, 219, 254, .9);--puzzle-filter-rating-thumb-bg: #1d4ed8;--puzzle-filter-rating-thumb-shadow: 0 0 0 3px rgba(37, 99, 235, .18);--puzzle-filter-theme-hover-border: rgba(59, 130, 246, .45);--puzzle-filter-theme-selected-border: rgba(59, 130, 246, .55);--puzzle-filter-theme-selected-bg: rgba(59, 130, 246, .14);--puzzle-filter-theme-selected-color: #bfdbfe;--puzzle-filter-theme-icon-bg: rgba(15, 23, 42, .45)}[data-theme=light]{--puzzle-filter-panel-bg: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(226, 238, 252, .92));--puzzle-filter-icon-bg: rgba(37, 99, 235, .1);--puzzle-filter-icon-border: rgba(37, 99, 235, .18);--puzzle-filter-icon-color: #1d4ed8;--puzzle-filter-rating-track: rgba(148, 163, 184, .32);--puzzle-filter-rating-range: linear-gradient(90deg, #3b82f6, #1d4ed8);--puzzle-filter-rating-range-shadow: 0 0 12px rgba(37, 99, 235, .16);--puzzle-filter-rating-thumb-border: rgba(255, 255, 255, .95);--puzzle-filter-rating-thumb-bg: #2563eb;--puzzle-filter-rating-thumb-shadow: 0 0 0 3px rgba(37, 99, 235, .12);--puzzle-filter-theme-hover-border: rgba(37, 99, 235, .35);--puzzle-filter-theme-selected-border: rgba(37, 99, 235, .42);--puzzle-filter-theme-selected-bg: rgba(37, 99, 235, .12);--puzzle-filter-theme-selected-color: #1d4ed8;--puzzle-filter-theme-icon-bg: rgba(37, 99, 235, .08)}.puzzle-filter-panel{background:var(--puzzle-filter-panel-bg);border:1px solid var(--color-border);border-radius:18px;box-shadow:var(--shadow-board);padding:1.4rem;display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0}.puzzle-filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.puzzle-filter-toggle{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.45rem .7rem;border-radius:11px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.78rem;font-weight:700}.puzzle-filter-toggle-label{letter-spacing:.02em}.puzzle-filter-eyebrow{margin:0 0 .25rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.puzzle-filter-title{margin:0;font-size:1.4rem;color:var(--color-text-primary)}.puzzle-filter-icon{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--puzzle-filter-icon-bg);color:var(--puzzle-filter-icon-color);border:1px solid var(--puzzle-filter-icon-border)}.puzzle-filter-section{display:flex;flex-direction:column;gap:.9rem;padding-top:1rem;border-top:1px solid var(--color-border)}.puzzle-filter-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.puzzle-filter-label{font-size:.95rem;font-weight:600;color:var(--color-text-primary)}.puzzle-filter-value{font-size:.85rem;color:var(--color-accent);font-weight:600}.puzzle-filter-range-group{display:flex;flex-direction:column;gap:.45rem}.puzzle-filter-range-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:600}.puzzle-filter-range-group input[type=range]{width:100%;accent-color:#3b82f6}.puzzle-rating-bar{position:relative;height:28px;display:flex;align-items:center}.puzzle-rating-bar-track,.puzzle-rating-bar-range{position:absolute;left:0;right:0;height:6px;border-radius:999px}.puzzle-rating-bar-track{background:var(--puzzle-filter-rating-track)}.puzzle-rating-bar-range{background:var(--puzzle-filter-rating-range);box-shadow:var(--puzzle-filter-rating-range-shadow)}.puzzle-rating-bar-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;pointer-events:none}.puzzle-rating-bar-input::-webkit-slider-runnable-track{height:6px;background:transparent}.puzzle-rating-bar-input::-moz-range-track{height:6px;background:transparent}.puzzle-rating-bar-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--puzzle-filter-rating-thumb-border);background:var(--puzzle-filter-rating-thumb-bg);box-shadow:var(--puzzle-filter-rating-thumb-shadow);margin-top:-6px;cursor:pointer;pointer-events:auto}.puzzle-rating-bar-input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:2px solid var(--puzzle-filter-rating-thumb-border);background:var(--puzzle-filter-rating-thumb-bg);box-shadow:var(--puzzle-filter-rating-thumb-shadow);cursor:pointer;pointer-events:auto}.puzzle-rating-bar-value{display:flex;flex-direction:column;gap:.15rem;color:var(--color-text-primary)}.puzzle-rating-bar-value strong{font-size:1rem}.puzzle-rating-bar-value--right{align-items:flex-end;text-align:right}.puzzle-filter-theme-list{display:flex;flex-wrap:wrap;gap:.65rem}.puzzle-theme-option{display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);border-radius:14px;width:56px;height:56px;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.puzzle-theme-option:hover{transform:translateY(-1px);border-color:var(--puzzle-filter-theme-hover-border);color:var(--color-text-primary)}.puzzle-theme-option.selected{border-color:var(--puzzle-filter-theme-selected-border);background:var(--puzzle-filter-theme-selected-bg);color:var(--puzzle-filter-theme-selected-color)}.puzzle-theme-option-icon{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--puzzle-filter-theme-icon-bg);color:inherit}.puzzle-filter-actions{display:flex;flex-direction:column;gap:.75rem}.puzzle-filter-summary{display:grid;gap:.55rem}.puzzle-filter-summary-pill{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-radius:12px;background:#ffffff0a;border:1px solid var(--color-border)}.puzzle-filter-summary-pill span{color:var(--color-text-secondary);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.puzzle-filter-summary-pill strong{color:var(--color-text-primary);font-size:.84rem;font-weight:700;text-align:right}.puzzle-filter-summary-pill.is-dirty{border-color:#3b82f647;background:#3b82f614}.puzzle-toast{position:fixed;top:88px;right:24px;z-index:120;display:inline-flex;align-items:center;gap:.65rem;max-width:min(360px,calc(100vw - 32px));border:1px solid rgba(239,68,68,.28);background:#7f1d1deb;color:#fee2e2;border-radius:14px;padding:.9rem 1rem;font-size:.92rem;font-weight:600;box-shadow:0 18px 40px #00000047;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:puzzleToastIn .18s ease-out}@keyframes puzzleToastIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.puzzle-filter-btn{border:1px solid var(--color-border);border-radius:12px;padding:.85rem 1rem;font-weight:700;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.puzzle-filter-btn:hover{transform:translateY(-1px)}.puzzle-filter-btn.primary{flex:1;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#93c5fd4d}.puzzle-filter-btn.secondary{background:var(--color-surface);color:var(--color-text-secondary)}.puzzle-filter-btn.secondary:hover{background:var(--color-surface-hover);border-color:var(--puzzle-filter-theme-hover-border);color:var(--color-text-primary)}@media(max-width:1280px){.custom-puzzle-layout{grid-template-columns:1fr;gap:1.25rem}.puzzle-filter-panel{position:static}.custom-puzzle-player .puzzle-content{justify-content:center}}@media(max-width:900px){.custom-puzzle-player{order:1}.puzzle-filter-panel{order:0}.custom-puzzle-page-container,.puzzle-play-container{padding:1rem}.puzzle-play-container--daily{padding:.75rem}.puzzle-content{grid-template-columns:1fr;transform:none}.puzzle-content--daily{display:flex}.puzzle-board-row--with-status{flex-direction:column}.puzzle-status-card--side{width:100%;flex:1 1 auto}.puzzle-status-card{padding:.78rem;gap:.6rem;border-radius:12px}.puzzle-info-row{padding-bottom:.5rem}.puzzle-info-label{font-size:.74rem}.puzzle-info-value{font-size:.88rem}.puzzle-nav-buttons{gap:.3rem}.puzzle-nav-buttons .ctrl-btn--nav{width:28px;height:28px;padding:4px;border-radius:8px}.theme-tag{padding:2px 5px;font-size:.62rem}.puzzle-board-stack,.puzzle-control-bar--board{max-width:100%}.puzzle-filter-actions{flex-direction:column}.puzzle-toast{left:16px;right:16px;top:80px;max-width:none}.custom-puzzle-page-container{padding:1rem .75rem 1.25rem}.custom-puzzle-layout{gap:1rem}.custom-puzzle-player,.custom-puzzle-player .puzzle-content,.puzzle-filter-panel{width:100%}.puzzle-filter-panel{padding:.92rem;border-radius:14px;gap:.75rem}.puzzle-filter-panel.is-collapsed{padding:.8rem .85rem;gap:.65rem}.puzzle-filter-header{align-items:center}.puzzle-filter-title{font-size:1.08rem}.puzzle-filter-theme-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:.5rem}.puzzle-theme-option{width:100%;min-height:52px;height:52px}.puzzle-filter-btn{width:100%;min-height:42px}}@media(max-width:640px){.custom-puzzle-page-container{padding:.9rem .625rem 1rem}.custom-puzzle-layout{gap:.85rem}.puzzle-filter-panel{padding:.82rem;border-radius:12px}.puzzle-filter-panel.is-collapsed{padding:.72rem .78rem}.puzzle-filter-header{gap:.55rem}.puzzle-filter-title{font-size:1rem}.puzzle-filter-section{gap:.62rem;padding-top:.72rem}.puzzle-filter-section-head{flex-direction:column;align-items:flex-start}.puzzle-filter-value{font-size:.78rem}.puzzle-filter-toggle{min-height:32px;padding:.38rem .58rem;border-radius:10px;font-size:.72rem}.puzzle-theme-option{min-height:48px;height:48px;border-radius:10px}.puzzle-theme-option-icon{width:24px;height:24px}.puzzle-toast{top:74px;left:10px;right:10px;padding:.8rem .9rem;font-size:.88rem}}@media(max-width:480px){.custom-puzzle-page-container{padding:.85rem .5rem .9rem}.custom-puzzle-layout{gap:.75rem}.puzzle-filter-panel{padding:.66rem;gap:.56rem}.puzzle-filter-panel.is-collapsed{padding:.62rem;gap:.48rem}.puzzle-filter-header{align-items:flex-start;gap:.42rem}.puzzle-filter-eyebrow{margin-bottom:.12rem;font-size:.62rem;letter-spacing:.07em}.puzzle-filter-icon{width:28px;height:28px;border-radius:8px}.puzzle-filter-title{font-size:.9rem}.puzzle-filter-summary{gap:.42rem}.puzzle-filter-summary-pill{padding:.56rem .62rem;border-radius:10px}.puzzle-filter-summary-pill span{font-size:.64rem}.puzzle-filter-summary-pill strong{font-size:.74rem}.puzzle-filter-section{gap:.5rem;padding-top:.58rem}.puzzle-filter-label{font-size:.8rem}.puzzle-filter-value{font-size:.74rem}.puzzle-rating-bar{height:20px}.puzzle-rating-bar-track,.puzzle-rating-bar-range,.puzzle-rating-bar-input::-webkit-slider-runnable-track,.puzzle-rating-bar-input::-moz-range-track{height:4px}.puzzle-rating-bar-input::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5px}.puzzle-rating-bar-input::-moz-range-thumb{width:14px;height:14px}.puzzle-filter-theme-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.puzzle-theme-option{min-height:40px;height:40px;border-radius:9px}.puzzle-theme-option-icon{width:18px;height:18px}.puzzle-filter-btn{padding:.58rem .72rem;min-height:38px;font-size:.82rem}}.chess-puzzles-page-container{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at center,var(--color-bg-primary) 0%,var(--color-bg-secondary) 50%,var(--color-bg-tertiary) 100%);color:var(--color-text-primary);font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}.chess-puzzles-content{max-width:1000px;margin:100px auto 40px;padding:20px;display:flex;flex-direction:column;gap:40px}.hero-section{padding:60px 40px;text-align:center;border-radius:var(--radius-xl, 24px);background:var(--color-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);box-shadow:var(--shadow-board, 0 8px 32px 0 rgba(0, 0, 0, .37));display:flex;flex-direction:column;align-items:center;gap:24px}.hero-title{font-size:3.5rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0;letter-spacing:-.02em}.hero-description{font-size:1.25rem;line-height:1.6;color:var(--color-text-secondary);max-width:700px;margin:0}.details-section{display:flex;flex-direction:column;gap:30px}.detail-card{padding:40px;border-radius:var(--radius-lg, 20px);background:var(--color-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);transition:transform var(--transition-normal, .3s) ease,background var(--transition-normal, .3s) ease}.detail-card:hover{transform:translateY(-5px);background:var(--color-surface-hover)}.section-title{font-size:2rem;color:var(--color-text-primary);margin-bottom:20px;display:flex;align-items:center;gap:12px}.section-title:before{content:"";width:4px;height:32px;background:var(--color-accent);border-radius:2px}.section-text{font-size:1.1rem;line-height:1.7;color:var(--color-text-secondary);margin:0}.benefits-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.benefits-list li{font-size:1.1rem;color:var(--color-text-secondary);display:flex;align-items:flex-start;gap:12px;line-height:1.5}.benefits-list li:before{content:"✓";color:var(--color-accent);font-weight:700;font-size:1.2rem;flex-shrink:0}.cta-btn{padding:16px 36px;font-size:1.1rem;font-weight:600;border-radius:var(--radius-lg, 12px);border:none;cursor:pointer;transition:all var(--transition-normal, .3s) cubic-bezier(.4,0,.2,1);text-transform:uppercase;letter-spacing:.05em}.primary-cta{background:var(--color-accent);color:#fff;box-shadow:0 4px 15px #e945604d}[data-theme=light] .primary-cta{box-shadow:0 4px 15px #e9456033}.primary-cta:hover{transform:scale(1.05);background:var(--color-accent-hover);box-shadow:0 6px 20px #e9456066;filter:brightness(1.1)}[data-theme=light] .primary-cta:hover{box-shadow:0 6px 20px #e945604d}.secondary-cta{background:transparent;border:2px solid var(--color-accent);color:var(--color-accent)}.secondary-cta:hover{background:var(--color-accent);color:#fff;box-shadow:0 4px 15px #e945604d}.bottom-cta-container{display:flex;justify-content:center;margin-top:20px}.footer-simple{width:100%;margin-top:auto;padding:40px 0;text-align:center;border-top:1px solid var(--color-border)}.footer-simple p{color:var(--color-text-tertiary);font-size:.9rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .8s ease-out forwards}@media(max-width:768px){.hero-title{font-size:2.5rem}.hero-description{font-size:1.1rem}.section-title{font-size:1.6rem}}.analysis-bar{width:34px;--analysis-bar-motion-ms: 1.02s;--analysis-bar-motion-ease: cubic-bezier(.2, .7, .2, 1);display:flex;flex-direction:column;align-items:stretch;background:#0b0b0b;border:2px solid #1f1f1f;border-radius:15px;box-shadow:var(--shadow-board);overflow:visible;position:relative}.analysis-bar__header{font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:#bdbdbd;text-align:center;padding:5px 4px 3px;border-bottom:1px solid #1f1f1f;background:#111;font-weight:700}.analysis-bar__body{flex:1;display:flex;flex-direction:column;padding:0;background:#0b0b0b;position:relative;overflow:hidden;border-radius:15px}.analysis-bar__fill{position:absolute;left:0;right:0;top:0;bottom:0;height:100%;background:#f2f2f2;border-top:1px solid #d4d4d4;border-bottom:1px solid #d4d4d4;box-sizing:border-box;transform:scaleY(.5);transition:transform var(--analysis-bar-motion-ms) var(--analysis-bar-motion-ease);will-change:transform}.analysis-bar__midline{position:absolute;left:0;right:0;top:50%;height:1px;background:#2a2a2a;opacity:.8}.analysis-bar__score-float{position:absolute;top:50%;left:-54px;transform:translateY(-50%);font-size:.7rem;font-weight:700;color:#d4d4d4;font-family:monospace;background:#111111e6;border:1px solid #1f1f1f;border-radius:999px;padding:3px 8px;box-shadow:var(--shadow-board);pointer-events:none;z-index:50;transition:top var(--analysis-bar-motion-ms) var(--analysis-bar-motion-ease);will-change:top}@media(max-width:900px){.analysis-bar{display:none}}.chess-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0006;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.chess-modal-overlay.is-entering{opacity:1;visibility:visible}.chess-modal-overlay.is-entering .chess-modal-content{opacity:1;transform:scale(1) translateY(0)}.chess-modal-overlay.is-closing{opacity:0;visibility:hidden}.chess-modal-overlay.is-closing .chess-modal-content{opacity:0;transform:scale(.95) translateY(10px)}.chess-modal-content{position:relative;width:100%;max-height:90vh;display:flex;flex-direction:column;background:#000;border-radius:20px;box-shadow:0 24px 48px #0009;border:1px solid rgba(255,255,255,.08);opacity:0;transform:scale(.95) translateY(10px);transition:opacity .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.chess-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.chess-modal-title{margin:0;font-size:1.25rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text-primary, #ffffff)}.chess-modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary, #a1a1aa);cursor:pointer;transition:background-color .2s,color .2s}.chess-modal-close:hover{background:#ffffff1a;color:var(--color-text-primary, #ffffff)}.chess-modal-body{padding:1rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.chess-modal-body::-webkit-scrollbar{width:6px}.chess-modal-body::-webkit-scrollbar-track{background:transparent}.chess-modal-body::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:10px}@media(max-width:640px){.chess-modal-overlay{padding:0;align-items:flex-end}.chess-modal-content{max-height:85vh;border-radius:24px 24px 0 0;transform:translateY(100%)}.chess-modal-overlay.is-entering .chess-modal-content{transform:translateY(0)}.chess-modal-overlay.is-closing .chess-modal-content{transform:translateY(100%)}}.lab-profile-shell{width:100%;max-width:1250px;margin:0 auto;padding-inline:clamp(.75rem,2vw,1rem);display:flex;flex-direction:column;gap:1.5rem;color:var(--color-text-primary)}.lab-profile-search-panel,.lab-profile-header-card,.lab-profile-section,.lab-profile-opening-section,.lab-profile-chart-card,.lab-profile-dna-card,.lab-profile-empty-state,.lab-profile-feedback,.lab-profile-stat-card{position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--color-surface);box-shadow:0 8px 24px #0000001f}.lab-profile-search-panel:before,.lab-profile-opening-section:before,.lab-profile-chart-card:before,.lab-profile-dna-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at top right,rgba(212,175,55,.12),transparent 28%),radial-gradient(circle at bottom left,rgba(255,71,87,.12),transparent 30%);opacity:.95}.lab-profile-chart-card:before{background:radial-gradient(circle at top right,rgba(255,71,87,.08),transparent 30%),radial-gradient(circle at bottom left,rgba(255,255,255,.03),transparent 34%);opacity:.5}.lab-profile-search-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.95fr);align-items:center;gap:1.5rem;padding:1.6rem 1.75rem}.lab-profile-search-copy,.lab-profile-search-form,.lab-profile-header-copy,.lab-profile-header-actions,.lab-profile-section-head,.lab-profile-opening-copy,.lab-profile-opening-tools,.lab-profile-chart-stage,.lab-profile-dna-list{position:relative;z-index:1}.lab-profile-kicker{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .78rem;border-radius:999px;background:var(--color-premium-bg);color:var(--color-premium);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-profile-search-copy h1{margin:.7rem 0 .55rem;font-size:clamp(2rem,3vw,2.7rem);line-height:1.04;letter-spacing:-.04em;font-weight:800}.lab-profile-search-copy p,.lab-profile-empty-state p,.lab-profile-opening-copy p{color:var(--color-text-secondary);font-size:.96rem;line-height:1.65}.lab-profile-search-form{display:flex;flex-direction:column;gap:.85rem}.lab-profile-search-input{position:relative;display:flex;align-items:center;gap:.75rem;min-height:58px;padding:0 1rem 0 1.05rem;border-radius:16px;background:#00000038;color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px #ffffff0f;isolation:isolate}.lab-profile-search-input:focus-within{box-shadow:inset 0 0 0 1px #ff475799,0 0 0 4px #ff475714}.lab-profile-search-input input{width:100%;border:0;outline:0;background:transparent;color:var(--color-text-primary);font-size:1rem;font-weight:600}.lab-profile-search-input input::placeholder{color:var(--color-text-tertiary)}.lab-profile-search-actions{display:flex;justify-content:flex-end;gap:.75rem}.lab-profile-submit,.lab-profile-clear,.lab-profile-action-primary,.lab-profile-action-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:0 1rem;border-radius:12px;font-weight:700;transition:transform var(--transition-fast),background var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal)}.lab-profile-action-primary,.lab-profile-action-secondary{min-height:36px;padding:.4rem .85rem;font-size:.85rem;border-radius:10px}.lab-profile-submit{min-width:132px;background:var(--gradient-primary);color:#fff;box-shadow:0 12px 30px #ff475740}.lab-profile-submit:hover:not(:disabled),.lab-profile-clear:hover:not(:disabled),.lab-profile-action-primary:hover,.lab-profile-action-secondary:hover{transform:translateY(-1px)}.lab-profile-clear,.lab-profile-action-secondary{background:#ffffff0a;color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px #ffffff14}.lab-profile-submit:disabled,.lab-profile-clear:disabled{cursor:not-allowed;opacity:.72;transform:none}.lab-profile-shell{gap:1.25rem}.lab-profile-control-bar{position:relative;z-index:120;padding-bottom:.85rem}.lab-profile-control-form{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;min-height:72px;padding:.7rem .95rem;border-radius:22px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff05),var(--color-surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px #ffffff0f,0 10px 24px #0000001f;transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.lab-profile-control-title{color:var(--color-text-secondary);font-size:.95rem;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.lab-profile-empty-state p{color:var(--color-text-secondary);font-size:.96rem;line-height:1.65}.lab-profile-search-input{gap:.7rem;min-height:50px;padding:0 .8rem 0 1rem;border-radius:999px;background:#0000003d;transition:box-shadow var(--transition-normal),background var(--transition-normal)}.lab-profile-search-input>*{position:relative;z-index:1}.lab-profile-search-input.is-loading:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:2px;border-radius:inherit;background:linear-gradient(110deg,#ff4757e6,#f1c40ff2,#5b8cfff2 36%,#b678ffeb,#5b8cfff2,#f1c40ff2,#ff4757e6);background-size:240% 100%;background-position:0% 50%;pointer-events:none;z-index:0;filter:saturate(1.08) brightness(1.02);box-shadow:0 0 12px #5b8cff1f;animation:lab-profile-rgb-flow 3.2s ease-in-out infinite alternate;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}[data-theme=light] .lab-profile-search-input{background:#0f172a0d}.lab-profile-search-input.is-analyzed{box-shadow:inset 0 0 0 1px #4ade8047,0 0 0 3px #4ade800f}.lab-profile-search-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);flex-shrink:0}.lab-profile-search-input input{min-width:0;font-size:.98rem}.lab-profile-search-tail{display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0}.lab-profile-search-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .62rem;border-radius:999px;background:#4ade801f;color:var(--color-success);font-size:.74rem;font-weight:700;white-space:nowrap}.lab-profile-input-clear{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--color-text-tertiary);background:#ffffff0d;opacity:0;transform:scale(.92);pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast),background var(--transition-normal),color var(--transition-normal)}.lab-profile-search-input:hover .lab-profile-input-clear,.lab-profile-search-input:focus-within .lab-profile-input-clear{opacity:1;transform:scale(1);pointer-events:auto}.lab-profile-input-clear:hover:not(:disabled){background:#ffffff1a;color:var(--color-text-primary)}.lab-profile-submit{background:linear-gradient(135deg,#ff4757f5,#ff4757d6);box-shadow:0 12px 26px #ff47572e}.lab-profile-control-submit{min-width:156px}.lab-profile-control-submit:hover:not(:disabled){transform:translateY(-1px) scale(1.01);box-shadow:0 16px 30px #ff47573d}.lab-profile-input-clear:disabled{cursor:not-allowed;opacity:.4;transform:none}.lab-profile-feedback,.lab-profile-empty-state,.lab-profile-feedback-error{color:var(--color-danger);background:var(--color-danger-bg)}.lab-profile-empty-state h2{margin-bottom:.35rem;font-size:1.25rem}.lab-profile-results{position:relative;display:flex;flex-direction:column;gap:1.2rem;transform-origin:top center}.lab-profile-intro-hero-label{color:var(--color-text-tertiary);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lab-profile-intro-hero-top strong{font-size:1.15rem;line-height:1.15;letter-spacing:-.03em}.lab-profile-intro-ai-preview{display:grid;gap:.55rem;padding:.85rem .95rem;border-radius:14px;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff14}.lab-profile-intro-ai-preview p{margin:0;font-size:.92rem;color:var(--color-text-secondary);line-height:1.45}.lab-profile-intro-ai-preview p span{color:var(--color-text-primary);font-weight:700}.lab-profile-intro-ai-footnote{margin-top:.75rem;color:var(--color-text-tertiary);font-size:.78rem;line-height:1.45}.lab-profile-intro-metrics,.lab-profile-intro-flow-list{display:grid;gap:.72rem}.lab-profile-intro-metric,.lab-profile-intro-flow-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:start}.lab-profile-intro-metric-icon,.lab-profile-intro-flow-item i{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#ffffff14;color:var(--color-text-primary);flex-shrink:0}.lab-profile-intro-flow-item i{font-style:normal;font-weight:800;background:linear-gradient(135deg,#ff47573d,#5b8cff38)}.lab-profile-intro-metric div,.lab-profile-intro-flow-item div{display:grid;gap:.18rem}.lab-profile-intro-metric strong,.lab-profile-intro-flow-item strong{font-size:.94rem;line-height:1.2;color:var(--color-text-primary)}.lab-profile-intro-metric span,.lab-profile-intro-flow-item span{color:var(--color-text-secondary);font-size:.86rem;line-height:1.5}.lab-profile-results.is-loading-next{opacity:.52;transform:translateY(10px) scale(.992);filter:blur(6px) saturate(.88);pointer-events:none}.lab-profile-results.is-loading-next:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:24px;pointer-events:none;background:linear-gradient(110deg,transparent 0%,rgba(241,196,15,.04) 24%,rgba(91,140,255,.1) 50%,rgba(182,120,255,.05) 76%,transparent 100%);animation:lab-profile-results-sweep 1.4s linear infinite}.lab-profile-results.is-revealing{animation:lab-profile-results-reveal .72s cubic-bezier(.22,1,.36,1)}.lab-profile-header-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.2rem;padding:1rem 1.25rem}.lab-profile-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:1.2rem;font-weight:800;letter-spacing:-.04em;color:var(--color-text-primary);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.14),transparent 45%),linear-gradient(145deg,#ffffff14,#ffffff08);box-shadow:inset 0 0 0 1px #ffffff14,0 8px 16px #0000001f}.lab-profile-header-copy{min-width:0}.lab-profile-header-line{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}.lab-profile-header-line h2{font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.1;letter-spacing:-.04em;font-weight:800}.lab-profile-player-badge{padding:.25rem .6rem;border-radius:999px;background:#ff47571a;color:var(--color-accent-hover);font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.35rem}.lab-profile-player-badge.is-icon-only{padding:0;width:24px;height:24px;justify-content:center;background:var(--lab-badge-soft, rgba(255, 71, 87, .1));color:var(--lab-badge-accent, var(--color-accent-hover))}.lab-profile-meta-row{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.85rem;color:var(--color-text-secondary);font-size:.8rem}.lab-profile-header-actions{display:flex;align-items:center;gap:.7rem}.lab-profile-action-primary{background:#ffffff0d;color:var(--color-text-primary);box-shadow:inset 0 0 0 1px #ffffff14}.lab-profile-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem}.lab-profile-stat-card{min-height:110px;padding:.85rem 1rem;display:flex;flex-direction:column;justify-content:space-between}.lab-profile-stat-card:after{content:"";position:absolute;inset:auto 0 0 0;height:2px;opacity:.5}.lab-profile-stat-card.is-neutral:after{background:linear-gradient(90deg,rgba(255,255,255,.15),transparent)}.lab-profile-stat-card.is-success:after{background:linear-gradient(90deg,rgba(74,222,128,.5),transparent)}.lab-profile-stat-card.is-premium:after{background:linear-gradient(90deg,rgba(212,175,55,.5),transparent)}.lab-profile-stat-card.is-danger:after{background:linear-gradient(90deg,rgba(239,68,68,.5),transparent)}.lab-profile-stat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.lab-profile-stat-icon{color:var(--color-text-tertiary)}.lab-profile-stat-eyebrow{color:var(--color-text-tertiary);font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lab-profile-stat-value{font-size:clamp(1.4rem,2vw,2rem);line-height:1;font-weight:800;letter-spacing:-.04em}.lab-profile-stat-label{color:var(--color-text-secondary);font-size:.82rem;font-weight:600;opacity:.7}.lab-profile-section,.lab-profile-opening-section,.lab-profile-chart-card,.lab-profile-dna-card{padding:1.25rem}.lab-profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.lab-profile-section-head h3{display:inline-flex;align-items:center;gap:.75rem;font-size:1.5rem;line-height:1.1;letter-spacing:-.03em;font-weight:800}.lab-profile-section-accent{width:52px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--color-accent),transparent)}.lab-profile-section-pills{display:inline-flex;align-items:center;gap:.45rem}.lab-profile-section-pills span{padding:.38rem .7rem;border-radius:10px;background:#ffffff0a;color:var(--color-text-tertiary);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lab-profile-section-pills .is-active{color:var(--color-text-primary);background:#ffffff14}.lab-profile-analytics-row{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:stretch}.lab-profile-rating-side{width:440px;flex-shrink:0;display:flex}.lab-profile-rating-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:.65rem;flex:1}.lab-profile-radar-mini-card{position:relative;padding:1.1rem 1.75rem;border-radius:16px;background:#ffffff05;box-shadow:inset 0 0 0 1px #ffffff0a;display:flex;flex-direction:column;height:100%}.lab-profile-radar-mini-head{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.lab-profile-radar-mini-head h4{font-size:.9rem;font-weight:800;color:var(--color-text-secondary)}.lab-profile-radar-mini-insights{display:flex;gap:.5rem}.lab-profile-radar-mini-insights span{font-size:.72rem;font-weight:700;color:var(--color-success)}.lab-profile-radar-stage.mini{flex:1;display:flex;align-items:center;justify-content:center;padding-top:0}.lab-profile-radar-stage.mini .lab-profile-radar-svg{width:min(100%,340px)}.lab-profile-radar-stage.mini .lab-profile-radar-label{font-size:12px}.lab-profile-dna-card.full{grid-column:1 / -1}.lab-rating-card{position:relative;overflow:hidden;border-radius:12px;padding:.75rem .85rem;background:linear-gradient(180deg,#ffffff0a,#ffffff05),var(--color-surface);box-shadow:inset 1px 0 0 var(--lab-accent),0 4px 12px #00000014}.lab-rating-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--lab-accent-soft),transparent 45%);opacity:.8;pointer-events:none}.lab-rating-card-head,.lab-rating-card-body,.lab-rating-card-footer{position:relative;z-index:1}.lab-rating-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1.45rem}.lab-rating-card-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:10px;background:var(--lab-accent-soft);color:var(--lab-accent)}.lab-rating-card-progress{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.lab-rating-card-progress strong{font-size:.78rem}.lab-rating-card-progress span{color:var(--color-text-tertiary);font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lab-rating-card-body{display:flex;flex-direction:column;gap:.18rem}.lab-rating-card-body strong{font-size:clamp(1.6rem,1.8vw,1.85rem);line-height:1;letter-spacing:-.04em;font-weight:800}.lab-rating-card-body span{color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.lab-rating-card-results{margin-top:.85rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;min-width:0}.lab-rating-card-result{padding:.42rem .38rem;border-radius:10px;background:#ffffff0a;display:flex;flex-direction:column;gap:.16rem;min-width:0}.lab-rating-card-result span{color:var(--color-text-tertiary);font-size:.45rem;font-weight:800;letter-spacing:.01em;text-transform:uppercase;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip}.lab-rating-card-result strong{font-size:.82rem;line-height:1;font-weight:800}.lab-rating-card-result.is-win strong{color:#7ef0b1}.lab-rating-card-result.is-draw strong{color:#ffd98b}.lab-rating-card-result.is-loss strong{color:#ff8d8d}.lab-rating-card-footer{margin-top:.8rem}.lab-rating-card-bar{width:100%;height:3px;border-radius:999px;background:#ffffff14;overflow:hidden}.lab-rating-card-bar:after{content:"";display:block;width:var(--lab-fill-width);height:100%;border-radius:inherit;background:var(--lab-accent);box-shadow:0 0 4px var(--lab-accent-glow)}.lab-rating-card-meta{margin-top:.65rem;display:flex;justify-content:space-between;gap:.75rem;color:var(--color-text-secondary);font-size:.76rem;font-weight:600}.lab-profile-bento-grid{display:grid;grid-template-columns:minmax(0,65fr) minmax(300px,35fr);gap:1rem}.lab-profile-opening-head{align-items:flex-start}.lab-profile-opening-tools{display:flex;flex-direction:column;align-items:flex-end;gap:.85rem}.lab-profile-opening-filters{display:inline-flex;align-items:center;gap:.55rem;padding:.35rem;border-radius:14px;background:#ffffff0a}.lab-profile-opening-filter{min-height:36px;padding:0 .9rem;border-radius:10px;color:var(--color-text-secondary);font-size:.84rem;font-weight:700;transition:background var(--transition-normal),color var(--transition-normal),transform var(--transition-fast)}.lab-profile-opening-filter:hover{color:var(--color-text-primary)}.lab-profile-opening-filter.is-active{background:#ffffff14;color:var(--color-text-primary);box-shadow:inset 0 0 0 1px #ffffff0f}.lab-profile-opening-limit{display:inline-flex;align-items:center;gap:.7rem;padding:.42rem .5rem .42rem .8rem;border-radius:12px;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff0d;color:var(--color-text-secondary)}.lab-profile-opening-limit span{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary)}.lab-profile-opening-limit input{width:72px;min-height:36px;padding:0 .75rem;border:0;outline:0;border-radius:10px;background:#0000002e;color:var(--color-text-primary);font-size:.9rem;font-weight:700;text-align:center;box-shadow:inset 0 0 0 1px #ffffff0f}[data-theme=light] .lab-profile-opening-limit input{background:#0f172a0d}.lab-profile-opening-limit input:focus{box-shadow:inset 0 0 0 1px #ff475780,0 0 0 3px #ff475714}.lab-profile-opening-table{position:relative;z-index:1;overflow:hidden;border-radius:14px;background:#ffffff08}.lab-profile-opening-table-head,.lab-profile-opening-row{display:grid;grid-template-columns:44px minmax(0,1fr) 110px 140px;align-items:center;gap:1rem;padding:.75rem 1.1rem}.lab-profile-opening-table-head{color:var(--color-text-tertiary);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.05)}.lab-profile-opening-row{border-top:1px solid rgba(255,255,255,.03);transition:background var(--transition-normal),transform var(--transition-fast),box-shadow var(--transition-normal)}.lab-profile-opening-row:hover{background:#ffffff0a;box-shadow:0 4px 12px #0000001a;z-index:2}.lab-profile-opening-rank{font-size:.9rem;font-weight:800;color:var(--color-text-tertiary)}.lab-profile-opening-main{min-width:0}.lab-profile-opening-name-group{display:flex;align-items:center;gap:1rem}.lab-profile-opening-name-group strong{font-size:.98rem;font-weight:700;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-profile-opening-stats-minimal{display:flex;align-items:center;gap:.55rem}.stat-pill{display:flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:6px;background:#ffffff08;font-size:.78rem;font-weight:700;color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast)}.stat-pill svg{opacity:.7}.stat-pill.is-win{color:var(--color-success);background:#4ade800f}.stat-pill.is-draw{color:var(--color-text-tertiary);background:#ffffff0a}.stat-pill.is-loss{color:#f87171;background:#ef44440f}.stat-pill:hover{background:#ffffff14}.stat-pill.is-win:hover{background:#4ade801a}.stat-pill.is-loss:hover{background:#ef44441a}.lab-profile-opening-count{display:flex;flex-direction:column;gap:.1rem}.lab-profile-opening-count strong{font-size:.95rem;font-weight:800;color:var(--color-text-primary)}.lab-profile-opening-count span{font-size:.72rem;font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase}.lab-profile-opening-rate-cell{display:flex;flex-direction:column;gap:.4rem}.lab-profile-opening-rate{font-size:1rem;font-weight:800}.lab-profile-opening-rate.is-success{color:var(--color-success)}.lab-profile-opening-rate.is-warning{color:#facc15}.lab-profile-opening-rate.is-danger{color:#f87171}.lab-profile-opening-rate-bar{width:100%;height:4px;border-radius:999px;background:#ffffff0f;overflow:hidden}.lab-profile-opening-rate-fill{height:100%;border-radius:inherit;background:var(--color-accent)}.lab-profile-opening-rate-fill.is-success{background:linear-gradient(90deg,#4ade80,#22c55e);box-shadow:0 0 8px #4ade804d}.lab-profile-opening-rate-fill.is-warning{background:linear-gradient(90deg,#fde047,#eab308);box-shadow:0 0 8px #eab3084d}.lab-profile-opening-rate-fill.is-danger{background:linear-gradient(90deg,#f87171,#ef4444);box-shadow:0 0 8px #ef44444d}.lab-profile-opening-feedback{position:relative;z-index:1;padding:1rem 1.1rem;border-radius:16px;background:#ffffff0a;color:var(--color-text-secondary)}.lab-profile-opening-feedback.is-error{color:var(--color-danger);background:var(--color-danger-bg)}.lab-skeleton-block{display:inline-flex;height:14px;border-radius:999px;background:linear-gradient(90deg,#ffffff0f,#ffffff24,#ffffff0f);background-size:200% 100%;animation:lab-profile-shimmer 1.2s linear infinite}.lab-skeleton-block.short{width:52px}.lab-skeleton-block.long{width:min(360px,92%)}.lab-profile-opening-row.is-skeleton:hover{background:transparent}.lab-profile-chart-legend{display:inline-flex;align-items:center;gap:.9rem;color:var(--color-text-secondary);font-size:.76rem;font-weight:700}.lab-profile-chart-legend span{display:inline-flex;align-items:center;gap:.38rem}.lab-profile-chart-legend i{width:9px;height:9px;display:inline-block;border-radius:50%}.lab-profile-chart-legend .is-rating{background:var(--color-accent)}.lab-profile-chart-legend .is-volume{background:#ffffff38}.lab-profile-chart-stage{position:relative;min-height:220px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:.75rem;padding-top:1rem}.lab-profile-chart-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;background:linear-gradient(180deg,rgba(255,71,87,.06),transparent 30%),repeating-linear-gradient(to top,rgba(255,255,255,.045) 0,rgba(255,255,255,.045) 1px,transparent 1px,transparent 64px);pointer-events:none}.lab-profile-chart-column{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.55rem}.lab-profile-chart-bars{position:relative;width:100%;height:165px;display:flex;align-items:flex-end;justify-content:center}.lab-profile-chart-volume,.lab-profile-chart-rating{position:absolute;bottom:0;width:min(58px,100%);border-radius:10px 10px 0 0}.lab-profile-chart-volume{opacity:.72}.lab-profile-chart-rating{width:min(38px,calc(100% - 18px))}.lab-profile-chart-label{font-size:.84rem;font-weight:700;color:var(--color-text-secondary)}.lab-profile-chart-value{font-size:.94rem;font-weight:800}.lab-profile-radar-head{display:flex;flex-direction:column;gap:.32rem}.lab-profile-radar-head p{color:var(--color-text-secondary);font-size:.82rem;line-height:1.45}.lab-profile-radar-insights{display:flex;flex-wrap:wrap;gap:.55rem .75rem;margin-top:-.15rem;margin-bottom:.2rem}.lab-profile-radar-insights span{display:inline-flex;align-items:center;gap:.3rem;padding:.38rem .7rem;border-radius:999px;font-size:.74rem;font-weight:700}.lab-profile-radar-insights strong{color:var(--color-text-primary)}.lab-profile-radar-insights .is-strong{background:#4ade801f;color:var(--color-success)}.lab-profile-radar-insights .is-weak{background:#ffffff0d;color:var(--color-text-secondary)}.lab-profile-radar-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:320px;padding:.15rem 0 .1rem}.lab-profile-radar-svg{width:min(100%,360px);aspect-ratio:1;overflow:visible}.lab-profile-radar-grid{fill:none;stroke:#ffffff1f;stroke-width:1}.lab-profile-radar-axis{stroke:#ffffff24;stroke-width:1}.lab-profile-radar-area{fill:url(#lab-profile-radar-fill)}.lab-profile-radar-line{fill:none;stroke:var(--lab-radar-primary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.lab-profile-radar-point-hit{fill:transparent;cursor:pointer}.lab-profile-radar-point{fill:var(--lab-radar-primary);stroke:#070a14e6;stroke-width:1.8;transition:r var(--transition-fast)}[data-theme=light] .lab-profile-radar-point{stroke:#ffffffeb}.lab-profile-radar-point.is-strongest{fill:var(--lab-radar-highlight);filter:drop-shadow(0 0 10px rgba(255,107,138,.28))}.lab-profile-radar-label{fill:var(--color-text-secondary);font-size:13px;font-weight:600;letter-spacing:-.01em}.lab-profile-radar-label.is-muted{fill:var(--color-text-tertiary)}.lab-profile-radar-label.is-strongest{fill:var(--color-text-primary);font-weight:800}.lab-profile-radar-label-note{font-size:11px;font-weight:600;fill:var(--color-text-tertiary)}.lab-profile-radar-tooltip{--radar-tooltip-accent: var(--color-accent);position:absolute;min-width:118px;display:flex;flex-direction:column;gap:.18rem;padding:.7rem .8rem;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0d,#ffffff05),var(--color-surface);box-shadow:inset 0 0 0 1px #ffffff08,0 14px 28px #00000038;pointer-events:none;white-space:nowrap;transform:translate(-50%,calc(-100% - 12px))}.lab-profile-radar-tooltip:before{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:var(--color-surface);border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);transform:translate(-50%) rotate(45deg)}.lab-profile-radar-tooltip:after{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:14px 0 0 14px;background:var(--radar-tooltip-accent)}.lab-profile-radar-tooltip.is-bottom{transform:translate(-50%,12px)}.lab-profile-radar-tooltip.is-bottom:before{top:-7px;bottom:auto;border-right:none;border-bottom:none;border-left:1px solid rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.08)}.lab-profile-radar-tooltip strong{color:var(--color-text-primary);font-size:.82rem;font-weight:800}.lab-profile-radar-tooltip span{color:var(--color-text-secondary);font-size:.74rem;font-weight:600}.lab-profile-dna-card{padding:1rem!important;display:flex;flex-direction:column;gap:.75rem;background:radial-gradient(circle at top right,rgba(212,175,55,.12),transparent 40%),linear-gradient(180deg,#d4af370a,#ffffff03),var(--color-surface);box-shadow:inset 0 0 0 1px #d4af3726,0 8px 24px #0000002e}.lab-profile-dna-top{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.lab-profile-dna-copy{display:flex;flex-direction:column;gap:.35rem}.lab-profile-dna-kicker{display:inline-flex;align-items:center;width:fit-content;padding:.36rem .72rem;border-radius:999px;background:#d4af371f;color:var(--color-premium);font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lab-profile-dna-copy h3{font-size:1.25rem;line-height:1.1;letter-spacing:-.03em;font-weight:800}.lab-profile-dna-copy p{max-width:48ch;color:var(--color-text-secondary);font-size:.85rem;line-height:1.5}.lab-profile-dna-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.lab-profile-dna-preview-card{display:flex;flex-direction:column;gap:.32rem;padding:.9rem .95rem;border-radius:18px;background:linear-gradient(180deg,#ffffff0b,#ffffff05),#ffffff06;border:1px solid rgba(255,255,255,.06);min-height:92px}.lab-profile-dna-preview-card span{color:var(--color-text-secondary);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lab-profile-dna-preview-card strong{color:var(--color-text-primary);font-size:1.08rem;font-weight:800;letter-spacing:-.03em}.lab-profile-dna-preview-card[data-tone=accent] strong{color:var(--color-accent-hover)}.lab-profile-dna-preview-card[data-tone=warning] strong{color:#ffb84d}.lab-profile-dna-preview-card[data-tone=danger] strong{color:#ff7b7b}.lab-profile-dna-preview-card[data-tone=calm] strong{color:#7dd3fc}.lab-profile-dna-preview-card[data-tone=premium] strong{color:var(--color-premium)}.lab-profile-dna-cta{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}.lab-profile-dna-cta-button{width:100%;min-height:52px;font-size:.95rem;letter-spacing:-.01em}.lab-profile-dna-cta-note{color:var(--color-text-secondary);font-size:.8rem;font-weight:700}.lab-profile-dna-inline-error{color:var(--color-danger);font-size:.82rem;font-weight:600}.lab-profile-dna-list{display:flex;flex-direction:column;gap:.65rem}.lab-profile-dna-state,.lab-profile-dna-feedback{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.05rem;border-radius:18px;background:#ffffff09;box-shadow:inset 0 0 0 1px #ffffff0a}.lab-profile-dna-feedback{color:#ff9f9f}.lab-profile-dna-state-head{display:flex;align-items:center;gap:.65rem;font-size:.94rem;font-weight:700}.lab-profile-dna-progress-track{width:100%;height:10px;overflow:hidden;border-radius:999px;background:#ffffff14}.lab-profile-dna-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff4757eb,#5b8cffeb);box-shadow:0 10px 28px #5b8cff38}.lab-profile-dna-progress-meta{color:var(--color-text-secondary);font-size:.82rem;font-weight:600}.lab-profile-dna-progress-steps{display:grid;gap:.55rem}.lab-profile-dna-progress-step{display:flex;align-items:center;gap:.7rem;padding:.7rem .8rem;border-radius:14px;background:#ffffff06;border:1px solid rgba(255,255,255,.04);color:var(--color-text-secondary);font-size:.86rem;font-weight:700}.lab-profile-dna-progress-step i{width:10px;height:10px;border-radius:999px;background:#ffffff2e;box-shadow:0 0 0 4px #ffffff0a}.lab-profile-dna-progress-step.is-done{color:var(--color-text-primary);border-color:#6ae37b2e;background:#6ae37b14}.lab-profile-dna-progress-step.is-done i{background:var(--color-success);box-shadow:0 0 0 4px #6ae37b1f}.lab-profile-dna-progress-step.is-current{color:var(--color-text-primary);border-color:#ff475738;background:#ff475714}.lab-profile-dna-progress-step.is-current i{background:var(--color-accent);box-shadow:0 0 0 4px #ff47571f}.lab-profile-dna-modal-loading{display:flex;flex-direction:column;gap:1rem}.lab-profile-dna-modal-skeleton{display:flex;flex-direction:column;gap:.8rem}.lab-profile-dna-modal-skeleton-header{display:flex;flex-direction:column;gap:.45rem}.lab-profile-dna-modal-skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.lab-profile-dna-modal-skeleton-card{display:flex;flex-direction:column;gap:.55rem;padding:.95rem;border-radius:16px;background:#ffffff06;border:1px solid rgba(255,255,255,.045)}.lab-profile-dna-modal-feedback{align-items:flex-start}.lab-profile-dna-item{display:flex;flex-direction:column;gap:.42rem;padding:.95rem 1rem;border-radius:18px;background:#ffffff09;box-shadow:inset 0 0 0 1px #ffffff0a}.lab-profile-dna-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:var(--color-text-secondary);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lab-profile-dna-head strong{color:var(--color-accent-hover);font-size:1rem;letter-spacing:-.02em}.lab-profile-dna-track{width:100%;height:10px;overflow:hidden;border-radius:999px;background:#ffffff14;box-shadow:inset 0 1px 1px #ffffff08}.lab-profile-dna-fill{height:100%;border-radius:inherit;background:var(--gradient-primary);box-shadow:0 0 12px #ff47572e,0 8px 22px #ff475726}.lab-profile-dna-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.lab-profile-dna-mini-card{display:flex;flex-direction:column;gap:.3rem;padding:.9rem .95rem;border-radius:16px;background:#ffffff08;box-shadow:inset 0 0 0 1px #ffffff09}.lab-profile-dna-mini-card span{color:var(--color-text-secondary);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-profile-dna-mini-card strong{font-size:1.05rem;font-weight:800;letter-spacing:-.03em}.lab-profile-dna-footnote{display:flex;flex-wrap:wrap;gap:.65rem 1rem;color:var(--color-text-secondary);font-size:.82rem;font-weight:600}.is-positive{color:var(--color-success)}.is-negative{color:var(--color-danger)}.lab-profile-spin{animation:lab-profile-spin .9s linear infinite}@keyframes lab-profile-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes lab-profile-rgb-flow{0%{background-position:0% 50%}to{background-position:100% 50%}}.lab-profile-guide-poster{position:relative;overflow:hidden;border-radius:28px;padding:clamp(1.35rem,2.8vw,2rem);background:radial-gradient(circle at top right,rgba(255,71,87,.16),transparent 24%),radial-gradient(circle at bottom left,rgba(91,140,255,.18),transparent 28%),linear-gradient(180deg,#ffffff08,#ffffff04),var(--color-surface);box-shadow:inset 0 0 0 1px #ffffff0f,0 18px 50px #0000002e}.lab-profile-guide-poster:before,.lab-profile-guide-poster:after{content:"";position:absolute;pointer-events:none;border-radius:999px;filter:blur(10px);opacity:.65}.lab-profile-guide-poster:before{top:-42px;right:8%;width:180px;height:180px;background:radial-gradient(circle,rgba(255,71,87,.22),transparent 72%)}.lab-profile-guide-poster:after{bottom:-56px;left:-18px;width:210px;height:210px;background:radial-gradient(circle,rgba(91,140,255,.2),transparent 74%)}.lab-profile-guide-hero,.lab-profile-guide-hero-main,.lab-profile-guide-grid{position:relative;z-index:1}.lab-profile-guide-hero{display:grid;gap:.85rem;align-items:center;margin-bottom:1rem}.lab-profile-guide-hero-main{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:center;justify-items:center}.lab-profile-guide-copy{max-width:720px;padding-right:0;text-align:center;display:grid;justify-items:center;gap:.2rem}.lab-profile-guide-copy h2{margin:.55rem 0 .5rem;display:inline-grid;justify-items:center;width:fit-content;max-width:100%;gap:.08em;font-size:clamp(1.7rem,3.4vw,2.7rem);line-height:.92;letter-spacing:-.05em;font-weight:900;color:var(--color-text-primary);text-align:center}.lab-profile-guide-copy h2 span{display:block;white-space:nowrap}.lab-profile-guide-copy p,.lab-profile-guide-card-head p,.lab-profile-guide-coming-panel p,.lab-profile-guide-step p{margin:0;color:var(--color-text-secondary);line-height:1.6}.lab-profile-guide-copy p{display:inline-block;width:fit-content;max-width:min(46ch,100%);text-align:center}.lab-profile-guide-kicker{display:inline-flex;align-items:center;padding:.4rem .74rem;border-radius:999px;background:#f1c40f24;color:#ffd875;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.lab-profile-guide-badges{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap}.lab-profile-guide-badges span{display:inline-flex;align-items:center;gap:.45rem;min-height:34px;padding:.45rem .72rem;border-radius:999px;background:#ffffff0f;color:var(--color-text-primary);font-size:.8rem;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff0f}.lab-profile-guide-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.88fr);gap:1rem;align-items:start}.lab-profile-guide-side-stack{display:grid;gap:1rem;align-self:start}.lab-profile-guide-card{position:relative;overflow:hidden;border-radius:22px;padding:.9rem;background:#070a1857;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px #ffffff0f}.lab-profile-guide-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 36%);opacity:.8}.lab-profile-guide-card>*{position:relative;z-index:1}.lab-profile-guide-card.is-flow{grid-column:1 / -1}.lab-profile-guide-card.is-coming.is-hero{min-height:100%}.lab-profile-guide-card.is-coming.is-hero .lab-profile-guide-card-head{margin-bottom:.8rem}.lab-profile-guide-card-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:start;margin-bottom:1rem}.lab-profile-guide-card-head strong{display:block;margin-bottom:.18rem;font-size:1rem;line-height:1.2;letter-spacing:-.02em;color:var(--color-text-primary)}.lab-profile-guide-card-head p{font-size:.84rem}.lab-profile-guide-card-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(135deg,#ff47572e,#5b8cff29);color:var(--color-text-primary)}.lab-profile-guide-opening-list{display:grid;gap:.6rem}.lab-profile-guide-opening-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem 1rem;align-items:center;padding:.75rem .8rem;border-radius:16px;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff0d}.lab-profile-guide-opening-copy{display:grid;gap:.2rem}.lab-profile-guide-opening-copy strong,.lab-profile-guide-opening-metrics strong{color:var(--color-text-primary)}.lab-profile-guide-opening-copy span,.lab-profile-guide-opening-metrics span{color:var(--color-text-secondary);font-size:.76rem}.lab-profile-guide-opening-metrics{display:grid;justify-items:end;gap:.18rem}.lab-profile-guide-opening-metrics strong{font-size:1rem;line-height:1;font-weight:800}.lab-profile-guide-opening-bar{grid-column:1 / -1;height:8px;overflow:hidden;border-radius:999px;background:#ffffff14}.lab-profile-guide-opening-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff4757eb,#ffb800e0);box-shadow:0 0 16px #ff475738}.lab-profile-guide-tempo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.lab-profile-guide-tempo-card{display:grid;gap:.42rem;padding:.78rem;border-radius:16px;background:linear-gradient(180deg,var(--lab-guide-soft),rgba(255,255,255,.02));box-shadow:inset 0 0 0 1px #ffffff0f}.lab-profile-guide-tempo-head{display:flex;align-items:center;gap:.55rem;color:var(--color-text-secondary);font-size:.8rem;font-weight:700}.lab-profile-guide-tempo-icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#00000029;color:var(--lab-guide-accent)}.lab-profile-guide-tempo-card strong{font-size:1.7rem;line-height:1;letter-spacing:-.05em;font-weight:900;color:var(--color-text-primary)}.lab-profile-guide-tempo-card small{color:var(--color-text-secondary);font-size:.78rem}.lab-profile-guide-coming-panel{display:grid;gap:.75rem}.lab-profile-guide-coming-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:.38rem .7rem;border-radius:999px;background:#f1c40f24;color:#ffd875;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.lab-profile-guide-coming-tags{display:flex;flex-wrap:wrap;gap:.5rem}.lab-profile-guide-coming-tags span{padding:.42rem .62rem;border-radius:10px;background:#ffffff0d;color:var(--color-text-primary);font-size:.76rem;font-weight:700}.lab-profile-guide-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.lab-profile-guide-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;padding:.8rem;border-radius:16px;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff0d}.lab-profile-guide-step-index{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(135deg,#ff475733,#5b8cff29);color:var(--color-text-primary);font-size:.8rem;font-weight:800;letter-spacing:.08em}.lab-profile-guide-step strong{display:block;margin-bottom:.24rem;color:var(--color-text-primary);font-size:.94rem}.lab-profile-guide-step p{font-size:.84rem}@keyframes lab-profile-results-sweep{0%{transform:translate(-14%);opacity:.4}50%{opacity:.92}to{transform:translate(14%);opacity:.4}}@keyframes lab-profile-results-reveal{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(10px)}60%{opacity:1;transform:translateY(-2px) scale(1.002);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes lab-profile-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:1100px){.lab-profile-guide-hero-main,.lab-profile-guide-grid{grid-template-columns:1fr}.lab-profile-guide-copy{padding-right:0}.lab-profile-guide-card.is-opening,.lab-profile-guide-card.is-flow{grid-column:auto;grid-row:auto}.lab-profile-intro-grid{grid-template-columns:1fr}.lab-profile-intro-copy h2{max-width:18ch}.lab-profile-search-panel,.lab-profile-bento-grid{grid-template-columns:1fr}.lab-profile-analytics-row{grid-template-columns:1fr;gap:1rem}.lab-profile-rating-side{width:100%}.lab-profile-radar-stage.mini .lab-profile-radar-svg{width:min(100%,420px)}.lab-profile-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-profile-rating-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-profile-header-card{grid-template-columns:auto minmax(0,1fr)}.lab-profile-header-actions{grid-column:1 / -1;justify-content:flex-start}.lab-profile-opening-table-head,.lab-profile-opening-row{grid-template-columns:44px minmax(0,1fr) 110px 120px}}@media(max-width:960px){.lab-profile-shell{gap:1rem}.lab-profile-control-form{grid-template-columns:1fr;gap:.8rem;padding:.85rem}.lab-profile-control-title{display:none}.lab-profile-search-input,.lab-profile-control-submit{width:100%}.lab-profile-header-card{grid-template-columns:1fr;align-items:flex-start}.lab-profile-header-actions{grid-column:auto;width:100%;justify-content:stretch;flex-wrap:wrap}.lab-profile-action-primary,.lab-profile-action-secondary{flex:1 1 220px}.lab-profile-section-head,.lab-profile-opening-tools,.lab-profile-opening-head{flex-direction:column;align-items:stretch}.lab-profile-section-pills{flex-wrap:wrap}.lab-profile-chart-stage{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.lab-profile-opening-filters{width:100%;justify-content:space-between;flex-wrap:wrap}.lab-profile-opening-filter{flex:1 1 calc(33.333% - .4rem)}.lab-profile-opening-limit{width:100%;justify-content:space-between}}@media(max-width:720px){.lab-profile-guide-poster{border-radius:22px;padding:1rem}.lab-profile-guide-hero-main{grid-template-columns:1fr}.lab-profile-guide-copy h2{gap:.1em;font-size:clamp(1.55rem,7.4vw,2.1rem);line-height:.95}.lab-profile-guide-badges{justify-content:flex-start}.lab-profile-guide-badges span{width:100%;justify-content:center}.lab-profile-guide-flow{grid-template-columns:1fr}.lab-profile-intro-poster{border-radius:22px;padding:1rem}.lab-profile-intro-copy h2{max-width:none;font-size:clamp(1.7rem,9vw,2.35rem)}.lab-profile-intro-badges span{width:100%;justify-content:center}.lab-profile-intro-hero-card,.lab-profile-intro-flow-card{padding:.9rem;border-radius:18px}.lab-profile-control-bar{padding-bottom:.75rem}.lab-profile-control-form{grid-template-columns:1fr;gap:.75rem;padding:.85rem;border-radius:20px}.lab-profile-control-title{display:none}.lab-profile-search-panel,.lab-profile-header-card,.lab-profile-section,.lab-profile-chart-card,.lab-profile-dna-card,.lab-profile-stat-card{padding:1rem;border-radius:20px}.lab-profile-search-actions,.lab-profile-header-actions,.lab-profile-section-head,.lab-profile-opening-tools{flex-direction:column;align-items:stretch}.lab-profile-header-actions{width:100%;gap:.6rem}.lab-profile-submit,.lab-profile-clear,.lab-profile-action-primary,.lab-profile-action-secondary{width:100%;min-height:46px;flex:0 0 auto;min-width:0}.lab-profile-control-submit{min-width:0}.lab-profile-search-input{min-height:48px;padding:0 .8rem 0 .95rem}.lab-profile-search-input input{font-size:16px}.lab-profile-search-badge span{display:none}.lab-profile-radar-legend{justify-content:flex-start}.lab-profile-radar-stage{min-height:280px}.lab-profile-radar-label{font-size:12px}.lab-profile-radar-tooltip{min-width:108px;padding:.62rem .72rem}.lab-profile-search-input.has-clear .lab-profile-input-clear{opacity:1;transform:scale(1);pointer-events:auto}.lab-profile-stat-grid,.lab-profile-rating-grid,.lab-profile-chart-stage{grid-template-columns:1fr}.lab-profile-chart-stage{min-height:auto;gap:1.2rem}.lab-profile-chart-bars{height:160px}.lab-profile-chart-volume{width:100%}.lab-profile-chart-rating{width:calc(100% - 22px)}.lab-profile-header-card{grid-template-columns:1fr}.lab-profile-header-line{align-items:flex-start}.lab-profile-meta-row{gap:.55rem .85rem;font-size:.78rem}.lab-profile-opening-filters{width:100%;justify-content:stretch}.lab-profile-opening-limit{width:100%;justify-content:space-between}.lab-profile-dna-top{flex-direction:column;align-items:stretch}.lab-profile-dna-preview-grid,.lab-profile-dna-modal-skeleton-grid,.lab-profile-dna-mini-grid{grid-template-columns:1fr}.lab-profile-opening-filter{flex:1 1 0}.lab-profile-opening-table{background:transparent}.lab-profile-opening-table-head{display:none}.lab-profile-opening-row{grid-template-columns:36px minmax(0,1fr);gap:.75rem;padding:.95rem 0}.lab-profile-opening-count,.lab-profile-opening-rate{font-size:.92rem}.lab-profile-opening-main{gap:.35rem}.lab-profile-opening-main small{order:3}.lab-profile-opening-count:before{content:"Oyun: ";color:var(--color-text-secondary);font-weight:600}.lab-profile-opening-rate:before{content:"Kazanma: ";color:var(--color-text-secondary);font-weight:600}.lab-profile-opening-row>:nth-child(3),.lab-profile-opening-row>:nth-child(4){grid-column:2}}@media(max-width:540px){.lab-profile-guide-poster{padding:.9rem;border-radius:20px}.lab-profile-guide-tempo-grid,.lab-profile-guide-flow,.lab-profile-guide-opening-item{grid-template-columns:1fr}.lab-profile-guide-opening-metrics{justify-items:start}.lab-profile-intro-poster{padding:.9rem;border-radius:20px}.lab-profile-intro-kicker{font-size:.68rem;letter-spacing:.1em}.lab-profile-intro-copy p{font-size:.94rem;line-height:1.65}.lab-profile-shell{padding-inline:.6rem;gap:.85rem}.lab-profile-control-form,.lab-profile-search-panel,.lab-profile-header-card,.lab-profile-section,.lab-profile-opening-section,.lab-profile-chart-card,.lab-profile-dna-card,.lab-profile-stat-card,.lab-profile-feedback{padding:.85rem;border-radius:18px}.lab-profile-header-line h2{font-size:1.22rem}.lab-profile-header-actions{gap:.55rem}.lab-profile-section-head h3{font-size:1.2rem;gap:.55rem}.lab-profile-section-accent{width:36px}.lab-profile-stat-grid,.lab-profile-rating-grid,.lab-profile-chart-stage{grid-template-columns:1fr}.lab-profile-rating-side{width:100%}.lab-profile-radar-mini-card{padding:.95rem 1rem}.lab-profile-radar-stage{min-height:250px}.lab-profile-radar-stage.mini .lab-profile-radar-svg{width:min(100%,300px)}.lab-profile-chart-bars{height:148px}.lab-profile-opening-filters{flex-direction:column;gap:.45rem;background:transparent;padding:0}.lab-profile-opening-filter{width:100%;flex:1 1 auto;min-height:40px;background:#ffffff0a}.lab-profile-opening-limit{padding:.55rem .65rem}.lab-profile-opening-limit input{width:88px}.lab-profile-opening-name-group{gap:.45rem}.lab-profile-opening-stats-minimal{flex-wrap:wrap}}.lab-profile-intro-poster{padding:clamp(2rem,3vw,3rem)!important}.lab-profile-intro-grid{gap:2rem!important}.lab-profile-intro-hero-label.is-emphasized{font-size:.85rem;font-weight:800;color:var(--color-accent)}.lab-profile-intro-hero-emphasis{font-weight:900;font-size:1.25rem;color:var(--color-text-primary)}.lab-profile-intro-metric.is-glass{background:#ffffff08;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.05);border-radius:16px;padding:.85rem 1rem;display:flex;align-items:center;gap:1rem;transition:transform .2s ease,background .2s ease}.lab-profile-intro-metric.is-glass:hover{background:#ffffff0f;transform:translateY(-2px)}.lab-profile-metric-content{flex:1}.lab-profile-metric-sparkline{width:48px;height:24px;border-radius:6px;opacity:.8}.lab-profile-metric-sparkline.is-volume{background:linear-gradient(90deg,#ff475733,#ff4757cc);clip-path:polygon(0 100%,0 60%,20% 70%,40% 40%,60% 50%,80% 20%,100% 0,100% 100%)}.lab-profile-metric-sparkline.is-tempo{background:linear-gradient(90deg,#5b8cff33,#5b8cffcc);clip-path:polygon(0 100%,0 40%,30% 20%,50% 50%,70% 30%,100% 10%,100% 100%)}.lab-profile-metric-sparkline.is-opening{background:linear-gradient(90deg,#f1c40f33,#f1c40fcc);clip-path:polygon(0 100%,0 10%,40% 60%,60% 40%,80% 80%,100% 20%,100% 100%)}.lab-profile-neon-circle{width:32px!important;height:32px!important;background:transparent!important;border:2px solid rgba(255,71,87,.8)!important;box-shadow:0 0 12px #ff475766,inset 0 0 8px #ff47574d!important;color:#ff4757!important;text-shadow:0 0 4px rgba(255,71,87,.6)!important;border-radius:50%!important;font-size:1.1rem}.lab-profile-step-desc{display:inline-flex;align-items:center;gap:.3rem}.lab-profile-inline-icon{opacity:.6;vertical-align:middle}.lab-profile-fake-btn-inline{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:6px;background:linear-gradient(135deg,#ff4757e6,#ff4757b3);color:#fff;font-weight:700;font-size:.85rem;box-shadow:0 2px 8px #ff47574d;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.lab-profile-fake-btn-inline:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff475766}.lab-profile-opening-filter.is-pill{border-radius:999px;padding:.4rem 1.2rem;border:1px solid rgba(255,255,255,.1);background:#ffffff08;color:var(--color-text-secondary);font-weight:600;transition:all .2s ease}.lab-profile-opening-filter.is-pill.is-active.glow{background:#ff475726!important;border-color:#ff475780!important;color:#ff4757!important;box-shadow:0 0 16px #ff47574d!important}.lab-profile-ai-analysis-section{margin-bottom:.5rem}.lab-profile-ai-analysis-card{position:relative;overflow:hidden;padding:1.5rem;border-radius:24px;background:radial-gradient(circle at top left,rgba(241,196,15,.08),transparent 25%),linear-gradient(145deg,#ffffff0d,#ffffff03),var(--color-surface);box-shadow:inset 0 0 0 1px #ffffff0f,0 20px 48px #00000029;display:flex;flex-direction:column;gap:1.25rem}.lab-profile-ai-analysis-head{display:flex;flex-direction:column;gap:.35rem}.lab-profile-ai-analysis-badge{display:inline-flex;align-items:center;width:fit-content;padding:.35rem .65rem;border-radius:999px;background:#d4af371a;color:var(--color-premium);font-size:.68rem;font-weight:800;letter-spacing:.1em}.lab-profile-ai-analysis-head strong{font-size:1.15rem;font-weight:800;letter-spacing:-.025em;color:var(--color-text-primary)}.lab-profile-ai-analysis-content{display:grid;gap:.75rem;padding:1.15rem;border-radius:18px;background:#0000002e;box-shadow:inset 0 0 0 1px #ffffff0a}.lab-profile-ai-item{display:flex;align-items:center;gap:.7rem;font-size:1rem;color:var(--color-text-secondary)}.lab-profile-ai-icon{font-size:1.1rem;line-height:1}.lab-profile-ai-item strong{color:var(--color-text-primary);font-weight:700;min-width:100px}.lab-profile-ai-value{color:var(--color-text-primary)}.lab-profile-ai-analysis-footer{font-size:.78rem;color:var(--color-text-tertiary);line-height:1.5;opacity:.8}.lab-profile-dna-modal-error-text{color:var(--color-danger)}.lab-profile-dna-modal-content{display:flex;flex-direction:column;gap:1rem}.lab-profile-dna-modal-header{margin-bottom:.45rem}.lab-profile-dna-modal-title{margin:0;font-size:1.6rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.03em}.lab-profile-dna-modal-description{margin:.4rem 0 0;color:var(--color-text-secondary);font-size:.95rem;line-height:1.4}.lab-profile-dna-modal-meta{margin-top:.75rem;display:inline-flex;align-items:center;gap:.6rem;width:fit-content;max-width:100%;padding:.35rem .75rem;border-radius:8px;background:#d4af371a;color:var(--color-premium);font-size:.8rem;font-weight:700;flex-wrap:wrap}.lab-profile-dna-modal-meta-depth{opacity:.8}.lab-profile-dna-head--modal{margin-bottom:.35rem;text-transform:none;letter-spacing:0;color:var(--color-text-primary);font-size:.9rem;font-weight:700}.lab-profile-dna-track--modal{height:8px;background:#ffffff0f}.lab-profile-dna-fill--modal{background:var(--color-accent);box-shadow:0 0 10px #e9456066}.lab-profile-dna-mini-grid--modal{margin-top:1rem}.lab-profile-dna-mini-card--modal{padding:.75rem 1rem;border-radius:12px;background:#ffffff08}.lab-profile-dna-mini-card--modal span{font-size:.75rem;letter-spacing:.05em}.lab-profile-dna-mini-card--modal strong{font-size:1.3rem;color:var(--color-text-primary);letter-spacing:-.02em}.lab-profile-dna-footnote--modal{justify-content:center;gap:1rem;margin-top:1rem;padding:.75rem;border-radius:10px;background:#0003;font-size:.8rem;font-weight:600}.lab-profile-dna-footnote-item{display:inline-flex;align-items:center;gap:.4rem}.lab-profile-dna-footnote-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.lab-profile-dna-footnote-dot.is-danger{background:var(--color-danger)}.lab-profile-dna-footnote-dot.is-success{background:var(--color-success)}.lab-profile-dna-footnote-dot.is-neutral{background:var(--color-text-primary)}.lab-profile-shell,.lab-profile-results,.lab-profile-header-copy,.lab-profile-opening-main,.lab-profile-section-head,.lab-profile-opening-tools{min-width:0}@media(max-width:900px)and (min-width:721px){.lab-profile-opening-table{overflow-x:auto}.lab-profile-opening-table-head,.lab-profile-opening-row{min-width:620px}}@media(max-width:720px){.lab-profile-intro-poster{padding:1rem!important}.lab-profile-intro-grid{gap:1rem!important}.lab-profile-guide-copy h2 span{white-space:normal}.lab-profile-dna-modal-title{font-size:1.3rem}.lab-profile-dna-modal-description{font-size:.9rem}.lab-profile-dna-modal-meta{width:100%;justify-content:flex-start;gap:.4rem}.lab-profile-dna-mini-grid--modal{grid-template-columns:1fr}.lab-profile-dna-mini-card--modal strong{font-size:1.15rem}.lab-profile-dna-footnote--modal{justify-content:flex-start;gap:.55rem .75rem}.lab-profile-dna-footnote-item{width:100%}}@media(max-width:540px){.lab-profile-intro-poster{padding:.9rem!important}.lab-profile-intro-grid{gap:.75rem!important}.lab-profile-dna-modal-meta{font-size:.75rem}}.join-room-page{min-height:100vh;background:var(--color-background)}.join-room-content{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 80px);padding:2rem}.join-room-card{background:var(--color-surface);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:3rem 4rem;text-align:center;max-width:400px;width:100%}.join-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--color-accent);border-radius:50%;margin:0 auto 1.5rem;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.join-room-card h2{color:var(--color-text-primary);font-size:1.5rem;margin:0 0 .5rem}.join-hint{color:var(--color-text-secondary);margin:0}.error-icon{font-size:3rem;margin-bottom:1rem}.error-text{color:var(--color-text-secondary);margin-bottom:1.5rem}.error-actions{display:flex;gap:1rem;justify-content:center}.retry-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--color-accent),#c0392b);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease}.retry-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c4d}.home-btn{padding:.75rem 1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--color-text-primary);font-weight:600;cursor:pointer;transition:all .2s ease}.home-btn:hover{background:#ffffff1a}.app{min-height:100vh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);margin:var(--spacing-md);margin-bottom:0}.logo{display:flex;align-items:center;gap:var(--spacing-sm)}.logo-icon{font-size:2rem;color:var(--color-accent)}.logo-text{font-size:1.5rem;font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav{display:flex;gap:var(--spacing-sm)}.nav-btn{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast)}.nav-btn:hover{background:var(--color-surface);color:var(--color-text-primary)}.back-btn{padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:500;transition:all var(--transition-fast)}.back-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.game-container{display:flex;align-items:flex-start;gap:var(--spacing-xl)}.side-panel{display:flex;flex-direction:column;gap:var(--spacing-md);width:280px}.left-panel{align-items:flex-end}.right-panel{align-items:flex-start}.player-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);width:100%}.player-avatar{width:48px;height:48px;background:var(--color-surface);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.player-avatar.you{background:var(--gradient-primary)}.player-info{flex:1;display:flex;flex-direction:column}.player-name{font-weight:600;color:var(--color-text-primary)}.player-rating{font-size:.875rem;color:var(--color-text-tertiary)}.turn-indicator{width:12px;height:12px;background:var(--color-surface);border-radius:50%;transition:all var(--transition-fast)}.turn-indicator.active{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.board-section{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.game-status-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center}.status-icon{font-size:3rem;color:var(--color-accent)}.status-text{font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.new-game-btn{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--gradient-primary);color:#fff;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast)}.new-game-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-glow)}.board-controls{display:flex;gap:var(--spacing-sm)}.control-btn{width:44px;height:44px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all var(--transition-fast)}.control-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary);border-color:var(--color-border-light)}.control-btn:active{transform:scale(.95)}.footer{padding:var(--spacing-md);text-align:center}.footer-text{font-size:.875rem;color:var(--color-text-tertiary)}@media(max-width:1200px){.game-container{flex-direction:column;align-items:center}.side-panel{width:100%;max-width:560px;flex-direction:row;justify-content:space-between}.left-panel{order:-1}.right-panel{order:1}.player-card{width:auto}.move-list{flex:1;max-height:200px}}@media(max-width:640px){.header{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.main{padding:var(--spacing-md)}.side-panel{flex-direction:column}}[data-theme=dark]{--color-bg-primary: #1a1a2e;--color-bg-secondary: #16213e;--color-bg-tertiary: #0f3460;--color-surface: rgba(255, 255, 255, .05);--color-surface-hover: rgba(255, 255, 255, .1);--color-surface-active: rgba(255, 255, 255, .15);--color-border: rgba(255, 255, 255, .1);--color-border-light: rgba(255, 255, 255, .2);--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-tertiary: rgba(255, 255, 255, .5);--color-accent: #e94560;--color-accent-hover: #ff6b8a;--color-accent-secondary: #0f3460;--color-success: #4ade80;--color-success-bg: rgba(74, 222, 128, .15);--color-danger: #ef4444;--color-danger-bg: rgba(239, 68, 68, .15);--color-error: #ef4444;--color-warning: #fbbf24;--color-neutral: #9ca3af;--color-neutral-bg: rgba(156, 163, 175, .15);--color-premium: #d4af37;--color-premium-bg: rgba(212, 175, 55, .15);--color-premium-border: rgba(212, 175, 55, .3);--color-sidebar-toggle-bg: #111111;--color-sidebar-toggle-bg-hover: #000000;--color-sidebar-toggle-border: rgba(255, 255, 255, .12);--color-sidebar-toggle-text: #f3f4f6;--color-sidebar-mobile-bg: rgba(29, 32, 56, .98);--color-sidebar-backdrop: rgba(10, 14, 28, .46);--shadow-floating-control: 0 4px 12px rgba(0, 0, 0, .45);--shadow-sidebar-mobile: 18px 0 40px rgba(4, 8, 22, .4);--board-light: #E8D5B7;--board-dark: #B58863;--board-light-highlight: #F7EC9F;--board-dark-highlight: #DAC54B;--board-last-move-light: #CDD26A;--board-last-move-dark: #AAA23A;--board-valid-move: rgba(0, 0, 0, .15);--board-check: rgba(255, 0, 0, .5);--board-selected: rgba(255, 255, 0, .4);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px rgba(233, 69, 96, .3);--shadow-board: 0 8px 32px rgba(0, 0, 0, .4);--gradient-primary: linear-gradient(135deg, #e94560 0%, #0f3460 100%);--gradient-surface: linear-gradient(135deg, rgba(255, 255, 255, .1) 0%, rgba(255, 255, 255, .05) 100%);--gradient-dark: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%)}[data-theme=light]{--color-bg-primary: #f5f7fa;--color-bg-secondary: #e8ecf1;--color-bg-tertiary: #d1d9e3;--color-surface: #ffffff;--color-surface-hover: #f8f9fa;--color-surface-active: #f0f1f3;--color-border: rgba(0, 0, 0, .15);--color-border-light: rgba(0, 0, 0, .25);--color-text-primary: #1a1a2e;--color-text-secondary: rgba(26, 26, 46, .7);--color-text-tertiary: rgba(26, 26, 46, .5);--color-accent: #e94560;--color-accent-hover: #d63850;--color-accent-secondary: #5c8fd8;--color-success: #22c55e;--color-success-bg: rgba(34, 197, 94, .15);--color-danger: #dc2626;--color-danger-bg: rgba(220, 38, 38, .15);--color-error: #dc2626;--color-warning: #f59e0b;--color-neutral: #64748b;--color-neutral-bg: rgba(100, 116, 139, .15);--color-premium: #b8860b;--color-premium-bg: rgba(184, 134, 11, .15);--color-premium-border: rgba(184, 134, 11, .3);--color-sidebar-toggle-bg: #ffffff;--color-sidebar-toggle-bg-hover: #f8f9fa;--color-sidebar-toggle-border: rgba(26, 26, 46, .14);--color-sidebar-toggle-text: #1a1a2e;--color-sidebar-mobile-bg: rgba(255, 255, 255, .96);--color-sidebar-backdrop: rgba(148, 163, 184, .22);--shadow-floating-control: 0 4px 12px rgba(15, 23, 42, .16);--shadow-sidebar-mobile: 18px 0 40px rgba(15, 23, 42, .16);--board-light: #E8D5B7;--board-dark: #B58863;--board-light-highlight: #F7EC9F;--board-dark-highlight: #DAC54B;--board-last-move-light: #CDD26A;--board-last-move-dark: #AAA23A;--board-valid-move: rgba(0, 0, 0, .15);--board-check: rgba(255, 0, 0, .5);--board-selected: rgba(255, 255, 0, .4);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -1px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .03);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 10px 10px -5px rgba(0, 0, 0, .02);--shadow-glow: 0 0 20px rgba(233, 69, 96, .15);--shadow-board: 0 8px 32px rgba(0, 0, 0, .15);--gradient-primary: linear-gradient(135deg, #e94560 0%, #5c8fd8 100%);--gradient-surface: linear-gradient(135deg, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, .85) 100%);--gradient-dark: linear-gradient(180deg, #f5f7fa 0%, #e8ecf1 100%)}:root{--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--gradient-dark);color:var(--color-text-primary);min-height:100vh;line-height:1.5;transition:background var(--transition-normal),color var(--transition-normal)}#root{min-height:100vh;display:flex;flex-direction:column}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--color-surface-active);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}::selection{background:var(--color-accent);color:#fff}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button{font-family:inherit;font-size:inherit;border:none;background:none;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.glass{background:var(--gradient-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.glow{box-shadow:var(--shadow-glow)}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:fadeIn var(--transition-normal) var(--ease-out)}.animate-slideUp{animation:slideUp var(--transition-slow) var(--ease-out)}.animate-scaleIn{animation:scaleIn var(--transition-normal) var(--spring)}
