<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/**
 * Optimized Autocomplete CSS with performance improvements
 */

/* Base styles with logical property grouping for better rendering */
.autocomplete-form .input-box {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.autocomplete-form .input-box:hover {
  
}

.autocomplete-form .input-box:focus {
    outline: none;
}

/* Display states - using display: none for better performance than visibility */
.autocomplete-display {
    display: block;
}
.autocomplete-form .autocomplete-input {
    display: none;
}
.autocomplete-form .autocomplete-content {
    display: none;
}

/* Modal/Open State - will-change hints for GPU acceleration */
.autocomplete .autocomplete-form {
    z-index: 10000;
    position: relative;
    will-change: opacity;
}

/* Animation Classes - GPU accelerated properties */
.autocomplete-form.autocomplete-animating-in {
    animation: ac-fadein 0.2s forwards;
}

.autocomplete-form.autocomplete-animating-out {
    animation: ac-fadeout 0.3s forwards;
}

.autocomplete .autocomplete-form.autocomplete-visible .autocomplete-dialog {
    transform: translateY(0);
    opacity: 1;
}

/* Dialog Animation - using transform for GPU acceleration */
.autocomplete .autocomplete-form .autocomplete-dialog {
    transform: translateY(-10px);
    opacity: 0;
    transition: transform 0.3s, opacity 0.3s;
    will-change: transform, opacity;
}

/* Header layout */
.autocomplete .autocomplete-form .autocomplete-header {
    position: relative;
    display: flex;
}

/* Close button - style optimization */
.autocomplete .autocomplete-form .autocomplete-close {
    display: none;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.2s;
    width: 30px;
    height: 30px;
    margin: auto 10px auto 0;
    position: relative;
}

.autocomplete .autocomplete-form .autocomplete-close:hover {
    opacity: 1;
}

/* Using pseudo-elements for close icon */
.autocomplete .autocomplete-form .autocomplete-close:before,
.autocomplete .autocomplete-form .autocomplete-close:after {
    content: '';
    position: absolute;
    width: 16px;
    height: 2px;
    background-color: #333;
    top: 50%;
    left: 50%;
}

.autocomplete .autocomplete-form .autocomplete-close:before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.autocomplete .autocomplete-form .autocomplete-close:after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* Display states when open */
.autocomplete .autocomplete-display {
    display: none;
}
.autocomplete .autocomplete-form .autocomplete-input {
    display: block;
    flex: 1;
}

/* Dropdown Content - GPU acceleration */
.autocomplete .autocomplete-form .autocomplete-content {
    z-index: 1000;
    display: block;
    position: absolute;
    background: white;
    border: 1px solid #ccc;
    border-radius: 4px;
    width: auto;
    max-height: 200px;
    overflow-y: auto;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transform-origin: top center;
    animation: ac-dropdown-open 0.2s forwards;
    will-change: transform, opacity;
    -webkit-overflow-scrolling: touch; /* For iOS momentum scrolling */
}

/* Dropdown Items - optimized for rendering */
.autocomplete .autocomplete-form .autocomplete-item {
    padding: 10px;
    border-bottom: 1px solid #eee;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    animation: ac-item-fadein 0.3s forwards;
    opacity: 0;
    transform: translateY(10px);
    will-change: transform, opacity;
    font-size: 15px;
    line-height: 20px;
}

.autocomplete .autocomplete-form .autocomplete-item:last-child {
    border-bottom: none;
}

.autocomplete .autocomplete-form .autocomplete-item:hover {
    background: #f5f5f5;
}

.autocomplete .autocomplete-form .autocomplete-item.active {
    background: #f0f0f0;
}

.autocomplete-item mark {
    color: inherit;
    padding: 0;
    font-weight: 600;
}
.autocomplete-google-address .address-main { font-size: 1em; font-weight: 400; }
.autocomplete-google-address .address-meta { font-size: 0.85em; color: #888; margin-top: 2px; }

/* Category Headers */
.autocomplete &gt; .autocomplete-form .autocomplete-category {
    padding: 10px 15px;
    background-color: #f5f5f7;
    color: #666;
    font-size: 0.85em;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #eee;
    animation: ac-fadein 0.3s forwards;
}

.autocomplete &gt;.autocomplete-form .autocomplete-clear-category {
    cursor: pointer;
    color: #0071e3;
    font-size: 0.85em;
    padding: 2px 8px;
    border-radius: 4px;
    transition: background-color 0.2s;
}

.autocomplete &gt;.autocomplete-form .autocomplete-clear-category:hover {
    background-color: rgba(0, 113, 227, 0.1);
}

/* Separator */
.autocomplete &gt; .autocomplete-form .autocomplete-separator {
    height: 1px;
    background-color: #eee;
    margin: 0;
    animation: ac-fadein 0.3s forwards;
}

/* Recent search items */
.autocomplete .autocomplete-form .autocomplete-recent-item {
    display: flex;
    align-items: center;
}

/* Recent item icon - optimized rendering */
.autocomplete .autocomplete-form .autocomplete-item-icon {
    width: 16px;
    height: 16px;
    margin-right: 10px;
    position: relative;
    opacity: 0.5;
}

.autocomplete .autocomplete-form .autocomplete-item-icon:before {
    content: '';
    position: absolute;
    width: 12px;
    height: 12px;
    border: 2px solid #666;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.autocomplete .autocomplete-form .autocomplete-item-icon:after {
    content: '';
    position: absolute;
    width: 6px;
    height: 2px;
    background-color: #666;
    top: 50%;
    right: 0;
    transform: translateY(-50%) rotate(45deg);
}

.autocomplete-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    margin-right: 8px;
    width: 18px;
    height: 18px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
    /* Remove any border or background */
    border: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    padding: 0;
}

.autocomplete-icon.establishment-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%236c757d" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;rect x="3" y="5" width="10" height="8" rx="2"/&gt;&lt;rect x="6" y="2" width="4" height="3" rx="1"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.poi-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23ff9800" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;circle cx="8" cy="7" r="4"/&gt;&lt;rect x="7" y="11" width="2" height="3" rx="1"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.airport-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%2300bcd4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M8 1a1 1 0 0 1 1 1v6.586l4.95 4.95a1 1 0 1 1-1.414 1.415L8 10.414l-4.536 4.537a1 1 0 0 1-1.415-1.415l4.95-4.95V2a1 1 0 0 1 1-1z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.train-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23607d8b" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M4 13a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm10 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM3 10V4a5 5 0 0 1 10 0v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm2-6a3 3 0 0 1 6 0v6a1 1 0 0 0 1 1h-8a1 1 0 0 0 1-1V4z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.restaurant-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23e74c3c" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M3 2.5a.5.5 0 0 1 1 0V7a2 2 0 1 1-1 0V2.5zm2.5 0a.5.5 0 0 1 1 0V7a2 2 0 1 1-1 0V2.5zm3.5 0a.5.5 0 0 1 1 0V4h1.5a.5.5 0 0 1 0 1H11v1h1.5a.5.5 0 0 1 0 1H11v1a2 2 0 1 1-1 0V2.5z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.cafe-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23795548" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M3 2.5A.5.5 0 0 1 3.5 2h9a.5.5 0 0 1 .5.5V4a3 3 0 0 1-3 3H6A3 3 0 0 1 3 4V2.5zm1 .5v1a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V3H4zm-1 8a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1H3v1z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.city-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23607d8b" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M2 13.5V7h12v6.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5zm1-6.5v6h10v-6H3zm2 2h2v2H5v-2zm4 0h2v2H9v-2z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.favorite-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23f39c12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M8 12.146l-3.717 2.31.711-4.163L2 6.868l4.178-.606L8 2.917l1.822 3.345L14 6.868l-2.994 2.425.711 4.163z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.location-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23007bff" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10zm0-7a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.route-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%239e9e9e" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;rect x="6" y="2" width="4" height="12" rx="2"/&gt;&lt;rect x="7" y="4" width="2" height="2" fill="%23fff"/&gt;&lt;rect x="7" y="8" width="2" height="2" fill="%23fff"/&gt;&lt;rect x="7" y="12" width="2" height="2" fill="%23fff"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.city-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23607d8b" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;path d="M2 13.5V7h12v6.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5zm1-6.5v6h10v-6H3zm2 2h2v2H5v-2zm4 0h2v2H9v-2z"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.street_address-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23bdbdbd" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;rect x="3" y="7" width="10" height="6" rx="2"/&gt;&lt;rect x="6" y="4" width="4" height="3" rx="1"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.country-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23007bff" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;ellipse cx="8" cy="8" rx="7" ry="5"/&gt;&lt;rect x="3" y="7" width="10" height="2" fill="%23fff"/&gt;&lt;/svg&gt;');
}
.autocomplete-icon.administrative_area_level_1-icon {
    background-image: url('data:image/svg+xml;utf8,&lt;svg fill="%23607d8b" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"&gt;&lt;rect x="2" y="4" width="12" height="8" rx="2"/&gt;&lt;rect x="6" y="6" width="4" height="4" rx="1" fill="%23fff"/&gt;&lt;/svg&gt;');
}

