/* SD ONE · lot 118 (25/10/2026, Hassan). Fichier NOUVEAU, à charger APRÈS les autres CSS de lots.
   Couleurs : bleu nuit, bleu, argent (jamais de doré). Cibles de 44 px sur téléphone. */
:root { --sd118-nuit: #0B1B3A; --sd118-bleu: #1E5AA8; --sd118-argent: #C3CBD6; --sd118-argent-c: #EEF1F5; --sd118-gris: #5A6B85; }

/* anciens éléments remplacés : masqués, jamais supprimés (réglage futur : html.sd-anciens-visibles) */
html.sd118:not(.sd-anciens-visibles) [data-sd-ancien] { display: none !important; }
/* l'ancienne liste d'intitulés (v2-tableau-lisible) est remplacée par celle du lot 118 */
html.sd118:not(.sd-anciens-visibles) .sd-presta-menu { display: none !important; }

/* ---------- 1) liste des intitulés ---------- */
.sd118-menu { position: fixed; z-index: 100050; background: #fff; border: 1px solid var(--sd118-argent); border-radius: 10px;
  box-shadow: 0 10px 30px rgba(11, 27, 58, .22); overflow-y: auto; overscroll-behavior: contain; padding: 6px; box-sizing: border-box; font-size: 13px; color: var(--sd118-nuit); }
.sd118-menu .sd118-grp { margin: 6px 6px 4px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--sd118-bleu); }
.sd118-menu .sd118-grp small { text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--sd118-gris); }
.sd118-menu .sd118-o { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 36px; padding: 7px 10px;
  border: 0; border-radius: 7px; background: transparent; color: var(--sd118-nuit); font: inherit; text-align: left; cursor: pointer; }
