@import "https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500&family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,300..700&display=swap";:root{--bg:#f6f5f0;--bg-panel:#fff;--bg-tree:#fafaf7;--bg-node:#fff;--bg-node-max:#eef4ff;--bg-node-min:#fef2f2;--bg-node-best:#fffbeb;--border:#d4d2cc;--border-light:#e8e6e1;--border-node:#bbb8b0;--text:#1a1a1a;--text-secondary:#555550;--text-muted:#8a8880;--blue:#2563eb;--blue-light:#3b82f6;--blue-border:#93c5fd;--red:#dc2626;--red-light:#ef4444;--red-border:#fca5a5;--gold:#d97706;--gold-border:#fbbf24;--green:#16a34a;--purple:#7c3aed;--purple-light:#7c3aed14;--x-color:#2563eb;--o-color:#dc2626;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, Consolas, monospace;--radius:8px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow:0 4px 12px #0000000f, 0 1px 4px #0000000a;--shadow-lg:0 8px 24px #00000014, 0 2px 8px #0000000a;font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{min-height:100svh;margin:0}#root{min-height:100svh}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.app{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:2px solid var(--text);background:var(--bg-panel);align-items:baseline;gap:12px;padding:16px 24px;display:flex}.app-header h1{color:var(--text);letter-spacing:-.3px;font-size:20px;font-weight:700;font-family:var(--font-mono);margin:0}.app-subtitle{color:var(--text-muted);font-size:13px;font-family:var(--font-mono);margin:0;font-weight:300}.github-link{color:var(--text-muted);align-items:center;margin-left:auto;transition:color .15s;display:flex}.github-link:hover{color:var(--text)}.app-main{flex:1;grid-template-columns:320px 1fr;min-height:0;display:grid}.left-panel{border-right:2px solid var(--text);background:var(--bg-panel);flex-direction:column;gap:20px;padding:24px;display:flex}.status-bar{text-align:center;font-family:var(--font-mono);border:1.5px solid var(--border);color:var(--text-secondary);background:var(--bg);border-radius:6px;padding:10px;font-size:14px;font-weight:500;transition:all .2s}.status-your-turn{color:var(--blue);border-color:var(--blue-border);background:#eef4ff}.status-thinking{color:var(--purple);background:#f3f0ff;border-color:#c4b5fd}.status-ready{color:var(--gold);border-color:var(--gold-border);background:#fffbeb}.status-win{color:#15803d;background:#dcfce7;border-color:#86efac;padding:14px;font-size:18px;font-weight:700}.status-lose{color:#b91c1c;background:#fef2f2;border-color:#fca5a5;padding:14px;font-size:18px;font-weight:700}.status-draw{color:var(--gold);border-color:var(--gold-border);background:#fffbeb;padding:14px;font-size:18px;font-weight:700}.board-container{justify-content:center;display:flex}.board{border:2px solid var(--text);grid-template-rows:repeat(3,76px);grid-template-columns:repeat(3,76px);gap:0;display:grid}.cell{background:var(--bg-panel);border:1px solid var(--border);outline:none;justify-content:center;align-items:center;padding:0;font-size:32px;font-weight:700;transition:background .12s;display:flex}.cell:not(.cell-disabled):hover{background:var(--purple-light)}.cell:not(.cell-disabled):active{transform:scale(.96)}.cell-disabled{cursor:default}.cell-X .cell-mark{color:var(--x-color);font-family:var(--font-mono);font-weight:500}.cell-O .cell-mark{color:var(--o-color);font-family:var(--font-mono);font-weight:500}.cell-winning{background:var(--bg-node-best)!important;border-color:var(--gold)!important}.cell-last{background:#7c3aed0a}.cell-mark{animation:.15s ease-out markAppear}@keyframes markAppear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.controls{flex-direction:column;gap:10px;display:flex}.controls-progress{align-items:center;gap:10px;display:flex}.progress-bar{background:var(--border-light);border-radius:2px;flex:1;height:3px;overflow:hidden}.progress-fill{background:var(--purple);border-radius:2px;height:100%;transition:width .1s}.progress-text{color:var(--text-muted);font-size:11px;font-family:var(--font-mono);text-align:right;min-width:65px}.controls-buttons{flex-wrap:wrap;gap:4px;display:flex}.btn{border:1.5px solid var(--border);background:var(--bg-panel);color:var(--text);min-width:55px;font-size:13px;font-weight:500;font-family:var(--font-mono);border-radius:4px;flex:1;padding:7px 10px;transition:background .12s,border-color .12s}.btn:hover{background:var(--bg);border-color:var(--text-secondary)}.btn:disabled{opacity:.35;cursor:default}.btn-primary{background:var(--text);border-color:var(--text);color:var(--bg-panel)}.btn-primary:hover{background:var(--text-secondary);border-color:var(--text-secondary)}.controls-settings{gap:12px;display:flex}.setting{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:10px;font-family:var(--font-mono);flex-direction:column;flex:1;gap:4px;display:flex}.setting input[type=range]{width:100%;accent-color:var(--purple);height:3px}.setting select{background:var(--bg-panel);color:var(--text);border:1.5px solid var(--border);font-size:13px;font-family:var(--font-mono);border-radius:4px;padding:4px 6px}.minimax-info{border-top:1px solid var(--border-light);margin-top:auto;padding-top:16px}.minimax-info p{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.minimax-info strong{color:var(--text-secondary);font-weight:500}.minimax-info a{color:var(--purple);font-weight:500;text-decoration:none}.minimax-info a:hover{text-decoration:underline}.right-panel{min-height:0;position:relative;overflow:hidden}.tree-container{background:var(--bg-tree);-webkit-user-select:none;user-select:none;background-image:radial-gradient(circle, var(--border-light) 1px, transparent 1px);background-size:20px 20px;width:100%;height:100%;position:relative;overflow:hidden}.tree-empty{justify-content:center;align-items:center;display:flex}.tree-placeholder{color:var(--text-muted);font-size:14px;font-family:var(--font-mono)}.tree-legend{font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-panel);border:1.5px solid var(--border);box-shadow:var(--shadow-sm);border-radius:4px;gap:14px;padding:6px 14px;font-weight:500;display:flex;position:absolute;top:12px;right:12px}.legend-item{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:2px;width:8px;height:8px;display:inline-block}.tree-overlay-hint{color:var(--text-muted);font-family:var(--font-mono);font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tree-link{stroke:var(--border)!important;stroke-width:1.5px!important}.rd3t-tree-container{width:100%;height:100%}.rd3t-grabbable{cursor:grab}.rd3t-grabbable:active{cursor:grabbing}.debugger-float{z-index:10;background:var(--bg-panel);width:340px;max-height:calc(100% - 32px);font-family:var(--font-mono);border:1.5px solid var(--border);-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;font-size:13px;display:flex;position:absolute;box-shadow:0 4px 24px #0000001f,0 1px 4px #00000014}.debugger-header{border-bottom:1px solid var(--border-light);cursor:grab;flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.debugger-header:active{cursor:grabbing}.debugger-title{color:var(--text);font-size:13px;font-weight:600}.debugger-badge{text-transform:uppercase;letter-spacing:1px;color:var(--purple);border:1px solid var(--purple);border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.debugger-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;margin-left:auto;padding:2px 6px;font-size:14px;line-height:1}.debugger-close:hover{background:var(--bg);color:var(--text)}.debugger-body-empty{text-align:center;padding:24px 14px}.debugger-placeholder{color:var(--text-muted);font-size:12px}.debugger-code{-webkit-user-select:text;user-select:text;flex:1;padding:6px 0;overflow-y:auto}.debugger-line{align-items:center;padding:1px 12px 1px 0;line-height:21px;transition:background .12s;display:flex}.debugger-line-blank{height:8px}.debugger-line-active{border-left:3px solid var(--gold);background:#fffbeb;padding-left:0}.debugger-line:not(.debugger-line-active){padding-left:3px}.debugger-lineno{text-align:right;width:24px;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0;padding-right:6px;font-size:10px}.debugger-marker{width:14px;color:var(--gold);text-align:center;flex-shrink:0;font-size:10px}.debugger-text{color:var(--text);white-space:pre;font-size:12px}.debugger-keyword{color:var(--purple);font-weight:500}.debugger-comment{color:var(--text-muted);font-style:italic}.debugger-context{border-top:1px solid var(--border-light);background:var(--bg);border-radius:0 0 8px 8px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:7px 12px;display:flex}.debugger-step-type{text-transform:uppercase;letter-spacing:.5px;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:600}.debugger-step-visit{color:var(--blue);background:#eef4ff}.debugger-step-score{color:#15803d;background:#dcfce7}.debugger-step-backpropagate{color:var(--gold);background:#fffbeb}.debugger-step-prune{color:var(--o-color);background:#fef2f2}.debugger-detail{color:var(--text-secondary);font-size:11px}.debugger-score{color:var(--text);font-weight:600}.debugger-toggle-btn{z-index:10;font-size:12px;font-weight:600;font-family:var(--font-mono);background:var(--bg-panel);color:var(--purple);border:1.5px solid var(--border);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:6px;padding:6px 12px;transition:background .12s,border-color .12s;position:absolute;top:12px;left:12px}.debugger-toggle-btn:hover{border-color:var(--purple);background:#7c3aed14}@media (width<=768px){.app-header{flex-direction:column;gap:2px}.app-main{grid-template-rows:auto 1fr;grid-template-columns:1fr}.left-panel{border-right:none;border-bottom:2px solid var(--text)}.right-panel{min-height:400px}}
