.fleet-checkbox {
  @include clearfix;
  position: relative;
  display: inline-block;

  &__input {
    opacity: 0;
    width: 16px;
    height: 16px;
    margin: 2px;
    transform: translateY(3px);

    &:focus + .fleet-checkbox__tick {
      &::after {
        border-color: $core-vibrant-blue;
      }
    }

    &:checked + .fleet-checkbox__tick {
      &::after {
        background-color: $core-vibrant-blue;
        border: solid 2px $core-vibrant-blue;
      }

      &::before {
        @include position(absolute, 50% null null 50%);
        transform: rotate(45deg);
        box-sizing: border-box;
        display: block;
        width: 7px;
        height: 13px;
        margin: -8px 0 0 -3px;
        border: 2px solid $core-white;
        border-top: 0;
        border-left: 0;
        content: "";
      }
    }
  }

  &__tick {
    @include size(20px);
    @include position(absolute, 50% null null 0);
    transform: translateY(-8px);
    display: inline-block;

    &::after {
      @include size(20px);
      transition: border 75ms ease-in-out, background 75ms ease-in-out;
      border-radius: $border-radius;
      border: solid 2px $ui-fleet-black-25;
      content: "";
      box-sizing: border-box;
      display: block;
      background-color: $core-white;
      visibility: visible;
    }

    &--disabled {
      &::after {
        background-color: $ui-fleet-black-25;
      }
    }

    &--indeterminate {
      &::after {
        background-color: $core-vibrant-blue;
        border: solid 1px $core-vibrant-blue;
      }

      &::before {
        @include position(absolute, 50% null null 50%);
        box-sizing: border-box;
        display: block;
        width: 10px;
        margin: -1px 0 0 -5px;
        border: 2px solid $core-white;
        border-top: 0;
        border-left: 0;
        content: "";
      }
    }
  }

  &__label {
    font-size: $x-small;
    padding-left: $pad-small;
    display: inherit;
  }
}
