:root{--workflow-bg:#0a0a0f;--workflow-preview-bg:#0f0f14;--workflow-grid-color:#16161b;--workflow-node-fill:#1a1a1e;--workflow-node-selected-fill:#2a2a2e;--workflow-node-sub-fill:#14141c;--workflow-node-icon-fill:#8b5cf6;--workflow-node-border:#2a2a2e;--workflow-node-border-selected:#8b5cf6;--workflow-node-hover:#1e1e22;--workflow-edge-stroke:#6366f1;--workflow-connection-type-string:#7ecbf2;--workflow-connection-type-file:#e0a875;--workflow-connection-type-folder:#c9a0dc;--workflow-connection-type-boolean:#8cdcc0;--workflow-status-success:#10b981;--workflow-status-failed:#ef4444;--workflow-status-running:#3b82f6;--workflow-status-pending:#f59e0b;--workflow-text-primary:#e5e7eb;--workflow-text-secondary:#9ca3af;--workflow-text-muted:#6b7280;--workflow-panel-bg:rgba(10,10,15,.95);--workflow-panel-border:#2a2a2e;--workflow-panel-header:#14141c;--workflow-hover-bg:rgba(139,92,246,.1);--workflow-selected-bg:rgba(139,92,246,.2);--workflow-handle-bg:#6366f1;--workflow-handle-border:#1a1a1e;--workflow-shadow-sm:0 2px 8px rgba(0,0,0,.4);--workflow-shadow-md:0 4px 16px rgba(0,0,0,.5);--workflow-shadow-lg:0 8px 24px rgba(0,0,0,.6);--workflow-shadow-xl:0 12px 32px rgba(0,0,0,.7);--workflow-font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--workflow-font-size-xs:10px;--workflow-font-size-sm:12px;--workflow-font-size-base:14px;--workflow-font-size-lg:16px;--workflow-font-size-xl:18px;--workflow-space-xs:4px;--workflow-space-sm:8px;--workflow-space-md:12px;--workflow-space-lg:16px;--workflow-space-xl:24px;--workflow-space-2xl:32px;--workflow-radius-sm:4px;--workflow-radius-md:6px;--workflow-radius-lg:8px;--workflow-radius-xl:12px;--workflow-transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--workflow-transition-base:250ms cubic-bezier(0.4,0,0.2,1);--workflow-transition-slow:350ms cubic-bezier(0.4,0,0.2,1);--workflow-z-background:0;--workflow-z-grid:1;--workflow-z-edges:2;--workflow-z-nodes:3;--workflow-z-handles:4;--workflow-z-controls:10;--workflow-z-panels:20;--workflow-z-modals:30;--workflow-z-tooltips:40}.palette-bg{background:var(--workflow-bg);font-family:var(--workflow-font-family);position:relative;width:100%;height:100%}.palette-grid{position:absolute;inset:0;z-index:var(--workflow-z-background)}.palette-grid:before{background-image:linear-gradient(var(--workflow-grid-color) 1.5px,transparent 1.5px),linear-gradient(90deg,var(--workflow-grid-color) 1.5px,transparent 1.5px);background-size:32px 32px;background-position:-1px -1px;opacity:.6;z-index:var(--workflow-z-grid)}.palette-grid:before,.palette-vignette:after{content:"";position:absolute;inset:0;pointer-events:none}.palette-vignette:after{background:radial-gradient(ellipse at center,transparent 0,rgba(0,0,0,.2) 70%,rgba(0,0,0,.5) 100%);z-index:var(--workflow-z-background)}.palette-canvas{position:relative;z-index:var(--workflow-z-nodes);width:100%;height:100%}.palette-minimap{background:var(--workflow-panel-bg);border:1px solid var(--workflow-panel-border);border-radius:var(--workflow-radius-lg);backdrop-filter:blur(10px);box-shadow:var(--workflow-shadow-lg)}.palette-edge{stroke:var(--workflow-edge-stroke);stroke-width:2;fill:none;transition:all var(--workflow-transition-base);z-index:var(--workflow-z-edges)}.palette-edge.selected{stroke:var(--workflow-node-border-selected);stroke-width:3}.palette-edge:hover{stroke:#a78bfa;stroke-width:2.5}.palette-edge.type-string{stroke:var(--workflow-connection-type-string)}.palette-edge.type-file{stroke:var(--workflow-connection-type-file)}.palette-edge.type-folder{stroke:var(--workflow-connection-type-folder)}.palette-edge.type-boolean{stroke:var(--workflow-connection-type-boolean)}@keyframes connection-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.6}}.palette-edge.connecting{animation:connection-pulse 1s ease-in-out infinite;stroke-dasharray:5,5;stroke-dashoffset:0;animation:dash 20s linear infinite}@keyframes dash{to{stroke-dashoffset:-200}}.palette-handle{width:12px;height:12px;background:var(--workflow-handle-bg);border:2px solid var(--workflow-handle-border);border-radius:50%;transition:all var(--workflow-transition-fast);z-index:var(--workflow-z-handles)}.palette-handle:hover{width:16px;height:16px;background:var(--workflow-node-border-selected);box-shadow:0 0 0 4px rgba(139,92,246,.2)}.palette-handle.connecting{background:#a78bfa;box-shadow:0 0 0 6px rgba(139,92,246,.3);animation:handle-pulse 1s ease-in-out infinite}@keyframes handle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.osint-node{font-family:var(--workflow-font-family);background:var(--workflow-node-fill);border:1px solid var(--workflow-node-border);border-radius:var(--workflow-radius-lg);box-shadow:var(--workflow-shadow-md);transition:all var(--workflow-transition-base);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-width:160px;position:relative;z-index:var(--workflow-z-nodes)}.osint-node:hover{transform:translateY(-3px);background:var(--workflow-node-hover);box-shadow:var(--workflow-shadow-lg),0 0 0 1px rgba(139,92,246,.3)}.osint-node:active{transform:translateY(-1px);transition:transform .1s}.osint-node.selected{border-color:var(--workflow-node-border-selected);background:var(--workflow-node-selected-fill);box-shadow:0 0 0 2px var(--workflow-node-border-selected),var(--workflow-shadow-xl)}.osint-node.dragging{box-shadow:var(--workflow-shadow-xl),0 0 0 2px rgba(139,92,246,.5);transform:rotate(2deg) scale(1.02);cursor:grabbing}.node-header{display:flex;align-items:center;gap:var(--workflow-space-sm);padding:var(--workflow-space-md);border-bottom:1px solid var(--workflow-node-border);background:var(--workflow-node-sub-fill);border-radius:var(--workflow-radius-lg) var(--workflow-radius-lg) 0 0}.node-icon-container{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--workflow-radius-md);background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(139,92,246,.05));border:1px solid rgba(139,92,246,.2);overflow:hidden}.node-icon-container:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent,hsla(0,0%,100%,.05));opacity:0;transition:opacity var(--workflow-transition-base)}.osint-node:hover .node-icon-container:before{opacity:1}.node-icon{width:20px;height:20px;color:var(--workflow-node-icon-fill);z-index:1}.node-title{flex:1;font-size:var(--workflow-font-size-base);font-weight:600;color:var(--workflow-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-label{font-size:var(--workflow-font-size-xs);font-weight:500;color:var(--workflow-text-secondary);text-transform:uppercase;letter-spacing:.5px}.node-content{padding:var(--workflow-space-md);max-height:200px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--workflow-handle-bg) var(--workflow-node-sub-fill)}.node-content::-webkit-scrollbar{width:6px}.node-content::-webkit-scrollbar-track{background:var(--workflow-node-sub-fill);border-radius:3px}.node-content::-webkit-scrollbar-thumb{background:var(--workflow-handle-bg);border-radius:3px}.node-content::-webkit-scrollbar-thumb:hover{background:var(--workflow-node-border-selected)}.node-status{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;box-shadow:0 0 8px currentColor}.node-status.success{background:var(--workflow-status-success);color:var(--workflow-status-success)}.node-status.failed{background:var(--workflow-status-failed);color:var(--workflow-status-failed)}.node-status.running{background:var(--workflow-status-running);color:var(--workflow-status-running);animation:status-pulse 1.5s ease-in-out infinite}.node-status.pending{background:var(--workflow-status-pending);color:var(--workflow-status-pending)}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.5}}.node-type-badge{display:inline-block;font-size:var(--workflow-font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:var(--workflow-radius-sm);background:rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.1);color:var(--workflow-text-secondary)}.node-locked{opacity:.7;cursor:not-allowed}.node-locked:after{content:"🔒";position:absolute;top:8px;right:8px;font-size:12px;background:rgba(0,0,0,.5);padding:4px;border-radius:var(--workflow-radius-sm);backdrop-filter:blur(4px);z-index:10}.osint-node.expanded{min-width:320px;max-width:400px}.osint-node.collapsed{min-width:160px;max-width:180px}@keyframes node-appear{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.osint-node.new{animation:node-appear .4s cubic-bezier(.34,1.56,.64,1)}@keyframes node-pulse{0%,to{box-shadow:var(--workflow-shadow-md),0 0 0 0 rgba(139,92,246,.4)}50%{box-shadow:var(--workflow-shadow-md),0 0 0 8px rgba(139,92,246,0)}}.osint-node.loading{animation:node-pulse 2s ease-in-out infinite}.node-field{display:flex;justify-content:space-between;padding:var(--workflow-space-xs) 0;font-size:var(--workflow-font-size-sm);border-bottom:1px solid hsla(0,0%,100%,.05)}.node-field:last-child{border-bottom:none}.node-field-label{color:var(--workflow-text-secondary);font-weight:500}.node-field-value{color:var(--workflow-text-primary);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.node-actions{display:flex;gap:var(--workflow-space-xs);padding:var(--workflow-space-sm);border-top:1px solid var(--workflow-node-border);background:var(--workflow-node-sub-fill)}.node-action-btn{flex:1;padding:var(--workflow-space-xs) var(--workflow-space-sm);font-size:var(--workflow-font-size-xs);font-weight:600;border:1px solid hsla(0,0%,100%,.1);border-radius:var(--workflow-radius-sm);background:transparent;color:var(--workflow-text-secondary);cursor:pointer;transition:all var(--workflow-transition-fast)}.node-action-btn:hover{background:rgba(139,92,246,.1);border-color:rgba(139,92,246,.3);color:var(--workflow-node-border-selected)}