/*  DO NOT TOUCH THIS FILE UNLESS YOU REALLY KNOW WHAT YOU ARE DOING WITH CSS
    Changes here will impact the entire application validation appearances
    You have been warned!
*/

:root {
    --arise-validation-icon-red: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23dc3545' d='M8 0a1 1 0 0 1 1 1v5.268l4.562-2.634a1 1 0 1 1 1 1.732L10 8l4.562 2.634a1 1 0 1 1-1 1.732L9 9.732V15a1 1 0 1 1-2 0V9.732l-4.562 2.634a1 1 0 1 1-1-1.732L6 8 1.438 5.366a1 1 0 0 1 1-1.732L7 6.268V1a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
    --arise-validation-icon-green: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23198754' d='M8 0a1 1 0 0 1 1 1v5.268l4.562-2.634a1 1 0 1 1 1 1.732L10 8l4.562 2.634a1 1 0 1 1-1 1.732L9 9.732V15a1 1 0 1 1-2 0V9.732l-4.562 2.634a1 1 0 1 1-1-1.732L6 8 1.438 5.366a1 1 0 0 1 1-1.732L7 6.268V1a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
    --arise-validation-icon-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M8 0a1 1 0 0 1 1 1v5.268l4.562-2.634a1 1 0 1 1 1 1.732L10 8l4.562 2.634a1 1 0 1 1-1 1.732L9 9.732V15a1 1 0 1 1-2 0V9.732l-4.562 2.634a1 1 0 1 1-1-1.732L6 8 1.438 5.366a1 1 0 0 1 1-1.732L7 6.268V1a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");

    /* Validation icon positions */
    --arise-validation-icon-position-regular: right calc(0em + 0rem) top 0.375rem;
    --arise-validation-icon-position-kendo-datepicker-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-datepicker-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-datepicker: right var(--arise-validation-icon-position-kendo-datepicker-indicator-right) top var(--arise-validation-icon-position-kendo-datepicker-indicator-top);
    --arise-validation-icon-position-kendo-datepicker-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-datepicker-caret-offset: calc(var(--arise-validation-icon-position-kendo-datepicker-indicator-right) + var(--arise-validation-icon-position-kendo-datepicker-caret-gap));
    --arise-validation-icon-position-kendo-datetimepicker: right calc(3.875em + 1.1875rem) top 0.375rem;
    --arise-validation-icon-position-kendo-datetimepicker-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-datetimepicker-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-datetimepicker-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-datetimepicker-caret-offset: calc(var(--arise-validation-icon-position-kendo-datetimepicker-indicator-right) + var(--arise-validation-icon-position-kendo-datetimepicker-caret-gap));
    --arise-validation-icon-position-kendo-timepicker-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-timepicker-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-timepicker-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-timepicker-caret-offset: calc(var(--arise-validation-icon-position-kendo-timepicker-indicator-right) + var(--arise-validation-icon-position-kendo-timepicker-caret-gap));
    --arise-validation-icon-position-kendo-dropdownlist-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-dropdownlist-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-dropdownlist: right var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right) top var(--arise-validation-icon-position-kendo-dropdownlist-indicator-top);
    --arise-validation-icon-position-kendo-dropdownlist-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-dropdownlist-caret-offset: calc(var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right) + var(--arise-validation-icon-position-kendo-dropdownlist-caret-gap));
    --arise-validation-icon-position-kendo-combobox-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-combobox-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-combobox-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-combobox-caret-offset: calc(var(--arise-validation-icon-position-kendo-combobox-indicator-right) + var(--arise-validation-icon-position-kendo-combobox-caret-gap));
    --arise-validation-icon-position-kendo-multiselect: right calc(1.875em + 1.1875rem) top 0.375rem;
    --arise-validation-icon-position-kendo-multiselect-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-multiselect-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-multiselect-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-multiselect-caret-offset: calc(var(--arise-validation-icon-position-kendo-multiselect-indicator-right) + var(--arise-validation-icon-position-kendo-multiselect-caret-gap));
    --arise-validation-icon-position-kendo-numerictextbox: right calc(1.875em + 1.1875rem) top 0.375rem;
    --arise-validation-icon-position-kendo-numerictextbox-indicator-top: 0.375rem;
    --arise-validation-icon-position-kendo-numerictextbox-indicator-right: 0rem;
    --arise-validation-icon-position-kendo-numerictextbox-caret-gap: calc(0.75em + 0.375rem);
    --arise-validation-icon-position-kendo-numerictextbox-caret-offset: calc(var(--arise-validation-icon-position-kendo-numerictextbox-indicator-right) + var(--arise-validation-icon-position-kendo-numerictextbox-caret-gap));
    --arise-validation-icon-position-kendo-upload: right calc(0.375em + 0.1875rem) top 0.375rem;
    --arise-validation-icon-position-grid-required: right top calc(0.275em + 1.1875rem);
    --arise-validation-icon-position-grid-invalid: right calc(.375em + .1875rem) center;
    --arise-validation-icon-position-grid-valid: right calc(0.375em + 1.1875rem) center;

    /* Shared validation style values */
    --arise-validation-padding-right-standard: calc(1.5em + 0.75rem);
    --arise-validation-padding-right-zero: 0;
    --arise-validation-background-repeat: no-repeat;
    --arise-validation-icon-dimension-standard: calc(0.75em + 0.375rem);
    --arise-validation-background-size-standard: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
    --arise-validation-background-size-compact: calc(.75em + .375rem) calc(.75em + .375rem);
}

