@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{--ink: #171a1f;--muted: #767a80;--line: #deded9;--paper: #f5f4ef;--panel: #fbfaf6;--white: #fff;--navy: #13252c;--navy-soft: #1c333b;--orange: #ed6a37;--orange-dark: #d85324;--green: #3b9b73;--sidebar: 292px;--inspector: 284px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Manrope,Noto Sans KR,sans-serif;color:var(--ink);background:var(--paper);font-size:13px}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.svg-sprite{position:fixed;width:0;height:0;overflow:hidden}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.studio-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr) var(--inspector);width:100vw;height:100vh}.sidebar{position:relative;z-index:20;display:flex;flex-direction:column;min-width:0;color:#eef2ef;background:var(--navy);border-right:1px solid rgba(255,255,255,.05);overflow:hidden;transition:width .25s,transform .25s}.brand{display:flex;align-items:center;gap:13px;height:78px;flex:0 0 78px;padding:0 24px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.09);letter-spacing:.14em;font-weight:800;font-size:15px}.brand small{display:block;margin-top:4px;color:#82949b;font-size:7px;letter-spacing:.28em}.brand-mark{position:relative;display:flex;width:29px;height:29px;transform:rotate(-30deg)}.brand-mark i{position:absolute;display:block;width:7px;height:27px;background:var(--orange)}.brand-mark i:nth-child(1){left:1px}.brand-mark i:nth-child(2){left:11px;height:20px;top:7px}.brand-mark i:nth-child(3){right:1px;height:13px;top:14px}.parts-head{display:flex;justify-content:space-between;align-items:end;padding:24px 19px 15px 22px}.eyebrow{margin:0 0 6px;color:var(--orange);font-family:DM Mono,monospace;font-size:9px;letter-spacing:.22em;font-weight:500}.parts-head h2,.inspector-head h2{margin:0;font-size:17px;letter-spacing:-.04em}.icon-button{width:28px;height:28px;border:0;border-radius:4px;cursor:pointer}.icon-button.light{color:#a8b3b6;background:rgba(255,255,255,.06)}.search-box{display:flex;align-items:center;gap:9px;height:40px;margin:0 20px 14px;padding:0 11px;color:#84969b;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:3px}.search-box svg{width:16px}.search-box input{flex:1;width:20px;padding:0;color:#fff;background:transparent;border:0;outline:0}.search-box input::placeholder{color:#718389}.search-box kbd{padding:2px 5px;color:#6f8288;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:3px;font-family:inherit;font-size:9px}.category-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:0 20px 14px}.category-tabs button{padding:7px 2px;color:#70838a;background:transparent;border:0;border-bottom:1px solid #2b4047;cursor:pointer;font-size:11px}.category-tabs button.active{color:#fff;border-bottom:2px solid var(--orange);font-weight:700}.part-list{padding:0 12px 12px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3d5157 transparent}.part-section{margin-bottom:14px}.section-title{display:flex;justify-content:space-between;margin:0;padding:9px 10px;color:#687b82;font-family:DM Mono,monospace;font-size:8px;letter-spacing:.17em}.section-title span{color:#52666d}.part-card{position:relative;display:grid;grid-template-columns:58px 1fr 25px;align-items:center;gap:10px;width:100%;min-height:69px;padding:8px;margin-bottom:5px;color:#eaf0ee;text-align:left;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;transition:.18s ease}.part-card:hover{background:rgba(255,255,255,.055);transform:translate(2px)}.part-card.active{background:var(--navy-soft);border-color:#365059}.part-card.active:before{position:absolute;left:-1px;top:14px;bottom:14px;width:2px;content:"";background:var(--orange)}.part-copy{min-width:0}.part-copy strong,.part-copy small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.part-copy strong{margin-bottom:5px;font-size:11px}.part-copy small{color:#71858b;font-size:9px}.add-part{display:grid;place-items:center;width:22px;height:22px;color:#a8b5b8;background:rgba(255,255,255,.055);border-radius:50%;font-size:15px;transition:.18s}.part-card:hover .add-part{color:#fff;background:var(--orange)}.part-visual{position:relative;display:block;width:54px;height:48px;border-radius:2px}.profile-4040,.profile-4080,.profile-2020,.profile-2040{filter:drop-shadow(8px 9px 7px rgba(0,0,0,.28));transform:rotate(-10deg) skewY(4deg)}.profile-4040:before,.profile-4080:before,.profile-2020:before,.profile-2040:before{position:absolute;top:8px;right:4px;bottom:8px;left:4px;content:"";background:linear-gradient(135deg,#e0e5e4,#78888b 48%,#e8eceb 49%,#899699);border:1px solid #dce3e3;box-shadow:inset 0 0 0 7px #abb5b5,inset 0 0 0 10px #34474c}.profile-4080:before,.profile-2040:before{top:4px;right:10px;bottom:4px;left:10px}.profile-4080 i,.profile-2040 i{position:absolute;z-index:2;left:26px;top:8px;height:32px;border-left:2px solid #405157}.profile-2020{transform:rotate(-10deg) skewY(4deg) scale(.72)}.profile-2040{transform:rotate(-10deg) skewY(4deg) scale(.82)}.bracket-visual:before{position:absolute;top:8px;right:8px;bottom:8px;left:8px;content:"";border-left:11px solid #606b6e;border-bottom:11px solid #879295;box-shadow:-2px 3px 4px #071216}.bracket-visual:after{position:absolute;left:13px;bottom:12px;content:"";width:5px;height:5px;border-radius:50%;background:#17272d;box-shadow:0 -14px #17272d,15px 0 #17272d}.plate-visual:before{position:absolute;top:10px;right:5px;bottom:10px;left:5px;content:"";background:linear-gradient(135deg,#778486,#303f44);border:1px solid #95a0a1;transform:skewY(-8deg)}.plate-visual:after{position:absolute;left:12px;top:17px;content:"";width:5px;height:5px;border-radius:50%;background:#13252c;box-shadow:24px -3px #13252c,1px 15px #13252c,24px 12px #13252c}.panel-visual:before{position:absolute;top:7px;right:5px;bottom:7px;left:5px;content:"";background:linear-gradient(135deg,rgba(117,195,203,.7),rgba(205,238,238,.22));border:1px solid #9ed2d4;transform:skewY(-7deg);box-shadow:5px 6px 7px #00000040}.cube-visual:before{position:absolute;top:10px;right:10px;bottom:10px;left:10px;content:"";background:linear-gradient(135deg,#3c4a4e,#1f292b);border:1px solid #576569;border-radius:2px;box-shadow:2px 3px 6px #00000040}.inner-visual:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";background:linear-gradient(135deg,#cfd6d7,#889598);border:1px solid #a3b0b3}.hinge-visual:before{position:absolute;left:12px;top:10px;width:12px;height:24px;content:"";background:#a0aaad;border:1px solid #788487}.hinge-visual:after{position:absolute;right:12px;top:10px;width:12px;height:24px;content:"";background:#7e8b8e;border:1px solid #5d696c}.foot-visual:before{position:absolute;left:16px;bottom:8px;width:22px;height:8px;content:"";background:#222627;border-radius:2px}.foot-visual:after{position:absolute;left:24px;bottom:16px;width:6px;height:18px;content:"";background:#a0aaad;border:1px solid #738083}.caster-visual:before{position:absolute;left:14px;top:6px;width:26px;height:5px;content:"";background:#909c9f}.caster-visual:after{position:absolute;left:17px;bottom:6px;width:20px;height:20px;border-radius:50%;content:"";background:#b53526;border:3px solid #1a1c1d}.cap-visual:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";background:#1e2325;border:1px solid #3d4648;border-radius:3px}.handle-visual:before{position:absolute;left:14px;top:14px;width:26px;height:18px;content:"";border:3px solid #b2bcbe;border-bottom:0;border-radius:4px 4px 0 0}.wood-visual:before{position:absolute;top:8px;right:5px;bottom:8px;left:5px;content:"";background:linear-gradient(135deg,#cba678,#9e7745);border:1px solid #deb88b;transform:skewY(-7deg);box-shadow:3px 4px 6px #00000026}.shelf-visual:before{position:absolute;top:9px;right:5px;bottom:9px;left:5px;content:"";background:linear-gradient(135deg,#546165,#313b3d);border:1px dashed #7a888c;transform:skewY(-7deg)}.empty-search{display:none;padding:25px;color:#75868b;text-align:center}.library-tip{display:flex;align-items:center;gap:10px;margin:auto 18px 18px;padding:13px;color:#73878d;border-top:1px solid #2a3e45;font-size:9px;line-height:1.5}.library-tip span{display:grid;place-items:center;width:20px;height:20px;border:1px solid #45595f;border-radius:50%}.library-tip p{margin:0}.library-tip strong{display:block;color:#aab7ba;font-size:10px}.workspace{display:grid;grid-template-rows:78px minmax(0,1fr);min-width:0;background:#f1f0ea}.topbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 20px;background:#faf9f5;border-bottom:1px solid var(--line);gap:10px}.project-title{display:flex;align-items:center;gap:12px;min-width:0;flex-shrink:1}.project-title p{margin:0 0 2px;color:#9b9b96;font-family:DM Mono,monospace;font-size:8px;letter-spacing:.12em}.project-title input{width:220px;padding:0;color:#22252a;background:transparent;border:0;font-size:15px;font-weight:700;outline:0}.saved-state{display:flex;align-items:center;gap:5px;color:#7d817f;font-size:9px}.saved-state i,.status-dot{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 0 3px #3b9b7317}.top-actions{display:flex;align-items:center;gap:4px}.text-button,.primary-button{display:flex;align-items:center;justify-content:center;gap:7px;height:35px;padding:0 10px;border:0;background:transparent;border-radius:3px;cursor:pointer;font-size:10px}.text-button:hover{background:#eeede7}.text-button svg{width:15px}.new-project-button{padding:0 12px;color:#253a41;border:1px solid #d2d2cc;background:#fff;font-weight:700}.new-project-button b{color:var(--orange);font-size:15px;font-weight:500;line-height:1}.new-project-button:hover{border-color:#b9b9b3;background:#f2f1ec}.primary-button{padding:0 16px;color:#fff;background:var(--orange);box-shadow:0 4px 12px #ed6a3733;font-weight:700}.primary-button:hover{background:var(--orange-dark)}.primary-button svg{width:14px}.divider{width:1px;height:22px;margin:0 7px;background:#deddd8}.avatar{width:34px;height:34px;margin-left:7px;color:#fff;background:#283e45;border:0;border-radius:50%;font-size:9px;font-weight:700;cursor:pointer}.mobile-menu{display:none;background:transparent;border:0;font-size:20px}.canvas-panel{position:relative;min-height:0;overflow:hidden}.scene-container{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.scene-container:active{cursor:grabbing}.scene-container.dragging-part{cursor:move}.scene-container canvas{display:block;width:100%;height:100%}.view-toolbar{position:absolute;top:20px;left:20px;display:flex;gap:2px;padding:4px;background:rgba(255,255,255,.92);border:1px solid #dcdbd5;border-radius:4px;box-shadow:0 8px 25px #21262614;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.view-toolbar button{display:grid;place-items:center;width:33px;height:32px;background:transparent;border:0;border-radius:3px;cursor:pointer}.view-toolbar button:hover{background:#ecebe6}.view-toolbar button.active{color:#fff;background:#263b42}.view-toolbar button svg{width:15px;height:15px}.view-toolbar>span{width:1px;margin:5px 3px;background:#dddcd7}.camera-cube{position:absolute;top:19px;right:20px;display:grid;gap:2px;padding:4px;background:rgba(255,255,255,.88);border:1px solid #d9d8d2;box-shadow:0 6px 22px #21262612}.camera-cube>button{width:66px;height:22px}.camera-cube div{display:flex;gap:2px}.camera-cube button{color:#777b7b;background:#f0efea;border:0;font-family:DM Mono,monospace;font-size:7px;letter-spacing:.08em;cursor:pointer}.camera-cube button:hover{color:#fff;background:#293e45}.camera-cube div button{width:32px;height:32px}.scene-hint{position:absolute;left:50%;bottom:55px;display:flex;align-items:center;gap:7px;padding:8px 13px;color:#92938e;background:rgba(250,249,245,.8);border:1px solid rgba(214,213,207,.8);border-radius:3px;transform:translate(-50%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:8px;white-space:nowrap}.scene-hint b{color:#525653;font-weight:600}.mouse-icon{position:relative;width:11px;height:15px;border:1px solid #858985;border-radius:6px}.mouse-icon:after{position:absolute;left:4px;top:2px;width:1px;height:4px;content:"";background:#858985}.selection-badge{position:absolute;left:21px;bottom:55px;display:flex;align-items:center;gap:7px;opacity:0;padding:8px 12px;color:#6f7371;background:rgba(255,255,255,.9);border:1px solid #dad9d3;border-radius:3px;transform:translateY(6px);transition:.2s;font-size:9px;pointer-events:none}.selection-badge.visible{opacity:1;transform:translateY(0)}.selection-badge span{width:6px;height:6px;background:var(--orange);border-radius:50%}.selection-badge b{color:#303431}.selection-badge em{font-style:normal}.axis-widget{position:absolute;right:30px;bottom:65px;width:60px;height:60px;color:#888;font-family:DM Mono,monospace;font-size:8px}.axis-widget:before,.axis-widget:after{position:absolute;left:30px;top:29px;width:30px;height:1px;content:"";background:#d25c49;transform:rotate(-20deg);transform-origin:left}.axis-widget:after{background:#4b7da5;transform:rotate(205deg)}.axis-widget i{position:absolute;font-style:normal;font-weight:700}.axis-y{left:28px;top:1px;color:#5f9a72}.axis-x{right:0;bottom:20px;color:#cc604f}.axis-z{left:0;bottom:13px;color:#4e7fa5}.bottom-status{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:20px;height:35px;padding:0 20px;color:#8d8e89;background:rgba(250,249,245,.9);border-top:1px solid #dddcd6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:8px}.bottom-status span{display:flex;align-items:center;gap:4px}.bottom-status b{color:#484c49;font-family:DM Mono,monospace;font-size:8px;font-weight:500}.bottom-status .part-counter{margin-left:auto}.bottom-status button{padding:3px 8px;color:#777;background:transparent;border:1px solid #d6d5d0;cursor:pointer;font-size:8px}.inspector{position:relative;z-index:15;display:flex;flex-direction:column;min-width:0;background:#fbfaf6;border-left:1px solid var(--line);overflow-y:auto}.inspector-head{display:flex;align-items:end;justify-content:space-between;flex:0 0 78px;padding:0 19px 17px 21px;border-bottom:1px solid var(--line)}.inspector-head .eyebrow{color:#9a9a95}.inspector-head button{color:#979893;background:transparent;border:0;cursor:pointer;font-size:23px;font-weight:200}.empty-inspector{margin:auto;padding:40px 20px;color:#9a9c98;text-align:center}.empty-inspector .empty-cube{width:52px;height:52px;margin:0 auto 18px;color:#c1c3be;font-size:44px;line-height:52px;transform:rotate(45deg)}.empty-inspector strong{display:block;color:#5c605d;font-size:12px}.empty-inspector p{margin:8px 0 0;font-size:10px;line-height:1.7}.property-form{padding:15px 18px 22px}.hidden{display:none!important}.selected-preview{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:13px;background:#f0efe9;border:1px solid #e3e2dc}.mini-profile{width:37px;height:37px;background:linear-gradient(135deg,#d4d8d6,#8e9998);border:1px solid #a1aaa8;box-shadow:inset 0 0 0 8px #b9c0be,inset 0 0 0 11px #566260}.selected-preview small,.selected-preview strong,.selected-preview em{display:block}.selected-preview small{margin-bottom:4px;color:#a0a19c;font-family:DM Mono,monospace;font-size:6px;letter-spacing:.12em}.selected-preview strong{max-width:165px;overflow:hidden;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.selected-preview em{margin-top:3px;color:#a2a39e;font-family:DM Mono,monospace;font-size:7px;font-style:normal}.property-group{padding:14px 1px 15px;border-top:1px solid #e2e1dc}.property-group h3{margin:0 0 11px;font-size:10px}.property-group label{display:flex;align-items:center;justify-content:space-between;color:#777a77;font-size:9px}.unit-input{display:flex;align-items:center;width:151px;height:31px;background:#fff;border:1px solid #d9d8d2}.unit-input:focus-within{border-color:#8a999b}.unit-input input{width:100%;min-width:0;padding:0 8px;background:transparent;border:0;outline:0;text-align:right;font-family:DM Mono,monospace;font-size:9px}.unit-input i,.axis-fields i{padding:0 8px;color:#a3a49f;font-family:DM Mono,monospace;font-size:7px;font-style:normal}.unit-input.disabled{background:#f3f2ed}.select-field{display:block!important}.select-field select,.wide-input input{width:100%;height:32px;padding:0 9px;color:#4f5350;background:#fff;border:1px solid #d9d8d2;outline:0;font-size:9px}.select-field select:focus,.wide-input input:focus{border-color:#879799}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.two-fields label{display:block}.two-fields .unit-input{width:100%;margin-top:5px}.axis-fields{display:grid;gap:6px}.axis-fields label{display:grid;grid-template-columns:25px 1fr 28px;height:31px;background:#fff;border:1px solid #d9d8d2}.axis-fields b{display:grid;place-items:center;align-self:stretch;color:#fff;font-family:DM Mono,monospace;font-size:8px}.axis-fields b.x{background:#d96a56}.axis-fields b.y{background:#5d9870}.axis-fields b.z{background:#537fa3}.axis-fields input{min-width:0;padding:0 7px;border:0;outline:0;text-align:right;font-family:DM Mono,monospace;font-size:9px}.orientation-group{padding-bottom:10px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.segmented button{height:29px;color:#797c78;background:#f1f0eb;border:1px solid #dcdbd5;cursor:pointer;font-size:8px}.segmented button.active{color:#fff;background:#263b42;border-color:#263b42}.rot-quick-btn{height:29px;padding:0 4px;color:#3b4d53;background:#fff;border:1px solid #dcdbd5;border-radius:2px;cursor:pointer;font-size:8px;font-weight:700;transition:.15s ease}.rot-quick-btn:hover{color:#fff;background:#40565d;border-color:#40565d}.rot-quick-btn:active{transform:scale(.96)}#mannequinPoseSegmented{grid-template-columns:1fr 1fr}.tilt-preset-btn.active{color:#fff!important;background:var(--orange)!important;border-color:var(--orange)!important}.apply-button,.delete-button,.duplicate-button{width:100%;height:35px;border-radius:2px;cursor:pointer;font-size:9px}.apply-button{color:#fff;background:#263b42;border:0;font-weight:700}.apply-button:hover{background:#172a31}.part-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.delete-button,.duplicate-button{display:flex;justify-content:center;align-items:center;gap:7px;background:transparent}.delete-button{color:#b85b48;border:1px solid #e1d2cd}.duplicate-button{color:#40565d;border:1px solid #d3d8d7}.duplicate-button:hover{color:#fff;background:#40565d;border-color:#40565d}.delete-button:hover{background:#fff4f1}.delete-button svg,.duplicate-button svg{width:13px}.group-preview-icon{display:grid;place-items:center;width:37px;height:37px;color:#fff;background:#40565d;font-family:DM Mono,monospace;font-size:12px;font-weight:700;box-shadow:inset 0 -4px #0000001f}.group-property-form .property-group h3{display:flex;justify-content:space-between;align-items:center}.group-property-form .property-group h3 small{color:#9a9c97;font-size:7px;font-weight:400}.wide-input{display:block!important}.group-axis-fields{display:grid;gap:7px}.group-axis-fields label{display:grid;grid-template-columns:25px 29px minmax(0,1fr) 29px 29px;height:33px;background:#fff;border:1px solid #d9d8d2}.group-axis-fields b{display:grid;place-items:center;align-self:stretch;color:#fff;font-family:DM Mono,monospace;font-size:8px}.group-axis-fields b.x{background:#d96a56}.group-axis-fields b.y{background:#5d9870}.group-axis-fields b.z{background:#537fa3}.group-axis-fields button{padding:0;color:#747874;background:#f1f0eb;border:0;border-right:1px solid #e0dfda;border-left:1px solid #e0dfda;cursor:pointer;font-size:12px}.group-axis-fields button:hover{color:#fff;background:#40565d}.group-axis-fields input{min-width:0;padding:0 5px;border:0;outline:0;text-align:center;font-family:DM Mono,monospace;font-size:9px}.group-axis-fields i{display:grid;place-items:center;color:#a3a49f;font-family:DM Mono,monospace;font-size:7px;font-style:normal}.delta-help{margin:9px 0 0;color:#999b96;font-size:7px;line-height:1.5}.bom-card{margin-top:auto;padding:0 18px 18px;background:#fbfaf6;border-top:1px solid var(--line)}.bom-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 0 12px;background:transparent;border:0;cursor:pointer;text-align:left}.bom-head small,.bom-head strong{display:block}.bom-head small{margin-bottom:4px;color:#9a9b96;font-family:DM Mono,monospace;font-size:6px;letter-spacing:.15em}.bom-head strong{font-size:12px}.bom-head b{color:#999}.progress-meta{display:flex;justify-content:space-between;margin-bottom:7px;color:#898b87;font-size:8px}.progress-meta b{color:var(--orange);font-family:DM Mono,monospace}.progress-track{height:3px;margin-bottom:13px;background:#e6e4de}.progress-track i{display:block;width:0;height:100%;background:var(--orange);transition:width .3s}.bom-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:10px 0;border-top:1px solid #e5e4de;border-bottom:1px solid #e5e4de}.bom-stats span{color:#969792;text-align:center;font-size:7px;border-right:1px solid #e2e1db}.bom-stats span:last-child{border:0}.bom-stats b{display:block;margin-bottom:2px;color:#333735;font-family:DM Mono,monospace;font-size:11px}.bom-group-tools{display:flex;align-items:center;justify-content:space-between;height:35px;margin-top:8px}.bom-group-tools span{color:#989a95;font-family:DM Mono,monospace;font-size:7px}.bom-group-tools button{height:25px;padding:0 8px;color:#fff;background:#40565d;border:0;border-radius:2px;cursor:pointer;font-size:7px}.bom-group-tools button:disabled{color:#a3a5a1;background:#e5e4de;cursor:default}.bom-list{max-height:270px;overflow-y:auto;border-top:1px solid #deddd7;border-bottom:1px solid #deddd7;scrollbar-width:thin;scrollbar-color:#c8c8c2 transparent}.bom-group{border-bottom:1px solid #dcdad4}.bom-group:last-child{border-bottom:0}.bom-group-head{position:sticky;z-index:2;top:0;display:grid;grid-template-columns:22px minmax(0,1fr) auto auto auto auto auto;align-items:center;gap:3px;min-height:31px;padding:3px;background:#e9e8e2}.bom-group-head.ungrouped{grid-template-columns:22px minmax(0,1fr) auto auto auto;background:#f1f0eb}.bom-group-head:not(.ungrouped){cursor:pointer}.bom-group-head.selected{color:#fff;background:#40565d;box-shadow:inset 3px 0 var(--orange)}.bom-group-head.selected .bom-group-name,.bom-group-head.selected>span{color:#fff}.bom-group-head.selected .bom-group-action{color:#dfe8e6}.bom-group-name{min-width:0;line-height:24px;padding:0 4px;color:#404542;font-size:11px;font-weight:700;-webkit-user-select:none;user-select:none;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-group-head:hover .bom-group-name{color:#1c2526}.bom-group-head.selected:hover .bom-group-name{color:#fff}.bom-group-head>span{color:#999b96;font-family:DM Mono,monospace;font-size:10px}.bom-group-action{display:grid;place-items:center;width:22px;height:22px;padding:0;color:#6f7471;background:transparent;border:0;border-radius:2px;cursor:pointer;transition:.15s}.bom-group-action:hover{color:#fff;background:#40565d}.bom-group-action.locked{color:var(--orange)}.bom-group-action.locked:hover{color:#fff;background:var(--orange)}.bom-group-action.danger:hover{background:#b76552}.bom-group-action svg{width:11px;height:11px}.bom-group-toggle{display:grid;place-items:center;width:22px;height:22px;padding:0;color:#777c78;background:transparent;border:0;border-radius:2px;cursor:pointer;transition:.18s}.bom-group-toggle:hover{color:#fff;background:#687a7f}.bom-group-toggle i{display:block;font-size:10px;font-style:normal;transition:transform .18s}.bom-group.collapsed .bom-group-toggle i{transform:rotate(-90deg)}.bom-group.collapsed .bom-row,.bom-group.collapsed .bom-ungrouped-empty{display:none}.bom-ungrouped-empty{padding:7px 12px 7px 42px;color:#9fa19c;font-family:DM Mono,monospace;font-size:10px;background:#fbfbf9;border-bottom:1px solid #ebeae5}.bom-group-head.selected .bom-group-toggle{color:#dfe8e6}.bom-row{display:grid;grid-template-columns:17px 21px minmax(0,1fr) auto 22px 22px 22px;align-items:center;gap:5px;min-height:42px;padding:5px 2px 5px 6px;border-bottom:1px solid #ebeae5;cursor:pointer;transition:.15s}.bom-row:last-child{border-bottom:0}.bom-row:hover,.bom-row.selected{background:#f0efe9}.bom-row.selected{box-shadow:inset 2px 0 var(--orange)}.bom-row.is-locked{background:rgba(237,106,55,.035)}.bom-check{width:12px;height:12px;margin:0;accent-color:var(--orange);cursor:pointer}.bom-part-icon{position:relative;width:18px;height:18px;background:linear-gradient(135deg,#d5d9d7,#818c8c);border:1px solid #afb6b4;box-shadow:inset 0 0 0 4px #bac1bf,inset 0 0 0 6px #596462}.bom-part-icon.connector{background:#303b3d;border-color:#5c696b;box-shadow:none;transform:rotate(12deg)}.bom-part-icon.panel{background:rgba(117,195,203,.35);border-color:#91c1c3;box-shadow:none}.bom-row-copy{display:grid;min-width:0}.bom-row-copy strong,.bom-row-copy small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bom-row-copy strong{color:#505451;font-size:8px}.bom-row-copy small{margin-top:2px;color:#a0a19c;font-family:DM Mono,monospace;font-size:6px}.bom-row>em{color:#737672;font-family:DM Mono,monospace;font-size:7px;font-style:normal;white-space:nowrap}.bom-lock-button,.bom-copy-button,.bom-visibility-button{display:grid;place-items:center;width:22px;height:22px;padding:0;color:#8b8e89;background:transparent;border:0;border-radius:2px;cursor:pointer;transition:.15s}.bom-lock-button:hover,.bom-copy-button:hover,.bom-visibility-button:hover{color:#fff;background:#40565d}.bom-lock-button.locked{color:var(--orange)}.bom-lock-button.locked:hover{color:#fff;background:var(--orange)}.bom-lock-button svg,.bom-copy-button svg,.bom-visibility-button svg{width:11px;height:11px}.bom-row.is-hidden .bom-row-copy,.bom-row.is-hidden .bom-part-icon,.bom-row.is-hidden>em{opacity:.45}.bom-visibility-button.is-hidden,.bom-visibility-button.is-mixed{color:var(--orange);background:rgba(237,106,55,.08)}.bom-visibility-button.is-mixed{box-shadow:inset 0 -2px currentColor}.bom-visibility-button:disabled{opacity:.35;cursor:default}.bom-visibility-button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}.bom-empty{padding:20px 5px;color:#999b97;text-align:center;font-size:8px}.bom-tabs{display:flex;gap:4px;margin:12px 0 8px}.bom-tabs button{flex:1;padding:8px 4px;border:1px solid #deddd7;border-radius:3px;background:transparent;color:#737672;font-size:11px;cursor:pointer}.bom-tabs button[aria-selected=true]{background:#40565d;border-color:#40565d;color:#fff}.bom-tabs button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.bom-material-table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}.bom-material-table th{position:sticky;top:0;padding:9px 6px;background:#e9e8e2;color:#737672;font-size:10px}.bom-material-table td{padding:10px 6px;border-bottom:1px solid #ebeae5}.bom-material-table th:last-child,.bom-material-table td:last-child{text-align:right;white-space:nowrap}.bom-material-table strong,.bom-material-table small{display:block}.bom-material-table small{margin-top:4px;color:#737672;font-size:10px}.bom-download{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 0 0;color:#5f625f;background:transparent;border:0;cursor:pointer;font-size:8px}.bom-download svg{width:13px}.toast{position:fixed;z-index:100;right:24px;bottom:24px;display:flex;align-items:center;gap:12px;min-width:250px;padding:13px 16px;color:#eef3f1;background:#1d3037;border-left:3px solid var(--orange);box-shadow:0 12px 40px #00000038;opacity:0;transform:translateY(20px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translateY(0)}.toast>span{display:grid;place-items:center;width:25px;height:25px;background:#395159;border-radius:50%}.toast p{margin:0}.toast strong,.toast small{display:block}.toast strong{font-size:10px}.toast small{margin-top:3px;color:#8fa0a5;font-size:8px}@media (max-width: 1350px){.top-actions .text-button span{display:none}}@media (max-width: 1180px){:root{--sidebar: 250px;--inspector: 260px}.part-card{grid-template-columns:50px 1fr 22px;padding-left:3px}}@media (max-width: 900px){.studio-shell{grid-template-columns:minmax(0,1fr) 260px}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;transform:translate(-100%);box-shadow:15px 0 40px #0003}.sidebar.open{transform:translate(0)}.workspace{grid-column:1}.inspector{grid-column:2}.mobile-menu{display:block}}@media (max-width: 680px){.studio-shell{display:block}.workspace{height:100vh;grid-template-rows:64px minmax(0,1fr)}.topbar{padding:0 10px}.project-title input{width:120px}.saved-state,.divider,.top-actions .text-button{display:none}.top-actions .new-project-button{display:flex;width:36px;padding:0}.top-actions .new-project-button span{display:none}.inspector{position:fixed;z-index:30;left:0;right:0;bottom:0;max-height:58vh;transform:translateY(calc(100% - 78px));transition:transform .25s;box-shadow:0 -10px 40px #0000001f}.inspector.open{transform:translateY(0)}.scene-hint,.axis-widget{display:none}.bottom-status{gap:10px}.bottom-status>span:nth-child(2),.part-counter{display:none}}.project-title-badge{background:transparent;border:0;padding:0;font-family:inherit;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--muted);cursor:pointer;transition:color .15s ease}.project-title-badge:hover{color:var(--orange)}.project-manager-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.project-manager-modal[hidden]{display:none}.pm-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(19,37,44,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pm-dialog{position:relative;z-index:1;width:100%;max-width:620px;max-height:85vh;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px #00000040;border-radius:4px;overflow:hidden}.pm-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 28px 18px;border-bottom:1px solid var(--line);background:#faf9f5}.pm-header h3{margin:0 0 6px;font-size:19px;font-weight:800;color:var(--navy)}.pm-header p{margin:0;font-size:12px;color:var(--muted)}.pm-close{background:transparent;border:0;font-size:18px;color:var(--muted);cursor:pointer;padding:4px;line-height:1;transition:color .15s}.pm-close:hover{color:var(--navy)}.pm-body{padding:20px 28px 28px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.pm-actions-bar{display:flex;gap:10px;flex-wrap:wrap}.pm-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border:1px solid #d4d8d8;background:#fff;color:var(--navy);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;border-radius:3px;transition:.15s ease}.pm-btn:hover{border-color:var(--navy);background:#f4f3ee}.pm-btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.pm-btn.primary:hover{background:var(--orange);border-color:var(--orange)}.pm-btn svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}.pm-project-list{display:flex;flex-direction:column;gap:10px;min-height:120px}.pm-card{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#faf9f6;border:1px solid var(--line);border-radius:3px;transition:border-color .15s,background .15s}.pm-card:hover{border-color:#adb7b9;background:#fff}.pm-card-info h4{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--navy)}.pm-card-info small{display:flex;gap:12px;color:var(--muted);font-size:11px}.pm-card-actions{display:flex;align-items:center;gap:8px}.pm-card-load{height:32px;padding:0 14px;background:var(--navy);color:#fff;border:0;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer;border-radius:2px;transition:background .15s}.pm-card-load:hover{background:var(--orange)}.pm-card-del{height:32px;padding:0 10px;background:transparent;color:#889396;border:1px solid transparent;font-family:inherit;font-size:11px;cursor:pointer;border-radius:2px;transition:color .15s,border-color .15s}.pm-card-del:hover{color:#c93b2b;border-color:#f1cfc9;background:#fff2f0}.pm-card-rename-btn:hover{color:var(--navy)!important;background:#eef2f3!important}.pm-empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:13px;background:#faf9f6;border:1px dashed var(--line);margin:0}
