@layer components {
    @keyframes spin {
    0% {
            transform: rotate(0deg);
        }
        100% {
            transform: rotate(360deg);
        }
    }

    .tt-scrollable-menu {
        margin-top: -1px;
    }

    .tt-scrollable-menu .tt-menu {
        max-height: 30vh;
        overflow-y: auto;
        padding: 0;
        border-radius: 0;
        font-size: 0.875rem;
    }

    .tt-menu .tt-suggestion,
    .tt-menu .tt-header {
        padding: 6px;
    }

    .tt-suggestion {
        font-family: var(--font-heading);
    }

    .tt-suggestion .name {
        color: var(--theme-color-main);
        font-weight: 500;
    }

    .tt-suggestion .number {
        letter-spacing: 0.05em;
        color: #656565;
    }

    .tt-header {
        top: 0;
        z-index: 20;
        position: sticky;
        background: #fff;
        font-weight: 700;
        font-size: 0.8125rem;
        text-transform: uppercase;
    }

    .tt-dataset .name {
        min-width: 10rem;
    }

    .tt-dataset .number {
        min-width: 13rem;
    }

    .tt-suggestion .tt-highlight {
        font-weight: 700;
    }

    .autocomplete.loading::after {
        content: " ";
        position: absolute;
        top: 50%;
        margin-top: -0.5rem;
        right: 0.5rem;
        display: block;
        width: 1rem;
        height: 1rem;
        border-radius: 50%;
        border: 2px solid var(--theme-color-main);
        border-color: var(--theme-color-main) transparent var(--theme-color-main) transparent;
        animation: spin 1.2s linear infinite;
    }

    .tt-scrollable-menu .form-input {
        border-width: 2px;
    }

    .tt-no-results {
        padding: 0 8px;
        color: #dc3545;
    }

    .tt-suggestion__row {
        display: flex;
        flex-wrap: wrap;
    }

    .tt-header {
        display: none;
    }

    @media (min-width: 576px) {
        .tt-header {
            display: flex;
            flex-wrap: wrap;
        }
    }

    .autocomplete {
        position: relative;
    }

    .autocomplete .tt-menu {
        position: absolute;
        top: 100%;
        left: 0;
        z-index: 1000;
        display: none;
        min-width: 100%;
        margin: 2px 0 0;
        background: #fff;
        border: 1px solid rgba(0, 0, 0, 0.15);
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
        text-align: left;
    }

    .autocomplete .tt-menu.is-open {
        display: block;
    }

    .autocomplete .tt-suggestion {
        cursor: pointer;
    }

    .autocomplete .tt-suggestion:hover,
    .autocomplete .tt-suggestion.tt-cursor {
        background: #e9ecef;
    }

    .autocomplete.loading::after {
        pointer-events: none;
    }
}
