.tree-node[data-v-ec9b8f08]{-webkit-user-select:none;user-select:none}.node-row[data-v-ec9b8f08]{display:flex;align-items:center;padding:6px 8px;cursor:pointer;transition:background .15s,border-color .15s;border-left:3px solid transparent;gap:4px}.node-row[data-v-ec9b8f08]:hover{background:#f5f7fa}.node-row.is-selected[data-v-ec9b8f08]{background:#4a7dff0f;border-left-color:#4a7dff}.node-row.drag-over[data-v-ec9b8f08]{background:#4a7dff1a;border-left-color:#4a7dff}.node-row.dragging[data-v-ec9b8f08]{opacity:.4}.node-name[data-v-ec9b8f08]{flex:1;font-size:13px;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.node-actions[data-v-ec9b8f08]{display:flex;gap:2px;opacity:0;transition:opacity .15s;flex-shrink:0}.node-row:hover .node-actions[data-v-ec9b8f08]{opacity:1}.action-btn[data-v-ec9b8f08]{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:12px;color:#8c8c8c;transition:all .15s;padding:0}.action-btn[data-v-ec9b8f08]:hover{background:#e8e8e8;color:#1a1a1a}.action-btn.add-dash-btn[data-v-ec9b8f08]{color:#4a7dff;font-weight:700;font-size:14px}.action-btn.add-dash-btn[data-v-ec9b8f08]:hover{background:#4a7dff1a;color:#4a7dff}.action-btn.delete-btn[data-v-ec9b8f08]:hover{background:#ff4d4f14;color:#ff4d4f}.dialog-overlay[data-v-ec9b8f08]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-box[data-v-ec9b8f08]{background:#fff;border-radius:12px;width:360px;max-width:90vw;box-shadow:0 4px 20px #00000026;overflow:hidden}.dialog-header[data-v-ec9b8f08]{padding:16px 20px;font-size:15px;font-weight:600;color:#1a1a1a;border-bottom:1px solid #f0f0f0;background:#4a7dff0f}.dialog-body[data-v-ec9b8f08]{padding:20px}.dialog-body p[data-v-ec9b8f08]{font-size:13px;color:#595959;line-height:1.6}.warn-text[data-v-ec9b8f08]{color:#ff4d4f!important;margin-top:8px;font-size:12px!important}.rename-input[data-v-ec9b8f08]{width:100%;padding:8px 12px;border:1px solid #e8e8e8;border-radius:8px;font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s;background:#f5f5f5;color:#1a1a1a}.rename-input[data-v-ec9b8f08]:focus{border-color:#4a7dff;background:#fff;box-shadow:0 0 0 2px #4a7dff1a}.dialog-footer[data-v-ec9b8f08]{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #f0f0f0}.dialog-cancel[data-v-ec9b8f08]{padding:6px 16px;background:#f0f2f5;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;font-size:13px;color:#595959;transition:all .2s}.dialog-cancel[data-v-ec9b8f08]:hover{background:#e8e8e8}.dialog-confirm[data-v-ec9b8f08]{padding:6px 16px;background:#4a7dff;border:none;border-radius:6px;cursor:pointer;font-size:13px;color:#fff;transition:all .2s}.dialog-confirm[data-v-ec9b8f08]:hover{background:#3a6de8}.dialog-confirm.danger[data-v-ec9b8f08]{background:#ff4d4f}.dialog-confirm.danger[data-v-ec9b8f08]:hover{background:#ff7875}.data-panel[data-v-faf36fe1]{display:flex;flex-direction:column;height:100%;background:#fff}.tree-container[data-v-faf36fe1]{flex:1;overflow-y:auto;padding:8px 0}.empty-hint[data-v-faf36fe1]{padding:20px 14px;text-align:center;color:#8c8c8c;font-size:12px}.data-dictionary[data-v-a7114cd6]{display:flex;flex-direction:column;height:100%;background:#fff}.dict-header[data-v-a7114cd6]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e8e8e8}.dict-header h3[data-v-a7114cd6]{font-size:14px;font-weight:600;color:#1a1a1a}.refresh-btn[data-v-a7114cd6]{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#f0f2f5;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;color:#8c8c8c;transition:all .2s}.refresh-btn[data-v-a7114cd6]:hover:not(:disabled){background:#4a7dff;color:#fff;border-color:#4a7dff}.refresh-btn[data-v-a7114cd6]:disabled{opacity:.5;cursor:not-allowed}.dict-body[data-v-a7114cd6]{flex:1;overflow:auto;padding:0}.dict-panels[data-v-a7114cd6]{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0;min-width:0}.dict-table-list[data-v-a7114cd6]{width:140px;min-width:120px;flex-shrink:0;height:100%;overflow-y:auto;border-right:1px solid #e8e8e8;background:#fafbfc}.dict-domain-header[data-v-a7114cd6]{padding:8px 12px;font-size:11px;font-weight:600;color:#8c8c8c;background:#f0f2f5;border-bottom:1px solid #e8e8e8;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:1}.dict-domain-group:first-child .dict-domain-header[data-v-a7114cd6]{top:0}.dict-table-item[data-v-a7114cd6]{padding:8px 10px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .15s}.dict-table-item[data-v-a7114cd6]:hover{background:#f0f4ff}.dict-table-item.active[data-v-a7114cd6]{background:#e8f0ff;border-left:3px solid #4a7dff;padding-left:9px}.table-item-name[data-v-a7114cd6]{font-size:12px;font-weight:600;color:#1a1a1a;font-family:SF Mono,Monaco,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-item-comment[data-v-a7114cd6]{font-size:11px;color:#8c8c8c;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-item-count[data-v-a7114cd6]{font-size:10px;color:#4a7dff;margin-top:3px}.dict-detail[data-v-a7114cd6]{flex:1;overflow:auto;min-width:0;min-height:0;background:#fff}.detail-header[data-v-a7114cd6]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f0f4ff;border-bottom:1px solid #d6e0f5;position:sticky;top:0;z-index:2}.detail-icon[data-v-a7114cd6]{font-size:14px;flex-shrink:0}.detail-name[data-v-a7114cd6]{font-size:13px;font-weight:600;color:#1a1a1a;font-family:SF Mono,Monaco,Consolas,monospace}.detail-comment[data-v-a7114cd6]{font-size:12px;color:#8c8c8c;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-count[data-v-a7114cd6]{font-size:11px;color:#8c8c8c;background:#e8ecf4;padding:1px 6px;border-radius:8px;flex-shrink:0}.dict-loading[data-v-a7114cd6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:12px;color:#8c8c8c;font-size:13px}.loading-spinner[data-v-a7114cd6]{width:24px;height:24px;border:2px solid #e8e8e8;border-top-color:#4a7dff;border-radius:50%;animation:spin-a7114cd6 .8s linear infinite}@keyframes spin-a7114cd6{to{transform:rotate(360deg)}}.dict-error[data-v-a7114cd6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:10px;color:#8c8c8c;font-size:13px}.retry-btn[data-v-a7114cd6]{padding:6px 16px;background:#4a7dff;border:none;border-radius:6px;cursor:pointer;font-size:12px;color:#fff;margin-top:4px}.retry-btn[data-v-a7114cd6]:hover{background:#3a6de8}.dict-empty[data-v-a7114cd6]{padding:40px 20px;text-align:center;color:#8c8c8c;font-size:13px}.dict-no-fields[data-v-a7114cd6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;color:#bfbfbf;font-size:13px}.dict-no-fields p[data-v-a7114cd6]{margin:0}.dict-table[data-v-a7114cd6]{width:100%;border-collapse:collapse;font-size:13px}.dict-table th[data-v-a7114cd6]{background:#f5f7fa;padding:8px 12px;text-align:left;font-weight:600;color:#595959;border-bottom:1px solid #e8e8e8;white-space:nowrap;font-size:12px}.dict-table td[data-v-a7114cd6]{padding:6px 12px;border-bottom:1px solid #f0f0f0;color:#1a1a1a;vertical-align:middle}.dict-table tbody tr[data-v-a7114cd6]:hover{background:#4a7dff08}.dict-table tbody tr.row-alt[data-v-a7114cd6]{background:#fafbfc}.dict-table tbody tr.row-alt[data-v-a7114cd6]:hover{background:#4a7dff0d}.col-field[data-v-a7114cd6]{width:140px;min-width:100px}.field-name[data-v-a7114cd6]{font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;background:#f5f5f5;padding:1px 5px;border-radius:3px;color:#1a1a1a}.col-display[data-v-a7114cd6]{width:120px;min-width:80px}.col-type[data-v-a7114cd6]{width:100px;min-width:80px}.type-tag[data-v-a7114cd6]{font-family:SF Mono,Monaco,Consolas,monospace;background:#f0f2f5;padding:2px 6px;border-radius:4px;font-size:11px;color:#595959}.col-desc[data-v-a7114cd6]{min-width:120px;color:#595959;font-size:12px;line-height:1.4}.col-ftype[data-v-a7114cd6]{width:100px;min-width:80px}.display-input[data-v-a7114cd6]{border:1px solid transparent;border-radius:4px;padding:2px 6px;font-size:12px;background:transparent;width:100%;color:#1a1a1a;transition:border-color .2s}.display-input[data-v-a7114cd6]:hover{border-color:#e8e8e8}.display-input[data-v-a7114cd6]:focus{outline:none;border-color:#4a7dff;background:#fff}.ftype-select[data-v-a7114cd6]{border:1px solid #e8e8e8;border-radius:4px;padding:2px 4px;font-size:11px;background:#fff;color:#595959;cursor:pointer;width:100%}.ftype-select[data-v-a7114cd6]:focus{outline:none;border-color:#4a7dff}.col-null[data-v-a7114cd6]{width:60px;text-align:center}.nullable-badge[data-v-a7114cd6]{font-size:11px;padding:2px 8px;border-radius:10px;background:#f0f2f5;color:#8c8c8c}.nullable-badge.nullable[data-v-a7114cd6]{background:#2ed5731a;color:#2e7d32}.data-dictionary.dict-list-mode[data-v-a7114cd6]{overflow:hidden;display:flex;flex-direction:column;height:100%}.dict-list-mode .dict-table-list[data-v-a7114cd6]{flex:1;overflow-y:auto;min-height:0;width:100%;border-right:none}.data-dictionary.dict-detail-mode[data-v-a7114cd6]{overflow:auto;height:100%}.dict-detail-mode .dict-detail[data-v-a7114cd6]{height:100%}.dict-empty-detail[data-v-a7114cd6]{display:flex;align-items:center;justify-content:center;height:100%;color:#8c8c8c;font-size:14px}.desc-input[data-v-a7114cd6]{width:100%;padding:2px 6px;border:1px solid transparent;border-radius:4px;background:transparent;font-size:12px;color:#333;transition:border-color .2s}.desc-input[data-v-a7114cd6]:hover{border-color:#d9d9d9}.desc-input[data-v-a7114cd6]:focus{outline:none;border-color:#4a7dff;background:#fff}.col-unified[data-v-a7114cd6]{width:120px}.unified-select[data-v-a7114cd6]{width:100%;padding:2px 4px;border:1px solid transparent;border-radius:4px;background:transparent;font-size:12px;color:#333;cursor:pointer}.unified-select[data-v-a7114cd6]:hover{border-color:#d9d9d9}.unified-select[data-v-a7114cd6]:focus{outline:none;border-color:#4a7dff}.progress-bar-wrap[data-v-a7114cd6]{display:flex;align-items:center;gap:8px;padding:6px 16px;background:#fafafa;border-bottom:1px solid #f0f0f0;font-size:12px;color:#8c8c8c}.progress-label[data-v-a7114cd6]{white-space:nowrap}.progress-bar[data-v-a7114cd6]{flex:1;height:6px;background:#e8e8e8;border-radius:3px;overflow:hidden}.progress-fill[data-v-a7114cd6]{height:100%;background:linear-gradient(90deg,#4a7dff,#69b36b);border-radius:3px;transition:width .3s}.progress-text[data-v-a7114cd6]{white-space:nowrap;font-weight:500;color:#333}.detail-actions[data-v-a7114cd6]{display:flex;gap:4px;margin-left:auto}.header-btn[data-v-a7114cd6]{padding:2px 8px;border:1px solid #e8e8e8;border-radius:4px;background:#fff;cursor:pointer;font-size:14px;transition:all .2s}.header-btn[data-v-a7114cd6]:hover{background:#f0f2f5;border-color:#4a7dff}.chart-container[data-v-7af554d7]{width:100%;height:100%;min-height:150px;max-height:100%;background:#fff;overflow:hidden;box-sizing:border-box}.chart-canvas[data-v-7af554d7]{width:100%!important;height:100%!important;min-height:150px;max-height:100%;box-sizing:border-box}.kpi-card[data-v-7af554d7]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:200px;padding:24px}.kpi-value[data-v-7af554d7]{font-size:48px;font-weight:700;color:#1a1a1a;line-height:1.2;font-variant-numeric:tabular-nums}.kpi-label[data-v-7af554d7]{margin-top:8px;font-size:14px;color:#8c8c8c}.folder-view[data-v-1f888448]{height:100%;display:flex;flex-direction:column;overflow:hidden}.breadcrumb-bar[data-v-1f888448]{display:flex;align-items:center;gap:4px;padding:10px 16px;background:#fff;border:1px solid #e8e8e8;border-radius:10px;margin-bottom:12px;flex-wrap:wrap}.breadcrumb-item[data-v-1f888448]{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:13px;color:#4a7dff;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s}.breadcrumb-item[data-v-1f888448]:hover{background:#4a7dff14}.breadcrumb-item.current[data-v-1f888448]{color:#1a1a1a;font-weight:600;cursor:default}.breadcrumb-item.current[data-v-1f888448]:hover{background:transparent}.breadcrumb-item.root[data-v-1f888448]{color:#8c8c8c}.breadcrumb-item.root[data-v-1f888448]:hover{color:#4a7dff}.breadcrumb-sep[data-v-1f888448]{color:#d9d9d9;font-size:13px}.folder-toolbar[data-v-1f888448]{display:flex;gap:8px;margin-bottom:16px}.toolbar-btn[data-v-1f888448]{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;color:#4a7dff;background:#4a7dff0f;border:1px solid rgba(74,125,255,.2);border-radius:8px;cursor:pointer;transition:all .2s}.toolbar-btn[data-v-1f888448]:hover,.toolbar-btn.refresh-btn[data-v-1f888448]{background:#4a7dff;color:#fff;border-color:#4a7dff}.toolbar-btn.refresh-btn[data-v-1f888448]:hover:not(:disabled){background:#3a6ae8;border-color:#3a6ae8}.toolbar-btn.refresh-btn[data-v-1f888448]:disabled{opacity:.6;cursor:not-allowed}.simple-grid[data-v-1f888448]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.card[data-v-1f888448]{display:flex;flex-direction:column;align-items:center;padding:20px 16px 14px;background:#fff;border:1px solid #e8e8e8;border-radius:10px;cursor:pointer;transition:all .2s;position:relative}.card[data-v-1f888448]:hover{border-color:#4a7dff;box-shadow:0 2px 8px #4a7dff1a;transform:translateY(-1px)}.card-folder .card-icon[data-v-1f888448]{color:#faad14}.card-table .card-icon[data-v-1f888448]{color:#4a7dff}.card-icon[data-v-1f888448]{margin-bottom:10px}.card-info[data-v-1f888448]{text-align:center;width:100%}.card-name[data-v-1f888448]{font-size:13px;font-weight:500;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}.card-meta[data-v-1f888448]{font-size:11px;color:#8c8c8c}.card-actions[data-v-1f888448]{position:absolute;top:6px;right:6px;display:flex;gap:2px;opacity:0;transition:opacity .15s;z-index:10}.is-hovered .card-actions[data-v-1f888448]{opacity:1}.card-action-btn[data-v-1f888448]{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border:1px solid #e8e8e8;border-radius:4px;cursor:pointer;font-size:11px;color:#8c8c8c;transition:all .15s}.card-action-btn[data-v-1f888448]:hover{background:#f0f2f5;color:#1a1a1a}.card-action-btn.delete[data-v-1f888448]:hover{background:#ff4d4f14;color:#ff4d4f}.dashboard-area[data-v-1f888448]{position:relative;overflow-y:auto;padding-bottom:20px}.dash-card[data-v-1f888448]{position:absolute;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000f;border:1px solid #e8e8e8;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s;padding:0}.dash-card[data-v-1f888448]:hover{box-shadow:0 2px 12px #0000001a;border-color:#d0d0d0}.dash-card.is-resizing[data-v-1f888448]{box-shadow:0 4px 16px #4a7dff33;border-color:#4a7dff;z-index:10}.dash-card-header[data-v-1f888448]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #f0f0f0;flex-shrink:0;background:#4a7dff05}.dash-card-title[data-v-1f888448]{font-size:13px;font-weight:600;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;margin-right:8px}.dash-card-body[data-v-1f888448]{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.card-table-wrap[data-v-1f888448]{overflow:auto;flex:1}.card-table-wrap table[data-v-1f888448]{width:100%;border-collapse:collapse;font-size:12px}.card-table-wrap th[data-v-1f888448]{background:#f5f7fa;padding:7px 10px;text-align:left;font-weight:600;color:#595959;border-bottom:1px solid #e8e8e8;white-space:nowrap;position:sticky;top:0;z-index:1}.card-table-wrap td[data-v-1f888448]{padding:5px 10px;border-bottom:1px solid #f0f0f0;color:#1a1a1a;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.card-table-wrap tr:hover td[data-v-1f888448]{background:#4a7dff08}.card-no-data[data-v-1f888448]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:80px;color:#8c8c8c;font-size:13px;gap:4px}.no-data-hint[data-v-1f888448]{font-size:11px;color:#bfbfbf}.resize-handle[data-v-1f888448]{position:absolute;bottom:0;right:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:nwse-resize;color:#d9d9d9;opacity:0;transition:opacity .15s;z-index:5;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.03) 50%);border-radius:0 0 10px}.dash-card:hover .resize-handle[data-v-1f888448]{opacity:1}.resize-handle[data-v-1f888448]:hover{color:#4a7dff}.resize-overlay[data-v-1f888448]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;cursor:nwse-resize}.dash-card-header[data-v-1f888448]{cursor:grab}.dash-card.is-dragging .dash-card-header[data-v-1f888448]{cursor:grabbing}.dash-card.is-dragging[data-v-1f888448]{box-shadow:0 4px 16px #4a7dff40;border-color:#4a7dff;z-index:10;opacity:.9}.drag-overlay[data-v-1f888448]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;cursor:grabbing}.empty-state[data-v-1f888448]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8c8c8c}.empty-state p[data-v-1f888448]{font-size:14px}.empty-hint[data-v-1f888448]{font-size:12px!important;color:#bfbfbf!important}.dialog-overlay[data-v-1f888448]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-box[data-v-1f888448]{background:#fff;border-radius:12px;width:360px;max-width:90vw;box-shadow:0 4px 20px #00000026;overflow:hidden}.dialog-header[data-v-1f888448]{padding:16px 20px;font-size:15px;font-weight:600;color:#1a1a1a;border-bottom:1px solid #f0f0f0;background:#4a7dff0f}.dialog-body[data-v-1f888448]{padding:20px}.rename-input[data-v-1f888448]{width:100%;padding:8px 12px;border:1px solid #e8e8e8;border-radius:8px;font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s;background:#f5f5f5;color:#1a1a1a}.rename-input[data-v-1f888448]:focus{border-color:#4a7dff;background:#fff;box-shadow:0 0 0 2px #4a7dff1a}.dialog-footer[data-v-1f888448]{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #f0f0f0}.dialog-cancel[data-v-1f888448]{padding:6px 16px;background:#f0f2f5;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;font-size:13px;color:#595959;transition:all .2s}.dialog-cancel[data-v-1f888448]:hover{background:#e8e8e8}.dialog-confirm[data-v-1f888448]{padding:6px 16px;background:#4a7dff;border:none;border-radius:6px;cursor:pointer;font-size:13px;color:#fff;transition:all .2s}.dialog-confirm[data-v-1f888448]:hover{background:#3a6de8}.repair-btn[data-v-1f888448]{margin-top:8px;padding:4px 12px;font-size:12px;color:#4a7dff;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:6px;cursor:pointer;transition:all .15s}.repair-btn[data-v-1f888448]:hover{background:#4a7dff;color:#fff;border-color:#4a7dff}.repair-dropdown[data-v-1f888448]{margin-top:8px;padding:8px;background:#fafafa;border:1px solid #e8e8e8;border-radius:6px}.repair-hint[data-v-1f888448]{font-size:11px;color:#8c8c8c;margin-bottom:6px}.repair-select[data-v-1f888448]{width:100%;padding:4px 8px;font-size:12px;border:1px solid #e8e8e8;border-radius:4px;margin-bottom:6px}.repair-cancel-btn[data-v-1f888448]{width:100%;padding:4px 8px;font-size:11px;color:#8c8c8c;background:#f0f2f5;border:1px solid #e8e8e8;border-radius:4px;cursor:pointer}.repair-cancel-btn[data-v-1f888448]:hover{background:#e8e8e8;color:#1a1a1a}.table-preview[data-v-59a0b058]{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 1px 4px #0000000f;overflow:hidden}.preview-header[data-v-59a0b058]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e8e8e8;background:#fff}.header-info[data-v-59a0b058]{display:flex;align-items:center;gap:8px}.header-info h3[data-v-59a0b058]{margin:0;font-size:16px;font-weight:600;color:#1a1a1a}.record-count[data-v-59a0b058]{font-size:13px;color:#8c8c8c}.close-btn[data-v-59a0b058]{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#f0f2f5;border:none;border-radius:6px;cursor:pointer;font-size:14px;color:#8c8c8c;transition:all .15s}.close-btn[data-v-59a0b058]:hover{background:#ff47571a;color:#ff4757}.preview-loading[data-v-59a0b058]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#8c8c8c}.loading-spinner[data-v-59a0b058]{width:32px;height:32px;border:3px solid #e8e8e8;border-top-color:#4a7dff;border-radius:50%;animation:spin-59a0b058 .8s linear infinite}@keyframes spin-59a0b058{to{transform:rotate(360deg)}}.preview-loading p[data-v-59a0b058]{margin:0;font-size:13px}.preview-error[data-v-59a0b058]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#ff4757}.preview-error p[data-v-59a0b058]{margin:0;font-size:13px}.retry-btn[data-v-59a0b058]{margin-top:8px;padding:6px 16px;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:6px;color:#4a7dff;cursor:pointer;font-size:12px;transition:all .15s}.retry-btn[data-v-59a0b058]:hover{background:#4a7dff;color:#fff}.preview-table-wrapper[data-v-59a0b058]{flex:1;overflow:auto}.preview-table[data-v-59a0b058]{width:100%;border-collapse:collapse;font-size:13px}.preview-table th[data-v-59a0b058]{position:sticky;top:0;background:#4a7dff0f;font-weight:600;color:#8c8c8c;padding:10px 12px;text-align:left;border-bottom:2px solid rgba(74,125,255,.15);white-space:nowrap}.preview-table td[data-v-59a0b058]{padding:8px 12px;border-bottom:1px solid #f0f2f5;color:#1a1a1a;white-space:nowrap}.preview-table tbody tr[data-v-59a0b058]:hover{background:#4a7dff0d}.preview-empty[data-v-59a0b058]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8c8c8c}.preview-empty p[data-v-59a0b058]{margin:0;font-size:13px}.saved-query-view[data-v-843bba33]{height:100%;overflow-y:auto;background:#fff;border-radius:12px;border:1px solid #e8e8e8;box-shadow:0 1px 4px #0000000f;padding:20px}.query-info[data-v-843bba33]{background:#4a7dff0f;border:1px solid rgba(74,125,255,.15);border-radius:10px;padding:16px;margin-bottom:20px}.info-header[data-v-843bba33]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.restore-report-btn[data-v-843bba33]{margin-left:auto;padding:5px 12px;border:1px solid #4a7dff;border-radius:6px;background:#fff;color:#4a7dff;font-size:12px;cursor:pointer;transition:background .15s,color .15s}.restore-report-btn[data-v-843bba33]:hover{background:#4a7dff;color:#fff}.info-title[data-v-843bba33]{font-size:12px;font-weight:600;color:#8c8c8c;text-transform:uppercase}.info-question[data-v-843bba33]{font-size:16px;font-weight:600;color:#1a1a1a;line-height:1.4}.info-meta[data-v-843bba33]{font-size:12px;color:#8c8c8c;margin-top:6px}.result-section[data-v-843bba33]{margin-bottom:18px}.result-section[data-v-843bba33]:last-child{margin-bottom:0}.section-header[data-v-843bba33]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.section-label[data-v-843bba33]{font-size:12px;font-weight:600;color:#8c8c8c;text-transform:uppercase;margin-bottom:6px}.sql-actions[data-v-843bba33]{display:flex;gap:6px;align-items:center}.sql-action-btn[data-v-843bba33]{display:flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;cursor:pointer;font-size:12px;transition:all .2s}.refresh-sql-btn[data-v-843bba33]{background:#4a7dff14;border:1px solid rgba(74,125,255,.3);color:#4a7dff}.refresh-sql-btn[data-v-843bba33]:hover:not(:disabled){background:#4a7dff;color:#fff;border-color:#4a7dff}.refresh-sql-btn[data-v-843bba33]:disabled{opacity:.6;cursor:not-allowed}.copy-btn[data-v-843bba33]{padding:3px 10px;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:12px;color:#4a7dff;cursor:pointer;font-size:12px;transition:all .2s}.copy-btn[data-v-843bba33]:hover{background:#4a7dff;color:#fff;border-color:#4a7dff}.copy-btn.copied[data-v-843bba33]{background:#2ed5731a;color:#2e7d32;border-color:#2ed5734d}.sql-block[data-v-843bba33]{background:#f5f5f5;color:#1a1a1a;padding:12px;border-radius:6px;font-family:Courier New,monospace;font-size:13px;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:0;border:1px solid #e8e8e8}.explanation[data-v-843bba33]{margin:0;color:#8c8c8c;font-size:14px;line-height:1.5}.table-wrapper[data-v-843bba33]{overflow-x:auto;border:1px solid #e8e8e8;border-radius:6px;margin-top:4px}table[data-v-843bba33]{width:100%;border-collapse:collapse}th[data-v-843bba33],td[data-v-843bba33]{padding:8px 12px;text-align:left;border-bottom:1px solid #f0f2f5;font-size:13px}th[data-v-843bba33]{background:#4a7dff0f;font-weight:600;color:#8c8c8c}td[data-v-843bba33]{color:#1a1a1a}.empty-state[data-v-843bba33]{text-align:center;padding:40px 20px;color:#8c8c8c}.offline-banner[data-v-0802e499]{background:#fff3cd;color:#856404;padding:6px 12px;font-size:12px;text-align:center;border-radius:4px;margin-bottom:8px;flex-shrink:0}.sync-banner[data-v-0802e499]{background:#d1ecf1;color:#0c5460;padding:6px 12px;font-size:12px;text-align:center;border-radius:4px;margin-bottom:8px;flex-shrink:0}.api-error-banner[data-v-0802e499]{background:#fff2f0;color:#ff4d4f;padding:6px 12px;font-size:12px;text-align:center;border-radius:4px;margin-bottom:8px;flex-shrink:0;border:1px solid #ffccc7;animation:error-fade-in-0802e499 .3s ease}@keyframes error-fade-in-0802e499{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dashboard-view[data-v-0802e499]{height:100%;display:flex;flex-direction:column;overflow:hidden}.dashboard-header[data-v-0802e499]{flex-shrink:0;margin-bottom:16px;display:flex;justify-content:flex-end}.refresh-all-btn[data-v-0802e499]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#4a7dff;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:#fff;transition:background .2s}.refresh-all-btn[data-v-0802e499]:hover:not(:disabled){background:#3a6ae8}.refresh-all-btn[data-v-0802e499]:disabled{opacity:.6;cursor:not-allowed}.dashboard-body[data-v-0802e499]{flex:1;overflow-y:auto;padding-bottom:20px}.empty-state[data-v-0802e499]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:#8c8c8c}.empty-icon[data-v-0802e499]{margin-bottom:16px;opacity:.5}.empty-title[data-v-0802e499]{font-size:16px;font-weight:500;color:#595959;margin-bottom:8px}.empty-hint[data-v-0802e499]{font-size:13px;color:#8c8c8c}.empty-hint strong[data-v-0802e499]{color:#4a7dff;font-weight:600}.dashboard-area[data-v-0802e499]{position:relative;overflow-y:auto;padding-bottom:20px}.dash-card[data-v-0802e499]{position:absolute;background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000f;border:1px solid #e8e8e8;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s;padding:0;cursor:grab}.chart-drag-zone[data-v-0802e499]{position:absolute;top:40px;left:0;right:0;width:100%;height:32px;z-index:6;cursor:grab;pointer-events:none}.dash-card[data-v-0802e499]:hover{box-shadow:0 2px 12px #0000001a;border-color:#d0d0d0}.dash-card.is-resizing[data-v-0802e499]{box-shadow:0 4px 16px #4a7dff33;border-color:#4a7dff;z-index:10}.dash-card.is-dragging[data-v-0802e499]{box-shadow:0 4px 16px #4a7dff40;border-color:#4a7dff;z-index:10;opacity:.9}.card-header[data-v-0802e499]{display:flex;align-items:center;justify-content:center;padding:10px 14px;border-bottom:1px solid #f0f0f0;flex-shrink:0;background:transparent;position:relative;z-index:10}.dash-card.is-dragging[data-v-0802e499]{cursor:grabbing}.card-drag-handle[data-v-0802e499]{display:flex;align-items:center;position:absolute;left:10px;opacity:0;transition:opacity .15s}.dash-card:hover .card-drag-handle[data-v-0802e499]{opacity:1}.card-title[data-v-0802e499]{font-size:13px;font-weight:600;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;flex:1;max-width:calc(100% - 130px)}.card-type-badge[data-v-0802e499]{display:inline-block;font-size:10px;line-height:16px;padding:0 5px;border-radius:3px;background:#e8f5e9;color:#2e7d32;white-space:nowrap;flex-shrink:0}.card-edit-btn[data-v-0802e499]{position:absolute;right:66px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:18px;color:#8c8c8c;transition:opacity .2s;flex-shrink:0;opacity:0;pointer-events:auto}.card-view-btn[data-v-0802e499]{position:absolute;right:38px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:18px;color:#8c8c8c;transition:opacity .2s;flex-shrink:0;opacity:0;pointer-events:auto}.card-remove[data-v-0802e499]{position:absolute;right:10px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:18px;color:#ff4d4f;transition:opacity .2s;flex-shrink:0;opacity:0;pointer-events:auto}.dash-card:hover .card-edit-btn[data-v-0802e499],.dash-card:hover .card-view-btn[data-v-0802e499],.dash-card:hover .card-remove[data-v-0802e499],.card-header:hover .card-edit-btn[data-v-0802e499],.card-header:hover .card-view-btn[data-v-0802e499],.card-header:hover .card-remove[data-v-0802e499]{opacity:1}.card-edit-btn[data-v-0802e499]:hover,.card-view-btn[data-v-0802e499]:hover{background:#4a7dff1a;color:#4a7dff}.card-remove[data-v-0802e499]:hover{background:#ff4d4f1a;color:#ff4d4f}.card-body[data-v-0802e499]{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0;padding:12px 16px 16px}.card-table-wrap[data-v-0802e499]{overflow-x:auto;overflow-y:auto;flex:1;min-height:0;min-width:0;max-height:100%}.card-table-wrap table[data-v-0802e499]{width:100%;border-collapse:collapse;font-size:12px}.card-table-wrap th[data-v-0802e499]{background:#f5f7fa;padding:8px 10px;text-align:left;font-weight:600;color:#595959;border-bottom:1px solid #e8e8e8;white-space:nowrap;position:sticky;top:0;z-index:1}.card-table-wrap td[data-v-0802e499]{padding:6px 10px;border-bottom:1px solid #f0f0f0;color:#1a1a1a;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.card-table-wrap tr:hover td[data-v-0802e499]{background:#4a7dff08}.card-no-data[data-v-0802e499]{display:flex;align-items:center;justify-content:center;min-height:80px;color:#8c8c8c;font-size:13px}.card-table-wrap tfoot tr[data-v-0802e499]{border-top:2px solid #e8e8e8;background:#fafafa}.card-table-wrap tfoot td[data-v-0802e499]{padding:6px 10px;font-size:12px;font-weight:600;color:#595959}.summary-cell[data-v-0802e499]{display:table-cell;vertical-align:middle}.summary-label[data-v-0802e499]{color:#8c8c8c;font-weight:400;margin-right:4px}.summary-value[data-v-0802e499]{color:#1677ff;font-variant-numeric:tabular-nums}.table-row-hint[data-v-0802e499]{text-align:center;padding:4px 0 2px;font-size:11px;color:#bfbfbf}.resize-handle[data-v-0802e499]{position:absolute;bottom:0;right:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:nwse-resize;color:#d9d9d9;opacity:0;transition:opacity .15s;z-index:11;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.03) 50%);border-radius:0 0 10px}.dash-card:hover .resize-handle[data-v-0802e499]{opacity:1}.resize-handle[data-v-0802e499]:hover{color:#4a7dff}.resize-overlay[data-v-0802e499]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;cursor:nwse-resize}.drag-overlay[data-v-0802e499]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;cursor:grabbing}@media (max-width: 767px){.dashboard-area[data-v-0802e499]{min-height:auto}}.ai-chat[data-v-b6a3a3e9]{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:10px;border:1px solid #e8e8e8;overflow:hidden}.ai-chat.embedded[data-v-b6a3a3e9]{border-radius:0;border:none}.chat-toolbar[data-v-b6a3a3e9]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #e8e8e8;background:#fff}.toolbar-hint[data-v-b6a3a3e9]{font-size:13px;color:#8c8c8c}.toolbar-actions[data-v-b6a3a3e9]{display:flex;gap:8px}.new-chat-btn[data-v-b6a3a3e9]{padding:6px 14px;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:16px;color:#4a7dff;cursor:pointer;font-size:13px;transition:all .2s;white-space:nowrap}.new-chat-btn[data-v-b6a3a3e9]:hover{background:#4a7dff;color:#fff;border-color:#4a7dff}.clear-btn[data-v-b6a3a3e9]{padding:6px 14px;background:#ff475714;border:1px solid rgba(255,71,87,.2);border-radius:16px;color:#ff4757;cursor:pointer;font-size:13px;transition:all .2s;white-space:nowrap}.clear-btn[data-v-b6a3a3e9]:hover{background:#ff4757;color:#fff;border-color:#ff4757}.chat-history[data-v-b6a3a3e9]{flex:1;overflow-y:auto;padding:10px 16px}.empty-state[data-v-b6a3a3e9]{text-align:center;padding:40px 20px;color:#8c8c8c}.example-questions[data-v-b6a3a3e9]{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.example-btn[data-v-b6a3a3e9]{padding:8px 16px;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:20px;color:#4a7dff;cursor:pointer;font-size:13px;transition:all .2s}.example-btn[data-v-b6a3a3e9]:hover{background:#4a7dff;color:#fff;border-color:#4a7dff}.message[data-v-b6a3a3e9]{margin-bottom:20px}.user-message[data-v-b6a3a3e9],.ai-message[data-v-b6a3a3e9]{display:flex;gap:10px;align-items:flex-start}.ai-message[data-v-b6a3a3e9]{margin-top:8px}.avatar[data-v-b6a3a3e9]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.user-avatar[data-v-b6a3a3e9]{background:#4a7dff26}.ai-avatar[data-v-b6a3a3e9]{background:#f0f2f5}.bubble[data-v-b6a3a3e9]{max-width:80%;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5}.user-bubble[data-v-b6a3a3e9]{background:#4a7dff;color:#fff;border-top-left-radius:4px}.ai-bubble[data-v-b6a3a3e9]{background:#f5f5f5;color:#1a1a1a;border-top-left-radius:4px}.ai-bubble.loading[data-v-b6a3a3e9]{display:flex;gap:4px;padding:16px 20px}.ai-bubble.loading .dot[data-v-b6a3a3e9]{width:8px;height:8px;background:#8c8c8c;border-radius:50%;animation:bounce-b6a3a3e9 1.4s infinite ease-in-out}.ai-bubble.loading .dot[data-v-b6a3a3e9]:nth-child(1){animation-delay:-.32s}.ai-bubble.loading .dot[data-v-b6a3a3e9]:nth-child(2){animation-delay:-.16s}@keyframes bounce-b6a3a3e9{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.ai-bubble.error[data-v-b6a3a3e9]{background:#ff475714;color:#ff4757}.error-text[data-v-b6a3a3e9]{margin:0 0 6px;font-weight:500}.error-hint[data-v-b6a3a3e9]{margin:0;font-size:12px;color:#8c8c8c}.result-section[data-v-b6a3a3e9]{margin-bottom:14px}.result-section[data-v-b6a3a3e9]:last-child{margin-bottom:0}.section-header[data-v-b6a3a3e9]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.section-label[data-v-b6a3a3e9]{font-size:12px;font-weight:600;color:#8c8c8c;text-transform:uppercase}.copy-btn[data-v-b6a3a3e9]{padding:3px 10px;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:12px;color:#4a7dff;cursor:pointer;font-size:12px;transition:all .2s}.copy-btn[data-v-b6a3a3e9]:hover{background:#4a7dff;color:#fff;border-color:#4a7dff}.copy-btn.copied[data-v-b6a3a3e9]{background:#2e7d3214;color:#2e7d32;border-color:#2e7d324d}.sql-block[data-v-b6a3a3e9]{background:#f5f5f5;color:#1a1a1a;padding:12px;border-radius:6px;font-family:Courier New,monospace;font-size:13px;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:0;border:1px solid #e8e8e8}.explanation[data-v-b6a3a3e9]{margin:0;color:#8c8c8c}.table-wrapper[data-v-b6a3a3e9]{overflow-x:auto;border:1px solid #e8e8e8;border-radius:6px;margin-top:4px}table[data-v-b6a3a3e9]{width:100%;border-collapse:collapse}th[data-v-b6a3a3e9],td[data-v-b6a3a3e9]{padding:8px 12px;text-align:left;border-bottom:1px solid #f0f2f5;font-size:13px}th[data-v-b6a3a3e9]{background:#4a7dff0f;font-weight:600;color:#8c8c8c}td[data-v-b6a3a3e9]{color:#1a1a1a}.empty-result[data-v-b6a3a3e9]{text-align:center;padding:20px 16px;background:#4a7dff0a;border:1px dashed rgba(74,125,255,.3);border-radius:8px}.empty-result-text[data-v-b6a3a3e9]{margin:0 0 4px;font-weight:500;color:#4a7dff;font-size:14px}.empty-result-hint[data-v-b6a3a3e9]{margin:0;font-size:12px;color:#8c8c8c}.input-area[data-v-b6a3a3e9]{display:flex;gap:10px;padding:16px;border-top:1px solid #e8e8e8}.input-area input[data-v-b6a3a3e9]{flex:1;padding:12px 16px;border:2px solid #e8e8e8;border-radius:24px;font-size:14px;transition:border-color .2s,box-shadow .2s;background:#f5f5f5;color:#1a1a1a}.input-area input[data-v-b6a3a3e9]::placeholder{color:#8c8c8c}.input-area input[data-v-b6a3a3e9]:focus{outline:none;border-color:#4a7dff;background:#fff;box-shadow:0 0 0 3px #4a7dff1a}.input-area input[data-v-b6a3a3e9]:disabled{background:#f0f2f5;opacity:.7}.input-area button[data-v-b6a3a3e9]{padding:12px 24px;background:#4a7dff;color:#fff;border:none;border-radius:24px;cursor:pointer;font-size:14px;font-weight:600;white-space:nowrap;transition:background .2s}.input-area button[data-v-b6a3a3e9]:hover:not(:disabled){background:#3a6de8}.input-area button[data-v-b6a3a3e9]:disabled{opacity:.5;cursor:not-allowed}.save-btn[data-v-b6a3a3e9]{padding:3px 10px;background:#4a7dff14;border:1px solid rgba(74,125,255,.3);border-radius:12px;color:#4a7dff;cursor:pointer;font-size:12px;transition:all .2s;white-space:nowrap}.save-btn[data-v-b6a3a3e9]:hover{background:#4a7dff;color:#fff;border-color:#4a7dff}.save-btn-bottom[data-v-b6a3a3e9]{padding:6px 16px;font-size:13px;margin-top:8px}.save-action-row[data-v-b6a3a3e9]{padding:4px 0;display:flex;gap:8px;align-items:center}.save-btn-table[data-v-b6a3a3e9]{background:#52c41a14;border-color:#52c41a4d;color:#52c41a}.save-btn-table[data-v-b6a3a3e9]:hover{background:#52c41a;color:#fff;border-color:#52c41a}.save-overlay[data-v-b6a3a3e9]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000}.save-dialog[data-v-b6a3a3e9]{background:#fff;border-radius:12px;width:380px;max-width:90vw;box-shadow:0 8px 24px #00000026;overflow:hidden}.dialog-header[data-v-b6a3a3e9]{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid #e8e8e8;background:#4a7dff0f}.dialog-title[data-v-b6a3a3e9]{font-size:15px;font-weight:600;color:#1a1a1a}.dialog-body[data-v-b6a3a3e9]{padding:16px 20px}.field-label[data-v-b6a3a3e9]{display:block;font-size:12px;font-weight:600;color:#8c8c8c;margin-bottom:6px;text-transform:uppercase}.field-input[data-v-b6a3a3e9]{width:100%;padding:8px 12px;border:2px solid #e8e8e8;border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s;margin-bottom:14px;box-sizing:border-box;background:#f5f5f5;color:#1a1a1a}.field-input[data-v-b6a3a3e9]::placeholder{color:#8c8c8c}.field-input[data-v-b6a3a3e9]:focus{outline:none;border-color:#4a7dff;background:#fff;box-shadow:0 0 0 3px #4a7dff1a}.folder-list[data-v-b6a3a3e9]{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.folder-option[data-v-b6a3a3e9]{padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:#8c8c8c;transition:all .15s;border:1px solid transparent}.folder-option[data-v-b6a3a3e9]:hover{background:#4a7dff0f}.folder-option.active[data-v-b6a3a3e9]{background:#4a7dff1a;color:#4a7dff;border-color:#4a7dff4d;font-weight:500}.dialog-footer[data-v-b6a3a3e9]{display:flex;gap:10px;justify-content:flex-end;padding:12px 20px;border-top:1px solid #e8e8e8}.dialog-btn[data-v-b6a3a3e9]{padding:8px 20px;border-radius:8px;border:none;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s}.dialog-btn[data-v-b6a3a3e9]:disabled{opacity:.5;cursor:not-allowed}.dialog-cancel[data-v-b6a3a3e9]{background:#f0f2f5;color:#8c8c8c}.dialog-cancel[data-v-b6a3a3e9]:hover{background:#e8e8e8}.dialog-confirm[data-v-b6a3a3e9]{background:#4a7dff;color:#fff}.dialog-confirm[data-v-b6a3a3e9]:hover:not(:disabled){background:#3a6de8}.model-config[data-v-f4c7673c]{max-width:560px;margin:0 auto;padding:32px 24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.auth-panel[data-v-f4c7673c]{display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center}.auth-icon[data-v-f4c7673c]{margin-bottom:16px;opacity:.6}.auth-title[data-v-f4c7673c]{font-size:18px;font-weight:600;color:#262626;margin-bottom:8px}.auth-desc[data-v-f4c7673c]{font-size:13px;color:#8c8c8c;margin-bottom:24px}.auth-input-row[data-v-f4c7673c]{display:flex;gap:10px;width:100%;max-width:360px}.auth-input[data-v-f4c7673c]{flex:1}.auth-btn[data-v-f4c7673c]{flex-shrink:0;height:40px;padding:0 20px}.auth-error[data-v-f4c7673c]{margin-top:12px;font-size:13px;color:#ff4d4f;background:#fff2f0;border:1px solid #ffccc7;border-radius:6px;padding:8px 14px}.config-header[data-v-f4c7673c]{margin-bottom:28px}.config-title[data-v-f4c7673c]{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:600;color:#1a1a1a;margin:0 0 8px}.config-desc[data-v-f4c7673c]{font-size:13px;color:#8c8c8c;margin:0}.config-loading[data-v-f4c7673c]{display:flex;align-items:center;justify-content:center;gap:12px;padding:48px 0;color:#8c8c8c;font-size:14px}.loading-spinner[data-v-f4c7673c]{width:20px;height:20px;border:2px solid #e8e8e8;border-top-color:#1677ff;border-radius:50%;animation:spin-f4c7673c .8s linear infinite}@keyframes spin-f4c7673c{to{transform:rotate(360deg)}}.config-form[data-v-f4c7673c]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-f4c7673c]{display:flex;flex-direction:column;gap:6px}.form-label[data-v-f4c7673c]{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:#262626}.label-icon[data-v-f4c7673c]{font-size:14px}.form-input[data-v-f4c7673c]{width:100%;height:40px;padding:0 12px;font-size:14px;color:#262626;background:#fff;border:1px solid #d9d9d9;border-radius:6px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-input[data-v-f4c7673c]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1a}.form-input[data-v-f4c7673c]::placeholder{color:#bfbfbf}.input-wrapper[data-v-f4c7673c]{position:relative;display:flex;align-items:center}.input-wrapper .form-input[data-v-f4c7673c]{padding-right:36px}.toggle-visibility[data-v-f4c7673c]{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;cursor:pointer;color:#8c8c8c;border-radius:4px;transition:background-color .2s}.toggle-visibility[data-v-f4c7673c]:hover{background:#f5f5f5}.form-hint[data-v-f4c7673c]{font-size:12px;color:#8c8c8c}.test-result[data-v-f4c7673c]{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:6px;font-size:13px;line-height:1.5}.test-result.success[data-v-f4c7673c]{background:#f6ffed;border:1px solid #b7eb8f;color:#52c41a}.test-result.error[data-v-f4c7673c]{background:#fff2f0;border:1px solid #ffccc7;color:#ff4d4f}.test-result-icon[data-v-f4c7673c]{flex-shrink:0;margin-top:1px}.test-result-content[data-v-f4c7673c]{flex:1}.test-result-text[data-v-f4c7673c]{color:#262626;font-weight:500}.test-result-detail[data-v-f4c7673c]{color:#8c8c8c;font-size:12px;margin-top:2px}.form-actions[data-v-f4c7673c]{display:flex;gap:12px;margin-top:8px}.btn[data-v-f4c7673c]{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 20px;font-size:14px;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.btn[data-v-f4c7673c]:disabled{opacity:.5;cursor:not-allowed}.btn-test[data-v-f4c7673c]{background:#fff;color:#1677ff;border:1px solid #1677ff}.btn-test[data-v-f4c7673c]:hover:not(:disabled){background:#e6f4ff}.btn-save[data-v-f4c7673c]{background:#1677ff;color:#fff}.btn-save[data-v-f4c7673c]:hover:not(:disabled){background:#4096ff}.spinner[data-v-f4c7673c]{animation:spin-f4c7673c .8s linear infinite}.hint-box[data-v-f4c7673c]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fffbe6;border:1px solid #ffe58f;border-radius:6px;font-size:12px;color:#8c8c8c}.last-updated[data-v-f4c7673c]{font-size:12px;color:#bfbfbf;text-align:center;padding-top:8px;border-top:1px solid #f0f0f0}@media (max-width: 640px){.model-config[data-v-f4c7673c]{padding:20px 16px}.config-title[data-v-f4c7673c]{font-size:18px}.form-actions[data-v-f4c7673c]{flex-direction:column}.btn[data-v-f4c7673c]{width:100%}}.pool-selector[data-v-be2f35e1]{position:relative}.ps-trigger[data-v-be2f35e1]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid #dcdfe6;border-radius:6px;background:#fff;cursor:pointer;text-align:left;min-height:38px}.ps-current[data-v-be2f35e1]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.ps-name[data-v-be2f35e1]{font-size:13px;color:#262626;font-weight:500}.ps-path[data-v-be2f35e1]{font-size:11px;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ps-placeholder[data-v-be2f35e1]{font-size:13px;color:#b0b0b0}.ps-arrow[data-v-be2f35e1]{color:#999;font-size:12px;transition:transform .15s}.ps-arrow.open[data-v-be2f35e1]{transform:rotate(180deg)}.ps-dropdown[data-v-be2f35e1]{z-index:3000;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 8px 24px #00000029;padding:8px;display:flex;flex-direction:column;box-sizing:border-box}.ps-search[data-v-be2f35e1]{width:100%;box-sizing:border-box;padding:6px 8px;border:1px solid #e8e8e8;border-radius:4px;font-size:12px;margin-bottom:6px;flex:0 0 auto}.ps-list[data-v-be2f35e1]{flex:1 1 auto;overflow-y:auto;min-height:0}.ps-item[data-v-be2f35e1]{padding:6px 8px;border-radius:6px;cursor:pointer}.ps-item[data-v-be2f35e1]:hover{background:#f5f7fa}.ps-item.active[data-v-be2f35e1]{background:#eef3ff}.ps-item-main[data-v-be2f35e1]{display:flex;align-items:center;gap:6px}.ps-item-name[data-v-be2f35e1]{font-size:13px;color:#262626}.ps-item-path[data-v-be2f35e1]{font-size:11px;color:#999;margin-top:2px;padding-left:2px}.ps-empty[data-v-be2f35e1]{padding:12px;text-align:center;color:#b0b0b0;font-size:12px}.ps-group-tag[data-v-be2f35e1]{display:inline-block;padding:1px 6px;border-radius:8px;font-size:10px;line-height:16px;white-space:nowrap}.ps-group-tag.is-business[data-v-be2f35e1]{background:#e8f3ff;color:#1a6fd4}.ps-group-tag.is-child[data-v-be2f35e1]{background:#f0f7ec;color:#4a8a3c}.ps-group-tag.is-admin[data-v-be2f35e1]{background:#fff3e8;color:#c47a1a}.ps-group-tag.is-all[data-v-be2f35e1]{background:#f2f4f7;color:#595959}.field-selector[data-v-1d513b71]{position:relative}.fs-selected[data-v-1d513b71]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.fs-chip[data-v-1d513b71]{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#eef3ff;color:#2c5fd0;border-radius:12px;font-size:12px;line-height:18px}.fs-chip-x[data-v-1d513b71]{cursor:pointer;opacity:.6}.fs-chip-x[data-v-1d513b71]:hover{opacity:1}.fs-chip-lock[data-v-1d513b71]{font-size:10px;opacity:.55}.fs-trigger[data-v-1d513b71]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border:1px dashed #d4d8e0;border-radius:6px;background:#fff;cursor:pointer}.fs-placeholder[data-v-1d513b71]{font-size:12px;color:#999}.fs-arrow[data-v-1d513b71]{color:#999;font-size:12px}.fs-arrow.open[data-v-1d513b71]{transform:rotate(180deg)}.fs-dropdown[data-v-1d513b71]{z-index:3000;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 8px 24px #00000029;padding:8px;display:flex;flex-direction:column;box-sizing:border-box}.fs-search[data-v-1d513b71]{width:100%;box-sizing:border-box;padding:6px 8px;border:1px solid #e8e8e8;border-radius:4px;font-size:12px;margin-bottom:6px;flex:0 0 auto}.fs-list[data-v-1d513b71]{flex:1 1 auto;overflow-y:auto;min-height:0}.fs-group-label[data-v-1d513b71]{position:sticky;top:0;background:#fff;font-size:11px;color:#a0a0a0;padding:6px 6px 2px}.fs-option[data-v-1d513b71]{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer}.fs-option[data-v-1d513b71]:hover{background:#f5f7fa}.fs-option.locked[data-v-1d513b71]{cursor:not-allowed}.fs-option.locked .fs-option-name[data-v-1d513b71]{color:#8c8c8c}.fs-option-name[data-v-1d513b71]{font-size:12px;color:#404040}.fs-option-hint[data-v-1d513b71]{font-size:10px;color:#b0b0b0}.fs-empty[data-v-1d513b71]{padding:12px;text-align:center;color:#b0b0b0;font-size:12px}.filter-row[data-v-e7572d9c]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.fr-select[data-v-e7572d9c]{border:1px solid #dcdfe6;border-radius:4px;background:#fff;font-size:12px;padding:5px 6px}.fr-field[data-v-e7572d9c]{flex:1 1 110px;min-width:0}.fr-op[data-v-e7572d9c]{flex:0 0 64px}.fr-value[data-v-e7572d9c]{flex:1 1 110px;min-width:0}.fr-multi-wrap[data-v-e7572d9c]{flex:1 1 100%;min-width:0;display:flex;flex-direction:column;gap:4px}.fr-multi[data-v-e7572d9c]{flex:1 1 100%;min-width:0}.fr-search[data-v-e7572d9c]{flex:1 1 100%}.fr-input[data-v-e7572d9c]{flex:1 1 90px;min-width:0;border:1px solid #dcdfe6;border-radius:4px;font-size:12px;padding:5px 6px;box-sizing:border-box}.fr-date[data-v-e7572d9c]{flex:1 1 110px}.fr-invalid[data-v-e7572d9c]{border-color:#e05a4a}.fr-error[data-v-e7572d9c]{flex:1 1 100%;color:#e05a4a;font-size:11px}.fr-sep[data-v-e7572d9c]{color:#b0b0b0;font-size:12px}.fr-remove[data-v-e7572d9c]{flex:0 0 auto;border:none;background:transparent;color:#b0b0b0;font-size:15px;cursor:pointer;line-height:1}.fr-remove[data-v-e7572d9c]:hover{color:#e05a4a}.flow-chain-warning[data-v-72aa3ab5]{display:flex;gap:8px;padding:8px 12px;background:#fff8e6;border:1px solid #f2d58a;border-radius:6px;margin-bottom:8px}.fcw-icon[data-v-72aa3ab5]{flex:0 0 auto;font-size:13px;line-height:18px}.fcw-body[data-v-72aa3ab5]{display:flex;flex-direction:column;gap:2px}.fcw-line[data-v-72aa3ab5]{font-size:12px;color:#8a6512;line-height:18px}.report-builder-view[data-v-2502038c]{display:flex;height:100%;background:#f5f7fa;gap:0;overflow:hidden}.rb-left[data-v-2502038c]{width:360px;min-width:360px;background:#fff;border-right:1px solid #e8e8e8;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:4px}.rb-center[data-v-2502038c]{flex:1;display:flex;flex-direction:column;min-width:0;padding:16px;overflow:hidden}.rb-right[data-v-2502038c]{width:200px;min-width:200px;background:#fff;border-left:1px solid #e8e8e8;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.rb-section[data-v-2502038c]{padding:10px 0 14px;border-bottom:1px solid #f0f0f0}.rb-section[data-v-2502038c]:last-child{border-bottom:none}.rb-section-title[data-v-2502038c]{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:600;color:#262626;margin-bottom:8px}.rb-section-hint[data-v-2502038c]{font-size:11px;font-weight:400;color:#b0b0b0}.rb-section-count[data-v-2502038c]{font-size:11px;font-weight:400;color:#8c8c8c;background:#f2f4f7;border-radius:8px;padding:0 6px;line-height:16px}.rb-subtitle[data-v-2502038c]{font-size:12px;color:#8c8c8c;margin-bottom:6px}.rb-pool-meta[data-v-2502038c]{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:11px;color:#999}.rb-axis-section[data-v-2502038c]{padding-bottom:12px}.rb-axis-secondary[data-v-2502038c]{margin-top:8px}.rb-axis-static[data-v-2502038c]{font-size:13px;color:#595959;background:#f7f8fa;border:1px solid #e3e6eb;border-radius:6px;padding:8px 10px}.rb-axis-note[data-v-2502038c]{margin-top:6px;font-size:11px;color:#a0a0a0;line-height:1.5}.rb-view-switch[data-v-2502038c]{display:flex;gap:2px;background:#f2f4f7;border-radius:6px;padding:2px}.rb-view-btn[data-v-2502038c]{border:none;background:transparent;font-size:11px;color:#666;padding:3px 8px;border-radius:4px;cursor:pointer}.rb-view-btn.active[data-v-2502038c]{background:#fff;color:#2c5fd0;font-weight:600;box-shadow:0 1px 2px #00000014}.rb-view-notice[data-v-2502038c]{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px;padding:7px 10px;background:#f0f6ff;border:1px solid #cfe0fb;border-radius:6px;font-size:11px;color:#3c5a8a;line-height:1.5}.rb-view-notice span[data-v-2502038c]{flex:1}.rb-view-notice-close[data-v-2502038c]{border:none;background:transparent;color:#7d93b8;font-size:14px;line-height:1;padding:0 2px;cursor:pointer}.rb-view-notice-close[data-v-2502038c]:hover{color:#2c5fd0}.rb-metric-block[data-v-2502038c]{margin-top:10px}.rb-metric-chips[data-v-2502038c]{display:flex;flex-wrap:wrap;gap:6px}.rb-metric-chip[data-v-2502038c]{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid #dcdfe6;border-radius:14px;background:#fff;font-size:12px;color:#595959;cursor:pointer;line-height:20px}.rb-metric-chip.active[data-v-2502038c]{background:#eef3ff;border-color:#9fb8ee;color:#2c5fd0}.rb-metric-chip.editing[data-v-2502038c]{border-color:#2c5fd0;box-shadow:0 0 0 2px #2c5fd01f}.rb-metric-add-hint[data-v-2502038c]{margin-top:8px;font-size:11px;color:#a0a0a0;line-height:1.5}.rb-metric-unit[data-v-2502038c]{font-size:10px;opacity:.6}.rb-chip-remove[data-v-2502038c]{border:none;background:transparent;color:#2c5fd0;font-size:13px;line-height:1;padding:0 2px;cursor:pointer;opacity:.65}.rb-chip-remove[data-v-2502038c]:hover{opacity:1;color:#cf1322}.rb-metric-add[data-v-2502038c]{margin-top:8px;padding:8px;border:1px solid #e8ebf2;border-radius:6px;background:#fafbfe}.rb-metric-add-row[data-v-2502038c]{display:flex;gap:6px}.rb-preset-row[data-v-2502038c]{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.rb-preset-label[data-v-2502038c]{font-size:11px;color:#8c8c8c}.rb-preset-btn[data-v-2502038c]{border:1px dashed #c7d2ea;background:#fff;color:#2c5fd0;font-size:11px;padding:3px 9px;border-radius:10px;cursor:pointer;text-align:left;line-height:1.35}.rb-preset-btn[data-v-2502038c]:hover{background:#eef3ff}.rb-preset-btn small[data-v-2502038c]{display:block;font-size:10px;color:#8c8c8c}.rb-chip-formula[data-v-2502038c]{font-size:10px;color:#a0a0a0;white-space:nowrap}.rb-chip-split[data-v-2502038c]{border:1px solid #d6e0f5;background:#f7faff;color:#2c5fd0;font-size:10px;line-height:1;padding:2px 4px;border-radius:3px;cursor:pointer}.rb-chip-split[data-v-2502038c]:hover{background:#e6efff}.rb-metric-add-actions[data-v-2502038c]{display:flex;gap:6px;margin-top:8px}.rb-metric-add-actions .rb-add-btn[data-v-2502038c]{flex:1}.rb-axis-note-error[data-v-2502038c]{color:#cf1322}.rb-inline-check[data-v-2502038c]{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:#8c8c8c}.rb-filter-list[data-v-2502038c]{display:flex;flex-direction:column;gap:6px}.rb-add-btn[data-v-2502038c]{border:1px dashed #d4d8e0;background:transparent;color:#8c8c8c;font-size:12px;padding:5px;border-radius:4px;cursor:pointer}.rb-sort-row[data-v-2502038c]{display:flex;gap:6px;align-items:center}.rb-select[data-v-2502038c],.rb-input[data-v-2502038c]{border:1px solid #dcdfe6;border-radius:4px;font-size:12px;padding:6px;background:#fff;box-sizing:border-box}.rb-select-flex[data-v-2502038c]{flex:1 1 auto;min-width:0}.rb-select-xs[data-v-2502038c]{flex:0 0 72px}.rb-input-xs[data-v-2502038c]{flex:0 0 68px}.rb-select-full[data-v-2502038c],.rb-input-full[data-v-2502038c]{width:100%}.rb-label[data-v-2502038c]{display:block;font-size:11px;color:#8c8c8c;margin:6px 0 4px}.rb-preview-tabs[data-v-2502038c]{display:flex;align-items:center;gap:4px;border-bottom:1px solid #e8e8e8;padding-bottom:8px;margin-bottom:8px}.rb-tab[data-v-2502038c]{border:none;background:transparent;font-size:13px;color:#666;padding:4px 10px;border-radius:4px;cursor:pointer}.rb-tab.active[data-v-2502038c]{background:#eef3ff;color:#2c5fd0;font-weight:600}.rb-preview-actions[data-v-2502038c]{margin-left:auto;display:flex;align-items:center;gap:10px}.rb-preview-btn[data-v-2502038c]{border:none;background:#4a7dff;color:#fff;font-size:12px;padding:6px 14px;border-radius:4px;cursor:pointer}.rb-preview-btn[data-v-2502038c]:disabled{background:#b9c8ef;cursor:not-allowed}.rb-sql-toggle[data-v-2502038c]{font-size:12px;color:#4a7dff;cursor:pointer}.rb-sql-block[data-v-2502038c]{background:#1e1e1e;color:#d4d4d4;border-radius:6px;padding:10px 12px;font-size:12px;overflow-x:auto;margin-bottom:8px}.rb-error[data-v-2502038c]{background:#fff1f0;border:1px solid #ffccc7;color:#cf1322;border-radius:6px;padding:8px 12px;font-size:12px;margin-bottom:8px}.rb-default-note[data-v-2502038c]{background:#f0f6ff;border:1px solid #cfe0ff;color:#2c5fd0;border-radius:6px;padding:6px 12px;font-size:11px;margin-bottom:8px}.rb-limit-note[data-v-2502038c]{background:#fffbe6;border:1px solid #ffe58f;color:#ad6800;border-radius:6px;padding:6px 12px;font-size:11px;margin-bottom:8px}.rb-chart-area[data-v-2502038c]{flex:1;min-height:0;background:#fff;border-radius:8px;padding:8px}.rb-table-area[data-v-2502038c]{flex:1;min-height:0;background:#fff;border-radius:8px;padding:8px;display:flex;flex-direction:column}.rb-table-summary[data-v-2502038c]{font-size:11px;color:#8c8c8c;margin-bottom:6px}.rb-table-scroll[data-v-2502038c]{flex:1;overflow:auto}.rb-table-scroll table[data-v-2502038c]{width:100%;border-collapse:collapse;font-size:12px}.rb-table-scroll th[data-v-2502038c]{position:sticky;top:0;background:#fafafa;color:#595959;font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid #eee;white-space:nowrap}.rb-table-scroll td[data-v-2502038c]{padding:5px 8px;border-bottom:1px solid #f5f5f5;color:#404040}.rb-empty-state[data-v-2502038c]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#b0b0b0;font-size:13px;gap:10px}.rb-chart-type-grid[data-v-2502038c]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.rb-chart-type-btn[data-v-2502038c]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid #e8e8e8;border-radius:6px;cursor:pointer;font-size:11px;color:#666}.rb-chart-type-btn.active[data-v-2502038c]{border-color:#4a7dff;background:#f5f8ff;color:#2c5fd0}.rb-save-target[data-v-2502038c]{display:flex;gap:12px;margin:8px 0}.rb-radio[data-v-2502038c]{display:flex;align-items:center;gap:4px;font-size:12px;color:#595959}.rb-save-btn[data-v-2502038c]{width:100%;margin-top:10px;border:none;background:#4a7dff;color:#fff;font-size:13px;padding:8px;border-radius:4px;cursor:pointer}.rb-save-btn[data-v-2502038c]:disabled{background:#b9c8ef;cursor:not-allowed}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;color:#1a1a1a;overflow:hidden;height:100vh}#app{height:100vh}.app{display:flex;height:100vh;overflow:hidden}.icon-bar{width:52px;min-width:52px;height:100vh;background:#fff;border-right:1px solid #e8e8e8;display:flex;flex-direction:column;align-items:center;z-index:100;flex-shrink:0}.icon-bar-home{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f7fa;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;color:#8c8c8c;margin-top:12px;margin-bottom:8px;transition:all .2s;flex-shrink:0}.icon-bar-home:hover{color:#4a7dff;background:#4a7dff0f;border-color:#4a7dff}.icon-bar-nav{display:flex;flex-direction:column;align-items:center;padding:4px 6px;gap:2px;flex:1;overflow-y:auto}.icon-bar-item{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;transition:background .18s ease;position:relative;-webkit-user-select:none;user-select:none}.icon-bar-item:hover{background:#4a7dff0f}.icon-bar-item.active{background:#4a7dff1a}.icon-bar-item.active:before{content:"";position:absolute;left:-6px;top:50%;transform:translateY(-50%);width:3px;height:18px;background:#4a7dff;border-radius:0 3px 3px 0}.icon-bar-icon{flex-shrink:0;width:18px;height:18px;color:#595959}.icon-bar-item.active .icon-bar-icon,.icon-bar-item:hover .icon-bar-icon{color:#4a7dff}.icon-bar-label{position:absolute;left:48px;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #e8e8e8;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500;color:#4a7dff;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s ease;box-shadow:2px 2px 8px #00000014;z-index:102}.icon-bar-item:hover .icon-bar-label{opacity:1}.icon-bar-bottom{padding:8px 0 12px;flex-shrink:0}.icon-bar-admin-section{margin-bottom:8px}.icon-bar-divider{height:1px;background:#e8e8e8;margin:0 10px 8px}.icon-bar-admin-wrapper{position:relative;display:flex;justify-content:center}.icon-bar-admin{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;cursor:pointer;color:#fff;transition:all .2s;box-shadow:0 2px 6px #667eea4d}.icon-bar-admin:hover{transform:translateY(-1px);box-shadow:0 4px 10px #667eea66}.icon-bar-admin.active{background:linear-gradient(135deg,#4a7dff,#6366f1);box-shadow:0 2px 8px #4a7dff66}.admin-dropdown{position:absolute;left:calc(100% + 8px);bottom:0;background:#fff;border:1px solid #e8e8e8;border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:160px;padding:6px 0;z-index:1000;animation:dropdown-fade-in .15s ease}@keyframes dropdown-fade-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.admin-dropdown-header{padding:6px 14px 8px;font-size:11px;font-weight:600;color:#8c8c8c;text-transform:uppercase;letter-spacing:.5px}.admin-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;font-size:13px;color:#262626;background:none;border:none;cursor:pointer;transition:background-color .15s;text-align:left}.admin-dropdown-item:hover{background:#f5f7fa}.admin-dropdown-item.active{color:#4a7dff;background:#4a7dff0f}.admin-dropdown-hint{padding:6px 14px 4px;font-size:11px;color:#bfbfbf;border-top:1px solid #f0f0f0;margin-top:4px}.icon-bar-add{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f7fa;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;color:#8c8c8c;transition:all .2s}.icon-bar-add:hover{color:#4a7dff;background:#4a7dff0f;border-color:#4a7dff}.sidebar-wrapper{position:relative;flex-shrink:0;height:100vh}.content-panel{width:200px;min-width:0;height:100vh;background:#fff;border-right:1px solid #e8e8e8;overflow:hidden;display:flex;flex-direction:column;transition:width .2s ease}.content-panel.collapsed{width:0;border-right:none}.sidebar-collapse-btn{position:absolute;top:8px;left:100%;width:20px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e8e8e8;border-left:none;border-radius:0 6px 6px 0;cursor:pointer;color:#8c8c8c;z-index:10;transition:color .2s}.sidebar-collapse-btn:hover{color:#4a7dff;background:#f0f4ff}.main-dict{flex:1;min-height:0;overflow:hidden}.dict-sidebar{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.dict-sidebar .dict-header{padding:10px 12px;border-bottom:1px solid #e8e8e8;flex-shrink:0}.dict-sidebar .dict-header h3{font-size:13px}.dict-sidebar .dict-table-list{flex:1;overflow-y:auto;min-height:0;width:100%;border-right:none}.dict-sidebar .dict-domain-header{padding:6px 12px;font-size:11px}.dict-sidebar .dict-table-item{padding:6px 10px}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;z-index:99}.main-wrapper{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh}.top-bar{display:flex;align-items:center;gap:10px;padding:12px 20px;background:#fff;color:#1a1a1a;min-height:56px;border-bottom:1px solid #e8e8e8}.menu-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f0f2f5;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;color:#1a1a1a;transition:background .2s}.menu-btn:hover{background:#e8e8e8}.top-bar-title{font-size:18px;font-weight:600;color:#1a1a1a}.top-bar-subtitle{font-size:13px;color:#8c8c8c}.main-content{flex:1;overflow:hidden;padding:16px 20px}.placeholder-module{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:#bfbfbf}.placeholder-icon{margin-bottom:16px}.placeholder-title{font-size:18px;font-weight:600;color:#8c8c8c;margin-bottom:8px}.placeholder-desc{font-size:14px;color:#bfbfbf}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.ai-floating-window{position:fixed;z-index:300;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026,0 2px 8px #00000014;border:1px solid #e8e8e8;display:flex;flex-direction:column;overflow:hidden;transition:width .2s,height .2s}.ai-floating-window.minimized{border-radius:10px}.ai-window-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,#4a7dff,#6b93ff);color:#fff;cursor:move;-webkit-user-select:none;user-select:none;flex-shrink:0}.ai-window-title{font-size:14px;font-weight:600;letter-spacing:.3px}.ai-window-actions{display:flex;align-items:center;gap:4px}.ai-window-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border:none;border-radius:6px;cursor:pointer;color:#fff;transition:background .2s}.ai-window-btn:hover{background:#ffffff4d}.ai-window-close:hover{background:#ff4d4fb3}.ai-window-body{flex:1;overflow:hidden;min-height:0}.ai-window-resize{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,#d9d9d9 50%);border-radius:0 0 12px;opacity:.5;transition:opacity .2s}.ai-window-resize:hover{opacity:1}.ai-fab{position:fixed;right:20px;bottom:20px;cursor:grab;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#4a7dff,#7ea5ff);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #4a7dff59;z-index:200;transition:transform .2s,box-shadow .2s}.ai-fab:hover{transform:scale(1.1);box-shadow:0 6px 16px #4a7dff73}.ai-fab.fab-moved{cursor:grab}.ai-fab.fab-moved:active{cursor:grabbing}.ai-fab-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;background:#ff4d4f;color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;border-radius:9px;border:2px solid white}@media (max-width: 767px){.icon-bar{position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:2px 0 12px #0000001a;z-index:101}.icon-bar.mobile-open{transform:translate(0)}.sidebar-wrapper{position:fixed;top:0;left:52px;transform:translate(-100%);box-shadow:2px 0 12px #0000001a;z-index:100}.sidebar-wrapper.mobile-open{transform:translate(0)}.content-panel{position:static;height:100%}.top-bar-subtitle{display:none}.main-content{padding:12px}.ai-fab{right:12px;bottom:12px;width:42px;height:42px}.ai-floating-window{left:8px!important;right:8px!important;width:auto!important;bottom:60px;max-height:calc(100vh - 120px)}}
