:root,[data-theme=dark]{--cat-crust:#11111b;--cat-mantle:#181825;--cat-base:#1e1e2e;--cat-surface0:#313244;--cat-surface1:#45475a;--cat-surface2:#585b70;--cat-overlay0:#6c7086;--cat-overlay1:#7f849c;--cat-subtext0:#a6adc8;--cat-subtext1:#bac2de;--cat-text:#cdd6f4;--cat-lavender:#b4befe;--cat-blue:#89b4fa;--cat-sapphire:#74c7ec;--cat-sky:#89dceb;--cat-teal:#94e2d5;--cat-green:#a6e3a1;--cat-yellow:#f9e2af;--cat-peach:#fab387;--cat-maroon:#eba0ac;--cat-red:#f38ba8;--cat-mauve:#cba6f7;--cat-pink:#f5c2e7;--cat-rosewater:#f5e0dc;--bg-base:var(--cat-crust);--bg-surface:var(--cat-mantle);--bg-elevated:var(--cat-base);--bg-input:var(--cat-surface0);--bg-hover:var(--cat-surface0);--bg-pressed:var(--cat-surface1);--text-primary:var(--cat-text);--text-secondary:var(--cat-subtext0);--text-muted:var(--cat-overlay0);--text-on-accent:var(--cat-base);--border-subtle:#2a2a3c;--border:var(--cat-surface0);--border-strong:var(--cat-surface1);--accent-primary:var(--cat-blue);--accent-primary-hover:var(--cat-sapphire);--accent-success:var(--cat-green);--accent-warning:var(--cat-yellow);--accent-danger:var(--cat-red);--accent-info:var(--cat-sky);--accent-teal:var(--cat-teal);--accent-mauve:var(--cat-mauve);--accent-peach:var(--cat-peach);--accent-lavender:var(--cat-lavender);--tint-primary:#89b4fa22;--tint-primary-strong:#89b4fa33;--tint-success:#a6e3a120;--tint-warning:#f9e2af22;--tint-danger:#f38ba822;--tint-info:#89dceb22;--tint-teal:#94e2d522;--tint-mauve:#cba6f722;--tint-peach:#fab38722;--tint-muted:#6c708622;--ring-focus:#89b4fa33;--overlay-scrim:#00000080;--shadow-modal:0 10px 30px #00000080}[data-theme=light]{--cat-crust:#dce0e8;--cat-mantle:#e6e9ef;--cat-base:#eff1f5;--cat-surface0:#ccd0da;--cat-surface1:#bcc0cc;--cat-surface2:#acb0be;--cat-overlay0:#9ca0b0;--cat-overlay1:#8c8fa1;--cat-subtext0:#6c6f85;--cat-subtext1:#5c5f77;--cat-text:#4c4f69;--cat-lavender:#7287fd;--cat-blue:#1e66f5;--cat-sapphire:#209fb5;--cat-sky:#04a5e5;--cat-teal:#179299;--cat-green:#40a02b;--cat-yellow:#df8e1d;--cat-peach:#fe640b;--cat-maroon:#e64553;--cat-red:#d20f39;--cat-mauve:#8839ef;--cat-pink:#ea76cb;--cat-rosewater:#dc8a78;--bg-base:var(--cat-base);--bg-surface:var(--cat-mantle);--bg-elevated:#fff;--bg-input:#fff;--bg-hover:var(--cat-mantle);--bg-pressed:var(--cat-surface0);--text-primary:var(--cat-text);--text-secondary:var(--cat-subtext1);--text-muted:var(--cat-overlay1);--text-on-accent:#fff;--border-subtle:var(--cat-surface0);--border:var(--cat-surface1);--border-strong:var(--cat-overlay0);--accent-primary:var(--cat-blue);--accent-primary-hover:var(--cat-sapphire);--accent-success:var(--cat-green);--accent-warning:var(--cat-yellow);--accent-danger:var(--cat-red);--accent-info:var(--cat-sky);--accent-teal:var(--cat-teal);--accent-mauve:var(--cat-mauve);--accent-peach:var(--cat-peach);--accent-lavender:var(--cat-lavender);--tint-primary:#1e66f522;--tint-primary-strong:#1e66f533;--tint-success:#40a02b22;--tint-warning:#df8e1d22;--tint-danger:#d20f3922;--tint-info:#04a5e522;--tint-teal:#17929922;--tint-mauve:#8839ef22;--tint-peach:#fe640b22;--tint-muted:#9ca0b022;--ring-focus:#1e66f540;--overlay-scrim:#4c4f6959;--shadow-modal:0 10px 30px #1e1e2e26}html,body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100vh;display:flex}.header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.header-left{align-items:center;gap:16px;display:flex}.header-right{align-items:center;gap:12px;display:flex}.logo{color:var(--accent-primary);letter-spacing:-.5px;cursor:pointer;font-size:16px;font-weight:700}.logo:hover{color:var(--accent-primary-hover)}.notebook-name{color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:14px}.notebook-name:hover{background:var(--bg-hover)}.name-input{background:var(--bg-input);border:1px solid var(--accent-primary);color:var(--text-primary);border-radius:4px;outline:none;padding:2px 6px;font-size:14px}.connection{color:var(--text-muted);font-size:12px}.connection.connected{color:var(--accent-success)}.error-banner{background:var(--tint-danger);border-bottom:1px solid var(--accent-danger);color:var(--accent-danger);align-items:center;padding:8px 16px;font-size:13px;display:flex}.btn{background:var(--accent-primary);color:var(--text-on-accent);cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600}.btn:hover{background:var(--accent-primary-hover)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-input);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-pressed)}.workspace{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.main{flex:1;min-height:0;display:flex;overflow:hidden}.cells-panel{flex:1;min-width:0;padding:16px;overflow-y:auto}.dag-drawer-resizer{cursor:row-resize;touch-action:none;flex-shrink:0;height:8px;position:relative}.dag-drawer-resizer:before{content:"";background:var(--border-subtle);height:1px;position:absolute;top:50%;left:16px;right:16px;transform:translateY(-50%)}.dag-drawer-resizer:hover:before{background:var(--accent-primary)}.dag-drawer{height:var(--dag-drawer-height,320px);background:var(--bg-surface);border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.dag-drawer.collapsed{height:32px}.dag-drawer-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:6px 16px;font-size:11px;font-weight:600;display:flex}.dag-drawer.collapsed .dag-drawer-header{border-bottom:none}.dag-drawer-header:hover{color:var(--text-primary)}.dag-drawer-hint{text-transform:none;letter-spacing:0;color:var(--text-muted);font-size:10px;font-weight:500}.dag-drawer-body{flex:1;min-height:0;display:flex;overflow:hidden}.dag-drawer-graph{flex-direction:column;flex:1;min-width:0;padding:8px 8px 12px 16px;display:flex;overflow:hidden}.dag-drawer-profiling{border-left:1px solid var(--border-subtle);flex-shrink:0;width:360px;padding:12px 16px;overflow-y:auto}.sidebar-resizer{cursor:col-resize;touch-action:none;flex-shrink:0;width:12px;position:relative}.sidebar-resizer:before{content:"";background:var(--border-subtle);width:1px;position:absolute;top:16px;bottom:16px;left:50%;transform:translate(-50%)}.sidebar-resizer:hover:before{background:var(--accent-primary)}.sidebar{width:var(--sidebar-width);flex-shrink:0;min-width:280px;max-width:560px;padding:16px 16px 16px 4px;overflow-y:auto}.add-cell-btn{border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;margin-top:4px;padding:12px;font-size:13px}.add-cell-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.add-cell-btn:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{background:var(--overlay-scrim);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--bg-surface);border:1px solid var(--border);min-width:400px;box-shadow:var(--shadow-modal);border-radius:8px;padding:24px}.modal-dialog h2{color:var(--text-primary);margin-bottom:16px;font-size:18px}.modal-input{background:var(--bg-input);border:1px solid var(--border-strong);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:14px}.modal-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ring-focus);outline:none}.modal-actions{justify-content:flex-end;gap:8px;display:flex}body.resizing-sidebar{cursor:col-resize;-webkit-user-select:none;user-select:none}@media (width<=980px){.main{flex-direction:column}.cells-panel{padding-bottom:8px}.sidebar-resizer{display:none}.sidebar{border-top:1px solid var(--border-subtle);width:auto;min-width:0;max-width:none;padding:12px 16px 16px}}.import-report-backdrop[data-v-e23cfd2c]{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.import-report-modal[data-v-e23cfd2c]{background:var(--bg-surface,#fff);color:var(--text-primary,#111);border-radius:8px;flex-direction:column;width:100%;max-width:720px;max-height:85vh;display:flex;box-shadow:0 16px 48px #00000040}.import-report-header[data-v-e23cfd2c]{border-bottom:1px solid var(--border-color,#e5e7eb);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.import-report-header h2[data-v-e23cfd2c]{margin:0;font-size:1.15rem;font-weight:600}.import-report-close[data-v-e23cfd2c]{cursor:pointer;color:var(--text-secondary,#6b7280);background:0 0;border:0;padding:0 .25rem;font-size:1.4rem;line-height:1}.import-report-close[data-v-e23cfd2c]:hover{color:var(--text-primary,#111)}.import-report-summary[data-v-e23cfd2c]{background:var(--bg-muted,#f9fafb);border-bottom:1px solid var(--border-color,#e5e7eb);flex-wrap:wrap;gap:.6rem 1rem;padding:.75rem 1.25rem;font-size:.9rem;display:flex}.import-report-stat strong[data-v-e23cfd2c]{font-weight:600}.import-report-stat-warn[data-v-e23cfd2c]{color:var(--text-warning,#b45309)}.import-report-body[data-v-e23cfd2c]{flex:1;padding:1rem 1.25rem;font-size:.9rem;line-height:1.5;overflow-y:auto}.import-report-body[data-v-e23cfd2c] h1,.import-report-body[data-v-e23cfd2c] h2,.import-report-body[data-v-e23cfd2c] h3{margin-top:1.25em;margin-bottom:.5em}.import-report-body[data-v-e23cfd2c] h1{font-size:1.15rem}.import-report-body[data-v-e23cfd2c] h2{font-size:1.05rem}.import-report-body[data-v-e23cfd2c] h3{font-size:.95rem}.import-report-body[data-v-e23cfd2c] ul{margin:.5em 0;padding-left:1.5em}.import-report-body[data-v-e23cfd2c] code{background:var(--bg-muted,#f3f4f6);border-radius:3px;padding:.1em .35em;font-size:.85em}.import-report-actions[data-v-e23cfd2c]{border-top:1px solid var(--border-color,#e5e7eb);justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem;display:flex}.theme-toggle[data-v-42f06081]{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:4px 8px;font-size:14px;line-height:1;transition:color .12s,border-color .12s;display:inline-flex}.theme-toggle[data-v-42f06081]:hover{color:var(--text-primary);border-color:var(--accent-primary)}.theme-toggle[data-v-42f06081]:focus-visible{box-shadow:0 0 0 2px var(--ring-focus);outline:none}.theme-toggle-icon[data-v-42f06081]{text-align:center;width:16px;font-size:14px}.home[data-v-4f4e967d]{justify-content:center;min-height:100vh;padding:80px 24px 40px;display:flex}.home-container[data-v-4f4e967d]{width:100%;max-width:640px}.home-header[data-v-4f4e967d]{text-align:center;margin-bottom:48px}.home-theme-slot[data-v-4f4e967d]{z-index:10;position:fixed;top:16px;right:16px}.logo[data-v-4f4e967d]{color:var(--accent-primary);letter-spacing:-.5px;font-size:28px;font-weight:700}.subtitle[data-v-4f4e967d]{color:var(--text-muted);margin-left:8px;font-size:28px;font-weight:300}.error-banner[data-v-4f4e967d]{background:var(--tint-danger);border:1px solid var(--accent-danger);color:var(--accent-danger);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:10px 16px;font-size:13px;display:flex}.error-copy[data-v-4f4e967d]{flex-direction:column;gap:6px;min-width:0;display:flex}.btn-dismiss[data-v-4f4e967d]{color:var(--accent-danger);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.btn-inline[data-v-4f4e967d]{color:var(--accent-warning);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;font-weight:600}.btn-inline[data-v-4f4e967d]:hover{text-decoration:underline}.actions[data-v-4f4e967d]{gap:16px;margin-bottom:32px;display:flex}.action-card[data-v-4f4e967d]{background:var(--bg-surface);border:1px solid var(--border);text-align:center;cursor:pointer;border-radius:12px;flex:1;padding:24px;transition:border-color .15s,background .15s}.action-card[data-v-4f4e967d]:hover{border-color:var(--accent-primary);background:var(--bg-elevated)}.action-icon[data-v-4f4e967d]{margin-bottom:8px;font-size:28px}.action-label[data-v-4f4e967d]{color:var(--text-primary);font-size:14px;font-weight:600}.action-hint[data-v-4f4e967d]{color:var(--text-secondary);margin-top:4px;font-size:11px}.action-card-disabled[data-v-4f4e967d]{pointer-events:none;opacity:.6}.drag-overlay[data-v-4f4e967d]{z-index:999;pointer-events:none;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.drag-overlay-card[data-v-4f4e967d]{background:var(--bg-surface);border:2px dashed var(--accent,#3b82f6);text-align:center;border-radius:16px;padding:2.5rem 3rem;box-shadow:0 16px 48px #0000004d}.drag-overlay-icon[data-v-4f4e967d]{margin-bottom:12px;font-size:56px}.drag-overlay-title[data-v-4f4e967d]{color:var(--text-primary);margin-bottom:6px;font-size:1.25rem;font-weight:600}.drag-overlay-hint[data-v-4f4e967d]{color:var(--text-secondary);font-size:.85rem}.import-error[data-v-4f4e967d]{background:var(--bg-warning,#fef3c7);border:1px solid var(--border-warning,#fde68a);color:var(--text-warning,#92400e);border-radius:6px;justify-content:space-between;align-items:center;margin:12px 0;padding:.65rem .9rem;font-size:.9rem;display:flex}.import-error-dismiss[data-v-4f4e967d]{cursor:pointer;color:inherit;background:0 0;border:0;padding:0 .25rem;font-size:1.2rem;line-height:1}.form-card[data-v-4f4e967d]{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;margin-bottom:24px;padding:24px}.form-card h3[data-v-4f4e967d]{color:var(--text-primary);margin-bottom:16px;font-size:16px}.form-label[data-v-4f4e967d]{color:var(--text-secondary);margin-bottom:12px;font-size:12px;display:block}.form-input[data-v-4f4e967d]{background:var(--bg-input);border:1px solid var(--border-strong);width:100%;color:var(--text-primary);border-radius:6px;margin-top:4px;padding:8px 12px;font-size:14px;display:block}.discovery-root[data-v-4f4e967d]{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.discovery-root code[data-v-4f4e967d]{color:var(--text-primary);font-family:JetBrains Mono,Fira Code,monospace}.discovery-refresh[data-v-4f4e967d]{border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:12px}.discovery-refresh[data-v-4f4e967d]:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.discovery-refresh[data-v-4f4e967d]:disabled{opacity:.4;cursor:default}.discovery-status[data-v-4f4e967d],.discovery-error[data-v-4f4e967d]{color:var(--text-secondary);padding:12px 4px;font-size:12px}.discovery-error[data-v-4f4e967d]{color:var(--accent-danger)}.discovery-list[data-v-4f4e967d]{border:1px solid var(--border);border-radius:6px;max-height:320px;margin:0 0 12px;padding:0;list-style:none;overflow-y:auto}.discovery-item[data-v-4f4e967d]{cursor:pointer;border-bottom:1px solid var(--border);padding:8px 12px}.discovery-item[data-v-4f4e967d]:last-child{border-bottom:none}.discovery-item[data-v-4f4e967d]:hover:not(.disabled){background:var(--bg-hover)}.discovery-item.disabled[data-v-4f4e967d]{cursor:default;opacity:.5}.discovery-name[data-v-4f4e967d]{color:var(--text-primary);font-size:13px;font-weight:500}.discovery-path[data-v-4f4e967d]{color:var(--text-muted);margin-top:2px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.form-input[data-v-4f4e967d]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ring-focus);outline:none}.form-actions[data-v-4f4e967d]{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.form-help[data-v-4f4e967d]{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}.section-title[data-v-4f4e967d]{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:13px}.recent-list[data-v-4f4e967d]{flex-direction:column;gap:2px;display:flex}.recent-item[data-v-4f4e967d]{background:var(--bg-surface);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;transition:border-color .15s,background .15s;display:flex}.recent-item[data-v-4f4e967d]:hover{border-color:var(--border);background:var(--bg-elevated)}.recent-info[data-v-4f4e967d]{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-name[data-v-4f4e967d]{color:var(--text-primary);font-size:14px;font-weight:500}.recent-path[data-v-4f4e967d]{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.recent-time[data-v-4f4e967d]{color:var(--text-muted);flex-shrink:0;font-size:12px}.recent-meta[data-v-4f4e967d]{flex-shrink:0;align-items:center;gap:12px;display:flex}.recent-remove[data-v-4f4e967d]{border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-size:12px;transition:border-color .15s,color .15s,background .15s}.recent-remove[data-v-4f4e967d]:hover{background:var(--bg-elevated);border-color:var(--accent-danger);color:var(--accent-danger)}.loading-overlay[data-v-4f4e967d]{background:var(--overlay-scrim);z-index:1000;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;font-size:14px;display:flex;position:fixed;inset:0}.spinner[data-v-4f4e967d]{border:3px solid var(--border);border-top-color:var(--accent-primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin-4f4e967d}@keyframes spin-4f4e967d{to{transform:rotate(360deg)}}
