/**
 * Google Maps Autocomplete Styling
 *
 * Custom styles for Google Maps Places Autocomplete
 * Matches Cyprus Taxi Booking design system
 */

/* ========================================
   Autocomplete Input Fields
   ======================================== */

.ctb-google-autocomplete {
    position: relative;
    transition: all 0.3s ease;
}

.ctb-google-autocomplete:focus {
    border-color: #f7c400;
    box-shadow: 0 0 0 0.2rem rgba(247, 196, 0, 0.25);
}

.ctb-google-autocomplete.ctb-autocomplete-active {
    border-color: #f7c400;
    background-color: #fffdf5;
}

.ctb-google-autocomplete.error {
    border-color: #dc3545;
}

.ctb-google-autocomplete.error:focus {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* Loading indicator for autocomplete inputs */
.ctb-google-autocomplete.loading {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="8" fill="none" stroke="%23f7c400" stroke-width="2"><animate attributeName="stroke-dasharray" values="0 50.27;50.27 0;0 50.27" dur="1.5s" repeatCount="indefinite"/></circle></svg>');
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px 20px;
}

/* ========================================
   Google Maps Autocomplete Dropdown
   ======================================== */

/* Main container for autocomplete dropdown */
.pac-container {
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    margin-top: 4px;
    padding: 8px 0;
    z-index: 9999 !important;
}

/* Ensure dropdown appears above other elements */
.pac-container:after {
    display: none;
}

/* Individual suggestion item */
.pac-item {
    border-top: none;
    cursor: pointer;
    line-height: 1.4;
    padding: 10px 16px;
    transition: background-color 0.2s ease;
    font-size: 14px;
}

.pac-item:hover {
    background-color: #f7f8fa;
}

/* Selected/highlighted item */
.pac-item-selected,
.pac-item-selected:hover {
    background-color: #f7c400;
    color: #fff;
}

/* Icon styling */
.pac-icon {
    background-image: url(https://maps.gstatic.com/mapfiles/api-3/images/autocomplete-icons.png);
    background-size: 34px;
    width: 20px;
    height: 20px;
    margin-right: 12px;
    margin-top: 2px;
    display: inline-block;
    vertical-align: top;
}

/* Airport icon */
.pac-icon-marker {
    background-position: -1px -161px;
}

/* Main text (primary line) */
.pac-item-query {
    font-size: 14px;
    font-weight: 600;
    color: #2c3e50;
    padding-right: 8px;
}

.pac-item-selected .pac-item-query {
    color: #fff;
}

/* Secondary text */
.pac-matched {
    font-weight: 700;
    color: #f7c400;
}

.pac-item-selected .pac-matched {
    color: #fff;
    font-weight: 700;
}

/* Address details (secondary line) */
span.pac-item-query + span {
    color: #6c757d;
    font-size: 13px;
}

.pac-item-selected span.pac-item-query + span {
    color: rgba(255, 255, 255, 0.9);
}

/* Powered by Google logo */
.pac-logo:after {
    content: "";
    padding: 8px 16px;
    height: 16px;
    text-align: right;
    display: block;
    background-image: url(https://maps.gstatic.com/mapfiles/api-3/images/powered-by-google-on-white.png);
    background-position: right;
    background-repeat: no-repeat;
    background-size: 120px 14px;
}

/* Dark mode support for "Powered by Google" */
@media (prefers-color-scheme: dark) {
    .pac-logo:after {
        background-image: url(https://maps.gstatic.com/mapfiles/api-3/images/powered-by-google-on-non-white.png);
    }
}

/* Hide default Google branding if desired */
.hdpi.pac-logo:after {
    background-image: url(https://maps.gstatic.com/mapfiles/api-3/images/powered-by-google-on-white-hdpi.png);
}

/* ========================================
   Error Messages
   ======================================== */

#error-ctb-pickup-address,
#error-ctb-dropoff-address,
#error-ctb-quick-pickup-address,
#error-ctb-quick-dropoff-address {
    display: none;
    color: #dc3545;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

#error-ctb-pickup-address:not(:empty),
#error-ctb-dropoff-address:not(:empty),
#error-ctb-quick-pickup-address:not(:empty),
#error-ctb-quick-dropoff-address:not(:empty) {
    display: block;
}

/* ========================================
   Responsive Design
   ======================================== */

/* Mobile devices */
@media (max-width: 767.98px) {
    .pac-container {
        width: calc(100% - 32px) !important;
        left: 16px !important;
        right: 16px !important;
    }

    .pac-item {
        padding: 12px 16px;
    }

    .pac-item-query {
        font-size: 15px;
    }
}

/* Tablet devices */
@media (min-width: 768px) and (max-width: 991.98px) {
    .pac-container {
        max-width: 600px;
    }
}

/* ========================================
   Address Field Enhancements
   ======================================== */

/* Add location icon to input fields */
#ctb-pickup-address,
#ctb-dropoff-address,
#ctb-quick-pickup-address,
#ctb-quick-dropoff-address {
    padding-right: 40px;
}

/* Success state when address is selected */
.ctb-google-autocomplete.selected {
    border-color: #28a745;
    background-color: #f8fff9;
}

.ctb-google-autocomplete.selected:focus {
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

/* Add checkmark icon when address is selected */
.ctb-google-autocomplete.selected {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="%2328a745"><path d="M7.629 14.566c-.24 0-.468-.093-.64-.262l-3.896-3.858a.898.898 0 010-1.278.913.913 0 011.29 0l3.246 3.215 6.847-6.78a.913.913 0 011.29 0 .898.898 0 010 1.278l-7.497 7.424a.905.905 0 01-.64.261z"/></svg>');
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px 20px;
}

/* ========================================
   Accessibility
   ======================================== */

.pac-item:focus {
    outline: 2px solid #f7c400;
    outline-offset: -2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .pac-container {
        border: 2px solid #000;
    }

    .pac-item-selected {
        background-color: #000;
        color: #fff;
    }
}

/* ========================================
   Animation
   ======================================== */

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.pac-container {
    animation: slideDown 0.2s ease-out;
}

/* ========================================
   Form Hints
   ======================================== */

.form-text.text-muted {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: #6c757d;
}

.form-text.text-muted i {
    margin-right: 4px;
    font-size: 0.75rem;
}

/* ========================================
   Bootstrap Integration
   ======================================== */

/* Ensure autocomplete works with Bootstrap form controls */
.form-control.ctb-google-autocomplete,
.form-control-lg.ctb-google-autocomplete {
    background-position: right 12px center;
}

/* Adjust for Bootstrap input groups */
.input-group .ctb-google-autocomplete {
    position: relative;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}
