- Improvements to EntitlementsDomain & Services - Prechecks in Document domain - Add audit information to LicenseUsage
1174 lines
29 KiB
CSS
1174 lines
29 KiB
CSS
/* 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;
|
|
} |