        /* =====================================================
           MAP
        ===================================================== */

        #map {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
        }


        /* =====================================================
           LOADING
        ===================================================== */

        #map-loading {
            position: absolute;

            top:
                calc(
                    78px +
                    env(safe-area-inset-top)
                );

            left: 50%;

            transform:
                translateX(-50%);

            z-index: 1400;

            background:
                rgba(255,255,255,0.96);

            padding: 9px 14px;

            border-radius: 999px;

            box-shadow:
                0 5px 18px rgba(0,0,0,0.12);

            font-size: 11px;
            white-space: nowrap;
        }



        /* =====================================================
           PRODUCTION STATUS BANNER
        ===================================================== */

        #route-status-banner {
            display: none;
            margin: 12px -14px -13px;
            padding: 10px 14px;
            border-radius: 0 0 18px 18px;
            background: #f7f7f7;
            color: #666;
            border-top: 1px solid rgba(0,0,0,0.06);
            font-size: 10px;
            font-weight: 650;
            line-height: 1.35;
        }

        #route-status-banner.visible {
            display: block;
        }

        #route-status-banner.error {
            background: #fff0f0;
            color: #a61b12;
            border-color: rgba(217,0,0,0.12);
        }

        @media (min-width: 768px) {
            #route-status-banner {
                width: auto;
            }
        }

        /* =====================================================
           NEXT STOP FLOATING CARD
        ===================================================== */

        #next-card {
            position: absolute;

            top:
                calc(
                    78px +
                    env(safe-area-inset-top)
                );

            left: 12px;
            right: 12px;

            z-index: 1300;

            background:
                rgba(255,255,255,0.96);

            backdrop-filter: blur(14px);
            -webkit-backdrop-filter: blur(14px);

            border:
                1px solid rgba(0,0,0,0.05);

            border-radius: 18px;

            padding: 13px 14px;

            box-shadow:
                0 8px 28px rgba(0,0,0,0.16);
        }


        #next-card-top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
        }

        .next-card-actions {
            display: flex;
            align-items: center;
            gap: 6px;
        }

        #status-card-toggle {
            display: none;
            width: 34px;
            height: 34px;
            border: 0;
            border-radius: 50%;
            background: #f2f2f2;
            color: #555;
            cursor: pointer;
            font-size: 19px;
            line-height: 1;
            transition: transform 0.2s ease, background 0.2s ease;
        }

        #next-card.expanded #status-card-toggle {
            transform: rotate(180deg);
            background: #ffeaea;
            color: #a90000;
        }


        #next-label {
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 0.8px;
            color: #d90000;
        }


        #next-direction {
            font-size: 9px;
            color: #999;
        }


        #van-message-label {
            margin-top: 4px;
            color: #777;
            font-size: 10px;
            font-weight: 650;
        }

        #van-movement-status {
            margin-top: 2px;
            font-size: 18px;
            line-height: 1.2;
            font-weight: 700;
        }

        #next-card.parked #van-movement-status {
            color: #16803c;
        }

        #next-destination-row {
            display: grid;
            grid-template-columns: auto 1fr;
            align-items: baseline;
            gap: 8px;
            margin-top: 10px;
            padding-top: 9px;
            border-top: 1px solid rgba(0,0,0,0.07);
        }

        #next-destination-row > span {
            color: #888;
            font-size: 9px;
            font-weight: 700;
            letter-spacing: 0.55px;
            text-transform: uppercase;
        }

        #next-stop-name {
            color: #171717;
            font-size: 14px;
            line-height: 1.25;
        }

        #next-card.arriving #next-destination-row {
            display: none !important;
        }


        #next-meta {
            margin-top: 9px;
            display: flex;
            align-items: center;
            gap: 12px;

            font-size: 12px;
            color: #555;
        }


        #next-meta strong {
            color: #171717;
        }


        #eta-value {
            color: #16803c;
        }


        /* =====================================================
           BACKEND ETA PROGRESS
        ===================================================== */

        #eta-progress-wrap {
            display: none;
            margin-top: 9px;
        }

        #eta-progress-wrap.visible {
            display: block;
        }

        #eta-progress-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            margin-bottom: 5px;
            font-size: 9px;
            color: #888;
        }

        #eta-progress-value {
            font-weight: 700;
            color: #555;
        }

        #eta-progress-track {
            width: 100%;
            height: 4px;
            overflow: hidden;
            border-radius: 999px;
            background: #ececec;
        }

        #eta-progress-bar {
            width: 0%;
            height: 100%;
            border-radius: inherit;
            background: linear-gradient(90deg, #a90000, #e00000);
            transition: width 0.35s ease;
        }
