/* * PowerOn | Multi-Agent Service - UI Component Styles * Styles for UI elements, controls, and interactive components */ /* Prompt selection */ .prompt-selection { width: 100%; } #prompt-select-main { width: 100%; padding: 0.375rem; border: 1px solid #d1d5db; border-radius: 0.25rem; background-color: white; font-size: 0.875rem; margin-bottom: 0.5rem; } .prompt-select-label { display: block; margin-bottom: 0.25rem; font-weight: 500; } /* Workflow controls */ .workflow-controls { display: flex; gap: 0.5rem; margin-left: auto; } #stop-workflow-btn { background-color: #ef4444; color: white; } #stop-workflow-btn:hover { background-color: #dc2626; } #reset-btn { background-color: #f3f4f6; color: #4b5563; } #reset-btn:hover { background-color: #e5e7eb; } #send-user-message-btn { background-color: #3b82f6; color: white; } #send-user-message-btn:hover { background-color: #2563eb; } #send-user-message-btn.running { background-color: #6b7280; cursor: not-allowed; } /* Upload button */ #upload-additional-file-btn { background-color: #fff; border: 1px solid #d1d5db; color: #4b5563; display: flex; align-items: center; gap: 0.375rem; } #upload-additional-file-btn:hover { background-color: #f9fafb; border-color: #9ca3af; } #additional-file-input { display: none; } /* Data statistics */ .data-statistics { display: flex; gap: 0.5rem; font-size: 0.75rem; color: #6b7280; padding: 0.25rem 0.5rem; background-color: #f9fafb; border-radius: 0.25rem; margin-left: auto; } .stat-item { white-space: nowrap; display: flex; align-items: center; gap: 0.25rem; } /* Workflow status indicator */ .workflow-status-indicator { padding: 5px 10px; border-radius: 4px; margin-bottom: 10px; font-weight: bold; display: flex; align-items: center; } .workflow-status-indicator.running { background-color: rgba(52, 152, 219, 0.2); color: #3498db; border-left: 3px solid #3498db; } .workflow-status-indicator.completed { background-color: rgba(46, 204, 113, 0.2); color: #2ecc71; border-left: 3px solid #2ecc71; } .workflow-status-indicator.stopped { background-color: rgba(231, 76, 60, 0.2); color: #e74c3c; border-left: 3px solid #e74c3c; } .workflow-status-indicator i { margin-right: 8px; } /* Input guidance and warnings */ .input-guidance { color: #6b7280; font-size: 0.75rem; margin-top: 0.375rem; } .input-warning { color: #b91c1c; font-size: 0.75rem; font-weight: 500; margin-top: 0.375rem; animation: fadeIn 0.3s ease; } /* Collapsible sections */ .collapsible-section { overflow: hidden; transition: max-height 0.3s ease; } .collapsible-header { cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 0.5rem; background-color: #f9fafb; border: 1px solid #e5e7eb; border-radius: 0.25rem; } .collapsible-header:hover { background-color: #f3f4f6; } .collapsible-content { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; } .collapsible-section.expanded .collapsible-content { max-height: 1000px; /* Arbitrary large value */ } .collapsible-icon { transition: transform 0.3s ease; } .collapsible-section.expanded .collapsible-icon { transform: rotate(180deg); } /* Tooltips */ .tooltip { position: relative; display: inline-block; } .tooltip .tooltip-text { visibility: hidden; width: 200px; background-color: #333; color: #fff; text-align: center; border-radius: 6px; padding: 5px; position: absolute; z-index: 1; bottom: 125%; left: 50%; transform: translateX(-50%); opacity: 0; transition: opacity 0.3s; font-size: 0.75rem; } .tooltip .tooltip-text::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #333 transparent transparent transparent; } .tooltip:hover .tooltip-text { visibility: visible; opacity: 1; } /* Loading spinner */ .spinner { width: 20px; height: 20px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.3); border-top-color: #fff; animation: spin 0.8s linear infinite; display: inline-block; } @keyframes spin { to { transform: rotate(360deg); } } /* Toggle button */ .toggle-switch { position: relative; display: inline-block; width: 40px; height: 24px; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 24px; } .toggle-slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 4px; bottom: 4px; background-color: white; transition: .4s; border-radius: 50%; } input:checked + .toggle-slider { background-color: #3b82f6; } input:focus + .toggle-slider { box-shadow: 0 0 1px #3b82f6; } input:checked + .toggle-slider:before { transform: translateX(16px); } /* Badge */ .badge { display: inline-block; padding: 0.25em 0.5em; font-size: 0.75em; font-weight: 500; line-height: 1; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: 0.25rem; margin-left: 0.5rem; } .badge-primary { background-color: #3b82f6; color: white; } .badge-secondary { background-color: #9ca3af; color: white; } .badge-success { background-color: #10b981; color: white; } .badge-danger { background-color: #ef4444; color: white; } .badge-warning { background-color: #f59e0b; color: white; } .badge-info { background-color: #0ea5e9; color: white; } /* Animation keyframes */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideInUp { from { transform: translateY(10px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } .fade-in { animation: fadeIn 0.3s ease; } .slide-in-up { animation: slideInUp 0.3s ease; } .pulse { animation: pulse 1.5s infinite; }