/* DatePicker in grid rows: suppress legacy inner maskedtextbox icon painting.
   Required/invalid/valid icon rendering is handled by the DatePicker wrapper pseudo-element below. */
.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required]) span.k-maskedtextbox {
    padding-right: var(--arise-validation-padding-right-zero) !important;
    background-image: none !important;
    background-repeat: initial !important;
    background-position: initial !important;
    background-size: initial !important;
}

/* START Validation indicator location normalization (state-consistent by control type) */
/* Regular (non-Kendo wrapper) inputs */
form .form-control:not(.k-datepicker):not(.k-datetimepicker):not(.k-timepicker):not(.k-dropdownlist):not(.k-multiselect):not(.k-numerictextbox):not(.k-input-inner) {
    background-position: var(--arise-validation-icon-position-regular) !important;
}

/* Kendo DatePicker (outer wrapper) */
form .k-datepicker.form-control.arise-kendo-widget-validation {
    background-position: var(--arise-validation-icon-position-kendo-datepicker) !important;
}

/* Kendo DateTimePicker */
form .k-datetimepicker.form-control.arise-kendo-widget-validation {
    background-position: var(--arise-validation-icon-position-kendo-datetimepicker) !important;
}

/* Kendo DropDownList */
form .k-dropdownlist.form-control.arise-kendo-widget-validation,
form .k-dropdownlist.arise-kendo-widget-validation {
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist) !important;
}

/* Kendo MultiSelect */
form .k-multiselect.form-control.arise-kendo-widget-validation {
    background-position: var(--arise-validation-icon-position-kendo-multiselect) !important;
}

/* Kendo NumericTextBox */
form .k-numerictextbox.form-control.arise-kendo-widget-validation {
    background-position: var(--arise-validation-icon-position-kendo-numerictextbox) !important;
}

/* Kendo TimePicker */
form .k-timepicker.form-control,
form .k-timepicker {
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist) !important;
}
/* END Validation indicator location normalization */

form .form-control[data-val='true'][data-val-required]:not(.k-input-inner):not(.input-validation-error):not(.k-valid):not([aria-invalid='false']),
form .form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid):not(.valid):not(.input-validation-valid):not(.k-valid):not([aria-invalid='false']):not([data-arise-valid-state='valid']):not(.k-datepicker):not(.k-datetimepicker):not(.k-timepicker):not(.k-dropdownlist):not(.k-combobox):not(.k-dropdowngrid):not(.k-multiselect):not(.k-numerictextbox):not(.k-upload) {
    /*border-color: #0d6efd;*/
    padding-right: var(--arise-validation-padding-right-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-position: var(--arise-validation-icon-position-regular);
    background-size: var(--arise-validation-background-size-standard);
}

/*********************************************************** START Provider Registration Wizard ***********************************************************/

/* Kendo TextBox wrapper (ex: Email in Wizard) required/invalid/valid indicators */
form span.k-input.k-textbox.arise-kendo-widget-validation {
    position: relative;
    overflow: visible;
}

form span.k-input.k-textbox.arise-kendo-widget-validation::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-top);
    right: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

form span.k-input.k-textbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.k-valid)::after,
form span.k-input.k-textbox.arise-kendo-widget-validation.k-invalid::after,
form span.k-input.k-textbox.arise-kendo-widget-validation:has(input[aria-invalid='true'])::after,
form span.k-input.k-textbox.arise-kendo-widget-validation:has(input.input-validation-error)::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

form span.k-input.k-textbox.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form span.k-input.k-textbox.arise-kendo-widget-validation.k-valid::after,
form span.k-input.k-textbox.arise-kendo-widget-validation:has(input[aria-invalid='false'])::after,
form span.k-input.k-textbox.arise-kendo-widget-validation:has(input.input-validation-valid):not(:has(input.input-validation-error))::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

/* Input-group controls with trailing button (ex: Password visibility toggle) */
form .input-group > .form-control.arise-kendo-widget-validation {
    padding-right: calc(var(--arise-validation-padding-right-standard) + 2.5rem);
    background-position: right calc(2.5rem + 0.375rem) top 0.375rem;
}

form .input-group > .form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .input-group > .form-control.arise-kendo-widget-validation.k-invalid,
form .input-group > .form-control.arise-kendo-widget-validation.input-validation-error,
form .input-group > .form-control.arise-kendo-widget-validation[aria-invalid='true'] {
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: var(--arise-validation-background-size-standard);
}

form .input-group > .form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid,
form .input-group > .form-control.arise-kendo-widget-validation.k-valid:not(.input-validation-error),
form .input-group > .form-control.arise-kendo-widget-validation.input-validation-valid:not(.input-validation-error),
form .input-group > .form-control.arise-kendo-widget-validation.valid:not(.input-validation-error),
form .input-group > .form-control.arise-kendo-widget-validation[aria-invalid='false']:not(.input-validation-error) {
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: var(--arise-validation-background-size-standard);
}

/*********************************************************** END Provider Registration Wizard ***********************************************************/

