:root{--primary: #667eea;--primary-dark: #5a67d8;--primary-deep: #6b46c1;--primary-grad: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-card: 0 2px 10px rgba(0, 0, 0, .055);--shadow-float: 0 6px 24px rgba(102, 126, 234, .18);--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--text-primary: #222;--text-secondary: #555;--text-muted: #9aa0b5;--border: #eceef5;--bg-page: #f0f1f7;--bg-card: #ffffff;--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#d5d8e4;border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#b0b5c7}*{font-variant-emoji:emoji}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg-page);overflow:hidden;color:var(--text-primary);-webkit-font-smoothing:antialiased}.app-shell{height:100vh;display:flex;flex-direction:column}.page-body{flex:1;min-height:0;position:relative}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);height:56px;flex-shrink:0;background:var(--primary-grad);box-shadow:0 2px 12px #667eea4d;position:relative;z-index:20}.nav-brand{color:#fff;font-size:17px;font-weight:700;letter-spacing:.5px}.nav-brand:before{content:"";display:inline-block;width:20px;height:20px;margin-right:8px;vertical-align:middle;background:#ffffff40;border-radius:var(--radius-sm);text-align:center;line-height:20px;font-size:12px}.nav-links{display:flex;gap:4px}.nav-link{color:#ffffffd1;text-decoration:none;padding:7px 16px;border-radius:var(--radius-md);font-size:14px;transition:var(--transition)}.nav-link:hover{color:#fff;background:#ffffff1f}.nav-link.active{color:#fff;background:#ffffff38;font-weight:600}.nav-link:before{font-size:13px;margin-right:4px}.dashboard-view[data-v-a056959c]{height:100%;overflow-y:auto;padding:var(--space-md) var(--space-lg) var(--space-lg);background:var(--bg-page)}.toolbar[data-v-a056959c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);flex-wrap:wrap;gap:var(--space-sm)}.toolbar-left[data-v-a056959c],.toolbar-right[data-v-a056959c]{display:flex;align-items:center;gap:var(--space-md)}.date-hint[data-v-a056959c]{font-size:12px;color:var(--text-muted)}.btn-refresh[data-v-a056959c]{padding:7px 16px;border:none;border-radius:var(--radius-md);background:#fff;box-shadow:0 1px 6px #0000000f;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:var(--transition)}.btn-refresh[data-v-a056959c]:hover:not(:disabled){background:#f0f2ff;color:var(--primary)}.btn-refresh[data-v-a056959c]:disabled{opacity:.6;cursor:not-allowed}.btn-export[data-v-a056959c]{padding:8px 18px;border:none;border-radius:var(--radius-md);background:var(--primary-grad);color:#fff;cursor:pointer;font-size:13px;font-weight:500;box-shadow:var(--shadow-float);transition:var(--transition)}.btn-export[data-v-a056959c]:hover{transform:translateY(-1px);box-shadow:0 4px 14px #667eea66}select[data-v-a056959c]{padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;font-size:13px;color:var(--text-secondary);cursor:pointer}.kpi-grid[data-v-a056959c]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-md)}.kpi-card[data-v-a056959c]{background:#fff;border-radius:var(--radius-lg);padding:20px;display:flex;align-items:center;gap:var(--space-md);box-shadow:var(--shadow-card);transition:var(--transition)}.kpi-card[data-v-a056959c]:hover{transform:translateY(-2px);box-shadow:var(--shadow-float)}.kpi-icon[data-v-a056959c]{width:48px;height:48px;border-radius:var(--radius-md);background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:22px}.kpi-value[data-v-a056959c]{font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.2}.kpi-label[data-v-a056959c]{font-size:12px;color:var(--text-muted);margin-top:2px}.main-grid[data-v-a056959c]{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-md)}.charts-col[data-v-a056959c]{display:flex;flex-direction:column;gap:var(--space-md)}.chart-card[data-v-a056959c]{background:#fff;border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-card)}.chart-title[data-v-a056959c]{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.chart[data-v-a056959c]{height:240px}.chart-empty[data-v-a056959c]{height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;background:linear-gradient(180deg,#fafbff 0%,transparent 100%);border-radius:var(--radius-sm)}.chart-empty small[data-v-a056959c]{font-size:11px;margin-top:6px;opacity:.7}.chart-row[data-v-a056959c]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.side-col[data-v-a056959c]{display:flex;flex-direction:column;gap:var(--space-md)}.alert-card[data-v-a056959c],.hot-card[data-v-a056959c]{background:#fff;border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-card)}.alert-header[data-v-a056959c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.alert-title[data-v-a056959c]{font-size:14px;font-weight:600;color:var(--text-primary)}.alert-count[data-v-a056959c]{font-size:13px;padding:2px 10px;border-radius:10px;background:#f0f0f5;color:var(--text-secondary)}.alert-count.danger[data-v-a056959c]{background:#ffe8ec;color:#e74c3c}.alert-list[data-v-a056959c]{display:flex;flex-direction:column;gap:var(--space-sm);max-height:200px;overflow-y:auto}.alert-item[data-v-a056959c]{padding:8px 10px;background:#fff8f8;border-radius:var(--radius-sm);border-left:3px solid #e74c3c}.alert-name[data-v-a056959c]{font-size:13px;font-weight:600;color:var(--text-primary)}.alert-stock[data-v-a056959c]{font-size:12px;color:#888;margin-top:2px}.alert-stock strong[data-v-a056959c]{color:#e74c3c;font-size:14px}.alert-gap[data-v-a056959c]{color:#e74c3c;margin-left:4px}.alert-threshold[data-v-a056959c]{color:#aaa}.alert-empty[data-v-a056959c]{text-align:center;color:var(--text-muted);padding:24px 0;font-size:13px}.hot-list[data-v-a056959c]{display:flex;flex-direction:column;gap:6px}.hot-item[data-v-a056959c]{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm)}.hot-item[data-v-a056959c]:hover{background:#f8f9fc}.hot-rank[data-v-a056959c]{width:22px;height:22px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#f0f0f5;color:var(--text-secondary)}.hot-rank.rank-1[data-v-a056959c]{background:linear-gradient(135deg,gold,orange);color:#fff}.hot-rank.rank-2[data-v-a056959c]{background:linear-gradient(135deg,silver,#a0a0a0);color:#fff}.hot-rank.rank-3[data-v-a056959c]{background:linear-gradient(135deg,#cd7f32,#b87333);color:#fff}.hot-name[data-v-a056959c]{flex:1;font-size:13px;color:var(--text-primary)}.hot-qty[data-v-a056959c]{font-size:12px;color:#999}@media (max-width: 960px){.kpi-grid[data-v-a056959c]{grid-template-columns:repeat(2,1fr)}.main-grid[data-v-a056959c],.chart-row[data-v-a056959c]{grid-template-columns:1fr}}.message[data-v-3e692d5d]{margin-bottom:18px;display:flex;flex-direction:column;animation:msg-in-3e692d5d .28s ease-out}@keyframes msg-in-3e692d5d{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message.user[data-v-3e692d5d]{align-items:flex-end}.message.ai[data-v-3e692d5d]{align-items:flex-start}.bubble[data-v-3e692d5d]{max-width:80%;padding:12px 16px;border-radius:16px;font-size:15px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.message.user .bubble[data-v-3e692d5d]{background:var(--primary-grad);color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 14px #667eea52}.message.ai .bubble[data-v-3e692d5d]{background:#fff;color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:4px;box-shadow:0 2px 12px #0000000a;transition:box-shadow .2s}.message.ai .bubble[data-v-3e692d5d]:hover{box-shadow:0 4px 18px #00000012}.bubble.error[data-v-3e692d5d]{background:linear-gradient(135deg,#fff5f5,#ffeaea)!important;color:#c0392b!important;border:1px solid #f5c5c5!important;border-left:4px solid #e74c3c!important;border-radius:var(--radius-md)!important;box-shadow:0 4px 14px #e74c3c24!important;font-size:14px;padding:12px 16px}.loading[data-v-3e692d5d]{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-style:italic;padding:12px 18px!important}.loading .dot[data-v-3e692d5d]{width:6px;height:6px;background:var(--primary);border-radius:50%;display:inline-block;animation:dot-bounce-3e692d5d 1.2s infinite ease-in-out both}.loading .dot1[data-v-3e692d5d]{animation-delay:-.32s}.loading .dot2[data-v-3e692d5d]{animation-delay:-.16s}.loading .dot3[data-v-3e692d5d]{animation-delay:0s}@keyframes dot-bounce-3e692d5d{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.write-card[data-v-3e692d5d]{margin-top:12px;max-width:92%;background:#fff;border:1px solid #f0d6a0;border-left:4px solid #f0a020;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 4px 18px #f0a0201f;animation:card-slide-3e692d5d .3s ease-out;transition:border-color .3s,box-shadow .3s}@keyframes card-slide-3e692d5d{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.write-card.done[data-v-3e692d5d]{border-color:var(--border);border-left-color:var(--primary);box-shadow:var(--shadow-card)}.write-header[data-v-3e692d5d]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#fff8e8,#fff5e0);border-bottom:1px solid #f5e9c5}.write-card.done .write-header[data-v-3e692d5d]{background:linear-gradient(135deg,#f0f2ff,#f5f0ff);border-bottom-color:var(--border)}.write-icon[data-v-3e692d5d]{font-size:16px}.write-title[data-v-3e692d5d]{font-size:14px;font-weight:600;color:#b06800}.write-card.done .write-title[data-v-3e692d5d]{color:var(--primary)}.write-action-tag[data-v-3e692d5d]{margin-left:auto;font-size:11px;font-weight:600;padding:3px 12px;border-radius:10px;letter-spacing:.5px}.write-action-tag.insert[data-v-3e692d5d]{background:#e3f3e8;color:#1f7a3a}.write-action-tag.update[data-v-3e692d5d]{background:#fff3e0;color:#b06800}.write-action-tag.delete[data-v-3e692d5d]{background:#fde8e8;color:#c0392b}.write-summary[data-v-3e692d5d]{padding:14px 16px;font-size:14px;color:#444;line-height:1.6;border-bottom:1px dashed #f0e0c0;background:#fffdf5}.write-ops[data-v-3e692d5d]{padding:6px 0}.write-op[data-v-3e692d5d]{padding:10px 16px;border-bottom:1px solid #f8f4e8;transition:background .2s}.write-op[data-v-3e692d5d]:last-child{border-bottom:none}.write-op[data-v-3e692d5d]:hover{background:#fffdf3}.op-row[data-v-3e692d5d]{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px}.op-idx[data-v-3e692d5d]{width:20px;height:20px;background:var(--primary-grad);color:#fff;border-radius:50%;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #667eea4d}.op-table[data-v-3e692d5d]{font-weight:600;color:#b06800;background:#fff3e0;padding:2px 10px;border-radius:4px;font-size:12px}.op-action[data-v-3e692d5d]{font-size:11px;font-weight:600;padding:2px 9px;border-radius:4px;letter-spacing:.3px}.op-action.insert[data-v-3e692d5d]{background:#e3f3e8;color:#1f7a3a}.op-action.update[data-v-3e692d5d]{background:#fff3e0;color:#b06800}.op-action.delete[data-v-3e692d5d]{background:#fde8e8;color:#c0392b}.op-desc[data-v-3e692d5d]{color:#555;flex:1}.op-sql[data-v-3e692d5d]{margin:0;padding:10px 12px;background:#1e1e2e;color:#cdd6f4;border-radius:6px;font-family:JetBrains Mono,Consolas,Courier New,monospace;font-size:12px;line-height:1.55;overflow-x:auto;white-space:pre-wrap;word-break:break-all;box-shadow:inset 0 1px #ffffff0a}.op-sql code[data-v-3e692d5d]{background:none;padding:0}.write-actions[data-v-3e692d5d]{display:flex;gap:12px;padding:14px 16px;background:#fffaf0;border-top:1px solid #f5e9c5}.btn-confirm[data-v-3e692d5d],.btn-cancel[data-v-3e692d5d]{flex:1;padding:10px 16px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-confirm[data-v-3e692d5d]{background:var(--primary-grad);color:#fff;box-shadow:0 3px 10px #667eea4d}.btn-confirm[data-v-3e692d5d]:hover{transform:translateY(-2px);box-shadow:0 6px 18px #667eea66}.btn-confirm[data-v-3e692d5d]:active{transform:translateY(0)}.btn-cancel[data-v-3e692d5d]{background:#f5f5f7;color:#666;border:1px solid var(--border)}.btn-cancel[data-v-3e692d5d]:hover{background:#ebebef;color:#444}.write-status[data-v-3e692d5d]{padding:12px 16px;font-size:13px;border-top:1px solid;display:flex;align-items:center;gap:8px}.write-status.executing[data-v-3e692d5d]{background:#f0f5ff;color:var(--primary);border-color:#d5d8e4}.write-status.ok[data-v-3e692d5d]{background:#f0fbf2;color:#1f7a3a;border-color:#c5e8cd;font-weight:500}.write-status.fail[data-v-3e692d5d]{background:#fdf2f2;color:#c0392b;border-color:#f5c5c5}.details[data-v-3e692d5d]{margin-top:12px;max-width:92%}.details details[data-v-3e692d5d]{background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.details summary[data-v-3e692d5d]{cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 16px;font-size:13px;color:var(--primary);background:linear-gradient(135deg,#f0f2ff,#faf0ff);display:flex;align-items:center;gap:6px;font-weight:500;transition:background .2s}.details summary[data-v-3e692d5d]:hover{background:linear-gradient(135deg,#e4e8ff,#f2e4ff)}.summary-arrow[data-v-3e692d5d]{margin-left:auto;font-size:12px;transition:transform .25s}.details details[open] .summary-arrow[data-v-3e692d5d]{transform:rotate(0)}.details details:not([open]) .summary-arrow[data-v-3e692d5d]{transform:rotate(-90deg)}.sql-box[data-v-3e692d5d]{background:#1e1e2e;border-radius:0;font-size:13px}.sql-header[data-v-3e692d5d]{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#2a2a3c;border-bottom:1px solid #3a3a50}.sql-lang[data-v-3e692d5d]{font-size:11px;font-weight:600;color:#89b4fa;letter-spacing:1px}.sql-copy[data-v-3e692d5d]{background:#ffffff1a;border:none;color:#cdd6f4;padding:3px 10px;border-radius:5px;font-size:11px;cursor:pointer;transition:background .2s}.sql-copy[data-v-3e692d5d]:hover{background:#fff3}.sql-code[data-v-3e692d5d]{margin:0;padding:14px 16px;font-family:JetBrains Mono,Consolas,Courier New,monospace;font-size:13px;line-height:1.65;color:#cdd6f4;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.sql-code code[data-v-3e692d5d]{background:none;padding:0}.table-empty[data-v-3e692d5d]{padding:14px;text-align:center;color:#999;font-size:13px;background:#fafbff;border-top:1px solid var(--border)}.table-card[data-v-3e692d5d]{padding:10px 14px 14px;background:#fff;border-top:1px solid var(--border)}.table-meta[data-v-3e692d5d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.table-title[data-v-3e692d5d]{font-size:13px;font-weight:600;color:#333}.table-count[data-v-3e692d5d]{font-size:12px;color:#999;background:#f0f2ff;padding:2px 10px;border-radius:10px}.table-scroll[data-v-3e692d5d]{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--border)}.data-table[data-v-3e692d5d]{width:100%;border-collapse:collapse;font-size:13px;background:#fff}.data-table th[data-v-3e692d5d]{background:var(--primary-grad);color:#fff;padding:10px 14px;text-align:left;font-weight:600;font-size:12px;letter-spacing:.3px}.data-table td[data-v-3e692d5d]{padding:9px 14px;border-bottom:1px solid #f5f5f5;color:#444;font-size:13px;transition:background .15s}.data-table tbody tr:nth-child(2n) td[data-v-3e692d5d]{background:#fafbff}.data-table tbody tr:hover td[data-v-3e692d5d]{background:#f0f2ff!important}.data-table tbody tr:last-child td[data-v-3e692d5d]{border-bottom:none}.kb-sources[data-v-3e692d5d]{margin-top:8px;display:flex;flex-direction:column;gap:6px;font-size:12px;animation:msg-in-3e692d5d .28s ease-out}.kb-sources-label[data-v-3e692d5d]{color:var(--text-muted);font-weight:500}.kb-source-item[data-v-3e692d5d]{display:flex;flex-direction:column;align-items:flex-start}.kb-source-chip[data-v-3e692d5d]{background:linear-gradient(135deg,#f0f2ff,#f5f0ff);color:var(--primary);border:1px solid #d5d8e4;border-radius:12px;padding:4px 12px;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .2s;max-width:100%;font-family:inherit}.kb-source-chip[data-v-3e692d5d]:hover{background:var(--primary-grad);color:#fff;border-color:transparent;box-shadow:0 2px 8px #667eea4d}.kb-source-chip.expanded[data-v-3e692d5d]{background:var(--primary-grad);color:#fff;border-color:transparent;box-shadow:0 2px 8px #667eea4d;border-radius:12px 12px 0 0}.kb-chip-cat[data-v-3e692d5d]{font-weight:600;white-space:nowrap}.kb-chip-sep[data-v-3e692d5d]{color:#b0b0c0;font-weight:400}.kb-chip-title[data-v-3e692d5d]{color:#6b6b80;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.kb-chip-arrow[data-v-3e692d5d]{font-size:10px;margin-left:4px;opacity:.7}.kb-source-chip:hover .kb-chip-sep[data-v-3e692d5d],.kb-source-chip:hover .kb-chip-title[data-v-3e692d5d],.kb-source-chip.expanded .kb-chip-sep[data-v-3e692d5d],.kb-source-chip.expanded .kb-chip-title[data-v-3e692d5d]{color:#ffffffd9}.kb-source-chip:hover .kb-chip-cat[data-v-3e692d5d],.kb-source-chip.expanded .kb-chip-cat[data-v-3e692d5d]{color:#fff}.kb-content[data-v-3e692d5d]{background:#fafbff;border:1px solid #d5d8e4;border-top:none;border-radius:0 0 12px 12px;padding:12px 16px;width:100%;max-width:100%;box-sizing:border-box;box-shadow:0 2px 8px #0000000a;animation:kb-slide-3e692d5d .2s ease-out}@keyframes kb-slide-3e692d5d{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.kb-content pre[data-v-3e692d5d]{margin:0;white-space:pre-wrap;word-break:break-word;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.7;color:#333}.input-area[data-v-ce5df0f8]{padding:14px 20px 18px;border-top:1px solid var(--border);background:#fff;box-shadow:0 -4px 16px #667eea0f;flex-shrink:0}.quick-questions[data-v-ce5df0f8]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.quick-btn[data-v-ce5df0f8]{background:#f0f2ff;color:var(--primary);border:1px solid transparent;padding:6px 14px;border-radius:20px;cursor:pointer;font-size:13px;transition:all .2s cubic-bezier(.4,0,.2,1)}.quick-btn[data-v-ce5df0f8]:hover:not(:disabled){background:var(--primary-grad);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #667eea40}.quick-btn[data-v-ce5df0f8]:disabled{opacity:.5;cursor:not-allowed}.input-row[data-v-ce5df0f8]{display:flex;gap:10px}.input-row input[data-v-ce5df0f8]{flex:1;padding:12px 16px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s}.input-row input[data-v-ce5df0f8]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #667eea1f}.input-row input[data-v-ce5df0f8]:disabled{background:#f5f5f7}.send-btn[data-v-ce5df0f8]{padding:0 24px;background:var(--primary-grad);color:#fff;border:none;border-radius:var(--radius-md);font-size:15px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:6px;font-weight:600;box-shadow:0 3px 10px #667eea4d}.send-btn[data-v-ce5df0f8]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 18px #667eea66}.send-btn[data-v-ce5df0f8]:active{transform:translateY(0)}.send-btn[data-v-ce5df0f8]:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.send-arrow[data-v-ce5df0f8]{font-size:16px;transition:transform .2s}.send-btn:hover:not(:disabled) .send-arrow[data-v-ce5df0f8]{transform:translate(3px)}.chat-view[data-v-715b86f4]{display:flex;height:100%;overflow:hidden;background:var(--bg-page)}.sidebar[data-v-715b86f4]{width:228px;background:linear-gradient(180deg,#2a2a3e,#1e1e2e);color:#ddd;display:flex;flex-direction:column;transition:width .25s cubic-bezier(.4,0,.2,1);flex-shrink:0;box-shadow:2px 0 12px #00000026}.sidebar.collapsed[data-v-715b86f4]{width:0;overflow:hidden;box-shadow:none}.new-chat-btn[data-v-715b86f4]{margin:16px 12px 10px;padding:11px;background:var(--primary-grad);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 3px 10px #667eea59}.new-chat-btn[data-v-715b86f4]:hover{transform:translateY(-2px);box-shadow:0 6px 18px #667eea80}.new-chat-btn[data-v-715b86f4]:active{transform:translateY(0)}.session-list[data-v-715b86f4]{flex:1;overflow-y:auto;padding:6px 8px}.session-item[data-v-715b86f4]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;margin-bottom:4px;transition:background .18s,transform .15s}.session-item[data-v-715b86f4]:hover{background:#ffffff14;transform:translate(2px)}.session-item.active[data-v-715b86f4]{background:linear-gradient(135deg,#667eea73,#764ba273);color:#fff;box-shadow:0 2px 8px #667eea4d}.session-title[data-v-715b86f4]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-del[data-v-715b86f4]{background:transparent;border:none;color:#aaa;cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;transition:all .15s}.session-del[data-v-715b86f4]:hover{background:#ff505040;color:#ff8080}.empty-tip[data-v-715b86f4]{text-align:center;color:#666;font-size:12px;padding:var(--space-md)}.toggle-sidebar[data-v-715b86f4]{position:fixed;top:66px;z-index:10;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);width:26px;height:26px;cursor:pointer;font-size:12px;color:var(--text-secondary);box-shadow:0 2px 8px #00000014;transition:left .25s cubic-bezier(.4,0,.2,1),box-shadow .2s}.toggle-sidebar[data-v-715b86f4]:hover{background:#f0f2ff;box-shadow:0 4px 14px #667eea33}.main[data-v-715b86f4]{flex:1;display:flex;flex-direction:column;min-width:0}.header[data-v-715b86f4]{display:flex;align-items:center;gap:12px;padding:0 var(--space-lg);height:48px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--border)}.header-brand[data-v-715b86f4]{font-size:17px;font-weight:700;background:var(--primary-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.header-divider[data-v-715b86f4]{width:1px;height:16px;background:#e0e0e8}.header-sub[data-v-715b86f4]{font-size:12px;color:var(--text-muted)}.chat-area[data-v-715b86f4]{flex:1;min-height:0;padding:var(--space-md) var(--space-lg) 8px;overflow-y:auto;background:var(--bg-page)}.messages-inner[data-v-715b86f4]{max-width:860px;margin:0 auto}.table-view[data-v-41269ba5]{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-page)}.header[data-v-41269ba5]{display:flex;align-items:center;gap:12px;padding:0 var(--space-lg);height:48px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--border)}.header-brand[data-v-41269ba5]{font-size:17px;font-weight:700;background:var(--primary-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.header-divider[data-v-41269ba5]{width:1px;height:16px;background:#e0e0e8}.header-sub[data-v-41269ba5]{font-size:12px;color:var(--text-muted)}.tabs[data-v-41269ba5]{display:flex;gap:8px;padding:12px var(--space-lg);background:#fff;border-bottom:1px solid #eee;flex-wrap:wrap}.tab-btn[data-v-41269ba5]{padding:8px 18px;border:2px solid #e8e8e8;background:#fff;border-radius:var(--radius-md);font-size:14px;cursor:pointer;transition:var(--transition);color:var(--text-secondary)}.tab-btn[data-v-41269ba5]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.tab-btn.active[data-v-41269ba5]{background:var(--primary-grad);color:#fff;border-color:transparent}.tab-btn.add-table[data-v-41269ba5]{border-style:dashed;color:#52c41a;border-color:#b7eb8f}.tab-btn.refresh[data-v-41269ba5]{margin-left:auto}.tab-btn[data-v-41269ba5]:disabled{opacity:.5;cursor:not-allowed}.actions[data-v-41269ba5]{display:flex;align-items:center;gap:var(--space-md);padding:10px var(--space-lg);background:#fff;border-bottom:1px solid #f0f0f0;flex-wrap:wrap}.op-btn[data-v-41269ba5]{padding:6px 14px;border:1px solid #d9d9d9;background:#fff;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;transition:var(--transition)}.op-btn[data-v-41269ba5]:hover{border-color:var(--primary);color:var(--primary)}.op-btn.primary[data-v-41269ba5]{background:var(--primary-grad);color:#fff;border-color:transparent}.op-btn.danger[data-v-41269ba5]{color:#ff4d4f;border-color:#ffccc7}.op-btn.danger[data-v-41269ba5]:hover{background:#fff1f0;color:#ff4d4f;border-color:#ff4d4f}.row-count[data-v-41269ba5]{color:var(--text-muted);font-size:13px}.tip[data-v-41269ba5]{color:#faad14;font-size:12px}.table-wrap[data-v-41269ba5]{flex:1;min-height:0;padding:var(--space-md) var(--space-lg);overflow-y:auto;background:var(--bg-page)}.data-table[data-v-41269ba5]{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.data-table th[data-v-41269ba5]{background:var(--primary-grad);color:#fff;padding:12px 16px;text-align:left;font-weight:600}.data-table td[data-v-41269ba5]{padding:10px 16px;border-bottom:1px solid #f0f0f0;color:var(--text-primary)}.data-table tbody tr[data-v-41269ba5]:hover{background:#f0f2ff}.data-table tbody tr:last-child td[data-v-41269ba5]{border-bottom:none}.actions-cell[data-v-41269ba5]{white-space:nowrap}.data-table tbody tr.alert-row[data-v-41269ba5]{background:#fff8f8}.data-table tbody tr.alert-row td[data-v-41269ba5]{color:#c0392b}.data-table tbody tr.alert-row[data-v-41269ba5]:hover{background:#ffeaea}.row-btn[data-v-41269ba5]{padding:4px 10px;margin-right:6px;border:1px solid #d9d9d9;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;transition:var(--transition)}.row-btn.edit[data-v-41269ba5]:hover{color:var(--primary);border-color:var(--primary)}.row-btn.del[data-v-41269ba5]:hover{color:#ff4d4f;border-color:#ff4d4f}.empty[data-v-41269ba5]{text-align:center;color:#999;padding:40px}.loading[data-v-41269ba5],.error[data-v-41269ba5]{padding:60px 20px;text-align:center;color:#999;font-size:15px}.error[data-v-41269ba5]{color:#e74c3c}.error code[data-v-41269ba5]{background:#f0f0f0;padding:2px 6px;border-radius:4px;color:#333}.modal-mask[data-v-41269ba5]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-41269ba5]{background:#fff;border-radius:10px;padding:24px;width:420px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 12px 32px #0003}.modal.wide[data-v-41269ba5]{width:640px}.modal h3[data-v-41269ba5]{margin:0 0 16px;color:#333}.form-grid[data-v-41269ba5]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field[data-v-41269ba5]{display:flex;flex-direction:column;gap:4px}.field label[data-v-41269ba5]{font-size:12px;color:#666}.field input[data-v-41269ba5]{padding:8px 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px}.field input[data-v-41269ba5]:focus{outline:none;border-color:#667eea}.field input[data-v-41269ba5]:disabled{background:#f5f5f5;color:#999}.col-editor[data-v-41269ba5]{margin:12px 0}.col-editor-head[data-v-41269ba5]{font-size:13px;color:#666;margin-bottom:8px}.col-row[data-v-41269ba5]{display:grid;grid-template-columns:1fr 1.4fr auto auto auto auto;gap:6px;align-items:center;margin-bottom:6px}.col-row input[data-v-41269ba5]{padding:6px 8px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px}.cb[data-v-41269ba5]{font-size:12px;color:#666;white-space:nowrap}.cb input[data-v-41269ba5]{margin-right:4px}.modal-actions[data-v-41269ba5]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.charts-view[data-v-41269ba5]{flex:1;min-height:0;overflow-y:auto;padding:16px 20px 40px;background:#f8f9fc}.charts-toolbar[data-v-41269ba5]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.charts-label[data-v-41269ba5]{font-size:13px;color:#666}.charts-toolbar select[data-v-41269ba5]{padding:6px 12px;border:1px solid #e0e0e8;border-radius:14px;background:#fff;font-size:13px;color:#555;cursor:pointer}.vis-grid[data-v-41269ba5]{display:flex;flex-direction:column;gap:16px}.vis-row[data-v-41269ba5]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.vis-card[data-v-41269ba5]{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 10px #0000000d}.vis-title[data-v-41269ba5]{font-size:14px;font-weight:600;color:#333;margin-bottom:12px}.vis-chart[data-v-41269ba5]{height:260px}@media (max-width: 720px){.vis-row[data-v-41269ba5]{grid-template-columns:1fr}}
