        body {
            font-family: 'Noto Sans Lao', sans-serif;
            background-color: #f3f4f6;
            overflow: hidden; /* Prevent body scroll on mobile */
        }
        
        #map {
            height: 100vh;
            width: 100vw;
            z-index: 0;
            filter: sepia(0.2) hue-rotate(90deg) saturate(0.8);
        }

        .bottom-sheet {
            transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
            z-index: 40;
            max-height: 85vh; /* Allow it to be taller */
            display: flex;
            flex-direction: column;
        }
        
        .modal {
            transition: opacity 0.3s ease, visibility 0.3s ease;
        }
        
        .modal-content {
            transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
        }

        .modal.active {
            opacity: 1;
            visibility: visible;
        }
        
        .modal.active .modal-content {
            transform: translateY(0);
        }

        ::-webkit-scrollbar {
            width: 0px;
            height: 0px;
            background: transparent;
        }
        
        /* Hide scrollbar for standard classes */
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }
        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

        .scanner-line {
            width: 100%;
            height: 2px;
            background: #10b981;
            box-shadow: 0 0 10px #10b981, 0 0 20px #10b981;
            position: absolute;
            animation: scan 2s infinite linear;
        }

        @keyframes scan {
            0% { top: 10%; }
            50% { top: 90%; }
            100% { top: 10%; }
        }
