:root{--bg:#12100e;--bg-elev:#1b1815;--bg-elev-2:#241f1b;--border:#322b25;--border-soft:#2a2420;--text:#f0e9e2;--text-dim:#a89d92;--text-faint:#736a62;--accent:#7fa650;--accent-soft:#4a5f33;--white-sq:#ebe3d6;--black-sq:#7d6a58;--good:#7fa650;--inaccuracy:#e6b64c;--mistake:#e08b3c;--blunder:#d05c4a;--brilliant:#4bb3c4;--radius:10px;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace}.app{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.topbar{gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev);flex-shrink:0}.brand,.topbar{display:flex;align-items:center}.brand{gap:8px;font-weight:650;letter-spacing:-.01em;white-space:nowrap}.brand span.piece{font-size:20px;line-height:1}.brand small{color:var(--text-faint);font-weight:400;margin-left:2px}.main{flex:1 1;display:grid;grid-template-columns:var(--chat-width,440px) minmax(340px,1fr) minmax(260px,340px);grid-gap:16px;gap:16px;padding:16px;overflow:hidden}.col{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-soft);color:var(--text-dim);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.input{flex:1 1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 11px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent-soft)}.input::placeholder{color:var(--text-faint)}.btn{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;padding:8px 13px;color:var(--text);transition:background .15s,border-color .15s;white-space:nowrap}.btn:hover:not(:disabled){background:#2e2823;border-color:#3d352e}.btn-primary{background:var(--accent);border-color:var(--accent);color:#10140b;font-weight:600}.btn-primary:hover:not(:disabled){background:#8cb559;border-color:#8cb559}.btn-icon{padding:7px 10px}.error-msg{color:#ef9a8c;background:rgba(208,92,74,.12);border:1px solid rgba(208,92,74,.3);border-radius:8px;padding:8px 11px;font-size:13px}.import-bar{display:flex;gap:8px;flex:1 1}.import-hint{color:var(--text-faint);font-size:12px;padding:0 2px}.board-wrap{display:flex;gap:10px;align-items:stretch;width:min(100%,calc(100dvh - 270px));margin-inline:auto}@media (max-width:1200px){.board-wrap{width:100%}}.board-outer{flex:1 1;min-width:0}.evalbar{width:16px;border-radius:6px;overflow:hidden;background:#2b2b2b;position:relative;flex-shrink:0;border:1px solid var(--border)}.evalbar-white{bottom:0;background:#e9e2d6;transition:height .35s ease}.evalbar-text,.evalbar-white{position:absolute;left:0;right:0}.evalbar-text{text-align:center;font-size:9px;font-weight:700;letter-spacing:-.03em}.player-row{justify-content:space-between;gap:8px;padding:4px 2px;font-size:13px}.player-name,.player-row{display:flex;align-items:center}.player-name{font-weight:600;gap:6px;background:none;border:1px solid transparent;border-radius:20px;padding:3px 10px 3px 8px;margin-left:-8px;transition:background .15s,border-color .15s}.player-name:hover{background:rgba(255,255,255,.05);border-color:var(--border)}.player-name.active{background:rgba(127,166,80,.14);border-color:var(--accent-soft)}.player-name .dot{width:9px;height:9px;border-radius:50%;border:1px solid #000}.player-elo{color:var(--text-faint);font-weight:400}.acc-chip{font-size:11px;padding:2px 7px;border-radius:20px;background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text-dim)}.controls{display:flex;gap:6px;align-items:center}.controls .btn{flex:1 1}.status-line{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-dim);min-height:20px}.progress{flex:1 1;height:3px;background:var(--bg-elev-2);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .2s}.quality-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:20px}.movelist{overflow-y:auto;flex:1 1;min-height:120px;padding:4px 0}.move-row{display:grid;grid-template-columns:38px 1fr 1fr;align-items:stretch}.move-row:nth-child(odd){background:rgba(255,255,255,.015)}.move-num{justify-content:flex-end;padding-right:8px;color:var(--text-faint);font-size:12px}.move-cell,.move-num{display:flex;align-items:center}.move-cell{justify-content:space-between;gap:6px;padding:4px 8px;border:none;background:none;text-align:left;border-radius:5px;font-size:13.5px;transition:background .1s}.move-cell:hover{background:rgba(255,255,255,.05)}.move-cell.active{background:var(--accent-soft);color:#fff}.move-cell .san{font-weight:550;display:flex;align-items:center;gap:4px}.move-cell .ev{font-size:11px;color:var(--text-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.move-cell.active .ev{color:rgba(255,255,255,.75)}.graph{display:block;width:100%;height:90px;cursor:crosshair}.chat-col{min-height:0;position:relative}.col-resizer{position:absolute;top:0;bottom:0;right:-9px;width:12px;cursor:col-resize;touch-action:none;z-index:5}.col-resizer:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:46px;border-radius:3px;background:var(--border);transition:background .15s,height .15s}.col-resizer:hover:after{background:var(--accent);height:80px}.head-tools{display:flex;align-items:center;gap:10px}.font-size{display:inline-flex;gap:2px}.font-size button{background:none;border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600;color:var(--text-faint);line-height:1.5}.font-size button:hover:not(:disabled){color:var(--text);border-color:var(--accent-soft)}.chat-card{display:flex;flex-direction:column;flex:1 1;min-height:0}.chat-scroll{flex:1 1;overflow-y:auto;padding:16px;gap:16px;font-size:var(--chat-font,14.5px)}.chat-scroll,.msg{display:flex;flex-direction:column}.msg{gap:6px;max-width:100%}.msg-user .bubble{align-self:flex-end;background:var(--accent-soft);border-radius:12px 12px 3px 12px;padding:9px 13px;max-width:85%;margin-left:auto;white-space:pre-wrap}.msg-assistant .bubble{background:transparent;padding:0;line-height:1.68}.bubble p{margin:0 0 11px}.bubble p:last-child{margin-bottom:0}.bubble code{font-family:ui-monospace,Menlo,monospace;font-size:.92em;background:var(--bg-elev-2);border:1px solid var(--border-soft);border-radius:4px;padding:1px 4px}.bubble strong{font-weight:650}.bubble ul{margin:6px 0;padding-left:18px}.bubble li{margin-bottom:4px}.thinking-wrap{display:flex;flex-direction:column;gap:6px}.thinking-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-size:12px;color:var(--text-faint)}.thinking-toggle:hover{color:var(--text-dim)}.thinking{color:var(--text-faint);font-size:12.5px;font-style:italic;border-left:2px solid var(--border);padding-left:10px;white-space:pre-wrap;max-height:220px;overflow-y:auto}.tool-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}.tool-chips>.tool-card{flex:1 1 100%}.tool-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-dim);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:20px;padding:3px 10px}.tool-chip.clickable:hover{border-color:var(--accent-soft);color:var(--text)}.tool-chip .mono{font-size:11px}.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border-soft);align-items:stretch}.chat-input{flex:1 1;resize:none;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:11px 13px;outline:none;min-height:62px;max-height:180px;line-height:1.5;font-size:var(--chat-font,14.5px)}.chat-input:focus{border-color:var(--accent-soft)}.suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px}.chat-form .btn-primary{padding-inline:18px}.suggestion{font-size:12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:20px;padding:5px 11px;color:var(--text-dim)}.suggestion:hover{color:var(--text);border-color:var(--accent-soft)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;color:var(--text-faint);text-align:center;padding:24px}.empty-state .big{font-size:34px}.variation-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;background:rgba(75,179,196,.08);border:1px solid rgba(75,179,196,.25);border-radius:8px;font-size:12.5px}.variation-bar .label{color:var(--brilliant);font-weight:600}.var-move{background:none;border:1px solid transparent;border-radius:5px;padding:2px 6px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.var-move:hover{background:rgba(255,255,255,.06)}.var-move.active{background:var(--brilliant);color:#08191c;font-weight:700}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);align-items:center;justify-content:center;z-index:50}.dialog,.overlay{display:flex;padding:20px}.dialog{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;width:100%;max-width:440px;flex-direction:column;gap:12px}.dialog h2{margin:0;font-size:16px}.dialog p{margin:0;color:var(--text-dim);font-size:13px;line-height:1.5}.dialog a{color:var(--accent)}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#3a332c;border-radius:6px;border:2px solid var(--bg-elev)}::-webkit-scrollbar-thumb:hover{background:#4a423a}.move-ref{display:inline;background:none;padding:0 1px;font:inherit;font-weight:600;color:var(--accent);border:none;border-bottom:1px dotted;cursor:pointer}.move-ref:hover{color:#a3cc6a;background:rgba(127,166,80,.12);border-radius:3px}.move-ref.alt{color:var(--brilliant)}.move-ref.alt:hover{background:rgba(75,179,196,.12)}.move-ref.square{color:var(--text-dim);font-weight:500;border-bottom-style:dashed;border-bottom-color:var(--inaccuracy)}.move-ref.square:hover{color:var(--inaccuracy);background:rgba(230,182,76,.1)}.move-pop{position:fixed;z-index:60;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:0 10px 30px rgba(0,0,0,.5);animation:pop-in .12s ease-out}@keyframes pop-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.move-pop-board{display:flex;gap:7px;align-items:stretch}.move-pop-board .evalbar{width:13px}.move-pop-delta{display:block;margin-top:2px;font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--text-faint)}.move-pop-caption{margin-top:6px;text-align:center;font-size:11.5px;color:var(--text-dim)}.mini-compact{padding:0;border:none;background:none;gap:0}.mini-compact .mini-board{width:100%}.spinner{display:inline-block;width:13px;height:13px;border:2px solid rgba(255,255,255,.18);border-top:2px solid var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.btn-primary .spinner{border-color:#10140b rgba(0,0,0,.22) rgba(0,0,0,.22)}@keyframes spin{to{transform:rotate(1turn)}}.status-inline{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-faint)}.tool-strip{display:flex;flex-direction:column;gap:6px}.tool-strip-head{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-size:12px;color:var(--text-faint)}.tool-strip-head:hover{color:var(--text-dim)}.tool-list{gap:4px;padding-left:4px}.inline-var,.tool-list{display:flex;flex-direction:column}.inline-var{margin:12px 0;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:12px;gap:8px}.inline-var-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--text-dim)}.inline-var-head .mono{font-size:11.5px}.inline-var-open{background:none;border:1px solid var(--border);border-radius:20px;padding:2px 9px;font-size:11px;color:var(--text-faint);white-space:nowrap}.inline-var-open:hover{color:var(--text);border-color:var(--accent-soft)}.inline-var .mini{border:none;background:none;padding:0}.sq-badge{position:absolute;top:-8%;right:-8%;width:34%;height:34%;min-width:15px;min-height:15px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;line-height:1;letter-spacing:-.04em;box-shadow:0 1px 4px rgba(0,0,0,.45);pointer-events:none;z-index:3}.tool-card{gap:8px;width:100%}.mini,.tool-card{display:flex;flex-direction:column}.mini{gap:7px;padding:9px;background:var(--bg);border:1px solid var(--border);border-radius:10px}.mini-board{width:min(100%,300px);margin-inline:auto}.mini-moves{flex-wrap:wrap;gap:3px}.mini-controls,.mini-moves{display:flex;justify-content:center}.mini-controls{align-items:center;gap:5px}.mini-controls .btn{padding:4px 9px;font-size:12px;border-radius:7px}.mini-step{font-size:11px;color:var(--text-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:2px}@media (max-width:1200px){.main{display:flex;flex-direction:column;overflow-y:auto}.main>.col{flex:0 0 auto}.board-col{order:1}.moves-col{order:2}.chat-col{order:3;height:560px}.col-resizer{display:none}.board-wrap{width:min(100%,560px)}.movelist{max-height:300px}}