:root{color:#28312d;background:#f4f0e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #27312d;--ink-soft: #626b64;--ink-faint: #90968f;--line: #e2ddd4;--line-strong: #cbc5ba;--paper: #fffdfa;--paper-warm: #f8f5ef;--canvas: #ece8df;--accent: #c2d631;--accent-deep: #788d1f;--olive: #33443b;--shadow-small: 0 2px 8px rgba(33, 39, 35, .08), 0 1px 2px rgba(33, 39, 35, .08);--shadow-medium: 0 14px 32px rgba(46, 49, 42, .12), 0 2px 6px rgba(46, 49, 42, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}*{box-sizing:border-box}html,body,#root{min-width:0;min-height:100%;margin:0}body{min-height:100vh;overflow:hidden;overflow-x:hidden;background:radial-gradient(circle at 74% 12%,rgba(205,213,155,.18),transparent 24rem),#f4f0e8}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid rgba(194,214,49,.45);outline-offset:2px}.app-shell{display:flex;flex-direction:column;height:100vh;min-height:720px;color:var(--ink)}.topbar{z-index:4;display:flex;align-items:center;gap:24px;height:70px;padding:0 22px;background:#fffdfaf0;border-bottom:1px solid var(--line);box-shadow:0 1px #ffffffa6}.brand-block{display:flex;flex:0 0 210px;align-items:center;gap:11px}.brand-mark{display:grid;width:36px;height:36px;place-items:center;color:var(--olive);background:var(--accent);border-radius:10px 10px 10px 3px;box-shadow:4px 4px #dfeaa2;transform:rotate(-5deg)}.brand-mark span{font-size:24px;font-weight:900;letter-spacing:-.12em;transform:rotate(5deg)}.brand-block strong{display:block;font-size:15px;font-weight:850;letter-spacing:.22em;line-height:1}.brand-block>div:last-child span{display:block;margin-top:5px;color:var(--ink-faint);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.project-switcher{display:flex;flex-direction:column;gap:4px;min-width:245px}.project-switcher button{display:flex;align-items:center;gap:8px;padding:0;color:var(--ink);font-size:13px;font-weight:750;text-align:left;background:none;border:0;cursor:pointer}.project-switcher button svg{color:var(--ink-faint)}.eyebrow{color:var(--ink-faint);font-size:9px;font-weight:800;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}.top-actions{display:flex;flex:1;align-items:center;justify-content:flex-end;gap:5px}.toolbar-separator{width:1px;height:27px;margin:0 7px;background:var(--line)}.icon-button,.view-toggle,.top-tool,.cart-button,.price-indicator,.small-action,.scene-rail button,.scene-bottom-controls button,.catalog-footer button{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease,border-color .16s ease}.icon-button{width:32px;height:32px;color:var(--ink-soft);background:transparent;border-radius:8px}.icon-button:hover,.top-tool:hover,.view-toggle:hover,.small-action:hover{background:#f0ede6;color:var(--ink)}.top-tool.active{color:var(--olive);background:#eef4c7}.icon-button.subtle{color:var(--ink-faint)}.view-toggle{gap:7px;height:33px;padding:0 9px;color:var(--ink-soft);font-size:12px;font-weight:800;background:transparent;border-radius:8px}.view-toggle.active{color:var(--olive);background:#eef4c7}.view-icon{display:inline-block;width:17px;height:17px}.square-icon{border:1.8px solid currentColor;border-radius:3px}.cube-icon{position:relative;border:1.6px solid currentColor;border-radius:4px;transform:rotate(30deg) skew(-8deg)}.top-tool{flex-direction:column;gap:3px;min-width:52px;padding:4px 5px;color:var(--ink-soft);font-size:9px;font-weight:750;background:transparent;border-radius:8px}.top-tool span{white-space:nowrap}.price-indicator{gap:7px;padding:0 10px;color:var(--olive);font-size:12px;font-weight:850;background:#eef4c7;border-radius:8px}.price-indicator:hover{background:var(--accent)}.cart-button{position:relative;width:35px;height:34px;color:var(--ink-soft);background:transparent;border-radius:8px}.cart-button:hover{color:var(--ink);background:#f0ede6}.cart-button span{position:absolute;top:0;right:0;display:grid;min-width:14px;height:14px;padding:0 3px;place-items:center;color:var(--olive);background:var(--accent);border:2px solid var(--paper);border-radius:20px;font-size:8px;font-weight:900}.workspace{display:grid;flex:1;min-height:0;grid-template-columns:250px minmax(560px,1fr) 310px;gap:0}.workspace.inspector-hidden{grid-template-columns:250px minmax(0,1fr)}.project-name{font-size:12px}button:disabled{opacity:.4;cursor:default}.catalog-sidebar,.inspector-panel{min-height:0;background:#fffdfad1}.catalog-sidebar{z-index:2;display:flex;flex-direction:column;padding:25px 15px 14px;border-right:1px solid var(--line)}.catalog-heading,.inspector-topline,.canvas-header,.assortment-row,.section-heading,.canvas-footer,.modal-header,.estimate-total,.opening-actions,.catalog-footer,.scene-top-label{display:flex;align-items:center;justify-content:space-between}.catalog-heading{padding:0 7px}.catalog-heading h1,.inspector-topline h2,.modal-header h2{margin:5px 0 0;font-size:21px;font-weight:820;letter-spacing:-.045em;line-height:1}.catalog-search{display:flex;align-items:center;gap:8px;height:38px;margin:23px 1px 13px;padding:0 10px;color:var(--ink-faint);background:#f3f0e9;border:1px solid transparent;border-radius:9px}.catalog-search:focus-within{background:var(--paper);border-color:#cbd787;box-shadow:0 0 0 3px #c2d6311f}.catalog-search input{width:100%;min-width:0;color:var(--ink);font-size:11px;background:transparent;border:0;outline:0}.catalog-search input::placeholder{color:#a1a59e}.catalog-search kbd{padding:3px 5px;color:#a6aaa3;font-size:8px;white-space:nowrap;background:#e8e4dc;border:1px solid #ddd8cf;border-radius:4px}.catalog-nav{display:flex;flex-direction:column;gap:2px}.catalog-nav button{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 10px;color:var(--ink-soft);font-size:11px;font-weight:700;text-align:left;background:transparent;border:0;border-radius:8px;cursor:pointer}.catalog-nav button:hover{color:var(--ink);background:#f4f1ea}.catalog-nav button.active{color:var(--olive);font-weight:820;background:#eef4c7}.catalog-nav button.active svg{color:#8da51c}.nav-count{margin-left:auto;color:#a2a89f;font-size:10px;font-weight:700}.catalog-divider{height:1px;margin:18px 4px 16px;background:var(--line)}.assortment-row{align-items:flex-end;padding:0 7px 11px}.assortment-row strong{display:block;margin-top:4px;font-size:12px;font-weight:820}.live-dot{display:flex;align-items:center;gap:5px;color:#84947d;font-size:8px;font-weight:700}.live-dot>span,.saved-state>span,.status-pulse{display:inline-block;width:6px;height:6px;background:#94ae38;border-radius:50%;box-shadow:0 0 0 3px #94ae3829}.catalog-list{display:flex;flex:1;flex-direction:column;gap:8px;min-height:0;padding:0 1px 11px;overflow:auto;scrollbar-color:#d7d1c7 transparent;scrollbar-width:thin}.product-card{display:flex;align-items:stretch;gap:9px;width:100%;padding:6px;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.product-card:hover{background:#f6f2e9;border-color:#e4ded3;transform:translateY(-1px)}.product-visual{position:relative;flex:0 0 68px;height:68px;overflow:hidden;background:#e4ddd0;border-radius:7px}.visual-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.26) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.26) 1px,transparent 1px);background-size:11px 11px}.visual-object{position:absolute;top:50%;left:50%;width:43px;height:31px;background:var(--model-color);border:1px solid rgba(31,41,36,.2);border-radius:5px;box-shadow:7px 7px #35433a29,0 7px 10px #292a231c;transform:translate(-50%,-50%) rotate(-8deg) skew(-9deg)}.visual-table .visual-object,.visual-desk .visual-object{top:45%;width:48px;height:22px;border-radius:4px;transform:translate(-50%,-50%) rotate(-9deg) skew(-6deg)}.visual-rack .visual-object{width:30px;height:49px;border-radius:2px;transform:translate(-50%,-50%) skew(-5deg);background:repeating-linear-gradient(to bottom,var(--model-color) 0 6px,rgba(255,255,255,.36) 7px 9px)}.visual-cabinet .visual-object{width:29px;height:52px;border-radius:2px;transform:translate(-50%,-50%) rotate(-2deg)}.visual-sofa .visual-object{width:50px;height:30px;border-radius:9px 9px 4px 4px}.visual-vanity .visual-object{width:34px;height:48px;border-radius:3px}.visual-shelf .visual-object{width:48px;height:15px;border-radius:2px;transform:translate(-50%,-50%) rotate(-8deg) skew(-9deg)}.visual-door .visual-object{width:23px;height:52px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--model-color) 72%,#554b40),var(--model-color) 24% 78%,color-mix(in srgb,var(--model-color) 68%,#fff7e9));box-shadow:5px 6px #35433a29,0 7px 10px #292a231c;transform:translate(-50%,-50%) perspective(35px) rotateY(-8deg)}.visual-door .visual-object:before{position:absolute;top:7px;right:5px;bottom:7px;left:5px;border:1px solid rgba(255,248,231,.55);border-radius:2px;content:""}.visual-door .visual-object:after{position:absolute;top:50%;right:4px;width:3px;height:3px;background:#74624e;border-radius:50%;content:""}.product-code{position:absolute;bottom:5px;left:6px;color:#fffdf9db;font-size:8px;font-weight:850;letter-spacing:.08em}.model-plus{position:absolute;top:5px;right:5px;display:grid;width:19px;height:19px;place-items:center;color:var(--olive);background:var(--accent);border-radius:6px}.product-info{display:flex;min-width:0;flex:1;flex-direction:column;justify-content:center;gap:4px}.product-info strong{display:-webkit-box;overflow:hidden;color:var(--ink);font-size:11px;font-weight:780;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.product-info>div{display:flex;align-items:baseline;justify-content:space-between;gap:5px}.product-info>div>span{color:var(--olive);font-size:10px;font-weight:850}.product-info small{overflow:hidden;color:var(--ink-faint);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.catalog-empty{display:flex;flex-direction:column;align-items:center;gap:7px;padding:42px 10px;color:var(--ink-faint);text-align:center}.catalog-empty strong{color:var(--ink-soft);font-size:12px}.catalog-empty span{font-size:10px}.catalog-footer{gap:8px;padding:11px 7px 0;border-top:1px solid var(--line)}.catalog-footer>span{display:flex;align-items:center;gap:6px;color:var(--ink-faint);font-size:9px}.catalog-footer button{width:25px;height:25px;color:var(--ink-faint);background:transparent;border-radius:7px}.catalog-footer button:hover{color:var(--ink);background:#f0ede6}.canvas-column{display:flex;min-width:0;min-height:0;flex-direction:column;padding:0 17px 13px}.canvas-header{height:59px;padding:0 6px}.canvas-breadcrumb{display:flex;align-items:center;gap:8px;color:var(--ink-faint);font-size:11px}.canvas-breadcrumb strong{color:var(--ink);font-weight:820}.breadcrumb-slash{color:#c3beb4}.saved-state{display:inline-flex;align-items:center;gap:7px;margin-left:6px;color:#84937e;font-size:9px;font-weight:700}.saved-state>span{width:5px;height:5px;box-shadow:none}.canvas-header-actions{display:flex;align-items:center;gap:7px}.small-action{gap:7px;height:31px;padding:0 10px;color:var(--ink-soft);font-size:10px;font-weight:750;background:transparent;border-radius:8px}.scene-shell{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden;background:var(--canvas);border:1px solid #ddd7cd;border-radius:15px;box-shadow:var(--shadow-small)}.scene-top-label{z-index:2;height:55px;padding:0 18px;background:#fffdfab8;border-bottom:1px solid rgba(207,201,191,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-top-label>div:first-child{display:flex;align-items:baseline;gap:10px}.scene-kicker{color:var(--ink-faint);font-size:9px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.scene-top-label strong{color:var(--ink);font-size:12px;font-weight:850}.scene-status{display:flex;align-items:center;gap:9px;color:var(--ink-soft);font-size:10px;font-weight:760}.status-pulse{width:7px;height:7px}.scene-canvas{position:relative;flex:1;min-height:410px;overflow:hidden;background:radial-gradient(circle at 52% 45%,rgba(255,255,255,.64),transparent 39%),#e9e5dc}.scene-3d,.plan-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.scene-3d canvas{display:block;width:100%;height:100%}.plan-svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.plan-svg.is-panning{cursor:grabbing}.plan-svg.is-resizing{cursor:crosshair}.plan-svg.is-rotating{cursor:grabbing}.plan-svg.is-adding-corner,.plan-svg.is-creating-room{cursor:crosshair}.room-vertex-handle{fill:#fffdf9;stroke:#b4c92b;stroke-width:3;cursor:move;vector-effect:non-scaling-stroke}.room-vertex-handle:hover{fill:#eef4c7}.room-vertex-anchor{fill:#f6fbf6;stroke:#7a9b8d;stroke-width:2.5;cursor:crosshair;vector-effect:non-scaling-stroke}.room-vertex-anchor:hover{fill:#e2f0dc;stroke:#587d6e}.secondary-room{opacity:.94}.secondary-area-label{fill:#46554ca8;font-size:15px}.room-creation-preview{pointer-events:none}.room-creation-preview polygon{fill:#b4c92b2b;stroke:#98aa28;stroke-width:3;stroke-dasharray:9 7;stroke-linejoin:round;vector-effect:non-scaling-stroke}.room-creation-preview polyline,.room-creation-preview line{fill:none;stroke:#98aa28;stroke-width:3;stroke-dasharray:9 7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.room-creation-preview circle{fill:#fffdf9;stroke:#98aa28;stroke-width:3;vector-effect:non-scaling-stroke}.room-creation-preview .drawing-cursor-point{fill:#98aa28;stroke:#fffdf9;stroke-width:3}.furniture-2d{cursor:grab;filter:drop-shadow(0 4px 4px rgba(47,50,44,.12))}.furniture-2d:active{cursor:grabbing}.furniture-rotate-handle{cursor:grab}.furniture-rotate-handle:active{cursor:grabbing}.dimension line{stroke:#909991;stroke-width:1.4}.dimension text{fill:#707b73;font-size:14px;font-weight:750;letter-spacing:.04em}.area-label{fill:#464b44b3;font-size:18px;font-weight:850;letter-spacing:.02em}.scene-grid-label{position:absolute;top:16px;left:18px;display:flex;align-items:center;gap:6px;padding:7px 9px;color:var(--ink-soft);font-size:9px;font-weight:750;background:#fffdfaa8;border:1px solid rgba(210,204,194,.75);border-radius:7px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.scene-rail{position:absolute;top:16px;right:17px;display:flex;flex-direction:column;gap:8px;width:104px;padding:8px;background:#fffdfadb;border:1px solid rgba(210,204,194,.86);border-radius:9px;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.scene-rail button{width:100%;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 5px;color:var(--ink-soft);background:transparent;border-radius:7px}.scene-tool-icon{display:flex;align-items:center;justify-content:center;line-height:1}.scene-tool-label{color:currentColor;font-size:9px;font-weight:780;line-height:1.15;text-align:center;white-space:normal}.scene-rail button:hover,.scene-rail button.active{color:var(--olive);background:#eef4c7}.scene-rail .corner-tool{color:var(--olive);background:#eef4c7;border:1px solid rgba(180,201,43,.34)}.scene-rail .corner-tool:hover,.scene-rail .corner-tool.active{color:#fffdf9;background:var(--olive);border-color:var(--olive)}.scene-rail .new-room-tool.active{color:#fffdf9;background:#6f8f7e;border-color:#6f8f7e}.scene-rail>span,.scene-bottom-controls span{display:block;height:1px;margin:3px 2px;background:var(--line)}.scene-bottom-controls{position:absolute;bottom:16px;left:50%;display:flex;align-items:center;gap:3px;padding:6px;background:#303933d1;border:1px solid rgba(255,255,255,.11);border-radius:9px;box-shadow:0 12px 28px #23272233;transform:translate(-50%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-bottom-controls button{width:29px;height:26px;color:#ffffffc9;background:transparent;border-radius:5px}.scene-bottom-controls button:hover,.scene-bottom-controls button.active{color:var(--accent);background:#ffffff1f}.scene-bottom-controls span{background:#ffffff36}.plan-hint{position:absolute;right:18px;bottom:64px;max-width:calc(100% - 36px);pointer-events:none;display:flex;align-items:center;gap:7px;padding:7px 9px;color:var(--ink-soft);font-size:9px;font-weight:700;background:#fffdfab8;border:1px solid rgba(210,204,194,.75);border-radius:7px}.plan-hint.is-corner-mode{color:#657317;background:#eef4c7e6;border-color:#b4c92b85}.canvas-footer{gap:18px;min-height:35px;padding:0 7px;color:var(--ink-faint);font-size:9px;font-weight:650}.canvas-footer span{display:flex;align-items:center;gap:6px}.canvas-footer span:first-child{color:#7e8e79}.canvas-footer span:nth-child(2){margin-left:auto}.canvas-footer strong{color:var(--ink-soft);font-weight:850}.inspector-panel{z-index:2;display:flex;min-width:0;flex-direction:column;padding:25px 17px 15px;border-left:1px solid var(--line)}.inspector-topline{align-items:flex-start;padding:0 3px}.inspector-topline h2{font-size:18px}.inspector-tabs{display:flex;gap:4px;margin:24px 1px 17px;padding:4px;background:#f1eee7;border:1px solid var(--line);border-radius:9px}.inspector-tabs button{display:grid;flex:1;height:30px;place-items:center;color:var(--ink-faint);background:transparent;border:0;border-radius:6px;cursor:pointer}.inspector-tabs button:hover,.inspector-tabs button.active{color:var(--olive);background:var(--paper);box-shadow:var(--shadow-small)}.inspector-scroll,.finish-scroll{min-height:0;flex:1;overflow:auto;padding:0 2px 2px;scrollbar-color:#d7d1c7 transparent;scrollbar-width:thin}.finish-section{padding:17px 0;border-bottom:1px solid var(--line)}.finish-intro{display:flex;align-items:center;gap:10px;padding-top:5px}.finish-intro-icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;color:var(--olive);background:#eef4c7;border:1px solid #d9e49d;border-radius:9px}.finish-intro>div:last-child{display:flex;min-width:0;flex-direction:column;gap:4px}.finish-intro strong{color:var(--ink);font-size:11px;font-weight:820}.finish-intro span{color:var(--ink-faint);font-size:9px}.finish-scope{display:flex;align-items:center;gap:9px;padding:10px;background:#f3f0e9;border:1px solid var(--line);border-radius:8px}.finish-scope-icon{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;color:var(--olive);background:var(--paper);border:1px solid var(--line);border-radius:7px}.finish-scope>span:nth-child(2){display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.finish-scope strong{color:var(--ink);font-size:10px;font-weight:820}.finish-scope small{color:var(--ink-faint);font-size:8px}.finish-scope>svg{color:var(--accent-deep)}.finish-colors-section,.finish-materials-section{padding-bottom:12px}.finish-material-field+.finish-material-field{margin-top:20px}.finish-material-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink-soft);font-size:10px;font-weight:760}.finish-material-label{display:flex;min-width:0;align-items:center;gap:7px}.finish-material-preview{display:inline-block;width:21px;height:21px;flex:0 0 21px;background-size:cover;background-position:center;border:1px solid rgba(39,49,45,.18);border-radius:6px;box-shadow:inset 0 0 0 2px #ffffff47}.finish-material-preview.has-texture{background-blend-mode:multiply}.finish-material-value{max-width:122px;overflow:hidden;color:var(--ink-faint);font-size:8px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.finish-texture-browser{margin-top:9px}.finish-texture-search{display:flex;align-items:center;gap:6px;padding:6px 7px;color:var(--ink-faint);background:#f7f4ee;border:1px solid var(--line);border-radius:6px}.finish-texture-search:focus-within{color:var(--olive);border-color:#c6d45a;box-shadow:0 0 0 2px #c6d45a2e}.finish-texture-search input{width:100%;min-width:0;padding:0;color:var(--ink);font-size:9px;background:transparent;border:0;outline:0}.finish-texture-search input::placeholder{color:var(--ink-faint)}.finish-texture-search button{display:grid;width:18px;height:18px;flex:0 0 18px;place-items:center;color:var(--ink-faint);background:transparent;border:0;border-radius:4px;cursor:pointer}.finish-texture-search button:hover{color:var(--olive);background:#eaf0c7}.finish-category-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;padding:1px 1px 4px}.finish-category-chip{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;padding:5px 7px;color:var(--ink-faint);font-size:8.5px;font-weight:760;line-height:1.15;white-space:nowrap;background:#f5f2eb;border:1px solid var(--line);border-radius:6px;cursor:pointer}.finish-category-chip span{color:var(--ink-faint);font-size:7px;font-weight:820}.finish-category-chip:hover,.finish-category-chip.active{color:var(--olive);background:#eef4c7;border-color:#ccd78c}.finish-category-chip.active span{color:var(--olive)}.finish-texture-count{margin-top:5px;color:var(--ink-faint);font-size:8px;font-weight:700}.finish-texture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.finish-texture-card{display:flex;min-width:0;min-height:61px;flex-direction:column;gap:4px;padding:3px;color:var(--ink-soft);text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:7px;cursor:pointer;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.finish-texture-card:hover{border-color:#c6d45a;box-shadow:0 2px 7px #39443d1a;transform:translateY(-1px)}.finish-texture-card.active{border-color:var(--accent-deep);box-shadow:0 0 0 2px #b4c92b52}.finish-texture-card img,.finish-color-tile{display:block;width:100%;height:37px;flex:0 0 37px;object-fit:cover;background:#eee9df;border-radius:4px}.finish-color-tile{background-image:linear-gradient(135deg,rgba(255,255,255,.3),transparent 46%,rgba(0,0,0,.08))}.finish-texture-card>span:last-child{display:block;width:100%;overflow:hidden;font-size:8px;font-weight:760;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.finish-texture-empty{margin-top:7px;padding:10px;color:var(--ink-faint);font-size:8px;line-height:1.35;text-align:center;background:#f7f4ee;border:1px dashed var(--line);border-radius:6px}.finish-material-tools{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px}.finish-upload-control{display:inline-flex;min-width:0;align-items:center;gap:5px;padding:5px 7px;color:var(--olive);font-size:8px;font-weight:820;background:#f0f4d9;border:1px solid #d6e08f;border-radius:6px;cursor:pointer}.finish-upload-control:hover{background:#e9f0bf;border-color:#c6d45a}.finish-upload-control input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.finish-material-source{min-width:0;overflow:hidden;color:var(--ink-faint);font-size:7px;font-weight:680;text-align:right;text-overflow:ellipsis;white-space:nowrap}.finish-tone-row{display:flex;align-items:center;gap:7px;margin-top:8px;color:var(--ink-faint);font-size:8px;font-weight:760}.finish-tone-options{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:5px}.finish-tone-options .finish-swatch{width:22px;height:22px;border-radius:5px}.finish-tone-options .finish-custom-color{gap:3px;font-size:8px}.finish-tone-options .finish-custom-color input{width:22px;height:22px;border-radius:5px}.finish-library-link{display:block;margin:0 0 12px;color:var(--olive);font-size:9px;font-weight:760;text-decoration:none}.finish-library-link:hover{color:var(--accent-deep);text-decoration:underline}.finish-color-field+.finish-color-field{margin-top:18px}.finish-color-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink-soft);font-size:10px;font-weight:720}.finish-color-heading>span{display:flex;align-items:center;gap:7px}.finish-color-heading code{color:var(--ink-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:8px;font-weight:700}.finish-color-preview{display:inline-block;width:17px;height:17px;background:var(--swatch-color);border:1px solid rgba(39,49,45,.18);border-radius:5px;box-shadow:inset 0 0 0 2px #ffffff47}.finish-color-options{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px}.finish-swatch{width:29px;height:29px;padding:0;background:var(--swatch-color);border:2px solid var(--paper);border-radius:7px;box-shadow:0 0 0 1px var(--line);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.finish-swatch:hover{transform:translateY(-1px);box-shadow:0 0 0 2px #c6d45a}.finish-swatch.active{box-shadow:0 0 0 2px var(--accent-deep)}.finish-custom-color{display:inline-flex;align-items:center;gap:5px;color:var(--ink-soft);font-size:9px;font-weight:700;cursor:pointer}.finish-custom-color input{width:29px;height:29px;padding:2px;background:var(--paper);border:1px solid var(--line);border-radius:7px;cursor:pointer}.finish-note{margin:16px 0 12px;padding:10px;color:var(--ink-faint);font-size:9px;line-height:1.45;background:#f8f5ef;border:1px solid var(--line);border-radius:8px}.finish-reset{width:100%;margin-bottom:18px;padding:9px 10px;color:var(--ink-soft);font-size:10px;font-weight:760;background:var(--paper);border:1px solid var(--line);border-radius:7px;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.finish-reset:hover{color:var(--olive);background:#f0f4d9;border-color:#ccd78c}.inspector-section{padding:17px 0;border-bottom:1px solid var(--line)}.inspector-section.first-section{padding-top:4px}.section-heading{margin-bottom:17px;color:var(--ink);font-size:11px;font-weight:820}.section-heading svg{color:var(--ink-faint)}.number-field{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px}.number-field>span{color:var(--ink-soft);font-size:10px;font-weight:650}.number-control{display:flex;align-items:center;height:29px;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:7px}.number-control:focus-within{border-color:#becf58;box-shadow:0 0 0 3px #c2d6311c}.number-control button{display:grid;width:25px;height:100%;place-items:center;color:#9ba198;background:transparent;border:0;cursor:pointer}.number-control button:hover{color:var(--olive);background:#eef4c7}.number-control input{width:63px;padding:0;color:var(--ink);font-size:11px;font-weight:820;text-align:right;background:transparent;border:0;outline:none;-moz-appearance:textfield}.number-control input::-webkit-outer-spin-button,.number-control input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.number-control em{width:26px;color:var(--ink-faint);font-size:9px;font-style:normal;text-align:center}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px}.inline-fields .number-field{display:block}.inline-fields .number-field>span{display:block;margin:0 0 5px 2px}.inline-fields .number-control input{width:42px}.toggle-row{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:34px;color:var(--ink-soft);font-size:10px;font-weight:650;cursor:pointer}.toggle-row input{position:absolute;width:1px;height:1px;opacity:0}.toggle-track{position:relative;display:block;width:32px;height:18px;padding:2px;background:#d6d3cb;border-radius:20px;transition:background .16s ease}.toggle-track span{display:block;width:14px;height:14px;background:#fffdf9;border-radius:50%;box-shadow:0 1px 3px #2e322c38;transition:transform .16s ease}.toggle-row input:checked+.toggle-track{background:var(--accent-deep)}.toggle-row input:checked+.toggle-track span{transform:translate(14px)}.opening-actions{gap:7px;margin-top:12px}.opening-actions button,.edit-walls,.material-select,.ghost-action{display:flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:10px;font-weight:760;background:var(--paper);border:1px solid var(--line);border-radius:7px;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}.opening-actions button{justify-content:center;width:50%;min-height:41px;padding:6px 5px;text-align:center}.opening-actions button:hover,.opening-actions button.is-added{color:var(--olive);background:#f0f4d9;border-color:#ccd78c}.edit-walls{justify-content:space-between;width:100%;margin-top:8px;padding:9px 10px}.edit-walls svg:last-child{margin-left:auto;color:var(--ink-faint)}.room-summary{display:grid;gap:10px}.room-summary>div{display:flex;align-items:center;justify-content:space-between}.room-summary span{color:var(--ink-faint);font-size:10px}.room-summary strong{color:var(--ink-soft);font-size:10px;font-weight:820}.selected-model-card{display:flex;gap:10px;padding:8px;background:#f3f0e9;border:1px solid var(--line);border-radius:9px}.selected-model-visual{position:relative;flex:0 0 54px;height:54px;overflow:hidden;background:linear-gradient(145deg,#c8c1b2,#e9e3d9);border-radius:7px}.selected-model-visual:before{position:absolute;top:50%;left:50%;width:34px;height:23px;background:var(--model-color);border-radius:4px;box-shadow:5px 5px #2d393026;content:"";transform:translate(-50%,-50%) rotate(-10deg) skew(-7deg)}.selected-model-visual.visual-door:before{width:20px;height:41px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--model-color) 72%,#554b40),var(--model-color) 24% 78%,color-mix(in srgb,var(--model-color) 68%,#fff7e9));transform:translate(-50%,-50%) perspective(30px) rotateY(-8deg)}.selected-model-visual.visual-door:after{position:absolute;top:50%;left:calc(50% + 8px);width:3px;height:3px;background:#74624e;border-radius:50%;content:""}.selected-model-visual span{position:absolute;bottom:5px;left:5px;color:#fffdfacc;font-size:7px;font-weight:850}.selected-model-card>div:last-child{display:flex;min-width:0;flex:1;flex-direction:column;justify-content:center;gap:4px}.selected-model-card strong{display:-webkit-box;overflow:hidden;color:var(--ink);font-size:10px;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.selected-model-card small{overflow:hidden;color:var(--ink-faint);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.material-select{justify-content:flex-start;width:100%;padding:9px}.material-select svg{margin-left:auto;color:var(--ink-faint)}.material-swatch,.estimate-swatch{display:inline-block;flex:0 0 auto;width:17px;height:17px;border:1px solid rgba(41,49,43,.1);border-radius:5px}.door-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 11px;color:var(--ink-soft);background:#f8f6f0;border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:color .16s ease,background .16s ease,border-color .16s ease}.door-toggle svg{color:var(--olive)}.door-toggle>span{flex:1;font-size:10px;font-weight:780;text-align:left}.door-toggle kbd{padding:3px 5px;color:var(--ink-faint);font-size:8px;font-weight:760;background:var(--paper);border:1px solid var(--line-strong);border-radius:4px}.door-toggle:hover,.door-toggle.is-open{color:var(--olive);background:#eef4c7;border-color:#ccd78c}.door-setting{display:grid;gap:6px;margin-top:11px}.door-setting>span{color:var(--ink-soft);font-size:10px;font-weight:650}.door-setting-select{width:100%;height:31px;padding:0 9px;color:var(--ink-soft);font:inherit;font-size:10px;font-weight:720;background:var(--paper);border:1px solid var(--line);border-radius:7px;outline:none;cursor:pointer}.door-setting-select:focus{border-color:#becf58;box-shadow:0 0 0 3px #c2d6311c}.door-keyboard-hint{margin:8px 0 0;color:var(--ink-faint);font-size:9px;line-height:1.35}.inspector-actions{display:flex;gap:7px;padding-top:17px}.ghost-action{justify-content:center;flex:1;padding:9px 6px}.ghost-action:hover{color:var(--olive);background:#f0f4d9;border-color:#ccd78c}.ghost-action.danger-action:hover{color:#9a5c51;background:#f9ece8;border-color:#e6beb5}.toast{position:fixed;z-index:20;right:24px;bottom:22px;display:flex;align-items:center;gap:9px;padding:11px 14px;color:#f9fbf4;font-size:11px;font-weight:750;background:#33443b;border:1px solid rgba(255,255,255,.12);border-radius:9px;box-shadow:var(--shadow-medium);animation:toast-in .18s ease-out}.toast svg{color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;padding:24px;place-items:center;background:#262c2752;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.estimate-modal,.render-modal{width:min(650px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto;background:var(--paper);border:1px solid rgba(255,255,255,.65);border-radius:16px;box-shadow:0 25px 80px #1f231f40;animation:modal-in .18s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:flex-start;padding:25px 25px 17px}.modal-header h2{font-size:23px}.estimate-table-head,.estimate-line{display:grid;grid-template-columns:minmax(0,1fr) 80px 110px;align-items:center;gap:14px}.estimate-table-head{padding:10px 25px;color:var(--ink-faint);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#f4f1eb;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.estimate-table-head span:nth-child(n+2),.estimate-line>:nth-child(n+2){text-align:right}.estimate-list{padding:4px 25px}.estimate-line{min-height:68px;border-bottom:1px solid var(--line)}.estimate-item{display:flex;align-items:center;gap:10px;min-width:0}.estimate-item strong,.estimate-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-item strong{color:var(--ink);font-size:11px;font-weight:780}.estimate-item small{margin-top:4px;color:var(--ink-faint);font-size:9px}.estimate-line>span{color:var(--ink-soft);font-size:10px}.estimate-line>strong{color:var(--olive);font-size:11px;font-weight:850}.empty-estimate{padding:34px 0;color:var(--ink-faint);font-size:11px;text-align:center}.estimate-total{margin:0 25px;padding:20px 0;color:var(--ink-soft);font-size:12px;font-weight:750}.estimate-total strong{color:var(--ink);font-size:19px;font-weight:850}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:15px 25px 22px;border-top:1px solid var(--line)}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;font-size:10px;font-weight:820;border-radius:8px;cursor:pointer}.primary-button{color:var(--olive);background:var(--accent);border:1px solid #b7c932;box-shadow:0 3px #aebd2b}.primary-button:hover{background:#d1e548;transform:translateY(-1px)}.secondary-button{color:var(--ink-soft);background:var(--paper);border:1px solid var(--line-strong)}.secondary-button:hover{color:var(--ink);background:#f4f1eb}.render-modal{width:min(590px,calc(100vw - 48px))}.render-preview{margin:0 25px 17px;overflow:hidden;background:#d8d9d0;border:1px solid var(--line);border-radius:10px}.preview-room{position:relative;height:240px;overflow:hidden;background:linear-gradient(160deg,#e9eee8 0,#e9eee8 45%,#c9b491 45%,#c9b491)}.preview-room>span{position:absolute;z-index:2;top:14px;left:16px;padding:5px 7px;color:#f7faf3;font-size:8px;font-weight:850;letter-spacing:.12em;background:#33443bc2;border-radius:5px}.preview-floor{position:absolute;right:-30px;bottom:-92px;left:7%;height:245px;background:repeating-linear-gradient(7deg,rgba(105,83,53,.14) 0 2px,transparent 2px 24px),linear-gradient(155deg,#d8c5a5,#b1926e);transform:perspective(430px) rotateX(58deg) rotate(-1deg);transform-origin:bottom}.preview-wall{position:absolute;background:linear-gradient(130deg,#f3f2ed,#d6d8d2);box-shadow:inset -10px 0 20px #5d645b1a}.preview-wall.back{top:0;right:8%;left:22%;height:132px;transform:skew(-32deg);transform-origin:right top}.preview-wall.left{top:4%;bottom:29%;left:12%;width:20%;transform:skewY(-28deg);transform-origin:right top}.preview-sofa{position:absolute;z-index:2;bottom:56px;left:32%;width:148px;height:56px;background:#64736a;border-radius:9px 9px 5px 5px;box-shadow:11px 12px #2a362d33;transform:skew(-13deg)}.preview-rack{position:absolute;z-index:2;right:23%;bottom:58px;width:57px;height:128px;background:repeating-linear-gradient(to bottom,#303d35 0,#303d35 11px,#c5ad87 11px,#c5ad87 18px);border:5px solid #303d35;box-shadow:8px 10px #2a362d2e;transform:skewY(-5deg)}.render-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 25px 18px}.render-option{display:flex;flex-direction:column;gap:5px;padding:12px;color:var(--ink-soft);text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:8px;cursor:pointer}.render-option:hover,.render-option.active{color:var(--olive);background:#f0f4d9;border-color:#cbd782}.render-option strong{font-size:11px;font-weight:820}.render-option span{color:var(--ink-faint);font-size:9px}@media (max-width: 1300px){.topbar{gap:12px;padding:0 15px}.brand-block{flex-basis:175px}.project-switcher{min-width:200px}.top-tool span{display:none}.top-tool{min-width:34px;height:31px}.workspace{grid-template-columns:228px minmax(540px,1fr) 290px}.catalog-sidebar{padding-right:10px;padding-left:10px}.inspector-panel{padding-right:13px;padding-left:13px}}@media (max-width: 1120px){.workspace{grid-template-columns:207px minmax(0,1fr) 262px}.catalog-sidebar{padding-right:9px;padding-left:9px}.inspector-panel{padding-right:11px;padding-left:11px}.product-visual{flex-basis:58px;height:58px}.project-switcher{min-width:165px}}@media (max-height: 820px){.topbar{height:62px}.catalog-sidebar,.inspector-panel{padding-top:17px}.catalog-search{margin-top:15px}.inspector-tabs{margin-top:16px}.scene-top-label{height:47px}}.placement-height-buttons{display:flex;gap:6px;margin:8px 0}.placement-height-buttons button{flex:1;padding:8px 4px;border:1px solid #d4ddd7;border-radius:7px;background:#f5f8f6;color:#264839;font-size:11px;cursor:pointer}.placement-hint{display:block;line-height:1.5;color:#6c7870;margin:8px 0 14px}.object-height-handle{position:absolute;z-index:5;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:26px;min-width:26px;height:30px;padding:0;border:1px solid #b9c9c1;border-radius:8px;background:#fffffff0;color:#087c60;box-shadow:0 1px 4px #0002;font-size:22px;font-weight:500;cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none}.object-height-handle:hover,.object-height-handle.is-dragging{background:#edf7f2;border-color:#087c60}.object-height-handle:after{content:attr(data-height);position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);padding:3px 6px;border-radius:4px;background:#fffffff0;color:#355348;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0}.object-height-handle:hover:after,.object-height-handle.is-dragging:after{opacity:1}.editor-command-bar{display:flex;flex-shrink:0;align-items:center;gap:2px;padding:0 8px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.editor-command-bar button{display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:6px;height:36px;min-width:32px;padding:0 8px;border:0;border-radius:5px;background:transparent;cursor:pointer;font-size:12px}.editor-command-bar button:hover{background:#e9efc5}.tool-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;background:#fffefa;border-radius:12px;padding:20px;box-shadow:0 16px 72px #172b3d33}.tool-dialog.wide{width:min(720px,calc(100vw - 32px))}.tool-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.tool-dialog h2{margin:0;font-size:18px}.tool-dialog h3{font-size:14px;margin:20px 0 12px}.tool-dialog p{line-height:1.6;font-size:13px}.tool-dialog button:not(.icon-button),.objects-panel button{min-height:32px;border:1px solid var(--line);background:#fffefa;border-radius:6px;padding:6px 10px;cursor:pointer}.tool-dialog button:hover,.objects-panel button:hover{background:#edf2d0}.project-name-form{display:flex;gap:8px;align-items:flex-end}.project-name-form label{flex:1;display:grid;gap:6px;font-size:12px}.project-name-form input{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px}.project-file-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.project-file-actions button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px}.tool-note{color:#637466;font-size:12px;line-height:1.5}.project-library{max-height:300px;overflow-y:auto}.project-library-row{display:flex;align-items:center;gap:8px;padding:12px 0;border-top:1px solid var(--line)}.project-library-row>div{flex:1}.project-library-row strong,.project-library-row small{display:block}.project-library-row small{color:#637466;margin-top:4px}.tool-toggle{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:13px}.tool-toggle input{width:18px;height:18px;accent-color:#7d941c}.tool-range{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:12px}.tool-range input{flex:1}.wall-coordinate-fields{display:flex;gap:12px}.wall-coordinate-fields label{display:grid;gap:8px;flex:1;min-width:0;font-size:12px}.wall-coordinate-fields input{width:100%;padding:8px;border:1px solid var(--line);border-radius:5px}.wall-lengths{padding-left:20px;font-size:13px;line-height:1.8}.object-list{flex:1;overflow-y:auto}.object-list-row{display:flex;gap:4px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.object-list-row.active{background:#edf3cf}.object-list-row .object-list-name{flex:1;min-width:0;text-align:left;border:0;background:transparent}.object-list-name strong,.object-list-name small{display:block;font-size:11px}.object-list-name small{color:#637466;margin-top:4px}.object-list-row>button:not(.object-list-name){padding:6px}@media print{body,#root,.editor-shell{height:auto!important;min-height:0!important;overflow:visible!important}.editor-shell>:not(.modal-backdrop){display:none!important}.modal-backdrop{position:static!important;display:block!important;padding:0!important;background:#fff!important}.estimate-modal{width:100%!important;max-height:none!important;box-shadow:none!important;border:0!important}.estimate-list{overflow:visible!important;max-height:none!important}.modal-actions,.modal-header button{display:none!important}.estimate-line{break-inside:avoid}}.editor-shell{height:100dvh;min-height:0;background:#f8f8f5}.editor-shell .topbar{flex:0 0 56px;height:56px;gap:8px;padding:0 12px;background:#fffefa;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.editor-shell .brand-block{min-width:128px;gap:8px}.editor-shell .brand-mark{width:32px;height:32px;border-radius:8px}.editor-shell .brand-block>div:last-child>span{display:none}.editor-shell .project-switcher{min-width:100px;max-width:160px;flex-shrink:0;padding:0 8px;gap:2px}.editor-shell .project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-shell .project-switcher .saved-state{margin:0;font-size:10px}.editor-shell .top-actions{margin-left:auto;flex-shrink:0;gap:4px}.editor-shell .top-tool,.editor-shell .view-toggle{height:36px;padding:0 10px}.editor-shell .top-tool{flex-direction:row;gap:6px}.editor-shell .top-tool span{display:inline;font-size:12px}.editor-shell .save-action{height:36px;font-size:12px;background:#eef3ce;color:#33443b}.editor-shell .icon-button{width:36px;height:36px}.editor-shell .toolbar-separator{margin:0 4px}.editor-shell .workspace{grid-template-columns:64px var(--catalog-width) minmax(0,1fr) var(--inspector-width)}.category-rail{grid-column:1;grid-row:1;background:#33443b;padding:8px 4px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.category-rail button{flex-shrink:0;min-height:60px;border:0;border-radius:6px;background:transparent;color:#e5ece5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer}.category-rail button span{font-size:10px;line-height:1.2}.category-rail button:hover{background:#455b4d}.category-rail button.active{background:#c2d631;color:#27312d}.editor-shell .catalog-sidebar{grid-column:2;grid-row:1;padding:16px 12px 8px;min-width:0;border-right:1px solid var(--line);background:#fffefa}.editor-shell .catalog-heading{flex-shrink:0;margin-bottom:12px}.editor-shell .catalog-heading h1{font-size:16px}.catalog-result-count{display:block;margin-top:4px;color:#69756b;font-size:11px}.editor-shell .catalog-search{flex-shrink:0;margin:0 0 12px;height:36px}.editor-shell .catalog-search input{font-size:12px}.editor-shell .catalog-list{gap:8px}.editor-shell .product-card{border:1px solid #e6e8df;border-radius:8px;padding:8px;gap:8px;min-height:92px;background:#fff}.editor-shell .product-card:hover{border-color:#a6b949;background:#f5f8e8}.editor-shell .product-visual{flex-basis:64px;height:72px}.editor-shell .product-info strong{font-size:12px;line-height:1.4}.editor-shell .product-info .eyebrow{font-size:10px;letter-spacing:0}.editor-shell .catalog-footer{flex-shrink:0;padding-top:8px;font-size:10px}.editor-shell .canvas-column{grid-column:3;grid-row:1;padding:0}.editor-shell .scene-shell{position:relative;border:0;border-radius:0;box-shadow:none}.editor-shell .scene-top-label{height:32px;min-height:32px;padding:0 12px;background:#f8f8f3}.editor-shell .scene-kicker{font-size:10px;letter-spacing:0;font-weight:600;text-transform:none}.editor-shell .scene-top-label strong{font-size:11px;font-weight:600}.editor-shell .scene-status{font-size:10px}.editor-shell .scene-canvas{min-height:0}.editor-shell .scene-grid-label{top:12px;left:12px;font-size:10px}.editor-shell .scene-rail{top:12px;right:12px;width:auto;padding:4px;gap:4px;flex-direction:row;background:#fffefaf2;box-shadow:none}.editor-shell .scene-rail button{min-height:36px;width:auto;flex-direction:row;padding:0 8px;gap:6px;border:0}.editor-shell .scene-tool-label{font-size:11px;font-weight:600}.editor-shell .scene-rail .corner-tool:not(.active){background:transparent;color:var(--ink-soft)}.editor-shell .scene-rail button:hover,.editor-shell .scene-rail button.active{background:#eaf0c2;color:#33443b}.editor-shell .scene-bottom-controls{bottom:12px;max-width:calc(100% - 24px);gap:2px;background:#fffefaee;border:1px solid #d4dacd;box-shadow:0 2px 8px #27312d14}.editor-shell .scene-bottom-controls button{width:32px;height:32px;flex-shrink:0;color:#4b5c4e}.editor-shell .scene-bottom-controls button:hover,.editor-shell .scene-bottom-controls button.active{color:#33443b;background:#eaf0c2}.editor-shell .plan-hint{right:auto;left:50%;bottom:64px;transform:translate(-50%);width:max-content;max-width:calc(100% - 24px);padding:6px 8px;font-size:10px;font-weight:500}.editor-shell .canvas-footer{flex-shrink:0;min-height:28px;gap:8px;padding:0 12px;border-top:1px solid var(--line);background:#f8f8f3}.editor-shell .canvas-footer span{font-size:10px;color:#657266}.editor-shell .canvas-footer span:last-child{margin-left:auto;white-space:nowrap}.editor-shell .inspector-panel{grid-column:4;grid-row:1;padding:16px 12px 8px;background:#fffefa}.editor-shell .inspector-topline{padding:0;align-items:center}.editor-shell .inspector-topline .eyebrow{display:none}.editor-shell .inspector-topline h2{font-size:15px}.editor-shell .inspector-tabs{flex-shrink:0;margin:12px 0;padding:3px;border-radius:6px}.editor-shell .inspector-section{padding:12px 0}.editor-shell details.inspector-section>summary{cursor:pointer;list-style:none;margin:0;font-size:12px;min-height:24px}.editor-shell details.inspector-section>summary::-webkit-details-marker{display:none}.editor-shell details.inspector-section[open]>summary{margin-bottom:12px}.editor-shell details.inspector-section:not([open])>summary svg{transform:rotate(-90deg)}.editor-shell .number-field{margin-bottom:10px}.editor-shell .number-field>span{font-size:11px}.editor-shell .number-control{min-height:32px}.editor-shell .number-control input{font-size:12px}.editor-shell .selected-model-card{margin-bottom:8px;padding:8px}.editor-shell .inspector-actions{position:sticky;bottom:0;padding:12px 0 4px;background:#fffefa}.editor-shell .ghost-action{font-size:12px}.editor-shell button:disabled{opacity:.35;cursor:default}.editor-shell .finish-intro,.editor-shell .finish-note,.editor-shell .finish-library-link{display:none}.editor-shell .finish-section{padding:12px 0}.editor-shell .finish-material-value{font-size:11px}.editor-shell .finish-surface-tabs{display:flex;gap:4px;padding:4px;margin:12px 0;background:#f1eee7;border-radius:6px}.finish-surface-tabs button{flex:1;border:0;padding:8px 4px;border-radius:4px;color:#657266;background:transparent;cursor:pointer}.finish-surface-tabs button.active{background:#fffefa;color:#27312d}@media (max-width: 1450px){.editor-command-bar button span{display:none}.editor-command-bar button{padding:0 7px}}@media (max-width: 1050px){.editor-shell .project-switcher{display:none}.editor-shell .brand-block{min-width:96px}.editor-shell .topbar{gap:8px;padding:0 8px}.editor-shell .scene-status{display:none}.editor-shell .workspace{position:relative;grid-template-columns:64px 0 minmax(0,1fr) var(--inspector-width)}.editor-shell .catalog-sidebar{position:absolute;grid-column:1 / -1;left:64px;top:0;bottom:0;width:260px;z-index:5;box-shadow:8px 0 24px #27312d24}.editor-shell .scene-grid-label{display:none}}@media (max-width: 760px){.editor-shell .brand-block{display:none}.editor-shell .top-actions{width:auto;justify-content:flex-start}.editor-shell .top-tool span,.editor-shell .save-action span,.editor-shell .price-indicator{display:none}.editor-shell .workspace{grid-template-columns:56px 0 minmax(0,1fr) 0}.editor-shell .inspector-panel{position:absolute;grid-column:1 / -1;right:0;top:0;bottom:0;width:272px;z-index:4;box-shadow:-8px 0 24px #27312d24}.editor-shell .catalog-sidebar{left:56px}.editor-shell .scene-bottom-controls{overflow-x:auto}.editor-shell .canvas-footer span:first-child{display:none}}.finish-room-label{display:grid;gap:8px;font-size:12px}.finish-room-label select{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:inherit;font:inherit}.finish-room-hint{font-size:11px;line-height:1.5;color:var(--muted)}.scene-view-tools{position:absolute;right:12px;top:72px;z-index:3;display:flex;flex-direction:column;gap:3px;padding:5px;border:1px solid #d8ddd2;border-radius:9px;background:#fffffff2;box-shadow:0 3px 14px #24352e18;max-height:calc(100% - 145px);overflow:visible}.scene-view-tools>button{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#42544a;cursor:pointer}.scene-view-tools button:hover{background:#edf1e4}.scene-view-tools button.active,.scene-view-tools button[aria-pressed=true]{background:#edf2c3;color:#304414}.scene-view-tools button:focus-visible{outline:2px solid #738c2c;outline-offset:2px}.scene-view-popover{position:absolute;right:53px;top:110px;width:205px;display:grid;gap:5px;padding:12px;background:#fff;border:1px solid #d8ddd2;border-radius:9px;box-shadow:0 4px 20px #24352e20}.scene-view-popover strong{font-size:13px;padding:4px}.editor-shell .lighting-panel{top:8px;width:min(320px,calc(100vw - 110px));max-height:calc(100% - 16px);overflow-y:auto;box-sizing:border-box;padding:16px;gap:14px;color:#35483e}.light-heading{display:flex;align-items:center;justify-content:space-between}.light-heading strong{font-size:17px;padding:0}.lighting-panel .light-heading button{padding:5px;display:flex}.lighting-panel summary{font-size:14px;font-weight:600;cursor:pointer;margin-bottom:14px}.lighting-panel details+details{border-top:1px solid #dedfd7;padding-top:16px}.light-control{display:grid;gap:8px;margin:13px 0;font-size:12px}.light-control>span{display:flex;justify-content:space-between;gap:10px}.light-control output{font-variant-numeric:tabular-nums;color:#6c7958}.light-control input[type=range]{width:100%;accent-color:#839c35;cursor:pointer}.light-control input[type=color]{width:100%;height:34px;padding:2px;border:1px solid #cbd1c1;background:transparent;cursor:pointer}.light-phases{display:flex;gap:3px;flex-wrap:wrap}.lighting-panel .light-phases button{font-size:10px;padding:7px 5px;flex:1;text-align:center}.light-direction{position:relative;width:140px;height:140px;border:1px solid #c5cdb8;border-radius:50%;margin:18px auto;background:#f5f6ef;touch-action:none;cursor:crosshair}.light-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;color:#869178;pointer-events:none}.light-sun{position:absolute;transform:translate(-50%,-50%);color:#a7b32b;font-size:29px;pointer-events:none}.light-check{display:flex;gap:8px;align-items:center;font-size:12px;accent-color:#839c35}.lighting-panel .light-reset{display:flex;gap:8px;align-items:center}.kitchen-series-list{display:flex;flex-direction:column;gap:10px;padding:10px;overflow-y:auto;min-height:0;flex:1}.kitchen-series-card{padding:0;border:1px solid #dedfd5;border-radius:8px;overflow:hidden;background:#fff;cursor:pointer;flex-shrink:0;text-align:left}.kitchen-series-card img{display:block;width:100%;aspect-ratio:1.65;object-fit:cover}.kitchen-series-card strong{display:block;padding:9px 12px;font-size:15px}.kitchen-series-card small{display:block;padding:0 12px 10px;color:#7e7163}.kitchen-series-card:disabled{opacity:.65;cursor:default}.catalog-sidebar:has(.kitchen-series-list) .catalog-list{display:none}.kitchen-series-controls{display:grid;gap:8px;padding:10px 14px;border-bottom:1px solid #e5e5db}.kitchen-series-controls button{border:0;background:none;text-align:left;color:#61713c;padding:0;cursor:pointer}.kitchen-series-controls select,.kitchen-setting select{width:100%;padding:8px;background:#fff;border:1px solid #dcded1;border-radius:5px;font:inherit}.kitchen-setting{display:grid;gap:5px;margin:10px 0;font-size:12px}.scene-view-popover button{border:0;border-radius:5px;background:#f6f7f1;padding:10px;text-align:left;font:inherit;font-size:12px;cursor:pointer}@media (max-height:650px){.scene-view-tools{top:58px;gap:1px}.scene-view-tools>button{height:28px}}.editor-shell .workspace{position:relative;padding-right:44px}.editor-shell .scene-view-tools{right:0;top:0;bottom:0;width:44px;max-height:none;box-sizing:border-box;padding:8px 5px;border:0;border-left:1px solid #526057;border-radius:0;box-shadow:none;background:#35483e;gap:4px;z-index:6}.editor-shell .scene-view-tools>button{color:#f7faf3}.editor-shell .scene-view-tools>button:hover{background:#4d6255}.editor-shell .scene-view-tools>button.active{background:#eaf0b9;color:#304414}.editor-shell .scene-view-popover{right:50px}@media (max-width:760px){.editor-shell .inspector-panel{right:44px}}@media (max-height:650px){.editor-shell .scene-view-tools{gap:2px}}.editor-shell .brand-mark{background:transparent;box-shadow:none;transform:none;border-radius:0}.editor-shell .brand-mark img{display:block;width:32px;height:32px;object-fit:contain}.editor-shell .brand-block strong{letter-spacing:.04em}.imported-model-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.kitchen-module-groups{display:flex;flex-direction:column;gap:5px}.kitchen-groups-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 8px;border:0;border-bottom:1px solid #d2d3cc;background:transparent;font:inherit;text-align:left;cursor:pointer}.kitchen-group-heading{display:flex;align-items:center;gap:8px;width:100%;min-height:55px;padding:12px 10px;border:0;border-radius:3px;background:#dedfd8;color:#292c25;font:inherit;font-size:14px;text-align:left;cursor:pointer}.kitchen-group-heading>span:first-child{flex:1}.kitchen-group-heading small{color:#62675b;font-size:11px}.kitchen-group-heading:focus-visible,.kitchen-groups-toggle:focus-visible{outline:2px solid #647943;outline-offset:-2px}.kitchen-group-heading:disabled,.kitchen-groups-toggle:disabled{opacity:1;cursor:default}.kitchen-group-products:not([hidden]){display:flex;flex-direction:column;gap:8px;padding:8px 0}.kitchen-group-empty{margin:8px;color:#707568;font-size:12px}.kitchen-subgroups:not([hidden]){display:flex;flex-direction:column;gap:5px;padding-top:5px}.kitchen-subgroup-heading{display:flex;align-items:center;gap:8px;width:100%;min-height:50px;padding:12px 10px;border:0;border-radius:3px;background:#f0f1ec;color:#292c25;font:inherit;font-size:14px;text-align:left;cursor:pointer}.kitchen-subgroup-heading>span:first-child{flex:1}.kitchen-subgroup-heading small{color:#62675b;font-size:11px}.kitchen-subgroup-heading:focus-visible{outline:2px solid #647943;outline-offset:-2px}.kitchen-subgroup-heading:disabled{opacity:1;cursor:default}.kitchen-module-actions{display:grid;gap:8px;margin:10px 0}.kitchen-module-actions button{padding:9px;border:1px solid #d6dacd;border-radius:5px;background:#f2f4ed;text-align:left;font:inherit;cursor:pointer}.kitchen-module-actions small{font-size:11px;line-height:1.5;color:#717968}.kitchen-module-actions kbd{float:right;font-size:10px}.catalog-groups{display:grid;gap:8px;width:100%;grid-column:1/-1;align-content:start}.catalog-group-row{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px;border:1px solid #d9ded0;border-radius:6px;background:#fff;color:#343b2e;text-align:left;font:inherit;cursor:pointer}.catalog-group-row>span{flex:1;font-size:13px;line-height:1.4}.catalog-group-row>small{color:#737d6c;font-size:12px;font-variant-numeric:tabular-nums}.catalog-group-row:hover{background:#f2f5e4;border-color:#afbd70}.catalog-group-row:focus-visible,.catalog-group-back:focus-visible{outline:2px solid #73832d;outline-offset:2px}.catalog-group-location{display:grid;gap:10px;padding:0 0 12px;font-size:14px}.catalog-group-back{display:flex;align-items:center;gap:6px;border:0;background:none;padding:8px 0;color:#56613f;text-align:left;font:inherit;font-size:12px;cursor:pointer}.catalog-search-path{display:block;padding:5px 2px;color:#737d6c;font-size:11px}.model-part-setting{display:grid;gap:7px;margin:14px 0;font-size:12px}.model-part-setting select,.model-material-controls select{min-width:0;max-width:100%;width:100%;padding:9px 7px;border:1px solid #d9ded0;border-radius:5px;background:#fff;color:#343b2e;font:inherit}.model-flip-setting{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.5;margin:12px 0}.model-material-setting{margin:15px 0 19px}.model-material-label{display:block;font-size:12px;margin-bottom:8px}.model-material-preview{height:70px;border:1px solid #d8dccf;border-radius:5px;display:flex;align-items:end;background-size:cover;background-position:center;overflow:hidden}.model-material-preview span{padding:5px 8px;background:#35402ca6;color:#fff;width:100%;font-size:11px}.model-material-controls{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:11px}.model-material-controls input[type=color]{width:34px;min-width:34px;height:34px;border:1px solid #d9ded0;border-radius:4px;padding:3px;background:#fff;cursor:pointer}.model-material-reset{border:0;padding:6px 0;color:#677548;background:none;text-align:left;cursor:pointer;font:inherit;font-size:11px}.model-settings-tabs{display:flex;gap:4px;margin-top:12px;padding:4px;background:#f1f3eb;border-radius:6px}.model-settings-tabs button{flex:1;border:0;border-radius:4px;background:none;padding:9px 5px;color:#67745b;font:inherit;font-size:12px;cursor:pointer}.model-settings-tabs button[aria-selected=true]{background:#fff;color:#303b26;box-shadow:0 1px 3px #25301712}.op-checkbox{position:relative;display:inline-flex;width:20px;height:20px;flex-shrink:0;vertical-align:middle}.op-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.op-checkbox-control{display:flex;width:100%;height:100%;align-items:center;justify-content:center;box-sizing:border-box;border:2px solid var(--op-checkbox-accent, #8B5CF6);border-radius:var(--op-radius-sm, 8px);background:var(--op-input-bg, transparent);transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}.op-checkbox-input:hover:not(:disabled)+.op-checkbox-control{transform:scale(1.12)}.op-checkbox-input:active:not(:disabled)+.op-checkbox-control{transform:scale(.94)}.op-checkbox-input:checked+.op-checkbox-control,.op-checkbox-input:indeterminate+.op-checkbox-control{background:var(--op-checkbox-accent, #8B5CF6)}.op-checkbox-input:focus-visible+.op-checkbox-control{box-shadow:0 0 0 3px color-mix(in srgb,var(--op-checkbox-accent, #8B5CF6) 30%,transparent)}.op-checkbox-input:disabled{cursor:not-allowed}.op-checkbox-input:disabled+.op-checkbox-control{opacity:.5}.op-checkbox-readonly .op-checkbox-input:disabled+.op-checkbox-control{opacity:1}.op-checkbox-control svg{width:100%;height:100%}.op-checkbox-control path{stroke:var(--op-on-accent, white);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transform:scale(.7) rotate(-12deg);transform-origin:center;transition:stroke-dashoffset .24s ease,transform .24s ease,opacity .18s ease}.op-checkbox-input:checked:not(:indeterminate)+.op-checkbox-control .op-checkbox-tick,.op-checkbox-input:indeterminate+.op-checkbox-control .op-checkbox-dash{stroke-dashoffset:0;opacity:1;transform:scale(1) rotate(0)}input[type=checkbox].op-checkbox-native{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:inline-block;box-sizing:border-box;flex-shrink:0;width:20px;height:20px;min-width:20px;min-height:20px;padding:0;margin:0;opacity:1;vertical-align:middle;border:2px solid var(--op-checkbox-accent, #8B5CF6);border-radius:var(--op-radius-sm, 8px);background:var(--op-input-bg, transparent);cursor:pointer;outline:none;transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease}input[type=checkbox].op-checkbox-native:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--op-on-accent, white);mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"%3E%3Cpath d="M4.5 10.5 8 14 15.5 6.5" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E') center / contain no-repeat;opacity:0;clip-path:inset(0 100% 0 0);transform:scale(.7) rotate(-12deg);transition:clip-path .24s ease,transform .24s ease,opacity .18s ease}input[type=checkbox].op-checkbox-native:checked,input[type=checkbox].op-checkbox-native:indeterminate{background:var(--op-checkbox-accent, #8B5CF6)}input[type=checkbox].op-checkbox-native:checked:before,input[type=checkbox].op-checkbox-native:indeterminate:before{opacity:1;clip-path:inset(0);transform:scale(1) rotate(0)}input[type=checkbox].op-checkbox-native:indeterminate:before{mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"%3E%3Cpath d="M5 10 15 10" stroke="black" stroke-width="2.5" stroke-linecap="round"/%3E%3C/svg%3E') center / contain no-repeat}input[type=checkbox].op-checkbox-native:hover:not(:disabled){transform:scale(1.12)}input[type=checkbox].op-checkbox-native:active:not(:disabled){transform:scale(.94)}input[type=checkbox].op-checkbox-native:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--op-checkbox-accent, #8B5CF6) 30%,transparent)}input[type=checkbox].op-checkbox-native:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion: reduce){.op-checkbox-control,.op-checkbox-control path,input[type=checkbox].op-checkbox-native,input[type=checkbox].op-checkbox-native:before{transition:none}.op-checkbox-input:hover:not(:disabled)+.op-checkbox-control,.op-checkbox-input:active:not(:disabled)+.op-checkbox-control,input[type=checkbox].op-checkbox-native:hover:not(:disabled),input[type=checkbox].op-checkbox-native:active:not(:disabled){transform:none}}
