:root{--algo-bar-default:#3b82f6;--algo-bar-comparing:#ef4444;--algo-bar-swapping:#f59e0b;--algo-bar-sorted:#10b981;--algo-bar-pivot:#8b5cf6;--code-active-bg:rgba(59,130,246,0.15);--code-keyword:#c678dd;--code-string:#98c379;--code-comment:#5c6370;--code-function:#61afef;--code-number:#d19a66}.algo-page{min-height:100vh;padding:6rem 1.5rem 2rem;max-width:1600px;margin:0 auto;background:var(--bg-primary)}.algo-header{text-align:center;margin-bottom:2rem}.algo-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.5rem}.algo-title-icon{color:var(--accent-primary)}.algo-subtitle{color:var(--text-secondary);font-size:1.1rem}.algo-categories{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}.algo-category-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem 1.5rem;border-radius:.75rem;background:var(--bg-card);border:2px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all .3s ease;min-width:140px}.algo-category-btn:hover{transform:translateY(-2px)}.algo-category-btn.active,.algo-category-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.algo-category-btn.active{background:linear-gradient(135deg,var(--accent-primary)15,var(--accent-secondary)10)}.category-name{font-weight:600;font-size:.95rem}.category-desc{font-size:.7rem;opacity:.7}.algo-playground{display:grid;grid-template-columns:1fr 380px;gap:1.5rem;background:var(--bg-card);border-radius:1rem;border:1px solid var(--border-color);overflow:hidden;min-height:700px}.algo-playground.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:var(--bg-primary);display:flex;flex-direction:column;border-radius:0;min-height:100vh}.fullscreen-layout{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none}.fullscreen-layout::-webkit-scrollbar{display:none}.fullscreen-header{justify-content:space-between;padding:0 1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border-color);height:60px;flex-shrink:0;box-sizing:border-box}.fullscreen-header,.fullscreen-header>*{display:flex;align-items:center}.fullscreen-header .header-left{display:flex;align-items:center;gap:.75rem;height:60px;flex:0 0 auto}.fullscreen-header .header-center{flex:1;display:flex;align-items:center;justify-content:center;padding:0 2rem;min-width:0}.fullscreen-header .header-center .step-description{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;color:var(--text-primary);max-width:600px;width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fullscreen-header .header-right{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end}.fullscreen-header select{padding:0 2rem 0 1rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;cursor:pointer;min-width:200px;height:40px;line-height:40px;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}.fullscreen-header select:disabled{opacity:.6;cursor:not-allowed}.fullscreen-header select option{background:var(--bg-card);color:var(--text-primary)}.fullscreen-header .exit-fullscreen-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:.5rem;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0;padding:0;box-sizing:border-box}.fullscreen-header .exit-fullscreen-btn:hover{background:var(--border-color);color:var(--text-primary)}.fullscreen-header .complexity-badges{display:flex;gap:.5rem;align-items:center;margin-left:1rem}.fullscreen-main{flex:1;display:grid;grid-template-columns:280px 1fr 300px;gap:1rem;padding:1rem;overflow:hidden;min-height:0}.fullscreen-code{background:var(--bg-card);border-radius:.75rem;border:1px solid var(--border-color);overflow:auto;height:100%;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.fullscreen-code::-webkit-scrollbar{width:0;height:0;display:none}.fullscreen-code .code-panel{height:100%;max-height:none;display:flex;flex-direction:column;border:none;border-radius:0}.fullscreen-code .code-content{flex:1;overflow:auto;max-height:none!important;height:100%;scrollbar-width:none;-ms-overflow-style:none}.fullscreen-code .code-content::-webkit-scrollbar{width:0;height:0;display:none}.fullscreen-code pre{height:100%;margin:0}.fullscreen-canvas{background:rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;overflow:hidden}.fullscreen-canvas,.fullscreen-memory{border-radius:.75rem;border:1px solid var(--border-color)}.fullscreen-memory{background:var(--bg-card);overflow:auto;height:100%;min-height:0;scrollbar-width:none;-ms-overflow-style:none}.fullscreen-memory::-webkit-scrollbar{width:0;height:0;display:none}.fullscreen-memory .memory-visualizer{max-height:none;height:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.fullscreen-memory .memory-visualizer::-webkit-scrollbar{width:0;height:0;display:none}.fullscreen-controls{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1.5rem;background:var(--bg-card);border-top:1px solid var(--border-color);height:64px;flex-shrink:0;box-sizing:border-box}.playground-visualization{display:flex;flex-direction:column;background:linear-gradient(135deg,var(--bg-secondary) 0,rgba(0,0,0,.1) 100%);padding:1.5rem}.viz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.viz-title{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.viz-badges{display:flex;gap:.5rem}.viz-badge{padding:.25rem .75rem;background:var(--accent-primary);color:white;border-radius:1rem;font-size:.75rem;font-weight:600;font-family:JetBrains Mono,monospace;white-space:nowrap;flex-shrink:0}.viz-badge.secondary{background:var(--accent-secondary)}.viz-toolbar{gap:.75rem;margin-bottom:1rem;padding:.625rem 1rem;background:var(--bg-card);border-radius:.75rem;border:1px solid var(--border-color);flex-wrap:wrap}.toolbar-group,.viz-toolbar{display:flex;align-items:center}.toolbar-group{gap:.5rem}.toolbar-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:.5rem;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.toolbar-btn:hover:not(:disabled){background:var(--border-color);color:var(--text-primary)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn.primary{background:var(--accent-primary);color:white}.toolbar-btn.primary:hover:not(:disabled){background:var(--accent-secondary)}.toolbar-btn.danger{background:#ef4444;color:white}.toolbar-btn.danger:hover:not(:disabled){background:#dc2626}.toolbar-divider{width:1px;height:24px;background:var(--border-color)}.toolbar-spacer{flex:1}.toolbar-step{font-size:.875rem;font-weight:500;color:var(--text-secondary);font-family:JetBrains Mono,monospace;min-width:80px;text-align:center}.toolbar-label{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.toolbar-slider{display:flex;align-items:center;gap:.5rem}.slider-label{font-size:.75rem;color:var(--text-muted)}.slider-value{font-size:.75rem;font-weight:600;color:var(--text-secondary);min-width:20px}.speed-group{display:flex;align-items:center;gap:.75rem}.speed-slider{width:120px;height:8px;-webkit-appearance:none;background:linear-gradient(to right,var(--accent-primary) 0,var(--accent-primary) var(--value,50%),rgba(128,128,128,.3) var(--value,50%),rgba(128,128,128,.3) 100%);border-radius:4px;outline:none;border:1px solid rgba(128,128,128,.4)}.speed-slider.large{width:180px}.speed-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-primary);cursor:pointer}.speed-display{font-size:.8125rem;font-weight:600;color:var(--accent-primary);font-family:JetBrains Mono,monospace;min-width:70px;text-align:right}.viz-canvas{flex:1;justify-content:center;min-height:500px;background:rgba(0,0,0,.2);border-radius:.75rem;border:1px solid var(--border-color)}.viz-canvas,.viz-status{display:flex;align-items:center}.viz-status{margin-top:1rem;padding:.75rem 1rem;background:var(--bg-card);border-radius:.5rem;border:1px solid var(--border-color);justify-content:space-between;flex-wrap:wrap;gap:.5rem}.status-message{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem;flex:1}.viz-status-control{display:flex;align-items:center;gap:.75rem}.viz-status-control .status-label{font-size:.75rem;color:var(--text-muted)}.viz-status-control input[type=range]{width:100px;height:6px;-webkit-appearance:none;background:linear-gradient(to right,var(--accent-primary) 0,var(--accent-primary) var(--value,50%),rgba(128,128,128,.3) var(--value,50%),rgba(128,128,128,.3) 100%);border-radius:3px;outline:none;border:1px solid rgba(128,128,128,.4)}.viz-status-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid white}.viz-status-control .status-value{font-size:.875rem;font-weight:600;color:var(--text-secondary);min-width:20px}.array-size-control{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--text-secondary)}.array-size-control label{font-weight:500;min-width:80px}.array-size-control input[type=range]{width:120px;height:10px;-webkit-appearance:none;background:linear-gradient(to right,var(--accent-primary) 0,var(--accent-primary) var(--value,50%),rgba(128,128,128,.3) var(--value,50%),rgba(128,128,128,.3) 100%);border-radius:5px;outline:none;border:1px solid rgba(128,128,128,.4);box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.array-size-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:linear-gradient(145deg,var(--accent-primary),#0056b3);cursor:pointer;border:2px solid white;box-shadow:0 3px 8px rgba(0,0,0,.4),0 0 0 2px rgba(255,255,255,.8);-webkit-transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease}.array-size-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 4px 12px rgba(0,0,0,.5),0 0 0 3px rgba(255,255,255,.9)}.array-size-control input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:linear-gradient(145deg,var(--accent-primary),#0056b3);cursor:pointer;border:2px solid white;box-shadow:0 3px 8px rgba(0,0,0,.4),0 0 0 2px rgba(255,255,255,.8)}.array-size-control input[type=range]:disabled{opacity:.6;cursor:not-allowed;background:rgba(128,128,128,.2)}.array-size-control input[type=range]:disabled::-webkit-slider-thumb{cursor:not-allowed;background:linear-gradient(145deg,#999,#666);box-shadow:0 2px 6px rgba(0,0,0,.3),0 0 0 2px rgba(255,255,255,.6)}.array-size-control input[type=range]:disabled::-moz-range-thumb{background:linear-gradient(145deg,#999,#666);box-shadow:0 2px 6px rgba(0,0,0,.3),0 0 0 2px rgba(255,255,255,.6)}.size-hint{font-size:.75rem;color:var(--text-muted)}.playground-controls{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;background:var(--bg-card);border-left:1px solid var(--border-color);overflow-y:auto;max-height:700px}.panel-section{padding:1rem;background:var(--bg-secondary);border-radius:.75rem;border:1px solid var(--border-color)}.section-title{gap:.5rem;font-size:.875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.algo-select-section{padding:1rem;background:var(--bg-secondary);border-radius:.75rem;border:1px solid var(--border-color)}.algo-select-section .section-title{margin-bottom:.75rem}.algo-select-section .algo-select{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--bg-card);color:var(--text-primary);margin-bottom:.75rem;cursor:pointer}.algo-select-section .algo-select:disabled{opacity:.6;cursor:not-allowed}.algo-select-section .algo-description{font-size:.8rem;color:var(--text-secondary);line-height:1.5;margin-bottom:.75rem}.algo-select-section .algo-complexity-inline{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted);font-family:JetBrains Mono,monospace}.algo-select{width:100%;padding:.75rem 1rem;border-radius:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);font-size:.875rem;cursor:pointer;margin-bottom:.75rem}.algo-select:focus{outline:none;border-color:var(--accent-primary)}.algo-info{margin-top:.75rem}.algo-description{color:var(--text-secondary);font-size:.8rem;line-height:1.5;margin-bottom:.75rem}.algo-complexity{display:flex;gap:.5rem;flex-wrap:wrap}.complexity-badge{padding:.25rem .5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.25rem;font-size:.7rem;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.control-buttons{display:flex;gap:.5rem;margin-bottom:1rem}.control-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border-radius:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;flex:1}.control-btn:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:white}.control-btn.primary:hover:not(:disabled){background:var(--accent-secondary)}.control-btn.danger{background:#ef4444;border-color:#ef4444;color:white}.control-btn.secondary{width:100%;margin-top:.5rem}.step-controls{gap:1rem;padding:.75rem;background:var(--bg-primary);border-radius:.5rem;margin-bottom:.75rem}.step-btn,.step-controls{display:flex;align-items:center;justify-content:center}.step-btn{width:36px;height:36px;border-radius:.375rem;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all .2s}.step-btn:hover:not(:disabled){background:var(--accent-primary);border-color:var(--accent-primary);color:white}.step-btn:disabled{opacity:.3;cursor:not-allowed}.step-info{font-size:.875rem;color:var(--text-secondary);font-family:JetBrains Mono,monospace;min-width:100px;text-align:center}.speed-control{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.speed-control input[type=range]{flex:1;height:10px;-webkit-appearance:none;background:linear-gradient(to right,var(--accent-primary) 0,var(--accent-primary) var(--value,50%),rgba(128,128,128,.3) var(--value,50%),rgba(128,128,128,.3) 100%);border-radius:5px;outline:none;border:1px solid rgba(128,128,128,.4);box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.speed-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:linear-gradient(145deg,var(--accent-primary),#0056b3);cursor:pointer;border:2px solid white;box-shadow:0 3px 8px rgba(0,0,0,.4),0 0 0 2px rgba(255,255,255,.8);-webkit-transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease}.speed-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 4px 12px rgba(0,0,0,.5),0 0 0 3px rgba(255,255,255,.9)}.speed-control input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:linear-gradient(145deg,var(--accent-primary),#0056b3);cursor:pointer;border:2px solid white;box-shadow:0 3px 8px rgba(0,0,0,.4),0 0 0 2px rgba(255,255,255,.8)}.speed-label{font-size:.75rem;color:var(--text-muted)}.speed-value{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.speed-hint{font-size:.75rem;color:var(--text-muted)}.review-hint{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;margin-bottom:.75rem;background:rgba(59,130,246,.1);border:1px solid var(--accent-primary);border-radius:.375rem;color:var(--accent-primary);font-size:.8rem}.step-controls.review-mode{background:rgba(59,130,246,.1);border:1px solid var(--accent-primary)}.step-controls.review-mode .step-info{color:var(--accent-primary);font-weight:600}.code-panel{background:var(--bg-primary);border-radius:.5rem;border:1px solid var(--border-color);overflow:hidden}.code-header{padding:.5rem .75rem}.code-title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.code-language{font-size:.7rem;color:var(--text-secondary);padding:.125rem .375rem;background:var(--bg-primary);border-radius:.25rem}.code-content{max-height:300px;overflow-y:auto;font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem;line-height:1.6}.code-line{display:flex;padding:.25rem 0;transition:background-color .2s;position:relative}.code-line.active{background-color:var(--code-active-bg)}.line-number{width:40px;text-align:right;padding-right:1rem;color:var(--text-muted);font-size:.75rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.line-number.active{color:var(--accent-primary);font-weight:600}.line-content{flex:1;color:var(--text-primary);white-space:pre}.active-indicator{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-primary)}.syntax-keyword{color:var(--code-keyword)}.syntax-string{color:var(--code-string)}.syntax-comment{color:var(--code-comment);font-style:italic}.syntax-function{color:var(--code-function)}.syntax-number{color:var(--code-number)}.array-visualizer{display:flex;flex-direction:column;align-items:center}.array-visualizer svg{max-width:100%}.array-stats{display:flex;gap:2rem;margin-top:1rem;padding:.75rem 1.5rem;background:var(--bg-card);border-radius:.5rem}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.stat-value{font-size:1.1rem;font-weight:700;color:var(--text-primary);font-family:JetBrains Mono,monospace}.graph-visualizer{display:flex;flex-direction:column;align-items:center}.graph-visualizer svg{max-width:100%}.graph-stats{display:flex;gap:1.5rem;margin-top:1rem;padding:.75rem 1.5rem;background:var(--bg-card);border-radius:.5rem}.graph-stats .stat-value.phase{color:var(--accent-primary)}.graph-stats .stat-divider{width:1px;background:var(--border-color);margin:0 .5rem}.graph-stats .stat-legend{display:flex;gap:1rem;align-items:center}.graph-stats .stat-legend .legend-item{display:flex;align-items:center;gap:.375rem}.graph-stats .stat-legend .legend-dot{width:10px;height:10px;border-radius:50%}.graph-stats .stat-legend .legend-label{font-size:.75rem;color:var(--text-secondary)}.legend-panel{padding:1rem;background:var(--bg-secondary);border-radius:.5rem;border:1px solid var(--border-color)}.legend-title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:.75rem}.legend-items{display:flex;flex-wrap:wrap;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary)}.legend-color{width:16px;height:16px;border-radius:4px}.legend-indicator{width:12px;height:12px;border-radius:50%}.legend-line{width:20px;height:3px;border-radius:2px}.viz-header-actions{display:flex;align-items:center;gap:.75rem}.viz-action-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border-radius:.5rem;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s}.viz-action-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:white}.modal-overlay{inset:0;backdrop-filter:blur(4px);z-index:1000}.modal-content{border-radius:1rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.code-modal{width:800px;height:600px}.chart-modal,.code-modal{max-width:95vw;max-height:90vh}.chart-modal{width:600px}.modal-header{background:var(--bg-secondary)}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:.375rem;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .2s}.modal-close:hover{background:rgba(239,68,68,.1);color:#ef4444}.language-tabs{display:flex;gap:.25rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);overflow-x:auto;flex-wrap:nowrap}.lang-tab{padding:.5rem 1rem;border-radius:.375rem;background:transparent;border:none;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s;white-space:nowrap}.lang-tab:hover{background:var(--bg-secondary);color:var(--text-primary)}.lang-tab.active{background:var(--accent-primary);color:white}.code-display{flex:1;overflow:hidden;display:flex;flex-direction:column}.code-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.code-lang{font-size:.875rem;font-weight:600;text-transform:uppercase}.code-lang,.copy-btn{color:var(--text-secondary)}.copy-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:.375rem;background:var(--bg-card);border:1px solid var(--border-color);font-size:.8rem;cursor:pointer;transition:all .2s}.copy-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:white}.code-block-wrapper{flex:1;overflow:auto;background:var(--bg-primary)}.code-block{margin:0;padding:1rem 1.25rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.85rem;line-height:1.8;color:var(--text-primary)}.code-line{white-space:pre;min-height:1.5em}.code-keyword{color:#c678dd;font-weight:600}.code-number{color:#d19a66}.code-string{color:#98c379}.code-comment{color:#5c6370;font-style:italic}.code-function{color:#61afef}.algo-comment-section{max-width:1200px;margin:2rem auto;padding:0 1.5rem}.complexity-info{display:flex;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.complexity-badge-large{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border-radius:.5rem;flex:1}.complexity-badge-large.time{background:rgba(59,130,246,.1);border:1px solid #3b82f6}.complexity-badge-large.space{background:rgba(16,185,129,.1);border:1px solid #10b981}.badge-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.badge-value{font-size:1.1rem;font-weight:700;color:var(--text-primary);font-family:JetBrains Mono,monospace}.charts-container{padding:1.25rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.chart-container{display:flex;flex-direction:column;gap:.75rem}.chart-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0}.complexity-chart{width:100%;height:auto;border-radius:.5rem;background:var(--bg-secondary)}.chart-legend{display:flex;justify-content:center;gap:1.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.chart-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.chart-legend .legend-dot{width:12px;height:12px;border-radius:50%}.chart-legend .legend-line{width:20px;height:3px;border-radius:2px}.chart-header{align-items:center;justify-content:space-between}.chart-header,.chart-labels{display:flex;margin-bottom:.5rem}.chart-labels{gap:1rem;font-size:.8rem}.label-best{color:#10b981;font-weight:500}.label-average{color:#3b82f6;font-weight:600}.label-worst{color:#ef4444;font-weight:500}.complexity-tooltip-wrapper{position:relative;display:inline-flex}.complexity-info-icon{color:var(--text-muted);cursor:help;transition:color .2s}.complexity-info-icon:hover{color:var(--accent-primary)}.complexity-tooltip{position:absolute;top:100%;right:0;margin-top:.5rem;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 10px 25px -5px rgba(0,0,0,.2);z-index:100;min-width:150px;font-size:.875rem}.complexity-tooltip:before{content:"";position:absolute;top:-6px;right:4px;width:10px;height:10px;background:var(--bg-card);border-left:1px solid var(--border-color);border-top:1px solid var(--border-color);transform:rotate(45deg)}.tooltip-row{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0}.tooltip-row:not(:last-child){border-bottom:1px solid var(--border-color)}.tooltip-best{color:#10b981;font-weight:500}.tooltip-average{color:#3b82f6;font-weight:600}.tooltip-worst{color:#ef4444;font-weight:500}.complexity-tooltip-detailed{min-width:280px;padding:1rem}.complexity-tooltip-detailed .tooltip-section{margin-bottom:.75rem}.complexity-tooltip-detailed .tooltip-section:last-child{margin-bottom:0}.complexity-tooltip-detailed .tooltip-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem;font-size:.9rem}.complexity-tooltip-detailed .tooltip-desc{color:var(--text-secondary);font-size:.8rem;line-height:1.5}@media (max-width:1400px){.fullscreen-main{grid-template-columns:250px 1fr 250px}}@media (max-width:1200px){.algo-playground{grid-template-columns:1fr}.playground-controls{border-left:none;border-top:1px solid var(--border-color);max-height:none}.fullscreen-main{grid-template-columns:1fr;grid-template-rows:200px 1fr 200px}}@media (max-width:768px){.algo-page{padding:5rem 1rem 1.5rem}.algo-title{font-size:1.75rem}.algo-categories{flex-direction:column;align-items:stretch}.algo-category-btn{flex-direction:row;justify-content:flex-start;gap:.75rem}.viz-header{flex-direction:column;gap:.75rem;align-items:flex-start}.fullscreen-main{grid-template-columns:1fr;grid-template-rows:150px 1fr 150px;gap:.5rem;padding:.5rem}.fullscreen-controls{flex-wrap:wrap;gap:.5rem;padding:.5rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.modal-content{background:var(--bg-card);border-radius:.75rem;border:1px solid var(--border-color);min-width:400px;max-width:500px;width:100%;box-shadow:0 20px 40px rgba(0,0,0,.3)}.modal-content.import-modal{min-width:450px}.modal-header{justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.modal-header,.modal-title{display:flex;align-items:center}.modal-title{gap:.5rem;font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:.375rem;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.modal-close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:1.25rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--border-color)}.import-hint{font-size:.8125rem;color:var(--text-secondary);margin:0 0 .5rem}.import-hint code{background:var(--bg-secondary);padding:.125rem .375rem;border-radius:.25rem;font-size:.75rem;color:var(--accent-primary)}.import-hint code,.import-input{font-family:JetBrains Mono,monospace}.import-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;resize:vertical;margin-top:.75rem;box-sizing:border-box}.import-input:focus{outline:none;border-color:var(--accent-primary)}.import-error{display:flex;align-items:center;gap:.375rem;margin-top:.75rem;padding:.625rem .875rem;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:.375rem;color:#ef4444;font-size:.8125rem}.graph-import-modal{min-width:500px;max-width:600px}.graph-import-modal .import-hint{font-size:.8125rem;color:var(--text-secondary);margin:0 0 .5rem;line-height:1.5}.graph-import-modal .import-hint code{background:var(--bg-secondary);padding:.125rem .375rem;border-radius:.25rem;font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--accent-primary)}.toolbar-select{border:1px solid var(--border-color);border-radius:.375rem;background:var(--bg-secondary);color:var(--text-primary);font-size:.8125rem;cursor:pointer;min-width:100px;height:32px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding:.375rem 1.75rem .375rem .75rem}.toolbar-select:disabled{opacity:.6;cursor:not-allowed}.toolbar-select option{background:var(--bg-card);color:var(--text-primary)}.memory-visualizer{padding:1rem;background:var(--bg-secondary,#f8fafc);border-radius:.75rem;border:1px solid var(--border-color,#e2e8f0);max-height:400px;overflow-y:auto}.memory-visualizer.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted,#94a3b8)}.memory-header{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.875rem;color:var(--text-primary,#1e293b);padding-bottom:.5rem;border-bottom:1px solid var(--border-color,#e2e8f0)}.memory-array-section,.memory-header{margin-bottom:1rem}.array-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary,#64748b);margin-bottom:.5rem}.array-header .array-name{font-weight:600;color:var(--text-primary,#1e293b)}.memory-array-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:.25rem}.memory-array-cell{background:var(--bg-card,white);border:1px solid var(--border-color,#e2e8f0);border-radius:.375rem;padding:.375rem;text-align:center;font-size:.75rem;transition:all .2s ease}.memory-array-cell.highlighted{background:var(--accent-primary,#3b82f6);color:white;border-color:var(--accent-primary,#3b82f6);transform:scale(1.05)}.cell-index{font-size:.625rem;color:var(--text-muted,#94a3b8);margin-bottom:.125rem}.cell-value{font-weight:600;font-size:.875rem}.memory-variables-section{margin-top:1rem}.section-title{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;color:var(--text-secondary,#64748b);margin-bottom:.5rem}.variables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem}.memory-variable{background:var(--bg-card,white);border:1px solid var(--border-color,#e2e8f0);border-radius:.5rem;padding:.5rem;text-align:center;transition:all .2s ease}.memory-variable.highlighted{border-color:var(--accent-primary,#3b82f6);box-shadow:0 0 0 2px rgba(59,130,246,.2)}.variable-name{font-size:.75rem;font-weight:600;margin-bottom:.25rem}.variable-value{font-size:.875rem;font-weight:700;color:var(--text-primary,#1e293b);margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.variable-type{font-size:.625rem;color:var(--text-muted,#94a3b8);text-transform:uppercase}