/* stylelint-disable selector-no-qualifying-type */

/* Textual form controls */

.form-control {
  display: block;
  width: 100%;
  height: $input-height;
  padding: $input-padding-y $input-padding-x;
  font-family: $input-font-family;
  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;
  border-radius: $input-border-radius 0;
  box-shadow: $input-box-shadow;
  transition: $input-transition;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"].form-control {
  appearance: none;
}

select.form-control {
  &:-moz-focusring {
      color: transparent;
      text-shadow: 0 0 0 $input-color;
  }

  &:focus::-ms-value {
      color: $input-color;
      background-color: $input-bg;
  }
}

.form-control-file,
.form-control-range {
  display: block;
  width: 100%;
}

/* Labels */

.col-form-label {
  padding-top: add($input-padding-y, $input-border-width);
  padding-bottom: add($input-padding-y, $input-border-width);
  margin-bottom: 0;
  font-size: inherit;
  line-height: $input-line-height;
}

.col-form-label-lg {
  padding-top: add($input-padding-y-lg, $input-border-width);
  padding-bottom: add($input-padding-y-lg, $input-border-width);
  font-size: $input-font-size-lg;
  line-height: $input-line-height-lg;
}

.col-form-label-sm {
  padding-top: add($input-padding-y-sm, $input-border-width);
  padding-bottom: add($input-padding-y-sm, $input-border-width);
  font-size: $input-font-size-sm;
  line-height: $input-line-height-sm;
}

/* Readonly controls as plain text */

.form-control-plaintext {
  display: block;
  width: 100%;
  padding: $input-padding-y 0;
  margin-bottom: 0;
  font-size: $input-font-size;
  line-height: $input-line-height;
  color: $input-plaintext-color;
  background-color: transparent;
  border: solid transparent;
  border-width: $input-border-width 0;
}

.form-control-plaintext.form-control-sm,
.form-control-plaintext.form-control-lg {
  padding-right: 0;
  padding-left: 0;
}

/* Form control sizing */

.form-control-sm {
  height: $input-height-sm;
  padding: $input-padding-y-sm $input-padding-x-sm;
  font-size: $input-font-size-sm;
  line-height: $input-line-height-sm;
  border-radius: $input-border-radius-sm;
}

.form-control-lg {
  height: $input-height-lg;
  padding: $input-padding-y-lg $input-padding-x-lg;
  font-size: $input-font-size-lg;
  line-height: $input-line-height-lg;
  border-radius: $input-border-radius-lg;
}

select.form-control[size],
select.form-control[multiple] {
  height: auto;
}

textarea.form-control {
  height: auto;
}

/* Form groups */

.form-group {
  margin-bottom: $form-group-margin-bottom;
}

.form-text {
  display: block;
  margin-top: $form-text-margin-top;
}

/* Form grid */

.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -$form-grid-gutter-width * .5;
  margin-left: -$form-grid-gutter-width * .5;
}

/* Checkboxes and radios */

.form-check {
  position: relative;
  display: block;
  padding-left: $form-check-input-gutter;
}

.form-check-input {
  position: absolute;
  margin-top: $form-check-input-margin-y;
  margin-left: -$form-check-input-gutter;
}

.form-check-input[disabled] ~ .form-check-label,
.form-check-input:disabled ~ .form-check-label {
  color: $text-muted;
}

.form-check-label {
  margin-bottom: 0;
}

.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: $form-check-inline-margin-x;
}

.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: $form-check-inline-input-margin-x;
  margin-left: 0;
}

/* Form validation */

/* Include compiled styles for form validation states here */

/* Inline forms */

.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.form-inline .form-check {
  width: 100%;
}

@media (min-width: $sm) {
  .form-inline label {
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 0;
  }

  .form-inline .form-group {
      display: flex;
      flex: 0 0 auto;
      flex-flow: row wrap;
      align-items: center;
      margin-bottom: 0;
  }

  .form-inline .form-control {
      display: inline-block;
      width: auto;
      vertical-align: middle;
  }

  .form-inline .form-control-plaintext {
      display: inline-block;
  }

  .form-inline .input-group,
  .form-inline .custom-select {
      width: auto;
  }

  .form-inline .form-check {
      display: flex;
      align-items: center;
      justify-content: center;
      width: auto;
      padding-left: 0;
  }

  .form-inline .form-check .form-check-input {
      position: relative;
      flex-shrink: 0;
      margin-top: 0;
      margin-right: $form-check-input-margin-x;
      margin-left: 0;
  }

  .form-inline .custom-control {
      align-items: center;
      justify-content: center;
  }

  .form-inline .custom-control-label {
      margin-bottom: 0;
  }
}
