.form-floating {
  // stylelint-disable-next-line selector-no-qualifying-type
  > .form-select:not(:focus):has(option[value=""]:checked) {
    text-indent: 100%;
    white-space: nowrap;

    ~ label {
      opacity: 1;
      transform: none;
    }
  }
  > .form-control-sm {
    height: $form-floating-height-sm;
    min-height: $form-floating-height-sm;
    padding: $form-floating-padding-y-sm $form-floating-padding-x-sm;
    line-height: $form-floating-line-height;
    @include border-radius($form-floating-input-border-radius-sm);

    &:focus,
    &:not(:placeholder-shown) {
      padding-top: $form-floating-input-padding-t-sm;
      padding-bottom: $form-floating-input-padding-b-sm;
    }

    // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
    &:-webkit-autofill {
      ~ label {
        transform: $form-floating-label-transform;
      }
      padding-top: $form-floating-input-padding-t-sm;
      padding-bottom: $form-floating-input-padding-b-sm;
    }

    &.form-control:focus,
    &.form-control:not(:placeholder-shown),
    &.form-control-plaintext,
    &.form-select {
      ~ label {
        transform: $form-floating-label-transform;
      }
    }

    ~ label {
      padding: $form-floating-padding-y-sm $form-floating-padding-x-sm;
      font-size: $form-floating-label-sm-font-size;
    }
  }

  > .form-select-sm {
    height: $form-floating-height-sm;
    min-height: $form-floating-height-sm;
    padding-top: $form-floating-input-padding-t-sm;
    padding-bottom: $form-floating-input-padding-b-sm;
    padding-left: $form-floating-padding-x-sm;
    line-height: $form-floating-line-height;
    @include border-radius($form-floating-input-border-radius-sm);

    ~ label {
      padding: $form-floating-padding-y-sm $form-floating-padding-x-sm;
      font-size: $form-floating-label-sm-font-size;
      transform: $form-floating-label-transform;
    }
  }
}