/* Align required indicators in grid edit rows with regular (non-grid) control positioning */
.k-grid .k-grid-edit-row .k-dropdownlist:has(input[data-val-required]) {
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist) !important;
}

/* Match regular dropdown caret offset so icon/caret spacing is consistent in grid edit rows */
.k-grid .k-grid-edit-row .k-dropdownlist:has(input[data-val-required]) .k-input-button,
.k-grid .k-grid-edit-row .k-dropdownlist.k-invalid:has(input[data-val-required]) .k-input-button,
.k-grid .k-grid-edit-row .k-dropdownlist.k-valid:has(input[data-val-required]) .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-dropdownlist-caret-offset) !important;
}

.k-grid .k-grid-edit-row textarea.form-control[data-val='true'][data-val-required],
.k-grid .k-detail-row textarea.form-control[data-val='true'][data-val-required],
.k-grid .k-grid-edit-row .k-widget.form-control[data-val-required][name='Text']:not(.k-valid),
.k-grid .k-grid-edit-row .k-widget.form-control[data-val-required][name='Note']:not(.k-valid),
.k-grid .k-grid-edit-row input.form-control[data-val='true'][data-val-required]:not([data-role='datepicker']) {
    background-position: var(--arise-validation-icon-position-regular) !important;
}

/* Match regular form-control inner padding for grid edit-row textareas */
.k-grid .k-grid-edit-row textarea.form-control,
.k-grid .k-detail-row textarea.form-control {
    padding: 0.375rem 0.75rem;
}

/* Optional controls: never show validation indicator icons */
form .form-control:not([data-val-required]):not(.k-input-inner):not(.arise-kendo-widget-validation-required),
form .arise-kendo-widget-validation:not(.arise-kendo-widget-validation-required) {
    background-image: none !important;
}

/* Standard control INVALID style */
form .form-control:invalid:not(.k-input-inner),
form .form-control[data-val-required][aria-invalid='true']:not(.k-input-inner),
/*form .form-control[data-val='true'][data-val-required]:valid,*/
form .form-control.input-validation-error:not(.k-input-inner),
/*form .form-control[data-val][data-val-required]:placeholder-shown,*/
/*form .form-control.input-validation-error[data-val][data-val-required]:valid,*/
/*form .form-control.input-validation-error[data-val][data-val-required]:invalid,*/
form .form-control.input-validation-error[data-val][data-val-required]:not(.k-input-inner),
form .form-control.input-validation-error[data-val='true'][data-val-required]:not(.k-input-inner),
form .form-control[data-val='true'][data-val-required][aria-invalid='true']:not(.k-input-inner),
form .form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid:not(.k-datepicker):not(.k-dropdownlist):not(.k-combobox):not(.k-dropdowngrid):not(.k-multiselect):not(.k-numerictextbox):not(.k-upload) {
    /*border-color: #dc3545;*/
    padding-right: var(--arise-validation-padding-right-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-position: var(--arise-validation-icon-position-regular);
    background-size: var(--arise-validation-background-size-standard);
}

/* Standard control VALID style */
/*form .form-control.valid.dirty,*/
form .form-control.valid.dirty:not(.k-input-inner):not([disabled]),
form .form-control.k-valid[data-val='true'][data-val-required]:not(.k-input-inner):not([disabled]):not(.k-invalid):not(.input-validation-error),
form .form-control.input-validation-valid:not(.k-input-inner):not([disabled]):not(.input-validation-error):not([aria-invalid='true']),
form .form-control[data-val='true'][data-val-required]:not([aria-invalid='true']):not([style*='display: none']):not(.k-input-inner):placeholder-shown.dirty,
/*form .form-control.k-input-inner[data-val='true'][data-val-required]
      :not([style*="display: none"])*/
form .form-control[data-val='true'][data-val-required][aria-invalid='false']:not(.k-input-inner)[value]:not([value=""]),
form .form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid:not(.k-datepicker):not(.k-dropdownlist):not(.k-combobox):not(.k-dropdowngrid):not(.k-multiselect):not(.k-numerictextbox):not(.k-upload),
form .form-control.valid.arise-kendo-widget-validation:not(.arise-kendo-widget-validation-required) {
    /*border-color: #198754;*/
    padding-right: var(--arise-validation-padding-right-standard);
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-position: var(--arise-validation-icon-position-regular);
    background-size: var(--arise-validation-background-size-standard);
}

/* Default field-validation-error styling */
/*form .form-control + span.field-validation-error,*/ /* Regular form-control */
/*form .form-control + script + span.field-validation-error,*/ /* Regular Kendo Widget */
/*form .form-control + script + script + span.field-validation-error,*/ /* Double nested Kendo widget, e.g. DatePicker with MaskedTextBox */
form span.field-validation-error,
form div.field-validation-error {
    display: inline-block;
    margin-bottom: 0.25em;
    color: #dc3545;
    /*margin-top: 0.25em;*/
    /*padding: 0.25em;*/
}

.k-grid .k-grid-edit-row.arise-grid-suppress-validation-messages span.field-validation-error,
.k-grid .k-grid-edit-row.arise-grid-suppress-validation-messages div.field-validation-error,
.k-grid .k-grid-edit-row.arise-grid-suppress-validation-messages .k-invalid-msg,
.k-grid .k-grid-edit-row.arise-grid-suppress-validation-messages .validation-summary-errors {
    display: none !important;
}

/* For CaseID DDL in Global Event Calendar which has no form */
span.field-validation-error-manual,
div.field-validation-error-manual {
    display: inline-block;
    margin-bottom: 0.25em;
    color: #dc3545;
    /*margin-top: 0.25em;*/
    /*padding: 0.25em;*/
}

.error-summary-icon {
    display: inline-block;
    height: 1em;
    width: 1em;
    background-size: 1em 1em;
    background-repeat: var(--arise-validation-background-repeat);
    background-image: var(--arise-validation-icon-white);
}

/* Customized required field positioning for DatePicker, DropDownList */
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-datepicker);
}

