.auto-search {
    display: block;
    margin: 20px 0;
    max-width: 350px;
    position: relative;
    width: 100%
}

.auto-search input {
    border: 1px solid #d7d7d7;
    border-radius: 10px;
    box-shadow: none;
    box-sizing: border-box;
    font-size: 16px;
    height: 48px;
    padding: 6px 45px 6px 10px;
    width: 100%
}

.auto-search input:hover {
    box-shadow: 0 2.8px 2.2px hsla(0, 0%, 87%, .034), 0 6.7px 5.3px hsla(0, 0%, 75%, .048), 0 1.5px 1px hsla(0, 0%, 56%, .06), 0 2.3px 1.9px rgba(92, 92, 92, .072), 0 2.8px 1px rgba(63, 63, 63, .086)
}

.auto-search input:focus {
    border: 1px solid #858585;
    outline: none
}

.auto-search input::-ms-clear {
    display: none
}

.auto-search ul {
    border: 1px solid #858585;
    border-radius: 0 0 10px 10px;
    border-top: none;
    box-shadow: 0 2.8px 2.2px hsla(0, 0%, 87%, .034), 0 6.7px 5.3px hsla(0, 0%, 75%, .048), 0 1.5px 1px hsla(0, 0%, 56%, .06), 0 2.3px 1.9px rgba(92, 92, 92, .072), 0 2.8px 1px rgba(63, 63, 63, .086);
    list-style: none;
    overflow: auto;
    padding: 0
}

.auto-search ul li {
    cursor: pointer;
    margin: 0;
    overflow: hidden;
    padding: 10px;
    position: relative
}

.auto-search ul li:not(:last-child) {
    border-top: none
}

.auto-search ul li[disabled] {
    background: #ececec;
    opacity: .5;
    pointer-events: none
}

.auto-search .auto-expanded {
    border: 1px solid #858585;
    border-radius: 10px 10px 0 0;
    outline: none
}

.auto-search.loupe:before {
    filter: invert(60%)
}

.auto-search.auto-is-loading:after {
    animation: auto-spinner .6s linear infinite;
    border-color: #d9d9d9 grey grey #d9d9d9;
    border-radius: 50%;
    border-style: solid;
    border-width: 2px;
    bottom: 0;
    box-sizing: border-box;
    content: "";
    height: 20px;
    margin: auto;
    position: absolute;
    right: 10px;
    top: 0;
    width: 20px
}

.auto-search.auto-is-loading .auto-clear {
    display: none
}

@keyframes auto-spinner {
    to {
        transform: rotate(1turn)
    }
}

li.loupe:before {
    bottom: auto;
    top: 15px
}

.loupe input {
    padding: 6px 45px 6px 40px
}

.loupe:before {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M16.041 15.856a.995.995 0 0 0-.186.186A6.97 6.97 0 0 1 11 18c-1.933 0-3.682-.782-4.95-2.05S4 12.933 4 11s.782-3.682 2.05-4.95S9.067 4 11 4s3.682.782 4.95 2.05S18 9.067 18 11a6.971 6.971 0 0 1-1.959 4.856zm5.666 4.437-3.675-3.675A8.967 8.967 0 0 0 20 11c0-2.485-1.008-4.736-2.636-6.364S13.485 2 11 2 6.264 3.008 4.636 4.636 2 8.515 2 11s1.008 4.736 2.636 6.364S8.515 20 11 20a8.967 8.967 0 0 0 5.618-1.968l3.675 3.675a.999.999 0 1 0 1.414-1.414z'/%3E%3C/svg%3E");
    bottom: 0;
    content: "";
    height: 17px;
    left: 10px;
    margin: auto;
    position: absolute;
    top: 0;
    width: 17px
}

.auto-selected:before {
    opacity: 1
}

.auto-clear {
    align-items: center;
    background-color: transparent;
    border: none;
    bottom: 0;
    cursor: pointer;
    display: flex;
    height: auto;
    justify-content: center;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: 40px
}

.auto-clear:before {
    content: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.984 6.422 13.406 12l5.578 5.578-1.406 1.406L12 13.406l-5.578 5.578-1.406-1.406L10.594 12 5.016 6.422l1.406-1.406L12 10.594l5.578-5.578z'/%3E%3C/svg%3E");
    height: 24px;
    line-height: 100%;
    width: 24px
}

.auto-clear span {
    display: none
}

.auto-output-search {
    background-color: #fff;
    display: none
}

.auto-output-search > .loupe {
    padding-left: 40px
}

.auto-output-search.auto-is-active {
    display: block;
    margin-top: -1px;
    position: absolute;
    width: 100%;
    z-index: 99999
}

.auto-selected {
    background-color: #e6e6e6;
    transition: background-color .2s ease-out
}
.auto-output-search li {
    color:#888 !important;
}
.auto-output-search li:hover {
    color:#000 !important;
}
.auto-selected + li:before {
    border-top: none
}

.auto-error {
    border: 1px solid #ff3838
}

.auto-error::placeholder {
    color: #f66;
    opacity: 1
}

.hidden {
    display: none
}