/*
File for mapping Bootstrap v5.3 validation styles to ASP.NET validation classes.
Bootstrap class => ASP.NET class
.is-valid       => .valid
.valid-feedback => .field-validation-valid
.is-invalid     => .input-validation-error
.valid-feedback => .field-validation-error
*/

/* Valid */
.valid~.field-validation-valid {
  display: block;
}

.form-control.valid {
  border-color: var(--bs-form-valid-border-color);
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-control.valid:focus {
  border-color: var(--bs-form-valid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
}

textarea.form-control.valid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.form-select.valid {
  border-color: var(--bs-form-valid-border-color);
}

.form-select.valid:not([multiple]):not([size]),
.form-select.valid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  padding-right: 4.125rem;
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-select.valid:focus {
  border-color: var(--bs-form-valid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
}

.form-control-color.valid {
  width: calc(3rem + calc(1.5em + 0.75rem));
}

.form-check-input.valid {
  border-color: var(--bs-form-valid-border-color);
}

.form-check-input.valid:checked {
  background-color: var(--bs-form-valid-color);
}

.form-check-input.valid:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
}

.form-check-input.valid~.form-check-label {
  color: var(--bs-form-valid-color);
}

.form-check-inline .form-check-input~.field-validation-valid {
  margin-left: 0.5em;
}

.input-group>.form-control:not(:focus).valid,
.input-group>.form-select:not(:focus).valid,
.input-group>.form-floating:not(:focus-within).valid {
  z-index: 3;
}

/* Invalid */
.input-validation-error~.field-validation-error {
  display: block;
}

.form-control.input-validation-error {
  border-color: var(--bs-form-invalid-border-color);
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-control.input-validation-error:focus {
  border-color: var(--bs-form-invalid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}

textarea.form-control.input-validation-error {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.form-select.input-validation-error {
  border-color: var(--bs-form-invalid-border-color);
}

.form-select.input-validation-error:not([multiple]):not([size]),
.form-select.input-validation-error:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  padding-right: 4.125rem;
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-select.input-validation-error:focus {
  border-color: var(--bs-form-invalid-border-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}

.form-control-color.input-validation-error {
  width: calc(3rem + calc(1.5em + 0.75rem));
}

.form-check-input.input-validation-error {
  border-color: var(--bs-form-invalid-border-color);
}

.form-check-input.input-validation-error:checked {
  background-color: var(--bs-form-invalid-color);
}

.form-check-input.input-validation-error:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
}

.form-check-input.input-validation-error~.form-check-label {
  color: var(--bs-form-invalid-color);
}

.form-check-inline .form-check-input~.field-validation-error {
  margin-left: 0.5em;
}

.input-group>.form-control:not(:focus).input-validation-error,
.input-group>.form-select:not(:focus).input-validation-error,
.input-group>.form-floating:not(:focus-within).input-validation-error {
  z-index: 4;
}