/* Empty message */
.autocomplete .autocomplete-form .autocomplete-empty {
    padding: 15px;
    text-align: center;
    color: #888;
    font-style: italic;
    animation: ac-fadein 0.3s forwards;
}

/* Loading spinner */
.autocomplete-form .autocomplete-loader {
    position: absolute;
    right: 30px;
    top: 50%;
    margin-top: -12px;
    width: 24px;
    height: 24px;
    z-index: 1001;
    display: none;
    animation: ac-fadein 0.2s forwards;
}

.autocomplete-form.loading .autocomplete-loader {
    display: block;
}

.autocomplete-form .spinner {
    animation: ac-rotate 2s linear infinite;
    width: 24px;
    height: 24px;
}

.autocomplete-form .path {
    stroke: #4285f4;
    stroke-linecap: round;
    animation: ac-dash 1.5s ease-in-out infinite;
}

/* Ripple effect - optimized with fixed size */
.autocomplete-item .ripple {
    position: absolute;
    background: rgba(0,0,0,0.15);
    border-radius: 50%;
    transform: scale(0);
    animation: ac-ripple 0.6s linear;
    pointer-events: none;
    width: 100px;
    height: 100px;
    margin-top: -50px;
    margin-left: -50px;
}

@media (min-width: 768px) {
    .autocomplete .autocomplete-form .input-box {
        padding-top: 1.625rem;
        padding-bottom: .625rem;
    }
    
    .form-floating.autocomplete label {
        z-index: 10001;
        color: rgba(var(--bs-body-color-rgb), .65);
        transform: scale(.85) translateY(-.5rem) translateX(.15rem);
    }
}

