:root{color:var(--text);background:#e7e3d9;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #191916;--text: #191916;--muted: #77756e;--line: #d7d2c7;--paper: #f5f2ea;--canvas: #e5e1d7;--accent: #ef6535}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}button,input,textarea{color:inherit;font:inherit}button{border:0;cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.35}.app-shell{display:grid;grid-template-rows:68px minmax(0,1fr);width:100%;height:100%;min-height:0;background:var(--canvas);animation:shell-in .42s cubic-bezier(.22,1,.36,1) both}.app-shell.app-shell--preview{grid-template-rows:minmax(0,1fr)}.app-shell--preview>.topbar{display:none}@keyframes shell-in{0%{opacity:0;transform:scale(.994)}to{opacity:1;transform:scale(1)}}.topbar{z-index:20;display:grid;grid-template-columns:310px minmax(220px,1fr) auto;align-items:center;border-bottom:1px solid #cfcbc1;background:var(--paper);transition:grid-template-columns .22s cubic-bezier(.22,1,.36,1)}.brand-lockup{display:flex;align-items:center;gap:12px;height:100%;padding:0 20px;border-right:1px solid var(--line)}.brand-lockup strong{display:block;font-size:15px;font-weight:800;letter-spacing:.16em;line-height:1}.brand-lockup small{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.brand-mark{display:block;flex:0 0 auto;width:32px;height:32px;border-radius:9px;object-fit:contain}.project-name{justify-self:center;display:flex;align-items:center;gap:12px}.project-name input{width:min(34vw,360px);padding:5px 7px;border:0;border-bottom:1px solid transparent;background:transparent;font-size:14px;font-weight:660;text-align:center}.project-name input:hover,.project-name input:focus{border-bottom-color:var(--line)}.project-name span{display:flex;align-items:center;gap:6px;color:#88857c;font-size:10px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.project-name .save-dot{width:6px;height:6px;border-radius:50%;background:#72846b;box-shadow:0 0 0 3px #72846b1f}.top-actions{display:flex;align-items:center;gap:5px;padding-right:16px}.workflow-actions{display:flex;align-items:center;gap:3px}.workflow-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:34px;height:34px;padding:0 10px;border-radius:7px;color:#65625c;background:transparent;font-size:9px;font-weight:760;letter-spacing:.02em;transition:background .15s ease,color .15s ease,transform .15s ease}.workflow-button:hover{color:var(--text);background:#e9e5dc}.workflow-button:active{transform:scale(.97)}.workflow-button.is-active{color:#fbf7ef;background:#292924}.workflow-button--preview{color:#fff8f1;background:var(--accent)}.workflow-button--preview:hover{color:#fff;background:#d9572d}.workflow-button:disabled{color:#aaa79f;background:transparent;cursor:not-allowed}.workflow-button>em{display:grid;place-items:center;min-width:14px;height:14px;padding:0 3px;border-radius:7px;color:#fff;background:#827d71;font-size:7px;font-style:normal;letter-spacing:0}.workflow-button.has-error>em{background:var(--accent)}.workflow-button.has-warning>em{background:#9a7132}.workflow-button--smart svg{color:var(--accent)}.workflow-button--smart.is-active svg{color:#ffb08f}.icon-button,.text-button,.examples-button{display:inline-grid;place-items:center;min-width:34px;height:34px;border-radius:7px;background:transparent;transition:background .15s ease,color .15s ease,transform .15s ease}.icon-button:hover,.text-button:hover,.examples-button:hover{background:#e9e5dc}.icon-button:active,.text-button:active,.examples-button:active{transform:scale(.96)}.examples-button{grid-auto-flow:column;gap:7px;padding:0 9px;color:#5d5b55;font-size:10px;font-weight:750}.nav-save-button.is-saved{color:#52684e;background:#e5ebe0}.clear-plan-button:hover{color:#a2462c;background:#f5e4dc}.text-button{padding:0 10px;color:#5d5b55;font-size:11px;font-weight:700}.text-button--danger:hover{color:#a2462c;background:#f5e4dc}.top-divider{width:1px;height:18px;margin:0 3px;background:var(--line)}.workspace{position:relative;display:grid;grid-template-columns:310px minmax(0,1fr) 340px;min-height:0;overflow:hidden;transition:grid-template-columns .22s cubic-bezier(.22,1,.36,1)}.workspace.workspace--preview{grid-template-columns:minmax(0,1fr)}.workspace.workspace--preview>.parts-panel,.workspace.workspace--preview>.inspector,.workspace.workspace--preview>.mobile-dock{display:none}.workspace--preview>.viewport{grid-column:1}.parts-panel,.inspector{z-index:10;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--paper)}.parts-panel{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 20px 17px}.panel-heading__actions{display:flex;align-items:center;gap:3px}.panel-collapse,.collapsed-parts-rail button{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:transparent;color:#77746d}.panel-collapse:hover,.collapsed-parts-rail button:hover{background:#e9e5dc;color:var(--text)}.panel-collapse svg,.collapsed-parts-rail svg{width:17px;height:17px}.collapsed-parts-rail{display:none}.app-shell--parts-collapsed .topbar{grid-template-columns:56px minmax(220px,1fr) auto}.app-shell--parts-collapsed .brand-lockup{justify-content:center;padding:0}.app-shell--parts-collapsed .brand-lockup>div{display:none}.workspace.workspace--parts-collapsed{grid-template-columns:56px minmax(0,1fr) 340px}.workspace--parts-collapsed .parts-panel>:not(.collapsed-parts-rail){display:none}.workspace--parts-collapsed .collapsed-parts-rail{display:flex;flex:1;flex-direction:column;align-items:center;gap:18px;padding-top:14px}.collapsed-parts-rail span{color:#89867e;font-size:8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl}.panel-heading p,.section-title p,.help-dialog>p{margin:0 0 6px;color:#8c8980;font-size:9px;font-weight:800;letter-spacing:.16em}.panel-heading h1,.panel-heading h2{margin:0;font-size:18px;font-weight:690;letter-spacing:-.025em}.mobile-close{display:none;padding:5px;background:transparent}.search-field{display:flex;align-items:center;gap:9px;height:38px;margin:0 14px 12px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#fbf9f4;color:#88857d;transition:border-color .16s ease,box-shadow .16s ease}.search-field:focus-within{border-color:#aaa59a;box-shadow:0 0 0 3px #3c39330d}.search-field input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:12px}.search-field button{display:grid;place-items:center;padding:3px;background:transparent;color:#8b8880}.category-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 14px 12px}.category-tabs button{min-width:0;padding:7px 4px;border-radius:6px;background:transparent;color:#85827a;font-size:9px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.category-tabs button:hover{background:#ebe7de}.category-tabs button.is-active{color:#f8f5ed;background:var(--ink)}.parts-list{flex:1;min-height:0;padding:0 10px 16px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#c8c3b7 transparent;scrollbar-width:thin}.part-row,.part-family{position:relative;border-bottom:1px solid #e2ded4;animation:row-in .36s cubic-bezier(.22,1,.36,1) both;animation-delay:min(calc(var(--part-index) * 18ms),.28s)}.part-row{display:grid;grid-template-columns:52px minmax(0,1fr) 30px;align-items:center;gap:10px;min-height:64px;padding:7px 6px;cursor:grab}@keyframes row-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.part-row:hover{background:#eeebe3}.part-family{padding:9px 6px 11px;transition:background .15s ease}.part-family:hover{background:#eeebe3}.part-family__summary{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px}.part-family__visual{width:58px;height:54px}.part-variants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:8px 0 0 68px}.part-variant{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;min-width:0;height:29px;padding:0 7px 0 9px;border:1px solid #dad5ca;border-radius:6px;color:#5f5d56;background:#e9e5dc;cursor:grab;transition:color .14s ease,background .14s ease,border-color .14s ease,transform .14s ease}.part-variant span{overflow:hidden;font-size:9px;font-weight:750;text-align:left;text-overflow:ellipsis;white-space:nowrap}.part-variant em{display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;color:#fff8f2;background:var(--accent);font-size:8px;font-style:normal;font-weight:800}.part-variant:hover,.part-variant:focus-visible{border-color:var(--ink);color:#f8f5ed;background:var(--ink);transform:translateY(-1px)}.part-variant:active{cursor:grabbing;transform:translateY(0) scale(.98)}.part-row:active{cursor:grabbing}.part-row__visual,.selected-title__glyph{position:relative;display:grid;place-items:center;width:52px;height:48px;border-radius:8px;background:#e5e1d7;color:#34342f;overflow:hidden}.part-preview-image{width:100%;height:100%;padding:2px;object-fit:contain;filter:drop-shadow(0 3px 3px rgb(44 40 34 / 16%));transform:scale(1.02);transition:filter .16s ease,transform .18s cubic-bezier(.22,1,.36,1)}.part-row:hover .part-preview-image,.part-family:hover .part-preview-image{filter:drop-shadow(0 4px 5px rgb(44 40 34 / 22%));transform:scale(1.09)}.part-count-badge{position:absolute;top:4px;right:4px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:2px solid #e5e1d7;border-radius:9px;color:#fff8f2;background:var(--accent);font-size:7.5px;font-weight:850;line-height:1}.part-glyph{width:42px;height:42px;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.part-glyph .glyph-cut{fill:#e5e1d7;stroke:none}.part-row__copy{min-width:0}.part-row__copy strong{display:block;overflow:hidden;font-size:11px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.part-row__copy span{display:block;margin-top:4px;overflow:hidden;color:#8b8880;font-size:9.5px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.part-row>button,.bom-row>button{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:transparent;color:#706e67;opacity:0;transition:opacity .14s ease,background .14s ease,color .14s ease}.part-row:hover>button,.part-row>button:focus-visible,.bom-row:hover>button,.bom-row>button:focus-visible{opacity:1}.part-row>button:hover,.bom-row>button:hover{color:#fff;background:var(--accent)}.no-results,.bom-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:180px;color:#8b8880;font-size:11px;text-align:center}.no-results button{padding:7px 10px;border-radius:6px;background:#e5e1d7;font-size:10px;font-weight:700}.parts-footer{display:flex;align-items:center;gap:7px;padding:13px 16px;border-top:1px solid var(--line);color:#88857d;font-size:9px}.viewport{position:relative;min-width:0;min-height:0;overflow:hidden;background:var(--canvas)}.viewport:after{position:absolute;z-index:5;inset:13px;border:2px dashed transparent;border-radius:12px;content:"";pointer-events:none;transition:border-color .16s ease,background .16s ease}.viewport--drop-ready:after{border-color:var(--accent);background:#ef65350a}.viewport canvas{display:block;width:100%;height:100%;transition:filter .18s ease}.viewport--drop-ready canvas{filter:saturate(.8) brightness(1.02)}.scene-canvas{position:relative!important;z-index:1}.reference-image-layer{position:absolute;z-index:0;inset:0;overflow:hidden;background:var(--canvas);pointer-events:none}.reference-image-layer img{width:100%;height:100%;object-fit:contain;transform-origin:center;filter:saturate(.9) contrast(.96);transition:opacity .12s ease,transform .12s ease;-webkit-user-select:none;user-select:none}.marquee-selection{position:absolute;z-index:6;border:1px solid var(--accent);border-radius:3px;background:#ef653524;box-shadow:0 0 0 1px #ffffff59 inset;pointer-events:none}.viewport-toolbar{position:absolute;z-index:8;top:16px;left:50%;display:flex;align-items:center;gap:5px;height:38px;padding:4px;border:1px solid rgb(86 83 75 / 15%);border-radius:9px;background:#f7f4ece8;box-shadow:0 8px 24px #302b2314;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translate(-50%)}.view-switcher{display:flex;align-items:center}.view-switcher button,.tool-button{height:28px;border-radius:6px;background:transparent;color:#77746d;font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.tool-button--preview{color:#fff8f1;background:var(--accent)}.tool-button--preview:hover{color:#fff;background:#d9572d}.tool-button--preview:disabled{color:#8b8880;background:transparent}.viewport--preview{background:#d6d0c5;animation:preview-canvas-in .32s cubic-bezier(.22,1,.36,1) both}@keyframes preview-canvas-in{0%{opacity:.82;filter:saturate(.8)}to{opacity:1;filter:saturate(1)}}.viewport--preview:after,.viewport--preview .viewport-toolbar,.viewport--preview .reference-controls,.viewport--preview .reference-error,.viewport--preview .grab-feedback,.viewport--preview .attach-feedback,.viewport--preview .fit-feedback,.viewport--preview .marquee-selection,.viewport--preview .selection-toolbar,.viewport--preview .viewport-status,.viewport--preview .empty-state{display:none}.viewport--preview canvas{cursor:grab}.viewport--preview canvas:active{cursor:grabbing}.preview-header{position:absolute;z-index:12;top:20px;right:22px;left:22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;pointer-events:none;animation:preview-header-in .32s 80ms cubic-bezier(.22,1,.36,1) both}@keyframes preview-header-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.preview-header button,.preview-title,.preview-controls{border:1px solid rgb(255 255 255 / 13%);color:#f4f2eb;background:#1c1d1ade;box-shadow:0 12px 34px #221d172e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.preview-header button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border-radius:9px;font-size:10px;font-weight:750;pointer-events:auto;transition:background .15s ease,transform .15s ease}.preview-header button:hover{background:#2c2d29f0;transform:translateY(-1px)}.preview-back{justify-self:start}.preview-back kbd{margin-left:3px;padding:3px 5px;border:1px solid #555750;border-radius:4px;color:#bdbbb3;font:700 7px/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase}.preview-title{display:flex;min-width:220px;flex-direction:column;align-items:center;gap:3px;padding:8px 18px;border-radius:10px;text-align:center}.preview-title span{display:flex;align-items:center;gap:5px;color:#aaa9a2;font-size:7.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.preview-title strong{max-width:min(36vw,420px);overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.preview-actions{justify-self:end;display:flex;gap:6px;pointer-events:auto}.preview-actions .preview-save{border-color:#ef653599;background:var(--accent)}.preview-actions .preview-save:hover{background:#d9572d}.preview-controls{position:absolute;z-index:12;bottom:22px;left:50%;display:flex;align-items:center;gap:7px;max-width:calc(100% - 28px);min-height:48px;padding:5px;border-radius:11px;transform:translate(-50%);animation:preview-controls-in .34s .14s cubic-bezier(.22,1,.36,1) both}@keyframes preview-controls-in{0%{opacity:0;transform:translate(-50%,9px)}to{opacity:1;transform:translate(-50%)}}.preview-environments,.preview-room-options{display:flex;align-items:center;gap:3px}.preview-environments button,.preview-peg-toggle{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 10px;border-radius:7px;color:#bdbbb3;background:transparent;font-size:9px;font-weight:750;white-space:nowrap;transition:color .14s ease,background .14s ease}.preview-environments button:hover,.preview-peg-toggle:hover{color:#f5f3ec;background:#3b3c37}.preview-environments button.is-active,.preview-peg-toggle.is-active{color:#171815;background:#f0eee7}.preview-environments button:disabled{opacity:.32}.environment-swatch{display:block;width:12px;height:12px;border:1px solid rgb(255 255 255 / 24%);border-radius:3px;background:#cac4ba}.environment-swatch--wall{background:linear-gradient(135deg,#e0dbd1 0 70%,#aa9c8b 71%)}.environment-swatch--desk{background:linear-gradient(#ded8ce 0 55%,#98795f 56% 72%,#34352f 73%)}.environment-swatch--photo{background:linear-gradient(135deg,#7891a1,#d8b68e 55%,#59694f)}.preview-room-options{padding-left:7px;border-left:1px solid #4a4b46}.preview-color-control{display:flex;align-items:center;gap:6px;height:36px;padding:0 7px;color:#aaa9a2;font-size:8px;font-weight:700}.preview-color-control input{width:22px;height:22px;padding:2px;border:1px solid #585a53;border-radius:6px;background:#30312d;cursor:pointer}.preview-gap-control{display:grid;grid-template-columns:auto 88px auto;align-items:center;gap:7px;height:36px;padding:0 7px;color:#aaa9a2;font-size:8px;font-weight:700;white-space:nowrap}.preview-gap-control input{width:88px;accent-color:var(--accent)}.preview-gap-control strong{min-width:45px;color:#f0eee7;font:700 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.preview-peg-toggle{border-left:1px solid #4a4b46;border-radius:0 7px 7px 0}.view-switcher button{padding:0 9px}.view-switcher button:hover,.tool-button:hover{background:#e7e3da}.view-switcher button.is-active,.tool-button.is-active{color:#fbf7ef;background:#292924}.toolbar-divider{width:1px;height:18px;margin:0 2px;background:#d6d1c6}.tool-button{display:flex;align-items:center;gap:5px;padding:0 8px}.tool-button--icon{justify-content:center;width:28px;padding:0}.viewport-toolbar [data-tooltip]:after{position:absolute;top:calc(100% + 9px);left:50%;z-index:20;padding:6px 8px;border:1px solid rgb(255 255 255 / 11%);border-radius:6px;color:#f5f2ea;background:#23231ff0;box-shadow:0 7px 20px #231f1929;content:attr(data-tooltip);font-size:8px;font-weight:700;letter-spacing:0;line-height:1;opacity:0;pointer-events:none;text-transform:none;transform:translate(-50%,-3px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.viewport-toolbar [data-tooltip]:hover:after,.viewport-toolbar [data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}.reference-controls{position:absolute;z-index:10;top:64px;left:50%;width:min(350px,calc(100% - 24px));padding:12px;border:1px solid rgb(86 83 75 / 16%);border-radius:10px;background:#f7f4ecf5;box-shadow:0 14px 40px #302b2326;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%);animation:fit-feedback-in .15s ease-out both}.reference-controls header{display:grid;grid-template-columns:42px minmax(0,1fr) 28px;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid var(--line)}.reference-controls header>img{width:42px;height:34px;border-radius:6px;object-fit:cover}.reference-controls header>div{display:flex;min-width:0;flex-direction:column;gap:2px}.reference-controls header strong{font-size:11px}.reference-controls header span{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.reference-controls header button,.reference-actions button{display:flex;align-items:center;justify-content:center;border-radius:6px;color:#66635d;background:#e9e5dc}.reference-controls header button{width:28px;height:28px}.reference-slider{display:grid;gap:5px;margin-top:10px}.reference-slider>span{display:flex;align-items:center;justify-content:space-between;color:#74716a;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.reference-slider>span strong{color:var(--text);font:700 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.reference-slider input{width:100%;height:3px;accent-color:var(--accent);cursor:pointer}.reference-position-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reference-actions{display:grid;grid-template-columns:1fr 1fr 1fr 34px;gap:6px;margin-top:13px}.reference-actions button{gap:5px;min-height:31px;padding:0 8px;font-size:9px;font-weight:750}.reference-actions button:hover,.reference-controls header button:hover{background:#ddd8ce}.reference-actions .reference-remove:hover{color:#fff7f2;background:var(--accent)}.reference-controls>p{margin:10px 2px 0;color:var(--muted);font-size:8px;line-height:1.45}.reference-error{position:absolute;z-index:11;top:64px;right:16px;max-width:280px;padding:8px 10px;border-radius:7px;color:#fff9f5;background:#a8482f;box-shadow:0 8px 24px #302b2329;font-size:9px;font-weight:700}.fit-feedback{position:absolute;z-index:9;top:64px;left:50%;padding:7px 10px;border:1px solid rgb(63 61 55 / 13%);border-radius:7px;color:#f9f6ee;background:#34352f;box-shadow:0 8px 24px #302b2321;font-size:9px;font-weight:800;letter-spacing:.02em;pointer-events:none;transform:translate(-50%);animation:fit-feedback-in .15s ease-out both}.grab-feedback{position:absolute;z-index:9;top:64px;left:50%;display:flex;align-items:center;gap:7px;min-height:31px;padding:5px 7px 5px 10px;border:1px solid rgb(63 61 55 / 13%);border-radius:8px;color:#5e5c56;background:#f8f5edf0;box-shadow:0 8px 24px #302b231c;font-size:8.5px;pointer-events:none;transform:translate(-50%);animation:fit-feedback-in .15s ease-out both}.grab-feedback svg{color:var(--accent)}.grab-feedback strong{font-size:9px}.grab-feedback span{color:#88857d;font-weight:650}.grab-feedback kbd{min-width:27px;padding:3px 5px;border:1px solid #d8d3c8;border-radius:5px;color:#78756e;background:#ebe7de;font:700 7px/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center;text-transform:uppercase}.grab-feedback.is-dragging{color:#f9f6ee;background:#34352f}.grab-feedback.is-dragging span,.grab-feedback.is-dragging kbd{color:#d8d5cd}.attach-feedback{position:absolute;z-index:9;top:64px;left:50%;display:flex;align-items:center;gap:9px;min-height:40px;padding:6px 8px 6px 11px;border:1px solid rgb(63 61 55 / 13%);border-radius:9px;color:#5e5c56;background:#f8f5edf2;box-shadow:0 9px 28px #302b231f;pointer-events:none;transform:translate(-50%);animation:fit-feedback-in .15s ease-out both}.attach-feedback>svg{color:var(--accent)}.attach-feedback>div{display:grid;gap:2px}.attach-feedback strong{font-size:9px}.attach-feedback span{color:#88857d;font-size:8px;font-weight:650}.attach-feedback kbd{min-width:27px;padding:3px 5px;border:1px solid #d8d3c8;border-radius:5px;color:#78756e;background:#ebe7de;font:700 7px/1 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center;text-transform:uppercase}.attach-feedback.is-ready{border-color:#5c845361}.attach-feedback.is-ready>svg{color:#6e9466}.attach-feedback.is-blocked{border-color:#b24b3459}.attach-feedback.is-blocked>svg{color:#b24b34}.canvas--attach-mode{cursor:crosshair}.grab-feedback.is-dragging kbd{border-color:#5a5b55;background:#454640}.viewport--grab-mode .fit-feedback{top:102px}.canvas--grab-mode{cursor:grab}.canvas--grab-dragging{cursor:grabbing}.canvas--marquee-mode{cursor:crosshair}.fit-feedback--snapped{background:#566d52}.fit-feedback--adjusted{background:#6a6250}.fit-feedback--blocked{background:var(--accent)}@keyframes fit-feedback-in{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.viewport-status{position:absolute;z-index:7;right:17px;bottom:16px;left:17px;display:flex;align-items:center;gap:17px;color:#6f6c65;font-size:9px;font-weight:700;pointer-events:none}.viewport-status>span+span:before{display:inline-block;width:3px;height:3px;margin:0 9px 2px 0;border-radius:50%;background:#98958d;content:""}.viewport-status button{display:flex;align-items:center;gap:5px;margin-left:auto;padding:6px 8px;border-radius:6px;background:#f7f4ecb8;color:#68665f;font-size:9px;font-weight:700;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.empty-state{position:absolute;z-index:6;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;width:280px;text-align:center;transform:translate(-50%,-50%)}.empty-state>span{display:grid;place-items:center;width:52px;height:52px;margin-bottom:15px;border:1px solid #c8c3b8;border-radius:15px;color:#615f58;background:#f5f2ea9e}.empty-state p{margin:0 0 5px;color:#817e76;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.empty-state h2{margin:0 0 16px;font-size:19px;letter-spacing:-.03em}.empty-state button,.dialog-primary{display:flex;align-items:center;gap:6px;padding:10px 13px;border-radius:7px;color:#fff;background:var(--ink);font-size:10px;font-weight:750;transition:transform .14s ease,background .14s ease}.empty-state button:hover,.dialog-primary:hover{background:var(--accent);transform:translateY(-1px)}.plans-dialog{display:flex;flex-direction:column;width:min(620px,100%);max-height:min(720px,calc(100vh - 40px))}.save-current-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px;padding:15px;border:1px solid var(--line);border-radius:9px;background:#ebe7de}.save-current-row strong,.save-current-row span,.saved-plan-row strong,.saved-plan-row span{display:block}.save-current-row strong,.saved-plan-row strong{font-size:11px}.save-current-row span,.saved-plan-row span{margin-top:4px;color:#88857d;font-size:8.5px}.save-current-row button{display:flex;flex:0 0 auto;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:7px;color:#fff;background:var(--ink);font-size:9px;font-weight:750}.save-current-row button:hover{background:var(--accent)}.saved-plans-list{min-height:160px;margin-top:12px;overflow-y:auto;scrollbar-width:thin}.saved-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto 30px 30px;align-items:center;gap:9px;min-height:59px;border-top:1px solid var(--line)}.saved-plan-row:last-child{border-bottom:1px solid var(--line)}.restore-plan{height:29px;padding:0 10px;border-radius:6px;background:#e6e2d9;color:#5f5c56;font-size:8.5px;font-weight:750}.restore-plan:hover{color:#fff;background:var(--accent)}.duplicate-plan,.delete-plan{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:transparent;color:#8f8c84}.duplicate-plan:hover{color:var(--text);background:#e6e2d9}.delete-plan:hover{color:#ac492e;background:#f4e1d9}.saved-plans-empty{display:flex;min-height:160px;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#8a877f;text-align:center}.saved-plans-empty strong{color:var(--text);font-size:10px}.saved-plans-empty span{font-size:8.5px}.plans-footer{padding-top:13px;color:#8e8b83;font-size:8.5px;text-align:center}.help-dialog.examples-dialog{display:flex;width:min(900px,100%);max-height:min(760px,calc(100vh - 40px));flex-direction:column;overflow:hidden}.help-dialog.examples-dialog h2{max-width:none}.examples-lede{max-width:530px;margin:9px 0 24px;color:var(--muted);font-size:10px;line-height:1.5}.examples-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;min-height:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.example-stage{min-width:0;padding:18px 22px 18px 0;border-right:1px solid var(--line)}.example-stage__scene{position:relative;height:310px;border-radius:10px;overflow:hidden;background:#e3ded4}.example-preview-canvas{pointer-events:none}.example-preview-loader{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:7px;color:var(--muted);background:#f5f2ead1;font-size:8px;font-weight:750;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.example-preview-loader .model-loader__ring{width:17px;height:17px}.example-stage__eyebrow{position:absolute;z-index:2;top:14px;left:14px;padding:6px 8px;border-radius:6px;color:#f7f3e9;background:#191916e0;font-size:8px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.example-stage__copy{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-top:15px}.example-stage__copy>div:first-child{max-width:330px}.example-stage__copy strong{font-size:14px}.example-stage__copy p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.example-metrics{display:flex;flex:0 0 auto;align-items:center;gap:13px}.example-metrics span{color:var(--muted);font-size:7.5px;white-space:nowrap}.example-metrics span+span{padding-left:13px;border-left:1px solid var(--line)}.example-metrics strong{display:block;margin-bottom:3px;color:var(--text);font-size:10px}.example-list{display:flex;min-height:0;flex-direction:column;overflow-y:auto;padding:8px 0 8px 18px;scrollbar-color:#aaa69d transparent;scrollbar-width:thin}.example-list button{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;min-height:63px;padding:8px 10px;border-bottom:1px solid var(--line);color:var(--muted);background:transparent;text-align:left;transition:color .15s ease,background .15s ease,transform .15s ease}.example-list button:last-child{border-bottom:0}.example-list button:hover{color:var(--text);background:#ebe7de;transform:translate(-2px)}.example-list button:before{position:absolute;top:10px;bottom:10px;left:-18px;width:3px;border-radius:3px;background:var(--accent);content:"";opacity:0;transform:scaleY(.45);transition:opacity .15s ease,transform .18s cubic-bezier(.22,1,.36,1)}.example-list button.is-active{color:var(--text)}.example-list button.is-active:before{opacity:1;transform:scaleY(1)}.example-list button>span{color:#aaa69d;font-size:8px;font-weight:750}.example-list button strong,.example-list button small{display:block}.example-list button strong{font-size:10px}.example-list button small{margin-top:4px;color:#97948c;font-size:8px}.examples-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:17px}.examples-actions>span{color:var(--muted);font-size:8.5px}.examples-actions .dialog-primary{flex:0 0 auto}.examples-use-arrow{transform:rotate(180deg)}.help-dialog.smart-builder-dialog{display:flex;width:min(1060px,100%);max-height:min(860px,calc(100vh - 32px));flex-direction:column;overflow:hidden}.smart-builder-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-right:42px}.smart-builder-heading p{margin:0 0 7px;color:#8c8980;font-size:9px;font-weight:800;letter-spacing:.16em}.smart-builder-heading h2{max-width:none}.smart-builder-heading>span{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;margin-top:4px;padding:6px 8px;border-radius:999px;color:#596553;background:#e4e9df;font-size:8px;font-weight:760}.smart-builder-heading>span svg{color:var(--accent)}.smart-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;width:min(430px,100%);margin-top:17px;padding:3px;border:1px solid #d7d1c5;border-radius:9px;background:#e9e5dc}.smart-mode-switch button{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:6px;color:#858178;text-align:left;transition:color .14s ease,background .14s ease,box-shadow .14s ease}.smart-mode-switch button:hover{color:var(--text)}.smart-mode-switch button.is-active{color:var(--text);background:#fffdf8;box-shadow:0 1px 4px #1a191614}.smart-mode-switch span{font-size:9px;font-weight:800;white-space:nowrap}.smart-mode-switch small{overflow:hidden;color:var(--muted);font-size:8px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.smart-build-context{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted)}.smart-build-context>span{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:#8b8d84}.smart-build-context[data-mode=edit]>span{background:var(--accent);box-shadow:0 0 0 3px #f064351c}.smart-build-context>div{display:flex;min-width:0;align-items:baseline;gap:7px}.smart-build-context strong{color:var(--text);font-size:8px}.smart-build-context small{overflow:hidden;font-size:7.5px;text-overflow:ellipsis;white-space:nowrap}.smart-prompt{margin-top:13px}.smart-prompt>label{display:block;margin:0 0 7px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.smart-prompt__field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border:1px solid #cfc9bd;border-radius:9px;overflow:hidden;background:#fffdf8;transition:border-color .15s ease,box-shadow .15s ease}.smart-prompt__field:focus-within{border-color:#9f9b91;box-shadow:0 0 0 3px #ef65351a}.smart-prompt__field textarea{min-height:68px;padding:12px 14px;border:0;outline:0;resize:none;color:var(--text);background:transparent;font-size:12px;font-weight:580;line-height:1.5}.smart-prompt__field button{display:inline-flex;align-items:center;gap:7px;margin:7px;padding:0 14px;border-radius:7px;color:#fff;background:var(--ink);font-size:9px;font-weight:780;white-space:nowrap;transition:background .15s ease,transform .15s ease}.smart-prompt__field button:hover:not(:disabled){background:var(--accent);transform:translate(1px)}.smart-suggestions{display:flex;align-items:center;gap:6px;margin-top:8px;overflow-x:auto;scrollbar-width:none}.smart-suggestions::-webkit-scrollbar{display:none}.smart-suggestions>span{flex:0 0 auto;color:#aaa69d;font-size:7.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.smart-suggestions button{flex:0 0 auto;padding:5px 7px;border-radius:5px;color:#77746d;background:#eae6dd;font-size:7.5px;transition:color .14s ease,background .14s ease}.smart-suggestions button:hover{color:var(--text);background:#dfdbd1}.smart-facts{display:flex;gap:1px;margin-top:15px;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--line);scrollbar-width:none}.smart-facts::-webkit-scrollbar{display:none}.smart-facts>div{position:relative;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;min-width:124px;flex:1 0 auto;gap:2px 8px;padding:9px 11px;background:var(--paper)}.smart-facts span{grid-column:1;color:var(--muted);font-size:7px;font-weight:760;text-transform:uppercase}.smart-facts strong{grid-column:1;font-size:10px}.smart-facts small{grid-column:2;grid-row:1 / 3;align-self:center;padding:3px 5px;border-radius:999px;color:#60705b;background:#e4e9df;font-size:6.5px;font-weight:850;text-transform:uppercase}.smart-facts [data-source=assumed] small{color:#8a6630;background:#eee6d8}.smart-results{display:grid;grid-template-columns:minmax(0,1fr) 255px;min-height:0;margin-top:15px;border-block:1px solid var(--line)}.smart-stage{min-width:0;padding:16px 20px 14px 0;border-right:1px solid var(--line);overflow-y:auto}.smart-stage__scene{position:relative;height:250px;border-radius:9px;overflow:hidden;background:#e3ded4}.smart-stage__eyebrow,.smart-stage__match{position:absolute;z-index:2;top:12px;padding:6px 8px;border-radius:6px;color:#f7f3e9;background:#191916db;font-size:7px;font-weight:820;letter-spacing:.09em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.smart-stage__eyebrow{left:12px}.smart-stage__match{right:12px;color:#ffe1d2}.smart-stage__legend,.smart-stage__check{position:absolute;z-index:2;bottom:11px;display:flex;align-items:center;border-radius:6px;color:#e8e4da;background:#191916c7;font-size:7px;font-weight:760;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.smart-stage__legend{left:11px;gap:9px;padding:6px 8px}.smart-stage__legend span,.smart-stage__check{gap:4px}.smart-stage__legend span{display:inline-flex;align-items:center}.smart-stage__legend i{width:7px;height:7px;border:1px solid rgb(255 255 255 / 25%);border-radius:2px;background:#918f88}.smart-stage__legend i.is-added{background:#f06435}.smart-stage__legend i.is-removed{background:#a85443;opacity:.5}.smart-stage__check{right:11px;padding:6px 8px}.smart-stage__check.is-ready svg{color:#a8c69e}.smart-stage__check.has-review svg{color:#e2bb79}.smart-stage__summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-top:13px}.smart-stage__summary>div:first-child{max-width:390px}.smart-stage__summary>div:first-child>strong{font-size:13px}.smart-stage__summary p{margin:4px 0 0;color:var(--muted);font-size:8.5px;line-height:1.45}.smart-stage__metrics{display:flex;flex:0 0 auto;align-items:center;gap:10px}.smart-stage__metrics span{color:var(--muted);font-size:7px;white-space:nowrap}.smart-stage__metrics span+span{padding-left:10px;border-left:1px solid var(--line)}.smart-stage__metrics strong{display:block;margin-bottom:2px;color:var(--text);font-size:9px}.smart-change-summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:10px;padding:8px 10px;border-left:2px solid var(--accent);color:var(--muted);background:#f064350f;font-size:7.5px}.smart-change-summary strong{color:var(--text);font-size:8px}.smart-stage__notes{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.smart-stage__notes span{display:flex;align-items:flex-start;gap:6px;color:#6f6c64;font-size:7.5px;line-height:1.4}.smart-stage__notes svg{flex:0 0 auto;color:#698064}.smart-stage__notes .has-review svg{color:#9a7132}.smart-candidates{min-height:0;padding:10px 0 10px 17px;overflow-y:auto;scrollbar-width:thin}.smart-candidates>header{display:flex;align-items:center;justify-content:space-between;padding:4px 9px 8px;color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.smart-candidates>header strong{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#fff;background:var(--ink);font-size:7px}.smart-candidates>button{position:relative;display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;width:100%;min-height:67px;padding:9px;border-bottom:1px solid var(--line);color:var(--muted);background:transparent;text-align:left;transition:color .15s ease,background .15s ease,transform .15s ease}.smart-candidates>button:before{position:absolute;top:10px;bottom:10px;left:-17px;width:3px;border-radius:3px;background:var(--accent);content:"";opacity:0;transform:scaleY(.4);transition:opacity .15s ease,transform .17s ease}.smart-candidates>button:hover,.smart-candidates>button.is-active{color:var(--text);background:#ebe7de}.smart-candidates>button:hover{transform:translate(-2px)}.smart-candidates>button.is-active:before{opacity:1;transform:scaleY(1)}.smart-candidates>button>span{color:#aaa69d;font-size:8px;font-weight:800}.smart-candidates>button small,.smart-candidates>button strong,.smart-candidates>button em{display:block}.smart-candidates>button small{color:#9b6b43;font-size:6.5px;font-weight:820;letter-spacing:.08em;text-transform:uppercase}.smart-candidates>button strong{margin-top:3px;font-size:9px}.smart-candidates>button em{margin-top:3px;color:var(--muted);font-size:7px;font-style:normal}.smart-candidates>button>svg{opacity:0;transform:translate(-4px);transition:opacity .15s ease,transform .15s ease}.smart-candidates>button.is-active>svg{color:var(--accent);opacity:1;transform:translate(0)}.smart-notices{display:grid;gap:7px;padding:11px 9px 0}.smart-notices p{display:flex;align-items:flex-start;gap:6px;margin:0;color:#827154;font-size:7.5px;line-height:1.4}.smart-notices svg{flex:0 0 auto;color:#a17636}.smart-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:15px}.smart-actions>span{color:var(--muted);font-size:8px}.smart-actions .dialog-primary{flex:0 0 auto;background:var(--accent)}.smart-actions .dialog-primary:hover{background:#d9572d}.smart-actions .dialog-primary:disabled{cursor:not-allowed;opacity:.42}.share-dialog{width:min(650px,100%);max-height:min(760px,calc(100vh - 40px));overflow-y:auto;scrollbar-width:thin}.share-dialog h2{max-width:430px}.share-lede{max-width:480px;margin:10px 0 23px;color:#77746d;font-size:10px;line-height:1.55}.share-current{border-block:1px solid var(--line)}.share-current__summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.9fr);align-items:center;gap:20px;padding:14px 0}.share-current__summary strong,.share-current__summary span{display:block}.share-current__summary strong{font-size:11px}.share-current__summary span{margin-top:4px;color:#88857d;font-size:8.5px}.share-current__summary code{display:block;min-width:0;padding:8px 9px;overflow:hidden;border-radius:6px;color:#77746d;background:#e9e5dc;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.share-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding-bottom:12px}.share-actions button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid var(--line);border-radius:7px;color:#5f5d56;background:transparent;font-size:9px;font-weight:750;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.share-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.share-actions .share-actions__primary{border-color:var(--ink);color:#f7f3eb;background:var(--ink)}.share-actions .share-actions__primary:hover:not(:disabled){color:#fff;background:var(--accent)}.share-note{min-height:25px;margin:0;color:#8a877f;font-size:8.5px;line-height:1.45}.share-note.is-error,.share-import-error{color:#a54e32}.share-divider{display:flex;align-items:center;gap:12px;margin:18px 0 13px;color:#858279;font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.share-divider:before,.share-divider:after{height:1px;flex:1;background:var(--line);content:""}.share-import-field{display:block}.share-import-field>span{display:block;margin-bottom:7px;color:#77746d;font-size:8.5px;font-weight:750}.share-import-field textarea{display:block;width:100%;min-height:72px;padding:10px 11px;resize:vertical;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#f9f6ef;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;line-height:1.5}.share-import-field.is-error textarea{border-color:#c26c50}.share-import-result{min-height:45px;padding:9px 2px 7px}.share-import-result>p{margin:0;color:#88857d;font-size:8.5px;line-height:1.45}.share-import-result>.share-import-error{color:#a54e32}.share-import-preview{display:flex;align-items:center;gap:9px}.share-import-preview>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#52684e;background:#e2e9de}.share-import-preview strong,.share-import-preview small{display:block}.share-import-preview strong{font-size:10px}.share-import-preview small{margin-top:3px;color:#88857d;font-size:8px}.share-import-actions{display:flex;justify-content:flex-end;gap:9px}.share-import-actions button{min-height:36px}.share-import-actions .dialog-primary{justify-content:center;min-width:120px}.about-dialog{width:min(560px,100%)}.about-dialog h2{max-width:430px}.about-lede{max-width:445px;margin:13px 0 25px;color:#77746d;font-size:11px;line-height:1.6}.credits-list{border-block:1px solid var(--line)}.creator-credit{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 0}.creator-credit+.creator-credit{border-top:1px solid var(--line)}.creator-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;color:#fff;background:var(--accent);font-size:11px;font-weight:850;letter-spacing:.06em}.creator-mark--github{color:var(--surface);background:var(--text)}.creator-credit div span,.creator-credit div strong{display:block}.creator-credit div span{margin-bottom:4px;color:#88857d;font-size:8.5px}.creator-credit div strong{font-size:12px}.creator-credit a{display:flex;align-items:center;gap:6px;color:var(--text);font-size:9px;font-weight:750;text-decoration:none}.creator-credit a:hover{color:var(--accent)}.license-note{margin:16px 0 0;color:#8b8880;font-size:8.5px;line-height:1.55}.selection-toolbar{position:absolute;z-index:8;bottom:47px;left:50%;display:flex;align-items:center;gap:3px;padding:4px;border:1px solid rgb(66 63 57 / 14%);border-radius:9px;background:#f8f5edeb;box-shadow:0 10px 30px #302b231a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translate(-50%);animation:selection-in .18s ease-out both}@keyframes selection-in{0%{opacity:0;transform:translate(-50%,5px)}to{opacity:1;transform:translate(-50%)}}.selection-toolbar span{max-width:150px;padding:0 9px;overflow:hidden;font-size:9px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.selection-toolbar button{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:transparent;color:#5c5a54}.selection-toolbar button:hover{background:#e7e3d9}.selection-toolbar button.is-active{color:#fff;background:var(--accent)}.selection-toolbar .danger-action:hover{color:#ad492d;background:#f5e1d9}.model-loader{display:grid;grid-template-columns:24px auto;grid-template-rows:auto auto;column-gap:10px;min-width:180px;padding:12px 14px;border-radius:9px;background:#f6f3ebeb;box-shadow:0 8px 30px #302b231a;color:#4c4a45;white-space:nowrap}.model-loader__ring{grid-row:1 / 3;align-self:center;width:22px;height:22px;border:2px solid #d2cdc1;border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.model-loader strong{font-size:10px}.model-loader small{margin-top:2px;color:#8a877f;font-size:9px}.overview-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 16px 18px;padding:16px 0;border-block:1px solid var(--line)}.overview-stats div{min-width:0;padding:0 10px;border-right:1px solid var(--line)}.overview-stats div:first-child{padding-left:4px}.overview-stats div:last-child{border-right:0}.overview-stats strong{display:block;overflow:hidden;font-size:19px;font-weight:690;letter-spacing:-.04em;text-overflow:ellipsis}.overview-stats span{display:block;margin-top:4px;color:#88857d;font-size:8px;font-weight:650;white-space:nowrap}.selected-inspector{margin:0 16px 18px;border-block:1px solid var(--line);animation:inspector-in .2s ease-out both}@keyframes inspector-in{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}.selected-title{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0}.selected-title__glyph{width:46px;height:42px}.selected-title__glyph .part-glyph{width:36px;height:36px}.selected-title__glyph--group{display:grid;place-items:center;border-radius:7px;color:#56544e;background:#e9e5dc}.selected-title strong,.selected-title span{display:block}.selected-title strong{font-size:11px}.selected-title span{margin-top:4px;color:#88857d;font-size:9px}.selected-title__actions{display:flex;align-items:center;gap:2px}.selected-title__actions button{display:flex;align-items:center;justify-content:center;gap:4px;min-width:28px;height:28px;padding:0 6px;border-radius:6px;background:transparent;color:#8d8a82;font-size:8px;font-weight:750}.selected-title__actions button:hover,.selected-title__actions button.is-active{color:var(--text);background:#e9e5dc}.selected-title__actions button.is-active{color:var(--accent)}.part-swap-panel{padding:12px;border-top:1px solid var(--line);border-radius:7px;background:#eeeadf;animation:swap-panel-in .18s cubic-bezier(.22,1,.36,1) both}@keyframes swap-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.part-swap-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:9px}.part-swap-panel>header span,.part-swap-panel>header strong{display:block}.part-swap-panel>header span{color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.part-swap-panel>header strong{margin-top:3px;font-size:9px}.part-swap-panel>header>small{display:grid;place-items:center;min-width:20px;height:20px;border-radius:5px;color:var(--muted);background:#ded9ce;font-size:8px;font-weight:800}.part-swap-search{display:grid;grid-template-columns:16px minmax(0,1fr) 22px;align-items:center;gap:4px;height:32px;margin-bottom:7px;padding:0 5px 0 9px;border:1px solid #d6d0c5;border-radius:6px;color:var(--muted);background:var(--paper)}.part-swap-search input{min-width:0;border:0;outline:0;color:var(--text);background:transparent;font:inherit;font-size:8.5px}.part-swap-search button{display:grid;place-items:center;width:22px;height:22px;border-radius:5px;color:var(--muted)}.part-swap-search button:hover{color:var(--text);background:#e9e5dc}.part-swap-options{display:grid;gap:5px;max-height:236px;overflow-y:auto;padding-right:3px;scrollbar-color:#c9c3b7 transparent;scrollbar-width:thin}.part-swap-options>button{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:6px;border:1px solid transparent;border-radius:6px;color:var(--text);background:var(--paper);text-align:left}.part-swap-options>button:hover{border-color:#cec8bc}.part-swap-options>button.is-active{border-color:#f064357a;box-shadow:0 0 0 2px #f0643514}.part-swap-option__visual{display:grid;place-items:center;width:38px;height:34px;overflow:hidden;border-radius:5px;background:#e8e4da}.part-swap-option__visual .part-preview-image,.part-swap-option__visual .part-glyph{width:32px;height:32px;object-fit:contain}.part-swap-options>button>span:nth-child(2){min-width:0}.part-swap-options strong,.part-swap-options small{display:block}.part-swap-options strong{overflow:hidden;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.part-swap-options small{margin-top:3px;color:var(--muted);font-size:7.5px}.part-swap-fit{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;color:#8d6e62;font-size:6.5px;font-style:normal;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.part-swap-fit.is-exact{color:#61735d}.part-swap-fit svg{color:var(--accent)}.part-swap-panel>p,.part-swap-empty p{margin:9px 0;color:var(--muted);font-size:7.5px;line-height:1.45}.part-swap-panel>p.part-swap-warning{color:#9a543d}.part-swap-confirm{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:32px;border-radius:6px;color:#fff8f2;background:var(--accent);font-size:8.5px;font-weight:800}.part-swap-confirm:hover{background:#db5429}.part-swap-empty{padding:12px;border:1px dashed #d0cabf;border-radius:6px;text-align:center}.part-swap-empty strong{font-size:9px}.part-swap-empty p{margin-bottom:0}.inspector-section{padding:13px 0;border-top:1px solid #e3ded5}.inspector-label{display:block;margin-bottom:8px;color:#807d75;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.number-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.number-field{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;height:34px;padding:0 7px;border:1px solid var(--line);border-radius:6px;background:#fbf9f4}.number-field>span{color:var(--accent);font-size:8px;font-weight:850}.number-field input{min-width:0;padding:0 16px 0 5px;border:0;outline:0;background:transparent;font-size:10px;font-weight:700;text-align:right}.number-field small{position:absolute;right:5px;color:#aaa69d;font-size:7px}.rotation-row{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.rotation-row button{height:29px;border-radius:5px;background:#e9e5dc;color:#77746d;font-size:8px;font-weight:750}.rotation-row button.is-active{color:#fff;background:#292924}.orientation-plane-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:6px}.orientation-plane-row button{min-height:27px;padding:0 5px;border-radius:5px;color:#67645e;background:#f1ede5;font-size:7.5px;font-weight:750}.orientation-plane-row button:hover{background:#e4dfd5}.group-transform-row{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.group-transform-row button{display:flex;align-items:center;justify-content:center;gap:6px;height:31px;border-radius:5px;background:#e9e5dc;color:#5e5c56;font-size:8.5px;font-weight:700}.group-transform-row button:hover{background:#ded9cf}.wide-secondary{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:30px;margin-top:6px;border-radius:5px;background:#e9e5dc;color:#5e5c56;font-size:9px;font-weight:700}.wide-secondary:hover{background:#ded9cf}.color-row{display:flex;gap:8px}.color-row button{width:25px;height:25px;border:4px solid var(--paper);border-radius:50%;background:var(--swatch);box-shadow:0 0 0 1px #ccc7bd}.color-row button.is-active{box-shadow:0 0 0 2px var(--accent)}.bom-section{display:flex;flex:1;flex-direction:column;min-height:0;padding:0 16px 16px}.section-title{display:flex;align-items:center;justify-content:space-between;padding:0 3px 12px}.section-title p{margin-bottom:3px}.section-title span{color:#8b8880;font-size:9px}.section-title svg{color:#7b7871}.joint-summary{display:flex;align-items:center;gap:6px;color:#6f6c65}.joint-summary strong{font-size:9px;font-weight:750}.bom-list{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}.bom-row{display:grid;grid-template-columns:29px minmax(0,1fr) 27px 27px;align-items:center;gap:6px;min-height:51px;border-top:1px solid #e1ddd3}.bom-row:last-child{border-bottom:1px solid #e1ddd3}.bom-row>button:disabled,.bom-row:hover>button:disabled{color:#aaa69d;background:transparent;opacity:.25}.bom-count{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#dfdbd1;font-size:9px;font-weight:800}.bom-row strong,.bom-row div span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-row strong{font-size:10px;font-weight:700}.bom-row div span{margin-top:3px;color:#96938a;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7.5px}.pin-note{margin:11px 2px;color:#8a877f;font-size:8.5px;line-height:1.45}.bom-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.export-button,.copy-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:38px;border-radius:7px;font-size:10px;font-weight:750;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}.export-button{color:#f7f3eb;background:var(--ink)}.copy-button{border:1px solid var(--line);color:#5f5d56;background:transparent}.export-button:hover:not(:disabled),.copy-button:hover:not(:disabled){background:var(--accent);color:#fff9f2;border-color:var(--accent);transform:translateY(-1px)}.copy-button.is-success{border-color:#768b70;color:#52684e;background:#e5ebe0}.copy-button.is-error{border-color:#c26c50;color:#a54e32;background:#f5e4dd}.mobile-dock{display:none}.help-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:20px;background:#16151285;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .16s ease-out both}@keyframes fade-in{0%{opacity:0}}.help-dialog{position:relative;width:min(510px,100%);padding:32px;border-radius:14px;background:var(--paper);box-shadow:0 30px 80px #0000003d;animation:dialog-in .22s cubic-bezier(.22,1,.36,1) both}@keyframes dialog-in{0%{transform:translateY(12px) scale(.98);opacity:0}}.help-dialog h2{max-width:340px;margin:0;font-size:26px;letter-spacing:-.04em}.tool-button{position:relative}.tool-button>em{display:grid;place-items:center;min-width:14px;height:14px;padding:0 3px;border-radius:7px;color:#fff;background:#827d71;font-size:7px;font-style:normal;letter-spacing:0}.tool-button.has-error>em{background:var(--accent)}.tool-button.has-warning>em{background:#9a7132}.planning-panel{position:absolute;z-index:12;top:64px;left:50%;display:flex;width:min(410px,calc(100% - 24px));max-height:calc(100% - 116px);flex-direction:column;border:1px solid rgb(86 83 75 / 16%);border-radius:11px;overflow:hidden;background:#f7f4ecf7;box-shadow:0 18px 52px #302b232b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%);animation:planning-panel-in .18s cubic-bezier(.22,1,.36,1) both}@keyframes planning-panel-in{0%{opacity:0;transform:translate(-50%,-5px) scale(.99)}to{opacity:1;transform:translate(-50%) scale(1)}}.planning-panel>header{display:flex;align-items:center;justify-content:space-between;padding:12px 13px 10px}.planning-panel>header>div{display:flex;flex-direction:column;gap:3px}.planning-panel>header span,.planning-panel>header strong{display:block}.planning-panel>header span{color:var(--muted);font-size:7px;font-weight:850;letter-spacing:.13em}.planning-panel>header strong{font-size:12px}.planning-panel>header button{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;color:var(--muted);background:transparent}.planning-panel>header button:hover{background:#e9e5dc}.planning-panel>nav{display:grid;grid-template-columns:repeat(5,1fr);padding:0 8px;border-bottom:1px solid var(--line)}.planning-panel>nav button{display:flex;align-items:center;justify-content:center;gap:5px;height:34px;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:8px;font-weight:750}.planning-panel>nav button.is-active{border-bottom-color:var(--accent);color:var(--text)}.planning-panel__content{min-height:0;padding:13px;overflow-y:auto}.reference-summary{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;padding-bottom:11px;border-bottom:1px solid var(--line)}.reference-summary>img{width:52px;height:40px;border-radius:7px;object-fit:cover}.reference-summary>div{display:flex;min-width:0;flex-direction:column;gap:3px}.reference-summary>div strong{font-size:10px}.reference-summary>div span{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.reference-summary>span{padding:4px 6px;border-radius:999px;color:#77736b;background:#e9e5dc;font-size:7px;font-weight:800;text-transform:uppercase}.reference-summary>span.is-visible{color:#52684e;background:#e5ebe0}.reference-content>p{margin:10px 2px 0;color:var(--muted);font-size:8px;line-height:1.45}.reference-empty{display:flex;min-height:240px;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.reference-empty>svg{margin-bottom:12px;color:var(--accent)}.reference-empty>strong{font-size:12px}.reference-empty>span{max-width:260px;margin-top:6px;color:var(--muted);font-size:9px;line-height:1.5}.reference-empty .planning-primary{margin-top:16px}.reference-empty>small{margin-top:8px;color:var(--muted);font-size:7px}.build-check-summary{display:flex;align-items:center;gap:11px;padding:12px;border-left:3px solid #a07a3d;background:#eee8dc}.build-check-summary.has-errors{border-left-color:var(--accent)}.build-check-summary.is-ready{border-left-color:#637d5d;background:#e5ebe0}.build-check-summary>svg{flex:0 0 auto;color:#8c6830}.build-check-summary.has-errors>svg{color:var(--accent)}.build-check-summary.is-ready>svg{color:#637d5d}.build-check-summary strong,.build-check-summary span{display:block}.build-check-summary strong{font-size:10px}.build-check-summary span{margin-top:3px;color:var(--muted);font-size:8px;line-height:1.35}.build-issue-list{margin-top:7px}.build-issue{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;padding:9px 7px;border-bottom:1px solid var(--line);text-align:left;background:transparent}.build-issue:hover{background:#23221e0a}.build-issue--error>svg{color:var(--accent)}.issue-dot{width:6px;height:6px;margin-left:4px;border-radius:50%;background:#a07a3d}.build-issue strong,.build-issue small{display:block}.build-issue strong{font-size:9px}.build-issue small{margin-top:3px;color:var(--muted);font-size:8px;font-weight:500;line-height:1.35}.build-issue>svg:last-child{color:var(--muted)}.measure-overview{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:11px;border-block:1px solid var(--line)}.measure-overview span{padding:9px;color:var(--muted);font-size:8px;text-align:center}.measure-overview span+span{border-left:1px solid var(--line)}.measure-overview strong{margin-right:3px;color:var(--text);font-size:12px}.planning-primary,.lock-selection,.calibration-start,.calibration-value-row>button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border-radius:6px;font-size:9px;font-weight:750}.planning-primary{width:100%;color:#fff;background:var(--ink)}.measure-content>p,.notes-content>p{margin:8px 1px 11px;color:var(--muted);font-size:8px;line-height:1.4}.measurement-list{border-top:1px solid var(--line)}.measurement-row{display:grid;grid-template-columns:64px 1fr 28px;align-items:center;gap:6px;min-height:41px;border-bottom:1px solid var(--line)}.measurement-row>span{font:700 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.measurement-row input,.part-label-input input,.calibration-value-row input,.repeat-tool input,.repeat-tool select{min-width:0;height:28px;border:1px solid var(--line);border-radius:5px;outline:0;background:#fbf9f4;font-size:9px}.measurement-row input{width:100%;padding:0 7px}.measurement-row>button{display:grid;place-items:center;width:28px;height:28px;border-radius:5px;color:var(--muted);background:transparent}.measurement-row>button:hover{color:var(--accent);background:#f2dfd7}.planning-empty{display:block;padding:18px 4px;color:var(--muted);font-size:9px;text-align:center}.layout-selection-count{margin:0 0 10px;color:var(--muted);font-size:8px}.layout-selection-count strong{color:var(--text);font-size:12px}.layout-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.layout-action-grid button,.lock-selection{display:flex;align-items:center;justify-content:center;gap:5px;min-height:31px;border-radius:5px;color:#5f5c55;background:#e9e5dc;font-size:8px;font-weight:750}.layout-action-grid button:hover,.lock-selection:hover{background:#ddd8ce}.repeat-tool{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.repeat-tool>strong{display:block;margin-bottom:8px;font-size:9px}.repeat-tool>div{display:grid;grid-template-columns:.7fr 1fr 1fr;gap:6px;margin-bottom:7px}.repeat-tool label{position:relative;display:grid;gap:4px;color:var(--muted);font-size:7px;font-weight:750;text-transform:uppercase}.repeat-tool input,.repeat-tool select{width:100%;padding:0 7px;color:var(--text)}.repeat-tool label>span{position:absolute;right:5px;bottom:9px;color:var(--muted);font-size:7px;text-transform:none}.repeat-tool label:nth-child(2) input{padding-right:22px}.lock-selection{width:100%;margin-top:7px}.notes-content label>span{display:block;margin-bottom:7px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.notes-content textarea{width:100%;padding:10px;resize:vertical;border:1px solid var(--line);border-radius:6px;outline:0;background:#fbf9f4;font-size:10px;line-height:1.5}.part-label-input{display:grid;grid-template-columns:1fr 32px;gap:5px}.part-label-input input{width:100%;padding:0 8px}.part-label-input button{display:grid;place-items:center;border-radius:5px;color:var(--muted);background:#e9e5dc}.reference-calibration{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.reference-calibration>div:first-child{min-width:0}.reference-calibration strong,.reference-calibration span{display:block}.reference-calibration strong{font-size:9px}.reference-calibration span{margin-top:3px;color:var(--muted);font-size:8px}.calibration-start{flex:0 0 auto;padding:0 10px;color:#5f5c55;background:#e9e5dc}.calibration-value-row{display:flex;align-items:center;gap:5px}.calibration-value-row label{position:relative}.calibration-value-row input{width:76px;padding:0 24px 0 7px}.calibration-value-row label span{position:absolute;right:6px;bottom:10px;margin:0;font-size:7px}.calibration-value-row>button{padding:0 9px;color:#fff;background:var(--ink)}.point-tool-feedback{position:absolute;z-index:14;top:66px;left:50%;display:grid;grid-template-columns:20px auto 30px;align-items:center;gap:7px;padding:8px 9px;border-radius:8px;color:#fff;background:#1f1f1bf0;box-shadow:0 10px 28px #0000002e;transform:translate(-50%);pointer-events:none}.point-tool-feedback strong,.point-tool-feedback span{display:block}.point-tool-feedback strong{font-size:9px}.point-tool-feedback span{margin-top:2px;color:#c9c6bd;font-size:8px}.point-tool-feedback kbd{padding:3px 4px;border:1px solid #55554e;border-radius:4px;color:#d5d2ca;font-size:7px;text-align:center}.viewport--point-tool canvas{cursor:crosshair!important}.scene-measurement-label>span,.scene-part-label>span{display:block;padding:4px 7px;border:1px solid rgb(255 255 255 / 35%);border-radius:5px;color:#fff9f2;background:#23221ee0;box-shadow:0 4px 12px #00000024;font-size:8px;font-weight:750;white-space:nowrap}.scene-part-label>span{color:var(--text);background:#f8f5edeb}.assembly-guide{position:absolute;z-index:15;top:16px;left:50%;display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:16px;width:min(760px,calc(100% - 32px));min-height:72px;padding:10px 12px;border:1px solid rgb(86 83 75 / 15%);border-radius:10px;background:#f7f4ecf2;box-shadow:0 14px 46px #302b2324;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%)}.assembly-exit,.assembly-actions button{display:flex;align-items:center;justify-content:center;gap:5px;height:32px;padding:0 10px;border-radius:6px;color:#5f5c55;background:#e9e5dc;font-size:8px;font-weight:750}.assembly-copy span{display:block;color:var(--accent);font-size:7px;font-weight:850;letter-spacing:.1em}.assembly-copy strong{display:block;margin-top:3px;font-size:11px}.assembly-copy p{margin:3px 0 0;color:var(--muted);font-size:8px;line-height:1.35}.assembly-actions{display:flex;gap:5px}.assembly-actions button:last-child{min-width:66px;color:#fff;background:var(--ink)}.assembly-progress{position:absolute;right:12px;bottom:0;left:12px;height:2px;overflow:hidden;background:#dfdbd1}.assembly-progress span{display:block;height:100%;background:var(--accent);transition:width .25s ease}.viewport--assembly .viewport-toolbar,.viewport--assembly .planning-panel,.viewport--assembly .reference-controls,.viewport--assembly .selection-toolbar,.viewport--assembly .viewport-status{display:none}.app-shell--assembly .workspace{grid-template-columns:minmax(0,1fr)}.app-shell--assembly .parts-panel,.app-shell--assembly .inspector,.app-shell--assembly .mobile-dock{display:none}.app-shell--assembly .viewport{grid-column:1}.help-close{position:absolute;top:18px;right:18px;display:grid;place-items:center;width:32px;height:32px;border-radius:7px;background:#e7e3da}.help-grid{display:grid;grid-template-columns:1fr 1fr;margin:28px 0;border-top:1px solid var(--line)}.help-grid div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 10px 11px 0;border-bottom:1px solid var(--line);font-size:10px}.help-grid div:nth-child(odd){margin-right:18px}.help-grid span{min-width:82px;padding:4px 6px;border-radius:5px;color:#69675f;background:#e5e1d8;font-size:8px;font-weight:800;text-align:center}.help-grid strong{font-size:9px}@media(max-width:1180px){.topbar{grid-template-columns:270px minmax(180px,1fr) auto}.workspace{grid-template-columns:270px minmax(0,1fr) 300px}.project-name span{display:none}.part-row{grid-template-columns:48px minmax(0,1fr) 28px;gap:8px}.part-row__visual{width:48px}.part-family__summary{grid-template-columns:48px minmax(0,1fr);gap:8px}.part-variants{margin-left:56px}}@media(max-width:1400px){.workflow-button{width:34px;padding:0}.workflow-button>span{display:none}.workflow-button>em{position:absolute;top:1px;right:1px;min-width:12px;height:12px;padding:0 2px;border:1px solid var(--paper);font-size:6px}}@media(max-width:900px){.app-shell{grid-template-rows:58px minmax(0,1fr)}.topbar,.app-shell--parts-collapsed .topbar{grid-template-columns:auto minmax(0,1fr) auto}.brand-lockup{padding:0 12px;border-right:0}.brand-lockup small{display:none}.brand-mark{width:30px;height:30px}.project-name{justify-self:stretch}.project-name input{width:100%;font-size:12px}.top-actions .text-button,.top-actions .top-divider{display:none}.top-actions{padding-right:8px}.workspace,.workspace.workspace--parts-collapsed{grid-template-columns:1fr}.parts-panel,.inspector{position:absolute;z-index:30;top:10px;bottom:64px;display:none;width:min(340px,calc(100vw - 22px));border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 60px #2a261f2e;overflow:hidden}.parts-panel{left:10px}.inspector{right:10px}.parts-panel.panel--mobile-active,.inspector.panel--mobile-active{display:flex;animation:mobile-panel-in .22s cubic-bezier(.22,1,.36,1) both}@keyframes mobile-panel-in{0%{opacity:0;transform:translateY(12px)}}.mobile-close{display:grid;place-items:center}.panel-collapse{display:none}.mobile-close svg{width:18px;height:18px}.viewport{grid-column:1}.mobile-dock{position:absolute;z-index:25;bottom:12px;left:50%;display:flex;gap:5px;padding:5px;border:1px solid rgb(72 69 62 / 14%);border-radius:10px;background:#f7f4eceb;box-shadow:0 10px 35px #28241d24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translate(-50%)}.mobile-dock button{display:flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:7px;background:transparent;font-size:10px;font-weight:750}.mobile-dock button:hover{background:#e4e0d7}.viewport-status{bottom:66px}.selection-toolbar{bottom:96px}.preview-header{top:12px;right:12px;left:12px}.preview-controls{bottom:14px}.assembly-guide{top:12px}.app-shell--assembly .parts-panel.panel--mobile-active,.app-shell--assembly .inspector.panel--mobile-active{display:none}}@media(max-width:600px){.brand-lockup>div{display:none}.viewport-toolbar{top:10px;max-width:calc(100% - 20px)}.viewport-toolbar{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.viewport-toolbar::-webkit-scrollbar{display:none}.fit-feedback,.grab-feedback{top:56px}.attach-feedback{top:56px;max-width:calc(100% - 20px)}.reference-controls{top:56px}.planning-panel{top:56px;max-height:calc(100% - 126px)}.reference-error{top:56px;right:10px;left:10px;max-width:none}.viewport--grab-mode .fit-feedback{top:94px}.view-switcher button{padding:0 7px}.tool-button span,.toolbar-divider,.selection-toolbar span{display:none}.viewport-status>span:nth-child(3){display:none}.help-dialog{padding:26px 20px 22px}.help-grid{grid-template-columns:1fr}.help-grid div:nth-child(odd){margin-right:0}.creator-credit{grid-template-columns:44px minmax(0,1fr)}.creator-credit a{grid-column:1 / -1;margin-top:4px}.save-current-row{align-items:flex-start;flex-direction:column}.share-current__summary{grid-template-columns:1fr;gap:9px}.share-actions{grid-template-columns:1fr}.share-import-actions .dialog-primary{width:100%}.preview-header{grid-template-columns:auto 1fr;gap:8px}.preview-title{display:none}.preview-actions{justify-self:end}.preview-header button{min-height:36px;padding:0 10px}.preview-back kbd{display:none}.preview-controls{right:10px;left:10px;justify-content:flex-start;max-width:none;overflow-x:auto;transform:none}.assembly-guide{grid-template-columns:auto 1fr;gap:8px;width:calc(100% - 20px);padding:8px}.assembly-copy p{display:none}.assembly-actions{grid-column:1 / -1;justify-content:flex-end}.assembly-actions button:last-child{flex:1}.preview-environments,.preview-room-options{flex:0 0 auto}.preview-environments button,.preview-peg-toggle{padding-inline:8px}@keyframes preview-controls-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:1180px){.examples-button{width:34px;padding:0}.examples-button span{display:none}}@media(max-width:760px){.examples-dialog{overflow-y:auto}.examples-layout{grid-template-columns:1fr}.example-stage{padding-right:0;border-right:0}.example-stage__scene{height:250px}.example-list{display:grid;grid-template-columns:1fr 1fr;overflow:visible;padding:8px 0 0;border-top:1px solid var(--line)}.example-list button{min-height:56px;border-right:1px solid var(--line)}.example-list button:nth-child(2n){border-right:0}.example-list button:before{inset:auto 12px 0;width:auto;height:3px;transform:scaleX(.45)}.example-list button.is-active:before{transform:scaleX(1)}}@media(max-width:520px){.examples-dialog{padding:25px 18px 20px}.examples-dialog h2{padding-right:28px;font-size:22px}.examples-lede{margin-bottom:16px}.example-stage__scene{height:200px}.example-stage__copy{display:block}.example-metrics{margin-top:13px}.example-list{grid-template-columns:1fr}.example-list button{border-right:0}.examples-actions{align-items:stretch;flex-direction:column;gap:10px}.examples-actions .dialog-primary{justify-content:center;width:100%}}:root[data-theme=dark]{--text: #efede6;--muted: #a3a39c;--line: #383a35;--paper: #1c1d1a;--canvas: #252622;background:#252622}[data-theme=dark] .topbar{border-bottom-color:var(--line)}[data-theme=dark] .project-name input,[data-theme=dark] .creator-credit a{color:var(--text)}[data-theme=dark] .project-name span,[data-theme=dark] .part-row__copy span,[data-theme=dark] .section-title span,[data-theme=dark] .selected-title span,[data-theme=dark] .pin-note,[data-theme=dark] .plans-footer,[data-theme=dark] .share-lede,[data-theme=dark] .share-current__summary span,[data-theme=dark] .share-import-field>span,[data-theme=dark] .share-import-result>p,[data-theme=dark] .share-import-preview small,[data-theme=dark] .about-lede,[data-theme=dark] .license-note,[data-theme=dark] .save-current-row span,[data-theme=dark] .saved-plan-row span{color:#9a9b94}[data-theme=dark] .icon-button:hover,[data-theme=dark] .text-button:hover,[data-theme=dark] .examples-button:hover,[data-theme=dark] .panel-collapse:hover,[data-theme=dark] .collapsed-parts-rail button:hover,[data-theme=dark] .category-tabs button:hover,[data-theme=dark] .wide-secondary,[data-theme=dark] .rotation-row button,[data-theme=dark] .restore-plan,[data-theme=dark] .help-close,[data-theme=dark] .mobile-dock button:hover{background:#30312d}[data-theme=dark] .examples-button,[data-theme=dark] .workflow-button{color:#b8b7b0}[data-theme=dark] .workflow-button:hover{color:var(--text);background:#30312d}[data-theme=dark] .workflow-button.is-active{color:#171815;background:#efede6}[data-theme=dark] .workflow-button--preview{color:#fff8f1;background:var(--accent)}[data-theme=dark] .workflow-button--preview:hover{color:#fff;background:#d9572d}[data-theme=dark] .nav-save-button.is-saved{color:#dce8d8;background:#33402f}[data-theme=dark] .clear-plan-button:hover{color:#f08a68;background:#442921}[data-theme=dark] .example-list button:hover,[data-theme=dark] .duplicate-plan:hover{color:var(--text);background:#30312d}[data-theme=dark] .example-preview-loader{color:#b8b7b0;background:#20211ed1}[data-theme=dark] .text-button,[data-theme=dark] .panel-collapse,[data-theme=dark] .collapsed-parts-rail button,[data-theme=dark] .view-switcher button,[data-theme=dark] .tool-button,[data-theme=dark] .selection-toolbar button,[data-theme=dark] .restore-plan{color:#b8b7b0}[data-theme=dark] .search-field,[data-theme=dark] .number-field,[data-theme=dark] .share-import-field textarea{border-color:#3a3c37;background:#242521}[data-theme=dark] .search-field input,[data-theme=dark] .number-field input,[data-theme=dark] .share-import-field textarea{color:var(--text)}[data-theme=dark] .category-tabs button.is-active,[data-theme=dark] .view-switcher button.is-active,[data-theme=dark] .tool-button.is-active,[data-theme=dark] .rotation-row button.is-active{color:#171815;background:#efede6}[data-theme=dark] .group-transform-row button,[data-theme=dark] .selected-title__glyph--group{color:#d4d2ca;background:#30312d}[data-theme=dark] .selected-title__actions button:hover,[data-theme=dark] .selected-title__actions button.is-active,[data-theme=dark] .part-swap-option__visual{background:#30312d}[data-theme=dark] .part-swap-panel{border-color:#3a3c37;background:#252622}[data-theme=dark] .part-swap-panel>header>small{background:#343630}[data-theme=dark] .part-swap-options>button{border-color:#3a3c37;background:#1f201d}[data-theme=dark] .part-swap-options>button:hover{border-color:#55574f}[data-theme=dark] .part-swap-search{border-color:#3a3c37;background:#1f201d}[data-theme=dark] .part-swap-search button:hover{background:#30312d}[data-theme=dark] .part-swap-fit{color:#c38f7c}[data-theme=dark] .part-swap-fit.is-exact{color:#97aa91}[data-theme=dark] .part-swap-panel>p.part-swap-warning{color:#df9c82}[data-theme=dark] .part-swap-empty{border-color:#484a44}[data-theme=dark] .group-transform-row button:hover{background:#383a35}[data-theme=dark] .parts-list{scrollbar-color:#50524c transparent}[data-theme=dark] .part-row,[data-theme=dark] .part-family,[data-theme=dark] .bom-row,[data-theme=dark] .selected-inspector,[data-theme=dark] .inspector-section,[data-theme=dark] .saved-plan-row{border-color:#343630}[data-theme=dark] .part-row:hover,[data-theme=dark] .part-family:hover{background:#292a26}[data-theme=dark] .part-variant{border-color:#3d3f39;color:#c2c1b9;background:#30312d}[data-theme=dark] .part-variant:hover,[data-theme=dark] .part-variant:focus-visible{border-color:#efede6;color:#171815;background:#efede6}[data-theme=dark] .part-row__visual,[data-theme=dark] .selected-title__glyph,[data-theme=dark] .bom-count,[data-theme=dark] .help-grid span{background:#30312d;color:#d4d2ca}[data-theme=dark] .part-glyph .glyph-cut{fill:#30312d}[data-theme=dark] .part-count-badge{border-color:#30312d}[data-theme=dark] .part-preview-image{filter:drop-shadow(0 4px 4px rgb(0 0 0 / 30%))}[data-theme=dark] .parts-footer{color:#989991}[data-theme=dark] .viewport-toolbar,[data-theme=dark] .reference-controls,[data-theme=dark] .planning-panel,[data-theme=dark] .assembly-guide,[data-theme=dark] .selection-toolbar,[data-theme=dark] .mobile-dock{border-color:#ffffff17;background:#1c1d1aeb;box-shadow:0 10px 35px #0000003d}[data-theme=dark] .reference-controls header button,[data-theme=dark] .reference-actions button,[data-theme=dark] .planning-panel>header button,[data-theme=dark] .layout-action-grid button,[data-theme=dark] .lock-selection,[data-theme=dark] .calibration-start,[data-theme=dark] .assembly-exit{color:#c3c1b9;background:#30312d}[data-theme=dark] .reference-controls header button:hover,[data-theme=dark] .reference-actions button:hover,[data-theme=dark] .planning-panel>header button:hover,[data-theme=dark] .layout-action-grid button:hover,[data-theme=dark] .lock-selection:hover{background:#3a3c37}[data-theme=dark] .reference-slider>span{color:#a3a39c}[data-theme=dark] .reference-summary>span{color:#b8b7b0;background:#30312d}[data-theme=dark] .reference-summary>span.is-visible{color:#dce8d8;background:#33402f}[data-theme=dark] .build-check-summary{background:#302d26}[data-theme=dark] .build-check-summary.is-ready{background:#283126}[data-theme=dark] .build-issue:hover{background:#ffffff0a}[data-theme=dark] .measurement-row input,[data-theme=dark] .part-label-input input,[data-theme=dark] .calibration-value-row input,[data-theme=dark] .repeat-tool input,[data-theme=dark] .repeat-tool select,[data-theme=dark] .notes-content textarea{border-color:#3a3c37;color:var(--text);background:#242521}[data-theme=dark] .part-label-input button{color:#c3c1b9;background:#30312d}[data-theme=dark] .scene-part-label>span{color:#f0eee7;background:#1e1f1ceb}[data-theme=dark] .assembly-actions button:last-child,[data-theme=dark] .planning-primary,[data-theme=dark] .calibration-value-row>button{color:#171815;background:#efede6}[data-theme=dark] .assembly-progress{background:#3a3c37}[data-theme=dark] .grab-feedback{border-color:#ffffff17;color:#ddd9d0;background:#1c1d1af0;box-shadow:0 10px 35px #0000003d}[data-theme=dark] .attach-feedback{border-color:#ffffff17;color:#ddd9d0;background:#1c1d1af2;box-shadow:0 10px 35px #0000003d}[data-theme=dark] .attach-feedback span{color:#9a9b94}[data-theme=dark] .attach-feedback kbd{border-color:#4b4d47;color:#c7c5bd;background:#30312d}[data-theme=dark] .grab-feedback span{color:#9a9b94}[data-theme=dark] .grab-feedback kbd{border-color:#4b4d47;color:#c7c5bd;background:#30312d}[data-theme=dark] .grab-feedback.is-dragging{background:#34352f}[data-theme=dark] .view-switcher button:hover,[data-theme=dark] .tool-button:hover,[data-theme=dark] .selection-toolbar button:hover{background:#383a35}[data-theme=dark] .orientation-plane-row button{color:#c5c3ba;background:#30312d}[data-theme=dark] .orientation-plane-row button:hover{background:#3a3c37}[data-theme=dark] .tool-button--preview{color:#fff8f1;background:var(--accent)}[data-theme=dark] .tool-button--preview:hover{color:#fff;background:#d9572d}[data-theme=dark] .toolbar-divider,[data-theme=dark] .top-divider{background:#444640}[data-theme=dark] .viewport-status,[data-theme=dark] .joint-summary{color:#aaa9a2}[data-theme=dark] .viewport-status button{color:#cccac2;background:#1c1d1ac7}[data-theme=dark] .copy-button{border-color:#444640;color:#cccac2}[data-theme=dark] .copy-button.is-success{border-color:#687d63;color:#dce8d8;background:#33402f}[data-theme=dark] .copy-button.is-error{border-color:#9b5944;color:#f2c3b4;background:#442921}[data-theme=dark] .share-current__summary code{color:#aaa9a2;background:#2d2e2a}[data-theme=dark] .share-actions button{border-color:#444640;color:#cccac2}[data-theme=dark] .share-actions .share-actions__primary{border-color:#efede6;color:#171815;background:#efede6}[data-theme=dark] .share-import-preview>span{color:#dce8d8;background:#33402f}[data-theme=dark] .share-note.is-error,[data-theme=dark] .share-import-result>.share-import-error{color:#f2a38a}[data-theme=dark] .model-loader,[data-theme=dark] .help-dialog{color:var(--text);background:#20211e}[data-theme=dark] .overview-stats,[data-theme=dark] .overview-stats div,[data-theme=dark] .creator-credit{border-color:var(--line)}[data-theme=dark] .save-current-row{border-color:var(--line);background:#292a26}[data-theme=dark] .delete-plan:hover,[data-theme=dark] .text-button--danger:hover,[data-theme=dark] .selection-toolbar .danger-action:hover{color:#f08a68;background:#442921}[data-theme=dark] .color-row button{border-color:var(--paper);box-shadow:0 0 0 1px #55574f}[data-theme=dark] .color-row button.is-active{box-shadow:0 0 0 2px var(--accent)}[data-theme=dark] .workflow-button--smart svg{color:#f48158}[data-theme=dark] .smart-builder-heading>span,[data-theme=dark] .smart-facts small{color:#c9ddc2;background:#33402f}[data-theme=dark] .smart-mode-switch{border-color:#41423c;background:#22231f}[data-theme=dark] .smart-mode-switch button.is-active{color:var(--text);background:#30312d;box-shadow:0 1px 4px #0000002e}[data-theme=dark] .smart-change-summary{background:#f0643517}[data-theme=dark] .smart-prompt__field{border-color:#464740;background:#292a26}[data-theme=dark] .smart-prompt__field textarea{color:var(--text)}[data-theme=dark] .smart-prompt__field button,[data-theme=dark] .smart-candidates>header strong{color:#171815;background:#efede6}[data-theme=dark] .smart-suggestions button{color:#aaa9a2;background:#2c2d29}[data-theme=dark] .smart-suggestions button:hover,[data-theme=dark] .smart-candidates>button:hover,[data-theme=dark] .smart-candidates>button.is-active{color:var(--text);background:#30312d}[data-theme=dark] .smart-facts [data-source=assumed] small{color:#e5c797;background:#443823}[data-theme=dark] .smart-stage__notes span{color:#aaa9a2}[data-theme=dark] .smart-notices p{color:#c4aa7d}@media(max-width:820px){.help-dialog.smart-builder-dialog{display:block;max-height:calc(100vh - 20px);padding:25px 20px 20px;overflow-y:auto}.smart-results{display:block}.smart-stage{padding-right:0;border-right:0;overflow:visible}.smart-candidates{display:grid;grid-template-columns:1fr 1fr;padding:8px 0 0;border-top:1px solid var(--line);overflow:visible}.smart-candidates>header,.smart-notices{grid-column:1 / -1}.smart-candidates>button:nth-of-type(odd){border-right:1px solid var(--line)}.smart-candidates>button:before{inset:auto 10px 0;width:auto;height:3px;transform:scaleX(.4)}.smart-candidates>button.is-active:before{transform:scaleX(1)}}@media(max-width:560px){.smart-builder-backdrop{padding:10px}.smart-builder-heading{display:block;padding-right:36px}.smart-builder-heading h2{font-size:22px}.smart-builder-heading>span{margin-top:9px}.smart-mode-switch{width:100%}.smart-mode-switch button{align-items:flex-start;flex-direction:column;gap:3px}.smart-build-context>div{display:block}.smart-build-context small{display:block;margin-top:2px;white-space:normal}.smart-prompt__field{grid-template-columns:1fr}.smart-prompt__field button{justify-content:center;min-height:38px;margin-top:0}.smart-stage__scene{height:205px}.smart-stage__legend{gap:6px}.smart-stage__summary{display:block}.smart-stage__metrics{margin-top:11px}.smart-stage__notes,.smart-candidates{grid-template-columns:1fr}.smart-candidates>button:nth-of-type(odd){border-right:0}.smart-actions{align-items:stretch;flex-direction:column;gap:10px}.smart-actions .dialog-primary{justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
