:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{background-color:#0f1117;margin:0;padding:0}:root{--bg-dark:#0f1117;--bg-card:#181b24;--bg-card-hover:#202431;--bg-secondary:#12141c;--border-color:#262b3a;--border-light:#374151;--primary:#38bdf8;--primary-hover:#0ea5e9;--accent:#f59e0b;--text-main:#f3f4f6;--text-muted:#94a3b8;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-family);overflow-x:hidden}.app-layout{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-header{background-color:var(--bg-card);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.header-left{align-items:center;gap:12px;display:flex}.logo-badge{border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg,#0284c7,#38bdf8);justify-content:center;align-items:center;width:36px;height:36px;display:flex}.header-titles h1{letter-spacing:-.5px;font-size:1.15rem;font-weight:700}.app-badge{color:var(--primary);font-size:.75rem;font-weight:500}.header-center{align-items:center;display:flex}.active-mode-indicator{color:var(--primary);background-color:#38bdf81a;border:1px solid #38bdf840;border-radius:20px;align-items:center;gap:8px;padding:5px 14px;font-size:.85rem;display:flex}.header-right{align-items:center;gap:10px;display:flex}.info-pill{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);padding:4px 10px;font-size:.8rem}.info-pill b{color:var(--text-main)}.app-body{flex:1;display:flex;overflow:hidden}.main-viewport-column{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex;overflow-y:auto}.chat-sidebar-column{border-left:1px solid var(--border-color);background-color:var(--bg-card);flex-direction:column;flex-shrink:0;width:360px;display:flex}.project-mode-bar{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-wrap:nowrap;align-items:center;gap:8px;min-height:50px;padding:6px 10px;display:flex;overflow:hidden}.mode-segmented-group{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-shrink:0;align-items:stretch;gap:0;padding:3px;display:flex}.mode-seg-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:.82rem;font-weight:500;transition:all .18s;display:flex}.mode-seg-btn:hover{color:var(--text-main);background:#ffffff0f}.mode-seg-btn.active{background:var(--primary);color:#fff}.mode-seg-btn.btn-disabled{opacity:.45;pointer-events:auto}.seg-label{text-overflow:ellipsis;max-width:130px;overflow:hidden}.seg-count-badge{background:#ffffff2e;border-radius:10px;padding:1px 5px;font-size:.68rem;line-height:1.4}.mode-seg-btn.active .seg-count-badge{background:#ffffff4d}.bar-vertical-divider{background:var(--border-color);flex-shrink:0;width:1px;height:28px}.cabinet-tabs-container{flex:1;min-width:0;overflow:hidden}.cabinet-tabs-scroll{scrollbar-width:none;-ms-overflow-style:none;gap:5px;padding:2px 0;display:flex;overflow-x:auto}.cabinet-tabs-scroll::-webkit-scrollbar{display:none}.cabinet-tab-item{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 11px;font-size:.8rem;transition:all .18s;display:flex}.cabinet-tab-item:hover{background-color:var(--bg-card-hover);color:var(--text-main);border-color:#ffffff26}.cabinet-tab-item.selected{border-color:var(--primary);color:var(--primary);background-color:#38bdf81f;font-weight:600}.cabinet-tab-item.assembled{color:#a5b4fc;background-color:#6366f126;border-color:#6366f1}.cab-num-badge{background:#ffffff1a;border-radius:4px;padding:1px 4px;font-size:.66rem;font-weight:600}.cabinet-tab-item.selected .cab-num-badge{background:#38bdf840}.pill-type-icon{flex-shrink:0}.text-cyan{color:#22d3ee}.text-orange{color:#fb923c}.text-amber{color:#fbbf24}.text-muted{color:var(--text-muted)}.mode-right-cluster{flex-shrink:0;align-items:center;gap:6px;display:flex}.action-btn-primary{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(135deg,#0284c7,#0369a1);border:none;align-items:center;gap:6px;padding:7px 12px;font-size:.82rem;font-weight:500;display:flex}.quick-add-dropdown{position:relative}.quick-add-menu{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);z-index:50;min-width:220px;margin-top:4px;padding:4px;display:none;position:absolute;top:100%;right:0;box-shadow:0 10px 25px #00000080}.quick-add-dropdown:hover .quick-add-menu{flex-direction:column;display:flex}.quick-add-menu button{color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 12px;font-size:.82rem}.quick-add-menu button:hover{background-color:var(--bg-card-hover);color:var(--primary)}.action-btn-secondary{background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:.82rem;display:flex}.action-btn-secondary:hover{color:var(--text-main);background-color:var(--bg-card-hover)}.three-scene-container{border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#12131a;width:100%;height:480px;position:relative;overflow:hidden}.three-viewport{cursor:grab;width:100%;height:100%}.three-viewport:active{cursor:grabbing}.three-toolbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-sm);z-index:10;background:#181b24d9;border:1px solid #ffffff1a;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:12px;left:12px}.assembly-pdf-action{z-index:11;color:#eaf8ff;border-radius:var(--radius-sm);cursor:pointer;min-height:32px;font:inherit;background:#0369a1eb;border:1px solid #7dd3fcbf;align-items:center;gap:7px;padding:7px 12px;font-size:.78rem;font-weight:600;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 5px 18px #00000047}.assembly-pdf-action:hover:not(:disabled){background:#0284c7}.assembly-pdf-action:disabled{cursor:wait;opacity:.75}.toolbar-group{gap:4px;display:flex}.toolbar-divider{background:#ffffff26;width:1px;height:18px;margin:0 4px}.tool-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:5px 10px;font-size:.78rem;transition:all .2s;display:flex}.tool-btn:hover{color:var(--text-main);background:#ffffff14}.tool-btn.active{color:var(--primary);background:#38bdf833;font-weight:500}.three-hint{color:#fff9;pointer-events:none;background:#00000073;border-radius:20px;padding:4px 10px;font-size:.75rem;position:absolute;bottom:10px;left:12px}.assembly-slider-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-sm);z-index:10;background:#181b24e6;border:1px solid #ffffff26;width:320px;padding:10px 14px;position:absolute;bottom:12px;right:12px}.slider-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.slider-title{color:var(--text-main);align-items:center;gap:6px;font-size:.8rem;display:flex}.sparkle-icon{color:var(--accent)}.slider-quick-buttons{gap:4px;display:flex}.preset-pill{color:var(--text-muted);cursor:pointer;background:#ffffff14;border:none;border-radius:4px;padding:2px 7px;font-size:.72rem}.preset-pill.active{background:var(--primary);color:#fff}.explode-range{width:100%;accent-color:var(--primary);cursor:pointer}.kitchen-canvas-wrapper{flex-direction:column;gap:10px;display:flex}.canvas-header-bar{justify-content:space-between;align-items:center;display:flex}.room-size-badge{color:var(--text-main);font-size:.85rem;font-weight:600}.modules-count-badge{color:var(--text-muted);margin-left:8px;font-size:.8rem}.view-mode-tabs{background:var(--bg-card);border-radius:var(--radius-sm);border:1px solid var(--border-color);gap:4px;padding:4px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:.8rem;display:flex}.tab-btn.active{color:#fff;background:#0284c7;font-weight:500}.svg-canvas-container{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#181b24;justify-content:center;align-items:center;width:100%;height:480px;display:flex}.kitchen-svg-plane{width:100%;height:100%}.module-group-svg{cursor:pointer;transition:opacity .2s}.module-group-svg:hover rect{stroke:#38bdf8!important;stroke-width:2.5px!important}.cabinet-inspect-view{flex-direction:column;gap:14px;display:flex}.assembly-info-bar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:12px;padding:14px;display:flex}.info-title-row{align-items:center;gap:12px;display:flex}.info-title-row h4{font-size:1.05rem;font-weight:700}.dim-badge{color:var(--primary);background:#38bdf81f;border-radius:12px;padding:3px 10px;font-size:.8rem}.pieces-count-badge{color:var(--text-muted);font-size:.8rem}.selected-piece-card{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid #38bdf84d;padding:12px}.piece-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.piece-name{color:var(--primary);font-weight:600}.piece-size{background:#ffffff14;border-radius:4px;padding:2px 8px;font-size:.85rem}.piece-joints-list{font-size:.8rem}.joints-label{color:var(--text-muted);margin-bottom:4px;display:block}.piece-joints-list ul{flex-direction:column;gap:4px;list-style:none;display:flex}.piece-joints-list li{align-items:center;gap:6px;display:flex}.joint-icon{color:#10b981}.piece-hint-box{color:var(--text-muted);align-items:center;gap:8px;font-size:.82rem;display:flex}.piece-chips-row{flex-wrap:wrap;gap:6px;display:flex}.piece-chip{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:4px 9px;font-size:.75rem}.piece-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.cabinet-controls-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.material-config-panel,.facade-config-panel,.cut-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px}.panel-sub-header{color:var(--text-main);align-items:center;gap:8px;margin-bottom:12px;display:flex}.panel-sub-header h4{font-size:.95rem}.chip-buttons{gap:6px;margin-top:6px;display:flex}.chip-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;padding:5px 14px}.chip-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.facade-mode-row{gap:8px;margin-bottom:12px;display:flex}.facade-mode-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;flex:1;padding:7px;font-size:.82rem}.facade-mode-btn.active{color:#fff;background:#0284c7;border-color:#38bdf8}.facade-mode-btn.disabled{opacity:.4;cursor:not-allowed}.drawer-heights-editor{flex-direction:column;gap:8px;display:flex}.drawer-input-row{gap:8px;display:flex}.drawer-heights-input{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);flex:1;padding:6px 10px}.btn-small{background:var(--bg-card-hover);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;padding:6px 12px}.drawer-presets-row{gap:6px;display:flex}.preset-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:.75rem}.muted{color:var(--text-muted);font-size:.78rem}.cut-table-wrap{margin-top:10px;overflow-x:auto}.cut-table,.overview-table{border-collapse:collapse;width:100%;font-size:.82rem}.cut-table th,.overview-table th{text-align:left;background:var(--bg-secondary);color:var(--text-muted);border-bottom:1px solid var(--border-color);padding:8px 12px;font-weight:500}.cut-table td,.overview-table td{border-bottom:1px solid #ffffff0d;padding:8px 12px}.size-cell{color:var(--primary);font-weight:600}.parts-list{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px}.parts-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.parts-title{align-items:center;gap:8px;display:flex}.parts-actions{align-items:center;gap:12px;display:flex}.btn-export-csv{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:5px 10px;font-size:.78rem;display:flex}.btn-export-csv:hover{background:var(--bg-card-hover);color:var(--primary)}.progress-track{background:var(--bg-secondary);border-radius:2px;width:100%;height:4px;margin-bottom:14px;overflow:hidden}.progress-fill{background:#10b981;height:100%}.link-module{color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:none;font-weight:600}.btn-detail-module{color:var(--primary);cursor:pointer;background:#38bdf81a;border:1px solid #38bdf840;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;display:flex}.btn-detail-module:hover{background:var(--primary);color:#fff}.compact-module-selector{flex-direction:column;gap:10px;display:flex}.link-back-pill{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--primary);cursor:pointer;border-radius:20px;align-self:flex-start;padding:6px 14px;font-size:.8rem}.modules-pill-row{flex-wrap:wrap;gap:6px;display:flex}.module-pill{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;padding:4px 10px;font-size:.8rem}.module-pill.active{background:var(--primary);color:#fff}.chat-panel{flex-direction:column;height:100%;display:flex}.chat-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.chat-header-title{align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}.btn-settings-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none}.chat-settings-card{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-direction:column;gap:8px;padding:14px;font-size:.8rem;display:flex}.chat-settings-card input{background:var(--bg-card);border:1px solid var(--border-color);width:100%;color:var(--text-main);border-radius:4px;margin-top:4px;padding:6px 8px}.settings-btn-row{gap:8px;margin-top:6px;display:flex}.btn-save-settings{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px}.btn-cancel-settings{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:6px 12px}.chat-messages-container{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex;overflow-y:auto}.chat-bubble-wrap{gap:10px;display:flex}.chat-bubble-wrap.user{flex-direction:row-reverse}.bubble-icon{background:var(--bg-secondary);width:28px;height:28px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-bubble-wrap.user .bubble-icon{background:var(--primary);color:#fff}.bubble-content{border-radius:var(--radius-md);max-width:80%;padding:10px 14px;font-size:.85rem;line-height:1.45}.chat-bubble-wrap.assistant .bubble-content{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-main)}.chat-bubble-wrap.user .bubble-content{color:#fff;background:#0284c7}.bubble-content.loading{gap:4px;padding:12px 16px;display:flex}.dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s infinite bounce}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.chat-error-card{color:#f87171;border-radius:var(--radius-sm);background:#ef444426;border:1px solid #ef44444d;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;display:flex}.chat-input-row{border-top:1px solid var(--border-color);align-items:center;gap:8px;padding:12px 14px;display:flex}.chat-textarea{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);resize:none;flex:1;padding:8px 10px;font-family:inherit;font-size:.82rem}.chat-textarea:focus{border-color:var(--primary);outline:none}.btn-send-message{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.btn-send-message:disabled{opacity:.4;cursor:not-allowed}
