@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0b14;--bg-secondary:#11131f;--bg-card:#161929;--bg-elevated:#1c1f32;--border-subtle:#252838;--border-active:#3b3f5b;--text-primary:#e4e6f0;--text-secondary:#8b8fa3;--text-muted:#5c6080;--accent:#6366f1;--accent-light:#818cf8;--accent-glow:#6366f126;--green:#34d399;--amber:#fbbf24;--rose:#f43f5e;--cyan:#22d3ee;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}html{overflow-x:hidden}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}#app{width:100%;min-height:100vh;overflow-x:hidden}input[type=range]{-webkit-appearance:none;background:var(--border-subtle);border-radius:2px;outline:none;width:140px;max-width:100%;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary);width:14px;height:14px;box-shadow:0 0 0 2px var(--accent);border-radius:50%;transition:transform .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}select{cursor:pointer;font-family:var(--font)}button{font-family:var(--font)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (width<=768px){.page{gap:20px;min-width:0}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header h1{font-size:1.35rem}.algo-chip{align-self:flex-start}.toolbar{flex-direction:column;align-items:stretch;gap:16px;padding:16px}.toolbar-left{flex-direction:column;align-items:stretch;gap:14px;width:100%}.toolbar .control{width:100%}.toolbar .control select,.toolbar .control input[type=range]{width:100%;max-width:100%}.mode-group{width:100%}.mode-btns{grid-template-columns:repeat(3,1fr);width:100%;display:grid}.mode-btn{text-align:center;padding:8px 6px}.toolbar-actions{grid-template-columns:repeat(2,1fr);gap:8px;width:100%;display:grid}.toolbar-actions .action-btn{justify-content:center;padding:10px 12px}.legend,.legend-bar{gap:12px 16px;padding:12px 16px}.viz-container{min-height:280px;padding:16px 10px 12px}.bars{height:260px}.bar-label{font-size:.55rem;top:-14px}.grid-wrapper{-webkit-overflow-scrolling:touch;max-width:100%;padding:12px;overflow-x:auto}.tab-group{grid-template-columns:repeat(2,1fr);gap:4px;width:100%;display:grid}.tab{padding:8px 10px;font-size:.75rem}.panel{padding:16px}.ops-bar{width:100%}.ds-input{flex:1;width:auto;min-width:0}.stack-card,.stack-base{width:min(220px,100%);max-width:100%}}@media (width<=480px){.toolbar-actions{grid-template-columns:1fr 1fr}.toolbar-actions .action-btn{gap:4px;padding:10px 8px;font-size:.75rem}.toolbar-actions .action-btn svg{flex-shrink:0}.pathfinding-grid .cell:hover{transform:none}.tab-group{grid-template-columns:1fr 1fr}}.app-shell[data-v-b35dbc7b]{flex-direction:column;min-height:100vh;display:flex}.topbar[data-v-b35dbc7b]{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);background:#0a0b14d9;justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex;position:sticky;top:0}.brand[data-v-b35dbc7b]{align-items:center;gap:10px;display:flex}.brand-logo[data-v-b35dbc7b]{width:26px;height:26px;color:var(--accent)}.brand-name[data-v-b35dbc7b]{color:var(--text-primary);letter-spacing:-.3px;font-size:1.1rem;font-weight:700}.nav[data-v-b35dbc7b]{gap:2px;display:flex}.nav-item[data-v-b35dbc7b]{color:var(--text-muted);border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item[data-v-b35dbc7b]:hover{color:var(--text-secondary);background:var(--bg-elevated)}.nav-item.router-link-active[data-v-b35dbc7b]{color:var(--accent-light);background:var(--accent-glow)}.topbar-right[data-v-b35dbc7b]{align-items:center;gap:8px;display:flex}.badge[data-v-b35dbc7b]{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:4px;padding:3px 8px;font-size:.7rem;font-weight:600}.main[data-v-b35dbc7b]{box-sizing:border-box;flex:1;width:100%;min-width:0;max-width:1280px;margin:0 auto;padding:40px 32px}@media (width<=768px){.topbar[data-v-b35dbc7b]{flex-wrap:wrap;gap:10px;height:auto;min-height:56px;padding:10px 16px}.brand[data-v-b35dbc7b]{flex-shrink:0}.nav[data-v-b35dbc7b]{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:100%;order:3;gap:4px;width:100%;padding-bottom:2px;overflow-x:auto}.nav[data-v-b35dbc7b]::-webkit-scrollbar{display:none}.nav-item[data-v-b35dbc7b]{flex-shrink:0;padding:8px 12px;font-size:.8rem}.topbar-right[data-v-b35dbc7b]{margin-left:auto}.badge[data-v-b35dbc7b]{padding:2px 6px;font-size:.65rem}.main[data-v-b35dbc7b]{padding:20px 16px}}@media (width<=480px){.topbar-right[data-v-b35dbc7b]{display:none}.brand-name[data-v-b35dbc7b]{font-size:1rem}.main[data-v-b35dbc7b]{padding:16px 12px}}.page[data-v-743bf893]{flex-direction:column;gap:28px;min-width:0;max-width:100%;display:flex}.page-header[data-v-743bf893]{justify-content:space-between;align-items:flex-start;display:flex}.page-header h1[data-v-743bf893]{color:var(--text-primary);letter-spacing:-.3px;margin:0;font-size:1.6rem;font-weight:700}.page-desc[data-v-743bf893]{color:var(--text-muted);margin:4px 0 0;font-size:.85rem}.algo-chip[data-v-743bf893]{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:500;display:flex}.chip-dot[data-v-743bf893]{background:var(--accent);border-radius:50%;width:6px;height:6px}.chip-meta[data-v-743bf893]{color:var(--text-muted);background:var(--bg-secondary);border-radius:4px;padding:1px 6px;font-size:.7rem}.toolbar[data-v-743bf893]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:20px 24px;display:flex}.toolbar-left[data-v-743bf893]{flex-wrap:wrap;align-items:flex-end;gap:20px;display:flex}.control[data-v-743bf893]{flex-direction:column;gap:6px;display:flex}.control label[data-v-743bf893]{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:.72rem;font-weight:600}.control label strong[data-v-743bf893]{color:var(--text-secondary);margin-left:4px;font-weight:600}select[data-v-743bf893]{background:var(--bg-elevated);width:160px;color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:8px;padding:8px 10px;font-size:.82rem;transition:border-color .2s}select[data-v-743bf893]:focus{border-color:var(--accent);outline:none}.toolbar-actions[data-v-743bf893]{flex-wrap:wrap;gap:6px;display:flex}.action-btn[data-v-743bf893]{border:1px solid var(--border-subtle);cursor:pointer;background:var(--bg-elevated);color:var(--text-secondary);border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:500;transition:all .15s;display:flex}.action-btn[data-v-743bf893]:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary);background:var(--accent-glow)}.action-btn[data-v-743bf893]:disabled{opacity:.35;cursor:not-allowed}.action-btn.primary[data-v-743bf893]{background:var(--accent);color:#fff;border-color:#0000}.action-btn.primary[data-v-743bf893]:hover:not(:disabled){background:var(--accent-light)}.viz-container[data-v-743bf893]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;align-items:flex-end;max-width:100%;min-height:370px;padding:28px 16px 16px;display:flex;overflow:hidden}.bars[data-v-743bf893]{align-items:flex-end;gap:2px;width:100%;height:320px;padding-bottom:8px;display:flex}.bar[data-v-743bf893]{cursor:crosshair;border-radius:3px 3px 0 0;flex:1;justify-content:center;align-items:flex-start;min-width:3px;transition:height 80ms,background .15s,transform .1s;display:flex;position:relative}.bar[data-v-743bf893]:hover{transform-origin:bottom;transform:scaleY(1.02)}.bar-label[data-v-743bf893]{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.6rem;font-weight:600;position:absolute;top:-18px}.bar.default[data-v-743bf893]{background:var(--bg-elevated);border-top:1px solid var(--border-subtle)}.bar.comparing[data-v-743bf893]{background:var(--amber);box-shadow:0 0 8px #fbbf244d}.bar.swapped[data-v-743bf893]{background:var(--rose);box-shadow:0 0 8px #f43f5e4d}.bar.sorted[data-v-743bf893]{background:var(--green);box-shadow:0 0 8px #34d3994d}.legend[data-v-743bf893]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;flex-wrap:wrap;justify-content:center;gap:20px;padding:12px 20px;display:flex}.legend-item[data-v-743bf893]{color:var(--text-muted);align-items:center;gap:6px;font-size:.78rem;font-weight:500;display:flex}.swatch[data-v-743bf893]{border-radius:2px;flex-shrink:0;width:10px;height:10px}.swatch.neutral[data-v-743bf893]{background:var(--bg-elevated);border:1px solid var(--border-subtle)}.swatch.compare[data-v-743bf893]{background:var(--amber)}.swatch.swap[data-v-743bf893]{background:var(--rose)}.swatch.sorted[data-v-743bf893]{background:var(--green)}.page[data-v-0a2595d0]{flex-direction:column;gap:28px;min-width:0;max-width:100%;display:flex}.page-header[data-v-0a2595d0]{justify-content:space-between;align-items:flex-start;display:flex}.page-header h1[data-v-0a2595d0]{color:var(--text-primary);letter-spacing:-.3px;margin:0;font-size:1.6rem;font-weight:700}.page-desc[data-v-0a2595d0]{color:var(--text-muted);margin:4px 0 0;font-size:.85rem}.algo-chip[data-v-0a2595d0]{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:500;display:flex}.chip-dot[data-v-0a2595d0]{background:var(--accent);border-radius:50%;width:6px;height:6px}.toolbar[data-v-0a2595d0]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:20px 24px;display:flex}.toolbar-left[data-v-0a2595d0]{flex-wrap:wrap;align-items:flex-end;gap:20px;display:flex}.control[data-v-0a2595d0]{flex-direction:column;gap:6px;display:flex}.control label[data-v-0a2595d0]{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:.72rem;font-weight:600}select[data-v-0a2595d0]{background:var(--bg-elevated);width:140px;color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:8px;padding:8px 10px;font-size:.82rem;transition:border-color .2s}select[data-v-0a2595d0]:focus{border-color:var(--accent);outline:none}.mode-group[data-v-0a2595d0]{flex-direction:column;gap:6px;display:flex}.mode-btns[data-v-0a2595d0]{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:8px;gap:2px;padding:3px;display:flex}.mode-btn[data-v-0a2595d0]{color:var(--text-muted);cursor:pointer;font-size:.78rem;font-weight:500;font-family:var(--font);background:0 0;border:none;border-radius:6px;padding:5px 12px;transition:all .15s}.mode-btn.active[data-v-0a2595d0]{background:var(--accent);color:#fff}.toolbar-actions[data-v-0a2595d0]{flex-wrap:wrap;gap:6px;display:flex}.action-btn[data-v-0a2595d0]{border:1px solid var(--border-subtle);cursor:pointer;background:var(--bg-elevated);color:var(--text-secondary);font-size:.78rem;font-weight:500;font-family:var(--font);border-radius:8px;align-items:center;gap:5px;padding:8px 14px;transition:all .15s;display:flex}.action-btn[data-v-0a2595d0]:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}.action-btn[data-v-0a2595d0]:disabled{opacity:.35;cursor:not-allowed}.action-btn.primary[data-v-0a2595d0]{background:var(--accent);color:#fff;border-color:#0000}.action-btn.primary[data-v-0a2595d0]:hover:not(:disabled){background:var(--accent-light)}.grid-wrapper[data-v-0a2595d0]{background:var(--bg-card);border:1px solid var(--border-subtle);-webkit-overflow-scrolling:touch;border-radius:12px;max-width:100%;padding:20px;overflow:auto hidden}.grid[data-v-0a2595d0]{flex-direction:column;gap:2px;width:fit-content;margin:0 auto;display:flex}.grid-row[data-v-0a2595d0]{gap:2px;display:flex}.pathfinding-grid .cell[data-v-0a2595d0]{flex-shrink:0;width:22px;height:22px}.cell[data-v-0a2595d0]{background:var(--bg-elevated);cursor:pointer;border:1px solid #0000;border-radius:3px;transition:background .1s,transform 80ms}.cell[data-v-0a2595d0]:hover{transform:scale(1.1)}.cell.wall[data-v-0a2595d0]{background:var(--text-muted);border-color:#5c60804d}.cell.start[data-v-0a2595d0]{background:var(--green);border-color:#34d39966;box-shadow:0 0 6px #34d39940}.cell.end[data-v-0a2595d0]{background:var(--rose);border-color:#f43f5e66;box-shadow:0 0 6px #f43f5e40}.cell.visited[data-v-0a2595d0]{background:var(--accent);animation:.2s forwards visitAnim-0a2595d0}.cell.path[data-v-0a2595d0]{background:var(--cyan);animation:.3s forwards pathAnim-0a2595d0}@keyframes visitAnim-0a2595d0{0%{opacity:.5;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes pathAnim-0a2595d0{0%{transform:scale(.5)}60%{transform:scale(1.15)}to{transform:scale(1)}}.legend-bar[data-v-0a2595d0]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;flex-wrap:wrap;justify-content:center;gap:20px;padding:12px 24px;display:flex}.legend-item[data-v-0a2595d0]{color:var(--text-muted);align-items:center;gap:6px;font-size:.78rem;font-weight:500;display:flex}.swatch[data-v-0a2595d0]{border-radius:2px;flex-shrink:0;width:10px;height:10px}.swatch.start[data-v-0a2595d0]{background:var(--green)}.swatch.end[data-v-0a2595d0]{background:var(--rose)}.swatch.wall[data-v-0a2595d0]{background:var(--text-muted)}.swatch.visited[data-v-0a2595d0]{background:var(--accent)}.swatch.path[data-v-0a2595d0]{background:var(--cyan)}@media (width<=768px){.grid.pathfinding-grid[data-v-0a2595d0],.pathfinding-grid .grid-row[data-v-0a2595d0]{width:100%}.pathfinding-grid .cell[data-v-0a2595d0]{aspect-ratio:1;flex:1;width:auto;min-width:0;height:auto}}.tree-node[data-v-63c99724]{flex-direction:column;align-items:center;display:flex}.node[data-v-63c99724]{background:var(--accent);color:#fff;z-index:1;border:2px solid #6366f14d;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 2px 8px #6366f133}.node[data-v-63c99724]:hover{transform:scale(1.1);box-shadow:0 4px 16px #6366f159}.children[data-v-63c99724]{gap:40px;margin-top:8px;display:flex}.child[data-v-63c99724]{flex-direction:column;align-items:center;display:flex}.edge[data-v-63c99724]{background:var(--border-subtle);width:1px;height:24px;position:relative}.edge[data-v-63c99724]:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.page[data-v-0bcf84c2]{flex-direction:column;gap:28px;min-width:0;max-width:100%;display:flex}.page-header[data-v-0bcf84c2]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-header h1[data-v-0bcf84c2]{color:var(--text-primary);letter-spacing:-.3px;margin:0;font-size:1.6rem;font-weight:700}.page-desc[data-v-0bcf84c2]{color:var(--text-muted);margin:4px 0 0;font-size:.85rem}.tab-group[data-v-0bcf84c2]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;gap:2px;padding:3px;display:flex}.tab[data-v-0bcf84c2]{color:var(--text-muted);cursor:pointer;font-size:.82rem;font-weight:500;font-family:var(--font);background:0 0;border:none;border-radius:8px;padding:7px 16px;transition:all .15s}.tab[data-v-0bcf84c2]:hover{color:var(--text-secondary)}.tab.active[data-v-0bcf84c2]{background:var(--accent);color:#fff}.panel[data-v-0bcf84c2]{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;min-height:250px;padding:24px}.structure-block[data-v-0bcf84c2]{flex-direction:column;gap:24px;display:flex}.ops-bar[data-v-0bcf84c2]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ds-input[data-v-0bcf84c2]{background:var(--bg-elevated);width:140px;color:var(--text-primary);border:1px solid var(--border-subtle);font-size:.82rem;font-family:var(--font);border-radius:8px;padding:8px 12px;transition:border-color .15s}.ds-input[data-v-0bcf84c2]:focus{border-color:var(--accent);outline:none}.op-btn[data-v-0bcf84c2]{cursor:pointer;font-size:.78rem;font-weight:500;font-family:var(--font);border:none;border-radius:8px;padding:8px 16px;transition:all .15s}.op-btn.accent[data-v-0bcf84c2]{background:var(--accent);color:#fff}.op-btn.accent[data-v-0bcf84c2]:hover{background:var(--accent-light)}.op-btn.danger[data-v-0bcf84c2]{background:var(--bg-elevated);color:var(--rose);border:1px solid #f43f5e33}.op-btn.danger[data-v-0bcf84c2]:hover{background:#f43f5e1a}.stack-area[data-v-0bcf84c2]{flex-direction:column-reverse;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-height:180px;padding:20px;display:flex}.stack-items[data-v-0bcf84c2]{flex-direction:column-reverse;align-items:center;gap:4px;display:flex}.stack-card[data-v-0bcf84c2]{background:var(--accent);color:#fff;text-align:center;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:220px;padding:12px 16px;font-weight:600;display:flex;box-shadow:0 2px 8px #6366f133}.card-idx[data-v-0bcf84c2]{background:#ffffff26;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:600}.card-val[data-v-0bcf84c2]{font-size:.9rem}.stack-base[data-v-0bcf84c2]{background:var(--bg-elevated);width:240px;color:var(--text-muted);text-align:center;letter-spacing:2px;border:1px solid var(--border-subtle);border-top:none;border-radius:0 0 8px 8px;margin-top:4px;padding:6px;font-size:.68rem;font-weight:700}.stack-enter-active[data-v-0bcf84c2]{animation:.2s slideIn-0bcf84c2}.stack-leave-active[data-v-0bcf84c2]{animation:.2s slideOut-0bcf84c2}@keyframes slideIn-0bcf84c2{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOut-0bcf84c2{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}.queue-area[data-v-0bcf84c2]{flex:1;align-items:flex-end;min-height:150px;padding:20px;display:flex;overflow-x:auto}.queue-items[data-v-0bcf84c2]{align-items:flex-end;gap:6px;display:flex}.queue-card[data-v-0bcf84c2]{flex-direction:column;align-items:center;gap:4px;display:flex}.queue-card .card-val[data-v-0bcf84c2]{background:var(--green);color:#fff;border-radius:8px;padding:12px 18px;font-size:.9rem;font-weight:600;box-shadow:0 2px 8px #34d39933}.q-label[data-v-0bcf84c2]{letter-spacing:1px;border-radius:4px;padding:2px 6px;font-size:.6rem;font-weight:700}.q-label.front[data-v-0bcf84c2]{color:var(--amber);background:#fbbf241a}.q-label.rear[data-v-0bcf84c2]{color:var(--accent-light);background:var(--accent-glow)}.queue-enter-active[data-v-0bcf84c2]{animation:.2s queueIn-0bcf84c2}.queue-leave-active[data-v-0bcf84c2]{animation:.2s queueOut-0bcf84c2}@keyframes queueIn-0bcf84c2{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes queueOut-0bcf84c2{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(10px)}}.ll-area[data-v-0bcf84c2]{flex:1;align-items:center;padding:20px;display:flex;overflow-x:auto}.ll-items[data-v-0bcf84c2]{align-items:center;gap:0;display:flex}.ll-node[data-v-0bcf84c2]{background:var(--rose);color:#fff;border-radius:8px;padding:12px 18px;font-size:.9rem;font-weight:600;box-shadow:0 2px 8px #f43f5e33}.ll-arrow[data-v-0bcf84c2]{color:var(--accent);padding:0 10px;font-size:1.2rem;font-weight:700}.tree-area[data-v-0bcf84c2]{flex:1;justify-content:center;padding:20px;display:flex;overflow:auto}.tree-wrapper[data-v-0bcf84c2]{justify-content:center;display:flex}.empty-state[data-v-0bcf84c2]{width:100%;color:var(--text-muted);justify-content:center;align-items:center;padding:40px;font-size:.85rem;font-style:italic;display:flex}