form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    padding-right: var(--arise-validation-padding-right-zero);
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    padding-right: var(--arise-validation-padding-right-zero);
}

form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist);
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    background-position: var(--arise-validation-icon-position-kendo-numerictextbox);
}

/* Kendo required indicators aligned to dropdown/datepicker pseudo-element model */
form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    position: relative;
    overflow: visible;
    background-image: none;
}

form .k-numerictextbox.arise-kendo-widget-validation,
form .k-timepicker.form-control.arise-kendo-widget-validation,
form .k-timepicker.arise-kendo-widget-validation {
    position: relative;
    overflow: visible;
}

form .k-multiselect.form-control.arise-kendo-widget-validation {
    position: relative;
    overflow: visible;
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) .k-input-spinner {
    margin-right: var(--arise-validation-icon-position-kendo-numerictextbox-caret-offset);
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid .k-input-spinner,
form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid .k-input-spinner,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required .k-input-spinner,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid .k-input-spinner,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-valid .k-input-spinner {
    margin-right: var(--arise-validation-icon-position-kendo-numerictextbox-caret-offset);
}

form .k-timepicker.form-control.arise-kendo-widget-validation .k-input-button,
form .k-timepicker.arise-kendo-widget-validation .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-timepicker-caret-offset);
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-multiselect-caret-offset);
}

/* Move MultiSelect clear icon right for required validation states (including disabled) */
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required .k-clear-value,
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid .k-clear-value,
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid .k-clear-value {
    margin-right: var(--arise-validation-icon-position-kendo-multiselect-caret-offset);
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid .k-input-button,
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-multiselect-caret-offset);
}

form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) .k-input-button:last-child {
    margin-right: var(--arise-validation-icon-position-kendo-datetimepicker-caret-offset);
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-top);
    right: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-valid,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-required,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-image: none;
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    content: "";
    position: absolute;
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    top: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-top);
    right: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-right);
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    content: "";
    position: absolute;
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-numerictextbox.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    top: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-top);
    right: var(--arise-validation-icon-position-kendo-numerictextbox-indicator-right);
}

form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-timepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-timepicker.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    top: var(--arise-validation-icon-position-kendo-timepicker-indicator-top);
    right: var(--arise-validation-icon-position-kendo-timepicker-indicator-right);
}

/* TimePicker validation parity with DatePicker.
   Keep indicator anchored to the same top-right coordinates and button offset,
   and do not depend on transient arise-kendo-widget-validation classes. */
form .k-timepicker.form-control,
form .k-timepicker {
    position: relative;
    overflow: visible;
    padding-right: var(--arise-validation-padding-right-zero) !important;
    background-image: none !important;
    background-position: var(--arise-validation-icon-position-kendo-datepicker) !important;
}

form .k-timepicker .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-datepicker-caret-offset) !important;
}

form .k-timepicker::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-datepicker-indicator-top);
    right: var(--arise-validation-icon-position-kendo-datepicker-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

form .k-timepicker:has(input[data-val-required]):not(.k-valid)::after,
form .k-timepicker.k-invalid::after,
form .k-timepicker:has(input.input-validation-error)::after,
form .k-timepicker:has(input[aria-invalid='true'])::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

form .k-timepicker.k-valid:has(input[data-val-required])::after,
form .k-timepicker:has(input[data-val-required][aria-invalid='false']):not(.k-invalid)::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

/* Kendo MaskedTextBox required/valid indicator via wrapper pseudo-element */
form .k-maskedtextbox.form-control {
    position: relative;
    overflow: visible;
    padding-right: var(--arise-validation-padding-right-zero) !important;
    background-image: none !important;
    background-position: var(--arise-validation-icon-position-regular) !important;
}

form .k-maskedtextbox.form-control::after {
    content: "";
    position: absolute;
    top: 0.375rem;
    right: 0rem;
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

form .k-maskedtextbox.form-control:has(input[data-val-required][value=''])::after,
form .k-maskedtextbox.form-control:has(input[data-val-required]:not([value]))::after,
form .k-maskedtextbox.form-control:has(input[data-val-required]):has(input.input-validation-error)::after,
form .k-maskedtextbox.form-control:has(input[data-val-required]):has(input[aria-invalid='true'])::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

form .k-maskedtextbox.form-control:has(input[data-val-required].input-validation-valid)::after,
form .k-maskedtextbox.form-control:has(input[data-val-required].valid)::after,
form .k-maskedtextbox.form-control:has(input[data-val-required][data-arise-valid-state='valid'])::after,
form .k-maskedtextbox.form-control:has(input[data-val-required][aria-invalid='false'])::after,
form .k-maskedtextbox.form-control:has(input[data-val-required][value]:not([value=''])):not(:has(input.input-validation-error)):not(:has(input[aria-invalid='true']))::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

/* Nested MaskedTextBox (inside other Kendo wrappers) should not render its own indicator */
form .k-datepicker .k-maskedtextbox.form-control,
form .k-datetimepicker .k-maskedtextbox.form-control,
form .k-timepicker .k-maskedtextbox.form-control,
form .k-dateinput .k-maskedtextbox.form-control {
    padding-right: var(--arise-validation-padding-right-zero) !important;
    background-image: none !important;
}

form .k-datepicker .k-maskedtextbox.form-control::after,
form .k-datetimepicker .k-maskedtextbox.form-control::after,
form .k-timepicker .k-maskedtextbox.form-control::after,
form .k-dateinput .k-maskedtextbox.form-control::after {
    display: none !important;
    background-image: none !important;
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    background-image: none;
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-multiselect-indicator-top);
    right: var(--arise-validation-icon-position-kendo-multiselect-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-multiselect-indicator-top);
    right: var(--arise-validation-icon-position-kendo-multiselect-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

/* Kendo ComboBox / MultiColumnComboBox required indicator via pseudo-element */
form .k-combobox.form-control.arise-kendo-widget-validation,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation {
    position: relative;
    overflow: visible;
}

form .k-combobox.form-control.arise-kendo-widget-validation .k-input-button,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-combobox-caret-offset);
}

form .k-combobox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-dropdowngrid.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-combobox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-combobox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-image: none;
}

