body {
    font-family: "Inter", "Noto Sans JP", sans-serif;
    background-color: #E5E5E5; /* iPhone-like light gray background */
}

.chat-bubble-ai {
    background-color: #E9ECEF;
    color: #212529;
    border-radius: 1.5rem;
    border-bottom-left-radius: 0.25rem;
}

.chat-bubble-user {
    background-color: #E63946;
    color: #ffffff;
    border-radius: 1.5rem;
    border-bottom-right-radius: 0.25rem;
}

.smooth-scroll {
    scroll-behavior: smooth;
}

.loader {
    border: 3px solid #f1f1f1;
    border-top: 3px solid #E63946;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin 1s linear infinite;
}

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

.specific-car-hotspot {
    position: absolute;
    background-color: rgba(230, 57, 70, 0.3);
    border: 2px dashed #fff;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    border-radius: 8px;
}

.specific-car-hotspot:hover {
    background-color: rgba(230, 57, 70, 0.6);
    transform: scale(1.05);
}

.hotspot {
    position: absolute;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background-color: rgba(230, 57, 70, 0.5);
    border: 2px solid #fff;
    cursor: pointer;
    transition: all 0.3s ease;
    animation: pulse 2s infinite;
}

.hotspot:hover {
    transform: scale(1.2);
    background-color: rgba(230, 57, 70, 0.8);
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(230, 57, 70, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(230, 57, 70, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(230, 57, 70, 0);
    }
}