@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";.sidebar[data-v-e9b212c0]{width:52px;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:width .2s ease}.sidebar.open[data-v-e9b212c0]{width:220px}.brand[data-v-e9b212c0]{display:flex;align-items:center;gap:10px;height:56px;padding:0 16px;flex-shrink:0;border-bottom:1px solid var(--border)}.brand-icon[data-v-e9b212c0]{font-size:16px;color:var(--muted);flex-shrink:0}.brand-name[data-v-e9b212c0]{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.brand-accent[data-v-e9b212c0]{color:var(--accent)}.nav[data-v-e9b212c0]{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:4px}.nav-item[data-v-e9b212c0]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:var(--muted);font-size:14px;cursor:pointer;white-space:nowrap;transition:color .15s,background .15s}.nav-item[data-v-e9b212c0]:hover{color:var(--text);background:var(--bg-hover)}.nav-item.active[data-v-e9b212c0]{color:var(--accent);background:var(--nav-active-bg)}.nav-icon[data-v-e9b212c0]{font-size:13px;flex-shrink:0;width:20px;text-align:center;font-family:var(--font-data)}.nav-label[data-v-e9b212c0]{overflow:hidden}.cache-wrap[data-v-e9b212c0]{padding:12px 8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.theme-btn[data-v-e9b212c0],.cache-btn[data-v-e9b212c0]{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border-radius:var(--radius);background:none;border:1px solid var(--border);color:var(--muted);cursor:pointer;font-size:12px;font-family:var(--font-data);transition:color .15s,border-color .15s,background .15s;white-space:nowrap}.theme-btn[data-v-e9b212c0]{background:var(--bg-deep)}.theme-btn[data-v-e9b212c0]:hover{color:var(--accent);border-color:var(--border-mid)}.theme-btn.dark[data-v-e9b212c0]{color:var(--warning)}.theme-icon[data-v-e9b212c0]{width:13px;text-align:center;font-size:13px;line-height:1}.cache-btn[data-v-e9b212c0]:hover:not(:disabled){color:var(--text);border-color:var(--border-mid)}.cache-btn[data-v-e9b212c0]:disabled{opacity:.4;cursor:not-allowed}.cache-info[data-v-e9b212c0]{font-size:11px;font-family:var(--font-data);padding:0 4px;line-height:1.4}.cache-info.ok[data-v-e9b212c0]{color:var(--success)}.cache-info.err[data-v-e9b212c0]{color:var(--danger)}.version[data-v-e9b212c0]{padding:10px 15px;font-size:12px;font-family:var(--font-data);color:var(--subtle);border-top:1px solid var(--border)}@keyframes spin-e9b212c0{to{transform:rotate(360deg)}}.shell[data-v-ce608df7]{display:flex;height:100vh;overflow:hidden;background:var(--bg-base)}.main-wrap[data-v-ce608df7]{display:flex;flex-direction:column;flex:1;overflow:hidden}.topbar[data-v-ce608df7]{display:flex;align-items:center;gap:14px;height:56px;padding:0 24px;flex-shrink:0;background:var(--bg-surface);border-bottom:1px solid var(--border)}.menu-btn[data-v-ce608df7]{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color .15s}.menu-btn[data-v-ce608df7]:hover{color:var(--text)}.breadcrumb[data-v-ce608df7]{display:flex;align-items:center;gap:8px;font-family:var(--font-data);font-size:12px;line-height:1.4}.bc-root[data-v-ce608df7]{color:var(--subtle)}.bc-sep[data-v-ce608df7]{color:var(--subtle);font-size:10px}.bc-page[data-v-ce608df7]{color:var(--text)}.connection-context[data-v-ce608df7]{display:inline-flex;align-items:center;gap:9px;margin-left:auto;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-hover);color:var(--muted);font-family:var(--font-data);font-size:10px;white-space:nowrap}.connection-state[data-v-ce608df7]{display:inline-flex;align-items:center;gap:5px;color:var(--subtle);text-transform:uppercase;letter-spacing:.06em}.connection-state i[data-v-ce608df7]{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.connection-detail[data-v-ce608df7]{display:inline-flex;align-items:baseline;gap:5px}.connection-key[data-v-ce608df7]{color:var(--subtle)}.connection-detail strong[data-v-ce608df7]{color:var(--text);font-weight:500}.connection-divider[data-v-ce608df7]{width:1px;height:14px;background:var(--border)}@media (max-width: 860px){.connection-state[data-v-ce608df7]{display:none}}@media (max-width: 660px){.topbar[data-v-ce608df7]{padding:0 14px;gap:10px}.bc-root[data-v-ce608df7],.bc-sep[data-v-ce608df7]{display:none}.connection-context[data-v-ce608df7]{gap:6px;padding:5px 7px}.connection-key[data-v-ce608df7]{display:none}}.content[data-v-ce608df7]{flex:1;min-width:0;overflow-y:auto;padding:var(--content-padding)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base: #f7f7f5;--bg-surface: #ffffff;--bg-deep: #f1f1ee;--bg-input: #ffffff;--bg-hover: rgba(101,87,217,.055);--border: #e5e5e0;--border-mid: #cfd0c9;--text: #202320;--muted: #707771;--subtle: #a3aaa4;--accent: #6557d9;--success: #2f8f68;--danger: #c94d4d;--warning: #a66a08;--info: #4d72a8;--accent-contrast: #ffffff;--accent-border: rgba(101,87,217,.35);--accent-weak-border: rgba(101,87,217,.16);--accent-selection-border: rgba(101,87,217,.22);--accent-soft: rgba(101,87,217,.06);--nav-active-bg: rgba(101,87,217,.07);--danger-bg: rgba(201,77,77,.07);--danger-border: rgba(201,77,77,.22);--warning-bg: rgba(166,106,8,.06);--warning-border: rgba(166,106,8,.36);--warning-weak-border: rgba(166,106,8,.24);--info-bg: rgba(77,114,168,.07);--info-border: rgba(77,114,168,.2);--row-border: #eeeeea;--row-stripe: #fbfbf9;--modal-overlay: rgba(32,35,32,.42);--modal-shadow: rgba(32,35,32,.18);--dropdown-shadow: rgba(32,35,32,.14);--scrollbar-thumb: #d7d8d2;--scrollbar-thumb-hover: #babdb7;--code-highlight-bg: rgba(166,106,8,.08);--code-highlight-text: #8d5a08;--code-highlight-border: #a66a08;--permission-text: #4d554f;--accent-panel: rgba(101,87,217,.045);--success-border: rgba(47,143,104,.3);--success-bg: rgba(47,143,104,.08);--select-text: #4d72a8;--select-bg: rgba(77,114,168,.09);--select-border: rgba(77,114,168,.24);--update-text: #9a6208;--update-bg: rgba(166,106,8,.08);--update-border: rgba(166,106,8,.24);--insert-text: #2f8f68;--insert-bg: rgba(47,143,104,.08);--insert-border: rgba(47,143,104,.24);--delete-text: #c94d4d;--delete-bg: rgba(201,77,77,.07);--delete-border: rgba(201,77,77,.22);--neutral-text: #667080;--neutral-bg: rgba(102,112,128,.08);--neutral-border: rgba(102,112,128,.24);--pk-text: #9a6208;--pk-bg: rgba(166,106,8,.08);--pk-border: rgba(166,106,8,.24);--fk-text: #667080;--fk-bg: rgba(102,112,128,.08);--fk-border: rgba(102,112,128,.24);--uni-text: #7652ae;--uni-bg: rgba(124,92,191,.08);--uni-border: rgba(124,92,191,.24);--content-padding: 28px;--canvas-max-width: 1520px;--layout-gap: 24px;--line-height-body: 1.55;--line-height-data: 1.65;--line-height-code: 1.85;--radius-sm: 4px;--radius: 6px;--radius-lg: 8px;--font-ui: "Inter", system-ui, -apple-system, sans-serif;--font-data: "JetBrains Mono", "Fira Code", monospace}[data-theme=dark]{--bg-base: #171717;--bg-surface: #222222;--bg-deep: #1c1c1c;--bg-input: #1e1e1e;--bg-hover: rgba(164,155,215,.09);--border: #353535;--border-mid: #4b4b4b;--text: #f1f1ee;--muted: #a6a6a1;--subtle: #777872;--accent: #a49bd7;--success: #78c29c;--danger: #e78383;--warning: #d8b267;--info: #8eabd7;--accent-contrast: #1c1b24;--accent-border: rgba(164,155,215,.38);--accent-weak-border: rgba(164,155,215,.2);--accent-selection-border: rgba(164,155,215,.28);--accent-soft: rgba(164,155,215,.1);--nav-active-bg: rgba(164,155,215,.1);--danger-bg: rgba(231,131,131,.1);--danger-border: rgba(231,131,131,.28);--warning-bg: rgba(216,178,103,.1);--warning-border: rgba(216,178,103,.38);--warning-weak-border: rgba(216,178,103,.3);--info-bg: rgba(142,171,215,.1);--info-border: rgba(142,171,215,.28);--row-border: #303030;--row-stripe: #252525;--modal-overlay: rgba(0,0,0,.64);--modal-shadow: rgba(0,0,0,.55);--dropdown-shadow: rgba(0,0,0,.4);--scrollbar-thumb: #3d3d3d;--scrollbar-thumb-hover: #565656;--code-highlight-bg: rgba(216,178,103,.1);--code-highlight-text: #e5c786;--code-highlight-border: #d8b267;--permission-text: #d9d7d0;--accent-panel: rgba(164,155,215,.07);--success-border: rgba(120,194,156,.32);--success-bg: rgba(120,194,156,.14);--select-text: #a7bde6;--select-bg: rgba(142,171,215,.12);--select-border: rgba(142,171,215,.3);--update-text: #e5c786;--update-bg: rgba(216,178,103,.1);--update-border: rgba(216,178,103,.3);--insert-text: #83cba8;--insert-bg: rgba(120,194,156,.11);--insert-border: rgba(120,194,156,.3);--delete-text: #e78383;--delete-bg: rgba(231,131,131,.1);--delete-border: rgba(231,131,131,.28);--neutral-text: #b0b5ba;--neutral-bg: rgba(176,181,186,.1);--neutral-border: rgba(176,181,186,.26);--pk-text: #e5c786;--pk-bg: rgba(216,178,103,.1);--pk-border: rgba(216,178,103,.3);--fk-text: #b0b5ba;--fk-bg: rgba(176,181,186,.1);--fk-border: rgba(176,181,186,.26);--uni-text: #b9adeb;--uni-bg: rgba(185,173,235,.11);--uni-border: rgba(185,173,235,.3)}html,body,#app{height:100%}body{background:var(--bg-base);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:var(--line-height-body);-webkit-font-smoothing:antialiased;transition:background-color .18s ease,color .18s ease}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.text-muted{color:var(--muted)}.text-accent{color:var(--accent)}.font-mono{font-family:var(--font-data)}.modal-enter-active{transition:opacity .18s ease-out}.modal-leave-active{transition:opacity .14s ease-in}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-active .modal-panel{animation:panel-in .2s ease-out}@keyframes panel-in{0%{transform:scale(.98) translateY(6px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.drop-enter-active{transition:opacity .1s ease-out,transform .1s ease-out}.drop-leave-active{transition:opacity 80ms ease-in,transform 80ms ease-in}.drop-enter-from,.drop-leave-to{opacity:0;transform:translateY(-4px)}
