.react-flow{background:radial-gradient(circle at 50% 50%, var(--background) 0%, var(--surface-subtle) 100%);position:relative}.react-flow:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(circle at 1px 1px,#00000005 1px,#0000 0);background-size:20px 20px;position:absolute;inset:0}.react-flow__viewport{z-index:1;position:relative}.react-flow__node.selected{outline:none}.react-flow__edge-path{stroke-width:2px;stroke:#10b981;filter:drop-shadow(0 1px 2px #0000001a)}.react-flow__edge.selected .react-flow__edge-path{stroke:#059669;stroke-width:3px;filter:drop-shadow(0 2px 4px #00000026)}.react-flow__connection-path{stroke:#10b981;stroke-width:2px;stroke-dasharray:5 5;animation:1s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-10px}}.react-flow__handle{border:2px solid var(--background);background:#10b981;width:8px;height:8px;transition:all .2s;box-shadow:0 2px 4px #0000001a}.react-flow__handle:hover{background:#059669;transform:scale(1.2);box-shadow:0 3px 6px #00000026}.react-flow__handle.connecting{background:#f59e0b;animation:1s infinite handle-pulse}@keyframes handle-pulse{0%,to{transform:scale(1);box-shadow:0 2px 4px #0000001a}50%{transform:scale(1.3);box-shadow:0 4px 8px #0003,0 0 0 4px #f59e0b33}}.react-flow__minimap{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 6px -1px #0000001a}.react-flow__controls{border-radius:8px;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a}.react-flow__controls-button{border:none;border-bottom:1px solid var(--border);background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted-foreground);font-size:16px;transition:all .2s}.react-flow__controls-button:hover{background:var(--surface-subtle);color:var(--foreground);transform:translateY(-1px)}.react-flow__controls-button svg{fill:currentColor}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__attribution{background:var(--card);border:1px solid var(--border);color:var(--muted-foreground);border-radius:4px;padding:2px 6px;font-size:10px}.canvas-empty,.canvas-loading{background:linear-gradient(135deg, var(--background) 0%, var(--surface-subtle) 100%)}.react-flow{animation:.5s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.8}}.animate-subtle-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite subtle-pulse}.react-flow__panel{background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--muted-foreground);border-radius:6px;padding:4px 8px;font-size:12px;box-shadow:0 2px 4px #0000000d}
