@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Inter:ital,wght@0,400;0,500;0,600;1,400&family=JetBrains+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap";:root{--bg: #05030a;--bg-card: rgba(255,255,255,.03);--bg-card-solid:#0d0906;--bg-hover: rgba(255,255,255,.05);--accent: #f0a830;--accent2: #ffd280;--accent-dim: rgba(240,168,48,.1);--accent-border:rgba(240,168,48,.2);--accent-glow: rgba(240,168,48,.35);--border: rgba(255,255,255,.07);--border-strong:rgba(255,255,255,.12);--text: #f0ece6;--text-muted: #6b6258;--text-dim: #2a2420;--success: #10b981;--danger: #f87171;--warning: #fbbf24;--board-light: #f0d9b5;--board-dark: #b58863;--blur-card: blur(20px);--glass-blur: blur(20px);--glass-shadow: 0 8px 32px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);--sidebar-bg: linear-gradient(180deg, #0d0906 0%, #05030a 60%);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px}[data-theme=light]{--bg: #faf8f4;--bg-card: #ffffff;--bg-card-solid:#ffffff;--bg-hover: rgba(45,74,30,.05);--accent: #2d4a1e;--accent2: #4a7a30;--accent-dim: rgba(45,74,30,.08);--accent-border:rgba(45,74,30,.2);--accent-glow: rgba(45,74,30,.25);--border: #ddd9d2;--border-strong:rgba(45,74,30,.15);--text: #1a1714;--text-muted: #8a8480;--text-dim: #b8b4af;--blur-card: blur(20px);--glass-blur: blur(20px);--glass-shadow: 0 4px 24px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.8);--sidebar-bg: linear-gradient(180deg, #faf8f4 0%, #f5f2ec 100%)}[data-theme=light] h1,[data-theme=light] h2,[data-theme=light] h3{font-family:"Instrument Serif",Georgia,serif}body:not([data-theme=light]){background-image:radial-gradient(ellipse at 20% 10%,rgba(240,168,48,.04) 0%,transparent 40%),radial-gradient(ellipse at 80% 90%,rgba(240,168,48,.03) 0%,transparent 40%)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}#root{min-height:100vh}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;background-image:radial-gradient(ellipse 60% 40% at 20% 15%,rgba(240,168,48,.055) 0%,transparent 60%),radial-gradient(ellipse 40% 30% at 80% 85%,rgba(240,168,48,.035) 0%,transparent 60%);background-attachment:fixed;transition:background-color .3s,color .3s}[data-theme=light] body{background-image:radial-gradient(ellipse at 20% 30%,rgba(200,185,165,.12),transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(180,165,145,.08),transparent 50%)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--accent-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@keyframes orb1Float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(60px,40px) scale(1.1)}66%{transform:translate(-30px,80px) scale(.95)}}@keyframes orb2Float{0%,to{transform:translate(0)}50%{transform:translate(-80px,-40px) scale(1.15)}}@keyframes pieceDrift{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.025}90%{opacity:.025}to{transform:translateY(-200px) rotate(360deg);opacity:0}}@keyframes pageEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes ptSlideUp{0%{opacity:0;transform:translateY(110px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ptSlideRight{0%{opacity:0;transform:translate(160px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes ptZoom{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes ptClip{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes ptDiagonal{0%{opacity:0;transform:translate(120px,80px) scale(.88)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes ptFlipY{0%{opacity:0;transform:perspective(900px) rotateY(25deg) scale(.9)}to{opacity:1;transform:perspective(900px) rotateY(0) scale(1)}}@keyframes ptBlur{0%{opacity:0;filter:blur(24px);transform:scale(1.06)}to{opacity:1;filter:blur(0px);transform:scale(1)}}@keyframes ptRise{0%{opacity:0;transform:translateY(150px)}to{opacity:1;transform:translateY(0)}}@keyframes tabFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(28px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.card-stagger{animation:cardIn .55s cubic-bezier(.23,1,.32,1) both;animation-delay:calc(var(--ci, 0) * 45ms)}.page-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:28px 32px;display:flex;flex-direction:column}.pt-slide-up{animation:ptSlideUp 2.8s cubic-bezier(.16,1,.3,1) both}.pt-slide-right{animation:ptSlideRight 2.6s cubic-bezier(.16,1,.3,1) both}.pt-zoom{animation:ptZoom 2.8s cubic-bezier(.16,1,.3,1) both}.pt-clip{animation:ptClip 2.6s cubic-bezier(.16,1,.3,1) both}.pt-diagonal{animation:ptDiagonal 2.6s cubic-bezier(.16,1,.3,1) both}.pt-flip-y{animation:ptFlipY 2.8s cubic-bezier(.16,1,.3,1) both}.pt-blur{animation:ptBlur 2.6s cubic-bezier(.16,1,.3,1) both}.pt-rise{animation:ptRise 2.8s cubic-bezier(.16,1,.3,1) both}.tab-content{animation:tabFade 1.3s cubic-bezier(.16,1,.3,1) both}@media (prefers-reduced-motion: reduce){.pt-slide-up,.pt-slide-right,.pt-zoom,.pt-clip,.pt-diagonal,.pt-flip-y,.pt-blur,.pt-rise,.tab-content{animation:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes countUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ambient-orbs{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.ambient-orbs .orb{position:absolute;border-radius:50%;filter:blur(80px)}.ambient-orbs .orb1{width:600px;height:600px;background:radial-gradient(circle,rgba(240,168,48,.07),transparent 65%);top:-150px;left:-100px;animation:orb1Float 18s ease-in-out infinite}.ambient-orbs .orb2{width:400px;height:400px;background:radial-gradient(circle,rgba(240,168,48,.04),transparent 65%);bottom:-100px;right:-80px;animation:orb2Float 24s ease-in-out infinite}[data-theme=light] .ambient-orbs .orb1{background:radial-gradient(circle,rgba(45,74,30,.06),transparent 65%)}[data-theme=light] .ambient-orbs .orb2{background:radial-gradient(circle,rgba(45,74,30,.04),transparent 65%)}.pieces-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.float-piece{position:absolute;opacity:.025;color:var(--accent);animation:pieceDrift linear infinite;font-size:60px}[data-theme=light] .pieces-bg{display:none}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{text-decoration:underline;color:var(--accent);filter:brightness(1.15)}h1,h2,h3,h4{font-family:Outfit,system-ui,sans-serif;font-weight:700;line-height:1.2;letter-spacing:-.01em}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);border:none;font-size:14px;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;transition:all .18s;white-space:nowrap;letter-spacing:.01em}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.96)}.btn-primary{background:linear-gradient(135deg,#f0a830,#d4891f);color:#100c04;transition:background .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),transform .15s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1);box-shadow:0 3px 12px #f0a8304d}.btn-primary:hover:not(:disabled){box-shadow:0 0 28px #f0a83066,0 4px 16px #0000004d;transform:translateY(-1px)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-border)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{color:var(--text);background:var(--bg-hover)}.btn-danger{background:transparent;color:var(--danger);border:1px solid rgba(248,113,113,.35)}.btn-danger:hover:not(:disabled){background:#f871711a;box-shadow:0 0 12px #f8717133}.btn-sm{padding:5px 12px;font-size:13px}.btn-icon{padding:8px;border-radius:var(--radius-sm)}.card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;box-shadow:var(--glass-shadow);transition:border-color .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}.card:hover{border-color:var(--accent-border);box-shadow:0 12px 40px #00000059;transform:translateY(-2px)}[data-theme=light] .card:hover{box-shadow:0 4px 20px #00000014}.card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:14px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.04em}.badge-amber{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border);box-shadow:0 0 8px var(--accent-glow)}.badge-green{background:#34d3991f;color:var(--success);border:1px solid rgba(52,211,153,.25)}.badge-gray{background:#8a80761a;color:var(--text-muted);border:1px solid rgba(138,128,118,.2)}.badge-red{background:#f871711f;color:var(--danger);border:1px solid rgba(248,113,113,.25)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;color:var(--text-muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase}input,select,textarea{background:#ffffff0a;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:10px 13px;font-size:14px;font-family:Inter,sans-serif;width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim),0 0 12px var(--accent-glow)}input::placeholder{color:var(--text-dim)}select option{background:var(--bg-card-solid)}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{background:#fffc}[data-theme=light] .sidebar{background:#faf8f4d9;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.app-layout{display:flex;height:100dvh;overflow:hidden;position:relative;isolation:isolate}.sidebar{background:#05030abf;backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:0;position:sticky;top:0;height:100dvh;overflow-y:auto;box-shadow:2px 0 20px #0000004d}.mobile-nav-toggle{display:none;position:fixed;top:12px;left:12px;z-index:1001;background:var(--bg-card-solid);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 9px;cursor:pointer;color:var(--text);font-size:18px;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000040;line-height:1}.sidebar-overlay{display:none}@media (max-width: 768px){.mobile-nav-toggle{display:flex}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:999;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.sidebar{position:fixed;left:0;top:0;width:240px;height:100dvh;z-index:1000;transform:translate(-100%);transition:transform .28s cubic-bezier(.16,1,.3,1)}.sidebar.open{transform:translate(0)}.main-content{width:100%}.page-content{padding:52px 14px 16px;overflow-x:hidden}.btn{white-space:normal}}.sidebar-logo{padding:20px 18px 18px;border-bottom:1px solid var(--border);margin-bottom:6px}.sidebar-logo h1{font-size:18px;font-family:Outfit,sans-serif;font-weight:800;color:var(--accent);letter-spacing:-.01em;display:flex;align-items:center;gap:8px;text-shadow:0 0 24px rgba(240,168,48,.35);transition:text-shadow .3s ease}.sidebar-logo p{font-size:11px;color:var(--text-muted);margin-top:3px;letter-spacing:.04em}.sidebar-nav{flex:1;padding:8px 10px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;color:var(--text-muted);font-size:13.5px;font-weight:500;cursor:pointer;transition:color .2s cubic-bezier(.16,1,.3,1),background .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1);border-radius:var(--radius-sm);margin-bottom:2px;text-decoration:none;border-left:2px solid transparent}.nav-item:hover{color:var(--text);background:var(--bg-hover);text-decoration:none;transform:translate(3px)}.nav-item:hover i{color:var(--accent)}.nav-item.active{color:var(--accent);background:var(--accent-dim);border-left-color:var(--accent);font-weight:600;box-shadow:inset 4px 0 16px var(--accent-dim),0 0 0 1px var(--accent-border) inset}.nav-item.active i{color:var(--accent)}.nav-item i{font-size:16px;width:20px;text-align:center;transition:color .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1)}.nav-item:hover i{transform:scale(1.1)}.sidebar-footer{padding:14px;border-top:1px solid var(--border);background:#00000026}.user-mini{display:flex;align-items:center;gap:10px;margin-bottom:10px}.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-dim);border:2px solid var(--accent-border);box-shadow:0 0 10px var(--accent-glow);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--accent);font-weight:800;font-family:Outfit,sans-serif}.user-info{flex:1;min-width:0}.user-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-rating{font-size:11px;color:var(--accent);font-weight:600}.main-content{flex:1;min-width:0;overflow:hidden;position:relative}.page-header{margin-bottom:28px}.page-header h2{font-size:28px;color:var(--text)}.page-header p{color:var(--text-muted);font-size:14px;margin-top:5px}.chessboard-container{display:flex;flex-direction:column;align-items:center}.chessboard-wrap{position:relative}.board-ranks{position:absolute;left:-18px;top:0;display:flex;flex-direction:column;height:100%}.board-ranks span,.board-files span{flex:1;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.board-files{display:flex;margin-top:2px;padding-left:20px}.board-files span{width:60px;text-align:center;font-size:10px;color:var(--text-muted)}.chessboard{display:grid;grid-template-columns:repeat(8,60px);grid-template-rows:repeat(8,60px);border:2px solid var(--border-strong);border-radius:6px;overflow:hidden;box-shadow:0 12px 48px #000000b3,0 0 0 1px #ffffff0d}.sq{width:60px;height:60px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:background .08s;-webkit-user-select:none;user-select:none}.sq-light{background:var(--board-light)}.sq-dark{background:var(--board-dark)}.sq-selected{background:#f0a830b3!important}.sq-last{outline:3px solid rgba(240,168,48,.55);outline-offset:-3px}.sq-check{background:#f87171bf!important}.piece{font-size:40px;line-height:1;pointer-events:none;position:relative;z-index:2;transition:transform .1s}.piece-w{filter:drop-shadow(0 2px 3px rgba(0,0,0,.9))}.piece-b{filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}.legal-dot{width:18px;height:18px;border-radius:50%;background:#00000038;pointer-events:none}.legal-ring{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:2px;border:4px solid rgba(0,0,0,.18);pointer-events:none}.move-list{font-family:JetBrains Mono,monospace;font-size:13px;max-height:400px;overflow-y:auto}.move-pair{display:flex;gap:4px;padding:3px 6px;border-radius:4px}.move-pair:hover{background:var(--bg-hover)}.move-num{color:var(--text-dim);min-width:28px}.move-san{color:var(--text);padding:0 4px;cursor:pointer;border-radius:3px;transition:all .12s}.move-san:hover{background:var(--accent-dim);color:var(--accent)}.move-san.current{background:var(--accent);color:#100c04;font-weight:600}.progress-bar-wrap{height:5px;background:#ffffff0f;border-radius:3px;overflow:hidden}@keyframes progressShine{0%{background-position:-400px 0}to{background-position:400px 0}}.progress-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent) 0%,#ffcc60 40%,var(--accent) 100%);background-size:400px 100%;animation:progressShine 2.2s linear infinite;transition:width .4s ease;box-shadow:0 0 8px var(--accent-glow)}.skill-bars{display:flex;flex-direction:column;gap:12px}.skill-row{display:flex;flex-direction:column;gap:5px}.skill-label{display:flex;justify-content:space-between;font-size:12px}.skill-name{color:var(--text-muted)}.skill-val{color:var(--accent);font-weight:700;font-family:JetBrains Mono,monospace}.curriculum-stage{margin-bottom:36px}.stage-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.stage-title{font-size:18px}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.level-card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;cursor:pointer;transition:all .18s;position:relative;box-shadow:var(--glass-shadow)}.level-card:hover:not(.locked){border-color:var(--accent-border);transform:translateY(-2px);box-shadow:0 8px 24px #0006,0 0 0 1px var(--accent-border)}.level-card.active{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 20px var(--accent-glow)}.level-card.passed{border-color:#34d39966;background:#34d39912}.level-card.locked{opacity:.4;cursor:default}.level-num{font-size:11px;color:var(--text-dim);margin-bottom:4px;font-family:JetBrains Mono,monospace}.level-title{font-size:13px;font-weight:600;margin-bottom:6px}.level-theme{font-size:11px;color:var(--text-muted)}.level-status-icon{position:absolute;top:10px;right:10px;font-size:16px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.auth-card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:400px;box-shadow:0 24px 80px #0009,inset 0 1px #ffffff12}.auth-card h1{font-size:30px;color:var(--accent);text-align:center;margin-bottom:4px}.auth-card h2{font-size:16px;text-align:center;color:var(--text-muted);margin-bottom:28px;font-weight:400}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form .btn-primary{width:100%;justify-content:center;padding:12px;font-size:15px;margin-top:4px}.auth-footer{text-align:center;margin-top:20px;font-size:13px;color:var(--text-muted)}.error-msg{background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:var(--radius-sm);padding:11px 14px;font-size:13px;color:var(--danger)}.home-page{min-height:100vh}.hero{text-align:center;padding:100px 24px 72px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-80px;left:50%;transform:translate(-50%);width:700px;height:500px;background:radial-gradient(ellipse,rgba(240,168,48,.13) 0%,transparent 65%);pointer-events:none}.hero-chess-icon{font-size:72px;margin-bottom:20px;filter:drop-shadow(0 0 24px rgba(240,168,48,.5))}.hero h1{font-size:clamp(32px,8vw,56px);color:var(--text);margin-bottom:16px;font-weight:800}.hero h1 span{color:var(--accent);text-shadow:0 0 40px rgba(240,168,48,.4)}.hero-sub{font-size:clamp(14px,4vw,18px);color:var(--text-muted);max-width:580px;margin:0 auto 36px;line-height:1.7}.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.hero-cta .btn{padding:13px 32px;font-size:16px}@media (max-width: 768px){.hero{padding:48px 16px 40px}.hero-chess-icon{font-size:48px}.hero-cta .btn{padding:10px 20px;font-size:14px}}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;padding:56px 32px;max-width:1100px;margin:0 auto}@media (max-width: 768px){.features-grid{padding:24px 16px}}.feature-card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-md);padding:28px;box-shadow:var(--glass-shadow);transition:border-color .2s,box-shadow .2s,transform .2s}.feature-card:hover{border-color:var(--accent-border);box-shadow:0 12px 40px #00000073,0 0 0 1px var(--accent-border);transform:translateY(-3px)}.feature-icon{font-size:28px;color:var(--accent);margin-bottom:14px}.feature-icon i{transition:transform .2s}.feature-card:hover .feature-icon i{transform:scale(1.15)}.feature-card h3{font-size:17px;margin-bottom:10px;color:var(--text)}.feature-card p{font-size:14px;color:var(--text-muted);line-height:1.65}.puzzle-layout{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start}@media (max-width: 768px){.puzzle-layout{grid-template-columns:1fr}}@media (max-width: 768px){.notation-input-row{display:none!important}}.puzzle-info{display:flex;flex-direction:column;gap:16px}.feedback-correct{color:var(--success);font-weight:700;font-size:15px}.feedback-wrong{color:var(--danger);font-weight:700;font-size:15px}.play-layout{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}@media (max-width: 768px){.play-layout{grid-template-columns:1fr}}.level-btns{display:flex;gap:8px;flex-wrap:wrap}.level-btn{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.level-btn.active{background:var(--accent);border-color:var(--accent);color:#100c04;font-weight:700;box-shadow:0 4px 14px var(--accent-glow)}.level-btn:hover:not(.active){border-color:var(--accent-border);color:var(--text)}.clock-display{font-family:JetBrains Mono,monospace;font-size:30px;font-weight:500}.clock-active{color:var(--accent);text-shadow:0 0 12px var(--accent-glow)}.clock-inactive{color:var(--text-dim)}.game-status{font-size:14px;padding:9px 14px;border-radius:var(--radius-sm);text-align:center;font-weight:600}.status-playing{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border)}.status-ended{background:#34d3991a;color:var(--success);border:1px solid rgba(52,211,153,.25)}.opening-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}@media (max-width: 768px){.opening-layout{grid-template-columns:1fr}}.opening-list{max-height:600px;overflow-y:auto;display:flex;flex-direction:column;gap:3px}.opening-item{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;transition:all .14s}.opening-item:hover{background:var(--bg-hover);border-color:var(--border)}.opening-item.active{background:var(--accent-dim);border-color:var(--accent-border)}.opening-eco{font-size:11px;color:var(--accent);font-family:JetBrains Mono,monospace;font-weight:600}.opening-name{font-size:13px;font-weight:500}.dashboard{width:100%}.dash-main{display:flex;flex-direction:column;gap:20px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.rating-card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;box-shadow:var(--glass-shadow);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s}.rating-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000059}[data-theme=light] .rating-card:hover{box-shadow:0 4px 20px #00000014}.rating-card h2{font-size:22px;margin-bottom:18px}.rating-display{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 0}.rating-number{font-family:Outfit,sans-serif;font-size:72px;font-weight:800;color:var(--accent);line-height:1;text-shadow:0 0 40px rgba(240,168,48,.4)}.rating-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.badge-provisional{font-size:11px;background:#f0a83026;color:var(--warning);border:1px solid rgba(240,168,48,.3);border-radius:4px;padding:2px 9px;font-weight:600}.no-rating-block{text-align:center;padding:28px 0}.no-rating-text{font-size:20px;font-weight:700;color:var(--text);margin-bottom:10px}.plan-card{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;box-shadow:var(--glass-shadow);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s}.plan-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000059}[data-theme=light] .plan-card:hover{box-shadow:0 4px 20px #00000014}.plan-card h3{font-size:17px;margin-bottom:18px}.plan-goals{display:flex;gap:32px;justify-content:center;margin:18px 0}.goal-item{display:flex;flex-direction:column;align-items:center;gap:4px}.goal-num{font-size:40px;font-weight:800;color:var(--accent);line-height:1;font-family:Outfit,sans-serif}.rating-big{font-family:Outfit,sans-serif;font-size:64px;font-weight:800;color:var(--accent);line-height:1;text-shadow:0 0 40px rgba(240,168,48,.4)}.rating-sub{font-size:12px;color:var(--text-muted);margin-top:4px}.quick-link{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1);text-decoration:none;color:var(--text);box-shadow:var(--glass-shadow)}.quick-link:hover{border-color:var(--accent-border);background:var(--bg-hover);text-decoration:none;box-shadow:0 6px 20px #0006,0 0 0 1px var(--accent-border);transform:translateY(-2px)}.quick-link i{font-size:22px;color:var(--accent)}.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted);font-size:14px;gap:10px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.color-selector{display:flex;gap:10px}.color-btn{flex:1;padding:14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-card);cursor:pointer;text-align:center;transition:all .15s;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.color-btn.active{border-color:var(--accent);background:var(--accent-dim);box-shadow:0 0 14px var(--accent-glow)}.color-btn:hover:not(.active){border-color:var(--accent-border)}.color-piece{font-size:30px;display:block;margin-bottom:5px}.color-label{font-size:12px;color:var(--text-muted);font-weight:600}.tabs{display:flex;gap:4px;background:#ffffff08;border:1px solid var(--border);padding:4px;border-radius:var(--radius-sm);margin-bottom:20px}.tab{flex:1;padding:8px 14px;border-radius:5px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:600;transition:background .2s cubic-bezier(.16,1,.3,1),color .2s cubic-bezier(.16,1,.3,1),border-color .2s;text-align:center;font-family:Inter,sans-serif}.tab.active{background:var(--bg-card);color:var(--accent);border:1px solid var(--border-strong);box-shadow:0 2px 8px #00000040}.tab:hover:not(.active){color:var(--text);background:var(--bg-hover)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:pageEnter .3s cubic-bezier(.16,1,.3,1) both}@media (prefers-reduced-motion: reduce){.page-enter{animation:none}}.survey-option{display:block;width:100%;padding:13px 16px;margin-bottom:10px;text-align:left;font-size:14px;font-family:Inter,sans-serif;background:var(--bg-card);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s,transform .12s,box-shadow .15s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.survey-option:hover:not(:disabled){border-color:var(--accent-border);background:var(--bg-hover);transform:translate(4px);box-shadow:0 2px 12px #0000004d}.survey-option.selected{background:linear-gradient(135deg,#f0a83033,#f0a83014);color:var(--accent);border-color:var(--accent);font-weight:600;box-shadow:0 0 14px var(--accent-glow)}.survey-option.wrong-opt{background:#f871711f;color:var(--danger);border-color:#f8717159}.survey-option:disabled{cursor:default}@keyframes feedbackPop{0%{opacity:0;transform:scale(.88)}65%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.feedback-pill{text-align:center;padding:16px 24px;border-radius:var(--radius-sm);font-size:17px;font-weight:700;font-family:Outfit,sans-serif;animation:feedbackPop .28s ease both}.feedback-pill.correct{background:#34d3991a;color:var(--success);border:1px solid rgba(52,211,153,.3);box-shadow:0 0 20px #34d39926}.feedback-pill.wrong{background:#f871711a;color:var(--danger);border:1px solid rgba(248,113,113,.3);box-shadow:0 0 20px #f8717126}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 24px;text-align:center;color:var(--text-muted)}.empty-state i{font-size:44px;margin-bottom:18px;color:var(--text-dim)}.empty-state h3{font-size:17px;font-weight:700;color:var(--text);margin-bottom:8px}.empty-state p{font-size:14px;line-height:1.65;max-width:320px}.page-placeholder{display:flex;align-items:center;justify-content:center;min-height:400px;text-align:center}.theme-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:500;transition:all .15s;font-family:Inter,sans-serif;margin-bottom:8px}.theme-toggle:hover{border-color:var(--accent-border);color:var(--text);background:var(--bg-hover)}.theme-toggle i{font-size:15px;color:var(--accent)}.flex{display:flex}.flex-col{flex-direction:column}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.items-center{align-items:center}.justify-between{justify-content:space-between}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.text-muted{color:var(--text-muted);font-size:13px}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.font-mono{font-family:JetBrains Mono,monospace}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-main>section:nth-child(1){animation:fadeUp .5s cubic-bezier(.16,1,.3,1) .05s both}.dash-main>section:nth-child(2){animation:fadeUp .5s cubic-bezier(.16,1,.3,1) .1s both}.dash-main>section:nth-child(3){animation:fadeUp .5s cubic-bezier(.16,1,.3,1) .15s both}.dash-main>section:nth-child(4){animation:fadeUp .5s cubic-bezier(.16,1,.3,1) .2s both}.dash-main>section:nth-child(5){animation:fadeUp .5s cubic-bezier(.16,1,.3,1) .25s both}.plan-card,.rating-card{animation:fadeUp .5s cubic-bezier(.16,1,.3,1) both}.rating-number{animation:countUp .8s cubic-bezier(.16,1,.3,1) .3s both}[data-theme=light] .sidebar-footer{background:#f5f2ece6}.ambient-orbs,.pieces-bg{z-index:-1}.user-avatar{animation:avatarPulse 3s ease-in-out infinite}@keyframes avatarPulse{0%,to{box-shadow:0 0 10px var(--accent-glow)}50%{box-shadow:0 0 20px var(--accent-glow),0 0 40px #f0a8301a}}.board-focus-exit{display:none}@media (min-width: 769px){.board-focus-exit{display:none!important}}.board-focus-boardwrap{position:relative;width:100%;max-width:502px}.feedback-overlay{opacity:1;transition:opacity .3s ease}@media (prefers-reduced-motion: reduce){.feedback-overlay{transition:none}}@media (max-width: 768px){.eval-bar-container{display:none!important}}@media (min-width: 769px){.play-mobile-controls{display:none!important}}@media (max-width: 768px){body[data-focus=board] .sidebar,body[data-focus=board] .mobile-nav-toggle,body[data-focus=board] .sidebar-overlay{display:none!important}body[data-focus=board] .main-content{width:100vw;height:100svh;padding:0;overflow:hidden}body[data-focus=board] .page-content{height:100svh;overflow:hidden;display:flex;flex-direction:column;padding:0}body[data-focus=board] .page-header,body[data-focus=board] h1:not(.board-title),body[data-focus=board] .page-description{display:none!important}body[data-focus=board] .board-focus-layout{display:flex;flex-direction:column;height:100svh;width:100vw;overflow-y:auto;padding:0!important;max-width:100%!important;margin:0!important;align-items:stretch!important}body[data-focus=board] .board-focus-page{padding:0!important;max-width:100%!important}body[data-focus=board] .board-focus-hide{display:none!important}body[data-focus=board] .board-focus-board,body[data-focus=board] .chessboard-container{flex:1 1 auto!important;min-height:0;display:flex;flex-direction:column;align-items:stretch!important;justify-content:center;width:100%}body[data-focus=board] .board-focus-boardwrap,body[data-focus=board] [data-testid=chess-board]{width:100%!important;max-width:100%!important;aspect-ratio:1;flex:0 0 auto!important}body[data-focus=board] .board-focus-controls{flex-shrink:0;min-height:44px;height:auto;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 8px;background:var(--bg-card, #111)}body[data-focus=board] .board-focus-rival{flex-shrink:0;height:44px;display:flex;align-items:center;padding:0 12px;background:var(--bg-card, #111)}body[data-focus=board] .game-sidebar,body[data-focus=board] .moves-panel,body[data-focus=board] .eval-bar-container,body[data-focus=board] .puzzle-info{display:none!important}body[data-focus=board] .board-focus-exit{display:flex;position:fixed;top:8px;right:8px;z-index:100;background:#000000b3;border:none;color:#fff;border-radius:50%;width:32px;height:32px;font-size:16px;cursor:pointer;align-items:center;justify-content:center}}@keyframes gmPanelPulse{0%,to{opacity:1}50%{opacity:.7}}.gm-panel--thinking{animation:gmPanelPulse 1.6s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.gm-panel--thinking{animation:none}[data-testid=chess-board] div[style*=transition]{transition:none!important;animation:none!important}}
