/**
 * Larisa validation — red outline + glow (CRM modal parity).
 * Loaded globally from header.php after Bootstrap.
 */

:root {
    --larisa-invalid-border-dark: #f5576c;
    --larisa-invalid-glow-dark: 0 0 0 0.2rem rgba(245, 87, 108, 0.28);
    --larisa-invalid-border-light: #dc3545;
    --larisa-invalid-glow-light: 0 0 0 0.2rem rgba(220, 53, 69, 0.22);
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form, #uploadModal, .rating-modal, #ratingModal, .quickmeet-container, .auth-card, .profile-container) :is(
    .form-control.is-invalid,
    .form-select.is-invalid,
    textarea.form-control.is-invalid,
    input.is-invalid:not([type="checkbox"]):not([type="radio"]),
    textarea.is-invalid,
    select.is-invalid,
    .flatpickr-wrapper input.form-control.is-invalid,
    .flatpickr-wrapper.is-invalid input.form-control,
    .flatpickr-wrapper.is-invalid input.form-control:focus,
    .flatpickr-wrapper.is-invalid input.form-control:focus-visible,
    .select2-container.is-invalid .select2-selection,
    .select2-selection.is-invalid,
    .form-control.is-invalid:focus,
    .form-control.is-invalid:focus-visible,
    .form-select.is-invalid:focus,
    .form-select.is-invalid:focus-visible,
    .flatpickr-wrapper input.form-control.is-invalid:focus,
    .flatpickr-wrapper.is-invalid input.form-control:focus,
    .select2-container.is-invalid.select2-container--focus .select2-selection
) {
    border-color: var(--larisa-invalid-border-dark) !important;
    box-shadow: var(--larisa-invalid-glow-dark) !important;
}

[data-bs-theme="light"] :is(.modal, .larisa-validated-form, #uploadModal, .rating-modal, #ratingModal, .quickmeet-container, .auth-card, .profile-container) :is(
    .form-control.is-invalid,
    .form-select.is-invalid,
    textarea.form-control.is-invalid,
    input.is-invalid:not([type="checkbox"]):not([type="radio"]),
    textarea.is-invalid,
    select.is-invalid,
    .flatpickr-wrapper input.form-control.is-invalid,
    .flatpickr-wrapper.is-invalid input.form-control,
    .flatpickr-wrapper.is-invalid input.form-control:focus,
    .flatpickr-wrapper.is-invalid input.form-control:focus-visible,
    .select2-container.is-invalid .select2-selection,
    .select2-selection.is-invalid,
    .form-control.is-invalid:focus,
    .form-control.is-invalid:focus-visible,
    .form-select.is-invalid:focus,
    .form-select.is-invalid:focus-visible,
    .flatpickr-wrapper input.form-control.is-invalid:focus,
    .flatpickr-wrapper.is-invalid input.form-control:focus,
    .select2-container.is-invalid.select2-container--focus .select2-selection
) {
    border-color: var(--larisa-invalid-border-light) !important;
    box-shadow: var(--larisa-invalid-glow-light) !important;
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) #ticketUploadCard:has(.add-patient-file-input.is-invalid) .crm-treatment-doc-card {
    border-color: var(--larisa-invalid-border-dark) !important;
    box-shadow: var(--larisa-invalid-glow-dark) !important;
}

[data-bs-theme="light"] :is(.modal, .larisa-validated-form) #ticketUploadCard:has(.add-patient-file-input.is-invalid) .crm-treatment-doc-card {
    border-color: var(--larisa-invalid-border-light) !important;
    box-shadow: var(--larisa-invalid-glow-light) !important;
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) .lang-chip-fieldset.is-invalid .lang-chip-group,
[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) .auth-lang-list.is-invalid,
[data-bs-theme="dark"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) .larisa-star-rating.is-invalid,
[data-bs-theme="dark"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) #starRating.is-invalid,
[data-bs-theme="dark"] #editLanguagesCheckboxes.is-invalid {
    outline: 1px solid var(--larisa-invalid-border-dark) !important;
    box-shadow: var(--larisa-invalid-glow-dark) !important;
    border-radius: 8px;
}

[data-bs-theme="light"] :is(.modal, .larisa-validated-form) .lang-chip-fieldset.is-invalid .lang-chip-group,
[data-bs-theme="light"] :is(.modal, .larisa-validated-form) .auth-lang-list.is-invalid,
[data-bs-theme="light"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) .larisa-star-rating.is-invalid,
[data-bs-theme="light"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) #starRating.is-invalid,
[data-bs-theme="light"] #editLanguagesCheckboxes.is-invalid {
    outline: 1px solid var(--larisa-invalid-border-light) !important;
    box-shadow: var(--larisa-invalid-glow-light) !important;
    border-radius: 8px;
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) #sessionStarRating.is-invalid,
[data-bs-theme="light"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) #sessionStarRating.is-invalid {
    outline: 1px solid var(--larisa-invalid-border-dark) !important;
    box-shadow: var(--larisa-invalid-glow-dark) !important;
    border-radius: 8px;
    padding: 4px 8px;
    display: inline-block;
}

[data-bs-theme="light"] :is(.modal, .larisa-validated-form, .rating-modal, #ratingModal) #sessionStarRating.is-invalid {
    outline-color: var(--larisa-invalid-border-light) !important;
    box-shadow: var(--larisa-invalid-glow-light) !important;
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) .text-danger {
    color: #f87171 !important;
}

[data-bs-theme="light"] :is(.modal, .larisa-validated-form) .invalid-feedback {
    display: block;
    color: #dc3545 !important;
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) .btn.is-invalid,
[data-bs-theme="light"] :is(.modal, .larisa-validated-form) .btn.is-invalid {
    border-color: var(--larisa-invalid-border-dark) !important;
    box-shadow: var(--larisa-invalid-glow-dark) !important;
}

[data-bs-theme="light"] :is(.modal, .larisa-validated-form) .btn.is-invalid {
    border-color: var(--larisa-invalid-border-light) !important;
    box-shadow: var(--larisa-invalid-glow-light) !important;
}

.tooltip.larisa-field-required-tooltip {
    z-index: 20050 !important;
}

.tooltip.larisa-field-required-tooltip .tooltip-inner {
    background: #dc3545 !important;
    color: #ffffff !important;
    font-size: 0.8rem;
    font-weight: 600;
}

.tooltip.larisa-field-required-tooltip.bs-tooltip-top .tooltip-arrow::before,
.tooltip.larisa-field-required-tooltip .tooltip-arrow::before {
    border-top-color: #dc3545 !important;
}

[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) .tooltip.larisa-field-required-tooltip .tooltip-inner,
[data-bs-theme="dark"] :is(.modal, .larisa-validated-form) .tooltip.larisa-field-required-tooltip div {
    color: #ffffff !important;
}
