.session-chip[data-v-368e5733]{position:fixed;top:8px;right:12px;z-index:1000;display:flex;align-items:center;gap:8px;padding:4px 8px;background:#18181be6;border:1px solid rgba(255,255,255,.12);border-radius:8px;font-size:12px;color:#e4e4e7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.session-user[data-v-368e5733]{display:flex;align-items:center;gap:6px}.session-badge[data-v-368e5733]{background:#6366f1;color:#fff;font-size:9px;font-weight:700;text-transform:uppercase;padding:1px 5px;border-radius:4px}.session-link[data-v-368e5733]{color:#818cf8;text-decoration:none;font-size:12px}.session-link[data-v-368e5733]:hover{text-decoration:underline}.session-logout[data-v-368e5733]{background:transparent;border:1px solid rgba(255,255,255,.18);color:#e4e4e7;border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer}.session-logout[data-v-368e5733]:hover{border-color:#f87171;color:#f87171}.omni{flex:1;min-width:0;max-width:340px;margin:0 12px}.omni-bar{display:flex;align-items:center;gap:7px;height:32px;padding:0 9px;background:#1a202c;border:1px solid transparent;border-radius:6px;transition:.15s}.omni-bar:focus-within,.omni-bar[data-open=true]{border-color:#2bb3e3;box-shadow:0 0 0 3px #2bb3e329}.omni-ic{color:#5e6e86;flex:none}.omni-bar:focus-within .omni-ic{color:#2bb3e3}.omni-bar input{flex:1;background:none;border:none;outline:none;color:#e8eef7;font-size:12.5px;font-family:Inter,sans-serif;min-width:0}.omni-bar input::placeholder{color:#475468}.omni-clear{width:18px;height:18px;display:grid;place-items:center;border-radius:5px;color:#5e6e86;background:none;border:none;cursor:pointer}.omni-clear:hover{background:#2d3748;color:#e8eef7}.omni-kbd{font-family:JetBrains Mono,ui-monospace,monospace;font-size:9.5px;padding:1px 5px;border-radius:5px;background:#202a3a;border:1px solid rgba(255,255,255,.11);color:#5e6e86;flex:none;white-space:nowrap}.nds-dropdown{position:fixed;z-index:2100;display:flex;flex-direction:column;max-height:min(520px,calc(100vh - 120px));background:linear-gradient(180deg,#131a27,#0f1520);border:1px solid rgba(255,255,255,.11);border-radius:13px;box-shadow:0 24px 70px #0000009e;overflow:hidden;animation:nds-in .12s ease;font-family:Inter,system-ui,-apple-system,sans-serif;color:#e8eef7}@keyframes nds-in{0%{opacity:0;transform:translateY(-4px)}}.nds-dropdown button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.nds-scroll{flex:1;overflow-y:auto;padding:6px}.nds-scroll::-webkit-scrollbar{width:9px}.nds-scroll::-webkit-scrollbar-thumb{background:#ffffff1c;border-radius:6px;border:2px solid #10161f}.nds-group{margin-bottom:4px}.nds-ghead{display:flex;align-items:center;gap:6px;padding:7px 8px 5px;color:var(--c)}.nds-gname{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.nds-gcount{font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;font-weight:600;padding:0 6px;border-radius:20px;background:color-mix(in srgb,var(--c) 16%,transparent)}.nds-row{width:100%;display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:8px;text-align:left;position:relative;transition:.1s;cursor:grab}.nds-row[data-active=true]{background:color-mix(in srgb,var(--c) 13%,#1a2230);box-shadow:inset 2.5px 0 0 var(--c)}.nds-dropdown .nd-sig{display:inline-flex;align-items:center;gap:3px;flex:none}.nds-dropdown .sig-side{display:flex;flex-direction:column;gap:2px;align-items:center}.nds-dropdown .sig-dot{width:4.5px;height:4.5px;border-radius:50%}.nds-dropdown .sig-dot.empty{background:transparent;box-shadow:inset 0 0 0 1px #ffffff29}.nds-dropdown .sig-body{width:13px;height:13px;border-radius:4px;border:1.5px solid rgba(255,255,255,.16);background:#ffffff0a}.nds-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.nds-label{font-size:13px;font-weight:500;font-family:JetBrains Mono,ui-monospace,monospace;color:#e8eef7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nds-label mark.hl{background:color-mix(in srgb,var(--c) 38%,transparent);color:#fff;border-radius:3px;padding:0 1px}.nds-path{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:#5e6e86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nds-go{flex:none;color:var(--c);font-size:13px;opacity:0;transition:.1s}.nds-row[data-active=true] .nds-go{opacity:1}.nds-more{padding:8px 10px;font-size:11px;color:#5e6e86;font-style:italic}.nds-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px;border-top:1px solid rgba(255,255,255,.065);background:#0f1520cc;font-size:10.5px;color:#5e6e86;flex:none}.nds-keys{display:inline-flex;gap:4px}.nds-foot kbd{font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;padding:1px 5px;border-radius:5px;background:#202a3a;border:1px solid rgba(255,255,255,.11);color:#97a5ba}.nds-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 18px;color:#5e6e86;font-size:12.5px}.nds-empty svg{color:#475468}.nds-empty b{color:#97a5ba}.view-toggle[data-v-37bf523a]{display:inline-flex;align-items:center;gap:2px;padding:3px;background:#00000047;border:1px solid rgba(255,255,255,.08);border-radius:8px}.view-toggle button[data-v-37bf523a]{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border:none;background:none;color:#94a3b8;font-size:12px;font-family:Inter,system-ui,sans-serif;border-radius:6px;cursor:pointer;transition:.15s}.view-toggle button i[data-v-37bf523a]{font-size:12px}.view-toggle button[data-v-37bf523a]:hover{color:#fff}.view-toggle button.on[data-v-37bf523a]{background:#22d3ee;color:#1a202c;font-weight:600}.menu-bar[data-v-7f56df5d]{z-index:1101}.flow-info-dropdown[data-v-7f56df5d]{position:relative;display:flex;align-items:center;gap:8px}.menu-file-actions[data-v-7f56df5d]{display:flex;align-items:center;gap:8px}.menu-separator[data-v-7f56df5d]{display:inline-block;width:1px;height:24px;background:#1a202c;flex-shrink:0}.sidebar-toggle[data-v-7f56df5d]{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;min-width:30px;font-size:13px;background:#1a202c;color:#94a3b8;border:none;border-radius:7px;cursor:pointer;transition:all .2s}.sidebar-toggle[data-v-7f56df5d]:hover{background:#2d3748;color:#fff}.btn-menu[data-v-7f56df5d]{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:30px;background:#1a202c;color:#94a3b8;border:none;border-radius:7px;cursor:pointer;font-size:12px;font-family:Inter,sans-serif;white-space:nowrap;transition:all .2s}.btn-menu i[data-v-7f56df5d]{font-size:12.5px}.btn-menu[data-v-7f56df5d]:hover{background:#2d3748;color:#fff}.btn-menu.active[data-v-7f56df5d]{color:#22d3ee;background:#22d3ee1a}.menu-buttons .btn-menu[data-v-7f56df5d]{box-sizing:border-box;height:30px;padding:0 12px;background:#1a202c;color:#94a3b8;border:none;border-radius:7px}.menu-buttons .btn-menu[data-v-7f56df5d]:hover{background:#2d3748;border-color:transparent;color:#fff}.menu-buttons .btn-menu.active[data-v-7f56df5d]{color:#22d3ee;background:#22d3ee1f}.split-btn[data-v-7f56df5d]{position:relative;display:inline-flex;align-items:stretch}.split-main[data-v-7f56df5d]{border-radius:7px 0 0 7px}.split-caret[data-v-7f56df5d]{position:relative;min-width:24px;width:24px;padding:0;justify-content:center;border-radius:0 7px 7px 0}.menu-buttons .split-main[data-v-7f56df5d]{border-radius:7px 0 0 7px}.menu-buttons .split-caret[data-v-7f56df5d]{width:24px;min-width:24px;padding:0;border-radius:0 7px 7px 0}.split-caret[data-v-7f56df5d]:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:1px;background:#ffffff17}.btn-save.split-caret[data-v-7f56df5d]:before{background:#00000038}.split-caret i[data-v-7f56df5d]{font-size:10px;transition:transform .18s ease}.split-btn.open .split-caret i[data-v-7f56df5d]{transform:rotate(180deg)}.split-menu[data-v-7f56df5d]{position:absolute;top:calc(100% + 6px);left:0;z-index:60;display:flex;flex-direction:column;gap:2px;min-width:196px;padding:6px;background:#1a202c;border:1px solid #2a2a4a;border-radius:9px;box-shadow:0 14px 34px #00000080}.split-menu--right[data-v-7f56df5d]{left:auto;right:0}.split-item[data-v-7f56df5d]{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:none;border-radius:6px;color:#cbd5e1;font-size:12.5px;font-family:Inter,sans-serif;text-align:left;white-space:nowrap;cursor:pointer;transition:background .14s,color .14s}.split-item i[data-v-7f56df5d]{width:15px;font-size:12px;text-align:center;color:#5e6e86}.split-item[data-v-7f56df5d]:hover{background:#2d3748;color:#fff}.split-item:hover i[data-v-7f56df5d]{color:#22d3ee}.btn-save[data-v-7f56df5d]{background:#22d3ee;color:#0f1722;font-weight:600}.btn-save[data-v-7f56df5d]:hover{background:#06b6d4;color:#0f1722}.menu-buttons .btn-run[data-v-7f56df5d]{background:#22c55e;color:#0f1722;font-weight:600}.menu-buttons .btn-run[data-v-7f56df5d]:hover:not(:disabled){background:#16a34a;color:#0f1722}.menu-buttons .btn-run.running[data-v-7f56df5d],.menu-buttons .btn-run[data-v-7f56df5d]:disabled{opacity:.5;cursor:not-allowed}#sidebar-left.unified-sidebar{--sb: #121824;--sb2: #0f1520;--surf: #19212e;--surf2: #202a3a;--surfh: #212d3f;--line: rgba(255, 255, 255, .065);--line2: rgba(255, 255, 255, .11);--line3: rgba(255, 255, 255, .16);--t1: #e8eef7;--t2: #97a5ba;--t3: #5e6e86;--t4: #475468;--sans: "Inter", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "Courier New", monospace;display:flex;flex-direction:row;overflow:hidden;padding:0;background:var(--sb);font-family:var(--sans)}.unified-sidebar mark.hl{background:color-mix(in srgb,var(--c, #2bb3e3) 38%,transparent);color:#fff;border-radius:3px;padding:0 1px}.unified-sidebar button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.unified-sidebar .sb-rail{width:56px;flex:none;background:var(--sb2);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0}.unified-sidebar .rail-btn{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:var(--t3);position:relative;transition:.14s}.unified-sidebar .rail-btn:hover{background:var(--surf);color:var(--t1)}.unified-sidebar .rail-btn[data-active=true]{background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c)}.unified-sidebar .rail-dot{position:absolute;left:-8px;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:20px;border-radius:3px;background:var(--c);transition:.18s}.unified-sidebar .rail-btn[data-active=true] .rail-dot{transform:translateY(-50%) scaleY(1)}.unified-sidebar .rail-sep{width:26px;height:1px;background:var(--line2);margin:2px 0;flex:none}.unified-sidebar .sb-panel{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;transition:opacity .18s ease}.unified-sidebar .sb-panel::-webkit-scrollbar{width:9px}.unified-sidebar .sb-panel::-webkit-scrollbar-thumb{background:var(--line2);border-radius:6px;border:2px solid var(--sb)}.unified-sidebar .sb-panel::-webkit-scrollbar-thumb:hover{background:var(--line3)}.unified-sidebar .panel-head{display:flex;align-items:center;gap:11px;padding:14px 14px 13px;border-bottom:1px solid color-mix(in srgb,var(--c) 25%,transparent);flex:none}.unified-sidebar .panel-tile{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c)}.unified-sidebar .panel-text{flex:1;min-width:0}.unified-sidebar .panel-title{font-size:15px;font-weight:600;color:var(--t1)}.unified-sidebar .panel-desc{font-size:11.5px;color:var(--t3);margin-top:2px;text-wrap:pretty}.unified-sidebar .panel-close{width:26px;height:26px;display:grid;place-items:center;border-radius:7px;color:var(--t3);flex:none;align-self:flex-start}.unified-sidebar .panel-close:hover{background:var(--surf);color:var(--t1)}.unified-sidebar .panel-search{padding:13px;flex:none;display:flex;gap:8px}.unified-sidebar .panel-tool{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:9px;background:var(--sb2);border:1px solid var(--line2);color:var(--t3);transition:.14s}.unified-sidebar .panel-tool:hover:not(:disabled){background:var(--surf);color:var(--t1)}.unified-sidebar .panel-tool:disabled{opacity:.4;cursor:default}.unified-sidebar .panel-tool[data-active=true]{background:color-mix(in srgb,var(--c) 16%,transparent);border-color:color-mix(in srgb,var(--c) 40%,transparent);color:var(--c)}.unified-sidebar .searchbar{flex:1;min-width:0;display:flex;align-items:center;gap:9px;height:38px;padding:0 11px;background:var(--sb2);border:1px solid var(--line2);border-radius:9px;transition:.15s}.unified-sidebar .searchbar:focus-within{border-color:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 16%,transparent)}.unified-sidebar .search-ic{color:var(--t3);flex:none}.unified-sidebar .searchbar:focus-within .search-ic{color:var(--c)}.unified-sidebar .searchbar input{flex:1;background:none;border:none;outline:none;color:var(--t1);font-size:13px;font-family:inherit;min-width:0}.unified-sidebar .searchbar input::placeholder{color:var(--t4)}.unified-sidebar .search-clear{width:20px;height:20px;display:grid;place-items:center;border-radius:5px;color:var(--t3)}.unified-sidebar .search-clear:hover{background:var(--surf2);color:var(--t1)}.unified-sidebar .panel-subs{padding:0 11px 24px}.unified-sidebar .sub{margin-bottom:6px}.unified-sidebar .sub-head{width:100%;display:flex;align-items:center;gap:9px;padding:7px 6px;border-radius:7px}.unified-sidebar .sub-head:hover{background:var(--surf)}.unified-sidebar .sub-spine{width:3px;height:13px;border-radius:3px;flex:none;background:var(--c)}.unified-sidebar .sub-label{flex:1;text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-sidebar .count{font-family:var(--mono);font-size:10.5px;font-weight:500;padding:1px 7px;border-radius:20px;flex:none;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}.unified-sidebar .sub-chev{color:var(--t4);transition:.16s;flex:none}.unified-sidebar .sub-chev[data-open=true]{transform:rotate(90deg)}.unified-sidebar .sub-nodes{padding:3px 0 2px}.unified-sidebar .sub-nodes.is-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:6px;padding:4px 1px}.unified-sidebar .sub-nodes.is-grid .sub-hint{grid-column:1 / -1}.unified-sidebar .nd-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:76px;padding:12px 6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--surf);transition:.12s;cursor:grab}.unified-sidebar .nd-tile:hover,.unified-sidebar .nd-tile:focus-visible{background:var(--surfh);border-color:color-mix(in srgb,var(--c) 40%,transparent)}.unified-sidebar .nd-tile:focus-visible{outline:1px solid var(--c);outline-offset:1px}.unified-sidebar .nd-tile .nd-sig{transform:scale(1.25)}.unified-sidebar .tile-label{font-size:10px;font-weight:500;font-family:var(--mono);color:var(--t1);text-align:center;line-height:1.3;width:100%;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.unified-sidebar .tile-fav{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:20px;height:20px;border-radius:6px;color:var(--t4);opacity:0;transition:.12s;cursor:pointer}.unified-sidebar .nd-tile:hover .tile-fav{opacity:1}.unified-sidebar .tile-fav:hover{background:var(--surf2);color:#fbbf24}.unified-sidebar .tile-fav[data-fav=true]{opacity:1;color:#fbbf24}.unified-sidebar .tile-fav[data-fav=true] svg{fill:currentColor}.unified-sidebar .nd-tile.flash{animation:nd-flash 1.6s ease}.unified-sidebar .nd-row{width:100%;display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;transition:.12s;text-align:left;cursor:grab}.unified-sidebar .nd-row:hover,.unified-sidebar .nd-row:focus-visible{background:var(--surfh)}.unified-sidebar .nd-row:focus-visible{outline:1px solid var(--c)}.unified-sidebar .nd-grip{color:var(--t4);opacity:0;transition:.12s;flex:none;margin:0 -3px;display:grid;place-items:center}.unified-sidebar .nd-row:hover .nd-grip{opacity:1}.unified-sidebar .nd-fav{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:6px;color:var(--t4);opacity:0;transition:.12s;cursor:pointer}.unified-sidebar .nd-row:hover .nd-fav{opacity:1}.unified-sidebar .nd-fav:hover{background:var(--surf2);color:#fbbf24}.unified-sidebar .nd-fav[data-fav=true]{opacity:1;color:#fbbf24}.unified-sidebar .nd-fav[data-fav=true] svg{fill:currentColor}.unified-sidebar .sub-hint{padding:8px 9px;font-size:11.5px;color:var(--t4);font-style:italic;line-height:1.45;text-wrap:pretty}.unified-sidebar .nd-sig{display:inline-flex;align-items:center;gap:3px;flex:none}.unified-sidebar .sig-side{display:flex;flex-direction:column;gap:2px;align-items:center}.unified-sidebar .sig-dot{width:4.5px;height:4.5px;border-radius:50%}.unified-sidebar .sig-dot.empty{background:transparent;box-shadow:inset 0 0 0 1px var(--line3)}.unified-sidebar .sig-body{width:13px;height:13px;border-radius:4px;border:1.5px solid color-mix(in srgb,var(--c) 40%,transparent);background:#ffffff0a}.unified-sidebar .nd-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}.unified-sidebar .nd-label{font-size:13px;font-weight:500;font-family:var(--mono);color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-sidebar .nd-desc{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-sidebar .sb-loading{padding:28px 16px;color:var(--t3);font-size:12px;text-align:center}.unified-sidebar .sb-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:40px 20px;color:var(--t3);font-size:12.5px}.unified-sidebar .sb-empty svg{color:var(--t4);margin-bottom:4px}.unified-sidebar .sb-empty b{color:var(--t2)}.unified-sidebar .sb-empty span{font-size:12px;color:var(--t4)}body.nd-dragging *{cursor:grabbing!important}.unified-sidebar .nd-row.flash{animation:nd-flash 1.6s ease}@keyframes nd-flash{0%,55%{background:color-mix(in srgb,var(--c) 22%,transparent);box-shadow:inset 2.5px 0 0 var(--c)}to{background:transparent}}.ndp-flyout{position:fixed;z-index:2000;width:290px;background:linear-gradient(180deg,#1b2330,#161d28);border:1px solid rgba(255,255,255,.11);border-radius:13px;padding:14px;box-shadow:0 24px 70px #0000009e;animation:ndp-fly .14s ease;font-family:Inter,system-ui,-apple-system,sans-serif;color:#e8eef7}.ndp-flyout:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:3px;background:var(--c)}@keyframes ndp-fly{0%{opacity:0;transform:translate(-5px)}}.ndp-head{margin-bottom:8px;padding-left:6px}.ndp-cat{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--c)}.ndp-title{font-size:16px;font-weight:600;padding-left:6px;padding-right:6px;letter-spacing:-.01em;font-family:JetBrains Mono,ui-monospace,monospace;overflow-wrap:anywhere;word-break:break-word}.ndp-desc{padding-left:6px;font-size:12.5px;line-height:1.5;color:#97a5ba;margin:10px 0;text-wrap:pretty}.ndp-io{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 6px;border-top:1px solid rgba(255,255,255,.065);border-bottom:1px solid rgba(255,255,255,.065);margin-top:10px}.ndp-iolabel{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#5e6e86;margin-bottom:6px;font-weight:600}.ndp-port{display:flex;align-items:center;gap:7px;padding:3px 0}.ndp-port i{width:8px;height:8px;border-radius:50%;flex:none}.ndp-pname{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;color:#e8eef7}.ndp-ptype{font-size:10px;color:#5e6e86}.ndp-none{font-size:11px;color:#475468;font-style:italic}.ndp-foot{display:flex;align-items:center;gap:6px;font-size:11px;color:#5e6e86;padding:9px 6px 0}body.bm-lock{overflow:hidden}.bm-overlay[data-v-c0efbd62]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;background:#080a1499;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.bm-dialog[data-v-c0efbd62]{--bm-accent: #667eea;width:100%;max-width:600px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;background:#1a1a2e;color:#e2e8f0;border:1px solid #2a2a4a;border-radius:14px;box-shadow:0 24px 70px #0000008c;font-family:Inter,system-ui,-apple-system,sans-serif}.bm-dialog.bm-sm[data-v-c0efbd62]{max-width:440px}.bm-dialog.bm-md[data-v-c0efbd62]{max-width:600px}.bm-dialog.bm-lg[data-v-c0efbd62]{max-width:900px}.bm-dialog.bm-xl[data-v-c0efbd62]{max-width:1280px}.bm-header[data-v-c0efbd62]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:16px 20px;background:#16213e;border-bottom:1px solid #2a2a4a}.bm-title[data-v-c0efbd62]{display:flex;align-items:center;gap:10px;margin:0;font-size:17px;font-weight:600;color:#e8eef7}.bm-title i[data-v-c0efbd62]{color:var(--bm-accent);font-size:15px}.bm-close[data-v-c0efbd62]{flex:none;width:32px;height:32px;display:grid;place-items:center;border:none;background:none;border-radius:8px;font-size:26px;line-height:1;color:#a0aec0;cursor:pointer;transition:.15s}.bm-close[data-v-c0efbd62]:hover{background:#2a2a4a;color:#e8eef7}.bm-body[data-v-c0efbd62]{flex:1;min-height:0;overflow-y:auto;padding:20px}.bm-dialog.bm-fill .bm-body[data-v-c0efbd62]{padding:0;overflow:hidden}.bm-body[data-v-c0efbd62]::-webkit-scrollbar{width:10px}.bm-body[data-v-c0efbd62]::-webkit-scrollbar-thumb{background:#2a2a4a;border-radius:6px;border:2px solid #1a1a2e}.bm-body[data-v-c0efbd62]::-webkit-scrollbar-thumb:hover{background:#3a3a5a}.bm-footer[data-v-c0efbd62]{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;background:#16213e;border-top:1px solid #2a2a4a}.bm-enter-active[data-v-c0efbd62],.bm-leave-active[data-v-c0efbd62]{transition:opacity .2s ease}.bm-enter-active .bm-dialog[data-v-c0efbd62],.bm-leave-active .bm-dialog[data-v-c0efbd62]{transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .22s ease}.bm-enter-from[data-v-c0efbd62],.bm-leave-to[data-v-c0efbd62]{opacity:0}.bm-enter-from .bm-dialog[data-v-c0efbd62],.bm-leave-to .bm-dialog[data-v-c0efbd62]{transform:translateY(16px) scale(.97);opacity:0}.sv[data-v-f33f521d]{--bg: #1a1a2e;--panel: #20263c;--panel2: #11162a;--line: #2a2a4a;--line2: #323a5c;--t1: #e8eef7;--t2: #97a5ba;--t3: #6b7394;--accent: #6e8bff;--danger: #ff6b6b;position:relative;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg);color:var(--t1);font-family:Inter,system-ui,-apple-system,sans-serif}.sv-pagehead[data-v-f33f521d]{padding:16px 20px;border-bottom:1px solid var(--line)}.sv-pagehead h1[data-v-f33f521d]{margin:0;font-size:20px}.sv-body[data-v-f33f521d]{flex:1;min-height:0;overflow:hidden}.sv-split[data-v-f33f521d]{display:grid;grid-template-columns:minmax(340px,.85fr) 1.15fr}.sv-list-col[data-v-f33f521d],.sv-preview-col[data-v-f33f521d]{min-width:0;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding:16px}.sv-list-col[data-v-f33f521d]{border-right:1px solid var(--line);gap:12px}.sv-preview-col[data-v-f33f521d]{gap:12px}.sv-list-tools[data-v-f33f521d]{display:flex;gap:8px;flex:none}.sv-search[data-v-f33f521d]{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:38px;padding:0 11px;background:var(--panel2);border:1px solid var(--line);border-radius:9px}.sv-search[data-v-f33f521d]:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.sv-search>i[data-v-f33f521d]{color:var(--t3);font-size:13px}.sv-search input[data-v-f33f521d]{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--t1);font-size:13.5px;font-family:inherit}.sv-search input[data-v-f33f521d]::placeholder{color:#5a6280}.sv-x[data-v-f33f521d]{border:none;background:none;color:var(--t3);cursor:pointer;padding:3px;border-radius:5px}.sv-x[data-v-f33f521d]:hover{color:var(--t1);background:var(--line)}.sv-btn[data-v-f33f521d]{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;height:38px;border:1px solid var(--line);border-radius:9px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:.14s;white-space:nowrap}.sv-btn-sm[data-v-f33f521d]{height:32px;padding:0 11px;font-size:12.5px}.sv-btn-primary[data-v-f33f521d]{background:linear-gradient(135deg,#6e8bff,#667eea);border-color:transparent;color:#fff}.sv-btn-primary[data-v-f33f521d]:hover:not(:disabled){filter:brightness(1.08)}.sv-btn-ghost[data-v-f33f521d]{background:var(--panel);color:var(--t2)}.sv-btn-ghost[data-v-f33f521d]:hover:not(:disabled){color:var(--t1);background:#2a3148}.sv-btn-danger[data-v-f33f521d]{background:var(--danger);border-color:var(--danger);color:#fff}.sv-btn-danger[data-v-f33f521d]:hover{filter:brightness(1.08)}.sv-btn[data-v-f33f521d]:disabled{opacity:.5;cursor:default}.sv-drop[data-v-f33f521d]{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:20px;border:1.5px dashed var(--line2);border-radius:11px;background:var(--panel2);color:var(--t2);cursor:pointer;text-align:center;transition:.15s}.sv-drop[data-v-f33f521d]:hover,.sv-drop.dragging[data-v-f33f521d]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel2))}.sv-drop>i[data-v-f33f521d]{font-size:22px;color:var(--t3)}.sv-drop small[data-v-f33f521d]{color:var(--t3);font-size:11px}.sv-file[data-v-f33f521d]{display:none}.sv-upload-row[data-v-f33f521d]{width:100%;display:flex;flex-direction:column;gap:9px;cursor:default}.sv-upload-file[data-v-f33f521d]{display:flex;align-items:center;gap:10px;text-align:left}.sv-upload-file>i[data-v-f33f521d]{font-size:20px;color:var(--accent)}.sv-upload-file strong[data-v-f33f521d]{display:block;color:var(--t1);font-size:13px}.sv-upload-file small[data-v-f33f521d]{color:var(--t3)}.sv-upload-actions[data-v-f33f521d]{display:flex;gap:8px}.sv-ds-list[data-v-f33f521d]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.sv-ds[data-v-f33f521d]{display:flex;align-items:center;gap:11px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.13s}.sv-ds[data-v-f33f521d]:hover{border-color:var(--line2);background:#252c46}.sv-ds[data-active=true][data-v-f33f521d]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.sv-fmt[data-v-f33f521d]{flex:none;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 7px;border-radius:6px;background:#283154;color:#9fb0ff}.sv-ds-text[data-v-f33f521d]{flex:1;min-width:0}.sv-ds-text strong[data-v-f33f521d]{display:block;font-size:13.5px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sv-ds-text small[data-v-f33f521d]{font-size:11.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.sv-ds-actions[data-v-f33f521d]{display:flex;gap:5px;flex:none}.sv-ic[data-v-f33f521d]{width:30px;height:30px;display:grid;place-items:center;border:none;border-radius:8px;background:transparent;color:var(--t2);cursor:pointer;transition:.13s;font-size:13px}.sv-ic-primary[data-v-f33f521d]:hover{background:color-mix(in srgb,var(--accent) 20%,transparent);color:#aebcff}.sv-ic-danger[data-v-f33f521d]:hover{background:#ff6b6b29;color:var(--danger)}.sv-preview[data-v-f33f521d]{flex:1;display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel2)}.sv-preview-head[data-v-f33f521d]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#16213e;border-bottom:1px solid var(--line);flex:none}.sv-preview-head strong[data-v-f33f521d]{font-size:14px;color:var(--t1)}.sv-preview-head small[data-v-f33f521d]{display:block;font-size:11.5px;color:var(--t3);margin-top:2px}.sv-preview-table[data-v-f33f521d]{overflow:auto;min-height:0}.sv-preview-table table[data-v-f33f521d]{width:100%;border-collapse:collapse;font-size:12px}.sv-preview-table th[data-v-f33f521d],.sv-preview-table td[data-v-f33f521d]{padding:7px 11px;text-align:left;border-bottom:1px solid #1c2740;white-space:nowrap}.sv-preview-table th[data-v-f33f521d]{position:sticky;top:0;background:#16213e;color:var(--t2);font-weight:600;z-index:1}.sv-preview-table td[data-v-f33f521d]{color:#cbd5e0;max-width:220px;overflow:hidden;text-overflow:ellipsis}.sv-dtype[data-v-f33f521d]{display:block;font-size:9.5px;font-weight:400;color:#5a6280;text-transform:none}.sv-input[data-v-f33f521d]{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:var(--t1);font-size:13px;font-family:inherit;outline:none;transition:.14s}textarea.sv-input[data-v-f33f521d]{resize:vertical;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}.sv-input[data-v-f33f521d]:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.sv-input[data-v-f33f521d]::placeholder{color:#5a6280}.sv-empty[data-v-f33f521d]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:36px 20px;text-align:center;color:var(--t2)}.sv-empty-tall[data-v-f33f521d]{flex:1;min-height:280px}.sv-empty>i[data-v-f33f521d]{font-size:28px;color:#4a5170}.sv-empty p[data-v-f33f521d]{margin:0;font-size:14px;color:#d5dcec}.sv-empty span[data-v-f33f521d]{font-size:12px;color:var(--t3)}.sv-confirm-overlay[data-v-f33f521d]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#080a1499;z-index:50}.sv-confirm[data-v-f33f521d]{width:min(420px,90%);padding:22px;background:var(--bg);border:1px solid var(--line);border-radius:14px;text-align:center}.sv-confirm h4[data-v-f33f521d]{margin:0 0 8px;font-size:16px}.sv-confirm p[data-v-f33f521d]{margin:0 0 18px;color:var(--t2);font-size:13.5px}.sv-confirm-actions[data-v-f33f521d]{display:flex;gap:10px;justify-content:center}.sv-toast[data-v-f33f521d]{position:fixed;bottom:22px;right:22px;padding:11px 18px;border-radius:9px;font-size:13px;color:#fff;z-index:9999;box-shadow:0 8px 24px #0006}.sv-toast.success[data-v-f33f521d]{background:#2ec26a}.sv-toast.error[data-v-f33f521d]{background:#e0566c}.sv-toast-enter-active[data-v-f33f521d],.sv-toast-leave-active[data-v-f33f521d]{transition:opacity .25s,transform .25s}.sv-toast-enter-from[data-v-f33f521d],.sv-toast-leave-to[data-v-f33f521d]{opacity:0;transform:translateY(10px)}@media (max-width: 860px){.sv-split[data-v-f33f521d]{grid-template-columns:1fr}.sv-list-col[data-v-f33f521d]{border-right:none;border-bottom:1px solid var(--line)}}.explorer[data-v-52685922]{display:flex;flex-direction:column;height:100%;min-height:0;background:#11151f;color:#e2e8f0;font-family:Inter,system-ui,Arial,sans-serif}.explorer-header[data-v-52685922]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:#161b27;border-bottom:1px solid #232a3a}.title-block[data-v-52685922]{display:flex;align-items:center;gap:12px;min-width:0}.title-icon[data-v-52685922]{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#1a2030;color:#22d3ee;font-size:16px;border:1px solid #232a3a}.title-text h1[data-v-52685922]{font-size:16px;font-weight:700;margin:0;color:#f1f5f9}.subtitle[data-v-52685922]{margin:2px 0 0;font-size:12px;color:#64748b}.subtitle .file-name[data-v-52685922]{color:#94a3b8;font-family:ui-monospace,monospace}.subtitle .dot[data-v-52685922]{margin:0 6px;color:#3d4a5c}.header-actions[data-v-52685922]{display:flex;align-items:center;gap:10px}.view-toggle[data-v-52685922]{display:inline-flex;background:#1a2030;border:1px solid #232a3a;border-radius:8px;padding:3px}.view-toggle button[data-v-52685922]{border:0;background:transparent;color:#94a3b8;padding:6px 14px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer}.view-toggle button.active[data-v-52685922]{background:#22d3ee;color:#0b0f17}.btn-dataset[data-v-52685922]{display:inline-flex;align-items:center;gap:8px;background:#1a2030;color:#e2e8f0;border:1px solid #2d3748;padding:7px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-dataset[data-v-52685922]:hover{border-color:#22d3ee;color:#22d3ee}.explorer-body[data-v-52685922]{display:flex;flex:1;min-height:0}.columns-panel[data-v-52685922]{width:290px;flex-shrink:0;display:flex;flex-direction:column;background:#131824;border-right:1px solid #232a3a;min-height:0}.columns-head[data-v-52685922]{padding:12px 16px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b;border-bottom:1px solid #232a3a}.columns-head .count[data-v-52685922]{color:#22d3ee;margin-left:4px}.columns-list[data-v-52685922]{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.col-card[data-v-52685922]{width:100%;text-align:left;background:#171d2b;border:1px solid #232a3a;border-radius:10px;padding:10px 12px;cursor:pointer;transition:border-color .12s,background .12s}.col-card[data-v-52685922]:hover{border-color:#2d3748}.col-card.selected[data-v-52685922]{border-color:#22d3ee;background:#15202b}.col-top[data-v-52685922]{display:flex;align-items:center;gap:8px}.type-badge[data-v-52685922]{font-size:10px;font-weight:700;padding:2px 6px;border-radius:5px;font-family:ui-monospace,monospace;flex-shrink:0}.type-badge.numeric[data-v-52685922]{background:#1e2b3a;color:#22d3ee}.type-badge.date[data-v-52685922]{background:#2a2333;color:#c4b5fd}.type-badge.text[data-v-52685922]{background:#2a2a1e;color:#fdba74}.col-name[data-v-52685922]{font-size:13px;font-weight:600;color:#e2e8f0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nulls[data-v-52685922]{font-size:11px;color:#4ade80;flex-shrink:0}.nulls.warn[data-v-52685922]{color:#fb923c}.spark[data-v-52685922]{display:flex;align-items:flex-end;gap:2px;height:34px;margin:8px 0 6px}.spark-bar[data-v-52685922]{flex:1;background:#fb923c;border-radius:2px 2px 0 0;min-height:2px;opacity:.85}.col-card.selected .spark-bar[data-v-52685922]{background:#22d3ee}.col-stats[data-v-52685922]{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:#64748b;font-family:ui-monospace,monospace}.col-stats .mode[data-v-52685922]{color:#94a3b8}.columns-foot[data-v-52685922]{padding:12px 16px;border-top:1px solid #232a3a;background:#131824}.foot-row[data-v-52685922]{display:flex;justify-content:space-between;font-size:12px;color:#64748b;margin-bottom:4px}.foot-val[data-v-52685922]{color:#4ade80;font-weight:600;font-family:ui-monospace,monospace}.progress[data-v-52685922]{height:5px;background:#1a2030;border-radius:3px;overflow:hidden;margin-bottom:10px}.progress span[data-v-52685922]{display:block;height:100%;background:#4ade80;border-radius:3px}.main-panel[data-v-52685922]{flex:1;min-width:0;display:flex;flex-direction:column}.chart-view[data-v-52685922]{display:flex;flex-direction:column;flex:1;min-height:0;padding:14px 18px;gap:14px}.chart-tabs[data-v-52685922]{display:flex;flex-wrap:wrap;gap:8px}.chart-tab[data-v-52685922]{display:inline-flex;align-items:center;gap:7px;background:#171d2b;border:1px solid #232a3a;color:#94a3b8;padding:7px 13px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.chart-tab[data-v-52685922]:hover{border-color:#2d3748;color:#e2e8f0}.chart-tab.active[data-v-52685922]{background:#22d3ee;border-color:#22d3ee;color:#0b0f17}.chart-fields[data-v-52685922]{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}.field-block[data-v-52685922]{display:flex;flex-direction:column;gap:6px}.field-block>label[data-v-52685922]{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.x-select[data-v-52685922]{background:#171d2b;color:#e2e8f0;border:1px solid #2d3748;border-radius:8px;padding:7px 10px;font-size:13px;min-width:150px}.y-pills[data-v-52685922]{display:flex;flex-wrap:wrap;gap:6px}.y-pill[data-v-52685922]{background:#171d2b;border:1px solid #232a3a;color:#94a3b8;padding:6px 12px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer}.y-pill[data-v-52685922]:hover{border-color:#2d3748}.y-pill.active[data-v-52685922]{background:#1e2b3a;border-color:#22d3ee;color:#22d3ee}.no-numeric[data-v-52685922]{font-size:12px;color:#64748b}.chart-area[data-v-52685922]{flex:1;min-height:0;position:relative}.chart-container[data-v-52685922]{width:100%;height:100%;min-height:320px}.chart-empty[data-v-52685922]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#3d4a5c}.chart-empty i[data-v-52685922]{font-size:40px}.chart-empty p[data-v-52685922]{font-size:13px}.table-view[data-v-52685922]{display:flex;flex-direction:column;flex:1;min-height:0;padding:14px 18px}.table-controls[data-v-52685922]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.search-box[data-v-52685922]{position:relative;flex:1;max-width:360px}.search-box i[data-v-52685922]{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:13px}.search-box input[data-v-52685922]{width:100%;background:#171d2b;border:1px solid #2d3748;color:#e2e8f0;padding:8px 12px 8px 34px;border-radius:8px;font-size:13px}.row-count[data-v-52685922]{font-size:12px;color:#64748b}.table-wrapper[data-v-52685922]{flex:1;overflow:auto;border:1px solid #232a3a;border-radius:10px}.data-table[data-v-52685922]{width:100%;border-collapse:collapse;font-size:13px}.data-table th[data-v-52685922]{position:sticky;top:0;background:#171d2b;color:#94a3b8;text-align:left;padding:8px 12px;border-bottom:1px solid #232a3a;font-weight:600;cursor:pointer}.th-content[data-v-52685922]{display:flex;align-items:center;gap:6px}.th-content .dim[data-v-52685922]{opacity:.3}.column-filter[data-v-52685922]{width:100%;margin-top:6px;background:#11151f;border:1px solid #232a3a;color:#e2e8f0;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:400}.data-table td[data-v-52685922]{padding:7px 12px;border-bottom:1px solid #1a2030;color:#cbd5e1;white-space:nowrap}.data-table tbody tr:hover td[data-v-52685922]{background:#151a26}.no-data[data-v-52685922]{text-align:center;color:#64748b;padding:24px}.pagination[data-v-52685922]{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px}.page-btn[data-v-52685922]{background:#171d2b;border:1px solid #2d3748;color:#e2e8f0;width:32px;height:32px;border-radius:8px;cursor:pointer}.page-btn[data-v-52685922]:disabled{opacity:.4;cursor:default}.page-info[data-v-52685922]{font-size:13px;color:#94a3b8}.page-info .dim[data-v-52685922]{color:#64748b}.welcome-screen[data-v-52685922]{flex:1;display:grid;place-items:center}.welcome-content[data-v-52685922]{text-align:center;color:#64748b}.welcome-content i[data-v-52685922]{font-size:48px;color:#2d3748;margin-bottom:14px}.welcome-content h2[data-v-52685922]{color:#e2e8f0;font-size:20px;margin:0 0 6px}.welcome-content p[data-v-52685922]{margin:0 0 18px;font-size:14px}.modal-overlay[data-v-52685922]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:1000}.modal-content[data-v-52685922]{width:min(620px,92vw);max-height:80vh;background:#161b27;border:1px solid #232a3a;border-radius:14px;display:flex;flex-direction:column;overflow:hidden}.modal-header[data-v-52685922]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #232a3a}.modal-header h3[data-v-52685922]{margin:0;font-size:15px;color:#f1f5f9}.modal-close[data-v-52685922]{background:none;border:0;color:#64748b;font-size:22px;cursor:pointer;line-height:1}.modal-body[data-v-52685922]{padding:16px 18px;overflow-y:auto}.dataset-search[data-v-52685922]{position:relative;margin-bottom:14px}.dataset-search i[data-v-52685922]{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b}.dataset-search input[data-v-52685922]{width:100%;background:#171d2b;border:1px solid #2d3748;color:#e2e8f0;padding:9px 12px 9px 34px;border-radius:8px;font-size:13px}.datasets-grid[data-v-52685922]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.dataset-card[data-v-52685922]{text-align:center;background:#171d2b;border:1px solid #232a3a;border-radius:10px;padding:16px 10px;cursor:pointer;color:#e2e8f0}.dataset-card[data-v-52685922]:hover{border-color:#22d3ee}.dataset-card i[data-v-52685922]{font-size:24px;color:#22d3ee}.dataset-card h4[data-v-52685922]{margin:8px 0 4px;font-size:13px;word-break:break-word}.dataset-meta[data-v-52685922]{font-size:11px;color:#64748b}.no-datasets[data-v-52685922],.loading[data-v-52685922]{grid-column:1 / -1;text-align:center;color:#64748b;padding:20px}.error-toast[data-v-52685922]{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#2d2222;border:1px solid #EF4444;color:#fca5a5;padding:10px 16px;border-radius:10px;font-size:13px;display:flex;align-items:center;gap:10px;z-index:1100}.error-toast button[data-v-52685922]{background:none;border:0;color:#fca5a5;font-size:18px;cursor:pointer}.ok-toast[data-v-52685922]{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#16271d;border:1px solid #2ec26a;color:#87e0a6;padding:10px 16px;border-radius:10px;font-size:13px;display:flex;align-items:center;gap:10px;z-index:1100}.embedded .explorer-header[data-v-52685922]{border-radius:0}.bm-dialog.lf-dialog{--bm-accent: #22d3ee;background:#1a202c;border-color:#2a2a4a}.bm-dialog.lf-dialog .bm-header,.bm-dialog.lf-dialog .bm-footer{background:#161d28;border-color:#2a2a4a}.lf[data-v-c4ecaf3e]{display:flex;flex-direction:column;height:100%;min-height:0}.lf-toolbar[data-v-c4ecaf3e]{display:flex;align-items:center;gap:12px;padding:16px 24px;flex:none}.lf-search[data-v-c4ecaf3e]{flex:1;min-width:0;display:flex;align-items:center;gap:9px;height:40px;padding:0 12px;background:#161d28;border:1px solid transparent;border-radius:10px;transition:border-color .15s,box-shadow .15s}.lf-search[data-v-c4ecaf3e]:focus-within{border-color:#22d3ee;box-shadow:0 0 0 3px #22d3ee2e}.lf-search>i[data-v-c4ecaf3e]{color:#5e6e86;font-size:13px}.lf-search input[data-v-c4ecaf3e]{flex:1;min-width:0;background:none;border:none;outline:none;color:#e8eef7;font-size:14px;font-family:inherit}.lf-search input[data-v-c4ecaf3e]::placeholder{color:#5e6e86}.lf-search-clear[data-v-c4ecaf3e]{border:none;background:none;color:#5e6e86;cursor:pointer;padding:4px;border-radius:6px}.lf-search-clear[data-v-c4ecaf3e]:hover{color:#e8eef7;background:#2a2a4a}.lf-sort[data-v-c4ecaf3e]{display:flex;gap:4px;padding:3px;background:#161d28;border:1px solid transparent;border-radius:10px;flex:none}.lf-sort-btn[data-v-c4ecaf3e]{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:none;background:none;color:#97a5ba;font-size:12.5px;font-family:inherit;border-radius:7px;cursor:pointer;transition:.14s}.lf-sort-btn[data-v-c4ecaf3e]:hover{color:#e8eef7}.lf-sort-btn[data-active=true][data-v-c4ecaf3e]{background:#22d3ee1f;color:#22d3ee}.lf-sort-btn i[data-v-c4ecaf3e]{font-size:12px}.lf-new[data-v-c4ecaf3e]{display:inline-flex;align-items:center;gap:7px;flex:none;padding:0 13px;height:34px;border:none;border-radius:9px;background:linear-gradient(135deg,#22d3ee,#06b6d4);color:#0f1520;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:filter .15s,transform .06s}.lf-new i[data-v-c4ecaf3e]{font-size:11px}.lf-new[data-v-c4ecaf3e]:hover{filter:brightness(1.08)}.lf-new[data-v-c4ecaf3e]:active{transform:translateY(1px)}.lf-scroll[data-v-c4ecaf3e]{flex:1;min-height:0;overflow-y:auto;padding:22px 24px 28px}.lf-scroll[data-v-c4ecaf3e]::-webkit-scrollbar{width:10px}.lf-scroll[data-v-c4ecaf3e]::-webkit-scrollbar-thumb{background:#2a2a4a;border-radius:6px;border:2px solid #1a202c}.lf-section-title[data-v-c4ecaf3e]{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#97a5ba}.lf-section-title i[data-v-c4ecaf3e]{font-size:11px;color:#a78bfa}.lf-section-projects[data-v-c4ecaf3e]{margin:22px 0 12px}.lf-section-projects i[data-v-c4ecaf3e]{color:#22d3ee}.lf-card-template[data-v-c4ecaf3e]{border-color:#a78bfa47;background:linear-gradient(135deg,#2f2d4a,#1a202c)}.lf-card-template[data-v-c4ecaf3e]:hover{border-color:#a78bfa99;background:linear-gradient(135deg,#383560,#222b38)}.lf-card-template[data-v-c4ecaf3e]:focus-visible{outline-color:#a78bfa}.lf-status-template[data-v-c4ecaf3e]{gap:6px;color:#a78bfa}.lf-status-template i[data-v-c4ecaf3e]{font-size:10px}.lf-card-template .lf-chip i[data-v-c4ecaf3e]{color:#a78bfa}.lf-grid[data-v-c4ecaf3e]{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.lf-card[data-v-c4ecaf3e]{position:relative;display:flex;flex-direction:column;gap:9px;padding:17px 18px;min-height:132px;background:linear-gradient(135deg,#2d3748,#1a202c);border:1px solid #2a2a4a;border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s,transform .08s}.lf-card[data-v-c4ecaf3e]:hover{background:linear-gradient(135deg,#354255,#222b38);border-color:#22d3ee73;transform:translateY(-1px)}.lf-card[data-v-c4ecaf3e]:focus-visible{outline:2px solid #22d3ee;outline-offset:1px}.lf-card.is-confirming[data-v-c4ecaf3e]{border-color:#e53e3e}.lf-card-top[data-v-c4ecaf3e]{display:flex;align-items:center;justify-content:space-between}.lf-status[data-v-c4ecaf3e]{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#97a5ba}.lf-status-dot[data-v-c4ecaf3e]{width:7px;height:7px;border-radius:50%;background:#5e6e86}.lf-status[data-state=ready] .lf-status-dot[data-v-c4ecaf3e]{background:#22d3ee}.lf-status[data-state=running] .lf-status-dot[data-v-c4ecaf3e]{background:#fbbf24;box-shadow:0 0 0 3px #fbbf2433}.lf-status[data-state=ok] .lf-status-dot[data-v-c4ecaf3e]{background:#22c55e}.lf-status[data-state=error] .lf-status-dot[data-v-c4ecaf3e]{background:#ef4444}.lf-del[data-v-c4ecaf3e]{border:none;background:none;color:#5e6e86;cursor:pointer;padding:5px;border-radius:7px;opacity:.75;transition:.14s}.lf-card:hover .lf-del[data-v-c4ecaf3e]{opacity:1}.lf-del[data-v-c4ecaf3e]:hover{background:#ef444424;color:#ef4444;opacity:1}.lf-name[data-v-c4ecaf3e]{margin:0;font-size:15px;font-weight:600;color:#f0f3fa;line-height:1.3;overflow-wrap:anywhere}.lf-desc[data-v-c4ecaf3e]{margin:0;font-size:12.5px;line-height:1.45;color:#97a5ba;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lf-desc-empty[data-v-c4ecaf3e]{color:#5e6e86;font-style:italic}.lf-meta[data-v-c4ecaf3e]{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:4px}.lf-chip[data-v-c4ecaf3e]{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#b8c2d8}.lf-chip i[data-v-c4ecaf3e]{font-size:11px;color:#22d3ee}.lf-date[data-v-c4ecaf3e]{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-size:11.5px;color:#5e6e86}.lf-confirm[data-v-c4ecaf3e]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;text-align:center;background:#0f1520f0;border-radius:12px;font-size:13.5px;color:#e8eef7}.lf-confirm-actions[data-v-c4ecaf3e]{display:flex;gap:8px}.lf-btn-ghost[data-v-c4ecaf3e],.lf-btn-danger[data-v-c4ecaf3e]{padding:7px 15px;border-radius:8px;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;border:1px solid #2a2a4a}.lf-btn-ghost[data-v-c4ecaf3e]{background:#2d3748;color:#c5cde0}.lf-btn-ghost[data-v-c4ecaf3e]:hover{background:#354255}.lf-btn-danger[data-v-c4ecaf3e]{display:inline-flex;align-items:center;gap:7px;background:#e53e3e;border-color:#e53e3e;color:#fff}.lf-btn-danger[data-v-c4ecaf3e]:hover:not(:disabled){background:#f15656}.lf-btn-danger[data-v-c4ecaf3e]:disabled{opacity:.6;cursor:default}.lf-state[data-v-c4ecaf3e]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:280px;text-align:center;color:#97a5ba}.lf-state>i[data-v-c4ecaf3e]{font-size:30px;color:#475468;margin-bottom:4px}.lf-state p[data-v-c4ecaf3e]{margin:0;font-size:15px;color:#d5dcec}.lf-state span[data-v-c4ecaf3e]{font-size:12.5px;color:#5e6e86}.lf-state .lf-new[data-v-c4ecaf3e]{margin-top:8px}.lf-count[data-v-c4ecaf3e]{margin-right:auto;font-size:12.5px;color:#5e6e86}.terminal-panel[data-v-ed7639bd]{height:260px;background:#1a202c;border-top:2px solid #1a202c;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .25s ease,left .3s ease,right .3s ease}.terminal-panel.visible[data-v-ed7639bd]{transform:translateY(0)}.terminal-header[data-v-ed7639bd]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#2d3748;border-bottom:1px solid #1a202c;flex-shrink:0}.terminal-title[data-v-ed7639bd]{font-size:12px;color:#94a3b8;font-family:monospace;display:flex;align-items:center;gap:6px}.terminal-actions[data-v-ed7639bd]{display:flex;gap:4px}.terminal-btn[data-v-ed7639bd]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:2px 6px;border-radius:4px;font-size:12px}.terminal-btn[data-v-ed7639bd]:hover{background:#1a202c;color:#e2e8f0}.terminal-body[data-v-ed7639bd]{flex:1;overflow-y:auto;padding:8px 12px;font-family:Courier New,Courier,monospace;font-size:12px;line-height:1.6}.terminal-line[data-v-ed7639bd]{white-space:pre-wrap;word-break:break-all}.terminal-line.stdout[data-v-ed7639bd]{color:#e2e8f0}.terminal-line.info[data-v-ed7639bd]{color:#22d3ee}.terminal-line.error[data-v-ed7639bd]{color:#ef4444}.terminal-cursor[data-v-ed7639bd]{animation:blink-ed7639bd 1s step-end infinite;color:#22d3ee}@keyframes blink-ed7639bd{50%{opacity:0}}.terminal-empty[data-v-ed7639bd]{color:#475569;font-style:italic;font-size:12px;padding:8px 0}.chat-panel[data-v-d5942c43]{position:fixed;top:0;right:0;bottom:0;width:var(--ed-right, 360px);max-width:90vw;background:#1a202c;border-left:2px solid #2d3748;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease;z-index:950}.chat-panel.visible[data-v-d5942c43]{transform:translate(0)}.chat-header[data-v-d5942c43]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#2d3748;border-bottom:1px solid #1a202c;flex-shrink:0}.chat-title[data-v-d5942c43]{font-size:13px;color:#e2e8f0;font-weight:600;display:flex;align-items:center;gap:7px}.chat-title i[data-v-d5942c43]{color:#22d3ee}.chat-actions[data-v-d5942c43]{display:flex;gap:4px}.chat-btn[data-v-d5942c43]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:3px 7px;border-radius:4px;font-size:12px}.chat-btn[data-v-d5942c43]:hover{background:#1a202c;color:#e2e8f0}.chat-notice[data-v-d5942c43]{background:#422006;color:#fbbf24;font-size:11.5px;padding:7px 12px;display:flex;align-items:center;gap:6px;flex-shrink:0}.chat-notice code[data-v-d5942c43]{background:#0000004d;padding:1px 4px;border-radius:3px}.chat-body[data-v-d5942c43]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.chat-empty[data-v-d5942c43]{color:#64748b;text-align:center;margin:auto 0;font-size:13px}.chat-empty i[data-v-d5942c43]{font-size:28px;color:#334155;margin-bottom:8px}.chat-empty ul[data-v-d5942c43]{list-style:none;padding:0;margin:12px 0 0;text-align:left;font-size:12px}.chat-empty li[data-v-d5942c43]{background:#232b3a;border:1px solid #2d3748;border-radius:6px;padding:6px 9px;margin-bottom:6px;color:#94a3b8}.chat-msg[data-v-d5942c43]{display:flex}.chat-msg.user[data-v-d5942c43]{justify-content:flex-end}.chat-bubble[data-v-d5942c43]{max-width:85%;padding:8px 11px;border-radius:10px;font-size:13px;line-height:1.45;display:flex;flex-direction:column;gap:5px}.chat-msg.user .chat-bubble[data-v-d5942c43]{background:#0e7490;color:#ecfeff;border-bottom-right-radius:3px}.chat-msg.assistant .chat-bubble[data-v-d5942c43]{background:#232b3a;color:#e2e8f0;border:1px solid #2d3748;border-bottom-left-radius:3px}.chat-text[data-v-d5942c43]{white-space:pre-wrap;word-break:break-word}.chat-ops[data-v-d5942c43]{font-size:11px;color:#34d399;display:flex;align-items:center;gap:5px}.chat-typing[data-v-d5942c43]{display:inline-flex;gap:4px;padding:2px 0}.chat-typing span[data-v-d5942c43]{width:6px;height:6px;border-radius:50%;background:#64748b;animation:chat-bounce-d5942c43 1.2s infinite ease-in-out}.chat-typing span[data-v-d5942c43]:nth-child(2){animation-delay:.15s}.chat-typing span[data-v-d5942c43]:nth-child(3){animation-delay:.3s}@keyframes chat-bounce-d5942c43{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chat-error[data-v-d5942c43]{background:#450a0a;color:#fca5a5;font-size:12px;padding:7px 10px;border-radius:6px;display:flex;align-items:center;gap:6px}.chat-input[data-v-d5942c43]{display:flex;gap:6px;padding:10px;border-top:1px solid #2d3748;background:#161b26;flex-shrink:0}.chat-textarea[data-v-d5942c43]{flex:1;resize:none;background:#0f1521;border:1px solid #2d3748;border-radius:8px;color:#e2e8f0;padding:9px 11px;font-size:13px;font-family:inherit;max-height:120px;line-height:1.4}.chat-textarea[data-v-d5942c43]:focus{outline:none;border-color:#22d3ee}.chat-textarea[data-v-d5942c43]:disabled{opacity:.5}.chat-send[data-v-d5942c43]{background:#0e7490;border:none;border-radius:8px;color:#ecfeff;width:40px;cursor:pointer;font-size:14px;flex-shrink:0}.chat-send[data-v-d5942c43]:hover:not(:disabled){background:#155e75}.chat-send[data-v-d5942c43]:disabled{opacity:.4;cursor:not-allowed}.node-viz[data-v-638d85f6]{margin-top:8px;border:1px solid #4a5568;border-radius:8px;background:#1a202c;overflow:hidden;cursor:default}.viz-header[data-v-638d85f6]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;background:#2d3748;border-bottom:1px solid #4a5568}.viz-title[data-v-638d85f6]{font-size:11px;color:#e2e8f0;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viz-title i[data-v-638d85f6]{color:#22d3ee;font-size:10px}.viz-expand[data-v-638d85f6]{background:none;border:none;color:#94a3b8;cursor:pointer;padding:2px 4px;border-radius:4px;font-size:11px;line-height:1}.viz-expand[data-v-638d85f6]:hover{background:#1a202c;color:#e2e8f0}.viz-table-wrap[data-v-638d85f6]{max-height:180px;max-width:320px;overflow:auto}.viz-table[data-v-638d85f6]{border-collapse:collapse;font-size:10px;color:#e2e8f0;width:100%}.viz-table th[data-v-638d85f6],.viz-table td[data-v-638d85f6]{padding:3px 8px;border-bottom:1px solid #2d3748;text-align:left;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.viz-table th[data-v-638d85f6]{position:sticky;top:0;background:#2d3748;color:#94a3b8;font-weight:600;z-index:1}.viz-table th small[data-v-638d85f6]{display:block;color:#64748b;font-weight:400}.viz-table tbody tr[data-v-638d85f6]:hover{background:#2d3748}.viz-footer[data-v-638d85f6]{padding:4px 8px;font-size:10px;color:#94a3b8;background:#2d3748;border-top:1px solid #4a5568}.viz-image[data-v-638d85f6]{display:block;width:280px;height:auto;cursor:zoom-in;background:#fff}.viz-overlay[data-v-638d85f6]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c14bf;display:flex;align-items:center;justify-content:center;z-index:2000}.viz-modal[data-v-638d85f6]{display:flex;flex-direction:column;max-width:90vw;max-height:90vh;background:#1a202c;border:1px solid #4a5568;border-radius:10px;overflow:hidden;box-shadow:0 12px 40px #00000080}.viz-modal-header[data-v-638d85f6]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#2d3748;border-bottom:1px solid #4a5568}.viz-modal-header .viz-title[data-v-638d85f6]{font-size:13px}.viz-modal-body[data-v-638d85f6]{overflow:auto;padding:0}.viz-table-full[data-v-638d85f6]{font-size:12px}.viz-table-full th[data-v-638d85f6],.viz-table-full td[data-v-638d85f6]{padding:5px 12px;max-width:260px}.viz-image-full[data-v-638d85f6]{display:block;max-width:88vw;max-height:80vh;background:#fff}.viz-modal-footer[data-v-638d85f6]{flex-shrink:0}.vue-flow-node[data-v-496fa53b]{position:relative}.node-content[data-v-496fa53b]{position:relative;z-index:1}.node-delete-button[data-v-496fa53b]{position:absolute;top:0;right:0;transform:translate(45%,-45%);z-index:3;width:24px;height:24px;border:1px solid #dc2626;border-radius:999px;background:#ef4444;color:#fff;font-size:13px;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.node-delete-button[data-v-496fa53b]:hover{background:#dc2626}.node-ports[data-v-496fa53b]{display:flex;flex-direction:column;gap:6px;margin-top:8px}.port-row[data-v-496fa53b]{position:relative;display:flex;align-items:center;min-height:22px}.port-input[data-v-496fa53b]{justify-content:flex-start}.port-output[data-v-496fa53b]{justify-content:flex-end}.port-tag[data-v-496fa53b]{font-size:11px;line-height:1;color:#e2e8f0;background:#1a202cf2;border:1px solid #4a5568;border-radius:7px;padding:5px 6px;white-space:nowrap}.edge-delete-button[data-v-9811fe41]{position:absolute;top:12px;right:12px;z-index:30;border:1px solid #e53e3e;background:#c53030;color:#fff;border-radius:6px;padding:6px 10px;font-size:12px;cursor:pointer}.edge-delete-button[data-v-9811fe41]:hover{background:#9b2c2c}.save-status[data-v-9811fe41]{position:fixed;top:60px;left:50%;transform:translate(-50%);padding:8px 16px;font-size:13px;background:#276749;color:#fff;text-align:center;border-radius:6px;box-shadow:0 2px 8px #0000004d;z-index:1000;min-width:200px}.save-status.error[data-v-9811fe41]{background:#c53030}.generated-code[data-v-9811fe41]{margin:0;padding:12px;background:#2d3748;border-radius:6px;font-size:12px;line-height:1.5;overflow:auto;color:#e2e8f0;white-space:pre-wrap;word-break:break-all}.btn-copy-code[data-v-9811fe41],.btn-close-code[data-v-9811fe41]{padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:1px solid #2a2a4a;background:#2d3748;color:#e2e8f0}.btn-copy-code[data-v-9811fe41]:hover,.btn-close-code[data-v-9811fe41]:hover{background:#2a2a4a}.ed-resizer[data-v-9811fe41]{position:fixed;top:48px;bottom:0;width:8px;z-index:1100;cursor:col-resize;background:transparent}.ed-resizer-left[data-v-9811fe41]{transform:translate(-4px)}.ed-resizer-right[data-v-9811fe41]{transform:translate(4px)}.ed-resizer[data-v-9811fe41]:after{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:transparent;transition:background .15s ease}.ed-resizer[data-v-9811fe41]:hover:after,.ed-resizer.active[data-v-9811fe41]:after{background:#22d3ee}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}html,body{margin:0;padding:0;height:100%;font-family:Roboto,sans-serif}body:not(.flows-editor) #drawflow{position:absolute;top:0;left:0;right:180px;bottom:0;background-color:#fafafa;background-image:linear-gradient(0deg,transparent 24%,rgba(0,0,0,.02) 25%,rgba(0,0,0,.02) 26%,transparent 27%),linear-gradient(90deg,transparent 24%,rgba(0,0,0,.02) 25%,rgba(0,0,0,.02) 26%,transparent 27%);background-size:40px 40px}#sidebar{position:absolute;top:0;right:0;width:180px;bottom:0;background:#fff;border-left:1px solid #e1e5ea;display:flex;flex-direction:column;padding:15px;box-shadow:-3px 0 10px #0000000d;z-index:100}#layer-panel{flex:1;overflow-y:auto}#layer-panel strong{display:block;margin-bottom:10px}#layer-panel button{display:block;width:100%;margin-bottom:8px;padding:8px;font-size:14px;cursor:pointer;border:1px solid #ddd;border-radius:4px;background:#fff;transition:.2s;text-align:left}#layer-panel button:hover{background:#f0f0f0;border-color:#ccc}#controls{padding-top:10px;border-top:1px solid #e1e5ea;display:flex;flex-direction:column}#controls>*{margin-bottom:8px;font-size:14px}#controls button,#controls select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;background:#fff;transition:.2s}#controls button:hover,#controls select:hover{background:#f0f0f0;border-color:#ccc}.drawflow .drawflow-node{position:absolute;background:linear-gradient(135deg,#fff,#f7f9fb);border:1px solid #e1e5ea;border-radius:8px;box-shadow:0 2px 4px #00000014;padding:12px;font-size:14px;transition:box-shadow .2s,transform .1s;min-width:160px;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.drawflow .drawflow-node.selected{background-color:#e3f2fd}.drawflow .drawflow-node:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.drawflow .drawflow-node strong{display:block;font-size:18px;font-weight:700;margin-bottom:8px;line-height:1.3;color:#1976d2}.drawflow .drawflow-node .inputs .input,.drawflow .drawflow-node .outputs .output{width:12px;height:12px;background:#fff;border:2px solid #1976d2;border-radius:50%;box-shadow:0 1px 3px #0003}.drawflow .connection .main-path,.drawflow .connection .main-path:hover{stroke:#1976d2!important;stroke-width:2px}body.horizontal .drawflow-node .inputs{display:flex;flex-direction:column;left:-12px!important;top:auto!important;right:auto!important;bottom:auto!important;transform:none!important}body.horizontal .drawflow-node .outputs{display:flex;flex-direction:column;right:-12px!important;top:auto!important;left:auto!important;bottom:auto!important;transform:none!important}body.vertical .drawflow-node .inputs{width:auto;min-width:30px;display:flex;flex-direction:row;justify-content:center;position:absolute!important;top:-12px!important;left:50%!important;right:auto!important;bottom:auto!important}body.vertical .drawflow-node .outputs{width:auto;min-width:30px;display:flex;flex-direction:row;justify-content:center;position:absolute!important;bottom:-12px!important;left:50%!important;top:auto!important;right:auto!important}body.flows-editor .drawflow .drawflow-node{min-width:200px;max-width:280px;width:auto;height:auto;overflow:visible;word-wrap:break-word;position:relative;padding:14px;font-size:14px}body.flows-editor .drawflow .drawflow-node strong{font-size:20px;font-weight:700;margin-bottom:10px;line-height:1.4;color:#1976d2}body.flows-editor .drawflow .drawflow-node input,body.flows-editor .drawflow .drawflow-node select{border:1px solid #ccc;border-radius:4px;padding:3px 5px;font-size:12px;width:auto;min-width:50px;max-width:100px;transition:border-color .2s;box-sizing:border-box;margin:1px 0}body.flows-editor .drawflow .drawflow-node input:focus,body.flows-editor .drawflow .drawflow-node select:focus{outline:none;border-color:#1976d2}body.flows-editor .drawflow .drawflow-node input[style*="width:100px"]{width:90px!important;max-width:100px}body.flows-editor .drawflow .drawflow-node input[style*="width:35px"]{width:30px!important;max-width:40px}.layer-filter-container{margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #e1e5ea}.layer-filter-input{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.layer-filter-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.node-section{margin-bottom:8px;border:1px solid #e1e5ea;border-radius:4px;background:#fff;overflow:hidden;transition:box-shadow .2s}.node-section:hover{box-shadow:0 2px 4px #0000000d}.section-header{display:flex;align-items:center;padding:10px 12px;background:#f8f9fa;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s;gap:8px}.section-header:hover{background:#e9ecef}.section-icon{font-size:16px;flex-shrink:0}.section-count{font-size:12px;color:#666;background:#e9ecef;padding:2px 6px;border-radius:10px}.section-toggle{font-size:10px;color:#666;transition:transform .2s;flex-shrink:0}.node-section.collapsed .section-toggle{transform:rotate(-90deg)}.section-content{padding:8px;display:block;transition:max-height .3s ease-out}.layer-button{display:block;width:100%;margin-bottom:6px;padding:8px 10px;font-size:13px;cursor:pointer;border:1px solid #ddd;border-radius:4px;background:#fff;transition:all .2s;text-align:left}.layer-button:hover{background:#f0f0f0;border-color:#1976d2;transform:translate(2px)}.layer-button:last-child{margin-bottom:0}.empty-section{padding:10px;text-align:center;color:#999;font-size:12px;font-style:italic}.flow-node{background:linear-gradient(135deg,#e8f5e8,#f0f8f0);border:2px solid #4caf50}.flow-node.input{background:linear-gradient(135deg,#e3f2fd,#f0f8ff);border-color:#2196f3}.flow-node.process{background:linear-gradient(135deg,#fff3e0,#fff8f0);border-color:#ff9800}.flow-node.filter{background:linear-gradient(135deg,#e8f5e8,#f0f8f0);border-color:#4caf50}.flow-node.group{background:linear-gradient(135deg,#f3e5f5,#faf5ff);border-color:#9c27b0}.flow-node.repeat{background:linear-gradient(135deg,#e0f2f1,#f0f8f7);border-color:#009688}.flow-node.ml{background:linear-gradient(135deg,#fce4ec,#fef7f0);border-color:#e91e63}.flow-node.output{background:linear-gradient(135deg,#fff3e0,#fff8f0);border-color:#ff9800}.flow-node.custom{background:linear-gradient(135deg,#f5f5f5,#fafafa);border-color:#666}.menu-bar{position:fixed;top:0;left:0;right:0;height:48px;background:#2d3748;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:1004;border-bottom:1px solid #1a202c;font-family:Inter,sans-serif}.menu-left{display:flex;align-items:center;gap:12px}.menu-buttons{display:flex;gap:8px;align-items:center}.flow-info-dropdown{position:relative;display:inline-flex;align-items:center;z-index:1003}.dropdown-toggle{background:transparent;color:#fff;border:none;border-radius:6px;padding:6px 10px;cursor:pointer;font-size:13px;font-family:Inter,sans-serif;font-weight:500;display:flex;align-items:center;gap:8px;transition:all .2s}.dropdown-toggle i{font-size:14px;color:#94a3b8}.dropdown-caret{font-size:10px;color:#64748b}.dropdown-toggle:hover{background:#1a202c}.dropdown-content{display:none;position:absolute;top:calc(100% + 6px);left:0;background:#2d3748;width:320px;box-shadow:0 8px 24px #00000080;border:1px solid #1a202c;border-radius:8px;z-index:1003;padding:14px}.dropdown-content.show{display:block}.flow-name-input,.flow-description-input{width:100%;padding:8px 10px;border:1px solid #1a202c;border-radius:6px;font-size:12px;font-family:Inter,sans-serif;margin-bottom:8px;box-sizing:border-box;background:#1a202c;color:#fff;min-height:36px;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.flow-name-input::placeholder,.flow-description-input::placeholder{color:#64748b}.flow-name-input:hover,.flow-description-input:hover{border-color:#64748b;background:#2d3748}.flow-name-input:focus,.flow-description-input:focus{outline:none;border-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee26;background:#1a202c}.flow-description-input{height:50px;min-height:50px;resize:vertical;font-family:Inter,sans-serif}.dropdown-label{font-size:11px;color:#94a3b8;margin-bottom:4px;font-weight:500;display:block}body{padding-top:48px}#sidebar{top:48px;height:calc(100vh - 48px)}body.flows-editor #main-content{position:absolute;top:48px;left:0;right:220px;bottom:0;height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}body.flows-editor #drawflow{flex:1;background-color:#fafafa;background-image:linear-gradient(0deg,transparent 24%,rgba(0,0,0,.02) 25%,rgba(0,0,0,.02) 26%,transparent 27%),linear-gradient(90deg,transparent 24%,rgba(0,0,0,.02) 25%,rgba(0,0,0,.02) 26%,transparent 27%);background-size:40px 40px;transition:height .3s ease;z-index:5;position:relative;border-right:1px solid #dee2e6}body.flows-editor .terminal-panel{height:300px;background:#1e1e1e;border-top:2px solid #333;border-right:1px solid #444;display:flex;flex-direction:column;transition:height .3s ease;z-index:10;position:relative;width:100%;max-width:calc(100vw - 220px);box-sizing:border-box}body.flows-editor .terminal-panel.hidden{height:0;overflow:hidden;border-top:none}body.flows-editor .terminal-panel.minimized{height:40px}body.flows-editor .terminal-header{background:#2d2d2d;color:#fff;padding:8px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #444;min-height:40px}body.flows-editor .terminal-header h3{margin:0;font-size:14px;font-weight:500}body.flows-editor .terminal-toggle{background:#444;border:none;color:#fff;font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;width:24px;height:24px;display:flex;align-items:center;justify-content:center}body.flows-editor .terminal-toggle:hover{background:#555}body.flows-editor .terminal-body{flex:1;display:flex;flex-direction:column;padding:12px;min-height:0}body.flows-editor .terminal-panel.minimized .terminal-body{display:none}body.flows-editor .terminal-output{flex:1;background:#000;color:#0f0;font-family:Courier New,monospace;font-size:13px;padding:10px;border-radius:4px;overflow-y:auto;margin-bottom:8px;white-space:pre-wrap;min-height:200px}body.flows-editor .terminal-line{margin-bottom:2px;line-height:1.4}body.flows-editor .terminal-input-container{display:flex;align-items:center;background:#000;border-radius:4px;padding:6px 10px;border:1px solid #333}body.flows-editor .terminal-prompt{color:#0f0;font-family:Courier New,monospace;margin-right:8px;font-size:13px}body.flows-editor .terminal-input{flex:1;background:transparent;border:none;color:#0f0;font-family:Courier New,monospace;font-size:13px;outline:none}body.flows-editor .terminal-input::placeholder{color:#666}body.flows-editor .parent-node{height:0!important}#sidebar{position:fixed;right:0;width:220px;background:#f8f9fa;border-left:1px solid #dee2e6;padding:15px;overflow-y:auto;z-index:1000;box-shadow:-2px 0 5px #0000001a}#node-panel{margin-bottom:20px}#node-panel strong{display:block;margin-bottom:10px;color:#2c3e50;font-size:14px}.node-category{margin-bottom:15px;border:1px solid #dee2e6;border-radius:4px;background:#fff}.node-category h4{margin:0;padding:8px 12px;background:#e9ecef;color:#495057;font-size:12px;font-weight:600;border-bottom:1px solid #dee2e6}.node-category button{display:block;width:100%;padding:8px 12px;border:none;background:#fff;color:#333;text-align:left;cursor:pointer;font-size:12px;border-bottom:1px solid #f8f9fa;transition:background-color .2s}.node-category button:hover{background:#f8f9fa}.node-category button{position:relative}.node-category button:after{content:attr(data-tooltip);position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:10px;padding:8px 12px;background:#333;color:#fff;border-radius:4px;font-size:11px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000;pointer-events:none;max-width:200px;white-space:normal;word-wrap:break-word;box-shadow:0 2px 8px #0003}.node-category button:before{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:4px;border:5px solid transparent;border-right-color:#333;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000;pointer-events:none}.node-category button:hover:after,.node-category button:hover:before{opacity:1;visibility:visible}.node-category button:last-child:after{top:auto;bottom:0;transform:translateY(0)}.node-category button:last-child:before{top:auto;bottom:10px;transform:translateY(0)}.notification{position:fixed;bottom:15px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:4px;color:#fff;font-size:14px;z-index:1002;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.drawflow{position:fixed;top:48px;left:0;right:220px;height:calc(100vh - 48px);background:#f8f9fa}body.flows-editor .drawflow .drawflow-node{min-width:180px;max-width:220px;width:auto;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}body.flows-editor .drawflow .drawflow-node:has(.input-labels),body.flows-editor .drawflow .drawflow-node:has(.output-labels){min-width:220px}body.flows-editor .drawflow .drawflow-node:has(.input-labels):has(.output-labels){min-width:260px;height:auto;overflow:visible;word-wrap:break-word;position:relative}body.flows-editor .drawflow .drawflow-node .drawflow-node-inputs,body.flows-editor .drawflow .drawflow-node .drawflow-node-outputs{display:flex!important;flex-direction:column!important;gap:8px!important;justify-content:center!important}body.horizontal .drawflow-node .drawflow-node-input{position:absolute!important;left:-12px!important;top:auto!important;right:auto!important;bottom:auto!important;transform:none!important}body.horizontal .drawflow-node .drawflow-node-output{position:absolute!important;right:-12px!important;top:auto!important;left:auto!important;bottom:auto!important;transform:none!important}body.flows-editor .drawflow .drawflow-node input,body.flows-editor .drawflow .drawflow-node select{border:1px solid #2a2a4a;border-radius:6px;padding:6px 10px;min-width:50px;max-width:100px;margin:1px 0;font-size:13px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#2d3748;color:#e2e8f0;transition:border-color .2s ease,box-shadow .2s ease}body.flows-editor .drawflow .drawflow-node input::placeholder{color:#64748b}body.flows-editor .drawflow .drawflow-node input:focus,body.flows-editor .drawflow .drawflow-node select:focus{outline:none;border-color:#22d3ee;box-shadow:0 0 0 2px #63b3ed40}body.flows-editor .drawflow .drawflow-node .node-file-trigger,.drawflow .drawflow-node .node-file-trigger,.flow-node .node-file-trigger{display:inline-flex;align-items:center;justify-content:center;position:relative;padding:6px 10px;font-size:12px;cursor:pointer;flex-shrink:0;border-radius:6px;border:1px solid #64748B;background:#2a2a4a;color:#e2e8f0}body.flows-editor .drawflow .drawflow-node .node-file-trigger:hover,.flow-node .node-file-trigger:hover{background:#2d3748;border-color:#22d3ee}body.flows-editor .drawflow .drawflow-node .node-file-trigger input[type=file],.drawflow .drawflow-node .node-file-trigger input[type=file],.flow-node .node-file-trigger input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0;font-size:0}body.flows-editor .drawflow .drawflow-node .node-file-trigger.node-file-trigger--icon,.drawflow .drawflow-node .node-file-trigger.node-file-trigger--icon,.flow-node .node-file-trigger.node-file-trigger--icon{width:30px;height:30px;padding:0}body.flows-editor .drawflow .drawflow-node .node-file-trigger .node-file-trigger-icon,.drawflow .drawflow-node .node-file-trigger .node-file-trigger-icon,.flow-node .node-file-trigger .node-file-trigger-icon{font-size:16px;line-height:1;pointer-events:none}body.flows-editor .drawflow .drawflow-node .cuerpo .file-param-block,.flow-node .file-param-block{display:block;margin-bottom:8px}body.flows-editor .drawflow .drawflow-node .cuerpo .file-param-block .file-param-label,.flow-node .file-param-block .file-param-label{display:block;margin-bottom:4px}body.flows-editor .drawflow .drawflow-node .cuerpo .file-input-row,.drawflow .drawflow-node .cuerpo .file-input-row,.flow-node .file-input-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}body.flows-editor .drawflow .drawflow-node .cuerpo .file-input-row input:not([type=file]),.drawflow .drawflow-node .cuerpo .file-input-row input:not([type=file]),.flow-node .file-input-row input:not([type=file]){flex:1;min-width:80px}.flow-node .node-file-trigger .node-file-trigger-text{pointer-events:none}body.flows-editor .drawflow .drawflow-node .cuerpo{background:linear-gradient(135deg,#e3f2fd,#f0f8ff);border:2px solid #2196f3;border-radius:6px;padding:8px;min-width:120px;width:auto;height:auto;min-height:60px;display:block;box-sizing:border-box;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}body.flows-editor .drawflow .drawflow-node:has(.input-labels):not(:has(.input-labels-inline)) .cuerpo{padding-left:70px}body.flows-editor .drawflow .drawflow-node:has(.input-labels):not(:has(.input-labels-inline)) .drawflow-node-content,body.flows-editor .drawflow .drawflow-node:has(.input-labels):not(:has(.input-labels-inline)) .node-body{padding-left:70px}body.flows-editor .drawflow .drawflow-node:has(.output-labels) .cuerpo{padding-right:70px}body.flows-editor .drawflow .drawflow-node:has(.output-labels) .drawflow-node-content,body.flows-editor .drawflow .drawflow-node:has(.output-labels) .node-body{padding-right:70px}body.flows-editor .drawflow .drawflow-node:has(.input-labels):has(.output-labels):not(:has(.input-labels-inline)) .cuerpo{padding-left:70px;padding-right:70px}body.flows-editor .drawflow .drawflow-node:has(.input-labels):has(.output-labels):not(:has(.input-labels-inline)) .drawflow-node-content,body.flows-editor .drawflow .drawflow-node:has(.input-labels):has(.output-labels):not(:has(.input-labels-inline)) .node-body{padding-left:70px;padding-right:70px}body.flows-editor .drawflow .drawflow-node .drawflow-node-input,body.flows-editor .drawflow .drawflow-node .drawflow-node-output,body.flows-editor .drawflow .drawflow-node .drawflow-node-inputs .input,body.flows-editor .drawflow .drawflow-node .drawflow-node-outputs .output{width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;background:#fff!important;border:2px solid #1976d2!important;border-radius:50%!important;box-shadow:0 1px 3px #0003!important;cursor:pointer!important;transition:all .2s!important}body.flows-editor .drawflow .drawflow-node .drawflow-node-input:hover,body.flows-editor .drawflow .drawflow-node .drawflow-node-output:hover,body.flows-editor .drawflow .drawflow-node .drawflow-node-inputs .input:hover,body.flows-editor .drawflow .drawflow-node .drawflow-node-outputs .output:hover{background:#1976d2!important;transform:scale(1.2)!important}body.flows-editor .drawflow .drawflow-node .input-labels{position:absolute;left:8px;top:10px;height:80%;display:flex;flex-direction:column;gap:8px;justify-content:center;align-items:flex-start;pointer-events:none;z-index:10;max-width:60px}body.flows-editor .drawflow .drawflow-node .input-labels-inline{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:2px 0}body.flows-editor .drawflow .drawflow-node .input-label-inline{display:flex;align-items:center;gap:3px;background:#1976d214;padding:1px 4px;border-radius:3px;border:1px solid rgba(25,118,210,.25);min-width:0}body.flows-editor .drawflow .drawflow-node .input-label-inline .input-label-text{font-size:9px;font-weight:700;color:#1976d2;white-space:nowrap}body.flows-editor .drawflow .drawflow-node .input-label-inline .drawflow-node-input{position:static!important;margin:0!important}body.flows-editor .drawflow .drawflow-node .input-label{background:#1976d2e6;color:#fff;padding:2px 6px;margin-top:0;border-radius:3px;font-size:10px;font-weight:700;white-space:nowrap;text-align:center;min-width:30px;opacity:.8;transition:opacity .2s;margin-left:5px}body.flows-editor .drawflow .drawflow-node .input-label:hover{opacity:1}body.flows-editor .drawflow .drawflow-node .output-labels{position:absolute;right:8px;top:10px;height:80%;display:flex;flex-direction:column;gap:8px;justify-content:center;align-items:flex-end;pointer-events:none;z-index:10;max-width:60px}body.flows-editor .drawflow .drawflow-node .output-label{background:#000c;color:#fff;padding:2px 6px;margin-top:0;border-radius:3px;font-size:10px;font-weight:700;white-space:nowrap;text-align:center;min-width:30px;opacity:.8;transition:opacity .2s;margin-right:5px}body.flows-editor .drawflow .drawflow-node .output-label:hover{opacity:1}@keyframes slideIn{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.notification{position:fixed;bottom:15px;left:50%;transform:translate(-50%);background:#4caf50;color:#fff;padding:8px 16px;border-radius:4px;z-index:1000;font-weight:500;box-shadow:0 2px 8px #0003;animation:slideIn .3s ease}.notification.error{background:#e53935}.terminal-panel{position:fixed;bottom:0;left:0;right:0;height:200px;background:#1e1e1e;color:#fff;border-top:1px solid #333;z-index:1000;transition:transform .3s ease}.terminal-panel.hidden{transform:translateY(100%)}.terminal-panel.minimized{height:40px}.terminal-header{display:flex;justify-content:space-between;align-items:center;padding:8px 15px;background:#2d2d2d;border-bottom:1px solid #444}.terminal-title{font-size:12px;font-weight:600;color:#fff}.terminal-toggle{background:none;border:none;color:#fff;cursor:pointer;font-size:16px;padding:2px 8px;border-radius:3px}.terminal-toggle:hover{background:#444}.terminal-output{height:calc(100% - 80px);overflow-y:auto;padding:10px 15px;font-family:Courier New,monospace;font-size:12px;line-height:1.4}.terminal-line{margin-bottom:2px;word-wrap:break-word}.terminal-input-container{display:flex;padding:8px 15px;background:#2d2d2d;border-top:1px solid #444}.terminal-prompt{color:#4caf50;margin-right:8px;font-family:Courier New,monospace}.terminal-input{flex:1;background:transparent;border:none;color:#fff;font-family:Courier New,monospace;font-size:12px;outline:none}.terminal-input::placeholder{color:#666}.head-node-body{min-width:300px;max-width:500px}.head-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px;flex-wrap:wrap}.head-controls label{font-size:12px;display:flex;align-items:center;gap:4px}.head-controls input[type=number]{padding:6px 10px;border:1px solid #2a2a4a;border-radius:6px;font-size:12px;background:#2d3748;color:#e2e8f0;min-height:28px;transition:border-color .2s ease,box-shadow .2s ease}.head-controls input[type=number]:focus{outline:none;border-color:#22d3ee;box-shadow:0 0 0 2px #63b3ed40}.head-view-btn{background:#2196f3;color:#fff;border:none;border-radius:3px;padding:4px 8px;font-size:11px;cursor:pointer;transition:background .2s}.head-view-btn:hover{background:#1976d2}.head-preview{max-height:300px;overflow-y:auto;border:1px solid #ddd;border-radius:4px;background:#fff;padding:4px;margin-top:4px}.head-placeholder{padding:20px;text-align:center;color:#999;font-size:12px;font-style:italic}.head-error{padding:10px;text-align:center;color:#d32f2f;font-size:12px;background:#ffebee;border-radius:3px}.head-empty{padding:20px;text-align:center;color:#999;font-size:12px}.head-table{width:100%;border-collapse:collapse;font-size:11px;margin:0}.head-table th{background:#f5f5f5;padding:4px 6px;text-align:left;font-weight:600;border-bottom:1px solid #ddd;position:sticky;top:0;z-index:1}.head-table td{padding:3px 6px;border-bottom:1px solid #f0f0f0;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.head-table tbody tr:hover{background:#f5f5f5}.head-info{margin-top:4px;padding:4px;font-size:10px;color:#666;text-align:center;border-top:1px solid #eee}body.editor{--ed-rail: 57px}body.editor #main-content{position:absolute;top:48px;left:var(--ed-left, 220px);right:0;bottom:0;height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;transition:left .3s ease,right .3s ease}body.editor.sidebar-left-hidden #main-content{left:var(--ed-rail, 57px)}body.editor.chat-open #main-content{right:var(--ed-right, 360px)}body.editor #drawflow{flex:1;background-color:#1a202c;background-image:linear-gradient(0deg,transparent 24%,rgba(255,255,255,.03) 25%,rgba(255,255,255,.03) 26%,transparent 27%),linear-gradient(90deg,transparent 24%,rgba(255,255,255,.03) 25%,rgba(255,255,255,.03) 26%,transparent 27%);background-size:40px 40px;position:relative;z-index:5}body.editor .drawflow .drawflow-node{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}body.editor .drawflow .drawflow-node strong{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600}body.editor .drawflow .drawflow-node input,body.editor .drawflow .drawflow-node select,body.editor .drawflow .drawflow-node textarea{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}body.editor .drawflow .drawflow-node .cuerpo,body.editor .drawflow .drawflow-node .drawflow-node-content{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.editor .sidebar{position:fixed;top:48px;width:220px;background:#2d3748;padding:0;overflow-y:auto;overflow-x:hidden;z-index:1000;height:calc(100vh - 48px);transition:transform .3s ease,opacity .3s ease,width .3s ease;box-sizing:border-box;color:#94a3b8}body.editor #sidebar-left{left:0;width:var(--ed-left, 220px);border-right:1px solid #1a202c}body.editor #sidebar-right{right:0;border-left:1px solid #1a202c}body.editor .sidebar.hidden{transform:translate(-100%);opacity:0;pointer-events:none;visibility:hidden;box-shadow:none!important;background:transparent!important}body.editor #sidebar-left.hidden{width:var(--ed-rail, 57px);transform:none;opacity:1;visibility:visible;pointer-events:auto;background:#121824!important;box-shadow:none!important}body.editor #sidebar-left.hidden .sb-panel{opacity:0;pointer-events:none}body.editor #sidebar-right.hidden{transform:translate(100%);opacity:0;pointer-events:none;visibility:hidden;box-shadow:none!important;background:transparent!important;border-left:none!important}body.editor .sidebar-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:none;background:#2d3748;flex-shrink:0}body.editor .sidebar-header-icon{font-size:14px;color:#64748b;flex-shrink:0}body.editor .sidebar-header-title{font-size:11px;font-weight:600;color:#64748b;letter-spacing:2px;text-transform:uppercase;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.editor .sidebar-close-btn{background:transparent;border:none;color:#475569;cursor:pointer;padding:4px;border-radius:4px;transition:background .2s,color .2s;font-size:11px;line-height:1;width:22px;height:22px;min-width:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}body.editor .sidebar-close-btn:hover{background:#fc818126;color:#fc8181}#flow-node-panel,#layer-panel{margin-top:0}.flow-node-category{margin-bottom:4px;border:1px solid #1a202c;border-radius:6px;background:#1a202c;overflow:hidden}.flow-node-category h4{margin:0;padding:7px 10px;background:#1a202c;color:#94a3b8;font-size:11px;font-weight:600;border-bottom:1px solid #1a202c;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s}.flow-node-category h4:hover{background:#2d3748;color:#fff}.flow-node-category button{display:block;width:100%;padding:5px 10px;border:none;background:#1a202c;color:#94a3b8;text-align:left;cursor:pointer;font-size:11px;border-bottom:1px solid rgba(15,23,42,.5);transition:background-color .15s,color .15s}.flow-node-category button:hover{background:#2d3748;color:#fff}.flow-node-category button:last-child{border-bottom:none}.node-category{margin-bottom:4px;border:1px solid #1a202c;border-radius:6px;background:#1a202c;overflow:hidden}.node-category h4{margin:0;padding:7px 10px;background:#1a202c;color:#94a3b8;font-size:11px;font-weight:600;border-bottom:1px solid #1a202c;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s}.node-category h4:hover{background:#2d3748;color:#fff}.node-category button{display:block;width:100%;padding:5px 10px;border:none;background:#1a202c;color:#94a3b8;text-align:left;cursor:pointer;font-size:11px;border-bottom:1px solid rgba(15,23,42,.5);transition:background-color .15s,color .15s}.node-category button:hover{background:#2d3748;color:#fff}.node-category button:last-child{border-bottom:none}body.editor .layer-filter-container{padding:0 12px;margin-bottom:8px;border-bottom:none}body.editor .filter-input-wrapper{position:relative;display:flex;align-items:center}body.editor .filter-search-icon{position:absolute;left:10px;font-size:11px;color:#475569;pointer-events:none;z-index:1}body.editor .layer-filter-input{width:100%;height:32px;padding:0 10px 0 30px;border:1px solid #1a202c;border-radius:6px;font-size:12px;box-sizing:border-box;background:#1a202c;color:#94a3b8;transition:border-color .2s ease,box-shadow .2s ease;min-height:auto}body.editor .layer-filter-input::placeholder{color:#475569}body.editor .layer-filter-input:hover{border-color:#2d3748;background:#1a202c}body.editor .layer-filter-input:focus{outline:none;border-color:#22d3ee;box-shadow:0 0 0 1px #22d3ee33;background:#1a202c}body.editor .node-section{margin-bottom:0!important;border:none!important;border-radius:0;background:#2d3748;overflow:hidden;box-shadow:none!important}body.editor .node-section+.node-section{margin-top:2px!important}body.editor .node-section:hover{box-shadow:none!important}body.editor .section-header{display:flex;align-items:center;margin:0;padding:7px 12px!important;background:transparent!important;color:#64748b!important;font-size:10px!important;font-weight:600;border:none!important;cursor:pointer;-webkit-user-select:none;user-select:none;gap:8px;transition:background .15s!important;letter-spacing:1.5px;text-transform:uppercase}body.editor .section-header:hover{background:#0f172a80!important}body.editor .section-chevron{font-size:12px;color:#475569;flex-shrink:0;width:12px;text-align:center;transition:color .15s}body.editor .section-icon{display:none!important;width:0;height:0;overflow:hidden;margin:0;padding:0}body.editor .section-title{flex:1;min-width:0;font-weight:600;font-size:10px!important;color:#64748b!important;letter-spacing:1.5px;text-transform:uppercase;border:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.editor .section-count{font-size:10px;font-family:JetBrains Mono,monospace;color:#64748b;background:#1a202c;padding:1px 6px;border-radius:4px;flex-shrink:0;line-height:1.4}body.editor .section-toggle,.node-section.collapsed .section-toggle{display:none}body.editor .section-content{padding:0!important;display:flex;flex-direction:column;gap:0}.section-content:empty{display:none}body.editor .loading-message{text-align:center;padding:20px;color:#475569;font-size:12px}body.editor .layer-button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 32px;border:none;background:transparent;color:#94a3b8;text-align:left;cursor:pointer;font-size:12px;font-family:JetBrains Mono,monospace;font-weight:500;border-bottom:none;transition:background .15s;margin-bottom:0!important;border-radius:0!important;line-height:1.5}body.editor .layer-button:hover{background:#0f172a80;border-color:transparent!important;transform:none!important}body.editor .layer-button:last-child{border-bottom:none}body.editor .node-item-icon{font-size:14px;color:#22d3ee;flex-shrink:0;width:14px;text-align:center}body.editor .node-item-name{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;color:#94a3b8}.empty-section{padding:12px 32px;text-align:left;color:#475569;font-size:11px;font-style:italic}.sidebar-toggle{padding:8px 14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;box-shadow:0 2px 4px #667eea4d;position:relative;overflow:hidden}.flow-info-dropdown .sidebar-toggle{padding:8px 14px;background:#1a202c;color:#e2e8f0;border:1px solid #4a5568;border-radius:3px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;box-shadow:none;position:relative;overflow:visible;min-width:36px}.flow-info-dropdown .sidebar-toggle:hover{background:#4a5568;border-color:#718096;transform:none;box-shadow:none}.sidebar-toggle:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.sidebar-toggle:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 4px 8px #667eea66;transform:translateY(-1px)}.sidebar-toggle:hover:before{width:300px;height:300px}.sidebar-toggle:active{transform:translateY(0);box-shadow:0 2px 4px #667eea4d}.sidebar-toggle i,.flow-info-dropdown .sidebar-toggle i{font-size:11px;position:relative;z-index:1}.sidebar-toggle span{position:relative;z-index:1}.flow-info-dropdown .sidebar-toggle:before{content:none}.flow-info-dropdown .sidebar-toggle:hover,.flow-info-dropdown .sidebar-toggle:active{background:#4a5568;border-color:#718096;box-shadow:none;transform:none}.sidebar-show-btn{position:fixed;top:50%;left:0;transform:translateY(-50%);z-index:1001;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:0 12px 12px 0;padding:24px 10px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 12px #667eea66;min-width:48px;display:flex;align-items:center;justify-content:center}.sidebar-show-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.sidebar-show-btn:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:6px 0 16px #667eea99;transform:translateY(-50%) translate(4px);padding-left:14px}.sidebar-show-btn:hover:before{left:100%}.sidebar-show-btn i{font-size:18px;position:relative;z-index:1;transition:transform .3s}.sidebar-show-btn:hover i{transform:scale(1.2)}.sidebar-show-btn-right{left:auto;right:0;border-radius:12px 0 0 12px;box-shadow:-4px 0 12px #667eea66}.sidebar-show-btn-right:hover{padding-left:10px;padding-right:14px;transform:translateY(-50%) translate(-4px)}body.editor.flows-editor #main-content{left:var(--ed-left, 220px);right:0}body.editor.flows-editor.sidebar-left-hidden #main-content{left:var(--ed-rail, 57px)}body.editor.flows-editor.chat-open #main-content{right:var(--ed-right, 360px)}body.ed-resizing #main-content,body.ed-resizing #sidebar-left,body.ed-resizing .chat-panel{transition:none!important}body.editor.flows-editor #drawflow{border-right:none}.menu-buttons .btn-menu{padding:6px 12px;background:#1a202c;color:#e2e8f0;border:1px solid #4a5568;border-radius:3px;cursor:pointer;font-size:12px;transition:all .2s}.menu-buttons .btn-menu:hover{background:#4a5568;border-color:#718096}.menu-buttons .btn-menu:active{background:#4a5568}.menu-buttons .sidebar-toggle.btn-menu-icon{padding:0;width:32px;height:32px;min-width:32px;border-radius:3px;border:1px solid #4a5568;background:#1a202c;color:#e2e8f0;box-shadow:none;transform:none;overflow:visible;gap:0}.menu-buttons .sidebar-toggle.btn-menu-icon:before{content:none}.menu-buttons .sidebar-toggle.btn-menu-icon:hover{background:#4a5568;border-color:#718096;box-shadow:none;transform:none}.menu-buttons .sidebar-toggle.btn-menu-icon:active{background:#4a5568;transform:none;box-shadow:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#1a1a2e;color:#e2e8f0;border:1px solid #2a2a4a;border-radius:8px;box-shadow:0 10px 40px #00000073;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-content.sources-modal{width:70vw;max-width:1100px;height:94vh;background:#1a1a2e;color:#e2e8f0}.sources-modal .modal-header{background:#16213e;border-bottom:1px solid #2a2a4a;padding:14px 24px}.sources-modal .modal-header h3{color:#e2e8f0}.sources-modal .modal-close{color:#a0aec0}.sources-modal .modal-close:hover{color:#e2e8f0;background:#2a2a4a}.modal-content.dataviz-modal{width:96vw;max-width:1800px;height:94vh;background:#1a1a2e;color:#e2e8f0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #2a2a4a;background:#16213e}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#e2e8f0;display:flex;align-items:center;gap:10px}.modal-header h3 i{color:#667eea}.modal-close{background:none;border:none;font-size:28px;color:#a0aec0;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#2a2a4a;color:#e2e8f0}.modal-body{flex:1;overflow:auto;padding:24px}.modal-body.sources-modal-body,.modal-body.dataviz-modal-body{padding:0;overflow:hidden;background:#1a1a2e}#sources-integrated-container,#dataviz-integrated-container{width:100%;height:100%;overflow:auto}.sources-modal-body .sources-container{height:100%;display:flex;flex-direction:column}.sources-modal-body .main-content{flex:1;overflow:auto}.dataviz-modal-body .dataviz-integrated{height:100%;display:flex;flex-direction:column}.dataviz-modal-body .welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#6c757d}.dataviz-modal-body .table-container{flex:1;overflow:auto;padding:20px}:root{--primary: #3498db;--primary-dark: #2980b9;--success: #27ae60;--success-dark: #229954;--warning: #f39c12;--warning-dark: #e67e22;--danger: #e74c3c;--danger-dark: #c0392b;--info: #17a2b8;--info-dark: #138496;--secondary: #95a5a6;--secondary-dark: #7f8c8d;--text-primary: #2c3e50;--text-secondary: #6c757d;--text-muted: #7f8c8d;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #f5f7fa;--border-color: #e1e5e9;--border-radius: 12px;--border-radius-sm: 8px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--spacing-xs: 6px;--spacing-sm: 10px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{margin:0;padding:0}.sources-container{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f7fa;min-height:100vh;padding:0;color:var(--text-primary);line-height:1.6;display:flex;flex-direction:column}.page-header{background:#fff;border-bottom:1px solid #e1e5e9;box-shadow:0 2px 4px #0000001a;padding:15px 30px;flex-shrink:0}.header-content{display:flex;justify-content:space-between;align-items:center}.header-title{display:flex;align-items:center;gap:var(--spacing-lg)}.header-icon{width:56px;height:56px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;box-shadow:var(--shadow-md)}.page-header h1{margin:0;font-size:20px;font-weight:600;color:#2c3e50;letter-spacing:-.5px}.header-subtitle{margin:var(--spacing-xs) 0 0 0;color:var(--text-secondary);font-size:15px;font-weight:400}.main-content{display:grid;grid-template-columns:320px 1fr;gap:0;flex:1;overflow:hidden}.sources-sidebar{background:#fff;border-right:1px solid #e1e5e9;height:100%;overflow-y:auto;display:flex;flex-direction:column}.sidebar-card{background:transparent;border-radius:0;box-shadow:none;overflow:hidden;height:100%;display:flex;flex-direction:column}.sidebar-header{padding:15px 20px;background:#fff;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.sidebar-title{display:flex;align-items:center;gap:var(--spacing-sm)}.sidebar-title i{color:var(--primary);font-size:18px}.sidebar-title h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.btn-icon{width:36px;height:36px;border:none;background:var(--bg-secondary);border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:var(--transition)}.btn-icon:hover{background:var(--primary);color:#fff;transform:rotate(180deg)}.sidebar-body{padding:15px 20px;flex:1;overflow-y:auto}.empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--text-muted)}.empty-state i{font-size:48px;color:var(--border-color);margin-bottom:var(--spacing-md);display:block}.empty-state p{margin:0 0 var(--spacing-xs) 0;font-size:15px;font-weight:500;color:var(--text-secondary)}.empty-state small{font-size:13px;color:var(--text-muted)}.editor-panel{background:#fff;border-radius:0;box-shadow:none;overflow-y:auto;height:100%;display:flex;flex-direction:column}.editor-header{padding:15px 30px;background:#fff;border-bottom:1px solid #e1e5e9;flex-shrink:0}.editor-header h2{margin:0;font-size:22px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.editor-header i{color:var(--primary)}.editor-body{padding:20px 30px;flex:1;overflow-y:auto}.tab-navigation{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.tab-button{padding:var(--spacing-md) var(--spacing-lg);border:none;background:transparent;border-bottom:3px solid transparent;cursor:pointer;font-size:15px;font-weight:500;color:var(--text-secondary);transition:var(--transition);display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:-2px}.tab-button:hover{color:var(--primary);background:#3498db0d}.tab-button.active{color:var(--primary);border-bottom-color:var(--primary);background:#3498db0d}.tab-button i{font-size:16px}.tab-content-container{position:relative}.tab-panel{display:none;animation:fadeIn .3s ease}.tab-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.panel-header{display:flex;align-items:flex-start;gap:15px;margin-bottom:20px;padding-bottom:15px}.panel-icon{width:40px;height:40px;background:#3498db;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex-shrink:0}.panel-header h3{margin:0 0 5px;font-size:18px;font-weight:600;color:#2c3e50}.panel-header p{margin:0;color:#6c757d;font-size:14px;line-height:1.5}.panel-header code{background:var(--bg-secondary);padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:12px;color:var(--primary)}.form-section{background:transparent;border-radius:0;padding:0;margin-bottom:0;border:none}.section-icon{width:36px;height:36px;background:var(--primary);border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px}.section-title h4{margin:0;font-size:17px;font-weight:600;color:var(--text-primary)}.form{margin-top:var(--spacing-lg)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-field{display:flex;flex-direction:column}.form-field-large{grid-column:span 2}.form-label{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);font-weight:600;font-size:14px;color:var(--text-primary)}.form-label i{color:var(--primary);font-size:14px}.input,.select,.textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:14px;font-family:inherit;transition:var(--transition);background:var(--bg-primary);color:var(--text-primary)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3498db1a}.textarea{resize:vertical;min-height:100px;font-family:Courier New,monospace;font-size:13px}.form-hint{display:block;margin-top:var(--spacing-xs);font-size:12px;color:var(--text-muted);line-height:1.4}.file-upload-wrapper{position:relative}.file-input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.file-upload-display{border:2px dashed var(--border-color);border-radius:var(--border-radius-sm);padding:var(--spacing-xl);text-align:center;background:var(--bg-primary);transition:var(--transition);cursor:pointer}.file-upload-wrapper:hover .file-upload-display,.file-input:focus+.file-upload-display{border-color:var(--primary);background:#3498db0d}.file-upload-display i{font-size:32px;color:var(--primary);margin-bottom:var(--spacing-sm);display:block}.file-upload-text{color:var(--text-secondary);font-size:14px;font-weight:500}.checkbox-wrapper{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)}.checkbox-wrapper input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary)}.checkbox-label{margin:0;font-weight:500;font-size:14px;color:var(--text-primary);cursor:pointer}.info-box{padding:var(--spacing-md);border-radius:var(--border-radius-sm);margin-top:var(--spacing-md);display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:13px;line-height:1.6}.info-box i{font-size:18px;margin-top:2px;flex-shrink:0}.info-primary{background:#e7f3ff;border-left:4px solid var(--primary);color:#0c5460}.info-primary i{color:var(--primary)}.info-success{background:#d4edda;border-left:4px solid var(--success);color:#155724}.info-success i{color:var(--success)}.info-warning{background:#fff3cd;border-left:4px solid var(--warning);color:#856404}.info-warning i{color:var(--warning)}.info-box strong{font-weight:600}.info-box code{background:#0000000d;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:11px}.info-item{margin-bottom:var(--spacing-xs)}.info-item:last-child{margin-bottom:0}.divider{display:flex;align-items:center;text-align:center;margin:var(--spacing-lg) 0;color:var(--text-muted)}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.divider-text{padding:0 var(--spacing-md);font-weight:600;font-size:14px;background:var(--bg-tertiary)}.btn{padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--border-radius-sm);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:var(--spacing-sm);transition:var(--transition);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-success{background:linear-gradient(135deg,var(--success),var(--success-dark));color:#fff;box-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-warning{background:linear-gradient(135deg,var(--warning),var(--warning-dark));color:#fff;box-shadow:var(--shadow-sm)}.btn-warning:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-danger{background:linear-gradient(135deg,var(--danger),var(--danger-dark));color:#fff;box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-info{background:linear-gradient(135deg,var(--info),var(--info-dark));color:#fff;box-shadow:var(--shadow-sm)}.btn-info:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--secondary);color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--secondary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:12px}.btn-large{padding:var(--spacing-md) var(--spacing-xl);font-size:16px}.form-actions{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.source-card{background:var(--bg-primary);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md);border:1px solid var(--border-color);transition:var(--transition);overflow:hidden}.source-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary)}.source-card-body{padding:var(--spacing-lg);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.source-info{flex:1}.source-title{margin:0 0 var(--spacing-xs) 0;font-size:16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.source-icon{font-size:20px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,#3498db1a,#3498db0d);border-radius:var(--border-radius-sm);flex-shrink:0}.source-details,.source-extra{margin:var(--spacing-xs) 0;font-size:13px;color:var(--text-secondary);line-height:1.5}.source-info p{margin:var(--spacing-xs) 0;font-size:13px;color:var(--text-secondary);line-height:1.4}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:var(--spacing-xs)}.badge-success{background:#27ae601a;color:var(--success)}.badge-secondary{background:#95a5a61a;color:var(--secondary-dark)}.source-actions{display:flex;flex-direction:column;gap:var(--spacing-xs);flex-shrink:0}.section-header{margin:var(--spacing-lg) 0 var(--spacing-md) 0;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-color);font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:var(--spacing-sm)}.section-header:first-child{margin-top:0}.section-header i{color:var(--primary);font-size:14px}.action-footer{background:#fff;border-top:1px solid #e1e5e9;border-radius:0;box-shadow:none;padding:15px 30px;margin-top:0}.action-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease}.modal-content{background-color:var(--bg-primary);margin:10% auto;padding:0;border-radius:var(--border-radius);width:90%;max-width:500px;box-shadow:var(--shadow-lg);animation:slideIn .3s ease;overflow:hidden}.modal-content.large{max-width:800px}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:var(--spacing-xl);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--bg-secondary),var(--bg-primary))}.modal-header h5{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.modal-body{padding:var(--spacing-xl)}.modal-footer{padding:var(--spacing-xl);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--spacing-md);background:var(--bg-secondary)}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-muted);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:var(--transition)}.close-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-lg)}.stat-card{background:var(--bg-secondary);padding:var(--spacing-xl);border-radius:var(--border-radius-sm);text-align:center;border:1px solid var(--border-color);transition:var(--transition)}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.stat-card h4{margin:0 0 var(--spacing-sm) 0;font-size:32px;font-weight:700}.stat-card p{margin:0;color:var(--text-secondary);font-size:13px;font-weight:500}.stat-total{color:var(--primary)}.stat-api{color:var(--danger)}.stat-simulation{color:var(--warning)}.stat-file{color:var(--success)}.stat-enabled{color:#9b59b6}.stat-disabled{color:var(--secondary)}.notification{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-sm);color:#fff;font-weight:500;z-index:2000;box-shadow:var(--shadow-lg);animation:slideInNotification .3s ease;display:flex;align-items:center;gap:var(--spacing-sm);min-width:300px}.notification-success{background:linear-gradient(135deg,var(--success),var(--success-dark))}.notification-error{background:linear-gradient(135deg,var(--danger),var(--danger-dark))}.notification-warning{background:linear-gradient(135deg,var(--warning),var(--warning-dark))}.notification-info{background:linear-gradient(135deg,var(--info),var(--info-dark))}@keyframes slideInNotification{0%{transform:translate(120%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 1024px){.main-content{grid-template-columns:1fr}.sources-sidebar{position:static}}@media (max-width: 768px){.sources-container{padding:var(--spacing-md)}.page-header{padding:var(--spacing-lg)}.page-header h1{font-size:24px}.form-grid{grid-template-columns:1fr}.form-field-large{grid-column:span 1}.action-buttons{flex-direction:column}.action-buttons .btn{width:100%;justify-content:center}.source-card-body{flex-direction:column}.source-actions{flex-direction:row;width:100%;justify-content:flex-end}.modal-content{width:95%;margin:5% auto}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.tab-navigation{flex-direction:column;border-bottom:none}.tab-button{border-bottom:none;border-left:3px solid transparent;margin-bottom:0}.tab-button.active{border-left-color:var(--primary);border-bottom:none}}.btn:focus,.input:focus,.select:focus,.textarea:focus,.tab-button:focus{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-contrast: high){.card,.sidebar-card,.editor-panel{border:2px solid var(--text-primary)}.btn{border:2px solid currentColor}.input,.select,.textarea{border:2px solid var(--text-primary)}}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f7fa;color:#2c3e50;line-height:1.6}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background:#fff;border-bottom:1px solid #e1e5e9;box-shadow:0 2px 4px #0000001a;padding:15px 30px;flex-shrink:0}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:100%}.app-header h1{font-size:20px;font-weight:600;color:#2c3e50;display:flex;align-items:center;gap:10px}.app-header h1 i{color:#3498db}.header-actions{display:flex;gap:10px}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover{background:#2980b9}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.welcome-screen{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;overflow-y:auto}.welcome-content{text-align:center;max-width:600px}.welcome-icon{font-size:64px;color:#3498db;margin-bottom:20px}.welcome-content h2{font-size:28px;margin-bottom:10px;color:#2c3e50}.welcome-content p{color:#7f8c8d;margin-bottom:30px;font-size:16px}.upload-area{border:3px dashed #3498db;border-radius:12px;padding:60px 40px;margin:30px 0;cursor:pointer;background:#f8f9fa;transition:all .3s}.upload-area:hover,.upload-area.drag-over{border-color:#2980b9;background:#e3f2fd;transform:translateY(-2px)}.upload-area i{font-size:48px;color:#3498db;margin-bottom:15px}.upload-area p{margin:5px 0;color:#2c3e50}.main-content{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px;max-width:100%;overflow:hidden;min-height:0}.data-section,.chart-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;overflow:hidden;min-height:0;max-height:100%;width:100%}.section-header{padding:15px 20px;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.section-header h2{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.dataset-stats{display:flex;gap:15px;font-size:13px;color:#7f8c8d}.dataset-stats span{display:flex;align-items:center;gap:5px}.table-container{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.table-controls{padding:15px 20px;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0}.search-box{flex:1;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #ddd;border-radius:6px;background:#f8f9fa}.search-box i{color:#7f8c8d}.search-input{flex:1;border:none;background:transparent;font-size:14px;outline:none}.page-size-select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer}.table-wrapper{flex:1;overflow-y:auto;overflow-x:auto;min-height:0}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table thead{background:#f8f9fa;position:sticky;top:0;z-index:10}.data-table th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #ddd;border-right:1px solid #e1e5e9}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background:#e9ecef}.th-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.sort-indicator{font-size:12px;color:#3498db}.column-filter{width:100%;padding:5px 8px;border:1px solid #ddd;border-radius:4px;font-size:11px;margin-top:5px}.column-filter:focus{outline:none;border-color:#3498db}.data-table tbody tr:hover{background:#f8f9fa}.data-table td{padding:10px 12px;border-bottom:1px solid #e1e5e9;border-right:1px solid #f0f0f0}.data-table td.no-data{text-align:center;color:#7f8c8d;padding:40px;font-style:italic}.pagination{padding:15px 20px;border-top:1px solid #e1e5e9;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0}.page-btn{padding:8px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;transition:all .2s}.page-btn:hover:not(:disabled){background:#3498db;color:#fff;border-color:#3498db}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{color:#7f8c8d;font-size:13px}.chart-controls{padding:20px;border-bottom:1px solid #e1e5e9;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;flex-shrink:0}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{font-weight:600;font-size:13px;color:#2c3e50}.control-group select{padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;cursor:pointer}.control-group select:focus{outline:none;border-color:#3498db}.radio-group{display:flex;flex-direction:column;gap:8px}.radio-group label{font-weight:400;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:13px}.chart-container{min-height:0;width:100%;max-width:100%}.chart-container #chart{width:100%!important;max-width:100%;height:100%;min-width:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:800px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d}.modal-header{padding:20px;border-bottom:1px solid #e1e5e9;display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:18px;font-weight:600;display:flex;align-items:center;gap:10px}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#7f8c8d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px}.modal-close:hover{background:#f0f0f0;color:#2c3e50}.modal-body{flex:1;overflow:auto;padding:20px}.dataset-search{margin-bottom:20px;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #ddd;border-radius:6px;background:#f8f9fa}.dataset-search i{color:#7f8c8d}.dataset-search input{flex:1;border:none;background:transparent;font-size:14px;outline:none}.datasets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px}.dataset-card{border:2px solid #e1e5e9;border-radius:8px;padding:20px;cursor:pointer;transition:all .2s;text-align:center}.dataset-card:hover{border-color:#3498db;transform:translateY(-2px);box-shadow:0 4px 12px #3498db33}.dataset-card i{font-size:32px;color:#27ae60;margin-bottom:10px}.dataset-card h4{font-size:14px;margin-bottom:10px;color:#2c3e50;word-break:break-word}.dataset-meta{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#7f8c8d}.dataset-meta span{display:flex;align-items:center;justify-content:center;gap:5px}.no-datasets{grid-column:1 / -1;text-align:center;padding:40px;color:#7f8c8d}.loading{text-align:center;padding:40px;color:#7f8c8d}.loading i{font-size:32px;margin-bottom:10px}@media (max-width: 1200px){.main-content{grid-template-columns:1fr}}@media (max-width: 768px){.header-content{flex-direction:column;gap:15px;align-items:stretch}.chart-controls,.datasets-grid{grid-template-columns:1fr}}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.dataviz-modal .modal-header{background:#16213e;border-bottom:1px solid #2a2a4a}.dataviz-modal .modal-header h3{color:#e2e8f0}.dataviz-modal .modal-close{color:#a0aec0}.dataviz-modal .modal-close:hover{background:#2a2a4a;color:#e2e8f0}.dataviz-modal .welcome-screen{background:#1a1a2e}.dataviz-modal .welcome-content h2{color:#e2e8f0}.dataviz-modal .welcome-content p{color:#718096}.dataviz-modal .upload-area{background:#0d1117;border-color:#2a2a4a}.dataviz-modal .upload-area:hover,.dataviz-modal .upload-area.drag-over{border-color:#3498db;background:#3498db14}.dataviz-modal .upload-area p{color:#a0aec0}.dataviz-modal .main-content{background:#1a1a2e}.dataviz-modal .data-section,.dataviz-modal .chart-section{background:#16213e;box-shadow:0 2px 8px #0000004d}.dataviz-modal .section-header{border-bottom-color:#2a2a4a}.dataviz-modal .section-header h2{color:#e2e8f0}.dataviz-modal .dataset-stats{color:#718096}.dataviz-modal .table-controls{border-bottom-color:#2a2a4a}.dataviz-modal .search-box{background:#0d1117;border-color:#2a2a4a}.dataviz-modal .search-box i{color:#4a5568}.dataviz-modal .search-input{color:#e2e8f0}.dataviz-modal .search-input::placeholder{color:#4a5568}.dataviz-modal .page-size-select{background:#0d1117;border-color:#2a2a4a;color:#e2e8f0}.dataviz-modal .data-table thead{background:#0d1117}.dataviz-modal .data-table th{color:#a0aec0;border-bottom-color:#2a2a4a;border-right-color:#2a2a4a}.dataviz-modal .data-table th.sortable:hover{background:#1a2332}.dataviz-modal .column-filter{background:#0d1117;border-color:#2a2a4a;color:#e2e8f0}.dataviz-modal .data-table tbody tr:hover{background:#3498db14}.dataviz-modal .data-table td{color:#cbd5e0;border-bottom-color:#1a2332;border-right-color:#1a2332}.dataviz-modal .data-table td.no-data{color:#4a5568}.dataviz-modal .pagination{border-top-color:#2a2a4a}.dataviz-modal .page-btn{background:#16213e;border-color:#2a2a4a;color:#a0aec0}.dataviz-modal .page-btn:hover:not(:disabled){background:#3498db;color:#fff;border-color:#3498db}.dataviz-modal .page-info{color:#718096}.dataviz-modal .chart-controls{border-bottom-color:#2a2a4a}.dataviz-modal .control-group label{color:#a0aec0}.dataviz-modal .control-group select{background:#0d1117;border-color:#2a2a4a;color:#e2e8f0}.dataviz-modal .radio-group label{color:#a0aec0}.dataviz-modal .modal-body{background:#1a1a2e}.dataviz-modal .dataset-search{background:#0d1117;border-color:#2a2a4a}.dataviz-modal .dataset-search i{color:#4a5568}.dataviz-modal .dataset-search input{color:#e2e8f0}.dataviz-modal .dataset-search input::placeholder{color:#4a5568}.dataviz-modal .dataset-card{background:#16213e;border-color:#2a2a4a}.dataviz-modal .dataset-card:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db4d}.dataviz-modal .dataset-card h4{color:#e2e8f0}.dataviz-modal .dataset-meta{color:#718096}.dataviz-modal .no-datasets,.dataviz-modal .loading{color:#4a5568}.dataviz-modal .app-header{background:#16213e;border-bottom-color:#2a2a4a;box-shadow:none}.dataviz-modal .app-header h1{color:#e2e8f0}.dataviz-modal .btn-secondary{background:#2a2a4a;color:#a0aec0}.dataviz-modal .btn-secondary:hover{background:#3a3a5a}body.editor.flows-editor{background:#1a202c}body.editor #main-content .vue-flow-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:0}#main-content .vue-flow-container .vue-flow,#main-content .vue-flow-container .vue-flow__viewport{width:100%!important;height:100%!important;min-height:0!important}.vue-flow-node{box-sizing:border-box;background:linear-gradient(135deg,#2d3748,#1a202c);border:2px solid #2a2a4a;border-radius:8px;padding:12px 20px;min-width:180px;min-height:60px;max-width:320px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;color:#e2e8f0;box-shadow:0 2px 8px #0000004d;transition:box-shadow .2s ease;position:relative;overflow:visible}.vue-flow-node:hover{box-shadow:0 4px 12px #0006}.vue-flow-node.selected{border-color:#22d3ee;box-shadow:0 0 0 2px #63b3ed59;background:linear-gradient(135deg,#3d4a5c,#2d3748)}.vue-flow-node.node-dense,.vue-flow-node.layer{border-color:#fb923c}.vue-flow-node.node-dense .node-header,.vue-flow-node.layer .node-header{color:#fb923c}.vue-flow-node.node-dense.selected,.vue-flow-node.layer.selected{border-color:#fdba74;box-shadow:0 0 0 2px #fb923c59}.node-content{position:relative;z-index:1}.vue-flow-node input,.vue-flow-node select,.vue-flow-node textarea{background:#2d3748!important;color:#e2e8f0!important;border:1px solid #2a2a4a!important}.vue-flow-node input::placeholder,.vue-flow-node textarea::placeholder{color:#64748b!important}.node-header{font-weight:700;margin-bottom:8px;color:#22d3ee;font-size:14px}.node-body{display:flex;flex-direction:column;gap:6px}.node-body label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#94a3b8}.vue-flow-node .param-tag{display:inline-flex;align-items:center;font-size:11px;line-height:1;color:#e2e8f0;background:#1a202cf2;border:1px solid #2a2a4a;border-radius:7px;padding:5px 6px;white-space:nowrap;margin-right:4px;margin-top:4px;vertical-align:middle}.vue-flow-node .param-help-icon{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:5px;border-radius:50%;font-size:9px;font-weight:700;line-height:1;color:#94a3b8;background:#94a3b829;border:1px solid rgba(148,163,184,.38);cursor:help;position:relative;flex-shrink:0}.vue-flow-node .param-help-icon:hover{color:#22d3ee;border-color:#22d3ee}.vue-flow-node .node-help-icon{margin-left:6px;vertical-align:middle;font-weight:700}.vue-flow-node .node-help-icon:after{max-width:240px}.vue-flow-node .param-help-icon:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);width:max-content;max-width:220px;white-space:normal;text-align:left;font-size:11px;font-weight:400;line-height:1.4;color:#e2e8f0;background:#1a202c;border:1px solid #2a2a4a;border-radius:6px;padding:6px 8px;box-shadow:0 6px 18px #00000080;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease;z-index:1000}.vue-flow-node .param-help-icon:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#2a2a4a;opacity:0;visibility:hidden;transition:opacity .15s ease;z-index:1000}.vue-flow-node .param-help-icon:hover:after,.vue-flow-node .param-help-icon:hover:before{opacity:1;visibility:visible}.node-body input,.node-body select,.node-body textarea,.vue-flow-node .cuerpo input,.vue-flow-node .cuerpo select,.vue-flow-node .cuerpo textarea{border:1px solid #2a2a4a;border-radius:6px;padding:4px 8px;font-size:12px;font-family:Roboto,sans-serif;background:#2d3748;color:#e2e8f0;min-height:24px;max-width:80px!important;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.node-body input::placeholder,.node-body textarea::placeholder{color:#64748b}.node-body input:hover,.node-body select:hover,.node-body textarea:hover{border-color:#64748b;background:#253347}.node-body input:focus,.node-body select:focus,.node-body textarea:focus{outline:none;border-color:#22d3ee;box-shadow:0 0 0 2px #63b3ed40;background:#2d3748}.node-body select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a0aec0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}.vue-flow-node input[type=number]::-webkit-inner-spin-button,.vue-flow-node input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.vue-flow-node input[type=number]{-moz-appearance:textfield}.node-body input[type=checkbox]{width:auto;min-width:16px;min-height:16px;margin-right:6px;accent-color:#22D3EE;cursor:pointer}.vue-flow-node .file-param-block{display:block;margin-bottom:8px}.vue-flow-node .file-param-block .file-param-label{display:block;font-size:12px;color:#94a3b8;margin-bottom:4px}.vue-flow-node .file-param-block .file-input-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vue-flow-node .file-param-block .file-input-row input:not([type=file]){flex:1;min-width:80px}.vue-flow-node .file-trigger-wrap{flex-shrink:0}.vue-flow-node .node-file-trigger{display:inline-flex;align-items:center;justify-content:center;position:relative;padding:6px 10px;font-size:12px;color:#e2e8f0;background:#2a2a4a;border:1px solid #64748B;border-radius:6px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.vue-flow-node .node-file-trigger:hover{background:#2d3748;border-color:#22d3ee}.vue-flow-node .node-file-trigger input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0;font-size:0}.vue-flow-node .node-file-trigger.node-file-trigger--icon{width:30px;height:30px;padding:0}.vue-flow-node .node-file-trigger-icon{font-size:16px;line-height:1;pointer-events:none}.vue-flow-node .node-file-trigger-text{pointer-events:none}.vue-flow__handle{width:18px!important;height:18px!important;background:#22d3ee!important;border:2px solid #2d3748!important;box-shadow:0 1px 3px #0006;transition:background-color .15s ease,box-shadow .15s ease}.vue-flow__handle:hover{background:#22d3ee!important;box-shadow:0 2px 6px #00000080}.vue-flow__handle.connecting,.vue-flow__handle.valid{background:#22c55e!important}.vue-flow__handle.invalid{background:#ef4444!important}.port-row .port-handle{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;z-index:4}.port-input .port-handle{left:-20px!important;transform:translate(-50%,-50%)!important}.port-output .port-handle{right:-20px!important;transform:translate(50%,-50%)!important}.vue-flow-node.layer .vue-flow__handle{background:#fb923c!important}.vue-flow-node.layer .vue-flow__handle:hover{background:#fdba74!important}.vue-flow-node.layer input:focus,.vue-flow-node.layer select:focus,.vue-flow-node.layer textarea:focus{border-color:#fb923c!important;box-shadow:0 0 0 2px #fb923c40!important}.vue-flow-node.layer input[type=checkbox]{accent-color:#FB923C}.vue-flow__edge-path{stroke:#22d3ee;stroke-width:2px;transition:all .2s ease}.vue-flow__edge:hover .vue-flow__edge-path{stroke:#67e8f9;stroke-width:3px}.vue-flow__edge.selected .vue-flow__edge-path{stroke:#67e8f9;stroke-width:3px;stroke-dasharray:5;animation:dash .5s linear infinite}.vue-flow__edge.edge-layer .vue-flow__edge-path{stroke:#fb923c}.vue-flow__edge.edge-layer:hover .vue-flow__edge-path,.vue-flow__edge.edge-layer.selected .vue-flow__edge-path{stroke:#fdba74}.vue-flow__edge.edge-cross .vue-flow__edge-path{stroke:#22c55e}.vue-flow__edge.edge-cross:hover .vue-flow__edge-path,.vue-flow__edge.edge-cross.selected .vue-flow__edge-path{stroke:#4ade80}@keyframes dash{to{stroke-dashoffset:-10}}.vue-flow__edge .vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge .vue-flow__edge-text{fill:#e2e8f0;font-size:11px}.vue-flow__background{background-color:#1a202c}.vue-flow__controls{box-shadow:0 2px 12px #0006;border-radius:8px;overflow:hidden;border:1px solid #2d3748}.vue-flow__controls-button{background:#2d3748;border-bottom:1px solid #2a2a4a;color:#e2e8f0;transition:background .2s ease}.vue-flow__controls-button:hover{background:#2a2a4a}.vue-flow__controls-button:last-child{border-bottom:none}.vue-flow__minimap{background:#2d3748;border:1px solid #2a2a4a;border-radius:8px;box-shadow:0 2px 12px #0006}.vue-flow__minimap-node{fill:#22d3ee;stroke:#22d3ee;stroke-width:1}.vue-flow__minimap-node.selected{fill:#22d3ee}.vue-flow__selection{background:#63b3ed26;border:1px solid #22D3EE}.vue-flow__node-toolbar{background:#2d3748;border:1px solid #2a2a4a;border-radius:4px;box-shadow:0 2px 12px #0006;padding:4px;color:#e2e8f0}@media (max-width: 768px){.vue-flow-node{min-width:150px;max-width:200px;font-size:12px}.node-header{font-size:13px}.node-body{gap:4px}.node-body label{font-size:10px}.node-body input,.node-body select,.node-body textarea{font-size:11px;padding:5px 8px;min-height:26px}}@keyframes node-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.node-loading{opacity:.6;pointer-events:none}.node-loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #22D3EE;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.node-error{border-color:#ef4444;background:linear-gradient(135deg,#3d2a2a,#2d2222)}.node-error .node-header{color:#ef4444}.node-success{border-color:#22c55e}.node-success .node-header{color:#4ade80}.vue-flow-node.node-texto{background:transparent;border:none;box-shadow:none;padding:0;min-width:0;min-height:0;max-width:none;width:300px}.vue-flow-node.node-texto:hover{box-shadow:none}.node-texto .node-title{display:none}.node-texto .texto-note{--note-accent: #94A3B8;--note-bg: rgba(148, 163, 184, .08);display:flex;flex-direction:column;gap:2px;background:var(--note-bg);border:1px solid rgba(226,232,240,.08);border-left:3px solid var(--note-accent);border-radius:10px;padding:12px 14px 8px;transition:box-shadow .15s ease,border-color .15s ease}.node-texto.selected .texto-note{box-shadow:0 0 0 2px var(--note-accent)}.node-texto .texto-note--amarillo{--note-accent: #FBBF24;--note-bg: rgba(251, 191, 36, .08)}.node-texto .texto-note--azul{--note-accent: #60A5FA;--note-bg: rgba(96, 165, 250, .08)}.node-texto .texto-note--verde{--note-accent: #34D399;--note-bg: rgba(52, 211, 153, .08)}.node-texto .texto-note--rosa{--note-accent: #F472B6;--note-bg: rgba(244, 114, 182, .08)}.node-texto .texto-note:has(select[data-param=color] option[value=gris]:checked){--note-accent: #94A3B8;--note-bg: rgba(148, 163, 184, .08)}.node-texto .texto-note:has(select[data-param=color] option[value=amarillo]:checked){--note-accent: #FBBF24;--note-bg: rgba(251, 191, 36, .08)}.node-texto .texto-note:has(select[data-param=color] option[value=azul]:checked){--note-accent: #60A5FA;--note-bg: rgba(96, 165, 250, .08)}.node-texto .texto-note:has(select[data-param=color] option[value=verde]:checked){--note-accent: #34D399;--note-bg: rgba(52, 211, 153, .08)}.node-texto .texto-note:has(select[data-param=color] option[value=rosa]:checked){--note-accent: #F472B6;--note-bg: rgba(244, 114, 182, .08)}.vue-flow-node.node-texto:has(.texto-note--w-s){width:220px}.vue-flow-node.node-texto:has(.texto-note--w-m){width:300px}.vue-flow-node.node-texto:has(.texto-note--w-l){width:440px}.vue-flow-node.node-texto:has(select[data-param=ancho] option[value=s]:checked){width:220px}.vue-flow-node.node-texto:has(select[data-param=ancho] option[value=m]:checked){width:300px}.vue-flow-node.node-texto:has(select[data-param=ancho] option[value=l]:checked){width:440px}.vue-flow-node.node-texto .texto-note input.texto-note-title,.vue-flow-node.node-texto .texto-note textarea.texto-note-body{width:100%!important;max-width:none!important;min-height:0;background:transparent!important;border:none!important;border-radius:0;padding:0;margin:0;box-shadow:none!important}.vue-flow-node.node-texto .texto-note input.texto-note-title:focus,.vue-flow-node.node-texto .texto-note textarea.texto-note-body:focus{outline:none;background:transparent!important;box-shadow:none!important}.vue-flow-node.node-texto .texto-note input.texto-note-title{font-size:13px;font-weight:700;color:var(--note-accent)!important;padding-bottom:2px}.vue-flow-node.node-texto .texto-note textarea.texto-note-body{font-size:12.5px;line-height:1.55;color:#e2e8f0!important;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;resize:none;overflow:hidden;min-height:20px}.vue-flow-node.node-texto .texto-note input.texto-note-title::placeholder{color:#94a3b899!important;font-weight:400}.vue-flow-node.node-texto .texto-note textarea.texto-note-body::placeholder{color:#94a3b88c!important}.vue-flow-node.node-texto .texto-note-toolbar{display:flex;justify-content:flex-end;gap:6px;margin-top:6px;opacity:0;transition:opacity .15s ease}.vue-flow-node.node-texto:hover .texto-note-toolbar,.vue-flow-node.node-texto.selected .texto-note-toolbar{opacity:1}.vue-flow-node.node-texto .texto-note-toolbar select{font-size:10px;min-height:0;padding:3px 6px;border-radius:5px;cursor:pointer}
