@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary:#0a0e17;--bg-secondary:#111827;--bg-tertiary:#1a2332;--bg-elevated:#1e293b;--bg-glass:#111827bf;--bg-glass-hover:#1e293bd9;--border-subtle:#94a3b814;--border-default:#94a3b826;--border-accent:#6366f166;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-accent:#818cf8;--accent-primary:#6366f1;--accent-primary-hover:#818cf8;--accent-glow:#6366f140;--accent-green:#10b981;--accent-green-glow:#10b98140;--accent-red:#ef4444;--accent-amber:#f59e0b;--accent-cyan:#06b6d4;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px var(--accent-glow);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--sidebar-width:340px;--header-height:56px;--footer-height:48px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}.app-layout{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-header{height:var(--header-height);min-height:var(--header-height);padding:0 var(--space-6);background:var(--bg-glass);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);border-bottom:1px solid var(--border-subtle);z-index:100;justify-content:space-between;align-items:center;display:flex}.app-header__brand{align-items:center;gap:var(--space-3);display:flex}.app-header__logo{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-primary), var(--accent-cyan));color:#fff;width:32px;height:32px;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.app-header__title{letter-spacing:-.01em;background:linear-gradient(135deg, var(--text-primary), var(--text-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:16px;font-weight:600}.app-header__status{align-items:center;gap:var(--space-3);display:flex}.status-badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:12px;font-weight:500;font-family:var(--font-mono);border-radius:20px;display:inline-flex}.status-badge--connected{background:var(--accent-green-glow);color:var(--accent-green);border:1px solid #10b9814d}.status-badge--disconnected{color:var(--accent-red);background:#ef444426;border:1px solid #ef44444d}.status-badge--loading{color:var(--accent-amber);background:#f59e0b26;border:1px solid #f59e0b4d}.status-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.app-main{flex:1;display:flex;position:relative;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-subtle);scrollbar-width:thin;scrollbar-color:var(--bg-elevated) transparent;flex-direction:column;height:100%;display:flex;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.sidebar__section{padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}.sidebar__section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin-bottom:var(--space-3);align-items:center;gap:var(--space-2);font-size:11px;font-weight:600;display:flex}.channel-card{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);transition:all var(--transition-fast)}.channel-card:hover{background:var(--bg-glass-hover);border-color:var(--border-default)}.channel-card--hidden{opacity:.45}.channel-card__header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.channel-card__name{font-size:13px;font-weight:600;font-family:var(--font-mono);align-items:center;gap:var(--space-2);display:flex}.channel-card__marker{letter-spacing:.05em;text-transform:uppercase;color:#a5b4fc;background:#6366f138;border:1px solid #6366f159;border-radius:8px;padding:1px 6px;font-size:9px;font-weight:700}.channel-card__color-dot{border:2px solid #fff3;border-radius:50%;flex-shrink:0;width:10px;height:10px}.channel-card__controls{gap:var(--space-2);flex-direction:column;display:flex}.control-row{align-items:center;gap:var(--space-2);display:flex}.control-row__label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:68px;font-size:11px;font-weight:500}.control-row__input{flex:1;min-width:0}.control-row__value{font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);text-align:right;flex-shrink:0;width:48px}input[type=range]{appearance:none;background:var(--bg-elevated);cursor:pointer;width:100%;height:4px;transition:background var(--transition-fast);border-radius:2px;outline:none}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);border:2px solid var(--bg-primary);width:14px;height:14px;box-shadow:0 0 6px var(--accent-glow);cursor:pointer;transition:all var(--transition-fast);border-radius:50%}input[type=range]::-webkit-slider-thumb:hover{background:var(--accent-primary-hover);transform:scale(1.2)}input[type=range]::-moz-range-thumb{background:var(--accent-primary);border:2px solid var(--bg-primary);width:14px;height:14px;box-shadow:0 0 6px var(--accent-glow);cursor:pointer;border-radius:50%}.toggle{flex-shrink:0;width:36px;height:20px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle__slider{background:var(--bg-elevated);border:1px solid var(--border-default);cursor:pointer;transition:all var(--transition-fast);border-radius:10px;position:absolute;inset:0}.toggle__slider:after{content:"";background:var(--text-tertiary);width:14px;height:14px;transition:all var(--transition-fast);border-radius:50%;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle__slider{background:var(--accent-primary);border-color:var(--accent-primary)}.toggle input:checked+.toggle__slider:after{background:#fff;transform:translate(16px)}.color-input{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;width:28px;height:28px;padding:0}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:2px solid var(--border-default);border-radius:var(--radius-sm)}.viewport-container{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.viewport-canvas-wrap{flex:1;position:relative;overflow:hidden}.viewport-canvas-wrap canvas,.vtk-canvas-container,.vtk-canvas-container canvas{width:100%!important;height:100%!important}.slice-navigator{height:var(--footer-height);min-height:var(--footer-height);align-items:center;gap:var(--space-4);padding:0 var(--space-6);background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);display:flex}.slice-navigator__label{color:var(--text-secondary);white-space:nowrap;font-size:12px;font-weight:500}.slice-navigator__slider{flex:1}.slice-navigator__info{font-size:12px;font-family:var(--font-mono);color:var(--text-accent);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.slice-step-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:3px 7px;font-size:11px}.slice-step-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--accent-primary);border-color:var(--accent-primary)}.slice-step-btn:disabled{opacity:.35;cursor:not-allowed}.slice-label-tag{color:var(--accent-primary);border-radius:var(--radius-sm);background:#50a0ff1f;padding:2px 6px;font-size:11px;font-weight:600}.slice-num-input{background:var(--bg-input);border:1px solid var(--border-default);width:58px;color:var(--text-primary);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);text-align:center;padding:2px 4px}.slice-num-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary);outline:none}.slice-total-text{color:var(--text-tertiary);font-size:11px}.view-mode-toggle{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:2px;display:inline-flex}.view-mode-toggle__btn{padding:var(--space-1) var(--space-4);color:var(--text-tertiary);font-size:12px;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none}.view-mode-toggle__btn--active{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px var(--accent-glow)}.loading-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;background:#0a0e17d9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.loading-spinner{border:3px solid var(--border-default);border-top-color:var(--accent-primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:var(--space-4);color:var(--text-secondary);font-size:14px;font-weight:500}.dataset-info{gap:var(--space-1) var(--space-3);grid-template-columns:auto 1fr;font-size:12px;display:grid}.dataset-info__key{color:var(--text-tertiary);font-weight:500}.dataset-info__val{color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.error-banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:#fca5a5;margin:var(--space-4);background:#ef44441a;border:1px solid #ef44444d;font-size:12px}.empty-state{justify-content:center;align-items:center;gap:var(--space-4);height:100%;color:var(--text-tertiary);flex-direction:column;display:flex}.empty-state__icon{opacity:.3;font-size:64px}.empty-state__title{color:var(--text-secondary);font-size:18px;font-weight:600}.empty-state__desc{text-align:center;max-width:360px;font-size:13px;line-height:1.6}.slice-canvas-container{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.slice-canvas-container canvas{object-fit:contain;max-width:100%;max-height:100%;image-rendering:pixelated}.slice-viewer-toolbar{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172ad9;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:8px;padding:6px 14px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0006}.slice-toolbar-btn{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9999px;padding:5px 12px;font-size:12px;font-weight:500;transition:all .2s}.slice-toolbar-btn:hover{color:#f8fafc;background:#ffffff14}.slice-toolbar-btn.active{color:#60a5fa;background:#3b82f640;border-color:#3b82f680}.slice-toolbar-btn--draw.active{color:#22d3ee;background:#06b6d447;border-color:#06b6d499;box-shadow:0 0 12px #06b6d459}.slice-toolbar-info{color:#64748b;border-left:1px solid #ffffff1a;padding-left:6px;font-family:monospace;font-size:11px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-slow) forwards}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-default)}input[type=range].accent-green::-webkit-slider-thumb{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green-glow)}.number-input{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:60px;color:var(--text-primary);font-size:11px;font-family:var(--font-mono);transition:border-color var(--transition-fast);outline:none;padding:2px 6px}.number-input:focus{border-color:var(--accent-primary)}@media (width<=900px){.sidebar{width:280px;min-width:280px}}.viewport-top-right-actions{top:var(--space-3);right:var(--space-3);z-index:30;align-items:center;gap:var(--space-2);background:var(--bg-glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);pointer-events:auto;padding:6px 10px;display:flex;position:absolute}.viewport-overlay-toolbar{max-width:400px;height:max-content;top:var(--space-3);z-index:30;align-items:center;gap:var(--space-2);background:var(--bg-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);pointer-events:auto;transition:all var(--transition-fast);flex-wrap:wrap;padding:6px 12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.viewport-overlay-toolbar--collapsed{border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px}.viewport-toolbar-expand-btn{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.viewport-toolbar-expand-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.viewport-toolbar-toggle-btn{justify-content:center;align-items:center;min-width:22px;padding:3px 6px;font-size:10px;line-height:1;display:inline-flex;position:absolute;top:6px;right:10px}.viewport-toolbar-group{align-items:center;gap:6px;display:flex}.viewport-toolbar-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:11px;font-weight:600}.viewport-toolbar-divider{background:var(--border-default);width:1px;height:18px;margin:0 4px}.matrix-btn{font-size:11px;font-weight:700;font-family:var(--font-mono);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);padding:3px 8px}.matrix-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-primary)}.matrix-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 0 8px #6366f166}.slice-navigator__cut-group{padding-left:var(--space-3);border-left:1px solid var(--border-default);align-items:center;gap:4px;display:flex}.slice-navigator__cut-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:11px;font-weight:600}.slice-cut-btn{border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;padding:3px 8px;font-size:11px;font-weight:600}.slice-cut-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-primary)}.slice-cut-btn.active{color:#a5b4fc;border-color:var(--accent-primary);background:#6366f140;box-shadow:0 0 6px #6366f14d}.matrix-slider{width:200px;min-width:200px;height:4px;accent-color:var(--accent-primary);cursor:pointer}.matrix-slider-val{font-size:11px;font-family:var(--font-mono);color:var(--text-accent);min-width:30px}.matrix-action-btn{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;padding:4px 10px;font-size:11px;font-weight:600}.matrix-action-btn:hover{color:var(--text-primary);border-color:var(--border-accent)}.matrix-action-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 0 10px var(--accent-glow)}.diagnostics-close{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 6px;font-size:12px}.diagnostics-close:hover{color:var(--text-primary);background:var(--bg-elevated)}.subvolume-active-badge{bottom:var(--space-4);z-index:25;-webkit-backdrop-filter:blur(12px);border:1px solid var(--accent-primary);border-radius:var(--radius-full);background:#0f172ae0;align-items:center;gap:14px;padding:6px 16px;animation:.2s ease-out fadeIn;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000080,0 0 12px #6366f14d}.subvolume-active-badge__text{color:var(--text-primary);font-size:12px;font-family:var(--font-mono)}.subvolume-active-badge__exit-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:3px 10px;font-size:11px;font-weight:600}.subvolume-active-badge__exit-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.roi-drawing-layer{z-index:20;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.roi-drawing-banner{-webkit-backdrop-filter:blur(10px);color:#a5f3fc;border-radius:var(--radius-full);pointer-events:none;background:#06b6d433;border:1px solid #06b6d480;padding:6px 16px;font-size:12px;font-weight:500;animation:.2s ease-out fadeIn;position:absolute;top:70px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006,0 0 12px #06b6d44d}.roi-marquee-box{pointer-events:none;background:#06b6d429;border:2px dashed #06b6d4;border-radius:2px;position:absolute;box-shadow:0 0 16px #06b6d459}.roi-marquee-label{color:#fff;font-size:11px;font-family:var(--font-mono);border-radius:var(--radius-sm);white-space:nowrap;background:#0891b2;padding:2px 6px;font-weight:600;position:absolute;top:-24px;left:0;box-shadow:0 2px 6px #0000004d}.roi-corner{background:#22d3ee;border:1px solid #fff;width:8px;height:8px;position:absolute;box-shadow:0 0 4px #06b6d4}.roi-corner--tl{top:-4px;left:-4px}.roi-corner--tr{top:-4px;right:-4px}.roi-corner--bl{bottom:-4px;left:-4px}.roi-corner--br{bottom:-4px;right:-4px}.roi-action-card{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-md);width:320px;padding:var(--space-3);gap:var(--space-3);z-index:35;background:#0f172af0;border:1px solid #06b6d4;flex-direction:column;animation:.15s ease-out fadeIn;display:flex;position:absolute;box-shadow:0 12px 32px #0009,0 0 20px #06b6d440}.roi-action-card__header{border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.roi-action-card__title{color:#38bdf8;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.roi-action-card__body{flex-direction:column;gap:6px;display:flex}.roi-card-row{justify-content:space-between;font-size:11px;display:flex}.roi-card-label{color:var(--text-tertiary);font-weight:500}.roi-card-val{color:var(--text-primary);font-family:var(--font-mono);font-weight:600}.roi-depth-selector{align-items:center;gap:6px;margin-top:4px;display:flex}.roi-card-telemetry{color:var(--text-accent);font-size:10px;font-family:var(--font-mono);background:var(--bg-primary);border-radius:var(--radius-sm);justify-content:space-between;margin-top:4px;padding:4px 8px;display:flex}.roi-action-card__footer{padding-top:var(--space-2);border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:8px;display:flex}.roi-card-z-slider-wrap{border-radius:var(--radius-sm);background:#00000040;border:1px solid #38bdf833;flex-direction:column;gap:4px;margin-top:2px;padding:6px 8px;display:flex}.roi-card-z-header{justify-content:space-between;align-items:center;display:flex}.roi-card-sublabel{color:var(--text-tertiary);font-size:10px;font-weight:500}.roi-card-z-badge{font-size:10px;font-family:var(--font-mono);color:#38bdf8;font-weight:600}.orientation-compass-card{z-index:25;-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;transition:border-color var(--transition-fast);background:#0f172ad1;border:1px solid #ffffff1f;flex-direction:column;align-items:center;gap:6px;padding:8px 10px;display:flex;position:absolute;top:14px;left:16px;box-shadow:0 8px 24px #00000073}.orientation-compass-card:hover{border-color:#38bdf866}.compass-header{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.compass-title{letter-spacing:.5px;color:var(--text-tertiary);font-size:10px;font-weight:700}.compass-tag{color:#38bdf8;font-size:10px;font-weight:600;font-family:var(--font-mono);border-radius:var(--radius-xs);background:#38bdf81f;padding:1px 5px}.compass-canvas-wrap{justify-content:center;align-items:center;display:flex}.compass-svg{filter:drop-shadow(0 2px 6px #00000080)}.compass-disc{fill:#1e293b99;stroke:#ffffff14;stroke-width:1px}.compass-inner-ring{fill:none;stroke:#ffffff0a;stroke-width:1px;stroke-dasharray:2 2}.compass-axis-group:hover line{stroke-width:3.5px;filter:drop-shadow(0 0 6px)}.compass-axis-node{transition:r var(--transition-fast)}.compass-axis-group:hover .compass-axis-node{r:8}.compass-controls{gap:4px;width:100%;display:flex}.compass-snap-btn{border-radius:var(--radius-xs);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);text-align:center;background:#ffffff0f;border:1px solid #0000;flex:1;padding:2px 0;font-size:10px;font-weight:700}.compass-snap-btn:hover{color:#fff;background:#ffffff26}.compass-snap-btn--x:hover{color:#ef4444;background:#ef444426;border-color:#ef4444}.compass-snap-btn--y:hover{color:#10b981;background:#10b98126;border-color:#10b981}.compass-snap-btn--z:hover{color:#06b6d4;background:#06b6d426;border-color:#06b6d4}.bbox-3d-labels-layer{pointer-events:none;z-index:20;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.bbox-3d-tag{border-radius:var(--radius-xs);font-size:10px;font-weight:700;font-family:var(--font-mono);pointer-events:none;white-space:nowrap;letter-spacing:.3px;padding:2px 8px;transition:transform 40ms linear;position:absolute;transform:translate(-50%,-50%);box-shadow:0 4px 12px #000000b3}.bbox-3d-tag--x{color:#fff;background:#ef4444e0;border:1px solid #ffffff73}.bbox-3d-tag--y{color:#fff;background:#10b981e0;border:1px solid #ffffff73}.bbox-3d-tag--z{color:#fff;background:#06b6d4e0;border:1px solid #ffffff73}.volume-scale-translucent{z-index:28;-webkit-backdrop-filter:blur(2px);border-radius:var(--radius-sm);color:#fff;-webkit-user-select:none;user-select:none;cursor:grab;touch-action:none;transition:border-color var(--transition-fast), background var(--transition-fast);background:#0a0f1e59;border:1px solid #ffffff38;flex-direction:column;align-items:center;gap:3px;padding:6px 12px;display:flex;position:absolute;box-shadow:0 4px 18px #0006,0 0 10px #38bdf81a}.volume-scale-translucent:hover{background:#0a0f1e80;border-color:#38bdf880;box-shadow:0 6px 22px #00000080,0 0 14px #38bdf840}.volume-scale-translucent:active{cursor:grabbing}.scale-translucent-header{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.scale-translucent-value{font-family:var(--font-mono);color:#fff;text-shadow:0 1px 3px #000000f2,0 0 6px #000c;letter-spacing:.3px;font-size:11px;font-weight:700}.scale-translucent-zoom{font-family:var(--font-mono);color:#38bdf8;text-shadow:0 1px 2px #000000e6;background:#38bdf82e;border:1px solid #38bdf859;border-radius:3px;padding:0 4px;font-size:9px;font-weight:700}.scale-ruler-bar{align-items:center;width:120px;height:10px;margin:1px 0;display:flex;position:relative}.scale-ruler-line{background:#fff;border-radius:1px;width:100%;height:2px;box-shadow:0 1px 3px #000000f2,0 0 6px #38bdf8b3}.scale-tick{background:#fff;width:2px;position:absolute;transform:translate(-50%);box-shadow:0 1px 3px #000000f2,0 0 6px #38bdf8b3}.scale-tick--cap{height:10px;top:0}.scale-tick--left{left:0;transform:none}.scale-tick--right{right:0;transform:none}.scale-tick--half{height:6px;top:2px}.scale-tick--quarter{opacity:.75;height:4px;top:3px}.scale-translucent-footer{width:100%;font-family:var(--font-mono);color:#ffffffa6;text-shadow:0 1px 2px #000000e6;justify-content:flex-end;font-size:8.5px;display:flex}.crop-box-panel{z-index:30;-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);-webkit-user-select:none;user-select:none;background:#0f172aeb;border:1px solid #38bdf84d;flex-direction:column;width:340px;max-height:calc(100vh - 100px);animation:.25s ease-out cropPanelSlideIn;display:flex;position:absolute;top:60px;right:16px;overflow-y:auto;box-shadow:0 12px 48px #0009,0 0 20px #38bdf81a}@keyframes cropPanelSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.crop-box-panel__header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.crop-box-panel__title{color:var(--text-primary);letter-spacing:.3px;font-size:13px;font-weight:700}.crop-box-panel__body{flex-direction:column;gap:12px;padding:12px 14px;display:flex}.crop-box-callout{color:var(--text-tertiary);border-radius:var(--radius-sm);background:#38bdf80f;border:1px solid #38bdf826;padding:8px 10px;font-size:11px;line-height:1.5}.crop-axis-group{flex-direction:column;gap:6px;display:flex}.crop-axis-header{justify-content:space-between;align-items:center;display:flex}.crop-axis-label{letter-spacing:.5px;border-radius:var(--radius-xs);padding:1px 6px;font-size:12px;font-weight:700}.crop-axis-label--x{color:#ef4444;background:#ef44441f;border:1px solid #ef44444d}.crop-axis-label--y{color:#10b981;background:#10b9811f;border:1px solid #10b9814d}.crop-axis-label--z{color:#06b6d4;background:#06b6d41f;border:1px solid #06b6d44d}.crop-axis-readout{font-size:12px;font-family:var(--font-mono);color:var(--text-primary);font-weight:600}.crop-axis-dim{color:var(--text-tertiary);margin-left:4px;font-size:10px;font-weight:500}.crop-dual-slider{align-items:center;height:28px;display:flex;position:relative}.crop-range{appearance:none;pointer-events:none;z-index:1;background:0 0;width:100%;height:6px;margin:0;position:absolute}.crop-range::-webkit-slider-runnable-track{background:#ffffff0f;border-radius:3px;height:6px}.crop-range::-webkit-slider-thumb{appearance:none;cursor:pointer;pointer-events:auto;border:2px solid #fff;border-radius:50%;width:16px;height:16px;margin-top:-5px;transition:transform .1s;box-shadow:0 0 8px #38bdf899,0 2px 4px #0006}.crop-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.crop-range--min::-webkit-slider-thumb{background:#0ea5e9}.crop-range--max::-webkit-slider-thumb{background:#f97316}.crop-range::-moz-range-track{background:#ffffff0f;border:none;border-radius:3px;height:6px}.crop-range::-moz-range-thumb{cursor:pointer;pointer-events:auto;border:2px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 0 8px #38bdf899,0 2px 4px #0006}.crop-range--min::-moz-range-thumb{background:#0ea5e9}.crop-range--max::-moz-range-thumb{background:#f97316}.crop-presets{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.crop-presets-label{color:var(--text-tertiary);letter-spacing:.3px;width:100%;margin-bottom:2px;font-size:10px;font-weight:600}.crop-presets .matrix-btn{padding:3px 8px;font-size:10px}.crop-telemetry{background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);flex-direction:column;gap:3px;padding:8px 10px;display:flex}.crop-telemetry-row{justify-content:space-between;font-size:11px;display:flex}.crop-telem-label{color:var(--text-tertiary);font-weight:500}.crop-telem-val{color:var(--text-primary);font-family:var(--font-mono);font-weight:600}.crop-warning{color:#fbbf24;border-radius:var(--radius-sm);background:#fbbf2414;border:1px solid #fbbf244d;padding:6px 10px;font-size:11px;line-height:1.4}.crop-mode-tabs{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);gap:3px;padding:3px;display:flex}.crop-mode-tab{color:var(--text-tertiary);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:1px solid #0000;flex:1;justify-content:center;align-items:center;gap:5px;padding:6px 10px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.crop-mode-tab:hover{color:var(--text-primary);background:#ffffff0a}.crop-mode-tab.active{color:#38bdf8;background:#38bdf81f;border-color:#38bdf859;box-shadow:0 0 10px #38bdf81a}.crop-nudge-row{align-items:center;gap:4px;margin-top:4px;display:flex}.crop-nudge-btn{font-size:10px;font-family:var(--font-mono);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);cursor:pointer;background:#ffffff0a;flex:1;padding:4px 6px;font-weight:600;transition:all .12s}.crop-nudge-btn:hover{color:#38bdf8;background:#38bdf829;border-color:#38bdf873}.crop-single-slider{accent-color:#38bdf8;cursor:pointer;background:#ffffff14;border-radius:3px;width:100%;height:6px}.crop-limit-error{color:#f87171;border-radius:var(--radius-sm);background:#ef44441f;border:1px solid #ef444466;flex-direction:column;gap:6px;padding:8px 10px;font-size:11px;line-height:1.45;display:flex}.crop-limit-error strong{color:#fca5a5}.crop-clamp-btn{color:#fca5a5;border-radius:var(--radius-xs);cursor:pointer;background:#ef444433;border:1px solid #ef444480;align-self:flex-start;padding:3px 8px;font-size:10px;font-weight:600;transition:all .15s}.crop-clamp-btn:hover{color:#fff;background:#ef444459}.crop-box-panel__footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.matrix-action-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:auto;border-color:#ef44444d}.view-mode-toggle{background:#0f172aa6;border:1px solid #94a3b82e;border-radius:20px;align-items:center;padding:2px;display:flex}.view-mode-toggle__btn{color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:16px;padding:4px 12px;font-size:12px;font-weight:500}.view-mode-toggle__btn:hover{color:var(--text-primary)}.view-mode-toggle__btn--active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:600}.dataset-inspector-container{flex-direction:column;gap:12px;display:flex}.crop-source-badge{font-size:11px;font-weight:600;font-family:var(--font-mono);color:#38bdf8;background:#38bdf826;border:1px solid #38bdf859;border-radius:12px;padding:2px 7px}.subvolume-source-pill{font-family:var(--font-mono);color:#38bdf8;background:#38bdf826;border:1px solid #38bdf84d;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600}.modal-backdrop{z-index:9999;-webkit-backdrop-filter:blur(10px);background:#04070dd9;justify-content:center;align-items:center;padding:20px;animation:.2s cubic-bezier(.16,1,.3,1) fadeIn;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:540px;max-height:90vh;animation:.25s cubic-bezier(.16,1,.3,1) fadeIn;display:flex;overflow-y:auto;box-shadow:0 24px 64px #000000b3,0 0 32px #6366f126}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-header__brand{align-items:center;gap:12px;display:flex}.modal-badge-icon{background:#6366f126;border:1px solid #6366f14d;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.modal-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.modal-subtitle{color:var(--text-tertiary);margin-top:2px;font-size:12px;display:block}.modal-close-btn{color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:6px 8px;font-size:16px}.modal-close-btn:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-alert{border-radius:var(--radius-md);gap:12px;padding:12px 14px;font-size:12px;line-height:1.5;display:flex}.modal-alert strong{margin-bottom:2px;font-size:13px;display:block}.modal-alert p{margin:0}.modal-alert--warning{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b4d}.modal-alert--error{color:#f87171;background:#ef44441f;border:1px solid #ef44444d}.modal-alert--success{color:#34d399;background:#10b9811f;border:1px solid #10b9814d}.modal-alert__icon{flex-shrink:0;margin-top:2px;font-size:18px}.modal-info-card{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.modal-info-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.modal-info-row--stacked{flex-direction:column;align-items:flex-start;gap:6px}.modal-info-label{color:var(--text-tertiary);font-weight:500}.modal-info-val{color:var(--text-primary);font-weight:500}.modal-hash-container{align-items:center;gap:6px;display:flex}.modal-hash{font-family:var(--font-mono);color:var(--accent-cyan);background:#00000059;border:1px solid #06b6d433;border-radius:4px;padding:2px 6px;font-size:11px}.modal-copy-btn{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;padding:2px 6px;font-size:10px}.modal-copy-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.modal-channel-chips{flex-wrap:wrap;gap:6px;display:flex}.modal-channel-chip{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:12px;padding:3px 8px;font-size:11px}.modal-channel-chip strong{color:var(--text-primary)}.modal-explainer{color:var(--text-secondary);border-radius:var(--radius-sm);border-left:2px solid var(--accent-primary);background:#94a3b80a;padding:10px 12px;font-size:12px;line-height:1.5}.modal-explainer code{font-family:var(--font-mono);color:var(--text-primary);background:#00000040;border-radius:3px;padding:1px 4px;font-size:11px}.modal-invocation-list{font-size:11px;font-family:var(--font-mono);flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.modal-footer{border-top:1px solid var(--border-subtle);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);background:#00000026;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}