form .k-combobox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-combobox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-combobox-indicator-top);
    right: var(--arise-validation-icon-position-kendo-combobox-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-combobox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-dropdowngrid.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-combobox-indicator-top);
    right: var(--arise-validation-icon-position-kendo-combobox-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-multiselect-indicator-top);
    right: var(--arise-validation-icon-position-kendo-multiselect-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-datetimepicker-indicator-top);
    right: var(--arise-validation-icon-position-kendo-datetimepicker-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

/* Kendo DropDownList required indicator style */
form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    background-image: none;
}

/* Move dropdown caret left to avoid overlap with top-right validation indicator */
form .k-dropdownlist.arise-kendo-widget-validation .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-dropdownlist-caret-offset);
}

form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-top);
    right: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

/* Kendo Upload required/invalid indicator style */
form .k-upload.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid),
form .k-upload.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-image: none;
}

/* Kendo Upload valid indicator style */
form .k-upload.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-image: none;
}

/* Kendo Upload indicator via pseudo-element (keeps control background full width) */
form .k-upload.arise-kendo-widget-validation {
    position: relative;
    overflow: visible;
}

form .k-upload.arise-kendo-widget-validation::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-top);
    right: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

form .k-upload.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid)::after,
form .k-upload.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

form .k-upload.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

/* Customized required field positioning for DateTimePicker */
form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid) {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-datetimepicker);
}

/* Customized invalid field positioning for DatePicker */
form .k-datepicker.form-control:invalid,
form .k-datepicker.form-control[data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-datepicker.form-control.input-validation-error:not(.k-input-inner),
form .k-datepicker.form-control[data-val][data-val-required][aria-describedby$='-error']:not(.k-input-inner),
form .k-datepicker.form-control.input-validation-error[data-val][data-val-required]:not(.k-input-inner),
form .k-datepicker.form-control.input-validation-error[data-val='true'][data-val-required]:not(.k-input-inner),
form .k-datepicker.form-control[data-val='true'][data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-datepicker);
}

/* Kendo DatePicker indicator on inner input (prevents outer wrapper overlap on hover/focus) */
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required,
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    background-image: none !important;
}

/* Kendo DatePicker indicator via pseudo-element (after calendar button) */
form .k-datepicker.form-control.arise-kendo-widget-validation {
    position: relative;
    overflow: visible;
}

/* Move datepicker calendar button left to avoid overlap with top-right validation indicator */
form .k-datepicker.form-control.arise-kendo-widget-validation .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-datepicker-caret-offset);
}

