*{-webkit-tap-highlight-color:transparent}@media (width<=768px){html,body{-webkit-text-size-adjust:100%;touch-action:manipulation}.main-content{padding:0}.board-wrapper{width:100%;max-width:min(100vw - 32px,480px);margin:0 auto}button{min-height:44px}.btn-primary,.btn-secondary{padding:12px 20px}.eco-badge{font-size:.7rem}.search-input{font-size:16px}.navbar{padding:0 16px}::-webkit-scrollbar{width:4px}}@media (width<=480px){.board-wrapper{max-width:min(100vw - 32px,480px)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121212;--bg2:#181818;--bg3:#1f1f1f;--surface:#181818;--surface2:#252525;--surface3:#2a2a2a;--text:#fff;--text2:#b3b3b3;--text3:#cbcbcb;--accent:#1ed760;--accent2:#1db954;--green:#1ed760;--red:#f3727f;--orange:#ffa42b;--blue:#4a9eff;--border:#4d4d4d;--border2:#7c7c7c;--shadow-card:#0000004d 0px 8px 8px;--shadow-dialog:#00000080 0px 8px 24px}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg2:#f8f8f8;--bg3:#f0f0f0;--surface:#f3f3f3;--surface2:#ebebeb;--surface3:#e2e2e2;--text:#121212;--text2:#5a5a5a;--text3:#3a3a3a;--accent:#1db954;--accent2:#169c46;--green:#1db954;--red:#d32f2f;--orange:#e65100;--blue:#1565c0;--border:#d4d4d4;--border2:#9a9a9a;--shadow-card:#00000014 0px 4px 12px;--shadow-dialog:#00000026 0px 8px 24px}}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg2:#f8f8f8;--bg3:#f0f0f0;--surface:#f3f3f3;--surface2:#ebebeb;--surface3:#e2e2e2;--text:#121212;--text2:#5a5a5a;--text3:#3a3a3a;--accent:#1db954;--accent2:#169c46;--green:#16a34a;--red:#d32f2f;--orange:#e65100;--blue:#2563eb;--border:#d4d4d4;--border2:#9a9a9a;--shadow-card:#00000014 0px 4px 12px;--shadow-dialog:#00000026 0px 8px 24px}:root{color:var(--text);background:var(--bg);font-family:Helvetica Neue,helvetica,arial,system-ui,sans-serif;font-size:16px}body{background:var(--bg);min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.main-content{box-sizing:border-box;flex:1;width:100%;max-width:1440px;margin:0 auto;padding:32px 40px}.navbar{background:var(--bg);height:64px;box-shadow:0 1px 0 var(--border);z-index:100;justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:sticky;top:0}.nav-brand{color:var(--accent);letter-spacing:-.01em;font-size:1.3rem;font-weight:700}.nav-links{gap:4px;display:flex}.nav-links a{color:var(--text2);letter-spacing:.01em;border-radius:9999px;padding:8px 16px;font-size:.875rem;font-weight:400;transition:color .15s,background .15s}.nav-links a:hover{color:var(--text);background:var(--surface2)}.nav-links a.active{background:var(--surface2);color:var(--text);font-weight:700}.theme-toggle{background:var(--surface2);width:36px;height:36px;color:var(--text2);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;font-size:1rem;transition:background .15s,color .15s;display:flex}.theme-toggle:hover{background:var(--surface3);color:var(--text)}.btn-primary{text-transform:uppercase;letter-spacing:1.4px;background:var(--accent);color:#000;cursor:pointer;border:none;border-radius:9999px;justify-content:center;align-items:center;padding:12px 32px;font-size:.875rem;font-weight:700;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:var(--accent2);transform:scale(1.02)}.btn-primary:active{transform:scale(.98)}.btn-secondary{border:1px solid var(--border2);text-transform:uppercase;letter-spacing:1.4px;color:var(--text);background:0 0;border-radius:9999px;padding:10px 24px;font-size:.875rem;font-weight:700;text-decoration:none;transition:border-color .15s,transform .1s}.btn-secondary:hover{border-color:var(--text);transform:scale(1.02)}.btn-ghost{color:var(--text2);background:0 0;border:none;border-radius:9999px;padding:8px 20px;font-size:.875rem;font-weight:400;transition:color .15s}.btn-ghost:hover{color:var(--text)}.btn-ghost.small{padding:4px 12px;font-size:.75rem}button:disabled{opacity:.4;cursor:not-allowed}.page-header{margin-bottom:32px}.page-header h1{letter-spacing:-.02em;margin-bottom:6px;font-size:2rem;font-weight:700}.page-header p{color:var(--text2);font-size:.875rem}.openings-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:24px;display:flex}.openings-tab{color:var(--text2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 24px;font-size:.875rem;font-weight:600;transition:color .15s,border-color .15s}.openings-tab:hover{color:var(--text)}.openings-tab.active{color:var(--green);border-bottom-color:var(--green)}.eco-badge{text-transform:capitalize;background:var(--surface2);color:var(--accent);letter-spacing:.05em;border-radius:9999px;padding:3px 10px;font-size:.66rem;font-weight:600;display:inline-block}.eco-badge.large{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-radius:9999px;padding:8px 20px;font-size:1.2rem;font-weight:700}.family-tag{background:var(--surface2);color:var(--text2);border-radius:9999px;padding:3px 10px;font-size:.66rem;font-weight:600;display:inline-block}.home-page{max-width:760px;margin:0 auto;padding:80px 24px 100px}.hero{text-align:center;margin-bottom:28px}.hero-brand{color:var(--text);letter-spacing:-.05em;margin:0 0 24px;font-size:5.5rem;font-weight:700;line-height:1}.hero-sub{color:var(--text2);max-width:400px;margin:0 auto 40px;font-size:1.05rem;line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.hero-cta{justify-content:center;min-width:180px}.hero-ghost{background:var(--surface2);color:var(--text);border-radius:9999px;align-items:center;padding:10px 20px;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.hero-ghost:hover{background:var(--surface3);transform:scale(1.02)}.hero-stats{color:var(--text2);text-transform:uppercase;letter-spacing:1.2px;justify-content:center;align-items:center;gap:10px;margin-bottom:72px;font-size:.72rem;font-weight:600;display:flex}.hero-stats-dot{color:var(--surface2)}.feature-list{border-top:1px solid var(--surface2)}.feature-row{border-bottom:1px solid var(--surface2);color:var(--text);align-items:center;gap:32px;padding:24px 0;text-decoration:none;transition:padding-left .2s;display:flex}.feature-row:hover{padding-left:12px}.feature-row-body{flex:1;min-width:0}.feature-row-title{letter-spacing:-.01em;color:var(--text);margin-bottom:5px;font-size:.9rem;font-weight:700;transition:color .15s;display:block}.feature-row--accent .feature-row-title{color:var(--accent)}.feature-row-new-badge{background:var(--accent);color:#0a0a0a;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;border-radius:3px;margin-left:8px;padding:1px 6px;font-size:.62rem;font-weight:700;display:inline-block}.feature-row-desc{color:var(--text2);margin:0;font-size:.78rem;line-height:1.55;display:block}.feature-row-arrow{color:var(--text2);text-align:right;flex-shrink:0;width:24px;font-size:1rem;transition:transform .2s,color .2s}.feature-row:hover .feature-row-arrow{color:var(--accent);transform:translate(6px)}.opening-filter{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.filter-top-row{align-items:center;gap:12px;display:flex}.family-pill-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-input,.family-select{background:var(--bg3);color:var(--text);border:none;border-radius:500px;outline:none;padding:12px 20px;font-size:.875rem;transition:box-shadow .15s;box-shadow:inset 0 0 0 1px #7c7c7c}.search-input{flex:1;min-width:200px}.search-input::placeholder{color:var(--text2)}.search-input:focus,.family-select:focus{box-shadow:var(--text) 0px 0px 0px 1px inset}.family-select{appearance:none;cursor:pointer;min-width:200px}.family-select option{background:var(--bg3);color:var(--text)}.family-pill{background:var(--surface2);color:var(--text2);cursor:pointer;white-space:nowrap;border:none;border-radius:9999px;padding:8px 16px;font-family:inherit;font-size:.875rem;transition:background .15s,color .15s}.family-pill:hover{background:var(--surface3);color:var(--text)}.family-pill.active{background:var(--accent);color:#fff}.result-count{color:var(--text2);margin-bottom:16px;font-size:.8rem}.opening-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.opening-card{background:var(--surface);border:none;border-radius:8px;padding:14px 16px;transition:background .15s;display:block}.opening-card:hover{background:var(--surface2)}.opening-card-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.opening-name{color:var(--text);margin-bottom:4px;font-size:.875rem;font-weight:700}.move-preview{color:var(--text2);margin-bottom:4px;font-family:Courier New,monospace;font-size:.75rem}.move-count{color:var(--text2);font-size:.72rem}.load-more-btn{border:1px solid var(--border2);width:100%;color:var(--text);text-transform:uppercase;letter-spacing:1.4px;background:0 0;border-radius:9999px;margin-top:24px;padding:14px;font-size:.875rem;font-weight:700;transition:border-color .15s;display:block}.load-more-btn:hover{border-color:var(--text)}.view-toggle-group{align-items:center;gap:4px;display:flex}.view-toggle{background:var(--surface2);width:36px;height:36px;color:var(--text2);cursor:pointer;border:none;border-radius:8px;font-size:1rem;transition:background .15s,color .15s}.view-toggle:hover{background:var(--surface3);color:var(--text)}.view-toggle.active{background:var(--accent);color:#fff}.opening-group{margin-bottom:6px}.opening-group-header{background:var(--surface);width:100%;color:var(--text);cursor:pointer;text-align:left;border:none;border-radius:8px;align-items:center;gap:14px;padding:16px 20px;font-family:inherit;transition:background .2s,box-shadow .2s,transform .15s;display:flex}.opening-group-header:hover{background:var(--surface2);box-shadow:var(--shadow-card);transform:translateY(-1px)}.opening-group.is-open .opening-group-header{background:var(--surface2);box-shadow:var(--shadow-card)}.opening-group-chevron{color:var(--text2);flex-shrink:0;width:16px;font-size:.875rem;transition:transform .25s,color .15s}.opening-group-chevron.open{color:var(--accent);transform:rotate(90deg)}.opening-group-info{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.opening-group-top-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.opening-group-name{letter-spacing:-.01em;font-size:1rem;font-weight:700}.opening-group-sub-row{align-items:center;gap:8px;display:flex}.opening-group-moves{color:var(--text2);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-family:Courier New,monospace;font-size:.75rem;overflow:hidden}.opening-group-count{white-space:nowrap;background:var(--surface2);color:var(--text2);letter-spacing:.5px;border-radius:9999px;flex-shrink:0;padding:5px 14px;font-size:.72rem;font-weight:700;transition:background .15s,color .15s}.opening-group.is-open .opening-group-count{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.opening-group-body{border-left:2px solid var(--surface3);margin-top:2px;margin-left:27px;padding:10px 0 10px 30px}.learn-view{max-width:1100px;margin:0 auto}.learn-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.opening-title-block{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.opening-title{color:var(--text);letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.learn-body{grid-template-columns:1fr minmax(260px,320px);gap:32px;display:grid}.board-section{flex-direction:column;gap:12px;display:flex;position:relative}.learn-sidebar{background:var(--surface);border-radius:8px;padding:20px}.learn-sidebar h3{color:var(--accent);text-transform:uppercase;letter-spacing:1.6px;margin-bottom:14px;font-size:.75rem;font-weight:700}.move-list{flex-wrap:wrap;gap:4px;margin-bottom:24px;display:flex}.move-number{color:var(--text2);margin-right:2px;font-size:.8rem}.move-token{cursor:pointer;background:var(--surface2);color:var(--text2);border-radius:4px;padding:4px 8px;font-family:Courier New,monospace;font-size:.82rem;transition:background .1s,color .1s}.move-token:hover{background:var(--surface3);color:var(--text)}.move-token.active{background:var(--accent);color:#fff;font-weight:700}.pgn-block h4{color:var(--text2);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:8px;font-size:.72rem;font-weight:700}.pgn-block code{background:var(--bg);color:var(--text2);word-break:break-all;border-radius:4px;padding:12px;font-size:.75rem;line-height:1.6;display:block}.board-controls{background:var(--surface);border-radius:9999px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:flex}.board-controls button{background:var(--surface2);width:36px;height:36px;color:var(--text);border:none;border-radius:50%;font-size:1rem;transition:background .15s}.board-controls button:hover:not(:disabled){background:var(--surface3)}.step-label{color:var(--text2);text-align:center;min-width:64px;font-size:.8rem}.training-page{min-height:calc(100vh - 64px)}.color-picker{text-align:center;max-width:640px;margin:48px auto;padding:0 16px}.color-picker h2{color:var(--text);letter-spacing:-.02em;margin-bottom:10px;font-size:2rem;font-weight:700}.color-picker p{color:var(--text2);margin-bottom:40px;font-size:.875rem}.color-options{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.color-btn{background:var(--surface);color:var(--text);cursor:pointer;text-transform:uppercase;letter-spacing:1px;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:10px;min-width:160px;padding:32px 28px;font-size:.8rem;font-weight:700;transition:background .15s,transform .15s,box-shadow .15s;display:flex}.color-btn:hover{background:var(--surface2);transform:translateY(-3px);box-shadow:0 8px 20px #0006}.color-btn.random-btn{border-color:var(--accent)}.color-btn.random-btn:hover{box-shadow:color-mix(in srgb, var(--accent) 20%, transparent) 0px 8px 20px}.color-piece{font-size:3rem;line-height:1}.color-btn small{color:var(--text2);text-transform:none;letter-spacing:0;font-size:.72rem;font-weight:400}.training-view{max-width:800px;margin:0 auto}.training-opening-name{background:var(--surface);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 16px;display:flex}.training-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.training-info{align-items:center;gap:8px;display:flex}.move-indicator{text-transform:uppercase;letter-spacing:1px;color:var(--text2);background:#b3b3b31a;border-radius:9999px;padding:4px 12px;font-size:.72rem;font-weight:700}.your-turn{text-transform:uppercase;letter-spacing:1px;background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:9999px;padding:4px 12px;font-size:.72rem;font-weight:700}.computer-turn{text-transform:uppercase;letter-spacing:1px;color:var(--text2);background:#b3b3b314;border-radius:9999px;padding:4px 12px;font-size:.72rem;font-weight:700}.feedback-overlay{pointer-events:none;z-index:10;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.feedback-pill{letter-spacing:.5px;border-radius:9999px;padding:12px 32px;font-size:1.1rem;font-weight:700;animation:.15s ease-out feedbackPop}.feedback-overlay.correct .feedback-pill{color:#000;background:#1ed760f2;box-shadow:0 4px 24px #1ed76066}.feedback-overlay.wrong .feedback-pill{color:#fff;background:#f3727ff2;box-shadow:0 4px 24px #f3727f59}@keyframes feedbackPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.score-tracker{align-items:center;gap:6px;display:flex}.score-pill{text-transform:uppercase;letter-spacing:.8px;border-radius:9999px;padding:4px 10px;font-size:.72rem;font-weight:700}.score-pill.correct{color:#1ed760;background:#1ed76026}.score-pill.incorrect{color:#f3727f;background:#f3727f26}.score-pill.total{color:var(--text2);background:#b3b3b31a}.training-footer{margin-top:14px}.move-history-mini{color:var(--text2);flex-wrap:wrap;gap:2px;font-size:.78rem;display:flex}.mini-move{gap:2px;display:inline-flex}.mini-move.last{color:var(--text)}.move-number{color:var(--text2);opacity:.6}.training-complete{text-align:center;max-width:480px;margin:48px auto;padding:0 16px}.training-complete h2{color:var(--text);letter-spacing:-.02em;margin-bottom:24px;font-size:2rem;font-weight:700}.opening-reveal{background:var(--surface);border-radius:12px;margin-bottom:24px;padding:28px;box-shadow:0 8px 24px #0000004d}.opening-reveal h3{margin:12px 0 6px;font-size:1.2rem;font-weight:700}.eco-badge.large{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);letter-spacing:1px;text-transform:uppercase;border-radius:9999px;padding:6px 18px;font-size:.875rem;font-weight:700;display:inline-block}.complete-actions{flex-direction:column;align-items:center;gap:10px;margin-bottom:24px;display:flex}.complete-actions .btn-primary,.complete-actions .btn-secondary,.complete-actions .btn-ghost{text-align:center;justify-content:center;width:280px}.back-link{color:var(--text2);align-items:center;gap:6px;margin-bottom:14px;font-size:.875rem;transition:color .15s;display:inline-flex}.hints-section h4{color:var(--text2);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:10px;font-size:.72rem;font-weight:700}.hints-section ul{flex-direction:column;gap:6px;list-style:none;display:flex}.hints-section li{background:var(--surface);border-radius:4px;padding:8px 12px;font-size:.8rem}.hidden-hint{color:var(--text2)}.revealed{color:var(--accent);font-weight:700}.engine-page .page-header{margin-bottom:0}.engine-setup{max-width:620px;margin:36px auto}.engine-setup h1{color:var(--text);letter-spacing:-.02em;margin-bottom:8px;font-size:1.75rem;font-weight:700}.engine-loading{color:var(--text2);background:var(--surface);border-radius:9999px;margin-bottom:16px;padding:10px 16px;font-size:.8rem}.engine-error{color:var(--red);background:#f3727f1a;border-radius:9999px;margin-bottom:16px;padding:10px 16px;font-size:.8rem}.start-fen-badge{background:var(--surface2);color:var(--text2);border-radius:9999px;margin-bottom:16px;padding:4px 14px;font-size:.75rem;display:inline-block}.back-link{color:var(--text2);background:0 0;border:none;margin-bottom:16px;padding:0;font-size:.875rem;transition:color .15s;display:inline-block}.back-link:hover{color:var(--text)}.setup-sub{color:var(--text2);margin-bottom:36px;font-size:.875rem}.setup-section{margin-bottom:32px}.setup-section h3{color:var(--text2);text-transform:uppercase;letter-spacing:1.6px;margin-bottom:14px;font-size:.72rem;font-weight:700}.skill-slider-container{padding:8px 0 56px;position:relative}.skill-slider-elo{text-align:center;color:var(--accent);letter-spacing:.5px;margin-bottom:20px;font-size:1.1rem;font-weight:700}.skill-slider{appearance:none;background:var(--surface3);cursor:pointer;border-radius:9999px;outline:none;width:100%;height:6px;position:relative}.skill-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:grab;border:none;border-radius:50%;width:20px;height:20px;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #0006}.skill-slider::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 4px 12px #00000080}.skill-slider::-webkit-slider-thumb:active{cursor:grabbing}.skill-slider::-moz-range-thumb{background:var(--accent);cursor:grab;border:none;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 8px #0006}.skill-slider::-moz-range-track{background:var(--surface3);border-radius:9999px;height:6px}.skill-slider-ticks{height:50px;position:absolute;top:60px;left:10px;right:10px}.skill-tick{cursor:pointer;color:var(--text2);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:0;transition:color .15s;display:flex;position:absolute;transform:translate(-50%)}.skill-tick:hover{color:var(--text)}.skill-tick.active{color:var(--accent)}.skill-tick-dot{background:var(--surface3);border-radius:50%;width:8px;height:8px;transition:background .15s}.skill-tick.active .skill-tick-dot{background:var(--accent)}.skill-tick:hover .skill-tick-dot{background:var(--text2)}.skill-tick-label{text-transform:uppercase;letter-spacing:1px;white-space:nowrap;font-size:.66rem;font-weight:700}.skill-tick-elo{opacity:.7;font-size:.6rem;font-weight:400}.start-btn{width:100%;margin-top:8px;padding:14px;font-size:.875rem}.engine-game{grid-template-columns:1fr minmax(240px,300px);gap:28px;max-width:1100px;margin:0 auto;display:grid}.engine-board-col{flex-direction:column;gap:12px;display:flex}.engine-status-bar{justify-content:space-between;align-items:center;min-height:32px;display:flex}.thinking-indicator{color:var(--text2);font-size:.82rem;font-style:italic;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.your-turn-label{color:var(--green);font-size:.82rem;font-weight:700}.game-status-msg{text-transform:uppercase;letter-spacing:1.2px;border-radius:9999px;padding:4px 16px;font-size:.82rem;font-weight:700}.game-status-msg.in-check{color:var(--orange);background:#ffa42b26}.game-status-msg.game-over{color:var(--red);background:#f3727f26}.engine-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.difficulty-tag,.player-color-tag{color:var(--text2);background:var(--surface);border-radius:9999px;padding:4px 12px;font-size:.75rem}.hint-toggle{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:9999px;padding:6px 14px;font-size:.75rem;font-weight:700;transition:background .15s,color .15s,border-color .15s}.hint-toggle:hover{border-color:var(--accent);color:var(--accent)}.hint-toggle.active{color:var(--green);border-color:var(--green);background:#1ed7601f}.engine-sidebar{flex-direction:column;gap:16px;display:flex}.engine-sidebar h3{color:var(--text2);text-transform:uppercase;letter-spacing:1.6px;font-size:.72rem;font-weight:700}.move-table{background:var(--surface);border-radius:8px;overflow:hidden}.move-table-header{background:var(--bg);color:var(--text2);text-transform:uppercase;letter-spacing:1.2px;grid-template-columns:32px 1fr 1fr;padding:8px 12px;font-size:.72rem;font-weight:700;display:grid}.move-table-body{max-height:400px;overflow-y:auto}.move-row{border-top:1px solid var(--border);grid-template-columns:32px 1fr 1fr;padding:5px 12px;font-family:Courier New,monospace;font-size:.82rem;display:grid}.move-row:hover{background:var(--surface2)}.move-num{color:var(--text2)}.move-cell{color:var(--text3)}.player-move{color:var(--accent);font-weight:700}.rematch-btn{width:100%;margin-top:8px}.not-found{text-align:center;color:var(--text2);padding:80px}.not-found h2{color:var(--text);margin-bottom:16px;font-size:1.5rem;font-weight:700}.board-wrapper{max-width:100%;position:relative}.board-section{max-width:640px}.analyzing-label{text-align:center;color:var(--accent);opacity:.75;pointer-events:none;font-size:.8rem;animation:1.2s ease-in-out infinite pulse;position:absolute;left:0;right:0}.board-section>div:first-child,.board-wrapper>div:first-child{max-width:100%!important}.loading-dots{animation:1.2s ease-in-out infinite pulse;display:inline-block}.train-this-btn{padding:10px 28px;font-size:.82rem}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--border)}@media (width<=900px){.main-content{padding:20px 16px}.learn-body,.engine-game{grid-template-columns:1fr}.learn-sidebar,.engine-sidebar{order:-1}.board-section,.engine-game{max-width:100%}}@media (width<=640px){.navbar{padding:0 16px}.nav-links a{padding:6px 10px;font-size:.78rem}.color-options{flex-direction:column;align-items:center}.skill-slider-ticks{left:5px;right:5px}.skill-tick-label{font-size:.6rem}.training-view{max-width:100%}.training-header{flex-direction:column;align-items:flex-start;gap:8px}}@media (width<=600px){.hero-brand{font-size:3.5rem}.feature-row{gap:16px}}.review-page{max-width:1300px;margin:0 auto;padding:24px 16px 48px}.game-importer{max-width:640px;margin:40px auto 0}.importer-title{color:var(--text);margin-bottom:8px;font-size:1.75rem;font-weight:700}.importer-subtitle{color:var(--text2);margin-bottom:28px;font-size:.9rem}.importer-tabs{gap:6px;margin-bottom:24px;display:flex}.importer-tab{background:var(--surface2);color:var(--text2);cursor:pointer;border:none;border-radius:9999px;padding:8px 22px;font-size:.85rem;font-weight:700;transition:background .15s,color .15s}.importer-tab.active{background:var(--accent);color:#fff}.importer-input-row{gap:8px;margin-bottom:12px;display:flex}.importer-input{flex:1}.importer-error{color:var(--red);margin-top:10px;font-size:.82rem}.game-list{flex-direction:column;gap:6px;max-height:420px;margin-top:16px;display:flex;overflow-y:auto}.game-list-item{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;transition:background .15s,border-color .15s;display:flex}.game-list-item:hover{background:var(--surface2);border-color:var(--accent)}.game-list-players{font-size:.875rem;font-weight:700}.game-list-meta{color:var(--text2);align-items:center;gap:8px;font-size:.75rem;display:flex}.game-result-badge{background:var(--surface2);border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:700}.game-time-class{text-transform:capitalize}.pgn-textarea{background:var(--bg3);border:1px solid var(--border);width:100%;min-height:200px;color:var(--text);resize:vertical;box-sizing:border-box;border-radius:8px;outline:none;padding:12px;font-family:Courier New,monospace;font-size:.78rem}.pgn-textarea:focus{border-color:var(--accent)}.review-ready{text-align:center;max-width:520px;margin:60px auto}.review-ready-header{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-bottom:12px;display:flex}.review-ready-header h2{color:var(--text);font-size:1.5rem;font-weight:700}.review-ready-date{color:var(--text2);font-size:.8rem}.result-badge{background:var(--surface2);color:var(--text);border-radius:6px;padding:3px 10px;font-size:.8rem;font-weight:700}.review-ready-desc{color:var(--text2);margin-bottom:28px;font-size:.9rem}.review-ready-actions{justify-content:center;gap:12px;display:flex}.analysis-progress-bar{background:var(--surface);border-radius:10px;margin-bottom:20px;padding:14px 16px}.analysis-progress-label{color:var(--text2);margin-bottom:10px;font-size:.82rem;display:block}.progress-bar-outer{background:var(--surface2);border-radius:9999px;height:6px;overflow:hidden}.progress-bar-inner{background:var(--accent);border-radius:9999px;height:100%;transition:width .3s}.review-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr minmax(280px,380px);align-items:start;gap:28px;display:grid}.review-board-col{flex-direction:column;grid-row:1/3;gap:14px;display:flex}.review-graph{grid-area:1/2}.review-moves{grid-area:2/2}.review-game-header{background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;font-weight:700;display:flex}.review-player{color:var(--text)}.review-nav{background:var(--surface);border-radius:9999px;justify-content:center;align-self:center;gap:8px;padding:8px;display:flex}.review-nav button{background:var(--surface2);width:38px;height:38px;color:var(--text);cursor:pointer;border:none;border-radius:50%;font-size:1rem;transition:background .15s}.review-nav button:hover{background:var(--surface3,var(--bg3))}.eval-graph-container{background:var(--surface);border-radius:10px;padding:14px 16px 10px}.eval-graph-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.eval-graph-label{color:var(--text2);text-transform:uppercase;letter-spacing:1.4px;font-size:.7rem;font-weight:700}.eval-graph-score{color:var(--accent);font-size:.875rem;font-weight:700}.eval-graph-svg{cursor:crosshair;border-radius:4px;width:100%;height:80px;display:block;overflow:hidden}.eval-graph-axis{color:var(--text3,var(--text2));justify-content:space-between;margin-top:4px;font-size:.65rem;display:flex}.review-move-list{background:var(--surface);border-radius:10px;flex:1;overflow:hidden}.review-move-list-header{background:var(--bg);color:var(--text2);text-transform:uppercase;letter-spacing:1.2px;grid-template-columns:32px 1fr 1fr;padding:8px 12px;font-size:.7rem;font-weight:700;display:grid}.review-move-list-body{max-height:440px;overflow-y:auto}.review-move-row{grid-template-columns:32px 1fr 1fr;align-items:center;display:grid}.review-move-row:nth-child(2n){background:var(--bg2,var(--bg))}.review-move-btn{color:var(--text2);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:5px 8px;font-family:Courier New,monospace;font-size:.82rem;transition:background .1s,color .1s}.review-move-btn:hover{background:var(--surface2);color:var(--text)}.review-move-btn.active{background:var(--accent);color:#fff;font-weight:700}.review-move-btn.empty{cursor:default}.move-classification{margin-left:2px;font-size:.7rem;font-weight:700}.classification-summary{background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.class-summary-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.class-summary-player{color:var(--text2);min-width:70px;font-size:.78rem;font-weight:700}.class-summary-badges{flex-wrap:wrap;gap:6px;display:flex}.class-badge{border-radius:9999px;align-items:center;gap:2px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}@media (width<=960px){.review-layout{grid-template-rows:auto;grid-template-columns:1fr}.review-board-col{order:2;grid-row:auto}.review-graph{order:1;grid-area:auto}.review-moves{order:3;grid-area:auto}}.review-board-wrapper{position:relative}.classification-badge{background:color-mix(in srgb, var(--badge-color) 20%, #000 80%);border:1px solid var(--badge-color);pointer-events:none;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;display:flex;position:absolute;bottom:8px;right:8px}.badge-symbol{color:var(--badge-color);font-size:.95rem;font-weight:700}.badge-label{color:var(--badge-color);text-transform:uppercase;letter-spacing:.8px;font-size:.72rem;font-weight:700}.review-move-counter{color:var(--text2);align-self:center;margin-left:4px;font-size:.75rem}.review-player-summaries{background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.player-summary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.player-summary-label{color:var(--text2);min-width:72px;font-size:.78rem;font-weight:700}.player-summary-counts{flex-wrap:wrap;gap:6px;display:flex}.class-pill{color:var(--pill-color);border:1px solid color-mix(in srgb, var(--pill-color) 40%, transparent);background:color-mix(in srgb, var(--pill-color) 12%, transparent);border-radius:9999px;align-items:center;gap:3px;padding:3px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.class-pill-bad{padding:4px 11px;font-size:.82rem}.review-reset-btn{align-self:center}.review-done-actions{justify-content:center;gap:8px;margin-top:24px;display:flex}.accuracy-banner{background:var(--surface);border-radius:10px;flex-direction:column;gap:6px;margin-bottom:10px;padding:10px 16px;display:flex}.accuracy-banner-players{color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;font-size:.85rem;font-weight:600;display:flex}.accuracy-banner-vs{color:var(--text2);font-size:.78rem;font-weight:400}.accuracy-banner-opening{font-size:.8rem}.accuracy-opening-link{color:var(--text2);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.accuracy-opening-link:hover{color:var(--text)}.accuracy-pill{color:var(--pill-color);border:1px solid color-mix(in srgb, var(--pill-color) 40%, transparent);background:color-mix(in srgb, var(--pill-color) 12%, transparent);border-radius:9999px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.move-mate{letter-spacing:.3px;margin-left:2px;font-size:.65rem;font-weight:700}.stats-page{flex-direction:column;gap:24px;max-width:1100px;margin:0 auto;padding:32px 24px 64px;display:flex}.stats-header{justify-content:space-between;align-items:center;display:flex}.stats-header h1{letter-spacing:-.02em;font-size:1.75rem;font-weight:700}.stats-overview{background:var(--surface);border-radius:14px;align-items:center;gap:32px;padding:24px 28px;display:flex}.stats-overview-numbers{flex-direction:column;gap:6px;display:flex}.stats-big-number{color:var(--text);font-size:2.5rem;font-weight:700;line-height:1}.stats-big-label{color:var(--text2);margin-bottom:4px;font-size:.8rem}.stats-detail-row{flex-wrap:wrap;gap:16px;font-size:.82rem;display:flex}.stats-correct{color:#1ed760;font-weight:600}.stats-incorrect{color:#f3727f;font-weight:600}.stats-unique{color:var(--text2);font-size:.78rem}.stats-section{background:var(--surface);border-radius:14px;padding:20px 24px}.stats-section h3{color:var(--text);margin:0 0 16px;font-size:1rem;font-weight:700}.stats-family-row{align-items:center;gap:12px;padding:8px 0;display:flex}.stats-family-row+.stats-family-row{border-top:1px solid var(--border)}.stats-family-label{flex-direction:column;gap:2px;min-width:160px;display:flex}.stats-family-name{color:var(--text);font-size:.8rem;font-weight:400}.stats-family-count{color:var(--text2);font-size:.7rem}.stats-family-bar-wrap{flex:1;align-items:center;gap:10px;display:flex}.stats-family-bar-track{background:#ffffff14;border-radius:4px;flex:1;height:8px;overflow:hidden}.stats-family-bar-fill{border-radius:4px;height:100%;transition:width .5s}.stats-family-pct{text-align:right;min-width:36px;font-size:.78rem;font-weight:700}.stats-family-nodata{color:var(--text2);font-size:.75rem}.opening-table{background:var(--surface);border-radius:14px;overflow:hidden}.opening-table-title{color:var(--text);margin:0;padding:20px 24px 0;font-size:1rem;font-weight:700}.opening-table-header{color:var(--text2);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:60px 1fr 80px 60px 80px;padding:8px 24px;font-size:.72rem;font-weight:700;display:grid}.opening-table-header span{cursor:pointer;-webkit-user-select:none;user-select:none}.opening-table-header span:hover{color:var(--text)}.opening-table-row{border-bottom:1px solid var(--border);grid-template-columns:60px 1fr 80px 60px 80px;align-items:center;padding:10px 24px;font-size:.82rem;display:grid}.opening-table-row:last-child{border-bottom:none}.opening-table-row:hover{background:var(--surface2)}.opening-table-name{white-space:nowrap;text-overflow:ellipsis;max-width:300px;color:var(--text);font-size:.8rem;overflow:hidden}.opening-table-empty{color:var(--text2);padding:24px;font-size:.82rem}.stats-empty{text-align:center;color:var(--text2);flex-direction:column;align-items:center;gap:16px;padding:64px 24px;display:flex}.stats-hero{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:28px;display:grid}.stats-hero-card{background:var(--surface2);border:1px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;display:flex}.stats-hero-card--green{background:linear-gradient(135deg, #1ed76014 0%, var(--surface2) 100%);border-color:#1ed7604d}.stats-hero-value{color:var(--text);letter-spacing:-.02em;font-size:2rem;font-weight:800;line-height:1}.stats-hero-card--green .stats-hero-value{color:var(--green)}.stats-hero-label{color:var(--text2);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:400}.stats-section-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:20px;padding:24px}.stats-section-title{border-bottom:1px solid var(--border);color:var(--text);margin-bottom:20px;padding-bottom:12px;font-size:1.1rem;font-weight:700}.stats-training-top{align-items:center;gap:28px;margin-bottom:24px;display:flex}.stats-tables-row{grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;display:grid}.stats-export{gap:8px;display:flex}.stats-export-btn{padding:6px 14px!important;font-size:.78rem!important}.stats-reset-section{border-top:1px solid var(--border);justify-content:center;gap:12px;margin-top:8px;padding:24px 0 12px;display:flex}.rating-chart-container{background:var(--bg2);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;padding:16px}.rating-chart-empty{text-align:center;color:var(--text2);padding:28px 16px;font-size:.85rem}@media (width<=768px){.stats-hero{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.stats-section-card{padding:16px}.stats-training-top{flex-direction:column;align-items:stretch}.stats-tables-row{grid-template-columns:1fr}.stats-export{flex-wrap:wrap}}@media (width<=480px){.stats-hero{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.stats-hero-value{font-size:1.5rem}}.replay-page{max-width:1100px;margin:0 auto;padding:24px 16px 48px}.replay-selector{max-width:620px;margin:0 auto}.replay-game-list{flex-direction:column;gap:6px;max-height:480px;margin-top:16px;display:flex;overflow-y:auto}.replay-game-list-hint{color:var(--text2);margin-bottom:4px;font-size:.82rem}.replay-game-card{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;gap:4px;width:100%;padding:12px 16px;transition:background .15s,border-color .15s;display:flex}.replay-game-card:hover{background:var(--surface2);border-color:var(--accent)}.replay-game-card-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.replay-game-card-meta{color:var(--text2);gap:10px;font-size:.72rem;display:flex}.replay-game-players{align-items:center;gap:8px;font-size:.875rem;font-weight:700;display:flex}.replay-game-rating{color:var(--text2);font-size:.75rem;font-weight:400}.replay-color-dot{border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.replay-color-dot.white{background:#f0d9b5}.replay-color-dot.black{background:#3a3a3a}.replay-game-result{border-radius:9999px;padding:2px 10px;font-size:.78rem;font-weight:700}.result-win{color:var(--green);background:#1ed7601f}.result-loss{color:var(--red);background:#f3727f1f}.result-draw{color:var(--orange);background:#ffa42b1f}.result-white,.result-black{color:var(--text2);background:#ffa42b0f}.replay-config{max-width:620px;margin:0 auto}.replay-config-game-info{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:flex}.replay-config-players{font-size:.9rem;font-weight:700}.replay-config-date{color:var(--text2);font-size:.78rem}.replay-config-result{color:var(--text2);font-size:.78rem;font-weight:700}.setup-section-note{color:var(--text2);font-size:.72rem;font-weight:400}.replay-mode-options{flex-wrap:wrap;gap:12px;display:flex}.replay-mode-btn{border:2px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border-radius:12px;flex:1;align-items:flex-start;gap:12px;min-width:200px;padding:16px 20px;transition:border-color .15s,background .15s;display:flex}.replay-mode-btn:hover{border-color:var(--accent)}.replay-mode-btn.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.replay-mode-icon{flex-shrink:0;font-size:1.5rem}.replay-mode-text{flex-direction:column;gap:4px;display:flex}.replay-mode-text strong{font-size:.95rem}.replay-mode-text small{color:var(--text2);font-size:.78rem}.replay-analysis-progress{text-align:center;max-width:500px;margin:0 auto}.replay-analysis-subtitle{color:var(--text2);margin-bottom:24px;font-size:.85rem}.replay-analysis-count{color:var(--text2);margin-top:12px;font-size:.82rem}.replay-progress-bar-wrap{background:var(--surface2);border-radius:9999px;height:8px;margin:0 auto;overflow:hidden}.replay-progress-bar{background:var(--accent);border-radius:9999px;height:100%;transition:width .3s}.replay-mistake-banner{background:#f3727f1a;border:1px solid #f3727f4d;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.mistake-message{flex-direction:column;gap:2px;display:flex}.mistake-message strong{color:var(--red);font-size:.88rem}.mistake-message span{color:var(--text2);font-size:.78rem}.mistake-actions{gap:8px;display:flex}.replay-eval-flash{text-align:center;border-radius:6px;padding:8px 14px;font-size:.82rem;font-weight:700}.replay-eval-flash.accepted{color:var(--green);background:#1ed7601f}.replay-eval-flash.rejected{color:var(--red);background:#f3727f1f}.replay-status-mistake{color:var(--orange)!important}.replay-status-onbook{color:var(--green)!important}.replay-status-offbook{color:var(--text2)!important}.replay-game-header{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.replay-game-players-label{flex:1;min-width:0;font-size:.85rem;font-weight:700}.replay-game-date{color:var(--text2);font-size:.72rem}.replay-game-result-badge{color:var(--text2);font-size:.75rem;font-weight:700}.replay-mode-indicator{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mode-pill{border-radius:9999px;align-items:center;gap:4px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.mode-pill.guided{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.mode-pill.unguided{color:var(--green);background:#1ed7601f}.replay-mistake-progress{color:var(--text2);font-size:.72rem}.replay-no-mistakes{color:var(--green);font-size:.72rem}.replay-book-indicator{border-radius:9999px;padding:2px 8px;font-size:.72rem;font-weight:700}.replay-book-indicator.on-book{color:var(--green);background:#1ed7601f}.replay-book-indicator.off-book{color:var(--text2);background:#c8c8c81f}.replay-summary{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}.replay-summary h4{color:var(--text2);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:10px;font-size:.72rem;font-weight:700}.replay-summary-row{border-top:1px solid var(--border);color:var(--text2);grid-template-columns:1fr 1fr 1fr;padding:4px 0;font-size:.78rem;display:grid}.replay-summary-row.fixed{color:var(--green)}.replay-summary-row.skipped{color:var(--text3)}.replay-move-list{max-height:300px;overflow-y:auto}.past-deviation{opacity:.45}.active-move{font-weight:700;color:var(--accent)!important}.mistake-move{color:var(--orange)!important}.mistake-symbol{color:var(--red);margin-left:2px;font-size:.7rem}@media (width<=900px){.replay-game{grid-template-columns:1fr!important}.replay-sidebar{order:-1}}.puzzle-page{max-width:1100px;margin:0 auto;padding:24px 16px 48px}.puzzle-selector{max-width:560px;margin:0 auto;padding-top:8px}.puzzle-selector-title{margin-bottom:6px;font-size:1.6rem;font-weight:700}.puzzle-selector-sub{color:var(--text2);margin-bottom:28px;font-size:.9rem}.puzzle-mode-cards{flex-direction:column;gap:12px;display:flex}.puzzle-mode-card{background:var(--surface2);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:16px;width:100%;padding:18px 20px;transition:border-color .15s,background .15s;display:flex}.puzzle-mode-card:hover{border-color:var(--green);background:var(--surface3)}.puzzle-mode-card--rated{border-color:var(--green)}.puzzle-mode-icon{flex-shrink:0;font-size:2rem}.puzzle-mode-text{flex-direction:column;gap:4px;display:flex}.puzzle-mode-text strong{color:var(--text);font-size:1rem}.puzzle-mode-text small{color:var(--text2);font-size:.8rem}.puzzle-theme-group{margin-bottom:20px}.puzzle-theme-group-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:10px;font-size:.75rem;font-weight:600}.puzzle-theme-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;display:grid}.puzzle-theme-btn{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;transition:border-color .15s,background .15s;display:flex}.puzzle-theme-btn:hover{border-color:var(--accent);background:var(--surface3)}.puzzle-theme-icon{font-size:1.4rem}.puzzle-theme-label{color:var(--text);font-size:.78rem;font-weight:400}.puzzle-topbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.puzzle-back{flex-shrink:0}.puzzle-topbar-center{text-align:center;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.puzzle-mode-badge{background:var(--surface2);border:1px solid var(--border);color:var(--text2);border-radius:999px;padding:3px 12px;font-size:.8rem;display:inline-block}.puzzle-topbar-stats{flex-shrink:0;gap:20px;display:flex}.puzzle-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.puzzle-stat-label{color:var(--text2);font-size:.7rem}.puzzle-stat-value{color:var(--green);font-size:1rem;font-weight:700}.puzzle-layout{align-items:flex-start;gap:20px;display:flex}.puzzle-board-col{flex-direction:column;flex:auto;gap:10px;min-width:0;max-width:min(560px,100vw - 32px);display:flex}.puzzle-board-wrapper{aspect-ratio:1;width:100%}.puzzle-side{flex:1;min-width:0;padding:4px 0}.puzzle-turn-banner{color:var(--green);background:#1ed7601a;border:1px solid #1ed76040;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-bottom:6px;padding:8px 16px;font-size:.9rem;font-weight:600;display:flex}.puzzle-turn-dot{background:var(--green);border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite piece-glow-pulse}.puzzle-meta{color:var(--text2);justify-content:center;align-items:center;font-size:.85rem;display:flex}.puzzle-rating-badge{background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.8rem}.puzzle-feedback{border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:8px 14px;font-size:.95rem;font-weight:600;display:flex}.puzzle-feedback--empty{background:0 0;min-height:44px}.puzzle-feedback--incorrect{color:var(--red);background:#f3727f26;border:1px solid #f3727f4d}.puzzle-feedback--correct{color:var(--green);background:#1ed7601f;border:1px solid #1ed76040}.puzzle-feedback--solved{color:var(--green);background:#1ed76026;border:1px solid #1ed76059;font-size:1rem}.puzzle-rating-change{border-radius:6px;padding:2px 8px;font-size:.9rem;font-weight:700}.puzzle-rating-change.pos{color:var(--green)}.puzzle-rating-change.neg{color:var(--red)}.puzzle-actions{gap:8px;display:flex}.puzzle-btn{flex:1;padding:10px 14px;font-size:.875rem}.puzzle-btn--next{flex:2}.puzzle-queue-building{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;padding:40px 24px;display:flex}.puzzle-queue-building p{color:var(--text);margin:0;font-size:1rem;font-weight:600}.puzzle-queue-building span{color:var(--text2);font-size:.82rem}.puzzle-loading{aspect-ratio:1;background:var(--surface2);width:100%;height:100%;color:var(--text2);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:.9rem;display:flex}.puzzle-spinner{border:3px solid var(--border);border-top-color:var(--green);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes piece-glow-pulse{0%,to{opacity:.7}50%{opacity:1}}.puzzle-tags{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.puzzle-tag{background:var(--surface2);border:1px solid var(--border);color:var(--text2);border-radius:999px;padding:3px 9px;font-size:.72rem}.puzzle-game-link{color:var(--accent);font-size:.78rem;text-decoration:none}.puzzle-game-link:hover{text-decoration:underline}.stats-puzzle-section{border-top:1px solid var(--border);margin-top:32px;padding-top:24px}.stats-puzzle-section h3{margin-bottom:16px}.puzzle-stats-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:16px;display:grid}.puzzle-stat-card{background:var(--surface2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.puzzle-stat-card-value{color:var(--green);font-size:1.5rem;font-weight:700}.puzzle-stat-card-label{color:var(--text2);font-size:.75rem}.puzzle-history-list{flex-direction:column;gap:6px;max-height:220px;display:flex;overflow-y:auto}.puzzle-history-row{background:var(--surface2);border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:.82rem;display:flex}.puzzle-history-result{min-width:50px;font-weight:600}.puzzle-history-result.solved{color:var(--green)}.puzzle-history-result.failed{color:var(--red)}.puzzle-history-meta{color:var(--text2);flex:1}.puzzle-history-change{text-align:right;min-width:36px;font-weight:600}.puzzle-history-change.pos{color:var(--green)}.puzzle-history-change.neg{color:var(--red)}.puzzle-timed-divider{color:var(--text2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin:6px 0 2px;font-size:.72rem;font-weight:600;display:flex}.puzzle-timed-divider:before,.puzzle-timed-divider:after{content:"";background:var(--border);flex:1;height:1px}.puzzle-mode-card--timed{border-color:color-mix(in srgb, var(--accent) 40%, var(--border));justify-content:space-between}.puzzle-mode-card--timed:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface2))}.puzzle-timed-badge{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:9999px;flex-shrink:0;padding:3px 8px;font-size:.85rem;font-weight:700}.puzzle-timer{color:var(--text2);text-align:center;font-variant-numeric:tabular-nums;min-width:36px;font-size:1rem;font-weight:700;transition:color .2s}.puzzle-timer--warning{color:var(--red)}.puzzle-sprint-done{text-align:center;flex-direction:column;align-items:center;gap:20px;padding-top:32px;display:flex}.puzzle-sprint-done-title{font-size:1.6rem;font-weight:700}.puzzle-sprint-done-sub{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-top:-14px;font-size:.8rem;font-weight:600}.puzzle-sprint-ring{border:4px solid var(--accent);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:120px;height:120px;display:flex}.puzzle-sprint-score{font-size:2rem;font-weight:800;line-height:1}.puzzle-sprint-score-label{color:var(--text2);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.puzzle-sprint-stats{grid-template-columns:1fr 1fr;gap:14px 28px;display:grid}.puzzle-sprint-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.puzzle-sprint-stat-num{font-size:1.5rem;font-weight:700;line-height:1}.puzzle-sprint-stat-lbl{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.puzzle-sprint-grade{color:var(--text2);font-size:1rem}.puzzle-sprint-actions{flex-direction:column;gap:8px;width:100%;max-width:220px;display:flex}.coord-page{flex-direction:column;align-items:center;gap:20px;max-width:560px;margin:0 auto;padding:24px 16px 48px;display:flex}.coord-idle,.coord-done{text-align:center;flex-direction:column;align-items:center;gap:16px;padding-top:40px;display:flex}.coord-title{font-size:2rem;font-weight:700}.coord-sub{color:var(--text2);max-width:400px;line-height:1.6}.coord-start-btn{min-width:160px;font-size:1rem}.coord-header{justify-content:space-between;align-items:center;width:100%;display:flex}.coord-progress{color:var(--text2);font-size:.85rem}.coord-live-score{align-items:center;gap:4px;font-size:.9rem;display:flex}.coord-live-correct{color:var(--green);font-weight:600}.coord-live-sep{color:var(--text2)}.coord-live-wrong{color:var(--red);font-weight:600}.coord-target{letter-spacing:.05em;color:var(--text);justify-content:center;align-items:center;min-height:4rem;font-family:Courier New,monospace;font-size:3.5rem;font-weight:800;line-height:1;transition:color .15s;display:flex}.coord-target--correct{color:var(--green)}.coord-target--wrong{color:var(--red)}.coord-board-wrap{cursor:pointer;width:100%}.coord-done-title{font-size:1.6rem;font-weight:700}.coord-accuracy-ring{border:4px solid var(--accent);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:120px;height:120px;display:flex}.coord-accuracy-pct{font-size:1.8rem;font-weight:800;line-height:1}.coord-accuracy-label{color:var(--text2);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.coord-score-summary{gap:32px;display:flex}.coord-score-item{flex-direction:column;align-items:center;gap:2px;display:flex}.coord-score-num{font-size:1.6rem;font-weight:700}.coord-score-item--correct .coord-score-num{color:var(--green)}.coord-score-item--wrong .coord-score-num{color:var(--red)}.coord-score-lbl{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.coord-grade{color:var(--text2);font-size:1rem}.coord-mode-grid{grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:400px;display:grid}.coord-mode-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.coord-mode-card:hover{border-color:var(--accent)}.coord-mode-card--active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.coord-mode-label{color:var(--text);font-size:.95rem;font-weight:700}.coord-mode-tag{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:600}.coord-mode-desc{color:var(--text2);margin-top:2px;font-size:.75rem;line-height:1.4}.coord-timer{color:var(--text2);text-align:center;min-width:36px;font-size:1.1rem;font-weight:700;transition:color .2s}.coord-timer--warning{color:var(--red)}.coord-mode-badge{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:600}.training-header-actions{align-items:center;gap:8px;display:flex}.timer-toggle{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:.78rem;transition:background .15s,color .15s,border-color .15s}.timer-toggle--on{border-color:var(--accent);color:var(--accent);background:#4a9eff26}.timer-bar-wrap{align-items:center;gap:8px;width:100%;display:flex}.timer-bar{background:var(--surface2);border-radius:3px;flex:1;height:6px;overflow:hidden}.timer-bar-fill{border-radius:3px;height:100%;transition:width 1s linear,background .3s}.timer-label{color:var(--text2);text-align:right;min-width:24px;font-size:.8rem;font-weight:600}.gh-overview-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:28px;display:grid}.gh-stat-card{background:var(--surface2);border:1px solid var(--border);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:16px 12px;display:flex}.gh-stat-value{color:var(--text);letter-spacing:-.02em;font-size:1.6rem;font-weight:800;line-height:1}.gh-stat-label{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;font-weight:400}.gh-text-win{color:#1ed760}.gh-text-loss{color:#f3727f}.gh-text-draw{color:var(--text2)}.gh-block{margin-bottom:28px}.gh-block h3{color:var(--text);margin:0 0 12px;font-size:.95rem;font-weight:700}.gh-wdl-track{background:var(--surface2);border-radius:5px;gap:2px;height:10px;margin-bottom:8px;display:flex;overflow:hidden}.gh-wdl-seg{height:100%;transition:width .4s}.gh-wdl-win{background:#1ed760}.gh-wdl-draw{background:#777}.gh-wdl-loss{background:#f3727f}.gh-wdl-labels{gap:20px;font-size:.78rem;font-weight:600;display:flex}.gh-label-win{color:#1ed760}.gh-label-draw{color:var(--text2)}.gh-label-loss{color:#f3727f}.gh-chart-hint{color:var(--text2);margin-top:8px;font-size:.72rem}.gh-opening-table{border:1px solid var(--border);border-radius:10px;overflow:hidden}.gh-opening-header,.gh-opening-row{grid-template-columns:52px 1fr 56px 56px 68px;align-items:center;gap:8px;padding:8px 16px;font-size:.8rem;display:grid}.gh-opening-header{background:var(--surface2);text-transform:uppercase;letter-spacing:.06em;color:var(--text2);border-bottom:1px solid var(--border);font-size:.68rem;font-weight:700}.gh-opening-row{border-bottom:1px solid var(--border);color:var(--text)}.gh-opening-row:last-child{border-bottom:none}.gh-opening-row:hover{background:var(--surface2)}.gh-opening-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text);overflow:hidden}.gh-eco-link{color:var(--accent);font-size:.72rem;font-weight:700;text-decoration:none}.gh-eco-link:hover{text-decoration:underline}.gh-recent-list{border:1px solid var(--border);border-radius:10px;overflow:hidden}.gh-recent-row{border-bottom:1px solid var(--border);grid-template-columns:32px 1fr 1fr 54px;align-items:center;gap:12px;padding:9px 16px;font-size:.8rem;display:grid}.gh-recent-row:last-child{border-bottom:none}.gh-recent-row:hover{background:var(--surface2)}.gh-result-pill{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.65rem;font-weight:800;display:flex}.gh-result-win{color:#1ed760;background:#1ed76026}.gh-result-loss{color:#f3727f;background:#f3727f26}.gh-result-draw{color:var(--text2);background:#ffffff12}.gh-recent-opponent{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.gh-recent-opening{color:var(--text2);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.gh-recent-acc{color:var(--text2);text-align:right;font-size:.75rem}.importer-count-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.importer-count-label{color:var(--text2);font-size:.75rem;font-weight:400}.importer-count-btn{border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;min-height:unset;border-radius:6px;padding:4px 10px;font-size:.72rem;transition:background .15s,color .15s,border-color .15s}.importer-count-btn:hover{background:var(--surface);color:var(--text)}.importer-count-btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}@media (width<=768px){.gh-opening-header,.gh-opening-row{grid-template-columns:44px 1fr 44px 44px 54px;padding:8px 10px;font-size:.72rem}.gh-recent-row{grid-template-columns:28px 1fr 48px;padding:8px 10px}.gh-recent-opening{display:none}}@media (width<=480px){.gh-stat-value{font-size:1.3rem}.gh-opening-header,.gh-opening-row{grid-template-columns:38px 1fr 38px 54px;padding:6px 8px;font-size:.68rem}.gh-opening-header span:last-child,.gh-opening-row span:last-child{display:none}}.da-root{border-top:1px solid var(--border);margin-top:28px;padding-top:24px}.da-section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text2);margin:0 0 16px;font-size:.72rem;font-weight:700}.da-subsection-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text2);margin:24px 0 10px;font-size:.7rem;font-weight:600}.da-insights-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:4px;display:grid}.da-insight-card{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.da-insight-card--positive{border-left-color:#1ed760}.da-insight-card--warning{border-left-color:#f3727f}.da-insight-card--neutral{border-left-color:var(--accent)}.da-insight-icon{color:var(--text2);flex-shrink:0;font-size:.95rem;line-height:1.5}.da-insight-text{color:var(--text2);margin:0;font-size:.78rem;line-height:1.55}.da-charts-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:0;display:grid}.da-chart-box{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px 14px 10px}.da-chart-box--wide{grid-column:1/-1}.da-chart-title{color:var(--text);margin:0 0 10px;font-size:.8rem;font-weight:700}.da-chart-empty{text-align:center;color:var(--text2);padding:28px 12px;font-size:.8rem}.da-legend-hint{color:var(--text2);margin:6px 0 0;font-size:.68rem;line-height:1.4}.da-scatter-legend{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.da-scatter-legend-item{color:var(--text2);align-items:center;gap:5px;font-size:.72rem;display:flex}.da-scatter-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.da-scatter-reg{opacity:.8}.da-scatter-line{background:var(--accent);opacity:.65;border-top:2px dashed var(--accent);background:0 0;border-radius:1px;flex-shrink:0;width:18px;height:2px;display:inline-block}@media (width<=640px){.da-charts-row{grid-template-columns:1fr}.da-chart-box--wide{grid-column:1}.da-insights-grid{grid-template-columns:1fr}}@media (width<=480px){.da-insight-text{font-size:.74rem}.da-chart-title{font-size:.75rem}}.bulk-page{max-width:560px;margin:0 auto;padding:32px 16px 64px}.bulk-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:20px;padding:28px 28px 24px;display:flex}.bulk-card-title{color:var(--text);margin:0;font-size:1.25rem;font-weight:700}.bulk-subtitle{color:var(--text2);margin:0;font-size:.85rem;line-height:1.55}.bulk-field{flex-direction:column;gap:8px;display:flex}.bulk-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text2);font-size:.75rem;font-weight:600}.bulk-toggle{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.bulk-toggle-btn{color:var(--text2);background:var(--surface2);cursor:pointer;border:none;flex:1;min-height:36px;padding:8px 0;font-size:.85rem;font-weight:400;transition:background .15s,color .15s}.bulk-toggle-btn+.bulk-toggle-btn{border-left:1px solid var(--border)}.bulk-toggle-btn.active{background:var(--accent);color:#000;font-weight:700}.bulk-start-btn{width:100%;margin-top:4px}.bulk-info-list{flex-direction:column;gap:5px;margin:0;padding:0 0 0 18px;display:flex}.bulk-info-list li{color:var(--text2);font-size:.78rem;line-height:1.45}.bulk-track{background:var(--surface2);border-radius:4px;height:8px;margin-top:4px;overflow:hidden}.bulk-track--move{height:4px;margin-top:3px}.bulk-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .3s}.bulk-track--move .bulk-fill{background:var(--accent)}.bulk-progress-block{flex-direction:column;gap:6px;display:flex}.bulk-progress-row{justify-content:space-between;align-items:center;display:flex}.bulk-progress-label{color:var(--text);font-size:.82rem;font-weight:600}.bulk-progress-label--sm{color:var(--text2);font-size:.75rem;font-weight:400}.bulk-progress-counts{gap:10px;font-size:.78rem;font-weight:600;display:flex}.bulk-count-ok{color:#1ed760}.bulk-count-skip{color:var(--text2)}.bulk-count-err{color:#f3727f}.bulk-current-block{background:var(--surface2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.bulk-current-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.bulk-controls{gap:10px;display:flex}.bulk-tip{color:var(--text2);margin:0;font-size:.75rem;line-height:1.5}.bulk-card--done{text-align:center;align-items:center}.bulk-done-icon{color:#1ed760;background:#1ed76026;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.5rem;display:flex}.bulk-done-title{color:var(--text);margin:0;font-size:1.3rem;font-weight:700}.bulk-done-stats{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.bulk-done-stat{border-radius:20px;padding:4px 12px;font-size:.82rem;font-weight:600}.bulk-done-stat--ok{color:#1ed760;background:#1ed76026}.bulk-done-stat--skip{background:var(--surface2);color:var(--text2)}.bulk-done-stat--err{color:#f3727f;background:#f3727f1f}.bulk-done-hint{color:var(--text2);max-width:380px;margin:0;font-size:.82rem;line-height:1.55}.bulk-done-actions{gap:10px;display:flex}.importer-header-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.bulk-link{text-transform:uppercase;letter-spacing:1.2px;color:var(--text2);white-space:nowrap;border:1px solid var(--border2);border-radius:9999px;flex-shrink:0;align-items:center;gap:5px;padding:7px 14px;font-size:.72rem;font-weight:700;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.bulk-link:hover{color:var(--text);border-color:var(--text);background:#8080800f;text-decoration:none}@media (width<=480px){.bulk-card{padding:20px 16px 18px}.bulk-done-actions{flex-direction:column;width:100%}.bulk-done-actions a,.bulk-done-actions button{width:100%}.importer-header-row{flex-direction:column;gap:4px}}.puzzle-mode-card--survival{border-color:var(--red)}.puzzle-lives{align-items:center;gap:4px;display:flex}.puzzle-life{color:var(--red);font-size:1.1rem;transition:filter .2s}.puzzle-life--lost{filter:grayscale();opacity:.35}.puzzle-theme-acc{align-items:center;gap:4px;width:100%;margin-top:4px;display:flex}.puzzle-theme-acc-pct{color:var(--text2);text-align:right;min-width:26px;font-size:.65rem}.puzzle-mode-card--weakness{border-color:var(--orange)}.puzzle-theme-accuracy-list{flex-direction:column;gap:6px;margin-top:4px;display:flex}.puzzle-theme-acc-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:4px 0;display:flex}.puzzle-theme-acc-row:last-child{border-bottom:none}.puzzle-theme-acc-label{min-width:130px;color:var(--text);font-family:monospace;font-size:.82rem}.puzzle-theme-acc-bar-track{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.puzzle-theme-acc-bar{background:var(--green);border-radius:3px;height:100%}.puzzle-theme-acc-pct{text-align:right;min-width:36px;color:var(--text);font-size:.8rem;font-weight:600}.puzzle-theme-acc-attempts{color:var(--text2);min-width:32px;font-size:.72rem}.puzzle-autopsy{background:var(--surface2);border:1px solid var(--border);border-radius:10px;margin-top:8px;padding:12px 16px}.puzzle-autopsy-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:10px;font-size:.75rem;font-weight:600}.autopsy-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;display:flex}.autopsy-row:last-child{border-bottom:none}.autopsy-san{min-width:52px;font-family:monospace;font-size:.9rem;font-weight:600}.autopsy-best-badge{background:var(--green);color:#000;white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:.65rem;font-weight:700}.autopsy-bar-track{background:var(--surface3);border-radius:4px;flex:1;height:8px;overflow:hidden}.autopsy-bar-fill{background:var(--green);border-radius:4px;height:100%;transition:width .4s}.autopsy-bar-fill--neg{background:var(--red)}.autopsy-score{text-align:right;min-width:44px;color:var(--text2);font-family:monospace;font-size:.82rem;font-weight:600}.puzzle-mode-card--daily{border-color:var(--accent)}.puzzle-mode-card--daily-done{border-color:var(--green);opacity:.8}.puzzle-daily-badge{background:var(--accent);color:#fff;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700}.puzzle-feedback--exploring{background:color-mix(in srgb, var(--accent) 12%, transparent);border-left:3px solid var(--accent);color:var(--accent)}.puzzle-explore-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--text2);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;transition:border-color .15s,color .15s;display:flex}.puzzle-explore-toggle.active{border-color:var(--accent);color:var(--accent)}.how-it-works{background:var(--bg2);box-shadow:var(--shadow-card);border-radius:8px;margin:16px 0 8px;overflow:hidden}.how-it-works summary{color:var(--text2);cursor:pointer;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:1.4px;align-items:center;gap:10px;padding:15px 20px;font-size:.75rem;font-weight:700;list-style:none;transition:color .15s,background .15s;display:flex}.how-it-works summary:hover{color:var(--text);background:#8080800f}.how-it-works summary::-webkit-details-marker{display:none}.how-it-works summary:before{content:"?";background:var(--green);color:#000;text-transform:none;letter-spacing:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:.68rem;font-weight:800;display:inline-flex}.how-it-works[open]>summary{color:var(--text);border-bottom:1px solid var(--border)}.how-it-works-body{color:var(--text2);padding:16px 20px 18px;font-size:.875rem;line-height:1.6}.how-it-works-body p{margin:0 0 10px}.how-it-works-body p:last-child{margin-bottom:0}.how-it-works-body strong{color:var(--text);font-weight:700}.how-it-works-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:8px;margin-top:12px;display:grid}.how-it-works-card{background:var(--bg3);border-radius:6px;padding:10px 12px}.how-it-works-card-title{color:var(--text);margin-bottom:4px;font-size:.875rem;font-weight:700}.how-it-works-card-desc{color:var(--text2);font-size:.75rem;line-height:1.5}.how-it-works-steps{flex-direction:column;gap:8px;margin:8px 0;display:flex}.how-it-works-step{align-items:flex-start;gap:10px;display:flex}.how-it-works-step-num{background:var(--green);color:#000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:22px;height:22px;margin-top:1px;font-size:.68rem;font-weight:800;display:inline-flex}.how-it-works-step-text{flex:1}.masters-panel{background:var(--bg2);border:1px solid var(--border);border-radius:8px;margin-top:14px;padding:12px 14px}.masters-panel--loading{opacity:.7;align-items:center;gap:10px;padding:10px 14px;display:flex}.masters-panel-spinner{color:var(--text2);font-size:.8rem}.masters-panel-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.masters-panel-title{text-transform:uppercase;letter-spacing:1.2px;color:var(--text2);font-size:.7rem;font-weight:700}.masters-panel-count{color:var(--text2);font-size:.75rem}.masters-panel-empty{color:var(--text2);margin:4px 0 0;font-size:.82rem}.masters-wdl-labels{gap:14px;margin-bottom:10px;font-size:.75rem;font-weight:600;display:flex}.masters-wdl-w{color:var(--text)}.masters-wdl-d{color:var(--text2)}.masters-wdl-b{color:#f3727f}.masters-moves-list{margin-bottom:10px}.masters-moves-head{text-transform:uppercase;letter-spacing:.8px;color:var(--text2);border-bottom:1px solid var(--border);grid-template-columns:48px 1fr 60px 44px;gap:4px;margin-bottom:2px;padding:2px 4px 4px;font-size:.65rem;font-weight:700;display:grid}.masters-move-row{cursor:pointer;border-radius:5px;grid-template-columns:48px 1fr 60px 44px;align-items:center;gap:4px;padding:5px 4px;font-size:.82rem;transition:background .1s;display:grid}.masters-move-row:hover{background:var(--surface2)}.masters-move-san{color:var(--text);font-weight:700}.masters-move-pct{color:var(--text2);font-size:.78rem}.masters-move-rating{color:var(--text2);font-size:.75rem}.masters-move-wdl{font-size:.75rem;font-weight:600}.mwdl-w{color:var(--text)}.mwdl-d{color:var(--text2)}.mwdl-l{color:#f3727f}.mwdl-sep{color:var(--border2);margin:0 1px}.masters-top-games{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.masters-top-games-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text2);margin-bottom:5px;font-size:.65rem;font-weight:700}.masters-game-link{color:var(--text);border-radius:4px;justify-content:space-between;align-items:center;padding:4px;font-size:.78rem;text-decoration:none;transition:background .1s;display:flex}.masters-game-link:hover{background:var(--surface2);color:var(--accent)}.masters-game-players{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.masters-game-meta{flex-shrink:0;gap:8px;display:flex}.masters-game-year{color:var(--text2)}.masters-game-result{font-weight:600}.opening-card-wrap{position:relative}.rep-toggle-btn{border:1.5px solid var(--border2);background:var(--bg2);width:26px;height:26px;color:var(--text2);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;line-height:1;transition:all .15s;display:flex;position:absolute;top:8px;right:8px}.rep-toggle-btn:hover{border-color:var(--green);color:var(--green);background:var(--surface2)}.rep-toggle-btn.active{background:var(--green);border-color:var(--green);color:#000}.opening-card-wrap.in-repertoire .opening-card{border:1px solid var(--green)}.repertoire-page{max-width:1100px;margin:0 auto;padding:0 20px 40px}.rep-tab-count{background:var(--green);color:#000;border-radius:9999px;margin-left:5px;padding:1px 6px;font-size:.65rem;font-weight:700}.rep-build-bar{flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0 12px;display:flex}.rep-build-count{color:var(--text2);flex:1;font-size:.85rem}.rep-clear-btn{font-size:.8rem}.rep-empty{text-align:center;color:var(--text2);padding:40px 20px;font-size:.9rem}.rep-empty strong{color:var(--text)}.rep-badge-link{color:var(--green);border:1px solid var(--green);border-radius:9999px;margin-top:6px;padding:2px 10px;font-size:.78rem;text-decoration:none;transition:background .15s;display:inline-block}.rep-badge-link:hover{background:#1ed76014}.rep-cov-summary{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.rep-cov-stat{background:var(--surface2);border-radius:10px;flex-direction:column;gap:4px;min-width:120px;padding:14px 18px;display:flex}.rep-cov-stat-value{color:var(--text);font-size:1.6rem;font-weight:700}.rep-cov-stat-label{color:var(--text2);font-size:.75rem}.rep-cov-section-title{color:var(--text);margin:20px 0 10px;font-size:.9rem;font-weight:700}.rep-cov-section-title--weak{color:#f5a623}.rep-cov-section-title--mastered{color:var(--green)}.rep-cov-families{flex-direction:column;gap:8px;display:flex}.rep-cov-family-row{align-items:center;gap:12px;font-size:.82rem;display:flex}.rep-cov-family-label{width:100px;color:var(--text2)}.rep-cov-family-count{width:60px;color:var(--text);text-align:right;font-weight:600}.rep-cov-family-bar-track{background:var(--surface2);border-radius:4px;flex:1;height:8px;overflow:hidden}.rep-cov-family-bar-fill{background:var(--green);border-radius:4px;height:100%;transition:width .4s}.rep-cov-opening-list{flex-direction:column;gap:4px;display:flex}.rep-cov-opening-row{background:var(--surface2);border-radius:6px;align-items:center;gap:10px;padding:6px 8px;font-size:.82rem;display:flex}.rep-cov-opening-name{color:var(--text);flex:1}.rep-cov-opening-acc{text-align:right;min-width:36px;font-weight:700}.rep-train-setup{max-width:640px;margin:0 auto;padding-top:16px}.rep-train-title{color:var(--text);margin:0 0 6px;font-size:1.6rem;font-weight:700}.rep-train-subtitle{color:var(--text2);margin:0 0 28px;font-size:.85rem}.rep-train-cards{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.rep-train-card{background:var(--surface2);cursor:pointer;text-align:center;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;padding:28px 20px;transition:background .15s,transform .15s,box-shadow .15s;display:flex}.rep-train-card:hover{background:var(--surface3);transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.rep-train-card--accent{border-color:var(--accent)}.rep-train-piece{font-size:2.4rem;line-height:1}.rep-train-card-title{color:var(--text);margin-top:12px;margin-bottom:3px;font-size:.95rem;font-weight:700}.rep-train-card-sub{color:var(--text2);font-size:.72rem}.train-mode-toggle{background:var(--surface2);border-radius:10px;gap:8px;margin:16px 0 4px;padding:4px;display:flex}.train-mode-btn{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-size:.88rem;font-weight:600;transition:background .15s,color .15s;display:flex}.train-mode-btn.active{background:var(--bg);color:var(--text);box-shadow:0 1px 4px #00000040}.train-mode-count{background:var(--surface3);color:var(--text2);border-radius:9999px;padding:1px 7px;font-size:.72rem;font-weight:700}.train-mode-count.rep{background:var(--green);color:#000}.train-mode-count.empty{opacity:.5}.color-picker-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:4px;display:grid}.color-picker-card{background:var(--surface2);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;padding:28px 16px;transition:background .15s,transform .15s,box-shadow .15s;display:flex}.color-picker-card:hover{background:var(--surface3);transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.color-picker-card--accent{border-color:var(--accent)}.color-picker-piece{font-size:2.6rem;line-height:1}.color-picker-title{color:var(--text);margin-top:12px;margin-bottom:3px;font-size:.95rem;font-weight:700}.color-picker-sub{color:var(--text2);font-size:.72rem}.masters-page{max-width:900px;margin:0 auto;padding:0 20px 40px}.masters-section-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--text2);margin-bottom:10px;font-size:.7rem;font-weight:700}.masters-featured-wrap{margin:16px 0}.masters-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.masters-game-card{background:var(--surface2);cursor:pointer;border:1px solid #0000;border-radius:12px;flex-direction:column;gap:6px;padding:18px 20px;transition:background .15s,transform .15s,box-shadow .15s,border-color .15s;display:flex}.masters-game-card:hover{background:var(--surface3);transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.masters-game-card--featured{background:var(--surface3);border-color:gold}.masters-game-card--dimmed{opacity:.7}.masters-card-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.masters-difficulty{text-transform:uppercase;letter-spacing:.8px;font-size:.72rem;font-weight:700}.masters-card-year{color:var(--text2);font-size:.75rem}.masters-card-title{color:var(--text);margin:0;font-size:1.05rem;font-weight:700}.masters-card-players{color:var(--text2);margin:0;font-size:.82rem}.masters-card-desc{color:var(--text2);flex:1;margin:4px 0 0;font-size:.8rem;line-height:1.5}.masters-card-play{color:var(--green);margin-top:6px;font-size:.78rem;font-weight:600}.mc-challenge{max-width:1100px;margin:0 auto;padding:0 20px 40px}.mc-header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px;padding:12px 0 16px;display:flex}.mc-back-btn{border:1px solid var(--border2);color:var(--text2);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:6px 12px;font-size:.82rem;transition:all .15s}.mc-back-btn:hover{border-color:var(--text);color:var(--text)}.mc-game-info{flex:1;min-width:0}.mc-game-title{color:var(--text);font-size:1rem;font-weight:700;display:block}.mc-game-players{color:var(--text2);font-size:.78rem;display:block}.mc-progress-wrap{flex-direction:column;gap:4px;min-width:160px;display:flex}.mc-progress-bar{background:var(--surface2);border-radius:3px;height:6px;overflow:hidden}.mc-progress-fill{background:var(--green);border-radius:3px;height:100%;transition:width .3s}.mc-progress-label{color:var(--text2);text-align:right;font-size:.72rem}.mc-body{align-items:flex-start;gap:20px;display:flex}.mc-board-col{flex-direction:column;flex:none;gap:10px;display:flex}.mc-sidebar{background:var(--surface2);border-radius:10px;flex:1;min-width:0;padding:14px 16px}.mc-sidebar-title{text-transform:uppercase;letter-spacing:1.2px;color:var(--text2);margin-bottom:10px;font-size:.7rem;font-weight:700}.mc-sidebar-empty{color:var(--text2);font-size:.82rem}.mc-turn-badge{color:var(--text2);background:var(--surface2);text-align:center;border-radius:6px;padding:6px 10px;font-size:.8rem;font-weight:600}.mc-turn-badge--yours{color:var(--green);background:#1ed76014;border:1px solid #1ed76040}.mc-last-score{background:var(--surface2);border-left:3px solid var(--border2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;transition:border-color .2s;display:flex}.mc-last-score-symbol{flex-shrink:0;font-size:1rem}.mc-last-score-label{color:var(--text);font-weight:700}.mc-last-score-cp{color:var(--text2);font-size:.78rem}.mc-last-score-master{color:var(--text2);width:100%;font-size:.78rem}.mc-evaluating{color:var(--text2);text-align:center;opacity:.8;font-size:.78rem}.mc-score-table{flex-direction:column;gap:2px;max-height:400px;display:flex;overflow-y:auto}.mc-score-row{border-radius:4px;align-items:center;gap:6px;padding:4px 6px;font-size:.8rem;transition:background .1s;display:flex}.mc-score-row:hover{background:var(--surface3)}.mc-score-move-num{color:var(--text2);min-width:30px;font-size:.72rem}.mc-score-your{color:var(--text);font-weight:700}.mc-score-master{color:var(--text2);font-size:.75rem}.mc-score-label{flex:1;font-weight:600}.mc-score-cp{color:var(--text2);margin-left:auto;font-size:.72rem}.mc-review{max-width:700px;margin:0 auto;padding:24px 0}.mc-review-header{margin-bottom:20px}.mc-review-title{color:var(--text);margin:0 0 4px;font-size:1.5rem;font-weight:700}.mc-review-subtitle{color:var(--text2);margin:0;font-size:.85rem}.mc-review-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;display:grid}.mc-stat-card{background:var(--surface2);text-align:center;border-radius:10px;padding:14px 12px}.mc-stat-card--highlight{border:1px solid var(--green)}.mc-stat-value{color:var(--text);font-size:1.4rem;font-weight:700;display:block}.mc-stat-label{color:var(--text2);margin-top:3px;font-size:.72rem;display:block}.mc-review-moments{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.mc-moment{border-radius:6px;padding:8px 12px;font-size:.82rem}.mc-moment--best{border-left:3px solid var(--green);color:var(--text);background:#1ed76014}.mc-moment--worst{color:var(--text);background:#f3727f14;border-left:3px solid #f3727f}.mc-review-move-table{margin-bottom:24px}.mc-review-move-table h3{color:var(--text);margin:0 0 10px;font-size:.95rem;font-weight:700}.mc-review-actions{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.mc-body{flex-direction:column}.mc-sidebar{width:100%}.mc-review-stats{grid-template-columns:repeat(2,1fr)}.masters-grid,.rep-train-cards,.color-picker-grid{grid-template-columns:1fr}.rep-cov-summary{flex-direction:column}.weakness-cta{flex-direction:column;align-items:flex-start;gap:8px}.weakness-row{flex-wrap:wrap}}.weakness-cta{background:color-mix(in srgb, var(--orange,#f59e0b) 8%, var(--surface2));border:1px solid color-mix(in srgb, var(--orange,#f59e0b) 35%, var(--border));border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;padding:12px 16px;display:flex}.weakness-cta-icon{flex-shrink:0;font-size:1.5rem}.weakness-cta-body{flex-direction:column;flex:1;gap:2px;min-width:160px;display:flex}.weakness-cta-body strong{color:var(--text);font-size:.9rem}.weakness-cta-body span{color:var(--text2);font-size:.8rem}.weakness-cta-btn{flex-shrink:0;padding:7px 16px;font-size:.82rem}.weakness-breakdown{flex-direction:column;gap:16px;display:flex}.weakness-list{flex-direction:column;gap:10px;display:flex}.weakness-row{grid-template-columns:1fr auto auto;align-items:center;gap:10px;display:grid}.weakness-row-info{flex-direction:column;gap:1px;min-width:0;display:flex}.weakness-theme-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.weakness-theme-meta{color:var(--text2);font-size:.75rem}.weakness-bar-track{background:var(--surface3,#80808026);border-radius:999px;min-width:80px;height:6px;overflow:hidden}.weakness-bar-fill{background:var(--orange,#f59e0b);border-radius:999px;min-width:4px;height:100%;transition:width .4s}.weakness-train-btn{white-space:nowrap;color:var(--accent);padding:4px 10px;font-size:.78rem}.weakness-train-btn:hover{color:var(--text)}.weakness-queue-status{background:color-mix(in srgb, var(--green) 8%, var(--surface2));border:1px solid color-mix(in srgb, var(--green) 30%, var(--border));color:var(--text);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.85rem;display:flex}button:focus-visible,a:focus-visible,[tabindex]:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.skip-link{width:1px;height:1px;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-link:focus{background:var(--accent);color:#0a0a0a;z-index:9999;border-radius:6px;width:auto;height:auto;padding:8px 14px;font-weight:700;position:fixed;top:8px;left:8px}@media (width<=768px){.home-page{padding:40px 16px 60px}.hero{margin-bottom:20px}.hero-brand{margin-bottom:16px;font-size:clamp(2.5rem,8vw,4rem)}.hero-sub{max-width:100%;margin-bottom:28px;font-size:1rem;line-height:1.6}.hero-start{width:100%;min-width:unset;box-sizing:border-box;justify-content:center;padding:14px 20px;display:flex}.hero-stats{flex-wrap:wrap;gap:8px;margin-bottom:40px;font-size:.68rem}.feature-list{flex-direction:column;gap:0;display:flex}.feature-row{gap:16px;width:100%;padding:20px 0;transition:none}.feature-row:hover{padding-left:0}.feature-row-title{font-size:.92rem}.feature-row-desc{font-size:.8rem;line-height:1.55}.feature-row-arrow{font-size:.95rem}}@media (width<=480px){.home-page{padding:32px 12px 48px}.hero-brand{margin-bottom:12px;font-size:clamp(2rem,10vw,2.8rem)}.hero-sub{margin-bottom:24px;font-size:.9rem}.hero-start{padding:13px 16px;font-size:.9rem}.hero-stats{letter-spacing:.9px;gap:6px;margin-bottom:32px;font-size:.62rem}.hero-stats-dot{display:none}.feature-row{gap:12px;padding:16px 0}.feature-row-title{font-size:.88rem}.feature-row-desc{font-size:.76rem}}@media (width<=768px){.puzzle-page{padding:12px 8px 32px}.puzzle-layout{flex-direction:column}.puzzle-board-wrapper{max-width:100vw;width:100%!important}.puzzle-board-col{max-width:100%!important}.puzzle-side{padding:8px 12px}.puzzle-actions{flex-wrap:wrap}.puzzle-btn{flex:1;min-width:90px;min-height:44px}.puzzle-topbar{flex-wrap:nowrap;gap:4px}.puzzle-topbar-stats{gap:12px}.puzzle-mode-cards{gap:10px}.puzzle-mode-card{padding:14px 16px}.puzzle-theme-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}@media (width<=600px){.puzzle-side,.puzzle-topbar-stats .puzzle-stat-label{display:none}}@media (width<=768px){.opening-filter{flex-direction:column;gap:10px;margin-bottom:18px}.filter-top-row{align-items:center;gap:10px;display:flex}.search-input{flex:1;width:100%;min-width:0}.view-toggle-group{flex-shrink:0;margin-left:auto}.family-pill-row{flex-wrap:wrap;justify-content:flex-start;gap:6px}.family-pill{padding:6px 14px;font-size:.8rem}.result-count{margin-bottom:12px;font-size:.8rem}.opening-filter+*{margin-top:0}}@media (width<=480px){.family-pill{padding:5px 10px;font-size:.75rem}}@media (width<=768px){.training-page{min-height:calc(100vh - 64px);padding-bottom:24px}.training-page>div>h2,.color-picker h2{margin-bottom:6px;font-size:1.65rem}.training-page>div>p,.color-picker p{margin-bottom:28px}.color-picker .color-options,.color-options{flex-direction:column;align-items:stretch;gap:12px}.color-btn{min-height:64px;min-width:unset;text-align:left;flex-direction:row;justify-content:flex-start;gap:14px;width:100%;padding:18px 20px}.color-piece{flex-shrink:0;font-size:2.2rem}.training-view{max-width:100%;padding:0 12px}.training-opening-name{gap:6px;margin-bottom:10px;padding:8px 12px}.opening-name-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}.family-tag{font-size:.72rem}.training-header{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:10px}.score-tracker{gap:8px}.training-info{flex-wrap:wrap;gap:6px}.training-header .btn-ghost.small{text-align:center;justify-content:center;width:100%;min-height:44px;padding:10px 16px;font-size:.8rem}.board-wrapper{width:100%;max-width:100%}.feedback-pill{padding:10px 24px;font-size:.95rem}.move-indicator,.your-turn,.computer-turn{padding:4px 10px;font-size:.68rem}.training-footer{margin-top:10px}.move-history-mini{gap:2px;font-size:.72rem;line-height:1.6}.training-complete{max-width:100%;margin:28px auto;padding:0 16px}.training-complete h2{margin-bottom:18px;font-size:1.65rem}.opening-reveal{margin-bottom:18px;padding:20px 16px}.opening-reveal h3{font-size:1.05rem}.complete-actions{gap:10px;margin-bottom:20px}.complete-actions .btn-primary,.complete-actions .btn-secondary,.complete-actions .btn-ghost{box-sizing:border-box;width:100%;min-height:44px;padding:12px 20px;font-size:.875rem}.score-pill{padding:4px 8px;font-size:.68rem}.eco-badge{padding:2px 8px;font-size:.62rem}.eco-badge.large{padding:5px 14px;font-size:.8rem}}@media (width<=480px){.training-page>div>h2,.color-picker h2{font-size:1.45rem}.color-btn{gap:12px;min-height:58px;padding:14px 16px}.color-piece{font-size:1.9rem}.training-view{padding:0 8px}.training-opening-name{margin-bottom:8px;padding:6px 10px}.opening-name-label{font-size:.78rem}.training-header{gap:6px;margin-bottom:8px}.training-header .btn-ghost.small{min-height:40px;padding:8px 14px;font-size:.75rem}.feedback-pill{padding:8px 18px;font-size:.875rem}.move-indicator,.your-turn,.computer-turn{padding:3px 8px;font-size:.62rem}.training-footer{margin-top:8px}.move-history-mini{font-size:.68rem}.training-complete{margin:16px auto;padding:0 12px}.training-complete h2{margin-bottom:14px;font-size:1.4rem}.opening-reveal{margin-bottom:14px;padding:16px 12px}.opening-reveal h3{font-size:.95rem}.complete-actions{gap:8px;margin-bottom:16px}.complete-actions .btn-primary,.complete-actions .btn-secondary,.complete-actions .btn-ghost{min-height:40px;padding:10px 16px;font-size:.8rem}.score-pill{padding:3px 6px;font-size:.62rem}}.nav-hamburger{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:8px;font-size:1.4rem;display:none}.nav-mobile-menu{background:var(--bg2);border-bottom:1px solid var(--border);z-index:200;flex-direction:column;gap:4px;width:100%;padding:16px;display:none;position:absolute;top:64px;left:0}.nav-mobile-menu.open{display:flex}.nav-mobile-menu a{color:var(--text2);border-radius:8px;padding:14px 20px;font-size:1rem;font-weight:400;transition:color .15s,background .15s;display:block}.nav-mobile-menu a:hover{color:var(--text);background:var(--surface2)}.nav-mobile-menu a.active{color:var(--accent);background:var(--surface2)}.nav-mobile-menu .theme-toggle{align-self:flex-start;margin-top:4px;margin-left:20px}@media (width<=768px){.nav-links{display:none}.nav-hamburger{display:flex}}.nav-sep{background:var(--border,#8080804d);vertical-align:middle;width:1px;height:16px;margin:0 4px;display:inline-block}.nav-mobile-menu .nav-sep{display:none}
