:root{color-scheme:dark;--gap: #151515;--topbar: #232323;--header: #2b2b2b;--region: #303030;--panel: #383838;--panel-head: #3d3d3d;--field: #1f1f1f;--widget: #4a4a4a;--widget-hi: #5a5a5a;--menu: #181818;--line: #262626;--line2: #3f3f3f;--text: #e6e6e6;--muted: #a8a8a8;--faint: #7c7c7c;--accent: #4772b3;--accent-hi: #5680c2;--accent-soft: #334d80;--orange: #ffaa40;--ok: #4fbf6b;--warn: #e3a33a;--bad: #e5534b;--x: #ff3352;--y: #8bdc00;--z: #2890ff;--radius: 4px;--shadow: 0 6px 22px rgba(0, 0, 0, .45);--red: var(--bad);--green: var(--ok);--amber: var(--warn);--blue: var(--accent)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;font-size:12px;background:var(--gap);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:inherit;-webkit-user-select:text;user-select:text}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:6px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.boot{display:grid;place-items:center;height:100%;color:var(--muted);background:var(--region)}.spacer{flex:1}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:11px}.mono{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:11px}.app{display:grid;grid-template-rows:30px 1fr 24px;height:100vh;overflow:hidden;background:var(--gap)}.main{display:grid;grid-template-columns:284px 1fr 316px;gap:2px;min-height:0;padding:2px 0}.main.no-left{grid-template-columns:1fr 316px}.main.no-right{grid-template-columns:284px 1fr}.main.no-left.no-right{grid-template-columns:1fr}.viewport.area{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;border-radius:var(--radius);overflow:hidden;background:var(--region)}.vp-body{position:relative;flex:1;min-height:0}.vp-body canvas{display:block}.canvas3d{background:linear-gradient(#3c3c3c,#2b2b2b)!important}.canvas3d.field{background:linear-gradient(#2e353e,#1d2127)!important}.panel{background:var(--region);display:flex;flex-direction:column;min-height:0;overflow:hidden;border-radius:var(--radius)}.panel.right{background:transparent;gap:2px;border-radius:0}.scroll{overflow:auto;flex:1;min-height:0}.topbar{display:flex;align-items:center;gap:6px;padding:0 8px;background:var(--topbar);min-width:0}.brand{display:flex;align-items:center;padding-right:4px}.brand img{width:18px;height:18px}.workspaces{display:flex;gap:2px;margin-left:8px;align-self:flex-end;height:26px}.workspaces button{border:0;background:transparent;color:var(--muted);padding:0 12px;border-radius:5px 5px 0 0;cursor:pointer;white-space:nowrap}.workspaces button:hover{color:var(--text);background:#2c2c2c}.workspaces button.on{background:var(--region);color:#fff}.design-name{border:1px solid transparent;background:transparent;padding:3px 7px;border-radius:var(--radius);width:190px;text-align:right;color:var(--text)}.design-name:hover{background:#2c2c2c}.design-name:focus{border-color:var(--accent);background:var(--field);outline:none;text-align:left}.save-state{color:var(--faint);font-size:11px;white-space:nowrap}.save-state.dirty:before{content:"●";color:var(--warn);margin-right:4px}.btn,.bl-btn{border:1px solid #262626;background:var(--widget);color:var(--text);padding:3px 9px;border-radius:var(--radius);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;line-height:16px}.btn:hover,.bl-btn:hover{background:var(--widget-hi)}.btn:disabled,.bl-btn:disabled{opacity:.4;cursor:default}.btn.primary,.bl-btn.primary{background:var(--accent);border-color:#2f5590;color:#fff}.btn.primary:hover,.bl-btn.primary:hover{background:var(--accent-hi)}.btn.danger{color:#ff8a84}.btn.sm,.bl-btn.tiny{padding:1px 7px;font-size:11px}.btn.on{background:var(--accent);border-color:#2f5590;color:#fff}.bl-btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.bl-btn.ghost:hover{color:var(--text);background:#333}.icon-btn{border:0;background:transparent;width:24px;height:24px;border-radius:var(--radius);cursor:pointer;display:inline-grid;place-items:center;color:var(--muted)}.icon-btn:hover{background:#444;color:#fff}.icon-btn.sm{width:20px;height:20px}.icon-btn:disabled{opacity:.35}.seg{display:inline-flex;background:var(--field);border-radius:var(--radius);padding:1px;gap:1px}.seg button{border:0;background:transparent;padding:3px 10px;border-radius:3px;cursor:pointer;color:var(--muted);white-space:nowrap}.seg button:hover{color:var(--text);background:#2e2e2e}.seg button.on{background:var(--accent);color:#fff}.seg button:disabled{opacity:.35}.menu-wrap{position:relative}.row{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.row.between{justify-content:space-between}.bl-menubar{display:flex;align-items:center;gap:1px}.bl-menuwrap{position:relative}.bl-menutitle{border:0;background:transparent;color:var(--text);padding:3px 8px;border-radius:var(--radius);cursor:pointer}.bl-menutitle:hover{background:#3a3a3a}.bl-menutitle.on{background:var(--accent);color:#fff}.bl-menu{position:absolute;top:calc(100% + 2px);left:0;min-width:230px;background:var(--menu);border:1px solid #2c2c2c;border-radius:5px;box-shadow:var(--shadow);padding:4px 0;z-index:60}.bl-popup .bl-menu{position:static;box-shadow:none;border:0;padding:0;background:transparent}.bl-menu button{display:flex;width:100%;align-items:center;gap:6px;border:0;background:transparent;padding:3px 10px 3px 6px;cursor:pointer;text-align:left;color:#dcdcdc;line-height:18px}.bl-menu button:hover:not(:disabled){background:var(--accent);color:#fff}.bl-menu button:disabled{color:#6a6a6a;cursor:default}.bl-menu button .chk{width:14px;display:grid;place-items:center;color:var(--text)}.bl-menu button .lbl{flex:1;white-space:nowrap}.bl-menu button .keys{color:#8d8d8d;font-size:11px;margin-left:20px;white-space:nowrap}.bl-menu button:hover .keys{color:#dfe7f5}.bl-menu hr{border:0;border-top:1px solid #2f2f2f;margin:3px 0}.bl-menu-title{color:#9a9a9a;font-size:11px;padding:4px 10px 5px;display:flex;justify-content:space-between;align-items:center;gap:8px}.bl-menu.overlays{right:0;left:auto;min-width:200px;padding:4px 0 6px}.ov-row{display:flex;align-items:center;gap:7px;padding:3px 12px;cursor:pointer;color:#dcdcdc}.ov-row:hover{background:#262626}.bl-popup{position:fixed;z-index:120;background:var(--menu);border:1px solid #2c2c2c;border-radius:6px;box-shadow:var(--shadow);padding:4px 0;min-width:220px}.bl-modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:#00000040}.bl-search{display:block;width:calc(100% - 12px);margin:2px 6px 6px;background:var(--field);border:1px solid #3a3a3a;border-radius:var(--radius);padding:5px 8px;color:var(--text);outline:none}.bl-search:focus{border-color:var(--accent)}.bl-results{max-height:340px;overflow:auto}.bl-results button{display:flex;width:100%;gap:10px;align-items:center;border:0;background:transparent;padding:3px 12px;cursor:pointer;color:#dcdcdc;text-align:left}.bl-results button.on{background:var(--accent);color:#fff}.bl-results .lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bl-results .keys{color:#8d8d8d;font-size:11px;white-space:nowrap}.bl-results button.on .keys{color:#dfe7f5}.bl-empty{color:var(--faint);padding:10px 12px}.bl-add{width:370px}.bl-searchbox{left:50%;top:90px;transform:translate(-50%);width:min(560px,calc(100vw - 32px));padding-top:6px}.bl-pie{position:fixed;z-index:120;width:0;height:0}.bl-pie .hub{position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid #8d8d8d;transform:translate(-50%,-50%)}.bl-pie button{position:absolute;left:0;top:0;border:1px solid #2c2c2c;background:var(--menu);color:#e2e2e2;padding:5px 14px;border-radius:13px;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow)}.bl-pie button:hover{background:var(--accent);color:#fff}.bl-keys{left:50%;top:50%;transform:translate(-50%,-50%);width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:auto;padding:8px 14px 14px}.bl-keys .bl-menu-title{font-size:13px;color:var(--text);padding:4px 0 8px}.bl-keys .cols{columns:3 280px;column-gap:22px}.bl-keys section{break-inside:avoid;margin-bottom:12px}.bl-keys h4{margin:0 0 5px;font-size:11px;color:var(--accent-hi);text-transform:uppercase;letter-spacing:.6px}.kv2{display:grid;grid-template-columns:128px 1fr;gap:8px;padding:2px 0;color:#d0d0d0}kbd{font-family:inherit;font-size:10.5px;background:#3a3a3a;border:1px solid #4a4a4a;border-bottom-width:2px;border-radius:3px;padding:0 5px;color:#eee;white-space:nowrap}.kv2 kbd{justify-self:start}.ed-header{display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;background:var(--header);color:var(--muted);flex-shrink:0}.ed-title{color:var(--text);font-weight:500}.ed-header .tiny{border:0;background:transparent;color:var(--muted);width:22px;height:20px;border-radius:3px;display:grid;place-items:center;cursor:pointer}.ed-header .tiny:hover{background:#3a3a3a;color:#fff}.ed-header .tiny.on{background:var(--accent);color:#fff}.vp-header{display:flex;align-items:center;gap:4px;height:28px;padding:0 6px;background:var(--header);flex-shrink:0;position:relative;z-index:6}.ed-icon{width:26px;height:20px;display:grid;place-items:center;color:var(--muted);background:#383838;border-radius:var(--radius);margin-right:2px}.hdr-group{display:flex;gap:1px;margin-left:6px;align-items:center}.hdr-btn{border:0;background:var(--widget);color:#dadada;height:20px;min-width:26px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;gap:1px;cursor:pointer;border-radius:0}.hdr-group>:first-child .hdr-btn,.hdr-group>.hdr-btn:first-child{border-radius:var(--radius) 0 0 var(--radius)}.hdr-group>:last-child .hdr-btn,.hdr-group>.hdr-btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.hdr-group>.hdr-btn:only-child{border-radius:var(--radius)}.hdr-btn:hover{background:var(--widget-hi)}.hdr-btn.on{background:var(--accent);color:#fff}.hdr-btn.text{padding:0 8px;font-size:11px}.field-pose{gap:4px}.field-pose .lbl{color:var(--muted);font-size:11px;margin-left:4px}.field-pose input[type=range]{width:70px}.vp-toolbar{position:absolute;left:6px;top:6px;display:flex;flex-direction:column;gap:1px;background:#242424eb;border-radius:6px;padding:3px;z-index:5;box-shadow:0 2px 8px #00000059}.vp-toolbar button{width:32px;height:32px;border:0;background:transparent;border-radius:var(--radius);cursor:pointer;display:grid;place-items:center;color:#cfcfcf}.vp-toolbar button:hover:not(:disabled){background:#444;color:#fff}.vp-toolbar button.on{background:var(--accent);color:#fff}.vp-toolbar button:disabled{opacity:.32;cursor:default}.vp-toolbar hr{border:0;border-top:1px solid #3c3c3c;margin:3px 4px}.view-label{position:absolute;left:50px;top:8px;z-index:4;pointer-events:none;text-shadow:0 0 3px #000,0 1px 2px #000,0 0 6px rgba(0,0,0,.6);line-height:1.45}.view-label .l1{color:#ececec;font-size:12.5px}.view-label .l2{color:#b9b9b9;font-size:11.5px}.nav-gizmo{position:absolute;right:8px;top:6px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:6px}.nav-gizmo svg{cursor:grab;display:block}.nav-gizmo svg .bg{fill:#fff0;transition:fill .12s}.nav-gizmo svg:hover .bg{fill:#ffffff12}.nav-gizmo .ball{cursor:pointer}.nav-gizmo .ball:hover{filter:brightness(1.35)}.nav-gizmo .lbl{font-size:10px;font-weight:700;fill:#111;pointer-events:none}.nav-btns{display:flex;flex-direction:column;gap:5px}.nav-btns button{width:28px;height:28px;border-radius:50%;border:0;background:#3c3c3cd9;color:#d8d8d8;display:grid;place-items:center;cursor:pointer}.nav-btns button:hover{background:#5a5a5a;color:#fff}.nav-btns button.on{background:var(--accent);color:#fff}.place-bar{position:absolute;left:50%;bottom:10px;transform:translate(-50%);z-index:6;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;align-items:center;max-width:calc(100% - 100px);background:#1e1e1eeb;border:1px solid #3a3a3a;border-radius:6px;padding:4px;box-shadow:0 2px 10px #0006;white-space:nowrap}.place-bar .bl-btn{padding:2px 8px}.place-bar .seg button{padding:2px 9px}.place-bar .bl-btn.on{background:var(--accent);border-color:#2f5590;color:#fff}.stand-row{width:100%;gap:4px;margin-bottom:2px}.xf-hud{position:absolute;left:50%;top:8px;transform:translate(-50%);z-index:6;background:#141414e0;color:#fff;padding:4px 12px;border-radius:var(--radius);font-size:12px;white-space:nowrap;pointer-events:none}.box-rect{position:absolute;z-index:6;border:1px dashed rgba(255,255,255,.85);background:#ffffff0d;pointer-events:none;outline:1px dashed rgba(0,0,0,.5);outline-offset:-2px}.contact-chip{position:absolute;left:50px;bottom:10px;z-index:5;display:flex;gap:6px;align-items:center;background:#3c2614eb;color:#ffd7a8;border:1px solid #7a4c1c;padding:4px 10px;border-radius:var(--radius)}.empty-hint{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);background:#222222f0;border:1px solid #3a3a3a;border-radius:8px;box-shadow:var(--shadow);padding:16px 20px;width:380px;z-index:4;line-height:1.6;pointer-events:none}.empty-hint b{font-size:14px;color:#fff}.empty-hint ul{margin:6px 0 0;padding-left:18px;color:var(--muted)}.timeline{display:flex;align-items:center;gap:6px;height:34px;padding:0 8px;background:var(--header);border-top:1px solid var(--gap);flex-shrink:0}.tl-btn{border:0;background:var(--widget);color:#ddd;width:26px;height:22px;border-radius:var(--radius);display:grid;place-items:center;cursor:pointer}.tl-btn:hover{background:var(--widget-hi)}.tl-btn.on,.tl-btn.play.on{background:var(--accent);color:#fff}.tl-speed{background:var(--widget);border:0;border-radius:var(--radius);height:22px;color:#ddd;padding:0 4px}.tl-track{flex:1;position:relative;display:flex;flex-direction:column;justify-content:center;min-width:120px}.tl-track input[type=range]{width:100%;margin:0}.tl-track .ticks{display:flex;justify-content:space-between;font-size:9px;color:var(--faint);margin-top:-1px;padding:0 4px}.tl-frame{background:var(--accent);color:#fff;padding:1px 8px;border-radius:var(--radius);min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.tl-check{display:flex;align-items:center;gap:4px;color:var(--muted);white-space:nowrap;cursor:pointer}input[type=range]{accent-color:var(--accent)}.statusbar{display:flex;align-items:center;gap:12px;padding:0 10px;background:var(--topbar);color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden}.statusbar .hints{display:flex;gap:12px;align-items:center;overflow:hidden;min-width:0}.statusbar .hint{display:inline-flex;gap:4px;align-items:center}.statusbar .hint kbd{font-size:10px;padding:0 4px}.statusbar .hint.strong{color:var(--text);font-weight:600}.statusbar .hint.bad{color:#ff8a84}.statusbar .hint.ok{color:#9ee6b0}.statusbar .report{display:inline-flex;gap:6px;align-items:center;padding:1px 8px;border-radius:3px;background:#2f3a4a;color:#d6e4ff;max-width:46%;overflow:hidden;text-overflow:ellipsis}.statusbar .report.warn{background:#4a3a1f;color:#ffd9a0}.statusbar .report.error{background:#4d2523;color:#ffc4c0}.stat-item{display:inline-flex;align-items:center;gap:4px}.stat-item.clickable{cursor:pointer}.stat-item.clickable:hover{color:var(--text)}.stat-item.dim{color:var(--faint)}.statusbar .dot{width:7px;height:7px;border-radius:50%;display:inline-block}.tabs{display:flex;height:26px;align-items:flex-end;padding:0 6px;gap:2px;background:var(--header);flex-shrink:0}.tabs button{border:0;background:transparent;padding:0 12px;height:22px;cursor:pointer;color:var(--muted);border-radius:4px 4px 0 0;white-space:nowrap}.tabs button:hover{color:var(--text)}.tabs button.on{color:#fff;background:var(--region)}.lib-search{padding:7px 8px;display:grid;gap:6px;flex-shrink:0;border-bottom:1px solid var(--line)}.lib-search input{width:100%;padding:4px 8px;border:1px solid #3a3a3a;border-radius:var(--radius);background:var(--field);outline:none}.lib-search input:focus{border-color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:2px}.chip{border:0;background:var(--widget);border-radius:3px;padding:1px 7px;cursor:pointer;font-size:11px;color:#d0d0d0}.chip:hover{background:var(--widget-hi)}.chip.on{background:var(--accent);color:#fff}.lib-meta{justify-content:space-between;color:var(--faint);font-size:10.5px}.lib-meta label{display:flex;gap:4px;align-items:center;white-space:nowrap;cursor:pointer}.lib-group{padding:7px 10px 3px;font-size:11px;color:#c9c9c9;font-weight:600;position:sticky;top:0;background:#303030f7;z-index:1;display:flex;align-items:center;gap:6px}.lib-group:before{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #8a8a8a}.lib-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:3px 8px 8px}.lib-item{border:1px solid transparent;border-radius:var(--radius);background:#2a2a2a;cursor:pointer;padding:3px 3px 5px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px;position:relative;color:var(--text)}.lib-item:hover{background:#3c3c3c}.lib-item.on{border-color:var(--accent);background:#2e3b52}.lib-item:disabled{opacity:.6;cursor:default}.lib-item .thumb{width:72px;height:60px;display:grid;place-items:center}.lib-item .thumb img{max-width:72px;max-height:60px}.lib-item .nm{font-size:10.5px;line-height:1.25;color:#dadada;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:26px}.lib-item .sku{font-size:9.5px;color:var(--faint)}.lib-item .tag{position:absolute;top:3px;right:3px;font-size:9px;background:#4a4a4a;color:#ddd;border-radius:3px;padding:0 4px}.lib-item .tag.bom{background:#5a4520;color:#ffd38a}.lib-item .tag.custom{background:#2e4a7a;color:#cfe0ff}.lib-item .tag.custom.warn{background:#5a4520;color:#ffd38a}.lib-item.new-custom{border:1px dashed #555;background:transparent;justify-content:center}.lib-item.new-custom:hover{border-color:var(--accent);background:#2e3b52}.lib-item.new-custom .plus{font-size:24px;line-height:1;color:var(--muted);margin-top:6px}.thumb-ph{width:46px;height:34px;border-radius:4px;background:linear-gradient(135deg,#353535,#2c2c2c)}.tpl-intro{color:var(--muted);line-height:1.55;padding:10px 12px}.tpl-card{margin:6px 8px;border:1px solid #3a3a3a;border-radius:5px;padding:9px 10px;cursor:pointer;background:#2a2a2a}.tpl-card:hover{border-color:var(--accent);background:#2e3542}.tpl-card h4{margin:0 0 4px;font-size:12.5px;color:#f0f0f0}.tpl-card p{margin:0;color:var(--muted);font-size:11.5px;line-height:1.5}.tpl-card .meta{margin-top:6px;display:flex;gap:4px;flex-wrap:wrap}.outliner{display:flex;flex-direction:column;flex:0 0 36%;min-height:120px;background:var(--region);border-radius:var(--radius);overflow:hidden}.tree{padding:3px 0}.row-tree{display:flex;align-items:center;gap:5px;height:21px;padding:0 6px 0 8px;cursor:pointer;color:#d6d6d6;white-space:nowrap}.row-tree:nth-child(2n){background:#ffffff04}.row-tree:hover{background:#3a3a3a}.row-tree.root{color:var(--text);cursor:default}.row-tree.root:hover{background:transparent}.row-tree.group{padding-left:14px;color:#e6e6e6}.row-tree.group.has-sel .nm{color:var(--orange)}.row-tree.group .cnt{margin-left:auto;color:var(--faint);font-size:10.5px}.row-tree.leaf{padding-left:38px}.row-tree.leaf.sel{background:var(--accent-soft);color:#fff}.row-tree.leaf.active{background:var(--accent)}.row-tree.leaf.active .nm{color:#fff}.row-tree.leaf.hidden .nm{opacity:.45}.row-tree.leaf.more{color:var(--faint);font-style:italic}.row-tree .nm{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.row-tree .sw{width:9px;height:9px;border-radius:2px;flex-shrink:0}.row-tree .eye{border:0;background:transparent;color:#8f8f8f;width:20px;height:18px;display:grid;place-items:center;cursor:pointer;border-radius:3px;flex-shrink:0}.row-tree .eye:hover{color:#fff;background:#ffffff14}.properties{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--region);border-radius:var(--radius);overflow:hidden}.props-body{display:grid;grid-template-columns:30px 1fr;flex:1;min-height:0}.props-tabs{display:flex;flex-direction:column;gap:2px;padding:4px 2px;background:#262626}.props-tabs button{position:relative;width:26px;height:26px;border:0;background:transparent;color:#a9a9a9;border-radius:var(--radius);display:grid;place-items:center;cursor:pointer}.props-tabs button:hover{background:#3a3a3a;color:#fff}.props-tabs button.on{background:var(--widget-hi);color:#fff;box-shadow:inset 2px 0 0 var(--accent)}.props-tabs .dot{position:absolute;right:3px;top:3px;width:6px;height:6px;border-radius:50%}.props-tabs .dot.bad{background:var(--bad)}.props-tabs .dot.warn{background:var(--warn)}.props-content{padding:4px 5px 10px}.section{background:var(--panel);border-radius:var(--radius);margin:4px 0;padding:8px 10px}.section h3{margin:-8px -10px 8px;padding:5px 10px;font-size:11.5px;color:#e8e8e8;font-weight:500;background:var(--panel-head);border-radius:var(--radius) var(--radius) 0 0;display:flex;align-items:center;gap:6px}.section h3:before{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #9a9a9a}.part-title{font-size:13.5px;font-weight:600;margin:0 0 2px;color:#fff}.part-sub{color:var(--muted);font-size:11.5px}.kv{display:grid;grid-template-columns:92px 1fr;gap:4px 8px;font-size:11.5px;align-items:center}.kv .k{color:var(--muted);text-align:right}.kv input[type=number],.kv input[type=text],.kv select{width:100%;padding:2px 6px;border:1px solid #2a2a2a;border-radius:var(--radius);background:var(--field);color:var(--text);height:21px}.kv input:focus,.kv select:focus{border-color:var(--accent);outline:none}.kv select{background:#2a2a2a}.xyz{display:flex;gap:8px;flex-wrap:wrap}.xyz b{font-weight:700;margin-right:3px}.xyz .ax0{color:var(--x)}.xyz .ax1{color:var(--y)}.xyz .ax2{color:var(--z)}.badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;padding:1px 7px;border-radius:9px;background:#474747;color:#ddd;white-space:nowrap}.badge.ok{background:#4fbf6b2e;color:#8fe0a5}.badge.warn{background:#e3a33a33;color:#ffcf7f}.badge.bad{background:#e5534b33;color:#ff9c96}.badge.blue{background:#4772b34d;color:#c6d9ff}.empty{color:var(--faint);text-align:center;padding:26px 16px;line-height:1.6}.notes{width:100%;background:var(--field);border:1px solid #2a2a2a;border-radius:var(--radius);padding:6px 8px;resize:vertical}.notes:focus{border-color:var(--accent);outline:none}.howto p{margin:0 0 6px;color:var(--muted);line-height:1.55;font-size:11.5px}.ext-link{margin:8px 0 0}.ext-link a{color:#8fb4f0;text-decoration:none}.ext-link a:hover{text-decoration:underline}.list-row{padding:3px 0;border-bottom:1px solid #333}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:4px 0}.stat{background:var(--panel);border-radius:var(--radius);padding:6px 8px}.stat .v{font-size:15px;font-weight:600;color:#fff}.stat .v small{font-size:11px;color:var(--muted);font-weight:400}.stat .l{font-size:10.5px;color:var(--muted)}.check{display:grid;grid-template-columns:20px 1fr;gap:6px;padding:7px 8px;margin:3px 0;background:var(--panel);border-radius:var(--radius);cursor:pointer}.check:hover{background:#424242}.check .ic{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:10px;color:#111;margin-top:1px;font-weight:800}.check .ic.pass{background:var(--ok)}.check .ic.warn{background:var(--warn)}.check .ic.fail{background:var(--bad);color:#fff}.check .ic.info{background:#8a8a8a}.check .t{font-weight:600;font-size:11.5px;color:#eee}.check .r{color:var(--faint);font-weight:400;margin-left:5px;font-size:10.5px}.check .d{color:var(--muted);font-size:11px;margin-top:2px;line-height:1.45}table.bom{width:100%;border-collapse:collapse;font-size:11px}table.bom th{text-align:left;font-weight:500;color:var(--muted);padding:5px 6px;border-bottom:1px solid #2a2a2a;position:sticky;top:0;background:var(--region);font-size:10.5px}table.bom td{padding:5px 6px;border-bottom:1px solid #383838;vertical-align:top}table.bom tr:hover td{background:#383838}table.bom .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}table.bom .cat td{background:#2a2a2a;color:#c9c9c9;font-weight:600;font-size:10.5px}.slider-row{display:grid;grid-template-columns:1fr 46px;gap:8px;align-items:center;margin:5px 0}.slider-row input[type=range]{width:100%}.motor-card{background:var(--panel);border-radius:var(--radius);padding:7px 9px;margin-bottom:5px}.motor-card .hd{display:flex;justify-content:space-between;align-items:center;gap:6px;font-weight:600;font-size:11.5px}.check-inline{display:inline-flex;gap:5px;align-items:center;cursor:pointer;color:var(--text)}.contact-note{color:#ffcf9c;background:#78481459;border-radius:var(--radius)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;z-index:100}.modal{background:var(--region);border:1px solid #262626;border-radius:8px;box-shadow:0 24px 64px #0009;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 56px);display:flex;flex-direction:column;overflow:hidden}.modal header{padding:0 8px 0 14px;height:32px;background:var(--header);display:flex;align-items:center;justify-content:space-between}.modal header h2{margin:0;font-size:12.5px;font-weight:500;color:#eee}.modal .body{padding:12px 14px;overflow:auto}.modal footer{padding:8px 14px;background:var(--header);display:flex;justify-content:flex-end;gap:6px}.design-list{display:grid;gap:4px}.design-row{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;padding:6px;border-radius:5px;cursor:pointer;background:#2a2a2a}.design-row:hover{background:#2e3b52}.design-row img,.design-row .ph{width:64px;height:48px;object-fit:cover;border-radius:4px;background:#1f1f1f}.design-row .n{font-weight:600;color:#eee}.design-row .m{color:var(--muted);font-size:11px}.share-url{width:100%;padding:6px 8px;border:1px solid #3a3a3a;border-radius:var(--radius);background:var(--field)}.cp-modal{width:min(1080px,calc(100vw - 32px))}.cp-layout{display:grid;grid-template-columns:330px 1fr;gap:14px}.cp-form{display:grid;gap:9px;align-content:start}.cp-form .grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field{display:grid;gap:3px;font-size:11px;color:var(--muted)}.field input,.field select{padding:3px 7px;border:1px solid #2a2a2a;border-radius:var(--radius);color:var(--text);background:var(--field);width:100%;height:23px}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.row.tight{gap:4px;flex-wrap:nowrap}.row.tight input{width:52px;padding:2px 5px;height:21px;background:var(--field);border:1px solid #2a2a2a;border-radius:var(--radius)}.row.tight select{height:21px;background:var(--field);border:1px solid #2a2a2a;border-radius:var(--radius)}.seg.full{display:flex}.seg.full button{flex:1}.cp-view{display:grid;gap:10px;align-content:start;min-width:0}.cp-preview{height:260px;border-radius:6px;overflow:hidden;background:linear-gradient(#3c3c3c,#262626)}.cp-grid{display:grid;gap:6px;justify-items:start}.cp-grid svg{background:#232323;border:1px solid #3a3a3a;border-radius:5px;cursor:crosshair;max-width:100%}.cp-grid .g1{stroke:#4a4a4a;stroke-width:1}.cp-grid .g2{stroke:#383838;stroke-width:1}.cp-grid .g3{stroke:#2c2c2c;stroke-width:1}.cp-grid .limit{fill:none;stroke:var(--warn);stroke-dasharray:6 4;stroke-width:1.5}.cp-grid .shape{fill:#5680c247;stroke:var(--accent-hi);stroke-width:2}.cp-grid .vert{fill:#e6e6e6;stroke:var(--accent-hi);stroke-width:2;cursor:move}.cp-grid .hole{fill:#232323;stroke:#e6e6e6;stroke-width:1.2}.cp-grid .dot{fill:#6a6a6a}.cp-grid .lbl{font-size:10px;fill:#8a8a8a}.cp-status{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#2b3546,transparent 55%),radial-gradient(circle at 80% 85%,#3a2a24,transparent 50%),#1b1b1b;position:relative}.auth-lang{position:absolute;right:16px;top:14px}.auth-card{background:var(--region);border:1px solid #262626;border-radius:10px;box-shadow:0 24px 64px #0000008c;padding:26px;width:min(380px,calc(100vw - 32px))}.auth-card h1{margin:10px 0 4px;font-size:19px;color:#fff;font-weight:600}.auth-card p{color:var(--muted);margin:0 0 16px;line-height:1.55}.auth-card input{width:100%;padding:8px 10px;border-radius:5px;border:1px solid #3a3a3a;margin-bottom:10px;font-size:13px;background:var(--field);outline:none}.auth-card input:focus{border-color:var(--accent)}.auth-err{color:#ff9c96;margin:0 0 10px}.auth-go{width:100%;justify-content:center;padding:7px}.sheet-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;background:#1e1e1e;padding:14px 20px 30px}.sheet{background:#fff;color:#111;margin:0 auto 22px;box-shadow:0 8px 30px #0000008c;position:relative;-webkit-user-select:text;user-select:text}.sheet table.bom th{background:#fff;color:#555;border-bottom:1px solid #ccc}.sheet table.bom td{border-bottom:1px solid #e5e5e5;color:#222}.sheet table.bom tr:hover td{background:transparent}.sheet table.bom .cat td{background:#f2f2f2;color:#555}.sheet-tools{position:sticky;top:-14px;z-index:4;display:flex;gap:8px;align-items:center;justify-content:center;margin:-14px -20px 14px;padding:8px;background:var(--header);flex-wrap:wrap}.sheet-hint{color:var(--muted);font-size:11.5px}.plastic-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px}.plastic-head span{color:#666;font-size:12px}.plastic-list{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}.plastic-list figure{margin:0}.plastic-list figcaption{font-size:11px;color:#444;margin-top:2px}.ins-sheet{width:1123px;padding:26px 28px;background:#fbfbfa}.ins-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid #d7262e;padding-bottom:10px;margin-bottom:16px}.ins-head b{font-size:24px;letter-spacing:-.3px}.ins-head span{color:#666}.ins-kicker{font-size:11px;font-weight:700;color:#d7262e;text-transform:uppercase;letter-spacing:1.2px}.ins-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.step-card{border:1px solid #e2e2e2;border-radius:12px;padding:12px;break-inside:avoid;background:#fff;box-shadow:0 1px 2px #0000000a}.step-top{display:flex;align-items:center;justify-content:space-between}.step-no{font-size:34px;font-weight:800;line-height:1;color:#1a1a1a;letter-spacing:-1px}.step-merge{font-size:11px;color:#888;display:flex;gap:4px;align-items:center}.callout{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:7px;background:#e8f3fb;border:2px solid #b9daf1;border-radius:9px}.callout-item{display:flex;align-items:center;gap:4px;background:#fff;border-radius:6px;padding:2px 7px 2px 2px;box-shadow:0 1px 2px #00000014}.ci-text{font-size:11px;line-height:1.25;color:#222}.ci-text b{font-size:13px}.ci-text .cut{color:#c25e00;font-weight:600}.step-img{width:100%;height:auto;display:block}.step-ph{display:grid;place-items:center;color:#aaa}@media print{@page{size:A4 landscape;margin:0}body{background:#fff}.topbar,.panel,.statusbar,.sheet-tools,.vp-toolbar,.timeline,.vp-header,.nav-gizmo{display:none!important}.app,.main{display:block!important;height:auto!important;padding:0!important;background:#fff!important}.viewport.area{position:static!important;display:block!important;background:#fff!important}.sheet-wrap{position:static!important;padding:0!important;background:#fff!important;overflow:visible!important}.sheet{box-shadow:none!important;margin:0!important;page-break-after:always}.no-print{display:none!important}}