form .k-datepicker.form-control.arise-kendo-widget-validation::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-datepicker-indicator-top);
    right: var(--arise-validation-icon-position-kendo-datepicker-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required:not(.arise-kendo-widget-validation-valid):not(.arise-kendo-widget-validation-invalid):not(:has(input[data-val-required][aria-invalid='false'])):not(:has(input[data-val-required][data-arise-valid-state='valid'])):not(:has(input[data-val-required].input-validation-valid)):not(:has(input[data-val-required].valid))::after,
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

form .k-datepicker.form-control.arise-kendo-widget-validation:has(input[data-val-required][aria-invalid='false'])::after,
form .k-datepicker.form-control.arise-kendo-widget-validation:has(input[data-val-required][data-arise-valid-state='valid'])::after,
form .k-datepicker.form-control.arise-kendo-widget-validation:has(input[data-val-required].input-validation-valid)::after,
form .k-datepicker.form-control.arise-kendo-widget-validation:has(input[data-val-required].valid)::after,
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-required.arise-kendo-widget-validation-valid:not(.arise-kendo-widget-validation-invalid)::after {
    display: block;
    background-image: var(--arise-validation-icon-green) !important;
}

/* Kendo DateRangePicker date-input indicators (required/invalid/valid)
   Keep icon treatment aligned with other Kendo controls. */
form .k-daterangepicker .k-dateinput:has(input[data-val-required]) {
    position: relative;
    overflow: visible;
    padding-right: var(--arise-validation-padding-right-standard);
    background-image: none !important;
}

form .k-daterangepicker .k-dateinput:has(input[data-val-required]) .k-input-validation-icon {
    display: none !important;
}

form .k-daterangepicker .k-dateinput.k-invalid:has(input[data-val-required]),
form .k-daterangepicker .k-dateinput.k-valid:has(input[data-val-required]) {
    background-image: none !important;
}

form .k-daterangepicker .k-dateinput:has(input[data-val-required])::after {
    content: "";
    position: absolute;
    top: 0.375rem;
    right: 0rem;
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

form .k-daterangepicker .k-dateinput:has(input[data-val-required]):not(.k-valid)::after,
form .k-daterangepicker .k-dateinput.k-invalid:has(input[data-val-required])::after,
form .k-daterangepicker .k-dateinput:has(input[data-val-required][aria-invalid='true'])::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

form .k-daterangepicker .k-dateinput.k-valid:has(input[data-val-required])::after,
form .k-daterangepicker .k-dateinput:has(input[data-val-required][aria-invalid='false'][value]:not([value='']))::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

/* Customized invalid field positioning for DateTimePicker */
form .k-datetimepicker.form-control:invalid,
form .k-datetimepicker.form-control[data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-datetimepicker.form-control.input-validation-error:not(.k-input-inner),
form .k-datetimepicker.form-control[data-val][data-val-required][aria-describedby$='-error']:not(.k-input-inner),
form .k-datetimepicker.form-control.input-validation-error[data-val][data-val-required]:not(.k-input-inner),
form .k-datetimepicker.form-control.input-validation-error[data-val='true'][data-val-required]:not(.k-input-inner),
form .k-datetimepicker.form-control[data-val='true'][data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-datetimepicker);
}

/* Customized invalid field positioning for DropDownList */
form .k-dropdownlist.form-control:invalid,
form .k-dropdownlist.form-control[data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-dropdownlist.form-control.input-validation-error:not(.k-input-inner),
form .k-dropdownlist.form-control[data-val][data-val-required][aria-describedby$='-error']:not(.k-input-inner),
form .k-dropdownlist.form-control.input-validation-error[data-val][data-val-required]:not(.k-input-inner),
form .k-dropdownlist.form-control.input-validation-error[data-val='true'][data-val-required]:not(.k-input-inner),
form .k-dropdownlist.form-control[data-val='true'][data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid,
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist);
}

/* Kendo DropDownList invalid indicator style */
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    background-image: none;
}

form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after,
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-top);
    right: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

/* Customized invalid field positioning for MultiSelect */
form .k-multiselect.form-control:invalid,
form .k-multiselect.form-control[data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-multiselect.form-control.input-validation-error:not(.k-input-inner),
form .k-multiselect.form-control[data-val][data-val-required][aria-describedby$='-error']:not(.k-input-inner),
form .k-multiselect.form-control.input-validation-error[data-val][data-val-required]:not(.k-input-inner),
form .k-multiselect.form-control.input-validation-error[data-val='true'][data-val-required]:not(.k-input-inner),
form .k-multiselect.form-control[data-val='true'][data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-multiselect);
}

/* Customized invalid field positioning for NumericTextBox */
form .k-numerictextbox.form-control:invalid,
form .k-numerictextbox.form-control[data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-numerictextbox.form-control.input-validation-error:not(.k-input-inner),
form .k-numerictextbox.form-control[data-val][data-val-required][aria-describedby$='-error']:not(.k-input-inner),
form .k-numerictextbox.form-control.input-validation-error[data-val][data-val-required]:not(.k-input-inner),
form .k-numerictextbox.form-control.input-validation-error[data-val='true'][data-val-required]:not(.k-input-inner),
form .k-numerictextbox.form-control[data-val='true'][data-val-required][aria-invalid='true']:not(.k-input-inner),
form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-invalid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-numerictextbox);
}

/* Customized valid field positioning for DatePicker */
form .k-datepicker.form-control.valid[data-val='true'][data-val-required='true'],
form .k-datepicker.form-control[data-val='true'][data-val-required]:not([style*='display: none']):not(.k-input-inner):not(:placeholder-shown),
form .k-datepicker.form-control[data-val='true'][data-val-required][aria-invalid='false']:not(.k-input-inner),
form .k-datepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-datepicker);
}

/* Customized valid field positioning for DateTimePicker */
form .k-datetimepicker.form-control.valid[data-val='true'][data-val-required='true'],
form .k-datetimepicker.form-control[data-val='true'][data-val-required]:not([style*='display: none']):not(.k-input-inner):not(:placeholder-shown),
form .k-datetimepicker.form-control[data-val='true'][data-val-required][aria-invalid='false']:not(.k-input-inner),
form .k-datetimepicker.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-datetimepicker);
}

/* Customized valid field positioning for DropDownList */
form .k-dropdownlist.form-control.valid[data-val='true'][data-val-required='true'],
form .k-dropdownlist.form-control[data-val='true'][data-val-required]:not([style*='display: none']):not(.k-input-inner):not(:placeholder-shown),
form .k-dropdownlist.form-control[data-val='true'][data-val-required][aria-invalid='false']:not(.k-input-inner),
form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid,
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist);
}

