/* 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 */ } /* Style for both disabled and readonly fields - same gray background */ .form-control:disabled, .form-control[readonly] { background-color: var(--bs-gray-100) !important; /* Gray background */ color: var(--bs-gray-600) !important; /* Dimmed text color */ } .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: var(--bs-secondary) !important; border-color: var(--bs-secondary) !important; 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; } /* 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; }