.autocomplete-container {
    position: relative;
    width: 100%;
}

.autocomplete-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
    background: white;
    border: 1px solid #ccc;
    max-height: 260px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.autocomplete-suggestion {
    padding: 12px 10px;
    min-height: 32px;
    display: flex;
    align-items: center;
    cursor: pointer;
    overflow-wrap: anywhere;
    color: #222;
    background: white;
}

.autocomplete-suggestion:hover,
.autocomplete-suggestion.active {
    background: #eee;
}

.autocomplete-suggestion[aria-selected="true"] {
    background: #e5eefc;
}

@media (max-width: 600px) {
    .autocomplete-suggestions {
        max-height: 40vh;
    }

    .autocomplete-suggestion {
        padding: 15px 12px;
        min-height: 48px;
        font-size: 16px;
    }
}

.autocomplete-spinner {
    position: absolute;
    right: 12px;
    top: calc(50% + 9px);
    width: 16px;
    height: 16px;
    box-sizing: border-box;
    border: 2px solid #d1d5db;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: autocomplete-spin 0.6s linear infinite;
    transform: translateY(-50%);
}

@keyframes autocomplete-spin {
    to {
        transform: translateY(-50%) rotate(360deg);
    }
}

.autocomplete-spinner[hidden] {
    display: none;
}

.autocomplete-container input {
    width: 100%;
    padding-right: 40px;
    box-sizing: border-box;
}