/* Overriding Colors *****************************************************************************/ :root { --bs-primary: #76599a; --bs-secondary: #b14f9d; --bs-success: #1c6c12; --bs-info: #423372; --bs-warning: #eb7f31; --bs-danger: #9c2d66; } /* Overriding the background gradient and text colors ********************************************/ .bg-gradient-success { background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%); } .shadow-success { box-shadow: 0px 4px 20px 0px rgba(118, 89, 154, 0.5); /* Adjusting shadow color */ } .border-radius-lg { border-radius: 1rem; /* Assuming you want to keep the large border-radius */ } .text-white { color: #f8e1a9 !important; /* Adjust text to the EveAI success color */ } .text-sm { font-size: 0.875rem; /* Adjust size if needed, keeping original */ } /* Override for the link with text-success and text-gradient classes *****************************/ .text-success { color: var(--bs-primary) !important; /* Use EveAI primary color */ } .text-gradient { background-image: linear-gradient(90deg, var(--bs-primary), var(--bs-secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .font-weight-bold { font-weight: 700; /* Retain bold text */ } /* Navbar customization **************************************************************************/ .navbar-light .navbar-brand { color: var(--bs-primary) !important; /* Primary color for the brand text */ } .navbar-light .navbar-nav .nav-link { color: var(--bs-secondary) !important; /* Secondary color for the nav links */ } /* Ensure consistent alignment for all dropdown icons */ .navbar-nav .nav-link i.material-icons { font-size: 24px; /* Ensures all icons are the same size */ vertical-align: middle; /* Align icons vertically with text */ margin-right: 8px; /* Space between icon and text */ line-height: 1; /* Prevents misalignment due to line-height issues */ } .navbar-nav .nav-link { display: flex; align-items: center; /* Aligns icon and text vertically */ padding: 0; /* Remove any additional padding */ } /* Adjust the size and spacing of the material-symbols-outlined icons */ .navbar-nav .nav-link .material-symbols-outlined { font-size: 20px; /* Adjust the icon size */ vertical-align: middle; /* Ensure vertical alignment with text */ margin-right: 8px; /* Add space between the icon and the text */ line-height: 1; /* Maintain alignment */ } .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { color: var(--bs-primary) !important; /* Primary color on hover/focus */ } .bg-white { background-color: var(--bs-light) !important; /* Adjust the background to a custom light color if needed */ } .btn.bg-gradient-primary { background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%); color: var(--bs-white) !important; /* Ensures text is readable on the gradient */ border: none; } .navbar-toggler .navbar-toggler-bar { background-color: var(--bs-secondary); /* Adjusts color of the toggler bars */ } .dropdown-menu { background-color: var(--bs-light); /* Light background for dropdown */ border-radius: 0.375rem; /* Retains rounded corners */ } .dropdown-item { color: var(--bs-primary) !important; /* Primary color for dropdown items */ } .dropdown-item:hover, .dropdown-item:focus { background-color: var(--bs-secondary) !important; /* Secondary color for hover/focus background */ color: var(--bs-white) !important; /* White text on hover/focus */ } .btn.bg-gradient-primary { background: linear-gradient(90deg, var(--bs-primary) 0%, var(--bs-secondary) 100%); color: var(--bs-white) !important; } /* Page header customization *********************************************************************/ .page-header { background-size: cover; background-position: center; min-height: 25vh; position: relative; } .page-header .mask { background: linear-gradient(90deg, var(--bs-primary), var(--bs-secondary)) !important; /* Gradient overlay */ opacity: 0.8; /* Adjust opacity to let the background image show through */ } .page-header h1 { color: var(--bs-success) !important; /* Use the success color for the header text */ margin-top: -1.5rem; /* Adjusted margin to align text properly */ } .page-header p.lead { color: var(--bs-info) !important; /* Use the info color for the lead text */ padding-left: 1.5rem; padding-right: 1.5rem; } /* Ensure consistent padding */ .page-header .container { padding-top: 3rem; padding-bottom: 3rem; } .page-header .col-lg-7 { margin-top: -5rem; /* Adjust margin to improve vertical alignment */ } /* Card and table customization ******************************************************************/ .card { border: 1px solid var(--bs-secondary) !important; /* Secondary color for the card border */ border-radius: 0.5rem; /* Keeps the border-radius consistent */ box-shadow: 0 4px 8px rgba(118, 89, 154, 0.2); /* Soft shadow with primary color */ } .table { color: var(--bs-body-color) !important; /* Ensure the text color matches the theme */ background-color: var(--bs-light) !important; /* Light background color */ border-collapse: separate !important; /* Ensure borders do not collapse */ border-spacing: 0; /* Remove spacing between table cells */ border-radius: 0.375rem; /* Rounded corners */ overflow: hidden; /* Ensure the rounded corners apply to the entire table */ border: 1px solid var(--bs-secondary) !important; /* Apply border with secondary color */ } .table thead th { color: var(--bs-info) !important; /* Info color for the table headers */ background-color: var(--bs-light) !important; /* Background for table headers */ border-bottom: 1px solid var(--bs-secondary) !important; /* Secondary color for the header bottom border */ } /* Ensures corners are colored */ .table thead th:first-child { border-top-left-radius: 0.375rem !important; } .table thead th:last-child { border-top-right-radius: 0.375rem !important; } .table tbody tr:last-child td:first-child { border-bottom-left-radius: 0.375rem !important; } .table tbody tr:last-child td:last-child { border-bottom-right-radius: 0.375rem !important; } .table tbody tr { border-top: 1px solid var(--bs-gray-300) !important; /* Subtle border between rows */ } .table tbody tr:hover { background-color: var(--bs-secondary) !important; /* Secondary color on row hover */ color: var(--bs-white) !important; /* White text on hover */ } .table tbody tr:hover a, .table tbody tr:hover p, .table tbody tr:hover td { color: var(--bs-white) !important; /* Ensure all text, links, and paragraphs change to white */ } .table tbody tr:hover .text-xs { color: var(--bs-white) !important; /* Ensure the smaller text also changes to white */ } .table .text-xs { color: var(--bs-body-color) !important; /* Consistent text color in the table cells */ } input[type="radio"] { accent-color: var(--bs-primary); /* Primary color for radio buttons */ } /* Buttons customization */ .btn-primary { background-color: var(--bs-primary) !important; border-color: var(--bs-primary) !important; color: var(--bs-white) !important; } .btn-secondary { background-color: var(--bs-secondary) !important; border-color: var(--bs-secondary) !important; color: var(--bs-white) !important; } /* Adjust the form group margin */ .form-group { margin-top: 1.5rem; /* Adjust for better spacing */ } /* Card footer customization *********************************************************************/ .card-footer { /*background-color: var(--bs-light) !important; !* Light background for the footer *!*/ padding-top: 1rem; /* Adjust padding for consistent spacing */ padding-bottom: 1rem; /* Adjust padding for consistent spacing */ /*border-top: 1px solid var(--bs-secondary) !important; !* Border with secondary color *!*/ padding-left: 0 !important; padding-right: 0 !important; } .card-footer .pagination { padding-left: 0 !important; /* Remove extra padding */ padding-right: 0 !important; /* Remove extra padding */ } /* Pagination customization */ .pagination { display: flex; justify-content: center; padding-left: 0; list-style: none; border-radius: 0.375rem; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; /* Add some padding inside the pagination */ padding-right: 0 !important; /* Add some padding inside the pagination */ } .pagination .page-item { margin-left: 0 !important; margin-right: 0 !important; } .page-item.disabled .page-link { color: var(--bs-gray-500) !important; /* Disabled state color */ background-color: var(--bs-gray-200) !important; /* Disabled state background */ border-color: var(--bs-gray-300) !important; /* Disabled state border */ } .page-item.active .page-link { z-index: 1; color: var(--bs-white) !important; /* Active page color */ background-color: var(--bs-primary) !important; /* Active page background */ border-color: var(--bs-primary) !important; /* Active page border */ } .page-item .page-link { border-radius: 50% !important; /* Ensure circular buttons */ margin: 0 5px; /* Add some spacing between buttons */ } .page-link { color: var(--bs-primary) !important; /* Default link color */ background-color: var(--bs-light) !important; /* Light background for links */ border: 1px solid var(--bs-secondary) !important; /* Border with secondary color */ border-radius: 0.375rem; /* Rounded corners */ padding: 0.5rem 0.75rem; margin: 0 0.25rem; /* Adjust margin for spacing */ } .page-link:hover { color: var(--bs-white) !important; /* Hover state text color */ background-color: var(--bs-secondary) !important; /* Hover state background */ border-color: var(--bs-secondary) !important; /* Hover state border */ } .page-link i.fa { margin-right: 0.25rem; /* Add spacing between icon and text */ } /* Align text centrally */ .text-center { text-align: center !important; } /* Form and Input Fields *************************************************************************/ .form-group label.form-label { color: var(--bs-secondary) !important; /* Secondary color for labels */ font-weight: 500; /* Slightly bolder labels */ } .form-group:last-of-type { margin-bottom: 2rem; /* Adjust this value to control spacing */ } .form-control { background-color: var(--bs-light) !important; /* Light background for input fields */ border-color: var(--bs-secondary) !important; /* Secondary color for borders */ color: var(--bs-body-color) !important; /* Text color consistent with the theme */ } .form-control:disabled { background-color: var(--bs-gray-100) !important; /* Gray background for disabled fields */ color: var(--bs-gray-600) !important; /* Dimmed text color for disabled fields */ } .form-check-input:checked { background-color: var(--bs-primary) !important; /* Primary color for checked checkboxes */ border-color: var(--bs-primary) !important; /* Primary color for checkbox border */ } .form-check-label { color: var(--bs-body-color) !important; /* Consistent text color for check labels */ } /* Tabs Navigation *******************************************************************************/ .nav-pills .nav-link { color: var(--bs-primary) !important; /* Primary color for inactive tab text */ border-radius: 0.375rem !important; /* Rounded corners for tabs */ transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transitions */ } .nav-pills .nav-link.active { background-color: var(--bs-primary) !important; /* Primary background for active tab */ color: var(--bs-white) !important; /* White text for active tab */ } .nav-pills .nav-link:hover { background-color: var(--bs-secondary) !important; /* Secondary background on hover */ color: var(--bs-white) !important; /* White text on hover */ } /* Tabs Content */ .tab-pane { padding-top: 1rem; /* Consistent padding inside tabs */ } .moving-tab { background-color: var(--bs-primary) !important; /* Primary color for the moving tab indicator */ } /* Buttons */ .btn-primary:hover { background-color: var(--bs-secondary) !important; border-color: var(--bs-secondary) !important; } #copy-message { color: var(--bs-success) !important; /* Success color for the copy message */ } /* Danger Button Styling */ .btn-danger { background-color: var(--bs-danger) !important; /* Use the danger color from the EveAI theme */ border-color: var(--bs-danger) !important; color: var(--bs-white) !important; /* Ensure text is white for readability */ transition: background-color 0.3s ease, color 0.3s ease; /* Smooth transition on hover */ } .btn-danger:hover { background-color: darken(var(--bs-danger), 10%) !important; /* Darken the background on hover */ border-color: darken(var(--bs-danger), 10%) !important; /* Darken the border on hover */ color: var(--bs-white) !important; /* Ensure the text remains white and readable */ } /* Success Alert Styling */ .alert-success { background-color: var(--bs-success) !important; /* EveAI success background color */ color: var(--bs-dark) !important; /* Dark color for the text for better readability */ border-color: var(--bs-success) !important; /* Matching border color */ border-radius: 0.375rem; /* Rounded corners for the alert box */ padding: 1rem; /* Consistent padding */ box-shadow: 0px 4px 10px rgba(118, 89, 154, 0.2); /* Soft shadow for some depth */ } .alert-success .alert-heading { color: var(--bs-dark) !important; /* Ensure the heading stands out */ font-weight: 600; /* Slightly bolder heading */ } .alert-success p { margin-bottom: 0; /* Remove extra margin from paragraphs inside alerts */ } .form-control { border: 1px solid #d2d6da; padding: 0.625rem 0.75rem; } .form-control:focus { color: #495057; background-color: transparent; border-color: #d2d6da; outline: 0; box-shadow: none; } /* Markdown content styling **********************************************************************/ .markdown-content { line-height: 1.5; } .markdown-content p { margin-bottom: 0.75rem; } .markdown-content h1 { font-size: 1.5rem; margin-top: 1rem; margin-bottom: 0.75rem; } .markdown-content h2 { font-size: 1.25rem; margin-top: 0.875rem; margin-bottom: 0.625rem; } .markdown-content h3, .markdown-content h4, .markdown-content h5, .markdown-content h6 { font-size: 1.125rem; margin-top: 0.75rem; margin-bottom: 0.5rem; } .markdown-content ul, .markdown-content ol { margin-bottom: 1rem; padding-left: 1.5rem; } .markdown-content li { margin-bottom: 0.25rem; } .markdown-content code { background-color: rgba(0, 0, 0, 0.1); padding: 0.2em 0.4em; border-radius: 3px; font-family: monospace; font-size: 0.875em; } .markdown-content pre { background-color: rgba(0, 0, 0, 0.1); padding: 0.75rem; border-radius: 5px; overflow-x: auto; margin-bottom: 1rem; } .markdown-content pre code { background-color: transparent; padding: 0; font-size: 0.875em; white-space: pre; } .markdown-content blockquote { border-left: 4px solid rgba(0, 0, 0, 0.2); padding-left: 1rem; margin-left: 0; color: rgba(0, 0, 0, 0.6); } .markdown-content table { border-collapse: collapse; width: 100%; margin-bottom: 1rem; } .markdown-content table th, .markdown-content table td { border: 1px solid rgba(0, 0, 0, 0.2); padding: 0.5rem; } .markdown-content table th { background-color: rgba(0, 0, 0, 0.05); } /* AI Message styles *****************************************************************************/ /* Adjust colors for dark message bubbles */ .ai-message .markdown-content { color: white; } .ai-message .markdown-content code { background-color: rgba(255, 255, 255, 0.2); color: #fff; } .ai-message .markdown-content pre { background-color: rgba(255, 255, 255, 0.1); } .ai-message .markdown-content blockquote { border-left-color: rgba(255, 255, 255, 0.3); color: rgba(255, 255, 255, 0.8); } .ai-message .markdown-content table th, .ai-message .markdown-content table td { border-color: rgba(255, 255, 255, 0.3); } .ai-message .markdown-content table th { background-color: rgba(255, 255, 255, 0.1); } /* Hide Select2's custom elements */ .select2-container-hidden { position: absolute !important; left: -9999px !important; } .select2-dropdown-hidden { display: none !important; } /* Ensure the original select is visible and styled */ select.select2 { display: block !important; width: 100% !important; height: auto !important; padding: .375rem .75rem !important; font-size: 1rem !important; line-height: 1.5 !important; color: #495057 !important; background-color: #fff !important; background-clip: padding-box !important; border: 1px solid #ced4da !important; border-radius: .25rem !important; transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out !important; } /* Style for multiple select */ select.select2[multiple] { height: auto !important; } /* REQUIRED FIELD SETTINGS ***********************************************************************/ /* Required field indicator styling */ .field-label-wrapper { display: flex; align-items: baseline; /* Changed from center to baseline for proper text alignment */ gap: 0.25rem; } .required-field-indicator { display: inline-flex; align-items: baseline; /* Match the wrapper's alignment */ } .required-field-indicator .required-icon { font-size: 0.7rem; transition: transform 0.2s ease-in-out; opacity: 0.8; line-height: 1; /* Ensure proper vertical alignment */ } /* Hover animation */ .field-label-wrapper:hover .required-icon { transform: scale(1.2); opacity: 1; } /* Animation when field is invalid */ .is-invalid + .field-label-wrapper .required-icon { color: var(--bs-danger); animation: pulse 1s infinite; } @keyframes pulse { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } } /* Hide visually but maintain accessibility */ .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* TAB ERROR STYLES ----------------------------------------------------------- */ /* Style for tabs with errors */ .nav-link.has-error { position: relative; } .nav-link.has-error::after { content: ''; position: absolute; top: 0; right: 0; width: 8px; height: 8px; background-color: var(--bs-danger); border-radius: 50%; transform: translate(50%, -50%); } /* Enhance the invalid field visualization */ .form-control:invalid { border-color: var(--bs-danger); box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); } /* Add smooth transition for tab changes */ .tab-pane { transition: opacity 0.15s linear; } .tab-pane.fade { opacity: 0; } .tab-pane.fade.show { opacity: 1; } /* Specialist Card Hover Effect */ .specialist-card { transition: all 0.3s ease; cursor: pointer; } .specialist-card:hover { transform: translateY(-5px); box-shadow: 0 7px 14px rgba(118, 89, 154, 0.1), 0 3px 6px rgba(118, 89, 154, 0.1); border-color: var(--bs-primary); } /* Loading Spinner Colors */ .spinner-border { color: var(--bs-primary); } /* Stream output styling */ .log-entry { transition: all 0.3s ease; overflow: hidden; } .log-entry pre { background-color: #f8f9fa; border-radius: 4px; padding: 1rem; overflow-x: auto; } /* Minimum height for specialist form area */ .min-vh-30 { min-height: 30vh; } /*************************************************************************************************/ /* Chat Layout ***********************************************************************************/ /*************************************************************************************************/ main.container-fluid { transition: padding-bottom 0.3s ease; padding-bottom: 40px; /* Default padding */ } main.container-fluid.console-expanded { padding-bottom: 190px; /* Increased padding when console is open */ } .main-content { height: calc(100vh - 120px); /* Adjust for header and status bar */ } .specialist-selector { width: 320px !important; /* Force fixed width */ min-width: 320px !important; /* Prevent shrinking below this size */ flex-shrink: 0 !important; /* Prevent this element from shrinking */ border-right: 1px solid #dee2e6; overflow-y: auto; height: 100%; } .specialist-arguments { padding: 15px; border-bottom: 1px solid #ddd; } .bot-area { display: flex; flex-direction: column; height: calc(100% - 120px); /* Adjust based on argument form height */ padding: 15px; } /* Messages Styling ******************************************************************************/ .message-history { flex-grow: 1; min-height: 150px; height: calc(100vh - 445px); /* Fixed height calculation */ overflow-y: auto; scrollbar-width: thin; border-radius: 0.25rem; padding: 0.5rem; margin-bottom: 0.5rem; transition: height 0.3s ease; /* Smooth transition when resizing */ } .console-expanded .message-history { height: calc(100vh - 595px); /* Reduced height when console is open (445px + 150px) */ } .message-input { margin-top: 15px; } .message-bubble { padding: 10px 15px; border-radius: 18px; max-width: 100%; word-break: break-word; } .user-message { background-color: var(--bs-primary); color: white; border-top-right-radius: 4px; } .ai-message { background-color: var(--bs-secondary); color: white; border-top-left-radius: 4px; } /* Current status text */ #currentStatus { font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 70%; padding: 0 0.5rem; display: inline-block; } /* Connection status badge */ #connectionStatus { font-size: 0.7rem; padding: 0.25rem 0.5rem; } /* Typing Indicator */ .typing-indicator { display: inline-flex; align-items: center; } .typing-indicator span { height: 8px; width: 8px; border-radius: 50%; background-color: #fff; display: inline-block; margin: 0 1px; opacity: 0.6; animation: typing 1s infinite; } .typing-indicator span:nth-child(2) { animation-delay: 0.2s; } .typing-indicator span:nth-child(3) { animation-delay: 0.4s; } @keyframes typing { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } /* Chat Interface Styles */ .message-container { display: flex; margin-bottom: 10px; max-width: 80%; } .user-container { justify-content: flex-end; margin-left: auto; } .ai-container { justify-content: flex-start; margin-right: auto; } .user-message { background-color: var(--bs-primary); color: white; border-top-right-radius: 4px; } .ai-message { background-color: var(--bs-secondary); color: white; border-top-left-radius: 4px; } .typing-indicator { display: inline-flex; align-items: center; } .typing-indicator span { height: 8px; width: 8px; border-radius: 50%; background-color: #fff; display: inline-block; margin: 0 1px; opacity: 0.6; animation: typing 1s infinite; } .typing-indicator span:nth-child(2) { animation-delay: 0.2s; } .typing-indicator span:nth-child(3) { animation-delay: 0.4s; } @keyframes typing { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } .specialist-card { transition: all 0.2s ease; cursor: pointer; } .specialist-card:hover { transform: translateY(-3px); box-shadow: 0 4px 20px rgba(118, 89, 154, 0.2); } .specialist-card.bg-light { border-left: 3px solid var(--bs-primary); } body { font-size: 0.875rem; /* Reduced from default */ display: flex; flex-direction: column; } h1, .h1 { font-size: 1.75rem; /* Reduced from 2.5rem */ } h2, .h2 { font-size: 1.5rem; /* Reduced from 2rem */ } h3, .h3 { font-size: 1.25rem; /* Reduced from 1.75rem */ } h4, .h4 { font-size: 1.125rem; /* Reduced from 1.5rem */ } .card-title { font-size: 1.125rem; } .nav-link { font-size: 0.875rem; } .form-label { font-size: 0.875rem; } .btn { font-size: 0.875rem; } .form-control { font-size: 0.875rem; } /* Adjust message bubbles */ .message-bubble { font-size: 0.875rem; } /* Active specialist card styling */ .specialist-card.active-specialist { border-left: 4px solid var(--bs-primary); background-color: rgba(118, 89, 154, 0.1) !important; box-shadow: 0 4px 20px rgba(118, 89, 154, 0.2); } /* Animation for status message transition */ @keyframes fadeInOut { 0% { opacity: 0; transform: translateY(10px); } 10% { opacity: 1; transform: translateY(0); } 90% { opacity: 1; } 100% { opacity: 0; } } /* Full-height layout */ html, body { height: 100%; overflow: hidden; } .wrapper { flex: 1; display: flex; flex-direction: column; overflow: hidden; } main.container { flex: 1; overflow: hidden; padding-bottom: 40px; /* For status bar */ } main.container > .d-flex { height: 100%; } main.container-fluid { padding-bottom: 40px; /* Height of status bar + buffer */ } /* Ensure containers are sized correctly */ #specialist-form-container, #specialist-form { height: 100%; display: flex; flex-direction: column; } /* Ensure the main content scrolls properly */ .flex-grow-1.overflow-hidden { min-height: 0; /* Important for flexbox scroll behavior */ } /* Make sure main content takes full height */ .main-content { display: flex; flex-direction: column; flex: 1; } /* Enhanced Status Bar */ .status-bar { position: fixed; bottom: 0; left: 0; right: 0; min-height: 30px; background-color: #f8f9fa; border-top: 1px solid #dee2e6; font-size: 0.75rem; color: #495057; z-index: 1030; width: 100%; } /* Console output styling */ .console-output { height: 150px; background-color: #212529; color: #f8f9fa; overflow-y: auto; scrollbar-width: thin; border-top: 1px solid #444; transition: height 0.3s ease; } .status-messages { font-family: 'Courier New', monospace; font-size: 0.75rem; padding: 0.5rem; } .status-message { margin-bottom: 2px; white-space: pre-wrap; word-break: break-word; font-size: 0.75rem; } /* Different message types */ .status-message.info { color: #8be9fd; } .status-message.success { color: #50fa7b; } .status-message.warning { color: #ffb86c; } .status-message.error { color: #ff5555; } /* Active button state */ #toggleConsole.active { background-color: rgba(0,0,0,0.1); } #toggleConsole { padding: 0.125rem 0.25rem; line-height: 1; color: #6c757d; border: none; background: transparent; } #toggleConsole:hover { color: #212529; background-color: rgba(0, 0, 0, 0.05); } /* Add padding to main content when console is expanded */ .console-expanded { padding-bottom: 190px !important; /* Adjust based on console height */ } /* Fix vertical sizing for specialist container */ .specialist-container { display: flex; flex-direction: column; height: 100%; overflow: hidden; } /* Config section has auto height based on content */ .config-section { flex-shrink: 0; overflow-y: auto; max-height: 40%; /* Allow scrolling if many fields */ } /* Message input section has fixed height */ .message-input-section { flex-shrink: 0; height: auto; padding: 0.75rem; border-top: 1px solid #dee2e6; background-color: rgba(248, 249, 250, 0.5); border-radius: 0 0 0.25rem 0.25rem; } /* Ensure containers are sized correctly */ #specialist-form-container, #specialist-form { height: 100%; display: flex; flex-direction: column; } /* Chat Interface Styles */ .chat-interface { display: flex; flex-direction: column; height: 100%; /* Take full height of parent */ overflow: hidden; /* Prevent content from breaking layout */ } /* Log viewer styles */ .log-entries { font-family: 'Menlo', 'Monaco', 'Courier New', monospace; font-size: 0.8rem; line-height: 1.4; } .log-entry { padding: 2px 0; white-space: pre-wrap; word-break: break-word; } .log-timestamp { opacity: 0.7; font-weight: 500; } .log-info { color: #8be9fd; } .log-success { color: #50fa7b; } .log-warning { color: #ffb86c; } .log-error { color: #ff5555; } /* Processing Status Badge Colors */ .bg-ready { background-color: var(--bs-success) !important; } .bg-processing { background-color: var(--bs-warning) !important; } .bg-error { background-color: var(--bs-danger) !important; }