:root{--bg-dark: #1e1e1e;--bg-panel: #1e1e1e;--bg-header: #333333;--bg-hover: #3e3e3e;--bg-active: #2a2a2a;--text-light: #cccccc;--text-muted: #aaaaaa;--accent: #0e639c;--accent-hover: #127cc0;--danger: #8b0000;--success: #4caf50;--warning: #ffaa00;--border: #444444;--panel-padding: 10px;--lc-h-std: 26px;--lc-h-sm: 22px;--lc-radius: 3px;--lc-label-width: 50px;--lc-label-gap: 8px;--lc-row-gap: 4px;--lc-w-number: 12ch;--lc-w-text: 25ch;--lc-bg-input: #111;--lc-bg-readonly: #2a2a2a;--lc-border: #444;--lc-border-focus: var(--accent);--lc-text-primary: #eee;--lc-text-secondary: #aaa}body.touch-mode{--lc-h-std: 34px;--lc-h-sm: 28px;--lc-row-gap: 8px}body,html,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--bg-dark);color:var(--text-light)}::-webkit-scrollbar{width:8px;background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:#444;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}button{font-family:inherit;font-size:inherit}.flex{display:flex}.flex-row{display:flex;flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.gap-1{gap:4px}.gap-2{gap:8px}.gap-4{gap:16px}.m-0{margin:0}.mt-auto{margin-top:auto}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-4{padding:16px}.pt-2{padding-top:8px}.w-full{width:100%}.h-full{height:100%}.text-xs{font-size:.7rem}.text-sm{font-size:.8rem}.text-base{font-size:1rem}.text-lg{font-size:1.2rem}.font-bold{font-weight:700}.font-normal{font-weight:400}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.whitespace-nowrap{white-space:nowrap}.text-light{color:var(--text-light)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.border-l{border-left:1px solid var(--border)}.border-r{border-right:1px solid var(--border)}.hidden{display:none!important}.block{display:block}.cursor-pointer{cursor:pointer}.overflow-y-auto{overflow-y:auto}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row;align-items:center}.flex-grow{flex:1}.appContainer{display:flex;flex-direction:column;height:100%;width:100%;position:relative;background-color:var(--bg-dark);color:var(--text-light)}.header{height:28px;background-color:#1e1e1e;display:flex;align-items:center;padding:0 1rem;border-bottom:1px solid #000;justify-content:flex-start;flex-shrink:0;z-index:102}.logo{font-weight:700;font-size:.8rem;color:#fff;display:flex;align-items:center;gap:8px;white-space:nowrap}.logo span{background:linear-gradient(45deg,#42b883,#35495e);padding:1px 6px;border-radius:3px}.mainContainer{display:flex;flex:1;overflow:hidden;height:100%;min-width:0;min-height:0;position:relative}.viewportContainer{flex:1;position:relative;background-color:#111;overflow:hidden;min-width:0;min-height:0;transition:box-shadow .2s}.viewportContainer>canvas{position:absolute;inset:0;display:block;width:100%!important;height:100%!important}.viewportContainer.drag-active{box-shadow:inset 0 0 0 4px var(--accent)}.loadingOverlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:1.2rem;pointer-events:none;transition:opacity .5s}.context-lost-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000d9;z-index:9999;display:flex;align-items:center;justify-content:center}.context-lost-dialog{background-color:#252526;border:1px solid #ff4444;padding:25px;border-radius:6px;max-width:400px;text-align:center;box-shadow:0 10px 30px #000c}.context-lost-title{color:#f44;margin-top:0;font-size:1.2rem}.context-lost-desc{color:#fff;margin:15px 0;line-height:1.5}.context-lost-sub{color:#aaa;font-size:.9rem;margin-bottom:20px}.panel-root{display:flex;flex-direction:column;height:100%;background-color:var(--bg-dark);min-height:0}.panel-toolbar{padding:6px 10px;background-color:var(--bg-dark);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0;min-height:28px}.panel-content{flex:1;overflow-y:auto;padding:var(--panel-padding);position:relative;display:flex;flex-direction:column;background-color:var(--bg-dark)}.panel-footer{padding:10px;background-color:var(--bg-dark);border-top:1px solid var(--border);flex-shrink:0}.panel-wrapper-floating{position:fixed;z-index:2000;background-color:var(--bg-dark);border:1px solid var(--border);box-shadow:0 10px 30px #0009;display:flex;flex-direction:column;border-radius:4px;overflow:hidden}.panel-wrapper-docked{position:relative;background-color:var(--bg-dark);display:flex;flex-direction:column;flex-shrink:0;height:100%}.panel-wrapper-docked.left{border-right:1px solid var(--border);order:-1}.panel-wrapper-docked.right{border-left:1px solid var(--border);order:1}.panel-wrapper-header{display:flex;align-items:center;padding:0 10px;background-color:var(--bg-header);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;cursor:grab;min-height:29px;flex-shrink:0}.panel-wrapper-header:active{cursor:grab}.panel-wrapper-header.grabbing{cursor:grabbing}.panel-title-area{display:flex;align-items:center;gap:6px;margin-right:10px;flex-shrink:0;font-weight:600;font-size:.85rem;color:var(--text-light);height:29px}.panel-controls-area{display:flex;align-items:center;flex:1;min-width:0;height:29px}.panel-header-buttons{display:flex;gap:4px;align-items:center;flex-shrink:0;margin-left:auto;height:29px}.panel-icon-btn{background:transparent;border:none;color:var(--text-light);cursor:pointer;font-size:1rem;padding:0 4px;line-height:1;display:flex;align-items:center;justify-content:center;height:24px}.panel-icon-btn:hover{color:#fff;background-color:#ffffff1a;border-radius:3px}.panel-content-wrapper{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative;min-height:0;background-color:var(--bg-dark)}.panel-tabs{display:flex;background-color:var(--bg-dark);border-bottom:1px solid var(--border);flex-shrink:0}.panel-tab{flex:1;text-align:center;padding:8px;cursor:pointer;font-size:.85rem;font-weight:600;color:#888;background:transparent;border-bottom:2px solid transparent}.panel-tab:hover{color:#bbb;background-color:var(--bg-hover)}.panel-tab.active{color:#fff;background-color:var(--bg-header);border-bottom-color:var(--accent)}.tabScrollContainer{display:flex;overflow-x:auto;scrollbar-width:none;height:29px;align-items:stretch}.tabScrollContainer::-webkit-scrollbar{display:none}.tabItem{padding:0 12px;height:100%;display:flex;align-items:center;cursor:pointer;font-size:.85rem;font-weight:600;color:#888;white-space:nowrap;border-right:1px solid rgba(0,0,0,.1);box-sizing:border-box}.tabItem:hover{color:#bbb;background-color:var(--bg-hover)}.tabItemActive{color:#fff;background-color:var(--bg-header);border-bottom:2px solid var(--accent)}.tabClose{margin-left:8px;font-size:1rem;color:#666;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;cursor:pointer}.tabClose:hover{color:#fff;background-color:#444}.menu-bar{height:30px;background-color:#333;display:flex;align-items:center;padding:0 1rem;border-bottom:1px solid #222;flex-shrink:0;z-index:101;font-size:.85rem;position:relative}.icon-toolbar{height:40px;background-color:#383838;display:flex;align-items:center;padding:0 1rem;border-bottom:1px solid #000;flex-shrink:0;gap:5px;z-index:100;position:relative}.menu-btn{background-color:transparent;color:#ddd;border:none;padding:4px 10px;cursor:pointer;font-size:.85rem;border-radius:2px;display:flex;align-items:center;gap:5px}.menu-btn:hover,.menu-btn:focus-visible{background-color:#555;color:#fff;outline:none}.menu-btn:disabled{color:#666;background-color:transparent}.dropdown.open>.menu-btn{background-color:#555;color:#fff}.tool-btn{background-color:transparent;color:#eee;border:1px solid transparent;padding:4px;width:32px;height:32px;cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .1s}.tool-btn svg{width:20px;height:20px;pointer-events:none}.tool-btn:hover{background-color:#555;border-color:#666}.tool-btn:focus-visible{background-color:#555;outline:2px solid var(--accent);outline-offset:-2px}.tool-btn.active{background-color:#222;border-color:var(--accent);color:var(--accent)}.tool-btn.active:disabled{opacity:1!important;background-color:#222}.tool-btn:disabled{opacity:.3;cursor:not-allowed}.separator-v{width:1px;height:24px;background:#fff3;margin:0 5px}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;background-color:#333;min-width:160px;box-shadow:0 8px 16px #00000080;z-index:2000;border:1px solid #555;border-radius:3px;top:100%;left:0;margin-top:0}.menu-item{color:var(--text-light);padding:8px 12px;text-decoration:none;display:flex;align-items:center;gap:8px;font-size:.85rem;cursor:pointer;white-space:nowrap;background:transparent;border:none;width:100%;text-align:left;outline:none}.menu-item:hover,.menu-item:focus{background-color:#444;color:#fff}.menu-item:focus-visible{background-color:#444;outline:none;box-shadow:inset 3px 0 0 var(--accent)}.menu-separator{border-top:1px solid #555;margin:4px 0}.menu-icon-container{margin-right:8px;display:flex;align-items:center;width:16px}.menu-arrow{margin-left:auto;font-size:.7rem}.menu-shortcut{margin-left:auto;font-size:.7rem;color:#888}.submenu{position:relative}.submenu-content{display:none;position:absolute;left:100%;top:0;background-color:#333;min-width:160px;box-shadow:0 8px 16px #00000080;z-index:2001;border:1px solid #555;border-radius:3px;margin-left:-2px}.dropdown:hover>.dropdown-content,.dropdown.open>.dropdown-content{display:block}.submenu:hover>.submenu-content,.submenu.open>.submenu-content{display:block}.submenu.open>.menu-item{background-color:#444;color:#fff}.dropdown:hover>.menu-btn,.dropdown:hover>.tool-btn{background-color:#555}.statusBar{height:22px;background-color:#0e639c;color:#fff;display:flex;align-items:center;padding:0 10px;font-size:.75rem;justify-content:space-between;z-index:100;-webkit-user-select:none;user-select:none;flex-shrink:0;overflow:visible}.status-group{display:flex;flex-shrink:0;align-items:center}.status-item{display:flex;align-items:center;gap:6px;margin-right:15px;cursor:default}.status-item-btn{display:flex;align-items:center;gap:6px;margin-right:15px;background:transparent;border:none;color:#fff;font-size:.75rem;padding:2px 4px;border-radius:2px;cursor:pointer}.status-item-btn:hover:not(:disabled){background-color:#ffffff1a}.status-item-btn:disabled{cursor:default}.status-item.last{margin-right:0}.status-message{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 15px;font-family:monospace;cursor:pointer;transition:background-color .1s;-webkit-user-select:none;user-select:none;margin:0 10px;background:transparent;border:none;color:#ddd;font-size:.75rem;height:100%}.status-message:hover{background-color:#ffffff1a}.status-message.error{color:#f99;font-weight:700}.status-message.warning{color:#fc0}.status-message.success{color:#8f8}.status-message.info{color:#ddd}.status-dot{width:10px;height:10px;border-radius:50%}.status-dot.ok{background-color:#4caf50;box-shadow:0 0 5px #4caf50}.status-dot.warn{background-color:#ff9800}.status-dot.yellow{background-color:#ffeb3b;box-shadow:0 0 5px #ffeb3b}.status-dot.amber{background-color:#ff9800;box-shadow:0 0 5px #ff9800}.status-dot.off{background-color:#666}.status-version{opacity:.7}.status-popup-menu{position:absolute;bottom:100%;left:0;background-color:#252526;border:1px solid #444;border-radius:4px;padding:4px 0;z-index:1000;min-width:100px;box-shadow:0 -4px 12px #00000080;display:flex;flex-direction:column}.status-popup-item{padding:6px 12px;cursor:pointer;color:#ccc;font-size:.8rem;white-space:nowrap;background:transparent;border:none;text-align:left;width:100%}.status-popup-item:hover{background-color:var(--accent);color:#fff}.dockOverlay{position:absolute;top:0;bottom:0;width:300px;background-color:#44aaff26;z-index:1500;pointer-events:none;transition:opacity .2s}.dockOverlayLeft{left:0;border-right:2px solid var(--accent)}.dockOverlayRight{right:0;border-left:2px solid var(--accent)}.selectionBox{position:absolute;border:1px solid var(--accent);background-color:#0e639c33;pointer-events:none;display:none;z-index:1000}#canvas-overlay{position:absolute;top:10px;left:10px;pointer-events:none;font-family:monospace;color:#4caf50;background:#00000080;padding:5px;border-radius:4px;display:none;z-index:50}#transform-feedback{position:absolute;background:#000000d9;color:var(--accent);padding:8px 12px;border-radius:4px;font-family:monospace;font-size:.9rem;pointer-events:none;display:none;z-index:1000;white-space:pre;border:1px solid var(--accent);box-shadow:0 2px 10px #00000080}.modalOverlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000;display:flex;justify-content:center;align-items:center}.modalContent{background-color:var(--bg-dark);padding:20px;border-radius:6px;box-shadow:0 4px 16px #00000080;width:300px;border:1px solid #444}.modalContentLarge{width:400px}.modalHeader{margin-top:0;color:#fff;font-size:1rem;border-bottom:1px solid #444;padding-bottom:10px}.modalBody{margin-bottom:15px;margin-top:15px}.modalLabel{display:block;margin-bottom:5px;color:#aaa;font-size:.9rem}.modalInput{width:100%;padding:8px;background:#1e1e1e;border:1px solid #444;color:#fff;box-sizing:border-box}.modalHint{font-size:.8rem;color:#666;margin-top:5px;font-style:italic}.modalFooter{display:flex;gap:10px;justify-content:flex-end}.modalBtn{padding:6px 12px;background:#444;border:none;color:#fff;cursor:pointer;border-radius:3px}.modalBtnPrimary{background:var(--accent)}.context-menu{position:fixed;background-color:var(--bg-dark);border:1px solid var(--border);box-shadow:0 4px 12px #00000080;border-radius:4px;z-index:10000;padding:4px 0;min-width:160px;display:flex;flex-direction:column}.context-header{padding:4px 12px;font-size:.75rem;color:#aaa;border-bottom:1px solid var(--bg-header);margin-bottom:2px;-webkit-user-select:none;user-select:none}.context-item{padding:6px 12px;cursor:pointer;font-size:.85rem;color:var(--text-light);transition:background-color .1s;display:flex;align-items:center;gap:8px;position:relative;background:transparent;border:none;width:100%;text-align:left;outline:none}.context-item:hover,.context-item:focus-visible{background-color:var(--accent);color:#fff}.context-item-content{display:flex;align-items:center;gap:8px;flex-grow:1}.context-item-icon{width:16px;display:center;justify-content:center;align-items:center;flex-shrink:0}.context-icon-axis{font-weight:700;text-transform:uppercase}.context-icon-flip{font-size:1rem;line-height:0}.context-item-arrow{font-size:.7rem}.context-tag-item{white-space:nowrap}.context-divider{border-top:1px solid var(--bg-header);margin:4px 0}.context-submenu-container{width:100%;position:relative}.context-submenu{top:-4px;background-color:var(--bg-dark);border:1px solid var(--border);box-shadow:0 4px 12px #00000080;border-radius:4px;padding:4px 0;position:absolute;z-index:10001;display:none}.context-submenu-container:hover .context-submenu{display:block}.context-submenu.right{left:100%;right:auto;margin-left:-1px}.context-submenu.left{right:100%;left:auto;margin-right:-1px}.layout-system-overlay{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none}.layout-system-root{width:100%;height:100%}.layout-split-container{display:flex;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;pointer-events:none}.layout-pane{overflow:hidden;position:relative;min-width:0;min-height:0}.layout-resizer{flex:0 0 4px;background-color:#383838;z-index:10;transition:background-color .2s;-webkit-user-select:none;user-select:none;pointer-events:auto}.layout-resizer.dragging,.layout-resizer:hover{background-color:var(--accent)}.layout-leaf{width:100%;height:100%;min-width:0;min-height:0;position:relative;display:flex;flex-direction:column;border:1px solid #333;box-sizing:border-box;pointer-events:none}.layout-leaf.active{border-color:var(--accent)}.layout-leaf-controls{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:1;pointer-events:auto;z-index:10}.layout-leaf-btn{background:transparent;border:none;font-size:.8rem;cursor:pointer;width:16px;height:16px;padding:0;border-radius:2px;display:flex;align-items:center;justify-content:center;transition:opacity .1s}.layout-leaf-btn svg{width:12px;height:12px}.layout-leaf-btn.theme-dark{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.5)}.layout-leaf-btn.theme-light{color:#000;text-shadow:0 1px 3px rgba(255,255,255,.9),0 0 2px rgba(255,255,255,.8)}.layout-leaf-btn.close.theme-dark{color:var(--danger)}.layout-leaf-btn.close.theme-light{color:red}.layout-leaf-content{flex:1;position:relative;overflow:hidden;min-width:0;min-height:0;pointer-events:none}.list-group{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:4px;background-color:var(--bg-dark);margin-bottom:0;overflow:hidden;flex-shrink:0}.list-group-header{display:flex;align-items:center;padding:6px 8px;background-color:var(--bg-header);border-bottom:1px solid var(--border);font-size:.8rem;font-weight:600;color:var(--text-light);-webkit-user-select:none;user-select:none;cursor:pointer}.list-group-body{display:flex;flex-direction:column;background-color:#1e1e1e}.list-item{display:flex;align-items:center;padding:4px 8px;border-bottom:none;font-size:.85rem;color:var(--text-light);gap:8px;transition:background-color .1s;cursor:pointer;min-height:28px;position:relative;border-left:3px solid transparent}.list-item:hover{background-color:var(--bg-hover)}.list-item.is-selected{background-color:var(--accent);color:#fff}.list-item.is-active{background-color:#0e639c33;border-left:3px solid var(--accent);padding-left:5px}.list-item.is-dragging{opacity:.5;background-color:#2a2a2a}.list-item.drop-before{border-top:2px solid var(--accent)}.list-item.drop-after{border-bottom:2px solid var(--accent)}.list-item.drop-inside{background-color:#4af3}.list-item.picking-a{border-left-color:var(--success);background-color:#345}.list-item.picking-b{border-left-color:var(--warning);background-color:#543}.list-item.picking-c{border-left-color:var(--accent);background-color:#335}.list-item-drag-handle{color:#999;cursor:grab;font-size:12px;line-height:1;display:flex;flex-direction:column;justify-content:center;width:12px;flex-shrink:0}.list-item-drag-handle:hover{color:#ccc}.list-item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:#888}.list-item.is-selected .list-item-icon{color:#fff}.list-item-content{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.tree-expander{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#888;cursor:pointer;flex-shrink:0}.list-item.is-selected .tree-expander{color:#fff}.tree-nested-ul{padding:0 0 0 24px;margin:0;list-style:none;position:relative}.tree-node-li{position:relative}.tree-node-li:after{content:"";position:absolute;top:-14px;bottom:0;left:-8px;border-left:1px solid #444}.tree-node-li:before{content:"";position:absolute;top:14px;left:-8px;width:12px;border-top:1px solid #444}.tree-node-li:last-child:after{height:28px;bottom:auto}.tree-root>.tree-node-li:after{content:none}.tree-item-input{width:100%;height:20px;padding:0 4px;font-size:.8rem;background-color:var(--bg-dark);color:var(--text-light);border:1px solid var(--accent);border-radius:2px}.tree-item-input:focus{outline:none;box-shadow:0 0 2px var(--accent)}.tree-tag-badge{font-size:.65rem;background:#4caf5033;color:#4caf50;border:1px solid #4caf50;border-radius:3px;padding:0 4px;margin-left:6px}.list-item-actions{display:flex;align-items:center;gap:4px;opacity:.6;transition:opacity .2s;margin-left:auto}.list-item:hover .list-item-actions{opacity:1}.visibility-toggle{color:#ccc;font-size:.8rem;padding:0 5px;cursor:pointer}.visibility-toggle:hover{color:#fff}.status-badge{padding:2px 6px;border-radius:10px;font-size:.65rem;font-weight:700;text-transform:uppercase;background-color:#444;color:#ccc;white-space:nowrap;border:1px solid transparent}.status-badge.success{background-color:#4caf5026;color:var(--success);border-color:var(--success)}.status-badge.warning{background-color:#ffaa0026;color:var(--warning);border-color:var(--warning)}.status-badge.error{background-color:#ff444426;color:var(--danger);border-color:var(--danger)}.status-badge.info{background-color:#44aaff26;color:var(--accent);border-color:var(--accent)}#object-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;min-height:0}.tree-root{padding:0 0 20px;margin:0;list-style:none}.log-item{display:flex;flex-direction:column;padding:6px 8px;border-bottom:1px solid #2a2a2a;border-left:3px solid transparent}.log-item.info{border-left-color:var(--accent)}.log-item.success{border-left-color:var(--success)}.log-item.warning{border-left-color:var(--warning)}.log-item.error{border-left-color:var(--danger)}.log-meta{font-size:.7rem;color:#666;margin-bottom:2px}.log-message{font-size:.8rem;color:var(--text-light);word-break:break-word;line-height:1.3}.log-item.error .log-message{color:#f88}.color-swatch{width:calc(var(--lc-h-std) / 2);height:calc(var(--lc-h-std) / 2);border:1px solid var(--border);border-radius:3px;overflow:hidden;position:relative;cursor:pointer}.color-swatch input[type=color]{opacity:0;width:100%;height:100%;cursor:pointer;display:block;padding:0;border:none}.physics-tensor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background-color:#333;padding:2px;border-radius:2px}.tensor-cell{background-color:#1e1e1e;padding:4px;font-size:.7rem;text-align:right;color:#ccc;font-family:monospace}.code-viewer{width:100%;height:100%;background-color:var(--bg-dark);color:#d4d4d4;border:none;resize:none;padding:10px;font-family:Fira Code,monospace;font-size:.85rem;box-sizing:border-box;outline:none;white-space:pre}.border-axis-x{border-left:3px solid #ff4444}.border-axis-y{border-left:3px solid #88dd00}.border-axis-z{border-left:3px solid #4466ff}.protocol-item{margin-bottom:10px;border:1px solid #333;border-radius:4px;background:#1e1e1e}.protocol-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#252526;cursor:pointer}.protocol-item.active{border-color:var(--success)}.step-row{display:flex;flex-direction:column;padding:6px 10px}.step-status-icon{width:16px;height:16px;border-radius:50%;font-size:.65rem;display:flex;align-items:center;justify-content:center;margin-right:8px;border:1px solid #666;color:#666}.step-status-icon.active{border-color:var(--accent);color:var(--accent)}.step-status-icon.completed{color:var(--success);border-color:transparent}.step-label{font-size:.8rem;color:#ccc}.coord-group{border:1px solid #333;border-left-width:4px;border-radius:4px;margin-bottom:8px;background:#262626}.coord-group-header{padding:6px 8px;display:flex;align-items:center}.coord-row{display:flex;align-items:center;gap:6px;background:#2b2b2b;padding:4px 8px;border-radius:4px;margin-bottom:6px}.coord-link-btn{width:20px;height:20px;padding:0;border:1px solid #555;cursor:pointer;font-size:.8rem;border-radius:3px;display:flex;align-items:center;justify-content:center}.coord-link-btn.linked{background:var(--accent);color:#fff}.panel-list-header{font-size:.75rem;font-weight:700;text-transform:uppercase;color:var(--accent);padding-bottom:4px;margin-bottom:8px;border-bottom:1px solid var(--border)}.panel-list-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #333;font-size:.85rem;color:var(--text-light)}.slot-container{position:relative;margin-bottom:8px}.slot-clear-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--danger);cursor:pointer;font-weight:700}.ortho-container{position:absolute;top:0;left:0;width:100%;height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;pointer-events:none;z-index:10}.ortho-viewport{position:relative;background-color:#000;pointer-events:auto;display:flex;flex-direction:column;overflow:hidden;border:1px solid #333}.ortho-viewport.ref-view{background-color:transparent;border:none;pointer-events:none}.ortho-label{position:absolute;top:6px;left:8px;color:var(--text-accent);font-weight:700;font-size:.8rem;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.8);z-index:10}.ortho-overlay-toolbar{position:absolute;bottom:6px;right:6px;background-color:#00000080;border-radius:4px;display:flex;gap:4px;padding:2px;z-index:20}.ortho-tool-btn{background:transparent;border:1px solid transparent;color:#ccc;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:2px}.ortho-tool-btn:hover{background-color:#fff3;color:#fff}.ortho-tool-btn.active{background-color:var(--accent);color:#fff}.ortho-tool-btn.delete:hover{background-color:var(--danger)}.shortcuts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.shortcuts-section-title{font-size:.9rem;font-weight:700;color:var(--accent);margin-bottom:8px;border-bottom:1px solid #444;padding-bottom:4px}.shortcuts-section{background-color:var(--bg-dark);padding:10px;border-radius:4px;border:1px solid var(--border)}.shortcuts-list{display:flex;flex-direction:column;gap:6px}.shortcuts-item{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-light)}.shortcut-key{font-family:monospace;background-color:#333;padding:2px 6px;border-radius:3px;border:1px solid #555;color:#eee;white-space:nowrap}.shortcut-desc{margin-left:10px;opacity:.9;text-align:right}.shortcuts-empty{padding:20px;text-align:center;color:#888}.properties-container{display:flex;flex-direction:column;gap:0}.properties-panel-header{display:flex;align-items:center;padding:0 10px;background-color:var(--bg-header);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;min-height:29px;flex-shrink:0;font-weight:600;font-size:.85rem;color:var(--text-light)}.properties-details{border-bottom:1px solid var(--border);background-color:var(--bg-dark)}.properties-details:last-child{border-bottom:none}.properties-summary{padding:8px 12px;background-color:var(--bg-header);cursor:pointer;font-weight:600;font-size:.8rem;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;justify-content:space-between;transition:background-color .1s}.properties-summary:hover{background-color:var(--bg-hover)}.properties-summary::-webkit-details-marker{display:none}.properties-summary:after{content:"▼";font-size:.7rem;color:#888;transform:rotate(-90deg);transition:transform .2s}.properties-details[open]>.properties-summary:after{transform:rotate(0)}.properties-content{padding:10px 12px;background-color:var(--bg-dark);display:flex;flex-direction:column;gap:0}.prop-row{display:flex;align-items:center;gap:8px;min-height:24px;margin-bottom:4px}.prop-label{color:var(--text-muted);font-size:.8rem;flex-shrink:0;white-space:nowrap}.prop-empty-text{padding:20px;text-align:center;color:var(--text-muted);font-style:italic;font-size:.9rem}.properties-scroll-area{flex:1;overflow-y:auto;min-height:0}.prop-slider-container{position:relative;height:14px;flex:1;display:flex;align-items:center}.prop-slider-track{width:100%;height:4px;background-color:#555;border:1px solid #666;border-radius:2px}.prop-slider-thumb{position:absolute;top:50%;width:14px;height:14px;background-color:#fff;border:1px solid #ccc;border-radius:50%;transform:translate(-50%,-50%);cursor:ew-resize;z-index:2;box-shadow:0 1px 3px #00000080;transition:transform .1s,background-color .1s}.prop-slider-container:hover .prop-slider-thumb{background-color:#fff;border-color:var(--accent);transform:translate(-50%,-50%) scale(1.1)}.prop-slider-fill{position:absolute;height:4px;background-color:var(--accent);border-radius:2px;pointer-events:none}.panel-hint{font-size:.8rem;color:#aaa;font-style:italic;margin-bottom:5px;line-height:1.4;padding:8px;background-color:#ffffff0d;border-radius:4px;border-left:3px solid var(--accent)}.panel-status-box{margin-top:10px;padding:10px;background-color:#4caf501a;border:1px solid var(--success);border-radius:4px;text-align:center}.panel-status-title{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.panel-status-value{font-size:1rem;font-weight:700;color:var(--success)}.panel-section-divider{display:flex;align-items:center;margin:10px 0}.panel-section-divider-line{flex:1;height:1px;background-color:var(--border)}.panel-section-divider-text{padding:0 8px;font-size:.7rem;color:var(--text-muted);font-weight:700}.lc-row{display:flex;align-items:center;margin-bottom:var(--lc-row-gap);gap:var(--lc-label-gap);min-height:var(--lc-h-std)}.lc-label{color:var(--lc-text-secondary);font-size:.75rem;width:var(--lc-label-width);flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;text-align:left}.lc-content{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.lc-slider-row-layout{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--lc-h-std);margin-bottom:6px}.lc-label-value-pair{display:flex;align-items:center;flex-shrink:0;gap:var(--lc-label-gap);margin-bottom:var(--lc-row-gap);min-height:var(--lc-h-std)}.lc-slider-and-bounds{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.lc-w-number{width:var(--lc-w-number)}.lc-w-text{width:var(--lc-w-text)}.lc-w-full{width:100%}.lc-input{background-color:var(--lc-bg-input);border:1px solid var(--lc-border);color:var(--lc-text-primary);border-radius:var(--lc-radius);height:var(--lc-h-std);padding:0 6px;font-size:.8rem;font-family:inherit;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;text-align:right}.lc-input:focus{outline:none;border-color:var(--lc-border-focus);box-shadow:0 0 0 1px var(--lc-border-focus)}.lc-input:disabled{opacity:.5;cursor:not-allowed;background-color:#222}.lc-number-group,.lc-input-group{display:flex;align-items:center;gap:1px;background-color:var(--lc-border);border:1px solid var(--lc-border);border-radius:var(--lc-radius);overflow:hidden;height:var(--lc-h-std);flex-shrink:0;transition:border-color .15s;box-sizing:border-box;font-size:.8rem}.lc-number-group:focus-within,.lc-input-group:focus-within{border-color:var(--lc-border-focus);box-shadow:0 0 0 1px var(--lc-border-focus)}.lc-input-group.readonly,.lc-number-group.readonly{border-color:var(--lc-border);background-color:var(--lc-border)}.lc-input:read-only{cursor:default;color:var(--lc-text-secondary);background-color:#3e3d3d;opacity:.5;pointer-events:none}.lc-number-group-pill{display:flex;align-items:center;border:1px solid #ccc;border-radius:12px;overflow:hidden;height:18px;flex-shrink:0;background-color:#fff;font-size:.7rem}.lc-number-group-pill .lc-input{border:none;background:transparent;text-align:center;padding:0 4px;font-size:.7rem;height:100%;color:#000;font-weight:600}.lc-number-ghost{background:transparent;border:none;color:#fff;cursor:pointer;font-size:.7rem;padding:0 4px;min-width:4ch;text-align:center;-webkit-user-select:none;user-select:none;transition:opacity .1s;display:flex;align-items:center;justify-content:center;height:var(--lc-h-std)}.lc-number-ghost:hover{opacity:.7;text-decoration:underline}.lc-number-ghost.disabled{cursor:default;opacity:.3}.lc-number-group .lc-input,.lc-input-group .lc-input{border:none;border-radius:0;font-family:Fira Code,monospace;flex:1;min-width:0}.lc-number-group .lc-input:focus,.lc-input-group .lc-input:focus{box-shadow:none;outline:none}.lc-number-btns{display:flex;flex-direction:column;width:18px;height:100%;flex-shrink:0}.lc-number-btn{flex:1;display:flex;align-items:center;justify-content:center;background-color:#333;color:#888;border:none;cursor:pointer;font-size:8px;padding:0}.lc-number-btn:hover{background-color:#444;color:#eee}.lc-number-btn:active{background-color:#555}.lc-number-btn.up{border-bottom:1px solid var(--lc-border)}.lc-input[type=number]::-webkit-inner-spin-button,.lc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.lc-input[type=number]{-moz-appearance:textfield}.lc-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:var(--lc-h-std);padding:0 12px;border-radius:var(--lc-radius);border:1px solid var(--lc-border);background-color:#333;color:var(--lc-text-primary);font-size:.8rem;cursor:pointer;transition:all .1s;-webkit-user-select:none;user-select:none;white-space:nowrap}.lc-btn:hover:not(:disabled){background-color:#444;border-color:#666}.lc-btn:active:not(:disabled){transform:translateY(1px)}.lc-btn:disabled{opacity:.5;cursor:not-allowed}.lc-btn.primary{background-color:var(--accent);border-color:var(--accent);color:#fff}.lc-btn.primary:hover:not(:disabled){background-color:var(--accent-hover)}.lc-btn.danger{background-color:var(--danger);border-color:var(--danger);color:#fff}.lc-btn.danger:hover:not(:disabled){filter:brightness(1.2)}.lc-btn.ghost{background-color:transparent;border-color:transparent}.lc-btn.ghost:hover:not(:disabled){background-color:#ffffff1a}.lc-btn.icon-only{width:var(--lc-h-std);padding:0}.lc-select{box-sizing:border-box;appearance:none;background-color:var(--lc-bg-input);border:1px solid var(--lc-border);color:var(--lc-text-primary);height:var(--lc-h-std);border-radius:var(--lc-radius);padding:0 24px 0 8px;font-size:.8rem;width:fit-content;min-width:100px;cursor:pointer;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23999%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right 8px top 50%;background-size:8px auto}.lc-select:focus{outline:none;border-color:var(--lc-border-focus)}.lc-range-wrapper{flex:1;display:flex;align-items:center;position:relative;height:var(--lc-h-std)}.lc-range{-webkit-appearance:none;width:100%;background:transparent;height:100%;cursor:pointer;margin:0}.lc-range:focus{outline:none}.lc-range::-webkit-slider-runnable-track{width:100%;height:4px;background:#555;border:1px solid #666;border-radius:2px}.lc-range::-moz-range-track{width:100%;height:4px;background:#555;border:1px solid #666;border-radius:2px}.lc-range::-webkit-slider-thumb{-webkit-appearance:none;height:14px;width:14px;border-radius:50%;background:#fff;margin-top:-6px;box-shadow:0 1px 3px #00000080;border:1px solid #ccc;transition:transform .1s,border-color .1s}.lc-range::-moz-range-thumb{height:14px;width:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000080;border:1px solid #ccc;cursor:pointer;transition:transform .1s,border-color .1s}.lc-range:hover::-webkit-slider-thumb{background:#fff;transform:scale(1.1);border-color:var(--accent)}.lc-range:hover::-moz-range-thumb{background:#fff;transform:scale(1.1);border-color:var(--accent)}.lc-dual-range{position:relative;width:100%;height:4px;background:#555;border:1px solid #666;border-radius:2px;cursor:pointer}.lc-dual-range-fill{position:absolute;height:100%;background-color:var(--accent);border-radius:2px;pointer-events:none}.lc-dual-range-thumb{position:absolute;top:50%;width:14px;height:14px;background-color:#fff;border:1px solid #ccc;border-radius:50%;transform:translate(-50%,-50%);cursor:ew-resize;z-index:2;box-shadow:0 1px 3px #00000080;transition:transform .1s,border-color .1s}.lc-dual-range-thumb:hover,.lc-dual-range-thumb.dragging{background:#fff;transform:translate(-50%,-50%) scale(1.1);border-color:var(--accent);z-index:3}.resize-handle{background-color:transparent;z-index:100;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none;transition:background-color .2s}.resize-handle:hover{background-color:var(--accent)!important}.resize-handle.vertical{width:6px;height:100%;cursor:col-resize}.resize-handle.horizontal{width:100%;height:6px;cursor:row-resize}.resize-n{top:-3px;left:0;right:0;height:6px;cursor:ns-resize;position:absolute;z-index:100}.resize-s{bottom:-3px;left:0;right:0;height:6px;cursor:ns-resize;position:absolute;z-index:100}.resize-e{right:-3px;top:0;bottom:0;width:6px;cursor:ew-resize;position:absolute;z-index:100}.resize-w{left:-3px;top:0;bottom:0;width:6px;cursor:ew-resize;position:absolute;z-index:100}.resize-ne,.resize-nw,.resize-se,.resize-sw{position:absolute;z-index:101;width:10px;height:10px}.resize-ne{top:-3px;right:-3px;cursor:nesw-resize}.resize-nw{top:-3px;left:-3px;cursor:nwse-resize}.resize-se{bottom:-3px;right:-3px;cursor:nwse-resize}.resize-sw{bottom:-3px;left:-3px;cursor:nesw-resize}.lc-divider{height:1px;background-color:var(--lc-border);margin:8px 0;width:100%}.lc-header{font-size:.75rem;text-transform:uppercase;color:var(--lc-text-secondary);font-weight:700;margin-bottom:8px;letter-spacing:.05em}.btn-slot{width:100%;text-align:left;background-color:var(--lc-bg-readonly);border:1px solid var(--lc-border);color:#888;padding:4px 8px;font-size:.8rem;border-radius:var(--lc-radius);cursor:pointer;transition:all .1s;height:var(--lc-h-std);display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wizard-content{display:flex;flex-direction:column;gap:12px;height:100%;width:100%;box-sizing:border-box;padding:var(--panel-padding);overflow-y:auto}.wizard-hint{font-size:.8rem;color:#aaa;font-style:italic;margin-bottom:5px;line-height:1.4;padding:8px;background-color:#ffffff0d;border-radius:4px;border-left:3px solid var(--accent)}.wizard-actions-row{display:flex;gap:8px;margin-top:auto;padding-top:10px;flex-shrink:0}.wizard-actions-col{display:flex;flex-direction:column;gap:8px;margin-top:10px;flex-shrink:0}.wizard-btn-wide{flex:1}.wizard-status-box{margin-top:10px;padding:10px;background-color:#4caf501a;border:1px solid var(--success);border-radius:4px;text-align:center}.wizard-status-title{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.wizard-status-value{font-size:1rem;font-weight:700;color:var(--success)}.wizard-section-divider{display:flex;align-items:center;margin:10px 0}.wizard-section-divider-line{flex:1;height:1px;background-color:var(--border)}.wizard-section-divider-text{padding:0 8px;font-size:.7rem;color:var(--text-muted);font-weight:700}.viewport-hud{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background-color:#1e1e1ee6;border:1px solid var(--border);border-radius:20px;padding:8px 16px;display:flex;align-items:center;gap:12px;pointer-events:auto;z-index:50;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:.9rem;white-space:nowrap;transition:opacity .2s,transform .2s}.viewport-hud.hidden{opacity:0;transform:translate(-50%) translateY(20px);pointer-events:none}.viewport-hud-icon{color:var(--accent);display:flex;align-items:center}.input-group{margin-bottom:10px}.input-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:4px}.input-control{width:100%;background-color:#111;border:1px solid var(--border);color:var(--text-light);border-radius:3px;height:24px;padding:0 6px;font-size:.8rem;box-sizing:border-box}.input-control:focus{outline:none;border-color:var(--accent)}.input-checkbox-wrapper{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-light);cursor:pointer}.slot-btn-wrapper{display:flex;align-items:center;gap:8px;margin-bottom:5px;width:100%}.slot-btn-wrapper.disabled{opacity:.5;pointer-events:none}.slot-badge{width:24px;flex-shrink:0;text-align:center;justify-content:center;display:flex}.slot-input-container{flex:1;display:flex;align-items:center;position:relative;min-width:0}.btn-slot{width:100%;text-align:left;background-color:#2a2a2a;border:1px solid var(--border);color:#888;padding:4px 8px;font-size:.8rem;border-radius:3px;cursor:pointer;transition:all .1s;height:26px;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-slot:hover{border-color:#666;color:#aaa}.btn-slot.active{border-color:var(--accent);background-color:#0e639c1a;color:#fff;box-shadow:0 0 0 1px var(--accent)}.btn-slot.filled{color:#fff;background-color:#333;font-weight:600}.slot-clear-icon{position:absolute;right:4px;background:transparent;border:none;color:#666;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;width:18px;height:18px}.slot-clear-icon:hover{color:var(--danger);background-color:#ff44441a;border-radius:50%}.tool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:10px}.tool-grid-2col{grid-template-columns:repeat(2,1fr)}.tool-button{background-color:#2a2a2a;border:1px solid transparent;color:#ccc;border-radius:3px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .1s;padding:0}.tool-button svg{width:20px;height:20px}.tool-button:hover{background-color:#3e3e3e;color:#fff}.tool-button.active{background-color:var(--accent);color:#fff;border-color:var(--accent-hover)}.tool-button-wide{grid-column:span 2;font-size:.75rem}.tool-button-flex{display:flex;gap:6px;padding:0 8px;width:auto;font-size:.8rem}.sketch-panel-status{background-color:#252526;border-left:4px solid #444;padding:8px;margin-bottom:15px;display:flex;justify-content:space-between;align-items:center;border-radius:0 4px 4px 0}.sketch-status-text{font-weight:700;font-size:.85rem;color:var(--text-light)}.sketch-pending-input{position:fixed;background-color:var(--bg-dark);border:1px solid var(--accent);padding:6px;border-radius:4px;box-shadow:0 4px 12px #00000080;display:flex;align-items:center;gap:6px;z-index:5000}.sketch-pending-label{font-size:.75rem;color:var(--text-muted)}.sketch-input-field{background-color:#111;border:1px solid #444;color:#fff;width:60px;padding:2px 4px;border-radius:2px}.sketch-pending-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:2px;cursor:pointer;font-size:.8rem}.sketch-pending-btn.ok{background-color:var(--success);color:#fff}.sketch-pending-btn.cancel{background-color:var(--danger);color:#fff}.reg-picking-hint{padding:10px;background-color:#2a2a2a;border-radius:4px;margin-bottom:10px;text-align:center;font-size:.85rem;color:var(--accent)}.reg-picking-list{display:flex;flex-direction:column;gap:4px;margin-bottom:15px;max-height:200px;overflow-y:auto}.reg-color-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.2)}.prop-inline-group{display:flex;align-items:center;gap:6px;height:36px;background-color:#2a2a2a;border-radius:3px;padding:0 8px;border:1px solid transparent}.input-ghost{background:transparent;border:none;color:inherit}.input-ghost:focus{outline:none;background:#0003}
