@media (pointer:coarse){.sketch-kbd-btn{min-width:var(--touch-target,44px);min-height:var(--touch-target,44px);vertical-align:middle;border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;display:inline-flex}}.tree-row--nested:before,.tree-row--deep:before{display:none}@keyframes inline-spinner-spin{to{transform:rotate(360deg)}}@media (width<=1180px){.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}.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-columns:220px 1fr;grid-template-areas:"left centre""right right";gap:8px}.panel-left{grid-area:left}.panel-centre{grid-area:centre}.panel-right{grid-area:right}}@media (width<=760px){.app-body{grid-template-columns:1fr;grid-template-areas:"left""centre""right"}.toolbar{gap:10px}.toolbar-project-block,.toolbar-group{border-right:none;padding-right:0}.cam-tools-layout{grid-template-columns:1fr}}.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--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-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}}@media (pointer:coarse){:root{--touch-target:44px}}@media (pointer:coarse),(width<=960px){.panel-right{z-index:50;background:var(--bg-elev-1);border-left:1px solid var(--line);grid-area:unset;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{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-columns:minmax(200px,20%) minmax(0,1fr)!important;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}}.tablet-drawer-toggle,.tablet-drawer-scrim{display:none}@media (pointer:coarse),(width<=960px){.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)}.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)}.cam-subtab,.cam-header-action{min-height:var(--touch-target,44px);padding:0 14px}.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)}}.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)}}: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}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{background:linear-gradient(#ffffff05,#fff0);grid-template-rows:auto 1fr auto;width:100%;height:100%;display:grid}.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}.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:32px;height:32px}.toolbar-project-block{align-items:center;gap:10px;min-height:32px;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{align-items:center;gap:0;min-height:32px;display:inline-flex}.toolbar--creation.toolbar--vertical .toolbar-group{justify-items:center;gap:0;width:100%;min-height:0;display:grid}.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);cursor:pointer;background:linear-gradient(#26384a,#182430);border:1px solid #6881977a;border-radius:8px;height:30px;padding:0 12px;box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #00000047}.toolbar-project-name{font-weight:600}.toolbar-icon-btn{width:32px;height:32px;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:18px;height:18px}.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);background:#0f1820;border-radius:7px;height:32px;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:32px minmax(200px,17%) minmax(400px,1fr) minmax(240px,22%);gap:4px}.app-body--lc{grid-template-columns:minmax(200px,17%) minmax(400px,1fr)}.app-body--toolbar-left.app-body--lc{grid-template-columns:32px 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:32px 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:32px minmax(400px,1fr) minmax(240px,22%)}.app-left-rail{align-content:start;justify-items:center;min-height:0;padding:0;display:grid;overflow:visible}.panel-left{min-height:0}.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}.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;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-detail-control{border:1px solid var(--line-strong);height:30px;color:var(--text);background:#0a121bd9;border-radius:7px;align-items:center;gap:8px;margin-right:8px;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{border:1px solid var(--line-strong);background:#0a121bd9;border-radius:8px;align-items:center;gap:2px;margin-right:8px;padding:2px;display:inline-flex}.simulation-mode-toggle__btn{height:26px;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{border:1px solid var(--line-strong);height:30px;color:var(--text-dim);cursor:pointer;background:#0a121bd9;border-radius:7px;margin-left:4px;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}.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);cursor:pointer;background:#121922b8;border-bottom-color:#0000;border-radius:10px 10px 0 0;height:34px;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{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}.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;outline:none;width:100%;height:100%;display:block}.sketch-canvas--placing{cursor:copy}.sketch-edit-banner{z-index:4;border:1px solid var(--accent);color:#f5d9b5;background:#111820eb;border-radius:8px;padding:8px 10px;font-size:12px;position:absolute;top:12px;left:12px}.sketch-banner-warning{color:#f7b86a;margin-top:6px}.sketch-edit-banner kbd,.sketch-place-banner kbd{border:1px solid var(--line-strong);background:#0f161f;border-bottom-width:2px;border-radius:4px;padding:1px 4px}.sketch-kbd-btn{cursor:pointer;-webkit-user-select:none;user-select:none}.sketch-kbd-btn:hover{border-color:var(--accent);color:var(--accent-strong)}@media (pointer:coarse){.sketch-kbd-btn{min-width:var(--touch-target,44px);min-height:var(--touch-target,44px);vertical-align:middle;border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;display:inline-flex}}.sketch-place-banner{z-index:4;color:#f0d3af;background:#1a150eeb;border:1px solid #c89c62;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:0;padding:8px 10px;font-size:12px;line-height:1.2;display:inline-flex;position:absolute;bottom:12px;left:12px}.sketch-place-toggle{color:#f0d3af;white-space:nowrap;align-items:baseline;gap:6px;margin:0 10px 0 8px;display:inline-flex}.sketch-place-toggle input{margin:0;position:relative;top:1px}.sketch-place-count{border:1px solid var(--line-strong);width:56px;height:28px;color:var(--text);background:#0f1820;border-radius:6px;outline:none;padding:0 8px}.sketch-place-count:focus{border-color:var(--accent)}.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--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{gap:2px;padding-left:10px;display:grid;position:relative}.tree-children{gap:2px;padding-left:6px;display:grid;position:relative}.tree-children:before{content:"";background:linear-gradient(#546c808c,#3c526526);width:1px;position:absolute;top:2px;bottom:2px;left:5px}.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;border-radius:8px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:28px;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:before,.tree-row--deep:before{display:none}.tree-row--stock{margin-bottom:4px}.tree-row--grid{margin-bottom:2px}.tree-row--features{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--folder .tree-branch{background:#293a48b3;border-color:#7690a4b3}.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--folder .tree-branch:before{background:#d6e2ecbf}.tree-branch--folder:before{display:none}.tree-icon{display:block}.tree-icon--folder{fill:#d6e2ecc7;width:16px;height:12px;transform:translate(-1px)}.tree-label{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.tree-row-actions{align-items:center;gap:6px;display:inline-flex}.tree-action-btn{width:20px;height:20px;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:hover{color:var(--text);border-color:#7ea0bbb3}.tree-action-btn--operation{font-size:14px;font-weight:700}.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 26px;font-size:13px}.tree-children .feature-tree-empty{padding-left:36px}.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){border:1px solid var(--line-strong);color:var(--text);background:#0f1820;border-radius:7px;min-width:0;height:32px;padding:0 8px}.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<=1180px){.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-dim);background:#13202c;border-radius:6px;height:24px;padding:0 7px;font-size:11px}.feat-btn:hover{color:#fff;border-color:var(--accent)}.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{border:1px solid var(--line-strong);color:var(--text);letter-spacing:.03em;cursor:pointer;background:#0a121bd9;border-radius:7px;min-width:30px;height:30px;padding:0 10px;font-size:12px}.preset-btn:hover{border-color:var(--accent)}.preset-btn--icon{justify-content:center;align-items:center;width:30px;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}.feature-context-menu{z-index:1000;background:#0c121af5;border:1px solid #5e798eb8;border-radius:10px;gap:1px;min-width:168px;padding:4px;display:grid;position:fixed;box-shadow:0 12px 26px #00000059,inset 0 1px #ffffff0a}.feature-context-menu__separator{background:#5e798e4d;height:1px;margin:2px 4px}.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:18px;height:35px;padding:8px 14px;font-size:12px;display:flex;overflow:auto hidden}.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-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)}.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-add-menu{z-index:10;border:1px solid var(--line-strong);background:#0e141cfa;border-radius:10px;gap:10px;width:248px;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 28px #00000059}.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{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-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-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-columns:220px 1fr;grid-template-areas:"left centre""right right";gap:8px}.panel-left{grid-area:left}.panel-centre{grid-area:centre}.panel-right{grid-area:right}}@media (width<=760px){.app-body{grid-template-columns:1fr;grid-template-areas:"left""centre""right"}.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}.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}.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}
