/* ════════════════════════════════════════════════════════════════════
   LogBook — Salott-IT · Skin macOS (light + dark)
   ─────────────────────────────────────────────────────────────────────
   Couche de peau « macOS » appliquée PAR-DESSUS logbook-theme.css.
   - Charte conservée : navy #0B2559 (primaire) + orange #FF6B35 (accent).
   - Signatures macOS : barre de menus translucide (vibrancy), feux
     tricolores décoratifs, contrôles segmentés, boutons push, sheets,
     menus contextuels givrés, dock mobile, scrollbars overlay.
   - Opt-out : retirer le <link> de ce fichier dans app/views/layout.php
     suffit à revenir au thème précédent (aucun markup modifié).
   ════════════════════════════════════════════════════════════════════ */

/* ─── 0. Tokens ──────────────────────────────────────────────────────── */
:root {
    /* Charte Salott-IT */
    --mac-navy:        #0B2559;
    --mac-navy-dk:     #06183d;
    --mac-navy-md:     #1a3f7a;
    --mac-orange:      #FF6B35;

    /* Accent actif (boutons, sélections, focus) */
    --mac-accent:          var(--mac-navy);
    --mac-accent-hover:    #143468;
    --mac-accent-soft:     rgba(11, 37, 89, 0.10);
    --mac-accent-softer:   rgba(11, 37, 89, 0.06);
    --mac-focus-ring:      rgba(11, 37, 89, 0.28);

    /* Surfaces (macOS light) */
    --mac-desktop:     #f2f3f7;   /* fond de fenêtre / bureau            */
    --mac-window:      #ffffff;   /* cartes, panneaux                    */
    --mac-elevated:    #ffffff;   /* menus, popovers, sheets             */
    --mac-inset:       #f5f5f7;   /* zones encastrées (footers, wells)   */
    --mac-bar:         rgba(255, 255, 255, 0.74);  /* barres translucides */
    --mac-bar-border:  rgba(0, 0, 0, 0.08);

    /* Encres */
    --mac-text:        #1d1d1f;
    --mac-text-2:      #515154;
    --mac-muted:       #6e6e73;
    --mac-hairline:    rgba(0, 0, 0, 0.09);
    --mac-hairline-2:  rgba(0, 0, 0, 0.06);

    /* Ombres en couches (élévation macOS) */
    --mac-shadow-card:  0 0 0 0.5px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.05), 0 8px 22px rgba(0,0,0,0.05);
    --mac-shadow-menu:  0 0 0 0.5px rgba(0,0,0,0.06), 0 10px 34px rgba(0,0,0,0.16);
    --mac-shadow-sheet: 0 0 0 0.5px rgba(0,0,0,0.05), 0 24px 70px rgba(0,0,0,0.26);
    --mac-shadow-btn:   inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(0,0,0,0.18);

    --mac-radius-sm:  6px;
    --mac-radius:     10px;
    --mac-radius-lg:  14px;

    --mac-blur:       saturate(180%) blur(20px);

    /* Relais vers les variables historiques du design system */
    --ks-bg-body:     var(--mac-desktop);
    --ks-bg-card:     var(--mac-window);
    --ks-text-main:   var(--mac-text);
    --ks-text-muted:  var(--mac-muted);
    --ks-border-soft: var(--mac-hairline);
    --radius:         var(--mac-radius-sm);
}

/* ─── 1. Base ────────────────────────────────────────────────────────── */
html { background: var(--mac-desktop); }

body {
    background-color: var(--mac-desktop) !important;
    color: var(--mac-text);
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display',
                 'Inter', 'Segoe UI', system-ui, sans-serif;
    letter-spacing: -0.006em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
body.bg-light { background-color: var(--mac-desktop) !important; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    letter-spacing: -0.015em;
    font-weight: 700;
}

::selection { background: rgba(11, 37, 89, 0.18); }

/* Scrollbars overlay façon macOS */
* { scrollbar-width: thin; scrollbar-color: rgba(0,0,0,0.28) transparent; }
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.24);
    border-radius: 99px;
    border: 2px solid transparent;
    background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, 0.38); }
*::-webkit-scrollbar-corner { background: transparent; }

/* Liens */
a { color: var(--mac-navy-md); }
a:hover { color: var(--mac-navy); }

/* ─── 2. Topbar → barre de menus macOS ──────────────────────────────── */
/* z-index : backdrop-filter crée un contexte d'empilement → sans z-index
   explicite, les dropdowns de la barre passeraient SOUS le contenu. */
.lb-topbar {
    position: relative;
    z-index: 1031;
    background: var(--mac-bar) !important;
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border-bottom: 1px solid var(--mac-bar-border);
    padding: 0.65rem 1rem;
    min-height: 60px;
}
.lb-topbar .topbar-logo { height: 58px; }
.lb-topbar .topbar-sep { background: var(--mac-hairline); }

/* ─── 3. Contrôles segmentés (thème / langue / sélecteur entité) ────── */
.lb-topbar .topbar-theme-btns,
.lb-topbar .topbar-lang-btns {
    background: rgba(0, 0, 0, 0.055);
    border: none;
    border-radius: 8px;
    padding: 2px;
    gap: 2px;
    overflow: visible;
}
.lb-topbar .topbar-icon-btn,
.lb-topbar .topbar-lang-btn {
    height: 24px;
    padding: 0 10px;
    border-radius: 6px;
    color: var(--mac-text-2);
    font-weight: 600;
    transition: background 0.16s, color 0.16s, box-shadow 0.16s;
}
.lb-topbar .topbar-icon-btn:hover,
.lb-topbar .topbar-lang-btn:hover {
    background: rgba(0, 0, 0, 0.05);
    color: var(--mac-text);
}
.lb-topbar .topbar-icon-btn.active,
.lb-topbar .topbar-lang-btn.active {
    background: #ffffff;
    color: var(--mac-navy);
    box-shadow: 0 0 0 0.5px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.16);
}
.lb-topbar .topbar-entity-select {
    background-color: rgba(0, 0, 0, 0.055);
    border: none;
    border-radius: 7px;
    height: 28px;
    font-weight: 600;
    color: var(--mac-text);
    transition: background 0.16s, box-shadow 0.16s;
}
.lb-topbar .topbar-entity-select:hover {
    background-color: rgba(0, 0, 0, 0.09);
    border: none;
}
.lb-topbar .topbar-entity-select:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--mac-focus-ring);
}

