fieldset {
  border: $base-border;
  margin: 0 0 $small-spacing;
  padding: $base-spacing;
}

input,
label,
select {
  display: block;
  font-family: $base-font-family;
  font-size: $base-font-size;
}

label {
  font-weight: 600;
  margin-bottom: $small-spacing / 2;

  &.required::after {
    content: "*";
  }

  abbr {
    display: none;
  }
}

#{$all-text-inputs},
select{
  background-color: $base-background-color;
  border: $base-border;
  box-sizing: border-box;
  font-family: $base-font-family;
  font-size: $base-font-size;
  margin-bottom: $small-spacing;
  padding: $small-spacing;
  transition: border-color $base-duration $base-timing;
  width: 100%;
  color: inherit;

  &:hover {
    border-color: shade($base-border-color, 20%);
  }

  &:focus {
    border-color: $action-color;
    box-shadow: $form-box-shadow-focus;
    outline: none;
  }

  &:disabled {
    background-color: shade($base-background-color, 5%);
    cursor: not-allowed;

    &:hover {
      border: $base-border;
    }
  }

  ::-webkit-input-placeholder {
    color: rgba($white, 0.3);
  }

  ::-moz-placeholder {
    color: rgba($white, 0.3);
  }

  :-ms-input-placeholder {
    color: rgba($white, 0.3);
  }

  ::-ms-input-placeholder {
    color: rgba($white, 0.3);
  }

  ::placeholder {
    color: rgba($white, 0.3);
  }
}

textarea {
  resize: vertical;
}

input[type="search"] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

input[type="checkbox"],
input[type="radio"] {
  display: inline;
  margin-right: $small-spacing / 2;

  + label {
    display: inline-block;
  }
}

input[type="file"] {
  margin-bottom: $small-spacing;
  width: 100%;
}

select {
  margin-bottom: $base-spacing;
  max-width: 100%;
  width: auto;
  background-color: white;
  color: black;
}
