@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root[data-theme=dark]{--bg-gradient:linear-gradient(135deg, #090d16 0%, #111827 50%, #0c1020 100%);--bg-color:#080c14;--card-bg:#0d142373;--card-border:#ffffff14;--card-shadow:0 8px 32px 0 #0006;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent:#6366f1;--accent-hover:#4f46e5;--accent-glow:#6366f159;--accent-secondary:#a855f7;--accent-secondary-glow:#a855f74d;--success:#10b981;--success-glow:#10b98140;--danger:#ef4444;--danger-glow:#ef444440;--warning:#f59e0b;--highlight:#06b6d4;--scrollbar-thumb:#ffffff26;--node-default:#1e293b80;--node-wall:#1e293b}:root[data-theme=light]{--bg-gradient:linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);--bg-color:#f1f5f9;--card-bg:#ffffff80;--card-border:#0f172a14;--card-shadow:0 8px 32px 0 #0f172a0f;--text-primary:#0f172a;--text-secondary:#475569;--accent:#4f46e5;--accent-hover:#3730a3;--accent-glow:#4f46e526;--accent-secondary:#8b5cf6;--accent-secondary-glow:#8b5cf626;--success:#059669;--success-glow:#05966926;--danger:#dc2626;--danger-glow:#dc262626;--warning:#d97706;--highlight:#0891b2;--scrollbar-thumb:#0f172a26;--node-default:#ffffffb3;--node-wall:#475569}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s,border-color .3s,color .15s}body{background:var(--bg-gradient);color:var(--text-primary);background-attachment:fixed;min-height:100vh;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.glass-container{flex-direction:column;min-height:100vh;padding:1.5rem;display:flex}.glass-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:16px}.glass-navbar{z-index:100;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem 2rem;display:flex}h1,h2,h3,h4{letter-spacing:-.025em;font-weight:600}.gradient-text{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.btn{cursor:pointer;border:1px solid var(--card-border);color:var(--text-primary);background:#ffffff0d;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.9rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.btn-primary{background:var(--accent);color:#fff;border-color:#0000}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 0 15px var(--accent-glow)}.btn-secondary{background:var(--accent-secondary);color:#fff;border-color:#0000}.btn-secondary:hover{background:var(--accent-secondary);filter:brightness(.9);box-shadow:0 0 15px var(--accent-secondary-glow)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.control-panel{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;display:flex}.control-group{flex-direction:column;gap:.35rem;display:flex}.control-group label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.select-input,.text-input{border:1px solid var(--card-border);color:var(--text-primary);cursor:pointer;background:#00000026;border-radius:8px;outline:none;padding:.5rem .8rem;font-family:inherit;font-size:.9rem}:root[data-theme=light] .select-input,:root[data-theme=light] .text-input{background:#fffc}.select-input:focus,.text-input:focus{border-color:var(--accent)}.slider-input{-webkit-appearance:none;background:#ffffff1a;border-radius:3px;outline:none;width:130px;height:6px}:root[data-theme=light] .slider-input{background:#0000001a}.slider-input::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;width:14px;height:14px;box-shadow:0 0 8px var(--accent-glow);border-radius:50%}.visualizer-workspace{flex:1;grid-template-rows:auto 1fr;gap:1.5rem;display:grid}.visualizer-body{justify-content:center;align-items:center;min-height:480px;padding:1rem;display:flex;position:relative;overflow:auto}@keyframes visitedAnimation{0%{background-color:#06b6d4bf;border-radius:100%;transform:scale(.3)}50%{background-color:#6366f1bf}75%{background-color:#a855f7bf;transform:scale(1.1)}to{background-color:var(--highlight);transform:scale(1)}}@keyframes shortestPath{0%{background-color:var(--warning);border-radius:30%;transform:scale(.6)}50%{background-color:var(--accent-secondary);transform:scale(1.1)}to{background-color:#f59e0b;transform:scale(1);box-shadow:0 0 10px #f59e0b99}}@keyframes pulseHighlight{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%{box-shadow:0 0 0 10px #6366f100}to{box-shadow:0 0 #6366f100}}@keyframes dropIn{0%{opacity:0;transform:translateY(-80px)}to{opacity:1;transform:translateY(0)}}@keyframes popOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-80px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes slideOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100px)}}@keyframes highlightTransition{0%{background-color:var(--highlight);transform:scale(1.15)}to{background-color:default;transform:scale(1)}}.ds-container{flex-direction:column;gap:1.5rem;width:100%;height:100%;display:flex}.ds-selector-bar{gap:.5rem;margin-bottom:.5rem;padding:.5rem;display:flex;overflow-x:auto}.ds-panel-body{border:1px solid var(--card-border);background:#0003;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:center;min-height:420px;padding:3rem 1.5rem;display:flex;position:relative;overflow:auto}:root[data-theme=light] .ds-panel-body{background:#fff6}.ds-controls{flex-wrap:wrap;align-items:center;gap:1rem;width:100%;display:flex}.stack-wrapper{flex-direction:column;align-items:center;width:150px;height:350px;display:flex;position:relative}.stack-bucket{border-left:4px solid var(--accent);border-right:4px solid var(--accent);border-bottom:4px solid var(--accent);width:100%;height:100%;box-shadow:0 8px 24px var(--accent-glow);border-radius:0 0 16px 16px;flex-direction:column-reverse;align-items:center;gap:6px;padding:8px;display:flex;position:relative;overflow-y:auto}.stack-element{background:var(--card-bg);border:1px solid var(--card-border);width:100%;height:48px;min-height:48px;box-shadow:var(--card-shadow);color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-weight:600;display:flex;position:relative}.stack-element.animated-push{animation:.35s cubic-bezier(.175,.885,.32,1.1) forwards dropIn}.stack-element.animated-pop{animation:.35s cubic-bezier(.6,-.28,.735,.045) forwards popOut}.stack-element.highlighted{border-color:var(--highlight);box-shadow:0 0 12px var(--highlight);animation:1s infinite pulseHighlight}.stack-badge-top{color:#080c14;background-color:var(--highlight);text-transform:uppercase;box-shadow:0 0 8px var(--highlight);border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.queue-wrapper{align-items:center;width:80%;max-width:600px;height:120px;display:flex;position:relative}.queue-tube{border-top:4px solid var(--accent-secondary);border-bottom:4px solid var(--accent-secondary);width:100%;height:70px;box-shadow:0 8px 24px var(--accent-secondary-glow);align-items:center;gap:12px;padding:8px;display:flex;position:relative;overflow-x:auto}.queue-element{background:var(--card-bg);border:1px solid var(--card-border);width:75px;min-width:75px;height:60px;box-shadow:var(--card-shadow);color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;display:flex;position:relative}.queue-element.animated-enqueue{animation:.35s cubic-bezier(.175,.885,.32,1.1) forwards slideInRight}.queue-element.animated-dequeue{animation:.35s cubic-bezier(.6,-.28,.735,.045) forwards slideOutLeft}.queue-element.highlighted{border-color:var(--highlight);box-shadow:0 0 12px var(--highlight)}.queue-element-badge{text-transform:uppercase;color:#fff;pointer-events:none;border-radius:3px;padding:1px 3px;font-size:.55rem;font-weight:800;position:absolute}.queue-element-badge.front{background:var(--danger);box-shadow:0 0 6px var(--danger-glow);top:4px;left:4px}.queue-element-badge.rear{background:var(--accent-secondary);box-shadow:0 0 6px var(--accent-secondary-glow);bottom:4px;right:4px}.array-wrapper{flex-direction:column;align-items:center;gap:.5rem;width:100%;padding:1rem;display:flex;overflow-x:auto}.array-grid{gap:6px;display:flex}.array-cell-container{flex-direction:column;align-items:center;gap:4px;display:flex}.array-cell{background:var(--card-bg);border:1px solid var(--card-border);width:54px;height:54px;box-shadow:var(--card-shadow);color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600;transition:all .25s;display:flex}.array-cell.active-compare{border-color:var(--highlight);box-shadow:0 0 12px var(--highlight);transform:scale(1.08)}.array-cell.active-swap{border-color:var(--danger);box-shadow:0 0 12px var(--danger);transform:scale(1.08)}.array-cell.active-found{border-color:var(--success);box-shadow:0 0 12px var(--success-glow);transform:scale(1.08)}.array-index{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.75rem}.list-wrapper{align-items:center;width:100%;min-height:250px;padding:2rem 1rem;display:flex;position:relative;overflow-x:auto}.list-nodes-container{align-items:center;gap:45px;display:flex;position:relative}.list-node{background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:8px;transition:all .25s;display:flex;position:relative;overflow:hidden}.list-node.highlighted{border-color:var(--highlight);box-shadow:0 0 15px var(--highlight)}.list-node-val{border-right:1px solid var(--card-border);text-align:center;min-width:45px;padding:.75rem 1rem;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:600}.list-node-next{color:var(--text-secondary);background:#0000001a;justify-content:center;align-items:center;padding:.75rem .5rem;font-family:JetBrains Mono,monospace;font-size:.75rem;display:flex}.list-arrow-svg{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.arrow-path{stroke:var(--accent);stroke-width:2px;fill:none;stroke-dasharray:6;animation:1s linear infinite dash}.arrow-path.highlighted{stroke:var(--highlight);stroke-width:3px}@keyframes dash{to{stroke-dashoffset:-12px}}.null-node{color:var(--text-secondary);border:1px dashed var(--card-border);border-radius:6px;padding:.5rem 1rem;font-family:JetBrains Mono,monospace;font-weight:500}.bst-wrapper{width:100%;height:380px;position:relative;overflow:auto}.bst-node-svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.bst-node-circle{background:var(--card-bg);border:2px solid var(--accent);width:42px;height:42px;color:var(--text-primary);z-index:2;border-radius:50%;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:600;transition:all .3s;display:flex;position:absolute;transform:translate(-50%,-50%)}.bst-node-circle.highlighted{border-color:var(--highlight);box-shadow:0 0 15px var(--highlight);transform:translate(-50%,-50%)scale(1.15)}.array-cell.active-low{border-color:var(--warning)!important;box-shadow:0 0 12px var(--warning)!important}.array-cell.active-high{border-color:var(--accent-secondary)!important;box-shadow:0 0 12px var(--accent-secondary-glow)!important}.array-cell.active-mid{border-color:var(--highlight)!important;box-shadow:0 0 12px var(--highlight)!important}.array-ptr-label{margin-left:2px;font-size:.7rem;font-weight:800}.array-ptr-label.low{color:var(--warning)}.array-ptr-label.high{color:var(--accent-secondary)}.array-ptr-label.mid{color:var(--highlight)}.complexity-card{border-left:4px solid var(--accent);background:var(--card-bg);box-shadow:0 8px 32px var(--shadow);border-radius:12px;margin-top:1.5rem;padding:1.2rem 1.8rem;animation:.4s ease-out fadeIn}.complexity-grid{grid-template-columns:180px 1fr;align-items:center;gap:.6rem 1rem;display:grid}.complexity-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.85rem;font-weight:700}.complexity-value{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:600}.status-banner{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1.2rem;padding:.8rem 1.2rem;font-size:.9rem;font-weight:600;animation:.3s ease-out fadeIn;display:flex}.status-dot{border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse;display:inline-block}.banner-success{color:#10b981;background:#10b98114!important;border-left:4px solid #10b981!important}.banner-success .status-dot{background-color:#10b981}.banner-error{color:#ef4444;background:#ef444414!important;border-left:4px solid #ef4444!important}.banner-error .status-dot{background-color:#ef4444}.banner-warning{color:var(--warning);border-left:4px solid var(--warning)!important;background:#f59e0b14!important}.banner-warning .status-dot{background-color:var(--warning)}.banner-info{color:#3b82f6;background:#3b82f614!important;border-left:4px solid #3b82f6!important}.banner-info .status-dot{background-color:#3b82f6}.status-close-btn{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;margin:0 0 0 1rem;padding:0;font-size:1.3rem;line-height:1;transition:opacity .2s}.status-close-btn:hover{opacity:1}@keyframes pulse{0%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}to{opacity:.6;transform:scale(.9)}}.app-wrapper{flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.ambient-bg{pointer-events:none;z-index:-1;position:fixed;inset:0;overflow:hidden}.glow-blob{filter:blur(120px);opacity:.15;border-radius:50%;transition:background .5s;position:absolute}:root[data-theme=light] .glow-blob{opacity:.08}.glow-1{background:var(--accent);width:50%;height:50%;top:-10%;left:-10%}.glow-2{background:var(--accent-secondary);width:50%;height:50%;bottom:-10%;right:-10%}.glow-3{background:var(--highlight);width:35%;height:35%;top:40%;left:50%;transform:translate(-50%)}.nav-logo{color:var(--text-primary);align-items:center;gap:.75rem;font-size:1.4rem;font-weight:700;text-decoration:none;display:flex}.logo-icon{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-secondary) 100%);color:#fff;width:32px;height:32px;box-shadow:0 0 12px var(--accent-glow);border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;font-weight:800;display:flex}.nav-links{gap:.5rem;display:flex}.nav-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.nav-link:hover{color:var(--text-primary);background:#ffffff0a}:root[data-theme=light] .nav-link:hover{background:#00000008}.nav-link.active{color:var(--accent);background:#6366f11a;border-color:#6366f126}:root[data-theme=light] .nav-link.active{color:var(--accent);background:#4f46e514;border-color:#4f46e51f}.theme-toggle{border:1px solid var(--card-border);color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:all .3s;display:flex}.theme-toggle:hover{box-shadow:0 0 10px var(--accent-glow);background:#ffffff1a;transform:rotate(15deg)}.main-content{flex-direction:column;flex:1;gap:1.5rem;width:100%;max-width:1200px;margin:0 auto;padding:0 1rem 3rem;display:flex}.welcome-hero{border-radius:16px;flex-direction:column;gap:.75rem;margin-bottom:.5rem;padding:2rem;display:flex}.welcome-hero p{color:var(--text-secondary);max-width:700px;font-size:1.05rem;line-height:1.6}.footer{text-align:center;color:var(--text-secondary);border-top:1px solid var(--card-border);margin-top:auto;padding:2rem 0;font-size:.85rem}
