:root{--bg:#0b0d12;--surface:#14171f;--surface-2:#1b1f29;--border:#262b36;--border-strong:#3a4150;--text:#e6e8ee;--text-dim:#8a93a6;--text-mute:#5a6273;--accent:#6c8cff;--accent-2:#4ad6c3;--danger:#ff6b6b;--warn:#ffb86b;--ok:#5ad19a;--cat-source:#5ad19a;--cat-transform:#6c8cff;--cat-logic:#ffb86b;--cat-ai:#c08bff;--cat-output:#4ad6c3;--radius:10px;--radius-sm:6px;--shadow-1:0 1px 2px rgba(0,0,0,.3),0 0 0 1px var(--border);--shadow-2:0 8px 24px rgba(0,0,0,.35),0 0 0 1px var(--border-strong);--font-sans:"Inter",-apple-system,system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}[data-theme=light]{--bg:#f5f6f8;--surface:#fff;--surface-2:#f0f1f4;--border:#e2e4e9;--border-strong:#c8ccd6;--text:#1a1d26;--text-dim:#6b7385;--text-mute:#9ca3b5;--accent:#4f6fdb;--accent-2:#2eb8a3;--danger:#e04545;--warn:#e09945;--ok:#3fb87a;--shadow-1:0 1px 2px rgba(0,0,0,.06),0 0 0 1px var(--border);--shadow-2:0 8px 24px rgba(0,0,0,.1),0 0 0 1px var(--border-strong)}*,:after,:before{box-sizing:border-box}#root,body,html{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0b0d12;background:var(--bg);color:#e6e8ee;color:var(--text);font-family:Inter,-apple-system,system-ui,sans-serif;font-family:var(--font-sans)}button,input,select,textarea{font-family:inherit}.app{display:flex;height:100vh;overflow:hidden}.app-main{display:flex;flex:1 1;flex-direction:column;position:relative}.canvas-wrapper{background:var(--bg);flex:1 1;position:relative}.canvas-wrapper .react-flow__background{background:var(--bg)!important}.canvas-vignette{background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.4) 100%);z-index:1}.canvas-empty,.canvas-vignette{inset:0;pointer-events:none;position:absolute}.canvas-empty{align-items:center;color:var(--text-mute);display:flex;font-size:14px;justify-content:center;z-index:2}.react-flow__controls{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-1)!important}.react-flow__controls-button{fill:var(--text)!important;background:var(--surface)!important;border-color:var(--border)!important;color:var(--text)!important}.react-flow__controls-button:hover{background:var(--surface-2)!important}.react-flow__minimap{border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-1)!important;overflow:hidden}.node{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;transition:box-shadow .15s,border-color .15s;width:280px}.node:hover{box-shadow:var(--shadow-1)}.node--selected{border-color:var(--accent);box-shadow:var(--shadow-2)}.node-header{align-items:center;display:flex;gap:6px;margin-bottom:8px}.node-icon{color:var(--accent);color:var(--node-accent,var(--accent));flex-shrink:0}.node-title{color:var(--text);flex:1 1;font-size:13px;font-weight:600}.node-badge{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:9px;font-weight:600;letter-spacing:.05em;padding:2px 6px;text-transform:uppercase}.node-description{color:var(--text-dim);font-size:11px;margin-bottom:8px}.node-fields{gap:8px}.field,.node-fields{display:flex;flex-direction:column}.field{gap:3px}.field-label{color:var(--text-mute);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.field-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:12px;outline:none;padding:6px 8px;transition:border-color .15s}.field-input:focus{border-color:var(--accent)}.field-select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:12px;outline:none;padding:6px 8px}.field-select:focus{border-color:var(--accent)}.field-textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-size:12px;line-height:1.5;min-height:60px;outline:none;padding:6px 8px;resize:vertical;transition:border-color .15s}.field-textarea:focus{border-color:var(--accent)}.field-textarea--invalid{border-color:var(--danger)!important}.field-wrapper,.field-wrapper-textarea{margin-bottom:2px}.react-flow__handle{background:var(--surface);border:2px solid var(--border-strong);height:8px;transition:all .15s;width:8px}.react-flow__handle:hover{border-color:var(--accent);-webkit-transform:scale(1.3);transform:scale(1.3)}.react-flow__handle-connecting{-webkit-animation:handle-pulse 1s ease-in-out infinite;animation:handle-pulse 1s ease-in-out infinite;border-color:var(--accent)}@-webkit-keyframes handle-pulse{0%,to{box-shadow:0 0 0 0 rgba(108,140,255,.4)}50%{box-shadow:0 0 0 4px rgba(108,140,255,0)}}@keyframes handle-pulse{0%,to{box-shadow:0 0 0 0 rgba(108,140,255,.4)}50%{box-shadow:0 0 0 4px rgba(108,140,255,0)}}.custom-edge{stroke-width:2;stroke:var(--accent);stroke:var(--edge-color-source,var(--accent));transition:stroke-width .15s}.custom-edge:hover{stroke-width:3}.custom-edge--selected{stroke-width:3;stroke:var(--accent)}@-webkit-keyframes dash{to{stroke-dashoffset:-20}}@keyframes dash{to{stroke-dashoffset:-20}}.custom-edge path{stroke-dasharray:5 5;-webkit-animation:dash 1s linear infinite;animation:dash 1s linear infinite}.react-flow__edge-path{stroke:var(--accent);stroke:var(--edge-color-source,var(--accent))}.toolbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:260px;overflow:hidden;width:260px}.toolbar-header{padding:16px 16px 8px}.toolbar-title{color:var(--text);font-size:15px;font-weight:700;margin:0}.toolbar-search{padding:8px 16px;position:relative}.toolbar-search-icon{color:var(--text-mute);left:24px;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.toolbar-search-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:12px;outline:none;padding:6px 8px 6px 28px;width:100%}.toolbar-search-input:focus{border-color:var(--accent)}.toolbar-search-input::-webkit-input-placeholder{color:var(--text-mute)}.toolbar-search-input::placeholder{color:var(--text-mute)}.toolbar-groups{flex:1 1;overflow-y:auto;padding:0 8px 16px}.toolbar-group{margin-bottom:4px}.toolbar-group-header{align-items:center;background:none;background:var(--surface);border:none;border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.05em;padding:6px 8px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;width:100%;z-index:1}.toolbar-group-header:hover{background:var(--surface-2);color:var(--text)}.toolbar-group-count{color:var(--text-mute);font-size:10px;margin-left:auto}.toolbar-group-items{display:flex;flex-direction:column;gap:1px;padding-left:4px}.toolbar-item{align-items:center;border-radius:var(--radius-sm);color:var(--text-dim);cursor:grab;display:flex;font-size:12px;gap:8px;padding:6px 8px;transition:background .1s,color .1s;-webkit-user-select:none;user-select:none}.toolbar-item:hover{background:var(--surface-2);color:var(--text)}.toolbar-item:active{background:var(--surface-2);cursor:grabbing}.toolbar-item-icon{flex-shrink:0}.toolbar-item-label{flex:1 1}.submit-area{bottom:24px;position:absolute;right:24px;z-index:10}.btn{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:10px 20px;transition:all .15s}.btn:disabled{cursor:not-allowed;opacity:.4}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){-webkit-filter:brightness(1.1);filter:brightness(1.1)}.btn--secondary{background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.btn--secondary:hover:not(:disabled){background:var(--border)}.btn-spinner{-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:rgba(0,0,0,.6);display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-2);max-width:90vw;width:420px}.modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px}.modal-title{color:var(--text);font-size:15px;font-weight:700;margin:0}.modal-close{background:none;border:none;border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;padding:4px}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--border);display:flex;justify-content:flex-end;padding:12px 20px}.result-grid{display:flex;flex-direction:column;gap:12px}.result-item{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.result-item+.result-item{border-top:1px solid var(--border)}.result-label{color:var(--text-dim);font-size:12px;font-weight:500}.result-value{align-items:center;color:var(--text);display:flex;font-size:14px;font-weight:600;gap:4px}.result-ok{color:var(--ok)}.result-danger{color:var(--danger)}.result-section{margin-top:16px}.result-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.result-tag{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:10px;padding:2px 6px}.result-cycle,.result-tag{font-family:var(--font-mono)}.result-cycle{background:hsla(0,100%,71%,.08);border:1px solid hsla(0,100%,71%,.2);border-radius:var(--radius-sm);color:var(--danger);font-size:12px;margin-top:6px;padding:4px 8px}.theme-toggle{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;display:flex;justify-content:center;padding:6px;position:fixed;right:12px;top:12px;z-index:50}.theme-toggle:hover{border-color:var(--border-strong);color:var(--text)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-mute)}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;-webkit-transform-origin:0 0;transform-origin:0 0;z-index:2}.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 .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation: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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none}.react-flow__node,.react-flow__nodes{-webkit-transform-origin:0 0;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;-webkit-transform-origin:left top;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;top:auto}.react-flow__handle-bottom,.react-flow__handle-top{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.react-flow__handle-top{top:-4px}.react-flow__handle-left{left:-4px}.react-flow__handle-left,.react-flow__handle-right{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.react-flow__handle-right{right:-4px}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.react-flow__attribution{background:hsla(0,0%,100%,.5);font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.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-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{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:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;-webkit-transform:translate(-50%);transform:translate(-50%);width:1px}.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.bottom,.react-flow__resize-control.line.top{height:1px;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}
/*# sourceMappingURL=main.5818c15f.css.map*/