@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-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:#dca56a1f}@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:#dca56a1f}@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{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;background:#000000a6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--line-strong);background:#121a24;border-radius:14px;grid-template-rows:auto 1fr auto;width:100%;max-width:800px;max-height:90vh;display:grid;overflow:hidden;box-shadow:0 24px 48px #00000073}.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-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dialog-title{color:#fff;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{color:#fff;background:#ffffff0d}.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-footer{border-top:1px solid var(--line);background:#00000026;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{border:1px solid var(--line-strong);font-family:var(--font-mono);color:#a5b4c0;white-space:pre;-webkit-user-select:text;user-select:text;background:#090f16;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)}.export-warning-list{gap:8px;margin-top:12px;display:grid}.export-warning{color:#f7b86a;background:#ff821e14;border:1px solid #ffa03c66;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);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#121821d1;border-radius:10px;gap:4px;padding:12px 14px;display:grid}.project-template-card:hover{border-color:var(--line-bright);background:#181f2be6}.project-template-card--active{border-color:var(--accent);background:#4a351b42}.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:#fff;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]{border:1px solid var(--line-strong);width:130px;color:var(--text);height:32px;font:inherit;background:#0f1820;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:color-mix(in oklab, var(--text-dim) 88%, #d6e2f0 12%);margin-top:-2px;font-size:12px;line-height:1.45}.import-dialog__field-note--warn{color:#f7b86a}.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{border:1px solid var(--line);background:#090f16;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__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);border:1px solid var(--line-strong);cursor:pointer;background:#0f1820;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(--border,#ffffff14);background:var(--surface-raised,#00000026);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:#ffffff0d}.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:#101820;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:#ffffff08}@media (width<=720px){.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] .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}.canvas-workflow-panel{z-index:26;width:min(340px,100% - 24px);color:var(--text);pointer-events:auto;background:linear-gradient(#1d2326f5,#0f151bf0);border:1px solid #c89c62b3;border-radius:8px;position:absolute;overflow:hidden;box-shadow:0 18px 44px #00000061}.canvas-workflow-panel__handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-bottom:1px solid #c89c623d;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-muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.canvas-workflow-panel__field{width:100%;min-height:32px;color:var(--text-muted);grid-template-columns:max-content minmax(72px,1fr);align-items:center;gap:10px;font-size:12px;display:grid}.canvas-workflow-panel__check input[type=checkbox]{width:18px;height:18px;margin:0}.canvas-workflow-panel__count-input{border:1px solid var(--line-strong);width:80px;height:32px;color:var(--text);background:#0f1820;border-radius:6px;outline:none;padding:0 8px;font-size:13px}.canvas-workflow-panel__count-input:focus{border-color:var(--accent)}.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}@media (pointer:coarse){:root{--touch-target:44px}.app-shell{--control-hit-target:var(--touch-target,44px);--left-toolbar-width:48px}}@media (pointer:coarse),(width<=960px){.panel-right{z-index:50;background:var(--bg-elev-1);border-left:1px solid var(--line);grid-area:unset;pointer-events:none;flex-direction:column;width:min(340px,88vw);transition:transform .22s;display:flex;position:fixed;inset:0 0 0 auto;transform:translate(100%);box-shadow:-8px 0 32px #00000073}.app-shell[data-right-open=true] .panel-right{pointer-events:auto;transform:translate(0)}.tablet-drawer-scrim{z-index:49;background:#00000073;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);pointer-events:none;flex-direction:column;width:min(340px,88vw);transition:transform .22s;display:flex;position:fixed;inset:0 0 0 auto;transform:translate(100%);box-shadow:-8px 0 32px #00000073}[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{color:orange;background:#ffa50033;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;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#101821e0;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:#ffffff14}.tablet-cmd-btn--active{border-color:var(--accent);color:var(--accent-strong);background:#dca56a2e}.tablet-cmd-btn--confirm{color:#7ddf7d;background:#3cb43c26;border-color:#3cb43c66}.tablet-cmd-btn--cancel{color:#df8080;background:#dc3c3c1f;border-color:#dc3c3c59}.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:#ffffff0f}.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:#ffffff0a;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{color:var(--text);background:#ffffff0f}.top-cmd-btn:disabled{opacity:.4;cursor:default}.top-cmd-btn--active{color:var(--accent-strong);box-shadow:inset 0 0 0 1.5px var(--accent);background:#dca56a40}.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}.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{color:var(--text);background:#ffffff24;box-shadow:inset 0 0 0 1.5px #ffffff40}.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 #ffffff0f;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{color:var(--text);background:#ffffff0f}.tool-rail__btn--active{color:var(--accent-strong);box-shadow:inset 0 0 0 1.5px var(--accent);background:#dca56a47}.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:#ffffff0a;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{color:var(--text);background:#ffffff24;box-shadow:inset 0 0 0 1.5px #ffffff4d}.tool-rail__target-btn--region.tool-rail__target-btn--active{color:#7ec4ff;background:#64b4ff33;box-shadow:inset 0 0 0 1.5px #64b4ff66}.tool-rail__target-btn .icon-sprite{width:18px;height:18px}.tool-rail__popover{background:var(--bg-elev-2);border:1px solid var(--line);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%;box-shadow:0 8px 24px #0006}.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{color:var(--text);background:#ffffff0f}.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);color:#1a1a1a;text-align:center;pointer-events:none;border-radius:7px;min-width:14px;height:14px;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);z-index:100;border-radius:10px;min-width:180px;margin-top:6px;padding:8px;position:absolute;top:100%;right:0;box-shadow:0 8px 28px #00000080}.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{color:#7ddf7d;background:#3cb43c1f;border-color:#3cb43c66}.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{color:var(--text);background:#ffffff0f}.snap-popover-item--active,.snap-popover-item--active:hover{color:var(--accent-strong);background:#dca56a2e}.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);pointer-events:none;flex-direction:column;width:min(300px,85vw);transition:transform .22s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:8px 0 32px #00000073}.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}.app-statusbar--tablet-expanded{flex-wrap:wrap}.app-statusbar--tablet-compact .statusbar-expand-btn,.app-statusbar--tablet-expanded .statusbar-expand-btn{width:24px;height:20px;color:var(--text-dim);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:#ffffff14}.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{min-width:22px;height:22px;color:var(--accent-strong);background:#dca56a33;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-y:auto}.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;color:var(--text-dim);text-align:center;background:#0b1219;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;font-size:18px;display:flex;position:fixed;inset:0}}:root{--bg:#0a1016;--bg-elev-1:#101821;--bg-elev-2:#16222d;--line:#2a3a49;--line-strong:#3c5265;--text:#d8e4ef;--text-dim:#94aabc;--accent:#dca56a;--accent-strong:#eab982;--add:#6abb81;--cut:#5a8fcc;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 18% -10%,#1c2a37,#0a1016 58%);font-family:Avenir Next,IBM Plex Sans,Segoe UI,sans-serif}*{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{min-height:100svh}button,input{font:inherit}.unsupported-mobile-shell{background:radial-gradient(circle at top,#5a8fcc38,#0000 36%),linear-gradient(#091018 0%,#0a1016 100%);justify-content:center;align-items:center;min-height:100%;padding:1.5rem;display:flex}.unsupported-mobile-card{border:1px solid var(--line);background:#101821f0;border-radius:1rem;width:min(100%,32rem);padding:1.5rem;box-shadow:0 24px 60px #00000059}.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,#0000 36%),linear-gradient(#091018 0%,#0a1016 100%);justify-content:center;align-items:center;min-height:100%;padding:1.5rem;display:flex}.app-error-card{border:1px solid var(--line);background:#101821f0;border-radius:1rem;width:min(100%,40rem);padding:1.75rem;box-shadow:0 24px 60px #00000059}.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);color:var(--text-dim);white-space:pre-wrap;word-break:break-word;background:#090e14b3;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(#ffffff05,#fff0);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, #ffffff08, #fff0), 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:#fff}.toolbar-target-btn--region.toolbar-target-btn--active{border-color:#9966cce6;box-shadow:inset 0 0 0 1px #9966cc6b}.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{position:relative}.toolbar-popover{z-index:30;background:linear-gradient(#1e2c3b,#111923);border:1px solid #68819799;border-radius:8px;gap:4px;padding:6px;display:grid;position:absolute;box-shadow:0 8px 24px #0000006b}.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}.icon-sprite{display:block}.toolbar-project-name,.toolbar-btn{color:var(--text);min-height:var(--control-hit-target);cursor:pointer;background:linear-gradient(#26384a,#182430);border:1px solid #6881977a;border-radius:8px;padding:0 12px;box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #00000047}.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{color:var(--accent);background:#dca56a1a;border-color:#dca56a6b}.toolbar-icon-btn{width:var(--control-hit-target);height:var(--control-hit-target);color:var(--text);cursor:pointer;background:linear-gradient(#2a3a4c,#17232f);border:1px solid #68819770;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex;box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #00000047}.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 .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 .toolbar-icon-btn{border-top-right-radius:0;border-bottom-right-radius:6px;border-bottom-left-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);color:#fff}.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:#fff;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent)}.toolbar-icon-btn--active{border-color:var(--accent);color:#fff;box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 42%, transparent), 0 0 0 1px #dca56a1f;background:linear-gradient(#3d4f61,#202d3a)}.toolbar-icon-btn--live{color:#dff5ff;border-color:#7bc7f6;box-shadow:inset 0 0 0 1px #7bc7f67a,0 0 0 1px #7bc7f61f,0 0 12px #7bc7f61f}.toolbar-tooltip{color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:10;background:#0d151df5;border:1px solid #5e798eb8;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%)}.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-btn-apply{border-color:color-mix(in oklab, var(--accent) 50%, var(--line-strong))}.toolbar-name-input,.toolbar-field input{border:1px solid var(--line-strong);color:var(--text);min-height:var(--control-hit-target);background:#0f1820;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);align-content:start;justify-items:center;min-height:0;padding:0;display:grid;overflow:visible}.panel-left{min-height:0;position:relative}.panel{border:1px solid var(--line);background:linear-gradient(#ffffff08,#fff0);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:#0d141c;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 0 0,#78aaff14,#0000 34%),radial-gradient(circle at 100% 100%,#ffc4780f,#0000 30%),#0d141c;width:100%;height:100%;position:relative}.simulation-viewport__canvas{width:100%;height:100%}.simulation-viewport__overlay{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b121be0;border-radius:10px;width:min(320px,100% - 420px);max-height:calc(100% - 20px);padding:12px 14px;position:absolute;top:54px;left:10px;overflow:auto;box-shadow:0 16px 32px #0000002e}.simulation-viewport__overlay-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.simulation-viewport__close{border:1px solid var(--line-strong);height:26px;color:var(--text-dim);cursor:pointer;background:#0a121bd9;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{color:#efc0b7;background:#5c272538;border:1px solid #c4766aa6;border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.45}.simulation-viewport__computing-overlay{pointer-events:none;z-index:5;background:#0d141c73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.simulation-viewport__spinner{border:3px solid #ffffff26;border-top-color:#ffffffb3;border-radius:50%;width:32px;height:32px;animation:.7s linear infinite sim-spin}.simulation-detail-control{box-sizing:border-box;height:var(--control-hit-target);min-height:var(--control-hit-target);border:1px solid var(--line-strong);color:var(--text);background:#0a121bd9;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:#0a121bd9;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{color:var(--text);background:#ffffff0f}.simulation-playback-toggle{box-sizing:border-box;height:var(--control-hit-target);min-height:var(--control-hit-target);border:1px solid var(--line-strong);color:var(--text-dim);cursor:pointer;background:#0a121bd9;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);color:var(--text);pointer-events:auto;background:#0a121beb;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%);box-shadow:0 8px 24px #00000059}.simulation-playback-bar__controls{gap:4px;display:inline-flex}.simulation-playback-bar__btn{border:1px solid var(--line-strong);width:32px;height:28px;color:var(--text);cursor:pointer;background:#ffffff08;border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.simulation-playback-bar__btn:hover{background:#ffffff14}.simulation-playback-bar__btn--primary{background:var(--accent,#3b82f6);border-color:var(--accent,#3b82f6);color:#fff}.simulation-playback-bar__btn--primary:hover{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:130px;accent-color:var(--accent)}.simulation-playback-bar__speed select{border:1px solid var(--line-strong);height:26px;color:var(--text);background:#ffffff08;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%;width:8px;height:8px;margin-left:6px;display:inline-block}.simulation-playback-bar__move-kind--cut,.simulation-playback-bar__move-kind--lead_in,.simulation-playback-bar__move-kind--lead_out{background:#ff735c}.simulation-playback-bar__move-kind--plunge{background:#d583df}.simulation-playback-bar__move-kind--rapid{background:#78b8de}.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);color:var(--text-dim);min-height:var(--control-hit-target);cursor:pointer;background:#121922b8;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:#171f2adb;border-bottom-color:#0000}.panel-tab--active{color:var(--text);z-index:1;background:#0f161ff5;border-color:#dca56abf #dca56abf #0f161ff5;min-height:0;position:relative}.workspace-layout-controls{align-items:center;gap:0;margin-left:auto;padding-bottom:6px;display:inline-flex}.toolbar-orientation-controls{border-left:1px solid var(--line);align-items:center;gap:0;margin-left:10px;padding-bottom:6px;padding-left:10px;display:inline-flex}.workspace-layout-btn{width:var(--control-hit-target);height:var(--control-hit-target);border:1px solid var(--line-strong);color:var(--text-dim);cursor:pointer;background:#121922b8;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);background:#0f161ff5;border-color:#dca56abf}.toolbar-orientation-btn{border:1px solid var(--line-strong);width:30px;height:30px;color:var(--text-dim);cursor:pointer;background:#121922b8;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.toolbar-orientation-btn:hover:not(:disabled){color:var(--text);border-color:var(--line-bright)}.toolbar-orientation-btn:disabled{opacity:.45;cursor:default}.toolbar-orientation-btn--active{color:var(--text);background:#0f161ff5;border-color:#dca56abf}.workspace-layout-controls .workspace-layout-btn:first-child,.toolbar-orientation-controls .toolbar-orientation-btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.workspace-layout-controls .workspace-layout-btn:last-child,.toolbar-orientation-controls .toolbar-orientation-btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.toolbar-orientation-icon{gap:3px;display:grid}.toolbar-orientation-icon span{background:currentColor;border-radius:2px;display:block}.toolbar-orientation-icon--top{width:14px}.toolbar-orientation-icon--top span:first-child{width:14px;height:3px}.toolbar-orientation-icon--top span:last-child{opacity:.55;width:14px;height:8px}.toolbar-orientation-icon--left{grid-template-columns:3px 8px;width:14px;height:12px}.toolbar-orientation-icon--left span:first-child{width:3px;height:12px}.toolbar-orientation-icon--left span:last-child{opacity:.55;width:8px;height:12px}.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;color:#101820;background:linear-gradient(180deg, var(--accent-strong), var(--accent));border-radius:6px;place-items:center;width:34px;height:34px;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}.axis-lock-chip{z-index:20;cursor:pointer;pointer-events:auto;background:#0f151bd9;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:#f7b86a;margin-top:6px}.sketch-depth-legend{z-index:4;background:#10161eeb;border:1px solid #5b758ac7;border-radius:10px;min-width:158px;padding:10px 10px 9px;position:absolute;bottom:12px;right:12px;box-shadow:0 10px 24px #00000038,inset 0 1px #ffffff0a}.sketch-depth-legend__header{color:#e6eef5f0;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);color:var(--text-dim);cursor:pointer;background:#0d131be0;border-radius:7px;transition:border-color .18s,color .18s,background .18s}.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(--text)}.sketch-depth-legend__items{gap:7px;display:grid}.sketch-depth-legend__item{color:#cedce7f2;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-shallow{background:#5da5d8}.sketch-depth-legend__swatch--subtract-deep{background:#3f76b4}.sketch-depth-legend__swatch--add{background:#63b176}.sketch-depth-legend__swatch--region{background:#96c}.sketch-depth-legend__swatch--imported-model{background:#bcc8d4}.sketch-depth-legend__swatch--selected{background:#efbc7a}.sketch-dim-input{z-index:5;text-align:center;color:#f5d8b7f5;box-sizing:border-box;background:#0f151deb;border:1px solid #efbc7aa6;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:#efbc7af2;box-shadow:0 0 0 2px #efbc7a2e}.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), #3c526533);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{margin:4px 0 2px}.tree-row--stock:before{width:12px}.tree-row--selected{background:#dca56a1f}.tree-row--selected .tree-label{color:#fff}.tree-row--dragging{opacity:.35}.tree-branch{border:1px solid var(--line-strong);width:16px;height:16px;color:var(--text-dim);background:#13202cd9;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:#dca56a24}.tree-row--grid .tree-branch{background:#587d9e24;border-color:#6e98be}.tree-row--features .tree-branch,.tree-row--regions .tree-branch,.tree-row--folder .tree-branch{background:#293a48b3;border-color:#7690a4b3}.tree-row--regions .tree-branch{background:#9966cc21;border-color:#9966ccbf}.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:#7ea9d1}.tree-row--features .tree-branch:before,.tree-row--regions .tree-branch:before,.tree-row--folder .tree-branch:before{background:#d6e2ecbf}.tree-row--regions .tree-branch:before{background:#b98add}.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{color:#d6e2ecc7;width:18px;height:18px}.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{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:#13202cc7;border:1px solid #5c768a8c;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:#7ea0bbb3}.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:#72c386;border-color:#63b17673}.tree-action-btn--subtract{color:#7eb3de;border-color:#4e8dc173}.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-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){grid-column:2}.properties-field input,.properties-field select,.properties-field textarea,.properties-field button:not(.tree-action-btn):not(.feat-btn){border:1px solid var(--line-strong);color:var(--text);box-sizing:border-box;background-color:#0f1820;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{border:1px solid var(--line-strong);width:100%;height:32px;color:var(--text);font:inherit;font-size:inherit;cursor:pointer;text-align:left;background-color:#0f1820;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;border:1px solid var(--line-strong);background:#16222d;border-radius:7px;padding:3px;position:absolute;top:calc(100% + 3px);left:0;right:0;overflow:hidden;box-shadow:0 6px 18px #00000073}.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:#ffffff0f}.ui-select__option--selected{color:var(--accent)}.ui-select__option--selected:hover{background:#dca56a1a}.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}.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);height:32px;color:var(--text);cursor:pointer;background:linear-gradient(#2a3a4c,#17232f);border-radius:7px;padding:0 10px;font-size:12px;font-weight:500;line-height:1;box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #00000047}.properties-actions button:hover{border-color:var(--accent);color:#fff}.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 #849bb047;border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite inline-spinner-spin}.properties-warning{color:#f7b86a;background:#ff821e1a;border:1px solid #ffa03c8c;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}}.feature-actions{gap:4px;display:flex}.feat-btn{border:1px solid var(--line-strong);color:var(--text);cursor:pointer;background:linear-gradient(#24374a 0%,#13202c 100%);border-radius:6px;height:28px;padding:0 10px;font-size:11px;font-weight:600;transition:transform 80ms,border-color .12s,background .12s,box-shadow .12s;box-shadow:inset 0 1px #ffffff0f,0 1px #00000047}.feat-btn:hover{color:#fff;border-color:var(--accent);background:linear-gradient(#2d4358 0%,#172635 100%);box-shadow:inset 0 1px #ffffff14,0 2px 4px #00000038}.feat-btn:active{background:linear-gradient(#13202c 0%,#1d3040 100%);transform:translateY(1px);box-shadow:inset 0 1px 3px #00000059}.feat-btn--primary{color:#fff3de;background:linear-gradient(#7a5938 0%,#4c3727 100%);border-color:#dca56ab8}.feat-btn--primary:hover{background:linear-gradient(#8b6742 0%,#573f2d 100%);border-color:#e3b374}.feat-btn--active{color:#fff;border-color:var(--accent);background:#2552883d}.feat-btn--delete:hover{color:#f5b3ad;border-color:#c96d65}.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{pointer-events:none;background:#f2b95c29;border:1.5px dashed #f7d394eb;border-radius:4px;position:absolute}.preset-btn{box-sizing:border-box;border:1px solid var(--line-strong);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;background:#0a121bd9;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}.viewport-toolpath-vis{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(6px);z-index:10;background:#0a121bd9;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{color:var(--text);background:#ffffff0a}.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{color:var(--text);background:#ffffff0a}.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:#ff735c}.viewport-toolpath-vis__swatch--rapids{background:#78b8de}.viewport-toolpath-vis__swatch--plunges{background:#d583df}.viewport-toolpath-vis__swatch--retractions{background:#78b8de}.viewport-toolpath-vis__swatch--directions{background:#ffb15c}.feature-context-menu{z-index:1000;box-sizing:border-box;background:#0c121af5;border:1px solid #5e798eb8;border-radius:10px;gap:1px;min-width:168px;max-height:calc(100dvh - 16px);padding:4px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 12px 26px #00000059,inset 0 1px #ffffff0a}.feature-context-menu__separator{background:#5e798e4d;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:#ffffff0a}.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{color:#f5b3ad;background:#c96d651f;border-color:#c96d65bf}.app-statusbar{border-top:1px solid var(--line);color:var(--text-dim);white-space:nowrap;box-sizing:border-box;background:#101821e6;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(--text-dim);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:#ffffff0d}.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:color-mix(in oklab, var(--text-dim) 72%, transparent);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;padding:0 7px;font-size:11px;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){color:var(--text);background:#ffffff0a;border-color:#5e798e7a}.statusbar-toggle--active{color:var(--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);min-height:32px;color:var(--muted);cursor:pointer;background:#161d27db;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);color:var(--text);background:#4a351b52}.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(#ffffff08,#fff0);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);min-height:28px;color:var(--text);cursor:pointer;text-transform:none;letter-spacing:normal;background:#121922db;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:#f0bbb6;background:#3d1b186b;border-color:#aa5c5499}.cam-header-action--warn{color:var(--accent);border-color:#dca56a73}.cam-add-menu{z-index:10;border:1px solid var(--line-strong);background:#0e141cfa;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 28px #00000059}.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:#7ddf7d;font-size:11px;line-height:1.35}.cam-field-message{color:#f0bbb6;text-transform:none;letter-spacing:normal;font-size:11px;line-height:1.35}.cam-field-note-list{gap:6px;display:grid}.cam-field-note{color:#f0bbb6;text-transform:none;letter-spacing:normal;background:#3d1b183d;border:1px solid #aa5c5473;border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.35}.cam-region-note{color:#c4a6e0;text-transform:none;letter-spacing:normal;background:#9966cc1a;border:1px dashed #9966cc80;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;line-height:1.35;display:flex}.cam-region-note__badge{letter-spacing:.04em;text-transform:uppercase;background:#9966cc29;border:1px dashed #9966ccb3;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:#dca56a0f}.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:#dca56a1f}.cam-operation-tree .tree-row--selected .tree-label{color:#fff}.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:#dca56a73;min-height:18px;padding:0 4px}.cam-generating-spinner{border:1.5px solid #dca56a40;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:#dca56a73;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:#dca56a0f}.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:#dca56a1f}.cam-tool-tree .tree-row--selected .cam-tool-label__name{color:#fff}.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){color:#f0bbb6;background:#3d1b186b;border-color:#aa5c5499}.cam-header-action--active{border-color:var(--line-bright);background:#dca56a1f}.cam-library-browser{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:#0c121a99;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);min-width:0;height:26px;color:var(--text);font:inherit;cursor:pointer;background:#121922db;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{color:#f7b86a;background:#ff821e1a;border:1px solid #ffa03c8c;border-radius:7px;margin:6px 8px;padding:8px 10px;font-size:11.5px;line-height:1.45}.feature-tree-warning strong{color:#ffd08a}.tree-action-btn--locked{opacity:.45;cursor:not-allowed}.tree-action-btn--region{color:#96c;border-color:#9966cc73}.tree-row--region{box-shadow:inset 2px 0 #9966cc8c}.tree-row--region .tree-label{color:#c4a6e0;font-style:italic}.tree-region-badge{color:#c4a6e0;letter-spacing:.04em;text-transform:uppercase;cursor:default;background:#9966cc1f;border:1px dashed #9966ccb3;border-radius:3px;flex:none;height:14px;margin-left:6px;padding:0 5px;font-size:9px;font-weight:600;line-height:14px}.tree-operation-wrapper{display:inline-flex;position:relative}.tree-operation-overlay{z-index:999;position:fixed;inset:0}.tree-operation-menu{z-index:1000;background:#0c121af5;border:1px solid #5e798eb8;border-radius:10px;gap:1px;min-width:120px;padding:4px;display:grid;position:fixed;box-shadow:0 12px 26px #00000059,inset 0 1px #ffffff0a}.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:#ffffff0a}.tree-operation-menu__item--active{background:#ffffff0f;border-color:#5e798e80}.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:#b98add}.tree-operation-icon{fill:currentColor;width:14px;height:14px}.properties-region-note{color:#c4a6e0;background:#9966cc1a;border:1px dashed #9966cc80;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{letter-spacing:.04em;text-transform:uppercase;background:#9966cc29;border:1px dashed #9966ccb3;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-muted,#9bb0c0);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);color:var(--text);background:#ffffff08;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{border:1px solid var(--line-strong);color:var(--text);box-sizing:border-box;width:100%;min-width:0;height:32px;font:inherit;background-color:#0f1820;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);cursor:ns-resize;z-index:1;touch-action:none;border:2.5px solid #0f1820;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,#89a);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.properties-constraint-row{background:#5ba5d814;border:1px solid #5ba5d833;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:#dc3c3c1a;border-color:#dc3c3c59}.properties-constraint-label{color:#c8ddf0;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;overflow:hidden}.properties-constraint-row--invalid .properties-constraint-label{color:#f08080}.properties-constraint-delete{color:#89a;opacity:.7;flex-shrink:0;padding:0 3px;font-size:14px;line-height:1}.properties-constraint-delete:hover{color:#f08080;opacity:1}.properties-constraint-type{text-transform:uppercase;letter-spacing:.04em;color:#5ba5d8cc;white-space:nowrap;cursor:default;background:#5ba5d81f;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:10px;font-weight:600}.properties-constraint-row--invalid .properties-constraint-type{color:#dc3c3ccc;background:#dc3c3c1f}.toolpath-loading-overlay{z-index:9000;pointer-events:none;background:#0810188c;justify-content:center;align-items:center;animation:.15s ease-out toolpath-overlay-in;display:flex;position:fixed;inset:0}.toolpath-loading-content{background:#13202ceb;border:1px solid #dca56a40;border-radius:12px;align-items:center;gap:12px;padding:12px 22px;display:flex;box-shadow:0 8px 32px #0006}.toolpath-loading-spinner{border:2px solid #dca56a33;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:#ffffff05}.cam-operation-item--expanded{background-color:#ffffff08}.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{color:#e0c08a;background:#d6a55c1a;border-left:2px solid #d6a55c99;border-radius:6px;margin:0 10px 6px;padding:4px 8px;font-size:10.5px;line-height:1.3}.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{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background-color:#ffffff05;gap:10px;margin:0;padding:10px;animation:.2s ease-out cam-operation-expand;display:grid}.cam-operation-details__image-container{border:1px solid var(--line);background-color:#ffffff08;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:#ffffff0d;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:#ffffff1a;border-radius:3px}.cam-add-menu--vertical::-webkit-scrollbar-thumb:hover{background:#fff3}.empty-state-overlay{z-index:5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080c128c;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0;overflow-y:auto}.empty-state-card{box-sizing:border-box;background:#0e141cf7;border:1px solid #5e798e99;border-radius:14px;width:min(520px,100%);max-height:100%;padding:24px;overflow-y:auto;box-shadow:0 18px 48px #00000073}.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);color:var(--text);cursor:pointer;background:#ffffff05;border-radius:10px;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.empty-state-action:hover{border-color:var(--accent);background:#ffffff0d}.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);color:var(--text);cursor:pointer;background:#ffffff05;border-radius:10px;flex-direction:column;gap:4px;padding:8px;display:flex}.example-project-card:hover:not(:disabled){border-color:var(--accent);background:#ffffff0d}.example-project-card:disabled{opacity:.6;cursor:default}.example-project-card__thumb{aspect-ratio:4/3;object-fit:cover;background:#0000004d;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:#fff;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-copyright{color:var(--text-dim);font-size:11px;line-height:1.5}
