.modal-overlay[data-v-e7da0a86]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-e7da0a86]{background:var(--bg-surface, #1e1e2e);border:1px solid var(--border-color, #313244);border-radius:8px;width:600px;max-height:80vh;overflow-y:auto}.modal-header[data-v-e7da0a86]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color, #313244)}.modal-header h2[data-v-e7da0a86]{font-size:16px;color:var(--text-primary, #cdd6f4)}.btn-close[data-v-e7da0a86]{background:none;border:none;color:var(--text-muted, #6c7086);font-size:24px;cursor:pointer;line-height:1}.btn-close[data-v-e7da0a86]:hover{color:var(--text-primary, #cdd6f4)}.modal-body[data-v-e7da0a86]{padding:20px}.conn-list[data-v-e7da0a86]{margin-bottom:20px}.conn-item[data-v-e7da0a86]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border-color, #313244);border-radius:4px;margin-bottom:8px}.conn-item.active[data-v-e7da0a86]{border-color:#89b4fa}.conn-info[data-v-e7da0a86]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.conn-name[data-v-e7da0a86]{font-weight:600;font-size:14px;color:var(--text-primary, #cdd6f4)}.conn-url[data-v-e7da0a86]{font-size:11px;color:var(--text-muted, #6c7086);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-actions[data-v-e7da0a86]{display:flex;align-items:center;gap:6px;margin-left:12px}.active-badge[data-v-e7da0a86]{font-size:11px;padding:2px 8px;background:#89b4fa;color:#1e1e2e;border-radius:3px;font-weight:600}.btn[data-v-e7da0a86]{padding:6px 12px;border:1px solid var(--border-color, #313244);border-radius:4px;cursor:pointer;font-size:13px;background:var(--bg-button, #313244);color:var(--text-primary, #cdd6f4)}.btn-sm[data-v-e7da0a86]{padding:3px 8px;font-size:12px}.btn-switch[data-v-e7da0a86]{background:#89b4fa;color:#1e1e2e;border-color:#89b4fa}.btn-delete[data-v-e7da0a86]{background:none;color:#f38ba8;border-color:#f38ba8}.btn-delete[data-v-e7da0a86]:hover{background:#f38ba8;color:#1e1e2e}.add-form[data-v-e7da0a86]{border-top:1px solid var(--border-color, #313244);padding-top:16px}.add-form h3[data-v-e7da0a86]{font-size:14px;color:var(--text-secondary, #a6adc8);margin-bottom:12px}.form-row[data-v-e7da0a86]{margin-bottom:10px}.form-row label[data-v-e7da0a86]{display:block;font-size:12px;color:var(--text-muted, #6c7086);margin-bottom:4px}.form-input[data-v-e7da0a86]{width:100%;padding:6px 10px;background:var(--bg-input, #181825);color:var(--text-primary, #cdd6f4);border:1px solid var(--border-color, #313244);border-radius:4px;font-size:13px;outline:none}.form-input[data-v-e7da0a86]:focus{border-color:#89b4fa}.form-actions[data-v-e7da0a86]{display:flex;align-items:center;gap:8px;margin-top:12px}.btn-test[data-v-e7da0a86]{background:var(--bg-button, #313244)}.btn-add[data-v-e7da0a86]{background:#a6e3a1;color:#1e1e2e;border-color:#a6e3a1;font-weight:600;margin-left:auto}.btn-add[data-v-e7da0a86]:disabled{opacity:.5;cursor:not-allowed}.test-ok[data-v-e7da0a86]{font-size:12px;color:#a6e3a1}.test-fail[data-v-e7da0a86]{font-size:12px;color:#f38ba8}*{margin:0;padding:0;box-sizing:border-box}.theme-dark{--bg-surface: #1e1e2e;--bg-surface-alt: #181825;--bg-hover: #313244;--bg-button: #313244;--bg-button-hover: #45475a;--bg-input: #181825;--border-color: #313244;--border-subtle: #1e1e2e;--text-primary: #cdd6f4;--text-secondary: #a6adc8;--text-muted: #6c7086;--text-dimmed: #45475a;--text-accent: #89b4fa;--text-yellow: #f9e2af;--text-error: #f38ba8;--editor-caret: #cdd6f4;--hl-keyword: #cba6f7;--hl-string: #a6e3a1;--hl-number: #fab387;--hl-comment: #6c7086;--ac-bg: #313244;--ac-border: #45475a;--ac-text: #cdd6f4;--ac-active: #45475a}.theme-light{--bg-surface: #ffffff;--bg-surface-alt: #f5f5f5;--bg-hover: #e8e8e8;--bg-button: #e0e0e0;--bg-button-hover: #d0d0d0;--bg-input: #f5f5f5;--border-color: #d0d0d0;--border-subtle: #e8e8e8;--text-primary: #333333;--text-secondary: #555555;--text-muted: #888888;--text-dimmed: #bbbbbb;--text-accent: #2563eb;--text-yellow: #b45309;--text-error: #dc2626;--editor-caret: #333333;--hl-keyword: #7c3aed;--hl-string: #16a34a;--hl-number: #ea580c;--hl-comment: #9ca3af;--ac-bg: #ffffff;--ac-border: #d0d0d0;--ac-text: #333333;--ac-active: #e8e8e8}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-surface, #1e1e2e);color:var(--text-primary, #cdd6f4)}#app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-surface);color:var(--text-primary)}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:48px;background:var(--bg-surface-alt);border-bottom:1px solid var(--border-color)}.navbar-brand{font-weight:700;font-size:16px;color:var(--text-accent)}.navbar-menu{display:flex;align-items:center;gap:12px}.nav-link{color:var(--text-secondary);text-decoration:none;font-size:14px;padding:4px 8px;border-radius:4px}.nav-link:hover,.nav-link.router-link-exact-active{color:var(--text-primary);background:var(--bg-hover)}.connection-selector{display:flex;align-items:center;gap:4px}.conn-select{padding:4px 8px;background:var(--bg-button);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:12px;max-width:160px}.btn-conn-manage{padding:4px 8px;background:none;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:4px;cursor:pointer;font-size:12px}.btn-conn-manage:hover{color:var(--text-primary);background:var(--bg-hover)}.btn-theme{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px}.btn-theme:hover{color:var(--text-primary);background:var(--bg-hover)}.btn-logout{background:none;border:1px solid var(--border-color);color:var(--text-secondary);padding:4px 12px;border-radius:4px;cursor:pointer;font-size:13px}.btn-logout:hover{color:var(--text-error);border-color:var(--text-error)}.login-container[data-v-1d8ad97d]{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-surface, #1e1e2e)}.login-card[data-v-1d8ad97d]{background:var(--bg-surface-alt, #181825);border:1px solid var(--border-color, #313244);border-radius:12px;padding:40px;width:100%;max-width:400px}.login-title[data-v-1d8ad97d]{font-size:24px;color:var(--text-accent, #89b4fa);text-align:center;margin-bottom:4px}.login-subtitle[data-v-1d8ad97d]{text-align:center;color:var(--text-muted, #6c7086);font-size:14px;margin-bottom:32px}.login-form[data-v-1d8ad97d]{display:flex;flex-direction:column;gap:16px}.form-group[data-v-1d8ad97d]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-1d8ad97d]{font-size:13px;color:var(--text-secondary, #a6adc8)}.form-group input[data-v-1d8ad97d]{padding:10px 12px;border:1px solid var(--border-color, #313244);border-radius:6px;background:var(--bg-surface, #1e1e2e);color:var(--text-primary, #cdd6f4);font-size:14px;outline:none}.form-group input[data-v-1d8ad97d]:focus{border-color:var(--text-accent, #89b4fa)}.error-message[data-v-1d8ad97d]{color:var(--text-error, #f38ba8);font-size:13px;text-align:center}.btn-login[data-v-1d8ad97d]{padding:10px;background:var(--text-accent, #89b4fa);color:#1e1e2e;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;margin-top:8px}.btn-login[data-v-1d8ad97d]:hover{background:#74c7ec}.btn-login[data-v-1d8ad97d]:disabled{opacity:.6;cursor:not-allowed}.result-grid-container[data-v-e9e3f4b5]{overflow:auto;max-height:100%}.result-toolbar[data-v-e9e3f4b5]{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-surface-alt, #181825);border-bottom:1px solid var(--border-color, #313244);position:sticky;top:0;z-index:2}.btn-export[data-v-e9e3f4b5]{padding:3px 10px;background:var(--bg-button, #313244);color:var(--text-primary, #cdd6f4);border:1px solid var(--border-color, #45475a);border-radius:3px;cursor:pointer;font-size:12px}.btn-export[data-v-e9e3f4b5]:hover{background:var(--bg-button-hover, #45475a)}.result-count[data-v-e9e3f4b5]{margin-left:auto;font-size:11px;color:var(--text-muted, #6c7086)}.result-grid[data-v-e9e3f4b5]{width:100%;border-collapse:collapse;font-size:13px;font-family:Cascadia Code,Fira Code,Consolas,monospace}.result-grid thead[data-v-e9e3f4b5]{position:sticky;top:33px;z-index:1}.result-grid th[data-v-e9e3f4b5]{text-align:left;padding:6px 10px;background:var(--bg-surface-alt, #181825);color:var(--text-accent, #89b4fa);border-bottom:2px solid var(--border-color, #313244);font-weight:600;white-space:nowrap}.result-grid td[data-v-e9e3f4b5]{padding:4px 10px;border-bottom:1px solid var(--border-subtle, #1e1e2e);color:var(--text-primary, #cdd6f4);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-grid tbody tr[data-v-e9e3f4b5]:hover{background:var(--bg-hover, #313244)}.row-num[data-v-e9e3f4b5]{color:var(--text-dimmed, #45475a);text-align:right;width:40px;min-width:40px}.null-value[data-v-e9e3f4b5]{color:var(--text-muted, #6c7086);font-style:italic}.cell-edit-input[data-v-e9e3f4b5]{width:100%;padding:2px 4px;background:var(--bg-input, #181825);color:var(--text-primary, #cdd6f4);border:1px solid #89b4fa;border-radius:2px;font-family:inherit;font-size:inherit;outline:none}.no-data[data-v-e9e3f4b5]{padding:12px;color:var(--text-muted, #6c7086);font-size:13px}.schema-tree[data-v-66167b8a]{padding:8px 0}.tree-title[data-v-66167b8a]{padding:8px 12px;font-size:11px;color:var(--text-muted, #6c7086);text-transform:uppercase;letter-spacing:.1em}.schema-list[data-v-66167b8a],.table-list[data-v-66167b8a]{list-style:none;padding:0;margin:0}.schema-header[data-v-66167b8a]{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;font-size:13px;color:var(--text-primary, #cdd6f4)}.schema-header[data-v-66167b8a]:hover{background:var(--bg-hover, #313244)}.toggle-icon[data-v-66167b8a]{width:12px;text-align:center;color:var(--text-muted, #6c7086);font-family:monospace}.schema-name[data-v-66167b8a]{font-weight:600;color:var(--text-yellow, #f9e2af)}.table-node[data-v-66167b8a]{padding:4px 12px 4px 32px;cursor:pointer;font-size:12px;color:var(--text-secondary, #a6adc8)}.table-node[data-v-66167b8a]:hover{background:var(--bg-hover, #313244);color:var(--text-accent, #89b4fa)}.loading-text[data-v-66167b8a]{padding:6px 12px;font-size:12px;color:var(--text-muted, #6c7086)}.sql-editor-wrapper[data-v-9ee627d6],.editor-container[data-v-9ee627d6]{position:relative;width:100%;height:100%}.syntax-highlight[data-v-9ee627d6],.sql-textarea[data-v-9ee627d6]{position:absolute;top:0;left:0;width:100%;height:100%;padding:12px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:14px;line-height:1.5;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;word-wrap:break-word;overflow:auto;margin:0;border:none}.syntax-highlight[data-v-9ee627d6]{pointer-events:none;z-index:1;color:transparent;background:transparent}.syntax-highlight code[data-v-9ee627d6]{font-family:inherit;font-size:inherit}.sql-textarea[data-v-9ee627d6]{z-index:2;background:transparent;color:transparent;caret-color:var(--editor-caret, #cdd6f4);outline:none;resize:none}[data-v-9ee627d6] .hl-keyword{color:var(--hl-keyword, #cba6f7);font-weight:600}[data-v-9ee627d6] .hl-string{color:var(--hl-string, #a6e3a1)}[data-v-9ee627d6] .hl-number{color:var(--hl-number, #fab387)}[data-v-9ee627d6] .hl-comment{color:var(--hl-comment, #6c7086);font-style:italic}.autocomplete-dropdown[data-v-9ee627d6]{position:absolute;z-index:100;background:var(--ac-bg, #313244);border:1px solid var(--ac-border, #45475a);border-radius:4px;max-height:200px;overflow-y:auto;min-width:200px;box-shadow:0 4px 12px #0000004d}.autocomplete-item[data-v-9ee627d6]{display:flex;align-items:center;gap:8px;padding:4px 10px;cursor:pointer;font-size:13px;color:var(--ac-text, #cdd6f4)}.autocomplete-item[data-v-9ee627d6]:hover,.autocomplete-item.active[data-v-9ee627d6]{background:var(--ac-active, #45475a)}.ac-icon[data-v-9ee627d6]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:3px;font-size:10px;font-weight:700}.ac-icon.table[data-v-9ee627d6]{background:#89b4fa;color:#1e1e2e}.ac-icon.column[data-v-9ee627d6]{background:#f9e2af;color:#1e1e2e}.ac-label[data-v-9ee627d6]{font-family:Cascadia Code,Fira Code,Consolas,monospace}.editor-layout[data-v-1d5af527]{display:flex;flex:1;overflow:hidden}.sidebar[data-v-1d5af527]{width:260px;min-width:200px;background:var(--bg-surface-alt, #181825);border-right:1px solid var(--border-color, #313244);overflow-y:auto}.main-content[data-v-1d5af527]{flex:1;display:flex;flex-direction:column;overflow:hidden}.tab-bar[data-v-1d5af527]{display:flex;align-items:stretch;background:var(--bg-surface-alt, #181825);border-bottom:1px solid var(--border-color, #313244);overflow-x:auto;min-height:32px}.tab[data-v-1d5af527]{display:flex;align-items:center;gap:6px;padding:4px 12px;font-size:12px;color:var(--text-secondary, #a6adc8);cursor:pointer;border-right:1px solid var(--border-color, #313244);white-space:nowrap;min-width:0}.tab[data-v-1d5af527]:hover{background:var(--bg-hover, #313244)}.tab.active[data-v-1d5af527]{background:var(--bg-surface, #1e1e2e);color:var(--text-primary, #cdd6f4);border-bottom:2px solid var(--text-accent, #89b4fa)}.tab-name[data-v-1d5af527]{max-width:120px;overflow:hidden;text-overflow:ellipsis}.tab-close[data-v-1d5af527]{background:none;border:none;color:var(--text-muted, #6c7086);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.tab-close[data-v-1d5af527]:hover{color:var(--text-error, #f38ba8)}.tab-add[data-v-1d5af527]{background:none;border:none;color:var(--text-muted, #6c7086);cursor:pointer;font-size:16px;padding:4px 10px}.tab-add[data-v-1d5af527]:hover{color:var(--text-primary, #cdd6f4);background:var(--bg-hover, #313244)}.toolbar[data-v-1d5af527]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-surface-alt, #181825);border-bottom:1px solid var(--border-color, #313244);flex-wrap:wrap}.btn[data-v-1d5af527]{padding:6px 16px;border:1px solid var(--border-color, #313244);border-radius:4px;cursor:pointer;font-size:13px;background:var(--bg-button, #313244);color:var(--text-primary, #cdd6f4)}.btn-run[data-v-1d5af527]{background:#a6e3a1;color:#1e1e2e;border-color:#a6e3a1;font-weight:600}.btn-run[data-v-1d5af527]:hover{background:#94e2d5}.btn-explain[data-v-1d5af527]{background:#f9e2af;color:#1e1e2e;border-color:#f9e2af;font-weight:600}.btn-explain[data-v-1d5af527]:hover{background:#f5c2e7}.btn-clear[data-v-1d5af527]:hover{background:var(--bg-button-hover, #45475a)}.btn-save[data-v-1d5af527]{background:#89b4fa;color:#1e1e2e;border-color:#89b4fa}.btn-save[data-v-1d5af527]:hover{background:#74c7ec}.history-select[data-v-1d5af527]{padding:6px 8px;background:var(--bg-button, #313244);color:var(--text-primary, #cdd6f4);border:1px solid var(--border-color, #45475a);border-radius:4px;font-size:13px;max-width:200px}.status-info[data-v-1d5af527]{margin-left:auto;font-size:12px;color:var(--text-muted, #6c7086)}.editor-area[data-v-1d5af527]{flex:0 0 200px;border-bottom:1px solid var(--border-color, #313244);background:var(--bg-surface, #1e1e2e)}.results-area[data-v-1d5af527]{flex:1;overflow:auto;padding:0}.error-message[data-v-1d5af527]{padding:12px;color:var(--text-error, #f38ba8);font-size:13px;font-family:monospace;white-space:pre-wrap}.loading-message[data-v-1d5af527]{padding:12px;color:var(--text-secondary, #a6adc8);font-size:13px}.explain-result[data-v-1d5af527]{padding:12px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:13px;line-height:1.6;color:var(--text-primary, #cdd6f4);white-space:pre-wrap;word-break:break-word;background:var(--bg-surface, #1e1e2e);margin:0}.table-browser[data-v-5a33f345]{flex:1;display:flex;flex-direction:column;overflow:hidden}.browser-controls[data-v-5a33f345]{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--bg-surface-alt, #181825);border-bottom:1px solid var(--border-color, #313244)}.control-group[data-v-5a33f345]{display:flex;align-items:center;gap:8px}.control-group label[data-v-5a33f345]{font-size:13px;color:var(--text-secondary, #a6adc8)}.select-input[data-v-5a33f345]{padding:6px 10px;background:var(--bg-button, #313244);color:var(--text-primary, #cdd6f4);border:1px solid var(--border-color, #45475a);border-radius:4px;font-size:13px;min-width:200px}.browser-content[data-v-5a33f345]{flex:1;display:flex;overflow:hidden}.table-list-panel[data-v-5a33f345]{width:280px;min-width:200px;background:var(--bg-surface-alt, #181825);border-right:1px solid var(--border-color, #313244);overflow-y:auto}.panel-title[data-v-5a33f345]{padding:10px 12px;font-size:13px;color:var(--text-muted, #6c7086);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color, #313244)}.table-list[data-v-5a33f345]{list-style:none}.table-item[data-v-5a33f345]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--bg-surface, #1e1e2e);font-size:13px}.table-item[data-v-5a33f345]:hover{background:var(--bg-hover, #313244)}.table-item.active[data-v-5a33f345]{background:var(--bg-hover, #313244);border-left:3px solid var(--text-accent, #89b4fa)}.table-name[data-v-5a33f345]{color:var(--text-primary, #cdd6f4)}.row-count[data-v-5a33f345]{color:var(--text-muted, #6c7086);font-size:11px}.table-detail[data-v-5a33f345]{flex:1;overflow-y:auto;padding:16px}.detail-section[data-v-5a33f345]{margin-bottom:24px}.section-title[data-v-5a33f345]{font-size:14px;color:var(--text-accent, #89b4fa);margin-bottom:10px}.columns-table[data-v-5a33f345]{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:16px}.columns-table th[data-v-5a33f345]{text-align:left;padding:8px 12px;background:var(--bg-surface-alt, #181825);color:var(--text-secondary, #a6adc8);border-bottom:1px solid var(--border-color, #313244);font-weight:600}.columns-table td[data-v-5a33f345]{padding:6px 12px;border-bottom:1px solid var(--bg-surface, #1e1e2e);color:var(--text-primary, #cdd6f4)}.type-cell[data-v-5a33f345]{color:var(--text-yellow, #f9e2af)}.loading-text[data-v-5a33f345]{padding:12px;color:var(--text-muted, #6c7086);font-size:13px}.error-text[data-v-5a33f345]{color:var(--text-error, #f38ba8);font-size:13px}.empty-state[data-v-5a33f345]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dimmed, #45475a);font-size:14px}
