:root{--slate-950: #0c1218;--slate-900: #17212b;--slate-800: #1f2c38;--slate-700: #2b3a48;--slate-600: #3b4651;--slate-500: #566371;--slate-400: #6b7480;--slate-300: #9aa7b3;--slate-250: #b7c0c8;--slate-200: #c8d0d7;--slate-150: #d3d9df;--slate-100: #e5e9ed;--slate-75: #eef1f3;--slate-50: #f6f8f9;--slate-25: #fafbfc;--field-bg: #f8fafb;--white: #ffffff;--teal-900: #06403b;--teal-800: #07514a;--teal-700: #0a5f58;--teal-600: #0a7c72;--teal-500: #0e9286;--teal-400: #2aa79b;--teal-300: #6cc6bc;--teal-200: #a9ddd6;--teal-100: #d8f0eb;--teal-50: #eef9f6;--torch-700: #8a5300;--torch-600: #b8700c;--torch-500: #f5a524;--torch-400: #ffb840;--torch-300: #ffcd73;--torch-200: #ffe2b8;--torch-100: #fff2dc;--torch-50: #fff8ee;--danger-700: #8f1d16;--danger-600: #b3261e;--danger-100: #fbe6e4;--warn-700: #785900;--warn-600: #a47600;--warn-100: #fff4d6;--warn-50: #fff7e5;--geo-cut: var(--teal-600);--geo-rapid: var(--slate-500);--geo-leadin: #7a2cbf;--geo-layout: #7a8793;--geo-waste: var(--slate-150);--fg-1: var(--slate-900);--fg-2: var(--slate-600);--fg-3: var(--slate-500);--fg-4: var(--slate-400);--fg-on-accent: var(--white);--fg-on-dark: #e7edf1;--bg-app: var(--slate-75);--bg-workspace: var(--slate-50);--surface-1: var(--white);--surface-2: var(--slate-25);--surface-3: var(--slate-50);--surface-sunken: var(--field-bg);--chrome-1: var(--slate-900);--chrome-2: var(--slate-800);--rail-bg: #e8edf0;--accent: var(--teal-600);--accent-hover: var(--teal-700);--accent-press: var(--teal-800);--accent-soft: var(--teal-100);--accent-softer: var(--teal-50);--on-accent: var(--white);--border-strong: var(--slate-300);--border: var(--slate-250);--border-soft: var(--slate-200);--border-inset: var(--slate-150);--focus-ring: var(--teal-600);--danger: var(--danger-600);--warn: var(--warn-600);--success: var(--teal-600);--font-sans: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.1875rem;--text-xl: 1.5rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--tracking-tight: -.014em;--tracking-normal: 0;--tracking-wide: .02em;--tracking-caps: .06em;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 10px;--space-6: 12px;--space-7: 16px;--space-8: 20px;--space-9: 24px;--space-10: 32px;--r-xs: 3px;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--r-xl: 12px;--r-pill: 999px;--hl-top: inset 0 1px 0 rgba(255, 255, 255, .7);--hl-inset: inset 0 0 0 1px rgba(255, 255, 255, .72);--elev-0: none;--elev-1: 0 1px 2px rgba(16, 23, 31, .08);--elev-2: 0 1px 2px rgba(16, 23, 31, .08), 0 2px 6px rgba(16, 23, 31, .06);--elev-3: 0 2px 4px rgba(16, 23, 31, .08), 0 6px 16px rgba(16, 23, 31, .1);--elev-4: 0 10px 28px rgba(16, 23, 31, .18);--elev-5: 0 18px 48px rgba(16, 23, 31, .24);--ring: 0 0 0 2px var(--surface-1), 0 0 0 4px var(--teal-400);--ring-inset: inset 0 0 0 2px var(--teal-600);--ease-standard: cubic-bezier(.33, 0, .1, 1);--ease-decel: cubic-bezier(.1, .9, .2, 1);--ease-accel: cubic-bezier(.7, 0, 1, .5);--dur-instant: 80ms;--dur-fast: .12s;--dur-normal: .16s;--dur-slow: .24s;--acrylic: rgba(255, 255, 255, .94);--acrylic-blur: saturate(1.4) blur(8px);--grid-line: rgba(86, 99, 113, .1);--grid-line-strong: rgba(86, 99, 113, .18);--grid-size: 24px;--chrome-sheen: linear-gradient( 180deg, rgba(255, 255, 255, .06) 0%, rgba(255, 255, 255, 0) 40% )}.ds{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg-1);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-synthesis:none}.mat-aluminum{background-color:#c4ccd3;background-image:linear-gradient(180deg,#ffffff8c,#fff0 42%,#0c12181a),repeating-linear-gradient(90deg,#ffffff8c 0 1px,#0c12180a 1px 2px,#fff0 2px 3px,#0c12180f 3px 4px);box-shadow:var(--hl-top),var(--elev-1)}.mat-steel{background-color:#2b3a48;background-image:linear-gradient(180deg,#ffffff1a,#fff0 38%,#00000047),repeating-linear-gradient(90deg,#ffffff0f 0 1px,#0000001a 1px 2px,#fff0 2px 3px)}.mat-carbon{background-color:#131c24;background-image:linear-gradient(27deg,#0c1218 5px,transparent 5px) 0 5px,linear-gradient(207deg,#0c1218 5px,transparent 5px) 10px 0,linear-gradient(27deg,#1b2731 5px,transparent 5px) 0 10px,linear-gradient(207deg,#1b2731 5px,transparent 5px) 10px 5px,linear-gradient(90deg,#161f28 10px,transparent 10px),linear-gradient(#1b2731 25%,#161f28 25% 50%,#11181f 50% 75%,#18222b 75%);background-size:20px 20px}.mat-glass{background:linear-gradient(160deg,#ffffff57,#ffffff1f);-webkit-backdrop-filter:saturate(1.5) blur(10px);backdrop-filter:saturate(1.5) blur(10px);border:1px solid rgba(255,255,255,.55);box-shadow:var(--elev-3),inset 0 1px #ffffffb3}.mat-glass-dark{background:linear-gradient(160deg,#17212ba8,#17212b6b);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border:1px solid rgba(255,255,255,.12);box-shadow:var(--elev-3),inset 0 1px #ffffff1a}.mat-grid{background-color:var(--surface-1);background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px),linear-gradient(var(--grid-line-strong) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line-strong) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size),var(--grid-size) var(--grid-size),calc(var(--grid-size) * 4) calc(var(--grid-size) * 4),calc(var(--grid-size) * 4) calc(var(--grid-size) * 4)}.w-code{width:7ch}.w-coord{width:11ch}.w-num{width:9ch}.w-name{width:22ch}.field-auto{display:inline-flex;flex-direction:column;gap:var(--space-1)}.metric,.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1,"zero" 1;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--fg-1)}.units{color:var(--fg-3);font-weight:var(--weight-regular)}:root{color:var(--fg-1);background:var(--bg-app);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;height:100%;margin:0}body{overflow:hidden}button,input,select{font:inherit}button,select,input{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--fg-1);transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}button{min-height:32px;padding:0 10px;background:var(--surface-1);box-shadow:var(--hl-top),var(--elev-1)}button:disabled{color:var(--fg-4);background:var(--slate-100);box-shadow:none}button:not(:disabled):hover{border-color:var(--accent)}button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--hl-top)}select,input{width:100%;min-height:32px;padding:0 8px;background:var(--surface-sunken)}select:focus,input:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=checkbox]{width:16px;min-height:16px}.app-shell{height:100vh;height:100svh;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.app-shell.is-canvas-fullscreen{grid-template-rows:0 0 minmax(0,1fr)}.app-shell.is-canvas-fullscreen .top-bar,.app-shell.is-canvas-fullscreen .live-status{min-height:0;height:0;padding-block:0;overflow:hidden;border-bottom:0}.app-shell.is-canvas-fullscreen .session-recovery-strip{display:none}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 14px;border-bottom:1px solid var(--border-soft);background-color:#c8d0d6;background-image:linear-gradient(to right,#c8d0d6 0% 18%,#c8d0d600 42%),linear-gradient(180deg,#ffffff85,#fff0 44%,#0c121812),repeating-linear-gradient(90deg,#ffffff85 0 1px,#0c12180a 1px 2px,#fff0 2px 3px,#0c12180f 3px 4px);box-shadow:var(--hl-top),var(--elev-2)}.inspector-panel h2,.inspector-panel h3,.inspector-panel p,.output-panel h2,.output-panel p{margin:0}.top-bar-logo{display:block;height:40px;width:auto;flex:0 0 auto;-webkit-user-select:none;user-select:none}.file-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.live-status{padding:5px 14px;border-bottom:1px solid var(--border-soft);background:var(--surface-2);color:var(--fg-2);font-size:var(--text-sm)}.dirty-confirmation,.compatibility-panel{display:grid;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-soft);background:var(--warn-50)}.dirty-confirmation h2,.dirty-confirmation p,.compatibility-panel h2,.compatibility-panel ul,.compatibility-panel p,.preview-visual p,.report-list p{margin:0}.dirty-confirmation h2,.compatibility-panel h2{font-size:var(--text-base);font-weight:var(--weight-semibold)}.compatibility-panel ul{padding-left:18px}.session-recovery-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:6px 14px;border-bottom:1px solid var(--border-soft);background:var(--surface-2);color:var(--fg-2);font-size:var(--text-sm)}.session-recovery-copy{min-width:0;display:flex;align-items:baseline;gap:8px}.session-recovery-copy strong{flex:0 0 auto;color:var(--fg-1);font-weight:var(--weight-semibold)}.session-recovery-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-recovery-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px}.session-recovery-actions button{min-height:28px;padding-inline:8px}.destructive-secondary-button{border-color:var(--danger);color:var(--danger);background:var(--surface-1)}.destructive-secondary-button:not(:disabled):hover{border-color:var(--danger);background:var(--warn-50)}.recovery-discard-confirmation{position:fixed;top:72px;left:50%;z-index:20;width:min(420px,calc(100vw - 32px));border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--hl-top),var(--elev-3);transform:translate(-50%)}.workspace-grid{--left-dock-width: minmax(176px, 210px);--right-dock-width: minmax(340px, 400px);display:grid;grid-template-columns:var(--left-dock-width) minmax(420px,1fr) var( --right-dock-width );min-height:0;overflow:hidden;transition:grid-template-columns .3s var(--ease-standard)}.workspace-grid.is-left-collapsed,.workspace-grid.is-grid-fullscreen{--left-dock-width: 52px}.workspace-grid.is-right-collapsed,.workspace-grid.is-grid-fullscreen{--right-dock-width: 46px}.tool-rail{min-height:0;display:flex;flex-direction:column;gap:6px;padding:10px;overflow-y:auto;border-right:1px solid var(--border-soft);background:var(--rail-bg);transition:padding .3s var(--ease-standard),gap .3s var(--ease-standard)}.tool-rail button{width:100%;min-width:0;padding-inline:8px;white-space:nowrap}.dock-toggle{font-size:var(--text-xs);font-weight:var(--weight-semibold)}.workspace-grid.is-grid-fullscreen .dock-toggle:disabled,.workspace-grid.is-grid-fullscreen .output-dock-toggle:disabled{cursor:default;color:var(--fg-2);background:var(--surface-2)}.workspace-grid.is-grid-fullscreen .dock-toggle-left,.workspace-grid.is-grid-fullscreen .inspector-dock-toggle{min-height:170px;line-height:1.2;white-space:normal;writing-mode:vertical-rl;text-orientation:mixed}.workspace-grid.is-grid-fullscreen .output-dock-toggle{max-width:240px;line-height:1.2;white-space:normal}.tool-rail.is-collapsed{gap:5px;padding:8px 6px;overflow:hidden}.tool-rail.is-collapsed button{min-width:0;padding-inline:4px}.tool-rail.is-collapsed .tool-label{display:block;overflow:hidden;font-size:var(--text-2xs);text-overflow:ellipsis}.tool-rail.is-collapsed .objects-panel{display:none}.objects-panel{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:6px;margin-top:6px;padding-top:8px;border-top:1px solid var(--border-soft)}.objects-heading{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;text-align:left;background:var(--surface-sunken)}.objects-heading:after{content:"";flex:0 0 auto;width:7px;height:7px;margin-left:auto;border-right:2px solid var(--fg-3);border-bottom:2px solid var(--fg-3);transform:rotate(45deg);transition:transform var(--dur-fast) var(--ease-standard)}.objects-heading[aria-expanded=true]:after{transform:rotate(225deg) translate(-2px,-2px)}.object-row-list{min-height:0;display:grid;align-content:start;gap:4px;overflow:auto;padding-right:2px}.object-row-list .muted{margin:2px 0 0;padding:6px 2px;font-size:var(--text-xs)}.object-row,.object-row-list [role=option]{min-height:28px;display:block;padding:5px 7px;overflow:hidden;border-color:var(--border-soft);background:var(--surface-1);color:var(--fg-1);font-size:var(--text-xs);line-height:1.2;text-align:left;text-overflow:ellipsis;white-space:nowrap}.object-row:hover,.object-row-list [role=option]:hover{background:var(--accent-softer)}.object-row[aria-selected=true],.object-row.is-selected,.object-row-list [role=option][aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--teal-900);font-weight:var(--weight-semibold)}.object-row.is-partial,.object-row.is-mixed,.object-row[data-selection-state=partial],.object-row-list [role=option].is-partial,.object-row-list [role=option].is-mixed,.object-row-list [role=option][data-selection-state=partial]{border-color:var(--warn);background:var(--warn-100);color:var(--warn-700)}.center-workspace{min-height:0;display:grid;grid-template-rows:minmax(430px,1fr) minmax(180px,clamp(180px,26vh,260px));gap:10px;padding:10px;overflow:hidden;background:var(--bg-workspace);transition:grid-template-rows .3s var(--ease-standard)}.center-workspace.is-output-collapsed{grid-template-rows:minmax(0,1fr) auto;gap:6px;padding:8px}.canvas-panel{box-sizing:border-box;isolation:isolate;position:relative;min-height:0;overflow:hidden;border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:var(--hl-inset),var(--elev-1);background-color:var(--surface-1)}.canvas-panel canvas{display:block;width:100%;height:100%;cursor:crosshair}.canvas-panel canvas.can-pan{cursor:grab}.canvas-panel canvas.is-panning{cursor:grabbing}.canvas-panel canvas:focus{outline:2px solid var(--accent);outline-offset:-2px}.canvas-empty-state{min-width:0;padding:4px 7px;border:1px solid var(--border);border-radius:var(--r-xs);background:var(--acrylic);-webkit-backdrop-filter:var(--acrylic-blur);backdrop-filter:var(--acrylic-blur);color:var(--fg-3);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.canvas-hud,.coordinate-hud,.snap-hud,.zoom-hud{display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 24px);min-height:28px;padding:4px 8px;border:1px solid rgba(183,192,200,.75);border-radius:var(--r-sm);background:var(--acrylic);-webkit-backdrop-filter:var(--acrylic-blur);backdrop-filter:var(--acrylic-blur);color:var(--fg-2);font-size:var(--text-xs);line-height:1.2;box-shadow:var(--hl-top),var(--elev-2)}.snap-hud,.zoom-hud{position:absolute;z-index:2}.coordinate-hud{flex:0 0 auto;font-family:var(--font-mono);font-feature-settings:"tnum" 1,"zero" 1}.snap-hud{top:10px;left:12px;display:grid;grid-template-columns:auto minmax(120px,150px);align-items:start;flex-wrap:wrap;row-gap:4px}.snap-hud.has-manual-grid{grid-template-columns:auto minmax(120px,150px) minmax(150px,190px)}.snap-hud label{display:grid;align-items:start;gap:5px;min-width:0}.snap-hud label:first-child{grid-template-columns:auto 1fr;align-items:center;min-height:26px}.snap-hud select,.snap-hud input:not([type=checkbox]){min-height:26px;padding-inline:6px;font-size:var(--text-xs)}.snap-hud .field-error{max-width:190px;line-height:1.25}.zoom-hud{top:auto;right:12px;bottom:8px}.zoom-hud button{min-width:32px;min-height:32px;padding-inline:6px}.zoom-hud button[aria-pressed=true],.zoom-hud button[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.canvas-legend-popover{position:absolute;right:12px;bottom:54px;z-index:3;width:min(210px,calc(100% - 24px));padding:8px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--acrylic);-webkit-backdrop-filter:var(--acrylic-blur);backdrop-filter:var(--acrylic-blur);box-shadow:var(--hl-top),var(--elev-3);color:var(--fg-2);font-size:var(--text-xs)}.canvas-legend-popover ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}.canvas-legend-popover li{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:6px;min-width:0}.canvas-status-strip{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 10px;border:1px solid var(--border-soft);border-bottom:0;border-radius:var(--r-md) var(--r-md) 0 0;background:var(--surface-2);box-shadow:var(--hl-top)}.canvas-status-strip .canvas-empty-state{flex:1 1 auto}.output-dock-toggle{flex:0 0 auto;min-height:28px;padding-inline:8px;font-size:var(--text-xs)}.output-dock-toggle[aria-expanded=false]{border-color:var(--accent);background:var(--accent-soft)}.zoom-hud span{font-family:var(--font-mono);font-feature-settings:"tnum" 1;font-size:var(--text-xs)}.primitive-properties-flyout{position:absolute;z-index:4;display:grid;gap:10px;max-width:calc(100% - 24px);max-height:calc(100% - 82px);padding:10px;overflow:auto;border:1px solid var(--border-strong);border-radius:var(--r-md);background:#fffffff7;-webkit-backdrop-filter:var(--acrylic-blur);backdrop-filter:var(--acrylic-blur);box-shadow:var(--hl-top),var(--elev-4)}.flyout-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.flyout-heading-row h2{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-base);font-weight:var(--weight-semibold)}.flyout-heading-row span{flex:0 0 auto;color:var(--fg-3);font-size:var(--text-xs)}.flyout-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.flyout-actions button{min-height:28px;padding:4px 8px;font-size:var(--text-xs)}.primitive-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.primitive-field-grid label{display:grid;gap:4px;min-width:0;color:var(--fg-2);font-size:var(--text-sm)}.primitive-field-grid input[aria-invalid=true]{border-color:var(--danger)}.primitive-field-grid .field-error{grid-column:1 / -1}.primitive-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;margin:0;padding:8px;border:1px solid var(--border-inset);border-radius:var(--r-sm);background:var(--surface-sunken)}.primitive-metrics div{min-width:0}.primitive-metrics dt{color:var(--fg-3);font-size:var(--text-2xs);line-height:1.2}.primitive-metrics dd{margin:1px 0 0;overflow:hidden;color:var(--fg-1);font-family:var(--font-mono);font-feature-settings:"tnum" 1,"zero" 1;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.lower-workspace{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface-1);box-shadow:var(--hl-top),var(--elev-2);transition:grid-template-rows .3s var(--ease-standard)}.lower-workspace.is-collapsed{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto}.lower-workspace.is-collapsed .canvas-status-strip{border-bottom:0;border-radius:var(--r-md) 0 0 var(--r-md);padding:5px 8px}.lower-workspace.is-collapsed .output-tabs{align-items:center;border-bottom:0;border-left:1px solid var(--border-soft);padding:4px}.lower-workspace.is-collapsed .output-tabs button{min-height:30px;padding:4px 8px}.output-tabs{display:flex;gap:4px;padding:6px;overflow-x:auto;border-bottom:1px solid var(--border-soft);background:var(--surface-3)}.output-tabs button{flex:0 0 auto;min-height:32px;padding:5px 10px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--fg-1);box-shadow:none;font:inherit}.output-tabs button:hover:not([aria-selected=true]){border-color:var(--border);background:var(--surface-1)}.output-tabs button[aria-selected=true]{border-color:var(--border-strong);background:var(--surface-1);box-shadow:var(--hl-top),var(--elev-1)}.output-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:10px;overflow:auto;background:var(--surface-1)}.output-panel[hidden],.lower-workspace.is-collapsed .output-panel{display:none}.output-panel-body{min-height:0;display:grid;gap:8px;overflow:auto;align-content:start}.preview-playback-panel{overflow:hidden}.preview-playback-panel.is-empty-preview{align-content:center;overflow:auto}.preview-empty-state{display:grid;align-content:center;justify-items:start;gap:5px;min-height:100%;padding:6px 2px}.preview-empty-state h2,.preview-empty-state p{margin:0}.preview-empty-state h2{font-size:var(--text-base);font-weight:var(--weight-semibold)}.preview-empty-state p{color:var(--fg-2);font-size:var(--text-sm)}.preview-playback-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:12px;overflow:hidden}.preview-operations-column,.playback-column{min-width:0;min-height:0;align-content:start;padding:8px;overflow:auto;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface-2)}.playback-column{display:grid;gap:8px}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.section-heading-row h3{min-width:0;overflow:hidden;color:var(--fg-1);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap}.section-heading-row span{flex:0 0 auto;color:var(--fg-3);font-size:var(--text-xs);white-space:nowrap}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.output-panel .panel-heading-row{position:sticky;top:0;z-index:1;background:var(--surface-1)}.panel-heading-row h2,.inspector-panel h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-base);font-weight:var(--weight-semibold)}.panel-heading-row span{color:var(--fg-3);font-size:var(--text-sm);white-space:nowrap}.panel-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding-inline:8px}.panel-toggle[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft)}.operation-list,.cut-list,.diagnostic-list ul{margin:0;padding-left:18px}.operation-list{display:grid;align-content:start;gap:4px;color:var(--fg-2);font-size:var(--text-sm)}.operation-list li[aria-current=step]{color:var(--fg-1);font-weight:var(--weight-semibold)}.preview-visual,.report-list{display:grid;gap:6px;align-content:start;color:var(--fg-2);font-size:var(--text-sm)}.line-range-list{margin:0;padding-left:18px}.playback-state,.control-row,.settings-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.control-row button{flex:0 1 auto;min-width:0;white-space:normal}.playback-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.playback-controls button{min-height:32px;padding-inline:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.output-panel .settings-row{align-items:end}.settings-row label{display:grid;gap:4px;min-width:min(130px,100%)}.torch-on,.torch-off{display:inline-flex;align-items:center;min-height:24px;padding:2px 6px;border-radius:var(--r-xs);font-family:var(--font-mono);font-weight:var(--weight-semibold);font-size:var(--text-sm)}.torch-on{color:var(--torch-700);background:var(--torch-200)}.torch-off{color:var(--fg-1);background:var(--slate-100)}pre{min-height:100%;margin:0;padding:8px;overflow:auto;border:1px solid var(--border-inset);border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--fg-1);font-family:var(--font-mono);font-feature-settings:"tnum" 1;font-size:var(--text-xs);line-height:1.5;white-space:pre-wrap}.inspector-panel{min-height:0;display:flex;flex-direction:column;gap:10px;padding:10px;overflow:auto;border-left:1px solid var(--border-soft);background:var(--surface-1);transition:padding .3s var(--ease-standard),gap .3s var(--ease-standard)}.inspector-panel.is-collapsed{align-items:stretch;gap:0;padding:8px 5px;overflow:hidden}.inspector-panel.is-collapsed>:not(.inspector-dock-toggle){display:none}.inspector-dock-toggle{flex:0 0 auto}.inspector-panel.is-collapsed .inspector-dock-toggle{min-width:34px;min-height:128px;padding:8px 4px;writing-mode:vertical-rl;text-orientation:mixed}.inspector-panel details,.output-panel details{min-width:0;border:1px solid var(--border-inset);border-radius:5px;background:var(--surface-2)}.inspector-panel summary,.output-panel summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:6px 8px;color:var(--fg-1);cursor:pointer;font-weight:var(--weight-semibold);font-size:var(--text-sm);-webkit-user-select:none;user-select:none}.inspector-panel summary span,.output-panel summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-panel summary span:last-child{flex:0 1 auto;color:var(--fg-3);font-size:var(--text-xs);font-weight:var(--weight-regular)}.inspector-panel summary:after,.output-panel summary:after{content:"";flex:0 0 auto;width:7px;height:7px;border-right:2px solid var(--fg-3);border-bottom:2px solid var(--fg-3);transform:rotate(45deg);transition:transform var(--dur-fast) var(--ease-standard)}.inspector-panel details[open] summary:after,.output-panel details[open] summary:after{transform:rotate(225deg) translate(-2px,-2px)}.inspector-panel details>:not(summary),.output-panel details>:not(summary){margin:0;padding:0 8px 8px}.inspector-details-body{display:grid;gap:8px;min-width:0}.inspector-overview{gap:6px}.inspector-overview p{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0;margin:0;color:var(--fg-2);font-size:var(--text-sm)}.inspector-overview p span:first-child{color:var(--fg-3);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.inspector-overview p span:last-child{min-width:0;overflow:hidden;color:var(--fg-1);text-overflow:ellipsis}.overview-chip{width:fit-content;padding:3px 7px;border:1px solid var(--warn-600);border-radius:var(--r-sm);background:var(--warn-50);color:var(--warn-700);font-weight:var(--weight-semibold)}.inspector-panel section{display:grid;gap:8px;min-width:0;padding-bottom:10px;border-bottom:1px solid var(--border-soft)}.inspector-panel section:last-child{border-bottom:0}.inspector-panel h3{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.inspector-panel label{display:grid;gap:4px;color:var(--fg-2);font-size:var(--text-sm)}.inspector-panel input[aria-invalid=true]{border-color:var(--danger)}.checkbox-label{grid-template-columns:auto 1fr;align-items:center}.cut-list{display:grid;gap:8px}.cut-list li{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;gap:5px}.cut-list button:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cut-list button:not(:first-child){min-width:0;padding-inline:4px;overflow:hidden;font-size:var(--text-2xs);text-overflow:ellipsis;white-space:normal}.cut-settings{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.cut-settings h2,.cut-settings .field-error{grid-column:1 / -1}.cut-settings button,.cut-settings label{min-width:0}.cut-side-legend ul{display:grid;gap:5px;margin:0;padding-left:0;list-style:none}.cut-side-legend li{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:6px}.legend-marker{width:22px;height:12px;border-top:3px solid var(--fg-2)}.legend-critical{border-top-style:solid}.legend-waste{border-top-style:dashed;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--border-soft) 3px,var(--border-soft) 5px)}.legend-direction{position:relative}.legend-direction:after{position:absolute;top:-7px;right:-1px;content:"";border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:8px solid var(--fg-2)}.legend-lead-in{border-top-color:var(--geo-leadin);border-top-style:dashed}.legend-layout{border-top-color:var(--geo-layout);border-top-style:dashed}.diagnostic-list{gap:7px;padding:8px;border:1px solid var(--border-inset);border-radius:var(--r-sm);background:var(--surface-2)}.diagnostic-list li{margin-bottom:4px}.field-error{color:var(--danger);font-size:var(--text-sm)}.muted{color:var(--fg-3);font-size:var(--text-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.workspace-grid{--left-dock-width: minmax(160px, 190px);grid-template-columns:minmax(160px,190px) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(220px,34vh)}.workspace-grid.is-left-collapsed,.workspace-grid.is-grid-fullscreen{--left-dock-width: 52px}.workspace-grid.is-right-collapsed,.workspace-grid.is-grid-fullscreen{--right-dock-width: 46px;grid-template-columns:var(--left-dock-width) minmax(0,1fr) var(--right-dock-width);grid-template-rows:minmax(0,1fr)}.center-workspace{grid-template-rows:minmax(160px,1fr) minmax(180px,clamp(180px,28vh,220px))}.center-workspace.is-output-collapsed{grid-template-rows:minmax(0,1fr) auto}.inspector-panel{grid-column:1 / -1;min-height:0;border-top:1px solid var(--border-soft);border-left:0}.workspace-grid.is-right-collapsed .inspector-panel,.workspace-grid.is-grid-fullscreen .inspector-panel{grid-column:3;grid-row:1;border-top:0;border-left:1px solid var(--border-soft)}}@media(max-width:800px){.top-bar{align-items:flex-start;flex-direction:column}.file-actions{justify-content:flex-start}.workspace-grid{--left-dock-width: minmax(140px, 170px);grid-template-columns:minmax(140px,170px) minmax(0,1fr)}.workspace-grid.is-left-collapsed,.workspace-grid.is-grid-fullscreen{--left-dock-width: 52px}.workspace-grid.is-right-collapsed,.workspace-grid.is-grid-fullscreen{--right-dock-width: 46px;grid-template-columns:var(--left-dock-width) minmax(0,1fr) var(--right-dock-width)}.center-workspace{grid-template-rows:minmax(120px,1fr) minmax(200px,1.35fr);gap:8px;padding:8px}.lower-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);overflow-y:auto}.lower-workspace.is-collapsed{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}.lower-workspace.is-collapsed .canvas-status-strip{border-radius:var(--r-md) var(--r-md) 0 0}.lower-workspace.is-collapsed .output-tabs{border-left:0;border-top:1px solid var(--border-soft)}.output-panel{padding:8px}.preview-playback-grid{grid-template-columns:minmax(0,1fr);overflow-y:auto}.preview-operations-column,.playback-column{overflow:visible}.control-row{gap:6px}.control-row button{min-width:0;min-height:28px;flex-basis:70px;padding-inline:5px;font-size:var(--text-xs);line-height:1.15;white-space:normal}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:1ms!important;animation-duration:1ms!important}}
