m8flow 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important}body{font-family:Inter,system-ui,sans-serif;color:#1e293b!important;background:#f8fafc!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-layout{width:100vw;height:100vh;display:flex;overflow:hidden}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;display:flex;overflow:hidden}.canvas-wrapper{flex:1;height:100%;position:relative}.topbar{z-index:20;background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;align-items:center;gap:12px;height:52px;padding:0 16px;display:flex;box-shadow:0 1px 4px #0000000a}.topbar-logo{align-items:center;gap:10px;margin-right:8px;display:flex}.topbar-actions{flex:1;align-items:center;gap:6px;display:flex}.topbar-divider{background:#e2e8f0;width:1px;height:20px;margin:0 4px}.topbar-status{align-items:center;gap:6px;display:flex}.topbar-version-badge{color:#0369a1;white-space:nowrap;background:#f0f9ff;border:1px solid #bae6fd;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.topbar-version-badge .version-count{color:#fff;background:#0369a1;border-radius:999px;padding:0 5px;font-size:10px;font-weight:800}.topbar-save-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;height:32px;padding:0 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.topbar-save-btn:hover:not(:disabled){color:#6366f1;background:#f5f3ff;border-color:#6366f1}.topbar-save-btn:disabled{opacity:.45;cursor:not-allowed}.topbar-settings-btn{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:inline-flex}.topbar-settings-btn:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.settings-modal{flex-direction:column;width:520px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden}.settings-modal .modal-body{flex:1;min-height:0;overflow-y:auto}.settings-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.settings-section+.settings-section{margin-top:12px}.settings-section-dim{opacity:.5}.settings-section-header{color:#0f172a;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.settings-section-desc{color:#64748b;margin:0;font-size:12px;line-height:1.6}.tb-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.tb-btn:disabled{opacity:.45;cursor:not-allowed}.tb-btn-primary{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 1px 4px #22c55e4d}.tb-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #22c55e73}.tb-btn-secondary{color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 1px 4px #6366f140}.tb-btn-secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #6366f166}.tb-btn-ghost{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.tb-btn-ghost:hover:not(:disabled){background:#e2e8f0}.tb-btn-danger{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.tb-btn-danger:hover:not(:disabled){background:#fee2e2}.status-pill{color:#64748b;background:#f1f5f9;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.status-pill-green{color:#166534;background:#dcfce7}.status-pill-red{color:#dc2626;background:#fef2f2}.right-sidebar{z-index:10;background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:320px;height:100%;display:flex;box-shadow:-2px 0 12px #00000008}.sidebar-tabs{background:#fafbfc;border-bottom:1px solid #e2e8f0;flex-shrink:0;display:flex}.sidebar-tab{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px 8px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;display:flex}.sidebar-tab:hover{color:#475569;background:#f1f5f9}.sidebar-tab.active{color:#6366f1;background:#fff;border-bottom-color:#6366f1}.sidebar-content{flex:1;overflow-y:auto}.ai-tab{flex-direction:column;height:100%;display:flex}.api-key-gate{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:28px 20px;display:flex}.api-key-gate-icon{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;display:flex;box-shadow:0 4px 14px #6366f159}.api-key-gate-title{color:#0f172a;margin:0;font-size:15px;font-weight:800}.api-key-gate-desc{color:#64748b;max-width:240px;margin:0;font-size:12px;line-height:1.6}.api-key-gate-link{color:#6366f1;background:#eef2ff;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.api-key-gate-link:hover{background:#e0e7ff}.api-key-input-row{width:100%;max-width:280px;position:relative}.api-key-input{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 36px 9px 12px;font-family:JetBrains Mono,monospace;font-size:12px;transition:border-color .15s}.api-key-input:focus{background:#fff;border-color:#6366f1}.api-key-input-error{border-color:#ef4444}.api-key-eye-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.api-key-eye-btn:hover{color:#475569}.api-key-error{color:#ef4444;text-align:left;width:100%;max-width:280px;margin:-6px 0 0;font-size:11px;font-weight:600}.api-key-save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:9px;width:100%;max-width:280px;height:38px;font-family:inherit;font-size:13px;font-weight:700;transition:opacity .15s,transform .15s;box-shadow:0 2px 8px #6366f14d}.api-key-save-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.api-key-save-btn:disabled{opacity:.45;cursor:not-allowed}.api-key-privacy{color:#94a3b8;margin:0;font-size:10px}.theme-picker{gap:8px;display:flex}.theme-option{color:#64748b;cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:14px 8px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:flex}.theme-option:hover{color:#6366f1;background:#eef2ff;border-color:#a5b4fc}.theme-option-active{color:#6366f1;background:#eef2ff;border-color:#6366f1}[data-theme=never] body{color:#e2e8f0;background:#0f172a}[data-theme=never] .app-shell,[data-theme=never] .app-body,[data-theme=never] .center-column{background:#0f172a}[data-theme=never] .canvas-wrapper{background:#0d1117}[data-theme=never] .topbar{background:#111827;border-color:#1e293b}[data-theme=never] .logo-name{color:#f1f5f9}[data-theme=never] .logo-tag{color:#64748b}[data-theme=never] .status-pill{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .status-pill-green{color:#4ade80;background:#052e16;border-color:#166534}[data-theme=never] .status-pill-red{color:#f87171;background:#2d0a0a;border-color:#7f1d1d}[data-theme=never] .topbar-version-badge{color:#7dd3fc;background:#0c1a2e;border-color:#1e3a5f}[data-theme=never] .topbar-save-btn,[data-theme=never] .topbar-settings-btn{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .topbar-save-btn:hover:not(:disabled),[data-theme=never] .topbar-settings-btn:hover{color:#a5b4fc;background:#312e81;border-color:#6366f1}[data-theme=never] .topbar-back-btn{color:#64748b;background:0 0;border-color:#334155}[data-theme=never] .topbar-back-btn:hover{color:#a5b4fc;border-color:#6366f1}[data-theme=never] .topbar-flow-name{color:#e2e8f0}[data-theme=never] .topbar-flow-name:hover{color:#a5b4fc}[data-theme=never] .topbar-flow-divider{color:#475569}[data-theme=never] .topbar-flow-name-input{color:#f1f5f9;background:#1e293b;border-color:#6366f1}[data-theme=never] .left-panel{background:#111827;border-color:#1e293b}[data-theme=never] .panel-section-label{color:#475569}[data-theme=never] .panel-search{background:#1e293b;border-color:#334155}[data-theme=never] .search-input{color:#e2e8f0;background:0 0}[data-theme=never] .search-input::placeholder{color:#475569}[data-theme=never] .category-header{color:#94a3b8}[data-theme=never] .category-header:hover{background:#1e293b}[data-theme=never] .category-name{color:#cbd5e1}[data-theme=never] .category-count{color:#64748b;background:#1e293b}[data-theme=never] .template-card{background:#1e293b;border-color:#334155}[data-theme=never] .template-card:hover{background:#1e3a5f;border-color:#6366f1}[data-theme=never] .template-name{color:#e2e8f0}[data-theme=never] .template-ports{color:#64748b}[data-theme=never] .drag-handle{color:#475569}[data-theme=never] .panel-hint{color:#475569;background:#0f172a;border-color:#1e293b}[data-theme=never] .right-sidebar,[data-theme=never] .unified-sidebar{background:#111827;border-color:#1e293b}[data-theme=never] .rs-btn-danger{color:#f87171;background:#2d0a0a;border-color:#7f1d1d}[data-theme=never] .rs-btn-danger:hover:not(:disabled){background:#450a0a}[data-theme=never] .bottom-panel{background:#111827;border-color:#1e293b}[data-theme=never] .bottom-panel.open{background:#111827}[data-theme=never] .bp-tabs{background:#111827;border-color:#1e293b}[data-theme=never] .bp-tab{color:#64748b}[data-theme=never] .bp-tab:hover{color:#a5b4fc}[data-theme=never] .bp-tab.active{color:#6366f1;border-color:#6366f1}[data-theme=never] .bp-content{background:#111827}[data-theme=never] .bp-empty{color:#475569;border-color:#1e293b}[data-theme=never] .bp-loading{color:#94a3b8}[data-theme=never] .bp-btn{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .bp-btn:hover{color:#a5b4fc;background:#312e81}[data-theme=never] .version-panel{background:#111827}[data-theme=never] .panel-section-header{color:#94a3b8;border-color:#1e293b}[data-theme=never] .version-item{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .version-item:hover{background:#1a2744;border-color:#6366f1}[data-theme=never] .version-item.active{background:#0c1a2e;border-color:#0ea5e9}[data-theme=never] .version-title{color:#38bdf8}[data-theme=never] .version-meta{color:#475569}[data-theme=never] .version-compare{background:#1e293b;border-color:#334155}[data-theme=never] .version-save-btn{color:#64748b;background:#1e293b;border-color:#334155}[data-theme=never] .version-save-btn:hover{color:#a5b4fc;background:#312e81}[data-theme=never] .version-select-row select{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .version-delete-confirm{background:#2d0a0a;border-color:#7f1d1d}[data-theme=never] .ai-context-bar{background:#0f172a;border-color:#1e293b}[data-theme=never] .context-badge{color:#64748b;background:#1e293b;border-color:#334155}[data-theme=never] .context-badge-active{color:#4ade80;background:#052e16;border-color:#166534}[data-theme=never] .chat-history{background:#0f172a}[data-theme=never] .chat-bubble-user{color:#e0e7ff;background:#312e81}[data-theme=never] .chat-bubble-assistant{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .chat-ts{color:#475569}[data-theme=never] .chat-empty-icon{color:#334155}[data-theme=never] .chat-empty-title{color:#94a3b8}[data-theme=never] .chat-empty-sub{color:#475569}[data-theme=never] .chat-input{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .chat-input::placeholder{color:#475569}[data-theme=never] .chat-input:focus{border-color:#6366f1}[data-theme=never] .chat-send-btn{background:linear-gradient(135deg,#4338ca,#7c3aed)}[data-theme=never] .chat-chips{background:#0f172a!important;border-color:#1e293b!important}[data-theme=never] .chat-clear-btn{color:#475569}[data-theme=never] .chat-clear-btn:hover{color:#f87171}[data-theme=never] .modal-overlay{background:#000000a6}[data-theme=never] .modal-content{background:#1e293b;border:1px solid #334155}[data-theme=never] .modal-header{border-color:#334155}[data-theme=never] .modal-title{color:#f1f5f9}[data-theme=never] .modal-close{color:#64748b}[data-theme=never] .modal-close:hover{color:#e2e8f0;background:#334155}[data-theme=never] .modal-footer{background:#162032;border-color:#334155}[data-theme=never] .modal-btn-secondary{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .modal-btn-secondary:hover{background:#334155}[data-theme=never] .settings-section{background:#162032;border-color:#334155}[data-theme=never] .settings-section-header{color:#e2e8f0}[data-theme=never] .settings-section-desc{color:#64748b}[data-theme=never] .settings-key-row{background:#1e293b;border-color:#334155}[data-theme=never] .settings-key-value{color:#cbd5e1}[data-theme=never] .settings-key-btn{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .settings-key-btn:hover{color:#a5b4fc;background:#312e81;border-color:#6366f1}[data-theme=never] .theme-option{color:#64748b;background:#1e293b;border-color:#334155}[data-theme=never] .theme-option:hover,[data-theme=never] .theme-option-active{color:#a5b4fc;background:#312e81;border-color:#6366f1}[data-theme=never] input:not([type=checkbox]):not([type=file]),[data-theme=never] textarea,[data-theme=never] select{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] input::placeholder,[data-theme=never] textarea::placeholder{color:#475569}[data-theme=never] .form-label{color:#94a3b8}[data-theme=never] .api-key-gate{background:0 0}[data-theme=never] .api-key-input{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .api-key-input:focus{background:#162032;border-color:#6366f1}.ai-context-bar{z-index:10;background:#fafbfc;border-bottom:1px solid #f1f5f9;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex;position:sticky;top:0}.ai-context-bar-left{align-items:center;gap:6px;display:flex}.context-badge{color:#94a3b8;background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.context-badge-active{color:#166534;background:#dcfce7}.chat-history{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.chat-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.chat-empty-icon{color:#cbd5e1}.chat-empty-title{color:#334155;font-size:14px;font-weight:600}.chat-empty-sub{color:#94a3b8;font-size:12px;line-height:1.5}.chat-bubble{border-radius:12px;flex-direction:column;gap:4px;max-width:90%;padding:10px 12px;display:flex}.chat-bubble-user{color:#fff;background:#6366f1;border-bottom-right-radius:3px;align-self:flex-end}.chat-bubble-assistant{color:#334155;background:#f1f5f9;border-bottom-left-radius:3px;align-self:flex-start}.chat-bubble-loading{color:#64748b;flex-direction:row;align-items:center;gap:8px;font-size:12px}.chat-intent-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:4px;align-self:flex-start;padding:1px 6px;font-size:9px;font-weight:700}.chat-text{font-size:12px;line-height:1.5}.chat-ts{opacity:.5;align-self:flex-end;font-size:9px}.chat-chips{flex-wrap:wrap;gap:5px;padding:0 12px 8px;display:flex}.chat-chip{border:1px solid var(--chip-color,#e2e8f0);color:var(--chip-color,#64748b);cursor:pointer;background:#fff;border-radius:16px;padding:4px 10px;font-family:inherit;font-size:10px;transition:all .15s}.chat-chip:hover:not(:disabled){opacity:.8;transform:translateY(-1px)}.chat-input-row{border-top:1px solid #f1f5f9;flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.chat-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:20px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:12px;transition:all .2s}.chat-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.chat-send-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-send-btn:hover:not(:disabled){transform:scale(1.08)}.chat-clear-btn{color:#94a3b8;cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:4px 12px 8px;font-size:10px}.chat-clear-btn:hover{color:#ef4444}.results-tab{flex-direction:column;gap:14px;padding:12px;display:flex}.rt-section-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:5px;margin-bottom:6px;font-size:10px;font-weight:700;display:flex}.results-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 16px;display:flex}.results-empty-icon{color:#cbd5e1}.results-empty p{color:#94a3b8;font-size:12px}.healed-tag{color:#854d0e;background:#fef9c3;border-radius:4px;padding:1px 6px;font-size:9px}.result-icon.healed{color:#f59e0b}.versions-tab{padding:0}.data-tab{padding:16px}.data-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 0;display:flex}.data-empty-icon{color:#cbd5e1}.data-empty-title{color:#334155;font-size:14px;font-weight:600}.data-empty-sub{color:#94a3b8;font-size:12px;line-height:1.5}.data-upload-btn{color:#fff;cursor:pointer;background:#6366f1;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.data-upload-btn:hover{background:#4f46e5}.data-error{color:#ef4444;font-size:11px}.data-info{flex-direction:column;gap:12px;display:flex}.data-header{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.data-file-info{align-items:center;gap:10px;display:flex}.data-file-icon{color:#6366f1}.data-filename{color:#1e293b;font-size:12px;font-weight:600}.data-shape{color:#94a3b8;font-size:10px}.data-clear-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:4px;padding:4px}.data-clear-btn:hover{color:#ef4444;background:#fef2f2}.data-section-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;font-size:10px;font-weight:700}.data-columns{flex-direction:column;gap:3px;max-height:300px;display:flex;overflow-y:auto}.data-column-row{background:#f8fafc;border-radius:5px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;display:flex}.data-col-name{color:#334155;font-family:JetBrains Mono,monospace;font-weight:500}.data-col-type{border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.data-col-type.numeric{color:#92400e;background:#fef3c7}.data-col-type.text{color:#1d4ed8;background:#eff6ff}.data-replace-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:5px;padding:6px 12px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.data-replace-btn:hover{background:#e2e8f0}.left-panel{z-index:10;background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;width:272px;height:100%;display:flex;box-shadow:2px 0 12px #00000008}.panel-logo{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:18px 20px;display:flex}.logo-name{color:#1e293b;letter-spacing:-.3px;font-size:16px;font-weight:700;display:block}.logo-tag{color:#6366f1;letter-spacing:.5px;text-transform:uppercase;background:#6366f11a;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:600}.panel-search{margin:12px 16px;position:relative}.search-icon{color:#94a3b8;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:8px 10px 8px 32px;font-size:12px;transition:all .2s}.search-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.search-input::placeholder{color:#94a3b8}.panel-section-label{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;padding:4px 20px 6px;font-size:10px;font-weight:600}.node-library{flex:1;padding:0 12px 12px;overflow-y:auto}.library-loading,.library-empty{text-align:center;color:#94a3b8;flex-direction:column;align-items:center;gap:8px;padding:24px;font-size:12px;display:flex}.loading-spinner{border:2px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.library-category{margin-bottom:4px}.category-header{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:7px 8px;font-size:11px;font-weight:600;transition:background .15s;display:flex}.category-header:hover{background:#f1f5f9}.category-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.category-name{text-align:left;flex:1}.category-count{color:#94a3b8;background:#f1f5f9;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:500}.category-items{padding:2px 0 4px 8px}.template-card{cursor:grab;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}.template-card:hover{background:#f1f5f9;border-color:#e2e8f0}.template-card:active{cursor:grabbing;transform:scale(.97)}.drag-handle{color:#cbd5e1;flex-shrink:0}.template-icon{flex-shrink:0}.template-name{color:#334155;font-size:12px;font-weight:500;display:block}.template-ports{color:#94a3b8;font-size:10px}.panel-hint{color:#94a3b8;background:#fafbfc;border-top:1px solid #f1f5f9;padding:12px 16px;font-size:10px;line-height:1.5}.custom-node-delete{color:#94a3b8;opacity:0;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .15s,color .15s,background .15s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:14px;flex-direction:column;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000002e}.modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.modal-title{color:#0f172a;margin:0;font-size:15px;font-weight:700}.modal-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s,color .15s;display:flex}.modal-close:hover{color:#334155;background:#f1f5f9}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{background:#fafbfc;border-top:1px solid #f1f5f9;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:#475569;font-size:12px;font-weight:600}.modal-btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .15s,transform .15s;display:inline-flex}.modal-btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.modal-btn-primary:disabled{opacity:.45;cursor:not-allowed}.modal-btn-secondary{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.modal-btn-secondary:hover{background:#f8fafc}.right-panel{z-index:10;background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;width:288px;height:100%;display:flex;overflow-y:auto;box-shadow:-2px 0 12px #00000008}.panel-section-header{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;align-items:center;gap:8px;padding:12px 16px 8px;font-size:10px;font-weight:600;display:flex}.action-buttons{flex-direction:column;gap:8px;padding:8px 16px 12px;display:flex}.action-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s;display:flex}.execute-btn{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 2px 8px #22c55e4d}.execute-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #22c55e66}.execute-btn:disabled,.action-btn.disabled{opacity:.5;cursor:not-allowed}.action-row{gap:8px;display:flex}.secondary-btn{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;flex:1}.secondary-btn:hover:not(:disabled){background:#e2e8f0}.danger-btn{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;flex:1}.danger-btn:hover:not(:disabled){background:#fee2e2}.success-btn{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.success-btn:hover:not(:disabled){background:#bbf7d0}.explain-btn{color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 2px 8px #6366f140}.explain-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #6366f166}.explain-btn:disabled{opacity:.5;cursor:not-allowed}.em-modal{background:#f8fafc;border-radius:16px;flex-direction:column;width:90vw;max-width:780px;max-height:88vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0003}.em-header{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.em-header-left{align-items:center;gap:12px;display:flex}.em-header-title{color:#0f172a;font-size:17px;font-weight:700}.em-header-sub{color:#64748b;margin-top:2px;font-size:11px}.em-body{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.em-loading{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:16px;padding:32px;display:flex}.em-spinner{animation:1s linear infinite spin}.em-loading-title{color:#1e293b;font-size:15px;font-weight:600}.em-loading-sub{color:#64748b;margin-top:4px;font-size:12px}.em-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:16px;font-size:13px;display:flex}.em-sections{flex-direction:column;gap:14px;display:flex}.em-section{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.em-section-title{text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #0000000f;align-items:center;gap:8px;padding:12px 16px;font-size:12px;font-weight:700;display:flex}.em-section-icon{align-items:center;display:flex}.em-section-body{flex-direction:column;gap:4px;padding:14px 16px;display:flex}.em-bullet{color:#334155;align-items:flex-start;gap:8px;font-size:13px;line-height:1.6;display:flex}.em-bullet-dot{color:#6366f1;flex-shrink:0;margin-top:1px;font-weight:700}.em-para{color:#334155;margin:0;font-size:13px;line-height:1.7}.em-code{color:#6366f1;background:#f1f5f9;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11px}.ai-section{padding:0 16px 12px}.refine-section{border-top:1px solid #f1f5f9;padding:0 16px 12px}.refine-badge{color:#3b82f6;text-transform:uppercase;background:#eff6ff;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:9px;font-weight:600}.refine-chips{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.refine-chip{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:3px 8px;font-family:inherit;font-size:10px;transition:all .15s}.refine-chip:hover:not(:disabled){color:#6366f1;background:#eff6ff;border-color:#6366f1}.refine-chip:disabled{opacity:.5;cursor:not-allowed}.refine-summary{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:flex-start;gap:6px;margin-top:6px;padding:6px 8px;font-size:11px;line-height:1.4;display:flex}.intent-badge{color:#fff;letter-spacing:.2px;white-space:nowrap;border-radius:20px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700;animation:.25s ease-out fadeIn}.intent-hint{color:#4f46e5;background:linear-gradient(90deg,#f5f3ff,#eff6ff);border:1px solid #e0e7ff;border-radius:8px;margin-top:6px;padding:5px 8px;font-size:10px;font-weight:500;line-height:1.4;animation:.2s ease-out fadeIn}.ai-input-row{gap:6px;margin-top:6px;display:flex}.ai-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:12px;transition:all .2s}.ai-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.ai-send-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:8px;padding:8px 10px;transition:all .2s}.ai-send-btn:hover:not(:disabled){transform:scale(1.05)}.ai-send-btn:disabled{opacity:.5;cursor:not-allowed}.ai-context-container{flex-direction:column;gap:4px;margin-top:10px;display:flex}.ai-context-header{justify-content:space-between;align-items:center;display:flex}.ai-context-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.ai-upload-label{color:#6366f1;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;transition:all .2s;display:flex}.ai-upload-label:hover{background:#e2e8f0;transform:translateY(-1px)}.ai-context-input{resize:vertical;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;min-height:60px;padding:8px 12px;font-family:inherit;font-size:11px;transition:all .2s}.ai-context-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.pipeline-stats{grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 16px 12px;display:grid}.stat-item{background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.stat-value{color:#1e293b;font-size:16px;font-weight:700}.stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:500}.version-panel{background:#fbfdff;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;padding:12px 16px}.version-count{color:#0369a1;background:#e0f2fe;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:18px;font-size:10px;font-weight:800;display:inline-flex}.version-save-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;display:inline-flex}.version-save-btn:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.version-empty{color:#64748b;border:1px dashed #cbd5e1;border-radius:8px;margin-top:8px;padding:10px;font-size:11px;line-height:1.4}.version-list{flex-direction:column;gap:6px;max-height:190px;margin-top:8px;display:flex;overflow-y:auto}.version-item{color:#334155;cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:5px;width:100%;padding:9px 28px 9px 10px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex;position:relative}.version-item:hover{border-color:#38bdf8;box-shadow:0 6px 16px #0ea5e917}.version-item.active{background:#f0f9ff;border-color:#0ea5e9}.version-main,.version-meta{align-items:center;gap:7px;min-width:0;display:flex}.version-title{color:#0369a1;flex:none;font-size:11px;font-weight:900}.version-description{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.version-meta{color:#94a3b8;text-transform:uppercase;font-size:9px;font-weight:700}.version-restore-icon{color:#64748b;position:absolute;top:50%;right:30px;transform:translateY(-50%)}.version-delete-btn{color:#94a3b8;opacity:0;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .15s,color .15s,background .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.version-item:hover .version-delete-btn{opacity:1}.version-delete-btn:hover{color:#dc2626;background:#fee2e2}.version-item-wrapper{position:relative}.version-delete-confirm{color:#dc2626;background:#fff1f2;border:1px solid #fca5a5;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:11px;font-weight:600;display:flex}.version-delete-actions{gap:6px;display:flex}.version-delete-yes{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:5px;padding:3px 10px;font-family:inherit;font-size:11px;font-weight:700}.version-delete-yes:hover{background:#b91c1c}.version-delete-no{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:5px;padding:3px 10px;font-family:inherit;font-size:11px;font-weight:600}.version-delete-no:hover{background:#f1f5f9}.version-compare{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-top:10px;padding:10px}.version-select-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.version-select-row select{color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-radius:7px;min-width:0;height:30px;padding:0 8px;font-size:11px;font-weight:700}.version-diff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.version-diff-pill{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;min-width:0;padding:7px 8px;font-size:10px;display:flex}.version-diff-pill span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.version-diff-pill strong{font-size:12px}.version-diff-pill.add strong{color:#059669}.version-diff-pill.remove strong{color:#dc2626}.version-diff-pill.change strong{color:#d97706}.log-container{color:#94a3b8;background:#1e293b;border-radius:10px;min-height:80px;max-height:200px;margin:0 16px 12px;padding:10px;font-family:JetBrains Mono,monospace;font-size:11px;overflow-y:auto}.log-empty{align-items:center;gap:8px;font-size:11px;display:flex}.log-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{50%{opacity:.5}}.log-line{white-space:pre-wrap;word-break:break-word;padding:1px 0;line-height:1.6}.log-line.error{color:#f87171}.results-container{flex-direction:column;gap:6px;padding:0 16px 16px;display:flex}.result-card{background:#fafbfc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px}.result-card.ok{background:#f0fdf4;border-color:#bbf7d0}.result-card.error{background:#fef2f2;border-color:#fecaca}.result-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.result-icon.success{color:#22c55e}.result-icon.error{color:#ef4444}.result-name{color:#334155;font-size:12px;font-weight:600}.result-error{color:#dc2626;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px}.result-outputs{margin-top:4px}.result-output-row{gap:6px;padding:2px 0;font-size:11px;display:flex}.result-key{color:#6366f1;font-family:JetBrains Mono,monospace;font-weight:600}.result-val{color:#475569;word-break:break-all;font-family:JetBrains Mono,monospace}.canvas-container{background:#f8fafc;width:100%;height:100%}.react-flow__background{opacity:.6}.flow-controls{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 4px 12px #0000000f!important}.flow-controls button{fill:#64748b!important;background:#fff!important;border-bottom:1px solid #f1f5f9!important;width:28px!important;height:28px!important}.flow-controls button:hover{fill:#334155!important;background:#f1f5f9!important}.flow-controls button:last-child{border-bottom:none!important}.flow-minimap{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 4px 12px #0000000f!important}.code-node-card{background:var(--node-bg,#fff);border:1.5px solid var(--node-border,#e2e8f0);border-radius:14px;min-width:220px;max-width:280px;font-family:Inter,sans-serif;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:visible;box-shadow:0 2px 12px #0000000f}.code-node-card:hover{transform:translateY(-1px);box-shadow:0 6px 24px #0000001a}.code-node-card.running{animation:2s infinite node-pulse;box-shadow:0 0 0 3px #3b82f633,0 4px 12px #0000001a;border-color:#3b82f6!important}.code-node-card.ok{box-shadow:0 0 0 2px #22c55e1a;border-color:#22c55e!important}.code-node-card.error{box-shadow:0 0 0 4px #ef444426;border-color:#ef4444!important}@keyframes node-pulse{0%,to{box-shadow:0 0 0 2px #3b82f633}50%{box-shadow:0 0 0 6px #3b82f666}}.node-header{border-bottom:1px solid #0000000f;align-items:center;gap:8px;padding:10px 12px;display:flex}.node-icon{background:#fffc;border:1px solid #0000000f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.node-title-block{flex:1;min-width:0}.node-title{color:var(--node-text,#334155);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.node-subtitle{color:#94a3b8;margin-top:1px;font-family:JetBrains Mono,monospace;font-size:9px}.node-header-actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .2s;display:flex}.code-node-card:hover .node-header-actions{opacity:1}.node-action-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .15s;display:flex}.node-action-btn:hover{background:#0000000f}.code-btn:hover{color:#6366f1}.delete-btn:hover{color:#ef4444}.node-ports{justify-content:space-between;min-height:24px;padding:6px 0;display:flex}.ports-column{flex-direction:column;gap:3px;display:flex}.inputs-column{align-items:flex-start}.outputs-column{align-items:flex-end;margin-left:auto}.port-row{align-items:center;gap:4px;padding:2px 12px;display:flex;position:relative}.input-port{flex-direction:row}.output-port{flex-direction:row-reverse}.port-label{align-items:center;gap:4px;display:flex}.port-name{color:#475569;font-size:10px;font-weight:600}.port-type{color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:9px}.data-port .port-name{color:var(--node-accent,#6366f1)}.port-handle{border:2px solid var(--node-accent,#94a3b8)!important;background:#fff!important;border-radius:50%!important;width:10px!important;height:10px!important;transition:all .2s!important}.port-handle:hover{background:var(--node-accent,#6366f1)!important;transform:scale(1.3)!important}.target-handle{left:-5px!important}.source-handle{right:-5px!important}.node-fields{flex-direction:column;gap:4px;padding:4px 10px 8px;display:flex}.field-row{justify-content:space-between;align-items:center;gap:6px;padding:3px 0;display:flex}.field-name{color:#64748b;white-space:nowrap;font-size:10px;font-weight:500}.field-input{color:#334155;background:#fffc;border:1px solid #0000001a;border-radius:5px;outline:none;width:90px;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:10px;transition:all .15s}.field-input:focus{border-color:var(--node-accent,#6366f1);box-shadow:0 0 0 2px #6366f11a}.boolean-field{cursor:pointer;gap:6px}.field-checkbox{accent-color:var(--node-accent,#6366f1);cursor:pointer}.node-errors{padding:4px 10px 6px}.node-error-line{color:#ef4444;align-items:center;gap:4px;padding:2px 0;font-size:10px;display:flex}.node-footer{border-top:1px solid #0000000d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;padding:6px 10px;display:flex}.node-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:9px;font-weight:600;display:flex}.idle-dot{background:#94a3b8;border-radius:50%;width:5px;height:5px}.node-code-peek{cursor:pointer;color:#64748b;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:2px;padding:2px 4px;font-family:inherit;font-size:8.5px;transition:all .15s;display:flex}.node-code-peek:hover{color:#6366f1;background:#6366f10f}.node-result-preview{background:#22c55e0a;border-top:1px solid #0000000a;border-radius:0 0 14px 14px;max-height:120px;padding:6px 10px 8px;overflow:hidden}.node-result-preview .result-entry{white-space:nowrap;align-items:center;gap:4px;padding:1.5px 0;font-size:10px;display:flex;overflow:hidden}.node-result-preview .result-key{color:#16a34a;flex-shrink:0;font-family:JetBrains Mono,monospace;font-weight:600}.node-result-preview .result-value{color:#475569;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:JetBrains Mono,monospace;overflow:hidden}.result-null{color:#94a3b8;font-style:italic}.result-number{color:#6366f1;font-family:JetBrains Mono,monospace;font-weight:600}.result-bool{color:#f59e0b;font-weight:600}.result-string{color:#334155}.result-badge{white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-flex}.result-badge.df{color:#1d4ed8;background:#dbeafe}.result-badge.arr{color:#92400e;background:#fef3c7}.result-badge.ser{color:#15803d;background:#f0fdf4}.result-badge.est{color:#5b21b6;background:#f5f3ff}.result-badge.chart{color:#c2410c;background:#fff7ed}.result-badge.pred{color:#065f46;background:#ecfdf5;padding:2px 8px;font-size:10px}.node-error-preview{color:#ef4444;word-break:break-word;white-space:pre-wrap;background:#ef44440a;border-top:1px solid #ef44441a;border-radius:0 0 14px 14px;align-items:flex-start;gap:6px;max-height:80px;padding:6px 10px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex;overflow:hidden}.np-section{background:#fff9;border-top:1px solid #0000000d;border-radius:0 0 14px 14px;flex-direction:column;gap:5px;padding:6px 10px 8px;display:flex}.np-pills{flex-wrap:wrap;gap:4px;display:flex}.np-pill{white-space:nowrap;letter-spacing:.2px;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex}.np-pill-blue{color:#1d4ed8;background:#dbeafe}.np-pill-green{color:#15803d;background:#dcfce7}.np-pill-amber{color:#92400e;background:#fef3c7}.np-pill-purple{color:#5b21b6;background:#ede9fe}.np-null-list{flex-direction:column;gap:2px;display:flex}.np-null-row{justify-content:space-between;align-items:center;gap:4px;display:flex}.np-null-col{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-family:JetBrains Mono,monospace;font-size:9px;overflow:hidden}.np-null-n{color:#f59e0b;font-size:9px;font-weight:700}.np-table-wrap{border:1px solid #00000012;border-radius:6px;max-height:200px;overflow:auto}.np-table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:9px}.np-table th{color:#64748b;white-space:nowrap;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:3px 6px;font-weight:600}.np-table td{color:#334155;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f1f5f9;max-width:80px;padding:2px 6px;overflow:hidden}.np-table tr:last-child td{border-bottom:none}.np-table tr:nth-child(2n) td{background:#f8fafc}.np-trunc{color:#94a3b8;font-weight:600}.np-metrics{flex-direction:column;gap:4px;display:flex}.np-metric-row{align-items:center;gap:5px;display:flex}.np-metric-key{color:#64748b;white-space:nowrap;flex-shrink:0;width:64px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600}.np-metric-val{color:#1e293b;text-align:right;flex-shrink:0;width:38px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.np-metric-bar-bg{background:#e2e8f0;border-radius:99px;flex:1;height:4px;overflow:hidden}.np-metric-bar{background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:99px;height:100%;transition:width .4s}.np-scalar-row{justify-content:space-between;align-items:center;gap:4px;display:flex}.np-scalar-key{color:#64748b;font-family:JetBrains Mono,monospace;font-size:9px}.np-scalar-val{color:#1e293b;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700}.np-download-btn{color:#166534;cursor:pointer;background:#dcfce7;border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;display:inline-flex}.np-download-btn:hover{background:#bbf7d0}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.code-editor-modal{background:#fff;border-radius:16px;flex-direction:column;width:90vw;max-width:1100px;height:80vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0003}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-header{background:#fafbfc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:#1e293b;font-size:15px;font-weight:700}.modal-node-name{color:#6366f1}.modal-subtitle{color:#94a3b8;margin-top:2px;font-size:11px}.modal-subtitle code{background:#f1f5f9;border-radius:4px;padding:1px 5px;font-size:10px}.modal-actions{align-items:center;gap:6px;display:flex}.modal-btn{cursor:pointer;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.modal-btn:hover{background:#f1f5f9}.modal-btn:disabled{opacity:.4;cursor:not-allowed}.save-btn{color:#fff;background:#6366f1;border-color:#6366f1}.save-btn:hover:not(:disabled){background:#4f46e5}.close-btn{background:0 0;border:none;padding:6px}.close-btn:hover{color:#ef4444;background:#fee2e2}.modal-body{flex:1;display:flex;overflow:hidden}.editor-pane{border-right:1px solid #e2e8f0;flex:1;overflow:hidden}.schema-pane{background:#fafbfc;flex-direction:column;gap:12px;width:300px;padding:16px;display:flex;overflow-y:auto}.schema-title{color:#1e293b;font-size:13px;font-weight:700}.schema-errors{flex-direction:column;gap:4px;display:flex}.schema-error-line{color:#ef4444;align-items:center;gap:6px;font-size:11px;display:flex}.schema-section{flex-direction:column;gap:6px;display:flex}.schema-section-title{color:#475569;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.schema-dot{border-radius:50%;width:7px;height:7px}.input-dot{background:#3b82f6}.output-dot{background:#22c55e}.schema-item{background:#fff;border:1px solid #f1f5f9;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.schema-kind-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.schema-kind-badge.data{color:#1d4ed8;background:#dbeafe}.schema-kind-badge.text{color:#475569;background:#f1f5f9}.schema-kind-badge.number{color:#92400e;background:#fef3c7}.schema-kind-badge.file{color:#9d174d;background:#fce7f3}.schema-kind-badge.boolean{color:#065f46;background:#d1fae5}.schema-kind-badge.column{color:#5b21b6;background:#ede9fe}.schema-item-name{color:#334155;font-size:12px;font-weight:600}.schema-item-type{color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:10px}.schema-required{color:#f59e0b;font-size:9px;font-weight:600}.schema-default{color:#64748b;font-family:JetBrains Mono,monospace;font-size:10px}.output-check{color:#22c55e}.schema-hint{color:#1e40af;background:#eff6ff;border-radius:8px;margin-top:auto;padding:12px;font-size:11px;line-height:1.6}.schema-hint ul{margin:4px 0 0 16px}.schema-hint code{background:#3b82f61a;border-radius:3px;padding:1px 4px;font-size:10px}.animate-spin{animation:1s linear infinite spin}.react-flow__edge-path{stroke-width:2px}.react-flow__edge.animated path{animation:.5s linear infinite dashdraw}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.leaderboard-section{padding:0 16px 14px}.leaderboard-table{border-collapse:collapse;width:100%;font-size:11px}.leaderboard-table th{color:#64748b;text-transform:uppercase;letter-spacing:.5px;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:5px 7px;font-size:9px;font-weight:600}.leaderboard-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:6px 7px;font-family:JetBrains Mono,monospace;font-size:11px}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-best td{background:#f0fdf4}.leaderboard-table tr:hover td{background:#f8fafc}.leaderboard-hint{color:#94a3b8;padding:4px 2px 0;font-size:10px;line-height:1.4}.overfit-badge{color:#92400e;cursor:help;background:#fef3c7;border:1px solid #fde68a;border-radius:4px;margin-left:5px;padding:1px 5px;font-size:9px;font-weight:600;display:inline-block}.suggestions-section{padding:0 0 12px}.suggestions-loading-badge{color:#f59e0b;text-transform:uppercase;letter-spacing:.3px;background:#fef3c7;border:1px solid #fde68a;border-radius:10px;align-items:center;margin-left:auto;padding:1px 7px;font-size:9px;font-weight:600;display:flex}.suggestions-skeleton-wrap{flex-direction:column;gap:6px;padding:0 16px 4px;display:flex}.suggestion-skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;height:32px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.suggestions-list{flex-direction:column;gap:5px;padding:0 16px;display:flex}.suggestion-chip{cursor:pointer;text-align:left;background:linear-gradient(135deg,#fefce8,#fffbeb);border:1px solid #fde68a;border-radius:9px;align-items:flex-start;gap:7px;width:100%;padding:7px 10px;font-family:inherit;transition:all .18s;animation:.25s ease-out fadeIn;display:flex}.suggestion-chip:hover{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;transform:translate(2px);box-shadow:0 2px 8px #f59e0b33}.suggestion-icon{color:#f59e0b;flex-shrink:0;margin-top:1px}.suggestion-text{color:#1e293b;flex:1;font-size:11px;font-weight:500;line-height:1.4}.suggestion-send-icon{color:#f59e0b;opacity:0;flex-shrink:0;align-self:center;font-size:12px;transition:opacity .15s}.suggestion-chip:hover .suggestion-send-icon{opacity:1}.suggestions-hint{color:#94a3b8;margin:4px 0 0;font-size:9.5px;font-style:italic;line-height:1.4}.eda-card{border:1px solid #e2e8f0;border-radius:10px;margin:0 16px 14px;overflow:hidden}.eda-header{color:#334155;background:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:600;display:flex}.eda-shape{color:#64748b;background:#f1f5f9;border-radius:4px;margin-left:auto;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:10px}.code-node-card.running{box-shadow:0 0 0 2px #3b82f6}.code-node-card.ok{box-shadow:0 0 0 2px #22c55e}.code-node-card.healed{box-shadow:0 0 0 2px #f59e0b}.code-node-card.error{box-shadow:0 0 0 2px #ef4444}.node-status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:12px;align-items:center;gap:4px;width:fit-content;padding:3px 8px;font-size:10px;font-weight:600;display:flex}.node-status-badge.idle{color:#64748b;background:#f1f5f9}.node-status-badge.running{color:#3b82f6;background:#eff6ff}.node-status-badge.success{color:#22c55e;background:#f0fdf4}.node-status-badge.healed{color:#f59e0b;background:#fffbeb;border:1px solid #fcd34d}.node-status-badge.error{color:#ef4444;background:#fef2f2}.eda-tabs{border-bottom:1px solid #e2e8f0;display:flex}.eda-tab{cursor:pointer;color:#94a3b8;text-transform:capitalize;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:6px 8px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s}.eda-tab.active{color:#6366f1;background:#fafbff;border-bottom-color:#6366f1}.eda-tab:hover:not(.active){color:#475569;background:#f8fafc}.eda-body{max-height:220px;padding:8px 12px;overflow-y:auto}.eda-section{margin-bottom:10px}.eda-section-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px;font-size:9px;font-weight:600}.eda-row{align-items:center;gap:6px;padding:3px 0;display:flex}.eda-col-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;min-width:80px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;overflow:hidden}.eda-val{color:#64748b;font-family:JetBrains Mono,monospace;font-size:10px}.eda-missing-bar-bg{background:#f1f5f9;border-radius:2px;flex:1;height:4px;overflow:hidden}.eda-missing-bar{background:#f59e0b;border-radius:2px;height:100%}.eda-corr-bar-bg{background:#f1f5f9;border-radius:2px;flex:1;height:4px;overflow:hidden}.eda-corr-bar{border-radius:2px;height:100%}.eda-dtype-badge{border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.eda-dtype-badge.numeric{color:#92400e;background:#fef3c7}.eda-dtype-badge.text{color:#0369a1;background:#f0f9ff}.eda-table{border-collapse:collapse;width:100%;font-size:10px}.eda-table th{color:#64748b;text-transform:uppercase;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:4px 6px;font-size:9px;font-weight:600}.eda-table td{color:#334155;border-bottom:1px solid #f8fafc;padding:4px 6px;font-family:JetBrains Mono,monospace}.eda-table tr:last-child td{border-bottom:none}.chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin:0 16px 12px;padding:10px 12px}.chart-title{color:#1e293b;margin-bottom:4px;font-size:11px;font-weight:700}.chart-stats{color:#64748b;margin-bottom:6px;font-size:10px}.chart-axis{color:#94a3b8;justify-content:space-between;margin-top:4px;font-size:9px;display:flex}.histogram-bars{align-items:flex-end;gap:1px;height:88px;padding:4px 0;display:flex}.hist-bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;display:flex}.hist-bar{background:linear-gradient(#818cf8,#6366f1);border-radius:2px 2px 0 0;min-height:2px}.corr-table{border-collapse:collapse;font-size:9px}.corr-table th{color:#64748b;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:28px;padding:2px 3px;font-size:8px;font-weight:600;overflow:hidden}.corr-table td{cursor:default;border:1px solid #0000000a}.vc-row{align-items:center;gap:6px;margin-bottom:4px;display:flex}.vc-label{color:#334155;white-space:nowrap;text-overflow:ellipsis;min-width:48px;font-size:10px;font-weight:600;overflow:hidden}.vc-bar-bg{background:#f1f5f9;border-radius:5px;flex:1;height:10px;overflow:hidden}.vc-bar{background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:5px;height:100%}.vc-count{color:#64748b;white-space:nowrap;text-align:right;min-width:48px;font-size:9px}.boxplot-wrap{height:28px;margin:8px 0 4px;position:relative}.boxplot-whisker{background:#94a3b8;border-radius:1px;height:2px;position:absolute;top:12px}.boxplot-box{background:#dbeafe;border:2px solid #6366f1;border-radius:3px;height:14px;position:absolute;top:6px}.boxplot-median{background:#6366f1;width:2px;height:18px;position:absolute;top:4px}.boxplot-mean{border-bottom:7px solid #ef4444;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;top:7px;transform:translate(-5px)}.boxplot-labels{color:#94a3b8;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:9px;display:flex}.prediction-card{background:#fafbff;border-color:#6366f1}.prediction-value{color:#6366f1;text-align:center;letter-spacing:-1px;padding:8px 0;font-size:28px;font-weight:800}.prediction-features{border-top:1px solid #e2e8f0;flex-direction:column;gap:2px;margin-top:6px;padding-top:8px;display:flex}.prediction-feature-row{justify-content:space-between;font-size:10px;display:flex}.pred-feat-name{color:#64748b;font-weight:500}.pred-feat-val{color:#334155;font-family:JetBrains Mono,monospace;font-weight:600}.export-modal{background:#fff;border-radius:16px;width:480px;max-width:95vw;animation:.2s ease-out slideUp;overflow:hidden;box-shadow:0 24px 64px #0000002e}.export-modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:20px 20px 16px;display:flex}.export-modal-title{color:#1e293b;font-size:16px;font-weight:700}.export-modal-sub{color:#94a3b8;margin-top:2px;font-size:12px}.export-options{flex-direction:column;gap:8px;padding:16px;display:flex}.export-option{text-align:left;cursor:pointer;border:1.5px solid var(--opt-border,#e2e8f0);background:var(--opt-bg,#f8fafc);border-radius:12px;align-items:center;gap:14px;width:100%;padding:14px 16px;font-family:inherit;transition:all .15s;display:flex}.export-option:hover:not(:disabled){border-color:var(--opt-color,#6366f1);transform:translateY(-1px);box-shadow:0 2px 12px #00000014}.export-option:disabled{opacity:.45;cursor:not-allowed}.export-option-icon{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.export-option-text{flex-direction:column;gap:2px;display:flex}.export-option-title{color:#1e293b;font-size:13px;font-weight:600}.export-option-sub{color:#64748b;font-size:11px;line-height:1.4}.export-empty{text-align:center;color:#94a3b8;padding:4px 20px 12px;font-size:12px}.export-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0 16px 12px;padding:10px 14px;font-size:12px}.viz-modal{background:#fff;border-radius:16px;flex-direction:column;width:860px;max-width:95vw;max-height:88vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0000002e}.viz-modal-header{background:#fafbfc;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.viz-modal-title{color:#1e293b;font-size:16px;font-weight:700}.viz-modal-sub{color:#94a3b8;margin-top:2px;font-family:JetBrains Mono,monospace;font-size:11px}.viz-modal-body{flex-direction:column;flex:1;gap:24px;padding:20px;display:flex;overflow-y:auto}.viz-section{flex-direction:column;display:flex}.viz-section-title{color:#1e293b;margin-bottom:6px;font-size:13px;font-weight:700}.viz-section-subtitle{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin:10px 0 6px;font-size:11px;font-weight:600}.viz-stats{color:#64748b;margin-bottom:8px;font-size:11px}.viz-legend{color:#94a3b8;margin-top:8px;font-size:10px}.viz-axis{color:#94a3b8;justify-content:space-between;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.viz-histogram{align-items:flex-end;gap:2px;height:180px;padding:4px 0 0;display:flex}.viz-hist-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;display:flex}.viz-hist-bar{background:linear-gradient(#818cf8,#6366f1);border-radius:3px 3px 0 0;width:100%;min-height:2px;transition:opacity .15s}.viz-hist-bar:hover{opacity:.8}.viz-hist-count{color:#94a3b8;font-size:7px}.viz-corr-table{border-collapse:collapse;font-size:10px}.viz-corr-table th{color:#64748b;text-align:center;white-space:nowrap;padding:4px 6px;font-size:9px;font-weight:600}.viz-corr-table td{text-align:center;cursor:default;border:1px solid #fff6;width:44px;height:32px;font-size:10px;font-weight:500;transition:opacity .1s}.viz-corr-table td:hover{opacity:.85}.viz-corr-label{color:#334155;white-space:nowrap;padding-right:8px;font-size:10px;font-weight:600;text-align:right!important;background:0 0!important;border:none!important}.viz-vc-row{align-items:center;gap:10px;margin-bottom:6px;display:flex}.viz-vc-label{color:#334155;text-overflow:ellipsis;white-space:nowrap;min-width:80px;max-width:120px;font-size:12px;font-weight:600;overflow:hidden}.viz-vc-track{background:#f1f5f9;border-radius:8px;flex:1;height:16px;overflow:hidden}.viz-vc-bar{background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:8px;height:100%;transition:width .4s}.viz-vc-val{color:#334155;text-align:right;min-width:90px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.viz-vc-pct{color:#94a3b8;font-weight:400}.viz-box-wrap{height:48px;margin:16px 0 8px;position:relative}.viz-whisker{background:#cbd5e1;border-radius:2px;height:3px;position:absolute;top:22px;left:0;right:0}.viz-box{background:#dbeafe;border:2px solid #6366f1;border-radius:4px;height:22px;position:absolute;top:12px}.viz-median{background:#4f46e5;border-radius:2px;width:3px;height:26px;position:absolute;top:10px}.viz-mean{border-bottom:10px solid #ef4444;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;top:16px;transform:translate(-6px)}.viz-box-stats{flex-wrap:wrap;justify-content:space-between;gap:4px;margin-top:8px;display:flex}.viz-box-stat{text-align:center}.viz-box-stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:9px;display:block}.viz-box-stat-val{color:#334155;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.viz-pred-value{color:#6366f1;text-align:center;letter-spacing:-2px;padding:16px 0;font-size:48px;font-weight:900}.viz-pred-features{margin-top:8px}.viz-feat-table{border-collapse:collapse;width:100%}.viz-feat-table tr:nth-child(2n) td{background:#f8fafc}.viz-feat-key{color:#64748b;width:40%;padding:5px 10px;font-size:11px;font-weight:600}.viz-feat-val{color:#1e293b;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.pm-modal{background:#f8fafc;border-radius:16px;flex-direction:column;width:95vw;max-width:1200px;height:85vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0003}.pm-header{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.pm-header-left{flex-direction:column;gap:4px;display:flex}.pm-header-title{color:#1e293b;font-size:18px;font-weight:700}.pm-header-sub{color:#64748b;font-family:JetBrains Mono,monospace;font-size:12px}.pm-header-actions{align-items:center;gap:12px;display:flex}.pm-dl-btn{color:#166534;cursor:pointer;background:#dcfce7;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.pm-dl-btn:hover{background:#bbf7d0}.pm-body{flex-direction:column;flex:1;gap:24px;padding:24px;display:flex;overflow-y:auto}.pm-empty{color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:40px;font-size:14px;display:flex}.pm-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;padding:20px;display:flex;box-shadow:0 1px 3px #00000005}.pm-section-title{color:#0f172a;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #f1f5f9;align-items:center;gap:8px;margin-bottom:4px;padding-bottom:12px;font-size:14px;font-weight:700;display:flex}.pm-model-badge{color:#5b21b6;background:#ede9fe;border-radius:8px;align-self:flex-start;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.pm-stat-row{flex-wrap:wrap;gap:16px;display:flex}.pm-stat{background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:120px;padding:12px 16px;display:flex}.pm-stat-label{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:600}.pm-stat-value{color:#1e293b;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:700}.pm-subsection{flex-direction:column;gap:8px;display:flex}.pm-subsection-label{color:#475569;font-size:12px;font-weight:600}.pm-null-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.pm-null-item{background:#f8fafc;border:1px solid #f1f5f9;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.pm-null-col{color:#334155;text-overflow:ellipsis;white-space:nowrap;width:80px;font-family:JetBrains Mono,monospace;font-size:11px;overflow:hidden}.pm-null-bar-bg{background:#e2e8f0;border-radius:4px;flex:1;height:6px;overflow:hidden}.pm-null-bar{background:#f59e0b;border-radius:4px;height:100%}.pm-null-n{color:#d97706;text-align:right;width:30px;font-size:11px;font-weight:700}.pm-col-chips{flex-wrap:wrap;gap:6px;display:flex}.pm-col-chip{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.pm-table-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto}.pm-table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:11px}.pm-table th{text-align:left;color:#475569;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 12px;font-weight:600}.pm-table td{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f1f5f9;max-width:200px;padding:6px 12px;overflow:hidden}.pm-table tr:last-child td{border-bottom:none}.pm-table tr:hover td{background:#f8fafc}.pm-row-idx{background:#f8fafc;border-right:1px solid #e2e8f0;font-weight:600;color:#94a3b8!important}.pm-metrics-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.pm-metric-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:8px;padding:16px;display:flex}.pm-metric-card-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.pm-metric-card-value{color:#0f172a;font-family:JetBrains Mono,monospace;font-size:24px;font-weight:800}.pm-metric-card-bar-bg{background:#e2e8f0;border-radius:4px;width:100%;height:6px;overflow:hidden}.pm-metric-card-bar{border-radius:4px;height:100%;transition:width .5s}.pm-metric-card-bar.good{background:#22c55e}.pm-metric-card-bar.bad{background:#ef4444}.pm-metric-card-hint{color:#94a3b8;margin-top:2px;font-size:10px;font-style:italic}.pm-scalar-table{flex-direction:column;gap:8px;display:flex}.pm-scalar-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.pm-scalar-key{color:#475569;font-size:12px;font-weight:600}.pm-scalar-val{color:#0f172a;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.home-shell{background:#f8fafc;width:100vw;height:100vh;display:flex;overflow:hidden}.home-sidebar{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow:hidden}.home-sidebar-logo{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:16px 18px;display:flex}.home-sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}.home-sidebar-section-label{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;padding:4px 10px 6px;font-size:10px;font-weight:600}.home-sidebar-nav-item{color:#475569;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.home-sidebar-nav-item:hover{color:#1e293b;background:#f1f5f9}.home-sidebar-nav-item-active{color:#4f46e5;background:#eef2ff}.home-sidebar-nav-item-active:hover{color:#3730a3;background:#e0e7ff}.home-sidebar-nav-count{color:#64748b;background:#e2e8f0;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:600}.home-myfiles{border-top:1px solid #f1f5f9;padding:12px 8px 16px}.home-myfiles-upload-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:500;transition:background .15s;display:inline-flex}.home-myfiles-list{flex-direction:column;gap:2px;max-height:160px;list-style:none;display:flex;overflow-y:auto}.home-myfiles-item{border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:flex}.home-myfiles-item:hover{background:#f8fafc}.home-myfiles-icon{color:#6366f1;flex-shrink:0}.home-myfiles-meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.home-myfiles-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.home-myfiles-delete{color:#cbd5e1;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:background .15s,color .15s;display:flex}.home-myfiles-item:hover .home-myfiles-delete{opacity:1}.home-main-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:28px 32px 0}.home-main-title{color:#0f172a;font-size:22px;font-weight:700}.home-tab:hover{color:#1e293b}.home-tab-disabled{color:#cbd5e1;cursor:not-allowed}.home-toolbar{background:#fff;border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:10px;padding:14px 32px;display:flex}.home-toolbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.home-search{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:8px 10px 8px 32px;font-size:13px;transition:all .2s}.home-search:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.home-search::placeholder{color:#94a3b8}.home-view-btn{color:#94a3b8;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.home-view-btn:hover{color:#475569;background:#f1f5f9}.home-new-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#4f46e5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s;display:inline-flex}.home-new-btn:hover{background:#4338ca;box-shadow:0 2px 8px #4f46e54d}.home-newflow-inline{align-items:center;display:flex}.home-newflow-input{color:#1e293b;background:#fff;border:2px solid #6366f1;border-radius:8px;outline:none;width:200px;padding:7px 12px;font-size:13px;font-weight:500;box-shadow:0 0 0 3px #6366f126}.home-flow-row:hover{border-color:#c7d2fe;box-shadow:0 2px 10px #6366f114}.flow-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.home-flow-row-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.home-flow-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.home-flow-chevron{color:#cbd5e1;flex-shrink:0;transition:color .15s}.home-flow-row:hover .home-flow-chevron{color:#6366f1}.home-rename-input{color:#1e293b;background:#fff;border:1px solid #6366f1;border-radius:4px;outline:none;width:100%;padding:2px 6px;font-size:14px;font-weight:600;box-shadow:0 0 0 2px #6366f126}.home-flow-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:14px;padding:16px 32px;display:grid;overflow-y:auto}.home-flow-card{cursor:pointer;background:#fff;border:1px solid #f1f5f9;border-radius:12px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.home-flow-card:hover{border-color:#c7d2fe;box-shadow:0 4px 16px #6366f11a}.home-flow-card-preview{justify-content:center;align-items:center;height:90px;display:flex}.home-flow-card-body{flex-direction:column;gap:4px;padding:12px 14px;display:flex}.home-flow-card-footer{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.flow-menu-wrap{flex-shrink:0;position:relative}.flow-menu-btn{color:#94a3b8;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s,color .15s;display:flex}.home-flow-row:hover .flow-menu-btn,.home-flow-card:hover .flow-menu-btn,.sidebar-project-item:hover .flow-menu-btn,.sidebar-project-item.active .flow-menu-btn{opacity:1}.flow-menu-dropdown{z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:130px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 20px #0000001f}.flow-menu-item{color:#374151;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-size:13px;transition:background .1s;display:flex}.home-empty{color:#94a3b8;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.home-empty-icon{color:#cbd5e1}.home-empty-title{color:#475569;font-size:18px;font-weight:600}.topbar-back-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s,border-color .15s;display:flex}.topbar-back-btn:hover{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.topbar-icon-btn:hover:not(:disabled){color:#1e293b!important;background:#f1f5f9!important}.topbar-flow-name-wrap{align-items:center;gap:6px;margin-right:4px;display:flex}.topbar-flow-divider{color:#cbd5e1;font-size:16px;font-weight:300;line-height:1}.topbar-flow-name{color:#334155;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;border-radius:5px;max-width:240px;padding:3px 6px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s;overflow:hidden}.topbar-flow-name:hover{background:#f8fafc;border-color:#e2e8f0}.topbar-flow-name-input{color:#1e293b;background:#fff;border:1.5px solid #6366f1;border-radius:5px;outline:none;width:200px;padding:3px 8px;font-size:14px;font-weight:600;box-shadow:0 0 0 3px #6366f11f}.em-chat-container{border-top:1px solid #e2e8f0;flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;display:flex}.em-chat-history{flex-direction:column;gap:8px;max-height:250px;display:flex;overflow-y:auto}.em-chat-msg{width:100%;display:flex}.em-chat-msg.user{justify-content:flex-end}.em-chat-msg.assistant{justify-content:flex-start}.em-chat-bubble{white-space:pre-wrap;word-break:break-word;border-radius:12px;max-width:85%;padding:8px 12px;font-size:13px;line-height:1.5}.em-chat-msg.user .em-chat-bubble{color:#fff;background:#6366f1;border-bottom-right-radius:4px}.em-chat-msg.assistant .em-chat-bubble{color:#334155;background:#f1f5f9;border-bottom-left-radius:4px}.em-chat-form{gap:8px;display:flex}.em-chat-form input{border:1px solid #cbd5e1;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:13px}.em-chat-form input:focus{border-color:#6366f1}.em-chat-form button{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:8px;padding:0 16px;font-weight:600}.em-chat-form button:disabled{opacity:.5;cursor:not-allowed}[data-theme=never] .em-chat-container{border-color:#334155}[data-theme=never] .em-chat-msg.assistant .em-chat-bubble{color:#e2e8f0;background:#1e293b}[data-theme=never] .em-chat-form input{color:#e2e8f0;background:#0f172a;border-color:#334155}[data-theme=never] .em-chat-form input:focus{border-color:#818cf8}.settings-beta-section{background:#6366f108;border:1px solid #6366f11a;border-radius:12px;margin-top:24px;padding:16px}.settings-beta-header{color:#1e293b;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.beta-sparkle{color:#6366f1}.settings-beta-desc{color:#64748b;margin-bottom:12px;font-size:12px;line-height:1.5}.settings-beta-email{color:#6366f1;background:#6366f114;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.settings-beta-email:hover{background:#6366f11f;transform:translateY(-1px)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.center-column{flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.canvas-wrapper{flex:1;min-height:0;position:relative}.bottom-panel{z-index:10;background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;height:48px;position:relative}.bp-tabs{background:#fafbfc;width:100%;height:48px;display:flex}.bp-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-top:3px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.bp-tab:hover{color:#334155;background:#f1f5f9}.bp-tab.active{color:#6366f1;background:#fff;border-top-color:#6366f1}.bp-content-wrapper{opacity:0;pointer-events:none;z-index:11;background:#fff;border-top:1px solid #e2e8f0;flex-direction:column;height:0;display:flex;position:absolute;bottom:48px;left:0;right:0;overflow:hidden;box-shadow:0 -10px 30px #0000000d}.bottom-panel.open .bp-content-wrapper{opacity:1;pointer-events:auto}.bp-resizer{cursor:ns-resize;z-index:12;background:0 0;width:100%;height:5px;position:absolute;top:0;left:0}.bp-resizer:hover{background:#6366f133}.bp-content{flex:1;min-height:0;padding:24px;animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUpFade;overflow-y:auto}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bp-empty{color:#94a3b8;justify-content:center;align-items:center;padding:40px;font-size:14px;display:flex}.bp-loading{color:#6366f1;align-items:center;gap:12px;font-size:14px;display:flex}.bp-text{color:#334155;white-space:pre-wrap;font-size:14px;line-height:1.7}.bp-error{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:12px;display:flex}.bp-btn{cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:8px 16px;font-weight:600;transition:all .2s}.bp-btn:hover{background:#e2e8f0}.bp-export-buttons{flex-direction:column;gap:12px;max-width:400px;margin:0 auto;display:flex}.bp-export-btn{color:#64748b;cursor:not-allowed;text-align:left;background:#fff;border:2px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;padding:16px 20px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.bp-export-btn.active{cursor:pointer;color:#1e293b;border-color:#cbd5e1}.bp-export-btn.active:hover{background:#f8fafc;border-color:#6366f1;transform:translateY(-2px);box-shadow:0 4px 12px #6366f11a}.bp-export-icon{font-size:24px}.bp-export-coming{text-transform:uppercase;background:#f1f5f9;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10px}.unified-sidebar{flex-direction:column;display:flex;width:340px!important}.unified-actions{background:#fafbfc;border-bottom:1px solid #e2e8f0;flex-direction:column;gap:12px;padding:16px;display:flex}.rs-btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.rs-btn-primary{color:#fff;background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.rs-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.rs-btn-danger{color:#ef4444;background:#fef2f2;border:1px solid #fecaca}.rs-btn-danger:hover:not(:disabled){background:#fee2e2}.rs-btn-heal{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);animation:1.8s ease-in-out infinite pulse-amber;box-shadow:0 2px 8px #f59e0b59}.rs-btn-heal:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b80}@keyframes pulse-amber{0%,to{box-shadow:0 2px 8px #f59e0b59}50%{box-shadow:0 2px 16px #f59e0b99}}.rs-btn:disabled{opacity:.5;cursor:not-allowed}.unified-scroll{flex-direction:column;flex:1;display:flex;overflow-y:auto}.unified-ai-wrapper{flex-direction:column;flex:none;min-height:200px;display:flex}.rs-resizer{cursor:row-resize;-webkit-user-select:none;user-select:none;background:#fafbfc;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;flex:none;justify-content:center;align-items:center;height:8px;transition:background .2s;display:flex}.rs-resizer:hover,.rs-resizer:active{background:#f1f5f9}.rs-resizer-handle{background:#cbd5e1;border-radius:99px;width:32px;height:4px;transition:background .2s}.rs-resizer:hover .rs-resizer-handle,.rs-resizer:active .rs-resizer-handle{background:#94a3b8}.unified-ai-wrapper .ai-tab{flex-direction:column;flex:1;display:flex;overflow:hidden}.unified-logs-wrapper{flex-direction:column;flex:1 0;padding:16px;display:flex}.unified-logs-header{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;font-size:12px;font-weight:700}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.home-shell{color:#1e293b;background:#fff;height:100vh;font-family:Inter,sans-serif;display:flex}.home-sidebar{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;justify-content:space-between;width:260px;padding:24px 20px;display:flex}.home-sidebar-logo{align-items:center;gap:12px;margin-bottom:40px;display:flex}.logo-icon{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex;box-shadow:0 4px 12px #6366f14d}.logo-inner{background:#fff;border-radius:4px;width:12px;height:12px}.logo-name{letter-spacing:-.5px;font-size:18px;font-weight:800;display:block}.logo-tag{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600;display:block}.home-sidebar-top{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-divider{background:#e2e8f0;height:1px;margin:0 -20px 20px}.sidebar-projects-header{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.sidebar-projects-title{color:#0f172a;font-size:15px;font-weight:700}.sidebar-projects-actions{color:#94a3b8;align-items:center;gap:12px;display:flex}.sidebar-projects-actions svg{cursor:pointer;transition:color .2s}.sidebar-projects-actions svg:hover{color:#0f172a}.sidebar-project-item{color:#475569;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;width:100%;padding:10px 14px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.sidebar-project-item:hover{background:#f1f5f9}.sidebar-project-item.active{color:#0f172a;background:#f1f5f9;font-weight:600}.sidebar-project-more{opacity:.6;color:#64748b;align-items:center;margin-left:auto;transition:all .2s;display:flex}.sidebar-project-item:hover .sidebar-project-more,.sidebar-project-item.active .sidebar-project-more{opacity:1;color:#0f172a}.sidebar-footer{background:#fff;border-top:1px solid #e2e8f0;margin:0 -20px -24px;padding:20px 20px 24px}.sidebar-footer-btn{color:#475569;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:12px;width:100%;padding:10px 14px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.sidebar-footer-btn:hover,.sidebar-footer-btn.active{color:#0f172a}.sidebar-footer-icon{color:#64748b}.home-myfiles{flex-direction:column;flex:1;display:flex}.home-myfiles-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.home-myfiles-upload-btn{color:#6366f1;cursor:pointer;background:#e0e7ff;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;transition:all .2s;display:flex}.home-myfiles-upload-btn:hover{background:#c7d2fe}.home-myfiles-upload-btn.disabled{opacity:.5;cursor:not-allowed}.home-myfiles-empty{color:#94a3b8;padding:12px 0;font-size:12px}.home-myfiles-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.home-myfiles-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.home-myfiles-icon{color:#cbd5e1}.home-myfiles-meta{flex-direction:column;flex:1;min-width:0;display:flex}.home-myfiles-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.home-myfiles-cols{color:#94a3b8;font-size:10px}.home-myfiles-delete{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;transition:all .2s}.home-myfiles-delete:hover{color:#ef4444;background:#fee2e2}.home-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.home-main-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:40px 60px 0}.home-main-title-row{align-items:center;gap:12px;margin-bottom:24px;display:flex}.home-main-title-icon{color:#6366f1}.home-main-title{letter-spacing:-.5px;margin:0;font-size:28px;font-weight:800}.home-tabs{gap:24px;display:flex}.home-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 0 12px;font-size:14px;font-weight:600;transition:all .2s}.home-tab-active{color:#4f46e5;border-bottom-color:#4f46e5}.home-tab-disabled{opacity:.5;cursor:not-allowed}.home-toolbar{justify-content:space-between;align-items:center;padding:20px 60px;display:flex}.home-search-wrap{width:300px;position:relative}.home-search-icon{color:#94a3b8;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.home-search{background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:10px 12px 10px 36px;font-size:13px;transition:all .2s}.home-search:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.home-toolbar-right{align-items:center;gap:12px;display:flex}.home-view-btn{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px;transition:all .2s}.home-view-btn.active{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.home-view-btn:hover:not(.active){background:#f8fafc}.home-new-btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #4f46e54d}.home-new-btn:hover{background:#4338ca;transform:translateY(-1px);box-shadow:0 6px 16px #4f46e566}.home-newflow-inline{display:flex}.home-newflow-input{border:2px solid #6366f1;border-radius:8px;outline:none;padding:10px 16px;font-size:14px;font-weight:600;box-shadow:0 4px 12px #6366f133}.home-empty{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.home-empty-icon{color:#cbd5e1;margin-bottom:16px}.home-empty-title{color:#334155;margin-bottom:8px;font-size:18px;font-weight:700}.home-empty-sub{color:#64748b;margin-bottom:24px;font-size:14px}.home-flow-list{flex-direction:column;flex:1;gap:12px;padding:0 60px 40px;display:flex;overflow-y:auto}.home-flow-row{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:16px;padding:16px 20px;transition:all .2s;display:flex;position:relative}.home-flow-row:focus-within{z-index:10}.home-flow-row:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.flow-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 12px #0000001a}.home-flow-row-info{flex-direction:column;flex:1;min-width:0;display:flex}.home-flow-name{color:#1e293b;margin-bottom:4px;font-size:15px;font-weight:600}.home-rename-input{color:#1e293b;background:#f8fafc;border:1px solid #6366f1;border-radius:4px;outline:none;width:100%;max-width:300px;margin-bottom:2px;padding:2px 6px;font-size:15px;font-weight:600}.home-flow-meta{color:#64748b;font-size:12px}.home-flow-chevron{color:#cbd5e1}.home-flow-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;padding:0 60px 40px;display:grid;overflow-y:auto}.home-flow-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;transition:all .2s;display:flex;position:relative}.home-flow-card:focus-within{z-index:10}.home-flow-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 12px 32px #00000014}.home-flow-card-preview{border-top-left-radius:11px;border-top-right-radius:11px;justify-content:center;align-items:center;height:120px;display:flex}.home-flow-card-body{flex-direction:column;flex:1;padding:20px;display:flex}.home-flow-card-footer{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;display:flex}.flow-menu-wrap{position:relative}.flow-menu-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;transition:all .2s}.flow-menu-btn:hover{color:#334155;background:#f1f5f9}.flow-menu-dropdown{z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:140px;margin-top:4px;padding:6px;position:absolute;top:100%;right:0;box-shadow:0 10px 25px #0000001a}.flow-menu-item{text-align:left;color:#334155;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.flow-menu-item:hover{background:#f1f5f9}.flow-menu-item-danger{color:#ef4444}.custom-node-delete{color:#94a3b8;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;padding:4px;transition:all .2s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.template-card:hover .custom-node-delete{opacity:1}.custom-node-delete:hover{color:#ef4444;background:#fee2e2}.flow-menu-item-danger:hover{background:#fef2f2}.home-settings-panel{box-sizing:border-box;flex-direction:column;gap:20px;max-width:680px;height:100%;padding:28px 32px;display:flex;overflow-y:auto}.home-settings-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;gap:14px;padding:22px 24px;display:flex}.home-settings-card-dim{opacity:.55}.home-settings-card-header{color:#0f172a;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.home-settings-desc{color:#64748b;margin:0;font-size:12px;line-height:1.6}.settings-key-badge{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.settings-key-badge-ok{color:#16a34a;background:#f0fdf4;border:1px solid #86efac}.settings-key-badge-missing{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5}.settings-key-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;align-items:center;gap:12px;padding:12px 14px;display:flex}.settings-key-display{flex:1;min-width:0}.settings-key-value{color:#334155;letter-spacing:.03em;font-family:JetBrains Mono,monospace;font-size:13px}.settings-key-empty{color:#94a3b8;font-size:13px;font-style:italic}.settings-key-actions{flex-shrink:0;gap:6px;display:flex}.settings-key-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:7px;align-items:center;gap:5px;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.settings-key-btn:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.settings-key-btn-danger:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.settings-key-edit{flex-direction:column;gap:8px;display:flex}.settings-edit-actions{justify-content:flex-end;gap:8px;display:flex}.settings-saved-msg{color:#16a34a;align-items:center;gap:5px;margin:0;font-size:12px;font-weight:600;display:inline-flex}.settings-external-link{color:#6366f1;background:#eef2ff;border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.settings-external-link:hover{background:#e0e7ff}
@@ -8,8 +8,8 @@
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com" />
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
10
  <title>M8Flow — ML Pipeline Builder</title>
11
- <script type="module" crossorigin src="/assets/index-DvcUKYKx.js"></script>
12
- <link rel="stylesheet" crossorigin href="/assets/index-CKHHQk3Q.css">
11
+ <script type="module" crossorigin src="/assets/index-BI1hb_gi.js"></script>
12
+ <link rel="stylesheet" crossorigin href="/assets/index-D9h1Krrv.css">
13
13
  </head>
14
14
  <body>
15
15
  <div id="root"></div>
package/package.json CHANGED
@@ -1,16 +1,35 @@
1
1
  {
2
2
  "name": "m8flow",
3
- "version": "1.1.2",
4
- "description": "Visual ML Pipeline Builder run locally with one command",
3
+ "version": "1.1.4",
4
+ "description": "AI-powered visual machine learning workflow builder with local execution, pipeline orchestration, and zero-config setup.",
5
5
  "keywords": [
6
6
  "machine-learning",
7
- "pipeline",
7
+ "mlops",
8
8
  "ai",
9
- "ml",
9
+ "workflow",
10
+ "pipeline",
11
+ "visual-programming",
12
+ "langflow",
13
+ "fastapi",
14
+ "react",
15
+ "automation",
16
+ "orchestration",
10
17
  "no-code",
11
- "langflow"
18
+ "ml-pipeline",
19
+ "data-science",
20
+ "sklearn",
21
+ "openrouter",
22
+ "gemini"
12
23
  ],
13
24
  "license": "MIT",
25
+ "homepage": "https://www.npmjs.com/package/m8flow",
26
+ "bugs": {
27
+ "url": "https://github.com/mursaleen231213/m8flow/issues"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/mursaleen231213/m8flow.git"
32
+ },
14
33
  "type": "module",
15
34
  "engines": {
16
35
  "node": ">=18.0.0"
@@ -1 +0,0 @@
1
- @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important}body{font-family:Inter,system-ui,sans-serif;color:#1e293b!important;background:#f8fafc!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-layout{width:100vw;height:100vh;display:flex;overflow:hidden}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;display:flex;overflow:hidden}.canvas-wrapper{flex:1;height:100%;position:relative}.topbar{z-index:20;background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;align-items:center;gap:12px;height:52px;padding:0 16px;display:flex;box-shadow:0 1px 4px #0000000a}.topbar-logo{align-items:center;gap:10px;margin-right:8px;display:flex}.topbar-actions{flex:1;align-items:center;gap:6px;display:flex}.topbar-divider{background:#e2e8f0;width:1px;height:20px;margin:0 4px}.topbar-status{align-items:center;gap:6px;display:flex}.topbar-version-badge{color:#0369a1;white-space:nowrap;background:#f0f9ff;border:1px solid #bae6fd;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.topbar-version-badge .version-count{color:#fff;background:#0369a1;border-radius:999px;padding:0 5px;font-size:10px;font-weight:800}.topbar-save-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;height:32px;padding:0 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.topbar-save-btn:hover:not(:disabled){color:#6366f1;background:#f5f3ff;border-color:#6366f1}.topbar-save-btn:disabled{opacity:.45;cursor:not-allowed}.topbar-settings-btn{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:inline-flex}.topbar-settings-btn:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.settings-modal{width:500px;max-width:95vw}.settings-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.settings-section+.settings-section{margin-top:12px}.settings-section-dim{opacity:.5}.settings-section-header{color:#0f172a;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.settings-section-desc{color:#64748b;margin:0;font-size:12px;line-height:1.6}.tb-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.tb-btn:disabled{opacity:.45;cursor:not-allowed}.tb-btn-primary{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 1px 4px #22c55e4d}.tb-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #22c55e73}.tb-btn-secondary{color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 1px 4px #6366f140}.tb-btn-secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #6366f166}.tb-btn-ghost{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.tb-btn-ghost:hover:not(:disabled){background:#e2e8f0}.tb-btn-danger{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.tb-btn-danger:hover:not(:disabled){background:#fee2e2}.status-pill{color:#64748b;background:#f1f5f9;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.status-pill-green{color:#166534;background:#dcfce7}.status-pill-red{color:#dc2626;background:#fef2f2}.right-sidebar{z-index:10;background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:320px;height:100%;display:flex;box-shadow:-2px 0 12px #00000008}.sidebar-tabs{background:#fafbfc;border-bottom:1px solid #e2e8f0;flex-shrink:0;display:flex}.sidebar-tab{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px 8px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;display:flex}.sidebar-tab:hover{color:#475569;background:#f1f5f9}.sidebar-tab.active{color:#6366f1;background:#fff;border-bottom-color:#6366f1}.sidebar-content{flex:1;overflow-y:auto}.ai-tab{flex-direction:column;height:100%;display:flex}.api-key-gate{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:28px 20px;display:flex}.api-key-gate-icon{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;display:flex;box-shadow:0 4px 14px #6366f159}.api-key-gate-title{color:#0f172a;margin:0;font-size:15px;font-weight:800}.api-key-gate-desc{color:#64748b;max-width:240px;margin:0;font-size:12px;line-height:1.6}.api-key-gate-link{color:#6366f1;background:#eef2ff;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;text-decoration:none;transition:background .15s;display:inline-flex}.api-key-gate-link:hover{background:#e0e7ff}.api-key-input-row{width:100%;max-width:280px;position:relative}.api-key-input{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:9px 36px 9px 12px;font-family:JetBrains Mono,monospace;font-size:12px;transition:border-color .15s}.api-key-input:focus{background:#fff;border-color:#6366f1}.api-key-input-error{border-color:#ef4444}.api-key-eye-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.api-key-eye-btn:hover{color:#475569}.api-key-error{color:#ef4444;text-align:left;width:100%;max-width:280px;margin:-6px 0 0;font-size:11px;font-weight:600}.api-key-save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:9px;width:100%;max-width:280px;height:38px;font-family:inherit;font-size:13px;font-weight:700;transition:opacity .15s,transform .15s;box-shadow:0 2px 8px #6366f14d}.api-key-save-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.api-key-save-btn:disabled{opacity:.45;cursor:not-allowed}.api-key-privacy{color:#94a3b8;margin:0;font-size:10px}.theme-picker{gap:8px;display:flex}.theme-option{color:#64748b;cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:14px 8px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:flex}.theme-option:hover{color:#6366f1;background:#eef2ff;border-color:#a5b4fc}.theme-option-active{color:#6366f1;background:#eef2ff;border-color:#6366f1}[data-theme=never] body{color:#e2e8f0;background:#0f172a}[data-theme=never] .app-shell,[data-theme=never] .app-body,[data-theme=never] .center-column{background:#0f172a}[data-theme=never] .canvas-wrapper{background:#0d1117}[data-theme=never] .topbar{background:#111827;border-color:#1e293b}[data-theme=never] .logo-name{color:#f1f5f9}[data-theme=never] .logo-tag{color:#64748b}[data-theme=never] .status-pill{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .status-pill-green{color:#4ade80;background:#052e16;border-color:#166534}[data-theme=never] .status-pill-red{color:#f87171;background:#2d0a0a;border-color:#7f1d1d}[data-theme=never] .topbar-version-badge{color:#7dd3fc;background:#0c1a2e;border-color:#1e3a5f}[data-theme=never] .topbar-save-btn,[data-theme=never] .topbar-settings-btn{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .topbar-save-btn:hover:not(:disabled),[data-theme=never] .topbar-settings-btn:hover{color:#a5b4fc;background:#312e81;border-color:#6366f1}[data-theme=never] .topbar-back-btn{color:#64748b;background:0 0;border-color:#334155}[data-theme=never] .topbar-back-btn:hover{color:#a5b4fc;border-color:#6366f1}[data-theme=never] .topbar-flow-name{color:#e2e8f0}[data-theme=never] .topbar-flow-name:hover{color:#a5b4fc}[data-theme=never] .topbar-flow-divider{color:#475569}[data-theme=never] .topbar-flow-name-input{color:#f1f5f9;background:#1e293b;border-color:#6366f1}[data-theme=never] .left-panel{background:#111827;border-color:#1e293b}[data-theme=never] .panel-section-label{color:#475569}[data-theme=never] .panel-search{background:#1e293b;border-color:#334155}[data-theme=never] .search-input{color:#e2e8f0;background:0 0}[data-theme=never] .search-input::placeholder{color:#475569}[data-theme=never] .category-header{color:#94a3b8}[data-theme=never] .category-header:hover{background:#1e293b}[data-theme=never] .category-name{color:#cbd5e1}[data-theme=never] .category-count{color:#64748b;background:#1e293b}[data-theme=never] .template-card{background:#1e293b;border-color:#334155}[data-theme=never] .template-card:hover{background:#1e3a5f;border-color:#6366f1}[data-theme=never] .template-name{color:#e2e8f0}[data-theme=never] .template-ports{color:#64748b}[data-theme=never] .drag-handle{color:#475569}[data-theme=never] .panel-hint{color:#475569;background:#0f172a;border-color:#1e293b}[data-theme=never] .right-sidebar,[data-theme=never] .unified-sidebar{background:#111827;border-color:#1e293b}[data-theme=never] .rs-btn-danger{color:#f87171;background:#2d0a0a;border-color:#7f1d1d}[data-theme=never] .rs-btn-danger:hover:not(:disabled){background:#450a0a}[data-theme=never] .bottom-panel{background:#111827;border-color:#1e293b}[data-theme=never] .bottom-panel.open{background:#111827}[data-theme=never] .bp-tabs{background:#111827;border-color:#1e293b}[data-theme=never] .bp-tab{color:#64748b}[data-theme=never] .bp-tab:hover{color:#a5b4fc}[data-theme=never] .bp-tab.active{color:#6366f1;border-color:#6366f1}[data-theme=never] .bp-content{background:#111827}[data-theme=never] .bp-empty{color:#475569;border-color:#1e293b}[data-theme=never] .bp-loading{color:#94a3b8}[data-theme=never] .bp-btn{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .bp-btn:hover{color:#a5b4fc;background:#312e81}[data-theme=never] .version-panel{background:#111827}[data-theme=never] .panel-section-header{color:#94a3b8;border-color:#1e293b}[data-theme=never] .version-item{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .version-item:hover{background:#1a2744;border-color:#6366f1}[data-theme=never] .version-item.active{background:#0c1a2e;border-color:#0ea5e9}[data-theme=never] .version-title{color:#38bdf8}[data-theme=never] .version-meta{color:#475569}[data-theme=never] .version-compare{background:#1e293b;border-color:#334155}[data-theme=never] .version-save-btn{color:#64748b;background:#1e293b;border-color:#334155}[data-theme=never] .version-save-btn:hover{color:#a5b4fc;background:#312e81}[data-theme=never] .version-select-row select{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .version-delete-confirm{background:#2d0a0a;border-color:#7f1d1d}[data-theme=never] .ai-context-bar{background:#0f172a;border-color:#1e293b}[data-theme=never] .context-badge{color:#64748b;background:#1e293b;border-color:#334155}[data-theme=never] .context-badge-active{color:#4ade80;background:#052e16;border-color:#166534}[data-theme=never] .chat-history{background:#0f172a}[data-theme=never] .chat-bubble-user{color:#e0e7ff;background:#312e81}[data-theme=never] .chat-bubble-assistant{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .chat-ts{color:#475569}[data-theme=never] .chat-empty-icon{color:#334155}[data-theme=never] .chat-empty-title{color:#94a3b8}[data-theme=never] .chat-empty-sub{color:#475569}[data-theme=never] .chat-input{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .chat-input::placeholder{color:#475569}[data-theme=never] .chat-input:focus{border-color:#6366f1}[data-theme=never] .chat-send-btn{background:linear-gradient(135deg,#4338ca,#7c3aed)}[data-theme=never] .chat-chips{background:#0f172a!important;border-color:#1e293b!important}[data-theme=never] .chat-clear-btn{color:#475569}[data-theme=never] .chat-clear-btn:hover{color:#f87171}[data-theme=never] .modal-overlay{background:#000000a6}[data-theme=never] .modal-content{background:#1e293b;border:1px solid #334155}[data-theme=never] .modal-header{border-color:#334155}[data-theme=never] .modal-title{color:#f1f5f9}[data-theme=never] .modal-close{color:#64748b}[data-theme=never] .modal-close:hover{color:#e2e8f0;background:#334155}[data-theme=never] .modal-footer{background:#162032;border-color:#334155}[data-theme=never] .modal-btn-secondary{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .modal-btn-secondary:hover{background:#334155}[data-theme=never] .settings-section{background:#162032;border-color:#334155}[data-theme=never] .settings-section-header{color:#e2e8f0}[data-theme=never] .settings-section-desc{color:#64748b}[data-theme=never] .settings-key-row{background:#1e293b;border-color:#334155}[data-theme=never] .settings-key-value{color:#cbd5e1}[data-theme=never] .settings-key-btn{color:#94a3b8;background:#1e293b;border-color:#334155}[data-theme=never] .settings-key-btn:hover{color:#a5b4fc;background:#312e81;border-color:#6366f1}[data-theme=never] .theme-option{color:#64748b;background:#1e293b;border-color:#334155}[data-theme=never] .theme-option:hover,[data-theme=never] .theme-option-active{color:#a5b4fc;background:#312e81;border-color:#6366f1}[data-theme=never] input:not([type=checkbox]):not([type=file]),[data-theme=never] textarea,[data-theme=never] select{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] input::placeholder,[data-theme=never] textarea::placeholder{color:#475569}[data-theme=never] .form-label{color:#94a3b8}[data-theme=never] .api-key-gate{background:0 0}[data-theme=never] .api-key-input{color:#e2e8f0;background:#1e293b;border-color:#334155}[data-theme=never] .api-key-input:focus{background:#162032;border-color:#6366f1}.ai-context-bar{background:#fafbfc;border-bottom:1px solid #f1f5f9;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.ai-context-bar-left{align-items:center;gap:6px;display:flex}.context-badge{color:#94a3b8;background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.context-badge-active{color:#166534;background:#dcfce7}.chat-history{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.chat-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.chat-empty-icon{color:#cbd5e1}.chat-empty-title{color:#334155;font-size:14px;font-weight:600}.chat-empty-sub{color:#94a3b8;font-size:12px;line-height:1.5}.chat-bubble{border-radius:12px;flex-direction:column;gap:4px;max-width:90%;padding:10px 12px;display:flex}.chat-bubble-user{color:#fff;background:#6366f1;border-bottom-right-radius:3px;align-self:flex-end}.chat-bubble-assistant{color:#334155;background:#f1f5f9;border-bottom-left-radius:3px;align-self:flex-start}.chat-bubble-loading{color:#64748b;flex-direction:row;align-items:center;gap:8px;font-size:12px}.chat-intent-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:4px;align-self:flex-start;padding:1px 6px;font-size:9px;font-weight:700}.chat-text{font-size:12px;line-height:1.5}.chat-ts{opacity:.5;align-self:flex-end;font-size:9px}.chat-chips{flex-wrap:wrap;gap:5px;padding:0 12px 8px;display:flex}.chat-chip{border:1px solid var(--chip-color,#e2e8f0);color:var(--chip-color,#64748b);cursor:pointer;background:#fff;border-radius:16px;padding:4px 10px;font-family:inherit;font-size:10px;transition:all .15s}.chat-chip:hover:not(:disabled){opacity:.8;transform:translateY(-1px)}.chat-input-row{border-top:1px solid #f1f5f9;flex-shrink:0;gap:6px;padding:10px 12px;display:flex}.chat-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:20px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:12px;transition:all .2s}.chat-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.chat-send-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-send-btn:hover:not(:disabled){transform:scale(1.08)}.chat-clear-btn{color:#94a3b8;cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:4px 12px 8px;font-size:10px}.chat-clear-btn:hover{color:#ef4444}.results-tab{flex-direction:column;gap:14px;padding:12px;display:flex}.rt-section-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;align-items:center;gap:5px;margin-bottom:6px;font-size:10px;font-weight:700;display:flex}.results-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 16px;display:flex}.results-empty-icon{color:#cbd5e1}.results-empty p{color:#94a3b8;font-size:12px}.healed-tag{color:#854d0e;background:#fef9c3;border-radius:4px;padding:1px 6px;font-size:9px}.result-icon.healed{color:#f59e0b}.versions-tab{padding:0}.data-tab{padding:16px}.data-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 0;display:flex}.data-empty-icon{color:#cbd5e1}.data-empty-title{color:#334155;font-size:14px;font-weight:600}.data-empty-sub{color:#94a3b8;font-size:12px;line-height:1.5}.data-upload-btn{color:#fff;cursor:pointer;background:#6366f1;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.data-upload-btn:hover{background:#4f46e5}.data-error{color:#ef4444;font-size:11px}.data-info{flex-direction:column;gap:12px;display:flex}.data-header{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.data-file-info{align-items:center;gap:10px;display:flex}.data-file-icon{color:#6366f1}.data-filename{color:#1e293b;font-size:12px;font-weight:600}.data-shape{color:#94a3b8;font-size:10px}.data-clear-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:4px;padding:4px}.data-clear-btn:hover{color:#ef4444;background:#fef2f2}.data-section-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;font-size:10px;font-weight:700}.data-columns{flex-direction:column;gap:3px;max-height:300px;display:flex;overflow-y:auto}.data-column-row{background:#f8fafc;border-radius:5px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;display:flex}.data-col-name{color:#334155;font-family:JetBrains Mono,monospace;font-weight:500}.data-col-type{border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.data-col-type.numeric{color:#92400e;background:#fef3c7}.data-col-type.text{color:#1d4ed8;background:#eff6ff}.data-replace-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:5px;padding:6px 12px;font-size:11px;font-weight:600;transition:all .15s;display:inline-flex}.data-replace-btn:hover{background:#e2e8f0}.left-panel{z-index:10;background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;width:272px;height:100%;display:flex;box-shadow:2px 0 12px #00000008}.panel-logo{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:18px 20px;display:flex}.logo-name{color:#1e293b;letter-spacing:-.3px;font-size:16px;font-weight:700;display:block}.logo-tag{color:#6366f1;letter-spacing:.5px;text-transform:uppercase;background:#6366f11a;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:600}.panel-search{margin:12px 16px;position:relative}.search-icon{color:#94a3b8;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:8px 10px 8px 32px;font-size:12px;transition:all .2s}.search-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.search-input::placeholder{color:#94a3b8}.panel-section-label{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;padding:4px 20px 6px;font-size:10px;font-weight:600}.node-library{flex:1;padding:0 12px 12px;overflow-y:auto}.library-loading,.library-empty{text-align:center;color:#94a3b8;flex-direction:column;align-items:center;gap:8px;padding:24px;font-size:12px;display:flex}.loading-spinner{border:2px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.library-category{margin-bottom:4px}.category-header{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;padding:7px 8px;font-size:11px;font-weight:600;transition:background .15s;display:flex}.category-header:hover{background:#f1f5f9}.category-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.category-name{text-align:left;flex:1}.category-count{color:#94a3b8;background:#f1f5f9;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:500}.category-items{padding:2px 0 4px 8px}.template-card{cursor:grab;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}.template-card:hover{background:#f1f5f9;border-color:#e2e8f0}.template-card:active{cursor:grabbing;transform:scale(.97)}.drag-handle{color:#cbd5e1;flex-shrink:0}.template-icon{flex-shrink:0}.template-name{color:#334155;font-size:12px;font-weight:500;display:block}.template-ports{color:#94a3b8;font-size:10px}.panel-hint{color:#94a3b8;background:#fafbfc;border-top:1px solid #f1f5f9;padding:12px 16px;font-size:10px;line-height:1.5}.custom-node-delete{color:#94a3b8;opacity:0;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .15s,color .15s,background .15s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:14px;flex-direction:column;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000002e}.modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.modal-title{color:#0f172a;margin:0;font-size:15px;font-weight:700}.modal-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s,color .15s;display:flex}.modal-close:hover{color:#334155;background:#f1f5f9}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{background:#fafbfc;border-top:1px solid #f1f5f9;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:#475569;font-size:12px;font-weight:600}.modal-btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .15s,transform .15s;display:inline-flex}.modal-btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.modal-btn-primary:disabled{opacity:.45;cursor:not-allowed}.modal-btn-secondary{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.modal-btn-secondary:hover{background:#f8fafc}.right-panel{z-index:10;background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;width:288px;height:100%;display:flex;overflow-y:auto;box-shadow:-2px 0 12px #00000008}.panel-section-header{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;align-items:center;gap:8px;padding:12px 16px 8px;font-size:10px;font-weight:600;display:flex}.action-buttons{flex-direction:column;gap:8px;padding:8px 16px 12px;display:flex}.action-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s;display:flex}.execute-btn{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 2px 8px #22c55e4d}.execute-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #22c55e66}.execute-btn:disabled,.action-btn.disabled{opacity:.5;cursor:not-allowed}.action-row{gap:8px;display:flex}.secondary-btn{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;flex:1}.secondary-btn:hover:not(:disabled){background:#e2e8f0}.danger-btn{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;flex:1}.danger-btn:hover:not(:disabled){background:#fee2e2}.success-btn{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.success-btn:hover:not(:disabled){background:#bbf7d0}.explain-btn{color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 2px 8px #6366f140}.explain-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #6366f166}.explain-btn:disabled{opacity:.5;cursor:not-allowed}.em-modal{background:#f8fafc;border-radius:16px;flex-direction:column;width:90vw;max-width:780px;max-height:88vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0003}.em-header{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.em-header-left{align-items:center;gap:12px;display:flex}.em-header-title{color:#0f172a;font-size:17px;font-weight:700}.em-header-sub{color:#64748b;margin-top:2px;font-size:11px}.em-body{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.em-loading{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:16px;padding:32px;display:flex}.em-spinner{animation:1s linear infinite spin}.em-loading-title{color:#1e293b;font-size:15px;font-weight:600}.em-loading-sub{color:#64748b;margin-top:4px;font-size:12px}.em-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:16px;font-size:13px;display:flex}.em-sections{flex-direction:column;gap:14px;display:flex}.em-section{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.em-section-title{text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid #0000000f;align-items:center;gap:8px;padding:12px 16px;font-size:12px;font-weight:700;display:flex}.em-section-icon{align-items:center;display:flex}.em-section-body{flex-direction:column;gap:4px;padding:14px 16px;display:flex}.em-bullet{color:#334155;align-items:flex-start;gap:8px;font-size:13px;line-height:1.6;display:flex}.em-bullet-dot{color:#6366f1;flex-shrink:0;margin-top:1px;font-weight:700}.em-para{color:#334155;margin:0;font-size:13px;line-height:1.7}.em-code{color:#6366f1;background:#f1f5f9;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:11px}.ai-section{padding:0 16px 12px}.refine-section{border-top:1px solid #f1f5f9;padding:0 16px 12px}.refine-badge{color:#3b82f6;text-transform:uppercase;background:#eff6ff;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:9px;font-weight:600}.refine-chips{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.refine-chip{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:3px 8px;font-family:inherit;font-size:10px;transition:all .15s}.refine-chip:hover:not(:disabled){color:#6366f1;background:#eff6ff;border-color:#6366f1}.refine-chip:disabled{opacity:.5;cursor:not-allowed}.refine-summary{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:flex-start;gap:6px;margin-top:6px;padding:6px 8px;font-size:11px;line-height:1.4;display:flex}.intent-badge{color:#fff;letter-spacing:.2px;white-space:nowrap;border-radius:20px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700;animation:.25s ease-out fadeIn}.intent-hint{color:#4f46e5;background:linear-gradient(90deg,#f5f3ff,#eff6ff);border:1px solid #e0e7ff;border-radius:8px;margin-top:6px;padding:5px 8px;font-size:10px;font-weight:500;line-height:1.4;animation:.2s ease-out fadeIn}.ai-input-row{gap:6px;margin-top:6px;display:flex}.ai-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:12px;transition:all .2s}.ai-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.ai-send-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:8px;padding:8px 10px;transition:all .2s}.ai-send-btn:hover:not(:disabled){transform:scale(1.05)}.ai-send-btn:disabled{opacity:.5;cursor:not-allowed}.ai-context-container{flex-direction:column;gap:4px;margin-top:10px;display:flex}.ai-context-header{justify-content:space-between;align-items:center;display:flex}.ai-context-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.ai-upload-label{color:#6366f1;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;transition:all .2s;display:flex}.ai-upload-label:hover{background:#e2e8f0;transform:translateY(-1px)}.ai-context-input{resize:vertical;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;min-height:60px;padding:8px 12px;font-family:inherit;font-size:11px;transition:all .2s}.ai-context-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.pipeline-stats{grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 16px 12px;display:grid}.stat-item{background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.stat-value{color:#1e293b;font-size:16px;font-weight:700}.stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:500}.version-panel{background:#fbfdff;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;padding:12px 16px}.version-count{color:#0369a1;background:#e0f2fe;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:18px;font-size:10px;font-weight:800;display:inline-flex}.version-save-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;display:inline-flex}.version-save-btn:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.version-empty{color:#64748b;border:1px dashed #cbd5e1;border-radius:8px;margin-top:8px;padding:10px;font-size:11px;line-height:1.4}.version-list{flex-direction:column;gap:6px;max-height:190px;margin-top:8px;display:flex;overflow-y:auto}.version-item{color:#334155;cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:5px;width:100%;padding:9px 28px 9px 10px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex;position:relative}.version-item:hover{border-color:#38bdf8;box-shadow:0 6px 16px #0ea5e917}.version-item.active{background:#f0f9ff;border-color:#0ea5e9}.version-main,.version-meta{align-items:center;gap:7px;min-width:0;display:flex}.version-title{color:#0369a1;flex:none;font-size:11px;font-weight:900}.version-description{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:700;overflow:hidden}.version-meta{color:#94a3b8;text-transform:uppercase;font-size:9px;font-weight:700}.version-restore-icon{color:#64748b;position:absolute;top:50%;right:30px;transform:translateY(-50%)}.version-delete-btn{color:#94a3b8;opacity:0;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .15s,color .15s,background .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.version-item:hover .version-delete-btn{opacity:1}.version-delete-btn:hover{color:#dc2626;background:#fee2e2}.version-item-wrapper{position:relative}.version-delete-confirm{color:#dc2626;background:#fff1f2;border:1px solid #fca5a5;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:11px;font-weight:600;display:flex}.version-delete-actions{gap:6px;display:flex}.version-delete-yes{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:5px;padding:3px 10px;font-family:inherit;font-size:11px;font-weight:700}.version-delete-yes:hover{background:#b91c1c}.version-delete-no{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:5px;padding:3px 10px;font-family:inherit;font-size:11px;font-weight:600}.version-delete-no:hover{background:#f1f5f9}.version-compare{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-top:10px;padding:10px}.version-select-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.version-select-row select{color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-radius:7px;min-width:0;height:30px;padding:0 8px;font-size:11px;font-weight:700}.version-diff-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.version-diff-pill{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;min-width:0;padding:7px 8px;font-size:10px;display:flex}.version-diff-pill span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.version-diff-pill strong{font-size:12px}.version-diff-pill.add strong{color:#059669}.version-diff-pill.remove strong{color:#dc2626}.version-diff-pill.change strong{color:#d97706}.log-container{color:#94a3b8;background:#1e293b;border-radius:10px;min-height:80px;max-height:200px;margin:0 16px 12px;padding:10px;font-family:JetBrains Mono,monospace;font-size:11px;overflow-y:auto}.log-empty{align-items:center;gap:8px;font-size:11px;display:flex}.log-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{50%{opacity:.5}}.log-line{white-space:pre-wrap;word-break:break-word;padding:1px 0;line-height:1.6}.log-line.error{color:#f87171}.results-container{flex-direction:column;gap:6px;padding:0 16px 16px;display:flex}.result-card{background:#fafbfc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px}.result-card.ok{background:#f0fdf4;border-color:#bbf7d0}.result-card.error{background:#fef2f2;border-color:#fecaca}.result-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.result-icon.success{color:#22c55e}.result-icon.error{color:#ef4444}.result-name{color:#334155;font-size:12px;font-weight:600}.result-error{color:#dc2626;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px}.result-outputs{margin-top:4px}.result-output-row{gap:6px;padding:2px 0;font-size:11px;display:flex}.result-key{color:#6366f1;font-family:JetBrains Mono,monospace;font-weight:600}.result-val{color:#475569;word-break:break-all;font-family:JetBrains Mono,monospace}.canvas-container{background:#f8fafc;width:100%;height:100%}.react-flow__background{opacity:.6}.flow-controls{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 4px 12px #0000000f!important}.flow-controls button{fill:#64748b!important;background:#fff!important;border-bottom:1px solid #f1f5f9!important;width:28px!important;height:28px!important}.flow-controls button:hover{fill:#334155!important;background:#f1f5f9!important}.flow-controls button:last-child{border-bottom:none!important}.flow-minimap{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:10px!important;overflow:hidden!important;box-shadow:0 4px 12px #0000000f!important}.code-node-card{background:var(--node-bg,#fff);border:1.5px solid var(--node-border,#e2e8f0);border-radius:14px;min-width:220px;max-width:280px;font-family:Inter,sans-serif;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:visible;box-shadow:0 2px 12px #0000000f}.code-node-card:hover{transform:translateY(-1px);box-shadow:0 6px 24px #0000001a}.code-node-card.running{animation:2s infinite node-pulse;box-shadow:0 0 0 3px #3b82f633,0 4px 12px #0000001a;border-color:#3b82f6!important}.code-node-card.ok{box-shadow:0 0 0 2px #22c55e1a;border-color:#22c55e!important}.code-node-card.error{box-shadow:0 0 0 4px #ef444426;border-color:#ef4444!important}@keyframes node-pulse{0%,to{box-shadow:0 0 0 2px #3b82f633}50%{box-shadow:0 0 0 6px #3b82f666}}.node-header{border-bottom:1px solid #0000000f;align-items:center;gap:8px;padding:10px 12px;display:flex}.node-icon{background:#fffc;border:1px solid #0000000f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.node-title-block{flex:1;min-width:0}.node-title{color:var(--node-text,#334155);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.node-subtitle{color:#94a3b8;margin-top:1px;font-family:JetBrains Mono,monospace;font-size:9px}.node-header-actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .2s;display:flex}.code-node-card:hover .node-header-actions{opacity:1}.node-action-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .15s;display:flex}.node-action-btn:hover{background:#0000000f}.code-btn:hover{color:#6366f1}.delete-btn:hover{color:#ef4444}.node-ports{justify-content:space-between;min-height:24px;padding:6px 0;display:flex}.ports-column{flex-direction:column;gap:3px;display:flex}.inputs-column{align-items:flex-start}.outputs-column{align-items:flex-end;margin-left:auto}.port-row{align-items:center;gap:4px;padding:2px 12px;display:flex;position:relative}.input-port{flex-direction:row}.output-port{flex-direction:row-reverse}.port-label{align-items:center;gap:4px;display:flex}.port-name{color:#475569;font-size:10px;font-weight:600}.port-type{color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:9px}.data-port .port-name{color:var(--node-accent,#6366f1)}.port-handle{border:2px solid var(--node-accent,#94a3b8)!important;background:#fff!important;border-radius:50%!important;width:10px!important;height:10px!important;transition:all .2s!important}.port-handle:hover{background:var(--node-accent,#6366f1)!important;transform:scale(1.3)!important}.target-handle{left:-5px!important}.source-handle{right:-5px!important}.node-fields{flex-direction:column;gap:4px;padding:4px 10px 8px;display:flex}.field-row{justify-content:space-between;align-items:center;gap:6px;padding:3px 0;display:flex}.field-name{color:#64748b;white-space:nowrap;font-size:10px;font-weight:500}.field-input{color:#334155;background:#fffc;border:1px solid #0000001a;border-radius:5px;outline:none;width:90px;padding:3px 6px;font-family:JetBrains Mono,monospace;font-size:10px;transition:all .15s}.field-input:focus{border-color:var(--node-accent,#6366f1);box-shadow:0 0 0 2px #6366f11a}.boolean-field{cursor:pointer;gap:6px}.field-checkbox{accent-color:var(--node-accent,#6366f1);cursor:pointer}.node-errors{padding:4px 10px 6px}.node-error-line{color:#ef4444;align-items:center;gap:4px;padding:2px 0;font-size:10px;display:flex}.node-footer{border-top:1px solid #0000000d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;padding:6px 10px;display:flex}.node-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:9px;font-weight:600;display:flex}.idle-dot{background:#94a3b8;border-radius:50%;width:5px;height:5px}.node-code-peek{cursor:pointer;color:#64748b;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:2px;padding:2px 4px;font-family:inherit;font-size:8.5px;transition:all .15s;display:flex}.node-code-peek:hover{color:#6366f1;background:#6366f10f}.node-result-preview{background:#22c55e0a;border-top:1px solid #0000000a;border-radius:0 0 14px 14px;max-height:120px;padding:6px 10px 8px;overflow:hidden}.node-result-preview .result-entry{white-space:nowrap;align-items:center;gap:4px;padding:1.5px 0;font-size:10px;display:flex;overflow:hidden}.node-result-preview .result-key{color:#16a34a;flex-shrink:0;font-family:JetBrains Mono,monospace;font-weight:600}.node-result-preview .result-value{color:#475569;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:JetBrains Mono,monospace;overflow:hidden}.result-null{color:#94a3b8;font-style:italic}.result-number{color:#6366f1;font-family:JetBrains Mono,monospace;font-weight:600}.result-bool{color:#f59e0b;font-weight:600}.result-string{color:#334155}.result-badge{white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-flex}.result-badge.df{color:#1d4ed8;background:#dbeafe}.result-badge.arr{color:#92400e;background:#fef3c7}.result-badge.ser{color:#15803d;background:#f0fdf4}.result-badge.est{color:#5b21b6;background:#f5f3ff}.result-badge.chart{color:#c2410c;background:#fff7ed}.result-badge.pred{color:#065f46;background:#ecfdf5;padding:2px 8px;font-size:10px}.node-error-preview{color:#ef4444;word-break:break-word;white-space:pre-wrap;background:#ef44440a;border-top:1px solid #ef44441a;border-radius:0 0 14px 14px;align-items:flex-start;gap:6px;max-height:80px;padding:6px 10px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex;overflow:hidden}.np-section{background:#fff9;border-top:1px solid #0000000d;border-radius:0 0 14px 14px;flex-direction:column;gap:5px;padding:6px 10px 8px;display:flex}.np-pills{flex-wrap:wrap;gap:4px;display:flex}.np-pill{white-space:nowrap;letter-spacing:.2px;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex}.np-pill-blue{color:#1d4ed8;background:#dbeafe}.np-pill-green{color:#15803d;background:#dcfce7}.np-pill-amber{color:#92400e;background:#fef3c7}.np-pill-purple{color:#5b21b6;background:#ede9fe}.np-null-list{flex-direction:column;gap:2px;display:flex}.np-null-row{justify-content:space-between;align-items:center;gap:4px;display:flex}.np-null-col{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-family:JetBrains Mono,monospace;font-size:9px;overflow:hidden}.np-null-n{color:#f59e0b;font-size:9px;font-weight:700}.np-table-wrap{border:1px solid #00000012;border-radius:6px;max-height:200px;overflow:auto}.np-table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:9px}.np-table th{color:#64748b;white-space:nowrap;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:3px 6px;font-weight:600}.np-table td{color:#334155;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f1f5f9;max-width:80px;padding:2px 6px;overflow:hidden}.np-table tr:last-child td{border-bottom:none}.np-table tr:nth-child(2n) td{background:#f8fafc}.np-trunc{color:#94a3b8;font-weight:600}.np-metrics{flex-direction:column;gap:4px;display:flex}.np-metric-row{align-items:center;gap:5px;display:flex}.np-metric-key{color:#64748b;white-space:nowrap;flex-shrink:0;width:64px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600}.np-metric-val{color:#1e293b;text-align:right;flex-shrink:0;width:38px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.np-metric-bar-bg{background:#e2e8f0;border-radius:99px;flex:1;height:4px;overflow:hidden}.np-metric-bar{background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:99px;height:100%;transition:width .4s}.np-scalar-row{justify-content:space-between;align-items:center;gap:4px;display:flex}.np-scalar-key{color:#64748b;font-family:JetBrains Mono,monospace;font-size:9px}.np-scalar-val{color:#1e293b;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700}.np-download-btn{color:#166534;cursor:pointer;background:#dcfce7;border:1px solid #bbf7d0;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s;display:inline-flex}.np-download-btn:hover{background:#bbf7d0}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.code-editor-modal{background:#fff;border-radius:16px;flex-direction:column;width:90vw;max-width:1100px;height:80vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0003}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-header{background:#fafbfc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:#1e293b;font-size:15px;font-weight:700}.modal-node-name{color:#6366f1}.modal-subtitle{color:#94a3b8;margin-top:2px;font-size:11px}.modal-subtitle code{background:#f1f5f9;border-radius:4px;padding:1px 5px;font-size:10px}.modal-actions{align-items:center;gap:6px;display:flex}.modal-btn{cursor:pointer;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:5px;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.modal-btn:hover{background:#f1f5f9}.modal-btn:disabled{opacity:.4;cursor:not-allowed}.save-btn{color:#fff;background:#6366f1;border-color:#6366f1}.save-btn:hover:not(:disabled){background:#4f46e5}.close-btn{background:0 0;border:none;padding:6px}.close-btn:hover{color:#ef4444;background:#fee2e2}.modal-body{flex:1;display:flex;overflow:hidden}.editor-pane{border-right:1px solid #e2e8f0;flex:1;overflow:hidden}.schema-pane{background:#fafbfc;flex-direction:column;gap:12px;width:300px;padding:16px;display:flex;overflow-y:auto}.schema-title{color:#1e293b;font-size:13px;font-weight:700}.schema-errors{flex-direction:column;gap:4px;display:flex}.schema-error-line{color:#ef4444;align-items:center;gap:6px;font-size:11px;display:flex}.schema-section{flex-direction:column;gap:6px;display:flex}.schema-section-title{color:#475569;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.schema-dot{border-radius:50%;width:7px;height:7px}.input-dot{background:#3b82f6}.output-dot{background:#22c55e}.schema-item{background:#fff;border:1px solid #f1f5f9;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;display:flex}.schema-kind-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.schema-kind-badge.data{color:#1d4ed8;background:#dbeafe}.schema-kind-badge.text{color:#475569;background:#f1f5f9}.schema-kind-badge.number{color:#92400e;background:#fef3c7}.schema-kind-badge.file{color:#9d174d;background:#fce7f3}.schema-kind-badge.boolean{color:#065f46;background:#d1fae5}.schema-kind-badge.column{color:#5b21b6;background:#ede9fe}.schema-item-name{color:#334155;font-size:12px;font-weight:600}.schema-item-type{color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:10px}.schema-required{color:#f59e0b;font-size:9px;font-weight:600}.schema-default{color:#64748b;font-family:JetBrains Mono,monospace;font-size:10px}.output-check{color:#22c55e}.schema-hint{color:#1e40af;background:#eff6ff;border-radius:8px;margin-top:auto;padding:12px;font-size:11px;line-height:1.6}.schema-hint ul{margin:4px 0 0 16px}.schema-hint code{background:#3b82f61a;border-radius:3px;padding:1px 4px;font-size:10px}.animate-spin{animation:1s linear infinite spin}.react-flow__edge-path{stroke-width:2px}.react-flow__edge.animated path{animation:.5s linear infinite dashdraw}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.leaderboard-section{padding:0 16px 14px}.leaderboard-table{border-collapse:collapse;width:100%;font-size:11px}.leaderboard-table th{color:#64748b;text-transform:uppercase;letter-spacing:.5px;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:5px 7px;font-size:9px;font-weight:600}.leaderboard-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:6px 7px;font-family:JetBrains Mono,monospace;font-size:11px}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-best td{background:#f0fdf4}.leaderboard-table tr:hover td{background:#f8fafc}.leaderboard-hint{color:#94a3b8;padding:4px 2px 0;font-size:10px;line-height:1.4}.overfit-badge{color:#92400e;cursor:help;background:#fef3c7;border:1px solid #fde68a;border-radius:4px;margin-left:5px;padding:1px 5px;font-size:9px;font-weight:600;display:inline-block}.suggestions-section{padding:0 0 12px}.suggestions-loading-badge{color:#f59e0b;text-transform:uppercase;letter-spacing:.3px;background:#fef3c7;border:1px solid #fde68a;border-radius:10px;align-items:center;margin-left:auto;padding:1px 7px;font-size:9px;font-weight:600;display:flex}.suggestions-skeleton-wrap{flex-direction:column;gap:6px;padding:0 16px 4px;display:flex}.suggestion-skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;height:32px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.suggestions-list{flex-direction:column;gap:5px;padding:0 16px;display:flex}.suggestion-chip{cursor:pointer;text-align:left;background:linear-gradient(135deg,#fefce8,#fffbeb);border:1px solid #fde68a;border-radius:9px;align-items:flex-start;gap:7px;width:100%;padding:7px 10px;font-family:inherit;transition:all .18s;animation:.25s ease-out fadeIn;display:flex}.suggestion-chip:hover{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b;transform:translate(2px);box-shadow:0 2px 8px #f59e0b33}.suggestion-icon{color:#f59e0b;flex-shrink:0;margin-top:1px}.suggestion-text{color:#1e293b;flex:1;font-size:11px;font-weight:500;line-height:1.4}.suggestion-send-icon{color:#f59e0b;opacity:0;flex-shrink:0;align-self:center;font-size:12px;transition:opacity .15s}.suggestion-chip:hover .suggestion-send-icon{opacity:1}.suggestions-hint{color:#94a3b8;margin:4px 0 0;font-size:9.5px;font-style:italic;line-height:1.4}.eda-card{border:1px solid #e2e8f0;border-radius:10px;margin:0 16px 14px;overflow:hidden}.eda-header{color:#334155;background:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:600;display:flex}.eda-shape{color:#64748b;background:#f1f5f9;border-radius:4px;margin-left:auto;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:10px}.code-node-card.running{box-shadow:0 0 0 2px #3b82f6}.code-node-card.ok{box-shadow:0 0 0 2px #22c55e}.code-node-card.healed{box-shadow:0 0 0 2px #f59e0b}.code-node-card.error{box-shadow:0 0 0 2px #ef4444}.node-status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:12px;align-items:center;gap:4px;width:fit-content;padding:3px 8px;font-size:10px;font-weight:600;display:flex}.node-status-badge.idle{color:#64748b;background:#f1f5f9}.node-status-badge.running{color:#3b82f6;background:#eff6ff}.node-status-badge.success{color:#22c55e;background:#f0fdf4}.node-status-badge.healed{color:#f59e0b;background:#fffbeb;border:1px solid #fcd34d}.node-status-badge.error{color:#ef4444;background:#fef2f2}.eda-tabs{border-bottom:1px solid #e2e8f0;display:flex}.eda-tab{cursor:pointer;color:#94a3b8;text-transform:capitalize;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:6px 8px;font-family:inherit;font-size:10px;font-weight:600;transition:all .15s}.eda-tab.active{color:#6366f1;background:#fafbff;border-bottom-color:#6366f1}.eda-tab:hover:not(.active){color:#475569;background:#f8fafc}.eda-body{max-height:220px;padding:8px 12px;overflow-y:auto}.eda-section{margin-bottom:10px}.eda-section-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;margin-bottom:5px;font-size:9px;font-weight:600}.eda-row{align-items:center;gap:6px;padding:3px 0;display:flex}.eda-col-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;min-width:80px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;overflow:hidden}.eda-val{color:#64748b;font-family:JetBrains Mono,monospace;font-size:10px}.eda-missing-bar-bg{background:#f1f5f9;border-radius:2px;flex:1;height:4px;overflow:hidden}.eda-missing-bar{background:#f59e0b;border-radius:2px;height:100%}.eda-corr-bar-bg{background:#f1f5f9;border-radius:2px;flex:1;height:4px;overflow:hidden}.eda-corr-bar{border-radius:2px;height:100%}.eda-dtype-badge{border-radius:4px;padding:1px 6px;font-size:9px;font-weight:600}.eda-dtype-badge.numeric{color:#92400e;background:#fef3c7}.eda-dtype-badge.text{color:#0369a1;background:#f0f9ff}.eda-table{border-collapse:collapse;width:100%;font-size:10px}.eda-table th{color:#64748b;text-transform:uppercase;text-align:left;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:4px 6px;font-size:9px;font-weight:600}.eda-table td{color:#334155;border-bottom:1px solid #f8fafc;padding:4px 6px;font-family:JetBrains Mono,monospace}.eda-table tr:last-child td{border-bottom:none}.chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin:0 16px 12px;padding:10px 12px}.chart-title{color:#1e293b;margin-bottom:4px;font-size:11px;font-weight:700}.chart-stats{color:#64748b;margin-bottom:6px;font-size:10px}.chart-axis{color:#94a3b8;justify-content:space-between;margin-top:4px;font-size:9px;display:flex}.histogram-bars{align-items:flex-end;gap:1px;height:88px;padding:4px 0;display:flex}.hist-bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;display:flex}.hist-bar{background:linear-gradient(#818cf8,#6366f1);border-radius:2px 2px 0 0;min-height:2px}.corr-table{border-collapse:collapse;font-size:9px}.corr-table th{color:#64748b;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:28px;padding:2px 3px;font-size:8px;font-weight:600;overflow:hidden}.corr-table td{cursor:default;border:1px solid #0000000a}.vc-row{align-items:center;gap:6px;margin-bottom:4px;display:flex}.vc-label{color:#334155;white-space:nowrap;text-overflow:ellipsis;min-width:48px;font-size:10px;font-weight:600;overflow:hidden}.vc-bar-bg{background:#f1f5f9;border-radius:5px;flex:1;height:10px;overflow:hidden}.vc-bar{background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:5px;height:100%}.vc-count{color:#64748b;white-space:nowrap;text-align:right;min-width:48px;font-size:9px}.boxplot-wrap{height:28px;margin:8px 0 4px;position:relative}.boxplot-whisker{background:#94a3b8;border-radius:1px;height:2px;position:absolute;top:12px}.boxplot-box{background:#dbeafe;border:2px solid #6366f1;border-radius:3px;height:14px;position:absolute;top:6px}.boxplot-median{background:#6366f1;width:2px;height:18px;position:absolute;top:4px}.boxplot-mean{border-bottom:7px solid #ef4444;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;top:7px;transform:translate(-5px)}.boxplot-labels{color:#94a3b8;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:9px;display:flex}.prediction-card{background:#fafbff;border-color:#6366f1}.prediction-value{color:#6366f1;text-align:center;letter-spacing:-1px;padding:8px 0;font-size:28px;font-weight:800}.prediction-features{border-top:1px solid #e2e8f0;flex-direction:column;gap:2px;margin-top:6px;padding-top:8px;display:flex}.prediction-feature-row{justify-content:space-between;font-size:10px;display:flex}.pred-feat-name{color:#64748b;font-weight:500}.pred-feat-val{color:#334155;font-family:JetBrains Mono,monospace;font-weight:600}.export-modal{background:#fff;border-radius:16px;width:480px;max-width:95vw;animation:.2s ease-out slideUp;overflow:hidden;box-shadow:0 24px 64px #0000002e}.export-modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:20px 20px 16px;display:flex}.export-modal-title{color:#1e293b;font-size:16px;font-weight:700}.export-modal-sub{color:#94a3b8;margin-top:2px;font-size:12px}.export-options{flex-direction:column;gap:8px;padding:16px;display:flex}.export-option{text-align:left;cursor:pointer;border:1.5px solid var(--opt-border,#e2e8f0);background:var(--opt-bg,#f8fafc);border-radius:12px;align-items:center;gap:14px;width:100%;padding:14px 16px;font-family:inherit;transition:all .15s;display:flex}.export-option:hover:not(:disabled){border-color:var(--opt-color,#6366f1);transform:translateY(-1px);box-shadow:0 2px 12px #00000014}.export-option:disabled{opacity:.45;cursor:not-allowed}.export-option-icon{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.export-option-text{flex-direction:column;gap:2px;display:flex}.export-option-title{color:#1e293b;font-size:13px;font-weight:600}.export-option-sub{color:#64748b;font-size:11px;line-height:1.4}.export-empty{text-align:center;color:#94a3b8;padding:4px 20px 12px;font-size:12px}.export-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0 16px 12px;padding:10px 14px;font-size:12px}.viz-modal{background:#fff;border-radius:16px;flex-direction:column;width:860px;max-width:95vw;max-height:88vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0000002e}.viz-modal-header{background:#fafbfc;border-bottom:1px solid #e2e8f0;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.viz-modal-title{color:#1e293b;font-size:16px;font-weight:700}.viz-modal-sub{color:#94a3b8;margin-top:2px;font-family:JetBrains Mono,monospace;font-size:11px}.viz-modal-body{flex-direction:column;flex:1;gap:24px;padding:20px;display:flex;overflow-y:auto}.viz-section{flex-direction:column;display:flex}.viz-section-title{color:#1e293b;margin-bottom:6px;font-size:13px;font-weight:700}.viz-section-subtitle{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin:10px 0 6px;font-size:11px;font-weight:600}.viz-stats{color:#64748b;margin-bottom:8px;font-size:11px}.viz-legend{color:#94a3b8;margin-top:8px;font-size:10px}.viz-axis{color:#94a3b8;justify-content:space-between;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.viz-histogram{align-items:flex-end;gap:2px;height:180px;padding:4px 0 0;display:flex}.viz-hist-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;display:flex}.viz-hist-bar{background:linear-gradient(#818cf8,#6366f1);border-radius:3px 3px 0 0;width:100%;min-height:2px;transition:opacity .15s}.viz-hist-bar:hover{opacity:.8}.viz-hist-count{color:#94a3b8;font-size:7px}.viz-corr-table{border-collapse:collapse;font-size:10px}.viz-corr-table th{color:#64748b;text-align:center;white-space:nowrap;padding:4px 6px;font-size:9px;font-weight:600}.viz-corr-table td{text-align:center;cursor:default;border:1px solid #fff6;width:44px;height:32px;font-size:10px;font-weight:500;transition:opacity .1s}.viz-corr-table td:hover{opacity:.85}.viz-corr-label{color:#334155;white-space:nowrap;padding-right:8px;font-size:10px;font-weight:600;text-align:right!important;background:0 0!important;border:none!important}.viz-vc-row{align-items:center;gap:10px;margin-bottom:6px;display:flex}.viz-vc-label{color:#334155;text-overflow:ellipsis;white-space:nowrap;min-width:80px;max-width:120px;font-size:12px;font-weight:600;overflow:hidden}.viz-vc-track{background:#f1f5f9;border-radius:8px;flex:1;height:16px;overflow:hidden}.viz-vc-bar{background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:8px;height:100%;transition:width .4s}.viz-vc-val{color:#334155;text-align:right;min-width:90px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.viz-vc-pct{color:#94a3b8;font-weight:400}.viz-box-wrap{height:48px;margin:16px 0 8px;position:relative}.viz-whisker{background:#cbd5e1;border-radius:2px;height:3px;position:absolute;top:22px;left:0;right:0}.viz-box{background:#dbeafe;border:2px solid #6366f1;border-radius:4px;height:22px;position:absolute;top:12px}.viz-median{background:#4f46e5;border-radius:2px;width:3px;height:26px;position:absolute;top:10px}.viz-mean{border-bottom:10px solid #ef4444;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;top:16px;transform:translate(-6px)}.viz-box-stats{flex-wrap:wrap;justify-content:space-between;gap:4px;margin-top:8px;display:flex}.viz-box-stat{text-align:center}.viz-box-stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:9px;display:block}.viz-box-stat-val{color:#334155;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700}.viz-pred-value{color:#6366f1;text-align:center;letter-spacing:-2px;padding:16px 0;font-size:48px;font-weight:900}.viz-pred-features{margin-top:8px}.viz-feat-table{border-collapse:collapse;width:100%}.viz-feat-table tr:nth-child(2n) td{background:#f8fafc}.viz-feat-key{color:#64748b;width:40%;padding:5px 10px;font-size:11px;font-weight:600}.viz-feat-val{color:#1e293b;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.pm-modal{background:#f8fafc;border-radius:16px;flex-direction:column;width:95vw;max-width:1200px;height:85vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0003}.pm-header{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.pm-header-left{flex-direction:column;gap:4px;display:flex}.pm-header-title{color:#1e293b;font-size:18px;font-weight:700}.pm-header-sub{color:#64748b;font-family:JetBrains Mono,monospace;font-size:12px}.pm-header-actions{align-items:center;gap:12px;display:flex}.pm-dl-btn{color:#166534;cursor:pointer;background:#dcfce7;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.pm-dl-btn:hover{background:#bbf7d0}.pm-body{flex-direction:column;flex:1;gap:24px;padding:24px;display:flex;overflow-y:auto}.pm-empty{color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:40px;font-size:14px;display:flex}.pm-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;padding:20px;display:flex;box-shadow:0 1px 3px #00000005}.pm-section-title{color:#0f172a;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #f1f5f9;align-items:center;gap:8px;margin-bottom:4px;padding-bottom:12px;font-size:14px;font-weight:700;display:flex}.pm-model-badge{color:#5b21b6;background:#ede9fe;border-radius:8px;align-self:flex-start;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.pm-stat-row{flex-wrap:wrap;gap:16px;display:flex}.pm-stat{background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:120px;padding:12px 16px;display:flex}.pm-stat-label{color:#64748b;text-transform:uppercase;font-size:11px;font-weight:600}.pm-stat-value{color:#1e293b;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:700}.pm-subsection{flex-direction:column;gap:8px;display:flex}.pm-subsection-label{color:#475569;font-size:12px;font-weight:600}.pm-null-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.pm-null-item{background:#f8fafc;border:1px solid #f1f5f9;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.pm-null-col{color:#334155;text-overflow:ellipsis;white-space:nowrap;width:80px;font-family:JetBrains Mono,monospace;font-size:11px;overflow:hidden}.pm-null-bar-bg{background:#e2e8f0;border-radius:4px;flex:1;height:6px;overflow:hidden}.pm-null-bar{background:#f59e0b;border-radius:4px;height:100%}.pm-null-n{color:#d97706;text-align:right;width:30px;font-size:11px;font-weight:700}.pm-col-chips{flex-wrap:wrap;gap:6px;display:flex}.pm-col-chip{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:11px}.pm-table-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto}.pm-table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:11px}.pm-table th{text-align:left;color:#475569;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 12px;font-weight:600}.pm-table td{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f1f5f9;max-width:200px;padding:6px 12px;overflow:hidden}.pm-table tr:last-child td{border-bottom:none}.pm-table tr:hover td{background:#f8fafc}.pm-row-idx{background:#f8fafc;border-right:1px solid #e2e8f0;font-weight:600;color:#94a3b8!important}.pm-metrics-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.pm-metric-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:8px;padding:16px;display:flex}.pm-metric-card-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.pm-metric-card-value{color:#0f172a;font-family:JetBrains Mono,monospace;font-size:24px;font-weight:800}.pm-metric-card-bar-bg{background:#e2e8f0;border-radius:4px;width:100%;height:6px;overflow:hidden}.pm-metric-card-bar{border-radius:4px;height:100%;transition:width .5s}.pm-metric-card-bar.good{background:#22c55e}.pm-metric-card-bar.bad{background:#ef4444}.pm-metric-card-hint{color:#94a3b8;margin-top:2px;font-size:10px;font-style:italic}.pm-scalar-table{flex-direction:column;gap:8px;display:flex}.pm-scalar-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.pm-scalar-key{color:#475569;font-size:12px;font-weight:600}.pm-scalar-val{color:#0f172a;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.home-shell{background:#f8fafc;width:100vw;height:100vh;display:flex;overflow:hidden}.home-sidebar{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow:hidden}.home-sidebar-logo{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:16px 18px;display:flex}.home-sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}.home-sidebar-section-label{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;padding:4px 10px 6px;font-size:10px;font-weight:600}.home-sidebar-nav-item{color:#475569;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.home-sidebar-nav-item:hover{color:#1e293b;background:#f1f5f9}.home-sidebar-nav-item-active{color:#4f46e5;background:#eef2ff}.home-sidebar-nav-item-active:hover{color:#3730a3;background:#e0e7ff}.home-sidebar-nav-count{color:#64748b;background:#e2e8f0;border-radius:10px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:600}.home-myfiles{border-top:1px solid #f1f5f9;padding:12px 8px 16px}.home-myfiles-upload-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:500;transition:background .15s;display:inline-flex}.home-myfiles-list{flex-direction:column;gap:2px;max-height:160px;list-style:none;display:flex;overflow-y:auto}.home-myfiles-item{border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:flex}.home-myfiles-item:hover{background:#f8fafc}.home-myfiles-icon{color:#6366f1;flex-shrink:0}.home-myfiles-meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.home-myfiles-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.home-myfiles-delete{color:#cbd5e1;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;transition:background .15s,color .15s;display:flex}.home-myfiles-item:hover .home-myfiles-delete{opacity:1}.home-main-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:28px 32px 0}.home-main-title{color:#0f172a;font-size:22px;font-weight:700}.home-tab:hover{color:#1e293b}.home-tab-disabled{color:#cbd5e1;cursor:not-allowed}.home-toolbar{background:#fff;border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:10px;padding:14px 32px;display:flex}.home-toolbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.home-search{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:8px 10px 8px 32px;font-size:13px;transition:all .2s}.home-search:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.home-search::placeholder{color:#94a3b8}.home-view-btn{color:#94a3b8;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.home-view-btn:hover{color:#475569;background:#f1f5f9}.home-new-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#4f46e5;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s;display:inline-flex}.home-new-btn:hover{background:#4338ca;box-shadow:0 2px 8px #4f46e54d}.home-newflow-inline{align-items:center;display:flex}.home-newflow-input{color:#1e293b;background:#fff;border:2px solid #6366f1;border-radius:8px;outline:none;width:200px;padding:7px 12px;font-size:13px;font-weight:500;box-shadow:0 0 0 3px #6366f126}.home-flow-row{cursor:pointer;background:#fff;border:1px solid #f1f5f9;border-radius:10px;align-items:center;gap:14px;padding:12px 16px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.home-flow-row:hover{border-color:#c7d2fe;box-shadow:0 2px 10px #6366f114}.flow-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.home-flow-row-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.home-flow-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.home-flow-chevron{color:#cbd5e1;flex-shrink:0;transition:color .15s}.home-flow-row:hover .home-flow-chevron{color:#6366f1}.home-rename-input{color:#1e293b;background:#fff;border:1px solid #6366f1;border-radius:4px;outline:none;width:100%;padding:2px 6px;font-size:14px;font-weight:600;box-shadow:0 0 0 2px #6366f126}.home-flow-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:14px;padding:16px 32px;display:grid;overflow-y:auto}.home-flow-card{cursor:pointer;background:#fff;border:1px solid #f1f5f9;border-radius:12px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.home-flow-card:hover{border-color:#c7d2fe;box-shadow:0 4px 16px #6366f11a}.home-flow-card-body{flex-direction:column;gap:4px;padding:12px 14px;display:flex}.home-flow-card-footer{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.flow-menu-wrap{flex-shrink:0;position:relative}.flow-menu-btn{color:#94a3b8;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s,color .15s;display:flex}.home-flow-row:hover .flow-menu-btn,.home-flow-card:hover .flow-menu-btn,.sidebar-project-item:hover .flow-menu-btn,.sidebar-project-item.active .flow-menu-btn{opacity:1}.flow-menu-dropdown{z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:130px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 20px #0000001f}.flow-menu-item{color:#374151;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-size:13px;transition:background .1s;display:flex}.home-empty{color:#94a3b8;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.home-empty-icon{color:#cbd5e1}.home-empty-title{color:#475569;font-size:18px;font-weight:600}.topbar-back-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s,color .15s,border-color .15s;display:flex}.topbar-back-btn:hover{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.topbar-icon-btn:hover:not(:disabled){color:#1e293b!important;background:#f1f5f9!important}.topbar-flow-name-wrap{align-items:center;gap:6px;margin-right:4px;display:flex}.topbar-flow-divider{color:#cbd5e1;font-size:16px;font-weight:300;line-height:1}.topbar-flow-name{color:#334155;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;border-radius:5px;max-width:240px;padding:3px 6px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s;overflow:hidden}.topbar-flow-name:hover{background:#f8fafc;border-color:#e2e8f0}.topbar-flow-name-input{color:#1e293b;background:#fff;border:1.5px solid #6366f1;border-radius:5px;outline:none;width:200px;padding:3px 8px;font-size:14px;font-weight:600;box-shadow:0 0 0 3px #6366f11f}.em-chat-container{border-top:1px solid #e2e8f0;flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;display:flex}.em-chat-history{flex-direction:column;gap:8px;max-height:250px;display:flex;overflow-y:auto}.em-chat-msg{width:100%;display:flex}.em-chat-msg.user{justify-content:flex-end}.em-chat-msg.assistant{justify-content:flex-start}.em-chat-bubble{white-space:pre-wrap;word-break:break-word;border-radius:12px;max-width:85%;padding:8px 12px;font-size:13px;line-height:1.5}.em-chat-msg.user .em-chat-bubble{color:#fff;background:#6366f1;border-bottom-right-radius:4px}.em-chat-msg.assistant .em-chat-bubble{color:#334155;background:#f1f5f9;border-bottom-left-radius:4px}.em-chat-form{gap:8px;display:flex}.em-chat-form input{border:1px solid #cbd5e1;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:13px}.em-chat-form input:focus{border-color:#6366f1}.em-chat-form button{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:8px;padding:0 16px;font-weight:600}.em-chat-form button:disabled{opacity:.5;cursor:not-allowed}[data-theme=never] .em-chat-container{border-color:#334155}[data-theme=never] .em-chat-msg.assistant .em-chat-bubble{color:#e2e8f0;background:#1e293b}[data-theme=never] .em-chat-form input{color:#e2e8f0;background:#0f172a;border-color:#334155}[data-theme=never] .em-chat-form input:focus{border-color:#818cf8}.settings-beta-section{background:#6366f108;border:1px solid #6366f11a;border-radius:12px;margin-top:24px;padding:16px}.settings-beta-header{color:#1e293b;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.beta-sparkle{color:#6366f1}.settings-beta-desc{color:#64748b;margin-bottom:12px;font-size:12px;line-height:1.5}.settings-beta-email{color:#6366f1;background:#6366f114;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-block}.settings-beta-email:hover{background:#6366f11f;transform:translateY(-1px)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.center-column{flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.canvas-wrapper{flex:1;min-height:0;position:relative}.bottom-panel{z-index:10;background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;height:48px;position:relative}.bp-tabs{background:#fafbfc;width:100%;height:48px;display:flex}.bp-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-top:3px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex}.bp-tab:hover{color:#334155;background:#f1f5f9}.bp-tab.active{color:#6366f1;background:#fff;border-top-color:#6366f1}.bp-content-wrapper{opacity:0;pointer-events:none;z-index:11;background:#fff;border-top:1px solid #e2e8f0;flex-direction:column;height:0;display:flex;position:absolute;bottom:48px;left:0;right:0;overflow:hidden;box-shadow:0 -10px 30px #0000000d}.bottom-panel.open .bp-content-wrapper{opacity:1;pointer-events:auto}.bp-resizer{cursor:ns-resize;z-index:12;background:0 0;width:100%;height:5px;position:absolute;top:0;left:0}.bp-resizer:hover{background:#6366f133}.bp-content{flex:1;min-height:0;padding:24px;animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUpFade;overflow-y:auto}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bp-empty{color:#94a3b8;justify-content:center;align-items:center;padding:40px;font-size:14px;display:flex}.bp-loading{color:#6366f1;align-items:center;gap:12px;font-size:14px;display:flex}.bp-text{color:#334155;white-space:pre-wrap;font-size:14px;line-height:1.7}.bp-error{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;padding:12px;display:flex}.bp-btn{cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:8px 16px;font-weight:600;transition:all .2s}.bp-btn:hover{background:#e2e8f0}.bp-export-buttons{flex-direction:column;gap:12px;max-width:400px;margin:0 auto;display:flex}.bp-export-btn{color:#64748b;cursor:not-allowed;text-align:left;background:#fff;border:2px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;padding:16px 20px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.bp-export-btn.active{cursor:pointer;color:#1e293b;border-color:#cbd5e1}.bp-export-btn.active:hover{background:#f8fafc;border-color:#6366f1;transform:translateY(-2px);box-shadow:0 4px 12px #6366f11a}.bp-export-icon{font-size:24px}.bp-export-coming{text-transform:uppercase;background:#f1f5f9;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10px}.unified-sidebar{flex-direction:column;display:flex;width:340px!important}.unified-actions{background:#fafbfc;border-bottom:1px solid #e2e8f0;flex-direction:column;gap:12px;padding:16px;display:flex}.rs-btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:14px;font-weight:700;transition:all .2s;display:flex}.rs-btn-primary{color:#fff;background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.rs-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.rs-btn-danger{color:#ef4444;background:#fef2f2;border:1px solid #fecaca}.rs-btn-danger:hover:not(:disabled){background:#fee2e2}.rs-btn-heal{color:#fff;background:linear-gradient(135deg,#f59e0b,#d97706);animation:1.8s ease-in-out infinite pulse-amber;box-shadow:0 2px 8px #f59e0b59}.rs-btn-heal:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b80}@keyframes pulse-amber{0%,to{box-shadow:0 2px 8px #f59e0b59}50%{box-shadow:0 2px 16px #f59e0b99}}.rs-btn:disabled{opacity:.5;cursor:not-allowed}.unified-scroll{flex-direction:column;flex:1;display:flex;overflow-y:auto}.unified-ai-wrapper{flex-direction:column;flex:none;min-height:200px;display:flex}.rs-resizer{cursor:row-resize;-webkit-user-select:none;user-select:none;background:#fafbfc;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;flex:none;justify-content:center;align-items:center;height:8px;transition:background .2s;display:flex}.rs-resizer:hover,.rs-resizer:active{background:#f1f5f9}.rs-resizer-handle{background:#cbd5e1;border-radius:99px;width:32px;height:4px;transition:background .2s}.rs-resizer:hover .rs-resizer-handle,.rs-resizer:active .rs-resizer-handle{background:#94a3b8}.unified-ai-wrapper .ai-tab{flex:1}.unified-logs-wrapper{flex-direction:column;flex:1 0;padding:16px;display:flex}.unified-logs-header{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;font-size:12px;font-weight:700}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.home-shell{color:#1e293b;background:#fff;height:100vh;font-family:Inter,sans-serif;display:flex}.home-sidebar{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;justify-content:space-between;width:260px;padding:24px 20px;display:flex}.home-sidebar-logo{align-items:center;gap:12px;margin-bottom:40px;display:flex}.logo-icon{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex;box-shadow:0 4px 12px #6366f14d}.logo-inner{background:#fff;border-radius:4px;width:12px;height:12px}.logo-name{letter-spacing:-.5px;font-size:18px;font-weight:800;display:block}.logo-tag{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600;display:block}.home-sidebar-top{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-divider{background:#e2e8f0;height:1px;margin:0 -20px 20px}.sidebar-projects-header{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.sidebar-projects-title{color:#0f172a;font-size:15px;font-weight:700}.sidebar-projects-actions{color:#94a3b8;align-items:center;gap:12px;display:flex}.sidebar-projects-actions svg{cursor:pointer;transition:color .2s}.sidebar-projects-actions svg:hover{color:#0f172a}.sidebar-project-item{color:#475569;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;width:100%;padding:10px 14px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.sidebar-project-item:hover{background:#f1f5f9}.sidebar-project-item.active{color:#0f172a;background:#f1f5f9;font-weight:600}.sidebar-project-more{opacity:.6;color:#64748b;align-items:center;margin-left:auto;transition:all .2s;display:flex}.sidebar-project-item:hover .sidebar-project-more,.sidebar-project-item.active .sidebar-project-more{opacity:1;color:#0f172a}.sidebar-footer{background:#fff;border-top:1px solid #e2e8f0;margin:0 -20px -24px;padding:20px 20px 24px}.sidebar-footer-btn{color:#475569;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:12px;width:100%;padding:10px 14px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.sidebar-footer-btn:hover,.sidebar-footer-btn.active{color:#0f172a}.sidebar-footer-icon{color:#64748b}.home-myfiles{flex-direction:column;flex:1;display:flex}.home-myfiles-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.home-myfiles-upload-btn{color:#6366f1;cursor:pointer;background:#e0e7ff;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:600;transition:all .2s;display:flex}.home-myfiles-upload-btn:hover{background:#c7d2fe}.home-myfiles-upload-btn.disabled{opacity:.5;cursor:not-allowed}.home-myfiles-empty{color:#94a3b8;padding:12px 0;font-size:12px}.home-myfiles-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.home-myfiles-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.home-myfiles-icon{color:#cbd5e1}.home-myfiles-meta{flex-direction:column;flex:1;min-width:0;display:flex}.home-myfiles-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.home-myfiles-cols{color:#94a3b8;font-size:10px}.home-myfiles-delete{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;transition:all .2s}.home-myfiles-delete:hover{color:#ef4444;background:#fee2e2}.home-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.home-main-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:40px 60px 0}.home-main-title-row{align-items:center;gap:12px;margin-bottom:24px;display:flex}.home-main-title-icon{color:#6366f1}.home-main-title{letter-spacing:-.5px;margin:0;font-size:28px;font-weight:800}.home-tabs{gap:24px;display:flex}.home-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 0 12px;font-size:14px;font-weight:600;transition:all .2s}.home-tab-active{color:#4f46e5;border-bottom-color:#4f46e5}.home-tab-disabled{opacity:.5;cursor:not-allowed}.home-toolbar{justify-content:space-between;align-items:center;padding:20px 60px;display:flex}.home-search-wrap{width:300px;position:relative}.home-search-icon{color:#94a3b8;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.home-search{background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:10px 12px 10px 36px;font-size:13px;transition:all .2s}.home-search:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.home-toolbar-right{align-items:center;gap:12px;display:flex}.home-view-btn{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px;transition:all .2s}.home-view-btn.active{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.home-view-btn:hover:not(.active){background:#f8fafc}.home-new-btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #4f46e54d}.home-new-btn:hover{background:#4338ca;transform:translateY(-1px);box-shadow:0 6px 16px #4f46e566}.home-newflow-inline{display:flex}.home-newflow-input{border:2px solid #6366f1;border-radius:8px;outline:none;padding:10px 16px;font-size:14px;font-weight:600;box-shadow:0 4px 12px #6366f133}.home-empty{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.home-empty-icon{color:#cbd5e1;margin-bottom:16px}.home-empty-title{color:#334155;margin-bottom:8px;font-size:18px;font-weight:700}.home-empty-sub{color:#64748b;margin-bottom:24px;font-size:14px}.home-flow-list{flex-direction:column;flex:1;gap:12px;padding:0 60px 40px;display:flex;overflow-y:auto}.home-flow-row{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:16px;padding:16px 20px;transition:all .2s;display:flex}.home-flow-row:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 8px 24px #0000000f}.flow-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 12px #0000001a}.home-flow-row-info{flex-direction:column;flex:1;min-width:0;display:flex}.home-flow-name{color:#1e293b;margin-bottom:4px;font-size:15px;font-weight:600}.home-rename-input{color:#1e293b;background:#f8fafc;border:1px solid #6366f1;border-radius:4px;outline:none;width:100%;max-width:300px;margin-bottom:2px;padding:2px 6px;font-size:15px;font-weight:600}.home-flow-meta{color:#64748b;font-size:12px}.home-flow-chevron{color:#cbd5e1}.home-flow-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;padding:0 60px 40px;display:grid;overflow-y:auto}.home-flow-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;transition:all .2s;display:flex;overflow:hidden}.home-flow-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 12px 32px #00000014}.home-flow-card-preview{justify-content:center;align-items:center;height:120px;display:flex}.home-flow-card-body{flex-direction:column;flex:1;padding:20px;display:flex}.home-flow-card-footer{border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;display:flex}.flow-menu-wrap{position:relative}.flow-menu-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;transition:all .2s}.flow-menu-btn:hover{color:#334155;background:#f1f5f9}.flow-menu-dropdown{z-index:100;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:140px;margin-top:4px;padding:6px;position:absolute;top:100%;right:0;box-shadow:0 10px 25px #0000001a}.flow-menu-item{text-align:left;color:#334155;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.flow-menu-item:hover{background:#f1f5f9}.flow-menu-item-danger{color:#ef4444}.custom-node-delete{color:#94a3b8;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;padding:4px;transition:all .2s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.template-card:hover .custom-node-delete{opacity:1}.custom-node-delete:hover{color:#ef4444;background:#fee2e2}.flow-menu-item-danger:hover{background:#fef2f2}.home-settings-panel{flex-direction:column;gap:20px;max-width:680px;padding:28px 32px;display:flex}.home-settings-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;gap:14px;padding:22px 24px;display:flex}.home-settings-card-dim{opacity:.55}.home-settings-card-header{color:#0f172a;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.home-settings-desc{color:#64748b;margin:0;font-size:12px;line-height:1.6}.settings-key-badge{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.settings-key-badge-ok{color:#16a34a;background:#f0fdf4;border:1px solid #86efac}.settings-key-badge-missing{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5}.settings-key-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;align-items:center;gap:12px;padding:12px 14px;display:flex}.settings-key-display{flex:1;min-width:0}.settings-key-value{color:#334155;letter-spacing:.03em;font-family:JetBrains Mono,monospace;font-size:13px}.settings-key-empty{color:#94a3b8;font-size:13px;font-style:italic}.settings-key-actions{flex-shrink:0;gap:6px;display:flex}.settings-key-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:7px;align-items:center;gap:5px;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.settings-key-btn:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.settings-key-btn-danger:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.settings-key-edit{flex-direction:column;gap:8px;display:flex}.settings-edit-actions{justify-content:flex-end;gap:8px;display:flex}.settings-saved-msg{color:#16a34a;align-items:center;gap:5px;margin:0;font-size:12px;font-weight:600;display:inline-flex}.settings-external-link{color:#6366f1;background:#eef2ff;border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.settings-external-link:hover{background:#e0e7ff}