.output-node { border: 1px solid #1a73e8; border-radius: 8px; background: #e8f0fe; width: 300px; min-height: 100px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .output-node-header { background: #d2e3fc; padding: 10px; border-top-left-radius: 7px; border-top-right-radius: 7px; border-bottom: 1px solid #a8c7fa; font-size: 14px; color: #174ea6; } .output-content { padding: 15px; font-family: sans-serif; font-size: 14px; color: #333; } .output-content.placeholder p { color: #666; font-style: italic; text-align: center; margin: 20px 0; } .output-content.text-output p { white-space: pre-wrap; background: #fff; border: 1px solid #ddd; padding: 10px; border-radius: 4px; min-height: 50px; } .output-content.image-output { display: flex; justify-content: center; align-items: center; background-color: #f0f0f0; min-height: 150px; border-radius: 4px; } .output-node.running .output-node-header { background-color: #fff3cd; color: #856404; border-color: #ffeeba; } .output-node.success .output-node-header { background-color: #d4edda; color: #155724; border-color: #c3e6cb; } .output-node.error .output-node-header { background-color: #f8d7da; color: #721c24; border-color: #f5c6cb; } .node-status { float: right; font-size: 10px; font-weight: bold; text-transform: uppercase; padding: 3px 6px; border-radius: 3px; background: rgba(0,0,0,0.1); } /* Add these styles to your existing OutputNode.css file */ .download-button { background-color: #1a73e8; color: white; border: none; border-radius: 4px; padding: 6px 12px; margin-top: 10px; cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; transition: background-color 0.2s; } .download-button:hover { background-color: #0d5bdd; } .download-button:disabled { background-color: #cccccc; cursor: not-allowed; } .download-button svg { margin-right: 5px; } .output-actions { display: flex; justify-content: flex-end; padding: 0 15px 10px 15px; } /* Reusable indicator styling */ .reusable-indicator { display: inline-flex; align-items: center; margin-left: 8px; color: #1a73e8; cursor: help; opacity: 0.7; transition: opacity 0.2s; } .reusable-indicator:hover { opacity: 1; } /* Handle styling for better visibility */ .react-flow__handle { width: 10px; height: 10px; border-radius: 50%; background-color: #1a73e8; border: 2px solid white; transition: background-color 0.2s; } .react-flow__handle:hover { background-color: #0d5bdd; } /* Source handle with special styling to indicate it's reusable */ .react-flow__handle-right { background-color: #34a853; } .react-flow__handle-right:hover { background-color: #2d9249; } /* Enhanced styling for connections */ .react-flow__edge-path { stroke: #1a73e8; stroke-width: 2; } .react-flow__connection-path { stroke: #34a853; stroke-width: 2; }