:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{color:#e9e9ee;-webkit-font-smoothing:antialiased;background:#14151b;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{max-width:880px;margin:0 auto;padding:24px 20px 48px}header{text-align:center;margin-bottom:24px}header h1{color:#fff;letter-spacing:-.5px;margin:0;font-size:32px;font-weight:600}.tagline{color:#8b8b96;margin:4px 0 0;font-size:14px}.layout{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:24px;display:flex}.board-wrap{width:480px;max-width:92vw}.panel{flex-direction:column;gap:16px;width:280px;display:flex}.status{color:#fff;text-align:center;background:#1e1f29;border:1px solid #2e303a;border-radius:10px;padding:14px 16px;font-size:16px;font-weight:600}.status.thinking{color:#c084fc}.control{flex-direction:column;gap:8px;display:flex}.label{color:#8b8b96;text-transform:uppercase;letter-spacing:.5px;font-size:13px}.btn-row{gap:8px;display:flex}.btn-row button{color:#cfcfd6;cursor:pointer;background:#1e1f29;border:1px solid #2e303a;border-radius:8px;flex:1;padding:9px 0;font-size:14px;font-weight:600;transition:all .12s}.btn-row button:hover{border-color:#4a4c5a}.btn-row button.active{color:#1a1020;background:#c084fc;border-color:#c084fc}input[type=range]{accent-color:#c084fc;cursor:pointer;width:100%}.newgame{color:#1a1020;cursor:pointer;background:#c084fc;border:none;border-radius:8px;padding:12px 0;font-size:15px;font-weight:700;transition:filter .12s}.newgame:hover{filter:brightness(1.1)}.moves{background:#1e1f29;border:1px solid #2e303a;border-radius:10px;overflow:hidden}.moves-head{color:#8b8b96;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #2e303a;padding:10px 14px;font-size:13px;font-weight:600}.moves ol{max-height:260px;margin:0;padding:6px 0;list-style:none;overflow-y:auto}.moves li{font-variant-numeric:tabular-nums;gap:10px;padding:3px 14px;font-size:14px;display:flex}.moves li:nth-child(odd){background:#ffffff05}.moves .num{color:#6b6b76;width:28px}.moves .mv{color:#e9e9ee;width:64px}.moves .empty{color:#6b6b76;justify-content:center}.hint{color:#6b6b76;text-align:center;margin:0;font-size:12px}.nav{justify-content:center;gap:8px;margin-top:12px;display:flex}.nav button{color:#cfcfd6;cursor:pointer;background:#1e1f29;border:1px solid #2e303a;border-radius:8px;padding:8px 18px;font-size:14px;font-weight:600}.nav button.active{color:#1a1020;background:#c084fc;border-color:#c084fc}.games-view{flex-direction:column;gap:16px;max-width:620px;margin:0 auto;display:flex}.import-box{background:#1e1f29;border:1px solid #2e303a;border-radius:10px;padding:16px}.import-row{gap:8px;display:flex}.import-row input{color:#e9e9ee;background:#14151b;border:1px solid #2e303a;border-radius:8px;flex:1;padding:10px 12px;font-size:14px}.import-row .newgame{white-space:nowrap;padding:10px 16px}.import-row .newgame:disabled{opacity:.6;cursor:default}.progress{margin-top:12px}.progress-bar{background:#14151b;border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:#c084fc;height:100%;transition:width .2s}.progress-text{color:#8b8b96;margin-top:6px;font-size:12px}.err{color:#ff6b6b;margin-top:10px;font-size:13px}.stats-row{gap:10px;display:flex}.stat{text-align:center;background:#1e1f29;border:1px solid #2e303a;border-radius:10px;flex:1;padding:12px}.stat-n{color:#fff;font-size:22px;font-weight:700;display:block}.stat-n.win{color:#6cc070}.stat-n.loss{color:#ff6b6b}.stat-n.draw{color:#c9a86a}.stat-l{color:#8b8b96;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.games-list{flex-direction:column;gap:6px;display:flex}.games-empty{text-align:center;color:#6b6b76;padding:32px}.game-row{text-align:left;color:#e9e9ee;cursor:pointer;background:#1e1f29;border:1px solid #2e303a;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 14px;display:flex}.game-row:hover{border-color:#4a4c5a}.result-badge{text-transform:uppercase;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700}.result-badge.win{color:#6cc070;background:#6cc0702e}.result-badge.loss{color:#ff6b6b;background:#ff6b6b2e}.result-badge.draw{color:#c9a86a;background:#c9a86a2e}.game-main{flex-direction:column;flex:1;min-width:0;display:flex}.game-opp{font-size:14px;font-weight:600}.game-sub{color:#8b8b96;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.game-date{color:#6b6b76;white-space:nowrap;font-size:12px}.review{flex-direction:column;gap:12px;display:flex}.link-btn{color:#c084fc;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:14px;font-weight:600}.review-controls{justify-content:center;align-items:center;gap:6px;margin-top:12px;display:flex}.review-controls button{color:#cfcfd6;cursor:pointer;background:#1e1f29;border:1px solid #2e303a;border-radius:8px;padding:8px 14px;font-size:14px}.review-controls button:disabled{opacity:.4;cursor:default}.ply-count{color:#8b8b96;font-variant-numeric:tabular-nums;text-align:center;min-width:64px;font-size:13px}.review-meta{color:#8b8b96;font-size:13px;line-height:1.5}.mv.clickable{cursor:pointer}.mv.clickable:hover{color:#c084fc}.mv.cur{color:#fff;background:#c084fc4d;border-radius:3px}.insights{flex-direction:column;gap:14px;max-width:620px;margin:0 auto;display:flex}.ins-card{background:#1e1f29;border:1px solid #2e303a;border-radius:10px;padding:16px}.ins-card h2{color:#8b8b96;text-transform:uppercase;letter-spacing:.6px;margin:0 0 12px;font-size:14px;font-weight:600}.big-record{color:#cfcfd6;flex-wrap:wrap;gap:16px;font-size:15px;display:flex}.big-record b{color:#fff;font-size:20px}.sc-good{color:#6cc070}.sc-bad{color:#ff6b6b}.sc-mid{color:#c9a86a}.stat-bar{margin-bottom:12px}.stat-bar:last-child{margin-bottom:0}.stat-bar-head{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.sb-label{color:#e9e9ee;text-transform:capitalize;font-weight:600}.sb-num{color:#8b8b96;font-variant-numeric:tabular-nums}.sb-track{background:#14151b;border-radius:4px;height:8px;overflow:hidden}.sb-fill{border-radius:4px;height:100%}.sb-fill.sc-good{background:#6cc070}.sb-fill.sc-bad{background:#ff6b6b}.sb-fill.sc-mid{background:#c9a86a}.ins-table{border-collapse:collapse;width:100%;font-size:13px}.ins-table th{text-align:left;color:#6b6b76;border-bottom:1px solid #2e303a;padding:4px 8px;font-weight:600}.ins-table td{color:#e9e9ee;font-variant-numeric:tabular-nums;border-bottom:1px solid #2e303a80;padding:5px 8px}.opening-cell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.coach-text{color:#e3e3e8;font-size:14px;line-height:1.65}.coach-text h1,.coach-text h2,.coach-text h3{color:#fff;margin:18px 0 8px;line-height:1.3}.coach-text h1{font-size:18px}.coach-text h2{font-size:16px}.coach-text h3{color:#c084fc;text-transform:none;letter-spacing:0;font-size:14px}.coach-text h2:first-child,.coach-text h3:first-child{margin-top:0}.coach-text p{margin:8px 0}.coach-text strong{color:#fff}.coach-text ul,.coach-text ol{margin:8px 0;padding-left:22px}.coach-text li{margin:4px 0}.coach-text hr{border:none;border-top:1px solid #2e303a;margin:14px 0}.coach-text code{background:#14151b;border-radius:4px;padding:1px 5px;font-size:13px}@media (width<=560px){.panel{width:480px;max-width:92vw}}
