@keyframes spin {
  0% {
    transform: rotateZ(0deg);
  }

  100% {
    transform: rotateZ(360deg);
  }
}

.autocomplete-select {
  position: relative;



  &.text-input-icon-left{
    i{
      position: absolute;
      top: 50%;
      left: 15px;
      z-index: 4;
      transform: translateY(-50%);
    }
    input{
      padding-left: 40px;
    }
    .placeholder, .selected-value-wrapper{
      padding-left: 23px;
    }
  }


  &.has-go-button {
    input {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-right: none;
    }

    .autocomplete-value-display {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-right: none;
    }
  }

  .autocomplete-select-list {
    background-color: white;
    overflow-x: hidden;
    overflow-y: auto;

    .dd-list-item {
      padding: $spacing-small;
      text-align: left;
      cursor: pointer;
      border: 1px solid transparent;
      transition: all 0.1s;

      &:hover {
        background-color: $gray-light;
      }

      &.selected {
        border: 1px solid $color-info;
        padding-left: calc(#{$spacing-small} * 1.2);
      }

      &.in-selected-list {
        background-color: $color-positive;
        color: $white;
      }
    }

    .dd-list-item-no-select {
      text-align: left;
      padding: $spacing-small;
      opacity: 0.5;
    }
  }

  .multi-select-item {
    cursor: pointer;
    display: inline-block;
    background-color: $gray-medium;
    color: $white;
    border-radius: 0;
    padding: calc(#{$spacing-xsmall} / 2) $spacing-xsmall;
    line-height: normal;
    margin-right: calc(#{$field-padding-horizontal} / 5);
    margin-bottom: calc(#{$field-padding-horizontal} / 5);

    i {
      font-size: 9pt;
      margin-left: $spacing-xsmall;
    }
  }

  .drop-down-controls {
    position: relative;
  }

  .autocomplete-select-list-wrapper {
    width: 100%;
    position: relative;

    .spinner {
      animation: spin 0.3s forwards infinite linear;
      position: absolute;
      right: $spacing-small;
      top: calc(#{$spacing-small}*0.75);
      z-index: 2;
    }

    .autocomplete-select-list {
      box-sizing: border-box;
      width: 100%;
      position: absolute;
      border-top: none;
      box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
      z-index: 3;

      &.on-top {
        transform: translateY(-100%);
      }
    }
  }

  .placeholder {
    opacity: 0.22;
    pointer-events: none;
    overflow-x: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;

    .placeholder-value {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
    }
  }

  .btn {
    padding: $spacing-xsmall $spacing-small;
    padding-bottom: $spacing-xsmall;
    box-shadow: none;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    position: relative;
    z-index: 5;
    margin: 0;
    box-shadow: none;
    cursor: pointer;
  }

  .autocomplete-value-display {
    padding: calc(#{$field-padding-vertical} - 1px) $field-padding-horizontal;
    background-color: $white;
    box-sizing: border-box;
    width: 100%;
    border: 1px solid $gray-light;
    border-radius: 0;
    text-align: left;
    position: relative;
    cursor: text;
    overflow-x: hidden;
  }

  &.has-multiple-options {
    .autocomplete-value-display {
      padding: 0.45em;
      padding-bottom: 0.3em;
    }
  }

  .autocomplete-select-list-wrapper.multi-select input{
      position: absolute;
    }

  input {
    position: relative;
    z-index: 3;
  }

  .clear-selected {
    cursor: pointer;
    position: absolute;
    right: 1rem;
    top: 0;
    height: 100%;

    i {
      pointer-events: none;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
    }
  }

  &.disabled {
    .autocomplete-value-display {
      @extend %input-disabled;
    }
    pointer-events: none;
  }
}