/* stylelint-disable no-duplicate-selectors, selector-no-qualifying-type, no-descending-specificity */

$default-border-color: $gray-600;

.form-select {
  padding-top: $input-padding-y-lg;
  padding-bottom: $input-padding-y-lg;
  padding-left: $input-padding-x-lg;
  font-size: $form-font-size-lg;
  border-color: $default-border-color;
  &:focus-visible {
    border-color: $default-border-color;
    box-shadow: none;
    @include form-focus-ring();
    &.is-valid {
      outline-color: $success;
      &:focus {
        box-shadow: none;
        border-color: $default-border-color;
      }
    }
    &.is-invalid {
      outline-color: $danger;
      &:focus {
        box-shadow: none;
        border-color: $default-border-color;
      }
    }
  }
  &:focus {
    box-shadow: none;
    border-color: $default-border-color;
  }
  &.is-valid,
  &.is-invalid {
    &:focus {
      box-shadow: none;
    }
  }
}

.form-check-input {
  border-color: $primary;
  &:focus-visible {
    &[type="radio"] {
      border-radius: 50%;
    }
  }
  &:focus {
    border-color: $primary;
    box-shadow: none;
  }
  &:focus-visible {
    @include form-focus-ring(1px);
  }
}

.form-control {
  min-height: calc(1.5em + 1rem + 2px);
  padding: $input-padding-y-lg $input-padding-x-lg;
  font-size: $form-font-size-lg;
  border-radius: 0.3rem;
  border-color: $default-border-color;
  &::file-selector-button {
    padding: $input-padding-y-lg $input-padding-x-lg;
    margin: (-$input-padding-y-lg) $input-padding-x-lg (-$input-padding-y-lg)
      (-$input-padding-x-lg);
  }
  &:focus:focus-visible {
    border-color: $default-border-color;
    @include form-focus-ring();
  }
  &.is-valid,
  &.is-invalid {
    &:focus {
      box-shadow: none;
    }
  }
  &.is-valid {
    &:focus:focus-visible {
      transition: none;
      border-color: $default-border-color;
      @include form-focus-ring($outline-color: $success);
    }
  }
  &.is-invalid {
    &:focus:focus-visible {
      transition: none;
      border-color: $default-border-color;
      @include form-focus-ring($outline-color: $danger);
    }
  }
}
.form-check:not(.form-switch) {
  padding-left: 1.8rem;
  .form-check-input {
    margin-left: -1.8rem;
  }
  .form-check-input {
    width: $form-check-input-size-lg;
    height: $form-check-input-size-lg;
    margin-top: 0.15rem;
  }
}

@include media-breakpoint-up(md) {
  .form-check:not(.form-switch) {
    padding-left: 1.5rem;
    .form-check-input {
      margin-left: -1.5rem;
    }
    .form-check-input {
      width: $form-check-input-width;
      height: $form-check-input-width;
      margin-top: 0.25rem;
    }
  }

  .form-select {
    padding: $input-padding-y 2.25rem $input-padding-y $input-padding-x;
    font-size: $form-font-size;
  }

  .form-control {
    min-height: 0;
    padding: $input-padding-y $input-padding-x;
    font-size: $form-font-size;
    border-radius: 0.25rem;
    &::file-selector-button {
      padding: $input-padding-y $input-padding-x;
      margin: (-$input-padding-y) $input-padding-x (-$input-padding-y)
        (-$input-padding-x);
    }
  }
}

textarea.form-control,
.form-control {
  &.is-invalid {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 4C7.46459 4 7.04623 4.46229 7.0995 4.99504L7.45025 8.50248C7.47849 8.78492 7.71616 9 8 9C8.28384 9 8.52151 8.78492 8.54975 8.50248L8.9005 4.99504C8.95377 4.46228 8.53541 4 8 4ZM8.00154 10C7.44926 10 7.00154 10.4477 7.00154 11C7.00154 11.5523 7.44926 12 8.00154 12C8.55383 12 9.00154 11.5523 9.00154 11C9.00154 10.4477 8.55383 10 8.00154 10Z' fill='%23A51F2C'/%3E%3C/svg%3E%0A");
  }
  &.is-valid {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM12.0303 4.96967C11.7374 4.67678 11.2626 4.67678 10.9697 4.96967C10.9626 4.97674 10.9559 4.98424 10.9498 4.9921L7.4774 9.41674L5.38388 7.32322C5.09098 7.03033 4.61611 7.03033 4.32322 7.32322C4.03032 7.61612 4.03032 8.09099 4.32322 8.38388L6.96966 11.0303C7.26256 11.3232 7.73743 11.3232 8.03032 11.0303C8.03685 11.0238 8.043 11.0169 8.04876 11.0097L12.041 6.01947C12.3232 5.72582 12.3196 5.25897 12.0303 4.96967Z' fill='%2328A745'/%3E%3C/svg%3E%0A");
  }
}

select.form-select:not([multiple]):not([size]) {
  &.is-invalid {
    background-image:
      url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E"),
      url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM8 4C7.46459 4 7.04623 4.46229 7.0995 4.99504L7.45025 8.50248C7.47849 8.78492 7.71616 9 8 9C8.28384 9 8.52151 8.78492 8.54975 8.50248L8.9005 4.99504C8.95377 4.46228 8.53541 4 8 4ZM8.00154 10C7.44926 10 7.00154 10.4477 7.00154 11C7.00154 11.5523 7.44926 12 8.00154 12C8.55383 12 9.00154 11.5523 9.00154 11C9.00154 10.4477 8.55383 10 8.00154 10Z' fill='%23A51F2C'/%3E%3C/svg%3E%0A");
  }
  &.is-valid {
    background-image:
      url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E"),
      url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM12.0303 4.96967C11.7374 4.67678 11.2626 4.67678 10.9697 4.96967C10.9626 4.97674 10.9559 4.98424 10.9498 4.9921L7.4774 9.41674L5.38388 7.32322C5.09098 7.03033 4.61611 7.03033 4.32322 7.32322C4.03032 7.61612 4.03032 8.09099 4.32322 8.38388L6.96966 11.0303C7.26256 11.3232 7.73743 11.3232 8.03032 11.0303C8.03685 11.0238 8.043 11.0169 8.04876 11.0097L12.041 6.01947C12.3232 5.72582 12.3196 5.25897 12.0303 4.96967Z' fill='%2328A745'/%3E%3C/svg%3E%0A");
  }
}
