:root{--bg:#1d1f23;--panel:#24272c;--panel-2:#2b2f35;--line:#33373e;--text:#e6e8eb;--muted:#9aa1ab;--accent:#4c8dff;--select:#ff9d2e;--active:#ffc46b;--ok:#3fb950;--warn:#d29922;--bad:#f85149;--row:24px;--radius:4px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f5f7;--panel:#fff;--panel-2:#f0f1f3;--line:#d9dce1;--text:#1d2026;--muted:#5d6573;--accent:#2f6fe4;--select:#f08a00;--active:#d9961a;--ok:#1a7f37;--warn:#9a6700;--bad:#cf222e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 var(--font);overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.icon{flex:none;display:block}.button,.icon-button,.link-button{border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000}.button{height:var(--row);border-color:var(--line);background:var(--panel-2);align-items:center;gap:4px;padding:0 10px;display:inline-flex}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button:hover,.icon-button:hover{background:var(--line)}.icon-button{width:var(--row);height:var(--row);color:var(--muted);place-items:center;padding:0;display:inline-grid}.icon-button[aria-pressed=true]{color:var(--text);background:var(--line);border-color:var(--accent)}.link-button{color:var(--accent);padding:0 4px}button:disabled{opacity:.45;cursor:default}.app{grid-template-rows:36px minmax(0,1fr) 26px;height:100%;display:grid}.top-bar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:6px;min-width:0;padding:0 8px;display:flex}.brand{margin-right:8px;font-weight:600}.top-bar .sep{background:var(--line);width:1px;height:18px;margin:0 4px}.segmented{border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button{cursor:pointer;height:22px;color:var(--muted);background:0 0;border:0;padding:0 8px}.segmented button[aria-pressed=true]{background:var(--line);color:var(--text)}.main{min-width:0;min-height:0;display:flex}.viewport{background:linear-gradient(#2a2d33,#1b1d21);flex:1;min-width:0;position:relative;overflow:hidden}:root[data-theme=light] .viewport{background:linear-gradient(#e9ecf0,#cfd4db)}.viewport canvas{touch-action:none;width:100%;height:100%;display:block}.viewport-overlay{text-align:center;background:color-mix(in srgb, var(--bg) 85%, transparent);place-content:center;gap:8px;display:grid;position:absolute;inset:0}.dock{background:var(--panel);flex-direction:column;min-height:0;display:flex;position:relative}.dock-left{border-right:1px solid var(--line)}.dock-right{border-left:1px solid var(--line)}.dock.collapsed{align-items:center;width:32px;padding-top:4px}.dock-bar{justify-content:flex-end;padding:2px 4px 0;display:flex}.dock-left .dock-bar{justify-content:flex-start}.dock-body{flex:1;min-height:0;overflow:auto}.dock-resize{cursor:col-resize;width:6px;position:absolute;top:0;bottom:0}.dock-left .dock-resize{right:-3px}.dock-right .dock-resize{left:-3px}.tabs{border-bottom:1px solid var(--line);gap:2px;padding:0 6px;display:flex}.tab{height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 10px}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.dock-right .tabs{flex-wrap:wrap;flex-shrink:0}.gen-color-toggle{align-items:center;gap:6px;display:flex}.color-settings{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.color-settings:disabled{opacity:.45}.button.danger{color:#fff;background:#a5222a;border-color:#dc3844}.button.danger:hover:not(:disabled){background:#c52b35;border-color:#f85149}.reference-panel{flex-direction:column;gap:8px;height:100%;min-height:240px;padding:10px;display:flex;overflow-y:auto}.reference-plane-controls{border-top:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:8px;padding-top:8px;display:flex}.reference-plane-vector{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.reference-plane-vector>span{grid-column:1/-1}.reference-plane-vector label{align-items:center;gap:3px;min-width:0;display:flex}.reference-plane-vector input{width:100%;min-width:0}.reference-plane-number{justify-content:space-between;align-items:center;gap:8px;display:flex}.reference-plane-number input{width:90px}.outliner-visibility{flex-shrink:0;gap:6px;padding:4px 6px;display:flex}.reference-help{color:var(--muted);margin:0;font-size:12px}.reference-toolbar,.reference-navigation{flex-shrink:0;align-items:center;gap:6px;display:flex}.reference-toolbar{justify-content:space-between}.reference-navigation{padding:4px}.reference-navigation output{text-align:center;min-width:40px;color:var(--muted);font-size:12px}.reference-url{flex-wrap:wrap;gap:6px;display:flex}.reference-url input{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);flex:1;width:120px;min-width:0;padding:4px 6px}.reference-actions{flex-wrap:wrap;gap:6px;display:flex}.reference-view{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:80px;display:flex;position:relative;overflow:hidden}.reference-image-area{touch-action:none;flex:1;width:100%;min-height:40px;position:relative;overflow:hidden}.reference-image{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.reference-load-error{color:var(--bad);margin:0;padding:8px}.reference-thumbnails{flex-shrink:0;gap:6px;display:flex;overflow-x:auto}.reference-thumbnail{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);cursor:pointer;flex:0 0 48px;height:44px;padding:2px}.reference-thumbnail[aria-pressed=true]{border-color:var(--accent)}.reference-thumbnail img{object-fit:contain;width:100%;height:100%}.reference-docked-placeholder{color:var(--muted);padding:12px}.reference-window{z-index:15;background:var(--panel);border:1px solid var(--accent);border-radius:6px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 32px #0006}.reference-window .reference-panel{flex:1;height:auto;min-height:0;padding-bottom:18px;overflow:auto}.reference-window-bar{border-bottom:1px solid var(--line);background:var(--panel-2);flex-shrink:0;gap:8px;padding:6px;display:flex}.reference-drag{cursor:move;touch-action:none;background:0 0;border:0;flex:1;align-items:center;gap:10px;display:flex}.reference-drag small{color:var(--muted)}.reference-resize{z-index:1;background:var(--panel-2);width:14px;height:14px;color:var(--muted);cursor:nwse-resize;touch-action:none;border:0;border-radius:4px 0 0;padding:0;position:absolute}.reference-resize-top-left{top:0;left:0;transform:rotate(180deg)}.reference-resize-top-right{cursor:nesw-resize;top:0;right:0;transform:rotate(270deg)}.reference-resize-bottom-left{cursor:nesw-resize;bottom:0;left:0;transform:rotate(90deg)}.reference-resize-bottom-right{bottom:0;right:0}.status-bar{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);white-space:nowrap;align-items:center;gap:12px;padding:0 10px;font-size:12px;display:flex;overflow:hidden}.status-bar .credit{text-overflow:ellipsis;margin-left:auto;overflow:hidden}.status-hint{text-overflow:ellipsis;min-width:0;overflow:hidden}.dialog-backdrop{z-index:20;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:6px;flex-direction:column;width:min(640px,100vw - 32px);max-height:calc(100vh - 64px);display:flex;box-shadow:0 12px 40px #0006}.dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 8px 8px 14px;display:flex}.dialog-head h2{margin:0;font-size:14px;font-weight:600}.dialog-body{padding:14px;overflow:auto}.dialog-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.toasts{z-index:30;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:38px;right:12px}.toast{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);align-items:center;gap:8px;max-width:420px;padding:6px 6px 6px 12px;display:flex;box-shadow:0 6px 20px #0000004d}.toast-warn{border-left-color:var(--warn)}.toast-error{border-left-color:var(--bad)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.empty{color:var(--muted);text-align:center;padding:16px}.nav-gizmo{width:84px;height:84px;position:absolute;top:8px;right:8px;overflow:visible}.nav-axis{cursor:pointer}.nav-axis text{fill:#fff;font:700 9px var(--font);pointer-events:none}.nav-axis:hover circle{stroke-width:3.5px}.select-box{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);pointer-events:none;position:absolute}.menu{position:relative}.menu-button{border-radius:var(--radius);cursor:pointer;background:0 0;border:0;height:26px;padding:0 8px}.menu-button:hover,.menu-button[aria-expanded=true]{background:var(--line)}.menu-list{z-index:25;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;flex-direction:column;min-width:220px;padding:4px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #00000059}.menu-list button{height:var(--row);border-radius:var(--radius);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:16px;padding:0 8px;display:flex}.menu-list button:hover,.menu-list button:focus-visible{background:var(--accent);color:#fff}.toolbar{align-items:center;gap:2px;min-width:0;display:flex}.swatch{border:1px solid var(--line);border-radius:3px;width:14px;height:14px}.scheme select{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);height:24px;margin-left:4px}.tab-body{min-height:0;overflow:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dock-right .dock-body{flex-direction:column;display:flex;overflow:hidden}.dock-right .tab-body{flex:1}.num{text-align:right;font-variant-numeric:tabular-nums}.outliner-bar input,.part-search input{min-width:0;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex:1;padding:0 6px}.outliner-bar .button[aria-pressed=true]{background:var(--line);border-color:var(--accent)}.virtual-list{overflow-y:auto}.virtual-spacer{position:relative}.virtual-row{position:absolute;left:0;right:0}.outliner{flex-direction:column;height:100%;display:flex}.outliner-bar{border-bottom:1px solid var(--line);gap:6px;padding:6px;display:flex}.outliner-body{flex:1;min-height:0;overflow:hidden}.tree-row{white-space:nowrap;cursor:default;align-items:center;gap:4px;height:100%;padding-right:4px;display:flex}.tree-row:hover{background:var(--panel-2)}.tree-row.selected{background:color-mix(in srgb, var(--select) 22%, transparent)}.tree-disclosure{flex:none;width:20px}.icon-button.tree-disclosure,.icon-button.tree-eye{width:20px;height:20px}.tree-color{border:1px solid var(--line);border-radius:2px;flex:none;width:10px;height:10px}.tree-type{text-overflow:ellipsis;overflow:hidden}.tree-index{flex:none}.tree-badge{text-align:center;color:#fff;border-radius:8px;flex:none;min-width:16px;margin-left:auto;padding:0 4px;font-size:11px}.tree-badge.bad{background:var(--bad)}.tree-badge.warn{background:var(--warn)}.tree-badge.info{background:var(--accent)}.tree-eye{margin-left:auto}.tree-badge+.tree-eye{margin-left:0}.tree-heading{background:var(--panel-2);justify-content:space-between;align-items:center;height:100%;padding:0 8px;font-weight:600;display:flex}.stats{padding:6px}.stats-table{border-collapse:collapse;width:100%}.stats-table th{background:var(--panel);color:var(--muted);text-align:left;padding:4px;font-weight:600;position:sticky;top:0}.stats-table th:nth-child(2),.stats-table th:nth-child(3),.stats-table th:nth-child(4){text-align:right}.stats-table td{height:var(--row);padding:0 4px}.stats-row{cursor:pointer}.stats-row:hover{background:var(--panel-2)}.stat-bar{background:var(--panel-2);border-radius:3px;width:60px;height:6px;display:block;overflow:hidden}.stat-bar>span{background:var(--accent);height:100%;display:block}.stats-foot{color:var(--muted);margin:8px 4px}.issues{padding:6px}.issue-group h3{color:var(--muted);margin:8px 4px 4px;font-size:12px;font-weight:600}.issue-list{margin:0;padding:0;list-style:none}.issue-row{border-radius:var(--radius);text-align:left;background:0 0;border:0;align-items:flex-start;gap:6px;width:100%;padding:4px;display:flex}button.issue-row{cursor:pointer}button.issue-row:hover{background:var(--panel-2)}.issue-row .icon{margin-top:2px}.issue-row.bad .icon{color:var(--bad)}.issue-row.warn .icon{color:var(--warn)}.issue-row.info .icon{color:var(--accent)}.issue-message{flex:1}.issue-code{color:var(--muted);font-family:var(--mono);flex:none;font-size:11px}.meters{gap:6px;display:flex}.meter{border:1px solid var(--line);height:20px;color:var(--text);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.meter:hover{background:var(--panel-2)}.meter:before{content:"";background:var(--ok);border-radius:50%;width:8px;height:8px}.meter.warn:before{background:var(--warn)}.meter.high:before{background:color-mix(in srgb, var(--warn), var(--bad))}.meter.bad:before{background:var(--bad)}.meter.bad .meter-note{color:var(--bad)}.meter-note{color:var(--warn);font-size:11px}.workbench{flex-direction:column;gap:8px;padding:6px;display:flex}.wb-search,.part-search{color:var(--muted);align-items:center;gap:6px;display:flex}.wb-search input{min-width:0;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex:1;padding:0 6px}.wb-part-list{border:1px solid var(--line);border-radius:var(--radius);max-height:220px;margin:6px 0 0;padding:0;list-style:none;overflow-y:auto}.wb-part-list li{height:var(--row);cursor:pointer;align-items:center;gap:6px;padding:0 6px;display:flex}.wb-part-list li:hover{background:var(--panel-2)}.wb-part-list li[aria-selected=true]{background:color-mix(in srgb, var(--accent) 25%, transparent)}.wb-type{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.wb-progress,.wb-uses{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.workbench h3{margin:6px 0 4px;font-size:12px;font-weight:600}.wb-detail>p.muted,.wb-probes>p.muted{margin:0 0 6px;font-size:12px}.wb-socket-table{border-collapse:collapse;width:100%;font-size:12px}.wb-socket-table th{color:var(--muted);text-align:left;padding:2px 4px;font-weight:600}.wb-socket-table td{height:var(--row);padding:0 4px}.wb-socket-table tbody tr{cursor:pointer}.wb-socket-table tbody tr:hover{background:var(--panel-2)}.wb-socket-table tr[aria-selected=true]{background:color-mix(in srgb, var(--active) 25%, transparent)}.wb-socket-table .button{height:20px;padding:0 6px}.wb-status{border:1px solid;border-radius:8px;padding:0 6px;font-size:11px}.wb-status.captured{color:var(--ok)}.wb-status.workshop{color:var(--accent)}.wb-status.approx{color:var(--muted)}.wb-socket{border:1px solid var(--line);border-radius:var(--radius);margin:6px 0;padding:6px}.wb-socket h3{align-items:baseline;gap:6px;margin-top:0;display:flex}.wb-facing{color:var(--muted);font-weight:400}.wb-row{align-items:center;gap:4px;margin-top:4px;display:flex}.wb-label{width:52px;color:var(--muted);flex:none;font-size:12px}.wb-row .button{height:22px;padding:0 8px}.wb-row .number-scrub{flex:1;width:0}.wb-unit{color:var(--muted)}.wb-mate{align-items:center;gap:6px;margin:6px 0;display:flex}.wb-probe{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px;padding:6px}.wb-probe header{justify-content:space-between;align-items:center;gap:6px;display:flex}.wb-probe h4{margin:0;font-size:12px;font-weight:600}.wb-legend{margin:6px 0 0;padding:0;font-size:12px;list-style:none}.wb-legend li{align-items:center;gap:6px;min-height:20px;display:flex}.wb-legend .swatch{flex:none}.wb-legend-socket{color:var(--muted);flex:none}.wb-footer{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;padding-top:6px;display:flex}.wb-error{width:100%;color:var(--bad);margin:0}.settings-section+.settings-section{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.settings-section h3{margin:0 0 8px;font-size:12px;font-weight:600}.field{min-height:var(--row);grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:12px;margin-bottom:4px;display:grid}.field.check{grid-template-columns:auto minmax(0,1fr);gap:8px}.field input[type=number],.field select{height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:0 6px}.field input[type=color]{width:48px;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:0 0;padding:0}.dialog-body a{color:var(--accent)}.properties{flex-direction:column;gap:6px;padding:6px 8px;display:flex}.properties-header{flex-wrap:wrap;align-items:center;gap:2px 0;font-weight:600;display:flex}.chip{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:10px;margin:0 2px;padding:0 6px}.chip:hover{border-color:var(--accent)}.prop-row{flex-direction:column;gap:2px;display:flex}.prop-head{align-items:center;gap:6px;min-height:20px;display:flex}.prop-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.prop-applies{font-size:11px}.button.small{height:20px;padding:0 6px;font-size:12px}.number-row{gap:4px;display:flex}.number-scrub,.text-value,.hex,.json,.key-capture{width:100%;min-width:0;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:0 6px}.number-scrub{cursor:ew-resize;font-variant-numeric:tabular-nums}.number-scrub:focus{cursor:text}textarea.text-value,.json{resize:vertical;height:auto;padding:4px 6px}.json{font-family:var(--mono);font-size:12px}.key-capture{text-align:left;cursor:pointer}.key-capture.armed{border-color:var(--accent);color:var(--accent)}.color-field{grid-template-columns:auto minmax(0,1fr) repeat(3,52px);align-items:center;gap:4px;display:grid}.color-field input[type=color]{width:24px;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:0 0;padding:0}.channel{color:var(--muted);align-items:center;gap:2px;font-size:11px;display:flex}.field-error{color:var(--bad);margin:2px 0 0;font-size:12px}.properties-section{border-top:1px solid var(--line);padding-top:6px}.properties-section h3{color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:600}.properties-section>p.muted{margin:0}.conn-list,.point-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.conn-row,.point-row{flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.conn-row.raw code,.point-row code{font-family:var(--mono);color:var(--muted);overflow-wrap:anywhere;font-size:11px}.pose-badge{background:var(--accent);color:#fff;border-radius:8px;padding:0 5px;font-size:11px}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.info-list{grid-template-columns:auto minmax(0,1fr);gap:2px 12px;margin:0;font-size:12px;display:grid}.info-list dt{color:var(--muted)}.info-list dd{margin:0}.pose-approx{color:var(--warn);margin:4px 0 0;font-size:12px}.modal-hint{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 90%, transparent);font-variant-numeric:tabular-nums;pointer-events:none;max-width:calc(100% - 16px);padding:4px 8px;font-size:12px;position:absolute;bottom:8px;left:8px}.paint-panel{flex-direction:column;gap:6px;padding:6px 8px;display:flex}.paint-panel h3{color:var(--muted);margin:6px 0 0;font-size:12px;font-weight:600}.paint-color{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.paint-color label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.paint-color input[type=color]{width:40px;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:0 0;padding:0}.paint-color input[type=text]{width:76px}.paint-color input[type=number]{width:52px}.paint-color input[type=text],.paint-color input[type=number],.paint-field select{height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:0 4px}.swatches{flex-wrap:wrap;gap:4px;display:flex}button.swatch{cursor:pointer;width:20px;height:20px;padding:0}button.swatch:hover{border-color:var(--text)}.paint-modes{flex-wrap:wrap;gap:4px;display:flex}.paint-modes .button[aria-pressed=true]{background:var(--line);border-color:var(--accent)}.paint-field,.paint-auto{align-items:center;gap:6px;font-size:12px;display:flex}.paint-field input[type=range]{flex:1}.brush-cursor{border:1px solid var(--accent);pointer-events:none;border-radius:50%;position:absolute}.snap-steps{align-items:center;gap:4px;font-size:12px;display:flex}.snap-step{align-items:center;gap:2px;display:inline-flex}.snap-step input{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);font-variant-numeric:tabular-nums;width:52px;height:22px;padding:0 4px}.snap-grid{white-space:nowrap;align-items:center;gap:4px;margin-left:4px;display:inline-flex}.shortcuts{columns:2 300px;column-gap:24px}.shortcut-section{break-inside:avoid;margin-bottom:14px}.shortcut-section h3{margin:0 0 4px;font-size:13px;font-weight:600}.shortcut-section>p.muted{margin:0 0 6px;font-size:12px}.shortcut-section dl{margin:0}.shortcut-row{border-top:1px solid var(--line);grid-template-columns:minmax(96px,auto) minmax(0,1fr);gap:10px;padding:3px 0;font-size:12px;display:grid}.shortcut-row dt{white-space:nowrap}.shortcut-row dd{margin:0}kbd{border:1px solid var(--line);background:var(--panel-2);min-width:18px;font:11px/16px var(--font);text-align:center;border-bottom-width:2px;border-radius:3px;padding:0 4px;display:inline-block}.dialog:has(.shortcuts){width:min(820px,100vw - 32px)}.part-picker{z-index:26;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:6px;width:300px;max-height:380px;padding:8px;display:flex;position:fixed;box-shadow:0 10px 30px #0006}.part-picker-title{color:var(--muted);margin:0;font-size:12px}.part-picker input[type=search]{height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:0 6px}.part-picker-list{flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.part-picker-list li{height:var(--row);border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:0 6px;display:flex}.part-picker-list li:hover{background:var(--line)}.part-picker-list li.active{background:var(--accent);color:#fff}.part-picker-list li.active .muted{color:#fff}.part-picker-empty{color:var(--muted);margin:4px}.part-picker-detail{align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.part-picker-detail select{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex:1;height:22px}.connect-tip{z-index:5;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 92%, transparent);pointer-events:none;max-width:340px;padding:3px 8px;font-size:12px;position:absolute}.connect-tip.ok{border-left-color:var(--ok)}.connect-tip.bad{border-left-color:var(--bad)}.point-plus{z-index:5;border:1px solid var(--accent);background:var(--accent);color:#fff;width:22px;height:22px;font:600 15px/1 var(--font);cursor:pointer;border-radius:50%;padding:0;position:absolute}.dock-tabs{z-index:1;background:var(--panel);position:sticky;top:0}.generators{flex-direction:column;gap:8px;padding:6px;display:flex}.gen-shapes{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.gen-shapes .button{justify-content:center}.gen-shapes .button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 25%, transparent)}.gen-form,.gen-presets{flex-direction:column;gap:4px;display:flex}.gen-presets{border-top:1px solid var(--line);padding-top:8px}.gen-field{min-height:var(--row);align-items:center;gap:6px;display:flex}.gen-field>label,.gen-label{width:84px;color:var(--muted);flex:none;font-size:12px}.gen-field input:not([type=color]),.gen-field select{min-width:0;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex:1;padding:0 6px}.gen-field input[type=color]{width:48px;height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:0 0;padding:0}.gen-pick{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.gen-cost,.gen-warning,.gen-error{margin:0;font-size:12px}.gen-cost{font-variant-numeric:tabular-nums}.gen-warning{color:var(--warn)}.gen-error{color:var(--bad)}.gen-host-picked{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.gen-preview-box{position:relative}.gen-preview{aspect-ratio:240/150;border:1px solid var(--line);border-radius:var(--radius);cursor:grab;touch-action:none;width:100%;height:auto;display:block}.gen-preview:active{cursor:grabbing}.gen-preview-spin{border-radius:var(--radius);background:color-mix(in srgb, var(--panel) 80%, transparent);color:var(--muted);align-items:center;gap:4px;padding:1px 6px 1px 4px;font-size:11px;display:inline-flex;position:absolute;bottom:6px;right:6px}.surfaces{flex-direction:column;gap:8px;padding:6px;display:flex}.surface-corners,.surface-curve-editor,.surface-control-position{border:0;flex-direction:column;gap:4px;min-width:0;margin:0;padding:0;display:flex}.surface-corners legend,.surface-curve-editor legend,.surface-control-position legend{color:var(--muted);padding:0;font-size:12px}.surface-corners .button[aria-pressed=true]{border-color:var(--select);background:var(--select);color:#1b1d21}.surface-corners .gen-field.active input{border-color:var(--select)}.surface-actions,.surface-profiles{flex-wrap:wrap;gap:4px;display:flex}.surface-profiles{max-height:132px;overflow-y:auto}.surface-profiles .button[aria-pressed=true]{border-color:var(--select);color:var(--select)}.surface-control-position .gen-field>label{flex-direction:column;flex:1;gap:2px;width:0;min-width:0;display:flex}.surface-control-position input{width:100%}.surface-corner.surface-curve-badge{white-space:nowrap;border-radius:4px;width:auto;min-width:18px;padding:0 4px}.surface-corner{z-index:5;pointer-events:none;background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:600;display:grid;position:absolute;transform:translate(-50%,-50%)}.surface-corner.active{background:var(--select);color:#1b1d21}.hint{color:var(--muted);margin:0;font-size:12px}.part-browser{flex-direction:column;gap:6px;padding:6px;display:flex}.part-search input{flex:1}.part-section h3{color:var(--muted);margin:6px 2px 4px;font-size:12px;font-weight:600}.part-cards{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:4px;margin:0;padding:0;list-style:none;display:grid}.part-card{position:relative}.part-card-arm{border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:2px;width:100%;padding:4px 2px;display:flex}.part-card-arm:hover{border-color:var(--line);background:var(--panel-2)}.part-thumb{width:64px;height:64px;color:var(--muted);place-items:center;display:grid}.part-card-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.part-badge{background:var(--panel-2);min-width:16px;color:var(--muted);text-align:center;border-radius:8px;padding:0 4px;font-size:10px;position:absolute;top:2px;left:2px}.part-star{opacity:.55;width:20px;height:20px;position:absolute;top:0;right:0}.part-star[aria-pressed=true]{color:var(--active);opacity:1}.part-empty{color:var(--muted);margin:0 2px;font-size:12px}.status-hint{color:var(--warn)}.palette-search{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);width:100%;height:28px;margin-bottom:8px;padding:0 8px}.palette{max-height:50vh;margin:0;padding:0;list-style:none;overflow-y:auto}.palette-row{height:var(--row);border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:0 8px;display:flex}.palette-row:hover{background:var(--line)}.palette-row[aria-selected=true]{background:var(--accent);color:#fff}.palette-row[aria-disabled=true]{opacity:.45;cursor:default}.context-menu{z-index:27;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;flex-direction:column;min-width:220px;padding:4px;display:flex;box-shadow:0 8px 24px #00000059}.context-item{height:var(--row);border-radius:var(--radius);cursor:pointer;outline:none;align-items:center;padding:0 8px;display:flex}.context-item:hover,.context-item:focus{background:var(--accent);color:#fff}.context-item.disabled{opacity:.45;cursor:default}.context-item.disabled:hover{color:inherit;background:0 0}.history{margin:0;padding:6px;list-style:none}.history-row{width:100%;height:var(--row);border-radius:var(--radius);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 8px;display:block}.history-row:hover{background:var(--panel-2)}.history-row[aria-current=step]{background:color-mix(in srgb, var(--accent) 25%, transparent);font-weight:600}.history-row.future{color:var(--muted)}.issue-list li{align-items:flex-start;gap:4px;display:flex}.issue-list li>.issue-row{flex:1}.issue-fix{flex:none;margin-top:2px}.dialog:has(.library){width:min(900px,100vw - 32px)}.library-toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.library-toolbar input[type=search],.library-toolbar select{height:var(--row);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:0 6px}.library-status{color:var(--muted);margin-left:auto;font-size:12px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.creation-card{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.creation-thumb{aspect-ratio:4/3;background:var(--bg);color:var(--muted);place-items:center;display:grid}.creation-thumb img{object-fit:cover;width:100%;height:100%}.creation-body{flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;display:flex}.creation-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.creation-rename{height:var(--row);border:1px solid var(--accent);border-radius:var(--radius);background:var(--panel);padding:0 6px}.creation-actions{flex-wrap:wrap;gap:4px;padding:0 8px 8px;display:flex}.save-form{flex-direction:column;gap:8px;display:flex}.save-form label{flex-direction:column;gap:4px;font-size:12px;display:flex}.save-form input,.save-form textarea{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:4px 6px}.sort-header{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.stats-table th[aria-sort=ascending],.stats-table th[aria-sort=descending]{color:var(--text)}.issue-badge.ok:before{background:var(--ok)}.viewport canvas.picking{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg transform='translate(3 21) rotate(-45)' fill='%23fff' stroke='%23000' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M0 0L3-1.3H13V1.3H3Z'/%3E%3Crect x='14.5' y='-2.6' width='9' height='5.2' rx='2.6'/%3E%3Crect x='12' y='-3.4' width='3' height='6.8' rx='1'/%3E%3C/g%3E%3C/svg%3E") 3 21,crosshair}.property-fields{border:0;min-width:0;margin:0;padding:0}.servo-buttons{gap:8px;display:flex}.servo-activation{touch-action:none;flex:1}.servo-activation.red{border-color:#df665e}.servo-activation.blue{border-color:#529de0}.servo-activation.red[aria-pressed=true]{color:#fff;background:#8b302a}.servo-activation.blue[aria-pressed=true]{color:#fff;background:#205c91}.servo-sustain{align-items:center;gap:6px;margin-top:10px;display:flex}.collab-open{white-space:nowrap}.collab-join{width:100%;min-height:42px;margin:4px 0 12px;font-weight:600}.collab-identity{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.collab-identity label,.collab-field{flex-direction:column;gap:5px;display:flex}.collab-field{margin:14px 0}.collab-field textarea{resize:vertical;overflow-wrap:anywhere;width:100%}.collab-member{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex}.collab-member>span:nth-child(2){flex:1;min-width:80px}.collab-member small{opacity:.7;display:block}.collab-color{border-radius:50%;width:12px;height:12px;display:inline-block}.collab-member-actions{flex-wrap:wrap;gap:5px;display:flex}.collab-network{margin-top:16px;font-size:12px}.mirror-panel{padding:10px}.mirror-field{flex-direction:column;gap:5px;margin:12px 0;display:flex}.mirror-field select,.mirror-field input{width:100%}.mirror-check{align-items:center;gap:6px;margin:9px 0;display:flex}.mirror-actions,.mirror-rotation{gap:8px;margin:10px 0;display:flex}.mirror-rotation label{flex:1;min-width:0}.mirror-rotation input{width:100%}
