:root{--bg: #f6f8fb;--surface: #ffffff;--surface-2: #eef2f7;--surface-3: #e3e9f1;--border: #d7dee8;--border-strong: #b6c3d4;--text: #0f1b2d;--text-muted: #4a5b72;--text-subtle: #56657a;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-soft: #dbeafe;--success: #15803d;--success-bg: #dcfce7;--danger: #b91c1c;--danger-bg: #fee2e2;--warn: #b45309;--warn-bg: #fef3c7;--shadow: 0 1px 2px rgba(15, 27, 45, .06), 0 4px 12px rgba(15, 27, 45, .06);--radius-sm: 8px;--radius: 10px;--radius-lg: 14px;--elev-1: 0 2px 8px rgba(15, 27, 45, .08), 0 1px 2px rgba(15, 27, 45, .06);--elev-2: 0 8px 24px rgba(15, 27, 45, .1), 0 2px 6px rgba(15, 27, 45, .06);--control-h: 44px;--state-hover: color-mix(in srgb, var(--accent) 8%, var(--surface-2));--state-press: color-mix(in srgb, var(--accent) 14%, var(--surface-3));--ring: 0 0 0 2px var(--accent), 0 0 0 4px var(--surface);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 18px;--z-raised: 10;--z-sticky: 100;--z-drawer: 1000;--z-overlay: 2000;--z-modal: 3000;--z-toast: 4000;--z-drag: 5000;--dur-fast: .15s;--dur-base: .2s;--dur-slow: .3s;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--tap-min: 44px;--nl-measure-body-max: min(32vh, 220px);--brand-mark: #3B82F6;--hdr-line: 1px;--hdr-clear: transparent;--hdr-zero: 0;--hdr-icon: 20px;--hdr-mark: 32px;--hdr-mark-small: 18px;--hdr-lab-mark: 28px;--hdr-lab-hero: 32px;--hdr-mobile-logo: 20px;--hdr-title: 20px;--hdr-title-hero: 22px;--hdr-mobile-title: 14px;--hdr-weight: 600;--hdr-bold: 700;--hdr-regular: 500;--hdr-leading: 1.25;--hdr-focus-offset: 2px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b1220;--surface: #121a2b;--surface-2: #1a2438;--surface-3: #223049;--border: #26334a;--border-strong: #36476a;--text: #e6edf7;--text-muted: #a3b3c9;--text-subtle: #7d8ca3;--accent: #60a5fa;--accent-strong: #93c5fd;--accent-soft: #172a4a;--success: #4ade80;--success-bg: #0f2e1d;--danger: #f87171;--danger-bg: #3a1414;--warn: #fbbf24;--warn-bg: #3a2a08;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .3);--elev-1: 0 2px 10px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .25);--elev-2: 0 10px 28px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--state-hover: color-mix(in srgb, var(--accent) 12%, var(--surface-2));--state-press: color-mix(in srgb, var(--accent) 18%, var(--surface-3));--ring: 0 0 0 2px var(--accent), 0 0 0 4px var(--bg);--brand-mark: #60A5FA;color-scheme:dark}}[data-theme=dark]{--bg: #0b1220;--surface: #121a2b;--surface-2: #1a2438;--surface-3: #223049;--border: #26334a;--border-strong: #36476a;--text: #e6edf7;--text-muted: #a3b3c9;--text-subtle: #7d8ca3;--accent: #60a5fa;--accent-strong: #93c5fd;--accent-soft: #172a4a;--success: #4ade80;--success-bg: #0f2e1d;--danger: #f87171;--danger-bg: #3a1414;--warn: #fbbf24;--warn-bg: #3a2a08;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .3);--radius-sm: 8px;--radius-lg: 14px;--elev-1: 0 2px 10px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .25);--elev-2: 0 10px 28px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--control-h: 44px;--state-hover: color-mix(in srgb, var(--accent) 12%, var(--surface-2));--state-press: color-mix(in srgb, var(--accent) 18%, var(--surface-3));--ring: 0 0 0 2px var(--accent), 0 0 0 4px var(--bg);--brand-mark: #60A5FA;color-scheme:dark}:where(button,a,[role=tab],input,select,textarea,[tabindex]):focus-visible{outline:2px solid transparent;outline-offset:2px;box-shadow:var(--ring)}@media(forced-colors:active){:where(button,a,[role=tab],input,select,textarea,[tabindex]):focus-visible{outline-color:Highlight}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button{touch-action:manipulation}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}:where(button,input,select,textarea){font-family:inherit}:where(p){line-height:1.5}.action-btn{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);padding:8px 14px;cursor:pointer;border-radius:6px;font-size:13px;transition:all var(--dur-base) var(--ease-out);font-family:var(--font-sans)}.action-btn:has(>svg){display:inline-flex;align-items:center;justify-content:center;gap:6px}.action-btn>svg{flex-shrink:0}.action-btn:hover:where(:not(:disabled,[aria-disabled=true])){background:var(--surface-3);transform:translateY(-1px)}.action-btn:active:where(:not(:disabled,[aria-disabled=true])){transform:translateY(0)}.action-btn--danger{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.action-btn--danger:hover:where(:not(:disabled,[aria-disabled=true])){background:color-mix(in srgb,var(--danger) 8%,var(--danger-bg))}.action-btn--success{background:var(--success-bg);border-color:var(--success);color:var(--success)}.action-btn--success:hover:where(:not(:disabled,[aria-disabled=true])){background:color-mix(in srgb,var(--success) 8%,var(--success-bg));color:color-mix(in srgb,var(--success) 75%,var(--text))}.action-btn--primary{font-weight:700;border-width:1px}.action-btn--primary:disabled,.action-btn--primary[aria-disabled=true]{opacity:.45;filter:none;background:var(--surface-3);border-color:var(--border-strong);color:var(--text-muted)}.action-btn--quiet-danger{background:var(--surface);border:1px solid var(--border);color:var(--danger)}.action-btn--quiet-danger:hover:where(:not(:disabled,[aria-disabled=true])){background:var(--danger-bg)}.action-btn--quiet-danger svg{color:var(--danger)}.action-btn--ghost{background:transparent;border-color:transparent}.action-btn--ghost:hover:where(:not(:disabled,[aria-disabled=true])){background:var(--state-hover)}.action-btn--active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.action-btn:disabled,.action-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.action-btn:disabled:hover,.action-btn:disabled:active,.action-btn[aria-disabled=true]:hover,.action-btn[aria-disabled=true]:active{transform:none}.action-btn--quiet-danger:disabled,.action-btn--quiet-danger[aria-disabled=true]{color:var(--text-subtle);background:var(--surface)}.action-btn--quiet-danger:disabled:hover,.action-btn--quiet-danger[aria-disabled=true]:hover{background:var(--surface)}.action-btn--quiet-danger:disabled svg,.action-btn--quiet-danger[aria-disabled=true] svg{color:var(--text-subtle)}.header-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);box-sizing:border-box;min-width:var(--tap-min);min-height:var(--tap-min);padding:var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:var(--hdr-regular) var(--fs-sm) / var(--hdr-leading) var(--font-sans);cursor:pointer;touch-action:manipulation}.header-icon-btn:hover:where(:not(:disabled,[aria-disabled=true])){background:var(--state-hover)}.header-icon-btn:active:where(:not(:disabled,[aria-disabled=true])){background:var(--state-press)}.header-icon-btn:disabled,.header-icon-btn[aria-disabled=true]{color:var(--text-subtle);cursor:not-allowed}.nl-header-actions .action-btn.header-icon-btn:not(.nl-header-cta){border:0;background:transparent;transform:none}.nl-header-actions .action-btn.header-icon-btn:not(.nl-header-cta):hover:where(:not(:disabled,[aria-disabled=true])){background:var(--state-hover);transform:none}.nl-header-actions .action-btn.header-icon-btn:not(.nl-header-cta):active:where(:not(:disabled,[aria-disabled=true])){background:var(--state-press);transform:none}.nl-header-actions .action-btn.header-icon-btn.nl-header-cta{color:var(--accent-strong);background:var(--accent-soft);padding-inline:var(--space-4)}.nl-header-actions .action-btn.header-icon-btn.nl-header-cta:hover:where(:not(:disabled,[aria-disabled=true])){background:color-mix(in srgb,var(--accent) 12%,var(--accent-soft));transform:none}.nl-header-actions .action-btn.header-icon-btn.nl-header-cta:active:where(:not(:disabled,[aria-disabled=true])){background:color-mix(in srgb,var(--accent) 18%,var(--accent-soft));transform:none}.nl-header{box-sizing:border-box;display:flex;align-items:center;gap:var(--space-7);flex-shrink:0;padding:var(--space-5) var(--space-6);background:var(--surface);color:var(--text);border-bottom:var(--hdr-line) solid var(--accent);font-family:var(--font-sans)}.nl-header-brand{min-width:0;flex:1 1 auto}.nl-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;flex-wrap:nowrap;margin-inline-start:auto}.nl-header-actions .header-btn-label{white-space:nowrap}.nl-header-cta{color:var(--accent-strong);background:var(--accent-soft);padding-inline:var(--space-4)}.nl-header-cta:hover:where(:not(:disabled,[aria-disabled=true])){background:color-mix(in srgb,var(--accent) 12%,var(--accent-soft))}@media(max-width:599px){.nl-header-cta{background:transparent;padding-inline:var(--space-2)}}.nl-metric{display:inline-flex;align-items:center;gap:var(--space-2);margin-inline-end:var(--space-3);padding:var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;touch-action:manipulation}.nl-metric:hover:where(:not(:disabled)){background:var(--state-hover)}.nl-metric:focus-visible{outline:2px solid transparent;box-shadow:var(--ring)}.nl-metric>svg{display:block;width:var(--hdr-icon);height:var(--hdr-icon);flex-shrink:0}.nl-metric-value{font-size:var(--fs-lg);font-weight:var(--hdr-weight);color:var(--text);font-variant-numeric:tabular-nums}.nl-metric--running .nl-metric-value{color:var(--success)}.nl-brand{display:grid;grid-template-columns:var(--hdr-lab-hero) minmax(0,1fr);column-gap:var(--space-3);row-gap:var(--space-1);align-items:center;min-width:0;margin:0}.nl-brand-logo{grid-column:1;grid-row:1 / 3;width:var(--hdr-lab-hero);height:var(--hdr-lab-hero);display:block;flex:none;object-fit:contain}.nl-brand-title{grid-column:2;grid-row:1;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--hdr-title-hero);font-weight:var(--hdr-bold);line-height:var(--hdr-leading);color:var(--text)}.nl-brand-endorse{grid-column:2;grid-row:2;display:flex;align-items:center;gap:var(--space-2);margin:0;min-width:0;font-size:var(--fs-xs);line-height:var(--hdr-leading);color:var(--text-muted)}.nl-brand-mark{color:var(--brand-mark);flex:none}.nl-brand-parent{font-weight:var(--hdr-regular);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:599px){.nl-brand{grid-template-columns:var(--hdr-lab-mark) minmax(0,1fr);column-gap:var(--space-2)}.nl-brand-logo{width:var(--hdr-lab-mark);height:var(--hdr-lab-mark)}.nl-brand-title{font-size:var(--hdr-mobile-title)}}@media(max-width:379px){.nl-brand-title{font-size:var(--hdr-mobile-title)}}.nl-bench-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;color:var(--text)}.nl-bench-title{margin:0;margin-inline-end:auto;font:700 var(--fs-lg)/1.4 var(--font-sans)}.nl-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;color:var(--text);font-family:var(--font-sans)}.nl-empty>svg{display:block;flex:none;width:40px;height:40px;color:var(--text-subtle)}.nl-empty-title{margin:0;font-size:var(--fs-lg);line-height:1.4;font-weight:600;color:var(--text)}.nl-empty-sub{max-width:42ch;margin:0;margin-inline:auto;color:var(--text-muted);font-size:var(--fs-md);line-height:1.6}.nl-empty{z-index:var(--z-raised)}.nl-empty-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);pointer-events:auto}.nl-pill-btn,.nl-chip,.nl-card,.nl-tab,.nl-dialog-close{box-sizing:border-box;min-height:var(--tap-min);min-width:var(--tap-min);font-family:var(--font-sans);font-size:var(--fs-sm);cursor:pointer;touch-action:manipulation;transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.nl-pill-btn{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--accent);border-radius:var(--space-8);background:var(--surface);color:var(--accent-strong);line-height:1.4;font-weight:600}.nl-pill-btn>svg,.nl-chip>svg,.nl-tab>svg,.nl-panel-hint>svg,.nl-dialog-close>svg{display:block;width:var(--space-5);height:var(--space-5);flex:none}.nl-chip-row{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-2);scroll-padding-inline:var(--space-2);scrollbar-width:thin}.nl-chip-row[data-fade-start]{-webkit-mask-image:linear-gradient(to right,transparent,currentColor var(--space-4));mask-image:linear-gradient(to right,transparent,currentColor var(--space-4))}.nl-chip-row[data-fade-end]{-webkit-mask-image:linear-gradient(to left,transparent,currentColor var(--space-4));mask-image:linear-gradient(to left,transparent,currentColor var(--space-4))}.nl-chip-row[data-fade-start][data-fade-end]{-webkit-mask-image:linear-gradient(to right,transparent,currentColor var(--space-4),currentColor calc(100% - var(--space-4)),transparent);mask-image:linear-gradient(to right,transparent,currentColor var(--space-4),currentColor calc(100% - var(--space-4)),transparent)}.nl-chip{display:inline-flex;align-items:center;gap:var(--space-2);flex:none;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--space-8);background:var(--surface);color:var(--text-muted);white-space:nowrap}.nl-chip-count{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text-muted)}.nl-chip[aria-selected=true],.nl-chip[aria-pressed=true]{color:var(--text);background:var(--accent-soft);border-color:var(--accent);font-weight:700}.nl-card{display:flex;align-items:center;gap:var(--space-3);min-height:44px;width:100%;padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-align:start;line-height:1.4}.nl-card-media{width:32px;height:32px;display:grid;place-items:center;flex:none}.nl-card-media--sm{width:20px;height:20px}.nl-card-media>svg,.nl-card-media>img{display:block;width:100%;height:100%;object-fit:contain}.nl-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.nl-card-title{display:flex;align-items:center;gap:var(--space-2);min-width:0;margin:0;font-weight:600;line-height:1.3}.nl-card-title>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;min-width:0}.nl-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1);min-width:0}.nl-card-check{margin-left:auto;width:16px;height:16px;display:block;flex:none}.nl-card--tile{flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:104px}.nl-card--tile>.nl-card-body{flex:none;width:100%}.nl-card--tile .nl-card-title{justify-content:center;min-height:2.6em}.nl-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.nl-card[data-dragging=true]{border-style:dashed;border-color:var(--accent);box-shadow:var(--elev-1);opacity:.7;transform:translateY(calc(-1 * var(--space-1)));cursor:grabbing}.nl-panel-title{margin:0;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-sans);line-height:1.5}.nl-panel-hint{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-4);color:var(--text-muted);font:400 var(--fs-sm)/1.6 var(--font-sans)}.nl-panel-section{padding-block:var(--space-3);border-bottom:1px solid var(--border);color:var(--text)}.nl-panel-section>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--tap-min);cursor:pointer;list-style:none;border-radius:var(--radius-sm)}.nl-panel-section>summary::-webkit-details-marker{display:none}.nl-panel-section>summary>svg{width:var(--space-4);height:var(--space-4);transition:transform var(--dur-base) var(--ease-out)}.nl-panel-section[open]>summary>svg{transform:rotate(180deg)}.nl-tabbar{display:flex;min-height:56px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--border-strong);z-index:var(--z-sticky)}.nl-tabbar .nl-tab>svg{width:20px;height:20px}.nl-tab{display:flex;flex:1 1 0;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1);border:0;border-top:2px solid transparent;background:transparent;color:var(--text-muted);text-decoration:none;font-size:var(--fs-xs);line-height:1.4}.nl-tab[aria-current=page]{color:var(--accent-strong);border-top-color:var(--accent);background:var(--accent-soft);font-weight:600}.nl-tabbar .nl-tab[aria-current=page]{border-top-width:3px}.nl-dialog{box-sizing:border-box;width:min(36rem,calc(100% - var(--space-6)));max-height:calc(100dvh - var(--space-8));margin:auto;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--elev-2);font:400 var(--fs-md)/1.6 var(--font-sans);z-index:var(--z-modal)}.nl-dialog[open]{display:flex;flex-direction:column}.nl-dialog::backdrop{background:color-mix(in srgb,var(--bg) 75%,transparent)}.nl-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.nl-dialog-title{margin:0;font-size:var(--fs-xl);line-height:1.4}.nl-dialog-close{display:grid;place-items:center;flex:none;padding:var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted)}.nl-dialog-body{padding:var(--space-4);overflow:auto;min-height:0}.nl-dialog-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border)}.nl-pill-btn:focus-visible,.nl-chip:focus-visible,.nl-card:focus-visible,.nl-tab:focus-visible,.nl-dialog-close:focus-visible,.nl-panel-section>summary:focus-visible,.nl-brand-title:focus-visible,.nl-card[data-preview=focus]{outline:2px solid transparent;box-shadow:var(--ring)}@media(hover:hover){.nl-pill-btn:hover:not(:disabled),.nl-chip:hover:not(:disabled),.nl-card:hover:not(:disabled),.nl-tab:hover:not(:disabled),.nl-dialog-close:hover{background:var(--state-hover)}}.nl-card[data-preview=hover]{background:var(--state-hover)}.nl-pill-btn:active:not(:disabled),.nl-chip:active:not(:disabled),.nl-card:active:not(:disabled),.nl-tab:active:not(:disabled),.nl-dialog-close:active,.nl-card[data-preview=active]{background:var(--state-press);transform:translateY(1px)}.nl-pill-btn:disabled,.nl-chip:disabled,.nl-card:disabled,.nl-tab:disabled,.nl-dialog-close:disabled{opacity:.45;cursor:not-allowed;transform:none}@media(prefers-reduced-motion:reduce){.nl-pill-btn,.nl-chip,.nl-card,.nl-tab,.nl-dialog-close,.nl-panel-section>summary>svg{transition:none}.nl-pill-btn:active,.nl-chip:active,.nl-card:active,.nl-tab:active,.nl-dialog-close:active,.nl-card[data-dragging],.nl-card[data-preview=active]{transform:none}}@media(max-width:599px){.nl-empty-actions{flex-direction:column;align-items:center;width:100%}.nl-empty-actions .nl-pill-btn{width:100%;max-width:320px}}.nl-module-header{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.nl-module-heading{display:flex;align-items:center;gap:16px;min-width:0}.nl-module-heading>.nl-brand{flex:none}.nl-module-switch{position:relative;display:flex;flex:none;align-items:stretch;box-sizing:border-box;min-height:var(--tap-min);gap:var(--space-1);background:transparent}.nl-module-switch>button{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--space-2);box-sizing:border-box;min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--space-3);border:0;border-radius:var(--hdr-zero);border-bottom:var(--hdr-focus-offset) solid var(--hdr-clear);background:transparent;color:var(--text-muted);font:var(--hdr-regular) var(--fs-sm)/1.4 var(--font-sans);white-space:nowrap;cursor:pointer;touch-action:manipulation}.nl-module-switch>button[aria-pressed=true]{color:var(--accent-strong);font-weight:var(--hdr-weight);border-bottom-color:var(--accent);background:var(--hdr-clear)}.nl-module-switch>button>svg{display:block;width:16px;height:16px;flex:none}.nl-module-switch>button:focus-visible{outline:2px solid transparent;box-shadow:var(--ring)}.nl-module-header>.nl-module-actions{display:flex;align-items:center;gap:8px;margin-inline-start:auto;flex:none}@media(min-width:600px)and (not (min-width:900px)){.nl-module-heading{flex:1;flex-wrap:wrap;gap:12px 16px}}@media not (min-width:600px){.nl-module-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 8px}.nl-module-heading{display:contents}.nl-module-heading>.nl-brand{grid-column:1;grid-row:1}.nl-module-header>.nl-module-actions{grid-column:2;grid-row:1}.nl-module-switch{grid-column:1 / -1;grid-row:2;width:100%}.nl-module-switch>button{flex:1 1 0;min-width:0;padding-inline:4px}}.header-menu-wrap{position:relative}.header-overflow-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:60;min-width:min(92vw,280px);background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;gap:4px}.header-overflow-item{display:flex;align-items:center;gap:8px;width:100%;border:none;background:var(--surface-2);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;cursor:pointer;text-align:left}.header-overflow-item select{margin-left:auto;max-width:140px;font-size:13px}.header-overflow-timer{font-family:var(--font-mono);justify-content:flex-start}.nl-measure-dock{display:flex;flex-direction:column;flex:0 0 auto;min-height:0;margin-top:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}.nl-measure-dock--collapsed{flex:0 0 auto}.nl-measure-dock:not(.nl-measure-dock--collapsed):not(.nl-measure-dock--tab){flex:0 1 auto}.nl-measure-dock--tab{flex:1 1 auto;min-height:0;margin-top:0;border:0;display:flex;flex-direction:column}.nl-measure-dock-header{flex:none}.nl-measure-dock-toggle{position:relative;display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap-min);min-width:var(--tap-min);padding:var(--space-2) var(--space-3);border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.nl-measure-dock-title{flex:none;min-width:0;font-size:var(--fs-sm);font-weight:600}.nl-measure-dock-title--tab{padding:var(--space-2) var(--space-3)}.nl-measure-dock-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:400;color:var(--text-muted)}.nl-measure-dock-toggle-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nl-measure-dock-body{flex:0 1 auto;min-height:0;max-height:var(--nl-measure-body-max);overflow:auto;padding:var(--space-2) var(--space-3)}.nl-measure-dock--tab .nl-measure-dock-body{max-height:none;flex:1 1 auto}.nl-measure-empty{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.5}@media not (min-width:600px){.nl-header:not(:has(.nl-module-switch)),.nl-header:has(.nl-module-switch){display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:var(--space-3) var(--space-2);padding:var(--space-3)}.nl-header:not(:has(.nl-module-switch)) .nl-header-brand,.nl-header:has(.nl-module-switch) .nl-header-brand{grid-column:1;grid-row:1;min-width:0}.nl-header:not(:has(.nl-module-switch)) .nl-header-actions,.nl-header:has(.nl-module-switch) .nl-header-actions{grid-column:2;grid-row:1;margin-inline-start:0;flex-wrap:nowrap;gap:0}.nl-header:not(:has(.nl-module-switch)) .nl-header-actions .header-icon-btn,.nl-header:has(.nl-module-switch) .nl-header-actions .header-icon-btn{flex-shrink:0;padding:0}.nl-header:has(.nl-module-switch) .nl-module-switch{grid-column:1 / -1;grid-row:2;width:100%;min-width:0}.nl-header:has(.nl-module-switch) .nl-module-switch>button{flex:1 1 0;min-width:0;padding-inline:4px}}:root{--bench-surface: #e9eef5;--drop-valid: #15803d;--drop-invalid: #b91c1c;--iodine-blue-black: #2a2858;--iodine-violet: #5b3a7a;--iodine-red-brown: #6b2a5a;--iodine-yellow-brown: #c08a2a;--liquid-base: #dceefb;--tube-glass-fill: rgba(255, 255, 255, .35);--tube-glass-shine: #ffffff;--tube-glass-wall: #e7f1f5;--tube-glass-inner: #55758a;--tube-shadow: #74889c;--glass-shade-k: .85;--protein-turbid: #f0f0f0;--protein-coagulated: #fafafa;--sample-potato: #e8dcc8;--sample-sprout: #c8e0a8;--sample-liver: #6b3030;--methylene-stain: #1f4fa8;--slide-glass: #f8fcff;--slide-glass-edge: #8aa4c0;--slide-cover: rgba(255, 255, 255, .75);--microscope-base: #d0dae8;--microscope-body: #b8c8dc;--microscope-metal: #6a7f98;--microscope-stage: #e8eef5;--microscope-lens: #a8d0f0;--microscope-field: #fffef8;--microscope-protoplast: #9b6bb8;--microscope-guard-cell: #6faa62;--microscope-guard-cell-edge: #3d6b38;--microscope-guard-cell-inner: #2a4a28;--microscope-protoplast-vallisneria: rgba(210, 240, 210, .55);--microscope-protoplast-dead: #c8c0cc;--microscope-cell-wall: #5a4a68;--microscope-wall-highlight: #e8e0f0;--microscope-wall-vallisneria: #7ec89a;--microscope-solution-gap: rgba(255, 254, 248, .55);--microscope-protoplast-edge: #3d2850;--foam-fill: #f8fcff;--foam-bubble: #ffffff;--place-tray: #c5d0de;--place-tray-edge: #8aa0b8;--place-water: #9ecae8;--place-slot: rgba(255, 255, 255, .35);--place-fridge-body: #d8e4f0;--place-fridge-inner: #eef4fa;--ice-cube: #e8f6ff;--boil-bubble: #ffffff;--gas-bubble: rgba(255, 255, 255, .85);--gas-collected: #c8e8ff;--lamp-base: #4a5568;--lamp-shade: #f5e6c8;--lamp-edge: #8a7a5a;--lamp-glow: #fff3b0;--lamp-cone: color-mix(in srgb, var(--lamp-glow) 70%, #ffb347 30%);--lamp-arm: #6b7280;--lamp-filter-red: #ef4444;--lamp-filter-green: #22c55e;--lamp-filter-blue: #3b82f6;--lamp-heat-screen: #94a3b8;--pot-soil: #5c4033;--pot-body: #c4a574;--pot-edge: #8a6a44;--plant-stem: #3d6b2d;--plant-leaf: #3d8a3d;--black-paper: #1a1a1a;--leaf-green: #3d8a3d;--leaf-pale: #f0ebe0;--leaf-green-masked: #6b5a3d;--leaf-edge: #2d5a2d;--leaf-cover-edge: #4a4a4a;--mortar-body: #f0f0f5;--mortar-inner: #e8e8f0;--mortar-edge: #a8a8b8;--mortar-pestle: #d0d0dc;--mortar-liquid: #dce8f5;--mortar-extract-green: #4a8a4a;--mortar-extract-pale-green: #d8e8dc;--mortar-extract-yellow: #c8b840;--mortar-extract-clear: #dce8f5;--chrom-paper: #fffef5;--chrom-paper-edge: #c8c0a8;--chrom-origin: #4a4a4a;--chrom-solvent-front: #6b8ab8;--chrom-chl-b: #9acd32;--chrom-chl-a: #2e8b57;--chrom-xanthophyll: #e6c200;--chrom-carotene: #ff8c00;--chloroplast-fill: #2d8a3d;--chloroplast-edge: #1a5c28;--palette-apparatus: #b6c8dc;--group-apparatus-fg: var(--accent-strong);--group-samples-fg: #166534;--group-reagents-fg: #5b21b6;--group-conditions-fg: #9a3412;--left-col-w: 252px;--right-col-w: 260px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bench-surface: #0f1726;--drop-valid: #4ade80;--drop-invalid: #f87171;--iodine-blue-black: #4a4588;--iodine-violet: #7a5aa8;--iodine-red-brown: #9a4a78;--iodine-yellow-brown: #d4a84a;--liquid-base: #1a3050;--tube-glass-fill: rgba(30, 45, 70, .55);--tube-glass-shine: #a8c0e0;--tube-glass-wall: #273f50;--tube-glass-inner: #aacbde;--tube-shadow: #080e17;--glass-shade-k: .6;--protein-turbid: #c8d0dc;--protein-coagulated: #e8ecf2;--sample-potato: #a89878;--sample-sprout: #6a8858;--sample-liver: #8a4848;--methylene-stain: #4a78c8;--slide-glass: #1a2838;--slide-glass-edge: #5a7290;--slide-cover: rgba(40, 55, 75, .85);--microscope-base: #2a3548;--microscope-body: #3a4a60;--microscope-metal: #8aa0b8;--microscope-stage: #1e2a3a;--microscope-lens: #4a88b8;--microscope-field: #f0f4fa;--microscope-protoplast: #b888d0;--microscope-guard-cell: #7ec878;--microscope-guard-cell-edge: #4a8a44;--microscope-guard-cell-inner: #1e3a1c;--microscope-protoplast-vallisneria: rgba(190, 230, 190, .5);--microscope-protoplast-dead: #8a8490;--microscope-cell-wall: #c8b8d8;--microscope-wall-highlight: #d8cce8;--microscope-wall-vallisneria: #5a9a72;--microscope-solution-gap: rgba(240, 244, 250, .45);--microscope-protoplast-edge: #2a1838;--foam-fill: #2a3a50;--foam-bubble: #c8e0f8;--place-tray: #2a3548;--place-tray-edge: #4a5a72;--place-water: #1e4060;--place-slot: rgba(0, 0, 0, .25);--place-fridge-body: #243040;--place-fridge-inner: #1a2430;--ice-cube: #4a6888;--boil-bubble: #c8e8ff;--gas-bubble: rgba(200, 232, 255, .85);--gas-collected: #88b8d8;--lamp-base: #4a5568;--lamp-shade: #c8b898;--lamp-edge: #8a7a5a;--lamp-glow: #fff3b0;--lamp-cone: color-mix(in srgb, var(--lamp-glow) 70%, #ffb347 30%);--lamp-arm: #8aa0b8;--lamp-filter-red: #ef4444;--lamp-filter-green: #22c55e;--lamp-filter-blue: #3b82f6;--lamp-heat-screen: #64748b;--pot-soil: #4a3528;--pot-body: #8a6a44;--pot-edge: #6a5030;--plant-stem: #4a8a4a;--plant-leaf: #4a9a4a;--black-paper: #0a0a0a;--leaf-green: #4a9a4a;--leaf-pale: #d8d0c0;--leaf-green-masked: #7a6a4a;--leaf-edge: #3d6a3d;--mortar-body: #2a3040;--mortar-inner: #1e2430;--mortar-edge: #5a6070;--mortar-pestle: #6a7080;--mortar-liquid: #2a4060;--mortar-extract-green: #4a9a5a;--chrom-paper: #e8e4d0;--chrom-paper-edge: #8a8070;--chrom-origin: #a8a8a8;--chrom-solvent-front: #6a8ab8;--chrom-chl-b: #9acd32;--chrom-chl-a: #2e8b57;--chrom-xanthophyll: #e6c200;--chrom-carotene: #ff8c00;--chloroplast-fill: #3daa4d;--palette-apparatus: #3a4a60;--group-apparatus-fg: var(--accent-strong);--group-samples-fg: #86efac;--group-reagents-fg: #c4b5fd;--group-conditions-fg: #fdba74;--left-col-w: 252px;--right-col-w: 260px;color-scheme:dark}}:root[data-theme=dark]{--bench-surface: #0f1726;--iodine-blue-black: #4a4588;--iodine-violet: #7a5aa8;--iodine-red-brown: #9a4a78;--iodine-yellow-brown: #d4a84a;--liquid-base: #1a3050;--tube-glass-fill: rgba(30, 45, 70, .55);--tube-glass-shine: #a8c0e0;--tube-glass-wall: #273f50;--tube-glass-inner: #aacbde;--tube-shadow: #080e17;--glass-shade-k: .6;--protein-turbid: #c8d0dc;--protein-coagulated: #e8ecf2;--sample-potato: #a89878;--sample-sprout: #6a8858;--sample-liver: #8a4848;--methylene-stain: #4a78c8;--slide-glass: #1a2838;--slide-glass-edge: #5a7290;--slide-cover: rgba(40, 55, 75, .85);--microscope-base: #2a3548;--microscope-body: #3a4a60;--microscope-metal: #8aa0b8;--microscope-stage: #1e2a3a;--microscope-lens: #4a88b8;--microscope-field: #f0f4fa;--microscope-protoplast: #b888d0;--microscope-guard-cell: #7ec878;--microscope-guard-cell-edge: #4a8a44;--microscope-guard-cell-inner: #1e3a1c;--microscope-protoplast-vallisneria: rgba(190, 230, 190, .5);--microscope-protoplast-dead: #8a8490;--microscope-cell-wall: #c8b8d8;--microscope-wall-highlight: #d8cce8;--microscope-wall-vallisneria: #5a9a72;--microscope-solution-gap: rgba(240, 244, 250, .45);--microscope-protoplast-edge: #2a1838;--foam-fill: #2a3a50;--foam-bubble: #c8e0f8;--place-tray: #2a3548;--place-tray-edge: #4a5a72;--place-water: #1e4060;--place-slot: rgba(0, 0, 0, .25);--place-fridge-body: #243040;--place-fridge-inner: #1a2430;--ice-cube: #4a6888;--boil-bubble: #c8e8ff;--gas-bubble: rgba(200, 232, 255, .85);--gas-collected: #88b8d8;--lamp-base: #4a5568;--lamp-shade: #c8b898;--lamp-edge: #8a7a5a;--lamp-glow: #fff3b0;--lamp-cone: color-mix(in srgb, var(--lamp-glow) 70%, #ffb347 30%);--lamp-arm: #8aa0b8;--lamp-filter-red: #ef4444;--lamp-filter-green: #22c55e;--lamp-filter-blue: #3b82f6;--lamp-heat-screen: #64748b;--pot-soil: #4a3528;--pot-body: #8a6a44;--pot-edge: #6a5030;--plant-stem: #4a8a4a;--plant-leaf: #4a9a4a;--black-paper: #0a0a0a;--leaf-green: #4a9a4a;--leaf-pale: #d8d0c0;--leaf-green-masked: #7a6a4a;--leaf-edge: #3d6a3d;--mortar-body: #2a3040;--mortar-inner: #1e2430;--mortar-edge: #5a6070;--mortar-pestle: #6a7080;--mortar-liquid: #2a4060;--mortar-extract-green: #4a9a5a;--chrom-paper: #e8e4d0;--chrom-paper-edge: #8a8070;--chrom-origin: #a8a8a8;--chrom-solvent-front: #6a8ab8;--chrom-chl-b: #9acd32;--chrom-chl-a: #2e8b57;--chrom-xanthophyll: #e6c200;--chrom-carotene: #ff8c00;--chloroplast-fill: #3daa4d;--palette-apparatus: #3a4a60;--group-apparatus-fg: var(--accent-strong);--group-samples-fg: #86efac;--group-reagents-fg: #c4b5fd;--group-conditions-fg: #fdba74;--left-col-w: 252px;--right-col-w: 260px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{height:100%;overflow:hidden}body{margin:0;min-width:320px;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}select,input[type=number],input[type=text],input[type=checkbox],textarea{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-muted);padding:6px 10px;border-radius:4px;font-family:var(--font-sans);font-size:14px}select:focus,input:focus,textarea:focus{border-color:var(--accent)}option{background:var(--surface)}:where(button,select,input,textarea,[role=button],[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.palette-panel{width:252px;border-right:1px solid var(--border);overflow-y:auto;min-height:0;padding:8px 8px 24px;flex-shrink:0;background:var(--surface)}.palette-panel.palette-panel--inline{width:var(--left-col-w, 252px)}.palette-heading{font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:1.8px;color:var(--text-subtle);padding:4px 6px 6px;margin-top:4px}.palette-group-hdr{display:flex;align-items:center;gap:5px;width:100%;background:none;border:none;padding:5px 6px;cursor:pointer;border-radius:4px;transition:background .15s;margin-bottom:2px}.palette-group-hdr:hover{background:var(--surface-2)}.palette-chevron{font-size:12px;color:var(--accent);width:12px;flex-shrink:0;line-height:1}.palette-group-label{font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.5px;line-height:1}.nl-header-brand .nl-brand{min-width:0;max-width:100%}.lab-shell{--left-col-w: 252px;--right-col-w: 260px;display:flex;flex:1;min-height:0;overflow:hidden}.bench-column{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:12px;background:var(--bench-surface)}.bench-column-inner{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto;gap:8px}.bench-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.bench-toolbar-title{display:flex;align-items:center;gap:6px;font-family:var(--font-sans);font-weight:700;color:var(--text);font-size:15px;min-width:0}.bench-toolbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.bench-drawer-trigger{display:inline-flex;align-items:center;gap:8px}.bench-empty-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-subtle);pointer-events:none;gap:8px;padding:16px;text-align:center}.bench-section-heading{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:6px;font-family:var(--font-sans);font-weight:700}.palette-panel--drawer{width:100%;border:none;padding:0;background:transparent}.lab-side-panel{width:260px;border-left:1px solid var(--border);overflow-y:auto;min-height:0;padding:12px;flex-shrink:0;background:var(--surface)}.lab-side-panel.lab-side-panel--inline{width:var(--right-col-w, 260px);max-width:none}.column-resizer{position:relative;flex:0 0 6px;width:6px;min-width:6px;cursor:col-resize;background:var(--border);transition:background .15s,box-shadow .15s;touch-action:none;z-index:2}.column-resizer:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:24px;transform:translate(-50%)}@media(pointer:coarse){.column-resizer:before{width:44px}}.column-resizer--horizontal{flex:0 0 6px;width:100%;height:6px;min-height:6px;min-width:0;cursor:row-resize}.column-resizer--horizontal:before{inset:50% 0 auto;width:auto;height:24px;transform:translateY(-50%)}@media(pointer:coarse){.column-resizer--horizontal:before{width:auto;height:44px}}.skip-link{position:absolute;left:8px;top:8px;z-index:var(--z-sticky);padding:8px 12px;border-radius:8px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);font-size:13px;font-weight:600;text-decoration:none;transform:translateY(-140%);transition:transform .15s}.skip-link:focus{transform:translateY(0);outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.panel-heading{margin:0;font-family:var(--font-sans);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.panel-heading--sm{font-size:13px;margin-bottom:8px}.panel-subheading{font-size:12px;font-weight:600;color:var(--text-muted)}.column-resizer:hover,.column-resizer:focus-visible{background:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-soft)}.slide-drawer-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--text) 35%,transparent);opacity:0;pointer-events:none;transition:opacity .2s;z-index:var(--z-drawer)}.slide-drawer-backdrop.open{opacity:1;pointer-events:auto}.slide-drawer{position:fixed;top:0;bottom:0;width:min(92vw,300px);max-width:300px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:calc(var(--z-drawer) + 1);display:flex;flex-direction:column;transition:transform .22s ease}.slide-drawer--left{left:0;transform:translate(-105%)}.slide-drawer--right{right:0;transform:translate(105%)}.slide-drawer.open{transform:translate(0)}.slide-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid var(--border);flex-shrink:0}.slide-drawer-title{margin:0;font-size:14px;font-weight:700;color:var(--text)}.slide-drawer-body{flex:1;min-height:0;overflow-y:auto;padding:8px 8px 24px}.slide-drawer-close{border:none;background:var(--surface-2);color:var(--text-muted);border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.touch-target{min-width:44px;min-height:44px}@media(max-width:1199px){.touch-target,.action-btn,.palette-group-hdr,select,input[type=number],input[type=text]{min-height:44px}.action-btn,.palette-group-hdr{min-width:44px}.nl-header-actions .header-btn-label,.palette-panel--inline{display:none}.palette-group-hdr,.bench-section-heading{gap:8px;margin-bottom:8px}.bench-toolbar-title{gap:8px}}@media(max-width:899px){.lab-side-panel--inline{display:none}.bench-column{padding:8px}}.layout-compact-header .nl-header{min-height:44px;padding:4px 8px}.layout-phone .nl-header-actions,.layout-compact-header .nl-header-actions{gap:4px;min-width:0}.header-icon-only{padding:0;min-width:44px;width:44px;justify-content:center}.lab-shell.layout-bottom-tabs{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.lab-shell--focus .palette-panel--inline,.lab-shell--focus .column-resizer,.lab-shell--focus .lab-side-panel--inline,.lab-shell--focus .bottom-tab-bar{display:none!important}.lab-shell--focus .bench-column{flex:1 1 100%;max-width:100%}.lab-shell.layout-bottom-tabs.lab-shell--focus{padding-bottom:env(safe-area-inset-bottom,0px)}.layout-phone.lab-shell{flex-direction:column;position:relative}.layout-phone .bench-column{flex:1;min-height:0;padding:6px 8px 0;overflow:hidden}.layout-phone .bench-toolbar{justify-content:flex-start}.bottom-tab-bar{position:fixed;left:0;right:0;bottom:0}.bottom-tab-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:transparent;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer}.bottom-tab-bar-label{line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}.slide-drawer--bottom{inset:auto 0 0;width:100%;max-width:none;height:50vh;max-height:90vh;border-radius:12px 12px 0 0;transform:translateY(105%);border-left:none;border-right:none;border-bottom:none}.slide-drawer--bottom.open{transform:translateY(0)}.slide-drawer--bottom.slide-drawer--expanded{height:90vh}.lab-side-panel--drawer{width:100%;max-width:none;border-left:none;padding:0 4px 12px}.bottom-sheet-handle{display:flex;justify-content:center;width:100%;border:none;background:transparent;padding:8px 0 4px;cursor:grab}.bottom-sheet-handle-bar{width:40px;height:4px;border-radius:999px;background:var(--border-strong)}@media(max-height:499px){.layout-compact-header .bench-column-inner{min-height:0}}.bench-surface-svg{position:relative;flex:1 1 auto;min-height:0;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.palette-coming-soon{font-size:13px;color:var(--text-muted);padding:4px 8px 12px 28px}.lab-panel-empty-hint{font-size:13px;color:var(--text-muted);margin-top:12px;line-height:1.45}.app-main{flex:1;min-height:0;display:flex;flex-direction:column}.session-save-banner{background:var(--warn-bg);color:var(--text);padding:8px 16px;font-size:13px;border-bottom:1px solid var(--border);text-align:center}.help-dialog-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--text) 30%,transparent);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:16px}.help-dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--elev-2);max-width:min(480px,100%);width:100%;padding:16px;max-height:90vh;overflow-y:auto}.help-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.help-dialog-title{margin:0;font-size:18px;font-weight:700}.help-dialog-close{border:none;background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;min-width:44px;min-height:44px;padding:4px}.help-dialog-steps{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:12px}.help-dialog-steps li{display:flex;gap:10px;align-items:flex-start}.help-step-icon{flex-shrink:0;width:32px;height:32px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.help-dialog-footer{margin:0 0 14px;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.45}.help-dialog-actions{display:flex;flex-direction:column;gap:8px}@media(min-width:380px){.help-dialog-actions{flex-direction:row;flex-wrap:wrap}.help-dialog-primary,.help-dialog-secondary{flex:1 1 auto;min-width:8rem}}.help-step-title{font-weight:600;font-size:13px;margin-bottom:2px}.help-step-body{margin:0;font-size:12px;color:var(--text-muted);line-height:1.45}.help-guide-dialog{width:min(560px,100%);max-height:min(92dvh,720px);display:flex;flex-direction:column}.help-guide-body{flex:1;min-height:0;overflow:auto;margin-bottom:12px}.help-guide-groups{display:flex;flex-direction:column;gap:6px}.help-guide-group{border:1px solid var(--border);border-radius:8px;background:var(--surface-2, var(--surface))}.help-guide-summary{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;list-style:none;font-weight:600;font-size:13px}.help-guide-summary::-webkit-details-marker{display:none}.help-guide-group-icon{color:var(--accent);display:flex}.help-guide-items{margin:0;padding:0 12px 10px 44px;font-size:12px;line-height:1.5;color:var(--text-muted)}.help-guide-items li{margin-bottom:6px}.help-guide-items strong{color:var(--text);font-weight:600}.help-guide-close-btn{width:100%}.feedback-form{display:flex;flex-direction:column;gap:16px}.feedback-field{display:flex;flex-direction:column;gap:8px}.feedback-label{font-size:13px;font-weight:600;color:var(--text-muted)}.feedback-types{display:flex;flex-wrap:wrap;gap:8px}.feedback-type-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);min-height:40px;padding:8px 14px;cursor:pointer;font-family:inherit;font-size:15px;transition:background .2s,border-color .2s,color .2s}.feedback-type-btn:hover:not(.feedback-type-btn--selected){background:color-mix(in srgb,var(--surface-2) 85%,var(--text) 15%);color:var(--text)}.feedback-type-btn--selected{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.feedback-type-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feedback-textarea{width:100%;min-height:140px;resize:vertical;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font:inherit;font-size:15px;color:var(--text);box-sizing:border-box}.feedback-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.feedback-count{text-align:right;font-size:12px;color:var(--text-subtle)}.feedback-count--high{color:var(--danger)}.feedback-privacy-link{margin-top:.35rem;padding:0;border:none;background:none;font:inherit;font-size:.8125rem;color:var(--text-subtle);text-decoration:underline;cursor:pointer;text-align:left}.feedback-privacy-link:hover{color:var(--text)}.privacy-dialog-body{display:flex;flex-direction:column;gap:.75rem}.feedback-msg{margin:0;font-size:14px}.feedback-msg--error{color:var(--danger)}.feedback-msg--ok{color:var(--success)}.feedback-actions{display:flex;justify-content:flex-end;gap:8px}.feedback-send{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:9px 18px;font-weight:600;font-size:15px;font-family:inherit;cursor:pointer;transition:background .2s}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .feedback-send{color:#0b1220}}[data-theme=dark] .feedback-send{color:#0b1220}.feedback-send:hover:not(:disabled){background:var(--accent-strong)}.feedback-send:disabled{opacity:.5;cursor:not-allowed}.feedback-send:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:480px){.feedback-actions .action-btn,.feedback-actions .feedback-send{flex:1}}.palette-panel.palette-panel--inline{width:var(--left-col-w, 252px);flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;padding:12px;background:var(--surface)}.scenario-module-group{margin-bottom:12px}.scenario-module-title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-muted)}.scenario-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.scenario-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;white-space:normal}.scenario-item span{font-weight:400;color:var(--text-muted)}.scenario-note{font-size:12px;font-weight:400;color:var(--text-subtle)}.help-dialog--scenarios{max-width:min(390px,100%);overflow-x:hidden;padding:12px}.scenario-search-wrap{display:flex;align-items:center;gap:8px;min-height:44px;margin-bottom:10px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text-subtle)}.scenario-search-wrap:focus-within{border-color:var(--accent)}.scenario-search{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font-size:14px;outline:none;padding:0}.scenario-tablist{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.scenario-tab{min-height:44px;padding:6px 10px;font-size:var(--fs-xs);border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}.scenario-tab[aria-selected=true]{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent);font-weight:600}.scenario-library-body{max-height:min(60vh,480px);overflow-y:auto;overflow-x:hidden}.scenario-library-empty{margin:8px 0;font-size:14px;color:var(--text-muted)}.scenario-card-btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;text-align:left;white-space:normal}.scenario-card-title{font-size:14px;font-weight:600;line-height:1.3}.scenario-card-goal{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;font-weight:400;color:var(--text-muted);line-height:1.35}.scenario-card-chips .scenario-chip{font-size:var(--fs-xs);padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid var(--border)}.scenario-confirm{display:flex;flex-direction:column;gap:12px;font-size:14px}.scenario-confirm-actions{display:flex;flex-wrap:wrap;gap:8px}.bench-drag-root{flex:1;min-height:0;display:flex;flex-direction:column}.bench-drag-root--shell{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.bench-drag-root--shell>.lab-shell{flex:1;min-height:0}.bench-item.bench-item--place{display:flex;flex-direction:column;align-items:center;width:calc(min(180px,32vw) * var(--bench-scale, 1));min-height:0;z-index:2;cursor:default;background:transparent;border:none;box-shadow:none}.bench-item.bench-item--place:not(.bench-item--over){outline:none}.bench-item.bench-item--place.bench-item--over{outline:2px dashed var(--accent);outline-offset:3px;border-radius:8px}.bench-item.bench-item--place .place-svg{width:100%;height:auto;display:block;flex-shrink:0}.bench-item.bench-item--ice_bath{width:calc(min(200px,36vw) * var(--bench-scale, 1))}.bench-item.bench-item--fridge{width:calc(min(140px,26vw) * var(--bench-scale, 1))}.bench-place-figure{position:relative;width:100%}.bench-place-slot-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.bench-place-figure .place-svg-layer--front{position:absolute;inset:0;width:100%;height:auto;display:block;pointer-events:none;z-index:3}.bench-place-caption.bench-place-caption--below{position:relative;width:100%;max-width:100%;margin:4px 0 0;padding:0 2px;text-align:center;font-size:max(11px,calc(12px * var(--bench-scale, 1)));line-height:1.25;color:var(--text-muted);pointer-events:none;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1px;overflow-wrap:anywhere;word-break:break-word}.bench-place-caption-name,.bench-place-caption-temp{display:block;max-width:100%}.bench-item.bench-item--free-tube{z-index:4}.bench-item.bench-item--chrom-paper,.bench-item.bench-item--mortar,.bench-item.bench-item--leaf,.bench-item.bench-item--plant{z-index:6}.bench-item.bench-item--sprig-cup,.bench-item.bench-item--lamp{z-index:5}.bench-item.bench-item--mortar{width:calc(110px * var(--bench-scale, 1))}.bench-item.bench-item--chrom-paper{width:calc(40px * var(--bench-scale, 1))}.bench-item.bench-item--starch-plate{width:min(calc(200px * var(--bench-scale, 1)),42vw);z-index:1}.observe-starch-spots{list-style:none;padding:0;margin:.5rem 0}.observe-starch-spots li{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;margin-bottom:.35rem}.observe-starch-table{width:100%;font-size:.85rem;margin-top:.5rem}.bench-item.bench-item--plant{width:calc(120px * var(--bench-scale, 1))}.bench-item.bench-item--sprig-cup{width:max(calc(90px * var(--bench-scale, 1)),56px)}.bench-item.bench-item--dark_box,.bench-item.bench-item--sunny_spot,.bench-item.bench-item--water_bath.bench-item--holds-cup{width:max(calc(168px * var(--bench-scale, 1)),124px)}.bench-item.bench-item--leaf{min-width:calc(120px * var(--bench-scale, 1))}.bench-item--dark_box .bench-place-slot-layer .bench-item--sprig-cup,.bench-item--sunny_spot .bench-place-slot-layer .bench-item--sprig-cup,.bench-item--holds-cup .bench-place-slot-layer .bench-item--sprig-cup{width:max(calc(72px * var(--bench-scale, 1)),56px)}.bench-item--dark_box .bench-place-slot-layer .bench-item--sprig-cup .sprig-cup-svg,.bench-item--sunny_spot .bench-place-slot-layer .bench-item--sprig-cup .sprig-cup-svg,.bench-item--holds-cup .bench-place-slot-layer .bench-item--sprig-cup .sprig-cup-svg{width:100%;height:auto;display:block}.bench-item--dark_box .bench-place-slot-layer .bench-item--sprig-cup .sprig-readable-label{fill:var(--mat-shine)}.bench-place-slot-layer .bench-item--plant{width:max(calc(120px * var(--bench-scale, 1)),58px)}.bench-place-slot-layer .bench-item--plant .plant-svg{width:100%;height:auto;min-height:64px}.bench-item-caption{margin:4px 0 0;text-align:center;font-size:max(11px,calc(11px * var(--bench-scale, 1)));line-height:1.2;color:var(--text-muted);pointer-events:none;max-width:120px;overflow-wrap:anywhere}.bench-in-place-labels{position:absolute;left:50%;bottom:calc(100% + 2px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;z-index:6;pointer-events:auto;max-width:96px}.bench-in-place-labels .bench-item-caption--in-place{position:static;transform:none;margin:0;white-space:nowrap}.bench-condition-label--in-place{margin:0;padding:0 2px;max-width:96px;font-size:11px;line-height:1.2;text-align:center;color:var(--text-muted);white-space:nowrap}.bench-item.bench-item--in-place-slot{pointer-events:auto;z-index:5;background:transparent;border:none;outline:none;box-shadow:none}.bench-item.bench-item--in-place-slot.bench-item--over{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.bench-surface{position:relative;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto}.bench-items-layer{position:absolute;inset:0;pointer-events:none}.bench-item{position:absolute;pointer-events:auto;cursor:grab;z-index:3;touch-action:none}.bench-item--selected{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.bench-item--over{filter:brightness(1.05)}.bench-item--drop-valid{outline:2px solid var(--drop-valid);outline-offset:2px;border-radius:6px}.bench-item--drop-invalid{outline:2px solid var(--drop-invalid);outline-offset:2px;border-radius:6px;cursor:not-allowed}.bench-action-dock{z-index:12;max-width:min(96vw,420px);padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.bench-action-dock--floating{position:absolute;pointer-events:auto}.bench-action-dock--phone{width:100%;border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -2px 12px #0f1b2d1f}.bench-phone-dock-slot--hidden{visibility:hidden;pointer-events:none}.bench-phone-dock-slot{flex-shrink:0;border-top:1px solid var(--border);background:var(--surface);position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));z-index:var(--z-sticky)}.layout-phone .bench-column:has(.bench-phone-dock-slot){padding-bottom:var(--phone-dock-space, 148px)}.bench-action-dock-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-bottom:6px}.bench-action-dock-title{font-weight:600;font-size:.9rem}.bench-action-dock-metric{font-size:.8rem;color:var(--text-muted)}.bench-action-dock-buttons{display:flex;flex-wrap:wrap;gap:6px}.pour-dialog-message{margin:0 0 12px;font-size:.9rem}.pour-dialog-error{margin:0 0 12px;color:var(--danger);font-size:.85rem}.bench-item--dragging{opacity:.35}.bench-item-in-place{display:none}.sim-clock-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-shrink:0;font-size:var(--fs-sm)}.sim-clock-bar .action-btn,.sim-clock-bar .sim-clock-jump input{min-height:var(--tap-min)}.sim-clock-display{font-variant-numeric:tabular-nums;font-weight:700;min-width:4.5em}.sim-clock-speeds{display:flex;gap:4px}.sim-clock-jump{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.sim-clock-jump input[type=number]{width:5.5ch;max-width:72px;min-width:0;padding-left:6px;padding-right:6px}.palette-search-wrap{display:flex;align-items:center;gap:8px;min-height:40px;margin:0 4px 8px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text-subtle);cursor:text}.palette-search-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.palette-search{flex:1;min-width:0;min-height:0;border:0;background:transparent;color:var(--text);font-size:14px;outline:none;padding:0;box-shadow:none}.palette-search:focus,.palette-search:focus-visible{box-shadow:none;outline:none}@media(pointer:coarse){.palette-search-wrap{min-height:44px}}.palette-no-match{margin:0 8px 8px;font-size:13px;color:var(--text-muted)}.palette-card-grid{display:grid;grid-template-columns:1fr;gap:4px;padding:0 4px 10px 20px}.palette-card{touch-action:pan-y;cursor:grab}.palette-card--selected{border-color:var(--accent);background:var(--accent-soft)}.palette-swatch{width:14px;height:14px;border-radius:3px;border:1px solid var(--border-strong);flex-shrink:0}.palette-card .nl-card-media{width:56px;height:56px}.palette-thumb{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;line-height:0}.palette-thumb--card{width:56px;height:56px}.palette-thumb--card svg{width:100%;height:100%;max-width:56px;max-height:56px}.palette-thumb--drag{width:56px;height:56px}.palette-thumb--drag svg{max-width:100%;max-height:100%}.palette-thumb-fallback{width:18px;height:18px}.palette-tap-hint{font-size:12px;color:var(--text-muted);padding:8px}.bench-drag-overlay{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--elev-2);font-size:13px}.bench-drag-overlay-label{color:var(--text)}.bench-drag-overlay--reduced{box-shadow:var(--elev-1)}.bench-toast{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:var(--danger-bg);color:var(--danger);padding:8px 14px;border-radius:8px;font-size:13px;z-index:var(--z-toast);max-width:90%;pointer-events:none}.amount-dialog-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--text) 25%,transparent);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px}.amount-dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:16px;width:min(320px,100%);box-shadow:var(--elev-2)}.amount-dialog-title{margin:0 0 12px;font-size:16px}.amount-dialog-field{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.amount-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.observe-panel{overflow-y:auto}.observe-detail-title{margin:0 0 8px;font-size:15px}.observe-chrom-visual{display:flex;flex-direction:column;gap:12px;max-width:100%}@media(min-width:520px){.observe-chrom-visual{flex-direction:row;align-items:flex-start;flex-wrap:wrap}.observe-chrom-visual .observe-chrom-diagram{flex:0 0 auto}.observe-chrom-visual .observe-chrom-table{flex:1 1 160px;min-width:0}}.observe-chrom-diagram .chrom-paper-svg--detail{width:min(100%,120px);height:auto;max-height:none}.observe-props{font-size:13px;margin:0 0 12px}.observe-props dt{color:var(--text-muted);margin-top:6px}.observe-props dd{margin:2px 0 0}.observe-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px}.observe-swatch{width:20px;height:20px;border-radius:4px;border:1px solid var(--border-strong)}.observe-bar{flex:1;height:8px;background:var(--surface-3);border-radius:4px;overflow:hidden}.observe-bar-fill{height:100%;background:var(--text-muted)}.observe-log{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.observe-log-title{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);margin:0 0 8px}.observe-log-list{list-style:none;margin:0;padding:0;font-size:12px;color:var(--text-muted)}.observe-log-list li{padding:4px 0;border-bottom:1px solid var(--border)}.observe-temp-control{display:flex;flex-direction:column;gap:8px;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.place-temp-label{font-size:var(--fs-xs);font-family:var(--font-sans)}.bench-column{position:relative}.bench-css-token-bridge{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;outline-color:var(--iodine-violet);border-color:var(--iodine-red-brown);caret-color:var(--iodine-yellow-brown);accent-color:var(--liquid-base);column-rule-color:var(--tube-glass-fill);text-decoration-color:var(--tube-glass-shine);scrollbar-color:var(--protein-turbid) var(--protein-coagulated);fill:var(--sample-potato);stroke:var(--sample-liver);background-color:var(--foam-fill);color:var(--foam-bubble);box-shadow:inset 0 0 0 0 var(--place-tray),inset 0 0 0 0 var(--place-tray-edge);filter:drop-shadow(0 0 0 var(--place-water));border-inline-color:var(--place-slot);outline-offset:0;outline-width:0;border-width:1px;background-image:linear-gradient(var(--place-fridge-body),var(--place-fridge-inner));-webkit-mask-image:linear-gradient(var(--ice-cube),var(--boil-bubble));mask-image:linear-gradient(var(--ice-cube),var(--boil-bubble));border-block-color:var(--palette-apparatus);text-emphasis-color:var(--iodine-blue-black);column-gap:var(--methylene-stain);row-gap:var(--slide-glass);gap:var(--slide-glass-edge);outline-color:var(--slide-cover);border-color:var(--microscope-base);caret-color:var(--microscope-body);accent-color:var(--microscope-metal);scrollbar-color:var(--microscope-stage) var(--microscope-lens);fill:var(--microscope-field);stroke:var(--microscope-protoplast);background-color:var(--microscope-protoplast-dead);color:var(--microscope-cell-wall)}.bench-item--slide,.bench-item--microscope{z-index:3;cursor:grab;background:transparent;border:none;box-shadow:none;padding:4px}.bench-microscope-svg{display:block;height:calc(140px * var(--bench-scale, 1));width:auto}.bench-item--slide.bench-item--selected,.bench-item--microscope.bench-item--selected{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.microscope-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:#080c148c;padding:12px}.layout-phone .microscope-overlay{position:fixed;inset:0;z-index:var(--z-modal)}.microscope-overlay-panel{width:min(100%,560px);max-height:100%;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--elev-2);overflow-x:hidden;overflow-y:auto;min-height:0}.microscope-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border)}.microscope-title{margin:0;font-size:1rem}.microscope-close{min-height:var(--control-h);min-width:var(--control-h)}.microscope-header .action-btn{min-height:var(--control-h)}.microscope-field-wrap{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding:12px;gap:8px;min-height:0}.microscope-mag{display:flex;gap:8px}.microscope-mag-btn{min-height:var(--control-h);min-width:56px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}.microscope-mag-btn--active{border-color:var(--accent);background:var(--accent-soft)}.microscope-viewport{border-radius:50%;overflow:hidden;border:3px solid var(--microscope-metal);background:var(--microscope-field);touch-action:none;cursor:grab;box-sizing:border-box}.layout-phone .microscope-viewport{width:min(calc(100vw - 32px),440px,max(10rem,calc(100dvh - 18rem)))!important;height:min(calc(100vw - 32px),440px,max(10rem,calc(100dvh - 18rem)))!important;max-width:min(calc(100vw - 32px),440px,max(10rem,calc(100dvh - 18rem)));max-height:min(calc(100vw - 32px),440px,max(10rem,calc(100dvh - 18rem)));flex-shrink:1}.microscope-field{transform-origin:center center;display:block}.microscope-footer{padding:8px 12px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.microscope-meta{margin:0;font-size:.85rem;color:var(--text-muted)}.microscope-drop-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px}.microscope-drop-select{flex:1 1 auto;min-width:0;min-height:var(--control-h);padding:0 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);font-size:.85rem}.microscope-drop-apply{flex-shrink:0;white-space:nowrap}.microscope-count-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.microscope-count-toggle{display:flex;align-items:center;gap:6px;min-height:var(--control-h)}.microscope-count-mark--co{fill:var(--danger)}.microscope-count-mark--no{fill:var(--success)}.observe-tissue-list{margin:8px 0 0;padding-left:1.1rem;font-size:.9rem}.bench-clear-btn{display:inline-flex;align-items:center;gap:6px}.scenario-goal-card{display:flex;flex-direction:column;gap:6px;flex-shrink:0;width:100%;max-width:100%;max-height:40dvh;overflow-y:auto;overscroll-behavior:contain;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font-size:var(--fs-xs);box-shadow:var(--elev-1)}.scenario-goal-card--observation{max-height:none;overflow:visible;margin-bottom:var(--space-4)}.scenario-goal-card--collapsed{align-self:stretch;padding:0;border-radius:var(--radius);max-height:none;overflow:visible}.scenario-goal-card--bar{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:var(--tap-min);padding:4px 8px 4px 12px}.scenario-goal-bar-title{flex:1;min-width:0;font-size:var(--fs-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scenario-goal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.scenario-goal-head-actions{display:flex;gap:2px;flex-shrink:0}.scenario-goal-icon-btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:var(--text-muted);border-radius:6px;cursor:pointer}.scenario-goal-icon-btn:hover{background:var(--state-hover)}.scenario-card-title{margin:0;font-size:14px;font-weight:700;line-height:1.3;color:var(--text)}.scenario-goal-line{margin:0;line-height:1.4;color:var(--text-muted)}.scenario-goal-line strong{color:var(--text)}.scenario-goal-hints-btn{margin:8px 0 4px;align-self:flex-start}.scenario-goal-observe{margin:4px 0 8px}.scenario-card-chips{display:flex;flex-wrap:wrap;gap:6px}.observe-bath-temp-hint{display:block;width:100%;font-size:12px;color:var(--text-muted);margin:4px 0 6px}.scenario-chip{font-size:12px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid var(--border);color:var(--text)}.palette-pills{margin-bottom:var(--space-2)}.palette-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-muted);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}.palette-pill--active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.palette-pill-count,.palette-count{font-family:var(--font-mono);font-size:12px;opacity:.85}.palette-count{margin-left:auto;color:var(--text-muted)}.palette-group--apparatus .palette-group-label{color:var(--group-apparatus-fg)}.palette-group--samples .palette-group-label{color:var(--group-samples-fg)}.palette-group--reagents .palette-group-label{color:var(--group-reagents-fg)}.palette-group--conditions .palette-group-label{color:var(--group-conditions-fg)}.layout-phone .bench-empty-actions{flex-direction:column;align-items:stretch;width:100%;max-width:320px}.layout-phone .bench-empty-actions .nl-pill-btn{width:100%;max-width:320px}.bench-toolbar{min-height:var(--control-h)}@keyframes tube-bubble-rise{0%{transform:translateY(0);opacity:0}15%{opacity:.9}85%{opacity:.9}to{transform:translateY(calc(-1 * var(--tube-bubble-rise, 40px)));opacity:0}}.tube-bubble{animation:tube-bubble-rise 1.8s ease-in infinite;animation-delay:var(--tube-bubble-delay, 0s)}@media(prefers-reduced-motion:reduce){.tube-bubble{animation:none;opacity:.8}}@keyframes sprig-bubble-rise{0%{transform:translateY(0);opacity:0}20%{opacity:.85}to{transform:translateY(calc(-1 * var(--sprig-bubble-rise, 22px)));opacity:0}}.sprig-bubble{animation:sprig-bubble-rise calc(2.4s/max(var(--sprig-bubble-rate, 1),.25)) ease-out infinite;animation-delay:var(--bubble-delay, 0s)}@media(prefers-reduced-motion:reduce){.sprig-bubble{animation:none;opacity:0}}.bench-tube-wrap{position:relative}.bench-tube-drag-surface{position:relative;min-width:var(--tap-min);display:flex;justify-content:center}.tube-inset-drag{position:absolute;left:50%;top:28%;transform:translate(-50%,-50%);touch-action:none;cursor:grab}.tube-inset-drag--paper{top:22%}.tube-inset-drag--dragging{opacity:.35}@keyframes tube-flake-fall{0%{transform:translate(0);opacity:0}15%{opacity:.95}50%{transform:translate(1.5px,calc(.5 * var(--tube-flake-fall, 40px)))}to{transform:translate(-1px,var(--tube-flake-fall, 40px));opacity:.95}}.tube-flake{animation:tube-flake-fall 5s ease-in-out infinite;animation-delay:var(--tube-flake-delay, 0s)}@keyframes place-steam-rise{0%{transform:translateY(0);opacity:0}25%{opacity:.7}to{transform:translateY(calc(-.5 * var(--steam-rise, 20px)));opacity:0}}.place-steam-wisp{animation:place-steam-rise 3s ease-out infinite;animation-delay:var(--steam-delay, 0s)}@media(prefers-reduced-motion:reduce){.tube-flake{animation:none;opacity:.9;transform:translateY(calc(.6 * var(--tube-flake-fall, 40px)))}.place-steam-wisp{animation:none;opacity:.45}}:root,[data-theme=light]{--mat-edge: #506578;--mat-ink: #26394a;--mat-muted: #506578;--mat-metal: #b8c7d0;--mat-metal-light: #edf3f5;--mat-metal-shade: #8296a6;--mat-dark-metal: #344854;--mat-dark-edge: #243643;--mat-plastic: #e2e7e7;--mat-plastic-shade: #bdc8cb;--mat-rubber: #28333b;--mat-glass: #e7f1f5;--mat-glass-shade: #bdd3df;--mat-glass-edge: #55758a;--mat-shine: #ffffff;--mat-water: #a4d7e8;--mat-water-edge: #437b94;--mat-lcd: #172e2c;--mat-lcd-ink: #b5efd6;--mat-lcd-dim: #3d5a50;--mat-meter-face: #f7f4e8;--mat-face-ink: #243643;--mat-ceramic: #e6d5b5;--mat-copper: #b86a3e;--mat-copper-light: #edb47e;--mat-copper-dark: #7b432a;--mat-wood: #b89665;--mat-wood-dark: #765737;--mat-north: #b83f45;--mat-south: #326fa8;--mat-pole-ink: #ffffff;--mat-leaf: #39764c;--mat-leaf-light: #72a865;--mat-leaf-vein: #a6c28e;--mat-stem: #466847;--mat-soil: #57463a;--mat-pot: #bc8060;--mat-pot-shade: #976449;--mat-tissue: #e3cfad;--mat-tissue-edge: #8c7350;--mat-powder: #e9dfbf;--mat-specimen: #ad7db4;--mat-ice: #edfaff;--mat-ice-edge: #6594ad;--mat-warm: #f6d678;--mat-warm-core: #fff3be;--mat-heat: #b74635;--mat-on: #27734b;--mat-off: #667580;--mat-label: #f4f3eb;--mat-label-ink: #26394a;--mat-shadow: #74889c;--mat-black-paper: #24282b;--mat-band-brown: #784426;--mat-band-black: #242629;--mat-band-gold: #b28b39;--mat-red: #b84142;--mat-blue: #337fa8;--mat-green: #418354;--tube-glass-wall: var(--mat-glass);--tube-glass-inner: var(--mat-glass-edge);--tube-shadow: var(--mat-shadow)}:root[data-theme=dark],[data-theme=dark]{--mat-edge: #b4c7d4;--mat-ink: #e3edf4;--mat-muted: #a8c0d0;--mat-metal: #738b9a;--mat-metal-light: #b7cad4;--mat-metal-shade: #475f70;--mat-dark-metal: #30434f;--mat-dark-edge: #a4b9c8;--mat-plastic: #9fadb4;--mat-plastic-shade: #71838f;--mat-rubber: #26343e;--mat-glass: #273f50;--mat-glass-shade: #47687b;--mat-glass-edge: #aacbde;--mat-shine: #e0f4ff;--mat-water: #417f9a;--mat-water-edge: #9dd0e2;--mat-lcd: #122a29;--mat-lcd-ink: #b5efd6;--mat-lcd-dim: #3d5a50;--mat-meter-face: #d4dbd5;--mat-face-ink: #20333e;--mat-ceramic: #c8b693;--mat-copper: #cc865b;--mat-copper-light: #f0c396;--mat-copper-dark: #9a5c3b;--mat-wood: #ac9068;--mat-wood-dark: #715a40;--mat-north: #be4b50;--mat-south: #377aab;--mat-pole-ink: #ffffff;--mat-leaf: #579269;--mat-leaf-light: #86b880;--mat-leaf-vein: #bdd5a9;--mat-stem: #88af81;--mat-soil: #493d34;--mat-pot: #b58365;--mat-pot-shade: #825f49;--mat-tissue: #cdbb99;--mat-tissue-edge: #ad9167;--mat-powder: #d2c6a7;--mat-specimen: #be8dc4;--mat-ice: #b6d8e8;--mat-ice-edge: #c0e4f4;--mat-warm: #f6d678;--mat-warm-core: #fff3be;--mat-heat: #ef8c75;--mat-on: #83d2aa;--mat-off: #a3b7c2;--mat-label: #d5ddd9;--mat-label-ink: #26394a;--mat-shadow: #080e17;--mat-black-paper: #24282b;--mat-band-brown: #784426;--mat-band-black: #242629;--mat-band-gold: #b28b39;--mat-red: #ee8585;--mat-blue: #8bc5e8;--mat-green: #9cd3a4;--tube-glass-wall: var(--mat-glass);--tube-glass-inner: var(--mat-glass-edge);--tube-shadow: var(--mat-shadow)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--mat-edge: #b4c7d4;--mat-ink: #e3edf4;--mat-muted: #a8c0d0;--mat-metal: #738b9a;--mat-metal-light: #b7cad4;--mat-metal-shade: #475f70;--mat-dark-metal: #30434f;--mat-dark-edge: #a4b9c8;--mat-plastic: #9fadb4;--mat-plastic-shade: #71838f;--mat-rubber: #26343e;--mat-glass: #273f50;--mat-glass-shade: #47687b;--mat-glass-edge: #aacbde;--mat-shine: #e0f4ff;--mat-water: #417f9a;--mat-water-edge: #9dd0e2;--mat-lcd: #122a29;--mat-lcd-ink: #b5efd6;--mat-lcd-dim: #3d5a50;--mat-meter-face: #d4dbd5;--mat-face-ink: #20333e;--mat-ceramic: #c8b693;--mat-copper: #cc865b;--mat-copper-light: #f0c396;--mat-copper-dark: #9a5c3b;--mat-wood: #ac9068;--mat-wood-dark: #715a40;--mat-north: #be4b50;--mat-south: #377aab;--mat-pole-ink: #ffffff;--mat-leaf: #579269;--mat-leaf-light: #86b880;--mat-leaf-vein: #bdd5a9;--mat-stem: #88af81;--mat-soil: #493d34;--mat-pot: #b58365;--mat-pot-shade: #825f49;--mat-tissue: #cdbb99;--mat-tissue-edge: #ad9167;--mat-powder: #d2c6a7;--mat-specimen: #be8dc4;--mat-ice: #b6d8e8;--mat-ice-edge: #c0e4f4;--mat-warm: #f6d678;--mat-warm-core: #fff3be;--mat-heat: #ef8c75;--mat-on: #83d2aa;--mat-off: #a3b7c2;--mat-label: #d5ddd9;--mat-label-ink: #26394a;--mat-shadow: #080e17;--mat-black-paper: #24282b;--mat-band-brown: #784426;--mat-band-black: #242629;--mat-band-gold: #b28b39;--mat-red: #ee8585;--mat-blue: #8bc5e8;--mat-green: #9cd3a4;--tube-glass-wall: var(--mat-glass);--tube-glass-inner: var(--mat-glass-edge);--tube-shadow: var(--mat-shadow)}}:root{--mat-selection: var(--accent, #2563eb);--mat-danger: var(--danger, #b91c1c)}.item-svg{overflow:visible;font-family:Arial,sans-serif}.item-svg .item-compact-only,.item-svg[data-compact=true] .item-detail{display:none}.item-svg[data-compact=true] .item-compact-only{display:inline}.item-svg[data-compact=true] .item-glass{fill:var(--mat-glass)}.item-svg[data-compact=true] .item-metal{fill:var(--mat-metal)}.item-svg[data-compact=true] [stroke]:not([stroke=none]){vector-effect:non-scaling-stroke;stroke-width:1.15px}.item-svg[data-compact=true] text{display:none}.item-svg[data-compact=true] [data-keep-label]{display:inline}:root,[data-theme=light]{--mat-contents: var(--mat-water)}:root[data-theme=dark],[data-theme=dark]{--mat-contents: var(--mat-water)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--mat-contents: var(--mat-water)}}:root,[data-theme=light]{--mat-porcelain: #f3f3ec;--mat-porcelain-shade: #d1d9d5;--mat-starch-gel: #f1ead7;--mat-starch-drop: #d9c995;--mat-starch-iodine: var(--iodine-blue-black);--mat-starch-clear: var(--iodine-yellow-brown);--mat-starch-label: #f7f3df;--mat-starch-iodine-edge: #9b6ba8}:root[data-theme=dark],[data-theme=dark]{--mat-porcelain: #d4dfde;--mat-porcelain-shade: #92aaa9;--mat-starch-gel: #d1c7a9;--mat-starch-drop: #b9a96f;--mat-starch-iodine: var(--iodine-blue-black);--mat-starch-clear: var(--iodine-yellow-brown);--mat-starch-label: #f7f3df;--mat-starch-iodine-edge: #b888c4}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--mat-porcelain: #d4dfde;--mat-porcelain-shade: #92aaa9;--mat-starch-gel: #d1c7a9;--mat-starch-drop: #b9a96f;--mat-starch-iodine: var(--iodine-blue-black);--mat-starch-clear: var(--iodine-yellow-brown);--mat-starch-label: #f7f3df;--mat-starch-iodine-edge: #b888c4}}.item-svg.starch-plate-svg .starch-plate-disc{fill:var(--mat-glass);stroke:var(--mat-glass-edge);stroke-width:.0075}.item-svg.starch-plate-svg .starch-plate-mark{fill:none;stroke:var(--mat-muted);stroke-width:.005;stroke-dasharray:.012 .012}.item-svg.starch-plate-svg .starch-plate-drop{fill:var(--mat-starch-drop);stroke:var(--mat-tissue-edge);stroke-width:.005}.item-svg.starch-plate-svg .starch-plate-label{fill:var(--mat-label-ink);pointer-events:none}.item-svg.starch-plate-svg[data-illustrative-iodine=true] .starch-plate-drop{fill:var(--spot-reaction-fill)}.item-svg.starch-plate-svg[data-illustrative-iodine=true] .starch-plate-label{fill:var(--mat-starch-label)}.item-svg.starch-plate-svg[data-iodine-stained=true] .starch-plate-cleared{fill:var(--mat-starch-clear);fill-opacity:.72;stroke:var(--mat-starch-iodine-edge);stroke-width:.004}.item-svg.starch-plate-svg[data-iodine-stained=true] .starch-plate-label{fill:var(--mat-starch-label)}.results-panel{display:flex;flex-direction:column;gap:var(--space-2);min-height:0}.results-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);flex:none}.results-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.results-table th,.results-table td{text-align:start;padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:top}.results-table caption{text-align:start;font-weight:600;padding-bottom:4px}.results-control{display:inline-block;margin-inline-start:6px;padding:0 6px;border-radius:var(--radius-sm);background:var(--border);font-size:var(--fs-xs);font-weight:600}.results-reading{display:inline-flex;align-items:center;gap:6px;margin-inline-end:8px}.results-chart{margin:0}.results-chart-caption{font-size:var(--fs-sm);font-weight:600;margin-bottom:4px}.results-chart-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin:4px 0 0;padding:0;list-style:none;font-size:var(--fs-xs)}.results-chart-swatch{display:inline-block;width:10px;height:10px;margin-inline-end:4px;border-radius:2px;vertical-align:middle}.sim-clock-bar--compact{padding:4px 6px;gap:6px;flex-wrap:nowrap;overflow-x:auto}.sim-clock-bar--compact .sim-clock-jump{display:none}.microscope-field-wrap .sim-clock-bar--compact{width:100%;align-self:stretch}#bench .nl-measure-dock,#bench .nl-measure-dock-body,#bench .nl-measure-dock-header{position:relative}#bench .nl-measure-dock{min-height:0}#bench .nl-measure-dock-body{flex:1 1 auto;min-height:0}
