:root{--color-primary-50:#eef2ff;--color-primary-100:#e0e7ff;--color-primary-200:#c7d2fe;--color-primary-300:#a5b4fc;--color-primary-400:#818cf8;--color-primary-500:#6366f1;--color-primary-600:#4f46e5;--color-primary-700:#4338ca;--color-primary-800:#3730a3;--color-primary-900:#312e81;--color-success:#10b981;--color-success-light:#34d399;--color-success-dark:#059669;--color-warning:#f59e0b;--color-warning-light:#fbbf24;--color-warning-dark:#d97706;--color-error:#ef4444;--color-error-light:#f87171;--color-error-dark:#dc2626;--color-info:#3b82f6;--color-info-light:#60a5fa;--color-info-dark:#2563eb;--node-trigger:#8b5cf6;--node-action:#3b82f6;--node-condition:#f59e0b;--node-transform:#10b981;--node-response:#ec4899;--bg-base-light:#fff;--bg-surface-light:#fafafa;--bg-elevated-light:#f4f4f5;--bg-hover-light:#e4e4e7;--text-primary-light:#18181b;--text-secondary-light:#52525b;--text-tertiary-light:#a1a1aa;--border-subtle-light:#f4f4f5;--border-default-light:#e4e4e7;--border-strong-light:#d4d4d8;--bg-base-dark:#09090b;--bg-surface-dark:#18181b;--bg-elevated-dark:#27272a;--bg-hover-dark:#3f3f46;--text-primary-dark:#fafafa;--text-secondary-dark:#a1a1aa;--text-tertiary-dark:#71717a;--border-subtle-dark:#27272a;--border-default-dark:#3f3f46;--border-strong-dark:#52525b;--bg-base:var(--bg-base-dark);--bg-surface:var(--bg-surface-dark);--bg-elevated:var(--bg-elevated-dark);--bg-hover:var(--bg-hover-dark);--text-primary:var(--text-primary-dark);--text-secondary:var(--text-secondary-dark);--text-tertiary:var(--text-tertiary-dark);--border-subtle:var(--border-subtle-dark);--border-default:var(--border-default-dark);--border-strong:var(--border-strong-dark);--gradient-primary:linear-gradient(135deg,#6366f1,#8b5cf6);--gradient-surface:linear-gradient(180deg,rgba(99,102,241,.05),transparent);--gradient-success:linear-gradient(135deg,#10b981,#34d399);--gradient-error:linear-gradient(135deg,#ef4444,#f87171);--gradient-warning:linear-gradient(135deg,#f59e0b,#fbbf24);--font-sans:"Inter Variable","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code","SF Mono",Consolas,monospace;--text-4xl:2.25rem;--text-3xl:1.875rem;--text-2xl:1.5rem;--text-xl:1.25rem;--text-lg:1.125rem;--text-base:1rem;--text-sm:0.875rem;--text-xs:0.75rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--sidebar-width:240px;--sidebar-collapsed:64px;--header-height:56px;--content-max-width:1440px;--canvas-grid-size:20px;--node-width:280px;--node-min-height:80px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--shadow-glow-primary:0 0 0 3px rgba(99,102,241,.3);--shadow-glow-error:0 0 0 3px rgba(239,68,68,.3);--shadow-glow-success:0 0 0 3px rgba(16,185,129,.3);--shadow-glow-warning:0 0 0 3px rgba(245,158,11,.3);--icon-xs:12px;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-xl:32px;--icon-2xl:48px;--ease-out:cubic-bezier(0.33,1,0.68,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--duration-fast:100ms;--duration-normal:150ms;--duration-slow:300ms;--duration-slower:500ms;--z-base:0;--z-dropdown:1000;--z-sticky:1100;--z-fixed:1200;--z-modal-backdrop:1300;--z-modal:1400;--z-popover:1500;--z-tooltip:1600}.light{--bg-base:var(--bg-base-light);--bg-surface:var(--bg-surface-light);--bg-elevated:var(--bg-elevated-light);--bg-hover:var(--bg-hover-light);--text-primary:var(--text-primary-light);--text-secondary:var(--text-secondary-light);--text-tertiary:var(--text-tertiary-light);--border-subtle:var(--border-subtle-light);--border-default:var(--border-default-light);--border-strong:var(--border-strong-light);--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-ext-wght-normal.460bdf14.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-wght-normal.491cbc05.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-ext-wght-normal.23aae568.woff2) format("woff2-variations");unicode-range:u+1f??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-wght-normal.4449bf7a.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-vietnamese-wght-normal.113a630f.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-ext-wght-normal.3835a68e.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-wght-normal.6c596dfc.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.7daf4077.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.29859c59.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.4a5b0cb1.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.fd17702b.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.ef62d646.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.b0c7be19.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.react-flow{background-color:var(--bg-base)}.react-flow__renderer{border-radius:12px}.react-flow__node{border-radius:16px;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);cursor:pointer}.react-flow__node.selected,.react-flow__node:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.react-flow__node:hover{transform:translateY(-2px)}.react-flow__handle{height:.75rem;width:.75rem;border-width:2px;border-color:var(--bg-base);opacity:0;transition:all .15s ease-out}.react-flow__node:hover .react-flow__handle{opacity:1}.react-flow__handle-connecting{opacity:1;animation:port-pulse 1s ease-in-out infinite}.react-flow__handle-valid{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.react-flow__edge-path{stroke-width:2;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;stroke:#71717a}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke:hsl(var(--primary));stroke-width:3px}.react-flow__edge.executing .react-flow__edge-path{stroke:hsl(var(--info));stroke-width:3px;stroke-dasharray:5;animation:edge-flow 1s linear infinite}.react-flow__edge.success .react-flow__edge-path{stroke:hsl(var(--success))}.react-flow__edge.error .react-flow__edge-path{stroke:hsl(var(--destructive));stroke-dasharray:4 2}.react-flow__background{background-color:rgba(39,39,42,.1)}.react-flow__controls{border-radius:12px;border-width:1px;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.react-flow__controls,.react-flow__controls-button{border-color:var(--border-default);background-color:var(--bg-base)}.react-flow__controls-button:hover{background-color:var(--bg-hover)}.react-flow__controls-button svg{fill:var(--text-primary)}.react-flow__minimap{border-radius:12px;border-width:1px;border-color:var(--border-default);background-color:var(--bg-base);--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.react-flow__minimap-mask{fill:rgba(39,39,42,.2)}.react-flow__minimap-node{fill:rgba(99,102,241,.6)}.react-flow__selection{background-color:rgba(99,102,241,.1);border-width:2px;--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.react-flow__connection-path,.react-flow__connectionline{stroke:#fb923c!important;stroke-width:4px!important;stroke-dasharray:8 4!important;filter:drop-shadow(0 0 6px rgba(251,146,60,.7))!important}.react-flow__panel{border-radius:8px;border-width:1px;border-color:var(--border-default);background-color:var(--bg-base);--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@keyframes edge-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:10}}@keyframes port-pulse{0%,to{box-shadow:0 0 0 4px rgba(34,197,94,.2)}50%{box-shadow:0 0 0 8px rgba(34,197,94,0)}}@keyframes node-pulse{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 0 8px rgba(59,130,246,0)}}.node-executing{animation:node-pulse 2s ease-in-out infinite}.workflow-canvas-grid{background-color:hsl(var(--background));background-image:radial-gradient(circle,hsl(var(--border)) 1px,transparent 1px);background-size:20px 20px}.dark .react-flow__edge-path{stroke:#a1a1aa}.dark .react-flow__controls,.dark .react-flow__minimap{border-color:var(--border-default);background-color:var(--bg-surface)}.dark .react-flow__minimap-mask{fill:rgba(39,39,42,.3)}.react-flow__node{transition:all .2s cubic-bezier(.4,0,.2,1)}.react-flow__edge-textbg{fill:var(--bg-base)}.react-flow__edge-text{fill:var(--text-primary);font-size:.75rem;line-height:1.25}.react-flow__attribution{border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1.25;color:var(--text-secondary);background-color:rgba(9,9,11,.8)}.react-flow__resize-control{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1));width:8px;height:8px;border-radius:2px}.react-flow__resize-control.handle-bottom,.react-flow__resize-control.handle-top{left:50%;transform:translateX(-50%)}.react-flow__resize-control.handle-left,.react-flow__resize-control.handle-right{top:50%;transform:translateY(-50%)}.workflow-scrollbar::-webkit-scrollbar{width:8px}.workflow-scrollbar::-webkit-scrollbar-track{background-color:rgba(39,39,42,.3)}.workflow-scrollbar::-webkit-scrollbar-thumb{background-color:var(--border-default);border-radius:4px}.workflow-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--border-strong)}@keyframes pulse{50%{opacity:.5}0%,to{opacity:1}}.node-skeleton{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-radius:16px;background-color:rgba(39,39,42,.5);width:240px;height:100px}.workflow-empty-state{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary)}.workflow-empty-state svg{margin-bottom:1rem;height:6rem;width:6rem;opacity:.5}.workflow-empty-state p{font-size:.875rem;line-height:1.5}.workflow-toolbar{position:relative;background:linear-gradient(to bottom,hsl(var(--background)),hsl(var(--background)/.95));backdrop-filter:blur(8px)}@keyframes slide-in-left{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slide-in-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.panel-slide-in-left{animation:slide-in-left .2s ease-out}.panel-slide-in-right{animation:slide-in-right .2s ease-out}.panel-slide-in-bottom{animation:slide-in-bottom .2s ease-out}.connector-icon-glow{box-shadow:0 0 12px currentColor;opacity:.8}.node-type-indicator{position:absolute;top:0;left:0;height:100%;width:.25rem;border-top-left-radius:16px;border-bottom-left-radius:16px}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.node-validation-error{animation:shake .4s ease-in-out}.react-flow__node:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:var(--bg-base)}.react-flow__edge:focus-visible .react-flow__edge-path{stroke:hsl(var(--primary));stroke-width:3px}@media (prefers-contrast:high){.react-flow__node{border-width:2px}.react-flow__edge-path{stroke-width:3px}.react-flow__handle{border-width:4px}}@media (prefers-reduced-motion:reduce){.react-flow__edge-path,.react-flow__handle,.react-flow__node{transition:none;animation:none}.node-executing,.react-flow__edge.executing .react-flow__edge-path{animation:none}}@media print{.config-panel,.execution-logs-panel,.node-palette,.react-flow__controls,.react-flow__minimap,.workflow-toolbar{display:none}.react-flow{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.react-flow__node{border-width:1px;--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.react-flow__edge-path{stroke:#000}}