.toolbar-popover-host,.toolbar-popover-host>.toolbar-action .toolbar-icon-btn{position:relative}.toolbar-creation-picker,.toolbar-creation-picker__drawer-btn{position:relative}@keyframes sim-spin{to{transform:rotate(360deg)}}.tree-list,.tree-children{gap:2px;padding-left:10px;display:grid;position:relative}.tree-row--nested:before,.tree-row--deep:before{display:none}@keyframes inline-spinner-spin{to{transform:rotate(360deg)}}@media (width<=399px){.properties-field{grid-template-columns:1fr;align-items:stretch;gap:5px}.properties-field>:not(span){grid-column:auto}.cam-operation-properties .properties-field{grid-template-columns:1fr}.op-param-ref{display:none}}.cam-tools,.cam-operations-shell{height:100%;min-height:0}.cam-operations-layout,.panel-split{height:100%;min-height:0}.cam-operation-tree .tree-row:focus-visible,.cam-operation-tree .tree-row--selected,.cam-operation-tree .tree-row--selected:hover,.cam-operation-tree .tree-row--selected:focus-visible,.cam-operation-tree .tree-row--selected:active{background:var(--accent-soft)}.cam-operation-tree .tree-row--selected .tree-label,.cam-operation-tree .tree-row:not(.tree-row--selected) .tree-label{color:var(--text)}@keyframes cam-spin{to{transform:rotate(360deg)}}@keyframes cam-pulse{0%,to{opacity:.5}50%{opacity:1}}.cam-tool-tree .tree-row:focus-visible,.cam-tool-tree .tree-row--selected,.cam-tool-tree .tree-row--selected:hover,.cam-tool-tree .tree-row--selected:focus-visible,.cam-tool-tree .tree-row--selected:active{background:var(--accent-soft)}@media (width<=920px){.app-body{grid-template-areas:"left centre""right right";gap:8px;grid-template-columns:220px 1fr!important}.panel-left{grid-area:left}.panel-centre{grid-area:centre}.panel-right{grid-area:right}}@media (width<=760px){.app-body{grid-template-areas:"left""centre""right";grid-template-columns:1fr!important}.toolbar{gap:10px}.toolbar-project-block,.toolbar-group{border-right:none;padding-right:0}.cam-tools-layout{grid-template-columns:1fr}}@keyframes toolpath-overlay-in{0%{opacity:0}to{opacity:1}}.cam-operation-label-btn:hover,.cam-operation-label-btn--expanded{color:var(--accent)}@keyframes cam-operation-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.cam-add-menu--vertical{border-radius:8px;width:100%;max-width:100%;max-height:60vh}.cam-operation-row{gap:6px;min-height:28px;padding:5px 10px}.cam-operation-pass-buttons{gap:3px}.cam-operation-details__image-container{height:140px}}.dialog-backdrop{background:var(--shadow-strong);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--bg-elev-1);border:1px solid var(--line-strong);width:100%;max-width:800px;max-height:90vh;box-shadow:0 24px 48px var(--shadow-strong);border-radius:14px;grid-template-rows:auto 1fr auto;display:grid;overflow:hidden}.dialog--no-clip,.dialog--no-clip .dialog-body{overflow:visible}.dialog--new-project{max-width:720px}.dialog--new-project .dialog-body{grid-template-columns:300px 1fr;grid-template-areas:"form preview""examples examples";gap:16px 18px;padding:16px}.dialog--new-project .dialog-section{grid-area:form;gap:12px}.dialog--new-project .dialog-preview-container{grid-area:preview}.dialog--new-project .new-project-examples{border-top:1px solid var(--line);grid-area:examples;padding-top:14px}.dialog--new-project .dialog-section-group{gap:6px}.dialog--new-project .dialog-section-title{margin-bottom:2px}.dialog--new-project .project-template-list{gap:8px}.dialog--new-project .project-template-card{padding:9px 12px}.dialog--import{max-width:480px}.dialog--import-with-layers{max-width:720px}.dialog--unit-conversion{max-width:560px}.unit-conversion-eyebrow{color:var(--accent-strong);letter-spacing:.14em;text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:700;display:block}.unit-conversion-route{align-items:center;gap:12px;width:100%;display:flex}.unit-conversion-route>span:not(.unit-conversion-route__arrow){border:1px solid var(--line-strong);background:var(--surface-subtle);width:52px;height:38px;color:var(--text);font-family:var(--font-mono);text-transform:uppercase;border-radius:8px;place-items:center;font-size:14px;font-weight:700;display:grid}.unit-conversion-route>span:last-child{border-color:color-mix(in oklab, var(--accent) 70%, var(--line-strong));color:var(--accent-strong)}.unit-conversion-route__arrow{color:var(--accent-strong);font-family:var(--font-mono);text-align:center;text-shadow:0 0 12px color-mix(in oklab, var(--accent) 45%, transparent);flex:1;font-size:24px;font-weight:400;line-height:1}.unit-conversion-intro{color:var(--text-dim);margin:0;font-size:13px;line-height:1.55}.unit-conversion-options{gap:10px;display:grid}.unit-conversion-option{border:1px solid var(--line-strong);background:var(--surface-translucent);width:100%;color:var(--text-dim);cursor:pointer;font:inherit;text-align:left;border-radius:10px;gap:7px;padding:14px 16px;font-size:12px;line-height:1.45;transition:border-color .12s,background .12s,transform .12s;display:grid}.unit-conversion-option:hover{border-color:var(--line-bright);background:var(--surface-raised);transform:translateY(-1px)}.unit-conversion-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.unit-conversion-option--recommended{border-color:color-mix(in oklab, var(--accent) 62%, var(--line-strong));background:linear-gradient(120deg, var(--accent-soft), var(--surface-translucent) 62%)}.unit-conversion-option--reinterpret:hover{border-color:color-mix(in srgb, var(--warning-text) 58%, transparent)}.unit-conversion-option__heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.unit-conversion-option__heading strong{color:var(--text);font-size:14px;font-weight:650}.unit-conversion-option__badge{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent-strong);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:9px;font-weight:700}.unit-conversion-option code{border:1px solid var(--surface-sheen-strong);background:var(--surface-input);color:var(--text);font-family:var(--font-mono);border-radius:5px;justify-self:start;padding:3px 7px;font-size:11px}@media (width<=520px){.dialog-body--unit-conversion{padding:16px}.unit-conversion-option{padding:13px}.unit-conversion-option__heading{flex-direction:column;align-items:flex-start;gap:6px}}.dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dialog-title{color:var(--text);font-size:18px;font-weight:600}.dialog-close{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.dialog-close:hover{background:var(--surface-sheen-mid);color:var(--text)}.dialog-body{grid-template-columns:320px 1fr;gap:24px;padding:20px;display:grid;overflow:auto}.dialog-body--import{grid-template-columns:1fr}.dialog-body--import-with-layers{grid-template-columns:1fr 220px}.dialog-body--unit-conversion{grid-template-columns:1fr;gap:18px}.dialog-footer{border-top:1px solid var(--line);background:var(--surface-subtle);justify-content:flex-end;gap:12px;padding:16px 20px;display:flex}.dialog-section{align-content:start;gap:16px;display:grid}.dialog-section-group{gap:8px;display:grid}.dialog-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;font-size:12px;font-weight:700}.dialog-preview-container{grid-template-rows:auto 1fr;gap:10px;min-height:0;display:grid}.dialog-preview{background:var(--surface-subtle);border:1px solid var(--line-strong);font-family:var(--font-mono);color:var(--text-dim);white-space:pre;-webkit-user-select:text;user-select:text;border-radius:10px;padding:12px;font-size:12px;overflow:auto}.export-option-group{gap:10px;display:grid}.export-option{color:var(--text);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:flex}.export-option input{width:16px;height:16px;accent-color:var(--accent)}.dialog-body--gcode-export{grid-template-rows:minmax(0,1fr);overflow:hidden}.dialog-body--gcode-export .dialog-section{flex-direction:column;gap:16px;min-height:0;display:flex;overflow-y:auto}.dialog-body--gcode-export .dialog-section>.dialog-section-group{flex:none}.dialog-body--gcode-export .dialog-section>.dialog-section-group--operations{flex-direction:column;flex:0 auto;gap:8px;min-height:132px;display:flex}.dialog-body--gcode-export .dialog-preview-container{flex-direction:column;gap:10px;min-height:0;display:flex}.dialog-body--gcode-export .dialog-preview{flex:auto;min-height:0}.dialog-body--gcode-export .export-warning-list{max-height:150px;margin-top:0;overflow-y:auto}.export-operations-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.export-operations-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.4}.export-operation-list{overscroll-behavior:contain;border:1px solid var(--line);background:var(--surface-subtle);border-radius:8px;flex:auto;min-height:0;max-height:208px;padding:10px 12px;overflow-y:auto}.export-option--disabled{color:var(--text-dim);cursor:default}.export-option-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.export-option-note{color:var(--text-dim);white-space:nowrap;margin-left:auto;font-size:11px}.export-warning-list{gap:8px;margin-top:12px;display:grid}.export-warning{background:color-mix(in srgb, var(--warning-text) 8%, transparent);border:1px solid color-mix(in srgb, var(--warning-text) 40%, transparent);color:var(--warning-text);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.45}.project-template-list{gap:10px;display:grid}.project-template-card{border:1px solid var(--line-strong);background:var(--surface-translucent);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:10px;gap:4px;padding:12px 14px;display:grid}.project-template-card:hover{border-color:var(--line-bright);background:var(--surface-hover)}.project-template-card--active{border-color:var(--accent);background:var(--accent-soft)}.project-template-card__title{font-size:13px;font-weight:600}.project-template-card__meta{color:var(--text-dim);font-size:11px;line-height:1.4}.project-template-preview{white-space:normal}.project-template-preview__content{gap:12px;display:grid}.project-template-preview__title{color:var(--text);font-size:14px;font-weight:600}.project-template-preview__row{color:var(--text-dim);justify-content:space-between;gap:16px;font-size:12px;display:flex}.project-template-preview__row strong{color:var(--text);text-align:right;font-weight:600}.project-template-preview__empty{color:var(--text-dim);font-size:12px;line-height:1.5}.import-dialog__file-button{justify-self:start}.import-dialog__file-name{color:var(--text-dim);font-size:12px;line-height:1.5}.import-dialog__info-row{min-height:32px;color:var(--text-dim);justify-content:space-between;align-items:center;gap:16px;font-size:13px;display:flex}.import-dialog__info-row strong{color:var(--text);font-weight:600}.import-dialog__info-row select,.import-dialog__info-row input[type=number]{background:var(--surface-panel);border:1px solid var(--line-strong);width:130px;color:var(--text);height:32px;font:inherit;border-radius:7px;flex-shrink:0;padding:0 8px;font-size:13px}.import-dialog__info-row select:focus,.import-dialog__info-row input[type=number]:focus{border-color:var(--accent);outline:none}.import-dialog__field-note{color:var(--text-dim);margin-top:-2px;font-size:12px;line-height:1.45}.import-dialog__field-note--warn{color:var(--warning-text)}.import-progress-container{gap:8px;margin-top:16px;display:grid}.import-progress-label{color:var(--text-dim);font-size:12px;font-weight:600}.import-progress-track{background:var(--surface-subtle);border:1px solid var(--line);border-radius:3px;width:100%;height:6px;overflow:hidden}.import-progress-fill{background:var(--accent);width:100%;height:100%;transform:scaleX(var(--progress,0));transform-origin:0;transition:transform .1s linear}.import-dialog__analysis{background:var(--surface-sheen-soft);border:1px solid var(--line);border-radius:8px;gap:8px;margin-top:8px;padding:12px;display:grid}.import-dialog__analysis-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.import-dialog__analysis-rows{gap:4px;display:grid}.import-dialog__analysis-row{color:var(--text-dim);justify-content:space-between;align-items:center;font-size:13px;display:flex}.import-dialog__analysis-row strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.import-dialog__toggle-row{min-height:32px;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.import-dialog__toggle-label{color:var(--text-dim);white-space:nowrap;line-height:1.2}.import-dialog__toggle-input{width:16px;height:16px;accent-color:var(--accent);background:var(--surface-panel);border:1px solid var(--line-strong);cursor:pointer;border-radius:4px;flex:none;margin:0}.import-dialog__layers-column{border-left:1px solid var(--line);grid-template-rows:auto 1fr auto;gap:8px;min-height:0;padding-left:20px;display:grid}.import-dialog__layers-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.import-dialog__layers-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.4}.import-dialog__layers-toggle:disabled{opacity:.4;cursor:default}.import-dialog__layer-list{border:1px solid var(--line);background:var(--surface-raised);border-radius:6px;flex-direction:column;gap:1px;max-height:180px;padding:4px 0;display:flex;overflow-y:auto}.import-dialog__layer-list--fill{height:100%;max-height:none}.import-dialog__layer-row{cursor:pointer;border-radius:4px;align-items:center;gap:8px;min-height:26px;padding:4px 10px;display:flex}.import-dialog__layer-row:hover{background:var(--surface-hover)}.import-dialog__layer-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.import-dialog__layer-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.btn-primary{background:var(--accent);color:var(--on-accent);cursor:pointer;border:none;border-radius:8px;height:38px;padding:0 20px;font-weight:600}.btn-primary:hover{background:var(--accent-strong)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{border:1px solid var(--line-strong);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;height:38px;padding:0 20px}.btn-secondary:hover{border-color:var(--line-bright);background:var(--surface-sheen-soft)}.dialog--print-design{max-width:1000px}.dialog-body--print-design{grid-template-columns:320px 1fr}.print-preview{background:var(--surface-subtle);border:1px solid var(--line-strong);border-radius:10px;place-items:center;min-height:260px;padding:18px;display:grid;overflow:auto}.print-preview__page{background:var(--on-accent);width:100%;max-width:100%;height:auto;max-height:56vh;box-shadow:0 10px 30px var(--shadow-strong)}.print-preview__page svg{width:100%;height:100%;display:block}.dialog--motion-debug{max-width:1180px}[data-shell-mode=tablet] .dialog--motion-debug,[data-shell-mode=tablet-compact] .dialog--motion-debug{max-width:95vw}.dialog-body--motion-debug{grid-template-columns:320px 1fr;min-height:540px}[data-shell-mode=tablet] .dialog-body--motion-debug,[data-shell-mode=tablet-compact] .dialog-body--motion-debug{grid-template-columns:260px 1fr}.motion-debug__view{flex-direction:column;gap:0;min-height:480px;display:flex}.motion-debug__toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.motion-debug__toolbar select,.motion-debug__toolbar button{font-size:12px}.motion-debug__svg-wrap{background:var(--surface-subtle);border:1px solid var(--line-strong);cursor:grab;border-radius:0 0 10px 10px;flex:1;min-height:420px;position:relative;overflow:hidden}.motion-debug__svg-wrap:active{cursor:grabbing}.motion-debug__svg{touch-action:none;width:100%;height:100%;min-height:420px;display:block}.motion-debug__sidebar{flex-direction:column;gap:14px;font-size:12px;display:flex}.motion-debug__section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0 0 4px;font-size:11px}.motion-debug__layers{gap:6px;display:grid}.motion-debug__layer-row{align-items:center;gap:8px;display:flex}.motion-debug__swatch{border-radius:2px;flex:none;width:22px;height:4px}.motion-debug__metrics{color:var(--text-dim);gap:4px;display:grid}.motion-debug__metrics strong{color:var(--text);font-weight:600}.motion-debug__diagnostic{border-top:1px solid var(--line);border-radius:0 0 10px 10px;padding:8px 10px;font-size:12px}.motion-debug__diagnostic--verified{color:var(--success)}.motion-debug__diagnostic--warning{color:var(--warning-text)}.motion-debug__warnings{color:var(--text-dim);gap:2px;max-height:120px;margin-top:4px;padding-right:4px;font-size:11px;display:grid;overflow-y:auto}.motion-debug__empty{color:var(--text-dim);place-items:center;min-height:420px;font-size:13px;display:grid}[data-shell-mode=tablet] .motion-debug__layer-row,[data-shell-mode=tablet-compact] .motion-debug__layer-row{min-height:44px}[data-shell-mode=tablet] .motion-debug__layer-row input[type=checkbox],[data-shell-mode=tablet-compact] .motion-debug__layer-row input[type=checkbox]{width:22px;height:22px}[data-shell-mode=tablet] .motion-debug__toolbar button,[data-shell-mode=tablet-compact] .motion-debug__toolbar button{min-height:44px;font-size:14px}[data-shell-mode=tablet] .motion-debug__sidebar select,[data-shell-mode=tablet-compact] .motion-debug__sidebar select{min-height:44px;font-size:16px}[data-shell-mode=tablet] .motion-debug__svg-wrap,[data-shell-mode=tablet-compact] .motion-debug__svg-wrap{min-height:360px}[data-shell-mode=tablet] .motion-debug__section-title,[data-shell-mode=tablet-compact] .motion-debug__section-title{font-size:12px}[data-shell-mode=tablet] .motion-debug__metrics,[data-shell-mode=tablet-compact] .motion-debug__metrics{font-size:13px}.motion-debug__selection{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.print-dialog__summary{color:var(--text-dim);font-size:12px}.print-dialog__note{color:var(--text-dim);font-size:11px;line-height:1.45}.print-dialog__row{color:var(--text-dim);align-items:center;gap:8px;font-size:13px;display:flex}.print-dialog__row-label{flex:1;min-width:0}.print-dialog__row input[type=number]{background:var(--surface-panel);border:1px solid var(--line-strong);width:84px;color:var(--text);height:32px;font:inherit;border-radius:7px;flex-shrink:0;padding:0 8px;font-size:13px}.print-dialog__row input[type=number]:focus{border-color:var(--accent);outline:none}.print-dialog__custom-scale{align-items:center;gap:10px;display:flex}.print-dialog__content-options{grid-template-columns:1fr 1fr;gap:6px 12px}[data-shell-mode=tablet] .print-dialog__content-options,[data-shell-mode=tablet-compact] .print-dialog__content-options{grid-template-columns:1fr;gap:10px}.print-dialog__scale-input{background:var(--surface-panel);border:1px solid var(--line-strong);width:96px;color:var(--text);height:30px;font:inherit;border-radius:7px;padding:0 8px;font-size:13px}.print-dialog__scale-input:disabled{opacity:.5}.print-dialog__scale-input:focus{border-color:var(--accent);outline:none}@media (width<=900px){.dialog-body--print-design{grid-template-columns:1fr}.print-preview__page{width:auto;max-height:40vh}}.dialog--panel-expand{max-width:960px}.dialog-body--panel-expand{grid-template-columns:1fr;min-height:0;padding:20px;overflow-y:auto}.dialog--panel-expand .properties-panel{columns:2;column-gap:24px;display:block}.dialog--panel-expand .properties-group{margin-bottom:10px;display:block}.dialog--panel-expand .properties-group>*+*{margin-top:6px}.dialog--panel-expand .properties-field{break-inside:avoid}.dialog--panel-expand .disclosure-section{break-inside:avoid;margin-bottom:10px}.dialog--panel-expand .properties-check,.dialog--panel-expand .properties-actions,.dialog--panel-expand .properties-machine-status,.dialog--panel-expand .properties-constraint-row,.dialog--panel-expand .properties-constraint,.dialog--panel-expand .cam-section-body,.dialog--panel-expand .cam-region-note,.dialog--panel-expand .cam-field-note-list,.dialog--panel-expand .cam-field-message{break-inside:avoid}@media (width<=720px){.dialog--panel-expand .properties-panel{columns:1;display:block}.dialog-body--panel-expand{max-height:60vh;overflow-y:auto}.dialog-body,.dialog-body--import-with-layers{grid-template-columns:1fr}.import-dialog__layers-column{border-left:none;border-top:1px solid var(--line);padding-top:16px;padding-left:0}}[data-shell-mode=tablet] .import-dialog__info-row,[data-shell-mode=tablet-compact] .import-dialog__info-row{min-height:44px}[data-shell-mode=tablet] .import-dialog__info-row select,[data-shell-mode=tablet] .import-dialog__info-row input[type=number],[data-shell-mode=tablet-compact] .import-dialog__info-row select,[data-shell-mode=tablet-compact] .import-dialog__info-row input[type=number]{height:44px;font-size:16px}[data-shell-mode=tablet] .import-dialog__toggle-row,[data-shell-mode=tablet-compact] .import-dialog__toggle-row{min-height:44px}[data-shell-mode=tablet] .import-dialog__toggle-input,[data-shell-mode=tablet-compact] .import-dialog__toggle-input{width:22px;height:22px}[data-shell-mode=tablet] .import-dialog__layer-row,[data-shell-mode=tablet-compact] .import-dialog__layer-row{min-height:44px;padding:8px 10px}[data-shell-mode=tablet] .import-dialog__layer-row input[type=checkbox],[data-shell-mode=tablet-compact] .import-dialog__layer-row input[type=checkbox],[data-shell-mode=tablet] .export-option input,[data-shell-mode=tablet-compact] .export-option input{width:22px;height:22px}[data-shell-mode=tablet] .export-option,[data-shell-mode=tablet-compact] .export-option{min-height:44px}[data-shell-mode=tablet] .export-operation-list,[data-shell-mode=tablet-compact] .export-operation-list{max-height:320px}[data-shell-mode=tablet] .dialog-body--gcode-export .dialog-section>.dialog-section-group--operations,[data-shell-mode=tablet-compact] .dialog-body--gcode-export .dialog-section>.dialog-section-group--operations{min-height:196px}[data-shell-mode=tablet] .feat-btn,[data-shell-mode=tablet-compact] .feat-btn{height:38px;font-size:13px}[data-shell-mode=tablet] .dialog input,[data-shell-mode=tablet] .dialog select,[data-shell-mode=tablet] .dialog textarea,[data-shell-mode=tablet-compact] .dialog input,[data-shell-mode=tablet-compact] .dialog select,[data-shell-mode=tablet-compact] .dialog textarea{min-height:44px;font-size:16px}[data-shell-mode=tablet] .dialog button,[data-shell-mode=tablet-compact] .dialog button{min-height:38px}.dialog--machine-editor{max-width:820px}.dialog--machine-editor .dialog-body{grid-template-columns:360px 1fr}.machine-editor-field{gap:4px;display:grid}.machine-editor-label{color:var(--text-dim);font-size:12px;font-weight:500}.machine-editor-input{background:var(--surface-panel);border:1px solid var(--line-strong);color:var(--text);height:34px;font:inherit;box-sizing:border-box;border-radius:7px;width:100%;padding:0 10px;font-size:13px}.machine-editor-input:focus{border-color:var(--accent);outline:none}.machine-editor-textarea{background:var(--surface-panel);border:1px solid var(--line-strong);color:var(--text);font:inherit;font-size:13px;font-family:var(--font-mono);box-sizing:border-box;resize:vertical;border-radius:7px;width:100%;min-height:42px;padding:8px 10px;line-height:1.45}.machine-editor-textarea:focus{border-color:var(--accent);outline:none}.machine-editor-json{background:var(--surface-subtle);border:1px solid var(--line-strong);color:var(--text);font:inherit;font-size:12px;font-family:var(--font-mono);box-sizing:border-box;resize:vertical;tab-size:2;border-radius:7px;width:100%;min-height:320px;padding:10px;line-height:1.5}.machine-editor-json:focus{border-color:var(--accent);outline:none}.machine-editor-error{background:color-mix(in srgb, var(--danger-text) 8%, transparent);border:1px solid color-mix(in srgb, var(--danger-text) 40%, transparent);color:var(--danger-text);border-radius:7px;margin-top:8px;padding:8px 12px;font-size:12px;line-height:1.45}.machine-editor-vars{gap:6px;margin-top:4px;display:grid}.machine-editor-var{grid-template-columns:auto 1fr;align-items:baseline;gap:10px;font-size:12px;line-height:1.45;display:grid}.machine-editor-var-name{font-family:var(--font-mono);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:11px}.machine-editor-var-desc{color:var(--text-dim)}.machine-editor-var-context{color:color-mix(in oklab, var(--text-dim) 70%, transparent);font-style:italic}.dialog--machine-manager{max-width:720px}.dialog-body--machine-manager{grid-template-columns:240px 1fr;gap:0;padding:0;overflow:hidden}.machine-manager-list{border-right:1px solid var(--line);max-height:50vh;overflow-y:auto}.machine-manager-item{border:none;border-bottom:1px solid var(--line);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.machine-manager-item:hover{background:var(--surface-sheen)}.machine-manager-item--selected{background:var(--surface-hover)}.machine-manager-item--active .machine-manager-item-name{color:var(--accent);font-weight:600}.machine-manager-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.machine-manager-detail{flex-direction:column;gap:14px;max-height:50vh;padding:16px 20px;display:flex;overflow-y:auto}.machine-manager-detail-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.machine-manager-detail-name{color:var(--text);margin:0;font-size:16px;font-weight:600}.machine-manager-badge{letter-spacing:.06em;text-transform:uppercase;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:600;line-height:1.4;display:inline-block}.machine-manager-badge--active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.machine-manager-badge--custom{background:var(--surface-hover);color:var(--text-dim)}.machine-manager-badge--builtin{background:color-mix(in srgb, var(--cut) 12%, transparent);color:var(--cut)}.machine-manager-meta{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px;display:grid}.machine-manager-meta dt{color:var(--text-dim);font-weight:500}.machine-manager-meta dd{color:var(--text);margin:0}.machine-manager-hint{color:var(--text-dim);grid-column:1/-1;margin-top:4px;font-size:12px;font-style:italic}.machine-manager-actions{flex-direction:column;gap:10px;margin-top:4px;display:flex}.machine-manager-actions-row{flex-wrap:wrap;gap:6px;display:flex}.machine-manager-actions-row .btn-secondary{flex:none}.machine-manager-action--remove{color:var(--danger-text);cursor:pointer;font:inherit;opacity:.8;background:0 0;border:none;align-self:flex-start;padding:2px 0;font-size:12px}.machine-manager-action--remove:hover{opacity:1;text-decoration:underline}.machine-manager-empty{color:var(--text-dim);text-align:center;padding:24px;font-size:14px}.properties-machine-status{align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.properties-machine-ext{color:var(--text-dim);font-family:var(--font-mono);font-size:11px}.properties-machine-hint{color:var(--text-dim);font-size:11px;font-style:italic}@media (width<=720px){.dialog--machine-editor .dialog-body{grid-template-columns:1fr}}@media (pointer:coarse){.dialog--machine-editor{border:none;border-radius:0;max-width:100%;max-height:100vh}.dialog--machine-editor .dialog-body{grid-template-columns:1fr}.machine-editor-var{font-size:14px}.dialog--machine-manager{border:none;border-radius:0;max-width:100%;max-height:100vh}.dialog-body--machine-manager{grid-template-rows:auto 1fr;grid-template-columns:1fr}.machine-manager-list{border-right:none;border-bottom:1px solid var(--line);max-height:30vh}.machine-manager-detail{max-height:none}.machine-manager-actions{gap:14px}.machine-manager-actions-row{gap:10px}.machine-manager-actions-row .btn-secondary{min-height:44px;padding:0 18px;font-size:15px}.machine-manager-action--remove{min-height:44px;font-size:15px}}.dialog--theme-manager{max-width:780px}.dialog-body--theme-manager{grid-template-columns:264px 1fr;gap:0;padding:0;overflow:hidden}.theme-manager-list{border-right:1px solid var(--line);max-height:60vh;overflow-y:auto}.theme-manager-item{border:none;border-bottom:1px solid var(--line);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.theme-manager-item:hover{background:var(--surface-sheen)}.theme-manager-item--selected{background:var(--surface-hover)}.theme-manager-item--active .theme-manager-item-name{color:var(--accent);font-weight:600}.theme-manager-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.theme-swatch{border:1px solid var(--line-strong);border-radius:6px;flex:none;display:inline-flex;overflow:hidden}.theme-swatch__chip{width:8px;height:22px}.theme-manager-detail{flex-direction:column;gap:14px;max-height:60vh;padding:16px 20px;display:flex;overflow-y:auto}.theme-manager-rename{align-items:center;gap:8px;display:inline-flex}.theme-manager-rename__input{border:1px solid var(--line-strong);background:var(--surface-input);height:34px;color:var(--text);font:inherit;border-radius:8px;padding:0 10px;font-size:14px}.theme-manager-notice{border-radius:8px;margin:0;padding:8px 12px;font-size:13px}.theme-manager-notice--error{border:1px solid color-mix(in oklab, var(--danger-text) 45%, transparent);background:color-mix(in oklab, var(--danger-text) 12%, transparent);color:var(--danger-text)}.theme-manager-notice--info{border:1px solid var(--line);background:var(--surface-hover);color:var(--text-dim)}.theme-manager-system{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.theme-manager-system__title{color:var(--text-dim);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.theme-manager-system__mode{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.theme-manager-system__pair{grid-template-columns:1fr 1fr;gap:10px;padding-left:24px;display:grid}.theme-manager-system__slot{color:var(--text-dim);gap:4px;font-size:12px;display:grid}.theme-manager-system__slot select{border:1px solid var(--line-strong);background:var(--surface-input);height:34px;color:var(--text);font:inherit;border-radius:8px;padding:0 8px;font-size:13px}.theme-manager-system__hint{color:var(--text-dim);grid-column:1/-1;margin:0;font-size:12px;font-style:italic}.dialog--theme-editor{grid-template-rows:auto auto 1fr auto;max-width:880px}.theme-editor-recovery{justify-content:space-between;align-items:center;gap:12px;padding:8px 20px;font-size:13px;font-weight:600;display:flex}.theme-editor-recovery button:disabled{opacity:.45;cursor:default}.dialog-body--theme-editor{grid-template-columns:minmax(0,1.2fr) minmax(240px,1fr);gap:20px;padding:16px 20px;overflow:hidden}.theme-editor-fields{align-content:start;gap:16px;padding-right:6px;display:grid;overflow-y:auto}.theme-editor-side{align-content:start;gap:14px;display:grid;overflow-y:auto}.theme-editor-name{gap:4px;display:grid}.theme-editor-name__label{color:var(--text-dim);font-size:12px;font-weight:600}.theme-editor-name__input{border:1px solid var(--line-strong);background:var(--surface-input);height:36px;color:var(--text);font:inherit;border-radius:8px;padding:0 10px;font-size:14px}.theme-editor-name__base{color:var(--text-dim);font-size:12px}.theme-editor-group{gap:6px;display:grid}.theme-editor-group__title{color:var(--text);margin:0;font-size:13px;font-weight:700}.theme-editor-group__hint{color:var(--text-dim);margin:0 0 2px;font-size:11.5px}.theme-editor-row{grid-template-columns:minmax(0,1fr) 34px minmax(96px,132px) 18px 26px;align-items:center;gap:8px;min-height:30px;display:grid}.theme-editor-row--overridden .theme-editor-row__label{color:var(--accent-strong);font-weight:650}.theme-editor-row__label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.theme-editor-row__picker{border:1px solid var(--line-strong);background:var(--surface-input);cursor:pointer;border-radius:6px;width:34px;height:26px;padding:1px}.theme-editor-row__value{border:1px solid var(--line-strong);background:var(--surface-input);height:28px;color:var(--text);border-radius:6px;min-width:0;padding:0 8px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}.theme-editor-row__value--invalid{border-color:var(--danger-text);color:var(--danger-text)}.theme-editor-row__base{border:1px solid var(--line-strong);border-radius:5px;width:18px;height:18px}.theme-editor-row__reset{border:1px solid var(--line-strong);width:26px;height:26px;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;font-size:13px;line-height:1}.theme-editor-row__reset:disabled{opacity:.3;cursor:default}.theme-editor-row__reset:not(:disabled):hover{background:var(--surface-hover)}.theme-preview-samples{gap:10px;display:grid}.theme-preview-samples__panel{border:1px solid var(--line);background:var(--surface-panel);border-radius:10px;gap:8px;padding:10px 12px;display:grid}.theme-preview-samples__title{color:var(--text-dim);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:10.5px;font-weight:800}.theme-preview-samples__text{color:var(--text);margin:0;font-size:13px}.theme-preview-samples__text-dim{color:var(--text-dim);margin:0;font-size:12.5px}.theme-preview-samples__row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.theme-preview-samples__row .btn-primary,.theme-preview-samples__row .btn-secondary{pointer-events:none;height:30px;padding:0 12px;font-size:12.5px}.theme-preview-samples__selected{border:1px solid color-mix(in oklab, var(--accent) 55%, var(--line));background:var(--accent-soft);color:var(--text);border-radius:7px;padding:4px 10px;font-size:12.5px}.theme-preview-samples__focus{outline:2px solid var(--accent);outline-offset:1px;background:var(--surface-input);color:var(--text);border-radius:7px;padding:4px 10px;font-size:12.5px}.theme-preview-samples__positive{color:var(--add);margin:0;font-size:12.5px;font-weight:650}.theme-preview-samples__warning{color:var(--warning-text);margin:0;font-size:12.5px;font-weight:650}.theme-preview-samples__danger{color:var(--danger-text);margin:0;font-size:12.5px;font-weight:650}.theme-preview-samples__canvas{border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden}.theme-preview-samples__canvas-svg{width:100%;height:auto;display:block}.theme-preview-samples__canvas-label{border-radius:5px;padding:2px 7px;font-size:11px;font-weight:600;position:absolute;top:8px;right:8px}.theme-preview-samples__chip{color:var(--text-dim);align-items:center;gap:5px;font-size:11px;display:inline-flex}.theme-preview-samples__chip-dot{border:1px solid var(--line-strong);border-radius:4px;width:12px;height:12px}.theme-editor-footer-blocked{color:var(--danger-text);align-self:center;margin-right:auto;font-size:12.5px;font-weight:650}.theme-editor-contrast{border:1px solid var(--line);background:var(--surface-subtle);border-radius:10px;gap:6px;padding:10px 12px;display:grid}.theme-editor-contrast__title{color:var(--text-dim);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:10.5px;font-weight:800}.theme-editor-contrast__ok{color:var(--add);margin:0;font-size:12.5px;font-weight:650}.theme-editor-contrast__item{margin:0;font-size:12px;line-height:1.45}.theme-editor-contrast__item--block{color:var(--danger-text)}.theme-editor-contrast__item--warn{color:var(--warning-text)}.theme-editor-contrast__note{color:var(--text-dim);margin:2px 0 0;font-size:11px;font-style:italic}@media (pointer:coarse),(width<=960px){.dialog--theme-manager,.dialog--theme-editor{max-width:min(880px,98vw);max-height:96vh}.dialog-body--theme-manager{grid-template-rows:auto 1fr;grid-template-columns:1fr}.theme-manager-list{border-right:none;border-bottom:1px solid var(--line);max-height:26vh}.theme-manager-item{min-height:48px}.theme-manager-detail{max-height:none}.dialog-body--theme-editor{grid-template-columns:1fr;overflow-y:auto}.theme-editor-fields,.theme-editor-side{padding-right:0;overflow-y:visible}}@media (pointer:coarse){.theme-editor-row{grid-template-columns:minmax(0,1fr) 44px minmax(110px,150px) 20px 44px;min-height:44px}.theme-editor-row__picker,.theme-editor-row__reset{width:44px;height:36px}.theme-manager-system__mode{min-height:44px}}.language-manager-progress{color:var(--text-dim);margin:0;font-size:13px}.dialog--language-editor{max-width:980px}.dialog-body--language-editor{flex-direction:column;gap:12px;padding:14px 20px;display:flex;overflow:hidden}.language-editor-meta{grid-template-columns:minmax(180px,1fr) minmax(200px,1fr) auto;align-items:start;gap:14px;display:grid}.language-editor-field{color:var(--text-dim);gap:4px;font-size:12px;display:grid}.language-editor-field__input{border:1px solid var(--line-strong);background:var(--surface-input);height:34px;color:var(--text);font:inherit;border-radius:8px;padding:0 10px;font-size:14px}.language-editor-field__input--invalid{border-color:var(--danger-text)}.language-editor-field__hint{font-size:11px;font-style:italic}.language-editor-progress{color:var(--text-dim);white-space:nowrap;align-self:center;margin:0;font-size:13px}.language-editor-toolbar{align-items:center;gap:12px;display:flex}.language-editor-search{border:1px solid var(--line-strong);background:var(--surface-input);height:34px;color:var(--text);font:inherit;border-radius:8px;flex:1;padding:0 10px;font-size:13px}.language-editor-filter{color:var(--text-dim);align-items:center;gap:8px;font-size:12px;display:inline-flex}.language-editor-filter select{border:1px solid var(--line-strong);background:var(--surface-input);height:34px;color:var(--text);font:inherit;border-radius:8px;padding:0 8px;font-size:13px}.language-editor-sections{border-top:1px solid var(--line);flex:1;overflow-y:auto}.language-editor-no-matches{color:var(--text-dim);margin:14px 0;font-size:13px;font-style:italic}.language-editor-section{border-bottom:1px solid var(--line)}.language-editor-section__summary{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:10px;padding:10px 6px;font-size:13px;font-weight:650;list-style-position:inside;display:flex}.language-editor-section__summary:hover{background:var(--surface-sheen)}.language-editor-section__count{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px;font-weight:400}.language-editor-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,4fr);gap:4px 14px;padding:8px 6px 10px;display:grid}.language-editor-row__meta{align-content:start;gap:3px;min-width:0;display:grid}.language-editor-row__key{color:var(--text-dim);overflow-wrap:anywhere;font-size:11px}.language-editor-row__text{color:var(--text);overflow-wrap:anywhere;font-size:13px}.language-editor-row__text--base{color:var(--text-dim)}.language-editor-row__text-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-right:6px;font-size:11px}.language-editor-row__edit{align-items:flex-start;gap:6px;min-width:0;display:flex}.language-editor-row__input{border:1px solid var(--line-strong);background:var(--surface-input);min-width:0;color:var(--text);font:inherit;resize:vertical;border-radius:8px;flex:1;padding:6px 10px;font-size:13px}.language-editor-row__input--invalid{border-color:var(--danger-text)}.language-editor-row__reset{border:1px solid var(--line);width:30px;height:30px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:7px;flex:none;font-size:14px}.language-editor-row__reset:disabled{opacity:.35;cursor:default}.language-editor-row__reset:not(:disabled):hover{background:var(--surface-hover);color:var(--text)}.language-editor-row__issue{color:var(--danger-text);grid-column:1/-1;margin:0;font-size:12px}.language-editor-footer-note{color:var(--text-dim);margin-right:auto;font-size:12px;font-style:italic}@media (pointer:coarse),(width<=960px){.dialog--language-editor{max-width:min(980px,98vw);max-height:96vh}.language-editor-meta,.language-editor-row{grid-template-columns:1fr}}@media (pointer:coarse){.language-editor-section__summary{min-height:44px}.language-editor-row__input{min-height:40px}.language-editor-row__reset{width:44px;height:40px}}.canvas-workflow-panel{z-index:26;border:1px solid color-mix(in oklab, var(--accent) 62%, var(--line-strong));background:linear-gradient(180deg, var(--surface-popover), var(--surface-raised));width:min(340px,100% - 24px);box-shadow:0 18px 44px var(--shadow-strong);color:var(--text);pointer-events:auto;border-radius:8px;position:absolute;overflow:hidden}.canvas-workflow-panel__handle{border-bottom:1px solid color-mix(in oklab, var(--accent) 25%, var(--line));cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;grid-template-columns:18px auto;align-items:center;gap:8px;min-height:40px;padding:0 12px;display:grid}.canvas-workflow-panel__handle:active{cursor:grabbing}.canvas-workflow-panel__grip{opacity:.72;background-image:radial-gradient(circle, var(--text-dim) 1.5px, transparent 2px), radial-gradient(circle, var(--text-dim) 1.5px, transparent 2px);background-position:0 0,7px 0;background-size:7px 7px;width:14px;height:18px}.canvas-workflow-panel__title{color:var(--accent-strong);font-size:13px;font-weight:700}.canvas-workflow-panel__body{gap:8px;padding:10px 12px;display:grid}.canvas-workflow-panel__step{color:var(--text-dim);font-size:12px;font-weight:600}.canvas-workflow-panel__summary{color:var(--text);font-size:13px;line-height:1.35}.canvas-workflow-panel__meta,.canvas-workflow-panel__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.canvas-workflow-panel__check{min-height:32px;color:var(--text-dim);align-items:center;gap:8px;font-size:12px;display:inline-flex}.canvas-workflow-panel__field{width:100%;min-height:32px;color:var(--text-dim);grid-template-columns:max-content minmax(72px,1fr);align-items:center;gap:10px;font-size:12px;display:grid}.canvas-workflow-panel__gear-fields,.canvas-workflow-panel__parameter-fields{align-items:stretch;gap:6px;width:100%;display:grid}.canvas-workflow-panel__field--gear,.canvas-workflow-panel__field--reference{grid-template-columns:minmax(94px,1fr) minmax(84px,104px) 50px;gap:8px;min-height:38px}.canvas-workflow-panel__field--gear>span,.canvas-workflow-panel__field--reference>span{min-width:0}.canvas-workflow-panel__gear-reference,.canvas-workflow-panel__parameter-reference{border:1px solid color-mix(in oklab, var(--accent) 24%, var(--line));background:var(--surface-input);border-radius:6px;width:50px;height:34px}.gear-reference__outline,.gear-reference__guide,.gear-reference__accent{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.gear-reference__outline{stroke:var(--text-dim);stroke-width:1.7px}.gear-reference__guide{stroke:color-mix(in oklab, var(--text-dim) 58%, transparent);stroke-width:1.1px}.gear-reference__accent{stroke:var(--accent-strong);stroke-width:1.9px}.gear-reference__accent-fill{fill:var(--accent-strong);stroke:none}.canvas-workflow-panel__check input[type=checkbox]{width:18px;height:18px;margin:0}.canvas-workflow-panel__count-input{border:1px solid var(--line-strong);background:var(--surface-panel);width:80px;height:32px;color:var(--text);border-radius:6px;outline:none;padding:0 8px;font-size:13px}.canvas-workflow-panel__count-input:focus{border-color:var(--accent)}.canvas-workflow-panel__select-input{width:min(180px,100%)}.canvas-workflow-panel__actions{justify-content:flex-end;padding:0 12px 12px}.canvas-workflow-panel__actions .tablet-cmd-btn{height:34px;padding:0 10px;font-size:12px}.overlap-feature-picker{pointer-events:none;position:absolute;inset:0;container-type:size}.overlap-feature-picker__panel{width:min(360px,100% - 24px);max-height:calc(100% - 24px)}.overlap-feature-picker__list{overscroll-behavior:contain;scrollbar-color:color-mix(in oklab, var(--accent) 70%, var(--line-strong)) var(--surface-input);scrollbar-gutter:stable;touch-action:pan-y;border:1px solid color-mix(in oklab, var(--accent) 38%, var(--line));background:var(--surface-input);max-height:min(26rem,100cqh - 164px);box-shadow:inset 0 1px 0 var(--surface-sheen);border-radius:8px;gap:6px;padding:6px;display:grid;overflow-y:auto}.overlap-feature-picker__candidate{border:1px solid color-mix(in oklab, var(--accent) 24%, var(--line));background:var(--surface-input);width:100%;min-height:44px;color:var(--text);text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 10px;display:grid}.overlap-feature-picker__candidate:hover,.overlap-feature-picker__candidate:focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:none}.overlap-feature-picker__candidate-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.overlap-feature-picker__candidate-kind{color:var(--text-dim);letter-spacing:.025em;text-transform:uppercase;font-size:11px;font-weight:700}@media (pointer:coarse){:root{--touch-target:44px}.app-shell{--control-hit-target:var(--touch-target,44px);--left-toolbar-width:48px}}[data-shell-mode=tablet] .appearance-control__trigger,[data-shell-mode=tablet-compact] .appearance-control__trigger,[data-shell-mode=tablet] .language-control__trigger,[data-shell-mode=tablet-compact] .language-control__trigger{width:var(--touch-target,44px);height:var(--touch-target,44px);min-width:var(--touch-target,44px);min-height:var(--touch-target,44px)}@media (pointer:coarse),(width<=960px){.panel-right{z-index:50;background:var(--bg-elev-1);border-left:1px solid var(--line);width:min(340px,88vw);box-shadow:-8px 0 32px var(--shadow-strong);grid-area:unset;pointer-events:none;flex-direction:column;transition:transform .22s;display:flex;position:fixed;inset:0 0 0 auto;transform:translate(100%)}.app-shell[data-right-open=true] .panel-right{pointer-events:auto;transform:translate(0)}.tablet-drawer-scrim{z-index:49;background:var(--shadow-strong);position:fixed;inset:0}.app-body,.app-body--toolbar-left,.app-body--lcr,.app-body--cr,.app-body--lc,.app-body--toolbar-left.app-body--lc{grid-template-areas:"left centre"!important}.app-body--c,.app-body--toolbar-left.app-body--c{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"centre"!important}.tablet-drawer-toggle{display:inline-flex}}[data-shell-mode=tablet] .tablet-drawer-toggle,[data-shell-mode=tablet-compact] .tablet-drawer-toggle{display:inline-flex}:where(.app-shell) .tablet-drawer-toggle,:where(.app-shell) .tablet-drawer-scrim{display:none}@media (pointer:coarse),(width<=960px){.tablet-drawer-scrim{display:block}}[data-shell-mode=tablet] .tablet-drawer-scrim,[data-shell-mode=tablet-compact] .tablet-drawer-scrim{display:block}@media (pointer:coarse){.toolbar-icon-btn{width:var(--touch-target,44px);height:var(--touch-target,44px)}.toolbar-btn,.toolbar-project-name{height:var(--touch-target,44px);padding:0 14px}.toolbar--creation.toolbar--vertical .toolbar-icon-btn{width:var(--touch-target,44px);height:var(--touch-target,44px)}.tree-row{min-height:var(--touch-target,44px);padding-top:6px;padding-bottom:6px;font-size:13px}.tree-action-btn{width:var(--touch-target,44px);height:var(--touch-target,44px);min-width:var(--touch-target,44px);min-height:var(--touch-target,44px);font-size:22px}.tree-action-btn .icon-sprite{width:24px;height:24px}.panel-tab{min-height:var(--touch-target,44px);font-size:13px}.properties-field input,.properties-field select,.properties-field textarea,.properties-field button:not(.tree-action-btn){height:var(--touch-target,44px)}}[data-shell-mode=tablet] .tree-action-btn,[data-shell-mode=tablet-compact] .tree-action-btn{font-size:22px}@media (pointer:coarse){.cam-subtab,.cam-header-action{min-height:var(--touch-target,44px);padding:0 14px}.cam-subtab--compact{min-height:var(--touch-target,44px);border-radius:6px;padding:0 10px;font-size:12px}.feature-context-menu{min-width:220px}.feature-context-menu__item{height:auto;min-height:var(--touch-target,44px);font-size:14px}.feature-context-menu__submenu-caret{font-size:18px}.panel-split__divider{padding:8px 0}.app-statusbar{flex-wrap:wrap;gap:10px;height:auto;min-height:36px;padding:6px 14px}.statusbar-depth-legend{height:var(--touch-target,44px);padding:0 10px;font-size:12px}.sketch-depth-legend__toggle{width:var(--touch-target,44px);height:var(--touch-target,44px);min-height:var(--touch-target,44px)}}[data-shell-mode=tablet] .panel-right,[data-shell-mode=tablet-compact] .panel-right{z-index:50;background:var(--bg-elev-1);border-left:1px solid var(--line);width:min(340px,88vw);box-shadow:-8px 0 32px var(--shadow-strong);pointer-events:none;flex-direction:column;transition:transform .22s;display:flex;position:fixed;inset:0 0 0 auto;transform:translate(100%)}[data-shell-mode=tablet] .app-shell[data-right-open=true] .panel-right,[data-shell-mode=tablet-compact] .app-shell[data-right-open=true] .panel-right,.app-shell[data-shell-mode=tablet][data-right-open=true] .panel-right,.app-shell[data-shell-mode=tablet-compact][data-right-open=true] .panel-right{pointer-events:auto;transform:translate(0)}[data-shell-mode=tablet] .app-body,[data-shell-mode=tablet] .app-body--toolbar-left,[data-shell-mode=tablet] .app-body--lcr,[data-shell-mode=tablet] .app-body--cr,[data-shell-mode=tablet-compact] .app-body,[data-shell-mode=tablet-compact] .app-body--toolbar-left,[data-shell-mode=tablet-compact] .app-body--lcr,[data-shell-mode=tablet-compact] .app-body--cr{grid-template-areas:"left centre"!important}[data-shell-mode=tablet] .app-body--c,[data-shell-mode=tablet-compact] .app-body--c{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"centre"!important}[data-shell-mode=tablet] .panel-resize-divider,[data-shell-mode=tablet-compact] .panel-resize-divider{display:none}[data-shell-mode=tablet] .panel-split__divider,[data-shell-mode=tablet-compact] .panel-split__divider{z-index:10;min-height:28px;margin:-10px 0;position:relative}.tablet-drawer-close{display:none}@media (pointer:coarse),(width<=960px){.tablet-drawer-close{width:var(--touch-target,44px);height:var(--touch-target,44px);color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.tablet-drawer-close:hover{color:var(--text)}}[data-shell-mode=tablet] .tablet-drawer-close,[data-shell-mode=tablet-compact] .tablet-drawer-close{width:var(--touch-target,44px);height:var(--touch-target,44px);color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.statusbar-shell-mode{background:color-mix(in srgb, var(--warning-text) 20%, transparent);color:var(--warning-text);border-radius:4px;margin-left:auto;padding:2px 6px;font-family:monospace;font-size:10px}.tablet-command-bar{display:none}[data-shell-mode=tablet] .tablet-command-bar,[data-shell-mode=tablet-compact] .tablet-command-bar{z-index:20;background:var(--surface-raised);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;border-radius:10px;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:320px;padding:6px;display:flex;position:absolute;bottom:12px;right:12px}.tablet-cmd-btn{border:1px solid var(--line);background:var(--bg-elev-1);min-width:44px;height:40px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.tablet-cmd-btn:active{background:var(--surface-sheen-strong)}.tablet-cmd-btn--active{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);color:var(--accent-strong)}.tablet-cmd-btn--confirm{background:color-mix(in oklab, var(--add) 18%, var(--surface-raised));border-color:color-mix(in oklab, var(--add) 72%, var(--line-strong));color:var(--add);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--add) 12%, transparent);font-weight:650}.tablet-cmd-btn--confirm:hover{background:color-mix(in oklab, var(--add) 24%, var(--surface-raised));border-color:var(--add)}.tablet-cmd-btn--cancel{background:color-mix(in srgb, var(--danger-text) 12%, transparent);border-color:color-mix(in srgb, var(--danger-text) 35%, transparent);color:var(--danger-text)}.tablet-cmd-btn:disabled{cursor:default;opacity:.52}.tablet-cmd-btn--active:disabled{opacity:1}.top-command-bar{align-items:center;gap:8px;width:100%;min-height:48px;padding:4px 8px;display:flex}.top-command-bar__left{flex-shrink:0;align-items:center;gap:6px;display:flex}.top-command-bar__project{align-items:center;gap:6px;min-width:0;display:flex}.top-command-bar__name{color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:6px;max-width:120px;height:36px;padding:0 6px;font-size:13px;font-weight:600;overflow:hidden}.top-command-bar__name:hover{background:var(--surface-hover)}.top-command-bar__save-state{letter-spacing:.04em;color:var(--text-dim);flex-shrink:0;font-size:10px;font-weight:600}.top-command-bar__save-state--dirty{color:var(--accent)}.top-command-bar__center{flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.top-command-bar__right{flex-shrink:0;align-items:center;gap:6px;display:flex}.top-cmd-group{align-items:center;gap:2px;display:flex}.top-cmd-group--tabs{background:var(--surface-sheen);border-radius:8px;padding:2px}.top-cmd-btn{width:40px;height:40px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.top-cmd-btn:hover{background:var(--surface-hover);color:var(--text)}.top-cmd-btn:disabled{opacity:.4;cursor:default}.top-cmd-btn--active{background:color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent-strong);box-shadow:inset 0 0 0 1.5px var(--accent)}.top-cmd-btn--emphasized{color:var(--accent)}.top-cmd-btn--operations{white-space:nowrap;gap:4px;width:auto;padding:0 12px;font-size:12px;font-weight:600}.top-cmd-btn .icon-sprite{width:20px;height:20px}@media (width<=1080px){.top-command-bar{gap:6px}.top-command-bar__center{scrollbar-width:none;justify-content:safe center;gap:6px;overflow-x:auto}.top-command-bar__center::-webkit-scrollbar{display:none}.top-cmd-btn--operations{width:auto;padding:0 8px}.top-command-bar__name{max-width:90px}}.top-cmd-tab{height:34px;color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.top-cmd-tab:hover{color:var(--text)}.top-cmd-tab--active{background:var(--surface-sheen-strong);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--surface-sheen-strong)}.tool-rail{scrollbar-width:none;flex-direction:column;align-items:center;gap:4px;width:48px;padding:4px 0;display:flex;overflow:hidden auto}.tool-rail::-webkit-scrollbar{display:none}.tool-rail__section{border-bottom:1px solid var(--surface-hover);flex-direction:column;align-items:center;gap:2px;width:100%;padding-bottom:4px;display:flex}.tool-rail__section:last-child{border-bottom:none;padding-bottom:0}.tool-rail__action{justify-content:center;align-items:center;display:flex;position:relative}.tool-rail__btn{width:40px;height:40px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.tool-rail__btn:hover{background:var(--surface-hover);color:var(--text)}.tool-rail__btn--active{background:color-mix(in srgb, var(--accent) 28%, transparent);color:var(--accent-strong);box-shadow:inset 0 0 0 1.5px var(--accent)}.tool-rail__btn--live{box-shadow:inset 0 0 0 1.5px var(--accent)}.tool-rail__btn:disabled{opacity:.4;cursor:default}.tool-rail__btn .icon-sprite{width:20px;height:20px}.tool-rail__tooltip{background:var(--bg-elev-3);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;z-index:100;border-radius:4px;margin-left:8px;padding:4px 8px;font-size:11px;transition:opacity .15s;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.tool-rail__action:hover .tool-rail__tooltip{opacity:1}.tool-rail__target-toggle{background:var(--surface-sheen);border-radius:8px;flex-direction:column;gap:2px;padding:2px;display:flex}.tool-rail__target-btn{width:36px;height:34px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.tool-rail__target-btn--active{background:var(--surface-sheen-strong);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--surface-sheen-strong)}.tool-rail__target-btn--line.tool-rail__target-btn--active{background:color-mix(in srgb, var(--role-line) 20%, transparent);color:var(--role-line-text);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--role-line) 40%, transparent)}.tool-rail__target-btn--region.tool-rail__target-btn--active{background:color-mix(in srgb, var(--role-region) 20%, transparent);color:var(--role-region-text);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--role-region) 40%, transparent)}.tool-rail__target-btn--construction.tool-rail__target-btn--active{background:color-mix(in srgb, var(--role-construction) 20%, transparent);color:var(--role-construction-text);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--role-construction) 40%, transparent)}.tool-rail__target-btn .icon-sprite{width:18px;height:18px}.tool-rail__popover{background:var(--bg-elev-2);border:1px solid var(--line);box-shadow:0 8px 24px var(--shadow-strong);z-index:100;border-radius:8px;grid-template-columns:repeat(3,auto);gap:2px;margin-left:6px;padding:6px;display:grid;position:absolute;top:0;left:100%}.tool-rail__popover--floating{z-index:1000;margin-left:0;top:auto;left:auto}.tool-rail__popover button{width:38px;height:38px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.tool-rail__popover button:hover{background:var(--surface-hover);color:var(--text)}.tool-rail__popover button.tool-rail__popover-btn--active{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent-strong);box-shadow:inset 0 0 0 1.5px var(--accent)}.tool-rail__popover button .icon-sprite{width:20px;height:20px}.snap-popover-host{z-index:60;align-items:center;display:flex;position:relative}.snap-popover-badge{background:var(--accent);min-width:14px;height:14px;color:var(--on-accent);text-align:center;pointer-events:none;border-radius:7px;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:2px;right:2px}.snap-popover{background:var(--bg-elev-2);border:1px solid var(--line);box-shadow:0 8px 28px var(--shadow-strong);z-index:100;border-radius:10px;min-width:180px;margin-top:6px;padding:8px;position:absolute;top:100%;right:0}.snap-popover-header{justify-content:center;margin-bottom:8px;display:flex}.snap-popover-enable-btn{border:1px solid var(--line);height:30px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:100%;padding:0 14px;font-size:12px;font-weight:600;display:inline-flex}.snap-popover-enable-btn--active{background:color-mix(in oklab, var(--add) 14%, var(--surface-raised));border-color:color-mix(in oklab, var(--add) 62%, var(--line-strong));color:var(--add)}.snap-popover-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.snap-popover-item{height:38px;color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:0 8px;font-size:11px;transition:color .1s,background .1s;display:flex}.snap-popover-item:hover{background:var(--surface-hover);color:var(--text)}.snap-popover-item--active,.snap-popover-item--active:hover{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent-strong)}.snap-popover-item--live{box-shadow:inset 0 0 0 1.5px var(--accent)}.snap-popover-item .icon-sprite{flex-shrink:0;width:18px;height:18px}.snap-popover-item-label{text-overflow:ellipsis;overflow:hidden}.snap-popover-grid--icon-only .snap-popover-item{justify-content:center}[data-shell-mode=tablet] .panel-left,[data-shell-mode=tablet-compact] .panel-left{z-index:50;background:var(--bg-elev-1);border-right:1px solid var(--line);width:min(300px,85vw);box-shadow:8px 0 32px var(--shadow-strong);pointer-events:none;flex-direction:column;transition:transform .22s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app-shell[data-shell-mode=tablet][data-left-open=true] .panel-left,.app-shell[data-shell-mode=tablet-compact][data-left-open=true] .panel-left{pointer-events:auto;transform:translate(0)}[data-shell-mode=tablet] .panel-left>.panel-split,[data-shell-mode=tablet-compact] .panel-left>.panel-split{flex:1;min-height:0}[data-shell-mode=tablet] .app-body--tablet,[data-shell-mode=tablet-compact] .app-body--tablet{grid-template-rows:1fr!important;grid-template-columns:48px minmax(0,1fr)!important;gap:0!important;padding:0!important}.app-left-rail--tablet{border-right:1px solid var(--line);background:color-mix(in oklab, var(--bg-elev-1) 80%, black);flex-direction:column;align-content:start;width:48px;min-height:0;display:flex;overflow:hidden}.tablet-drawer-close--left{display:none}[data-shell-mode=tablet] .tablet-drawer-close--left,[data-shell-mode=tablet-compact] .tablet-drawer-close--left{display:inline-flex}[data-shell-mode=tablet] .centre-workspace>.panel-tabs-header,[data-shell-mode=tablet-compact] .centre-workspace>.panel-tabs-header{display:none}[data-shell-mode=tablet] .centre-workspace,[data-shell-mode=tablet-compact] .centre-workspace{grid-template-rows:1fr}.tree-drag-grip{display:none}:is([data-shell-mode=tablet] .tree-row:has(.tree-drag-grip),[data-shell-mode=tablet-compact] .tree-row:has(.tree-drag-grip)){grid-template-columns:36px minmax(0,1fr) auto;gap:4px;padding-left:0!important}:is([data-shell-mode=tablet] .tree-row:has(.tree-drag-grip) .tree-branch,[data-shell-mode=tablet-compact] .tree-row:has(.tree-drag-grip) .tree-branch){display:none}[data-shell-mode=tablet] .tree-drag-grip,[data-shell-mode=tablet-compact] .tree-drag-grip{width:100%;height:36px;color:var(--text-dim);cursor:grab;touch-action:none;opacity:.6;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}[data-shell-mode=tablet] .tree-drag-grip:active,[data-shell-mode=tablet-compact] .tree-drag-grip:active{cursor:grabbing;opacity:1;color:var(--text)}.statusbar-expand-btn{display:none}.app-statusbar--tablet-compact,.app-statusbar--tablet-expanded{flex-wrap:nowrap;overflow:hidden}.app-statusbar--tablet-compact{gap:8px;min-height:28px;max-height:28px;padding:4px 14px;font-size:11px}[data-shell-mode=tablet] .app-statusbar--tablet-expanded,[data-shell-mode=tablet-compact] .app-statusbar--tablet-expanded{z-index:6;height:max-content;min-height:var(--touch-target,44px);white-space:normal;flex-wrap:wrap;align-content:flex-start;max-height:none;position:relative;overflow:visible}[data-shell-mode=tablet] .app-statusbar--tablet-expanded .statusbar-visibility,[data-shell-mode=tablet-compact] .app-statusbar--tablet-expanded .statusbar-visibility{flex-wrap:wrap;flex:100%;gap:4px}[data-shell-mode=tablet] .app-statusbar--tablet-expanded .statusbar-toggle,[data-shell-mode=tablet-compact] .app-statusbar--tablet-expanded .statusbar-toggle,[data-shell-mode=tablet] .app-statusbar--tablet-expanded .statusbar-units,[data-shell-mode=tablet-compact] .app-statusbar--tablet-expanded .statusbar-units{height:var(--touch-target,44px);min-height:var(--touch-target,44px);padding:0 10px;font-size:12px}.app-statusbar--tablet-compact .statusbar-expand-btn,.app-statusbar--tablet-expanded .statusbar-expand-btn{width:24px;height:20px;color:var(--status-text);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.statusbar-expand-btn:active{background:var(--surface-sheen-strong)}.statusbar-visibility--hidden{display:none}[data-shell-mode=tablet] .cam-section-header,[data-shell-mode=tablet-compact] .cam-section-header{min-height:44px;padding:0 10px;font-size:14px;font-weight:600}[data-shell-mode=tablet] .cam-section-header .feature-count,[data-shell-mode=tablet-compact] .cam-section-header .feature-count{background:color-mix(in srgb, var(--accent) 20%, transparent);min-width:22px;height:22px;color:var(--accent-strong);border-radius:11px;justify-content:center;align-items:center;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}[data-shell-mode=tablet] .cam-section-toolbar,[data-shell-mode=tablet-compact] .cam-section-toolbar{min-height:44px}[data-shell-mode=tablet] .cam-header-action,[data-shell-mode=tablet-compact] .cam-header-action{border-radius:8px;min-height:38px;padding:0 14px;font-size:13px;font-weight:600}:is([data-shell-mode=tablet] .cam-operation-tree .tree-row:has(.tree-drag-grip),[data-shell-mode=tablet-compact] .cam-operation-tree .tree-row:has(.tree-drag-grip)){grid-template-columns:36px minmax(0,1fr) auto;gap:4px;padding-left:0!important}:is([data-shell-mode=tablet] .cam-operation-tree .tree-row:has(.tree-drag-grip) .tree-branch,[data-shell-mode=tablet-compact] .cam-operation-tree .tree-row:has(.tree-drag-grip) .tree-branch){display:none}[data-shell-mode=tablet] .cam-operation-badge,[data-shell-mode=tablet-compact] .cam-operation-badge{border-radius:4px;padding:2px 8px;font-size:11px}[data-shell-mode=tablet] .cam-field-message,[data-shell-mode=tablet-compact] .cam-field-message{padding:8px 10px;font-size:12px}@media (pointer:coarse){.dialog{max-width:min(560px,92vw);max-height:88vh;overflow:hidden}.dialog--machine-editor{max-width:min(820px,98vw)}.dialog--machine-manager{max-width:min(720px,98vw)}.dialog input,.dialog select,.dialog textarea{min-height:44px;font-size:16px}.dialog button{min-height:44px;padding:0 16px}.dialog-header{min-height:48px;padding:0 16px;font-size:16px}.dialog-footer{gap:10px;padding:12px 16px}.dialog-footer button{flex:1;min-height:48px}.import-dialog-body{flex-direction:column;overflow-y:auto}.import-dialog-layers{max-height:200px;overflow-y:auto}}.tablet-rotate-overlay{display:none}@media (orientation:portrait){[data-shell-mode=tablet]>.tablet-rotate-overlay,[data-shell-mode=tablet-compact]>.tablet-rotate-overlay{z-index:99999;background:var(--surface-subtle);color:var(--text-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;font-size:18px;display:flex;position:fixed;inset:0}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1016;--bg-elev-1:#101821;--bg-elev-2:#16222d;--line:#2a3a49;--line-strong:#3c5265;--text:#d8e4ef;--text-dim:#94aabc;--status-text:#d8e4ef;--status-text-muted:#aebfcd;--accent:#4f93d6;--accent-strong:#78b0e8;--add:#6abb81;--cut:#5a8fcc;--surface-app:#0a1016;--surface-canvas:#0f151d;--surface-panel:#0f1820;--surface-subtle:#0d141c;--surface-raised:#101821f0;--surface-popover:#0c121af5;--surface-translucent:#0a121bd9;--surface-input:#070c11b8;--surface-hover:#ffffff0f;--surface-control-top:#2a3a4c;--surface-control-bottom:#17232f;--surface-button-top:#24374a;--surface-button-bottom:#13202c;--surface-sheen:#ffffff0a;--surface-sheen-soft:#ffffff08;--surface-sheen-mid:#ffffff0d;--surface-sheen-strong:#ffffff14;--surface-inset:#00000047;--shadow:#00000059;--shadow-strong:#00000073;--accent-soft:#4f93d61f;--surface-active-top:#3d4f61;--surface-active-bottom:#202d3a;--on-accent:#fff;--danger-text:#f0bbb6;--warning-text:#cf8ae0;--toolpath-cut:#ff735c;--toolpath-rapid:#78b8de;--toolpath-plunge:#d583df;--toolpath-direction:#5ec4c4;--role-line:#5a8fcc;--role-line-text:#8fb6f4;--role-region:#96c;--role-region-text:#c4a6e0;--role-construction:#8a9aab;--role-construction-text:#a9b6c4;color:var(--text);background:radial-gradient(circle at 18% -10%, var(--bg-elev-2), var(--surface-app) 58%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Avenir Next,IBM Plex Sans,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6f9;--bg-elev-1:#fff;--bg-elev-2:#e8edf3;--line:#e2e8f0;--line-strong:#c2cddb;--text:#1e293b;--text-dim:#64748b;--status-text:#1e293b;--status-text-muted:#55637a;--accent:#2b6cb0;--accent-strong:#1e4f85;--add:#2f855a;--cut:#2f7cb8;--surface-app:#f4f6f9;--surface-canvas:#fbfbf9;--surface-panel:#fff;--surface-subtle:#eef2f7;--surface-raised:#fffffffa;--surface-popover:#fffffffa;--surface-translucent:#f8fafcf0;--surface-input:#fffffff5;--surface-hover:#0f172a0d;--surface-control-top:#fff;--surface-control-bottom:#eef2f7;--surface-button-top:#fff;--surface-button-bottom:#e8eef5;--surface-sheen:#ffffff8a;--surface-sheen-soft:#ffffff57;--surface-sheen-mid:#ffffff75;--surface-sheen-strong:#ffffffb8;--surface-inset:#0f172a1a;--shadow:#0f172a1a;--shadow-strong:#0f172a29;--accent-soft:#2b6cb01a;--surface-active-top:#dbeafe;--surface-active-bottom:#bfdbfe;--on-accent:#fff;--danger-text:#b3261e;--warning-text:#8e3a86;--toolpath-cut:#d64a34;--toolpath-rapid:#3884b8;--toolpath-plunge:#a84ab6;--toolpath-direction:#149494;--role-line:#2f7cb8;--role-line-text:#215d8f;--role-region:#7947a5;--role-region-text:#673b8c;--role-construction:#64748b;--role-construction-text:#4e5c70}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}#root,#root *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#root input,#root select,#root textarea,#root [contenteditable]:not([contenteditable=false]),#root [contenteditable]:not([contenteditable=false]) *{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}body{background:var(--surface-app);min-height:100svh}button,input{font:inherit}.unsupported-mobile-shell{background:radial-gradient(circle at top, #5a8fcc38, transparent 36%), linear-gradient(180deg, var(--surface-subtle) 0%, var(--surface-app) 100%);justify-content:center;align-items:center;min-height:100%;padding:1.5rem;display:flex}.unsupported-mobile-card{border:1px solid var(--line);background:var(--surface-raised);width:min(100%,32rem);box-shadow:0 24px 60px var(--shadow);border-radius:1rem;padding:1.5rem}.unsupported-mobile-eyebrow{color:var(--cut);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.85rem;font-size:.74rem;font-weight:800}.unsupported-mobile-card h1{margin:0 0 .85rem;font-size:clamp(1.9rem,8vw,2.6rem);line-height:.98}.unsupported-mobile-card p{color:var(--text-dim);margin:0;font-size:1rem;line-height:1.65}.unsupported-mobile-actions{gap:.75rem;margin-top:1.25rem;display:grid}.unsupported-mobile-actions a{background:var(--cut);color:#071019;border-radius:.8rem;justify-content:center;align-items:center;min-height:3rem;padding:.85rem 1rem;font-weight:800;text-decoration:none;display:inline-flex}.unsupported-mobile-actions a:last-child{color:var(--text);border:1px solid var(--line);background:0 0}.app-error-shell{background:radial-gradient(circle at top, #cc5a5a29, transparent 36%), linear-gradient(180deg, var(--surface-subtle) 0%, var(--surface-app) 100%);justify-content:center;align-items:center;min-height:100%;padding:1.5rem;display:flex}.app-error-card{border:1px solid var(--line);background:var(--surface-raised);width:min(100%,40rem);box-shadow:0 24px 60px var(--shadow);border-radius:1rem;padding:1.75rem}.app-error-eyebrow{color:#d48484;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.85rem;font-size:.74rem;font-weight:800}.app-error-card h1{margin:0 0 .85rem;font-size:clamp(1.5rem,5vw,2rem);line-height:1.1}.app-error-card p{color:var(--text-dim);margin:0 0 1rem;font-size:1rem;line-height:1.6}.app-error-details{color:var(--text-dim);margin:.5rem 0 1rem;font-size:.85rem}.app-error-details summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);padding:.35rem 0}.app-error-details pre{border:1px solid var(--line);background:var(--surface-input);color:var(--text-dim);white-space:pre-wrap;word-break:break-word;border-radius:.6rem;max-height:18rem;margin:.5rem 0 0;padding:.75rem;font-size:.78rem;line-height:1.5;overflow:auto}.app-error-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.app-error-actions button,.app-error-actions a{min-height:2.75rem;font:inherit;cursor:pointer;border-radius:.7rem;justify-content:center;align-items:center;padding:.7rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}.app-error-actions button{background:var(--cut);color:#071019;border:none}.app-error-actions a{color:var(--text);border:1px solid var(--line);background:0 0}.app-shell{--control-hit-target:40px;--left-toolbar-width:44px;background:linear-gradient(180deg, color-mix(in srgb, var(--surface-sheen) 50%, transparent), transparent);grid-template-rows:auto 1fr auto;width:100%;height:100%;display:grid}.app-shell button,.app-shell select,.app-shell textarea,.app-shell input:not([type=range]):not([type=hidden]){min-height:var(--control-hit-target)}.app-shell button{min-width:var(--control-hit-target)}.app-toolbar{border-bottom:1px solid var(--line);background:linear-gradient(180deg, var(--surface-sheen-soft), transparent), color-mix(in oklab, var(--bg-elev-2) 94%, black);align-items:center;gap:10px;padding:8px 10px;display:flex}.app-toolbar--left{padding:6px 10px}.app-toolbar--tablet{z-index:20;gap:0;padding:4px 8px;position:relative;overflow:visible}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar--global{flex-wrap:nowrap;min-width:0}.toolbar--combined{flex:auto;min-width:0}.toolbar--snap{flex-wrap:nowrap;flex:none}.toolbar--creation.toolbar--vertical{align-content:start;justify-items:center;gap:8px;width:100%;display:grid}.toolbar--creation.toolbar--vertical .toolbar-icon-btn{width:var(--control-hit-target);height:var(--control-hit-target)}.toolbar-project-block{min-height:var(--control-hit-target);align-items:center;gap:10px;padding:0;display:inline-flex}.toolbar-project-label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.toolbar-group{min-height:var(--control-hit-target);align-items:center;gap:0;display:inline-flex}.toolbar-creation-block{align-items:center;gap:6px;display:inline-flex}.toolbar-target-toggle{align-items:center;gap:0;display:inline-flex}.toolbar-target-btn{color:var(--text-dim)}.toolbar-target-toggle .toolbar-action:first-child .toolbar-target-btn{border-top-left-radius:6px;border-bottom-left-radius:6px}.toolbar-target-toggle .toolbar-action:last-child .toolbar-target-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.toolbar-target-btn--active{color:var(--accent-strong)}.toolbar-target-btn--line.toolbar-target-btn--active{border-color:color-mix(in oklab, var(--role-line) 88%, var(--line-strong));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--role-line) 42%, transparent)}.toolbar-target-btn--region.toolbar-target-btn--active{border-color:color-mix(in oklab, var(--role-region) 88%, var(--line-strong));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--role-region) 42%, transparent)}.toolbar-target-btn--construction.toolbar-target-btn--active{border-color:color-mix(in oklab, var(--role-construction) 88%, var(--line-strong));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--role-construction) 42%, transparent)}.toolbar--creation.toolbar--vertical .toolbar-group{justify-items:center;gap:0;width:100%;min-height:0;display:grid}.toolbar--creation.toolbar--vertical .toolbar-creation-block{justify-items:center;width:100%;display:grid}.toolbar--creation.toolbar--vertical .toolbar-target-toggle{justify-items:center;width:auto;display:grid}.toolbar--creation.toolbar--vertical .toolbar-target-toggle .toolbar-action{width:auto}.toolbar--creation.toolbar--vertical .toolbar-target-btn{width:var(--control-hit-target);height:var(--control-hit-target)}.toolbar--creation.toolbar--vertical .toolbar-target-toggle .toolbar-action:first-child .toolbar-target-btn{border-radius:6px 6px 0 0}.toolbar--creation.toolbar--vertical .toolbar-target-toggle .toolbar-action:last-child .toolbar-target-btn{border-radius:0 0 6px 6px}.toolbar-action{display:inline-flex;position:relative}.toolbar-popover-host,.toolbar-popover-host>.toolbar-action .toolbar-icon-btn{position:relative}.toolbar-popover-host>.toolbar-action .toolbar-icon-btn:after{content:"";opacity:.72;border-top:4px solid;border-left:4px solid #0000;width:0;height:0;position:absolute;bottom:4px;right:4px}.toolbar-popover{z-index:30;border:1px solid color-mix(in srgb, var(--line-strong) 60%, transparent);background:linear-gradient(180deg, var(--surface-control-top), var(--surface-control-bottom));box-shadow:0 8px 24px var(--shadow-strong);border-radius:8px;gap:4px;padding:6px;display:grid;position:absolute}.toolbar-popover--floating{z-index:1000}.toolbar-popover--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.toolbar-popover--right{top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.toolbar-popover .toolbar-icon-btn{border-radius:6px}.toolbar-creation-picker,.toolbar-creation-picker__drawer-btn{position:relative}.toolbar-creation-picker__drawer-btn:after{content:"";opacity:.78;border-top:4px solid;border-left:4px solid #0000;width:0;height:0;position:absolute;bottom:5px;right:5px}.icon-sprite{display:block}.toolbar-project-name,.toolbar-btn{border:1px solid color-mix(in srgb, var(--line-strong) 48%, transparent);background:linear-gradient(180deg, var(--surface-control-top), var(--surface-control-bottom));color:var(--text);min-height:var(--control-hit-target);cursor:pointer;box-shadow:inset 0 1px 0 var(--surface-sheen), inset 0 -1px 0 var(--surface-inset);border-radius:8px;padding:0 12px}.toolbar-project-name{font-weight:600}.toolbar-save-state{min-height:24px;color:var(--text-dim);border:1px solid #0000;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.toolbar-save-state:before{content:"";background:currentColor;border-radius:999px;width:7px;height:7px;margin-right:6px}.toolbar-save-state--dirty{border-color:color-mix(in srgb, var(--accent) 42%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.toolbar-icon-btn{width:var(--control-hit-target);height:var(--control-hit-target);border:1px solid color-mix(in srgb, var(--line-strong) 44%, transparent);background:linear-gradient(180deg, var(--surface-control-top), var(--surface-control-bottom));color:var(--text);cursor:pointer;box-shadow:inset 0 1px 0 var(--surface-sheen), inset 0 -1px 0 var(--surface-inset);border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.toolbar-group .toolbar-action:first-child .toolbar-icon-btn{border-top-left-radius:6px;border-bottom-left-radius:6px}.toolbar-group .toolbar-action:last-child .toolbar-icon-btn{border-top-right-radius:6px;border-bottom-right-radius:6px}.toolbar--creation.toolbar--vertical .toolbar-group .toolbar-action:first-child:not(:last-child) .toolbar-icon-btn{border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:0}.toolbar--creation.toolbar--vertical .toolbar-group .toolbar-action:last-child:not(:first-child) .toolbar-icon-btn{border-top-right-radius:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.toolbar--creation.toolbar--vertical .toolbar-group .toolbar-action:first-child:last-child .toolbar-icon-btn{border-radius:6px}.toolbar-icon-btn .icon-sprite{width:24px;height:24px}.toolbar-btn:hover,.toolbar-project-name:hover,.toolbar-icon-btn:hover{border-color:var(--accent);background:var(--surface-hover);color:var(--accent-strong)}.toolbar-icon-btn:disabled{opacity:.45;cursor:default;border-color:var(--line-strong);color:var(--text-dim)}.toolbar-icon-btn:disabled:hover{border-color:var(--line-strong);color:var(--text-dim)}.toolbar-btn--active{border-color:var(--accent);color:var(--accent-strong);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent)}.toolbar-icon-btn--active{border-color:var(--accent);color:var(--accent-strong);background:linear-gradient(180deg, var(--surface-active-top), var(--surface-active-bottom));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 42%, transparent), 0 0 0 1px var(--accent-soft)}.toolbar-icon-btn--live{border-color:var(--cut);color:var(--cut);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--cut) 48%, transparent), 0 0 0 1px color-mix(in oklab, var(--cut) 12%, transparent), 0 0 12px color-mix(in oklab, var(--cut) 12%, transparent)}.toolbar-tooltip{border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:var(--surface-popover);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:10;border-radius:7px;padding:6px 8px;font-size:11px;line-height:1;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;top:calc(100% + 8px);bottom:auto;left:50%;transform:translate(-50%,-4px)}.toolbar-tooltip--bottom{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-4px)}.toolbar-tooltip--right{top:50%;bottom:auto;left:calc(100% + 8px);transform:translate(4px,-50%)}.appearance-control{z-index:70;align-items:center;display:inline-flex;position:relative}.appearance-control__trigger{border-radius:6px;position:relative}.appearance-control__trigger:after{content:"";opacity:.68;border-top:4px solid;border-left:4px solid #0000;position:absolute;bottom:4px;right:4px}.appearance-menu{z-index:100;border:1px solid var(--line);background:var(--surface-popover);width:248px;box-shadow:0 18px 48px var(--shadow-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:12px;padding:10px;position:absolute;top:calc(100% + 8px);right:0}.appearance-menu__heading{color:var(--text-dim);letter-spacing:.11em;text-transform:uppercase;padding:4px 6px 9px;font-size:10px;font-weight:800}.appearance-menu__options{gap:4px;display:grid}.appearance-menu__option{width:100%;min-height:52px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;grid-template-columns:38px 1fr 20px;align-items:center;gap:10px;padding:6px 8px;display:grid}.appearance-menu__option:hover,.appearance-menu__option:focus-visible{border-color:var(--line);background:var(--surface-hover);outline:none}.appearance-menu__option--selected{border-color:color-mix(in oklab, var(--accent) 55%, var(--line));background:var(--accent-soft)}.appearance-menu__swatch{border:1px solid var(--line-strong);width:34px;height:34px;box-shadow:inset 0 0 0 3px var(--surface-raised);border-radius:8px}.appearance-menu__swatch--dark{background:linear-gradient(135deg,#101821 0 48%,#4f93d6 49% 57%,#2a3a49 58% 100%)}.appearance-menu__swatch--light{background:linear-gradient(135deg,#f4f6f9 0 48%,#2b6cb0 49% 57%,#e2e8f0 58% 100%)}.appearance-menu__swatch--system{background:linear-gradient(135deg,#101821 0 45%,#4f93d6 46% 53%,#f4f6f9 54% 100%)}.appearance-menu__copy{gap:2px;display:grid}.appearance-menu__label{font-size:13px;font-weight:750}.appearance-menu__detail{color:var(--text-dim);font-size:11px}.appearance-menu__check{color:var(--accent-strong);text-align:center;font-size:16px;font-weight:800}.appearance-menu__heading--section{border-top:1px solid var(--line);margin-top:6px;padding-top:10px}.appearance-menu .appearance-menu__option--manage{grid-template-columns:1fr;min-height:48px}.appearance-menu .theme-swatch{justify-self:center}.appearance-menu .theme-swatch__chip{width:6px;height:26px}.language-control .appearance-menu__option:not(.appearance-menu__option--manage){grid-template-columns:1fr 20px;min-height:52px}.toolbar-action:hover .toolbar-tooltip,.toolbar-action:focus-within .toolbar-tooltip{opacity:1;visibility:visible;transform:translate(-50%)}.toolbar-action:hover .toolbar-tooltip--right,.toolbar-action:focus-within .toolbar-tooltip--right{transform:translateY(-50%)}.toolbar-tooltip--floating{opacity:1;visibility:visible;z-index:1000;position:fixed;bottom:auto;transform:none}.toolbar-btn-apply{border-color:color-mix(in oklab, var(--accent) 50%, var(--line-strong))}.toolbar-name-input,.toolbar-field input{background:var(--surface-panel);border:1px solid var(--line-strong);color:var(--text);min-height:var(--control-hit-target);border-radius:7px;padding:0 8px}.toolbar-name-input{min-width:190px}.toolbar-field{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;font-size:12px;display:inline-flex}.toolbar-field input{width:70px}.toolbar-field-material input{width:132px}.app-body{grid-template-columns:minmax(200px,17%) minmax(400px,1fr) minmax(240px,22%);gap:10px;min-height:0;padding:10px 6px;display:grid}.app-body--toolbar-left{grid-template-columns:var(--left-toolbar-width) minmax(200px, 17%) minmax(400px, 1fr) minmax(240px, 22%);gap:2px}.app-body--lc{grid-template-columns:minmax(200px,17%) minmax(400px,1fr)}.app-body--toolbar-left.app-body--lc{grid-template-columns:var(--left-toolbar-width) minmax(200px, 17%) minmax(400px, 1fr)}.app-body--c{grid-template-columns:minmax(400px,1fr)}.app-body--toolbar-left.app-body--c{grid-template-columns:var(--left-toolbar-width) minmax(400px, 1fr)}.app-body--cr{grid-template-columns:minmax(400px,1fr) minmax(240px,22%)}.app-body--toolbar-left.app-body--cr{grid-template-columns:var(--left-toolbar-width) minmax(400px, 1fr) minmax(240px, 22%)}.app-left-rail{width:var(--left-toolbar-width);scrollbar-width:none;min-height:0;-webkit-mask-image:linear-gradient(180deg, transparent 0, #000 var(--rail-fade-top,0px), #000 calc(100% - var(--rail-fade-bottom,0px)), transparent 100%);mask-image:linear-gradient(180deg, transparent 0, #000 var(--rail-fade-top,0px), #000 calc(100% - var(--rail-fade-bottom,0px)), transparent 100%);align-content:start;justify-items:center;padding:0;display:grid;overflow:hidden auto}.app-left-rail::-webkit-scrollbar{display:none}.app-left-rail--can-scroll-up{--rail-fade-top:16px}.app-left-rail--can-scroll-down{--rail-fade-bottom:16px}.panel-left{min-height:0;position:relative}.panel{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface-sheen-soft), transparent);border-radius:12px;grid-template-rows:auto 1fr;min-height:0;display:grid;overflow:hidden}.panel-header{border-bottom:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;display:flex}.feature-count{color:var(--accent);font-weight:700}.panel-content{min-height:0;overflow:auto}.panel-tabs>.panel-content{overflow:visible}.panel-empty{border:1px dashed var(--line-strong);color:var(--text-dim);border-radius:8px;margin:8px;padding:10px;font-size:13px}.panel-centre{min-height:0;position:relative}.app-body--c .panel-left,.app-body--cr .panel-left,.app-body--c .panel-right,.app-body--lc .panel-right{display:none}.centre-workspace{height:100%}.centre-stage{background:var(--surface-subtle);min-height:0;position:relative}.centre-view{opacity:0;pointer-events:none;visibility:hidden;position:absolute;inset:0}.centre-view--active{opacity:1;pointer-events:auto;visibility:visible}.simulation-viewport{background:radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 8%, transparent), transparent 34%), radial-gradient(circle at bottom right, color-mix(in srgb, var(--accent) 6%, transparent), transparent 30%), var(--surface-subtle);width:100%;height:100%;position:relative}.simulation-viewport__canvas{width:100%;height:100%}.simulation-viewport__overlay{border:1px solid var(--line-strong);background:var(--surface-raised);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(320px,100% - 420px);max-height:calc(100% - 20px);box-shadow:0 16px 32px var(--shadow);border-radius:10px;padding:12px 14px;position:absolute;top:54px;left:10px;overflow:auto}.simulation-viewport__overlay-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.simulation-viewport__close{border:1px solid var(--line-strong);background:var(--surface-translucent);height:26px;color:var(--text-dim);cursor:pointer;border-radius:6px;padding:0 8px;font-size:11px}.simulation-viewport__close:hover{border-color:var(--accent);color:var(--text)}.simulation-viewport__line{color:var(--text-dim);margin-top:6px;font-size:12px;line-height:1.45}.simulation-viewport__line strong{color:var(--text);font-weight:600}.simulation-viewport__title{color:var(--text);font-size:15px;font-weight:600}.simulation-viewport__note{color:var(--text-dim);margin-top:12px;font-size:12px;line-height:1.5}.simulation-viewport__warnings{gap:8px;margin-top:12px;display:grid}.simulation-viewport__warning{border:1px solid color-mix(in srgb, var(--danger-text) 65%, transparent);background:color-mix(in srgb, var(--danger-text) 22%, transparent);color:var(--danger-text);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.45}.simulation-viewport__computing-overlay{background:var(--surface-translucent);pointer-events:none;z-index:5;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.simulation-viewport__spinner{border:3px solid color-mix(in oklab, var(--text-dim) 22%, transparent);border-top-color:var(--text-dim);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite sim-spin}.simulation-viewport__webgl-overlay{background:var(--surface-translucent);pointer-events:none;z-index:6;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.simulation-viewport__webgl-message{border:1px solid var(--line-strong);background:var(--surface-popover);max-width:360px;color:var(--text);text-align:center;border-radius:8px;padding:16px 20px;font-size:13px}.simulation-viewport__webgl-message strong{margin-bottom:6px;font-size:14px;display:block}.simulation-viewport__webgl-message p{color:var(--text-dim);margin:0;line-height:1.5}.simulation-detail-control{box-sizing:border-box;height:var(--control-hit-target);min-height:var(--control-hit-target);border:1px solid var(--line-strong);background:var(--surface-translucent);color:var(--text);border-radius:7px;align-items:center;gap:8px;margin-right:0;padding:0 10px;display:inline-flex}.simulation-detail-control__label{color:var(--text-dim);font-size:11px}.simulation-detail-control__slider{width:clamp(80px,16vw,120px);accent-color:var(--accent)}.simulation-detail-control__value{text-align:right;min-width:28px;color:var(--text);font-size:11px}.simulation-mode-toggle{box-sizing:border-box;height:var(--control-hit-target);border:1px solid var(--line-strong);background:var(--surface-translucent);border-radius:8px;align-items:center;gap:2px;margin-right:0;padding:2px;display:inline-flex}.simulation-mode-toggle__btn{box-sizing:border-box;height:34px;min-height:34px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 10px;font-size:12px}.simulation-mode-toggle__btn--active{background:var(--surface-hover);color:var(--text)}.simulation-playback-toggle{box-sizing:border-box;height:var(--control-hit-target);min-height:var(--control-hit-target);border:1px solid var(--line-strong);background:var(--surface-translucent);color:var(--text-dim);cursor:pointer;border-radius:7px;margin-left:0;padding:0 12px;font-size:12px}.simulation-playback-toggle:disabled{opacity:.45;cursor:not-allowed}.simulation-playback-bar{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--text);box-shadow:0 8px 24px var(--shadow);pointer-events:auto;border-radius:10px;align-items:center;gap:14px;min-width:460px;padding:8px 14px;font-size:12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.simulation-playback-bar__controls{gap:4px;display:inline-flex}.simulation-playback-bar__btn{border:1px solid var(--line-strong);background:var(--surface-sheen-soft);width:32px;height:28px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.simulation-playback-bar__btn:hover{background:var(--surface-sheen-strong)}.simulation-playback-bar__btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.simulation-playback-bar__btn--primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent);filter:brightness(1.08)}.simulation-playback-bar__progress{flex-direction:row;flex:1;align-items:center;gap:8px;display:flex}.simulation-playback-bar__progress input[type=range]{accent-color:var(--accent);flex:1}.simulation-playback-bar__readout{text-align:right;min-width:36px;color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11px}.simulation-playback-bar__speed{color:var(--text-dim);align-items:center;gap:6px;font-size:11px;display:inline-flex}.simulation-playback-bar__speed--slider input[type=range]{width:90px;accent-color:var(--accent)}.simulation-playback-bar__speed select{border:1px solid var(--line-strong);background:var(--surface-sheen-soft);height:26px;color:var(--text);border-radius:6px;padding:0 6px;font-size:11px}.simulation-playback-bar__xyz{border-left:1px solid var(--line-strong);font-variant-numeric:tabular-nums;align-items:center;gap:4px;padding:0 10px;font-size:11px;display:inline-flex}.simulation-playback-bar__xyz-label{color:var(--text-dim);font-weight:500}.simulation-playback-bar__xyz-value{color:var(--text);text-align:right;min-width:4.5em}.simulation-playback-bar__xyz-value+.simulation-playback-bar__xyz-label{margin-left:6px}.simulation-playback-bar__move-kind{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.simulation-playback-bar__feed{border-left:1px solid var(--line-strong);font-variant-numeric:tabular-nums;align-items:center;gap:6px;padding:0 10px;font-size:11px;display:inline-flex}.simulation-playback-bar__feed-value{color:var(--text);text-align:right;min-width:7em}.simulation-playback-bar__move-kind--cut,.simulation-playback-bar__move-kind--lead_in,.simulation-playback-bar__move-kind--lead_out{background:var(--toolpath-cut)}.simulation-playback-bar__move-kind--plunge{background:var(--toolpath-plunge)}.simulation-playback-bar__move-kind--rapid{background:var(--toolpath-rapid)}.simulation-playback-bar__move-kind--none{background:0 0}.panel-right{min-height:0}.panel-tabs{background:0 0;border:none;border-radius:0;grid-template-rows:auto minmax(0,1fr);height:100%;overflow:visible}.panel-tabs-header{border-bottom:1px solid var(--line);background:0 0;align-items:flex-end;gap:2px;padding:8px 6px 0;display:flex}.panel-tabs-spacer{flex:1}.panel-tab{appearance:none;border:1px solid var(--line);background:var(--surface-translucent);color:var(--text-dim);min-height:var(--control-hit-target);cursor:pointer;border-bottom-color:#0000;border-radius:10px 10px 0 0;margin-bottom:-1px;padding:0 14px;transition:color .18s,background .18s,border-color .18s}.panel-tab:hover{color:var(--text);border-color:var(--line-strong);background:var(--surface-translucent);border-bottom-color:#0000}.panel-tab--active{color:var(--text);border-color:color-mix(in srgb, var(--accent) 75%, transparent);border-bottom-color:var(--surface-popover);background:var(--surface-popover);z-index:1;min-height:0;position:relative}.workspace-layout-controls{align-items:center;gap:0;margin-left:auto;padding-bottom:6px;display:inline-flex}.workspace-layout-btn{width:var(--control-hit-target);height:var(--control-hit-target);border:1px solid var(--line-strong);background:var(--surface-translucent);color:var(--text-dim);cursor:pointer;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.workspace-layout-btn:hover{color:var(--text);border-color:var(--line-bright)}.workspace-layout-btn--active{color:var(--text);border-color:color-mix(in srgb, var(--accent) 75%, transparent);background:var(--surface-popover)}.workspace-layout-controls .workspace-layout-btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.workspace-layout-controls .workspace-layout-btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.workspace-layout-icon{grid-template-columns:repeat(3,1fr);gap:2px;width:16px;height:12px;display:grid}.workspace-layout-icon span{opacity:.28;border:1px solid;border-radius:2px}.workspace-layout-icon--lcr span:first-child,.workspace-layout-icon--lcr span:nth-child(2),.workspace-layout-icon--lcr span:nth-child(3),.workspace-layout-icon--lc span:first-child,.workspace-layout-icon--lc span:nth-child(2),.workspace-layout-icon--c span:nth-child(2),.workspace-layout-icon--cr span:nth-child(2),.workspace-layout-icon--cr span:nth-child(3){opacity:1}.ai-panel{height:100%;padding:12px}.ai-placeholder{border:1px dashed var(--line-strong);min-height:100%;color:var(--text-dim);border-radius:10px;align-content:start;gap:10px;padding:16px;font-size:13px;display:grid}.ai-placeholder p{margin:0}.ai-placeholder-icon{letter-spacing:.08em;width:34px;height:34px;color:var(--on-accent);background:linear-gradient(180deg, var(--accent-strong), var(--accent));border-radius:6px;place-items:center;font-size:11px;font-weight:700;display:grid}.ai-placeholder-sub,.ai-placeholder-hint{color:var(--text-dim);line-height:1.4}.sketch-canvas-container{width:100%;height:100%;position:relative}.sketch-canvas{cursor:crosshair;touch-action:none;outline:none;width:100%;height:100%;display:block}.creation-target-badge{z-index:4;border:1px solid color-mix(in oklab, var(--accent) 62%, var(--line-strong));background:var(--accent-soft);color:var(--accent-strong);letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:3px 9px 3px 7px;font-size:11px;font-weight:600;line-height:16px;display:inline-flex;position:absolute;top:8px;right:12px}.creation-target-badge .icon-sprite{flex:none}.creation-target-badge--line{border-color:color-mix(in oklab, var(--role-line) 70%, var(--line-strong));background:color-mix(in oklab, var(--role-line) 16%, var(--surface-translucent));color:var(--role-line-text)}.creation-target-badge--region{border-color:color-mix(in oklab, var(--role-region) 70%, var(--line-strong));background:color-mix(in oklab, var(--role-region) 16%, var(--surface-translucent));color:var(--role-region-text)}.creation-target-badge--construction{border-color:color-mix(in oklab, var(--role-construction) 70%, var(--line-strong));background:color-mix(in oklab, var(--role-construction) 16%, var(--surface-translucent));color:var(--role-construction-text)}.axis-lock-chip{z-index:20;background:var(--surface-translucent);cursor:pointer;pointer-events:auto;border:1px solid;border-radius:4px;padding:2px 10px;font-size:12px;font-weight:600;line-height:22px;position:absolute;bottom:8px;left:8px}.sketch-canvas--placing{cursor:copy}.sketch-banner-warning{color:var(--warning-text);margin-top:6px}.sketch-depth-legend{z-index:4;border:1px solid color-mix(in srgb, var(--line-strong) 78%, transparent);background:var(--surface-raised);min-width:158px;box-shadow:0 10px 24px var(--shadow), inset 0 1px 0 var(--surface-sheen);border-radius:10px;padding:10px 10px 9px;position:absolute;bottom:12px;right:12px}.sketch-depth-legend__header{color:var(--text);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:11px;display:flex}.sketch-depth-legend__toggle,.statusbar-depth-legend{border:1px solid var(--line-strong);background:var(--surface-translucent);color:var(--text-dim);cursor:pointer;border-radius:7px;transition:border-color .18s,color .18s,background .18s}.statusbar-depth-legend{color:var(--status-text-muted)}.sketch-depth-legend__toggle{width:20px;height:20px;min-height:20px;padding:0;font-size:13px;line-height:1}.sketch-depth-legend__toggle:hover,.statusbar-depth-legend:hover{border-color:var(--accent);color:var(--status-text)}.sketch-depth-legend__items{gap:7px;display:grid}.sketch-depth-legend__item{color:var(--text-dim);align-items:center;gap:8px;font-size:11px;display:flex}.sketch-depth-legend__swatch{border-radius:3px;flex:0 0 12px;width:12px;height:12px}.sketch-depth-legend__swatch--subtract{background:var(--cut)}.sketch-depth-legend__swatch--add{background:var(--add)}.sketch-depth-legend__swatch--region{background:var(--role-region)}.sketch-depth-legend__swatch--region-exclude{border:1px dashed var(--role-region);background:color-mix(in srgb, var(--role-region) 16%, transparent)}.sketch-depth-legend__swatch--imported-model{background:var(--text-dim)}.sketch-depth-legend__swatch--selected{background:var(--accent)}.sketch-dim-input{z-index:5;text-align:center;color:color-mix(in srgb, var(--accent) 96%, transparent);background:var(--surface-popover);border:1px solid color-mix(in srgb, var(--accent) 65%, transparent);box-sizing:border-box;border-radius:5px;outline:none;width:72px;height:18px;padding:0 6px;font:11px IBM Plex Mono,SFMono-Regular,Consolas,monospace;position:absolute}.sketch-dim-input:focus{border-color:color-mix(in srgb, var(--accent) 95%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent)}.feature-tree-panel{padding:4px 6px 8px}.tree-root-label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:12px}.tree-list,.tree-children{gap:2px;padding-left:10px;display:grid;position:relative}.tree-children:before{display:none}.tree-list:before{content:"";background:linear-gradient(180deg, var(--line-strong), color-mix(in srgb, var(--line-strong) 20%, transparent));width:1px;position:absolute;top:10px;bottom:10px;left:8px}.tree-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:32px;padding:3px 6px 3px 0;display:grid;position:relative}.tree-row:before{content:"";background:var(--line-strong);width:7px;height:1px;position:absolute;top:50%;left:-2px}.tree-row--nested,.tree-row--deep{grid-template-columns:0 minmax(0,1fr) auto}.tree-row--folder.tree-row--nested{grid-template-columns:16px minmax(0,1fr) auto}.tree-row--nested:before,.tree-row--deep:before{display:none}.tree-row--stock{margin-bottom:4px}.tree-row--grid{margin-bottom:2px}.tree-row--features,.tree-row--regions,.tree-row--constructions{margin:4px 0 2px}.tree-row--stock:before{width:12px}.tree-row--selected{background:var(--accent-soft)}.tree-row--selected .tree-label{color:var(--text)}.tree-row--group-selected{background:color-mix(in srgb, var(--accent) 18%, transparent);box-shadow:inset 3px 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}.tree-row--dragging{opacity:.35}.tree-branch{border:1px solid var(--line-strong);width:16px;height:16px;color:var(--text-dim);background:var(--bg-elev-2);border-radius:999px;justify-content:center;align-items:center;font-size:0;display:inline-flex}.tree-row--stock .tree-branch{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.tree-row--grid .tree-branch{border-color:var(--cut);background:color-mix(in srgb, var(--cut) 14%, transparent)}.tree-row--features .tree-branch,.tree-row--regions .tree-branch,.tree-row--constructions .tree-branch,.tree-row--folder .tree-branch{border-color:color-mix(in srgb, var(--line-strong) 70%, transparent);background:color-mix(in srgb, var(--line) 70%, transparent)}.tree-row--regions .tree-branch{border-color:color-mix(in oklab, var(--role-region) 76%, var(--line));background:color-mix(in oklab, var(--role-region) 13%, transparent)}.tree-row--constructions .tree-branch{border-color:color-mix(in oklab, var(--role-construction) 76%, var(--line));background:color-mix(in oklab, var(--role-construction) 13%, transparent)}.tree-row--folder .tree-branch{background:0 0;border:none;border-radius:0}.tree-branch:before{content:"";background:var(--text-dim);border-radius:999px;width:5px;height:5px}.tree-row--stock .tree-branch:before{background:var(--accent)}.tree-row--grid .tree-branch:before{background:var(--cut)}.tree-row--features .tree-branch:before,.tree-row--regions .tree-branch:before,.tree-row--constructions .tree-branch:before,.tree-row--folder .tree-branch:before{background:var(--text-dim)}.tree-row--regions .tree-branch:before{background:var(--role-region)}.tree-row--constructions .tree-branch:before{background:var(--role-construction)}.tree-branch--folder:before{display:none}.tree-row--nested .tree-branch:not(.tree-branch--folder),.tree-row--deep .tree-branch:not(.tree-branch--folder){background:0 0;border:none;width:0;height:0;overflow:hidden}.tree-row--nested .tree-branch:not(.tree-branch--folder):before,.tree-row--deep .tree-branch:not(.tree-branch--folder):before{display:none}.tree-icon{display:block}.tree-icon--folder{width:18px;height:18px;color:var(--text-dim)}.tree-folder-chevron{width:16px;height:16px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tree-folder-chevron:hover{color:var(--text)}.tree-folder-chevron .icon-sprite{width:14px;height:14px}.tree-chevron-icon{transition:transform .15s}.tree-chevron-icon--collapsed{transform:rotate(-90deg)}.tree-label-wrap{align-items:center;gap:6px;min-width:0;display:flex}.tree-label{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;font-size:12px;overflow:hidden}.tree-row-actions{-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.tree-action-btn{border:1px solid color-mix(in srgb, var(--line-strong) 55%, transparent);background:var(--bg-elev-2);width:32px;height:32px;color:var(--text-dim);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.tree-action-btn .icon-sprite{width:18px;height:18px}.app-shell .tree-action-btn{min-width:32px;min-height:32px}.tree-action-btn:hover{color:var(--text);border-color:color-mix(in srgb, var(--line-strong) 70%, transparent)}.tree-action-btn--operation{font-size:14px;font-weight:700}.tree-action-btn--more{font-size:18px;font-weight:700;line-height:18px}.tree-action-btn--add{color:var(--add);border-color:color-mix(in srgb, var(--add) 45%, transparent)}.tree-action-btn--subtract{color:var(--cut);border-color:color-mix(in srgb, var(--cut) 45%, transparent)}.tree-action-btn--grouped{color:var(--accent-strong);border-color:color-mix(in srgb, var(--accent) 65%, transparent);background:color-mix(in srgb, var(--accent) 28%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent)}.tree-action-btn--muted{opacity:.58}.feature-tree-empty{color:var(--text-dim);padding:8px 0 0 14px;font-size:13px}.tree-children .feature-tree-empty{padding-left:22px}.properties-panel{gap:10px;padding:8px;display:grid}.properties-group{gap:6px;display:grid}.properties-field{color:var(--text-dim);grid-template-columns:minmax(74px,88px) minmax(0,1fr);align-items:center;gap:6px 8px;font-size:12px;display:grid}.properties-field span{color:var(--text-dim);text-transform:none;letter-spacing:normal;line-height:1.3}.properties-field--machine{grid-template-columns:minmax(92px,104px) minmax(0,1fr)}.properties-field--textarea{align-items:start}.properties-field--textarea>span{padding-top:8px}.properties-field-label-row{align-items:center;gap:6px;display:inline-flex}.properties-refresh-btn .icon-sprite{width:15px;height:15px}.properties-field>:not(span):not(.properties-field-label-row):not(.op-param-ref){grid-column:2}.properties-field input,.properties-field select,.properties-field textarea,.properties-field button:not(.tree-action-btn):not(.feat-btn){background-color:var(--surface-panel);border:1px solid var(--line-strong);color:var(--text);box-sizing:border-box;border-radius:7px;width:100%;min-width:0;height:32px;padding:0 8px}.properties-field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2394aabc'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:26px;transition:border-color .12s}.properties-field select:hover{border-color:color-mix(in oklab, var(--accent) 50%, var(--line-strong))}.properties-field select:focus{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent);outline:none}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}::-webkit-scrollbar-corner{background:0 0}.ui-select{min-width:0;position:relative}.ui-select__trigger{background-color:var(--surface-panel);border:1px solid var(--line-strong);width:100%;height:32px;color:var(--text);font:inherit;font-size:inherit;cursor:pointer;text-align:left;border-radius:7px;justify-content:space-between;align-items:center;padding:0 8px;transition:border-color .12s;display:flex}.ui-select__trigger:hover{border-color:color-mix(in oklab, var(--accent) 50%, var(--line-strong))}.ui-select--open .ui-select__trigger,.ui-select__trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent);outline:none}.ui-select--disabled .ui-select__trigger{opacity:.45;cursor:default}.ui-select__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ui-select__arrow{border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--text-dim);flex-shrink:0;width:0;height:0;margin-left:7px;transition:transform .12s}.ui-select--open .ui-select__arrow{transform:rotate(180deg)}.ui-select__dropdown{z-index:200;background:var(--bg-elev-2);border:1px solid var(--line-strong);box-shadow:0 6px 18px var(--shadow-strong);border-radius:7px;padding:3px;position:absolute;top:calc(100% + 3px);left:0;right:0;overflow:hidden}.ui-select__option{font-size:inherit;color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;padding:5px 8px;overflow:hidden}.ui-select__option:hover{background:var(--surface-hover)}.ui-select__option--selected{color:var(--accent)}.ui-select__option--selected:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.properties-field textarea{resize:vertical;min-height:88px;line-height:1.4;font:inherit;padding:8px}.properties-field input[type=color]{padding:3px}.properties-field input:disabled{color:var(--text-dim);opacity:1}.cam-operation-properties .properties-field{grid-template-columns:minmax(74px,88px) minmax(0,1fr) 50px}.op-param-ref{border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);background:var(--surface-input);pointer-events:none;border-radius:6px;grid-column:3;place-self:center end;width:50px;height:34px}.cam-operation-properties .properties-check .op-param-ref{margin-left:auto}.cam-operation-properties .properties-field>.cam-field-message{grid-column:1/-1}.properties-field .cam-field-message,.properties-field .cam-field-note-list{margin-top:2px}.properties-check{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.properties-actions{flex-wrap:wrap;gap:6px;display:flex}.properties-actions button{border:1px solid var(--line-strong);background:linear-gradient(180deg, var(--surface-control-top), var(--surface-control-bottom));height:32px;color:var(--text);cursor:pointer;box-shadow:inset 0 1px 0 var(--surface-sheen), inset 0 -1px 0 var(--surface-inset);border-radius:7px;padding:0 10px;font-size:12px;font-weight:500;line-height:1}.properties-actions button:hover{border-color:var(--accent);background:var(--surface-hover);color:var(--accent-strong)}.properties-actions button:disabled{opacity:.45;color:var(--text-dim);cursor:default;border-color:var(--line-strong)}.properties-actions button:disabled:hover{color:var(--text-dim);border-color:var(--line-strong)}.properties-inline-status{color:var(--text-dim);align-items:center;gap:8px;margin-top:8px;font-size:12px;display:inline-flex}.inline-spinner{border:2px solid color-mix(in srgb, var(--text-dim) 28%, transparent);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite inline-spinner-spin}.properties-warning{border:1px solid color-mix(in srgb, var(--warning-text) 55%, transparent);background:color-mix(in srgb, var(--warning-text) 10%, transparent);color:var(--warning-text);border-radius:7px;padding:8px 10px;font-size:11.5px;line-height:1.45}@media (width<=399px){.properties-field{grid-template-columns:1fr;align-items:stretch;gap:5px}.properties-field>:not(span){grid-column:auto}.cam-operation-properties .properties-field{grid-template-columns:1fr}.op-param-ref{display:none}}.feature-actions{gap:4px;display:flex}.feat-btn{border:1px solid var(--line-strong);background:linear-gradient(180deg, var(--surface-button-top) 0%, var(--surface-button-bottom) 100%);color:var(--text);height:28px;box-shadow:inset 0 1px 0 var(--surface-hover), 0 1px 0 var(--surface-inset);cursor:pointer;border-radius:6px;padding:0 10px;font-size:11px;font-weight:600;transition:transform 80ms,border-color .12s,background .12s,box-shadow .12s}.feat-btn:hover{color:var(--accent-strong);border-color:var(--accent);background:linear-gradient(180deg, var(--surface-control-top) 0%, var(--surface-control-bottom) 100%);box-shadow:inset 0 1px 0 var(--surface-sheen-strong), 0 2px 4px var(--shadow)}.feat-btn:active{background:linear-gradient(180deg, var(--surface-button-bottom) 0%, var(--surface-control-top) 100%);box-shadow:inset 0 1px 3px var(--shadow);transform:translateY(1px)}.feat-btn--primary{border-color:color-mix(in srgb, var(--accent) 72%, transparent);background:linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);color:var(--on-accent)}.feat-btn--primary:hover{border-color:var(--accent-strong);background:linear-gradient(180deg, var(--accent-strong) 0%, var(--accent) 100%);color:var(--on-accent)}.feat-btn--active{color:var(--accent-strong);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 24%, transparent)}.feat-btn--delete:hover{border-color:var(--danger-text);color:var(--danger-text)}.viewport-presets{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;max-width:calc(100% - 20px);padding-left:56px;display:flex;position:absolute;top:10px;right:10px}.viewport-presets__group{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.viewport-zoom-select-overlay{z-index:25;cursor:crosshair;touch-action:none;position:absolute;inset:0}.viewport-zoom-select-box{border:1.5px dashed color-mix(in srgb, var(--accent) 92%, transparent);background:color-mix(in srgb, var(--accent) 16%, transparent);pointer-events:none;border-radius:4px;position:absolute}.preset-btn{box-sizing:border-box;border:1px solid var(--line-strong);background:var(--surface-translucent);color:var(--text);min-width:var(--control-hit-target);height:var(--control-hit-target);min-height:var(--control-hit-target);letter-spacing:.03em;cursor:pointer;border-radius:7px;padding:0 10px;font-size:12px}.preset-btn:hover{border-color:var(--accent)}.preset-btn--icon{width:var(--control-hit-target);justify-content:center;align-items:center;padding:0;display:inline-flex}.preset-btn-panel{display:inline-flex}.preset-btn-panel .preset-btn{border-radius:0}.preset-btn-panel .preset-btn:first-child{border-top-left-radius:7px;border-bottom-left-radius:7px}.preset-btn-panel .preset-btn:last-child{border-top-right-radius:7px;border-bottom-right-radius:7px}.preset-btn-panel .preset-btn+.preset-btn{margin-left:-1px}.preset-btn-panel .preset-btn:hover{z-index:1;position:relative}.view-preset-menu{position:relative}.view-preset-menu__trigger{justify-content:center;align-items:center;display:inline-flex}.view-preset-menu__trigger .icon-sprite{flex-shrink:0;width:24px;height:24px}.view-preset-menu__panel{z-index:100;border:1px solid var(--line);background:var(--surface-popover);min-width:220px;box-shadow:0 18px 48px var(--shadow-strong);-webkit-backdrop-filter:blur(18px);border-radius:12px;padding:10px;position:absolute;top:calc(100% + 8px);right:0}.view-preset-menu__heading{color:var(--text-dim);letter-spacing:.11em;text-transform:uppercase;padding:4px 6px 9px;font-size:10px;font-weight:800}.view-preset-menu__heading--section{border-top:1px solid var(--line);margin-top:6px;padding-top:10px}.view-preset-menu__options{gap:4px;display:grid}.view-preset-menu__option{width:100%;min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;grid-template-columns:26px 1fr 20px;align-items:center;gap:10px;padding:6px 8px;display:grid}.view-preset-menu__option:hover,.view-preset-menu__option:focus-visible{border-color:var(--line);background:var(--surface-hover);outline:none}.view-preset-menu__option--selected{border-color:color-mix(in oklab, var(--accent) 55%, var(--line));background:var(--accent-soft)}.view-preset-menu__option--action{grid-template-columns:1fr}.view-preset-menu__icon{justify-content:center;align-items:center;display:inline-flex}.view-preset-menu__label{font-size:13px;font-weight:650}.view-preset-menu__check{color:var(--accent-strong);text-align:center;font-size:16px;font-weight:800}.viewport-toolpath-vis{border:1px solid var(--line-strong);background:var(--surface-translucent);-webkit-backdrop-filter:blur(6px);z-index:10;border-radius:8px;flex-wrap:wrap;align-items:center;gap:3px 8px;padding:5px 7px;font-size:12px;display:flex;position:absolute;top:10px;left:10px}.viewport-toolpath-vis__label{min-width:0;min-height:24px;color:var(--text-dim);cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.05em;background:0 0;border:0;border-radius:5px;margin-right:4px;padding:0 5px;font-size:10px}.app-shell .viewport-toolpath-vis__label{min-width:0;min-height:24px}.viewport-toolpath-vis__label:hover{background:var(--surface-sheen);color:var(--text)}.viewport-toolpath-vis__label:after{content:"";border-top:4px solid;border-left:3px solid #0000;border-right:3px solid #0000;width:0;height:0;margin-left:5px;display:inline-block;transform:translateY(-1px)}.viewport-toolpath-vis--expanded .viewport-toolpath-vis__label:after{transform:translateY(-1px)rotate(180deg)}.viewport-toolpath-vis__item{min-width:0;min-height:24px;color:var(--text);cursor:pointer;font:inherit;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;padding:0 5px;font-size:12px;line-height:1;display:inline-flex}.app-shell .viewport-toolpath-vis__item{min-width:0;min-height:24px}.viewport-toolpath-vis__item:not(.viewport-toolpath-vis__item--selected){color:color-mix(in oklab, var(--text-dim) 70%, transparent)}.viewport-toolpath-vis__item:not(.viewport-toolpath-vis__item--selected) .viewport-toolpath-vis__swatch{opacity:.35}.viewport-toolpath-vis__item:hover{background:var(--surface-sheen);color:var(--text)}.viewport-toolpath-vis__item--selected{color:var(--text);font-weight:600}.viewport-toolpath-vis__swatch{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.viewport-toolpath-vis__swatch--cuts{background:var(--toolpath-cut)}.viewport-toolpath-vis__swatch--rapids{background:var(--toolpath-rapid)}.viewport-toolpath-vis__swatch--plunges{background:var(--toolpath-plunge)}.viewport-toolpath-vis__swatch--retractions{background:var(--toolpath-rapid)}.viewport-toolpath-vis__swatch--directions{background:var(--toolpath-direction)}.feature-context-menu{z-index:1000;border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:var(--surface-popover);min-width:168px;max-height:calc(100dvh - 16px);box-shadow:0 12px 26px var(--shadow), inset 0 1px 0 var(--surface-sheen);box-sizing:border-box;border-radius:10px;gap:1px;padding:4px;display:grid;position:fixed;overflow-y:auto}.feature-context-menu__separator{background:color-mix(in srgb, var(--line-strong) 30%, transparent);height:1px;margin:2px 4px}.feature-context-menu__submenu-host{display:grid;position:relative}.feature-context-menu__item--submenu{justify-content:space-between;align-items:center;gap:8px;display:flex}.feature-context-menu__submenu-caret{color:var(--text-dim);font-size:15px;line-height:1}.feature-context-menu__submenu{z-index:1001}.feature-context-menu__submenu--left{transform:translate(-100%)}.feature-context-menu__item{height:26px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:0 8px;font-size:12px}.feature-context-menu__item:hover{border-color:var(--line-strong);background:var(--surface-sheen)}.feature-context-menu__item:disabled{color:var(--text-dim);opacity:.55;cursor:default}.feature-context-menu__item:disabled:hover{background:0 0;border-color:#0000}.feature-context-menu__item--danger:hover{border:1px solid color-mix(in srgb, var(--danger-text) 75%, transparent);background:color-mix(in srgb, var(--danger-text) 12%, transparent);color:var(--danger-text)}.app-statusbar{border-top:1px solid var(--line);color:var(--status-text);background:var(--surface-raised);white-space:nowrap;box-sizing:border-box;flex-wrap:nowrap;align-items:center;gap:14px;height:35px;padding:8px 14px;font-size:12px;display:flex;overflow:auto hidden}.statusbar-about{appearance:none;color:var(--status-text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;margin-left:auto;padding:2px 6px;font-size:12px}.statusbar-about:hover{color:var(--text);background:var(--surface-sheen-mid)}.statusbar-units{appearance:none;height:20px;min-height:20px;color:var(--status-text);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;padding:0 6px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.statusbar-units:hover,.statusbar-units:focus-visible{border-color:color-mix(in srgb, var(--line-strong) 48%, transparent);background:var(--surface-sheen);color:var(--text)}.statusbar-visibility{flex:none;align-items:center;gap:2px;display:inline-flex}.statusbar-toggle{appearance:none;min-width:0;height:20px;min-height:20px;color:var(--status-text-muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;padding:0 7px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.statusbar-toggle:before{content:"";background:0 0;border-radius:999px;flex:none;width:6px;height:6px;margin-right:5px}.app-shell .statusbar-toggle{min-width:0;min-height:20px}.statusbar-toggle:hover:not(:disabled){border-color:color-mix(in srgb, var(--line-strong) 48%, transparent);background:var(--surface-sheen);color:var(--text)}.statusbar-toggle--active{color:var(--status-text)}.statusbar-toggle--active:before{background:var(--accent)}.statusbar-toggle:disabled{opacity:.36;cursor:default}.statusbar-depth-legend{appearance:none;box-sizing:border-box;flex:none;align-items:center;gap:8px;height:18px;margin-left:auto;padding:0 6px;font-size:10px;line-height:1;display:inline-flex}.statusbar-depth-legend__label{color:inherit}.statusbar-depth-legend__swatches{align-items:center;gap:4px;display:inline-flex}.statusbar-depth-legend .sketch-depth-legend__swatch{flex-basis:10px;width:10px;height:10px}.cam-panel{height:100%;min-height:0}.cam-subtabs{flex-wrap:wrap;gap:8px;display:inline-flex}.cam-subtab{border:1px solid var(--line-strong);background:var(--bg-elev-2);min-height:32px;color:var(--muted);cursor:pointer;border-radius:8px;padding:0 12px;font-size:12px;transition:border-color .18s,color .18s,background .18s}.cam-subtab:hover{border-color:var(--line-bright);color:var(--text)}.cam-subtab--active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.cam-subtab--compact{border-radius:4px;min-height:20px;padding:0 6px;font-size:11px}.cam-tools,.cam-operations-shell{height:100%;min-height:0}.cam-pass-toggle{flex-wrap:wrap;gap:8px;display:inline-flex}.cam-tools-layout{min-height:0}.cam-operations-layout,.panel-split{height:100%;min-height:0}.panel-split>*{min-width:0;min-height:0}.panel-split__divider{cursor:row-resize;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;display:flex}.panel-split__divider:before{content:"";background:var(--line-strong);border-radius:2px;width:32px;height:3px;transition:background .15s}.panel-split__divider:hover:before,.panel-split__divider:active:before{background:var(--line-bright)}.panel-resize-divider{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:10;justify-content:center;align-items:center;width:10px;display:flex;position:absolute;top:0;bottom:0;right:-10px}.panel-resize-divider:before{content:"";background:var(--line-strong);border-radius:2px;width:3px;height:24px;transition:background .15s}.panel-resize-divider:hover:before,.panel-resize-divider:active:before{background:var(--line-bright)}.app-body--toolbar-left .panel-resize-divider{right:-7px}.cam-section{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface-sheen-soft), transparent);border-radius:12px;grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;overflow:visible}.cam-section-header{border-bottom:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;display:flex;position:relative}.cam-section-header-actions{align-items:center;gap:8px;display:inline-flex;position:relative}.cam-header-action{border:1px solid var(--line-strong);background:var(--surface-translucent);min-height:28px;color:var(--text);cursor:pointer;text-transform:none;letter-spacing:normal;border-radius:7px;padding:0 10px;font-size:12px}.cam-header-action:hover:not(:disabled){border-color:var(--line-bright)}.cam-header-action:disabled{opacity:.5;cursor:default}.cam-header-action--danger{color:var(--danger-text);border-color:color-mix(in srgb, var(--danger-text) 60%, transparent);background:color-mix(in srgb, var(--danger-text) 42%, transparent)}.cam-header-action--warn{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent)}.cam-add-menu{z-index:10;border:1px solid var(--line-strong);background:var(--bg-elev-1);box-shadow:0 14px 28px var(--shadow);position:absolute;top:calc(100% + 8px);right:0}.cam-add-menu--horizontal{border-radius:10px;gap:10px;width:248px;padding:10px;display:grid}.cam-add-menu__section{gap:8px;display:grid}.cam-add-menu__label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.cam-add-menu__buttons{flex-wrap:wrap;gap:8px;display:flex}.cam-field-message--success{color:var(--add);font-size:11px;font-weight:600;line-height:1.35}.cam-field-message{color:var(--danger-text);text-transform:none;letter-spacing:normal;font-size:11px;line-height:1.35}.cam-field-note-list{gap:6px;display:grid}.cam-field-note{border:1px solid color-mix(in srgb, var(--danger-text) 45%, transparent);background:color-mix(in srgb, var(--danger-text) 24%, transparent);color:var(--danger-text);text-transform:none;letter-spacing:normal;border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.35}.cam-region-note{border:1px dashed color-mix(in oklab, var(--role-region) 58%, transparent);background:color-mix(in oklab, var(--role-region) 10%, transparent);color:var(--role-region-text);text-transform:none;letter-spacing:normal;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;line-height:1.35;display:flex}.cam-region-note__badge{border:1px dashed color-mix(in oklab, var(--role-region) 72%, transparent);background:color-mix(in oklab, var(--role-region) 16%, transparent);letter-spacing:.04em;text-transform:uppercase;border-radius:3px;flex:none;height:14px;padding:0 5px;font-size:9px;font-weight:600;line-height:14px}.cam-section-content{border-radius:0 0 12px 12px;min-height:0;overflow:visible}.cam-section-content--stack{grid-template-rows:auto minmax(0,1fr);display:grid;overflow:visible}.cam-section-toolbar{justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 0;display:flex}.cam-section-toolbar--end{justify-content:flex-end}.cam-section-body{min-height:0;overflow:auto}.cam-section-body--stack{align-content:start;display:grid}.cam-section-note{color:var(--text-dim);padding:0 10px;font-size:12px;line-height:1.35}.cam-operation-tree{min-height:0;padding-top:8px}.cam-operation-tree .tree-row{appearance:none;width:100%;color:inherit;text-align:left;font:inherit;box-shadow:none;background:0 0;border:none;outline:none}.cam-operation-tree .tree-row:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.cam-operation-tree .tree-row:focus-visible,.cam-operation-tree .tree-row--selected,.cam-operation-tree .tree-row--selected:hover,.cam-operation-tree .tree-row--selected:focus-visible,.cam-operation-tree .tree-row--selected:active{background:var(--accent-soft)}.cam-operation-tree .tree-row--selected .tree-label,.cam-operation-tree .tree-row:not(.tree-row--selected) .tree-label{color:var(--text)}.cam-operation-badge{border:1px solid var(--line-strong);min-height:20px;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 6px;font-size:10px;display:inline-flex}.cam-operation-badge--generating{border-color:color-mix(in srgb, var(--accent) 45%, transparent);min-height:18px;padding:0 4px}.cam-generating-spinner{border:1.5px solid color-mix(in srgb, var(--accent) 25%, transparent);border-top-color:var(--accent);border-radius:50%;width:10px;height:10px;animation:.8s linear infinite cam-spin;display:block}.tree-branch--generating{border-color:color-mix(in srgb, var(--accent) 45%, transparent);animation:1.2s ease-in-out infinite cam-pulse}.cam-tool-list{align-content:start;gap:8px;min-height:0;display:grid;overflow:auto}.cam-tool-tree{min-height:0;padding-top:8px}.cam-tool-tree .tree-row{appearance:none;width:100%;color:inherit;text-align:left;font:inherit;box-shadow:none;background:0 0;border:none;outline:none}.cam-tool-tree .tree-row:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.cam-tool-tree .tree-row:focus-visible,.cam-tool-tree .tree-row--selected,.cam-tool-tree .tree-row--selected:hover,.cam-tool-tree .tree-row--selected:focus-visible,.cam-tool-tree .tree-row--selected:active{background:var(--accent-soft)}.cam-tool-tree .tree-row--selected .cam-tool-label__name{color:var(--text)}.cam-tool-tree .tree-label{white-space:normal;gap:2px;min-width:0;display:grid}.cam-tool-label__name,.cam-tool-label__meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cam-tool-label__name{color:var(--text);font-size:12px;font-weight:600}.cam-tool-label__meta{color:var(--text-dim);font-size:11px}.cam-tool-properties{min-height:0;overflow:auto}.tree-action-btn--delete:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger-text) 60%, transparent);background:color-mix(in srgb, var(--danger-text) 42%, transparent);color:var(--danger-text)}.cam-header-action--active{border-color:var(--line-bright);background:var(--accent-soft)}.cam-library-browser{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:var(--surface-translucent);gap:0;display:grid}.cam-library-browser__filters{border-bottom:1px solid var(--line-strong);gap:6px;padding:8px 10px;display:flex}.cam-library-browser__filters select{border:1px solid var(--line-strong);background:var(--surface-translucent);min-width:0;height:26px;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;flex:1;padding:0 6px;font-size:12px}.cam-library-browser__list{max-height:220px;display:grid;overflow-y:auto}.cam-library-tool{border-bottom:1px solid var(--line-strong);grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:1px 8px;padding:6px 10px;display:grid}.cam-library-tool:last-child{border-bottom:none}.cam-library-tool--imported{opacity:.45}.cam-library-tool__name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;font-size:12px;font-weight:600;overflow:hidden}.cam-library-tool__meta{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;grid-area:2/1;font-size:11px;overflow:hidden}.cam-library-tool button{grid-area:1/2/3;align-self:center}@media (width<=920px){.app-body{grid-template-areas:"left centre""right right";gap:8px;grid-template-columns:220px 1fr!important}.panel-left{grid-area:left}.panel-centre{grid-area:centre}.panel-right{grid-area:right}}@media (width<=760px){.app-body{grid-template-areas:"left""centre""right";grid-template-columns:1fr!important}.toolbar{gap:10px}.toolbar-project-block,.toolbar-group{border-right:none;padding-right:0}.cam-tools-layout{grid-template-columns:1fr}}.feature-tree-warning{border:1px solid color-mix(in srgb, var(--warning-text) 55%, transparent);background:color-mix(in srgb, var(--warning-text) 10%, transparent);color:var(--warning-text);border-radius:7px;margin:6px 8px;padding:8px 10px;font-size:11.5px;line-height:1.45}.feature-tree-warning strong{color:var(--warning-text)}.tree-action-btn--locked{opacity:.45;cursor:not-allowed}.tree-action-btn--region{color:var(--role-region);border-color:color-mix(in oklab, var(--role-region) 48%, var(--line))}.tree-row--region{box-shadow:inset 2px 0 0 0 color-mix(in oklab, var(--role-region) 62%, transparent)}.tree-row--region .tree-label{color:var(--role-region-text);font-style:italic}.tree-region-badge{border:1px dashed color-mix(in oklab, var(--role-region) 72%, transparent);background:color-mix(in oklab, var(--role-region) 12%, transparent);height:14px;color:var(--role-region-text);letter-spacing:.04em;text-transform:uppercase;cursor:default;border-radius:3px;flex:none;margin-left:6px;padding:0 5px;font-size:9px;font-weight:600;line-height:14px}.tree-region-badge--exclude{background:color-mix(in oklab, var(--role-region) 8%, transparent);color:var(--role-region-text);border-style:solid}.tree-action-btn--construction{color:var(--role-construction);border-color:color-mix(in oklab, var(--role-construction) 48%, var(--line))}.tree-row--construction{box-shadow:inset 2px 0 0 0 color-mix(in oklab, var(--role-construction) 62%, transparent)}.tree-row--construction .tree-label{color:var(--role-construction-text);font-style:italic}.tree-construction-badge{border:1px dashed color-mix(in oklab, var(--role-construction) 72%, transparent);background:color-mix(in oklab, var(--role-construction) 12%, transparent);height:14px;color:var(--role-construction-text);letter-spacing:.04em;text-transform:uppercase;cursor:default;border-radius:3px;flex:none;margin-left:6px;padding:0 5px;font-size:9px;font-weight:600;line-height:14px}.tree-linked-badge{color:color-mix(in srgb, var(--accent) 70%, transparent);cursor:default;flex:none;align-items:center;margin-left:5px;display:inline-flex}.tree-icon--link{width:12px;height:12px}.tree-operation-wrapper{display:inline-flex;position:relative}.tree-operation-overlay{z-index:999;position:fixed;inset:0}.tree-operation-menu{z-index:1000;border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:var(--surface-popover);min-width:120px;box-shadow:0 12px 26px var(--shadow), inset 0 1px 0 var(--surface-sheen);border-radius:10px;gap:1px;padding:4px;display:grid;position:fixed}.tree-operation-menu__item{height:28px;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:flex}.tree-operation-menu__item:hover{border-color:var(--line-strong);background:var(--surface-sheen)}.tree-operation-menu__item--active{border-color:color-mix(in srgb, var(--line-strong) 50%, transparent);background:var(--surface-hover)}.tree-operation-menu__item--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.tree-operation-menu__icon{justify-content:center;align-items:center;width:18px;height:18px;font-size:14px;font-weight:700;display:inline-flex}.tree-operation-menu__icon--region{color:var(--role-region)}.tree-operation-icon{fill:currentColor;width:14px;height:14px}.properties-region-note{border:1px dashed color-mix(in oklab, var(--role-region) 58%, transparent);background:color-mix(in oklab, var(--role-region) 10%, transparent);color:var(--role-region-text);border-radius:6px;align-items:center;gap:6px;margin:2px 0 4px;padding:6px 8px;font-size:11px;line-height:1.35;display:flex}.properties-region-note__badge{border:1px dashed color-mix(in oklab, var(--role-region) 72%, transparent);background:color-mix(in oklab, var(--role-region) 16%, transparent);letter-spacing:.04em;text-transform:uppercase;border-radius:3px;flex:none;height:14px;padding:0 5px;font-size:9px;font-weight:600;line-height:14px}.properties-construction-note{border:1px dashed color-mix(in oklab, var(--role-construction) 58%, transparent);background:color-mix(in oklab, var(--role-construction) 10%, transparent);color:var(--role-construction-text);border-radius:6px;align-items:center;gap:6px;margin:2px 0 4px;padding:6px 8px;font-size:11px;line-height:1.35;display:flex}.properties-construction-note__badge{border:1px dashed color-mix(in oklab, var(--role-construction) 72%, transparent);background:color-mix(in oklab, var(--role-construction) 16%, transparent);letter-spacing:.04em;text-transform:uppercase;border-radius:3px;flex:none;height:14px;padding:0 5px;font-size:9px;font-weight:600;line-height:14px}.disclosure-section{border-top:1px solid var(--line);margin-top:4px}.disclosure-section__header{width:100%;color:var(--text-dim);letter-spacing:.03em;text-transform:uppercase;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:7px 2px;font-size:11px;font-weight:600;display:flex}.disclosure-section__header:hover{color:var(--text)}.disclosure-section__chevron{transition:transform .12s;transform:rotate(-90deg)}.disclosure-section__chevron--open{transform:rotate(0)}.disclosure-section__body{gap:6px;padding-bottom:4px;display:grid}.properties-locked-field{border:1px solid var(--line);background:var(--surface-sheen-soft);color:var(--text);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;min-height:28px;padding:4px 8px;font-size:13px;display:flex}.properties-locked-hint{color:var(--text-dim);white-space:nowrap;font-size:10.5px}.z-range-slider{color:var(--text-dim);grid-template-rows:32px minmax(16px,1fr) 32px;grid-template-columns:minmax(74px,88px) 24px minmax(0,1fr);align-items:center;column-gap:8px;font-size:12px;display:grid}.z-range-slider__label--top{grid-area:1/1}.z-range-slider__track{grid-area:1/2/4/3;align-self:stretch;position:relative}.z-range-slider__field--top{grid-area:1/3}.z-range-slider__label--bot{grid-area:3/1}.z-range-slider__field--bot{grid-area:3/3}.z-range-slider__field{background-color:var(--surface-panel);border:1px solid var(--line-strong);color:var(--text);box-sizing:border-box;width:100%;min-width:0;height:32px;font:inherit;border-radius:7px;padding:0 8px;font-size:12px}.z-range-slider__field:focus{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent);outline:none}.z-range-slider__track-line{background:var(--line-strong);border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.z-range-slider__filled{background:var(--accent);pointer-events:none;opacity:.7;border-radius:2px;width:4px;position:absolute;left:50%;transform:translate(-50%)}.z-range-slider__handle{background:var(--accent);border:2.5px solid var(--surface-panel);cursor:ns-resize;z-index:1;touch-action:none;border-radius:50%;width:16px;height:16px;transition:background .1s,box-shadow .1s;position:absolute;left:50%;transform:translate(-50%,-50%)}.z-range-slider__handle:before{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.z-range-slider__handle:hover,.z-range-slider__handle:focus-visible{background:var(--accent-strong);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 35%, transparent);outline:none}.properties-section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.properties-constraint-row{background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);border-radius:4px;justify-content:space-between;align-items:center;gap:6px;margin-bottom:3px;padding:3px 6px;display:flex}.properties-constraint-row--invalid{background:color-mix(in srgb, var(--danger-text) 10%, transparent);border-color:color-mix(in srgb, var(--danger-text) 35%, transparent)}.properties-constraint-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;overflow:hidden}.properties-constraint-row--invalid .properties-constraint-label{color:var(--danger-text)}.properties-constraint-delete{color:var(--text-dim);opacity:.7;flex-shrink:0;padding:0 3px;font-size:14px;line-height:1}.properties-constraint-delete:hover{color:var(--danger-text);opacity:1}.properties-constraint-type{text-transform:uppercase;letter-spacing:.04em;color:color-mix(in srgb, var(--accent) 80%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);white-space:nowrap;cursor:default;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:10px;font-weight:600}.properties-constraint-row--invalid .properties-constraint-type{color:color-mix(in srgb, var(--danger-text) 80%, transparent);background:color-mix(in srgb, var(--danger-text) 12%, transparent)}.toolpath-loading-overlay{z-index:9000;background:var(--surface-input);pointer-events:none;justify-content:center;align-items:center;animation:.15s ease-out toolpath-overlay-in;display:flex;position:fixed;inset:0}.toolpath-loading-content{background:var(--bg-elev-2);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:0 8px 32px var(--shadow-strong);border-radius:12px;align-items:center;gap:12px;padding:12px 22px;display:flex}.toolpath-loading-spinner{border:2px solid color-mix(in srgb, var(--accent) 20%, transparent);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite cam-spin;display:block}.toolpath-loading-text{color:var(--text);letter-spacing:.02em;font-size:13px}.cam-add-menu--vertical{border-radius:10px;flex-direction:column;gap:0;width:min(360px,100vw - 2rem);max-height:70vh;padding:0;display:flex;overflow:hidden auto}.cam-operations-list{flex-direction:column;gap:0;display:flex}.cam-operation-item{border-bottom:1px solid var(--line);flex-direction:column;transition:background-color .2s;display:flex}.cam-operation-item:last-child{border-bottom:none}.cam-operation-item:hover{background-color:var(--surface-hover)}.cam-operation-item--expanded{background-color:var(--surface-sheen-soft)}.cam-operation-row{grid-template-columns:1fr auto;align-items:center;gap:6px;min-height:40px;padding:5px 10px;display:grid}.cam-operation-row .feat-btn{height:auto;min-height:auto;padding:2px 6px;line-height:1}.cam-operation-hint{border-left:2px solid color-mix(in oklab, var(--warning-text) 62%, var(--line-strong));background:color-mix(in oklab, var(--warning-text) 9%, var(--bg-elev-1));color:var(--warning-text);border-radius:6px;align-items:center;gap:8px;margin:0 10px 6px;padding:4px 8px;font-size:11px;font-weight:500;line-height:1.3;display:flex}.cam-operation-hint__text{flex:1}.cam-operation-hint__select-all{white-space:nowrap;flex-shrink:0}.cam-operation-label-btn{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;min-width:0;padding:0;font-size:12px;font-weight:600;display:inline-flex}.cam-operation-label-btn .cam-operation-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cam-operation-label-btn .icon-sprite{opacity:.45;flex-shrink:0;transition:transform .18s,opacity .18s}.cam-operation-label-btn:hover,.cam-operation-label-btn--expanded{color:var(--accent)}.cam-operation-label-btn--expanded .icon-sprite{opacity:1;transform:rotate(180deg)}.cam-operation-label{display:block}.cam-operation-details{background-color:var(--surface-subtle);border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:10px;margin:0;padding:10px;animation:.2s ease-out cam-operation-expand;display:grid}.cam-operation-details__image-container{background-color:var(--surface-sheen-soft);border:1px solid var(--line);border-radius:6px;justify-content:center;align-items:center;width:100%;height:160px;display:flex;overflow:hidden}.cam-operation-details__image{object-fit:contain;object-position:center;width:100%;height:100%}.cam-operation-details__image-fallback{text-align:center;width:100%;height:100%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;padding:10px;font-size:11px;line-height:1.5;display:flex}.cam-operation-details__image-fallback code{color:var(--text-dim);background:var(--surface-sheen-mid);border-radius:3px;padding:2px 6px;font-size:10px}.cam-operation-details__description{color:var(--text);margin:0;padding:0;font-size:12px;line-height:1.5}.cam-operation-details__keypoints{gap:6px;display:grid}.cam-operation-details__keypoints-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.cam-operation-details__keypoints-list{margin:0;padding:0 0 0 18px;list-style:outside}.cam-operation-details__keypoint{color:var(--text-dim);margin:0;padding:0;font-size:11px;line-height:1.4}.cam-operation-pass-buttons{flex-shrink:0;gap:4px;display:flex}@media (width<=768px){.cam-add-menu--vertical{border-radius:8px;width:100%;max-width:100%;max-height:60vh}.cam-operation-row{gap:6px;min-height:28px;padding:5px 10px}.cam-operation-pass-buttons{gap:3px}.cam-operation-details__image-container{height:140px}}.cam-add-menu--vertical::-webkit-scrollbar{width:6px}.cam-add-menu--vertical::-webkit-scrollbar-track{background:0 0}.cam-add-menu--vertical::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--text-dim) 28%, transparent);border-radius:3px}.cam-add-menu--vertical::-webkit-scrollbar-thumb:hover{background:color-mix(in oklab, var(--text-dim) 42%, transparent)}.empty-state-overlay{z-index:5;background:var(--surface-input);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0;overflow-y:auto}.empty-state-card{border:1px solid color-mix(in srgb, var(--line-strong) 60%, transparent);background:var(--surface-popover);width:min(520px,100%);max-height:100%;box-shadow:0 18px 48px var(--shadow-strong);box-sizing:border-box;border-radius:14px;padding:24px;position:relative;overflow-y:auto}.empty-state-card__close{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;display:grid;position:absolute;top:12px;right:12px}.empty-state-card__close:hover{background:var(--surface-sheen-mid);color:var(--text)}.empty-state-card__title{color:var(--text);margin:0 0 4px;font-size:18px;font-weight:600}.empty-state-card__subtitle{color:var(--text-dim);margin:0 0 18px;font-size:13px;line-height:1.45}.empty-state-card__actions{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.empty-state-action{text-align:left;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface-sheen) 50%, transparent);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.empty-state-action:hover{border-color:var(--accent);background:var(--surface-sheen-mid)}.empty-state-action__title{font-size:13px;font-weight:600}.empty-state-action__meta{color:var(--text-dim);font-size:11px}.empty-state-card__examples-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px;font-size:11px;font-weight:600}.example-project-list{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;max-height:244px;padding-right:4px;display:grid;overflow-y:auto}.example-project-card{text-align:left;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface-sheen) 50%, transparent);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:8px;display:flex}.example-project-card:hover:not(:disabled){border-color:var(--accent);background:var(--surface-sheen-mid)}.example-project-card:disabled{opacity:.6;cursor:default}.example-project-card__thumb{aspect-ratio:4/3;object-fit:cover;background:var(--surface-inset);border-radius:6px;width:100%}.example-project-card__title{font-size:12px;font-weight:600}.example-project-card__meta{color:var(--text-dim);font-size:11px;line-height:1.35}.example-project-card__status{color:var(--accent-strong);font-size:11px}.example-project-list__status{color:var(--text-dim);padding:12px;font-size:12px}.example-project-list__status--error{color:var(--danger)}.dialog--about{max-width:440px}.dialog-body--about{grid-template-columns:1fr;gap:18px}.about-heading{gap:4px;display:grid}.about-name{color:var(--text);font-size:20px;font-weight:700}.about-version{color:var(--text-dim);font-size:13px;font-family:var(--font-mono)}.about-tagline{color:var(--text);font-size:13px;line-height:1.5}.about-meta{gap:6px;display:grid}.about-meta-row{color:var(--text-dim);justify-content:space-between;gap:16px;font-size:12px;display:flex}.about-meta-row strong{color:var(--text);font-weight:600}.about-links{flex-wrap:wrap;gap:14px;display:flex}.about-link{color:var(--accent);font-size:13px;text-decoration:none}.about-link:hover{text-decoration:underline}.about-support{border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);background:color-mix(in srgb, var(--accent) 7%, transparent);border-radius:10px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.about-support-text{color:var(--text);font-size:12.5px;line-height:1.55}.about-coffee-btn{border:1px solid var(--accent);color:var(--accent);background:0 0;border-radius:8px;align-self:flex-start;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.about-coffee-btn:hover{background:var(--accent);color:var(--on-accent)}.about-copyright{color:var(--text-dim);font-size:11px;line-height:1.5}