/* ─── 4. Navbar → toolbar navy « verre teinté » ─────────────────────── */
/* z-index : même raison que la topbar — le backdrop-filter isole le
   contexte d'empilement, les menus déroulants doivent rester AU-DESSUS
   du contenu et des bandes de sous-menus. */
.navbar-custom {
    position: relative;
    z-index: 1030;
    background-color: rgba(11, 37, 89, 0.86) !important;
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
    box-shadow: 0 1px 0 rgba(0,0,0,0.06), 0 8px 24px rgba(11,37,89,0.18);
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}
.navbar-custom .nav-link {
    border-radius: 7px;
    font-weight: 500;
    transition: background-color 0.16s, color 0.16s;
}
.navbar-custom .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.12) !important;
}
/* Item actif : pastille pleine, sans soulignement (style toolbar mac) */
.navbar-custom .nav-link.active {
    background-color: rgba(255, 255, 255, 0.20) !important;
    box-shadow: inset 0 0 0 0.5px rgba(255,255,255,0.22) !important;
    color: #ffffff !important;
}
.badge-alert {
    background-color: var(--mac-orange) !important;
    box-shadow: 0 0 0 2px rgba(11, 37, 89, 0.85);
}

/* La barre ne doit JAMAIS élargir la page (le débordement rognait le bord
   gauche + scrollbar horizontale) : si les items ne tiennent pas, le menu
   de gauche défile dans son propre rail ; le menu utilisateur reste entier. */
.navbar-custom .navbar-collapse { min-width: 0; }
@media (min-width: 992px) {
    .navbar-custom .navbar-nav.me-auto {
        min-width: 0;
        flex-wrap: nowrap;
        overflow-x: auto;
        max-width: 100%;
        scrollbar-width: none;             /* rail discret (Firefox) */
    }
    .navbar-custom .navbar-nav.me-auto::-webkit-scrollbar { display: none; }
    .navbar-custom .navbar-nav .nav-link { white-space: nowrap; }
    .navbar-custom .navbar-collapse > .navbar-nav:last-child { flex-shrink: 0; }
}
/* Largeurs intermédiaires : items compactés pour tenir d'un seul tenant */
@media (min-width: 992px) and (max-width: 1499.98px) {
    .navbar-custom .nav-link {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
        font-size: 0.875rem;
    }
}

/* ─── 5. Sous-menus modules → barre d'onglets pastille ──────────────── */
.dash-nav, .loc-nav, .gen-nav, .mnt-nav,
.tcv-nav, .rep-nav, .adm-nav, .dep-nav {
    background: var(--mac-bar) !important;
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border-bottom: 1px solid var(--mac-bar-border) !important;
    /* Le bleed « pleine largeur » des vues vaut -1rem alors que le gutter
       Bootstrap 5 réel est 0.75rem → 4 px de débordement de chaque côté
       (scrollbar horizontale permanente). On aligne sur le vrai gutter. */
    margin-left: -0.75rem !important;
    margin-right: -0.75rem !important;
}
.dash-nav .nav-link, .loc-nav .nav-link, .gen-nav .nav-link,
.mnt-nav .nav-link, .tcv-nav .nav-link, .rep-nav .nav-link,
.adm-nav .nav-link, .dep-nav .nav-link {
    border-radius: 7px;
    transition: background 0.16s, color 0.16s;
}
.dash-nav .nav-link:hover, .loc-nav .nav-link:hover, .gen-nav .nav-link:hover,
.mnt-nav .nav-link:hover, .tcv-nav .nav-link:hover, .rep-nav .nav-link:hover,
.adm-nav .nav-link:hover, .dep-nav .nav-link:hover {
    background: var(--mac-accent-softer) !important;
}
.dash-nav .nav-link.active, .loc-nav .nav-link.active, .gen-nav .nav-link.active,
.mnt-nav .nav-link.active, .tcv-nav .nav-link.active, .rep-nav .nav-link.active,
.adm-nav .nav-link.active, .dep-nav .nav-link.active {
    background: var(--mac-accent-soft) !important;
    color: var(--mac-navy) !important;
}

/* ─── 6. Cartes ──────────────────────────────────────────────────────── */
.card, .lb-card {
    border: 1px solid var(--mac-hairline-2);
    border-radius: var(--mac-radius-lg);
    box-shadow: var(--mac-shadow-card);
    background-color: var(--mac-window);
}
.card-header, .lb-card-header {
    background: transparent;
    border-bottom: 1px solid var(--mac-hairline-2);
    font-weight: 600;
}
.card-footer, .lb-card-footer {
    background: var(--mac-inset);
    border-top: 1px solid var(--mac-hairline-2);
}
.lb-stat-card {
    border-radius: var(--mac-radius-lg);
    border: 1px solid var(--mac-hairline-2);
    box-shadow: var(--mac-shadow-card);
}
.lb-stat-card:hover { transform: translateY(-2px); }
.shadow-sm { box-shadow: var(--mac-shadow-card) !important; }

/* ─── 7. Boutons (push buttons macOS) ───────────────────────────────── */
.btn {
    border-radius: 7px;
    font-weight: 500;
    transition: background-color 0.14s, border-color 0.14s, color 0.14s,
                box-shadow 0.14s, transform 0.06s;
}
.btn:active:not(:disabled) { transform: scale(0.985); }
.btn:focus-visible { box-shadow: 0 0 0 3.5px var(--mac-focus-ring) !important; }

