@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-base:#0a0b0f;--bg-surface:#111318;--bg-panel:#161820;--bg-card:#1c1f28;--bg-hover:#22263a;--accent-primary:#6c63ff;--accent-secondary:#00d4ff;--accent-green:#00f5a0;--accent-orange:#ff9f43;--accent-pink:#ff6b9d;--accent-red:#ff4757;--text-primary:#f0f0ff;--text-secondary:#a0a3b8;--text-muted:#5a5f7a;--text-code:#c9d1d9;--border:#2a2d3e;--border-accent:#6c63ff44;--glow-primary:0 0 20px #6c63ff44, 0 0 40px #6c63ff22;--glow-green:0 0 20px #00f5a044;--glow-cyan:0 0 20px #00d4ff44;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.app-layout{grid-template:"header header header"56px"sidebar canvas log"1fr/380px 1fr 280px;gap:0;height:100vh;display:grid}.app-header{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:10;grid-area:header;align-items:center;gap:16px;padding:0 24px;display:flex}.app-logo{letter-spacing:-.5px;background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:10px;font-size:1.1rem;font-weight:800;display:flex}.app-logo svg{flex-shrink:0}.header-divider{background:var(--border);width:1px;height:28px}.algo-selector{flex:1;align-items:center;gap:8px;display:flex}.algo-selector label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:.78rem;font-weight:600}.algo-select{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--transition-fast);outline:none;padding:6px 12px;font-family:inherit;font-size:.85rem}.algo-select:hover,.algo-select:focus{border-color:var(--accent-primary)}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:.83rem;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), #8b5cf6);color:#fff;box-shadow:0 0 0 0 var(--accent-primary)}.btn-primary:hover{box-shadow:var(--glow-primary);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent-primary)}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;grid-area:sidebar;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.sidebar-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-size:.78rem;font-weight:700}.editor-wrap{flex:1;position:relative;overflow:hidden}.playback-bar{border-top:1px solid var(--border);background:var(--bg-panel);flex-shrink:0;padding:12px 16px}.playback-controls{justify-content:center;align-items:center;gap:8px;margin-bottom:10px;display:flex}.play-btn{cursor:pointer;width:38px;height:38px;transition:all var(--transition-fast);background:linear-gradient(135deg, var(--accent-primary), #8b5cf6);color:#fff;box-shadow:var(--glow-primary);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.play-btn:hover{transform:scale(1.1)}.play-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.step-btn{border:1px solid var(--border);cursor:pointer;background:var(--bg-card);width:32px;height:32px;color:var(--text-secondary);transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.step-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.step-btn:disabled{opacity:.35;cursor:not-allowed}.progress-row{color:var(--text-muted);align-items:center;gap:10px;font-size:.75rem;display:flex}.progress-track{background:var(--border);cursor:pointer;border-radius:99px;flex:1;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));height:100%;transition:width var(--transition-fast);border-radius:99px}.speed-row{color:var(--text-muted);align-items:center;gap:8px;margin-top:8px;font-size:.72rem;display:flex}.speed-slider{accent-color:var(--accent-primary);cursor:pointer;flex:1}.canvas-area{background:var(--bg-base);flex-direction:column;grid-area:canvas;display:flex;position:relative;overflow:hidden}.canvas-header{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;align-items:center;gap:12px;padding:12px 20px;display:flex}.viz-type-badge{text-transform:uppercase;letter-spacing:1px;border:1px solid;border-radius:99px;padding:3px 10px;font-size:.72rem;font-weight:700}.badge-array{color:var(--accent-green);border-color:var(--accent-green);background:#00f5a011}.badge-graph{color:var(--accent-secondary);border-color:var(--accent-secondary);background:#00d4ff11}.badge-tree{color:var(--accent-orange);border-color:var(--accent-orange);background:#ff9f4311}.badge-matrix{color:var(--accent-pink);border-color:var(--accent-pink);background:#ff6b9d11}.step-description{color:var(--text-secondary);flex:1;font-size:.82rem}.step-description strong{color:var(--text-primary)}.canvas-body{flex:1;justify-content:center;align-items:center;padding:32px;display:flex;position:relative;overflow:auto}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.empty-state svg{opacity:.3}.empty-state h3{color:var(--text-secondary);font-size:1rem;font-weight:600}.empty-state p{max-width:320px;font-size:.83rem;line-height:1.6}.arr-viz-root{flex-direction:column;gap:32px;width:100%;max-width:900px;padding:8px 0;display:flex}.arr-row-wrap{flex-direction:column;gap:0;width:100%;display:flex}.arr-annotation{white-space:nowrap;border-radius:99px;align-self:flex-start;align-items:center;margin-bottom:6px;margin-left:80px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;display:inline-flex}.arr-annotation--swap{color:#ff9f43;background:#ff9f4318;border:1px solid #ff9f4355}.arr-annotation--mod{color:#6c63ff;background:#6c63ff18;border:1px solid #6c63ff55}.arr-pointer-row{align-items:flex-end;gap:0;min-height:32px;display:flex}.arr-cell-slot{flex-shrink:0;justify-content:center;align-items:flex-end;width:56px;min-height:28px;display:flex}.arr-pointer-wrap{flex-direction:column;align-items:center;gap:1px;display:flex}.arr-pointer-label{letter-spacing:.5px;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:800}.arr-name-label{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;align-items:center;min-width:72px;padding-right:8px;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700;display:flex}.arr-name-label-spacer{flex-shrink:0;min-width:72px}.arr-cell-row{align-items:stretch;display:flex}.arr-cell{border:2px solid var(--border);cursor:default;border-left-width:0;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:2px;width:56px;height:52px;font-family:JetBrains Mono,monospace;transition:background .2s,border-color .2s,box-shadow .2s,color .2s;display:flex;position:relative}.arr-cell:first-of-type{border-left-width:2px}.arr-cell--active{z-index:1;animation:.3s cubic-bezier(.34,1.56,.64,1) both cellPop}@keyframes cellPop{0%{transform:scaleY(.88)}to{transform:scaleY(1)}}.arr-cell-val{font-size:1rem;font-weight:700;line-height:1}.arr-cell-old{color:var(--text-muted);font-size:.6rem;line-height:1;text-decoration:line-through}.arr-index-row{align-items:center;margin-top:4px;display:flex}.arr-index-label{text-align:center;width:56px;color:var(--text-muted);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:.65rem}.arr-barchart-wrap{width:100%}.arr-barchart-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.arr-barchart{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);align-items:flex-end;gap:5px;height:160px;padding:10px 12px;display:flex}.arr-bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;height:100%;display:flex}.arr-bar{border-radius:3px 3px 0 0;width:100%;min-height:4px;transition:height .3s cubic-bezier(.4,0,.2,1),background .2s}.arr-bar-val{font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:600}.arr-bar-idx{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.58rem}.array-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.array-bars{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);align-items:flex-end;gap:6px;height:200px;padding:12px;display:flex}.array-bar-wrap{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.array-bar{border-radius:4px 4px 0 0;width:100%;min-height:4px;transition:height .3s cubic-bezier(.4,0,.2,1),background .2s}.array-bar.highlighted{box-shadow:0 0 12px}.bar-label{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600}.bar-idx{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.62rem}.array-boxes{flex-wrap:wrap;align-items:stretch;gap:4px;display:flex}.array-box{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:4px;min-width:52px;padding:10px 8px;font-family:JetBrains Mono,monospace;transition:all .2s;display:flex}.array-box.highlighted{border-color:var(--accent-primary);background:#6c63ff18;box-shadow:0 0 12px #6c63ff44}.array-box.swapped{border-color:var(--accent-orange);background:#ff9f4318;box-shadow:0 0 12px #ff9f4344}.box-val{font-size:.95rem;font-weight:700}.box-idx{color:var(--text-muted);font-size:.6rem}.graph-viz,.graph-viz svg{width:100%;height:100%}.node-circle{cursor:pointer;transition:r .2s}.node-label{fill:var(--text-primary);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.graph-edge{stroke:var(--border);stroke-width:2px;transition:stroke .3s,stroke-width .3s}.graph-edge.active{stroke:var(--accent-secondary);stroke-width:3px;filter:drop-shadow(0 0 6px var(--accent-secondary))}.tree-viz{width:100%;height:100%}.tree-link{fill:none;stroke:var(--border);stroke-width:2px;transition:stroke .3s}.tree-link.active{stroke:var(--accent-orange);stroke-width:3px}.tree-node circle{r:22;stroke-width:2px;transition:fill .3s,stroke .3s}.tree-node text{fill:var(--text-primary);text-anchor:middle;dominant-baseline:central;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.log-panel{background:var(--bg-surface);border-left:1px solid var(--border);flex-direction:column;grid-area:log;height:100%;display:flex;overflow:hidden}.log-header{border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);flex-shrink:0;padding:12px 16px;font-size:.78rem;font-weight:700}.log-section{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.log-section--steps{border-bottom:2px solid var(--border);flex:50%}.log-section--vars{flex:50%}.log-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0;align-items:center;gap:8px;padding:7px 12px;font-size:.68rem;font-weight:700;display:flex}.log-list{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow-y:auto}.log-section-content{flex:1;padding:8px;overflow-y:auto}.log-item{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border-left:3px solid #0000;padding:8px 12px;font-size:.78rem;line-height:1.5}.log-item:hover{background:var(--bg-hover)}.log-item.active{border-left-color:var(--accent-primary);background:#6c63ff18}.log-item-line{color:var(--text-muted);margin-bottom:2px;font-family:JetBrains Mono,monospace;font-size:.7rem}.log-item-desc{color:var(--text-secondary)}.log-item.active .log-item-desc{color:var(--text-primary)}.vars-panel{border-top:1px solid var(--border);flex-shrink:0;max-height:180px;padding:10px;overflow-y:auto}.vars-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.var-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:5px 0;font-family:JetBrains Mono,monospace;font-size:.77rem;display:flex}.var-row:last-child{border-bottom:none}.var-name{color:var(--accent-primary);flex-shrink:0;font-weight:600}.var-eq{color:var(--text-muted)}.var-val{color:var(--accent-green);word-break:break-all}.stdout-badge{background:var(--accent-green);color:#000;text-transform:uppercase;letter-spacing:.5px;border-radius:99px;padding:1px 6px;font-size:.6rem;font-weight:800}.stdout-panel{border-radius:var(--radius-sm);background:#0a0f0a;border:1px solid #00f5a033;margin-bottom:8px;overflow:hidden}.stdout-label{color:var(--accent-green);letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid #00f5a022;padding:4px 10px;font-size:.65rem;font-weight:700}.stdout-output{color:#00f5a0cc;white-space:pre-wrap;word-break:break-all;max-height:80px;margin:0;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-y:auto}.canvas-stdout-panel{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:5;background:#070c07ee;border:1px solid #00f5a044;width:max-content;min-width:320px;max-width:700px;max-height:160px;animation:.3s both slideUpFade;position:absolute;bottom:12px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 32px #00f5a026,0 2px 8px #00000080}@keyframes slideUpFade{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.canvas-stdout-header{color:var(--accent-green);letter-spacing:.3px;border-bottom:1px solid #00f5a022;align-items:center;gap:8px;padding:6px 14px;font-size:.72rem;font-weight:700;display:flex}.canvas-stdout-icon{font-size:.9rem}.canvas-stdout-lang{letter-spacing:.5px;background:#00f5a022;border:1px solid #00f5a044;border-radius:99px;margin-left:auto;padding:1px 7px;font-size:.62rem;font-weight:800}.canvas-stdout-body{color:#00f5a0cc;white-space:pre-wrap;word-break:break-all;max-height:110px;margin:0;padding:10px 14px;font-family:JetBrains Mono,monospace;font-size:.82rem;overflow-y:auto}.btn-run-test{color:#000;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:linear-gradient(135deg,#00f5a0,#00d4ff);border:none;flex-shrink:0;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:.83rem;font-weight:700;display:inline-flex}.btn-run-test:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 20px #00f5a044,0 0 40px #00d4ff22}.btn-run-test:active{transform:translateY(0)}.btn-run-test:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.loading-overlay{background:var(--bg-base);z-index:20;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.spinner{border:3px solid var(--border);border-top-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{border-radius:var(--radius-md);color:var(--accent-red);white-space:pre-wrap;background:#ff475718;border:1px solid #ff475744;max-height:200px;margin:16px;padding:12px 16px;font-family:JetBrains Mono,monospace;font-size:.82rem;overflow-y:auto}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--accent-primary)}50%{box-shadow:0 0 0 6px #6c63ff22}}.pulse{animation:1.5s ease-in-out infinite pulse-glow}.algo-selector{flex:unset}.lang-selector{flex:1;align-items:center;gap:8px;display:flex}.lang-selector label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;align-items:center;font-size:.78rem;font-weight:600;display:flex}.lang-tabs{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:3px;display:flex}.lang-tab{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:.78rem;font-weight:600;position:relative}.lang-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.lang-tab--active{background:var(--accent-primary);color:#fff;box-shadow:0 0 10px #6c63ff55}.lang-trace-dot{background:var(--accent-green);vertical-align:middle;border-radius:50%;width:5px;height:5px;margin-left:5px;display:inline-block}.lang-readonly-badge{color:var(--accent-orange);white-space:nowrap;background:#ff9f4318;border:1px solid #ff9f4344;border-radius:99px;padding:2px 8px;font-size:.68rem}.lib-python-badge{color:var(--accent-green);white-space:nowrap;letter-spacing:.3px;background:#00f5a018;border:1px solid #00f5a044;border-radius:99px;align-items:center;padding:3px 12px;font-size:.72rem;font-weight:700;display:inline-flex}.algo-select optgroup{background:var(--bg-surface);color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:700}.algo-select option{background:var(--bg-card);color:var(--text-primary);padding:4px;font-size:.85rem}.ds-viz-container{align-items:flex-start;gap:24px;width:100%;height:100%;padding:16px;display:flex;overflow:auto}.ds-side-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-shrink:0;min-width:180px;padding:14px}.ds-side-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:10px;font-size:.7rem;font-weight:700}.ds-var-row{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:4px 0;font-family:JetBrains Mono,monospace;font-size:.78rem;display:flex}.ds-var-row:last-child{border-bottom:none}.ds-var-name{color:var(--accent-primary);font-weight:600}.ds-var-eq{color:var(--text-muted)}.ds-var-val{color:var(--accent-green);word-break:break-all}.stack-scene{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.stack-label-top,.stack-label-bottom{letter-spacing:2px;color:var(--text-muted);text-transform:uppercase;font-size:.68rem;font-weight:700}.stack-column{flex-direction:column;gap:4px;width:260px;min-height:80px;display:flex}.stack-empty{text-align:center;color:var(--text-muted);border:2px dashed var(--border);border-radius:var(--radius-md);padding:32px;font-size:.85rem}.stack-block{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);animation:.25s both slideInStack;animation-delay:var(--delay,0s);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}@keyframes slideInStack{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.stack-block--top{border-color:var(--accent-primary);background:linear-gradient(135deg,#6c63ff22,#8b5cf622);box-shadow:0 0 16px #6c63ff33}.stack-block-val{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700}.stack-block-badge{letter-spacing:1px;color:var(--accent-primary);border:1px solid var(--accent-primary);background:#6c63ff22;border-radius:99px;padding:2px 8px;font-size:.65rem;font-weight:700}.stack-block-idx{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.65rem}.queue-scene{flex-direction:column;flex:1;align-items:center;gap:16px;display:flex}.queue-arrows{justify-content:space-between;width:100%;max-width:700px;padding:0 8px;display:flex}.queue-arrow-label{text-transform:uppercase;letter-spacing:1px;text-align:center;font-size:.72rem;font-weight:700;line-height:1.4}.queue-arrow-label--dequeue{color:var(--accent-secondary)}.queue-arrow-label--enqueue{color:var(--accent-green)}.deque-arrows{justify-content:space-between;width:100%;max-width:700px;padding:0 8px;display:flex}.deque-arrow{color:var(--accent-primary);letter-spacing:.5px;align-items:center;gap:6px;font-size:.7rem;font-weight:700;display:flex}.deque-arrow-sym{font-size:1.1rem}.queue-track{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:stretch;gap:4px;min-width:400px;min-height:80px;padding:16px;display:flex}.queue-empty{color:var(--text-muted);justify-content:center;align-items:center;width:100%;font-size:.85rem;display:flex}.queue-block{background:var(--bg-surface);border:2px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:4px;min-width:56px;padding:12px 10px;animation:.2s both popIn;display:flex;position:relative}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.queue-block--front{border-color:var(--accent-secondary);background:#00d4ff11;box-shadow:0 0 12px #00d4ff33}.queue-block--rear{border-color:var(--accent-green);background:#00f5a011;box-shadow:0 0 12px #00f5a033}.queue-block--deque-end{border-color:var(--accent-primary);background:#6c63ff11;box-shadow:0 0 12px #6c63ff33}.queue-block-val{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:700}.queue-block-badge{letter-spacing:1px;color:var(--accent-secondary);text-transform:uppercase;font-size:.6rem;font-weight:700}.queue-block-badge--rear{color:var(--accent-green)}.queue-size-label{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.72rem}.ll-scene{flex-direction:column;flex:1;align-items:flex-start;gap:16px;display:flex;overflow-x:auto}.ll-svg{overflow:visible}.ll-legend{flex-wrap:wrap;gap:16px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600;display:flex}.ll-empty{color:var(--text-muted);text-align:center;padding:32px;font-size:.85rem}.hashmap-scene{flex-direction:column;flex:1;gap:16px;display:flex}.hashmap-title{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700}.hashmap-empty{color:var(--text-muted);text-align:center;padding:32px;font-size:.85rem}.hashmap-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.hashmap-bucket{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--bucket-color,var(--accent-primary));border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 14px;transition:all .2s;animation:.2s both slideRight;display:flex}@keyframes slideRight{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.hashmap-bucket:hover{background:var(--bg-hover)}.hashmap-bucket-idx{color:var(--text-muted);min-width:20px;font-family:JetBrains Mono,monospace;font-size:.65rem}.hashmap-kv{align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:.82rem;display:flex;overflow:hidden}.hashmap-key{color:var(--bucket-color,var(--accent-primary));white-space:nowrap;font-weight:700}.hashmap-arrow{color:var(--text-muted)}.hashmap-val{color:var(--accent-green);word-break:break-all}.hashmap-overflow{color:var(--text-muted);padding:10px 14px;font-size:.78rem;font-style:italic}.badge-stack{color:#a78bfa;background:#a78bfa11;border-color:#a78bfa}.badge-queue{color:var(--accent-secondary);border-color:var(--accent-secondary);background:#00d4ff11}.badge-deque{color:var(--accent-orange);border-color:var(--accent-orange);background:#ff9f4311}.badge-linked_list{color:var(--accent-pink);border-color:var(--accent-pink);background:#ff6b9d11}.badge-hashmap{color:var(--accent-green);border-color:var(--accent-green);background:#00f5a011}.change-annotation{white-space:nowrap;border:1px solid;border-radius:99px;align-items:center;gap:8px;margin-bottom:8px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600;animation:.3s cubic-bezier(.34,1.56,.64,1) both annotationPop;display:inline-flex}@keyframes annotationPop{0%{opacity:0;transform:scale(.85)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.change-annotation-arrow{flex-shrink:0;font-size:1rem}.change-annotation-label{letter-spacing:.2px}.queue-annotations{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.change-annotation--left{border-radius:99px 6px 6px 99px}.change-annotation--right{border-radius:6px 99px 99px 6px}.ll-annotations{flex-wrap:wrap;gap:8px;display:flex}.stack-block--new{box-shadow:0 0 14px #00f5a033;background:linear-gradient(135deg,#00f5a022,#00d4ff11)!important;border-color:#00f5a0!important}.stack-block--modified{background:linear-gradient(135deg,#00d4ff22,#6c63ff11)!important;border-color:#00d4ff!important}.stack-block--popped{opacity:.55;border-style:dashed;animation:.6s forwards fadeOut}@keyframes fadeOut{to{opacity:0;height:0;margin:0;padding:0}}.stack-block-change-arrow{flex-shrink:0;font-size:1rem;font-weight:700}.queue-block--new{background:#00f5a011!important;border-color:#00f5a0!important;box-shadow:0 0 14px #00f5a033!important}.queue-block--ghost{opacity:.5;border-style:dashed;border-color:#ff9f43!important}.queue-block-change-arrow{font-size:.75rem;font-weight:700}.swap-arrow-container{justify-content:center;margin-bottom:8px;display:flex}.swap-arrow-label{color:#ff9f43;background:#ff9f4318;border:1px solid #ff9f4344;border-radius:99px;align-items:center;gap:6px;padding:5px 14px;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) both annotationPop;display:inline-flex}.hashmap-bucket--inserted{animation:.35s both highlightIn;box-shadow:0 0 14px #00f5a033;border-left-width:4px!important}.hashmap-bucket--updated{box-shadow:0 0 14px #ff9f4333;border-left-width:4px!important}.hashmap-bucket--deleted{opacity:.5;border-style:dashed;border-left-color:#ff4757!important}@keyframes highlightIn{0%{opacity:.4;transform:scaleX(.95)}to{opacity:1;transform:scaleX(1)}}.hashmap-change-badge{white-space:nowrap;border-radius:99px;flex-shrink:0;padding:2px 6px;font-size:.6rem;font-weight:700}.matrix-viz-root{flex-direction:column;align-items:flex-start;gap:16px;width:100%;height:100%;padding:20px 24px;overflow:auto}.matrix-k-banner{border-radius:var(--radius-md);color:var(--text-secondary);background:linear-gradient(90deg,#6c63ff18,#00d4ff0a);border:1px solid #6c63ff44;align-items:center;gap:10px;width:100%;padding:10px 20px;font-size:.85rem;animation:.3s cubic-bezier(.34,1.56,.64,1) both annotationPop;display:flex}.matrix-k-banner strong{color:var(--accent-primary)}.matrix-k-icon{flex-shrink:0;font-size:1.1rem}.matrix-grids-area{flex-wrap:wrap;align-items:flex-start;gap:24px;width:100%;display:flex}.matrix-grid-block{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex-shrink:0;gap:8px;min-width:0;padding:16px;display:flex}.matrix-grid-label{align-items:center;gap:8px;margin-bottom:4px;display:flex}.matrix-name-badge{color:var(--accent-primary);background:#6c63ff18;border:1px solid #6c63ff44;border-radius:6px;padding:2px 10px;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700}.matrix-size-tag{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:.72rem}.matrix-heatmap-tag{color:var(--accent-pink);letter-spacing:.5px;text-transform:uppercase;background:#ff6b9d18;border:1px solid #ff6b9d44;border-radius:99px;padding:2px 8px;font-size:.65rem;font-weight:700}.matrix-annotation-bar{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.matrix-ann{white-space:nowrap;border:1px solid;border-radius:99px;align-items:center;gap:6px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;animation:.25s cubic-bezier(.34,1.56,.64,1) both annotationPop;display:inline-flex}.matrix-ann--active{color:#a78bfa;background:#a78bfa14;border-color:#a78bfa55}.matrix-ann--changed{color:var(--accent-orange);background:#ff9f4314;border-color:#ff9f4355}.matrix-ann-k{color:var(--accent-secondary);margin-left:4px}.matrix-scroll-area{border-radius:var(--radius-md);border:1px solid var(--border);max-width:80vw;max-height:55vh;overflow:auto}.matrix-table{border-collapse:collapse;table-layout:fixed;font-family:JetBrains Mono,monospace}.matrix-corner{background:var(--bg-panel);z-index:3;border-bottom:2px solid var(--border);border-right:2px solid var(--border);width:32px;min-width:32px;height:28px;position:sticky;top:0;left:0}.matrix-col-hdr{text-align:center;width:52px;min-width:52px;height:28px;color:var(--text-muted);background:var(--bg-panel);border-bottom:2px solid var(--border);border-right:1px solid var(--border);z-index:2;padding:0 4px;font-size:.68rem;font-weight:700;transition:color .15s,background .15s;position:sticky;top:0}.matrix-col-hdr--active{color:var(--accent-secondary);border-bottom-color:var(--accent-secondary);background:#00d4ff15}.matrix-row-hdr{text-align:center;width:32px;min-width:32px;color:var(--text-muted);background:var(--bg-panel);border-right:2px solid var(--border);border-bottom:1px solid var(--border);z-index:1;padding:0 4px;font-size:.68rem;font-weight:700;transition:color .15s,background .15s;position:sticky;left:0}.matrix-row-hdr--active{color:var(--accent-secondary);border-right-color:var(--accent-secondary);background:#00d4ff15}.matrix-cell{text-align:center;vertical-align:middle;cursor:default;border-bottom:1px solid #0000;border-right:1px solid #0000;width:52px;min-width:52px;height:52px;padding:0 4px;font-size:.82rem;font-weight:700;transition:background .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.matrix-cell--active{z-index:1;animation:.4s cubic-bezier(.34,1.56,.64,1) both cellActivePulse}.matrix-cell--changed{animation:.45s both cellChanged}@keyframes cellActivePulse{0%{transform:scale(.86)}to{transform:scale(1)}}@keyframes cellChanged{0%{filter:brightness(2)}to{filter:brightness()}}.matrix-cell-val{font-size:.85rem;font-weight:700;line-height:1;display:block}.matrix-cell-old{color:var(--text-muted);margin-bottom:2px;font-size:.58rem;font-weight:500;line-height:1;text-decoration:line-through;display:block}.matrix-changed-dot{background:var(--accent-orange);width:6px;height:6px;box-shadow:0 0 6px var(--accent-orange);border-radius:50%;position:absolute;top:4px;right:4px}.matrix-empty{color:var(--text-muted);text-align:center;width:100%;padding:48px;font-size:.85rem}.matrix-scalar-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-shrink:0;align-self:flex-start;min-width:180px;max-width:260px;padding:14px 16px}.matrix-scalar-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:10px;font-size:.68rem;font-weight:700}.matrix-scalar-row{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:5px 0;font-family:JetBrains Mono,monospace;font-size:.78rem;display:flex}.matrix-scalar-row:last-child{border-bottom:none}.matrix-scalar-row--changed .matrix-scalar-val{color:var(--accent-orange)!important}.matrix-scalar-name{color:var(--accent-primary);flex-shrink:0;font-weight:600}.matrix-scalar-eq{color:var(--text-muted)}.matrix-scalar-val{color:var(--accent-green);word-break:break-all}.matrix-scalar-prev{color:var(--text-muted);margin-right:3px;font-size:.62rem;text-decoration:line-through}.graph-viz{width:100%;height:100%;min-height:400px}.graph-viz svg{width:100%;height:100%;overflow:visible}.tree-viz{width:100%;height:100%;min-height:420px;overflow:auto}.tree-viz svg{width:100%;min-height:420px}.tree-node{animation:.3s cubic-bezier(.34,1.56,.64,1) both treeNodeIn}@keyframes treeNodeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.mode-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:2px;padding:3px;display:flex}.mode-btn{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-family:inherit;font-size:.78rem;font-weight:600;display:inline-flex;position:relative}.mode-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.mode-btn.active{background:linear-gradient(135deg, var(--accent-primary), #8b5cf6);color:#fff;box-shadow:0 0 12px #6c63ff44}.mode-badge-new{letter-spacing:.5px;background:var(--accent-green);color:#000;text-transform:uppercase;border-radius:99px;padding:1px 5px;font-size:.58rem;font-weight:800}.sandbox-header-info{color:var(--text-secondary);flex:1;align-items:center;gap:8px;font-size:.8rem;display:flex}.custom-code-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.sidebar--sandbox{overflow:hidden}.ccp-toolbar{border-bottom:1px solid var(--border);background:var(--bg-panel);flex-direction:column;flex-shrink:0;display:flex}.ccp-lang-row{border-bottom:1px solid var(--border);align-items:center;padding:0 6px;display:flex;overflow-x:auto}.ccp-controls-row{align-items:center;gap:6px;padding:6px 10px;display:flex}.ccp-lang-tab{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;margin-bottom:-2px;padding:5px 10px;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex;position:relative}.ccp-lang-tab:hover{color:var(--text-primary)}.ccp-lang-tab.active{color:var(--text-primary);border-bottom-color:currentColor}.run-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.ccp-ds-select-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:5px;padding:3px 8px;display:flex}.ccp-ds-select{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:.75rem;font-weight:600}.ccp-ds-select option{background:var(--bg-card);color:var(--text-primary)}.ccp-ds-select:focus{color:var(--text-primary)}.ccp-template-wrap{position:relative}.ccp-template-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex}.ccp-template-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.ccp-template-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);z-index:1000;min-width:220px;animation:.15s both dropdownIn;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 12px 40px #00000080}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.ccp-template-header{letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 14px;font-size:.68rem;font-weight:700}.ccp-template-item{text-align:left;cursor:pointer;width:100%;transition:background var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.ccp-template-item:hover{background:var(--bg-hover)}.ccp-tpl-name{color:var(--text-primary);font-size:.82rem;font-weight:500}.ccp-tpl-type{color:var(--accent-primary);white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;background:#6c63ff18;border-radius:99px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:700}.ccp-run-btn{background:linear-gradient(135deg, var(--accent-primary), #8b5cf6);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;align-items:center;gap:5px;padding:6px 14px;font-family:inherit;font-size:.78rem;font-weight:700;display:inline-flex}.ccp-run-btn:hover:not(:disabled){box-shadow:var(--glow-primary);transform:translateY(-1px)}.ccp-run-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.ccp-reset-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ccp-reset-btn:hover{border-color:var(--accent-red);color:var(--accent-red)}.ccp-lang-notice{color:var(--accent-orange);background:#ff9f4312;border-bottom:1px solid #ff9f4333;flex-shrink:0;align-items:flex-start;gap:8px;padding:8px 14px;font-size:.77rem;line-height:1.5;display:flex}.ccp-lang-notice strong{color:var(--text-primary)}.ccp-editor-wrap{flex:1;min-height:0;overflow:hidden}.multi-viz-single{flex-direction:column;width:100%;height:100%;display:flex}.multi-viz-single .multi-panel-body.full{flex:1;min-height:0}.multi-viz-grid{flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:16px;width:100%;height:100%;padding:4px;display:flex;overflow:auto}.multi-panel-card{background:var(--bg-surface);border-radius:var(--radius-md);transition:box-shadow var(--transition-fast);border:1px solid;flex-direction:column;display:flex;overflow:hidden}.multi-panel-card:hover{box-shadow:0 4px 24px #0000004d}.multi-panel-large{flex:400px;min-width:320px;max-width:100%;min-height:300px}.multi-panel-small{flex:240px;min-width:200px;min-height:200px}.multi-panel-label{border-bottom:1px solid;flex-shrink:0;align-items:center;gap:8px;padding:6px 12px;font-size:.72rem;font-weight:700;display:flex}.panel-label-name{font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700}.panel-label-type{letter-spacing:.5px;text-transform:uppercase;opacity:.7;color:#000000b3;background:currentColor;border-radius:99px;margin-left:auto;padding:1px 7px;font-size:.65rem;font-weight:700}.multi-panel-body{flex:1;justify-content:center;align-items:center;min-height:160px;padding:8px;display:flex;overflow:auto}.sandbox-empty{gap:12px;max-width:480px}.sandbox-empty-icon{width:80px;height:80px;color:var(--accent-primary);background:linear-gradient(135deg,#6c63ff18,#00d4ff0a);border:1px solid #6c63ff33;border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.sandbox-tips{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;flex-direction:column;gap:6px;width:100%;margin-top:8px;padding:12px 16px;display:flex}.sandbox-tip{color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:.78rem;line-height:1.5;display:flex}.sandbox-tip span{flex-shrink:0}@media (width<=1024px){html,body,#root{height:auto;min-height:100%;overflow:auto}}@media (width<=1280px){.app-layout{grid-template-columns:340px 1fr 240px}.app-header{gap:10px;padding:0 16px}}@media (width<=1024px){.app-layout{grid-template:"header header""sidebar canvas"1fr/300px 1fr;height:auto;min-height:100vh;display:grid}.log-panel{display:none}.sidebar,.sidebar--sandbox{height:calc(100vh - 56px);position:sticky;top:56px;overflow-y:auto}.canvas-area{min-height:480px}.app-header{flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding:6px 12px}.header-divider{display:none}.sandbox-header-info{flex:1;min-width:0;font-size:.75rem}.mode-btn{padding:4px 8px;font-size:.72rem}.btn-run-test,.btn-primary{padding:6px 12px;font-size:.78rem}}@media (width<=768px){.app-layout{grid-template:"header""sidebar""canvas"1fr/1fr;height:auto;min-height:100vh}.sidebar,.sidebar--sandbox{border-right:none;border-bottom:1px solid var(--border);height:50vh;min-height:300px;position:static}.canvas-area{min-height:60vh}.canvas-body{padding:16px;overflow:auto}.app-header{flex-wrap:wrap;gap:8px;height:auto;min-height:56px;padding:8px 12px}.app-logo{font-size:1rem}.mode-badge-new,.lib-python-badge{display:none}.step-description{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100vw - 160px);font-size:.75rem;overflow:hidden}.algo-selector{width:100%}.algo-select{flex:1;min-width:0}.playback-bar{padding:8px 12px}.play-btn{width:32px;height:32px}.step-btn{width:26px;height:26px}.ccp-controls-row{flex-wrap:wrap;gap:4px}.ccp-ds-select{max-width:110px}.arr-cell{width:44px;height:44px}.arr-cell-slot,.arr-index-label{width:44px}.arr-name-label{min-width:56px;font-size:.72rem}.arr-name-label-spacer{min-width:56px}.arr-cell-val{font-size:.85rem}.stack-column{width:200px}.queue-track{min-width:280px}.matrix-scroll-area{max-width:90vw;max-height:40vh}.hashmap-grid{grid-template-columns:1fr 1fr}.multi-panel-large,.multi-panel-small{flex:100%;min-width:100%}.sandbox-empty{max-width:320px}.sandbox-tips{padding:10px 12px}.sandbox-tip{font-size:.72rem}.canvas-stdout-panel{min-width:240px;max-width:92vw;bottom:8px}}@media (width<=640px){.app-header{gap:6px;padding:6px 10px}.app-logo{gap:6px;font-size:.9rem}.sandbox-header-info,.mode-btn>span:not(.mode-badge-new){display:none}.sidebar,.sidebar--sandbox{height:45vh;min-height:260px;max-height:55vh}.canvas-area{min-height:55vh}.canvas-body{padding:10px}.canvas-header{gap:8px;padding:8px 10px}.step-description{max-width:calc(100vw - 100px);font-size:.72rem}.playback-bar{padding:6px 10px}.playback-controls{gap:5px;margin-bottom:6px}.play-btn{width:30px;height:30px}.step-btn{width:24px;height:24px}.speed-row{font-size:.65rem}.progress-row{font-size:.68rem}.arr-cell{width:36px;height:36px}.arr-cell-slot,.arr-index-label{width:36px}.arr-cell-val{font-size:.78rem}.arr-name-label{min-width:44px;font-size:.68rem}.arr-name-label-spacer{min-width:44px}.arr-annotation{margin-left:44px;font-size:.7rem}.arr-barchart{height:120px}.stack-column{width:180px}.stack-block-val{font-size:.88rem}.queue-track{width:100%;min-width:0}.queue-block{min-width:44px;padding:8px 6px}.queue-block-val{font-size:.82rem}.hashmap-grid{grid-template-columns:1fr}.matrix-scroll-area{max-width:95vw;max-height:35vh}.matrix-cell{width:40px;min-width:40px;height:40px;font-size:.72rem}.matrix-col-hdr{width:40px;min-width:40px}.ccp-controls-row{gap:4px;padding:4px 8px}.ccp-ds-select{max-width:80px;font-size:.7rem}.ccp-template-btn{padding:4px 8px;font-size:.7rem}.ccp-reset-btn{width:26px;height:26px}.ccp-template-dropdown{width:100%;min-width:0;max-height:50vh;left:0;right:0;overflow-y:auto}.multi-viz-grid{gap:10px}.multi-panel-large,.multi-panel-small{flex:100%;min-width:100%;min-height:180px}.graph-viz,.tree-viz,.tree-viz svg{min-height:280px}.ll-scene{overflow-x:auto}.canvas-stdout-panel{min-width:200px;max-width:95vw;bottom:6px}.error-banner{margin:8px;font-size:.75rem}.sandbox-empty{gap:10px;max-width:280px}.sandbox-empty-icon{width:60px;height:60px}.sandbox-empty h3{font-size:.9rem}.sandbox-empty p{font-size:.75rem}.sandbox-tips{gap:4px;padding:8px 10px}.sandbox-tip{font-size:.68rem}.ctrl-flow-panel{font-size:.75rem}.viz-type-badge{padding:2px 7px;font-size:.62rem}.btn,.btn-primary,.btn-run-test,.ccp-run-btn,.step-btn,.play-btn{touch-action:manipulation}.btn,.btn-primary,.btn-run-test,.ccp-run-btn{min-height:36px}.step-btn{min-width:24px;min-height:24px}.play-btn{min-width:30px;min-height:30px}}@media (width<=380px){.app-logo{display:none}.sidebar,.sidebar--sandbox{height:42vh;min-height:240px}.canvas-area{min-height:50vh}.arr-cell{width:30px;height:30px}.arr-cell-slot,.arr-index-label{width:30px}.arr-cell-val{font-size:.7rem}.matrix-cell{width:34px;min-width:34px;height:34px}.matrix-col-hdr{width:34px;min-width:34px}}
