*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:#0a0a0f;margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif}#root{width:100%}.bench{flex-direction:column;gap:20px;width:100%;max-width:900px;display:flex}.bench-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.bench-title{color:#e2e8f0;margin-bottom:4px;font-size:1.3rem;font-weight:800}.bench-sub{color:#475569;font-size:.78rem}.run-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#1d4ed8,#7c3aed);border:none;border-radius:10px;padding:10px 22px;font-size:.85rem;font-weight:700;transition:opacity .2s,transform .15s}.run-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.run-btn:disabled{opacity:.5;cursor:not-allowed}.progress-section{background:#0f172a;border:1px solid #1e293b;border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.progress-row{align-items:center;gap:12px;display:flex}.progress-label{color:#64748b;min-width:120px;font-size:.75rem}.progress-track{background:#1e293b;border-radius:3px;flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:3px;height:100%;transition:width .1s}.progress-pct{color:#475569;text-align:right;min-width:32px;font-size:.7rem}.bench-empty{color:#64748b;background:#0f172a;border:1px dashed #1e293b;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;font-size:.85rem;display:flex}.bench-empty-graphic{background:linear-gradient(135deg,#1e293b,#0f172a);border:2px solid #1e293b;border-radius:10px;width:48px;height:48px;position:relative}.bench-empty-graphic:before,.bench-empty-graphic:after{content:"";background:#334155;border-radius:2px;position:absolute}.bench-empty-graphic:before{height:4px;top:10px;left:10px;right:10px;box-shadow:0 10px #1e293b,0 20px #334155}.bench-empty-graphic:after{width:16px;height:4px;top:24px;left:10px}.bench-empty-sub{color:#334155;font-size:.75rem}.podium{flex-wrap:wrap;gap:12px;display:flex}.podium-card{background:#0f172a;border:2px solid;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:140px;padding:14px 16px;transition:transform .2s;display:flex}.podium-card:hover{transform:translateY(-2px)}.rank-0{background:#0f172a}.podium-rank{letter-spacing:1.5px;text-transform:uppercase;color:#475569;font-size:.65rem;font-weight:700}.podium-name{font-size:.85rem;font-weight:700}.podium-winrate{color:#e2e8f0;font-size:1.2rem;font-weight:800}.results-table{background:#0f172a;border:1px solid #1e293b;border-radius:12px;overflow:hidden}.table-head,.table-row{grid-template-columns:36px 140px 1fr 1fr 1fr 1fr 80px;align-items:center;gap:8px;padding:10px 16px;display:grid}.table-head{letter-spacing:1px;text-transform:uppercase;color:#334155;border-bottom:1px solid #1e293b;font-size:.65rem;font-weight:700}.table-row{border-bottom:1px solid #111827;transition:background .15s}.table-row:last-child{border-bottom:none}.table-row:hover{background:#111827}.top-row{background:#0f1f40}.rank-num{font-size:1rem}.algo-name{font-size:.8rem;font-weight:700}.best-run{color:#64748b;font-size:.75rem}.stat-cell{flex-direction:column;gap:3px;display:flex}.stat-cell-val{color:#e2e8f0;font-size:.78rem;font-weight:700}.bar-track{background:#1e293b;border-radius:2px;width:100%;height:4px;overflow:hidden}.bar-fill{border-radius:2px;height:100%;transition:width .4s}.chart-section,.dist-section{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:16px 20px}.chart-title{letter-spacing:1px;text-transform:uppercase;color:#475569;margin-bottom:16px;font-size:.7rem;font-weight:700}.chart-bars{align-items:flex-end;gap:20px;height:140px;padding-bottom:4px;display:flex}.chart-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.chart-bar-pct{color:#e2e8f0;font-size:.8rem;font-weight:800}.chart-bar-outer{background:#111827;border-radius:6px 6px 0 0;align-items:flex-end;width:100%;height:100px;display:flex;overflow:hidden}.chart-bar-inner{border-radius:6px 6px 0 0;width:100%;min-height:2px;transition:height .6s}.chart-bar-name{text-align:center;font-size:.68rem;font-weight:600}.dist-grid{flex-wrap:wrap;gap:16px;display:flex}.dist-col{flex:1;min-width:120px}.dist-label{margin-bottom:8px;font-size:.7rem;font-weight:700;display:block}.dist-dots{flex-wrap:wrap;gap:4px;display:flex}.dot{cursor:default;border-radius:50%;width:10px;height:10px}.dot-win{background:#10b981}.dot-loss{background:#1e293b;border:1px solid #334155}.dist-legend{color:#475569;align-items:center;gap:6px;margin-top:12px;font-size:.72rem;display:flex}@media (width<=700px){.table-head,.table-row{grid-template-columns:28px 100px 1fr 1fr}.table-head span:nth-child(5),.table-head span:nth-child(6),.table-head span:nth-child(7),.table-row>:nth-child(5),.table-row>:nth-child(6),.table-row>.best-run{display:none}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.app{color:#e2e8f0;background:#0a0a0f;flex-direction:column;align-items:center;gap:20px;min-height:100vh;padding:24px 16px 40px;font-family:Inter,Segoe UI,system-ui,sans-serif;display:flex}.header{text-align:center}.title{background:linear-gradient(135deg,#60a5fa 0%,#a78bfa 50%,#f472b6 100%);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800}.subtitle{color:#64748b;margin-top:4px;font-size:.9rem}.tabs{background:#0f172a;border:1px solid #1e293b;border-radius:10px;gap:4px;padding:4px;display:flex}.tab-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:9px 24px;font-size:.85rem;font-weight:600;transition:all .2s}.tab-btn:hover{color:#e2e8f0}.tab-active{color:#e2e8f0;background:#1e293b}.algo-bar{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.algo-btn{color:#94a3b8;cursor:pointer;letter-spacing:.3px;background:#0f172a;border:2px solid #1e293b;border-radius:10px;padding:10px 20px;font-size:.85rem;font-weight:600;transition:all .2s}.algo-btn:hover{color:#e2e8f0;border-color:#334155;transform:translateY(-1px)}.algo-btn.active{background:#0f172a;font-weight:700}.algo-btn-name{pointer-events:none}.algo-desc-bar{background:#0f172a;border:1px solid #1e293b;border-radius:10px;align-items:flex-start;gap:10px;max-width:700px;padding:10px 14px;display:flex}.algo-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:4px}.algo-desc{color:#94a3b8;font-size:.82rem;line-height:1.5}.main-layout{align-items:stretch;gap:20px;width:100%;max-width:900px;display:flex}.grid-wrapper{flex-shrink:0;position:relative}.grid{background:#0f172a;border:2px solid #1e293b;border-radius:12px;gap:3px;padding:8px;display:grid}.cell{background:#111827;border:1px solid #1a2540;border-radius:7px;justify-content:center;align-items:center;width:52px;height:52px;transition:background .15s;display:flex;position:relative}.cell.danger{background:#ef444414;border-color:#ef444440}.cell-trail{pointer-events:none;background:#a78bfa;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cell-agent,.cell-monster{border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:100%;height:100%;display:flex}.cell-agent{background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 0 12px #3b82f655}.cell-monster{border:1.5px solid}.cell-icon{font-size:1.05rem;line-height:1}.cell-sub{letter-spacing:.5px;color:inherit;opacity:.9;font-size:.55rem;font-weight:700}.cell-agent .cell-icon{color:#fff;font-size:1.1rem}.cell-agent .cell-sub{color:#bfdbfe}.overlay{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay.won{background:#10b98126;border:2px solid #10b98155}.overlay.lost{background:#ef444426;border:2px solid #ef444455}.start-overlay{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#060a148c;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.start-overlay-content{flex-direction:column;align-items:center;gap:18px;display:flex}.start-algo-name{letter-spacing:3px;text-transform:uppercase;color:#475569;font-size:.7rem;font-weight:700}.start-game-btn{color:#10b981;letter-spacing:4px;text-transform:uppercase;cursor:pointer;background:0 0;border:2px solid #10b981;border-radius:50px;align-items:center;gap:12px;padding:14px 44px;font-family:inherit;font-size:1rem;font-weight:800;transition:background .2s,box-shadow .2s,transform .15s;display:flex;box-shadow:0 0 28px #10b98133,inset 0 0 20px #10b98111}.start-game-btn:hover{background:#10b98118;transform:scale(1.04);box-shadow:0 0 48px #10b98155,inset 0 0 28px #10b98120}.start-btn-icon{font-size:1.1rem}.start-hint{color:#2d4460;letter-spacing:.5px;font-size:.62rem}.overlay-content{flex-direction:column;align-items:center;gap:10px;display:flex}.overlay-badge{letter-spacing:2px;text-transform:uppercase;border-radius:20px;padding:4px 12px;font-size:.7rem;font-weight:700}.overlay.won .overlay-badge{color:#10b981;background:#10b98122;border:1px solid #10b98144}.overlay.lost .overlay-badge{color:#ef4444;background:#ef444422;border:1px solid #ef444444}.overlay-msg{color:#e2e8f0;font-size:1.2rem;font-weight:700}.overlay-sub{color:#64748b;font-size:.8rem}.panel{flex-direction:column;flex:1;justify-content:space-between;gap:12px;min-width:200px;display:flex}.card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:14px 16px}.panel .card{flex:1}.card-title{letter-spacing:1px;text-transform:uppercase;color:#475569;margin-bottom:10px;font-size:.7rem;font-weight:700}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat{background:#111827;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.stat-label{color:#475569;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem}.stat-value{color:#e2e8f0;font-size:1.3rem;font-weight:800}.ctrl-row{flex-wrap:wrap;gap:8px;display:flex}.ctrl-btn{color:#e2e8f0;cursor:pointer;background:#111827;border:1px solid #1e293b;border-radius:8px;flex:1;padding:8px 14px;font-size:.8rem;font-weight:600;transition:all .15s}.ctrl-btn:hover:not(:disabled){background:#1e293b}.ctrl-btn:disabled{opacity:.35;cursor:not-allowed}.ctrl-btn.primary{background:#1d4ed8;border-color:#2563eb}.ctrl-btn.primary:hover:not(:disabled){background:#2563eb}.ctrl-btn.danger{background:#7f1d1d;border-color:#991b1b}.ctrl-btn.danger:hover:not(:disabled){background:#991b1b}.speed-row{align-items:center;gap:10px;margin-top:10px;display:flex}.speed-label{color:#64748b;white-space:nowrap;font-size:.75rem}.speed-val{color:#475569;white-space:nowrap;text-align:right;min-width:60px;font-size:.72rem}.slider{accent-color:#3b82f6;cursor:pointer;flex:1}.legend{flex-direction:column;gap:8px;display:flex}.legend-row{color:#94a3b8;align-items:center;gap:10px;font-size:.78rem;display:flex}.legend-swatch{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;display:flex}.agent-sw{color:#fff;background:linear-gradient(135deg,#1d4ed8,#2563eb)}.monster-sw{color:#40e0d0;background:#40e0d022;border:1.5px solid #40e0d0aa}.danger-sw{background:#ef44441f;border:1px solid #ef44444d}.level-bar{border-radius:6px;gap:3px;margin-top:10px;display:flex;overflow:hidden}.level-chip{border-radius:2px;flex:1;height:10px}.level-bar-labels{color:#475569;justify-content:space-between;margin-top:3px;font-size:.6rem;display:flex}.tree-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tree-latest-badge{letter-spacing:.5px;color:#60a5fa;text-transform:uppercase;vertical-align:middle;background:#1e3a5f;border-radius:10px;margin-left:8px;padding:2px 7px;font-size:.6rem;font-weight:600;display:inline-block}.turn-legend{flex-shrink:0;gap:8px;display:flex}.turn-legend-item{letter-spacing:.4px;text-transform:uppercase;border-radius:10px;padding:2px 7px;font-size:.6rem;font-weight:600}.turn-legend-item.explore{color:#60a5fa;background:#0c1e3d;border:1px solid #1e3a5f}.turn-legend-item.revisit{color:#fbbf24;background:#2d1900;border:1px solid #f59e0b}.turn-legend-item.kill{color:#34d399;background:#052e16;border:1px solid #10b981}.turn-legend-item.death{color:#f87171;background:#1f0000;border:1px solid #ef4444}.turn-history-scroll{scrollbar-width:thin;scrollbar-color:#1e3a5f transparent;gap:3px;margin-bottom:12px;padding:6px 2px 10px;display:flex;overflow-x:auto}.turn-node{cursor:pointer;opacity:.65;border:1.5px solid;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;min-width:34px;height:26px;padding:0 4px;font-family:JetBrains Mono,Fira Code,monospace;font-size:9px;transition:opacity .12s,box-shadow .12s;display:flex}.turn-node:hover{opacity:1}.turn-node-explore{color:#60a5fa;background:#0c1e3d;border-color:#1e3a5f}.turn-node-revisit{color:#fbbf24;background:#2d1900;border-color:#f59e0b}.turn-node-kill{color:#34d399;background:#052e16;border-color:#10b981}.turn-node-death{color:#f87171;background:#1f0000;border-color:#ef4444}.turn-node-selected{opacity:1;box-shadow:0 0 0 2px}.footer{color:#334155;text-align:center;flex-direction:column;gap:4px;margin-top:auto;font-size:.72rem;display:flex}.footer-link{color:#7c3aed;text-decoration:none}.footer-link:hover{text-decoration:underline}.tree-section{flex-direction:column;gap:12px;width:100%;min-width:0;max-width:900px;display:flex;overflow:hidden}.tree-card{min-width:0;padding:14px 12px;overflow:hidden}.treeviz-canvas{background:#060c18;border:1px solid #112032;border-radius:10px;flex-direction:column;display:flex;overflow:hidden;box-shadow:inset 0 0 32px #0009}.treeviz-toolbar{background:#050b16;border-bottom:1px solid #0e1d2e;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:5px 12px;display:flex}.treeviz-count{color:#2d4460;letter-spacing:.3px;font-family:JetBrains Mono,monospace;font-size:.63rem}.treeviz-cap{color:#f59e0b}.treeviz-reset-btn{color:#3b82f6;cursor:pointer;letter-spacing:.2px;background:#0a1828;border:1px solid #1a3050;border-radius:5px;padding:3px 10px;font-family:inherit;font-size:.63rem;transition:background .12s,border-color .12s}.treeviz-reset-btn:hover{background:#0f2240;border-color:#3b82f6}.treeviz-scroll{scrollbar-width:thin;scrollbar-color:#1a3050 transparent;height:480px;overflow:auto}.treeviz-empty{justify-content:center;align-items:center;height:200px;display:flex}.treeviz-placeholder{color:#1e3050;letter-spacing:.5px;font-size:.72rem;font-style:italic}@media (width<=700px){.main-layout{flex-direction:column;align-items:center}.panel{width:100%;max-width:480px}.cell{width:34px;height:34px}.cell-icon{font-size:.8rem}.cell-sub{font-size:.45rem}}
