:root{--bg:#161512;--bg-2:#1f1d1a;--panel:#262421;--panel-2:#2f2c28;--border:#3a3733;--text:#e8e6e3;--muted:#9b968f;--accent:#81b64c;--accent-2:#5d9b2f;--blue:#3c8ce7;--danger:#e2574c;--warn:#f0b429;--sq-light:#ebecd0;--sq-dark:#739552;--radius:10px;--evalbar:22px;--board:min(calc(100vw - 460px), calc(100vh - 200px), 760px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}[hidden]{display:none!important}button{font:inherit;color:inherit}h2,h3,h4{margin:0;font-weight:600}h2{font-size:1.1rem}h3{font-size:1rem}h4{color:var(--muted);margin:12px 0 6px;font-size:.9rem}hr{border:0;border-top:1px solid var(--border);margin:16px 0}.muted{color:var(--muted)}.small{font-size:.8rem}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.ellipsis{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.spacer{flex:1}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row-end{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.ok-text{color:var(--accent);font-size:.9rem}.alert-text{color:var(--danger);font-size:.9rem}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;background:var(--bg-2);border-bottom:1px solid var(--border);align-items:center;gap:24px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:.2px;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.brand.big{justify-content:center;margin-bottom:8px;font-size:1.5rem}.brand-icon{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:30px;height:30px;font-size:1.2rem;display:inline-grid}.tabs{gap:4px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:flex}.tab:hover{color:var(--text);background:var(--panel)}.tab.active{color:var(--text);background:var(--panel-2)}main{flex:1}.page{padding:20px}.page-center{justify-content:center;align-items:flex-start;display:flex}.play-layout{justify-content:center;align-items:flex-start;gap:20px;display:flex}.board-column{flex-direction:column;gap:8px;display:flex}.board-row{align-items:stretch;gap:8px;display:flex}.board-wrap{width:var(--board);position:relative}.board-shell{position:relative}.board-tools{justify-content:space-between;align-items:center;display:flex}.side-panel{flex-direction:column;gap:12px;width:400px;max-height:calc(100vh - 92px);display:flex}.side-panel .grow{flex-direction:column;flex:auto;min-height:140px;display:flex;overflow:hidden}.splash{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.setup-card,.settings-card{flex-direction:column;gap:14px;width:min(560px,100%);display:flex}.login-card{flex-direction:column;gap:14px;width:min(380px,100%);padding:28px;display:flex}.field{flex-direction:column;gap:6px;font-size:.9rem;display:flex}.field>span:first-child{color:var(--muted)}.fieldset{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;margin:0;padding:12px 14px;display:flex}.fieldset legend{color:var(--muted);padding:0 6px;font-size:.85rem}.input{border:1px solid var(--border);background:var(--bg-2);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.input:focus{outline:2px solid var(--accent-2);outline-offset:0}.input-sm{width:auto;padding:5px 8px}textarea.input{resize:vertical}input[type=range]{width:100%;accent-color:var(--accent);flex:1;min-width:140px}.ticks,.segmented{flex-wrap:wrap;gap:4px;display:flex}.ticks button,.segmented button{border:1px solid var(--border);background:var(--bg-2);cursor:pointer;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 10px;font-size:.85rem;display:inline-flex}.ticks button.on,.segmented button.on{background:var(--accent-2);border-color:var(--accent);color:#fff}.btn{border:1px solid var(--border);background:var(--panel-2);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:9px 14px;font-size:.9rem;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){background:#3a3733}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 3px 0 var(--accent-2)}.btn-primary:hover:not(:disabled){background:#8fc85a}.btn-accent{background:var(--blue);border-color:var(--blue);color:#fff}.btn-ghost{background:0 0}.btn-sm{min-height:32px;padding:5px 10px;font-size:.8rem}.btn-icon{min-width:40px;min-height:36px;padding:6px 10px}.btn-wide{width:100%;margin-top:10px}.btn-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.btn-wide2{grid-column:span 2}.btn-grid .btn-wide2:last-child:nth-child(3n+1){grid-column:span 3}.link{color:var(--blue);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.nav-buttons{justify-content:center;gap:6px;margin-top:8px;display:flex}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.toggle input{display:none}.toggle-track{background:#4a4743;border-radius:11px;flex:none;width:38px;height:22px;transition:background .2s;position:relative}.toggle-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track .toggle-thumb{left:19px}.player-bar{background:var(--panel);border:1px solid var(--border);min-height:44px;margin-left:calc(var(--evalbar) + 8px);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;display:flex}.player-bar.active{border-color:var(--accent-2);box-shadow:inset 3px 0 0 var(--accent)}.player-name{font-weight:600}.piece-dot{border:1px solid #000;border-radius:3px;flex:none;width:14px;height:14px;display:inline-block}.piece-dot.white{background:#f4f4f4}.piece-dot.black{background:#222;border-color:#666}.status{background:var(--bg-2);border-radius:8px;padding:8px 10px;font-size:.9rem}.status.over{border:1px solid var(--accent-2);background:#81b64c26}.alert{color:#ffb4ad;cursor:pointer;background:#e2574c26;border:1px solid #e2574c99;border-radius:8px;margin-top:10px;padding:9px 12px;font-size:.85rem}.evalbar{width:var(--evalbar);background:#403d39;border-radius:4px;flex-direction:column-reverse;flex:none;display:flex;position:relative;overflow:hidden}.evalbar.flipped{flex-direction:column}.evalbar-white{height:var(--white);background:#f1f1f1;transition:height .5s}.evalbar-label{text-align:center;writing-mode:vertical-rl;padding:4px 0;font-size:9px;font-weight:700;position:absolute;left:0;right:0;transform:rotate(180deg)}.evalbar:not(.flipped) .evalbar-label.on-white,.evalbar.flipped .evalbar-label.on-black{bottom:0}.evalbar:not(.flipped) .evalbar-label.on-black,.evalbar.flipped .evalbar-label.on-white{top:0}.evalbar-label.on-white{color:#222}.evalbar-label.on-black{color:#eee}.movelist{flex:1;min-height:80px;max-height:340px;font-size:.92rem;overflow-y:auto}.move-row{grid-template-columns:44px 1fr 1fr;align-items:center;display:grid}.move-row:nth-child(odd){background:#ffffff06}.move-no{color:var(--muted);padding-left:8px;font-size:.85rem}.move{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:5px 8px;font-weight:600}.move:hover{background:var(--panel-2)}.move.active{background:#4b6b2a}.move.empty{cursor:default;color:var(--muted)}.move sup{margin-left:2px;font-size:.75em}.cls-inaccuracy sup,.cls-inaccuracy.ply-verdict strong{color:var(--warn)}.cls-mistake sup{color:#ff9a3c}.cls-blunder sup{color:var(--danger)}.analysis-settings{color:var(--muted);flex-wrap:wrap;gap:14px;margin-bottom:8px;font-size:.85rem;display:flex}.analysis-settings label{align-items:center;gap:6px;display:flex}.engine-status{flex-direction:column;gap:6px;min-height:22px;margin-bottom:8px;display:flex}.progress{background:var(--bg-2);border-radius:2px;height:4px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .3s linear}.engine-lines{flex-direction:column;gap:4px;display:flex}.engine-line{background:var(--bg-2);border-radius:6px;align-items:flex-start;gap:8px;padding:5px 6px;display:flex}.engine-line:hover{background:var(--panel-2)}.score{text-align:center;border-radius:4px;flex:none;min-width:54px;padding:2px 4px;font-size:.85rem;font-weight:700}.score.pos{color:#222;background:#f1f1f1}.score.neg{color:#eee;background:#403d39}.pv{flex-wrap:wrap;gap:2px;font-size:.85rem;line-height:1.5;display:flex}.pv-move{cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 3px}.pv-move:hover{background:var(--blue);color:#fff}.ply-verdict{background:var(--bg-2);border-radius:8px;margin-top:10px;padding:8px 10px;font-size:.88rem}.ply-verdict.cls-blunder{border-left:3px solid var(--danger)}.ply-verdict.cls-mistake{border-left:3px solid #ff9a3c}.ply-verdict.cls-inaccuracy{border-left:3px solid var(--warn)}.ply-verdict.cls-best,.ply-verdict.cls-good{border-left:3px solid var(--accent)}.fen-line{word-break:break-all;cursor:copy;margin-top:10px}.evalgraph{width:calc(var(--board) + var(--evalbar) + 8px);cursor:pointer;border-radius:8px;height:110px;display:block}.eg-bg{fill:#403d39}.eg-area{fill:#f1f1f1;opacity:.92}.eg-mid{stroke:#888;stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.eg-line{fill:none;stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.eg-cursor{stroke:var(--blue);stroke-width:2px;vector-effect:non-scaling-stroke}.eg-mark.cls-blunder{fill:var(--danger)}.eg-mark.cls-mistake{fill:#ff9a3c}.eg-mark.cls-inaccuracy{fill:var(--warn)}.table{border-collapse:collapse;width:100%;font-size:.82rem}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:4px 6px;font-weight:600}.table td{border-bottom:1px solid #ffffff0a;padding:4px 6px}.table tr.chosen td{background:#81b64c29;font-weight:700}.summary td:first-child{color:var(--muted)}.prob{background:var(--bg-2);border-radius:3px;min-width:60px;height:16px;position:relative;overflow:hidden}.prob>div{background:var(--accent-2);position:absolute;inset:0 auto 0 0}.prob>span{padding-left:4px;font-size:.75rem;position:relative}.decision{flex-direction:column;gap:8px;display:flex}.decision-meta{flex-wrap:wrap;gap:6px 12px;font-size:.85rem;display:flex}.promotion{z-index:10;background:#0000008c;border-radius:6px;place-items:center;display:grid;position:absolute;inset:0}.promotion-card{background:var(--panel);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;align-items:center;gap:10px;padding:16px;display:flex}.promotion-pieces{gap:8px;display:flex}.promotion-piece{border:1px solid var(--border);background:var(--sq-light);cursor:pointer;border-radius:8px;width:72px;height:72px;padding:6px}.promotion-piece:hover{background:#fff6b0}.promotion-piece svg{width:100%;height:100%}.modal-backdrop{z-index:50;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;width:min(560px,100%);max-height:90vh;padding:16px;display:flex;overflow:auto}.modal-head{justify-content:space-between;align-items:center;display:flex}.library-list{flex-direction:column;gap:4px;display:flex}.library-item{background:var(--bg-2);border-radius:6px;align-items:center;gap:10px;padding:6px 8px;display:flex}.spinner-wrap{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.spinner{border:2px solid #fff3;border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){:root{--board:min(calc(100vw - 400px), calc(100vh - 200px))}.side-panel{width:340px}}@media (width<=860px){:root{--evalbar:14px;--board:min(calc(100vw - 16px - var(--evalbar) - 8px), 640px)}.page{padding:8px}.play-layout{flex-direction:column;align-items:center}.side-panel{width:100%;max-width:680px;max-height:none}.side-panel .grow{min-height:0}.movelist{max-height:220px}.topbar{gap:10px;padding:0 10px}.brand{font-size:1rem}.tab{padding:8px 10px}.evalbar-label{display:none}.player-bar{min-height:38px;padding:6px 10px}.btn-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=480px){.tab-label{display:none}.tab-icon{font-size:1.2rem}.brand-name{display:none}.promotion-piece{width:58px;height:58px}.table.compact th:nth-child(3),.table.compact td:nth-child(3){display:none}}.hint-box{flex-direction:column;gap:8px;display:flex}.hint-title{font-weight:700}.hint-move{align-items:center;gap:10px;display:flex}.hint-move strong{letter-spacing:.5px;font-size:1.8rem}.hint-alts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.adv{background:var(--bg-2);border-radius:8px;padding:6px 10px;font-size:.9rem;font-weight:600}.adv-win{color:#b8e08f;background:#81b64c33}.adv-plus{background:#81b64c1a}.adv-minus{color:#f3cf7a;background:#f0b4291f}.adv-lose{color:#ffb4ad;background:#e2574c26}.mark-icon{color:#fff;letter-spacing:-.5px;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 1px 2px #00000059}.move .mark-icon{vertical-align:-2px;margin-right:4px}.sq-cell{width:100%;height:100%;position:relative}.sq-badge{z-index:5;pointer-events:none;position:absolute;top:-6%;right:-6%}.sq-badge .mark-icon{min-width:16px;min-height:16px;width:34%!important;height:34%!important}.mark-verdict{border-left:3px solid;align-items:center;gap:8px;display:flex}.mark-row{align-items:center;gap:6px;display:inline-flex}
