:root{color-scheme:light;--ink: #17212b;--muted: #687480;--line: #d8dee5;--panel: #ffffff;--soft: #f3f5f7;--accent: #256f8f;--danger: #b42318}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef1f4;color:var(--ink)}button,input,select{font:inherit}button{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{height:100%;display:grid;grid-template-rows:52px minmax(0,1fr) auto 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 14px;background:#17212b;color:#fff}.brand-lockup{min-width:0;display:flex;align-items:center;gap:8px}.brand-lockup img{width:26px;height:26px;display:block}.topbar strong{margin-right:6px;font-size:18px}.topbar span{margin-left:10px;color:#c7d0d9;font-size:13px}.topbar-command-area,.topbar-command-group,.toolbar-row{display:flex;align-items:center;gap:5px}.topbar-command-area{min-width:0;position:relative;justify-content:flex-end}.topbar-command-group{padding:3px;border:1px solid rgb(255 255 255 / 10%);background:#ffffff0a}.topbar-command-group button{width:32px;height:32px}.sheet-switcher{position:relative;display:flex;align-items:center;gap:4px;padding:3px;border:1px solid rgb(255 255 255 / 10%);background:#ffffff0a}.sheet-switcher-trigger{position:relative;width:auto;min-width:118px;height:32px;padding:0 30px 0 12px;color:#17212b;white-space:nowrap;background:#fff;border-color:#ffffff94}.sheet-switcher-trigger b{max-width:142px;overflow:hidden;font-size:12px;font-weight:700;text-overflow:ellipsis}.sheet-switcher-trigger svg{position:absolute;right:9px;color:#17212b}.sheet-switcher-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;display:grid;min-width:180px;padding:6px;border:1px solid rgb(255 255 255 / 16%);background:#111827;box-shadow:0 16px 38px #00000047}.sheet-switcher-menu button{width:100%;height:32px;justify-content:flex-start;padding:0 10px;color:#f8fafc;background:transparent;border-color:transparent}.sheet-switcher-menu button.active,.sheet-switcher-menu button[aria-current=page]{color:#17212b;background:#fff;border-color:#fff}.topbar-tools-host{position:relative;margin-left:8px;margin-right:auto}.topbar-tool-command{width:auto;min-width:0;height:34px;padding:0 11px;grid-auto-flow:column;gap:6px;border-color:#9bc3d2;background:#eef8fb}.topbar-tool-command.active{border-color:#43a7c4;background:#dff2f7}.topbar-tool-command span{color:var(--ink);font-size:12px}.topbar-tools-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:min(560px,calc(100vw - 24px));max-height:min(680px,calc(100vh - 84px));overflow:auto;padding:10px;border:1px solid #bcc8d4;background:#fff;color:var(--ink);box-shadow:0 18px 42px #0f172a38}.topbar-tools-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:3px;border:1px solid var(--line);background:#f3f5f7}.topbar-tools-tabs button{width:100%;height:30px;border-color:transparent;background:transparent;font-size:12px}.topbar-tools-tabs button.active{border-color:#a8c9d7;background:#fff;color:#164963}.topbar-tools-body{margin-top:10px}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0f172a61}.gcode-export-dialog{width:min(420px,100%);padding:18px;border:1px solid #d5dde7;background:#fff;box-shadow:0 18px 50px #0f172a38}.gcode-export-dialog h2{margin:0 0 8px;color:#17212b;font-size:18px}.gcode-export-dialog p{margin:0 0 16px;color:#52616f;font-size:13px}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.dialog-actions button{width:auto;min-width:106px;height:34px;padding:0 12px}.workspace-layout{min-height:0;display:grid;grid-template-columns:52px minmax(0,1fr) minmax(460px,500px);overflow:hidden}.development-notice{min-width:0;display:flex;align-items:center;gap:8px;padding:6px 14px;border-top:1px solid rgba(161,90,0,.18);border-bottom:1px solid rgba(161,90,0,.24);background:#fff4d8;color:#554128;font-size:12px;line-height:1.35}.development-notice strong{flex:0 0 auto;color:#8a4b00;font-size:11px;font-weight:800;text-transform:uppercase}.development-notice span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.right-panel{min-width:0;overflow:auto;background:var(--panel);border-right:1px solid var(--line);padding:14px}.right-panel{display:grid;grid-template-rows:38px minmax(0,1fr);border-right:0;border-left:1px solid var(--line);overflow:hidden;padding:10px}.workspace-console{display:none}.tool-rail{min-height:0;display:flex;flex-direction:column;gap:4px;padding:8px;background:#f8fafc;border-right:1px solid var(--line);overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}.tool-rail button{width:34px;height:31px}.tool-rail-group{display:contents}.tool-rail button.active-tool{border-color:var(--accent);background:#e7f3f8;color:var(--accent)}.rail-divider{flex:0 0 auto;height:1px;margin:2px 0;background:var(--line)}.inspector-tabs{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;border-bottom:1px solid var(--line);padding-bottom:5px}.inspector-tabs button{width:100%;height:30px;padding:0 6px;font-size:11px;font-weight:700;white-space:nowrap}.inspector-tabs button.active{background:#17212b;color:#fff;border-color:#17212b}.tab-body{min-height:0;overflow:auto;display:grid;align-content:start;gap:10px;padding-top:10px}.tab-body>.panel-section{min-height:0;height:auto;margin-top:0;overflow:auto;padding-right:2px}.panel-section{margin-top:16px}.right-panel .panel-section{margin-top:10px}.right-panel .panel-section:first-child{margin-top:0}.panel-section h2{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:13px;text-transform:uppercase;color:#344250}.property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.selection-actions{display:grid;grid-template-columns:repeat(4,34px);gap:6px;margin-bottom:8px}.selection-actions.wide-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.selection-actions.wide-actions button{width:100%;font-size:11px}.property-grid label,.layer-row{display:grid;gap:4px;font-size:12px;color:var(--muted)}.property-grid .wide{grid-column:1 / -1}.image-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;font-size:12px}input,select{min-width:0;height:32px;border:1px solid var(--line);background:#fff;padding:0 8px;color:var(--ink);accent-color:var(--accent)}.cuts-tab{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,auto) auto auto}.layer-table-header{display:grid;grid-template-columns:26px 12px minmax(88px,1fr) 52px 58px 52px 40px 62px 42px;gap:3px;align-items:center;padding:0 8px 3px 5px;color:#6d7782;font-size:9px;font-weight:800;letter-spacing:0;text-transform:uppercase}.layer-list{min-height:0;max-height:min(46vh,420px);display:grid;gap:4px;overflow-x:hidden;overflow-y:auto;padding:0 3px 4px 0;scrollbar-gutter:stable}.layer-row{display:grid;padding:5px;border:1px solid var(--line);background:#fbfcfd}.layer-row.active-layer-row{border-color:var(--accent);background:#f0f8fb}.layer-main-row{display:grid;grid-template-columns:26px 12px minmax(88px,1fr) 52px 58px 52px 40px 62px 42px;align-items:center;gap:3px}.layer-main-row input,.layer-main-row select{height:25px;padding:0 5px;font-size:11px}.layer-main-row input[type=number]{text-align:right;font-variant-numeric:tabular-nums}.layer-name-input{font-weight:650;font-size:12px}.layer-row button{width:20px;height:26px}.layer-row-actions{display:grid;grid-template-columns:repeat(2,20px);gap:2px}.layer-order-buttons{display:grid;grid-template-columns:repeat(2,12px);gap:1px}.layer-order-buttons button{width:12px;height:24px;padding:0}.layer-quick-toggles{display:grid;grid-template-columns:repeat(3,20px);justify-content:end;gap:0}.layer-quick-toggles button{width:20px;height:23px;padding:0;color:var(--muted);font-size:9px;font-weight:700;line-height:1}.layer-quick-toggles button.active{border-color:#9bc3d2;background:#eaf5f8;color:#164963}.layer-delete-prompt{display:grid;grid-template-columns:1fr minmax(78px,auto) minmax(82px,auto);gap:6px;margin-top:10px}.layer-delete-prompt button{width:100%;padding:0 8px;font-size:12px}.cut-settings-editor{display:grid;gap:8px;padding:8px;border:1px solid #c9d4df;background:#f8fafc}.cut-settings-sections{display:grid;gap:8px}.cut-settings-sections fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;padding:8px;border:1px solid var(--line);background:#fff}.cut-settings-sections fieldset:disabled{opacity:.62}.cut-settings-sections legend{padding:0 5px;color:#344250;font-size:11px;font-weight:700;text-transform:uppercase}.cut-settings-sections label{display:grid;gap:4px;color:var(--muted);font-size:12px}.cut-settings-toggles{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.cut-settings-toggles label{display:inline-grid;grid-template-columns:16px auto;align-items:center;justify-content:center;gap:3px;min-height:28px;border:1px solid #e4e9ef;background:#fff;line-height:1}.swatch{width:14px;height:14px;border:1px solid #9aa5b1}.bed-wrap{min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;padding:24px}.bed{width:min(82vh,82vw);max-width:calc(100vw - 520px);max-height:calc(100vh - 134px);background:#fff;border:1px solid #aeb8c2;transform-origin:center;touch-action:none}.workbench-statusbar{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:4px 10px;border-top:1px solid var(--line);background:#f8fafc}.layer-palette{min-width:0;display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.layer-palette::-webkit-scrollbar{width:0;height:0}.layer-palette button{width:auto;height:24px;max-width:148px;min-width:28px;display:inline-flex;align-items:center;gap:5px;padding:0 7px}.layer-palette button.active{border-color:var(--accent);background:#e7f3f8;box-shadow:inset 0 0 0 1px var(--accent)}.layer-palette button .swatch{width:12px;height:12px;flex:0 0 auto}.layer-palette-label{min-width:0;overflow:hidden;color:#334155;font-size:11px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.statusbar-readout{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;white-space:nowrap}.statusbar-readout strong{color:#166534;font-weight:700}@media(max-width:760px){.app-shell{grid-template-rows:48px auto minmax(0,1fr) 46px}.topbar{gap:8px;min-width:0;overflow:hidden;padding:0 8px}.topbar strong{margin-right:6px;font-size:15px}.topbar span{display:none}.topbar-command-area,.topbar-command-group,.toolbar-row{gap:3px}.topbar-command-area{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar-command-area::-webkit-scrollbar{width:0;height:0}.topbar-command-group{padding:2px}.topbar-tools-host{margin-left:3px}.development-notice{align-items:flex-start;flex-direction:column;gap:2px;padding:6px 8px}.development-notice span{white-space:normal}.workspace-layout{grid-template-columns:44px minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(220px,38vh)}.tool-rail{grid-column:1;grid-row:1;padding:5px}.tool-rail button{width:32px;height:30px}.bed-wrap{grid-column:2;grid-row:1;padding:10px}.bed{width:min(72vh,calc(100vw - 74px));max-width:calc(100vw - 74px);max-height:calc(62vh - 104px)}.right-panel{grid-column:1 / -1;grid-row:2;min-width:0;padding:8px}.layer-main-row{grid-template-columns:30px 14px minmax(0,1fr) 58px 48px;gap:3px}.layer-row{padding:5px}.layer-row-actions{grid-template-columns:repeat(2,22px);gap:3px}.layer-row button{width:22px}.layer-quick-toggles button{width:100%}.layer-order-buttons{grid-template-columns:repeat(2,14px);gap:1px}.layer-order-buttons button{width:14px}.workbench-statusbar{grid-template-columns:minmax(0,1fr);gap:3px;padding:3px 8px}.statusbar-readout{gap:8px;overflow-x:auto;scrollbar-width:none}.statusbar-readout::-webkit-scrollbar{width:0;height:0}}.resize-handle{fill:#fff;stroke:#111827;stroke-width:.7;cursor:nwse-resize}.resize-handle.handle-n,.resize-handle.handle-s{cursor:ns-resize}.resize-handle.handle-e,.resize-handle.handle-w{cursor:ew-resize}.resize-handle.handle-ne,.resize-handle.handle-sw{cursor:nesw-resize}.resize-handle.handle-nw,.resize-handle.handle-se{cursor:nwse-resize}.rotate-handle{fill:#256f8f;stroke:#fff;stroke-width:.8;cursor:grab}.node-handle{fill:#fff;stroke:#b42318;stroke-width:.8;cursor:crosshair}.group-hit-zone{fill:transparent;stroke:none;cursor:move}.marquee{fill:#256f8f1f;stroke:#256f8f;stroke-width:.7;stroke-dasharray:2 2;pointer-events:none}.draft-shape{fill:#256f8f1a;stroke:#256f8f;stroke-width:.8;stroke-dasharray:2 2;pointer-events:none}.draft-text text{fill:#256f8f;stroke:none;pointer-events:none}.inline-text-editor-host{overflow:visible}.inline-text-editor{width:100%;height:100%;min-width:24px;box-sizing:border-box;border:1px solid #256f8f;outline:2px solid rgb(37 111 143 / 18%);background:#fffffff5;color:#111827;font-family:Arial,sans-serif;line-height:1;padding:1px 3px}.summary-list{display:grid;gap:8px;margin:0}.manual-control{margin-top:0}.manual-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.desktop-status{margin-bottom:8px;padding:7px 8px;background:var(--soft);color:var(--muted);font-size:12px}.desktop-status.live{background:#eaf5ef;color:#166534}.connection-pill{margin-bottom:6px;padding:6px 8px;border:1px solid var(--line);font-size:12px;font-weight:600}.connection-pill.connected{border-color:#8ac59d;background:#eaf5ef;color:#166534}.connection-pill.disconnected{border-color:#e1b2ac;background:#fff2f0;color:var(--danger)}.serial-row{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(112px,auto);gap:6px;margin-bottom:8px}.serial-row button{width:100%;font-size:11px;white-space:nowrap;padding:0 8px}.manual-fields label{display:grid;gap:4px;color:var(--muted);font-size:12px}.vibration-toggle{display:flex;align-items:center;gap:8px;margin-top:8px;padding:7px 8px;border:1px solid var(--line);background:var(--soft);color:var(--ink);font-size:12px;font-weight:700}.vibration-toggle input{width:16px;height:16px}.machine-actions{display:grid;grid-template-columns:repeat(4,34px);gap:6px;margin-top:8px}.jog-pad{display:grid;grid-template-areas:". up ." "left stop right" ". down .";grid-template-columns:40px 40px 40px;gap:6px;margin-top:8px}.jog-up{grid-area:up}.jog-left{grid-area:left}.jog-right{grid-area:right}.jog-down{grid-area:down}.jog-stop{grid-area:stop;color:var(--danger)}.material-test{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.material-test-tool,.material-launcher{display:grid;gap:8px}.wide-command{width:100%;display:inline-grid;grid-auto-flow:column;justify-content:center;gap:6px;min-height:34px}.tool-action{width:100%;min-height:34px;height:auto;display:inline-grid;grid-auto-flow:column;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border:1px solid #c7d1dc;background:#fff;color:var(--ink);font-size:12px;line-height:1.15;white-space:nowrap}.tool-action.primary{border-color:#7fb1c7;background:#e8f4f8;color:#164963;font-weight:650}.tool-action.danger{border-color:#efb4ad;color:var(--danger)}.material-launch-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.material-launch-summary span{padding:5px 4px;border:1px solid var(--line);background:#f8fafc;color:#475569;text-align:center;font-size:11px;font-variant-numeric:tabular-nums}.fit-calibration{display:grid;gap:8px}.fit-calibration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.fit-calibration-grid label,.fit-actions label{display:grid;gap:4px;color:var(--muted);font-size:12px}.fit-variant-row{display:flex;flex-wrap:wrap;gap:4px}.fit-variant-row span{padding:4px 6px;border:1px solid var(--line);background:#f8fafc;color:#334155;font-size:11px;font-variant-numeric:tabular-nums}.fit-actions{display:grid;grid-template-columns:minmax(128px,1fr) minmax(72px,92px) minmax(88px,auto);gap:6px;align-items:end}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-title-row h2{margin:0}.material-window-title{cursor:move;-webkit-user-select:none;user-select:none}.material-cell-pill{padding:3px 7px;border:1px solid var(--line);background:#f8fafc;color:#475569;font-size:11px;font-variant-numeric:tabular-nums}.floating-title-actions{display:inline-grid;grid-auto-flow:column;align-items:center;gap:6px}.icon-button{width:28px;height:28px;padding:0}.material-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.material-presets button{width:100%;height:32px;padding:0 6px;font-size:12px}.material-dialog-toolbar{display:grid;gap:8px}.material-dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.material-axis-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;padding:8px;border:1px solid var(--line);background:#f8fafc}.material-axis-panel[data-axis=x]{--material-axis-color: #b42318;--material-axis-soft: #fff1f0}.material-axis-panel[data-axis=y]{--material-axis-color: #188038;--material-axis-soft: #eef8f0}.material-axis-panel legend{padding:0 6px;color:var(--material-axis-color, #17212b);font-size:12px;font-weight:700;text-transform:uppercase}.material-axis-panel label{display:grid;gap:4px;color:var(--muted);font-size:12px}.inline-stepper{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;border:1px solid var(--line);background:#fff}.inline-stepper button{width:28px;height:28px;border:0;background:#f8fafc}.inline-stepper strong{text-align:center;color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}.readonly-param{display:grid;align-items:center;min-height:30px;padding:0 8px;border:1px solid color-mix(in srgb,var(--material-axis-color, #94a3b8) 42%,var(--line));background:var(--material-axis-soft, #eef3f7);color:var(--material-axis-color, #334155);font-size:13px;font-weight:600}.material-values{display:grid;grid-template-columns:minmax(64px,auto) 1fr;gap:6px;align-items:center;font-size:12px}.material-values>span{color:var(--muted)}.material-values>span[data-axis=x]{color:#b42318}.material-values>span[data-axis=y]{color:#188038}.material-values{padding:7px;border:1px solid var(--line);background:#f8fafc}.material-values div{display:flex;flex-wrap:wrap;gap:4px}.material-values b{padding:2px 5px;background:#fff;border:1px solid #d5dee7;color:#0f172a;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.material-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.material-fields.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.material-fields label{display:grid;gap:4px;color:var(--muted);font-size:12px}.material-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.material-actions button{min-height:32px}.manual-log{height:100%;overflow:auto;margin:0;padding:8px;background:var(--soft);border:1px solid var(--line);color:#334155;font-size:12px;line-height:1.4}.summary-list div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:6px}.summary-list dt,.muted{color:var(--muted)}.summary-list dd{margin:0;font-variant-numeric:tabular-nums}.safety,.warning,.muted{display:flex;align-items:center;gap:8px}.safety{margin-top:8px;padding:8px;background:#eaf5ef;color:#166534}.safety.blocked,.warning{background:#fff2f0;color:var(--danger)}.warning{padding:8px;font-size:13px}.bug-link{display:inline-block;margin-top:12px;color:var(--accent)}.gcode-section pre{height:100%;overflow:auto;margin:0;padding:10px;background:#111820;color:#d5f5e3;font-size:12px;line-height:1.45}.gcode-preview{height:150px;overflow:auto;margin:0;padding:10px;background:#111820;color:#d5f5e3;font-size:12px;line-height:1.45}.output-tab{display:grid;grid-template-rows:auto auto auto auto minmax(80px,.9fr) auto 100px auto 150px;gap:8px}.tab-scroll-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:6px}.workspace-console{min-height:0;display:none;grid-template-columns:minmax(220px,.8fr) minmax(220px,.9fr) minmax(220px,.9fr) minmax(320px,1.2fr);gap:10px;padding:10px;border-top:1px solid var(--line);background:#e6ebf0}.console-panel{min-width:0;min-height:0;display:grid;grid-template-rows:24px minmax(0,1fr);gap:6px;background:var(--panel);border:1px solid var(--line);padding:8px}.console-panel h2{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;text-transform:uppercase;color:#344250}.console-scroll{min-height:0;overflow:auto;display:grid;align-content:start;gap:6px}.preflight-console .safety{margin-top:6px}.preflight-console .bug-link{margin-top:4px}@media(max-width:980px){.workspace-layout{grid-template-columns:48px minmax(0,1fr);grid-template-rows:minmax(360px,1fr) minmax(360px,auto)}.right-panel{grid-column:1 / -1;border:0;border-bottom:1px solid var(--line)}.bed{width:min(92vw,560px)}}.crash-screen{min-height:100%;display:grid;place-content:center;gap:12px;padding:24px;text-align:center}
