:root{--primary: #6366f1;--primary-hover: #4f46e5;--secondary: #ec4899;--accent: #8b5cf6;--text-main: #1f2937;--text-muted: #6b7280;--bg-gradient: linear-gradient(135deg, #e0eafc 0%, #cfdef3 100%);--sidebar-width: 280px;--glass-bg: rgba(255, 255, 255, .7);--glass-border: 1px solid rgba(255, 255, 255, .4);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .1);--glass-blur: blur(12px);--anim-speed: .5s}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg-gradient);color:var(--text-main);min-height:100vh;overflow-x:hidden}a{text-decoration:none;color:inherit}.glass-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6366f180}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .5s ease-out forwards}@media(max-width:768px){html{font-size:90%}}@media(max-width:480px){html{font-size:85%}}:root{--primary: #6366f1;--primary-hover: #4f46e5;--secondary: #ec4899;--bg-gradient: linear-gradient(135deg, #e0eafc 0%, #cfdef3 100%);--sidebar-width: 250px;--navbar-height: 70px;--text-main: #1f2937;--text-muted: #6b7280;--glass-bg: rgba(255, 255, 255, .7);--glass-border: 1px solid rgba(255, 255, 255, .4);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .1)}body.dark-mode{--text-main: #f3f4f6;--text-muted: #9ca3af;--bg-gradient: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--glass-bg: rgba(30, 41, 59, .7);--glass-border: 1px solid rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .3)}.layout-container{display:flex;flex-direction:column;height:100vh;background:var(--bg-gradient);color:var(--text-main);transition:background .3s ease,color .3s ease}.top-navbar{height:var(--navbar-height);display:flex;justify-content:space-between;align-items:center;padding:0 2rem;margin:1rem 1rem 0;z-index:100}.nav-left,.nav-right{display:flex;align-items:center;gap:1.5rem}.brand-logo-nav{font-size:1.5rem;font-weight:800;background:linear-gradient(to right,var(--primary),var(--secondary));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.menu-toggle{background:none;border:none;font-size:1.25rem;color:var(--text-main);cursor:pointer}.theme-toggle{background:none;border:none;font-size:1.25rem;color:var(--text-main);cursor:pointer;transition:transform .2s}.theme-toggle:hover{transform:rotate(15deg)}.icon-sun{color:#f59e0b}.icon-moon{color:#6366f1}.user-menu{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#ffffff1a;border-radius:20px;border:1px solid rgba(255,255,255,.1)}.user-name{font-weight:600;font-size:.9rem}.user-avatar{font-size:1.5rem;color:var(--primary)}.logout-btn-nav{background:none;border:none;color:#ef4444;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;margin-left:.5rem;padding-left:.5rem;border-left:1px solid rgba(255,255,255,.2)}.logout-btn-nav:hover{color:#dc2626}.login-btn-nav{padding:.5rem 1.25rem;background:var(--primary);color:#fff;border-radius:8px;font-weight:600}@keyframes blink{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #6366f100}50%{opacity:.7;transform:scale(1.05);box-shadow:0 0 15px #6366f199}}.blink-animation{animation:blink .8s ease-in-out infinite}.main-body{display:flex;flex:1;overflow:hidden;margin-top:1rem}.sidebar{width:var(--sidebar-width);margin:0 0 1rem 1rem;display:flex;flex-direction:column;transition:all .3s ease}.sidebar.closed{width:0;margin-left:0;overflow:hidden;opacity:0}.sidebar-nav{padding:1.5rem;display:flex;flex-direction:column;gap:.5rem}.nav-item{display:flex;align-items:center;padding:.8rem 1rem;border-radius:12px;color:var(--text-muted);font-weight:500;transition:all .2s;white-space:nowrap}.nav-item:hover{background:#ffffff1a;color:var(--primary);transform:translate(4px)}.nav-item.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f14d}.nav-item .icon{margin-right:1rem;font-size:1.1rem}.content-area{flex:1;padding:0 1rem 1rem;overflow-y:auto}@media(max-width:768px){:root{--sidebar-width: 260px;--navbar-height: 60px}.top-navbar{margin:.5rem .5rem 0;padding:0 1rem}.brand-logo-nav{font-size:1.25rem}.main-body{margin-top:.5rem}.sidebar{position:fixed;top:calc(var(--navbar-height) + 1rem);bottom:1rem;left:.5rem;height:auto;z-index:50;transform:translate(-110%);width:var(--sidebar-width)}.sidebar.open{transform:translate(0);width:var(--sidebar-width);background:#fffffff2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}body.dark-mode .sidebar.open{background:#1e293bf2}.sidebar.open:before{content:"";position:fixed;top:-100px;left:-100px;width:200vw;height:200vh;background:#0000004d;z-index:-1;pointer-events:auto}.content-area{padding:0 .5rem .5rem}.nav-right{gap:.75rem}.user-menu{padding:.4rem .8rem}.user-name{display:none}}@media(max-width:480px){.top-navbar{padding:0 .5rem}.brand-logo-nav{font-size:1.1rem}.login-btn-nav{padding:.4rem .8rem;font-size:.9rem}}.landing-container{padding:1rem}.hero-section{text-align:center;margin-bottom:3rem;padding:2rem 0}.hero-title{font-size:3.5rem;font-weight:800;margin-bottom:1rem;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 10px 30px rgba(0,0,0,.1)}.hero-subtitle{color:var(--text-muted);font-size:1.1rem;max-width:600px;margin:0 auto;line-height:1.6}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;padding:1rem}.ds-card{padding:2rem;display:flex;flex-direction:column;align-items:flex-start;transition:transform .3s ease,box-shadow .3s ease;cursor:pointer;border-top:1px solid rgba(255,255,255,.6)}.ds-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px #0000001a}.card-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1.5rem}.card-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem;color:var(--text-main)}.card-desc{color:var(--text-muted);font-size:.95rem;margin-bottom:1.5rem;flex:1}.card-link{font-weight:600;font-size:.9em;display:flex;align-items:center;gap:.5rem;transition:gap .2s}.card-link:hover{gap:.8rem}@media(max-width:768px){.hero-title{font-size:2.5rem}}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:1.5rem;padding:1rem}.auth-card{width:100%;max-width:400px;padding:2.5rem;border-top:1px solid rgba(255,255,255,.5)}.auth-title{text-align:center;font-size:2rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}.auth-subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem}.auth-error{background:#ef44441a;color:#ef4444;padding:.75rem;border-radius:8px;margin-bottom:1.5rem;text-align:center;font-size:.9rem;border:1px solid rgba(239,68,68,.2)}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.9rem;margin-bottom:.5rem;color:var(--text-main);font-weight:600}.form-input{width:100%;padding:.75rem 1rem;border-radius:10px;border:1px solid rgba(0,0,0,.1);background:#ffffff80;transition:all .3s ease;font-size:1rem}.form-input:focus{outline:none;background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #6366f133}.submit-btn{width:100%;padding:.8rem;margin-top:1rem;border:none;border-radius:10px;background:linear-gradient(to right,var(--primary),var(--primary-hover));color:#fff;font-weight:600;font-size:1.05rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #6366f14d}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.9rem;color:var(--text-muted)}.toggle-auth-btn{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;padding:0;text-decoration:underline}.toggle-auth-btn:hover{color:var(--primary-hover)}.google-auth-divider{display:flex;align-items:center;justify-content:center;margin:1.5rem 0;color:var(--text-muted);font-size:.85rem;position:relative}.google-auth-divider:before,.google-auth-divider:after{content:"";flex:1;border-bottom:1px solid rgba(0,0,0,.1);margin:0 10px}.google-auth-container{display:flex;justify-content:center;margin-top:1rem;width:100%}.developer-credit{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:1rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1.25rem;border-radius:50px;border:1px solid rgba(255,255,255,.1);text-decoration:none;transition:all .3s ease;z-index:1000;box-shadow:0 4px 6px #0000001a}.developer-credit:hover{background:#ffffff26;transform:translateY(-2px);box-shadow:0 8px 12px #0003;border-color:#fff3}.avatar-container{position:relative}.developer-avatar{width:45px;height:45px;border-radius:50%;border:2px solid rgba(255,255,255,.8);object-fit:cover}.heartbeat-dot{position:absolute;bottom:2px;right:2px;width:12px;height:12px;background-color:#22c55e;border-radius:50%;border:2px solid rgba(0,0,0,.5);box-shadow:0 0 #22c55eb3;animation:heartbeat 1.5s infinite}.developer-info{display:flex;flex-direction:column;line-height:1.2}.developed-by{font-size:.75rem;color:#ffffffb3;font-weight:500}.developer-name{font-size:.95rem;color:#fff;font-weight:700;letter-spacing:.5px}@keyframes heartbeat{0%{transform:scale(.95);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 6px #22c55e00}to{transform:scale(.95);box-shadow:0 0 #22c55e00}}@media(max-width:768px){.developer-credit{position:static;transform:none;width:auto;padding:.6rem 1.25rem;background:#ffffff26;border:1px solid rgba(255,255,255,.15)}.developer-credit:hover{transform:scale(1.02)}}@media(max-width:480px){.developer-credit{position:static;transform:none;padding:.5rem 1rem;border-radius:40px;width:auto;max-width:100%;justify-content:center}.developer-credit:hover{transform:scale(1.02)}.developer-avatar{width:36px;height:36px;border-width:1.5px}.heartbeat-dot{width:10px;height:10px;right:1px;bottom:1px}.developed-by{font-size:.7rem}.developer-name{font-size:.9rem}}.striver-container{max-width:800px;margin:0 auto}.sheet-header{text-align:center;margin-bottom:3rem}.sheet-header h1{font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(to right,#f59e0b,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sheet-header p{color:var(--text-muted)}.topics-list{display:flex;flex-direction:column;gap:1.5rem}.topic-card{overflow:hidden;transition:all .3s ease}.topic-header{padding:1.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;background:#fff6;transition:background .2s}.topic-header:hover{background:#fff9}.topic-header.active{background:#6366f11a;border-bottom:1px solid rgba(0,0,0,.05)}.topic-header h3{margin:0;font-size:1.2rem;color:var(--text-main)}.problems-list{padding:1rem;background:#fff3}.problem-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid rgba(0,0,0,.05);transition:background .2s;border-radius:8px}.problem-item:last-child{border-bottom:none}.problem-item:hover{background:#ffffff80}.problem-info{display:flex;align-items:center;gap:1rem}.problem-title{font-weight:500;color:var(--text-main)}.problem-item.completed .problem-title{text-decoration:line-through;color:var(--text-muted)}.yt-link{display:flex;align-items:center;gap:5px;color:#ef4444;font-size:.85rem;font-weight:600;padding:4px 8px;border-radius:4px;background:#ef44441a;transition:background .2s}.yt-link:hover{background:#ef444433}.check-btn{background:none;border:none;cursor:pointer;font-size:1.5rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center}.check-btn .text-green{color:#10b981}.check-btn:hover{transform:scale(1.1)}.whiteboard-container{padding:2rem;height:100%;display:flex;flex-direction:column;gap:1.5rem}.whiteboard-header{display:flex;justify-content:space-between;align-items:center}.whiteboard-header h1{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#fff,#a5b4fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.tab-controls{display:flex;gap:1rem;background:#ffffff1a;padding:.5rem;border-radius:12px}.tab-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border:none;border-radius:8px;background:transparent;color:#fff9;cursor:pointer;transition:all .3s ease;font-weight:500}.tab-btn:hover{color:#fff;background:#ffffff1a}.tab-btn.active{background:#6366f180;color:#fff;box-shadow:0 0 15px #6366f14d}.whiteboard-content{flex:1;padding:1.5rem;display:flex;flex-direction:column;overflow:auto;height:100%;position:relative}.draw-area{height:100%;width:100%;display:flex;flex-direction:column;overflow:visible;align-items:center;justify-content:center}.write-area{min-height:100%;height:auto;width:100%;display:flex;flex-direction:column}.canvas-container{flex:1;width:100%;overflow:auto;position:relative;background:#1a1a2e}.canvas-container::-webkit-scrollbar{width:8px;height:8px}.canvas-container::-webkit-scrollbar-track{background:#ffffff0d}.canvas-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.canvas-container::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.toolbar{display:flex;gap:1rem;margin-bottom:1rem;padding:.5rem;background:#0003;border-radius:8px;align-items:center;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);width:fit-content}.toolbar input[type=color]{border:none;width:40px;height:40px;cursor:pointer;background:transparent}.toolbar button{padding:.5rem;border-radius:6px;border:none;background:#ffffff1a;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.toolbar button:hover{background:#fff3}.zoom-controls{display:flex;align-items:center;gap:.5rem;margin-left:1rem;background:#ffffff0d;padding:.2rem;border-radius:6px}.zoom-controls button{padding:.2rem .6rem;font-size:1.1rem}.zoom-controls .zoom-level{font-size:.9rem;color:#fffc;min-width:45px;text-align:center}.zoom-controls .zoom-reset-btn{margin-left:.5rem;padding:.3rem .5rem;font-size:.9rem;color:#fff;background:#ffffff1a;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.zoom-controls .zoom-reset-btn:hover{background:#fff3;color:#6366f1}.drawing-canvas{background:#1a1a2e;border-radius:8px;width:3000px;height:3000px;touch-action:none;display:block}.notes-textarea{flex:1;width:100%;height:100%;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1.5rem;color:#e2e8f0;font-size:1.1rem;font-family:Inter,sans-serif;resize:none;outline:none;line-height:1.6}.notes-textarea:focus{border-color:#6366f180;box-shadow:0 0 0 2px #6366f133}.main-content-wrapper{display:flex;flex:1;gap:1rem;overflow:hidden;position:relative;height:100%}.action-controls{display:flex;gap:1rem;align-items:center}.title-input-wrapper{position:relative}.title-input{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.6rem 1rem;color:#fff;font-size:.95rem;outline:none;transition:all .3s ease;width:200px}.title-input:focus{border-color:#6366f180;background:#ffffff26;box-shadow:0 0 0 2px #6366f133}.title-input::placeholder{color:#fff6}.action-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s ease}.save-btn{background:#4ade80;color:#064e3b}.save-btn:hover{background:#22c55e;transform:translateY(-2px)}.history-btn{background:#ffffff1a;color:#fff}.history-btn:hover,.history-btn.active{background:#fff3}.history-sidebar{width:0;opacity:0;overflow:hidden;transition:all .3s ease;display:flex;flex-direction:column;background:#0006;border-radius:12px}.history-sidebar.open{width:300px;opacity:1;padding:1rem;margin-right:.5rem}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.history-header h3{color:#fff;margin:0}.history-header button{background:none;border:none;color:#fff9;cursor:pointer}.history-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.8rem}.history-item{background:#ffffff0d;padding:.8rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:.8rem;transition:all .2s;border:1px solid transparent}.history-item:hover{background:#ffffff1a;border-color:#fff3}.item-icon{font-size:1.2rem;color:#a5b4fc}.item-info{flex:1;display:flex;flex-direction:column;overflow:hidden}.item-title{color:#e2e8f0;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-date{color:#94a3b8;font-size:.75rem}.delete-btn{background:none;border:none;color:#ef4444;cursor:pointer;opacity:0;transition:opacity .2s;padding:4px}.history-item:hover .delete-btn{opacity:1}.empty-msg{color:#fff6;text-align:center;margin-top:2rem;font-style:italic}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#fff9;gap:1rem}.spinner{width:30px;height:30px;border:3px solid rgba(255,255,255,.1);border-radius:50%;border-top-color:#6366f1;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.viz-container{height:100vh;display:flex;flex-direction:column}.viz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.viz-breadcrumbs{font-size:.95rem;color:var(--text-muted)}.breadcrumb-link{color:var(--primary);font-weight:500}.breadcrumb-sep{margin:0 10px}.breadcrumb-curr{font-weight:600;color:var(--text-main)}.back-btn{display:flex;align-items:center;gap:8px;color:var(--primary);font-weight:500;transition:transform .2s}.back-btn:hover{transform:translate(-4px)}.viz-grid{display:grid;grid-template-columns:300px 1fr 300px;grid-template-rows:1fr;gap:20px;flex:1;min-height:0;overflow-y:auto}.viz-panel{display:flex;flex-direction:column;overflow:hidden;max-height:100%}.controls-panel{padding:20px;flex:1;min-height:0;overflow-y:auto}.canvas-panel{background:#ffffffe6;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;border:4px solid rgba(255,255,255,.5)}.canvas-content{width:100%;height:100%;position:relative;overflow:auto}.info-panel{display:flex;flex-direction:column;gap:20px;overflow:auto;min-height:0}.complexity-card{padding:20px;flex-shrink:0}.activity-card{flex:1;display:flex;flex-direction:column;padding:20px;min-height:0}.activity-list{flex:1;overflow-y:auto;margin-top:10px;padding-right:5px}.activity-item{padding:8px 12px;background:#ffffff80;border-radius:6px;margin-bottom:8px;font-size:.9rem;border-left:3px solid var(--primary)}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.05)}.panel-header h3,.complexity-card h3,.activity-card h3{font-size:1.1rem;font-weight:700;color:var(--primary)}.reset-btn{background:none;border:none;color:#6366f1;font-size:.85rem;font-weight:600;cursor:pointer}.reset-btn:hover{text-decoration:underline}.text-muted{color:#9ca3af;font-style:italic;font-size:.9rem}@media(max-width:1024px){.viz-grid{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;display:flex;flex-direction:column;overflow-y:auto}.canvas-panel{min-height:350px;flex:0 0 400px;order:-1}.controls-panel,.info-panel{max-height:none;overflow:visible}.viz-container{height:auto;min-height:100vh}}@media(max-width:600px){.canvas-panel{min-height:300px;border-width:2px}.viz-breadcrumbs{font-size:.8rem}.viz-header{flex-direction:column;align-items:flex-start;gap:10px}.back-btn{align-self:flex-end}}.complexity-details{display:flex;flex-direction:column;gap:8px}.complexity-details div{font-size:.95rem;color:#1f2937}.complexity-label{font-weight:600;color:#6366f1;margin-right:6px}.control-input{padding:10px 15px;border-radius:8px;border:1px solid rgba(0,0,0,.1);font-size:1rem}.button-group{display:flex;flex-direction:column;gap:10px}.control-btn{padding:10px;border-radius:8px;border:none;font-weight:600;cursor:pointer;transition:all .2s;color:#fff}.control-btn:disabled{opacity:.6;cursor:not-allowed}.control-btn.primary{background:var(--primary)}.control-btn.primary:hover:not(:disabled){background:var(--primary-hover)}.control-btn.danger{background:#f43f5e}.control-btn.danger:hover:not(:disabled){background:#e11d48}.ll-canvas{width:100%;height:100%;padding:40px;overflow-x:auto;display:flex;align-items:center;justify-content:flex-start}.empty-state{margin:auto;color:var(--text-muted);font-style:italic;font-size:1.2rem;padding:2rem;border:2px dashed rgba(0,0,0,.1);border-radius:12px}.ll-list{display:flex;align-items:center;gap:10px;min-width:min-content;margin:auto}.ll-node-wrapper{display:flex;align-items:center}.ll-node{width:80px;height:80px;border-radius:50%;background:#fff;border:3px solid var(--primary);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 10px #0000001a;transition:all .5s ease;z-index:2}.node-value{font-weight:700;font-size:1.2rem;color:var(--text-main)}.ll-arrow{margin:0 10px;color:var(--text-muted);animation:growArrow .5s ease-out}.ll-null{margin-left:15px;font-weight:600;color:var(--text-muted);font-size:.9rem}.new-node{transform:scale(0);background:#d1fae5;border-color:#10b981;animation:popIn .5s forwards}.deleted-node{background:#fee2e2;border-color:#ef4444;transform:scale(0);opacity:0}.highlighted{border-color:#f59e0b;background:#fef3c7;box-shadow:0 0 15px #f59e0b66;transform:translateY(-10px)}@keyframes popIn{to{transform:scale(1)}}@keyframes growArrow{0%{width:0;opacity:0}to{width:auto;opacity:1}}.badge{padding:2px 8px;border-radius:4px;font-size:.85rem;font-weight:600}.complexity-badge{background:#e0e7ff;color:#4338ca}.space-badge{background:#fae8ff;color:#86198f}.stack-canvas{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;overflow:auto}.stack-container{display:flex;flex-direction:column-reverse;width:150px;min-height:400px;border-left:4px solid rgba(99,102,241,.3);border-right:4px solid rgba(99,102,241,.3);padding:10px;position:relative;background:#ffffff1a}.stack-base{width:170px;height:8px;background:var(--primary);border-radius:4px;margin-top:-4px}.stack-item{width:100%;height:50px;background:linear-gradient(135deg,#a5b4fc,#818cf8);border:2px solid white;border-radius:8px;margin-bottom:5px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;box-shadow:0 4px 6px #0000001a;position:relative;transition:all .3s;flex-shrink:0}.item-index{position:absolute;right:-80px;color:var(--text-muted);font-size:.8rem;font-weight:500;width:60px;text-align:left}.empty-message{margin:auto;color:var(--text-muted);font-style:italic}.slide-in{animation:slideInTop .5s ease-out forwards}.slide-out{animation:flyRight .5s ease-in forwards}.highlight{background:#f59e0b;transform:scale(1.05);z-index:10}@keyframes slideInTop{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes flyRight{to{transform:translate(200px);opacity:0}}.viz-message{margin-top:10px;padding:8px;background:#f59e0b1a;color:#d97706;border-radius:6px;font-size:.9rem;border:1px solid rgba(245,158,11,.2)}.viz-info-note{font-size:.8rem;color:var(--text-muted);text-align:center;margin-top:10px}.button-group-row{display:flex;gap:10px}.control-btn{flex:1;white-space:nowrap;padding:8px 4px;display:flex;align-items:center;justify-content:center;min-width:60px}.control-btn.warning{background:#f59e0b;color:#fff}.control-btn.warning:hover:not(:disabled){background:#d97706}.control-btn.secondary{background:#8b5cf6;color:#fff}.control-btn.secondary:hover:not(:disabled){background:#7c3aed}body.dark-mode .stack-item{color:#1f2937}.queue-canvas{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:20px}.queue-container{width:100%;overflow-x:auto;padding:40px;background:#ffffff0d;border-radius:20px}.queue-track{display:flex;align-items:center;gap:10px;min-height:100px;border-bottom:4px solid rgba(16,185,129,.3);border-top:4px solid rgba(16,185,129,.3);padding:10px;position:relative}.queue-item{min-width:60px;height:60px;background:linear-gradient(135deg,#6ee7b7,#34d399);border:2px solid white;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:700;position:relative;box-shadow:0 4px 10px #0000001a}.queue-indicators{position:absolute;top:-25px;width:100%;display:flex;justify-content:center}.indicator{font-size:.7rem;padding:2px 6px;border-radius:4px;color:#fff;font-weight:600;text-transform:uppercase}.indicator.front{background:#f59e0b}.indicator.rear{background:#6366f1}.empty-message.horizontal{width:100%;text-align:center;color:var(--text-muted)}.slide-left{animation:slideLeft .5s ease-out}.fade-out{animation:fadeOutDown .5s ease-in forwards}@keyframes slideLeft{0%{transform:translate(50px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOutDown{to{transform:translateY(50px);opacity:0}}.controls-group{display:flex;flex-direction:column;gap:15px}.input-with-btn{display:flex;gap:8px;width:100%}.input-with-btn .control-input{flex:1;min-width:0}.input-with-btn .control-btn{flex:0 0 auto;white-space:nowrap}body.dark-mode .queue-item{color:#1f2937}.glass-dropdown-container{position:relative;width:100%;min-width:180px;font-family:inherit;z-index:50}.glass-dropdown-trigger{width:100%;padding:.8rem 1rem;background:#ffffff26;border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:12px;color:var(--text-main);font-size:.95rem;font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease;box-shadow:0 4px 6px #0000000d}.glass-dropdown-trigger:hover:not(:disabled){background:#ffffff40;transform:translateY(-1px);box-shadow:0 6px 12px #0000001a}.glass-dropdown-trigger:disabled{opacity:.6;cursor:not-allowed}.glass-dropdown-arrow{transition:transform .2s ease;margin-left:10px;opacity:.7}.glass-dropdown-trigger[aria-expanded=true] .glass-dropdown-arrow{transform:rotate(180deg)}.glass-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;width:100%;background:#fff9;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-radius:12px;padding:6px;box-shadow:0 10px 25px #00000026;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.glass-dropdown-menu.open{opacity:1;visibility:visible;transform:translateY(0)}.glass-dropdown-item{padding:10px 12px;border-radius:8px;cursor:pointer;color:#374151;font-size:.95rem;transition:all .15s ease;display:flex;align-items:center}.glass-dropdown-item:hover{background:#6366f11a;color:var(--primary)}.glass-dropdown-item.selected{background:var(--primary);color:#fff;font-weight:600}body.dark-mode .glass-dropdown-trigger{background:#1e293b66;border-color:#ffffff1a;color:var(--text-main)}body.dark-mode .glass-dropdown-trigger:hover:not(:disabled){background:#1e293b99}body.dark-mode .glass-dropdown-menu{background:#1e293bd9;border-color:#ffffff1a}body.dark-mode .glass-dropdown-item{color:#e5e7eb}body.dark-mode .glass-dropdown-item:hover{background:#6366f14d;color:#fff}body.dark-mode .glass-dropdown-item.selected{background:var(--primary);color:#fff}.glass-dropdown-menu::-webkit-scrollbar{width:6px}.glass-dropdown-menu::-webkit-scrollbar-track{background:transparent}.glass-dropdown-menu::-webkit-scrollbar-thumb{background:#9ca3af80;border-radius:3px}.glass-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#9ca3afcc}.sorting-canvas{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:40px}.control-input{appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236366f1%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right 1rem center;background-size:.65em auto;padding-right:2.5rem}.bars-container{display:flex;align-items:flex-end;gap:8px;height:300px;padding:20px;border-bottom:4px solid var(--text-muted)}.bar-item{width:30px;background:linear-gradient(to top,#6366f1,#a5b4fc);border-radius:4px 4px 0 0;position:relative;transition:height .2s ease,background .2s;display:flex;justify-content:center}.bar-val{position:absolute;top:-25px;font-size:.8rem;font-weight:600;color:var(--text-muted)}.comparing{background:#f59e0b}.swapping{background:#ef4444}.sorted{background:#10b981}body.dark-mode .bar-val{color:#d1d5db}.controls-group{display:flex;flex-direction:column;gap:1rem}.button-group-row{display:flex;gap:.5rem;flex-wrap:wrap}.button-group-row button{flex:1;white-space:nowrap}@media(max-width:600px){.sorting-canvas{padding:10px;align-items:center}.bars-container{padding:10px;width:100%;height:250px;justify-content:center}.bar-item{flex:1;max-width:20px;min-width:5px}.bar-val{font-size:.7rem;top:-20px}}.dll-canvas{width:100%;height:100%;overflow-x:auto;display:flex;align-items:center;justify-content:center;padding:40px}.dll-list,.dll-node-group{display:flex;align-items:center;gap:10px}.dll-node{width:90px;height:60px;background:#fff;border:2px solid var(--secondary);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 10px #0000001a;transition:all .5s}.node-val{font-weight:800;font-size:1.1rem}.node-ptrs{display:flex;width:100%;justify-content:space-between;padding:0 5px;position:absolute;top:50%;transform:translateY(-50%)}.ptr{width:6px;height:6px;background:var(--text-muted);border-radius:50%}.dll-arrows{display:flex;flex-direction:column;color:var(--text-muted);gap:2px}.arrow-right{transform:translateY(2px)}.arrow-left{transform:translateY(-2px)}.dll-null{font-weight:700;color:var(--text-muted);font-size:.8rem}.dll-arrow-wrapper{color:var(--text-muted);opacity:.5}.new-node{transform:scale(0);background:#cffafe;border-color:#06b6d4;animation:popIn .5s forwards}.deleted-node{transform:scale(0);opacity:0;background:#fee2e2}body.dark-mode .dll-node{color:#1f2937}.tree-canvas{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff05}.tree-canvas svg{min-width:100%;min-height:100%}.tree-canvas circle,.tree-canvas line,.tree-canvas text{transition:all .5s ease-in-out}.input-with-btn{display:flex;gap:10px;align-items:center}@media(max-width:600px){.input-with-btn{flex-direction:column;width:100%;align-items:stretch}.input-with-btn input,.input-with-btn button{width:100%}.tree-canvas svg{height:auto;min-height:300px}}.recursion-canvas{width:100%;height:100%;display:flex;justify-content:center;padding:20px}.stack-visual{width:300px;display:flex;flex-direction:column}.stack-title{text-align:center;margin-bottom:15px;color:var(--text-muted)}.frames-container{flex:1;border:3px solid var(--text-muted);border-top:none;border-radius:0 0 12px 12px;padding:10px;display:flex;flex-direction:column;justify-content:flex-end;background:#ffffff0d;min-height:400px}.stack-frame{background:#fff;margin-bottom:8px;padding:12px;border-radius:8px;border-left:5px solid var(--primary);box-shadow:0 4px 6px #0000001a;animation:slideInBottom .4s ease-out;display:flex;justify-content:space-between;align-items:center}.stack-frame.returning{border-left-color:#10b981;background:#d1fae5}.frame-func{font-weight:700;color:#105fb9;font-family:sans-serif}.frame-return{font-size:.85rem;color:var(--text-muted)}.val{font-weight:700;color:#10b981}.empty-stack{margin:auto;color:var(--text-muted);font-style:italic}@keyframes slideInBottom{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.graph-canvas{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffff05;border-radius:12px}.node-circle{transition:all .5s ease;cursor:pointer}.custom-dropdown{position:relative;width:200px;margin-right:15px;font-family:inherit;z-index:10}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-radius:12px;background:#ffffff1a;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3);color:var(--text-primary);cursor:pointer;transition:all .3s ease;-webkit-user-select:none;user-select:none}.dropdown-trigger:hover,.dropdown-trigger.open{background:#fff3;border-color:#6366f180;box-shadow:0 0 0 3px #6366f11a}.dropdown-icon{font-size:.8em;transition:transform .3s ease}.dropdown-trigger.open .dropdown-icon{transform:rotate(180deg)}.dropdown-options{position:absolute;top:calc(100% + 8px);left:0;width:100%;background:#1e293bd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 10px 25px -5px #0000004d;padding:.5rem;animation:fadeIn .2s ease-out}.dropdown-item{padding:.6rem 1rem;border-radius:8px;color:#e2e8f0;cursor:pointer;transition:all .2s}.dropdown-item:hover{background:#6366f166;color:#fff}.btn-group{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:600px){.controls-group{flex-direction:column;width:100%}.custom-dropdown{width:100%;margin-right:0;margin-bottom:10px}.btn-group{width:100%}.btn-group button{flex:1}}
