.chosen-select {
  width: 100%;
}

.chosen-select-deselect {
  width: 100%;
}

.chosen-container {
  display: inline-block;
  position: relative;
  width: 100% !important;
  font-size: 1rem;
  text-align: left;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;

  .chosen-drop {
    background: #fff;
    border: 1px solid var(--primary);
    border-bottom-right-radius: .25rem;
    border-bottom-left-radius: .25rem;
    margin-top: -1px;
    position: absolute;
    top: 100%;
    left: -9000px;
    z-index: 1060;
  }

  .chosen-results {
    margin: 0;
    position: relative;
    max-height: 15rem;
    padding: .5rem 0 0 0;
    color: #6c757d;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;

    li {
      display: none;
      line-height: 1.5;
      list-style: none;
      margin: 0;
      padding: .25rem .25rem .25rem 1.5rem;

      em {
        font-style: normal;
        color: #6c757d;
      }
    }

    li.group-result {
      display: list-item;
      cursor: default;
      padding-left: .75rem;
      color: #adb5bd;
      font-weight: 400;
      text-transform: uppercase;
    }

    li.group-option {
      padding-left: 1.5rem;
    }

    li.active-result {
      cursor: pointer;
      display: list-item;
    }

    li.result-selected {
      color: #007bff;
      font-weight: 600;

      &:before {
        display: inline-block;
        position: relative;
        top: .3rem;
        width: 1.25rem;
        height: 1.25rem;
        margin-left: -1.25rem;
        content: "";
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23495057' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
        background-size: 1.25rem 1.25rem;
        background-position: center center;
        background-repeat: no-repeat;
      }
    }

    li.highlighted {
      background-color: #007bff;
      background-image: none;
      color: #fff;

      &:before {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
      }

      em {
        background: 0 0;
        color: rgba(255, 255, 255, .8);
      }
    }

    li.disabled-result {
      display: list-item;
      color: #ced4da;
    }

    .no-results {
      display: list-item;
      padding: .25rem 0 1rem 1.065rem;
      color: #dc3545;
    }
  }

  .chosen-results-scroll {
    background: #fff;
    margin: 0 .25rem;
    position: absolute;
    text-align: center;
    width: 20rem;
    z-index: 1;

    span {
      display: inline-block;
      height: 1.5;
      text-indent: -5000px;
      width: .5rem;
    }
  }

  &:valid {
    .chosen-choices {
      border-color: #28a745;
    }

    .chosen-drop {
      border-color: #28a745;
    }

    .chosen-single {
      border-color: #28a745;
    }
  }

  &:invalid {
    .chosen-choices {
      border-color: #dc3545;
    }

    .chosen-drop {
      border-color: #dc3545;
    }

    .chosen-single {
      border-color: #dc3545;
    }
  }
}

.chosen-container.chosen-with-drop {
  .chosen-drop {
    left: 0;
    right: 0;
  }
}

.chosen-container-single {
  .chosen-single {
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #bbb;
    color: #6c757d;
    display: block;
    height: 33.5px;
    overflow: hidden;
    line-height: 32px;
    padding: 0 0 0 .50rem;
    position: relative;
    text-decoration: none;
    white-space: nowrap;
    border-radius: 5px;

    abbr {
      display: inline-block;
      position: absolute;
      top: .325rem;
      right: 2rem;
      width: 2rem;
      height: 1.5rem;
      cursor: pointer;
      background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23dc3545' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
      background-size: 1.5rem 1.5rem;
      background-position: center center;
      background-repeat: no-repeat;
      background-color: #fff;
      box-shadow: 4px 0 16px 16px #fff;

      &:hover {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23921925' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
      }
    }

    span {
      display: block;
      margin-right: 1.5rem;
      text-overflow: ellipsis;
    }

    div {
      display: block;
      position: absolute;
      top: 0;
      right: 0;
      width: 2rem;
      height: 100%;
      padding-left: .5rem;
      background-color: #fff;

      &:after {
        display: inline-block;
        position: relative;
        top: .125rem;
        left: -1rem;
        width: 2rem;
        height: 2rem;
        content: "";
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23adb5bd' d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z'/%3E%3C/svg%3E");
        background-size: 2rem 2rem;
        background-position: center center;
        background-repeat: no-repeat;
      }
    }

    &:not(.chosen-single-with-deselect) {
      div {
        &:after {
          background-color: #fff;
          box-shadow: 4px 0 16px 16px #fff;
        }
      }
    }
  }

  .chosen-single.chosen-disabled {
    .chosen-single {
      abbr {
        &:hover {
          background-position: right 2px;
        }
      }
    }
  }

  .chosen-default {
    color: #adb5bd;
  }

  a {
    &:not([href]) {
      &:not([tabindex]) {
        color: #6c757d !important;
      }

      &:not([tabindex]).chosen-single {
        &:not(.chosen-default) {
          color: #6c757d !important;
        }
      }
    }
  }

  .chosen-search-input {
    border: none;
  }

  .chosen-search {
    margin: 0;
    padding: .5rem .5rem 0 .5rem;
    position: relative;
    white-space: nowrap;
    z-index: 1000;

    &:after {
      display: inline-block;
      position: relative;
      top: .365rem;
      left: -1.75rem;
      width: 1.25rem;
      height: 1.25rem;
      content: "";
      background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23adb5bd' d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
      background-size: 1.25rem 1.25rem;
      background-position: center center;
      background-repeat: no-repeat;
    }

    input[type=text] {
      background-color: #f8f9fa;
      border: 1px solid #ced4da;
      outline: 0;
      border-top-left-radius: .25rem;
      border-top-right-radius: .25rem;
      border-bottom-right-radius: .25rem;
      border-bottom-left-radius: .25rem;
      padding: .25rem 1rem .25rem .5rem;
      width: 100%;
    }
  }

  .chosen-drop {
    margin-top: -1px;
    border-bottom-right-radius: .25rem;
    border-bottom-left-radius: .25rem;
    background-clip: padding-box;
  }
}