.sd118-menu .sd118-o:hover, .sd118-menu .sd118-o:focus-visible { background: var(--sd118-argent-c); outline: none; box-shadow: inset 3px 0 0 var(--sd118-bleu); }
.sd118-menu .sd118-o span { flex: 1 1 auto; min-width: 0; overflow-wrap: normal; word-break: normal; }
.sd118-menu .sd118-o small { flex: 0 0 auto; font-size: 11px; color: var(--sd118-gris); white-space: nowrap; }
.sd118-menu .sd118-libre { margin: 4px 4px 6px; padding: 8px 10px; border-radius: 7px; background: #E8F0FB; color: var(--sd118-nuit); font-size: 12px; line-height: 1.35; }
.sd118-menu .sd118-aide { margin: 6px 8px 2px; font-size: 11px; color: var(--sd118-gris); }
tr.dfin-sous .sd118-note { margin: 6px 0 0; font-size: 12px; font-weight: 600; color: var(--sd118-bleu); }
tr.dfin-sous .sd118-note:empty { display: none; }
tr.dfin-sous .sd-pm-fl { cursor: pointer; }
@media (max-width: 760px) { .sd118-menu .sd118-o { min-height: 44px; } }

/* ---------- 2) plaque : 8,5 px (plus fort que v2-tableau-lisible : #v2-contenu .pl-corps.dfin .dfin-tm tbody tr.lg td.c-veh .puce) ---------- */
@media (min-width: 761px) {
  html body #v2-contenu .pl-corps.dfin table.tm.dfin-tm tbody tr.lg > td.c-veh .puce.sd-plaque,
  html body #v2-contenu .pl-corps table.tm tbody tr.lg > td.c-veh .puce.sd-plaque,
  html body #v2-contenu table.tm tbody tr.lg > td.c-veh span.puce.sd-plaque { font-size: 8.5px !important; }
}

/* ---------- 3) fenêtre Véhicule (clic simple) : cartes avec icônes, fixe au milieu de l'écran ---------- */
html body .sd48-f.sd48-vehicule.sd118-centre { position: fixed !important; left: 50% !important; top: 50% !important; right: auto !important; bottom: auto !important;
  transform: translate(-50%, -50%) !important; width: min(880px, calc(100vw - 32px)) !important; max-height: calc(100vh - 32px) !important; overflow: auto !important; margin: 0 !important; }
.sd48-f.sd48-vehicule .sd118-vlab { display: block; margin: 0; }
.sd48-f.sd48-vehicule .sd118-vlab select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.sd48-f.sd48-vehicule .veh-cartes .veh-c.sd118-masque { display: none !important; }
.sd48-f.sd48-vehicule .veh-cartes { margin-top: 8px; }
@media (max-width: 640px) {
  html body .sd48-f.sd48-vehicule.sd118-centre { width: calc(100vw - 16px) !important; max-height: calc(100vh - 16px) !important; }
}

/* ---------- 5) « Chargement… » ---------- */
.sd118-charge { position: fixed; z-index: 100060; padding: 7px 14px; border-radius: 999px; background: var(--sd118-nuit); color: #fff; font-size: 12px; font-weight: 700;
  box-shadow: 0 6px 18px rgba(11, 27, 58, .3); pointer-events: none; white-space: nowrap; }

/* ---------- 7) référence client du dossier sur la ligne ---------- */
table.tm td.c-num > .sd118-ref { display: block; margin-top: 2px; font-size: 9.5px; font-weight: 600; line-height: 1.2; color: var(--sd118-gris);
  white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: none; max-width: 100%; }

/* ---------- 9) bouton « Paiement à bord » (lot 41) : texte entier, jamais coupé ---------- */
.l41-b[data-m="pab"], .l41-b[data-m="compte"] { white-space: nowrap !important; min-width: max-content !important; padding-left: 12px !important; padding-right: 12px !important; overflow: visible !important; text-overflow: clip !important; }
@media (max-width: 760px) { .l41-b[data-m="pab"], .l41-b[data-m="compte"] { min-height: 44px !important; } }

/* ---------- 10) pastille sur la ligne de l'adresse ---------- */
table.tm td.c-iti .iti1 > .puce[data-sd118p] { margin-left: 6px; vertical-align: middle; white-space: nowrap; }
/* v2 (relecture) : .dep / .arr sont en display:block dans les dossiers et listes : la pastille partait sur sa propre ligne,
   SOUS l'adresse. L'adresse qui la précède passe en ligne (comme le lot 89 au planning) : pastille collée au bout de la ligne
   de l'aéroport / de la gare ; l'adresse suivante (block) repart à la ligne.
   Classes doublées : plus fort que v2-tableau-lisible.css (#v2-contenu .pl-corps.dfin .dfin-tm … .iti1 .dep { display: block !important }). */
html body #v2-contenu table.tm.tm tbody tr.lg.lg td.c-iti.c-iti .iti1.iti1 > .dep.dep:has(+ .puce[data-sd118p]),
html body #v2-contenu table.tm.tm tbody tr.lg.lg td.c-iti.c-iti .iti1.iti1 > .arr.arr:has(+ .puce[data-sd118p]) { display: inline !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }

/* ---------- 11) colonne Chauffeur ---------- */
/* noms : jamais de « … » (la taille est réduite par le script si le nom est long) */
html body table.tm td.c-chf .chf.sd-2l > .sd-pre, html body table.tm td.c-chf .chf.sd-2l > .sd-nom,
html body table.tm td.c-chf .sd70-p, html body table.tm td.c-st > .sd103-g { text-overflow: clip !important; }
/* photo + nom centrés sur la ligne (alignés sur le véhicule) ; « Payée » juste dessous sans compter dans le centrage */
@media (min-width: 761px) {
  /* plus fort que v2-lot34.css (#v2-contenu .pl-corps.dfin table.dfin-tm tbody tr.lg td.c-chf > span:not(.sd-av):not(.chf), marge 4px auto 0 !important) */
  html body #v2-contenu .pl-corps table.tm tbody tr.lg > td.c-chf > span.sd-paye-puce.sd-paye-puce:not(.sd-av):not(.chf),
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf > span.sd-paye-puce.sd-paye-puce.sd-paye-puce:not(.sd-av):not(.chf) { height: 17px !important; box-sizing: border-box !important; margin: 4px auto -21px !important; }
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf > small.sd67-paye.sd67-paye { height: 15px !important; line-height: 15px !important; margin-top: 2px !important; margin-bottom: -17px !important; text-align: center !important; }
  /* « Payé » (encaissé) centré sous le nom comme « Payée » (lot 103) : le nom est à droite de la photo (24 px + 6 px) */
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf > .sd-av ~ small.sd67-paye.sd67-paye { margin-left: 30px !important; }
  /* lien « archive » (ancien chauffeur, admin-v2.css .c-chf .arch) : même principe, sous le nom */
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf > a.arch.arch { display: block !important; width: max-content; margin: 2px auto -26px !important; min-height: 24px; line-height: 24px; }
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf > .sd-av ~ a.arch.arch { position: relative; left: 15px; }
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf:has(> a.arch) { height: 86px; }
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf:has(> .sd-paye-puce) { height: 76px; }
  html body #v2-contenu table.tm tbody tr.lg > td.c-chf:has(> small.sd67-paye) { height: 68px; }
}
/* cause trouvée dans les dossiers et les listes : v2-lot67-planning.css (#v2-contenu tr.lg td.c-chf { padding-bottom: 30px })
   garde 30 px sous le nom pour la cloche / l'épingle, même quand il n'y en a pas : le nom remontait de 14 px.
   Sans cloche : marge du bas = marge du haut. Avec cloche (en bas de la case, lot 67) : 30 px en haut aussi, le nom reste au centre.
   Le planning n'est pas concerné (la cloche y est dans la colonne des actions, lot 89). */
@media (min-width: 900px) {
  html body #v2-contenu .pl-corps.dfin:not(.pl-plan) table.dfin-tm tbody tr.lg > td.c-chf:not(:has(> .sd45-i)) { padding-bottom: 2px !important; }
  html body #v2-contenu table.tm:not(.dfin-tm) tbody tr.lg > td.c-chf:not(:has(> .sd45-i)) { padding-bottom: 6px !important; }
  html body #v2-contenu .pl-corps.dfin:not(.pl-plan) table.dfin-tm tbody tr.lg > td.c-chf:has(> .sd45-i),
  html body #v2-contenu table.tm:not(.dfin-tm) tbody tr.lg > td.c-chf:has(> .sd45-i) { padding-top: 30px !important; }
}

/* ---------- 12) g5 (25/10, Hassan 09h46) : pastille du numéro de vol / train plus fine, partout ----------
   Hauteur 18 px (≈ ligne de l'adresse), police de l'adresse (12,5 px), marges intérieures réduites. Couleur, largeur et clic
   inchangés. Sélecteur à deux identifiants (:not(#…)) : passe devant v2-tableau-lisible, lot 47, lot 67 et lot 89.
   Zone de clic invisible (::after) : 18 + 2 × 14 = 46 px de haut (44 mesurés au minimum), partout (téléphone compris). */
html body:not(#sd118g5a):not(#sd118g5b) .puce[data-vol] {
  height: 18px !important; min-height: 0 !important; line-height: 18px !important;
  padding-top: 0 !important; padding-bottom: 0 !important; padding-left: 6px !important; padding-right: 6px !important;
  font-size: 12.5px !important; margin-top: 0 !important; margin-bottom: 0 !important;
  vertical-align: 0 !important; box-sizing: border-box !important; position: relative !important; border-radius: 9px !important;
  border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1 !important; /* lot 89 téléphone : bordures transparentes de 9 px, la pastille de 18 px n'aurait plus de couleur */
}
html body:not(#sd118g5a):not(#sd118g5b) .puce[data-vol]::after { content: "" !important; position: absolute !important; inset: -14px -4px !important; }
html body:not(#sd118g5a):not(#sd118g5b) .puce[data-vol].sd67-court { padding-left: 0 !important; padding-right: 0 !important; }

/* ---------- 13) g5 (25/10, Hassan 09h46) : bloc « Paiement du client » (lot 41) ----------
   Deux boutons de même largeur, texte entier ; ordinateur : 30 px de haut ; téléphone : 44 px (règle 9).
   La petite phrase d'explication (.l41-aide) est masquée : data-sd-ancien="explication-paiement" posé par le script, et ici
   par sécurité (jamais supprimée du code d'origine ; réaffichée avec html.sd-anciens-visibles). */
html.sd118:not(.sd-anciens-visibles) .l41 .l41-aide { display: none !important; }
html body .l41 .l41-seg.l41-seg { grid-template-columns: 1fr 1fr !important; min-width: min(100%, 320px) !important; }
html body .l41 .l41-seg .l41-b.l41-b[data-m] { min-width: 0 !important; width: 100% !important; }
@media (min-width: 761px) {
  html body .l41 .l41-seg .l41-b.l41-b[data-m] { min-height: 30px !important; height: 30px !important; padding-left: 12px !important; padding-right: 12px !important; font-size: 13px !important; line-height: 1 !important; }
}
@media (max-width: 760px) {
  html body .l41 .l41-seg .l41-b.l41-b[data-m] { min-height: 44px !important; }
}
