        /* =========================
           Design tokens
           ========================= */
        :root {
            --bg: #080C11;
            /* Fond sombre harmonisé */
            --bg-elev: #121922;
            /* Panneau */
            --bg-soft: #0f1a22;
            --panel: #121922;
            --panel-2: #0f1820;
            --panel-3: #0c141b;

            --text: #E5E7EB;
            /* Texte principal */
            --text-dim: #9CA3AF;
            /* Texte secondaire */
            --muted: #9CA3AF;

            --gold: #F7C948;
            /* Jaune-or d'accent */
            --gold-2: #c49520;
            --gold-3: #b3831b;

            --accent: #F7C948;
            /* Accent principal */
            --accent-2: #53c6ff;
            --address-accent: #7bd0c4;
            --phone-color: #EF4444;
            /* Rouge tel */
            --notes-bg-color: #F7C948;
            /* Badge notes */
            --notes-text-color: #121922;

            --border: rgba(255, 255, 255, 0.08);
            --border-strong: rgba(255, 255, 255, 0.14);
            --shadow: 0 12px 28px rgba(0, 0, 0, .28), inset 0 0 0 1px rgba(255, 255, 255, .03);

            --radius: 14px;
            --radius-sm: 10px;

            --fs-xs: 11.5px;
            --fs-sm: 12.5px;
            --fs-md: 14px;
            --fs-lg: 16px;

            --gap-xs: 6px;
            --gap-sm: 8px;
            --gap: 12px;
            --gap-lg: 18px;
        }

        /* =========================
           Base
           ========================= */
        * {
            box-sizing: border-box
        }

        html,
        body {
            height: 100%
        }

        body {
            margin: 0;
            background: var(--bg);
            color: var(--text);
            font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
            font-size: var(--fs-md);
            line-height: 1.4;
        }

        h1,
        h2,
        h3 {
            margin: 0 0 8px 0;
            line-height: 1.15
        }

        h1 {
            font-size: 24px;
            letter-spacing: .2px
        }

        h2 {
            font-size: 18px
        }

        h3 {
            font-size: 15px;
            color: var(--text)
        }

        p {
            margin: 6px 0;
            color: var(--text-dim)
        }

        a {
            color: var(--accent);
            text-decoration: none
        }

        a:hover {
            text-decoration: underline
        }

        .lucide {
            width: 16px;
            height: 16px;
            stroke-width: 2;
            flex-shrink: 0;
        }

        .inline-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-right: 6px;
            vertical-align: middle;
        }

        .inline-icon.lucide {
            width: 14px;
            height: 14px;
        }

        .icon-phone {
            color: var(--phone-color);
        }

        .icon-danger {
            color: #ef4444;
        }

        .icon-stroke-heavy {
            stroke-width: 4.6;
        }

        .btn-cancel {
            --fg-btn: #0b0b0b;
        }

        .btn .lucide,
        .top-nav-actions .lucide,
        .current-time-box .lucide,
        .date-box .lucide,
        .people-counter-box .lucide {
            width: 14px;
            height: 14px;
        }

        .panel-title .lucide {
            width: 16px;
            height: 16px;
        }

        .notification-delete-btn .lucide,
        .notifications-close-btn .lucide {
            width: 14px;
            height: 14px;
        }

        .reservation-modal .modal-icon-btn .lucide {
            width: 18px;
            height: 18px;
        }

        .trip-indicator {
            width: 10px;
            height: 10px;
            border-radius: 999px;
            display: inline-block;
        }

        .trip-indicator--green {
            background: #22c55e;
        }

        .trip-indicator--yellow {
            background: #facc15;
        }

        .trip-indicator--orange {
            background: #f97316;
        }

        .trip-indicator--red {
            background: #ef4444;
        }

        /* =========================
           Layout wrappers
           ========================= */
        .container {
            width: 100%;
            max-width: none;
            margin: 0 auto;
            padding: 18px 18px 60px;
        }

        .header {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            gap: 10px;
            padding: 12px 12px 10px;
            margin-bottom: 12px;
        }

        .top-nav {
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            align-items: center;
            gap: 12px;
            padding: 10px 12px;
            margin-bottom: 12px;
            border-radius: var(--radius);
            border: 1px solid var(--border);
            background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.01));
            box-shadow: var(--shadow);
        }

        .nav-brand {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font-weight: 700;
            letter-spacing: 0.2px;
            justify-self: start;
        }

        .nav-mark {
            width: 44px;
            height: 44px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 2px;
        }

        .nav-logo {
            width: 100%;
            height: 100%;
            display: block;
            object-fit: contain;
        }

        .nav-title {
            display: flex;
            flex-direction: column;
            line-height: 1.1;
        }

        .nav-title .nav-name {
            font-size: 20px;
            color: var(--accent);
            text-transform: none;
        }

        .top-nav-actions {
            display: inline-flex;
            gap: 8px;
            justify-self: end;
        }

        .top-nav-center {
            display: flex;
            justify-content: center;
            justify-self: center;
        }

        .settings-link,
        .contact-link,
        .notifications-button {
            width: 40px;
            height: 40px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 999px;
            border: 1px solid var(--border);
            background: var(--bg-elev);
            color: var(--text);
            font-size: 14px;
            box-shadow: var(--shadow);
        }

        .settings-link:hover,
        .contact-link:hover,
        .notifications-button:hover,
        .logout-button:hover {
            background: var(--panel-2);
        }

        .notifications-button {
            position: relative;
            cursor: pointer;
        }

        .notifications-badge {
            position: absolute;
            top: -4px;
            right: -4px;
            min-width: 18px;
            height: 18px;
            padding: 0 5px;
            border-radius: 999px;
            background: var(--accent-2);
            color: #081018;
            font-size: 11px;
            font-weight: 700;
            display: none;
            align-items: center;
            justify-content: center;
        }

        .logout-button {
            width: 40px;
            height: 40px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 999px;
            border: 1px solid var(--border);
            background: var(--bg-elev);
            color: var(--text);
            font-size: 12px;
            cursor: pointer;
            box-shadow: var(--shadow);
        }

        .header-actions {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            width: 100%;
            margin: 16px 0 6px;
            flex-wrap: wrap;
        }

        /* =========================
           Small stat chips
           ========================= */
        .current-time-box,
        .people-counter-box,
        .fill-rate-box {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
            border: 1px solid var(--border);
            padding: 9px 20px;
            border-radius: 999px;
            font-weight: 600;
            color: var(--text);
            white-space: nowrap;
        }

        .current-time-box,
        .people-counter-box,
        .date-box {
            display: inline-flex;
            align-items: center;
            height: 40px;
            min-height: 40px;
            padding: 0 16px;
            line-height: 1;
        }

        #currentTimeDisplay .lucide {
            transform: translateX(-4px);
        }

        .people-counter-box .lucide {
            transform: translateX(-4px);
        }

        .top-stats {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 12px;
            margin-bottom: 0;
        }

        .date-box {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            position: relative;
            cursor: pointer;
            overflow: visible;
        }

        .stats-row {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 14px;
            flex-wrap: wrap;
            margin-top: 18px;
        }

        .top-nav .stats-row {
            margin-top: 0;
        }

        .fill-rate-box {
            text-align: center;
            margin: 0;
        }

        .people-counter-wrap {
            position: relative;
            display: inline-flex;
            align-items: center;
        }

        .people-counter-box {
            cursor: pointer;
            font: inherit;
            appearance: none;
        }

        .fill-rate-popover {
            position: fixed;
            top: 0;
            left: 50%;
            right: auto;
            transform: translateX(-50%) scale(0.98);
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.16s ease, transform 0.16s ease;
            z-index: 60;
            transform-origin: center;
            max-width: calc(100vw - 24px);
        }

        .fill-rate-popover.open {
            opacity: 1;
            transform: translateX(-50%) scale(1);
            pointer-events: auto;
        }

        .fill-rate-popover .fill-rate-box {
            white-space: nowrap;
            background: var(--panel);
            border: 1px solid var(--border);
            box-shadow: var(--shadow);
        }

        .actions-group {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            align-items: center;
        }

        .date-box span {
            pointer-events: none;
        }

        .date-box:focus-within {
            border-color: rgba(247, 201, 72, 0.45);
            box-shadow: 0 0 0 3px rgba(247, 201, 72, 0.15);
        }

        .date-input {
            display: none;
        }

        .date-label {
            font-size: 12px;
            font-weight: 700;
            color: var(--accent);
        }

        .date-box.has-date .date-label {
            display: inline;
        }

        .date-popover {
            position: fixed;
            top: 0;
            left: 50%;
            right: auto;
            transform: translateX(-50%);
            width: min(320px, calc(100vw - 24px));
            background: var(--panel);
            border: 1px solid var(--border);
            border-radius: 16px;
            box-shadow: var(--shadow);
            padding: 12px;
            display: none;
            z-index: 60;
            max-height: calc(100vh - 24px);
            overflow: auto;
        }

        .date-popover.open {
            display: block;
        }

        .date-popover-header {
            display: grid;
            grid-template-columns: auto auto 1fr auto auto;
            align-items: center;
            gap: 6px;
            margin-bottom: 10px;
        }

        .date-nav {
            width: 32px;
            height: 32px;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: #0e1821;
            color: var(--text);
            cursor: pointer;
            font-weight: 700;
        }

        .date-month {
            font-weight: 700;
            text-transform: capitalize;
            text-align: center;
        }

        .date-weekdays,
        .date-grid {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 6px;
            text-align: center;
        }

        .date-weekdays span {
            font-size: 9px;
            color: var(--text-dim);
        }

        .date-day {
            width: 34px;
            height: 34px;
            border-radius: 10px;
            border: 1px solid transparent;
            background: transparent;
            color: var(--text);
            cursor: pointer;
            font-weight: 600;
        }

        .date-day.has-reservations {
            color: var(--accent-2);
            border-color: rgba(83, 198, 255, 0.35);
        }

        .date-day:hover {
            background: rgba(247, 201, 72, 0.12);
            border-color: rgba(247, 201, 72, 0.3);
        }

        .date-day.selected {
            background: var(--accent);
            color: #000;
            border-color: var(--accent);
        }

        .date-day.today {
            border-color: rgba(247, 201, 72, 0.6);
        }

        .date-day.disabled {
            opacity: 0.35;
            cursor: default;
        }

        @media (max-width: 900px) {
            .date-label {
                display: none;
            }
        }

        .time-people-group {
            display: flex;
            flex-wrap: nowrap;
            align-items: center;
            gap: 12px
        }

        .top-stats>.fill-rate-box {
            flex: 1 1 auto;
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 4px;
        }

        /* =========================
           Panels
           ========================= */
        .main-content {
            display: grid;
            grid-template-columns: 380px 1fr;
            gap: 18px;
            align-items: start;
        }

        .left-panel,
        .right-panel {
            background: var(--panel);
            --extra-bottom: 12px;
            border: 1px solid var(--border);
            border-radius: var(--radius);
            padding: 14px;
            box-shadow: var(--shadow);
        }

        .right-panel {
            min-height: 300px;
        }

        .panel-title {
            display: flex;
            align-items: center;
            gap: 8px;
            padding-bottom: 8px;
            margin-bottom: 10px;
            border-bottom: 1px solid var(--border-strong);
            color: var(--text);
        }

        /* =========================
         Navette sections
        ========================= */
        .navette-section {
            background: var(--panel-2);
            border: 1px solid var(--border);
            border-radius: var(--radius);
            padding: 12px;
            margin-bottom: 14px;
        }

        .navette-section h3 {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            font-size: 18px;
        }

        .navette-section h3 .navette-title {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            flex: 1 1 auto;
            min-width: 0;
            flex-wrap: wrap;
        }

        .navette-section h3 .navette-name {
            font-size: 18px;
            font-weight: 700;
            color: var(--text);
        }

        .navette-section h3 .navette-capacity {
            font-size: 12px;
            font-weight: 600;
            color: var(--accent);
            padding: 2px 8px;
            border-radius: 999px;
            border: 1px solid var(--border-strong);
            background: rgba(247, 201, 72, 0.12);
            white-space: nowrap;
        }

        .navette-section h3 .navette-actions {
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .navette-section h3 .navette-actions .btn {
            margin-left: 0;
        }

        .navette-section h3 button {
            margin-left: 6px
        }

        .navette-section .btn-edit {
            margin-left: 4px
        }

        /* =========================
        Buttons
        ========================= */
        .btn {
            --bg-btn: #17222c;
            --bd-btn: var(--border);
            --fg-btn: var(--text);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            padding: 8px 5px;
            border-radius: 12px;
            border: 1px solid var(--bd-btn);
            background: var(--bg-btn);
            color: var(--fg-btn);
            font-weight: 600;
            font-size: 13px;
            cursor: pointer;
            transition: transform .05s ease, background .2s ease, border-color .2s ease;
            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25) inset, 0 4px 10px rgba(0, 0, 0, 0.18);
        }

        .btn:hover {
            transform: translateY(-1px)
        }

        .btn:active {
            transform: translateY(0) scale(.98)
        }

        /* Success — placé après .btn pour gagner la cascade */
        .btn-success {
            --bg-btn: #16a34a;
            --bd-btn: #16a34a;
            --fg-btn: #ffffff;
        }

        .btn-success:hover {
            --bg-btn: #15803d;
        }

        /* Info (bleu) */
        .btn-info {
            --bg-btn: #2563eb;
            --bd-btn: #2563eb;
            --fg-btn: #ffffff;
        }

        .btn-info:hover {
            --bg-btn: #1d4ed8;
        }

        /* Primary (jaune-or) */
        .btn-primary {
            --bg-btn: var(--accent);
            --bd-btn: var(--accent);
            --fg-btn: #080C11;
        }

        .btn-primary:hover {
            --bg-btn: var(--gold-2)
        }

        /* Secondary (sombre) */
        .btn-secondary {
            --bg-btn: var(--bg-elev);
            --bd-btn: var(--border);
        }

        .btn-secondary.active {
            --bg-btn: var(--accent);
            --bd-btn: var(--accent);
            color: #080C11;
        }

        .btn-deploy {
            font-size: 15px;
            padding: 10px 18px;
            min-width: 120px;
            border-radius: 999px;
            letter-spacing: 0.4px;
        }

        .btn-danger {
            --bg-btn: #dc2626;
            --bd-btn: #dc2626;
            --fg-btn: #ffffff;
        }

        .btn-danger:hover {
            --bg-btn: #b91c1c;
        }

        /* Boutons d’édition / suppression */
        .btn-edit {
            --bg-btn: #1b2732;
            --bd-btn: var(--border);
            font-size: 12px;
            padding: 8px 6px;
        }

        .btn-edit[onclick^="clearNavette"] {
            --bg-btn: #612e2e;
            --bd-btn: rgba(239, 68, 68, 0.45);
            color: #ffe3e3;
        }

        .reservation-modal .btn-edit {
            --bg-btn: #612e2e;
            --bd-btn: rgba(239, 68, 68, 0.45);
            color: #ffe3e3;
        }

        .reservation-modal .btn-cancel {
            color: #0b0b0b;
        }

        /* Boutons SMS dans la section chauffeurs */
        .drivers-sms-rows .btn-primary {
            --bg-btn: var(--accent);
            --bd-btn: var(--accent);
            --fg-btn: #080C11;
        }

        .drivers-sms-rows>div {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin-bottom: 5px;
        }

        /* =========================
        Cities list
        ========================= */

        .left-panel {
            overflow: hidden;
            display: flex;
            flex-direction: column
        }

        .cities-list {
            flex: 1 1 auto;
            overflow-y: auto;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .sort-switch {
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: var(--panel-3);
            border: 1px solid var(--border);
            border-radius: var(--radius-sm);
            padding: 8px 10px;
            margin: 12px 0 10px;
        }

        .cities-actions {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
            margin: 2px 0 0;
        }

        .cities-actions .btn {
            width: 100%;
            justify-content: center;
            padding: 11px 10px;
            font-size: 12.5px;
        }

        .cities-actions .btn .lucide {
            transform: translateY(2px);
        }

        .sort-label {
            color: var(--text-dim);
            font-size: 12px
        }

        .sort-buttons .sort-btn {
            padding: 9px 10px;
            font-size: 12.5px
        }

        .city-item {
            display: grid;
            grid-template-columns: 1fr auto auto;
            align-items: center;
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.02));
            border: 0.5px solid rgba(180, 177, 177, 0.355);
            border-radius: var(--radius-sm);
            padding: 11px 10px;
        }

        .city-name {
            font-weight: 700;
            text-transform: uppercase;
            color: #f7f1e0d5;
        }

        .city-controls {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }

        .city-next-slot {
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid var(--border);
            border-radius: 999px;
            padding: 6px 8px;
            font-size: 11px;
            color: var(--text);
            white-space: nowrap;
        }

        .city-next-slot .slot-name-short {
            display: none;
        }

        .city-next-slot .slot-sep {
            margin: 0 4px;
        }

        @media (max-width: 450px) {
            .city-next-slot .slot-name-full {
                display: none;
            }

            .city-next-slot .slot-name-short {
                display: inline;
            }
        }

        /* Bulle "xx min" plus sombre en permanence */
        .city-time {
            background: rgba(0, 0, 0, 0.35);
            /* plus sombre qu'avant */
            padding: 8px 8px;
            border-radius: 999px;
            font-size: 12px;
            color: var(--text-dim);
        }

        /* À l'hover de la ligne ville: texte du temps en noir
        et fond un peu plus clair pour garder une bonne lisibilité sur fond jaune */
        .city-item:hover .city-time {
            color: #000;
            background: rgba(255, 255, 255, 0.6);
        }

        .city-item:hover .city-next-slot {
            color: #000;
            background: rgba(255, 255, 255, 0.75);
            border-color: rgba(0, 0, 0, 0.2);
        }

        .btn-time {
            padding: 8px 8px;
            font-size: 12px
        }

        .city-item:hover .city-name {
            color: inherit;
        }

        /* on neutralise l'ancien jaune */

        /* Nouveau effet hover sur tout le bloc */
        .city-item:hover {
            background: var(--accent);
            /* fond jaune */
            border-color: rgba(255, 255, 255, 0.9);
            /* bordure légèrement plus foncée */
            color: #000;
            /* texte noir */
        }

        /* On force le nom de la ville en noir quand hover */
        .city-item:hover .city-name {
            color: #000;
        }


        /* =========================
           Forms and inputs
           ========================= */
        input[type="text"],
        input[type="number"],
        input[type="time"],
        input[type="tel"],
        textarea {
            width: 100%;
            background: #0e1821;
            color: var(--text);
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: 8px 10px;
            outline: none;
        }

        input:focus,
        textarea:focus {
            border-color: rgba(247, 201, 72, 0.45);
            box-shadow: 0 0 0 3px rgba(247, 201, 72, 0.15)
        }

        textarea {
            min-height: 40px;
            resize: vertical
        }

        .input-group {
            display: flex;
            flex-direction: column;
            gap: 6px;
            margin-bottom: 10px;
            position: relative;
        }

        .contact-suggestions {
            position: absolute;
            left: 0;
            right: 0;
            top: calc(100% + 6px);
            background: #0e1821;
            border: 1px solid var(--border);
            border-radius: 12px;
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
            z-index: 12;
            padding: 6px;
            display: none;
            max-height: 200px;
            overflow-y: auto;
        }

        .contact-suggestions .suggestion-item {
            width: 100%;
            text-align: left;
            background: transparent;
            border: none;
            color: var(--text);
            padding: 8px 10px;
            border-radius: 10px;
            display: flex;
            flex-direction: column;
            gap: 4px;
            cursor: pointer;
        }

        .contact-suggestions .suggestion-item:hover {
            background: rgba(247, 201, 72, 0.12);
        }

        .contact-suggestions .suggestion-name {
            font-weight: 700;
            color: var(--accent);
        }

        .contact-suggestions .suggestion-meta {
            font-size: 12px;
            color: var(--text-dim);
        }

        .navette-choice {
            display: flex;
            gap: 10px;
            justify-content: center;
            margin-bottom: 8px;
            flex-wrap: wrap;
        }

        .count-row {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
        }

        .count-quick {
            display: flex;
            gap: 6px;
            flex-wrap: nowrap;
        }

        .count-choice {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            border: 1px solid var(--border);
            background: #0e1821;
            color: var(--text);
            font-weight: 700;
            cursor: pointer;
        }

        .count-choice.active {
            background: var(--accent);
            color: #000;
            border-color: var(--accent);
        }

        .count-manual {
            margin-left: auto;
        }

        .count-manual input {
            width: 80px;
            text-align: center;
        }

        #reservationModal .count-row {
            flex-wrap: nowrap;
            gap: 8px;
        }

        #reservationModal .count-quick {
            gap: 4px;
            flex-wrap: wrap;
        }

        #reservationModal .count-choice {
            width: 38px;
            height: 38px;
            font-size: 12px;
        }

        #reservationModal .count-manual {
            margin-left: 6px;
        }

        #reservationModal .count-manual input {
            width: 60px;
            border: 2px solid var(--accent);
            box-shadow: 0 0 0 2px rgba(247, 201, 72, 0.35);
            height: 38px;
        }

        #reservationModal .number-stepper {
            position: relative;
            width: 100%;
        }

        #reservationModal .number-stepper input[type="number"] {
            appearance: textfield;
            -webkit-appearance: textfield;
            -moz-appearance: textfield;
            padding-right: 30px;
        }

        #reservationModal .number-stepper input[type="number"]::-webkit-outer-spin-button,
        #reservationModal .number-stepper input[type="number"]::-webkit-inner-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }

        #reservationModal .stepper-buttons {
            position: absolute;
            top: 6px;
            right: 6px;
            bottom: 6px;
            width: 22px;
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        #reservationModal .stepper-btn {
            flex: 1;
            border: 1px solid var(--border);
            background: var(--panel-2);
            color: var(--text);
            border-radius: 6px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            cursor: pointer;
        }

        #reservationModal .stepper-btn:hover {
            background: var(--bg-elev);
        }

        #reservationModal .stepper-btn .lucide {
            width: 12px;
            height: 12px;
        }

        @media (max-width: 720px) {
            .count-row {
                flex-direction: column;
                align-items: flex-start;
            }

            .count-manual {
                margin-left: 0;
                align-self: flex-end;
            }

            #reservationModal .count-row {
                flex-direction: row;
                align-items: center;
                flex-wrap: nowrap;
            }

            #reservationModal .count-quick {
                flex-wrap: nowrap;
            }
        }

        /* =========================
           Timeline and trips
           ========================= */
        .time-labels {
            display: flex;
            justify-content: space-between;
            margin: 6px 0 10px;
            font-size: 12px;
            color: var(--text-dim);
        }

        .navette-bar {
            position: relative;
            height: 35px;
            background: var(--bg-elev);
            border: 1px solid var(--border);
            border-radius: 12px;
            box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
            overflow: hidden;
        }

        .navette-bar .trip-segment {
            position: absolute;
            top: 1px;
            bottom: 1px;
            text-transform: uppercase;
            font-weight: 700;
            font-size: 10px;
            background: var(--accent);
            border: 1px solid var(--bg);
            border-radius: 10px;
            overflow: hidden;
            transition: transform .08s ease, box-shadow .2s ease, border-color .2s ease;
            color: var(--bg);
            display: flex;
            align-items: center;
            justify-content: center;
            white-space: nowrap;
            text-overflow: ellipsis;
        }

        .navette-bar .trip-segment.segment-pop {
            animation: segment-pop 0.4s ease-out;
        }

        @keyframes segment-pop {
            0% {
                transform: scale(0.92);
                opacity: 0.7;
            }
            60% {
                transform: scale(1.06);
                opacity: 1;
            }
            100% {
                transform: scale(1);
                opacity: 1;
            }
        }

        .navette-bar .trip-segment:hover {
            transform: translateY(-1px);
            box-shadow: 0 10px 18px rgba(0, 0, 0, 0.35);
            border-color: var(--gold-2);
        }

        .time-markers {
            position: absolute;
            inset: 0;
            display: flex;
            justify-content: space-between;
            align-items: stretch;
            pointer-events: none
        }

        .time-marker {
            width: 1px;
            height: 100%;
            background: rgba(255, 255, 255, 0.15);
            opacity: 0.8
        }

        /* Current time vertical line */
        .current-time-line {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 2px;
            background: rgba(255, 0, 0, 0.95);
            box-shadow: 0 0 8px rgba(255, 0, 0, 0.45);
            z-index: 5;
            pointer-events: none;
            transform: translateX(-1px);
        }

        /* =========================
           Trip detail blocks
           ========================= */
        #navette1Info,
        #navette2Info,
        #navette3Info,
        #navette4Info,
        #navette5Info,
        #navette6Info {
            margin-top: 10px;
            padding: 20px 12px;
            background: var(--panel-3);
            border: 1px solid var(--border);
            border-radius: var(--radius-sm);
            font-size: 14px;
            line-height: 1.4;
            color: #e3ebf4;
        }

        .rdv-time {
            color: var(--accent);
            font-weight: 700
        }

        .notes-chip {
            background: var(--notes-bg-color);
            color: var(--notes-text-color);
            font-weight: 700;
            padding: 4px 12px;
            border-radius: 8px;
            display: inline-block;
            line-height: 1.2;
        }

        /* =========================
           Modal
           ========================= */
        /* Gris neutre pour les secondaires dans la modale de réservation */
        #reservationModal .btn-secondary {
            --bg-btn: #2b2f36;
            /* gris */
            --bd-btn: #30363d;
            --fg-btn: #e5e7eb;
        }

        #reservationModal .btn-secondary:hover {
            --bg-btn: #3a3f46;
        }

        .modal {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(8, 12, 17, 0.85);
            z-index: 1000
        }

        .modal .modal-content {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: var(--panel);
            --extra-bottom: 12px;
            padding: 18px;
            padding-bottom: calc(18px + var(--extra-bottom));
            border-radius: var(--radius);
            border: 1px solid var(--border);
            box-shadow: var(--shadow);
            min-width: 240px;
            max-width: 450px;
            max-height: 85vh;
            overflow: auto;
            overscroll-behavior: contain;
        }

        .time-modal .modal-content {
            width: min(560px, calc(100% - 36px));
            background: linear-gradient(180deg, rgba(18, 25, 34, 0.98), rgba(10, 16, 22, 0.98));
            border: 1px solid rgba(247, 201, 72, 0.18);
            box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
        }

        .time-modal h3 {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 18px;
        }

        .time-modal .trip-info {
            margin-top: 12px;
            border-radius: 14px;
            border: 1px solid var(--border);
            background: var(--panel-2);
            padding: 12px;
            font-size: 13px;
            color: var(--text-dim);
            line-height: 1.5;
        }

        .time-modal .trip-info strong {
            color: var(--text);
        }

        .time-modal-row {
            display: flex;
            align-items: flex-start;
            gap: 6px;
        }

        .time-modal-row + .time-modal-row {
            margin-top: 8px;
        }

        .time-modal-highlight {
            color: var(--accent);
            font-weight: 700;
        }

        .time-modal-unavailable .time-modal-highlight {
            color: #f87171;
        }

        .time-modal .input-group label {
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.6px;
            color: var(--text-dim);
        }

        .time-modal #desiredTime {
            height: 44px;
            font-weight: 700;
            letter-spacing: 0.4px;
        }

        .time-modal #first-available-row {
            display: flex;
        }

        .time-modal #first-available-row .btn {
            width: 100%;
            --bg-btn: #1c2530;
            --bd-btn: rgba(247, 201, 72, 0.3);
            --fg-btn: var(--text);
        }

        .time-modal .navette-choice {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
        }

        .time-modal .btn-navette {
            width: 100%;
            padding: 10px 8px;
            border-radius: 12px;
            font-size: 12px;
        }

        .time-modal .btn-navette.active {
            --bg-btn: var(--accent);
            --bd-btn: var(--accent);
            --fg-btn: #0b0b0b;
            box-shadow: 0 0 0 2px rgba(247, 201, 72, 0.25), 0 6px 16px rgba(0, 0, 0, 0.3) inset;
        }

        @media (max-width: 720px) {
            .time-modal .navette-choice {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        .clear-navette-modal .modal-content {
            width: min(540px, calc(100% - 36px));
            background: linear-gradient(180deg, rgba(18, 25, 34, 0.98), rgba(12, 20, 27, 0.98));
            border: 1px solid rgba(247, 201, 72, 0.18);
        }

        .clear-navette-modal.is-danger .modal-content {
            border-color: rgba(239, 68, 68, 0.5);
            box-shadow: 0 18px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(239, 68, 68, 0.2);
        }

        .clear-navette-modal.is-success .modal-content {
            border-color: rgba(34, 197, 94, 0.5);
            box-shadow: 0 18px 32px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(34, 197, 94, 0.2);
        }

        .clear-navette-modal.is-error .modal-content {
            border-color: rgba(239, 68, 68, 0.5);
            box-shadow: 0 18px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(239, 68, 68, 0.2);
        }

        .clear-navette-hero {
            display: flex;
            gap: 12px;
            align-items: flex-start;
        }

        .clear-navette-icon {
            width: 44px;
            height: 44px;
            border-radius: 14px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(239, 68, 68, 0.12);
            color: #f87171;
            border: 1px solid rgba(239, 68, 68, 0.35);
        }

        .clear-navette-message {
            margin: 4px 0 0;
            color: var(--text-dim);
            font-size: 13px;
        }

        .clear-navette-stats {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
            margin-top: 14px;
        }

        .clear-navette-stat {
            border-radius: 12px;
            border: 1px solid var(--border);
            background: var(--panel-2);
            padding: 10px 12px;
            text-align: center;
        }

        .clear-navette-stat span {
            display: block;
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.6px;
            color: var(--text-dim);
        }

        .clear-navette-stat strong {
            display: block;
            margin-top: 6px;
            font-size: 18px;
            font-weight: 700;
            color: var(--text);
        }

        .clear-navette-note {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-top: 12px;
            padding: 8px 10px;
            border-radius: 10px;
            background: rgba(239, 68, 68, 0.08);
            color: #fca5a5;
            border: 1px solid rgba(239, 68, 68, 0.25);
            font-size: 12px;
        }

        .clear-navette-modal.is-success .clear-navette-icon {
            background: rgba(34, 197, 94, 0.12);
            color: #34d399;
            border-color: rgba(34, 197, 94, 0.35);
        }

        .clear-navette-modal.is-success .clear-navette-note {
            background: rgba(34, 197, 94, 0.08);
            color: #86efac;
            border-color: rgba(34, 197, 94, 0.25);
        }

        #clearNavetteOk {
            display: none;
        }

        .deploy-status-modal .modal-content {
            width: min(560px, calc(100% - 36px));
        }

        .deploy-status-summary {
            margin: 6px 0 0;
            color: var(--text-dim);
            font-size: 13px;
        }

        .deploy-status-details {
            display: grid;
            gap: 10px;
            margin-top: 14px;
        }

        .deploy-status-card {
            border: 1px solid var(--border);
            border-radius: 12px;
            padding: 12px;
            background: var(--panel-2);
        }

        .deploy-status-card.success {
            border-color: rgba(34, 197, 94, 0.45);
        }

        .deploy-status-card.error {
            border-color: rgba(239, 68, 68, 0.45);
        }

        .deploy-status-card-title {
            display: flex;
            align-items: center;
            gap: 8px;
            font-weight: 700;
            font-size: 13px;
            margin-bottom: 6px;
        }

        .deploy-status-dot {
            width: 10px;
            height: 10px;
            border-radius: 999px;
            background: var(--text-dim);
        }

        .deploy-status-dot.success {
            background: #22c55e;
        }

        .deploy-status-dot.error {
            background: #ef4444;
        }

        .deploy-status-list {
            margin: 0;
            padding-left: 18px;
            color: var(--text-dim);
            font-size: 12px;
        }

        .deploy-status-list li {
            margin: 3px 0;
        }

        .deploy-status-link {
            color: var(--accent);
            font-weight: 600;
        }

        .notifications-modal {
            width: min(640px, calc(100% - 36px));
            max-height: 80vh;
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .notifications-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }

        .notifications-header h3 {
            margin: 0;
        }

        .notifications-actions {
            display: inline-flex;
            gap: 8px;
            flex-wrap: wrap;
            justify-content: flex-end;
        }

        .notifications-close-btn {
            --bg-btn: transparent;
            --bd-btn: transparent;
            --fg-btn: #ef4444;
            font-size: 18px;
            padding: 6px 8px;
            min-width: 36px;
            box-shadow: none;
        }

        .notifications-close-btn:hover {
            --bg-btn: rgba(239, 68, 68, 0.12);
        }

        .notifications-list {
            display: flex;
            flex-direction: column;
            gap: 10px;
            padding: 10px;
            border-radius: 12px;
            border: 1px solid var(--border);
            background: var(--panel-2);
            overflow-y: auto;
            max-height: 55vh;
        }

        .notification-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 10px 12px;
            border-radius: 12px;
            border: 1px solid var(--border);
            background: rgba(255, 255, 255, 0.02);
            cursor: pointer;
        }

        .notification-item:not(.is-read) {
            border-color: rgba(247, 201, 72, 0.7);
        }

        .notification-item.is-read {
            opacity: 0.6;
            cursor: default;
        }

        .notification-main {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .notification-actions {
            display: inline-flex;
            gap: 8px;
            align-items: center;
            flex-wrap: wrap;
            justify-content: flex-end;
        }

        .notification-title {
            font-weight: 700;
        }

        .notification-meta {
            color: var(--text-dim);
            font-size: 12px;
        }

        .notification-status {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 2px 8px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 700;
            border: 1px solid transparent;
        }

        .notification-status.completed {
            background: rgba(34, 197, 94, 0.15);
            color: #22c55e;
            border-color: rgba(34, 197, 94, 0.3);
        }

        .notification-status.refused {
            background: rgba(239, 68, 68, 0.15);
            color: #f87171;
            border-color: rgba(239, 68, 68, 0.3);
        }

        .notification-delete-btn {
            border: 1px solid transparent;
            background: transparent;
            color: var(--text-dim);
            border-radius: 10px;
            width: 32px;
            height: 32px;
            font-size: 14px;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .notification-delete-btn:hover {
            background: var(--panel);
            color: var(--text);
        }

        .reservation-modal .modal-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }

        .reservation-modal .modal-header h3 {
            margin: 0;
        }

        .reservation-modal .modal-icon-btn {
            border: 1px solid var(--border);
            background: var(--panel-2);
            color: var(--text);
            border-radius: 10px;
            width: 36px;
            height: 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            position: relative;
        }

        .reservation-modal .modal-icon-btn:hover {
            background: var(--bg-elev);
        }

        #reservationModal .modal-content {
            max-width: 600px;
            width: min(600px, calc(100% - 36px));
            overflow: auto;
            -webkit-overflow-scrolling: touch;
        }

        #reservationModal .reservation-summary {
            margin: 8px 0 14px;
            padding: 12px;
            border-radius: 12px;
            border: 1px solid var(--border);
            background: var(--panel-2);
        }

        #reservationModal .reservation-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px 16px;
        }

        #reservationModal .reservation-grid .input-group {
            margin-bottom: 0;
        }

        #reservationModal .reservation-grid input[type="text"],
        #reservationModal .reservation-grid input[type="tel"],
        #reservationModal .reservation-grid input[type="time"],
        #reservationModal .reservation-grid input[type="number"] {
            height: 38px;
        }

        #reservationModal .reservation-grid textarea {
            resize: none;
        }


        #reservationModal .time-row {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            align-items: center;
            gap: 10px;
        }

        #reservationModal .checkbox-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px 10px;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--panel-2);
            font-size: 12px;
            cursor: pointer;
            height: 38px;
        }

        #reservationModal .time-row input[type="time"],
        #reservationModal .time-row .checkbox-pill {
            width: 100%;
        }

        #reservationModal .reservation-actions {
            margin-top: 14px;
            padding-top: 12px;
            border-top: 1px solid var(--border);
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        #reservationModal .reservation-actions-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.6px;
            color: var(--text-dim);
        }

        #reservationModal .reservation-actions-row {
            display: grid;
            grid-template-columns: 1fr auto;
            gap: 12px;
            align-items: center;
        }

        #reservationModal .reservation-actions .btn {
            min-height: 38px;
        }

        #reservationModal .sms-actions {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }

        #reservationModal .sms-actions a {
            text-decoration: none;
        }

        #reservationModal .drivers-sms-rows {
            margin-top: 12px;
            margin-bottom: 6px;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .grid-4-cols-auto {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .grid-4-cols-auto strong {
            flex: 0 0 auto;
            margin-right: auto;
        }

        .grid-4-cols-auto a {
            flex: 0 0 auto;
        }

        .modal-buttons {
            display: flex;
            justify-content: flex-end;
            gap: 8px;
            margin-top: 10px
        }

        .transfer-wrap {
            position: relative
        }

        .transfer-menu {
            position: absolute;
            top: 100%;
            left: 0;
            /* colle au côté gauche du bouton */
            right: auto;
            /* désactive le côté droit */
            transform: translateX(-100%);
            /* pousse le menu vers la gauche */
            z-index: 9999;
            display: none;
            min-width: 180px;
            padding: 8px;
            background: var(--panel-2);
            border: 1px solid var(--border);
            border-radius: var(--radius-sm);
        }


        /* =========================
           Utilities
           ========================= */


        .navette-section.disabled {
            display: none
        }

        /* hide third navette if disabled */

        /* Masquer la scrollbar native et appliquer un style personnalisé */
        .cities-list {
            scrollbar-width: thin;
            /* Firefox */
            scrollbar-color: #1a1f25 #0d1117;
            /* pouce + fond */
        }

        /* Chrome, Edge, Safari */
        .cities-list::-webkit-scrollbar {
            width: 8px;
        }

        .cities-list::-webkit-scrollbar-track {
            background: #0d1117;
            /* fond sombre */
        }

        .cities-list::-webkit-scrollbar-thumb {
            background-color: #1a1f25;
            /* pouce sombre */
            border-radius: 8px;
            border: 2px solid #0d1117;
            /* espace autour */
        }

        .cities-list::-webkit-scrollbar-thumb:hover {
            background-color: #2a313a;
            /* un peu plus clair au hover */
        }


        /* =========================
           Responsive
           ========================= */
        @media (max-width: 1100px) {
            .main-content {
                grid-template-columns: 1fr
            }

            .left-panel {
                max-height: 55vh !important
            }
        }

        @media (max-width: 900px) {
            .header {
                align-items: center;
                text-align: center
            }

            .top-nav {
                grid-template-columns: 1fr;
                justify-items: center;
            }

            .nav-brand {
                justify-content: center;
                width: 100%;
            }

            .top-nav-actions {
                width: 100%;
                justify-content: center;
                flex-wrap: wrap;
            }

            .top-nav-center {
                width: 100%;
                justify-content: center;
            }

            .header-actions {
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 10px;
            }

            .actions-group {
                justify-content: center;
            }

            .actions-secondary {
                justify-content: center;
            }

            .header-actions>div {
                width: 100%
            }

            .header-actions .btn {
                flex: 1 1 100% !important;
                width: 100%
            }
        }

        @media (min-width: 820px) and (max-width: 1100px) {
            .cities-list {
                display: grid;
                grid-template-columns: 1fr 1fr;
                grid-auto-rows: min-content;
                column-gap: 8px;
                align-items: start;
            }
        }

        @media (min-width: 900px) {
            .stats-row {
                width: auto;
            }

            .fill-rate-box {
                white-space: nowrap;
            }
        }

        #loader-overlay {
            position: fixed;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(8, 12, 17, 0.95);
            z-index: 9999;
            color: #fff;
            font-family: Inter, system-ui, Arial, sans-serif
        }

        #loader-overlay .box {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
            padding: 24px 28px;
            border-radius: 16px;
            background: rgba(255, 255, 255, 0.06);
            backdrop-filter: blur(6px)
        }

        #loader-spinner {
            width: 36px;
            height: 36px;
            border: 3px solid rgba(255, 255, 255, .3);
            border-top-color: var(--accent);
            border-radius: 50%;
            animation: spin 1s linear infinite
        }

        @keyframes spin {
            to {
                transform: rotate(360deg)
            }
        }

        #reservationModal #tripStartTime {
            max-width: 120px;
            flex: 0 0 auto;
        }

        #reservationModal #tripStartTime::-webkit-calendar-picker-indicator {
            filter: invert(1);
            opacity: 0.9;
        }


        #reservationModal .modal-buttons {
            width: 100%;
            box-sizing: border-box;
            padding-left: 6px;
            /* small insets so buttons don't touch rounded border */
            padding-right: 6px;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            /* always 3 equal columns */
            gap: 12px;
            align-items: stretch;
            justify-items: stretch;
            margin-top: 8px;
        }

        #reservationModal .modal-buttons .btn {
            min-width: 0;
            /* allow shrinking inside grid cell */
            width: 100%;
            min-height: 46px;
            /* slightly taller for consistency with shadows */
            box-sizing: border-box;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 10px 14px;
            /* consistent internal padding */
            line-height: 1.1;
            text-align: center;
            white-space: nowrap;
            /* keep on one line; can remove if needed */
        }


        @media (max-width: 900px) {
            .navette-bar .trip-segment {
                font-size: 8px !important;
                /* taille réduite */
                padding: 0 2px !important;
                /* moins de marge */
            }
        }

        @media (min-width: 550px) and (max-width: 749px) {
            #reservationModal .reservation-grid .reservation-count,
            #reservationModal .reservation-grid .reservation-notes {
                grid-column: 1 / -1;
            }

            #reservationModal .reservation-notes textarea {
                height: 38px !important;
                min-height: 38px !important;
            }

            #reservationModal .reservation-count .count-row {
                display: grid;
                grid-template-columns: repeat(9, minmax(0, 1fr));
                gap: 6px;
                align-items: center;
            }

            #reservationModal .reservation-count .count-quick {
                display: contents;
            }

            #reservationModal .reservation-count .count-choice {
                width: 100%;
                height: 38px;
            }

            #reservationModal .reservation-count .count-manual {
                margin-left: 0;
            }

            #reservationModal .reservation-count .count-manual input {
                width: 100%;
            }
        }


        @media (max-width: 749px) {
            #reservationModal .reservation-grid {
                grid-template-columns: 1fr;
            }

            #reservationModal .time-row {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            #reservationModal #tripStartTime {
                max-width: none;
                width: 100%;
            }

            #reservationModal .reservation-notes textarea {
                height: 38px;
                min-height: 38px;
            }

            #reservationModal .reservation-actions-row {
                grid-template-columns: repeat(3, minmax(0, 1fr));
                gap: 8px;
            }

            #reservationModal .reservation-actions-row .sms-actions {
                display: contents;
            }

            #reservationModal .reservation-actions-row .sms-actions a,
            #reservationModal .reservation-actions-row .sms-actions button,
            #reservationModal .reservation-actions-row .transfer-wrap,
            #reservationModal .reservation-actions-row .transfer-wrap .btn {
                width: 100%;
            }

        }

        @media (max-width: 749px) {
            #reservationModal .stepper-buttons {
                width: 18px;
            }

            #reservationModal .stepper-btn .lucide {
                width: 10px;
                height: 10px;
            }
        }

        @media (min-width: 750px) {
            #reservationModal .reservation-notes textarea {
                height: 84px !important;
                min-height: 84px !important;
            }

            #reservationModal .reservation-grid .count-manual input[type="number"] {
                height: 84px;
                min-height: 84px;
            }

            #reservationModal .reservation-count .count-row {
                align-items: flex-start;
            }

            #reservationModal .reservation-count .count-quick {
                flex: 1;
                flex-wrap: wrap;
                column-gap: 14px;
                row-gap: 8px;
                justify-content: space-between;
                min-width: 0;
            }

            #reservationModal .reservation-count .count-choice {
                flex: 0 0 auto;
            }

            #reservationModal .reservation-count .count-manual {
                margin-left: 10px;
                flex: 0 0 auto;
            }
        }


        /* === iOS + mobile safe scrolling for reservation modal === */
        /* On iOS, overflow inside transformed elements often fails.
   We fix by using fixed positioning and removing translateY. */
        @media (max-width: 1000px) {
            #reservationModal .modal-content {
                position: fixed;
                left: 50%;
                top: 6vh;
                transform: translateX(-50%);
                /* remove vertical translate to allow scroll */
                width: min(900px, calc(100vw - 24px));
                max-height: calc(100vh - 12vh);
                overflow: auto;
                -webkit-overflow-scrolling: touch;
            }
        }

        /* Explicit iOS safari feature query as an extra guard */
        @supports (-webkit-touch-callout: none) {
            #reservationModal .modal-content {
                position: fixed;
                left: 50%;
                top: 6vh;
                transform: translateX(-50%);
                width: min(900px, calc(100vw - 24px));
                max-height: calc(100vh - 12vh);
                overflow: auto;
                -webkit-overflow-scrolling: touch;
            }

            #reservationModal #tripStartTime {
                height: 38px;
                min-height: 38px;
                padding: 6px 10px;
                line-height: 1;
            }
        }