/* Kendo DropDownList valid indicator style */
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    background-image: none;
}

form .k-dropdownlist.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after,
form .k-dropdownlist.arise-kendo-widget-validation.arise-kendo-widget-validation-valid::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-top);
    right: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

/* Customized valid field positioning for DropDownList */
form .k-multiselect.form-control.valid[data-val='true'][data-val-required='true'],
form .k-multiselect.form-control[data-val='true'][data-val-required]:not([style*='display: none']):not(.k-input-inner):not(:placeholder-shown),
form .k-multiselect.form-control[data-val='true'][data-val-required][aria-invalid='false']:not(.k-input-inner),
form .k-multiselect.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-multiselect);
}

/* Customized valid field positioning for DatePicker */
form .k-numerictextbox.form-control.valid[data-val='true'][data-val-required='true'],
form .k-numerictextbox.form-control[data-val='true'][data-val-required]:not([style*='display: none']):not(.k-input-inner):not(:placeholder-shown),
form .k-numerictextbox.form-control[data-val='true'][data-val-required][aria-invalid='false']:not(.k-input-inner),
form .k-numerictextbox.form-control.arise-kendo-widget-validation.arise-kendo-widget-validation-valid {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-numerictextbox);
}

/* Kendo grid inline Editing styles */

.k-grid .k-grid-edit-row .field-validation-error {
    display: block;
    position: initial;
}

.k-grid .k-grid-edit-row .k-tooltip-error {
    color: #dc3545;
    background: transparent;
}

.k-grid .k-grid-edit-row .k-dropdownlist:has(input[data-val-required]),
.k-grid .k-detail-row textarea.form-control[data-val='true'][data-val-required],
.k-widget.form-control[data-val-required][name='Note']:not(.k-valid),
.k-widget.form-control[data-val-required][name='Text']:not(.k-valid),
.k-grid .k-grid-edit-row span.k-maskedtextbox:has(input[data-val-required]):not(.k-disabled),
.k-grid .k-grid-edit-row input[data-val='true'][data-val-required]:not([data-role='datepicker']):not([data-role='dateinput']):not(.k-input-inner):not([type='checkbox']):not([type='radio']) {
    padding-right: var(--arise-validation-padding-right-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-position: var(--arise-validation-icon-position-grid-required);
    background-size: var(--arise-validation-background-size-standard);
}

/* Kendo grid inline Editing Dropdown invalid styles */
.k-grid .k-grid-edit-row .k-dropdownlist.k-invalid:has(input[data-val-required]),
.k-grid .k-grid-edit-row input.form-control.k-invalid:not([data-role='datepicker']):not([type='checkbox']):not([type='radio']),
.k-grid .k-detail-row textarea.form-control.k-invalid[data-val='true'][data-val-required],
.k-grid .k-detail-row textarea.form-control.input-validation-error[data-val='true'][data-val-required],
.k-grid .k-detail-row textarea.form-control[data-val='true'][data-val-required][aria-invalid='true'] {
    /*border-color: #dc3545;*/
    padding-right: var(--arise-validation-padding-right-standard);
    background-image: var(--arise-validation-icon-red);
    background-repeat: var(--arise-validation-background-repeat);
    background-position: var(--arise-validation-icon-position-grid-invalid);
    background-size: var(--arise-validation-background-size-compact);
}
/* Kendo grid inline Editing Dropdown valid styles */
.k-grid .k-grid-edit-row .k-dropdownlist.k-valid:has(input[data-val-required]),
.k-widget.form-control.k-valid[data-val-required][name='Note'],
.k-grid .k-grid-edit-row input.form-control.k-valid[data-val='true'][data-val-required]:not([data-role='datepicker']):not([type='checkbox']):not([type='radio']),
.k-grid .k-grid-edit-row input.form-control.k-valid:not([data-role='datepicker']):not([type='checkbox']):not([type='radio']):not(:placeholder-shown),
.k-grid .k-detail-row textarea.form-control.k-valid[data-val='true'][data-val-required],
.k-grid .k-detail-row textarea.form-control.input-validation-valid[data-val='true'][data-val-required]:not(.input-validation-error):not([aria-invalid='true']) {
    /*border-color: #198754;*/
    background-image: var(--arise-validation-icon-green);
    background-repeat: var(--arise-validation-background-repeat);
    background-position: var(--arise-validation-icon-position-grid-valid);
    background-size: var(--arise-validation-background-size-standard);
}

/* Kendo grid inline Editing Datepicker invalid styles (legacy background icon disabled) */
.k-grid .k-grid-edit-row span.k-datepicker.k-invalid span.k-maskedtextbox {
    background-image: none !important;
}

/* Kendo grid inline Editing Datepicker valid styles (legacy background icon disabled) */
.k-grid .k-grid-edit-row span.k-datepicker.k-valid,
.k-grid .k-grid-edit-row span.k-datepicker.k-valid span.k-maskedtextbox {
    background-image: none !important;
}

/* Kendo grid inline Editing Datepicker required/invalid/valid indicators
   Render indicator on wrapper pseudo-element so it does not overlap with calendar button icon.
*/
.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required]) {
    position: relative;
    overflow: visible;
    padding-right: var(--arise-validation-padding-right-zero);
    background-image: none;
}

