.share-overlay[data-v-4e55477b]{z-index:99999;background:rgba(0,0,0,.5);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.share-dialog[data-v-4e55477b]{background:#fff;border-radius:8px;width:560px;max-height:85vh;overflow-y:auto;box-shadow:0 4px 20px rgba(0,0,0,.3)}.share-header[data-v-4e55477b]{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.share-header h3[data-v-4e55477b]{margin:0;font-size:16px}.share-close[data-v-4e55477b]{cursor:pointer;color:#999;padding:0 4px;font-size:20px}.share-close[data-v-4e55477b]:hover{color:#333}.share-body[data-v-4e55477b]{padding:20px}.share-section[data-v-4e55477b]{margin:12px 0}.share-label[data-v-4e55477b]{margin-bottom:8px;font-size:14px;font-weight:600}.share-footer[data-v-4e55477b]{text-align:right;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.share-result[data-v-4e55477b]{align-items:center;gap:20px;padding:16px 0;display:flex}.share-qrcode[data-v-4e55477b]{flex-shrink:0}.share-info[data-v-4e55477b]{word-break:break-all;flex:1}.share-url[data-v-4e55477b]{color:#666;margin:8px 0;font-size:12px}.share-empty[data-v-4e55477b]{text-align:center;color:#999;padding:16px}h4[data-v-4e55477b]{margin:0 0 8px;font-size:15px}.radio-item[data-v-4e55477b]{cursor:pointer;align-items:center;gap:4px;margin-right:16px;font-size:13px;display:inline-flex}.btn[data-v-4e55477b]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:4px;padding:6px 16px;font-size:13px}.btn[data-v-4e55477b]:hover{opacity:.8}.btn-primary[data-v-4e55477b]{color:#fff;background:#409eff;border-color:#409eff}.btn[data-v-4e55477b]:disabled{opacity:.5;cursor:not-allowed}.btn-sm[data-v-4e55477b]{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:3px;margin-right:4px;padding:2px 8px;font-size:12px}.btn-danger[data-v-4e55477b]{color:#f56c6c;border-color:#f56c6c}.share-table[data-v-4e55477b]{border-collapse:collapse;width:100%;margin-top:8px;font-size:12px}.share-table th[data-v-4e55477b],.share-table td[data-v-4e55477b]{text-align:left;border:1px solid #eee;padding:6px 8px}.share-table th[data-v-4e55477b]{background:#f5f7fa;font-weight:600}.share-history[data-v-4e55477b]{border-top:1px solid #eee;margin-top:20px;padding-top:16px}.status-active[data-v-4e55477b]{color:#67c23a}.status-closed[data-v-4e55477b]{color:#909399}.status-expired[data-v-4e55477b]{color:#f56c6c}.visit-overlay[data-v-4e55477b]{z-index:100000;background:rgba(0,0,0,.4);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.visit-dialog[data-v-4e55477b]{background:#fff;border-radius:8px;width:440px;max-height:60vh;overflow-y:auto}.room-label-settings[data-v-04ea9fae]{align-items:center;gap:6px;display:flex}.room-label-settings .setting-label[data-v-04ea9fae]{white-space:nowrap;opacity:.85;color:#606266;font-size:12px}.room-label-settings .setting-btn[data-v-04ea9fae]{cursor:pointer;color:#606266;background:#fff;border:1px solid #dcdfe6;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}@media (pointer:coarse){.view-tab[data-v-04ea9fae]{min-height:44px;padding:8px 14px}.room-label-settings .setting-btn[data-v-04ea9fae]{width:36px;height:36px}.room-label-settings .setting-label[data-v-04ea9fae]{font-size:13px}.font-size-select[data-v-04ea9fae]{width:70px;height:36px;font-size:14px}.color-picker[data-v-04ea9fae]{width:36px;height:36px}}.room-label-settings .setting-btn[data-v-04ea9fae]:hover{color:#409eff;border-color:#409eff}.room-label-settings .setting-btn.danger[data-v-04ea9fae]:hover{color:#f56c6c;border-color:#f56c6c}.font-size-select[data-v-04ea9fae]{cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-radius:4px;outline:none;width:60px;height:28px;padding:0 4px;font-size:12px}.font-size-select[data-v-04ea9fae]:focus{border-color:#409eff}.color-picker[data-v-04ea9fae]{cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-radius:4px;width:28px;height:28px;padding:2px}.toolbar-brand[data-v-04ea9fae]{color:var(--color-toolbar-text);white-space:nowrap;align-items:center;gap:8px;padding:0 10px;display:flex}.brand-name[data-v-04ea9fae]{letter-spacing:1.5px;background:linear-gradient(135deg,#93c5fd 0%,#60a5fa 50%,#818cf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:15px;font-weight:700}.view-switcher[data-v-04ea9fae]{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.06);border-radius:8px;gap:2px;padding:3px;display:flex}.view-tab[data-v-04ea9fae]{color:var(--color-toolbar-text-secondary,rgba(255,255,255,.55));cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 18px;font-size:13px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.view-tab[data-v-04ea9fae]:hover{color:rgba(255,255,255,.85);background:rgba(255,255,255,.06)}.view-tab.active[data-v-04ea9fae]{color:#fff;background:var(--color-primary);font-weight:600;box-shadow:0 2px 8px rgba(37,99,235,.4)}.view-tab.active svg[data-v-04ea9fae]{filter:drop-shadow(0 0 2px rgba(255,255,255,.3))}.list-toolbar-group[data-v-04ea9fae]{gap:8px}.integration-toolbar-group[data-v-04ea9fae]{gap:4px}.integration-toolbar-group .toolbar-btn[data-v-04ea9fae]{border-radius:6px;flex-direction:row;gap:5px;min-width:auto;height:32px;padding:0 12px;font-size:13px;font-weight:500}.integration-toolbar-group .toolbar-btn .btn-icon[data-v-04ea9fae]{flex-shrink:0;font-size:15px}.integration-toolbar-group .toolbar-btn .btn-label[data-v-04ea9fae]{letter-spacing:0;font-size:13px;line-height:1}.integration-toolbar-group .toolbar-divider-v[data-v-04ea9fae]{background:rgba(255,255,255,.12);height:20px;margin:0 10px}.integration-toolbar-group .editor-tool-dropdown[data-v-04ea9fae]{min-width:180px;padding:6px}.integration-toolbar-group .editor-tool-dropdown .dropdown-item[data-v-04ea9fae]{color:rgba(255,255,255,.8);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.integration-toolbar-group .editor-tool-dropdown .dropdown-item[data-v-04ea9fae]:hover{color:#fff;background:rgba(255,255,255,.08)}.integration-toolbar-group .editor-tool-dropdown .dropdown-item svg[data-v-04ea9fae]{opacity:.7;flex-shrink:0}.integration-toolbar-group .editor-tool-dropdown .dropdown-item:hover svg[data-v-04ea9fae]{opacity:1}.integration-toolbar-group .shape-dropdown[data-v-04ea9fae]{min-width:260px;padding:10px}.integration-toolbar-group .shape-dropdown .dropdown-item[data-v-04ea9fae]{padding:0}.shape-grid[data-v-04ea9fae]{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.shape-grid-item[data-v-04ea9fae]{color:rgba(255,255,255,.7);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-family:inherit;font-size:11px;transition:all .15s;display:flex}.shape-grid-item[data-v-04ea9fae]:hover{color:#fff;background:rgba(255,255,255,.08)}.shape-grid-item svg[data-v-04ea9fae]{opacity:.75}.shape-grid-item:hover svg[data-v-04ea9fae]{opacity:1}.toolbar-segmented[data-v-04ea9fae]{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.06);border-radius:6px;gap:2px;padding:2px;display:flex}.seg-btn[data-v-04ea9fae]{color:rgba(255,255,255,.55);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:4px 14px;font-size:12px;font-weight:500;transition:all .2s}.seg-btn[data-v-04ea9fae]:hover{color:rgba(255,255,255,.8);background:rgba(255,255,255,.06)}.seg-btn.active[data-v-04ea9fae]{color:#fff;background:var(--color-primary);box-shadow:0 1px 4px rgba(37,99,235,.3)}.toolbar-price-select[data-v-04ea9fae]{align-items:center;gap:4px;display:flex}.price-label[data-v-04ea9fae]{color:rgba(255,255,255,.6);white-space:nowrap;font-size:12px}.price-select[data-v-04ea9fae]{color:rgba(255,255,255,.9);cursor:pointer;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;outline:none;padding:3px 6px;font-size:12px;transition:all .2s}.price-select[data-v-04ea9fae]:hover{border-color:rgba(255,255,255,.25)}.price-select[data-v-04ea9fae]:focus{border-color:var(--color-primary)}.price-select option[data-v-04ea9fae]{color:#e2e8f0;background:#1e293b}.settings-dropdown-wrap[data-v-04ea9fae]{position:relative}.settings-dropdown[data-v-04ea9fae]{z-index:2000;background:#1e293b;border:1px solid rgba(255,255,255,.1);border-radius:8px;min-width:160px;margin-top:6px;padding:4px;position:absolute;top:100%;right:0;box-shadow:0 8px 24px rgba(0,0,0,.4)}.settings-item[data-v-04ea9fae]{color:rgba(255,255,255,.8);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.settings-item[data-v-04ea9fae]:hover{color:#fff;background:rgba(255,255,255,.08)}.settings-item svg[data-v-04ea9fae]{opacity:.7;flex-shrink:0}.settings-item:hover svg[data-v-04ea9fae]{opacity:1}.settings-divider[data-v-04ea9fae]{background:rgba(255,255,255,.08);height:1px;margin:4px 8px}.export-group[data-v-04ea9fae]{gap:2px;display:flex}.export-btn .btn-label[data-v-04ea9fae]{color:rgba(255,255,255,.8)}.toolbar-divider-v[data-v-04ea9fae]{background:rgba(255,255,255,.1);width:1px;height:24px;margin:0 8px}.info-group[data-v-04ea9fae]{align-items:center;gap:10px;display:flex}.floor-indicator[data-v-04ea9fae],.scale-display[data-v-04ea9fae]{color:var(--color-toolbar-text-secondary,rgba(255,255,255,.55));background:rgba(255,255,255,.06);border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:flex}.floor-name[data-v-04ea9fae],.scale-value[data-v-04ea9fae]{color:rgba(255,255,255,.9);font-weight:600}.scale-value[data-v-04ea9fae]{color:var(--color-accent-light,#34d399)}.color-picker-sm[data-v-04ea9fae]{cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:4px;align-self:center;width:24px;height:24px;padding:1px}.ruler-width-select[data-v-04ea9fae]{color:rgba(255,255,255,.85);cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:4px;height:28px;padding:0 4px;font-size:12px}.ruler-width-select option[data-v-04ea9fae]{color:#fff;background:#2d2d2d}.drawing-tools-wrap[data-v-04ea9fae],.measure-tools-wrap[data-v-04ea9fae]{position:relative}.drawing-tools-dropdown[data-v-04ea9fae],.measure-tools-dropdown[data-v-04ea9fae]{z-index:2000;background:#2a2d35;border:1px solid rgba(255,255,255,.12);border-radius:8px;min-width:220px;padding:8px;animation:.15s dropdown-slide-04ea9fae;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px rgba(0,0,0,.4)}.dropdown-wrap[data-v-04ea9fae]{position:relative}.editor-tool-dropdown[data-v-04ea9fae]{z-index:2000;background:#2a2d35;border:1px solid rgba(255,255,255,.12);border-radius:8px;min-width:220px;padding:8px;animation:.15s dropdown-slide-04ea9fae;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px rgba(0,0,0,.4)}.drawing-tools-section[data-v-04ea9fae]{margin-bottom:8px}.drawing-tools-section[data-v-04ea9fae]:last-child{margin-bottom:0}.drawing-tools-section-title[data-v-04ea9fae]{color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:6px;padding:0 4px 6px;font-size:11px}.drawing-tools-grid[data-v-04ea9fae]{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.drawing-tool-item[data-v-04ea9fae]{color:rgba(255,255,255,.7);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:10px;transition:all .15s;display:flex}.drawing-tool-item[data-v-04ea9fae]:hover{color:#fff;background:rgba(255,255,255,.08)}.drawing-tool-item.active[data-v-04ea9fae]{color:#409eff;background:rgba(64,158,255,.2)}.drawing-props-row[data-v-04ea9fae]{color:rgba(255,255,255,.7);align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:flex}.drawing-props-row label[data-v-04ea9fae]{color:rgba(255,255,255,.5);min-width:60px;font-size:11px}.opacity-slider[data-v-04ea9fae]{-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.15);border-radius:2px;outline:none;flex:1;height:4px}.opacity-slider[data-v-04ea9fae]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;cursor:pointer;background:#409eff;border-radius:50%;width:12px;height:12px}.opacity-value[data-v-04ea9fae]{text-align:right;color:rgba(255,255,255,.5);min-width:32px;font-size:11px}.fill-color-group[data-v-04ea9fae]{flex:1;align-items:center;gap:6px;display:flex}.fill-none-check[data-v-04ea9fae]{color:rgba(255,255,255,.5);cursor:pointer;white-space:nowrap;align-items:center;gap:3px;font-size:11px;display:flex}.fill-none-check input[type=checkbox][data-v-04ea9fae]{accent-color:#409eff;width:13px;height:13px}.drawing-tools-hint[data-v-04ea9fae]{color:rgba(255,255,255,.4);background:rgba(255,255,255,.08);border-radius:4px;margin-top:6px;padding:4px 8px;font-size:10px;line-height:1.4}.dropdown-arrow[data-v-04ea9fae]{opacity:.5;margin-left:2px;transition:transform .2s}.measure-tools-dropdown .dropdown-item[data-v-04ea9fae]{color:rgba(255,255,255,.8);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}.measure-tools-dropdown .dropdown-item[data-v-04ea9fae]:hover{background:rgba(255,255,255,.06)}.measure-tools-dropdown .dropdown-item.active[data-v-04ea9fae]{color:#409eff;background:rgba(64,158,255,.2)}.measure-tools-dropdown .dropdown-divider[data-v-04ea9fae]{background:rgba(255,255,255,.08);height:1px;margin:4px 0}.measure-tools-dropdown .ruler-props[data-v-04ea9fae]{align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.measure-tools-dropdown .ruler-props label[data-v-04ea9fae]{color:rgba(255,255,255,.5);min-width:32px;font-size:11px}.measure-tools-dropdown .ruler-action-btn[data-v-04ea9fae]{cursor:pointer;color:#67c23a;gap:8px;font-weight:500}.measure-tools-dropdown .ruler-action-btn[data-v-04ea9fae]:hover{background:rgba(103,194,58,.1)}.measure-tools-dropdown .ruler-action-btn.cancel[data-v-04ea9fae]{color:#f56c6c}.measure-tools-dropdown .ruler-action-btn.cancel[data-v-04ea9fae]:hover{background:rgba(245,108,108,.1)}.display-settings-wrap[data-v-04ea9fae]{position:relative}.display-settings-dropdown[data-v-04ea9fae]{z-index:2000;background:#2a2d35;border:1px solid rgba(255,255,255,.12);border-radius:8px;min-width:180px;padding:6px 0;animation:.15s dropdown-slide-04ea9fae;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px rgba(0,0,0,.4)}@keyframes dropdown-slide-04ea9fae{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.display-settings-item[data-v-04ea9fae]{color:rgba(255,255,255,.8);cursor:pointer;justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;transition:background .15s;display:flex}.display-settings-item[data-v-04ea9fae]:hover{background:rgba(255,255,255,.06)}.toggle-pill[data-v-04ea9fae]{color:rgba(255,255,255,.45);user-select:none;text-align:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:10px;min-width:28px;padding:2px 8px;font-size:11px;transition:all .2s}.toggle-pill.on[data-v-04ea9fae]{color:#34d399;background:rgba(52,211,153,.18);border-color:rgba(52,211,153,.3)}.icon-size-panel[data-v-04ea9fae]{flex-direction:column;align-items:stretch;padding:4px 0}.size-slider-row[data-v-04ea9fae]{align-items:center;gap:8px;display:flex}.size-slider-row .size-label[data-v-04ea9fae]{color:rgba(255,255,255,.5);white-space:nowrap;min-width:28px;font-size:12px}.size-slider-row .size-value[data-v-04ea9fae]{color:rgba(255,255,255,.85);text-align:right;white-space:nowrap;min-width:40px;font-size:12px;font-weight:600}.size-hint[data-v-04ea9fae]{color:rgba(255,255,255,.4);margin-top:8px;font-size:11px}.size-slider[data-v-04ea9fae]{-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.15);border-radius:2px;outline:none;flex:1;height:4px}.size-slider[data-v-04ea9fae]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;cursor:pointer;background:#409eff;border-radius:50%;width:14px;height:14px}.size-preset-btn[data-v-04ea9fae]{color:rgba(255,255,255,.65);cursor:pointer;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:2px 6px;font-size:11px;transition:all .15s}.size-preset-btn[data-v-04ea9fae]:hover{color:#409eff;border-color:#409eff}.size-preset-btn.active[data-v-04ea9fae]{color:#fff;background:#409eff;border-color:#409eff}.frame-style-panel[data-v-04ea9fae]{flex-direction:column;gap:6px;padding:8px 12px;display:flex}.frame-style-row[data-v-04ea9fae]{align-items:center;gap:8px;display:flex}.frame-style-label[data-v-04ea9fae]{color:#606266;flex-shrink:0;width:72px;font-size:12px}.frame-style-logo[data-v-04ea9fae]{flex:1;align-items:center;gap:6px;display:flex}.logo-preview[data-v-04ea9fae]{object-fit:contain;border:1px solid #dcdfe6;border-radius:4px;width:32px;height:32px}.logo-placeholder[data-v-04ea9fae]{color:#909399;font-size:11px}.frame-btn[data-v-04ea9fae]{cursor:pointer;color:#606266;background:#fff;border:1px solid #dcdfe6;border-radius:4px;padding:2px 8px;font-size:11px}.frame-btn[data-v-04ea9fae]:hover{color:#409eff;border-color:#409eff}.frame-btn.danger[data-v-04ea9fae]{color:#f56c6c;border-color:#f56c6c}.frame-btn.danger[data-v-04ea9fae]:hover{color:#fff;background:#f56c6c}@media (max-width:900px){.toolbar[data-v-04ea9fae]{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:2px;height:44px;padding:0 6px;overflow-x:auto}.toolbar-brand .brand-name[data-v-04ea9fae]{display:none}.toolbar-divider[data-v-04ea9fae]{margin:0 2px}.view-switcher[data-v-04ea9fae]{flex-shrink:0;gap:0}.view-tab[data-v-04ea9fae]{gap:2px;padding:6px 8px;font-size:12px}.view-tab svg[data-v-04ea9fae]{width:12px;height:12px}.toolbar-btn[data-v-04ea9fae]{gap:2px;padding:4px 6px;font-size:12px}.toolbar-btn .btn-label[data-v-04ea9fae],.toolbar-btn .dropdown-arrow[data-v-04ea9fae]{display:none}.toolbar-group[data-v-04ea9fae]{flex-shrink:0;gap:2px}.primary-action .btn-label[data-v-04ea9fae]{font-size:11px;display:inline}}.save-status[data-v-04ea9fae]{white-space:nowrap;margin-right:6px;font-size:12px}.save-status.saved[data-v-04ea9fae]{color:rgba(103,194,58,.9)}.save-status.saving[data-v-04ea9fae]{color:rgba(230,162,60,.9);animation:1s infinite pulse-04ea9fae}@keyframes pulse-04ea9fae{0%,to{opacity:1}50%{opacity:.5}}.tpl-dropdown-wrap[data-v-04ea9fae]{position:relative}.tpl-dropdown-panel[data-v-04ea9fae]{z-index:100;background:#fff;border-radius:8px;min-width:240px;max-height:360px;margin-top:4px;padding:6px 0;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 4px 24px rgba(0,0,0,.15)}.tpl-item[data-v-04ea9fae]{cursor:default;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}.tpl-item[data-v-04ea9fae]:hover{background:#f5f7fa}.tpl-item-name[data-v-04ea9fae]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tpl-item-system .tpl-item-name[data-v-04ea9fae]{color:#67c23a}.tpl-item-star[data-v-04ea9fae]{cursor:pointer;opacity:.3;flex-shrink:0;font-size:14px}.tpl-item-star.active[data-v-04ea9fae]{opacity:1}.tpl-item-star[data-v-04ea9fae]:hover{opacity:.8}.tpl-item-apply[data-v-04ea9fae]{cursor:pointer;color:#409eff;border:1px solid #409eff;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:12px;transition:all .15s}.tpl-item-apply[data-v-04ea9fae]:hover{color:#fff;background:#409eff}.tpl-item-del[data-v-04ea9fae]{cursor:pointer;color:#c0c4cc;border-radius:4px;flex-shrink:0;padding:0 4px;font-size:14px;transition:all .15s}.tpl-item-del[data-v-04ea9fae]:hover{color:#f56c6c}.tpl-fade-enter-active[data-v-04ea9fae],.tpl-fade-leave-active[data-v-04ea9fae]{transition:opacity .15s,transform .15s}.tpl-fade-enter-from[data-v-04ea9fae],.tpl-fade-leave-to[data-v-04ea9fae]{opacity:0;transform:translateY(-4px)}.ai-recognition-dialog[data-v-2c3ef05e] .el-dialog__body{max-height:70vh;overflow-y:auto}.section-block[data-v-2c3ef05e]{background:#f8f9fa;border-radius:8px;margin-bottom:16px;padding:12px}.section-title[data-v-2c3ef05e]{color:#303133;margin-bottom:10px;font-size:14px;font-weight:600}.image-source-row[data-v-2c3ef05e]{margin-bottom:8px}.upload-area[data-v-2c3ef05e]{margin-top:8px}.file-name[data-v-2c3ef05e]{color:#909399;margin-left:8px;font-size:12px}.preview-wrap[data-v-2c3ef05e],.optimize-preview-wrap[data-v-2c3ef05e]{border:1px solid #e4e7ed;border-radius:4px;margin-top:8px;padding:4px}.preview-img[data-v-2c3ef05e]{object-fit:contain;width:100%;max-height:200px}.cropper-wrap[data-v-2c3ef05e]{margin-top:8px}.crop-editor[data-v-2c3ef05e]{background:#1a1a1a;border:1px solid #e4e7ed;border-radius:4px;width:100%;height:400px}.crop-editor>img[data-v-2c3ef05e]{max-width:100%;display:block}.cropper-toolbar[data-v-2c3ef05e]{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.zoom-buttons[data-v-2c3ef05e]{gap:4px;display:flex}.cropper-actions[data-v-2c3ef05e]{align-items:center;gap:8px;margin-top:8px;display:flex}.option-block[data-v-2c3ef05e]{border-bottom:1px solid #ebeef5;padding:8px 0}.option-block[data-v-2c3ef05e]:last-child{border-bottom:none}.option-params[data-v-2c3ef05e]{background:#fff;border:1px solid #ebeef5;border-radius:6px;margin-top:8px;padding:8px 12px}.param-row[data-v-2c3ef05e]{align-items:center;margin-bottom:8px;display:flex}.param-row[data-v-2c3ef05e]:last-child{margin-bottom:0}.param-label[data-v-2c3ef05e]{color:#606266;flex-shrink:0;width:70px;font-size:12px}.param-hint[data-v-2c3ef05e]{color:#e6a23c;margin-top:4px;font-size:11px}.mode-options[data-v-2c3ef05e]{gap:10px;margin-top:6px;display:flex}.mode-option[data-v-2c3ef05e]{cursor:pointer;background:#fafafa;border:1px solid #e4e7ed;border-radius:6px;flex:1;padding:10px 12px;transition:all .2s}.mode-option[data-v-2c3ef05e]:hover{background:#f5f7fa;border-color:#c0c4cc}.mode-option.active[data-v-2c3ef05e]{background:#ecf5ff;border-color:#409eff}.mode-option-header[data-v-2c3ef05e]{align-items:center;gap:8px;margin-bottom:6px;display:flex}.mode-radio[data-v-2c3ef05e]{border:2px solid #dcdfe6;border-radius:50%;width:14px;height:14px;transition:all .2s;position:relative}.mode-radio.checked[data-v-2c3ef05e]{border-color:#409eff}.mode-radio.checked[data-v-2c3ef05e]:after{content:"";background:#409eff;border-radius:50%;width:6px;height:6px;position:absolute;top:2px;left:2px}.mode-option-title[data-v-2c3ef05e]{color:#303133;font-size:13px;font-weight:500}.mode-option-desc[data-v-2c3ef05e]{color:#909399;font-size:11px;line-height:1.5}.no-option-hint[data-v-2c3ef05e]{text-align:center;color:#909399;padding:20px 0;font-size:13px}.result-floor-name[data-v-2c3ef05e]{color:#606266;margin-bottom:8px;font-size:13px}.room-list[data-v-2c3ef05e]{max-height:300px;overflow-y:auto}.room-item[data-v-2c3ef05e]{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.room-info[data-v-2c3ef05e]{align-items:center;display:flex}.no-rooms-hint[data-v-2c3ef05e]{text-align:center;color:#909399;padding:10px 0;font-size:12px}.dialog-footer[data-v-2c3ef05e]{justify-content:flex-end;gap:8px;display:flex}.add-floor-dialog[data-v-af07326e] .el-dialog__body{max-height:70vh;overflow-y:auto}.section-block[data-v-af07326e]{background:#f8f9fa;border-radius:8px;margin-bottom:16px;padding:12px}.section-title[data-v-af07326e]{color:#303133;margin-bottom:10px;font-size:14px;font-weight:600}.upload-area[data-v-af07326e]{margin-top:4px}.file-name[data-v-af07326e]{color:#909399;margin-left:8px;font-size:12px}.preview-wrap[data-v-af07326e]{border:1px solid #e4e7ed;border-radius:4px;margin-top:8px;padding:4px}.preview-img[data-v-af07326e]{object-fit:contain;width:100%;max-height:200px}.cropper-wrap[data-v-af07326e]{margin-top:8px}.crop-editor[data-v-af07326e]{background:#1a1a1a;border:1px solid #e4e7ed;border-radius:4px;width:100%;height:400px}.crop-editor>img[data-v-af07326e]{max-width:100%;display:block}.cropper-toolbar[data-v-af07326e]{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.crop-toolbar-left[data-v-af07326e]{align-items:center;gap:8px;display:flex}.crop-ratio-label[data-v-af07326e]{color:#909399;font-size:12px}.zoom-buttons[data-v-af07326e]{gap:4px;display:flex}.cropper-actions[data-v-af07326e]{align-items:center;gap:8px;margin-top:8px;display:flex}.room-input-row[data-v-af07326e]{gap:8px;margin-bottom:12px;display:flex}.favorite-section[data-v-af07326e]{background:var(--color-bg-secondary);border-radius:6px;margin-bottom:12px;padding:8px 10px}.favorite-header[data-v-af07326e]{color:var(--color-text-secondary);align-items:center;gap:4px;margin-bottom:8px;font-size:13px;display:flex}.favorite-header .el-icon[data-v-af07326e]{color:#e6a23c}.favorite-count[data-v-af07326e]{color:var(--color-text-tertiary);font-size:12px}.favorite-tags[data-v-af07326e]{flex-wrap:wrap;gap:6px;display:flex}.favorite-tag[data-v-af07326e]{cursor:pointer;transition:all .2s}.favorite-tag[data-v-af07326e]:hover{transform:translateY(-1px)}.favorite-tag.is-added[data-v-af07326e]{opacity:.5;cursor:default}.rooms-list[data-v-af07326e]{margin-top:8px}.room-item[data-v-af07326e]{align-items:center;gap:8px;padding:4px 0;display:flex}.no-rooms[data-v-af07326e]{color:var(--color-text-tertiary);text-align:center;margin-top:8px;padding:8px;font-size:13px}.favorite-rooms-section[data-v-0ce8f4fa]{border-top:1px solid #ebeef5;margin-top:4px;padding-top:10px}.favorite-rooms-header[data-v-0ce8f4fa]{color:#606266;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;display:flex}.favorite-rooms-header .favorite-count[data-v-0ce8f4fa]{color:#909399;font-size:12px}.favorite-rooms-list[data-v-0ce8f4fa]{flex-wrap:wrap;gap:6px;display:flex}.favorite-room-tag[data-v-0ce8f4fa]{cursor:pointer;color:#e6a23c;background:#fdf6ec;border:1px solid #faecd8;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .2s;display:inline-flex}.favorite-room-tag[data-v-0ce8f4fa]:hover{background:#faecd8}.favorite-room-tag .fav-del-btn[data-v-0ce8f4fa]{opacity:0;margin-left:2px;transition:opacity .2s}.favorite-room-tag:hover .fav-del-btn[data-v-0ce8f4fa]{opacity:1}.pending-rooms-section[data-v-0ce8f4fa]{border-top:1px solid #ebeef5;margin-top:12px;padding-top:10px}.pending-rooms-header[data-v-0ce8f4fa]{color:#606266;margin-bottom:8px;font-size:13px;font-weight:500}.pending-rooms-list[data-v-0ce8f4fa]{flex-direction:column;gap:6px;max-height:200px;display:flex;overflow-y:auto}.pending-room-item[data-v-0ce8f4fa]{background:#f0f9eb;border:1px solid #e1f3d8;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.pending-room-item .el-input[data-v-0ce8f4fa]{flex:1}.product-tree[data-v-0ce8f4fa]{background:var(--color-surface);flex-direction:column;width:100%;height:100%;display:flex;overflow-y:auto}.tree-header[data-v-0ce8f4fa]{border-bottom:1px solid var(--color-border);background:linear-gradient(180deg, var(--color-surface) 0%, rgba(248,250,252,.5) 100%);flex-shrink:0;padding:12px 14px 14px}.tree-title-row[data-v-0ce8f4fa]{align-items:center;gap:6px;margin-bottom:10px;display:flex}.tree-title-row svg[data-v-0ce8f4fa]{color:var(--color-primary);flex-shrink:0}.tree-title-row h4[data-v-0ce8f4fa]{color:var(--color-text);letter-spacing:.5px;margin:0;font-size:14px;font-weight:700}.floor-badge[data-v-0ce8f4fa]{color:var(--color-accent);background:rgba(16,185,129,.1);border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700;line-height:1.4}.tree-actions[data-v-0ce8f4fa]{gap:8px;display:flex}.action-btn[data-v-0ce8f4fa]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex:1;justify-content:center;align-items:center;gap:4px;min-height:32px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.action-btn[data-v-0ce8f4fa]:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg)}.action-btn.accent[data-v-0ce8f4fa]{color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;box-shadow:0 2px 4px rgba(16,185,129,.25)}.action-btn.accent[data-v-0ce8f4fa]:hover{background:linear-gradient(135deg,#059669,#047857);border-color:transparent;transform:translateY(-1px);box-shadow:0 3px 8px rgba(16,185,129,.35)}.tree-content[data-v-0ce8f4fa]{flex:1;padding:4px 0;overflow:auto}.tree-empty[data-v-0ce8f4fa]{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.tree-empty .empty-icon[data-v-0ce8f4fa]{color:#c0c4cc;margin-bottom:12px}.tree-empty .empty-title[data-v-0ce8f4fa]{color:var(--color-text-secondary);margin:0 0 4px;font-size:13px;font-weight:600}.tree-empty .empty-hint[data-v-0ce8f4fa]{color:var(--color-text-hint);margin:0;font-size:11px;line-height:1.5}.tree-content[data-v-0ce8f4fa] .el-tree{--el-tree-node-hover-bg-color:rgba(66,108,247,.06);background:0 0}.tree-content[data-v-0ce8f4fa] .el-tree-node__content{border-radius:0;height:32px;padding-right:0;transition:background .15s;overflow:hidden}.tree-content[data-v-0ce8f4fa] .el-tree-node__content:hover{background:rgba(66,108,247,.06)}.tree-content[data-v-0ce8f4fa] .el-tree-node.is-current>.el-tree-node__content{background:rgba(66,108,247,.1)}.tree-content[data-v-0ce8f4fa] .el-tree-node__children .el-tree-node__content{padding-left:28px!important}.tree-content[data-v-0ce8f4fa] .el-tree-node__children .el-tree-node__children .el-tree-node__content{padding-left:44px!important}.tree-node[data-v-0ce8f4fa]{justify-content:space-between;align-items:center;gap:4px;width:100%;padding-right:8px;display:flex;overflow:hidden}.node-level-floor .node-label[data-v-0ce8f4fa]{color:var(--color-text);font-size:13px;font-weight:700}.node-level-floor .floor-icon[data-v-0ce8f4fa]{color:var(--color-primary)}.node-level-room .node-label[data-v-0ce8f4fa]{color:var(--color-text-secondary);font-size:12px}.node-level-room.is-selected .node-label[data-v-0ce8f4fa]{color:var(--color-primary);font-weight:600}.node-level-room.is-selected[data-v-0ce8f4fa]{background:rgba(66,108,247,.08);border-radius:4px}.node-level-product .node-label[data-v-0ce8f4fa]{color:var(--color-text-hint);font-size:12px}.node-left[data-v-0ce8f4fa]{cursor:grab;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.node-right[data-v-0ce8f4fa]{flex-shrink:0;align-items:center;gap:2px;display:flex}.node-icon[data-v-0ce8f4fa]{flex-shrink:0}.product-legend-icon[data-v-0ce8f4fa]{object-fit:contain;opacity:.85;background:rgba(0,0,0,.03);border-radius:3px;flex-shrink:0;width:20px;height:20px;padding:1px;transition:opacity .2s}.tree-node:hover .product-legend-icon[data-v-0ce8f4fa]{opacity:1}.room-checkbox[data-v-0ce8f4fa]{flex-shrink:0;margin-right:0}.room-checkbox[data-v-0ce8f4fa] .el-checkbox__inner{border:2px solid #c0c4cc;border-radius:4px;width:16px;height:16px;transition:all .15s}.room-checkbox[data-v-0ce8f4fa] .el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--color-primary);border-color:var(--color-primary)}.room-checkbox[data-v-0ce8f4fa] .el-checkbox__inner:after{height:8px;top:1px;left:4px}.node-label[data-v-0ce8f4fa]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;line-height:1.4;overflow:hidden}.node-label.editable-label[data-v-0ce8f4fa]{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .2s}.node-label.editable-label[data-v-0ce8f4fa]:hover{border-bottom-color:var(--color-text-hint,#999)}.edit-input[data-v-0ce8f4fa]{flex-shrink:0;width:120px}.edit-input[data-v-0ce8f4fa] .el-input__inner{height:24px;font-size:12px;line-height:24px}.edit-input[data-v-0ce8f4fa] .el-input__wrapper{box-shadow:0 0 0 1px var(--color-primary,#426cf7) inset;padding:0 8px}.tree-context-menu[data-v-0ce8f4fa]{z-index:9999;background:#fff;border:1px solid #e4e7ed;border-radius:6px;min-width:130px;padding:4px 0;position:fixed;box-shadow:0 4px 12px rgba(0,0,0,.12)}.tree-context-menu .context-menu-item[data-v-0ce8f4fa]{color:#333;cursor:pointer;align-items:center;gap:8px;padding:8px 14px;font-size:13px;transition:background .15s;display:flex}.tree-context-menu .context-menu-item[data-v-0ce8f4fa]:hover{background:#f5f7fa}.tree-context-menu .context-menu-item.danger[data-v-0ce8f4fa]{color:#f56c6c}.tree-context-menu .context-menu-item.danger[data-v-0ce8f4fa]:hover{background:#fef0f0}.room-count[data-v-0ce8f4fa]{color:var(--color-text-hint);flex-shrink:0;margin-left:2px;font-size:10px;font-weight:500}.product-info[data-v-0ce8f4fa]{flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.product-model-tag[data-v-0ce8f4fa]{color:var(--color-text-hint);background:var(--color-bg);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;max-width:70px;padding:1px 6px;font-size:10px;line-height:1.5;overflow:hidden}.node-actions[data-v-0ce8f4fa]{opacity:0;flex-shrink:0;align-items:center;gap:0;transition:opacity .15s;display:flex}.tree-node:hover .node-actions[data-v-0ce8f4fa]{opacity:1}.node-actions[data-v-0ce8f4fa] .el-button{padding:4px;font-size:12px}@media (pointer:coarse){.node-actions[data-v-0ce8f4fa]{opacity:.6}.tree-content[data-v-0ce8f4fa] .el-tree-node__content{height:40px}.action-btn[data-v-0ce8f4fa]{min-height:36px;padding:8px 14px;font-size:13px}.tree-header[data-v-0ce8f4fa]{padding:14px}.room-checkbox[data-v-0ce8f4fa] .el-checkbox__inner{width:20px;height:20px}}.add-product-tags[data-v-0ce8f4fa]{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.add-product-tags .tag-label[data-v-0ce8f4fa]{color:#909399;flex-shrink:0;font-size:12px}.add-product-tags .tag-item[data-v-0ce8f4fa]{cursor:pointer;color:#606266;background:#f5f7fa;border:1px solid #e4e7ed;border-radius:3px;padding:2px 8px;font-size:11px;transition:all .15s}.add-product-tags .tag-item[data-v-0ce8f4fa]:hover{border-color:#c0c4cc}.add-product-tags .tag-item.active[data-v-0ce8f4fa]{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.add-product-filters[data-v-0ce8f4fa]{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.add-product-list[data-v-0ce8f4fa]{border:1px solid #ebeef5;border-radius:4px;max-height:300px;overflow-y:auto}.add-product-item[data-v-0ce8f4fa]{cursor:pointer;border-bottom:1px solid #f0f0f0;align-items:center;gap:10px;padding:8px 12px;transition:background .15s;display:flex}.add-product-item[data-v-0ce8f4fa]:hover{background:#f5f7fa}.add-product-item.selected[data-v-0ce8f4fa]{background:#ecf5ff;border-color:#409eff}.add-product-img[data-v-0ce8f4fa]{object-fit:contain;border:1px solid #eee;border-radius:4px;flex-shrink:0;width:36px;height:36px}.add-product-info[data-v-0ce8f4fa]{flex-direction:column;gap:2px;min-width:0;display:flex}.add-product-name[data-v-0ce8f4fa]{color:#303133;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.add-product-model[data-v-0ce8f4fa]{color:#909399;font-size:11px}.fabric-canvas-container[data-v-c9657b53]{touch-action:none;background-color:#eaecf0;background-image:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);background-position:0 0;background-repeat:repeat;background-size:20px 20px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;width:100%;height:100%;position:relative}.product-action-bar[data-v-c9657b53],.label-action-bar[data-v-c9657b53]{z-index:20;backdrop-filter:blur(12px);pointer-events:auto;white-space:nowrap;background:rgba(255,255,255,.96);border-radius:8px;align-items:center;gap:2px;padding:4px 8px;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.06)}.label-size-row[data-v-c9657b53]{align-items:center;gap:4px;min-width:140px;display:flex}.label-size-row .size-slider[data-v-c9657b53]{flex:1}.label-size-row .size-label[data-v-c9657b53]{color:#666;white-space:nowrap;font-size:11px}.label-size-row .size-value[data-v-c9657b53]{color:#333;text-align:right;white-space:nowrap;min-width:32px;font-size:11px}.action-btn[data-v-c9657b53]{cursor:pointer;color:#374151;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:3px;padding:4px 8px;font-size:12px;transition:all .15s;display:inline-flex}.action-btn[data-v-c9657b53]:hover{color:#111827;background:#f3f4f6}.action-btn[data-v-c9657b53]:disabled{opacity:.4;cursor:not-allowed}.action-btn svg[data-v-c9657b53]{flex-shrink:0}.action-sep[data-v-c9657b53]{background:#e5e7eb;width:1px;height:16px;margin:0 2px}.drawing-shape-action-bar[data-v-c9657b53]{z-index:20;backdrop-filter:blur(12px);pointer-events:auto;white-space:nowrap;background:rgba(48,65,86,.95);border-radius:8px;align-items:center;gap:4px;padding:5px 10px;display:flex;position:absolute;top:48px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px rgba(0,0,0,.2)}.drawing-shape-action-bar .action-label[data-v-c9657b53]{color:rgba(255,255,255,.6);font-size:11px;font-weight:500}.drawing-shape-action-bar .action-btn[data-v-c9657b53]{color:rgba(255,255,255,.8);padding:3px 6px;font-size:12px}.drawing-shape-action-bar .action-btn[data-v-c9657b53]:hover{color:#fff;background:rgba(255,255,255,.1)}.drawing-shape-action-bar .action-btn-danger[data-v-c9657b53]:hover{color:#f56c6c;background:rgba(245,108,108,.2)}.drawing-shape-action-bar .action-sep[data-v-c9657b53]{background:rgba(255,255,255,.15)}.shape-prop-item[data-v-c9657b53]{align-items:center;gap:4px;display:flex}.shape-prop-item label[data-v-c9657b53]{color:rgba(255,255,255,.5);min-width:20px;font-size:10px}.color-picker-xs[data-v-c9657b53]{cursor:pointer;background:0 0;border:1px solid rgba(255,255,255,.2);border-radius:4px;width:22px;height:22px;padding:0}.color-picker-xs[data-v-c9657b53]::-webkit-color-swatch-wrapper{padding:2px}.color-picker-xs[data-v-c9657b53]::-webkit-color-swatch{border:none;border-radius:2px}.shape-width-select[data-v-c9657b53]{color:#fff;cursor:pointer;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:4px;width:40px;height:22px;padding:0 2px;font-size:11px}.shape-width-select option[data-v-c9657b53]{color:#fff;background:#304156}.fill-check-label[data-v-c9657b53]{color:rgba(255,255,255,.6);cursor:pointer;white-space:nowrap;align-items:center;gap:2px;font-size:10px;display:flex}.fill-check-label input[data-v-c9657b53]{accent-color:#409eff;cursor:pointer;width:14px;height:14px}.opacity-slider-xs[data-v-c9657b53]{-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.2);border-radius:2px;outline:none;width:50px;height:3px}.opacity-slider-xs[data-v-c9657b53]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;cursor:pointer;background:#409eff;border-radius:50%;width:10px;height:10px}.opacity-xs[data-v-c9657b53]{color:rgba(255,255,255,.5);min-width:28px;font-size:10px}.ruler-line-action-bar[data-v-c9657b53]{z-index:20;backdrop-filter:blur(12px);pointer-events:auto;white-space:nowrap;background:rgba(48,65,86,.95);border-radius:8px;align-items:center;gap:4px;padding:5px 10px;display:flex;position:absolute;top:48px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px rgba(0,0,0,.2)}.ruler-line-action-bar .action-label[data-v-c9657b53]{color:rgba(255,255,255,.6);font-size:11px;font-weight:500}.ruler-line-action-bar .action-btn[data-v-c9657b53]{color:rgba(255,255,255,.8);padding:3px 6px;font-size:12px}.ruler-line-action-bar .action-btn[data-v-c9657b53]:hover{color:#fff;background:rgba(255,255,255,.1)}.ruler-line-action-bar .action-btn-danger[data-v-c9657b53]:hover{color:#f56c6c;background:rgba(245,108,108,.2)}.ruler-line-action-bar .action-sep[data-v-c9657b53]{background:rgba(255,255,255,.15)}.size-popover[data-v-c9657b53]{min-width:260px!important;padding:12px 14px!important}.size-popover .el-slider[data-v-c9657b53]{margin:4px 0 0}.size-slider-row[data-v-c9657b53]{align-items:center;gap:8px;margin-bottom:10px;display:flex}.size-slider-row .size-label[data-v-c9657b53]{color:#666;white-space:nowrap;min-width:28px;font-size:12px}.size-slider-row .size-value[data-v-c9657b53]{color:#333;text-align:right;white-space:nowrap;min-width:36px;font-size:12px;font-weight:600}.color-picker-grid[data-v-c9657b53]{flex-wrap:wrap;gap:6px;padding:4px;display:flex}.color-swatch[data-v-c9657b53]{cursor:pointer;border:2px solid transparent;border-radius:4px;width:20px;height:20px;transition:border-color .15s,transform .15s}.color-swatch[data-v-c9657b53]:hover{border-color:#374151;transform:scale(1.15)}.fabric-canvas-container canvas[data-v-c9657b53]{display:block}.no-image-placeholder[data-v-c9657b53]{text-align:center;color:var(--color-text-hint);pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.no-image-placeholder .placeholder-title[data-v-c9657b53]{color:var(--color-text-secondary);margin-top:12px;margin-bottom:4px;font-size:14px;font-weight:600}.no-image-placeholder .placeholder-hint[data-v-c9657b53]{color:var(--color-text-hint);margin:2px 0 0;font-size:12px}.action-count[data-v-c9657b53]{color:var(--color-primary);white-space:nowrap;padding:0 4px;font-size:11px;font-weight:600}.canvas-toolbar[data-v-c9657b53]{backdrop-filter:blur(8px);border-top:1px solid var(--color-border-light);z-index:10;background:rgba(255,255,255,.92);justify-content:space-between;align-items:center;height:36px;padding:0 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.toolbar-left[data-v-c9657b53],.toolbar-right[data-v-c9657b53]{align-items:center;gap:4px;display:flex}.toolbar-center[data-v-c9657b53]{align-items:center;gap:6px;display:flex}.tb-btn[data-v-c9657b53]{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.tb-btn[data-v-c9657b53]:hover{background:var(--color-primary-bg);color:var(--color-primary)}.tb-btn[data-v-c9657b53]:active{background:var(--color-primary);color:#fff}.zoom-label[data-v-c9657b53]{color:var(--color-text);text-align:center;font-variant-numeric:tabular-nums;min-width:36px;font-size:11px;font-weight:600}.tb-sep[data-v-c9657b53]{background:var(--color-border);width:1px;height:16px;margin:0 4px}.ruler-bar[data-v-c9657b53]{background:var(--color-primary);border-radius:2px;height:3px;position:relative}.ruler-bar[data-v-c9657b53]:before,.ruler-bar[data-v-c9657b53]:after{content:"";background:var(--color-primary);width:1px;height:8px;position:absolute;top:-2.5px}.ruler-bar[data-v-c9657b53]:before{left:0}.ruler-bar[data-v-c9657b53]:after{right:0}.ruler-text[data-v-c9657b53]{color:var(--color-text-secondary);white-space:nowrap;font-size:10px;font-weight:500}.project-name[data-v-c9657b53]{color:var(--color-text-hint);font-size:11px;font-weight:500}@media (pointer:coarse){.tb-btn[data-v-c9657b53]{width:36px;height:36px}.canvas-toolbar[data-v-c9657b53]{height:44px}.zoom-label[data-v-c9657b53]{font-size:12px}}.placement-mode[data-v-c9657b53],.placement-mode[data-v-c9657b53] .upper-canvas{cursor:crosshair!important}.placement-hint[data-v-c9657b53]{z-index:30;color:#fff;pointer-events:auto;background:rgba(64,158,255,.95);border-radius:20px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:500;animation:.3s ease-out placementHintIn-c9657b53;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px rgba(64,158,255,.3)}@keyframes placementHintIn-c9657b53{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.placement-cancel[data-v-c9657b53]{color:#fff;cursor:pointer;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.4);border-radius:12px;padding:2px 10px;font-size:12px;transition:background .15s}.placement-cancel[data-v-c9657b53]:hover{background:rgba(255,255,255,.4)}@media (pointer:coarse){.tb-btn[data-v-c9657b53]{width:36px;height:36px}.canvas-toolbar[data-v-c9657b53]{height:44px}.zoom-label[data-v-c9657b53]{font-size:12px}.action-btn[data-v-c9657b53]{padding:6px 10px;font-size:13px}.product-action-bar[data-v-c9657b53]{gap:4px;padding:6px 10px}}.sku-select[data-v-d0f8eb76]{max-height:65vh;overflow-y:auto}.product-base-info[data-v-d0f8eb76]{align-items:center;gap:14px;margin-bottom:16px;display:flex}.product-thumb[data-v-d0f8eb76]{border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg);flex-shrink:0;width:72px;height:72px}.image-fallback[data-v-d0f8eb76]{background:var(--color-bg);width:72px;height:72px;color:var(--color-text-hint);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex}.product-text h4[data-v-d0f8eb76]{color:var(--color-text);margin:0 0 4px;font-size:15px;line-height:1.4}.product-text p[data-v-d0f8eb76]{color:var(--color-text-hint);margin:0 0 2px;font-size:12px}.preview-price[data-v-d0f8eb76]{margin-top:4px!important}.sale-price[data-v-d0f8eb76]{color:var(--color-danger);margin-right:6px;font-size:16px;font-weight:600}.orig-price[data-v-d0f8eb76]{color:var(--color-text-hint);font-size:12px;text-decoration:line-through}.attr-group[data-v-d0f8eb76]{margin-bottom:16px}.attr-group h5[data-v-d0f8eb76]{color:var(--color-text-secondary);margin:0 0 10px;font-size:13px;font-weight:500}.attr-group h5 .required[data-v-d0f8eb76]{color:var(--color-danger)}.attr-options[data-v-d0f8eb76]{flex-wrap:wrap;gap:10px;display:flex}.attr-item[data-v-d0f8eb76]{border:2px solid var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);background:var(--color-surface);flex-direction:column;align-items:center;min-width:80px;max-width:120px;padding:10px 14px;display:flex}.attr-item[data-v-d0f8eb76]:hover{border-color:var(--color-primary);background:var(--color-primary-bg)}.attr-item.active[data-v-d0f8eb76]{border-color:var(--color-primary);background:var(--color-primary-bg);box-shadow:0 0 0 1px var(--color-primary)}.attr-img[data-v-d0f8eb76]{border-radius:var(--radius-sm);width:48px;height:48px;margin-bottom:6px}.attr-img-fallback[data-v-d0f8eb76]{background:var(--color-bg);width:48px;height:48px;color:var(--color-text-hint);border-radius:var(--radius-sm);justify-content:center;align-items:center;font-size:16px;font-weight:500;display:flex}.attr-name[data-v-d0f8eb76]{color:var(--color-text-secondary);text-align:center;word-break:break-all;font-size:12px;line-height:1.3}.selected-preview[data-v-d0f8eb76]{margin-top:4px}.preview-row[data-v-d0f8eb76]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.preview-label[data-v-d0f8eb76]{color:var(--color-text-hint);white-space:nowrap;font-size:13px}.preview-value[data-v-d0f8eb76]{color:var(--color-text);font-size:14px;font-weight:500}.preview-legend[data-v-d0f8eb76]{align-items:center;gap:8px;display:flex}.legend-preview-img[data-v-d0f8eb76]{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-bg);width:80px;height:80px}.no-legend[data-v-d0f8eb76]{color:var(--color-text-hint);font-size:11px}.label-manage-dialog[data-v-89b6c741] .el-dialog__body{padding:0}.manage-body[data-v-89b6c741]{border-top:1px solid var(--color-border-light);height:460px;display:flex}.label-sidebar[data-v-89b6c741]{border-right:1px solid var(--color-border-light);flex-direction:column;flex-shrink:0;width:220px;display:flex}.sidebar-header[data-v-89b6c741]{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.sidebar-title[data-v-89b6c741]{color:var(--color-text-primary);font-size:13px;font-weight:600}.create-row[data-v-89b6c741]{border-bottom:1px solid var(--color-border-light);background:#fafbfc;align-items:center;gap:4px;padding:6px 12px;display:flex}.create-row .el-input[data-v-89b6c741]{flex:1}.sidebar-list[data-v-89b6c741]{flex:1;padding:4px 0;overflow-y:auto}.sidebar-item[data-v-89b6c741]{cursor:pointer;align-items:center;gap:6px;padding:8px 12px;transition:background .15s;display:flex}.sidebar-item[data-v-89b6c741]:hover{background:#f5f7fa}.sidebar-item.active[data-v-89b6c741]{background:#eef1ff}.item-name[data-v-89b6c741]{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.item-count[data-v-89b6c741]{color:var(--color-text-hint);background:#f0f2f5;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:11px}.sidebar-item.active .item-count[data-v-89b6c741]{color:var(--color-primary);background:#d4dbff}.item-actions[data-v-89b6c741]{flex-shrink:0;align-items:center;gap:2px;display:none}.sidebar-item:hover .item-actions[data-v-89b6c741]{display:inline-flex}.sidebar-item:hover .item-count[data-v-89b6c741]{display:none}.action-icon[data-v-89b6c741]{color:var(--color-text-secondary);cursor:pointer;border-radius:3px;padding:2px;font-size:13px}.action-icon[data-v-89b6c741]:hover{color:var(--color-primary);background:rgba(79,108,247,.08)}.action-icon.danger[data-v-89b6c741]:hover{color:#f56c6c;background:rgba(245,108,108,.08)}.sidebar-empty[data-v-89b6c741]{text-align:center;color:var(--color-text-hint);padding:24px 0;font-size:13px}.label-content[data-v-89b6c741]{flex-direction:column;flex:1;min-width:0;display:flex}.content-header[data-v-89b6c741]{border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.content-title[data-v-89b6c741]{align-items:center;gap:8px;display:flex}.label-badge[data-v-89b6c741]{color:var(--color-primary);background:#eef1ff;border-radius:10px;padding:2px 10px;font-size:13px;font-weight:600}.product-count[data-v-89b6c741]{color:var(--color-text-hint);font-size:12px}.content-list[data-v-89b6c741]{flex-wrap:wrap;flex:1;align-content:flex-start;gap:8px;padding:8px 12px;display:flex;overflow-y:auto}.bound-product-card[data-v-89b6c741]{border:1px solid var(--color-border-light);background:var(--color-bg);box-sizing:border-box;border-radius:6px;align-items:center;gap:8px;width:calc(50% - 4px);padding:6px 10px;transition:border-color .15s;display:flex;position:relative}.bound-product-card[data-v-89b6c741]:hover{border-color:var(--color-border)}.prod-thumb[data-v-89b6c741]{background:#f5f7fa;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;overflow:hidden}.prod-img[data-v-89b6c741]{object-fit:contain;width:100%;height:100%}.prod-img-fallback[data-v-89b6c741]{justify-content:center;align-items:center;display:flex}.prod-info[data-v-89b6c741]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.prod-name[data-v-89b6c741]{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.prod-model[data-v-89b6c741]{color:var(--color-text-hint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.unbind-icon[data-v-89b6c741]{color:var(--color-text-hint);cursor:pointer;opacity:0;border-radius:3px;flex-shrink:0;padding:2px;font-size:14px;transition:color .15s}.bound-product-card:hover .unbind-icon[data-v-89b6c741]{opacity:1}.unbind-icon[data-v-89b6c741]:hover{color:#f56c6c;background:rgba(245,108,108,.08)}.content-empty[data-v-89b6c741]{text-align:center;width:100%;color:var(--color-text-hint);padding:32px 0;font-size:13px}.content-placeholder[data-v-89b6c741]{color:var(--color-text-hint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.content-placeholder p[data-v-89b6c741]{margin:0;font-size:13px}.add-product-body[data-v-89b6c741]{flex-direction:column;gap:10px;display:flex}.add-filter-bar[data-v-89b6c741]{align-items:center;gap:8px;display:flex}.add-selected-count[data-v-89b6c741]{color:var(--color-primary);white-space:nowrap;margin-left:auto;font-size:12px}.add-product-grid[data-v-89b6c741]{grid-template-columns:repeat(3,1fr);gap:8px;max-height:320px;padding:2px;display:grid;overflow-y:auto}.add-product-card[data-v-89b6c741]{border:1px solid var(--color-border-light);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;transition:all .15s;display:flex;position:relative}.add-product-card[data-v-89b6c741]:hover{border-color:var(--color-primary)}.add-product-card.selected[data-v-89b6c741]{border-color:var(--color-primary);background:#f5f7ff}.add-prod-thumb[data-v-89b6c741]{background:#f5f7fa;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;overflow:hidden}.add-prod-img[data-v-89b6c741]{object-fit:contain;width:100%;height:100%}.add-prod-fallback[data-v-89b6c741]{justify-content:center;align-items:center;display:flex}.add-prod-info[data-v-89b6c741]{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.add-prod-name[data-v-89b6c741]{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.add-prod-model[data-v-89b6c741]{color:var(--color-text-hint);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.add-check[data-v-89b6c741]{position:absolute;top:2px;right:2px}.add-empty[data-v-89b6c741]{text-align:center;color:var(--color-text-hint);grid-column:1/-1;padding:24px 0;font-size:13px}.add-pagination[data-v-89b6c741]{justify-content:center;display:flex}.product-panel[data-v-39d8a1f4]{background:var(--color-surface);flex-direction:column;width:100%;height:100%;display:flex;overflow-y:auto}.filter-toggle[data-v-39d8a1f4]{text-align:center;cursor:pointer;color:#409eff;border-bottom:1px solid var(--color-border);user-select:none;-webkit-tap-highlight-color:transparent;flex-shrink:0;padding:6px 10px;font-size:12px}.filter-toggle[data-v-39d8a1f4]:active{background:var(--color-primary-bg)}.panel-header[data-v-39d8a1f4]{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;padding:8px 10px}.header-title-row[data-v-39d8a1f4]{align-items:center;gap:4px;margin-bottom:6px;display:flex}.header-title-row svg[data-v-39d8a1f4]{color:var(--color-primary);flex-shrink:0}.panel-header h4[data-v-39d8a1f4]{color:var(--color-text);letter-spacing:.5px;margin:0;font-size:13px;font-weight:700}.product-count-hint[data-v-39d8a1f4]{color:var(--color-text-hint);background:var(--color-bg);border-radius:8px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:500}.search-input[data-v-39d8a1f4] .el-input__wrapper{background:var(--color-bg);box-shadow:none;border:1px solid var(--color-border);border-radius:6px;transition:all .2s}.search-input[data-v-39d8a1f4] .el-input__wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(79,108,247,.12)}.label-bar[data-v-39d8a1f4]{border-bottom:1px solid var(--color-border-light);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px;padding:6px 8px;display:flex}.label-bar .label-tag[data-v-39d8a1f4]{cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);border-radius:10px;align-items:center;gap:3px;max-width:120px;padding:2px 8px;font-size:11px;line-height:1.4;transition:all .2s;display:inline-flex}.label-bar .label-tag[data-v-39d8a1f4]:hover{border-color:var(--color-primary);color:var(--color-primary)}.label-bar .label-tag.active[data-v-39d8a1f4]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.label-bar .label-tag .label-name[data-v-39d8a1f4]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-bar .label-tag .label-delete[data-v-39d8a1f4]{flex-shrink:0;font-size:10px;line-height:1;display:none}.label-bar .label-tag:hover .label-delete[data-v-39d8a1f4]{display:inline-flex}.label-bar .add-label-btn[data-v-39d8a1f4]{cursor:pointer;border:1px dashed var(--color-border);color:var(--color-text-hint);background:0 0;border-radius:10px;align-items:center;gap:2px;padding:2px 6px;font-size:11px;transition:all .2s;display:inline-flex}.label-bar .add-label-btn[data-v-39d8a1f4]:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-bar[data-v-39d8a1f4]{border-bottom:1px solid var(--color-border-light);flex-shrink:0;gap:4px;padding:6px 8px;display:flex}.category-picker[data-v-39d8a1f4]{background:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;min-width:0;height:24px;color:var(--color-text);border-radius:6px;flex:1;align-items:center;gap:2px;padding:0 8px;font-size:11px;transition:all .2s;display:flex;position:relative}.category-picker[data-v-39d8a1f4]:hover{border-color:var(--color-primary)}.category-picker .picker-text[data-v-39d8a1f4]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.category-picker .picker-text.placeholder[data-v-39d8a1f4]{color:var(--color-text-hint)}.category-picker .picker-arrow[data-v-39d8a1f4]{flex-shrink:0;transition:transform .2s}.category-picker .picker-arrow.open[data-v-39d8a1f4]{transform:rotate(180deg)}.category-picker .picker-clear[data-v-39d8a1f4]{color:var(--color-text-hint);flex-shrink:0;align-items:center;margin-left:2px;display:flex}.category-picker .picker-clear[data-v-39d8a1f4]:hover{color:var(--color-danger)}.category-panel[data-v-39d8a1f4]{z-index:100;border:1px solid var(--color-border);background:#fff;border-radius:8px;min-width:280px;max-height:320px;display:flex;position:absolute;top:100%;left:0;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.12)}.filter-bar[data-v-39d8a1f4]{position:relative}.panel-col[data-v-39d8a1f4]{flex-direction:column;max-height:320px;display:flex;overflow-y:auto}.panel-col-left[data-v-39d8a1f4]{border-right:1px solid var(--color-border-light);background:#fafafa;width:120px}.panel-col-right[data-v-39d8a1f4]{flex:1;min-width:140px}.panel-item[data-v-39d8a1f4]{color:var(--color-text);cursor:pointer;white-space:nowrap;justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;transition:all .15s;display:flex}.panel-item[data-v-39d8a1f4]:hover{background:var(--color-primary-light,#f0f2ff);color:var(--color-primary)}.panel-item.active[data-v-39d8a1f4]{color:var(--color-primary);background:var(--color-primary-light,#f0f2ff);font-weight:600}.panel-empty[data-v-39d8a1f4]{text-align:center;color:var(--color-text-hint);padding:16px;font-size:12px}.category-panel-overlay[data-v-39d8a1f4]{z-index:99;position:fixed;top:0;bottom:0;left:0;right:0}.search-bar[data-v-39d8a1f4]{border-bottom:1px solid #f0f0f0;padding:6px 10px 8px}.search-bar .search-input[data-v-39d8a1f4]{width:100%}.filter-select[data-v-39d8a1f4]{flex:1;min-width:0}.filter-select[data-v-39d8a1f4] .el-input__wrapper{background:var(--color-bg);box-shadow:none;border:1px solid var(--color-border);border-radius:6px;padding:0 6px;font-size:11px}.filter-select[data-v-39d8a1f4] .el-input__wrapper:hover{border-color:var(--color-primary)}.filter-select[data-v-39d8a1f4] .el-input__wrapper.is-focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(79,108,247,.12)}.filter-select[data-v-39d8a1f4] .el-input__inner,.filter-select[data-v-39d8a1f4] .el-input__suffix,.filter-select[data-v-39d8a1f4] .el-select__placeholder{font-size:11px}.brand-select[data-v-39d8a1f4]{max-width:90px}.product-list[data-v-39d8a1f4]{flex-direction:column;flex:1;align-content:start;gap:6px;padding:6px;display:flex;overflow:auto}.product-group[data-v-39d8a1f4]{flex-direction:column;gap:0;display:flex}.group-header[data-v-39d8a1f4]{justify-content:space-between;align-items:center;margin-top:2px;padding:6px 2px 2px;display:flex}.group-title[data-v-39d8a1f4]{color:var(--color-text);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.group-title[data-v-39d8a1f4]:before{content:"";background:var(--color-primary);border-radius:2px;width:3px;height:12px;display:inline-block}.group-count[data-v-39d8a1f4]{color:var(--color-text-hint);background:var(--color-bg);border-radius:8px;padding:0 6px;font-size:10px}.group-grid[data-v-39d8a1f4]{flex-wrap:wrap;justify-content:space-between;display:flex}.product-item[data-v-39d8a1f4]{cursor:grab;text-align:center;width:50%;padding:0 5px 20px;position:relative}.product-item[data-v-39d8a1f4]:active{cursor:grabbing}.product-item-img[data-v-39d8a1f4]{object-fit:contain;background:#fff;outline:1px solid #e0e0e0;width:108px;height:108px;margin:0 auto 5px;display:block}.product-item-content[data-v-39d8a1f4]{text-align:left;font-size:10px}.product-item-span[data-v-39d8a1f4]{white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:20px;display:inline-block;overflow:hidden}.multi-badge[data-v-39d8a1f4]{color:#fff;letter-spacing:.5px;background:rgba(250,173,20,.9);border-radius:3px;padding:0 4px;font-size:9px;font-weight:600;line-height:1.5;position:absolute;top:4px;right:9px;box-shadow:0 1px 3px rgba(0,0,0,.1)}.empty-tip[data-v-39d8a1f4]{text-align:center;width:100%;color:var(--color-text-hint);padding:40px 0;font-size:13px}.empty-desc[data-v-39d8a1f4]{color:var(--color-text-hint);margin:0;font-size:12px}.pagination-bar[data-v-39d8a1f4]{border-top:1px solid var(--color-border);justify-content:center;padding:8px;display:flex}@media (pointer:coarse){.product-item-img[data-v-39d8a1f4]{width:120px;height:120px}.product-item-content[data-v-39d8a1f4]{font-size:11px}}.list-export-dialog .export-section[data-v-58abdf60]{flex-direction:column;gap:12px;display:flex}.export-card[data-v-58abdf60]{border:1px solid #e4e7ed;border-radius:8px;padding:16px;transition:border-color .2s}.export-card[data-v-58abdf60]:hover{border-color:#c0c4cc}.card-header[data-v-58abdf60]{justify-content:space-between;align-items:center;display:flex}.card-title[data-v-58abdf60]{color:#303133;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.card-actions[data-v-58abdf60]{align-items:center;gap:4px;display:flex}.card-desc[data-v-58abdf60]{color:#909399;margin:8px 0 0;font-size:12px;line-height:1.5}.dialog-desc[data-v-58abdf60]{color:#606266;margin:0 0 16px;font-size:13px;line-height:1.5}.cost-table[data-v-52a3da95]{border:1px solid #ebeef5;border-radius:4px;overflow:hidden}.cost-table-header[data-v-52a3da95]{color:#fff;background:#1f4e79;padding:8px 0;font-size:13px;font-weight:600}.cost-table-header .el-col[data-v-52a3da95]{text-align:center;padding:0 4px}.cost-table-body .cost-row[data-v-52a3da95]{border-bottom:1px solid #f0f0f0;align-items:center;padding:6px 0;font-size:13px}.cost-table-body .cost-row[data-v-52a3da95]:hover{background:#f5f7fa}.cost-row-base[data-v-52a3da95]{background:#fafbfc}.cost-row-tax[data-v-52a3da95]{background:#fff9e6}.cost-row-total[data-v-52a3da95]{background:#f0f7ff;font-weight:600}.cost-label[data-v-52a3da95]{color:#606266;padding:0 8px;font-size:13px}.cost-input[data-v-52a3da95]{width:90%}.cost-input[data-v-52a3da95] .el-input__inner{font-size:12px}.type-switch[data-v-52a3da95] .el-switch__label{font-size:11px}.delete-btn[data-v-52a3da95]{margin-left:4px}.cost-table-actions[data-v-52a3da95]{text-align:center;background:#fafbfc;border-top:1px solid #ebeef5;padding:8px}.dialog-footer[data-v-52a3da95]{justify-content:flex-end;gap:8px;display:flex}.sortable-ghost[data-v-bbdd8d20]{opacity:.4;background:#e6f7ff!important}.sortable-product-list[data-v-bbdd8d20]{min-height:0}.sort-btn-group[data-v-bbdd8d20]{z-index:2;background:linear-gradient(90deg, var(--group-bg,#f5f7fa) 80%, transparent);border-radius:0 3px 3px 0;flex-direction:column;padding:2px 3px;line-height:1;display:inline-flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sort-btn[data-v-bbdd8d20]{cursor:pointer;color:#606266;border-radius:2px;padding:1px;font-size:13px;line-height:1.2;transition:color .2s,background .15s}.sort-btn[data-v-bbdd8d20]:hover{color:#4f6cf7}.sort-btn.disabled[data-v-bbdd8d20]{color:#c9cdd4;cursor:not-allowed;pointer-events:none}.group-header-row .sort-btn-group[data-v-bbdd8d20]{opacity:1}.product-sort-btns[data-v-bbdd8d20]{z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:0;width:16px;display:inline-flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.product-sort-btn[data-v-bbdd8d20]{cursor:pointer;color:#909399;border-radius:2px;padding:1px;font-size:11px;line-height:1;transition:color .15s,background .15s}.product-sort-btn[data-v-bbdd8d20]:hover{color:#409eff}.product-sort-btn.disabled[data-v-bbdd8d20]{color:#dcdfe6;cursor:not-allowed;pointer-events:none}.product-row .product-sort-btns[data-v-bbdd8d20]{opacity:1}.scheme-list-view[data-v-bbdd8d20]{background:#e8eaed;flex-direction:column;flex:1;width:100%;height:100%;display:flex;position:relative;overflow-x:hidden;overflow-y:auto}.paper-viewport[data-v-bbdd8d20]{background:#e8eaed;flex:1;justify-content:center;min-height:0;padding:20px;display:flex;overflow:auto}.paper-scaler[data-v-bbdd8d20]{transform-origin:top;transition:transform .2s}.paper[data-v-bbdd8d20]{box-sizing:border-box;background:#fff;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.12)}.page-logo[data-v-bbdd8d20]{z-index:10;max-width:120px;max-height:40px;position:absolute;top:8px}.page-logo-img[data-v-bbdd8d20]{object-fit:contain;opacity:.85;max-width:100%;max-height:40px}.page-gap[data-v-bbdd8d20]{flex-shrink:0;height:20px}.paper-section[data-v-bbdd8d20]{border-bottom:var(--border-width,1px) solid var(--border-color,#e8eaed);flex-shrink:0;margin-bottom:0;padding:0}.project-info-section[data-v-bbdd8d20]{flex-shrink:0;padding:10px 4px!important}system-total-info[data-v-bbdd8d20]{border-bottom:1px solid #e8eaed;flex-shrink:0;margin-bottom:8px;padding:10px 4px!important}.info-row[data-v-bbdd8d20]{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px;display:flex}.info-row[data-v-bbdd8d20]:last-child{margin-bottom:0}.info-item[data-v-bbdd8d20]{align-items:center;gap:4px;display:flex}.info-label[data-v-bbdd8d20]{font-size:inherit;color:var(--info-color,#86909c);white-space:nowrap}.info-value[data-v-bbdd8d20]{font-size:inherit;color:var(--info-color,#1d2129)}.info-input[data-v-bbdd8d20]{width:140px}.info-input[data-v-bbdd8d20] .el-input__inner{font-size:inherit}.product-group[data-v-bbdd8d20]{border-bottom:var(--border-width,1px) solid var(--border-color,#dcdfe6);flex-shrink:0}.group-header-row[data-v-bbdd8d20]{background:var(--group-bg,#f5f7fa);color:var(--group-color,#1d2129);border-bottom:var(--border-width,1px) solid var(--border-color,#ebeef5);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 8px;font-weight:600;display:flex;position:relative}.group-name-cell[data-v-bbdd8d20]{padding-left:10px;position:relative}.group-name-cell[data-v-bbdd8d20]:before{content:"";background:var(--group-bar-color,#4f6cf7);border-radius:2px;width:3px;height:12px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.group-batch-discount[data-v-bbdd8d20]{font-weight:400;font-size:inherit;align-items:center;gap:4px;display:flex}.group-total-cell[data-v-bbdd8d20]{font-weight:400;font-size:inherit;white-space:nowrap}.group-total-cell em[data-v-bbdd8d20]{color:inherit;font-style:normal;font-weight:600}.product-table-header[data-v-bbdd8d20]{background:var(--colheader-bg,#fafbfc);color:var(--colheader-color,#86909c);border-bottom:var(--border-width,1px) solid var(--border-color,#f0f1f3);flex-shrink:0;align-items:center;padding:0 8px;font-weight:500;display:flex;position:relative}.th-cell[data-v-bbdd8d20]{user-select:none;border-right:1px solid #e5e6eb;justify-content:center;align-items:center;padding:4px 2px;display:flex;position:relative;overflow:hidden}.col-resize-handle[data-v-bbdd8d20]{cursor:col-resize;z-index:5;background:0 0;width:5px;position:absolute;top:0;bottom:0;right:-2px}.col-resize-handle[data-v-bbdd8d20]:hover{background:#4f6cf7}.edit-mode .col-resize-handle[data-v-bbdd8d20]{background:rgba(79,108,247,.15)}.product-row[data-v-bbdd8d20]{border-bottom:var(--border-width,1px) solid var(--border-color,#f0f1f3);flex-shrink:0;align-items:stretch;padding:0 8px;transition:background .1s;display:flex;position:relative}.product-row.row-hoverable[data-v-bbdd8d20]:hover{background:#f8faff}.td-cell[data-v-bbdd8d20]{box-sizing:border-box;word-break:break-all;border-right:1px solid #ebeef5;justify-content:center;align-items:center;padding:4px;display:flex;position:relative;overflow:hidden}.td-cell[data-col=desc][data-v-bbdd8d20]{overflow-wrap:break-word;word-break:break-word;align-items:flex-start}.td-cell[data-col=price] .cell-input[data-v-bbdd8d20],.td-cell[data-col=qty] .cell-input[data-v-bbdd8d20],.td-cell[data-col=discount] .cell-input[data-v-bbdd8d20]{width:calc(100% - 4px)!important}.row-resize-handle[data-v-bbdd8d20]{cursor:row-resize;z-index:5;background:0 0;height:5px;position:absolute;bottom:-2px;left:0;right:0}.row-resize-handle[data-v-bbdd8d20]:hover{background:#4f6cf7}.cell-text[data-v-bbdd8d20]{word-break:break-all;line-height:1.3;overflow:hidden}.name-text[data-v-bbdd8d20]{color:inherit;font-weight:500;overflow:hidden}.desc-text[data-v-bbdd8d20]{color:var(--product-color,#4e5969);word-break:break-word;overflow-wrap:break-word;overflow:hidden}.product-thumb-wrap[data-v-bbdd8d20]{border:var(--border-width,1px) solid var(--border-color,#e8eaed);background:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.product-thumb[data-v-bbdd8d20]{object-fit:contain;width:100%;height:100%;padding:2px}.product-thumb-placeholder[data-v-bbdd8d20]{color:#c0c4cc;justify-content:center;align-items:center;width:100%;height:100%;font-size:10px;display:flex}.cell-input[data-v-bbdd8d20]{max-width:100%;width:100%!important}.cell-input[data-v-bbdd8d20] .el-input__inner{text-align:center;font-size:inherit;padding:0 2px}.cell-input[data-v-bbdd8d20] .el-input-number__decrease,.cell-input[data-v-bbdd8d20] .el-input-number__increase{width:16px}.readonly-cell[data-v-bbdd8d20]{color:inherit;font-variant-numeric:tabular-nums}.qty-total-readonly[data-v-bbdd8d20]{font-variant-numeric:tabular-nums}.subtotal-value[data-v-bbdd8d20]{font-weight:inherit;color:inherit;font-variant-numeric:tabular-nums}.discount-suffix[data-v-bbdd8d20]{font-size:inherit;color:inherit}.cost-summary[data-v-bbdd8d20]{padding:8px!important}.cost-title[data-v-bbdd8d20]{color:var(--summary-title-color,#303133);margin-top:20px;margin-bottom:6px;padding-top:4px;font-size:10pt;font-weight:700}.system-cost-table[data-v-bbdd8d20]{border:1px solid #e4e7ed;border-radius:3px;margin-top:6px;font-size:.85em;overflow:hidden}.system-cost-header[data-v-bbdd8d20]{background:var(--cost-header-bg,#1f4e79);color:var(--cost-header-color,#fff);height:var(--cost-header-height,28px);align-items:center;padding:5px 0;font-weight:600;display:flex}.system-cost-row[data-v-bbdd8d20]{min-height:var(--cost-item-height,26px);color:var(--cost-item-color,#303133);border-bottom:1px solid #f0f0f0;align-items:center;padding:4px 0;display:flex}.system-cost-row[data-v-bbdd8d20]:not(.cost-total-row):not(.cost-base-row):hover{background:#fafbfc}.system-cost-row.cost-disabled[data-v-bbdd8d20]{color:#c0c4cc}.system-cost-row.cost-base-row[data-v-bbdd8d20]{background:#f5f7fa;font-weight:500}.system-cost-row.cost-total-row[data-v-bbdd8d20]{border-top:2px solid var(--cost-header-bg,#1f4e79);background:var(--cost-total-bg,#f5f7fa);color:var(--cost-total-color,#d9304e);margin-top:4px;padding-top:6px;font-size:1.05em;font-weight:700}.scth-cell[data-v-bbdd8d20]{font-size:var(--cost-header-font,.9em);justify-content:center;align-items:center;padding:0 6px;display:flex}.sctd-cell[data-v-bbdd8d20]{font-size:var(--cost-item-font,.9em);align-items:center;padding:0 6px;display:flex}.cost-item-name[data-v-bbdd8d20]{font-weight:500}.cost-readonly[data-v-bbdd8d20]{color:#909399}.cost-amount[data-v-bbdd8d20]{font-variant-numeric:tabular-nums;color:var(--cost-item-color,#303133);font-weight:500}.cost-total-row .cost-amount[data-v-bbdd8d20]{color:var(--cost-total-color,#d9304e);font-weight:700}.cost-input .el-input__inner[data-v-bbdd8d20]{height:24px}.cost-unit[data-v-bbdd8d20]{color:#909399;margin-left:2px;font-size:.85em}.cost-edit-table[data-v-bbdd8d20]{border-collapse:collapse;width:100%;font-size:.85em}.cost-edit-table th[data-v-bbdd8d20],.cost-edit-table td[data-v-bbdd8d20]{text-align:center;border:1px solid #e4e7ed;padding:6px 8px}.cost-edit-table th[data-v-bbdd8d20]{background:var(--summary-cat-bg,#1f4e79);color:var(--summary-cat-color,#fff);font-weight:600}.cost-edit-table td[data-v-bbdd8d20]{color:var(--summary-sub-color,#303133)}.cost-edit-table tfoot td[data-v-bbdd8d20]{background:var(--summary-total-bg,#f5f7fa);color:var(--summary-total-color,#d9304e);font-weight:700}.cost-total-amount[data-v-bbdd8d20]{color:var(--summary-total-color,#d9304e);font-weight:700}.cost-table-header[data-v-bbdd8d20]{color:#fff;background:#1f4e79;border-radius:3px 3px 0 0;align-items:center;padding:4px 0;font-size:.85em;font-weight:600;display:flex}.cth-name[data-v-bbdd8d20]{flex:1.2;align-items:center;padding-left:8px;display:flex}.cth-desc[data-v-bbdd8d20]{flex:1.5;align-items:center;display:flex}.cth-val[data-v-bbdd8d20]{flex:.8;justify-content:center;align-items:center;display:flex}.cth-num[data-v-bbdd8d20]{flex:.6;justify-content:center;align-items:center;display:flex}.cth-total[data-v-bbdd8d20]{flex:.8;justify-content:flex-end;align-items:center;padding-right:4px;display:flex}.cth-switch[data-v-bbdd8d20]{flex:.5;justify-content:center;align-items:center;display:flex}.cost-edit-row[data-v-bbdd8d20]{border-bottom:1px solid #f0f0f0;flex-shrink:0;align-items:center;padding:4px 0;font-size:.9em;display:flex}.cost-edit-row[data-v-bbdd8d20]:hover{background:#fafbfc}.ce-name[data-v-bbdd8d20]{flex:1.2;align-items:center;min-height:24px;padding-left:6px;font-weight:500;display:flex}.ce-desc[data-v-bbdd8d20]{flex:1.5;align-items:center;min-height:24px;display:flex}.ce-val[data-v-bbdd8d20]{flex:.8;justify-content:center;align-items:center;min-height:24px;display:flex}.ce-num[data-v-bbdd8d20]{flex:.6;justify-content:center;align-items:center;min-height:24px;display:flex}.ce-total[data-v-bbdd8d20]{flex:.8;justify-content:flex-end;align-items:center;min-height:24px;padding-right:4px;display:flex}.ce-switch[data-v-bbdd8d20]{flex:.5;justify-content:center;align-items:center;min-height:24px;display:flex}.ce-input[data-v-bbdd8d20]{width:100%;font-size:inherit;height:24px;color:inherit;background:0 0;border:none;border-radius:0;padding:2px 6px;line-height:20px;transition:border-color .2s}.ce-input[data-v-bbdd8d20]:focus{background:rgba(64,158,255,.03);border-color:#409eff;outline:none}.ce-input[data-v-bbdd8d20]::placeholder{color:#c0c4cc;font-size:.85em}.ce-val-input[data-v-bbdd8d20]{text-align:center;width:50px}.ce-num-input[data-v-bbdd8d20]{text-align:center;width:40px}.ce-unit[data-v-bbdd8d20]{color:#909399;margin-left:2px;font-size:.85em}.ce-readonly[data-v-bbdd8d20]{align-items:center;font-size:.9em;display:flex}.ce-money[data-v-bbdd8d20]{font-variant-numeric:tabular-nums;align-items:center;font-weight:500;display:flex}.cost-edit-row.tax-row[data-v-bbdd8d20]{border-top:1px dashed #dcdfe6;margin-top:4px;padding-top:6px}.cost-edit-row.tax-row .ce-name[data-v-bbdd8d20]{color:#e6a23c}.cost-edit-row.total-row[data-v-bbdd8d20]{border-top:2px solid #1f4e79;margin-top:4px;padding-top:6px;font-size:1.05em;font-weight:700}.cost-edit-row.total-row .ce-money[data-v-bbdd8d20]{font-size:1.1em;font-weight:700}.cost-edit-row.disabled-row[data-v-bbdd8d20]{color:#c0c4cc}.cost-edit-row.disabled-row .ce-input[data-v-bbdd8d20]{color:#c0c4cc;text-decoration:line-through}.category-cost-group[data-v-bbdd8d20]{margin-bottom:12px}.category-cost-title[data-v-bbdd8d20]{color:#1f4e79;background:#e6f0fa;border-radius:3px;margin-bottom:4px;padding:4px 8px;font-size:.95em;font-weight:600}.grand-total-row[data-v-bbdd8d20]{border-top:2px solid #1f4e79;margin-top:8px;padding-top:8px;font-size:1.1em;font-weight:700}.grand-total-row .ce-money[data-v-bbdd8d20]{font-size:1.15em;font-weight:700}.edit-panel[data-v-bbdd8d20]{background:var(--color-surface);border-right:1px solid var(--color-border);z-index:200;flex-direction:column;width:280px;display:flex;position:fixed;top:48px;bottom:0;left:0}.ep-header[data-v-bbdd8d20]{border-bottom:1px solid var(--color-border);background:linear-gradient(180deg, var(--color-surface) 0%, rgba(248,250,252,.5) 100%);flex-shrink:0;padding:12px 14px 14px}.ep-title-row[data-v-bbdd8d20]{align-items:center;gap:6px;display:flex}.ep-title-row svg[data-v-bbdd8d20]{color:var(--color-primary);flex-shrink:0}.ep-title-row h4[data-v-bbdd8d20]{color:var(--color-text);letter-spacing:.5px;flex:1;margin:0;font-size:14px;font-weight:700}.ep-close[data-v-bbdd8d20]{cursor:pointer;color:#86909c;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .15s;display:flex}.ep-close[data-v-bbdd8d20]:hover{color:#1d2129;background:#f2f3f5}.ep-body[data-v-bbdd8d20]{flex:1;padding:8px 14px;overflow-y:auto}.ep-group[data-v-bbdd8d20]{border-bottom:1px solid #f0f0f0;margin-bottom:10px;padding-bottom:10px}.ep-group[data-v-bbdd8d20]:last-child{border-bottom:none}.ep-group-title[data-v-bbdd8d20]{color:#86909c;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:700}.ep-row[data-v-bbdd8d20]{align-items:center;gap:6px;margin-bottom:4px;display:flex}.ep-key[data-v-bbdd8d20]{color:#86909c;flex-shrink:0;min-width:32px;font-size:11px}.ep-grid[data-v-bbdd8d20]{grid-template-columns:1fr 1fr;gap:4px;display:grid}.ep-grid-item[data-v-bbdd8d20]{flex-direction:column;gap:2px;display:flex}.ep-check-row[data-v-bbdd8d20]{margin-bottom:3px}.ep-btn-row[data-v-bbdd8d20]{gap:6px;margin-bottom:6px;display:flex}.ep-row-type[data-v-bbdd8d20]{margin-bottom:2px}.ep-row-type-header[data-v-bbdd8d20]{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;transition:background .15s;display:flex}.ep-row-type-header[data-v-bbdd8d20]:hover{background:#f2f3f5}.ep-dot[data-v-bbdd8d20]{border:1px solid rgba(0,0,0,.1);border-radius:3px;flex-shrink:0;width:14px;height:14px}.ep-row-label[data-v-bbdd8d20]{color:#303133;flex:1;font-size:12px}.ep-arrow[data-v-bbdd8d20]{color:#c0c4cc;flex-shrink:0;transition:transform .2s}.ep-arrow.open[data-v-bbdd8d20]{transform:rotate(180deg)}.ep-row-props[data-v-bbdd8d20]{border-left:2px solid #e4e7ed;margin-bottom:4px;margin-left:14px;padding:4px 8px 6px 28px}.ep-row-props .el-input-number[data-v-bbdd8d20]{width:100%}.ep-color-row[data-v-bbdd8d20]{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.ep-preset-colors[data-v-bbdd8d20]{flex-wrap:wrap;gap:3px;margin-left:4px;display:flex}.ep-swatch[data-v-bbdd8d20]{cursor:pointer;border:1px solid #e5e6eb;border-radius:3px;flex-shrink:0;width:16px;height:16px;transition:transform .15s;display:inline-block}.ep-swatch[data-v-bbdd8d20]:hover{border-color:#4f6cf7;transform:scale(1.25);box-shadow:0 0 0 2px rgba(79,108,247,.2)}.ep-col-item[data-v-bbdd8d20]{border-bottom:1px solid #f5f5f5;margin-bottom:4px;padding-bottom:4px}.ep-col-opts[data-v-bbdd8d20]{align-items:center;gap:4px;margin-top:4px;display:flex}.edit-fade-enter-active[data-v-bbdd8d20]{transition:opacity .15s}.edit-fade-leave-active[data-v-bbdd8d20]{transition:opacity .1s}.edit-fade-enter-from[data-v-bbdd8d20],.edit-fade-leave-to[data-v-bbdd8d20]{opacity:0}.template-item[data-v-bbdd8d20]{border-bottom:1px solid #f0f1f3;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.template-item[data-v-bbdd8d20]:last-child{border-bottom:none}.template-applied[data-v-bbdd8d20]{background:#f0f5ff;border-radius:6px;margin:0 -8px;padding:10px 8px}.tpl-info[data-v-bbdd8d20]{align-items:center;gap:8px;display:flex}.tpl-name[data-v-bbdd8d20]{color:#1d2129;font-size:14px}.tpl-actions[data-v-bbdd8d20]{gap:4px;display:flex}.empty-state[data-v-bbdd8d20]{color:#c0c4cc;flex-direction:column;justify-content:center;align-items:center;padding:60px 0;display:flex}.paper.pdf-exporting .el-input-number,.paper.pdf-exporting .el-input-number .el-input__wrapper,.paper.pdf-exporting .el-input-number .el-input__inner{box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:none!important;padding:0!important}.paper.pdf-exporting .el-input-number__decrease,.paper.pdf-exporting .el-input-number__increase{display:none!important}.paper.pdf-exporting .el-input,.paper.pdf-exporting .el-input .el-input__wrapper,.paper.pdf-exporting .el-input .el-input__inner{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.paper.pdf-exporting .el-select,.paper.pdf-exporting .el-select .el-input__wrapper{box-shadow:none!important;background:0 0!important;border:none!important}.paper.pdf-exporting .el-select .el-select__suffix,.paper.pdf-exporting .el-button,.paper.pdf-exporting .group-batch-discount,.paper.pdf-exporting .sort-btn-group,.paper.pdf-exporting .product-sort-btns{display:none!important}.paper.pdf-exporting img.product-thumb{display:block!important}.status-badge{vertical-align:middle;border-radius:3px;margin-right:4px;padding:1px 5px;font-size:10px;font-weight:500;display:inline-block}.status-badge.unplaced{color:#e6a23c;background:#fdf6ec;border:1px solid #f5dab1}.drawing-export-dialog .export-section[data-v-c68aab01]{flex-direction:column;gap:18px;display:flex}.option-row[data-v-c68aab01]{align-items:center;gap:12px;display:flex}.option-label[data-v-c68aab01]{color:#606266;min-width:70px;font-size:13px}.option-hint[data-v-c68aab01]{color:#909399;align-items:center;gap:6px;padding-left:82px;font-size:12px;display:flex}.export-progress[data-v-c68aab01]{margin-top:4px}.progress-text[data-v-c68aab01]{color:#909399;text-align:center;margin-top:6px;font-size:12px}.qrcode-section[data-v-4e162358]{flex-direction:column;gap:14px;display:flex}.qrcode-type-group[data-v-4e162358]{gap:16px;display:flex}.qrcode-sub[data-v-4e162358]{flex-direction:column;gap:8px;display:flex}.qrcode-generate[data-v-4e162358]{justify-content:center;padding:4px 0;display:flex}.qrcode-preview[data-v-4e162358]{background:#fafafa;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex}.qrcode-preview img[data-v-4e162358]{width:160px;height:160px}.qrcode-tip[data-v-4e162358]{color:#909399;font-size:12px}.dialog-desc[data-v-4e162358]{color:#606266;margin:0 0 12px;font-size:13px;line-height:1.5}.scale-dialog-content[data-v-91a4c2d4]{padding:0 4px}.scale-method[data-v-91a4c2d4]{margin-bottom:16px}.ref-line-info[data-v-91a4c2d4]{background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border-light);color:var(--color-text-secondary);margin-top:12px;padding:12px 14px;font-size:13px}.current-scale[data-v-91a4c2d4]{background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border-light);padding:12px 14px;font-size:13px}.current-product-info[data-v-ee6ab58c]{background:#f5f7fa;border-radius:8px;margin-bottom:16px;padding:12px 16px}.info-label[data-v-ee6ab58c]{color:#86909c;margin-bottom:8px;font-size:12px}.info-content[data-v-ee6ab58c]{align-items:center;gap:12px;display:flex}.info-thumb[data-v-ee6ab58c]{object-fit:contain;border:1px solid #e5e6eb;border-radius:4px;width:48px;height:48px}.info-name[data-v-ee6ab58c]{color:#1d2129;font-size:14px;font-weight:500}.info-model[data-v-ee6ab58c]{color:#4e5969;margin-top:2px;font-size:12px}.info-cat[data-v-ee6ab58c]{color:#86909c;margin-top:2px;font-size:12px}.search-bar[data-v-ee6ab58c]{margin-bottom:12px;display:flex}.product-list[data-v-ee6ab58c]{grid-template-columns:repeat(3,1fr);gap:8px;max-height:400px;display:grid;overflow-y:auto}.empty-tip[data-v-ee6ab58c]{text-align:center;color:#86909c;grid-column:1/-1;padding:40px 0}.product-card[data-v-ee6ab58c]{cursor:pointer;border:1px solid #e5e6eb;border-radius:6px;align-items:center;gap:8px;padding:8px;transition:all .2s;display:flex}.product-card[data-v-ee6ab58c]:hover{background:#f0f3ff;border-color:#4f6cf7}.product-card.selected[data-v-ee6ab58c]{background:#eef1ff;border-color:#4f6cf7}.prod-thumb[data-v-ee6ab58c]{object-fit:contain;border-radius:4px;flex-shrink:0;width:40px;height:40px}.prod-info[data-v-ee6ab58c]{overflow:hidden}.prod-name[data-v-ee6ab58c]{color:#1d2129;white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:12px;overflow:hidden}.prod-model[data-v-ee6ab58c]{color:#86909c;white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:11px;overflow:hidden}.pagination-bar[data-v-ee6ab58c]{justify-content:center;margin-top:12px;display:flex}.capture-offscreen[data-v-6cc9d888]{z-index:-9999!important;pointer-events:none!important;width:100vw!important;height:100vh!important;position:fixed!important;top:0!important;left:-99999px!important;overflow:visible!important}.dashboard-page[data-v-6cc9d888]{background:var(--color-bg);flex-direction:column;width:100%;height:100%;display:flex}.login-panel[data-v-6cc9d888]{background:linear-gradient(135deg,#0a0f1a 0%,#0f1f3d 30%,#1a3a6b 60%,#0d2137 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.login-panel[data-v-6cc9d888]:before{content:"";pointer-events:none;background:radial-gradient(circle,rgba(37,99,235,.08) 0%,transparent 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:-200px;right:-150px}.login-panel[data-v-6cc9d888]:after{content:"";pointer-events:none;background:radial-gradient(circle,rgba(16,185,129,.06) 0%,transparent 70%);border-radius:50%;width:400px;height:400px;position:absolute;bottom:-100px;left:-100px}.login-card[data-v-6cc9d888]{backdrop-filter:blur(20px);z-index:1;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.1);border-radius:20px;width:420px;padding:36px 32px 32px;animation:.6s cubic-bezier(.16,1,.3,1) loginCardIn-6cc9d888;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.05)}@keyframes loginCardIn-6cc9d888{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.login-header[data-v-6cc9d888]{text-align:center;margin-bottom:28px}.login-logo[data-v-6cc9d888]{background:linear-gradient(135deg,#eff6ff,#e0e7ff);border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex;box-shadow:0 4px 12px rgba(37,99,235,.15)}.login-title[data-v-6cc9d888]{color:#0f172a;letter-spacing:1px;margin:0 0 8px;font-size:22px;font-weight:700}.login-subtitle[data-v-6cc9d888]{color:#94a3b8;margin:0;font-size:13px;line-height:1.5}.login-form[data-v-6cc9d888] .el-form-item__label{color:#475569;padding-bottom:4px;font-size:13px;font-weight:500}.login-form[data-v-6cc9d888] .el-form-item{margin-bottom:18px}.login-row[data-v-6cc9d888]{gap:12px;display:flex}.login-row-item[data-v-6cc9d888]{flex:1;min-width:0}.login-form[data-v-6cc9d888] .el-input__wrapper{border-radius:8px;transition:all .2s}.login-form[data-v-6cc9d888] .el-input__wrapper:focus-within{box-shadow:0 0 0 2px rgba(37,99,235,.15)}.login-submit[data-v-6cc9d888]{letter-spacing:1px;border-radius:10px;width:100%;height:44px;margin-top:6px;font-size:15px;font-weight:600}.dashboard-main[data-v-6cc9d888]{background:var(--color-bg);flex-direction:column;width:100%;height:100%;display:flex}.dashboard-content[data-v-6cc9d888]{flex:1;display:flex;overflow:hidden}.left-panel[data-v-6cc9d888],.right-panel[data-v-6cc9d888]{transition:width var(--transition);background:var(--color-surface);display:flex;position:relative}.left-panel[data-v-6cc9d888]{border-right:1px solid var(--color-border);flex-direction:column;width:280px;min-width:0}.left-panel.collapsed[data-v-6cc9d888]{width:28px}.right-panel[data-v-6cc9d888]{border-right:none;border-left:1px solid var(--color-border);flex-direction:column;width:280px;min-width:0;height:100%;overflow:hidden}.right-panel.collapsed[data-v-6cc9d888]{width:28px}.panel-toggle[data-v-6cc9d888]{z-index:10;cursor:pointer;background:var(--color-surface);border:1px solid var(--color-border);width:20px;height:40px;color:var(--color-text-hint);transition:all var(--transition);justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.left-panel .panel-toggle[data-v-6cc9d888]{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;right:-20px}.right-panel .panel-toggle[data-v-6cc9d888]{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none;left:-20px}.panel-toggle[data-v-6cc9d888]:hover{color:var(--color-primary);background:var(--color-primary-bg)}.canvas-area[data-v-6cc9d888]{background:var(--color-canvas-bg);flex:1;position:relative;overflow:hidden}.canvas-context-menu[data-v-6cc9d888]{z-index:9999;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:170px;padding:4px 0;animation:.15s ease-out contextMenuIn-6cc9d888;position:fixed}@keyframes contextMenuIn-6cc9d888{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.menu-item[data-v-6cc9d888]{color:var(--color-text);cursor:pointer;transition:background var(--transition), color var(--transition);border-radius:4px;align-items:center;gap:8px;margin:0 4px;padding:8px 16px;font-size:13px;display:flex}.menu-item[data-v-6cc9d888]:hover{background:var(--color-primary-bg);color:var(--color-primary)}.menu-item.danger[data-v-6cc9d888]{color:var(--color-danger)}.menu-item.danger[data-v-6cc9d888]:hover{color:#f56c6c;background:#fef0f0}.menu-divider[data-v-6cc9d888]{background:#ebeef5;height:1px;margin:4px 8px}.menu-item.has-submenu[data-v-6cc9d888]{position:relative}.submenu-arrow[data-v-6cc9d888]{color:var(--color-text-hint);margin-left:auto;font-size:12px}.menu-item.has-submenu>.submenu[data-v-6cc9d888]{display:none}.menu-item.has-submenu:hover>.submenu[data-v-6cc9d888],.menu-item.has-submenu>.submenu.touch-open[data-v-6cc9d888]{display:block}.submenu[data-v-6cc9d888]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;min-width:160px;padding:4px 0;position:absolute;top:-4px;left:100%}.submenu-item[data-v-6cc9d888]{cursor:pointer;color:var(--color-text);transition:background var(--transition);border-radius:4px;align-items:center;gap:6px;margin:0 4px;padding:8px 14px;font-size:13px;display:flex}.submenu-item[data-v-6cc9d888]:hover{background:var(--color-primary-bg)}.submenu-item.active[data-v-6cc9d888]{color:var(--color-primary);font-weight:500}.submenu-item.has-submenu[data-v-6cc9d888]{position:relative}.submenu-item.has-submenu .submenu[data-v-6cc9d888]{position:absolute;top:-4px;left:100%}@media (pointer:coarse){.left-panel[data-v-6cc9d888],.right-panel[data-v-6cc9d888]{width:260px}.menu-item[data-v-6cc9d888]{align-items:center;min-height:44px;padding:12px 18px;font-size:14px;display:flex}.submenu-item[data-v-6cc9d888]{align-items:center;min-height:44px;padding:11px 16px;font-size:14px;display:flex}.menu-item.has-submenu>.submenu[data-v-6cc9d888]{box-shadow:none;border:none;min-width:auto;padding:0;position:static}.submenu-arrow[data-v-6cc9d888]{display:none}}@media (max-width:1024px){.left-panel[data-v-6cc9d888],.right-panel[data-v-6cc9d888]{width:240px}}:root{--color-primary:#2563eb;--color-primary-light:#3b82f6;--color-primary-lighter:#93c5fd;--color-primary-bg:#eff6ff;--color-primary-border:#bfdbfe;--color-accent:#10b981;--color-accent-light:#34d399;--color-accent-bg:#ecfdf5;--color-text:#1e293b;--color-text-secondary:#64748b;--color-text-hint:#94a3b8;--color-text-inverse:#fff;--color-bg:#f1f5f9;--color-surface:#fff;--color-surface-alt:#f8fafc;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-border-dark:#cbd5e1;--color-success:#10b981;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-info:#64748b;--color-toolbar-bg:#0f172a;--color-toolbar-text:#e2e8f0;--color-toolbar-text-muted:#94a3b8;--color-toolbar-hover:#1e293b;--color-toolbar-active:#2563eb;--radius-xs:3px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,.08), 0 2px 4px -1px rgba(0,0,0,.04);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--transition:.2s ease;--transition-fast:.12s ease;--font-family:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Monaco", "Consolas", monospace;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;overflow:hidden}.dashboard-layout{flex-direction:column;width:100%;height:100%;display:flex}.dashboard-body{flex:1;display:flex;overflow:hidden}.left-panel{background:var(--color-surface);border-right:1px solid var(--color-border);z-index:10;flex-direction:column;width:272px;min-width:272px;display:flex;position:relative;overflow:hidden}.right-panel{background:var(--color-surface);border-left:1px solid var(--color-border);z-index:10;flex-direction:column;width:320px;min-width:320px;display:flex;position:relative;overflow:hidden}.center-canvas{background:var(--color-bg);flex:1;min-width:0;position:relative;overflow:hidden}.toolbar{height:48px;color:var(--color-toolbar-text);padding:0 var(--space-sm);z-index:100;background:linear-gradient(#111827 0%,#0f172a 100%);border-bottom:1px solid rgba(255,255,255,.04);align-items:center;gap:2px;display:flex;overflow:visible;box-shadow:0 1px 4px rgba(0,0,0,.3),inset 0 -1px rgba(255,255,255,.03)}.toolbar::-webkit-scrollbar{display:none}.toolbar-group{align-items:center;gap:2px;display:flex}.toolbar-divider{width:1px;height:24px;margin:0 var(--space-sm);background:rgba(255,255,255,.08)}.toolbar-btn{min-width:48px;height:38px;color:var(--color-toolbar-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;outline:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px 10px;font-family:inherit;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.toolbar-btn:hover{color:rgba(255,255,255,.9);background:rgba(255,255,255,.08)}.toolbar-btn:active{background:var(--color-toolbar-active);color:var(--color-text-inverse);transform:scale(.96)}.toolbar-btn.is-active{background:var(--color-toolbar-active);color:var(--color-text-inverse)}.toolbar-btn .btn-icon{font-size:16px;line-height:1}.toolbar-btn .btn-label{white-space:nowrap;letter-spacing:.3px;font-size:10px;line-height:1.3}.toolbar-btn.primary-action{min-width:56px;color:var(--color-text-inverse);background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:6px;font-weight:600;box-shadow:0 2px 8px rgba(16,185,129,.3)}.toolbar-btn.primary-action:hover{background:linear-gradient(135deg,#34d399 0%,#10b981 100%);transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,185,129,.4)}.toolbar-right{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.floor-indicator{border-radius:var(--radius-sm);color:var(--color-toolbar-text-muted);white-space:nowrap;background:rgba(255,255,255,.08);align-items:center;gap:4px;padding:4px 12px;font-size:11px;display:flex}.floor-indicator .floor-name{color:#fff;font-size:12px;font-weight:700}.toolbar-right .scale-display{border-radius:var(--radius-sm);color:var(--color-toolbar-text-muted);background:rgba(255,255,255,.06);align-items:center;gap:4px;padding:4px 10px;font-size:11px;display:flex}.toolbar-right .scale-display .scale-value{color:var(--color-accent-light);font-weight:600}.login-overlay{z-index:9999;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.login-card{backdrop-filter:blur(20px);border-radius:var(--radius-xl);width:400px;box-shadow:var(--shadow-lg), 0 0 80px rgba(37,99,235,.12);background:rgba(255,255,255,.96);padding:36px}.login-card h3{color:var(--color-text);letter-spacing:.5px;margin-bottom:4px;font-size:20px;font-weight:700}.login-card .login-subtitle{color:var(--color-text-hint);margin-bottom:24px;font-size:13px}.context-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10000;min-width:168px;padding:4px;position:fixed}.context-menu-item{color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.context-menu-item:hover{background:var(--color-primary-bg);color:var(--color-primary)}.context-menu-item.danger{color:var(--color-danger)}.context-menu-item.danger:hover{background:var(--color-danger-light)}.drag-over{outline:2px dashed var(--color-primary);outline-offset:-2px;background:var(--color-primary-bg)!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.2)}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}.el-button{--el-button-border-radius:6px}.el-dialog{--el-dialog-border-radius:12px}.el-tag{--el-tag-border-radius:4px}.el-overlay{backdrop-filter:blur(2px)}.el-dialog{box-shadow:0 20px 60px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05)}.el-input__wrapper,.el-select__wrapper{border-radius:6px!important}.el-table__row:hover>td{background-color:var(--color-primary-bg)!important}.room-boundary-rect{stroke-dasharray:8 4;stroke-width:1.5px;fill:transparent;pointer-events:none}.room-boundary-label{pointer-events:none;font-size:11px}@media (pointer:coarse){.toolbar-btn{min-width:52px;height:44px}.toolbar-btn .btn-icon{font-size:18px}.toolbar-btn .btn-label{font-size:11px}.left-panel{width:290px;min-width:290px}.right-panel{width:340px;min-width:340px}.el-button{min-height:44px}.el-checkbox{--el-checkbox-input-width:18px;--el-checkbox-input-height:18px}.left-panel,.right-panel,.product-panel,.tree-scroll-area{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.el-select .el-input__inner{min-height:44px}.el-pagination .btn-prev,.el-pagination .btn-next,.el-pagination .el-pager li{min-width:36px;height:36px;line-height:36px}.el-tree-node__content{height:40px!important}.el-input__wrapper{min-height:44px!important}.el-dialog__footer .el-button{min-height:44px}}@media (max-width:768px){.left-panel{width:220px;min-width:220px}.right-panel{width:240px;min-width:240px}}