.chosen-container-single-nosearch {
  .chosen-search {
    display: none;
  }
}

.chosen-container-multi {
  .chosen-choices {
    background-color: #fff;
    border: 1px solid #ced4da;
    border-top-left-radius: .25rem;
    border-top-right-radius: .25rem;
    border-bottom-right-radius: .25rem;
    border-bottom-left-radius: .25rem;
    cursor: text;
    height: auto !important;
    margin: 0;
    padding: .175rem;
    overflow: hidden;
    position: relative;

    li {
      float: left;
      list-style: none;
    }

    .search-field {
      margin: 0;
      padding: 0;
      white-space: nowrap;

      input[type=text] {
        width: 100% !important;
        margin: 0;
        padding: .175rem .175rem .175rem .5rem;
        border: 0 !important;
        background: 0 0 !important;
        color: #6c757d;
        outline: 0;
      }

      .default {
        color: #ced4da;
      }
    }

    .search-choice {
      background-clip: padding-box;
      position: relative;
      max-width: 320px;
      margin: .175rem .25rem;
      padding: .25rem 1.5rem .25rem .25rem;
      border: 1px solid #ced4da;
      background-color: #f8f9fa;
      border-top-left-radius: .25rem;
      border-top-right-radius: .25rem;
      border-bottom-right-radius: .25rem;
      border-bottom-left-radius: .25rem;
      cursor: default;
      font-size: .875rem;
      line-height: 1;
      color: #6c757d;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;

      .search-choice-close {
        display: inline-block;
        position: absolute;
        top: .2rem;
        right: .125rem;
        width: 1rem;
        height: 1rem;
        cursor: pointer;
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23dc3545' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
        background-size: 1rem 1rem;
        background-position: center center;
        background-repeat: no-repeat;

        &:hover {
          background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23921925' d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
        }
      }
    }

    .search-choice-focus {
      background: #dee2e6;

      .search-choice-close {
        background-position: right -11px;
      }
    }
  }

  .chosen-drop {
    .result-selected {
      display: none;
    }
  }
}

.chosen-container-active {
  .chosen-single {
    border: 1px solid var(--primary);
    box-shadow: 0 0 0 .2rem rgba(128, 189, 255, .5);
    transition: border linear 0s, box-shadow linear 0s;
  }

  .chosen-choices {
    border: 1px solid var(--primary);
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
    transition: border linear 0s, box-shadow linear 0s;

    .search-field {
      input[type=text] {
        color: #6c757d !important;
      }
    }
  }
}

.chosen-container-active.is-valid {
  .chosen-single {
    box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .4);
  }
}

.chosen-container-active.is-invalid {
  .chosen-single {
    box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .4);
  }
}

.chosen-container-active.chosen-with-drop {
  .chosen-single {
    background-color: #fff;
    border: 1px solid var(--primary);
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
    box-shadow: none;
    transition: border linear 0s, box-shadow linear 0s;

    div {
      &:after {
        display: inline-block;
        position: relative;
        top: .125rem;
        left: -1rem;
        width: 2rem;
        height: 2rem;
        content: "";
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23adb5bd' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");
        background-size: 2rem 2rem;
        background-position: center center;
        background-repeat: no-repeat;
      }
    }
  }

  .chosen-choices {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }

  .chosen-search-input {
    display: inline-block;
  }
}

.chosen-disabled {
  cursor: default;
  opacity: .5 !important;

  .chosen-single {
    cursor: default;
  }

  .chosen-choices {
    .search-choice {
      .search-choice-close {
        cursor: default;
      }
    }
  }
}

.chosen-container-optgroup-clickable {
  li.group-result {
    text-transform: none !important;

    &:hover {
      background-color: var(--primary);
      color: #fff;
      cursor: pointer;

      em {
        color: #fff;
      }
    }
  }
}

.chosen-container.is-valid {
  .chosen-choices {
    border-color: #28a745;
  }

  .chosen-drop {
    border-color: #28a745;
  }

  .chosen-single {
    border-color: #28a745;
  }
}

.chosen-container.is-invalid {
  .chosen-choices {
    border-color: #dc3545;
  }

  .chosen-drop {
    border-color: #dc3545;
  }

  .chosen-single {
    border-color: #dc3545;
  }
}

input[type=text].chosen-focus-input {
  position: absolute;
  top: -9000px;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  background: 0 0 !important;
  border: 0 !important;
  outline: 0;
}

.input-group {
  &:nth-of-type(1) {
    .chosen-container {
      .chosen-choices {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
      }
    }
  }

  &:not(:nth-of-type(1)) {
    .chosen-container {
      .chosen-choices {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
      }
    }

    .input-group-prepend {
      .input-group-text {
        border-top-right-radius: .25rem;
        border-bottom-right-radius: .25rem;
      }
    }
  }

  .chosen-container {
    position: relative;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    width: 1% !important;
  }

  .chosen-choices {
    .search-field {
      min-height: calc(1.5em + .75rem);
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .chosen-container-active {
    .chosen-single {
      transition: none;
    }

    .chosen-choices {
      transition: none;
    }
  }
  .chosen-container-active.chosen-with-drop {
    .chosen-single {
      transition: none;
    }
  }
}
