:root{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2128;--bg-card:#161b22;--bg-card-hover:#1c2128;--bg-surface:#ffffff0a;--bg-glass:#ffffff0a;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-tertiary:#6e7681;--text-muted:#484f58;--accent-primary:#2f81f7;--accent-primary-glow:#2f81f733;--accent-secondary:#3dc9b0;--accent-secondary-glow:#3dc9b033;--accent-tertiary:#bc8cff;--accent-warning:#d29922;--accent-error:#f85149;--accent-success:#3fb950;--gradient-primary:linear-gradient(135deg, #2f81f7 0%, #388bfd 100%);--gradient-secondary:linear-gradient(135deg, #3dc9b0 0%, #2188ff 100%);--gradient-accent:linear-gradient(135deg, #bc8cff 0%, #d29922 100%);--gradient-dark:linear-gradient(180deg, #0d1117 0%, #161b22 100%);--gradient-card:linear-gradient(145deg, #2f81f70d 0%, #0000 100%);--border-color:#30363d;--border-active:#388bfd;--viz-default:#388bfd;--viz-comparing:#d29922;--viz-swapping:#f85149;--viz-sorted:#3fb950;--viz-pivot:#bc8cff;--viz-current:#3dc9b0;--viz-visited:#8957e5;--viz-found:#3fb950;--viz-searching:#2f81f7;--viz-path:#d29922;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--text-xs:.7rem;--text-sm:.8rem;--text-base:.9rem;--text-lg:1.05rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--text-5xl:3rem;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 3px 10px #0006;--shadow-lg:0 8px 24px #0006;--shadow-glow:0 0 12px var(--accent-primary-glow);--shadow-glow-secondary:0 0 12px var(--accent-secondary-glow);--transition-fast:.15s ease;--transition-base:.22s ease;--transition-slow:.35s ease;--z-base:1;--z-overlay:10;--z-modal:100;--z-tooltip:1000}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f6f8fa;--bg-tertiary:#eaeef2;--bg-card:#fff;--bg-card-hover:#f6f8fa;--bg-surface:#00000008;--bg-glass:#00000008;--text-primary:#1f2328;--text-secondary:#656d76;--text-tertiary:#8c959f;--text-muted:#afb8c1;--border-color:#d0d7de;--border-active:#0969da;--accent-primary:#0969da;--accent-primary-glow:#0969da26;--accent-secondary:#1a7f64;--accent-secondary-glow:#1a7f6426;--accent-success:#1a7f64;--accent-error:#cf222e;--accent-warning:#9a6700;--accent-tertiary:#8250df;--gradient-primary:linear-gradient(135deg, #0969da 0%, #2188ff 100%);--gradient-dark:linear-gradient(180deg, #fff 0%, #f6f8fa 100%);--gradient-card:linear-gradient(145deg, #0969da0a 0%, #0000 100%);--shadow-sm:0 1px 3px #00000014;--shadow-md:0 3px 10px #0000001a;--shadow-lg:0 8px 24px #0000001f;--viz-default:#0969da;--viz-comparing:#9a6700;--viz-swapping:#cf222e;--viz-sorted:#1a7f64;--viz-pivot:#8250df;--viz-current:#1a7f64;--viz-visited:#8250df;--viz-found:#1a7f64;--viz-searching:#0969da;--viz-path:#9a6700}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none}ul,ol{list-style:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}::selection{background:var(--accent-primary);color:#fff}#root,.app{flex-direction:column;min-height:100vh;display:flex}.glass{background:var(--bg-card);border:1px solid var(--border-color)}.gradient-text{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glow{box-shadow:var(--shadow-glow)}code,pre,.mono{font-family:var(--font-mono)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px var(--accent-primary-glow)}50%{box-shadow:0 0 16px var(--accent-primary-glow)}}.animate-fade-in{animation:.4s forwards fadeIn}.animate-slide-up{animation:.5s forwards slideUp}@keyframes spin{to{transform:rotate(360deg)}}.navbar{z-index:var(--z-overlay);padding:0 var(--space-xl);background:var(--bg-primary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:56px;display:flex;position:sticky;top:0}.navbar-brand{align-items:center;gap:var(--space-sm);font-weight:700;font-size:var(--text-base);letter-spacing:-.3px;color:var(--text-primary);display:flex}.brand-logo{object-fit:contain;width:auto;height:28px}.brand-text{color:var(--text-primary)}.navbar-links{align-items:center;height:100%;display:flex}.nav-link{padding:0 var(--space-md);height:100%;font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--transition-fast);align-items:center;gap:6px;font-weight:500;display:flex;position:relative}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-icon{font-size:.85rem}.nav-indicator{bottom:0;left:var(--space-md);right:var(--space-md);background:var(--accent-primary);border-radius:var(--radius-full) var(--radius-full) 0 0;height:2px;position:absolute}.navbar-actions{align-items:center;gap:var(--space-sm);display:flex}.theme-toggle{border-radius:var(--radius-md);border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.theme-toggle:hover{background:var(--bg-secondary);border-color:var(--text-tertiary);color:var(--text-primary)}.theme-icon{justify-content:center;align-items:center;font-size:1rem;line-height:1;display:flex}.nav-btn{border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);border:1px solid var(--border-color);transition:all var(--transition-fast);align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:flex}.nav-btn:hover{color:var(--text-primary);border-color:var(--text-tertiary);background:var(--bg-secondary)}.github-btn{color:var(--text-secondary)}@media (width<=768px){.navbar{padding:0 var(--space-md)}.nav-label{display:none}}.navbar-user{align-items:center;gap:var(--space-sm);margin-left:var(--space-xs);padding-left:var(--space-sm);border-left:1px solid var(--border-color);display:flex}.navbar-avatar{object-fit:cover;border:2px solid var(--border-color);background:var(--bg-tertiary);border-radius:50%;width:30px;height:30px}.signout-btn{font-size:var(--text-xs);color:var(--text-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:all var(--transition-fast);background:0 0;padding:5px 10px;font-weight:500}.signout-btn:hover{color:var(--accent-error);border-color:var(--accent-error);background:#f8514914}.home{position:relative}.hero{text-align:center;padding:var(--space-md) var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--border-color);flex-direction:column;align-items:center;max-width:860px;margin:0 auto;display:flex;position:relative}.hero-logo{width:auto;height:150px;margin-bottom:var(--space-md);object-fit:contain}.hero-badge{border-radius:var(--radius-full);border:1px solid var(--border-color);font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--space-lg);letter-spacing:.2px;background:0 0;align-items:center;gap:7px;padding:4px 12px;display:inline-flex}.badge-dot{background:var(--accent-success);border-radius:50%;width:6px;height:6px;animation:2.5s ease-in-out infinite pulse}.hero-title{letter-spacing:-1px;margin-bottom:var(--space-md);color:var(--text-primary);font-size:clamp(2rem,5vw,2.8rem);font-weight:700;line-height:1.15}.hero-subtitle{font-size:var(--text-base);color:var(--text-secondary);max-width:580px;margin-bottom:var(--space-xl);line-height:1.75}.hero-actions{gap:var(--space-sm);margin-bottom:var(--space-2xl);display:flex}.btn{border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:7px;padding:10px 20px;display:inline-flex}.btn-primary{background:var(--accent-primary);color:#fff;border:1px solid #0000}.btn-primary:hover{box-shadow:var(--shadow-sm);background:#388bfd;transform:translateY(-1px)}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-color);background:0 0}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--text-tertiary);transform:translateY(-1px)}.hero-stats{align-items:center;gap:var(--space-xl);display:flex}.stat{flex-direction:column;align-items:center;gap:2px;display:flex}.stat-value{font-size:var(--text-2xl);color:var(--text-primary);font-weight:700}.stat-label{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.stat-divider{background:var(--border-color);width:1px;height:32px}.section-title{font-size:var(--text-2xl);text-align:center;margin-bottom:var(--space-sm);letter-spacing:-.5px;color:var(--text-primary);font-weight:700}.section-subtitle{text-align:center;color:var(--text-secondary);max-width:560px;margin:0 auto var(--space-2xl);font-size:var(--text-sm);line-height:1.7}.features{padding:var(--space-3xl) var(--space-xl);border-bottom:1px solid var(--border-color);max-width:1100px;margin:0 auto}.features-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.feature-card{padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-color);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);cursor:default}.feature-card:hover{border-color:var(--text-tertiary);box-shadow:var(--shadow-md)}.feature-icon{border-radius:var(--radius-md);width:40px;height:40px;margin-bottom:var(--space-md);opacity:.9;justify-content:center;align-items:center;font-size:1.3rem;display:flex}.feature-title{font-size:var(--text-base);margin-bottom:var(--space-xs);color:var(--text-primary);font-weight:600}.feature-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.65}.categories-section{padding:var(--space-3xl) var(--space-xl);border-bottom:1px solid var(--border-color);max-width:1100px;margin:0 auto}.categories-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.category-card{padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-color);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block;position:relative}.category-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.category-card:hover .category-arrow{opacity:1;transform:translate(0)}.category-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.category-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:flex}.category-count{font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:2px 8px}.category-name{font-size:var(--text-base);margin-bottom:var(--space-sm);color:var(--text-primary);font-weight:600}.category-algos{flex-wrap:wrap;gap:5px;display:flex}.category-algo-tag{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:var(--text-xs);color:var(--text-secondary);padding:2px 8px}.category-algo-tag.more{color:var(--accent-primary);border-color:var(--border-color)}.category-arrow{right:var(--space-lg);top:var(--space-lg);font-size:var(--text-sm);color:var(--accent-primary);opacity:0;transition:all var(--transition-fast);position:absolute;transform:translate(-6px)}.cta-section{padding:var(--space-3xl) var(--space-xl);max-width:800px;margin:0 auto}.cta-card{text-align:center;padding:var(--space-2xl) var(--space-xl);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-color)}.cta-card h2{font-size:var(--text-2xl);margin-bottom:var(--space-sm);color:var(--text-primary);font-weight:700}.cta-card p{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:var(--text-sm)}.cta-actions{justify-content:center;gap:var(--space-md);display:flex}@media (width<=768px){.hero{padding:var(--space-2xl) var(--space-md)}.hero-title{letter-spacing:-.5px;font-size:1.8rem}.hero-actions{flex-direction:column;width:100%}.btn{justify-content:center}.hero-stats{gap:var(--space-lg)}.features,.categories-section{padding-left:var(--space-md);padding-right:var(--space-md)}}.algorithms-page{max-width:1200px;padding:var(--space-2xl) var(--space-xl);margin:0 auto}.algorithms-header{text-align:center;margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-color)}.page-title{font-size:var(--text-3xl);letter-spacing:-.5px;margin-bottom:var(--space-sm);color:var(--text-primary);font-weight:700}.page-subtitle{color:var(--text-secondary);max-width:560px;font-size:var(--text-sm);margin:0 auto;line-height:1.7}.filters-bar{gap:var(--space-sm);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.search-box{align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color);transition:border-color var(--transition-fast);padding:9px 14px;display:flex}.search-box:focus-within{border-color:var(--accent-primary)}.search-icon{opacity:.5;font-size:.9rem}.search-input{font-size:var(--text-base);color:var(--text-primary);background:0 0;flex:1}.search-input::placeholder{color:var(--text-muted)}.category-filters{gap:var(--space-xs);flex-wrap:wrap;display:flex}.filter-btn{border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--text-secondary);border:1px solid var(--border-color);transition:all var(--transition-fast);background:0 0;padding:5px 14px;font-weight:500}.filter-btn:hover{border-color:var(--text-tertiary);color:var(--text-primary);background:var(--bg-secondary)}.filter-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.algorithms-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.algo-card{padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border-color);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.algo-card:before{content:"";background:var(--accent-primary);opacity:0;height:2px;transition:opacity var(--transition-fast);position:absolute;top:0;left:0;right:0}.algo-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.algo-card:hover:before{opacity:1}.algo-card-top{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.algo-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;display:flex}.algo-difficulty{border-radius:var(--radius-full);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;font-weight:600}.algo-difficulty[data-difficulty=easy]{color:var(--accent-success);background:#3fb9501f}.algo-difficulty[data-difficulty=medium]{color:var(--accent-warning);background:#d299221f}.algo-difficulty[data-difficulty=hard]{color:var(--accent-error);background:#f851491f}.algo-name{font-size:var(--text-base);margin-bottom:var(--space-xs);color:var(--text-primary);font-weight:600}.algo-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-md);flex:1;line-height:1.55}.algo-complexity{gap:var(--space-lg);padding:var(--space-sm) 0;margin-bottom:var(--space-md);border-top:1px solid var(--border-color);display:flex}.complexity-item{flex-direction:column;gap:2px;display:flex}.complexity-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px}.complexity-value{font-size:var(--text-sm);color:var(--accent-secondary);font-weight:600}.algo-card-footer{justify-content:flex-end;display:flex}.visualize-btn{font-size:var(--text-sm);color:var(--accent-primary);opacity:0;transition:all var(--transition-fast);font-weight:600;transform:translate(-6px)}.algo-card:hover .visualize-btn{opacity:1;transform:translate(0)}.no-results{text-align:center;padding:var(--space-3xl);color:var(--text-secondary)}.no-results span{margin-bottom:var(--space-md);font-size:2.5rem;display:block}@media (width<=768px){.algorithms-page{padding:var(--space-xl) var(--space-md)}.algorithms-grid{grid-template-columns:1fr}}.array-visualizer{gap:var(--space-md);flex-direction:column;height:100%;display:flex}.bars-container{padding:var(--space-md);flex:1;align-items:flex-end;gap:2px;min-height:300px;display:flex}.bar-wrapper{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex}.bar{border-radius:4px 4px 0 0;justify-content:center;align-items:flex-start;width:100%;min-width:4px;transition:background-color .15s,box-shadow .15s;display:flex;position:relative}.bar-value{color:var(--text-secondary);white-space:nowrap;font-size:10px;font-weight:600;font-family:var(--font-mono);position:absolute;top:-22px}.bar-index{color:var(--text-tertiary);font-size:9px;font-family:var(--font-mono);margin-top:4px}.bar-comparing{animation:.5s ease-in-out infinite alternate bar-pulse}.bar-swapping{animation:.3s ease-in-out bar-shake}.bar-found{animation:.6s ease-in-out infinite alternate bar-glow}@keyframes bar-pulse{0%{opacity:.8}to{opacity:1}}@keyframes bar-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes bar-glow{0%{filter:brightness()}to{filter:brightness(1.4)}}.viz-legend{gap:var(--space-md);padding:var(--space-sm) var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:3px;width:10px;height:10px}.legend-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:capitalize}.bubble-visualizer{align-items:center;gap:var(--space-lg);height:100%;padding:var(--space-lg) var(--space-md);flex-direction:column;display:flex}.bubbles-area{padding:var(--space-xl) var(--space-md);flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:10px;min-height:200px;display:flex}.bubble{cursor:default;border:2.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .2s;display:flex;position:relative}.bubble-value{font-family:var(--font-mono);color:#fff;text-shadow:0 1px 3px #0000004d;z-index:2;pointer-events:none;font-size:15px;font-weight:700}.bubble-shine{pointer-events:none;z-index:3;background:radial-gradient(#ffffff73 0%,#ffffff1a 60%,#0000 100%);border-radius:50%;width:35%;height:28%;position:absolute;top:12%;left:18%}.bubble-index{font-family:var(--font-mono);color:var(--text-tertiary);font-size:10px;font-weight:500;position:absolute;bottom:-22px}.compare-arrows{z-index:4;position:absolute;top:50%;right:-22px;transform:translateY(-50%)}.compare-icon{color:var(--accent-warning);font-size:16px;animation:.5s ease-in-out infinite alternate arrow-bounce}@keyframes arrow-bounce{0%{transform:translate(-2px)}to{transform:translate(2px)}}.bubble-comparing{animation:.6s ease-in-out infinite bubble-wobble}@keyframes bubble-wobble{0%,to{transform:rotate(0)scale(1.02)}25%{transform:rotate(-3deg)scale(1.05)}75%{transform:rotate(3deg)scale(1.05)}}.bubble-swapping{z-index:10;animation:.35s ease-in-out bubble-swap}@keyframes bubble-swap{0%{transform:scale(1)}30%{transform:scale(1.2)translateY(-8px)}60%{transform:scale(.95)translateY(4px)}to{transform:scale(1)translateY(0)}}.bubble-sorted{animation:2s ease-in-out infinite bubble-settled}@keyframes bubble-settled{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.bubble-default{animation:3s ease-in-out infinite bubble-float}@keyframes bubble-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.bubble-track{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.track-dot{background:var(--border-color);border-radius:50%;width:6px;height:6px}.bubble-legend{gap:var(--space-md);padding-top:var(--space-sm);flex-wrap:wrap;justify-content:center;display:flex}.legend-entry{align-items:center;gap:6px;display:flex}.legend-bubble{border:2px solid;border-radius:50%;width:18px;height:18px;position:relative;overflow:hidden}.legend-bubble:after{content:"";background:#ffffff59;border-radius:50%;width:35%;height:25%;position:absolute;top:15%;left:20%}.legend-text{font-size:var(--text-xs);color:var(--text-tertiary)}@media (width<=768px){.bubbles-area{gap:6px}.bubble-value{font-size:12px}}.selection-visualizer{gap:var(--space-xl);padding:var(--space-lg);flex-direction:column;width:100%;height:100%;display:flex}.region-labels{background:var(--bg-tertiary);border-radius:var(--radius-full);border:1px solid var(--border-color);width:100%;height:32px;display:flex;overflow:hidden}.region-label{font-size:var(--text-xs);transition:all var(--transition-base);justify-content:center;align-items:center;font-weight:600;display:flex}.sorted-region{color:#00b894;background:#00b89426;border-right:1px solid #00b8944d}.unsorted-region{color:var(--text-tertiary)}.selection-cards{padding:var(--space-xl) var(--space-md);flex:1;justify-content:center;align-items:flex-end;gap:12px;min-height:280px;display:flex}.sel-card{padding:var(--space-md) var(--space-sm);border-radius:var(--radius-md);width:64px;min-height:220px;transition:border-color var(--transition-fast);border:2px solid;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:relative}.sel-badge{background:var(--bg-card);border:1px solid var(--border-color);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex;position:absolute;top:-12px;box-shadow:0 4px 12px #0003}.sel-bar-container{width:100%;margin-bottom:var(--space-sm);flex:1;align-items:flex-end;padding:0 4px;display:flex}.sel-bar{border-radius:var(--radius-sm);background:var(--accent-primary);opacity:.6;width:100%;transition:background var(--transition-base)}.sel-card-comparing .sel-bar{opacity:.9;background:#fdcb6e}.sel-card-pivot .sel-bar{opacity:1;background:#e17055}.sel-card-sorted .sel-bar{opacity:.7;background:#00b894}.sel-card-swapping .sel-bar{opacity:1;background:#ff4757}.sel-value{font-family:var(--font-mono);color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:700}.sel-index{color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:500}.min-indicator{color:#e17055;white-space:nowrap;font-size:10px;font-weight:800;position:absolute;top:-35px}.swap-connector{color:#ff4757;z-index:5;font-size:20px;position:absolute;top:50%;right:-24px;transform:translateY(-50%)}.min-callout{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);background:#e170551a;border:1px solid #e1705533;align-self:center;display:flex}.min-callout-text{font-size:var(--text-sm);color:var(--text-secondary)}.min-callout-text strong{color:#e17055}.sel-legend{gap:var(--space-lg);padding-top:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.sel-legend-entry{align-items:center;gap:8px;display:flex}.sel-legend-swatch{border:1px solid;border-radius:4px;width:16px;height:16px}.sel-legend-text{font-size:var(--text-xs);color:var(--text-tertiary)}@media (width<=768px){.sel-card{width:48px;padding:var(--space-sm) 4px}.sel-value{font-size:14px}.region-labels{height:24px}}.insertion-visualizer{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:2rem;display:flex;position:relative}.insertion-cards{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:12px;width:100%;min-height:250px;margin-top:40px;margin-bottom:2rem;display:flex}.ins-card{-webkit-backdrop-filter:blur(8px);will-change:transform, opacity;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:center;width:60px;height:180px;padding:10px;transition:border-color .3s;display:flex;position:relative}.ins-card-holding{border-width:2px}.ins-badge{background:var(--surface-2);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;display:flex;position:absolute;top:-12px;box-shadow:0 4px 12px #0000004d}.ins-bar-container{background:#0003;border-radius:6px;justify-content:center;align-items:flex-end;width:100%;height:120px;margin-bottom:12px;display:flex;overflow:hidden}.ins-bar{border-radius:4px;width:100%;transition:background-color .3s;bottom:0}.ins-bar-default{background:var(--viz-default)}.ins-bar-comparing{background:#fdcb6e}.ins-bar-holding{background:#0984e3}.ins-bar-swapping{background:#ff4757}.ins-bar-sorted{background:#00b894}.ins-value{font-family:var(--font-mono);color:var(--text-primary);margin-bottom:4px;font-size:1.1rem;font-weight:600}.ins-index{font-family:var(--font-mono);color:var(--text-tertiary);font-size:.75rem}.ins-drop-shadow{pointer-events:none;background:radial-gradient(#0006 0%,#0000 70%);border-radius:50%;width:50%;height:10px;position:absolute;bottom:-40px}.ins-callout{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0984e326;border:1px solid #0984e34d;border-radius:20px;align-items:center;gap:10px;padding:8px 16px;display:flex;position:absolute;top:1rem;box-shadow:0 8px 24px #0003}.ins-callout-icon{font-size:1.2rem}.ins-callout-text{color:var(--text-primary);font-size:.95rem}.ins-callout-text strong{color:#0984e3;font-size:1.1rem}.ins-legend{background:var(--surface-1);border:1px solid var(--border-color);border-radius:30px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:auto;padding:12px 24px;display:flex;box-shadow:0 4px 20px #00000026}.ins-legend-entry{align-items:center;gap:8px;display:flex}.ins-legend-swatch{border:1px solid;border-radius:4px;width:14px;height:14px}.ins-legend-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}@media (width<=768px){.ins-card{width:40px;height:140px;padding:6px}.ins-bar-container{height:90px}.ins-value{font-size:.9rem}.ins-index{display:none}.ins-legend{padding:10px 16px}}.merge-visualizer{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;padding:2rem 2rem 80px;transition:min-height .3s;display:flex}.merge-tree-container{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:8px;width:100%;margin-top:20px;margin-bottom:120px;display:flex}.merge-node{-webkit-backdrop-filter:blur(8px);will-change:transform, opacity;z-index:2;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;justify-content:flex-end;align-items:center;width:45px;height:140px;padding:6px;display:flex;position:relative}.merge-bar-wrapper{background:#0003;border-radius:4px;justify-content:center;align-items:flex-end;width:100%;height:100px;margin-bottom:8px;display:flex;overflow:hidden}.merge-bar{opacity:.8;border-radius:3px;width:100%;bottom:0}.merge-value{font-family:var(--font-mono);color:var(--text-primary);margin-bottom:2px;font-size:1rem;font-weight:600}.merge-legend{background:var(--surface-1);border:1px solid var(--border-color);border-radius:30px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:auto;padding:12px 24px;display:flex;box-shadow:0 4px 20px #00000026}.merge-legend-entry{align-items:center;gap:8px;display:flex}.merge-legend-swatch{border:1px solid;border-radius:4px;width:14px;height:14px}.merge-legend-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}@media (width<=768px){.merge-node{width:32px;height:110px;padding:4px}.merge-bar-wrapper{height:80px}.merge-value{font-size:.85rem}.merge-tree-container{gap:4px}}.quick-visualizer{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;min-height:350px;padding:2rem;display:flex}.quick-orbs-container{width:100%;min-height:150px;transform-style:preserve-3d;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:40px;margin-bottom:60px;display:flex}.quick-orb{-webkit-backdrop-filter:blur(8px);will-change:transform, width, height;border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;transition:border-color .3s,background-color .3s;display:flex;position:relative}.quick-orb-value{font-family:var(--font-mono);color:var(--text-primary);text-shadow:0 2px 4px #00000080;font-weight:700}.quick-orb-tooltip{background:var(--surface-2);z-index:20;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;display:flex;position:absolute;top:-24px;box-shadow:0 4px 12px #0000004d}.quick-legend{background:var(--surface-1);border:1px solid var(--border-color);border-radius:30px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:auto;padding:12px 24px;display:flex;box-shadow:0 4px 20px #00000026}.quick-legend-entry{align-items:center;gap:8px;display:flex}.quick-legend-swatch{border:1px solid;border-radius:50%;width:16px;height:16px}.quick-legend-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}@media (width<=768px){.quick-orbs-container{gap:6px}}.heap-visualizer{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;min-height:400px;padding:2rem;display:flex}.heap-tree-container{width:100%;transform-style:preserve-3d;flex-direction:column;justify-content:center;align-items:center;gap:20px;margin-top:20px;margin-bottom:40px;display:flex}.heap-tree-row{justify-content:center;align-items:center;gap:24px;width:100%;display:flex}.heap-orb{-webkit-backdrop-filter:blur(8px);will-change:transform, width, height;border:2px solid #ffffff1a;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:border-color .3s,background-color .3s;display:flex;position:relative}.heap-orb-value{font-family:var(--font-mono);color:var(--text-primary);text-shadow:0 2px 4px #00000080;font-weight:700}.heap-orb-idx{font-family:var(--font-mono);color:var(--text-tertiary);font-size:10px;position:absolute;bottom:-20px}.heap-legend{background:var(--surface-1);border:1px solid var(--border-color);border-radius:30px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:auto;padding:12px 24px;display:flex;box-shadow:0 4px 20px #00000026}.heap-legend-entry{align-items:center;gap:8px;display:flex}.heap-legend-swatch{border:1px solid;border-radius:50%;width:16px;height:16px}.heap-legend-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}@media (width<=768px){.heap-tree-container{gap:12px}.heap-tree-row{gap:8px}}.search-visualizer{box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;min-height:350px;padding:2rem;display:flex}.search-orbs-container{width:100%;min-height:150px;transform-style:preserve-3d;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:40px;margin-bottom:60px;display:flex}.search-orb{-webkit-backdrop-filter:blur(8px);will-change:transform, width, height, opacity;border:2px solid #ffffff1a;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:border-color .3s,background-color .3s;display:flex;position:relative}.search-orb.dimmed{filter:grayscale(80%)!important}.search-orb-value{font-family:var(--font-mono);color:var(--text-primary);text-shadow:0 2px 4px #00000080;font-weight:700}.search-orb-idx{font-family:var(--font-mono);color:var(--text-tertiary);opacity:.6;font-size:11px;position:absolute;bottom:-22px}.search-orb-tooltip{background:var(--surface-2);z-index:20;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:16px;display:flex;position:absolute;top:-24px;box-shadow:0 4px 12px #0000004d}.search-legend{background:var(--surface-1);border:1px solid var(--border-color);border-radius:30px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:auto;padding:12px 24px;display:flex;box-shadow:0 4px 20px #00000026}.search-legend-entry{align-items:center;gap:8px;display:flex}.search-legend-swatch{border:1px solid;border-radius:50%;width:16px;height:16px}.search-legend-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}@media (width<=768px){.search-orbs-container{gap:8px}}.graph-visualizer{gap:var(--space-md);flex-direction:column;height:100%;display:flex}.graph-svg{flex:1;width:100%;min-height:300px}.graph-edge{transition:stroke .3s,stroke-width .3s}.edge-current{animation:.8s ease-in-out infinite alternate edge-pulse}@keyframes edge-pulse{0%{opacity:.6}to{opacity:1}}.node-circle{cursor:pointer;transition:fill .3s,stroke .3s}.node-ring{animation:1.2s ease-in-out infinite ring-pulse}@keyframes ring-pulse{0%,to{r:26;opacity:.2}50%{r:30;opacity:.4}}.node-current .node-circle{animation:.8s ease-in-out infinite alternate node-glow}@keyframes node-glow{0%{filter:brightness()}to{filter:brightness(1.3)}}.graph-data-display{gap:var(--space-lg);padding:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.data-panel{align-items:center;gap:var(--space-sm);display:flex}.data-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:600;font-family:var(--font-mono)}.data-items{gap:4px;display:flex}.data-item{border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);padding:3px 10px}.data-queued{color:#0984e3;background:#0984e333;border:1px solid #0984e34d}.data-stack{color:#6c5ce7;background:#6c5ce733;border:1px solid #6c5ce74d}.data-visited{color:#00b894;background:#00b89433;border:1px solid #00b8944d}.ds-visualizer{padding:var(--space-xl);flex-direction:column;align-items:center;height:100%;display:flex}.ds-label{font-size:var(--text-sm);color:var(--text-tertiary);letter-spacing:2px;margin-bottom:var(--space-xl);font-weight:700;font-family:var(--font-mono)}.stack-container{flex-direction:column;align-items:center;display:flex}.stack-elements{padding:var(--space-md);border:2px dashed var(--border-color);border-radius:var(--radius-md);border-top:none;flex-direction:column-reverse;align-items:center;gap:6px;min-width:120px;min-height:200px;display:flex}.queue-container{align-items:center;gap:var(--space-sm);display:flex}.queue-elements{padding:var(--space-md);border:2px dashed var(--border-color);border-radius:var(--radius-md);align-items:center;gap:6px;min-width:200px;min-height:60px;display:flex}.ds-element{border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600;font-size:var(--text-base);align-items:center;gap:var(--space-sm);border:2px solid;justify-content:center;min-width:60px;padding:10px 20px;transition:all .2s;display:flex}.ds-top-label{font-size:var(--text-xs);color:var(--accent-primary);white-space:nowrap;font-weight:500}.ds-pointer{font-size:var(--text-sm);color:var(--text-tertiary);font-family:var(--font-mono);font-weight:600}.ds-empty{padding:var(--space-xl);color:var(--text-tertiary);font-family:var(--font-mono)}.ll-container{align-items:center;gap:var(--space-sm);padding:var(--space-md);max-width:100%;display:flex;overflow-x:auto}.ll-head-label{font-size:var(--text-sm);color:var(--accent-primary);font-weight:600;font-family:var(--font-mono)}.ll-nodes,.ll-node-wrapper{align-items:center;gap:4px;display:flex}.ll-node{border-radius:var(--radius-sm);border:2px solid;transition:all .2s;display:flex;overflow:hidden}.ll-data{font-family:var(--font-mono);font-weight:600;font-size:var(--text-base);padding:10px 16px}.ll-next{font-size:var(--text-sm);color:var(--text-tertiary);border-left:2px solid;align-items:center;padding:10px 12px;display:flex}.ll-arrow{color:var(--text-tertiary);font-size:var(--text-lg)}.ll-pointer{transform:scale(1.05)}.controls-panel{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);gap:var(--space-md);flex-direction:column;display:flex}.step-description{align-items:center;gap:var(--space-md);min-height:32px;display:flex}.step-badge{border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;font-size:var(--text-xs);font-weight:600;font-family:var(--font-mono);flex-shrink:0;padding:3px 10px}.step-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4}.progress-container{width:100%}.progress-slider{border-radius:var(--radius-full);cursor:pointer;appearance:none;background:var(--border-color);outline:none;width:100%;height:6px}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-primary);cursor:pointer;width:16px;height:16px;box-shadow:0 0 8px var(--accent-primary-glow);border:2px solid #fff;border-radius:50%}.progress-slider::-moz-range-thumb{background:var(--accent-primary);cursor:pointer;width:16px;height:16px;box-shadow:0 0 8px var(--accent-primary-glow);border:2px solid #fff;border-radius:50%}.controls-row{justify-content:space-between;align-items:center;gap:var(--space-lg);display:flex}.control-group{align-items:center;gap:var(--space-sm);display:flex}.control-btn{border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color);width:40px;height:40px;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:1.2rem;display:flex}.control-btn:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-active);transform:scale(1.05)}.control-btn:disabled{opacity:.3;cursor:not-allowed}.play-btn{background:var(--gradient-primary);width:48px;height:48px;box-shadow:0 4px 12px var(--accent-primary-glow);border:none;border-radius:50%;font-size:1.4rem}.play-btn:hover:not(:disabled){box-shadow:0 6px 20px var(--accent-primary-glow);transform:scale(1.1)}.speed-control{align-items:center;gap:var(--space-sm);display:flex}.speed-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.speed-buttons{background:var(--bg-tertiary);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.speed-btn{font-size:var(--text-xs);color:var(--text-tertiary);transition:all var(--transition-fast);font-weight:600;font-family:var(--font-mono);border-radius:4px;padding:4px 10px}.speed-btn:hover{color:var(--text-primary)}.speed-btn.active{background:var(--accent-primary);color:#fff}.shortcuts-hint{gap:var(--space-lg);justify-content:center;display:flex}.shortcuts-hint span{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono)}@media (width<=768px){.controls-row{flex-direction:column}.shortcuts-hint{display:none}}.code-panel{border-radius:var(--radius-lg);transition:all var(--transition-base);overflow:hidden}.code-panel-header{padding:var(--space-md) var(--space-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.code-panel-header:hover{background:var(--bg-glass)}.code-panel-title{align-items:center;gap:var(--space-sm);display:flex}.code-panel-title h3{font-size:var(--text-base);font-weight:600}.code-icon{font-size:1.1rem}.expand-hint{font-size:var(--text-sm);color:var(--text-tertiary);margin-left:var(--space-xs)}.code-actions{gap:var(--space-sm);display:flex}.copy-btn{border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);transition:all var(--transition-fast);padding:5px 12px;font-weight:600}.copy-btn:hover{color:var(--text-primary);border-color:var(--border-active)}.lang-tabs{padding:0 var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-color);gap:2px;display:flex}.lang-tab{border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-tertiary);transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:5px;padding:7px 14px;font-weight:500;display:flex}.lang-tab:hover{color:var(--text-secondary);background:var(--bg-glass)}.lang-tab.active{color:var(--text-primary);background:var(--bg-card);border-color:var(--accent-primary)}.lang-tab-icon{font-size:.95rem}.lang-tab-label{font-size:var(--text-xs)}.code-block-wrapper{max-height:400px;display:flex;position:relative;overflow-y:auto}.code-line-numbers{padding:var(--space-md) 0;padding-left:var(--space-md);padding-right:var(--space-sm);text-align:right;-webkit-user-select:none;user-select:none;background:inherit;z-index:1;flex-direction:column;display:flex;position:sticky;left:0}.code-line-numbers span{font-family:var(--font-mono);color:var(--text-muted);min-width:24px;font-size:12px;line-height:1.65}.code-block{padding:var(--space-md);padding-left:var(--space-sm);flex:1;margin:0;overflow-x:auto}.code-block code{font-family:var(--font-mono);color:var(--text-secondary);white-space:pre;tab-size:2;font-size:13px;line-height:1.65}.code-panel.collapsed{max-height:52px}@media (width<=768px){.lang-tab-label{display:none}}.code-line{padding:0 var(--space-sm);line-height:inherit;border-left:3px solid #0000;transition:background .25s,border-left-color .25s}.code-line.highlight{color:var(--text-primary);background:#fdcb6e1f;border-left-color:#fdcb6e}.code-line-numbers span.highlight{color:var(--accent-warning);font-weight:700}.custom-input{border-radius:var(--radius-lg);transition:all var(--transition-base);overflow:hidden}.custom-input-header{padding:var(--space-md) var(--space-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.custom-input-header:hover{background:var(--bg-glass)}.custom-input-title{align-items:center;gap:var(--space-sm);display:flex}.custom-input-title h3{font-size:var(--text-base);font-weight:600}.input-icon{font-size:1.1rem}.custom-input-body{padding:0 var(--space-lg) var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.preset-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.preset-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;font-weight:600}.preset-buttons{flex-wrap:wrap;gap:4px;display:flex}.preset-btn{border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-color);transition:all var(--transition-fast);padding:4px 10px;font-weight:500}.preset-btn:hover{color:var(--text-primary);border-color:var(--accent-primary);background:#6c5ce71a}.random-btn{border-color:var(--accent-warning);color:var(--accent-warning)}.random-btn:hover{background:#fdcb6e1a}.input-group{flex-direction:column;gap:4px;display:flex}.input-label{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:500}.input-row{gap:var(--space-sm);width:100%;display:flex}.input-field{border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-base);transition:all var(--transition-fast);outline:none;flex:1;padding:12px 16px}.input-field:focus{border-color:var(--accent-primary);background:var(--bg-card);box-shadow:0 0 0 3px #6c5ce726}.target-field{max-width:200px}.visualize-btn-inline{background:var(--gradient-primary);color:#fff;border-radius:var(--radius-md);font-weight:700;font-size:var(--text-sm);transition:all var(--transition-fast);box-shadow:0 4px 12px var(--accent-primary-glow);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 24px;animation:3s infinite pulse-glow;display:flex}.visualize-btn-inline:hover{box-shadow:0 6px 20px var(--accent-primary-glow);filter:brightness(1.1);transform:translateY(-2px)}.visualize-btn-inline:active{transform:translateY(0)}@keyframes pulse-glow{0%,to{box-shadow:0 4px 12px var(--accent-primary-glow)}50%{box-shadow:0 4px 24px #6c5ce780}}.custom-input.closed{max-height:52px}.visualizer-page{max-width:1200px;padding:var(--space-lg) var(--space-xl);gap:var(--space-lg);flex-direction:column;margin:0 auto;display:flex}.viz-header{justify-content:space-between;align-items:center;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color);display:flex}.viz-header-left{gap:var(--space-xs);flex-direction:column;display:flex}.back-link{font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--transition-fast);align-items:center;gap:4px;display:inline-flex}.back-link:hover{color:var(--accent-primary)}.viz-title-group{align-items:center;gap:var(--space-sm);display:flex}.viz-icon{font-size:1.3rem}.viz-title{font-size:var(--text-2xl);letter-spacing:-.3px;color:var(--text-primary);font-weight:700}.viz-difficulty{border-radius:var(--radius-full);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;font-weight:600}.viz-difficulty[data-difficulty=easy]{color:var(--accent-success);background:#3fb9501f}.viz-difficulty[data-difficulty=medium]{color:var(--accent-warning);background:#d299221f}.viz-difficulty[data-difficulty=hard]{color:var(--accent-error);background:#f851491f}.generate-btn{flex-shrink:0}.viz-content{gap:var(--space-md);flex-direction:column;display:flex}.viz-canvas{border-radius:var(--radius-lg);padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-color);flex-direction:column;min-height:400px;display:flex}.viz-empty{color:var(--text-tertiary);font-size:var(--text-base);flex:1;justify-content:center;align-items:center;display:flex}.input-label-bar{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color);display:flex;overflow-x:auto}.input-label-icon{flex-shrink:0;font-size:.9rem}.input-label-text{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;overflow-x:auto}.viz-info-panel{gap:var(--space-md);grid-template-columns:2fr 1fr 1fr;display:grid}.info-card{padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color)}.info-card h3{font-size:var(--text-xs);margin-bottom:var(--space-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.info-card p{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.55}.complexity-grid{gap:var(--space-lg);display:flex}.complexity-grid>div{flex-direction:column;gap:2px;display:flex}.complexity-case{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px}.complexity-val{font-size:var(--text-base);color:var(--accent-secondary);font-weight:600}.visualizer-not-found{justify-content:center;align-items:center;gap:var(--space-lg);height:50vh;color:var(--text-secondary);flex-direction:column;display:flex}@media (width<=768px){.visualizer-page{padding:var(--space-md)}.viz-header{flex-direction:column;align-items:flex-start}.viz-info-panel{grid-template-columns:1fr}.viz-canvas{min-height:300px}}.visual-stage{background:var(--bg-primary);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.stage-header{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.stage-badge{letter-spacing:.12em;color:var(--accent-primary);background:var(--accent-primary-glow);border-radius:var(--radius-sm);border:1px solid #2f81f740;padding:4px 10px;font-size:10px;font-weight:800}.step-counter{color:var(--text-tertiary);font-size:12px;font-family:var(--font-mono)}.step-counter strong{color:var(--text-primary)}.stage-main{scroll-behavior:smooth;background-image:radial-gradient(circle at 1px 1px,#ffffff0a 1px,#0000 0);background-size:28px 28px;flex-direction:column;flex:1;align-items:center;padding:28px 20px 80px;display:flex;overflow:auto}.visual-grid{flex-direction:column;align-items:center;gap:28px;width:100%;max-width:900px;display:flex}.visual-section{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-md);flex-direction:column;align-items:center;gap:20px;padding:20px 24px 24px;display:flex}.section-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1.2px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);align-self:flex-start;padding:3px 10px;font-size:10px;font-weight:700}.section-label-name{color:var(--accent-secondary);font-weight:900}.visual-array{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:14px;padding-top:32px;display:flex}.orb-column{flex-direction:column;align-items:center;gap:6px;min-width:50px;display:flex;position:relative}.pointer-container{justify-content:center;align-items:flex-end;height:32px;display:flex}.pointer-arrow{flex-direction:column;align-items:center;font-size:10px;font-weight:800;line-height:1.2;display:flex}.pointer-label{font-family:var(--font-mono);font-size:10px}.visual-orb{border:2px solid var(--border-color);background:linear-gradient(135deg, var(--accent-primary) 0%, #388bfd 100%);box-shadow:var(--shadow-md), 0 0 12px var(--accent-primary-glow);border-radius:50%;justify-content:center;align-items:center;transition:border-color .2s;display:flex}.orb-value{color:#fff;font-weight:700;font-family:var(--font-mono);text-shadow:0 1px 2px #00000080;font-size:12px}.orb-index{color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono)}.visual-stack{flex-direction:column;gap:4px;width:100%;min-width:160px;max-width:320px;display:flex}.stack-item{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);height:44px;font-family:var(--font-mono);color:var(--text-primary);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:15px;font-weight:600;transition:background .2s;display:flex;position:relative}.stack-item:first-child{background:var(--bg-card);border-color:var(--accent-primary);box-shadow:0 0 8px var(--accent-primary-glow)}.stack-value{color:var(--text-primary);font-size:15px;font-weight:700;font-family:var(--font-mono)}.stack-top-badge{letter-spacing:.08em;color:var(--accent-warning);border-radius:var(--radius-sm);background:#d299221f;border:1px solid #d299224d;padding:2px 6px;font-size:9px;font-weight:800;position:absolute;right:-52px}.stack-base-label{letter-spacing:.1em;color:var(--text-tertiary);text-align:center;border-top:2px dashed var(--border-color);width:100%;padding-top:6px;font-size:9px;font-weight:700}.visual-queue{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:24px 12px 12px;display:flex}.queue-item{flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.queue-box{background:var(--bg-tertiary);border:2px solid var(--accent-secondary);border-radius:var(--radius-md);width:56px;height:56px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);box-shadow:0 0 8px var(--accent-secondary-glow);justify-content:center;align-items:center;font-size:15px;display:flex}.queue-badge{letter-spacing:.08em;border-radius:var(--radius-sm);padding:2px 6px;font-size:9px;font-weight:800;position:absolute}.queue-badge.front{color:var(--accent-warning);background:#d299221f;border:1px solid #d299224d;top:-22px}.queue-badge.rear{color:var(--accent-secondary);background:var(--accent-secondary-glow);border:1px solid #3dc9b04d;bottom:-22px}.visual-list{flex-wrap:nowrap;align-items:center;gap:6px;width:100%;padding:12px 8px 16px;display:flex;overflow-x:auto}.list-head-label{letter-spacing:.1em;color:var(--accent-primary);background:var(--accent-primary-glow);border-radius:var(--radius-sm);border:1px solid #2f81f74d;flex-shrink:0;padding:3px 8px;font-size:9px;font-weight:800}.list-node-container{flex-shrink:0;align-items:center;gap:6px;display:flex}.list-node{background:var(--bg-card);border:2px solid var(--accent-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;overflow:hidden}.list-node-val{color:var(--text-primary);border-right:1px solid var(--border-color);text-align:center;min-width:36px;font-size:14px;font-weight:700;font-family:var(--font-mono);padding:8px 14px}.list-node-next{color:var(--accent-primary);font-family:var(--font-mono);background:var(--bg-tertiary);padding:8px 10px;font-size:14px;font-weight:700}.list-arrow{color:var(--text-secondary);flex-shrink:0;font-size:16px}.list-tail{color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);flex-shrink:0;padding:5px 10px;font-size:10px;font-weight:700}.visual-tree{justify-content:center;width:100%;padding:8px 12px 24px;display:flex;overflow-x:auto}.tree-node-container{flex-direction:column;align-items:center;display:flex;position:relative}.tree-node-circle{background:var(--bg-tertiary);border:2px solid var(--accent-secondary);width:46px;height:46px;font-weight:700;font-family:var(--font-mono);color:var(--text-primary);z-index:2;box-shadow:var(--shadow-md), 0 0 8px var(--accent-secondary-glow);border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex}.tree-leaf{color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);padding:4px 8px;font-size:10px}.tree-branches{gap:24px;padding-top:20px;display:flex;position:relative}.tree-branches:before{content:"";background:var(--border-color);width:2px;height:20px;position:absolute;top:0;left:50%;transform:translate(-50%)}.tree-branch{flex-direction:column;align-items:center;display:flex;position:relative}.tree-branch:before{content:"";background:var(--border-color);width:2px;height:20px;position:absolute;top:0;left:50%;transform:translate(-50%)}.vs-graph-container{background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;overflow:hidden}.vs-graph-svg{width:100%;min-height:280px;display:block}.vs-graph-edge{transition:stroke .3s,stroke-width .3s}.vs-node-circle{transition:fill .3s,stroke .3s}.vs-node-ring{animation:2s ease-in-out infinite vs-ring-pulse}@keyframes vs-ring-pulse{0%,to{opacity:.15}50%{opacity:.35}}.visual-map{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color);width:100%;max-width:480px;box-shadow:var(--shadow-md);overflow:hidden}.map-table{flex-direction:column;display:flex}.map-header{border-bottom:2px solid var(--border-color);background:#ffffff08;padding:8px 16px;display:flex}.map-col{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;flex:1;font-size:10px;font-weight:800}.map-col:last-child{text-align:right}.map-row{border-bottom:1px solid var(--border-color);align-items:center;padding:10px 16px;transition:background .2s;display:flex}.map-row:last-child{border-bottom:none}.map-row:hover{background:#ffffff05}.map-key{font-family:var(--font-mono);color:var(--accent-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:700;overflow:hidden}.map-sep{color:var(--text-tertiary);padding:0 12px;font-weight:800}.map-val{font-family:var(--font-mono);color:var(--text-primary);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.visual-stage-empty{background:var(--bg-primary);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.empty-content{text-align:center;max-width:480px}.empty-icon{opacity:.6;margin-bottom:16px;font-size:36px}.empty-content h3{color:var(--text-primary);margin:0 0 8px;font-size:18px;font-weight:700}.empty-content p{color:var(--text-secondary);margin:0 0 24px;font-size:13px;line-height:1.6}.hint-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;width:100%;display:grid}.hint-item{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);text-align:left;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.hint-item code{color:var(--accent-primary);font-size:12px;font-weight:700;font-family:var(--font-mono)}.hint-item span{color:var(--text-tertiary);font-size:10px}.hint-tip{color:var(--text-tertiary)!important;margin-top:16px!important;font-size:11px!important}.ds-empty-msg{color:var(--text-tertiary);padding:16px;font-size:12px;font-style:italic}.stage-controls-container{pointer-events:none;z-index:100;justify-content:center;display:flex;position:absolute;bottom:20px;left:0;right:0}.stage-controls{pointer-events:auto;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);background:#0d1117e6;gap:8px;padding:6px 8px;display:flex}.stage-ctrl-btn{width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.stage-ctrl-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);transform:scale(1.08)}.stage-ctrl-btn:disabled{opacity:.3;cursor:not-allowed}.play-btn{box-shadow:0 2px 8px var(--accent-primary-glow);background:var(--accent-primary)!important;color:#fff!important}.play-btn:hover:not(:disabled){transform:scale(1.1);background:#388bfd!important}.play-btn.playing{box-shadow:0 2px 8px #d2992266;background:var(--accent-warning)!important}.playground{flex-direction:column;height:calc(100vh - 56px);display:flex;overflow:hidden}.playground-toolbar{padding:0 var(--space-lg);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;height:44px;display:flex}.playground-title{font-size:var(--text-base);color:var(--text-primary);font-weight:600}.toolbar-left,.toolbar-right{align-items:center;gap:var(--space-sm);display:flex}.language-selector{background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);gap:2px;padding:2px;display:flex}.lang-btn{font-size:var(--text-xs);color:var(--text-tertiary);transition:all var(--transition-fast);border-radius:3px;align-items:center;gap:4px;padding:4px 10px;font-weight:500;display:flex}.lang-btn:hover{color:var(--text-primary);background:var(--bg-card-hover)}.lang-btn.active{color:var(--text-primary);background:var(--bg-card)}.lang-icon{font-size:.85rem}.lang-label{display:none}@media (width>=900px){.lang-label{display:inline}}.btn-run{background:var(--accent-success);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-xs);transition:all var(--transition-fast);border:1px solid #0000;padding:6px 16px}.btn-run:hover:not(:disabled){background:#3fb950cc;transform:translateY(-1px)}.btn-run:disabled{opacity:.45;cursor:not-allowed}.btn-trace{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-xs);transition:all var(--transition-fast);background:0 0;padding:6px 12px}.btn-trace:hover:not(:disabled){border-color:var(--accent-warning);color:var(--accent-warning);background:#d2992214}.btn-trace:disabled{opacity:.4;cursor:not-allowed}.playground-main{flex:1;grid-template-columns:1fr 6px 400px;display:grid;position:relative;overflow:hidden}.playground-main.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.playground-resizer{background:var(--border-color);cursor:col-resize;z-index:100;justify-content:center;align-items:center;width:6px;transition:background .2s,width .2s;display:flex;position:relative}.playground-resizer:hover,.playground-resizer.active{background:var(--primary-color);width:8px}.resizer-knob{background:#fff3;border-radius:1px;width:2px;height:20px}.playground-resizer:hover .resizer-knob,.playground-resizer.active .resizer-knob{background:#fff}.is-resizing *{pointer-events:none!important}.is-resizing .playground-resizer{pointer-events:auto!important}.editor-panel{border-right:1px solid var(--border-color);flex-direction:column;display:flex;overflow:hidden}.editor-header{padding:0 var(--space-md);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0;align-items:center;height:36px;display:flex}.editor-tab{height:100%;font-size:var(--text-xs);color:var(--text-secondary);align-items:center;gap:6px;padding:0 10px;display:flex}.editor-tab.active{color:var(--text-primary);border-bottom:1px solid var(--accent-primary)}.tab-dot{border-radius:50%;width:7px;height:7px}.editor-body{flex:1;position:relative;overflow:hidden}.output-panel{background:var(--bg-secondary);flex-direction:column;display:flex;overflow:hidden}.output-tabs{border-bottom:1px solid var(--border-color);flex-shrink:0;display:flex}.output-tab{font-size:var(--text-xs);color:var(--text-tertiary);transition:all var(--transition-fast);border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:5px;padding:9px;font-weight:500;display:flex}.output-tab:hover{color:var(--text-secondary)}.output-tab.active{color:var(--text-primary);border-bottom-color:var(--accent-primary)}.trace-count{border-radius:var(--radius-full);background:var(--accent-primary);color:#fff;padding:1px 5px;font-size:10px;font-weight:700}.output-body{padding:var(--space-md);flex:1;overflow-y:auto}.output-text{font-size:var(--text-sm);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;line-height:1.6}.trace-body{gap:var(--space-md);padding:var(--space-md);flex-direction:column;flex:1;display:flex;overflow-y:auto}.trace-empty{text-align:center;height:100%;color:var(--text-tertiary);justify-content:center;align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.trace-hint{font-size:var(--text-sm);color:var(--text-muted)}.trace-controls{align-items:center;gap:var(--space-sm);display:flex}.trace-step-info{font-size:var(--text-xs);color:var(--text-tertiary);margin-left:auto}.trace-event{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);display:flex}.trace-event.error{background:#f8514912;border:1px solid #f8514940}.trace-event-badge{border-radius:var(--radius-sm);background:var(--accent-secondary);color:#fff;padding:2px 7px;font-size:10px;font-weight:700}.trace-event.error .trace-event-badge{background:var(--accent-error)}.trace-error-msg{font-size:var(--text-sm);color:var(--accent-error);flex:1}.trace-line-num{font-size:var(--text-xs);color:var(--text-tertiary)}.trace-variables h4,.trace-callstack h4,.trace-output h4{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:var(--space-sm)}.var-list{flex-direction:column;gap:3px;display:flex}.var-item{align-items:center;gap:var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:var(--text-sm);padding:4px 8px;display:flex}.var-name{color:var(--accent-secondary);font-weight:600}.var-equals{color:var(--text-tertiary)}.var-value{color:var(--accent-warning);word-break:break-all}.stack-frames{flex-direction:column;gap:2px;display:flex}.stack-frame{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:var(--text-sm);color:var(--text-secondary);padding:4px 8px}.stack-frame:first-child{color:var(--accent-primary);border-color:#2f81f740;font-weight:600}.trace-output pre{padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);font-size:var(--text-sm);color:var(--text-secondary);white-space:pre-wrap}@media (width<=768px){.playground-main{grid-template-rows:1fr 300px;grid-template-columns:1fr}.editor-panel{border-right:none;border-bottom:1px solid var(--border-color)}.playground-toolbar{height:auto;padding:var(--space-sm) var(--space-md);gap:var(--space-sm);flex-wrap:wrap}}.visual-variable-highlight{border-bottom:2px solid var(--primary-color);cursor:help;background-color:#6c5ce726;border-radius:2px;transition:background-color .2s}.visual-variable-highlight:hover{background-color:#6c5ce740}.trace-line-decoration{background-color:#fdcb6e1f!important;border-left:3px solid #fdcb6e!important}.trace-line-error-decoration{background-color:#ff475726!important;border-left:3px solid #ff4757!important}.trace-line-margin{background-color:#fdcb6e0f}.trace-line-error-margin{background-color:#ff47570f}.python-loading-overlay{justify-content:center;align-items:center;gap:var(--space-md);height:100%;padding:var(--space-xl);text-align:center;flex-direction:column;display:flex}.python-loading-spinner{border:3px solid var(--border-color);border-top-color:#3572a5;border-radius:50%;width:44px;height:44px;animation:.9s linear infinite py-spin}@keyframes py-spin{to{transform:rotate(360deg)}}.python-loading-title{font-size:var(--text-base);color:var(--text-primary);font-weight:600;animation:2s ease-in-out infinite py-pulse}.python-loading-sub{font-size:var(--text-sm);color:var(--text-tertiary);max-width:280px;line-height:1.6}@keyframes py-pulse{0%,to{opacity:1}50%{opacity:.55}}.login-page{background:var(--bg-primary);width:100vw;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-bg-grid{background-image:radial-gradient(circle, var(--border-color) 1px, transparent 1px);opacity:.35;pointer-events:none;background-size:28px 28px;width:60%;position:absolute;inset:0}.login-orb{filter:blur(100px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.login-orb--blue{background:radial-gradient(circle,#2f81f72e,#0000 70%);width:500px;height:500px;top:-100px;left:-100px}.login-orb--teal{background:radial-gradient(circle,#3dc9b024,#0000 70%);width:400px;height:400px;bottom:-50px;right:20%}.login-left{z-index:1;flex:0 0 60%;align-items:center;padding:8% 10%;display:flex;position:relative}.login-left-content{gap:var(--space-lg);flex-direction:column;max-width:600px;display:flex}.login-logo-large{align-items:center;gap:24px;display:flex}.login-logo-large .login-logo{border-radius:var(--radius-md);object-fit:contain;width:160px;height:160px}.login-logo-large .login-brand{letter-spacing:-3px;font-size:4rem;font-weight:800}.login-hero-title{color:var(--text-primary);letter-spacing:-1.5px;font-size:4rem;font-weight:800;line-height:1.1}.gradient-text-alt{background:linear-gradient(135deg,#3dc9b0 0%,#2f81f7 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.login-hero-subtitle{font-size:var(--text-lg);color:var(--text-secondary);max-width:90%;line-height:1.6}.login-right{background:var(--bg-secondary);border-left:1px solid var(--border-color);padding:var(--space-2xl);z-index:2;flex:0 0 40%;justify-content:center;align-items:center;display:flex;box-shadow:-10px 0 30px #00000026}.login-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:400px;padding:var(--space-2xl) var(--space-xl);box-shadow:var(--shadow-sm);align-items:center;gap:var(--space-lg);flex-direction:column;display:flex}.login-logo-wrap{align-items:center;gap:12px;display:flex}.login-title{font-size:var(--text-2xl);color:var(--text-primary);text-align:center;font-weight:700}.login-subtitle{font-size:var(--text-sm);color:var(--text-secondary);text-align:center;margin-top:-12px;line-height:1.6}.login-divider{align-items:center;gap:var(--space-md);width:100%;color:var(--text-tertiary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:1px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.login-oauth-btn{justify-content:center;align-items:center;gap:var(--space-md);width:100%;padding:13px var(--space-lg);border-radius:var(--radius-lg);font-size:var(--text-base);border:1px solid var(--border-color);transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);cursor:pointer;font-weight:500;font-family:var(--font-sans);display:flex}.login-oauth-btn:disabled{opacity:.6;cursor:not-allowed}.login-oauth-btn--google{background:var(--bg-tertiary);color:var(--text-primary)}.login-oauth-btn--google:hover:not(:disabled){background:var(--bg-card-hover);border-color:#4285f4;box-shadow:0 0 0 3px #4285f41f}.oauth-icon{flex-shrink:0;width:20px;height:20px}.login-spinner{border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin}.login-error{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--accent-error);font-size:var(--text-sm);text-align:center;background:#f851491a;border:1px solid #f851494d}.login-terms{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center;line-height:1.6}.login-link{color:var(--accent-primary);text-underline-offset:2px;text-decoration:underline}.login-link:hover{color:var(--text-primary)}@media (width<=1024px){.login-page{flex-direction:column}.login-bg-grid{width:100%}.login-left{padding:var(--space-3xl) var(--space-xl);flex:1;align-items:flex-start}.login-right{border-left:none;border-top:1px solid var(--border-color);width:100%;padding:var(--space-2xl) var(--space-xl);flex:none}}
