:root{color-scheme:light;font-family:Inter,Microsoft YaHei,system-ui,sans-serif;background:#edf2f7;color:#172033}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{min-height:38px;border:1px solid rgba(42,65,92,.16);border-radius:7px;background:#fff;color:#172033;padding:0 12px;cursor:pointer;box-shadow:0 1px 2px #1f2d3d14;touch-action:manipulation}button.active,button:hover{background-color:#1f8fff;border-color:#1f8fff;color:#fff}button.primary{background:#172033;border-color:#172033;color:#fff}button.danger{background:#fff0f0;border-color:#b423183d;color:#b42318}button:disabled{opacity:.45;cursor:not-allowed}.app-shell{height:100%;overflow:hidden}.workspace{height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr) 300px;overflow:hidden;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1)}.workspace:has(.left-panel.collapsed){grid-template-columns:0px minmax(0,1fr) 300px}.workspace:has(.right-panel.collapsed){grid-template-columns:280px minmax(0,1fr) 0px}.workspace:has(.left-panel.collapsed):has(.right-panel.collapsed){grid-template-columns:0px minmax(0,1fr) 0px}.left-panel:not(.collapsed){margin-right:12px}.right-panel:not(.collapsed){margin-left:12px}.panel,.view-card{border:1px solid rgba(42,65,92,.14);background:#ffffffe0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 14px 34px #1f2d3d1f}.panel{min-width:0;padding:14px;overflow:auto}.panel h2{margin:0 0 12px;font-size:15px}.segmented,.item-grid,.tool-section,.editor{display:grid;gap:4px}.editor strong{word-break:break-all;overflow-wrap:break-word}.tabs{position:relative;display:grid;grid-template-columns:repeat(3,1fr);background:#2a415c0f;border-radius:9px;padding:3px;gap:0!important;margin-bottom:16px;border:1px solid rgba(42,65,92,.04)}.tabs-slider{position:absolute;top:3px;left:3px;width:calc((100% - 6px) / 3);height:calc(100% - 6px);background:#fff;border-radius:6px;box-shadow:0 2px 6px #1f2d3d1f;transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:1;pointer-events:none}.tabs:has(.tab[data-tab=floorplan].active) .tabs-slider{transform:translate(0)}.tabs:has(.tab[data-tab=design].active) .tabs-slider{transform:translate(100%)}.tabs:has(.tab[data-tab=items].active) .tabs-slider{transform:translate(200%)}.tabs .tab{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px!important;padding:4px 0!important;background:transparent!important;border:none!important;box-shadow:none!important;color:#66758f!important;transition:color .2s ease;border-radius:6px}.tabs .tab .tab-icon{width:18px;height:18px;transition:transform .2s ease,stroke .2s ease;stroke:currentColor}.tabs .tab .tab-text{font-size:10px;font-weight:500;line-height:1}.tabs .tab:hover{color:#2a415c!important}.tabs .tab.active{color:#1f8fff!important}.tabs .tab.active .tab-icon{transform:scale(1.05)}.hidden{display:none!important}.hint{margin:0;color:#66758f;font-size:12px;line-height:1.55}.stage{min-width:0;min-height:0;display:grid;position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;max-height:100vh}.stage *,#floorplan *,#render-canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.stage-controls{position:absolute;top:10px;left:10px;right:10px;z-index:10;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.control-group-left{display:flex;align-items:center;justify-content:flex-start;gap:8px;pointer-events:auto;overflow:visible!important;position:relative;z-index:10000}.control-group-right{position:absolute;top:0;right:0;width:90%;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;gap:8px;pointer-events:auto}.btn-icon{width:32px;height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;border:0;background:#ffffffe6;box-shadow:0 4px 14px #1f2d3d1f;font-size:19px;cursor:pointer;transition:all .2s ease}.btn-icon svg{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;color:#172033}.btn-icon:disabled svg{color:#a0aec0}.stage-controls .btn-icon{background:transparent;box-shadow:none}.stage-controls .btn-icon:hover:not(:disabled){background:#1720330f}.stage-controls .btn-icon:disabled{background:transparent;opacity:.45}.icon-lines,.icon-lines:before,.icon-lines:after{width:17px;height:2px;display:block;border-radius:2px;background:currentColor;content:""}.icon-lines:before{transform:translateY(-6px)}.icon-lines:after{transform:translateY(4px)}#btn-view-toggle{height:32px;min-height:32px;padding:0 16px;border-radius:999px;font-weight:700}.file-dropdown{position:relative;z-index:10000}.dropdown-content{position:absolute;top:44px;left:0;min-width:152px;display:grid;gap:4px;padding:6px;border:1px solid rgba(42,65,92,.14);border-radius:8px;background:#fffffffa;box-shadow:0 10px 30px #1f2d3d33;z-index:10001}.dropdown-content button{width:100%;border:0;box-shadow:none;display:flex;align-items:center;white-space:nowrap;gap:8px;box-sizing:border-box;padding:8px 12px;text-align:left}.submenu-wrapper{position:relative}.submenu-wrapper .has-submenu{width:100%;border:0;box-shadow:none;display:flex;align-items:center;gap:8px;box-sizing:border-box;padding:8px 12px;text-align:left}.submenu-content{position:absolute;left:100%;top:-6px;min-width:152px;display:grid;gap:4px;padding:6px;border:1px solid rgba(42,65,92,.14);border-radius:8px;background:#fffffff5;box-shadow:0 10px 30px #1f2d3d26;z-index:1001}.submenu-content button{width:100%;border:0;box-shadow:none;display:flex;align-items:center;white-space:nowrap;gap:8px;box-sizing:border-box;padding:8px 12px;text-align:left}.dropdown-content button .shortcut,.submenu-wrapper .has-submenu .shortcut{margin-left:auto;font-size:11px;color:#1e293b66;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none}.dropdown-content button .badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background-color:#3b82f6;color:#fff;font-size:10px;font-weight:700;line-height:1;box-sizing:border-box;pointer-events:none}.dropdown-content button .badge.zero{background-color:#e2e8f0;color:#94a3b8}.view-card{min-height:0;display:none;overflow:hidden}.stage[data-view="2d"] .plan-card,.stage[data-view="3d"] .canvas-card{display:grid}#floorplan,#render-canvas{width:100%;height:100%;display:block;touch-action:none;outline:none;-webkit-user-drag:none}#floorplan{background:#f7f9fc}.field{display:grid;gap:6px;margin-bottom:10px;min-width:0}.fields-row{display:flex;gap:8px;margin-bottom:10px;width:100%}.fields-row .field{flex:1;margin-bottom:0;min-width:0}.field span,.check-field span{font-size:12px;color:#56657d}.field input[type=text],.field input[type=number],.field input[type=range],.field input[type=file],.field select{width:100%;min-width:0}.field input[type=file]{height:36px;line-height:34px;font-size:12px;border:1px solid rgba(42,65,92,.2);border-radius:7px;padding:0 8px;background:#fff;max-width:100%}.field input[type=text],.field input[type=number]{height:36px;border:1px solid rgba(42,65,92,.2);border-radius:7px;padding:0 10px}.field input[type=color]{width:100%;height:38px;border:1px solid rgba(42,65,92,.2);border-radius:6px;padding:2px;background:#fff}.check-field{display:flex;align-items:center;gap:8px;margin:8px 0}.empty-state{border:1px dashed rgba(42,65,92,.24);padding:16px;color:#66758f;text-align:center;font-size:13px}.selection-title{margin:2px 0 8px;font-size:13px;font-weight:700}.grid-layer line{stroke:#d8e0ec;stroke-width:1}.grid-layer .axis-line{stroke:#b9c7d8;stroke-width:1.4}.room-rect{fill:#f4efe6eb;stroke:#46576e40;stroke-width:1;cursor:pointer}.room-rect.selected{stroke:#36c2ff;stroke-width:3}.room-selected-outline{fill:none;stroke:#36c2ff;stroke-width:3;pointer-events:none}.room-hit-rect{fill:transparent;cursor:move;pointer-events:fill}.room-resize-handle,.roof-resize-handle{fill:#fff;stroke:#36c2ff;stroke-width:2;cursor:grab;filter:drop-shadow(0 3px 8px rgba(31,45,61,.2))}.wall-line{stroke-width:8;stroke-linecap:round;cursor:pointer;filter:drop-shadow(0 1px 1px rgba(31,45,61,.18))}.wall-line:hover,.wall-line.selected{stroke:#36c2ff;stroke-width:12}.opening-line{cursor:grab;pointer-events:stroke;stroke-linecap:round}.door-line{stroke:#8c5a32;stroke-width:13}.window-line{stroke:#48bfe3;stroke-width:13}.opening-line.selected{stroke:#36c2ff;stroke-width:16}.item-rect{stroke:#fff;stroke-width:2;cursor:grab;filter:drop-shadow(0 4px 8px rgba(31,45,61,.18))}.item-rect.selected{stroke:#36c2ff;stroke-width:4}.item-label{fill:#172033;font-size:11px;text-anchor:middle;pointer-events:none}.draw-anchor{fill:#ff4d6d}body.is-dragging-3d,body.is-dragging-3d *{cursor:grabbing!important}.right-panel{position:relative;z-index:15;transition:width .25s ease,padding .25s ease,border-color .25s ease,opacity .25s ease;overflow:visible;padding:0!important;max-height:100vh}.left-panel{position:relative;z-index:15;transition:width .25s ease,padding .25s ease,border-color .25s ease,opacity .25s ease;overflow:visible!important;padding:0!important;max-height:100vh}.right-panel-content,.left-panel-content{width:100%;height:100%;overflow-y:auto;box-sizing:border-box;padding:14px;max-height:100vh}.right-panel.collapsed{width:0;min-width:0;max-width:0;padding:0;border-color:transparent;opacity:0}.right-panel.collapsed>*:not(.toggle-side-btn){display:none!important}.left-panel.collapsed{width:0;min-width:0;max-width:0;padding:0;border-color:transparent;opacity:0}.left-panel.collapsed>*:not(.toggle-side-btn){display:none!important}.toggle-side-btn{position:absolute;left:-20px;top:50%;transform:translateY(-50%);width:20px;height:48px;min-height:48px;padding:0;border-radius:8px 0 0 8px;border-right:0;z-index:20}.left-panel .toggle-side-btn{right:-20px;left:auto;border-radius:0 8px 8px 0;border-left:0;border-right:1px solid rgba(42,65,92,.12)}@media (max-width: 860px){.workspace,.workspace:has(.left-panel.collapsed),.workspace:has(.right-panel.collapsed),.workspace:has(.left-panel.collapsed):has(.right-panel.collapsed){grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:0}.panel{padding:10px;border-left:0;border-right:0;box-shadow:0 6px 18px #1f2d3d1a}.right-panel-content,.left-panel-content{padding:10px;height:auto;max-height:100vh;overflow-y:auto}.segmented,.item-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented button,.item-grid button{min-height:34px;padding:0 6px;font-size:12px}.left-panel{transition:height .25s ease,padding .25s ease,border-color .25s ease,opacity .25s ease;overflow:visible!important;max-height:100vh}.left-panel.collapsed{height:0;min-height:0;max-height:0;padding:0!important;border-width:0;margin-bottom:0}.left-panel:not(.collapsed){margin-right:0;margin-bottom:12px}.right-panel{transition:height .25s ease,padding .25s ease,border-color .25s ease,opacity .25s ease;overflow:visible;max-height:100vh}.right-panel.collapsed{height:0;min-height:0;max-height:0;padding:0!important;border-width:0;margin-top:0}.right-panel:not(.collapsed){margin-left:0;margin-top:12px}}@media (max-height: 540px) and (orientation: landscape){.workspace{grid-template-columns:210px minmax(0,1fr) 210px;grid-template-rows:1fr}.workspace:has(.left-panel.collapsed){grid-template-columns:0px minmax(0,1fr) 210px!important}.workspace:has(.right-panel.collapsed){grid-template-columns:210px minmax(0,1fr) 0px!important}.workspace:has(.left-panel.collapsed):has(.right-panel.collapsed){grid-template-columns:0px minmax(0,1fr) 0px!important}.left-panel{height:100vh!important;max-height:none!important;padding:0!important}.left-panel.collapsed{width:0!important;max-width:0!important;height:100vh!important;max-height:none!important;padding:0!important;border-width:0;margin-right:0!important}.left-panel:not(.collapsed){margin-right:8px!important;margin-bottom:0!important}.right-panel{height:100vh!important;max-height:none!important;padding:0!important}.right-panel.collapsed{width:0!important;max-width:0!important;height:100vh!important;max-height:none!important;padding:0!important;border-width:0;margin-left:0!important}.right-panel:not(.collapsed){margin-left:8px!important;margin-top:0!important}.panel{padding:8px}.right-panel-content,.left-panel-content{padding:8px;height:100vh!important}.segmented,.item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}button{min-height:32px;padding:0 6px;font-size:12px}.tabs{grid-template-columns:repeat(3,1fr)!important;gap:0!important}.tabs .tab{min-height:48px!important;padding:4px 0!important;font-size:10px!important}.stage-controls{top:4px;left:4px;right:4px}}select{width:100%;height:36px;border:1px solid rgba(42,65,92,.2);border-radius:7px;background:#fff;padding:0 10px}.compact-field{margin-bottom:4px}.material-uploader{display:grid;gap:6px}.material-library{display:grid;gap:8px;margin-bottom:10px}.material-library-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px}.material-library-header button,.apply-material-button{min-height:30px;padding:0 8px;font-size:12px}.material-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.material-swatch{aspect-ratio:1;min-height:0;padding:0;border-radius:6px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px #2a415c1f}.material-swatch.active{outline:3px solid #36c2ff;outline-offset:1px}.material-swatch.empty-swatch{border:1.5px dashed rgba(42,65,92,.2);background-color:transparent;box-shadow:none}.component-material-row{display:grid;padding-bottom:4px;margin-bottom:8px;border-bottom:1px solid rgba(42,65,92,.1)}.room-resize-handle{fill:#fff;stroke:#1f8fff;stroke-width:2;cursor:grab;filter:drop-shadow(0 2px 5px rgba(31,45,61,.25))}.handle-east,.handle-west{cursor:ew-resize}.handle-north,.handle-south{cursor:ns-resize}@media (max-width: 860px){.material-grid{grid-template-columns:repeat(8,1fr)}.material-library-header{grid-template-columns:1fr}.shortcut{display:none!important}}.shortcut{font-size:11px;opacity:.65;margin-left:3px;font-weight:400}.upload-swatch{display:flex;align-items:center;justify-content:center;background:#2a415c0a!important;border:1px dashed rgba(42,65,92,.24)!important;cursor:pointer;transition:background-color .2s,border-color .2s;box-shadow:none!important}.upload-swatch svg{color:#66758f;transition:color .2s}.upload-swatch:hover{background:#2a415c14!important;border-color:#1f8fff!important}.upload-swatch:hover svg{color:#1f8fff!important}.context-icon-menu{position:fixed;z-index:9999;display:inline-flex;gap:6px;padding:6px;border:1px solid rgba(23,32,51,.12);border-radius:999px;background:#fffffff5;box-shadow:0 10px 28px #17203329;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.context-icon-button{width:34px;height:34px;min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;color:#172033;background:transparent;cursor:pointer}.context-icon-button:hover:not(:disabled){background:#1f8fff1f;color:#1f8fff}.context-icon-button:disabled{opacity:.35;cursor:not-allowed}.context-icon-button-danger{color:#ff4d4f}.context-icon-button-danger:hover:not(:disabled){background:#ff4d4f1f;color:#ff4d4f}.floor-floating-group{position:absolute;top:52px;right:10px;z-index:10;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px;background:#fff6;border:1px solid rgba(23,32,51,.08);border-radius:999px;box-shadow:0 6px 20px #17203314;pointer-events:auto;width:40px;box-sizing:border-box}.btn-floor-item{width:32px;height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#172033;cursor:pointer;background:transparent;border:0;border-radius:50%;transition:all .25s cubic-bezier(.4,0,.2,1);padding:0;box-shadow:none}.btn-floor-item:hover{background:#1720330f}.btn-floor-item.active{background:#fff;color:#172033;box-shadow:0 6px 20px #17203314}.btn-floor-item.active:hover{background:#172033;color:#fff}.btn-floor-add{width:32px;height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;color:#172033;background:transparent;border-radius:50%;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);padding:0;box-shadow:none}.btn-floor-add:hover{background:#172033;color:#fff;border-color:#172033;border-style:solid}.btn-floor-add svg{color:inherit;width:16px;height:16px}.roof-rect{opacity:.35;stroke:#8a3833;stroke-width:2;cursor:move}.stairs-symbol{opacity:.82;cursor:move}.stairs-symbol rect{stroke:#8d7351;stroke-width:1.5}.stairs-step-line{stroke:#2a415c8c;stroke-width:1.2}.roof-rect.selected,.stairs-symbol.selected rect{stroke:#1f8fff;stroke-width:3}.custom-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#17203373;display:flex;align-items:center;justify-content:center;z-index:99999;opacity:0;pointer-events:none;transition:opacity .2s cubic-bezier(.4,0,.2,1)}.custom-modal-backdrop.active{opacity:1;pointer-events:auto}.custom-modal-container{position:relative;max-height:90vh;overflow-y:auto;background:#fff;border:1px solid rgba(42,65,92,.16);border-radius:12px;width:90%;max-width:400px;padding:24px;box-shadow:0 20px 40px #1f2d3d2e,0 1px 3px #0000000d;transform:scale(.95) translateY(12px);transition:transform .25s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column}.custom-modal-backdrop.active .custom-modal-container{transform:scale(1) translateY(0)}.custom-modal-header{display:flex;align-items:center;gap:12px}.custom-modal-icon-wrapper{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;flex-shrink:0}.custom-modal-icon-wrapper.alert{background:#fff0f0;color:#d92d20}.custom-modal-icon-wrapper.confirm{background:#eff8ff;color:#1570ef}.custom-modal-icon-wrapper svg{width:22px;height:22px}.custom-modal-title{font-size:16px;font-weight:600;color:#172033;margin:0}.custom-modal-body{font-size:14px;color:#475467;line-height:1.5;margin:12px 0;padding-left:2px}.custom-modal-footer{display:flex;justify-content:flex-end;gap:12px}.custom-modal-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:14px;font-weight:500;min-height:38px;padding:0 16px;border-radius:8px;cursor:pointer;transition:all .15s ease;border:1px solid transparent;box-shadow:0 1px 2px #1f2d3d0d}.custom-modal-btn svg{flex-shrink:0}.custom-modal-btn.btn-secondary{background:#fff;border-color:#2a415c29;color:#344054}.custom-modal-btn.btn-secondary:hover{background:#f9fafb;border-color:#2a415c3d;color:#1d2939}.custom-modal-btn.btn-primary{background:#1f8fff;color:#fff}.custom-modal-btn.btn-primary:hover{background:#0076e5}.custom-modal-btn.btn-danger{background:#d92d20;color:#fff}.custom-modal-btn.btn-danger:hover{background:#b42318}.custom-modal-btn.btn-sm{min-height:30px;padding:0 10px;font-size:12px;border-radius:6px}.custom-modal-close{position:absolute;top:10px;right:10px;border:none!important;background:transparent!important;padding:6px!important;cursor:pointer;color:var(--text-muted, #999)!important;display:flex!important;align-items:center;justify-content:center;min-height:auto!important;box-shadow:none!important;border-radius:6px!important;transition:all .15s ease;z-index:10}.custom-modal-close:hover{background:#2a415c14!important;color:#172033!important}.custom-modal-input{width:100%;box-sizing:border-box;padding:8px 12px;font-size:14px;font-family:inherit;border:1px solid rgba(42,65,92,.2);border-radius:8px;outline:none;transition:border-color .15s ease,box-shadow .15s ease;background:#fafbfc;color:#172033}.custom-modal-input:focus{border-color:#1f8fff;box-shadow:0 0 0 3px #1f8fff1f;background:#fff}.project-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.project-list-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid rgba(42,65,92,.1);border-radius:8px;background:#fafbfc;transition:background .15s ease,border-color .15s ease}.project-list-item:hover{background:#f0f5ff;border-color:#1f8fff40}.project-list-item-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.project-list-item-name{font-size:14px;font-weight:500;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-list-item-time{font-size:12px;color:#7a8599}.project-list-item-actions{display:flex;gap:6px;flex-shrink:0;margin-left:12px}.project-list-item-actions .btn-danger{display:flex;align-items:center;justify-content:center;min-height:30px;padding:0 8px}.custom-dropdown{position:relative;width:100%}.custom-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:36px;border:1px solid rgba(42,65,92,.2);border-radius:7px;background:#fff;padding:0 12px;cursor:pointer;box-shadow:0 1px 2px #1f2d3d0d;font-size:13px;color:#172033;transition:all .15s ease;-webkit-user-select:none;user-select:none}.custom-dropdown-trigger:hover{border-color:#1f8fff99}.custom-dropdown.active .custom-dropdown-trigger{border-color:#1f8fff;box-shadow:0 0 0 2px #1f8fff33}.custom-dropdown-arrow{width:16px;height:16px;color:#66758f;transition:transform .2s ease;flex-shrink:0;margin-left:8px}.custom-dropdown.active .custom-dropdown-arrow{transform:rotate(180deg)}.custom-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;width:100%;background:#fff;border:1px solid rgba(42,65,92,.14);border-radius:9px;box-shadow:0 10px 25px #1f2d3d26;z-index:1000;opacity:0;transform:translateY(-8px);pointer-events:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px}.custom-dropdown.active .custom-dropdown-menu{opacity:1;transform:translateY(0);pointer-events:auto}.custom-dropdown-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:52px;font-size:11px;font-weight:500;color:#66758f;background:#2a415c0d;border-radius:6px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;border:1px solid transparent}.custom-dropdown-item:hover{background:#2a415c1a;color:#2a415c}.custom-dropdown-item.selected{background:#fff;color:#1f8fff;font-weight:600;box-shadow:0 2px 6px #1f2d3d1f;border:1px solid rgba(31,143,255,.15)}.custom-dropdown-item-icon{width:18px;height:18px;color:currentColor}.custom-dropdown-item-text{line-height:1}.custom-dropdown-text{display:flex;align-items:center;gap:8px}.custom-dropdown-trigger-icon{width:16px;height:16px;color:#66758f;flex-shrink:0}.custom-dropdown-group-title{grid-column:span 3;font-size:11px;font-weight:600;color:#4a5d78;background:#2a415c0a;border-radius:6px;text-align:center;padding:5px 12px;margin:6px 0 2px;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;gap:12px}.custom-dropdown-group-title:before,.custom-dropdown-group-title:after{content:"";flex:1;height:1px;background:#2a415c14}.building-tool-group{display:grid;gap:6px;margin-bottom:12px}.tool-group-toggle{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 0 10px;background:#2a415c0f;border-color:#2a415c14;color:#2a415c;box-shadow:none;font-size:13px;font-weight:700}.tool-group-toggle:hover{background:#2a415c1a;border-color:#2a415c1f;color:#172033}.tool-group-chevron{width:16px;height:16px;transition:transform .18s ease;flex-shrink:0}.tool-group-toggle[aria-expanded=false] .tool-group-chevron{transform:rotate(-90deg)}.building-tool-group .segmented{margin-bottom:0}.building-tool-group .segmented.hidden{display:none!important}.floor-tools,.room-tools,.opening-tools,.roof-tools,.stairs-tools,.fence-tools,.fence-gate-tools,.design-tools{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important;background:#2a415c0d;border-radius:9px;border:1px solid rgba(42,65,92,.04);margin-bottom:12px}.opening-tools .mode-text{line-height:1.2;text-align:center}.floor-tools .mode,.room-tools .mode,.opening-tools .mode,.roof-tools .mode,.stairs-tools .mode,.fence-tools .mode,.fence-gate-tools .mode,.design-tools .design-mode{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;height:58px!important;min-height:58px!important;padding:4px 0!important;font-size:11px!important;font-weight:500!important;color:#66758f!important;background:transparent!important;border:none!important;box-shadow:none!important;border-radius:6px!important;cursor:pointer;touch-action:manipulation;transition:all .2s ease!important;-webkit-user-select:none;user-select:none}.floor-tools .mode.hidden{display:none!important}.floor-tools .mode:hover,.room-tools .mode:hover,.opening-tools .mode:hover,.roof-tools .mode:hover,.stairs-tools .mode:hover,.fence-tools .mode:hover,.fence-gate-tools .mode:hover,.design-tools .design-mode:hover{background:#2a415c14!important;color:#2a415c!important}.floor-tools .mode.active,.room-tools .mode.active,.opening-tools .mode.active,.roof-tools .mode.active,.stairs-tools .mode.active,.fence-tools .mode.active,.fence-gate-tools .mode.active,.design-tools .design-mode.active{background:#fff!important;color:#1f8fff!important;font-weight:600!important;box-shadow:0 2px 6px #1f2d3d1f!important;border:1px solid rgba(31,143,255,.15)!important}.mode-icon{width:18px;height:18px;color:currentColor}.mode-text{line-height:1}.mode-shortcut{font-size:9px;color:#a0aec0;font-weight:400;line-height:1}.floor-tools .mode.active .mode-shortcut,.room-tools .mode.active .mode-shortcut,.opening-tools .mode.active .mode-shortcut,.roof-tools .mode.active .mode-shortcut,.stairs-tools .mode.active .mode-shortcut,.fence-tools .mode.active .mode-shortcut,.fence-gate-tools .mode.active .mode-shortcut,.design-tools .design-mode.active .mode-shortcut{color:#1f8fff99}@media (max-width: 860px){.mode-shortcut{display:none!important}.floor-tools .mode,.room-tools .mode,.opening-tools .mode,.roof-tools .mode,.stairs-tools .mode,.fence-tools .mode,.fence-gate-tools .mode,.design-tools .design-mode{height:48px!important;min-height:48px!important;gap:2px!important}}@media (max-height: 540px) and (orientation: landscape){.mode-shortcut{display:none!important}.floor-tools .mode,.room-tools .mode,.opening-tools .mode,.roof-tools .mode,.stairs-tools .mode,.fence-tools .mode,.fence-gate-tools .mode,.design-tools .design-mode{height:48px!important;min-height:48px!important;gap:2px!important}}.switch-field{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(42,65,92,.08);margin-bottom:12px}.switch-field>span{font-size:13px;font-weight:600;color:#172033}.switch{position:relative;display:inline-block;width:40px;height:22px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#2a415c29;transition:.25s ease;border-radius:22px}.slider-button{position:absolute;height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;transition:.25s ease;border-radius:50%;box-shadow:0 1px 3px #1f2d3d26;z-index:1;display:flex;justify-content:center;align-items:center}.slider-icon{position:absolute;width:10px;height:10px;color:#66758f;transition:color .25s ease,opacity .15s ease;z-index:2;pointer-events:none}.slider .unlock-icon{opacity:1}.slider .lock-icon{opacity:0}input:checked+.slider{background-color:#1f8fff}input:checked+.slider .slider-button{transform:translate(18px)}input:checked+.slider .slider-icon{color:#1f8fff}input:checked+.slider .unlock-icon{opacity:0}input:checked+.slider .lock-icon{opacity:1}.stage-controls .btn-icon.deactivated{opacity:.45}.editor-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid rgba(42,65,92,.08);margin-bottom:16px}.editor-header strong{margin:0;font-size:15px;font-weight:700;color:#172033}.furniture-filter-wrapper{display:flex;flex-direction:column;gap:10px}.search-input-wrapper{position:relative;flex-grow:1;display:flex;align-items:center}.search-icon-prefix{position:absolute;left:10px;display:flex;align-items:center;pointer-events:none;color:#94a3b8}#furniture-search-input{width:100%;height:36px;padding:0 30px;border:1px solid rgba(42,65,92,.12);border-radius:6px;font-size:13px;color:#1e293b;outline:none;background-color:#fff;transition:all .2s ease-in-out;box-sizing:border-box}#furniture-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.clear-search-btn{position:absolute;right:8px;background:none;border:none;padding:4px;cursor:pointer;color:#94a3b8;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.clear-search-btn:hover{background-color:#f1f5f9;color:#475569}.clear-search-btn.hidden{display:none!important}.furniture-upload-actions{display:flex;align-items:center;position:fixed;gap:7px;bottom:10px;width:90%}.furniture-upload-button,.furniture-upload-help{height:38px;border:1px solid rgba(42,65,92,.16);background:#fff;color:#172033;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease}.furniture-upload-button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600}.furniture-upload-help{width:38px;flex:0 0 38px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%}.furniture-upload-button:hover,.furniture-upload-help:hover{background:#1f8fff;border-color:#1f8fff;color:#fff;box-shadow:0 3px 10px #1f8fff26;transform:translateY(-1px)}.furniture-upload-button:focus-visible,.furniture-upload-help:focus-visible{outline:2px solid #1f8fff;outline-offset:2px}.furniture-upload-modal{max-width:380px}.furniture-upload-modal-body{padding-left:0}.furniture-upload-modal-body p{margin:0 0 10px}.furniture-upload-modal-body code{padding:2px 5px;border-radius:4px;background:#f2f4f7;color:#344054;font-size:12px}.furniture-upload-tip{margin:0 0 16px!important;font-size:12px;color:#66758f;line-height:1.5}.furniture-upload-links{display:flex;gap:10px;margin-top:14px}.furniture-upload-links button{flex:1}.item-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;height:calc(100vh - 250px)!important;min-height:180px!important;max-height:100vh!important;overflow-y:auto!important;overflow-x:hidden!important;align-content:start!important}.furniture-item-btn{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;background:#fff!important;border:1px solid rgba(42,65,92,.12)!important;border-radius:8px!important;cursor:pointer!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;min-height:82px!important;box-sizing:border-box!important;width:100%!important}.furniture-item-btn:hover{border-color:#3b82f6!important;box-shadow:0 4px 12px #3b82f626!important;transform:translateY(-2px)!important;background:#fbfdff!important}.furniture-item-btn.placement-active{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33;background:#dbeafec7}body.placing-furniture #floorplan,body.placing-furniture #render-canvas{cursor:crosshair}.furniture-item-btn img{width:44px!important;height:44px!important;object-fit:contain!important;margin-bottom:4px!important;pointer-events:none!important;transition:transform .2s ease,opacity .2s ease!important;border-radius:6px!important}.furniture-item-btn img.placeholder-active{background-color:#f8fafc!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none'%3E%3Crect width='24' height='24' rx='6' fill='%23f8fafc' stroke='%23e2e8f0' stroke-width='1'/%3E%3Cg stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpolyline points='3.27 6.96 12 12.01 20.73 6.96'/%3E%3Cline x1='12' y1='22.08' x2='12' y2='12'/%3E%3C/g%3E%3C/svg%3E")!important;background-size:32px 32px!important;background-position:center!important;background-repeat:no-repeat!important;border:1px solid rgba(148,163,184,.12)!important}@keyframes pulse-light{0%,to{opacity:1}50%{opacity:.68}}.furniture-item-btn img.placeholder-active.loading{animation:pulse-light 1.5s ease-in-out infinite!important}.furniture-item-btn:hover img{transform:scale(1.05)}.furniture-item-btn span{font-size:10.5px!important;color:#334155!important;text-align:center!important;word-break:break-all!important;line-height:1.2!important;font-weight:500!important}.mode-delete-wall,.mode-delete-wall *{cursor:url("data:image/svg+xml;utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%23ff4d4f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='0.38'%3E%3Cpath d='m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21Z' fill='%23ffccc7'/%3E%3Cpath d='M22 21H7'/%3E%3Cpath d='m5 11 9 9'/%3E%3C/svg%3E") 4 28,auto!important}.mode-delete-wall .wall-line:hover,.mode-delete-wall .opening-line:hover,.mode-delete-wall .fence-line:hover,.mode-delete-wall .fence-gate-line:hover,.mode-delete-wall.cursor-hover-erasable,.mode-delete-wall.cursor-hover-erasable *{cursor:url("data:image/svg+xml;utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%23ff4d4f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21Z' fill='%23ffccc7'/%3E%3Cpath d='M22 21H7'/%3E%3Cpath d='m5 11 9 9'/%3E%3C/svg%3E") 4 28,auto!important}.mode-delete-wall .grid-layer line{stroke:#ffd4d4!important}.mode-delete-wall .grid-layer .axis-line{stroke:#ff9e9e!important}.design-tools .design-mode[data-design-mode=brush].locked{background:#f0fdf4!important;color:#16a34a!important;border:1px solid rgba(22,163,74,.25)!important}.design-tools .design-mode[data-design-mode=brush].locked .mode-shortcut{color:#16a34a99}.design-mode-picker,.design-mode-picker *,.design-mode-brush,.design-mode-brush *,.design-mode-brush-locked,.design-mode-brush-locked *,.design-mode-bucket,.design-mode-bucket *{cursor:inherit!important}.design-mode-eraser,.design-mode-eraser *{cursor:url("data:image/svg+xml;utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21'/%3E%3Cpath d='m5.082 11.09 8.828 8.828'/%3E%3C/svg%3E") 4 28,auto!important}kbd{display:inline-block;padding:1px 4px;font-family:inherit;font-size:10px;line-height:10px;color:#64748b;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:3px;box-shadow:0 1px #00000026;margin-left:4px;vertical-align:middle}@media (max-width: 450px){.dropdown-content button .shortcut,.submenu-wrapper .has-submenu .shortcut{display:none!important}.right-panel-content,.left-panel-content{height:30vh!important}.view-card{max-height:100vh!important}.left-panel .toggle-side-btn{top:auto;bottom:-34px;left:50%;right:auto;transform:translate(-50%) rotate(90deg);width:20px;height:48px;min-height:20px;border-radius:0 8px 8px 0;border-top:0;border-left:1px solid rgba(42,65,92,.12);border-right:1px solid rgba(42,65,92,.12)}.right-panel .toggle-side-btn{top:-34px;bottom:auto;left:50%;right:auto;transform:translate(-50%) rotate(90deg);width:20px;height:48px;min-height:20px;border-radius:8px 0 0 8px;border-bottom:0;border-left:1px solid rgba(42,65,92,.12);border-right:1px solid rgba(42,65,92,.12)}}.settings-modal-backdrop{z-index:9999}.settings-modal-container{width:760px;max-width:90vw;height:540px;max-height:85vh;padding:0;display:flex;flex-direction:column;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 40px #00000038}.settings-modal-header{height:44px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.08);background:#f8fafc;position:relative}.settings-modal-title-wrapper{display:flex;align-items:center;gap:8px;color:#0f172a}.settings-header-icon{color:#2563eb}.settings-modal-title-wrapper h3{margin:0;font-size:15.5px;font-weight:600;letter-spacing:-.01em}.settings-modal-body{flex:1;display:flex;overflow:hidden;background:#fff}.settings-tabs-sidebar{width:210px;background:#f8fafc;border-right:1px solid rgba(0,0,0,.06);padding:10px 6px;display:flex;flex-direction:column;gap:4px;box-sizing:border-box;position:relative}.settings-tabs-slider{position:absolute;top:0;left:6px;width:calc(100% - 12px);height:40px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #1f2d3d1f;transition:transform .22s cubic-bezier(.4,0,.2,1),height .22s ease;z-index:1;pointer-events:none}.settings-tab-item{width:100%;padding:10px 12px;border:none;background:transparent!important;border-radius:8px;display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:500;color:#64748b;cursor:pointer;transition:color .15s ease;text-align:left;position:relative;z-index:2}.settings-tab-item svg{color:#64748b;transition:color .15s ease;flex-shrink:0}.settings-tab-item:hover{color:#1e293b}.settings-tab-item:hover svg{color:#2563eb}.settings-tab-item.active{color:#2563eb;font-weight:600}.settings-tab-item.active svg{color:#2563eb}.settings-tab-content{flex:1;padding:12px 18px;overflow-y:auto}.settings-panel{display:none}.settings-panel.active{display:block}.panel-section-title{margin:14px 0 6px;font-size:12.5px;font-weight:600;color:#64748b;letter-spacing:.02em;padding-bottom:4px;border-bottom:1px dashed #e2e8f0;display:flex;align-items:center;gap:6px}.panel-section-title:first-child{margin-top:0}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f8fafc;gap:16px}.setting-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.setting-label{font-size:13.5px;font-weight:500;color:#1e293b}.setting-desc{font-size:12px;color:#64748b;line-height:1.35}.toggle-switch{position:relative;display:inline-block;width:42px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:background-color .2s ease;border-radius:22px}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;transition:transform .2s cubic-bezier(.4,0,.2,1);border-radius:50%;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background-color:#2563eb}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:disabled+.toggle-slider{background-color:#e2e8f0;cursor:not-allowed}.toggle-switch input:disabled+.toggle-slider:before{background-color:#f1f5f9}.setting-item.disabled{opacity:.55;cursor:not-allowed}.setting-item.disabled .setting-label,.setting-item.disabled .setting-desc{color:#94a3b8!important}.setting-item.disabled input,.setting-item.disabled select,.setting-item.disabled .settings-select,.setting-item.disabled .settings-range{opacity:.6;cursor:not-allowed!important;pointer-events:none}.setting-control{width:200px;max-width:50%;flex-shrink:0;display:flex;justify-content:flex-end;align-items:center}.setting-control select,.setting-control .settings-select{width:100%!important;max-width:100%!important;box-sizing:border-box}.settings-select{height:32px;border:1px solid rgba(42,65,92,.2);border-radius:6px;background:#fff;padding:0 8px;font-size:12.5px;color:#172033;outline:none;transition:border-color .15s ease,box-shadow .15s ease;cursor:pointer}.settings-select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.slider-with-val{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-shrink:0;width:100%}.settings-range{width:96px;accent-color:#334155;cursor:pointer}.range-val{font-size:12.5px;font-weight:600;color:#334155;min-width:32px;text-align:right}.btn-range-reset,button.btn-range-reset{background:transparent!important;background-color:transparent!important;border:0!important;border-style:none!important;outline:none!important;box-shadow:none!important;padding:2px 6px!important;margin-left:6px!important;margin-right:2px!important;cursor:pointer!important;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease;line-height:1;flex-shrink:0}.btn-range-reset:hover,button.btn-range-reset:hover{color:#334155!important;background:transparent!important;background-color:transparent!important;border:0!important;box-shadow:none!important}.btn-range-reset:active,button.btn-range-reset:active{color:#0f172a!important;background:transparent!important;background-color:transparent!important;border:0!important;box-shadow:none!important}.ai-feature-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.ai-card-header{display:flex;align-items:flex-start;gap:10px}.ai-card-header svg{color:#2563eb;margin-top:2px;flex-shrink:0}.ai-card-title{display:block;font-size:13.5px;font-weight:600;color:#0f172a;margin-bottom:2px}.ai-card-desc{font-size:12px;color:#64748b;line-height:1.4}.ai-card-desc code{background:#f1f5f9;color:#2563eb;padding:1px 5px;border-radius:4px;font-family:monospace}.ai-card-actions-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:2px}.settings-modal-footer{height:48px;padding:0 16px;border-top:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;background:#f8fafc}.settings-modal-footer .footer-actions-right{display:flex;align-items:center;gap:8px}@media (max-width: 768px),(max-height: 520px){.settings-modal-backdrop{padding:0!important}.settings-modal-container{width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important;border-radius:0!important}.settings-modal-container .settings-tabs-sidebar{width:140px!important;padding:8px 4px}.settings-modal-container .settings-tab-item{padding:10px 8px;font-size:13px;gap:6px}.settings-modal-container .settings-tab-item svg{width:16px;height:16px}.settings-modal-container .settings-tab-content{padding:16px 14px}.settings-modal-container .setting-item{padding:12px 0}.settings-modal-container .setting-control{width:140px!important;max-width:50%!important}.settings-modal-container .ai-card-actions-row{flex-wrap:wrap;justify-content:flex-start}}
