.input-icon-field {
  position: relative;

  &__icon {
    position: absolute;
    left: 12px;
    top: 0;
    height: 36px;
    width: 16px;
    flex-wrap: wrap;
    align-content: center;
    z-index: 1;
    color: $core-fleet-black;

    &--active {
      color: $ui-fleet-black-75-down;
    }

    &--error {
      border: 1px solid $core-vibrant-red;
      box-sizing: border-box;
      border-radius: $border-radius;
    }
  }

  // Relative input wrapper with absolute icon corrects icon alignment on all browsers
  &__input-wrapper {
    position: relative;
    height: 36px;
    display: flex;
    align-items: center;
  }

  &__input {
    border: 1px solid $ui-fleet-black-10;
    background-color: $core-fleet-white;
    border-radius: $border-radius;
    padding: 9.5px 12px 9.5px $pad-medium;
    font-size: $x-small;
    text-indent: 1px;
    position: relative;
    width: 100%;
    box-sizing: border-box;
    color: $core-fleet-black;
    font-weight: $regular;
    transition: border-color 100ms;

    &.input-with-icon {
      padding-left: 36px;
    }

    ::placeholder {
      color: $ui-fleet-black-50;
    }

    &:focus {
      outline: none;
    }

    &:disabled {
      color: $ui-fleet-black-50;
      cursor: not-allowed;
    }

    &--error {
      color: $core-vibrant-red;
      border: 1px solid $core-vibrant-red;
      box-sizing: border-box;
      border-radius: $border-radius;
    }
  }

  &__input-wrapper:not(&__input-wrapper--disabled) {
    .input-icon-field__input:hover {
      border: 1px solid $ui-fleet-black-50;

      &:focus {
        border: 1px solid $core-fleet-black;
      }
    }

    // Icon color matches border color on hover
    .input-icon-field__icon {
      svg {
        path {
          fill: $ui-fleet-black-75-over;
        }
      }
    }
  }

  &__input-wrapper {
    .input-icon-field__input:focus {
      border: 1px solid $core-fleet-black;

      // Icon color matches border color on focus
      + .input-icon-field__icon {
        svg {
          path {
            fill: $core-fleet-black;
          }
        }
      }
    }
  }

  &__label {
    display: block;
    font-size: $x-small;
    font-weight: $bold;
    color: $core-fleet-black;

    &[data-has-tooltip="true"] {
      margin-bottom: $pad-small;
    }

    &--disabled {
      color: $ui-fleet-black-50;
    }
  }

  &__errors {
    color: $core-vibrant-red;
  }

  /* removes the 'X' from IE input type=search */
  input[type="search"]::-ms-clear {
    display: none;
    width: 0;
    height: 0;
  }
  input[type="search"]::-ms-reveal {
    display: none;
    width: 0;
    height: 0;
  }

  /* removes the 'X' from Chrome input type=search */
  input[type="search"]::-webkit-search-decoration,
  input[type="search"]::-webkit-search-cancel-button,
  input[type="search"]::-webkit-search-results-button,
  input[type="search"]::-webkit-search-results-decoration {
    display: none;
  }

  &__clear-button {
    position: absolute;
    right: 12px;
    top: 0;
    height: 36px;
    width: 16px;
    flex-wrap: wrap;
    align-content: center;
    z-index: 1;
  }
}
