// stylelint-disable at-rule-empty-line-before
// stylelint-disable scss/at-extend-no-missing-placeholder
// Forms

form {
  padding: 0;
  margin: 0;
  display: inline;
}

input {
  &[type=text]:not(.form-control),
  &[type=password]:not(.form-control),
  &[type=number]:not(.form-control) {
    display: inline-block;
    padding: $input-padding-y $input-padding-x;
    font-family: $input-font-family;
    @include font-size($input-font-size);
    font-weight: $input-font-weight;
    line-height: $input-line-height;
    color: $input-color;
    background-color: $input-bg;
    background-clip: padding-box;
    border: $input-border-width solid $input-border-color;
    appearance: none;
    @include border-radius($input-border-radius, 0);
    @include box-shadow($input-box-shadow);
    @include transition($input-transition);

    &:focus {
      color: $input-focus-color;
      background-color: $input-focus-bg;
      border-color: $input-focus-border-color;
      outline: 0;

      @if $enable-shadows {
        @include box-shadow($input-box-shadow, $input-focus-box-shadow);
      } @else {
        box-shadow: $input-focus-box-shadow;
      }
    }

    // &::placeholder {
    //   color: $input-placeholder-color;
    //   opacity: 1;
    // }
  }

  &[type=checkbox]:not(.form-check-input:not(.form-check-input)),
  &[type=radio]:not(.form-check-input:not(.form-check-input)) {
    width: $form-check-input-width;
    height: $form-check-input-width;
    margin-top: ($line-height-base - $form-check-input-width) * .75;
    vertical-align: top;
    background-color: $form-check-input-bg;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border: $form-check-input-border;
    appearance: none;
    color-adjust: exact; // Keep themed appearance for print

    &:active {
      filter: $form-check-input-active-filter;
    }

    &:focus {
      border-color: $form-check-input-focus-border;
      outline: 0;
      box-shadow: $form-check-input-focus-box-shadow;
    }

    &:checked {
      background-color: $form-check-input-checked-bg-color;
      border-color: $form-check-input-checked-border-color;
    }

    &:disabled {
      pointer-events: none;
      filter: none;
      opacity: $form-check-input-disabled-opacity;
    }
  }

  &[type=checkbox]:not(.form-check-input) {
    @include border-radius($form-check-input-border-radius);

    &:checked {
      @if $enable-gradients {
        background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient);
      } @else {
        background-image: escape-svg($form-check-input-checked-bg-image);
      }
    }
  }

  &[type=radio]:not(.form-check-input) {
    border-radius: $form-check-radio-border-radius;

    &:checked {
      @if $enable-gradients {
        background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient);
      } @else {
        background-image: escape-svg($form-check-radio-checked-bg-image);
      }
    }
  }
}

select:not(.form-select) {
  @extend .form-select;
}

.form-select,
select {
  option:checked {
    color: $body-color;
    background-color: $pma-selected-bg;
  }
}

textarea {
  background-color: $input-bg;
  border: $input-border-width solid $input-border-color;

  &:focus {
    color: $input-focus-color;
    background-color: $input-focus-bg;
    border-color: $input-focus-border-color;
    outline: 0;

    @if $enable-shadows {
      @include box-shadow($input-box-shadow, $input-focus-box-shadow);
    } @else {
      // Avoid using mixin so we can pass custom focus shadow properly
      box-shadow: $input-focus-box-shadow;
    }
  }

  &.char {
    margin: 6px;
  }

  &.charField {
    width: 95%;
  }
}