/* Mobile styles - optimized for touch */
@media (max-width: 768px) {
    /* Modal/Open State - will-change hints for GPU acceleration */
    .autocomplete .autocomplete-form {
        z-index: 10000;
    }
    .autocomplete .autocomplete-display {
        display: block;
    }
    .autocomplete .autocomplete-form.autocomplete-visible {
        position: fixed !important;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        overflow-x: hidden;
        overflow-y: auto;
        outline: 0;
        background: rgba(0, 0, 0, 0.5);
        justify-content: center;
        align-items: center;
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
        animation: ac-bg-fadein 0.3s forwards;
        z-index: 99999;
        will-change: opacity, backdrop-filter;
    }

    .autocomplete-form.autocomplete-animating-out {
        animation: ac-bg-fadeout 0.3s forwards;
    }

    .autocomplete .autocomplete-form .autocomplete-dialog {
        position: relative;
        display: block;
        margin: 50px auto;
        background: white;
        max-width: 450px;
        width: 90%;
        border-radius: 8px;
        overflow: hidden;
        box-shadow: 0 10px 25px rgba(0,0,0,0.2);
        transform: translateY(20px);
        transform-origin: top center;
    }

    .autocomplete .autocomplete-form .autocomplete-header {
        padding: 10px;
        border-bottom: 1px solid #eee;
    }

    .autocomplete .autocomplete-form .autocomplete-close {
        display: block;
        width: 40px;
        height: 40px;
    }

    .autocomplete .autocomplete-form .autocomplete-input {
        margin: 0;
        padding: 12px;
        font-size: 15px; /* Prevents iOS zoom */
    }

    .autocomplete .autocomplete-form .autocomplete-content {
        position: relative;
        padding: 0;
        width: 100%;
        height: auto;
        max-height: 60vh;
        border: none;
        box-shadow: none;
        border-top: 1px solid #eee;
    }

    .autocomplete .autocomplete-form .autocomplete-item {
        padding: 10px;
        font-size: 14px;
        line-height: 18px;
    }
}

/* Optimized animations with namespaced prefix to avoid conflicts */
@keyframes ac-fadein {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes ac-fadeout {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        visibility: hidden;
    }
}

@keyframes ac-dropdown-open {
    from {
        opacity: 0;
        transform: scaleY(0.8);
    }
    to {
        opacity: 1;
        transform: scaleY(1);
    }
}

@keyframes ac-item-fadein {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes ac-bg-fadein {
    from {
        opacity: 0;
        backdrop-filter: blur(0px);
        -webkit-backdrop-filter: blur(0px);
    }
    to {
        opacity: 1;
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }
}

@keyframes ac-bg-fadeout {
    from {
        opacity: 1;
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }
    to {
        opacity: 0;
        backdrop-filter: blur(0px);
        -webkit-backdrop-filter: blur(0px);
        visibility: hidden;
    }
}

@keyframes ac-rotate {
    100% {
        transform: rotate(360deg);
    }
}

@keyframes ac-dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }
    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}

@keyframes ac-ripple {
    to {
        transform: scale(4);
        opacity: 0;
    }
}</pre></body></html>