.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required]) .k-input-button {
    margin-right: var(--arise-validation-icon-position-kendo-datepicker-caret-offset);
}

.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required])::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-datepicker-indicator-top);
    right: var(--arise-validation-icon-position-kendo-datepicker-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
    display: none;
}

.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required]):not(.k-valid):not(.arise-kendo-widget-validation-valid):not(:has(input[data-val-required][aria-invalid='false'])):not(:has(input[data-val-required][data-arise-valid-state='valid'])):not(:has(input[data-val-required].input-validation-valid)):not(:has(input[data-val-required].valid))::after,
.k-grid .k-grid-edit-row span.k-datepicker.k-invalid:has(input[data-val-required])::after {
    display: block;
    background-image: var(--arise-validation-icon-red);
}

.k-grid .k-grid-edit-row span.k-datepicker.k-valid:has(input[data-val-required])::after,
.k-grid .k-grid-edit-row span.k-datepicker.arise-kendo-widget-validation-valid:has(input[data-val-required])::after,
.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required][aria-invalid='false'])::after,
.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required][data-arise-valid-state='valid'])::after,
.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required].input-validation-valid)::after,
.k-grid .k-grid-edit-row span.k-datepicker:has(input[data-val-required].valid)::after {
    display: block;
    background-image: var(--arise-validation-icon-green);
}

/* position required and valid icons */
.k-grid .k-grid-edit-row .k-dropdownlist.k-valid,
.k-grid .k-grid-edit-row .k-dropdownlist.k-valid:has(input[data-val-required]),
.k-grid .k-grid-edit-row .k-dropdownlist.k-valid:has(.k-input-inner),
.k-grid .k-grid-edit-row input.form-control.k-valid:not([data-role='datepicker']):not([type='checkbox']):not([type='radio']),
.k-grid .k-grid-edit-row .k-dropdownlist:has(input[data-val-required]) {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist);
}
/* position required and valid icons */
.k-grid .k-grid-edit-row .k-dropdownlist.k-invalid,
.k-grid .k-grid-edit-row .form-control.k-invalid:not([type='checkbox']):not([type='radio']),
.k-grid .k-grid-edit-row .k-dropdownlist.k-invalid:has(input[data-val-required]),
.k-grid .k-grid-edit-row .k-dropdownlist:has(input[data-val-required]) {
    padding-right: var(--arise-validation-padding-right-zero);
    background-position: var(--arise-validation-icon-position-kendo-dropdownlist);
}

/* Overwrite kendo styling for tool-tip and icon */
.k-grid.k-widget .k-grid-edit-row .k-tooltip {
    all: unset;
    display: flex;
    margin-bottom: 0.25em;
    color: #dc3545;
}

    .k-grid.k-widget .k-grid-edit-row .k-tooltip .k-i-warning {
        display: none;
    }

        .k-grid.k-widget .k-grid-edit-row .k-tooltip .k-i-warning::before {
            content: none;
        }


/*Kendo Edit Popup Validations Overwrite*/

.k-edit-form-container {
    width: auto;
}

    .k-edit-form-container .k-tooltip,
    .k-edit-form-container .k-callout,
    .k-edit-form-container .k-i-warning {
        all: unset;
        margin-bottom: 0.25em;
        color: #dc3545;
    }

        .k-edit-form-container .k-tooltip.k-tooltip-error > .k-svg-icon {
            display: none;
        }

/* START Generic RadioBool required indicator on span.form-control */
form .input-group.arise-required-input-group > .form-control {
    position: relative;
    padding-right: var(--arise-validation-padding-right-standard);
}

/* Lightweight fallback (no :has support): class-driven states remain strong */
form .input-group.arise-required-input-group.arise-required-input-group-fallback > .form-control {
    --arise-required-input-group-icon: var(--arise-validation-icon-red);
}

form .input-group.arise-required-input-group.arise-required-input-group-fallback.arise-kendo-widget-validation-valid > .form-control {
    --arise-required-input-group-icon: var(--arise-validation-icon-green);
}

form .input-group.arise-required-input-group.arise-required-input-group-fallback.arise-kendo-widget-validation-invalid > .form-control {
    --arise-required-input-group-icon: var(--arise-validation-icon-red);
}

/* Modern browser enhancement: prefer checked-state icon coloring when :has is supported */
@supports selector(:has(*)) {
    form .input-group.arise-required-input-group:has(input[type='radio'][data-val-required]):not(:has(input[type='radio']:checked)) > .form-control {
        --arise-required-input-group-icon: var(--arise-validation-icon-red);
    }

    form .input-group.arise-required-input-group:has(input[type='radio']:checked) > .form-control {
        --arise-required-input-group-icon: var(--arise-validation-icon-green);
    }
}

form .input-group.arise-required-input-group > .form-control::after {
    content: "";
    position: absolute;
    top: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-top);
    right: var(--arise-validation-icon-position-kendo-dropdownlist-indicator-right);
    width: var(--arise-validation-icon-dimension-standard);
    height: var(--arise-validation-icon-dimension-standard);
    background-image: var(--arise-required-input-group-icon, var(--arise-validation-icon-red));
    background-repeat: var(--arise-validation-background-repeat);
    background-size: contain;
    pointer-events: none;
}

/* END Generic RadioBool required indicator on span.form-control */