/* ============================================================
   Espaces connectés : client (menu clair) et gestion (menu nuit).
   ============================================================ */
.appli { display: flex; min-height: 100vh; }

/* ---------- Menu latéral ---------- */
.menu-lateral {
  width: 264px; flex-shrink: 0; position: sticky; top: 0; height: 100vh; overflow-y: auto;
  background: #fff; border-right: 1px solid var(--trait);
  padding: 24px 16px; display: flex; flex-direction: column; gap: 24px;
}
.menu-lateral .logo { padding: 0 8px; }
.menu-lateral .logo-nom { font-size: 17px; }
.nav { display: flex; flex-direction: column; gap: 2px; }
.nav-lien {
  display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 0 12px; border-radius: 9px;
  font-size: 14px; font-weight: 600; color: var(--texte-2);
}
.nav-lien:hover { background: var(--ivoire-2); color: var(--encre); }
.nav-lien.actif { background: var(--cuivre-clair); color: var(--cuivre-fonce); }
.nav-sous { display: flex; align-items: center; min-height: 34px; padding: 0 12px 0 42px; border-radius: 8px; font-size: 13px; font-weight: 600; color: var(--texte-3); }
.nav-sous:hover { background: var(--ivoire-2); color: var(--encre); }
.compteur {
  margin-left: auto; min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px;
  background: var(--gris-f); color: var(--texte-2); font-size: 11px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center;
}
.compteur:empty { display: none; }
.compteur-accent { background: var(--cuivre); color: #fff; }
.compte { margin-top: auto; display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; background: var(--ivoire); }
.compte-textes { display: flex; flex-direction: column; line-height: 1.3; }
.compte-textes strong { font-size: 14px; }
.compte-textes small { font-size: 12px; color: var(--muted); }
.avatar { width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%; background: var(--nuit); color: #fff; font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.avatar-cuivre { background: #C9793C; color: var(--nuit); }

/* Menu version gestion (fond nuit) */
.gestion .menu-lateral { width: 248px; background: var(--nuit); border-right: 0; padding: 24px 14px; }
.gestion .logo, .gestion .logo-nom { color: #fff; }
.gestion .logo-sous { color: var(--nuit-texte-2); }
.gestion .nav-lien { color: #B7C0CC; }
.gestion .nav-lien:hover { background: var(--nuit-2); color: #fff; }
.gestion .nav-lien.actif { background: var(--nuit-3); color: #fff; }
.gestion .compteur { background: var(--nuit-3); color: #D6DCE4; }
.gestion .compteur-accent { background: #C9793C; color: var(--nuit); }
.gestion .compte { background: var(--nuit-2); }
.gestion .compte-textes strong { color: #fff; }
.gestion .compte-textes small { color: var(--nuit-texte-2); }

/* ---------- Zone principale ---------- */
.principal { flex-grow: 1; min-width: 0; padding: 32px 40px 56px; display: flex; flex-direction: column; gap: 26px; }
.barre-haut { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.barre-haut h1 { font-size: 30px; color: var(--nuit); }
.barre-haut .sous-titre { font-size: 14px; color: var(--muted); font-weight: 500; margin-top: 4px; }
.barre-outils { display: flex; align-items: center; gap: 10px; }
.recherche { display: flex; align-items: center; gap: 8px; width: 280px; height: 40px; padding: 0 12px; border: 1px solid var(--trait-champ); border-radius: 10px; background: #fff; color: var(--muted); }
.recherche input { border: 0; outline: none; font: 500 13px var(--police); width: 100%; background: transparent; color: var(--encre); }
.bouton-icone { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--trait); background: #fff; color: var(--encre); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; position: relative; flex-shrink: 0; }
.bouton-icone .point { position: absolute; top: 8px; right: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--cuivre); border: 2px solid #fff; }
.retour { font-size: 13px; font-weight: 700; color: var(--texte-3); }

.colonnes { display: flex; gap: 24px; align-items: flex-start; }
.colonnes > .large { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.colonnes > .etroite { width: 320px; flex-shrink: 0; display: flex; flex-direction: column; gap: 16px; }
.colonnes > .etroite-340 { width: 340px; }
.colonnes > .etroite-420 { width: 420px; }

.kpis { display: grid; gap: 16px; }
.kpis-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpis-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.kpi { padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.kpi-libelle { font-size: 13px; font-weight: 700; color: var(--muted); }
.kpi-valeur { font-family: var(--police-titre); font-weight: 500; font-size: 32px; color: var(--nuit); }
.kpi-detail { font-size: 12px; font-weight: 600; color: var(--muted); }
.kpi-sombre { background: var(--nuit); border-color: var(--nuit); }
.kpi-sombre .kpi-libelle, .kpi-sombre .kpi-detail { color: #9AA6B6; }
.kpi-sombre .kpi-valeur { color: #fff; }
.kpi-cuivre .kpi-valeur { color: var(--cuivre); }
.kpi-rouge .kpi-valeur { color: var(--rouge); }

.carte-tete { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; }
.carte-tete h2 { font-size: 16px; font-weight: 800; color: var(--nuit); font-family: var(--police); }
.carte-corps { padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.lien-petit { font-size: 13px; font-weight: 700; }

.trajet { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--nuit); white-space: nowrap; }
.trajet-fleche { color: var(--cuivre); display: inline-flex; }
.ref { font-size: 12px; font-weight: 800; color: var(--muted); }

/* ---------- Tableaux ---------- */
.tableau { width: 100%; border-collapse: collapse; font-size: 14px; }
.tableau th { text-align: left; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 0 16px 12px; border-bottom: 1px solid var(--trait); }
.tableau td { padding: 14px 16px; border-bottom: 1px solid var(--trait-2); vertical-align: middle; }
.tableau tr:last-child td { border-bottom: 0; }
.tableau .droite { text-align: right; white-space: nowrap; }
.tableau tbody tr[data-clic] { cursor: pointer; }
.tableau tbody tr[data-clic]:hover { background: var(--ivoire-3); }
.tableau tbody tr.choisie { background: var(--cuivre-pale); }
.enveloppe-tableau { overflow-x: auto; padding: 4px 4px 4px; }

/* ---------- Bloc « à valider » ---------- */
.bloc-a-valider { display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: 16px; background: var(--cuivre-clair); }
.bloc-a-valider-titre strong { display: block; font-size: 16px; color: var(--nuit); }
.bloc-a-valider-titre span { font-size: 13px; font-weight: 600; color: #6B4A2E; }
.ligne-valider { display: flex; align-items: center; gap: 18px; padding: 16px 20px; background: #fff; border: 1px solid var(--trait); border-radius: 12px; flex-wrap: wrap; }
.ligne-valider-infos { flex-grow: 1; display: flex; flex-direction: column; gap: 4px; min-width: 220px; }
.ligne-valider-prix { font-family: var(--police-titre); font-size: 22px; color: var(--nuit); min-width: 80px; text-align: right; }
.ligne-valider.validee { opacity: .55; }

/* ---------- Fil d'activité ---------- */
.fil { display: flex; gap: 12px; }
.fil-icone { width: 34px; height: 34px; flex-shrink: 0; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.fil-textes { display: flex; flex-direction: column; gap: 2px; }
.fil-textes strong { font-size: 13px; line-height: 1.4; }
.fil-textes span { font-size: 12px; color: var(--muted); line-height: 1.4; font-weight: 500; }
.fil-textes small { font-size: 11px; font-weight: 700; color: #8A919C; }
.ton-canard { background: var(--canard-f); color: var(--canard); }
.ton-vert { background: var(--vert-f); color: var(--vert); }
.ton-cuivre { background: var(--cuivre-clair); color: var(--cuivre-fonce); }
.ton-bleu { background: var(--bleu-f); color: var(--bleu); }
.ton-gris { background: var(--gris-f); color: var(--gris); }
.ton-rouge { background: var(--rouge-f); color: var(--rouge); }

/* ---------- Étapes (nouvelle mission) ---------- */
.etapes { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; gap: 14px; }
.etapes li.etape-item { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--muted); }
.etapes li.trait { flex-grow: 1; height: 2px; background: var(--trait); }
.etape-rond { width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--trait-champ); font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.etape-item.faite { color: var(--nuit); }
.etape-item.faite .etape-rond { background: var(--nuit); border-color: var(--nuit); color: #fff; }
.etape-item.en-cours { color: var(--cuivre); }
.etape-item.en-cours .etape-rond { background: var(--cuivre); border-color: var(--cuivre); color: #fff; }
.panneau-etape { display: flex; flex-direction: column; gap: 22px; }
.panneau-etape[hidden] { display: none; }
.grille-3c { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.grille-2c { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.encart { padding: 18px; border-radius: 12px; background: var(--ivoire); }
.pied-form { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid var(--trait-2); }
.lien-gris { font-weight: 700; font-size: 14px; color: var(--texte-3); background: none; border: 0; cursor: pointer; padding: 0; }
.resume-point { display: flex; gap: 12px; }
.resume-point strong { display: block; font-size: 14px; }
.resume-point small { font-size: 12px; color: var(--muted); font-weight: 600; }
.point-plein { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: var(--nuit); flex-shrink: 0; }
.point-vide { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; border: 2px solid var(--cuivre); flex-shrink: 0; }
.ligne-kv { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.ligne-kv span:first-child { color: var(--muted); font-weight: 600; }
.ligne-kv span:last-child { font-weight: 700; text-align: right; }
.encadre-prix { padding: 22px; border-radius: 14px; background: var(--nuit); color: #fff; display: flex; flex-direction: column; gap: 8px; }
.encadre-prix small { font-size: 13px; font-weight: 700; color: #9AA6B6; }
.encadre-prix .montant { font-family: var(--police-titre); font-size: 38px; }
.encadre-prix .montant span { font-size: 16px; color: #9AA6B6; }
.encadre-prix p { font-size: 12px; color: #B7C0CC; line-height: 1.5; }
.options-liste { display: flex; flex-direction: column; gap: 10px; }
.option { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--trait-champ); border-radius: 12px; cursor: pointer; background: #fff; }
.option input { width: 18px; height: 18px; accent-color: var(--cuivre); }
.option span { flex-grow: 1; font-weight: 700; font-size: 14px; }
.option small { font-weight: 800; color: var(--nuit); }

/* ---------- Détail mission ---------- */
.frise-mission { margin: 0; padding: 20px 24px; list-style: none; display: grid; gap: 10px; }
.frise-mission li { display: flex; flex-direction: column; gap: 6px; }
.frise-mission li::before { content: ""; height: 4px; border-radius: 4px; background: var(--trait); }
.frise-mission strong { font-size: 13px; color: var(--muted); }
.frise-mission small { font-size: 12px; color: var(--muted); font-weight: 600; }
.frise-mission li.fait::before { background: var(--nuit); }
.frise-mission li.fait strong { color: var(--nuit); }
.frise-mission li.actuel::before { background: var(--cuivre); }
.frise-mission li.actuel strong { color: var(--cuivre); }
.carte-route { height: 220px; background: #EEF1F4; }
.carte-route svg { width: 100%; height: 100%; }
.deux-adresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.deux-adresses > div { padding: 20px 24px; display: flex; flex-direction: column; gap: 6px; }
.deux-adresses > div + div { border-left: 1px solid var(--trait-2); }
.deux-adresses strong { font-weight: 700; }
.deux-adresses small { font-size: 13px; color: var(--muted); font-weight: 600; }
.photos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.photos-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.photo { aspect-ratio: 4 / 3; border-radius: 8px; background: #E6E9ED; display: flex; align-items: center; justify-content: center; color: #8A919C; }
.note-info { padding: 14px 16px; border-radius: 10px; background: var(--ivoire); font-size: 13px; font-weight: 600; color: var(--texte-3); line-height: 1.5; }
.chauffeur-carte { padding: 18px 20px; display: flex; gap: 14px; align-items: center; }
.rond-lettre { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: var(--canard-f); color: var(--canard); font-weight: 800; display: flex; align-items: center; justify-content: center; }
.rond-lettre-petit { width: 24px; height: 24px; font-size: 11px; }
.total-ligne { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid var(--trait-2); }
.total-ligne .serif { font-size: 24px; color: var(--nuit); }

/* ---------- Modale ---------- */
.fond-modale { position: fixed; inset: 0; z-index: 50; background: rgba(14, 26, 43, .55); display: flex; align-items: center; justify-content: center; padding: 24px; }
.fond-modale[hidden] { display: none; }
.modale { width: 100%; max-width: 760px; max-height: calc(100vh - 48px); overflow-y: auto; background: #fff; border-radius: 20px; display: flex; flex-direction: column; }
.modale-tete { padding: 24px 28px; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 1px solid var(--trait-2); }
.modale-tete h2 { font-size: 24px; color: var(--nuit); }
.modale-corps { padding: 24px 28px; display: flex; flex-direction: column; gap: 20px; }
.modale-pied { padding: 18px 28px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--trait-2); background: var(--ivoire-3); }
.types-probleme { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.type-probleme { border: 1px solid var(--trait-champ); background: #fff; border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; }
.type-probleme:has(input:checked) { border: 2px solid var(--cuivre); background: var(--cuivre-pale); padding: 13px; }
.type-probleme-haut { display: flex; justify-content: space-between; align-items: center; color: var(--cuivre); }
.type-probleme input { accent-color: var(--cuivre); width: 16px; height: 16px; }
.type-probleme strong { font-size: 14px; color: var(--nuit); }
.type-probleme small { font-size: 12px; color: var(--muted); font-weight: 600; line-height: 1.4; }
.vignettes { display: flex; gap: 10px; flex-wrap: wrap; }
.vignette { width: 96px; height: 72px; border-radius: 10px; background: #E6E9ED; display: flex; align-items: center; justify-content: center; color: #8A919C; }
.vignette-ajout { border: 1.5px dashed #CFC9BA; background: var(--ivoire-3); color: var(--texte-3); font: 700 12px var(--police); cursor: pointer; flex-direction: column; gap: 4px; }
.encart-info { display: flex; gap: 12px; padding: 16px; border-radius: 12px; background: var(--ivoire); font-size: 13px; line-height: 1.55; color: var(--texte-2); font-weight: 600; }
.encart-info svg { color: var(--cuivre); flex-shrink: 0; }

/* ---------- Gestion : tâches, route, charge ---------- */
.tache { display: flex; align-items: center; gap: 16px; padding: 16px 20px; border-top: 1px solid var(--trait-2); flex-wrap: wrap; }
.tache .badge { width: 132px; justify-content: center; }
.tache-textes { flex-grow: 1; display: flex; flex-direction: column; gap: 3px; min-width: 240px; }
.tache-textes strong { font-size: 14px; color: var(--nuit); }
.tache-textes span { font-size: 13px; color: var(--muted); font-weight: 600; }
.tache.faite { opacity: .45; }
.route-ligne { display: flex; flex-direction: column; gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--trait-2); }
.route-ligne:last-of-type { border-bottom: 0; }
.route-haut { display: flex; justify-content: space-between; align-items: center; }
.route-haut strong { font-size: 14px; }
.route-haut span { font-size: 12px; font-weight: 700; color: var(--canard); }
.route-haut span.retard { color: var(--rouge); }
.jauge { height: 6px; border-radius: 6px; background: var(--gris-f); display: flex; }
.jauge span { border-radius: 6px; background: var(--cuivre); }
.jauge span.retard { background: #B4483F; }
.histogramme { display: flex; align-items: flex-end; gap: 8px; height: 150px; }
.histogramme div { flex-grow: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.histogramme b { font-size: 12px; color: var(--nuit); }
.histogramme i { width: 32px; border-radius: 6px; background: var(--nuit); display: block; }
.histogramme i.passe { background: #C9CFD8; }
.histogramme i.jour { background: var(--cuivre); }
.histogramme small { font-size: 12px; font-weight: 700; color: var(--muted); }

/* ---------- Gestion : colonnes de missions ---------- */
.filtres { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.tableau-etapes { display: grid; grid-template-columns: repeat(5, minmax(200px, 1fr)); gap: 16px; align-items: start; overflow-x: auto; padding-bottom: 8px; }
.etape-colonne { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.etape-colonne-tete { display: flex; align-items: center; gap: 8px; padding: 0 4px; font-weight: 800; font-size: 14px; color: var(--nuit); }
.etape-colonne-tete i { width: 8px; height: 8px; border-radius: 50%; }
.etape-colonne-tete .compteur { margin-left: 0; }
.bulle { display: flex; flex-direction: column; gap: 12px; padding: 14px; background: #fff; border: 1px solid var(--trait); border-radius: 12px; color: var(--encre); transition: border-color .15s, box-shadow .15s; }
.bulle:hover { color: var(--encre); border-color: #CFC9BA; box-shadow: 0 4px 16px rgba(14, 26, 43, .06); }
.bulle-haut { display: flex; justify-content: space-between; align-items: center; }
.bulle-haut strong { font-size: 14px; color: var(--nuit); }
.bulle-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.bulle-points { display: flex; flex-direction: column; gap: 8px; }
.bulle-point { display: flex; gap: 10px; }
.bulle-point .point-plein, .bulle-point .point-vide { width: 8px; height: 8px; }
.bulle-point strong { display: block; font-size: 13px; }
.bulle-point small { font-size: 12px; color: var(--muted); font-weight: 600; }
.bulle-qui { padding-top: 10px; border-top: 1px solid var(--trait-2); display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; }
.bulle-qui.libre { color: var(--ambre); }

/* ---------- Gestion : affectation ---------- */
.onglets { display: flex; gap: 28px; border-bottom: 1px solid var(--trait); }
.onglets button { height: 44px; background: none; border: 0; border-bottom: 2px solid transparent; font: 700 14px var(--police); color: var(--muted); cursor: pointer; padding: 0; }
.onglets button[aria-selected="true"] { color: var(--nuit); border-bottom-color: var(--cuivre); }
.bloc-restit { background: #FBF9FD; border-color: #DCD5EC; }
.bloc-restit-titre { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 14px; color: var(--violet); }
.bascule { display: flex; padding: 4px; border-radius: 10px; background: var(--ivoire-2); }
.bascule button { flex-grow: 1; height: 36px; border: 0; border-radius: 8px; background: transparent; font: 700 13px var(--police); color: var(--texte-3); cursor: pointer; }
.bascule button[aria-pressed="true"] { background: #fff; color: var(--nuit); box-shadow: 0 1px 3px rgba(14, 26, 43, .08); }
.chauffeur-choix { border: 1px solid var(--trait); background: #fff; border-radius: 12px; padding: 12px 14px; display: flex; align-items: center; gap: 12px; }
.chauffeur-choix.choisi { border: 2px solid var(--cuivre); background: var(--cuivre-pale); padding: 11px 13px; }
.chauffeur-choix .rond-lettre { width: 38px; height: 38px; }
.chauffeur-infos { flex-grow: 1; display: flex; flex-direction: column; gap: 2px; }
.chauffeur-infos strong { font-size: 14px; }
.chauffeur-infos small { font-size: 12px; color: var(--muted); font-weight: 600; }
.dispo { font-size: 12px; font-weight: 700; }
.dispo-ok { color: var(--vert); } .dispo-moyen { color: var(--ambre); } .dispo-non { color: var(--rouge); }
.calcul-marge { padding: 14px 16px; border-radius: 12px; background: var(--ivoire); display: flex; flex-direction: column; gap: 8px; }
.marge-positive { color: var(--vert); font-weight: 800; }
.marge-negative { color: var(--rouge); font-weight: 800; }

/* ---------- Réclamations ---------- */
.legende { display: flex; gap: 16px; font-size: 12px; font-weight: 700; color: var(--texte-3); flex-wrap: wrap; }
.legende span { display: flex; align-items: center; gap: 6px; }
.sens { width: 28px; height: 28px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; }
.sens-plus { background: var(--vert-f); color: var(--vert); }
.sens-moins { background: var(--rouge-f); color: var(--rouge); }
.citation { padding: 12px 14px; border-radius: 10px; background: var(--ivoire); font-size: 13px; line-height: 1.5; font-weight: 600; color: var(--texte-2); }
.decision { display: flex; flex-direction: column; gap: 10px; }
.decision label.radio { display: flex; gap: 10px; align-items: center; font-size: 14px; font-weight: 700; cursor: pointer; }
.decision input[type="radio"] { accent-color: var(--cuivre); width: 16px; height: 16px; }
.sous-decision { display: flex; gap: 10px; padding-left: 26px; align-items: center; flex-wrap: wrap; }
.sous-decision .inp { width: 120px; height: 38px; }
.sous-decision label { display: flex; gap: 8px; align-items: center; font-size: 13px; font-weight: 600; color: var(--texte-2); }

/* ---------- Écrans plus petits ---------- */
@media (max-width: 1280px) {
  .kpis-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .colonnes { flex-direction: column; align-items: stretch; }
  .colonnes > .etroite, .colonnes > .etroite-340, .colonnes > .etroite-420 { width: 100%; }
}
@media (max-width: 900px) {
  .appli { flex-direction: column; }
  .menu-lateral, .gestion .menu-lateral { width: 100%; height: auto; position: static; }
  .nav { flex-direction: row; flex-wrap: wrap; }
  .nav-sous, .compte { display: none; }
  .principal { padding: 24px 16px 48px; }
  .kpis-4, .kpis-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grille-3c, .grille-2c, .deux-adresses, .types-probleme { grid-template-columns: 1fr; }
  .deux-adresses > div + div { border-left: 0; border-top: 1px solid var(--trait-2); }
  .photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recherche { width: 100%; }
  .etapes li.etape-item span.nom { display: none; }
}

/* Chantier D (lot D5) : 6e colonne « En attente · client » du tableau des missions */
.tableau-etapes:has(> :nth-child(6)) { grid-template-columns: repeat(6, minmax(200px, 1fr)); }