.btn-primary {
    background: linear-gradient(180deg, #16356f 0%, var(--mac-navy) 55%, #0a204e 100%) !important;
    border: none !important;
    box-shadow: var(--mac-shadow-btn);
}
.btn-primary:hover {
    background: linear-gradient(180deg, #1b3d7d 0%, #103060 55%, #0b2354 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 2px 6px rgba(11,37,89,0.32);
}
.btn-primary:active, .btn-primary:focus {
    background: linear-gradient(180deg, #0e2a5e 0%, var(--mac-navy-dk) 100%) !important;
}
.btn-success {
    background: linear-gradient(180deg, #23a25d 0%, #198754 60%, #147246 100%);
    border: none;
    box-shadow: var(--mac-shadow-btn);
}
.btn-danger {
    background: linear-gradient(180deg, #e8505e 0%, #dc3545 60%, #c52f3e 100%);
    border: none;
    box-shadow: var(--mac-shadow-btn);
}
.btn-secondary {
    background: linear-gradient(180deg, #82909c 0%, #6c757d 70%, #62696f 100%);
    border: none;
    box-shadow: var(--mac-shadow-btn);
}
/* Boutons « légers » : surface inset macOS */
.btn-light, .btn-outline-secondary {
    border-radius: 7px;
}
.btn-outline-secondary {
    border-color: var(--mac-hairline);
    color: var(--mac-text-2);
    background: var(--mac-window);
    box-shadow: 0 1px 1.5px rgba(0,0,0,0.06);
}
.btn-outline-secondary:hover {
    background: var(--mac-inset);
    border-color: var(--mac-hairline);
    color: var(--mac-text);
}
.lb-btn { border-radius: 8px; }
.lb-btn-primary { box-shadow: var(--mac-shadow-btn); }
.btn-hki-primary { border-radius: 8px; }

/* Boutons d'action circulaires des tableaux : adoucis */
.btn-ks-view, .btn-ks-edit, .btn-ks-delete, .btn-ks-validate,
.btn-ks-activate, .btn-ks-deactivate, .btn-ks-reopen,
.btn-ks-check, .btn-ks-stops, .btn-ks-action {
    border-radius: 7px;
    border-width: 1px !important;
}

/* ─── 8. Formulaires ─────────────────────────────────────────────────── */
.form-control, .form-select {
    border-radius: 7px;
    border-color: var(--mac-hairline);
    background-color: var(--mac-window);
    box-shadow: inset 0 0.5px 1.5px rgba(0,0,0,0.06);
    transition: border-color 0.14s, box-shadow 0.14s;
}
.form-control:focus, .form-select:focus {
    border-color: var(--mac-navy-md);
    box-shadow: inset 0 0.5px 1.5px rgba(0,0,0,0.04), 0 0 0 3.5px var(--mac-focus-ring);
}
.form-control::placeholder { color: #a1a1a6; }
.input-group-text {
    border-radius: 7px;
    border-color: var(--mac-hairline);
    background: var(--mac-inset);
    color: var(--mac-muted);
}
.form-label { font-weight: 600; color: var(--mac-text-2); }

/* Cases à cocher / radios */
.form-check-input {
    border-color: rgba(0, 0, 0, 0.25);
    box-shadow: inset 0 0.5px 1px rgba(0,0,0,0.08);
}
.form-check-input:checked {
    background-color: var(--mac-navy);
    border-color: var(--mac-navy);
}
.form-check-input:focus { box-shadow: 0 0 0 3.5px var(--mac-focus-ring); border-color: var(--mac-navy-md); }

/* Interrupteurs macOS */
.form-switch .form-check-input {
    width: 2.45em;
    height: 1.45em;
    border-radius: 99px;
    background-color: rgba(0, 0, 0, 0.16);
    border: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3.4' fill='%23ffffff'/%3e%3c/svg%3e");
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.10);
    transition: background-color 0.2s ease, background-position 0.2s ease;
}
.form-switch .form-check-input:checked {
    background-color: var(--mac-navy);
}

/* ─── 9. Tableaux (listes Finder) ───────────────────────────────────── */
.table { --bs-table-border-color: var(--mac-hairline-2); }
/* En-têtes : surface claire teintée navy (plus de bloc plein) */
.table.table-hover thead th,
.table.table-hover thead th.sorting,
.table.table-hover thead th.sorting_asc,
.table.table-hover thead th.sorting_desc,
table.keller-table thead th, table.ent-table thead th,
table.mnt-table thead th,    table.tcv-table thead th,
table.trip-table thead th,   table.loc-table thead th,
table.report-table thead th, table.dep-table thead th,
table.veh-table thead th,    table.gen-table thead th,
table.val-table thead th {
    background: rgba(11, 37, 89, 0.055) !important;
    color: var(--mac-navy) !important;
    border-bottom: 1px solid var(--mac-hairline) !important;
    font-weight: 700 !important;
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
/* Zébrage + survol discrets */
.table.table-hover > tbody > tr:nth-of-type(even) > td,
.table.table-hover > tbody > tr:nth-of-type(even) > th {
    background-color: rgba(0, 0, 0, 0.015);
}
.table.table-hover > tbody > tr:hover > td,
.table.table-hover > tbody > tr:hover > th {
    background-color: var(--mac-accent-softer) !important;
}
.ks-table-row:hover { background: var(--mac-accent-softer) !important; }
tr[data-ks-crud]:hover { background-color: var(--mac-accent-softer) !important; }
.table > :not(caption) > * > * { padding: 0.55rem 0.75rem; }

/* DataTables : champs + pagination */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    border: 1px solid var(--mac-hairline) !important;
    border-radius: 7px !important;
    background-color: var(--mac-window);
    padding: 0.25rem 0.6rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--mac-navy) !important;
    border-color: var(--mac-navy) !important;
    color: #fff !important;
    border-radius: 7px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button { border-radius: 7px; }

.page-link { border-radius: 7px; margin: 0 2px; border-color: var(--mac-hairline-2); color: var(--mac-navy); }
.pagination .page-item.active .page-link { background: var(--mac-navy); border-color: var(--mac-navy); }

/* ─── 10. Menus déroulants (menus contextuels macOS) ────────────────── */
.dropdown-menu {
    border: 1px solid rgba(0, 0, 0, 0.10);
    border-radius: var(--mac-radius);
    background: rgba(252, 252, 254, 0.86);
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    box-shadow: var(--mac-shadow-menu);
    padding: 5px;
}
.dropdown-item {
    border-radius: 6px;
    padding: 0.4rem 0.65rem;
    font-size: 0.85rem;
    transition: none;
}
.dropdown-item:hover, .dropdown-item:focus {
    background: var(--mac-navy);
    color: #ffffff;
}
.dropdown-item:hover i, .dropdown-item:focus i { color: #ffffff; }
.dropdown-item.text-danger:hover { background: #dc3545; color: #fff !important; }
.dropdown-divider { border-color: var(--mac-hairline); margin: 5px 8px; }

/* La navbar embarque ses propres couleurs !important → on les re-force */
.navbar-custom .dropdown-menu {
    background: rgba(252, 252, 254, 0.88) !important;
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border: 1px solid rgba(0, 0, 0, 0.10) !important;
    border-top: 1px solid rgba(0, 0, 0, 0.10) !important;   /* annule le liseré 3px */
    border-radius: var(--mac-radius);
    box-shadow: var(--mac-shadow-menu);
    padding: 5px;
}
.navbar-custom .dropdown-item { border-radius: 6px; }
.navbar-custom .dropdown-item:hover {
    background-color: var(--mac-navy) !important;
    color: #ffffff !important;
}

/* ─── 11. Modales (sheets / alertes macOS) ──────────────────────────── */
.modal-content {
    border: none;
    border-radius: var(--mac-radius-lg);
    box-shadow: var(--mac-shadow-sheet);
    background: var(--mac-elevated);
    overflow: hidden;
}
.modal-header { border-bottom: 1px solid var(--mac-hairline-2); }
.modal-footer { border-top: 1px solid var(--mac-hairline-2); background: var(--mac-inset); }
.modal-backdrop.show { opacity: 0.32; }
.modal.fade .modal-dialog {
    transition: transform 0.22s cubic-bezier(0.32, 0.72, 0.22, 1.1), opacity 0.18s;
    transform: scale(0.96) translateY(8px);
}
.modal.show .modal-dialog { transform: scale(1) translateY(0); }

/* ─── 12. Offcanvas (panneau latéral) ───────────────────────────────── */
.offcanvas {
    background: rgba(250, 250, 252, 0.92);
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border-left: 1px solid var(--mac-hairline) !important;
    box-shadow: -12px 0 40px rgba(0, 0, 0, 0.12);
}
.offcanvas-header { border-bottom: 1px solid var(--mac-hairline-2); }

/* ─── 13. Toasts (notifications macOS) ──────────────────────────────── */
body #appToastStack .toast {
    border-radius: var(--mac-radius-lg) !important;
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    box-shadow: var(--mac-shadow-menu) !important;
    border: none;
}

/* ─── 14. Alertes, badges, listes, onglets ──────────────────────────── */
.alert {
    border-radius: var(--mac-radius);
    border-width: 1px;
}
.badge { border-radius: 99px; font-weight: 600; letter-spacing: 0.01em; }
.list-group-item { border-color: var(--mac-hairline-2); }
.list-group-item.active { background-color: var(--mac-navy); border-color: var(--mac-navy); }
.list-group-item-action:hover { background-color: var(--mac-accent-softer); }

.nav-tabs { border-bottom-color: var(--mac-hairline); }
.nav-tabs .nav-link {
    border: none;
    border-radius: 8px 8px 0 0;
    color: var(--mac-muted);
    font-weight: 600;
}
.nav-tabs .nav-link:hover { background: var(--mac-accent-softer); color: var(--mac-text); border: none; }
.nav-tabs .nav-link.active {
    background: transparent;
    color: var(--mac-navy);
    border: none;
    box-shadow: inset 0 -2px 0 var(--mac-navy);
}

.nav-pills .nav-link { border-radius: 8px; color: var(--mac-text-2); }
.nav-pills .nav-link.active { background-color: var(--mac-navy); }

/* Cartes mobiles (lb-table-cards) : hairline + radius mac */
@media (max-width: 767.98px) {
    .lb-table-cards tr {
        border-radius: var(--mac-radius-lg);
        border-color: var(--mac-hairline-2);
        box-shadow: var(--mac-shadow-card);
    }
}

/* ─── 15. Dock mobile ───────────────────────────────────────────────── */
.lb-mobile-nav {
    background: rgba(255, 255, 255, 0.78);
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 22px;
    box-shadow: 0 0 0 0.5px rgba(0,0,0,0.04), 0 14px 38px rgba(0, 0, 0, 0.18);
}
.lb-mobile-nav-item { border-radius: 14px; }
.lb-mobile-nav-item:hover, .lb-mobile-nav-item:focus {
    color: var(--mac-navy);
    background: var(--mac-accent-softer);
}
.lb-mobile-nav-fab {
    background: linear-gradient(180deg, #16356f, var(--mac-navy) 60%, var(--mac-navy-dk));
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),
        0 8px 22px rgba(11, 37, 89, 0.45),
        0 0 0 4px rgba(255, 255, 255, 0.85);
}
.lb-mobile-more-menu {
    background: rgba(252, 252, 254, 0.88);
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border: 1px solid rgba(0, 0, 0, 0.10);
    border-radius: var(--mac-radius-lg);
    box-shadow: var(--mac-shadow-menu);
}
.lb-mobile-more-item:hover, .lb-mobile-more-item:focus {
    background: var(--mac-navy);
    color: #fff;
}

/* ─── 16. Divers ─────────────────────────────────────────────────────── */
:focus-visible { outline: none; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
    box-shadow: 0 0 0 3.5px var(--mac-focus-ring);
    border-radius: 6px;
}
footer { color: var(--mac-muted); border-top-color: var(--mac-hairline-2) !important; }

/* Leaflet : popups/contrôles arrondis et givrés */
.leaflet-popup-content-wrapper {
    border-radius: var(--mac-radius) !important;
    box-shadow: var(--mac-shadow-menu) !important;
}
.leaflet-container { border-radius: var(--mac-radius); font-family: inherit !important; }
.leaflet-bar a {
    background: rgba(255,255,255,0.88) !important;
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
}
.leaflet-bar { border-radius: 9px !important; overflow: hidden; box-shadow: var(--mac-shadow-card) !important; border: 1px solid var(--mac-hairline) !important; }

/* Bannières PWA : verre */
.lb-pwa-install-banner {
    background: rgba(255, 255, 255, 0.86);
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border-top: 1px solid var(--mac-hairline);
    border-radius: var(--mac-radius-lg);
    box-shadow: var(--mac-shadow-menu);
}

/* Skip-link conforme charte */
.lb-skip-link { background: var(--mac-navy); border-radius: 7px; }
.lb-skip-link:focus { outline-color: var(--mac-orange); }

/* Réduction de mouvement */
@media (prefers-reduced-motion: reduce) {
    .btn, .modal.fade .modal-dialog, .lb-mobile-nav { transition: none !important; }
}


/* ════════════════════════════════════════════════════════════════════
   DARK MODE — macOS dark (graphite) · accents charte éclaircis
   ════════════════════════════════════════════════════════════════════ */
[data-bs-theme="dark"] {
    --mac-accent:        #7da0e8;             /* navy éclairci lisible sur sombre */
    --mac-accent-hover:  #92b1ee;
    --mac-accent-soft:   rgba(125, 160, 232, 0.16);
    --mac-accent-softer: rgba(125, 160, 232, 0.09);
    --mac-focus-ring:    rgba(125, 160, 232, 0.40);

    --mac-desktop:    #161618;
    --mac-window:     #232326;
    --mac-elevated:   #2a2a2e;
    --mac-inset:      #1d1d20;
    --mac-bar:        rgba(28, 28, 31, 0.72);
    --mac-bar-border: rgba(255, 255, 255, 0.09);

    --mac-text:       #f5f5f7;
    --mac-text-2:     #d1d1d6;
    --mac-muted:      #98989f;
    --mac-hairline:   rgba(255, 255, 255, 0.12);
    --mac-hairline-2: rgba(255, 255, 255, 0.08);

    --mac-shadow-card:  0 0 0 0.5px rgba(255,255,255,0.04), 0 1px 2px rgba(0,0,0,0.40), 0 10px 26px rgba(0,0,0,0.35);
    --mac-shadow-menu:  0 0 0 0.5px rgba(255,255,255,0.07), 0 12px 40px rgba(0,0,0,0.55);
    --mac-shadow-sheet: 0 0 0 0.5px rgba(255,255,255,0.06), 0 26px 80px rgba(0,0,0,0.65);

    --ks-bg-body:     var(--mac-desktop);
    --ks-bg-card:     var(--mac-window);
    --ks-text-main:   var(--mac-text);
    --ks-text-muted:  var(--mac-muted);
    --ks-border-soft: var(--mac-hairline-2);
    --hki-purple-lt:  var(--mac-accent-soft);
}

[data-bs-theme="dark"] body {
    background-color: var(--mac-desktop) !important;
    color: var(--mac-text);
}
[data-bs-theme="dark"] ::selection { background: rgba(125, 160, 232, 0.32); }
[data-bs-theme="dark"] * { scrollbar-color: rgba(255,255,255,0.30) transparent; }
[data-bs-theme="dark"] *::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.26); }
[data-bs-theme="dark"] *::-webkit-scrollbar-thumb:hover { background-color: rgba(255, 255, 255, 0.40); }
[data-bs-theme="dark"] a { color: var(--mac-accent); }
[data-bs-theme="dark"] a:hover { color: var(--mac-accent-hover); }

/* Topbar */
[data-bs-theme="dark"] .lb-topbar {
    background: var(--mac-bar) !important;
    border-bottom: 1px solid var(--mac-bar-border);
}
[data-bs-theme="dark"] .lb-topbar .topbar-theme-btns,
[data-bs-theme="dark"] .lb-topbar .topbar-lang-btns {
    background: rgba(255, 255, 255, 0.08);
    border: none;
}
[data-bs-theme="dark"] .lb-topbar .topbar-icon-btn,
[data-bs-theme="dark"] .lb-topbar .topbar-lang-btn { color: var(--mac-muted); }
[data-bs-theme="dark"] .lb-topbar .topbar-icon-btn:hover,
[data-bs-theme="dark"] .lb-topbar .topbar-lang-btn:hover {
    background: rgba(255, 255, 255, 0.07);
    color: var(--mac-text);
}
[data-bs-theme="dark"] .lb-topbar .topbar-icon-btn.active,
[data-bs-theme="dark"] .lb-topbar .topbar-lang-btn.active {
    background: #5a5a60;
    color: #ffffff;
    box-shadow: 0 0 0 0.5px rgba(255,255,255,0.10), 0 1px 3px rgba(0,0,0,0.40);
}
[data-bs-theme="dark"] .lb-topbar .topbar-entity-select {
    background-color: rgba(255, 255, 255, 0.08);
    border: none;
    color: var(--mac-text);
}

/* Navbar : verre graphite teinté navy */
[data-bs-theme="dark"] .navbar-custom {
    background-color: rgba(13, 26, 53, 0.78) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09) !important;
    box-shadow: 0 8px 26px rgba(0, 0, 0, 0.42);
}
[data-bs-theme="dark"] .navbar-custom .nav-link.active {
    background-color: rgba(255, 255, 255, 0.16) !important;
    box-shadow: inset 0 0 0 0.5px rgba(255,255,255,0.18) !important;
}
[data-bs-theme="dark"] .navbar-custom .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.10) !important;
}

/* Sous-menus */
[data-bs-theme="dark"] .dash-nav, [data-bs-theme="dark"] .loc-nav,
[data-bs-theme="dark"] .gen-nav,  [data-bs-theme="dark"] .mnt-nav,
[data-bs-theme="dark"] .tcv-nav,  [data-bs-theme="dark"] .rep-nav,
[data-bs-theme="dark"] .adm-nav,  [data-bs-theme="dark"] .dep-nav {
    background: var(--mac-bar) !important;
    border-bottom: 1px solid var(--mac-bar-border) !important;
}
[data-bs-theme="dark"] .dash-nav .nav-link.active, [data-bs-theme="dark"] .loc-nav .nav-link.active,
[data-bs-theme="dark"] .gen-nav .nav-link.active,  [data-bs-theme="dark"] .mnt-nav .nav-link.active,
[data-bs-theme="dark"] .tcv-nav .nav-link.active,  [data-bs-theme="dark"] .rep-nav .nav-link.active,
[data-bs-theme="dark"] .adm-nav .nav-link.active,  [data-bs-theme="dark"] .dep-nav .nav-link.active {
    background: var(--mac-accent-soft) !important;
    color: var(--mac-accent) !important;
    border-bottom-color: transparent !important;
}
[data-bs-theme="dark"] .dash-nav .nav-link.active i, [data-bs-theme="dark"] .loc-nav .nav-link.active i,
[data-bs-theme="dark"] .gen-nav .nav-link.active i,  [data-bs-theme="dark"] .mnt-nav .nav-link.active i,
[data-bs-theme="dark"] .tcv-nav .nav-link.active i,  [data-bs-theme="dark"] .rep-nav .nav-link.active i,
[data-bs-theme="dark"] .adm-nav .nav-link.active i,  [data-bs-theme="dark"] .dep-nav .nav-link.active i {
    color: var(--mac-accent) !important;
}
[data-bs-theme="dark"] .dash-nav .nav-link:hover, [data-bs-theme="dark"] .loc-nav .nav-link:hover,
[data-bs-theme="dark"] .gen-nav .nav-link:hover,  [data-bs-theme="dark"] .mnt-nav .nav-link:hover,
[data-bs-theme="dark"] .tcv-nav .nav-link:hover,  [data-bs-theme="dark"] .rep-nav .nav-link:hover,
[data-bs-theme="dark"] .adm-nav .nav-link:hover,  [data-bs-theme="dark"] .dep-nav .nav-link:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    border-bottom-color: transparent !important;
    color: var(--mac-text-2) !important;
}

/* Cartes & surfaces */
[data-bs-theme="dark"] .card, [data-bs-theme="dark"] .lb-card {
    background-color: var(--mac-window);
    border-color: var(--mac-hairline-2);
    box-shadow: var(--mac-shadow-card);
}
[data-bs-theme="dark"] .card-header, [data-bs-theme="dark"] .lb-card-header {
    background: transparent;
    border-bottom-color: var(--mac-hairline-2);
}
[data-bs-theme="dark"] .card-footer, [data-bs-theme="dark"] .lb-card-footer {
    background: var(--mac-inset);
    border-top-color: var(--mac-hairline-2);
}
[data-bs-theme="dark"] .lb-stat-card { background: var(--mac-window); border-color: var(--mac-hairline-2); }
[data-bs-theme="dark"] .bg-white { background-color: var(--mac-window) !important; }
[data-bs-theme="dark"] .bg-light { background-color: var(--mac-inset) !important; }
[data-bs-theme="dark"] .text-muted { color: var(--mac-muted) !important; }
[data-bs-theme="dark"] .lb-card-title i,
[data-bs-theme="dark"] .lb-section-header h2 i { color: var(--mac-accent); }
[data-bs-theme="dark"] .lb-stat-purple .lb-stat-icon { background: var(--mac-accent-soft); color: var(--mac-accent); }

/* Titres de page / tableaux */
[data-bs-theme="dark"] h1.page-title, [data-bs-theme="dark"] h2.page-title,
[data-bs-theme="dark"] h3.page-title, [data-bs-theme="dark"] .page-title {
    color: var(--mac-accent) !important;
}
[data-bs-theme="dark"] .table.table-hover thead th,
[data-bs-theme="dark"] .table.table-hover thead th.sorting,
[data-bs-theme="dark"] .table.table-hover thead th.sorting_asc,
[data-bs-theme="dark"] .table.table-hover thead th.sorting_desc,
[data-bs-theme="dark"] table.keller-table thead th, [data-bs-theme="dark"] table.ent-table thead th,
[data-bs-theme="dark"] table.mnt-table thead th,    [data-bs-theme="dark"] table.tcv-table thead th,
[data-bs-theme="dark"] table.trip-table thead th,   [data-bs-theme="dark"] table.loc-table thead th,
[data-bs-theme="dark"] table.report-table thead th, [data-bs-theme="dark"] table.dep-table thead th,
[data-bs-theme="dark"] table.veh-table thead th,    [data-bs-theme="dark"] table.gen-table thead th,
[data-bs-theme="dark"] table.val-table thead th {
    background: rgba(125, 160, 232, 0.10) !important;
    color: var(--mac-accent) !important;
    border-bottom: 1px solid var(--mac-hairline) !important;
}
[data-bs-theme="dark"] .table {
    --bs-table-color: var(--mac-text-2);
    --bs-table-striped-bg: rgba(255,255,255,0.02);
    --bs-table-hover-bg: rgba(125, 160, 232, 0.08);
    --bs-table-border-color: var(--mac-hairline-2);
}
[data-bs-theme="dark"] .table.table-hover > tbody > tr:nth-of-type(even) > td,
[data-bs-theme="dark"] .table.table-hover > tbody > tr:nth-of-type(even) > th {
    background-color: rgba(255, 255, 255, 0.02);
}
[data-bs-theme="dark"] .table.table-hover > tbody > tr:hover > td,
[data-bs-theme="dark"] .table.table-hover > tbody > tr:hover > th {
    background-color: rgba(125, 160, 232, 0.10) !important;
}
[data-bs-theme="dark"] .ks-table-row:hover { background: rgba(125,160,232,0.10) !important; }
[data-bs-theme="dark"] tr[data-ks-crud]:hover { background-color: rgba(125,160,232,0.10) !important; }
[data-bs-theme="dark"] .btn-ks-view, [data-bs-theme="dark"] .btn-ks-edit,
[data-bs-theme="dark"] .btn-ks-delete, [data-bs-theme="dark"] .btn-ks-validate,
[data-bs-theme="dark"] .btn-ks-activate, [data-bs-theme="dark"] .btn-ks-deactivate,
[data-bs-theme="dark"] .btn-ks-reopen, [data-bs-theme="dark"] .btn-ks-check,
[data-bs-theme="dark"] .btn-ks-stops, [data-bs-theme="dark"] .btn-ks-action {
    background-color: var(--mac-elevated) !important;
}

/* Formulaires */
[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select {
    background-color: var(--mac-inset);
    border-color: var(--mac-hairline);
    color: var(--mac-text);
    box-shadow: inset 0 0.5px 1.5px rgba(0,0,0,0.35);
}
[data-bs-theme="dark"] .form-control:focus, [data-bs-theme="dark"] .form-select:focus {
    background-color: var(--mac-inset);
    border-color: var(--mac-accent);
    box-shadow: inset 0 0.5px 1.5px rgba(0,0,0,0.25), 0 0 0 3.5px var(--mac-focus-ring);
    color: var(--mac-text);
}
[data-bs-theme="dark"] .form-control::placeholder { color: #6f6f76; }
[data-bs-theme="dark"] .input-group-text {
    background: var(--mac-elevated);
    border-color: var(--mac-hairline);
    color: var(--mac-muted);
}
[data-bs-theme="dark"] .form-label { color: var(--mac-text-2); }
[data-bs-theme="dark"] .form-check-input {
    background-color: var(--mac-inset);
    border-color: rgba(255, 255, 255, 0.28);
}
[data-bs-theme="dark"] .form-check-input:checked {
    background-color: var(--mac-accent);
    border-color: var(--mac-accent);
}
[data-bs-theme="dark"] .form-switch .form-check-input {
    background-color: rgba(255, 255, 255, 0.18);
    border: none;
}
[data-bs-theme="dark"] .form-switch .form-check-input:checked { background-color: var(--mac-accent); }

/* Boutons */
[data-bs-theme="dark"] .btn-outline-secondary {
    background: var(--mac-elevated);
    border-color: var(--mac-hairline);
    color: var(--mac-text-2);
}
[data-bs-theme="dark"] .btn-outline-secondary:hover {
    background: #333338;
    border-color: var(--mac-hairline);
    color: var(--mac-text);
}
[data-bs-theme="dark"] .btn-light {
    background-color: var(--mac-elevated);
    border-color: var(--mac-hairline-2);
    color: var(--mac-text);
}
[data-bs-theme="dark"] .lb-btn-primary {
    background: var(--mac-accent);
    border-color: var(--mac-accent);
    color: #10131c;
}
[data-bs-theme="dark"] .lb-btn-primary:hover {
    background: var(--mac-accent-hover);
    border-color: var(--mac-accent-hover);
    color: #10131c;
}
[data-bs-theme="dark"] .lb-btn-secondary { background: var(--mac-accent-soft); color: var(--mac-accent); }
[data-bs-theme="dark"] .lb-btn-outline { color: var(--mac-accent); border-color: var(--mac-accent); }

/* Menus */
[data-bs-theme="dark"] .dropdown-menu {
    background: rgba(44, 44, 48, 0.86);
    -webkit-backdrop-filter: var(--mac-blur);
    backdrop-filter: var(--mac-blur);
    border: 1px solid rgba(255, 255, 255, 0.10);
    box-shadow: var(--mac-shadow-menu);
}
[data-bs-theme="dark"] .dropdown-item { color: var(--mac-text-2); }
[data-bs-theme="dark"] .dropdown-item:hover, [data-bs-theme="dark"] .dropdown-item:focus {
    background: var(--mac-accent);
    color: #10131c;
}
[data-bs-theme="dark"] .dropdown-divider { border-color: rgba(255, 255, 255, 0.10); }
[data-bs-theme="dark"] .navbar-custom .dropdown-menu {
    background: rgba(44, 44, 48, 0.88) !important;
    border: 1px solid rgba(255, 255, 255, 0.10) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.10) !important;
}
[data-bs-theme="dark"] .navbar-custom .dropdown-item { color: var(--mac-text-2) !important; }
[data-bs-theme="dark"] .navbar-custom .dropdown-item:hover {
    background-color: var(--mac-accent) !important;
    color: #10131c !important;
}

/* Modales / offcanvas / toasts */
[data-bs-theme="dark"] .modal-content {
    background: var(--mac-elevated);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: var(--mac-shadow-sheet);
}
[data-bs-theme="dark"] .modal-header { border-bottom-color: var(--mac-hairline-2); }
[data-bs-theme="dark"] .modal-footer { border-top-color: var(--mac-hairline-2); background: var(--mac-inset); }
[data-bs-theme="dark"] .modal-backdrop.show { opacity: 0.5; }
[data-bs-theme="dark"] .offcanvas {
    background: rgba(30, 30, 33, 0.92);
    border-left: 1px solid var(--mac-hairline) !important;
    color: var(--mac-text);
}

/* Listes, alertes, divers */
[data-bs-theme="dark"] .list-group-item {
    background-color: var(--mac-window);
    border-color: var(--mac-hairline-2);
    color: var(--mac-text-2);
}
[data-bs-theme="dark"] .list-group-item:hover { background-color: var(--mac-elevated); }
[data-bs-theme="dark"] .list-group-item.active {
    background-color: var(--mac-accent);
    border-color: var(--mac-accent);
    color: #10131c;
}
[data-bs-theme="dark"] .nav-tabs .nav-link.active {
    background: transparent;
    color: var(--mac-accent);
    box-shadow: inset 0 -2px 0 var(--mac-accent);
    border: none;
}
[data-bs-theme="dark"] .nav-tabs .nav-link:hover { background: rgba(255,255,255,0.05); border: none; }
[data-bs-theme="dark"] .page-link {
    background: var(--mac-window);
    border-color: var(--mac-hairline-2);
    color: var(--mac-accent);
}
[data-bs-theme="dark"] .pagination .page-item.active .page-link {
    background: var(--mac-accent);
    border-color: var(--mac-accent);
    color: #10131c;
}
[data-bs-theme="dark"] footer { color: #6f6f76; border-top-color: var(--mac-hairline-2) !important; }
[data-bs-theme="dark"] hr { border-color: var(--mac-hairline); }
[data-bs-theme="dark"] code { background: rgba(255,255,255,0.08); color: #ffa483; }

/* Dock mobile */
[data-bs-theme="dark"] .lb-mobile-nav {
    background: rgba(30, 30, 33, 0.78);
    border-color: rgba(255, 255, 255, 0.10);
    box-shadow: 0 0 0 0.5px rgba(255,255,255,0.05), 0 14px 38px rgba(0, 0, 0, 0.55);
}
[data-bs-theme="dark"] .lb-mobile-nav-item { color: var(--mac-muted); }
[data-bs-theme="dark"] .lb-mobile-nav-item:hover,
[data-bs-theme="dark"] .lb-mobile-nav-item:focus,
[data-bs-theme="dark"] .lb-mobile-nav-item.active { color: var(--mac-accent); background: var(--mac-accent-softer); }
[data-bs-theme="dark"] .lb-mobile-nav-item.active .lb-mnav-dot { background: var(--mac-accent); }
[data-bs-theme="dark"] .lb-mobile-nav-fab {
    background: linear-gradient(180deg, #8db0f2, var(--mac-accent) 60%, #5d7fc9);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.30),
        0 8px 22px rgba(125, 160, 232, 0.40),
        0 0 0 4px rgba(30, 30, 33, 0.80);
    color: #10131c !important;
}
[data-bs-theme="dark"] .lb-mobile-more-menu {
    background: rgba(44, 44, 48, 0.90);
    border-color: rgba(255, 255, 255, 0.10);
}
[data-bs-theme="dark"] .lb-mobile-more-item { color: var(--mac-text-2); }
[data-bs-theme="dark"] .lb-mobile-more-item:hover { background: var(--mac-accent); color: #10131c; }

/* DataTables dark */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select {
    background-color: var(--mac-inset);
    color: var(--mac-text);
    border-color: var(--mac-hairline) !important;
}
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate { color: var(--mac-muted) !important; }
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--mac-accent) !important;
    border-color: var(--mac-accent) !important;
    color: #10131c !important;
}

/* Leaflet dark : contrôles assortis */
[data-bs-theme="dark"] .leaflet-bar a {
    background: rgba(44, 44, 48, 0.88) !important;
    color: var(--mac-text) !important;
    border-bottom-color: rgba(255,255,255,0.10) !important;
}
[data-bs-theme="dark"] .leaflet-bar { border-color: var(--mac-hairline) !important; }
[data-bs-theme="dark"] .leaflet-popup-content-wrapper,
[data-bs-theme="dark"] .leaflet-popup-tip {
    background: var(--mac-elevated);
    color: var(--mac-text);
}

/* Bannières PWA dark */
[data-bs-theme="dark"] .lb-pwa-install-banner {
    background: rgba(30, 30, 33, 0.88);
    border-color: rgba(255, 255, 255, 0.10);
}
[data-bs-theme="dark"] .lb-pwa-install-banner .lb-pwa-icon {
    background: var(--mac-accent-soft);
    color: var(--mac-accent);
}
[data-bs-theme="dark"] .lb-net-pill {
    background: var(--mac-elevated);
    border-color: var(--mac-hairline);
    color: var(--mac-text);
}


/* ════════════════════════════════════════════════════════════════════
   MODALES — rendu de référence (= version en ligne) à l'intérieur
   ─────────────────────────────────────────────────────────────────────
   Décision produit (2026-06-12) : les modales (fiche course, CRUD,
   confirmations) doivent rester STRICTEMENT identiques à la version
   déployée — seules les surfaces hors modale portent le skin macOS.
   On neutralise donc ici les restyles du skin à l'intérieur de .modal.
   ════════════════════════════════════════════════════════════════════ */

/* Boutons : aplats Bootstrap/app.css d'origine, sans dégradé ni relief */
.modal .btn { border-radius: 0.375rem; }
.modal .btn-primary,
.modal .btn-primary:hover,
.modal .btn-primary:active,
.modal .btn-primary:focus {
    background: #0B2559 !important;
    border: 1px solid #0B2559 !important;
    box-shadow: none;
}
.modal .btn-primary:hover { background: #06183d !important; border-color: #06183d !important; }
.modal .btn-success   { background: #198754; border: 1px solid #198754; box-shadow: none; }
.modal .btn-danger    { background: #dc3545; border: 1px solid #dc3545; box-shadow: none; }
.modal .btn-secondary { background: #6c757d; border: 1px solid #6c757d; box-shadow: none; }
.modal .btn-outline-secondary { background: transparent; box-shadow: none; border-color: #6c757d; color: #6c757d; }
.modal .btn-outline-secondary:hover { background: #6c757d; color: #fff; }

/* Champs : rendu Bootstrap d'origine */
.modal .form-control, .modal .form-select {
    border-radius: 0.375rem;
    border-color: #dee2e6;
    box-shadow: none;
}
.modal .form-control:focus, .modal .form-select:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.modal .input-group-text { border-radius: 0.375rem; border-color: #dee2e6; background: #f8f9fa; }
.modal .form-check-input:checked { background-color: #0B2559; border-color: #0B2559; }
.modal .form-switch .form-check-input {
    width: 2em; height: 1em; border: 1px solid rgba(0,0,0,0.25);
    background-color: transparent; box-shadow: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
}
.modal .form-switch .form-check-input:checked {
    background-color: #0B2559;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

/* Tableaux : en-têtes navy pleins d'origine (app.css) */
.modal .table.table-hover thead th,
.modal table.keller-table thead th, .modal table.trip-table thead th,
.modal table.veh-table thead th,   .modal table.mnt-table thead th {
    background: #0B2559 !important;
    color: #fff !important;
    border: none !important;
    font-size: .82rem;
    letter-spacing: 0.03em;
}
.modal .table.table-hover > tbody > tr:hover > td,
.modal .table.table-hover > tbody > tr:hover > th {
    background-color: rgba(122, 65, 131, 0.08) !important;
}

/* Structure : header/footer/badges comme en ligne */
.modal .modal-header { border-bottom: 0; }
.modal .modal-footer { background: transparent; border-top: 1px solid var(--bs-border-color-translucent, rgba(0,0,0,0.175)); }
.modal .badge { border-radius: 0.375rem; }
.modal .badge.rounded-pill, .modal .badge-source-detected, .modal .badge-source-manual { border-radius: 99px; }

/* Dark mode : valeurs du thème historique (logbook-theme.css) */
[data-bs-theme="dark"] .modal .form-control,
[data-bs-theme="dark"] .modal .form-select {
    background-color: #13132a;
    border-color: rgba(255,255,255,0.12);
    color: #dde0f0;
}
[data-bs-theme="dark"] .modal .form-control:focus,
[data-bs-theme="dark"] .modal .form-select:focus {
    background-color: #1a1a38;
    border-color: #c0392b;
    box-shadow: 0 0 0 0.2rem rgba(192,57,43,0.20);
}
[data-bs-theme="dark"] .modal .input-group-text {
    background-color: #1e1e38;
    border-color: rgba(255,255,255,0.12);
    color: #7878a0;
}
[data-bs-theme="dark"] .modal .modal-footer { border-top-color: rgba(255,255,255,0.08); background: transparent; }


/* ════════════════════════════════════════════════════════════════════
   PAGE DE CONNEXION — fenêtre macOS
   (le <style> inline de la vue gagne à spécificité égale → on préfixe
   par `body` pour reprendre la main sans toucher la vue)
   ════════════════════════════════════════════════════════════════════ */
body .login-container { background: var(--mac-desktop); }
body .login-card {
    position: relative;
    border: 1px solid var(--mac-hairline-2);
    border-radius: var(--mac-radius-lg);
    box-shadow: var(--mac-shadow-sheet);
    overflow: hidden;
}
body .login-card .form-control {
    border-radius: 7px;
    background-color: var(--mac-window);
    border-color: var(--mac-hairline);
    box-shadow: inset 0 0.5px 1.5px rgba(0,0,0,0.06);
}
body .login-card .form-control:focus {
    border-color: var(--mac-navy-md);
    box-shadow: 0 0 0 3.5px var(--mac-focus-ring);
}
body .login-card .btn-submit {
    border-radius: 8px;
    background: linear-gradient(180deg, #16356f 0%, var(--mac-navy) 55%, #0a204e 100%);
    box-shadow: var(--mac-shadow-btn);
}
body .login-card .btn-submit:hover {
    background: linear-gradient(180deg, #1b3d7d 0%, #103060 55%, #0b2354 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 2px 8px rgba(11,37,89,0.35);
}
body .login-card .footer-info { background: var(--mac-inset); border-top: 1px solid var(--mac-hairline-2); }
