.lab-shell{--lab-ux-surface: #111c25;--lab-ux-surface-raised: #182833;--lab-ux-surface-selected: #153a3a;--lab-ux-text: #f3f8fb;--lab-ux-text-secondary: #c0d0da;--lab-ux-text-muted: #95aeba;--lab-ux-border: #3f5968;--lab-ux-border-strong: #6c8795;--lab-ux-accent: #2dd4bf;--lab-ux-accent-strong: #5eead4;--lab-ux-accent-text: #062f2c;--lab-ux-success: #5ee6a8;--lab-ux-success-bg: #103d32;--lab-ux-disabled-bg: #283944;--lab-ux-disabled-text: #a6b7c0}body.theme-light .lab-shell{--lab-ux-surface: #f4f7f9;--lab-ux-surface-raised: #ffffff;--lab-ux-surface-selected: #e4f5f2;--lab-ux-text: #102c3c;--lab-ux-text-secondary: #334f5f;--lab-ux-text-muted: #516a78;--lab-ux-border: #b7c7d1;--lab-ux-border-strong: #8299a8;--lab-ux-accent: #0f766e;--lab-ux-accent-strong: #0b625c;--lab-ux-accent-text: #ffffff;--lab-ux-success: #086c4c;--lab-ux-success-bg: #d8f3e8;--lab-ux-disabled-bg: #dfe7ec;--lab-ux-disabled-text: #435b69}.lab-shell :is(button,a,input,select,textarea){-webkit-tap-highlight-color:transparent}.lab-shell :is(button,a,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--lab-ux-accent) 78%,white);outline-offset:2px}.lab-shell :is(.dock-item,.equipment-guide-item,.lab-held-object-panel){color:var(--lab-ux-text)}.dock-pick{border-color:var(--lab-ux-border);background:var(--lab-ux-surface-raised)}.dock-item{color:var(--lab-ux-text)}.dock-item .dock-copy small,.dock-item .dock-card-meta,.equipment-guide-item small{color:var(--lab-ux-text-secondary)}.dock-item .dock-role{color:var(--lab-ux-text-secondary);border:1px solid var(--lab-ux-border);background:var(--lab-ux-surface)}.dock-item .dock-status{color:var(--lab-ux-text-secondary);background:var(--lab-ux-surface);border:1px solid var(--lab-ux-border)}.dock-item .dock-quantity{color:var(--lab-ux-text)}.dock-pick:is(.state-selected,.state-held,.state-placed){border-color:var(--lab-ux-accent);background:var(--lab-ux-surface-selected);box-shadow:inset 0 0 0 1px var(--lab-ux-accent)}.dock-pick:is(.state-selected,.state-held,.state-placed) .dock-status{color:var(--lab-ux-success);border-color:color-mix(in srgb,var(--lab-ux-success) 58%,var(--lab-ux-border));background:var(--lab-ux-success-bg)}.dock-add{color:var(--lab-ux-accent-text);background:var(--lab-ux-accent);border:1px solid var(--lab-ux-accent-strong)}.dock-add.is-remove{color:#ffe5e7;background:#6f2830;border-color:#b85b65}.dock-add:disabled,.dock-item:disabled{color:var(--lab-ux-disabled-text);background:var(--lab-ux-disabled-bg);border-color:var(--lab-ux-border);opacity:1}.equipment-thumb{border:1px solid color-mix(in srgb,var(--lab-ux-border) 78%,transparent);background:color-mix(in srgb,var(--lab-ux-surface) 72%,transparent)}.equipment-thumb img{opacity:1;filter:drop-shadow(0 2px 2px rgba(6,24,34,.18))}body.theme-light .equipment-thumb{background:#edf3f6;border-color:#aebfca}body.theme-light .dock-item .dock-role{color:#284957;background:#e6eef2;border-color:#9db1be}body.theme-light .dock-item .dock-status{color:#304e5c;background:#edf2f5;border-color:#a9bbc6}body.theme-light .dock-pick:is(.state-selected,.state-held,.state-placed) .dock-status{color:#075c41;background:#d4f0e5;border-color:#5daa8e}body.theme-light .dock-add{color:#fff;background:#0f766e}body.theme-light .dock-add.is-remove{color:#7a2029;background:#fff0f1;border-color:#b85b65}body.theme-light .dock-add:disabled{color:#425b69;background:#dce5ea}body.theme-light .tool-thumb:before{border-color:#59798a;background:linear-gradient(180deg,#ffffffe0,#619ab829 60%,#277eab57 61%)}body.theme-light :is(.tool-funnel,.tool-pipette-tool,.tool-glass-rod,.tool-spatula):before{border-color:transparent;background:linear-gradient(90deg,#527487,#91aab7)}body.theme-light .tool-funnel:before{background:#698a9a}body.theme-light .tool-pipette-tool:after{background:#167c9f}body.theme-light .tool-spatula:after{background:#647b87}body.theme-light .tool-tube-rack :is(i,b,em){border-color:#5a7888;background:linear-gradient(180deg,#ffffffb8 50%,#2386bb61 51%)}body.theme-light :is(.tool-clamp,.tool-holder):before{background:#526d7c}body.theme-light :is(.tool-clamp,.tool-holder):after{border-color:#526d7c}body.theme-light .tool-gas-tube:before{border-color:#567788;background:transparent}body.theme-light .tool-gas-tube i{border-color:#317d9e}body.theme-light .tool-thermometer:before{border-color:transparent;background:#617987}.lab-mobile-toolbar,.lab-mobile-backdrop,.lab-mobile-drawer-head{display:none}@media(hover:hover)and (pointer:fine){.dock-add:hover:not(:disabled){background:var(--lab-ux-accent-strong)}.dock-add.is-remove:hover:not(:disabled){color:#fff;background:#8a313b}.lab-mobile-toolbar button:hover:not(:disabled){border-color:var(--lab-ux-accent);background:var(--lab-ux-surface-selected)}}.dock-add:active:not(:disabled),.lab-mobile-toolbar button:active:not(:disabled),.lab-mobile-drawer-head button:active{transform:scale(.97)}@media(max-width:768px){body.has-mobile-primary-nav{--mobile-shell-nav-height: 64px}}@media(max-width:1100px){body.lab-mobile-drawer-open{position:fixed;right:0;left:0;width:100%;overflow:hidden!important;overscroll-behavior:none}#lab{position:relative}.lab-shell.has-mobile-lab-ui,.lab-shell.has-mobile-lab-ui.is-dock-expanded{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(480px,calc(100dvh - 122px));width:100%;height:auto;min-height:480px;overflow:clip;background:var(--lab-ux-surface)}.lab-shell.has-mobile-lab-ui>.lab-stage{grid-column:1;grid-row:1;width:100%;min-width:0;min-height:480px;height:calc(100dvh - 122px);max-height:820px;border-inline:0}.lab-shell.has-mobile-lab-ui>:is(.tool-rail,.experiment-panel,.equipment-dock,.lab-held-object-panel){position:fixed;z-index:1220;inset:auto 8px calc(var(--mobile-shell-nav-height, 0px) + env(safe-area-inset-bottom) + 8px);width:auto;height:auto;max-height:min(76dvh,680px);margin:0;border:1px solid var(--lab-ux-border-strong);border-radius:14px;background:var(--lab-ux-surface-raised);color:var(--lab-ux-text);box-shadow:0 18px 48px #06141d5c;visibility:hidden;pointer-events:none;transform:translateY(calc(100% + 28px));transition:transform .18s cubic-bezier(.2,.8,.2,1),visibility 0s linear .18s}.lab-shell.has-mobile-lab-ui>:is(.tool-rail,.experiment-panel,.equipment-dock,.lab-held-object-panel).is-mobile-drawer-open{visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}.lab-shell.has-mobile-lab-ui>.tool-rail{display:flex;flex-direction:column;overflow:hidden;padding:0}.lab-shell.has-mobile-lab-ui>.tool-rail .tool-menu{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px 10px;border-bottom:1px solid var(--lab-ux-border);overflow-x:auto}.lab-shell.has-mobile-lab-ui>.tool-rail .tool-button{min-width:66px;min-height:52px}.lab-shell.has-mobile-lab-ui>.tool-rail :is(.lab-action-toolbar,.tool-drawer){overflow-y:auto;overscroll-behavior:contain}.lab-shell.has-mobile-lab-ui>.experiment-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.lab-shell.has-mobile-lab-ui>.experiment-panel .lab-sidebar-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain}.lab-shell.has-mobile-lab-ui>.experiment-panel .panel-actions{position:static;max-height:42dvh;overflow-y:auto;border-top-color:var(--lab-ux-border)}.lab-shell.has-mobile-lab-ui>.equipment-dock{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:min(62dvh,520px);padding:0 10px 12px;overflow:hidden}.lab-shell.has-mobile-lab-ui>.equipment-dock .dock-head{padding-top:8px}.lab-shell.has-mobile-lab-ui>.equipment-dock .dock-items,.lab-shell.has-mobile-lab-ui>.equipment-dock.is-expanded .dock-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;gap:8px;min-height:0;overflow:auto;overscroll-behavior:contain;scroll-snap-type:none}.lab-shell.has-mobile-lab-ui>.equipment-dock .dock-pick,.lab-shell.has-mobile-lab-ui>.equipment-dock.is-expanded .dock-pick{width:auto;height:auto;min-width:0;min-height:180px}.lab-shell.has-mobile-lab-ui>.lab-held-object-panel{display:grid;padding:0 12px 14px;overflow-y:auto}.lab-shell.has-mobile-lab-ui>:is(.tool-rail,.experiment-panel,.equipment-dock,.lab-held-object-panel) :is(button,select,input:not([type=checkbox]):not([type=radio])){min-height:44px!important}.lab-shell.has-mobile-lab-ui .dock-add{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}.lab-shell.has-mobile-lab-ui .dock-controls button{min-width:44px!important}.lab-mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 10px;color:var(--lab-ux-text);border-bottom:1px solid var(--lab-ux-border);background:var(--lab-ux-surface-raised)}.lab-mobile-drawer-head strong{font-size:15px}.lab-mobile-drawer-head button{display:grid;place-items:center;width:44px;min-width:44px;height:44px;padding:0;border:1px solid var(--lab-ux-border);border-radius:10px;color:var(--lab-ux-text);background:var(--lab-ux-surface);font-size:24px}.lab-mobile-backdrop{position:fixed;z-index:1210;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#0410188a;backdrop-filter:none}.lab-mobile-backdrop[hidden]{display:none}.lab-mobile-toolbar{position:fixed;z-index:1200;right:8px;bottom:calc(var(--mobile-shell-nav-height, 0px) + env(safe-area-inset-bottom) + 8px);left:8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-height:58px;padding:6px;border:1px solid var(--lab-ux-border-strong);border-radius:14px;background:var(--lab-ux-surface-raised);box-shadow:0 12px 30px #06141d47}.lab-mobile-toolbar[hidden]{display:none}.lab-mobile-toolbar button{display:grid;place-items:center;min-width:0;min-height:46px;padding:5px 4px;border:1px solid var(--lab-ux-border);border-radius:9px;color:var(--lab-ux-text);background:var(--lab-ux-surface);font:inherit;font-size:11px;font-weight:750;line-height:1.15;transition:transform .12s cubic-bezier(.2,.8,.2,1),background-color .15s ease,border-color .15s ease}.lab-mobile-toolbar button[aria-expanded=true]{color:var(--lab-ux-accent-text);border-color:var(--lab-ux-accent);background:var(--lab-ux-accent)}.lab-mobile-toolbar button:disabled{color:var(--lab-ux-disabled-text);border-color:var(--lab-ux-border);background:var(--lab-ux-disabled-bg);opacity:1}.lab-stage .lab-camera-controls{inset:10px 8px auto auto;max-width:calc(100% - 16px)}.lab-stage .lab-camera-controls :is(#labZoomOut,#labZoomReset,#labZoomIn,.lab-3d-quality,.lab-interaction-switch){display:none!important}.lab-stage .lab-camera-controls :is(#labFitView,#lab3dToggle,#labFullscreen){min-width:44px;min-height:44px}.lab-stage .lab-camera-controls #labFitView{max-width:144px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-shell.has-mobile-lab-ui .mobile-quick-add,.lab-shell.has-mobile-lab-ui .mobile-explanation-toggle,.lab-shell.has-mobile-lab-ui .lab-mobile-sheet{display:none!important}}@media(min-width:769px)and (max-width:1100px){.lab-shell.has-mobile-lab-ui,.lab-shell.has-mobile-lab-ui.is-dock-expanded{grid-template-rows:minmax(560px,calc(100dvh - 58px));min-height:560px}.lab-shell.has-mobile-lab-ui>.lab-stage{height:calc(100dvh - 58px);min-height:560px;max-height:none}.lab-shell.has-mobile-lab-ui>:is(.tool-rail,.experiment-panel,.equipment-dock,.lab-held-object-panel){right:max(12px,calc((100vw - 760px)/2));left:max(12px,calc((100vw - 760px)/2));bottom:12px}.lab-mobile-toolbar{right:max(12px,calc((100vw - 620px)/2));left:max(12px,calc((100vw - 620px)/2));bottom:12px}.lab-shell.has-mobile-lab-ui>.equipment-dock .dock-items,.lab-shell.has-mobile-lab-ui>.equipment-dock.is-expanded .dock-items{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:380px){.lab-shell.has-mobile-lab-ui>.equipment-dock .dock-items,.lab-shell.has-mobile-lab-ui>.equipment-dock.is-expanded .dock-items{grid-template-columns:1fr}.lab-mobile-toolbar{gap:4px;padding:5px}.lab-mobile-toolbar button{font-size:10px}}@media(max-width:1100px)and (orientation:landscape){.lab-shell.has-mobile-lab-ui,.lab-shell.has-mobile-lab-ui.is-dock-expanded{grid-template-rows:minmax(420px,calc(100dvh - 68px));min-height:420px}.lab-shell.has-mobile-lab-ui>.lab-stage{height:calc(100dvh - 68px);min-height:420px}.lab-shell.has-mobile-lab-ui>:is(.tool-rail,.experiment-panel,.equipment-dock,.lab-held-object-panel){max-height:84dvh}}@media(prefers-reduced-motion:reduce){.lab-shell.has-mobile-lab-ui>:is(.tool-rail,.experiment-panel,.equipment-dock,.lab-held-object-panel),.lab-mobile-toolbar button{transition:none}}
