#sdflp-fait{--sdflp:1}
/* ===== admin-v2.css ===== */
/* SD Admin v2 — habillage SAHN DRIVE (identique à l'admin SD actuel) :
   fond de nuit (noir bleuté) avec quadrillage animé et filaments argentés, cartes claires arrondies,
   boutons « maison » quadrillés argent avec reflets, Michroma / Montserrat / Manrope.
   Aucune couleur par module, pas de doré, zones cliquables de 44 px minimum. */
:root{
  /* PALETTE : changer cette seule valeur (1, 2 ou 3) pour basculer toute la v2. 3 = Graphite (par défaut, choix d'Hassan), 1 = Ardoise, 2 = Ciel. */
  --palette:3;
  --nuit:#24282E; --nuit2:#30363E; --nuit3:#3E4651; --nuit4:#56606D; --encre:#30363E; --bleu:#3F86C9; --bleu-clair:#D6E8F7;
  --fond1:#3A4048; --fond2:#2C3137; --fond3:#202429; --halo:rgba(110,160,210,.26);
  --bandeau:linear-gradient(180deg,#30363E 0%,#24282E 100%); --menu:linear-gradient(180deg,#3E4651,#30363E);
  --argent:#CBD1D8; --argent2:#9EA6B0; --argent3:#5A616B; --argent-clair:#E6E9ED;
  --blanc:#FFFFFF; --carte:#FFFFFF; --carte2:#F4F6F8; --carte3:#EBEEF2; --trait:#DADFE5; --texte:#16202C; --texte2:#5B6675;
  --vert:#1D6F42; --rouge:#9B1C1C; --ambre:#B4510F;
  --r:14px; --r-bt:12px; --haut:72px; --barre:50px; --pied:32px;
  --police:"Manrope",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --titre:"Montserrat",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --marque:"Michroma","Montserrat",sans-serif;
  --ombre:0 10px 30px rgba(3,10,22,.35);
}
*{box-sizing:border-box}
html{font-size:16px;background:var(--fond2)}
body{margin:0;font-family:var(--police);font-weight:500;font-size:14px;color:var(--texte);min-height:100vh;
  background-color:var(--fond2);
  background-image:radial-gradient(120% 80% at 50% -10%,var(--halo),transparent 60%),radial-gradient(90% 60% at 100% 100%,rgba(196,201,208,.08),transparent 60%),linear-gradient(180deg,var(--fond1) 0%,var(--fond2) 55%,var(--fond3) 100%);
  background-attachment:fixed}
button,input,select,textarea{font-family:inherit;font-size:inherit}
a{color:inherit}
.cache{display:none!important}

/* décor : quadrillage animé + filaments (aucun mot) */
.v2-filaments{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.v2-filaments::before{content:"";position:absolute;inset:-64px;background-image:linear-gradient(rgba(196,201,208,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(196,201,208,.06) 1px,transparent 1px);background-size:32px 32px;animation:grille 40s linear infinite}
.v2-filaments i{position:absolute;height:1px;width:46vw;left:-50vw;background:linear-gradient(90deg,transparent,rgba(196,201,208,.75),transparent);animation:fil 16s linear infinite;opacity:.55;filter:drop-shadow(0 0 4px rgba(196,201,208,.5))}
.v2-filaments i:nth-child(1){top:14%}
.v2-filaments i:nth-child(2){top:44%;animation-delay:-6s;animation-duration:21s}
.v2-filaments i:nth-child(3){top:79%;animation-delay:-11s;animation-duration:25s}
.v2-filaments i:nth-child(4){top:-30vh;left:68%;width:1px;height:30vh;background:linear-gradient(180deg,transparent,rgba(196,201,208,.6),transparent);animation:filv 18s linear infinite}
@keyframes grille{to{transform:translate(32px,32px)}}
@keyframes fil{to{transform:translateX(160vw)}}
@keyframes filv{to{transform:translateY(140vh)}}
@media (prefers-reduced-motion:reduce){.v2-filaments i{display:none}.v2-filaments::before{animation:none}}

/* ===== barre du haut ===== */
.v2-haut{position:fixed;top:0;left:0;right:0;height:var(--haut);z-index:50;display:flex;align-items:center;gap:16px;padding:0 18px;
  background:var(--bandeau);border-bottom:1px solid rgba(196,201,208,.18);color:var(--blanc);box-shadow:0 6px 24px rgba(0,0,0,.35);backdrop-filter:blur(6px)}
.v2-burger{width:46px;height:46px;border:1px solid rgba(196,201,208,.35);background:rgba(255,255,255,.06);color:var(--argent);border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:background .15s,border-color .15s}
.v2-burger:hover{border-color:var(--argent);background:rgba(255,255,255,.12);color:#fff}
.v2-marque{font-family:var(--marque);font-size:15px;letter-spacing:.18em;color:#fff;white-space:nowrap;cursor:pointer;user-select:none;line-height:1.05}
.v2-marque b{display:block;font-family:var(--titre);font-weight:700;font-size:8.5px;letter-spacing:.32em;color:var(--argent2)}
.v2-recherche{flex:0 1 480px;margin:0 auto;position:relative;display:flex}
.v2-recherche input{width:100%;height:46px;border:1px solid rgba(196,201,208,.3);background:rgba(255,255,255,.08);color:#fff;border-radius:23px;padding:0 46px 0 18px;outline:none;font-family:var(--titre);font-weight:500}
.v2-recherche input::placeholder{color:var(--argent2)}
.v2-recherche input:focus{border-color:var(--argent);background:rgba(255,255,255,.14)}
.v2-recherche .ico{position:absolute;right:15px;top:14px;color:var(--argent2);pointer-events:none}
.v2-suggest{position:absolute;top:52px;left:0;right:0;background:#fff;color:var(--texte);border:1px solid var(--trait);border-radius:var(--r);box-shadow:var(--ombre);max-height:60vh;overflow:auto;z-index:60}
.v2-suggest div{padding:10px 16px;min-height:46px;display:flex;align-items:center;gap:10px;cursor:pointer;border-bottom:1px solid var(--carte3)}
.v2-suggest div:hover,.v2-suggest div.on{background:var(--carte3)}
.v2-suggest small{color:var(--texte2);margin-left:auto}
.v2-icones{display:flex;gap:8px}
.v2-icones button{width:46px;height:46px;border:1px solid rgba(196,201,208,.3);background:rgba(255,255,255,.06);color:var(--argent);cursor:pointer;border-radius:50%;position:relative;display:grid;place-items:center}
.v2-icones button:hover{background:rgba(255,255,255,.14);color:#fff;border-color:var(--argent)}
.v2-pastille{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;border-radius:9px;background:var(--argent);color:var(--nuit);font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 4px}

/* ===== menu horizontal en haut (comme l'ancienne version de SD Admin) ===== */
.v2-menu{position:fixed;top:var(--haut);left:0;right:0;height:var(--barre);z-index:48;display:flex;align-items:stretch;justify-content:center;gap:2px;padding:0 12px;
  background:var(--menu);border-bottom:1px solid rgba(196,201,208,.22);box-shadow:0 6px 18px rgba(0,0,0,.3)}
.v2-grp{position:relative;display:flex}
.v2-m1{display:flex;align-items:center;gap:4px;min-height:var(--barre);padding:0 11px;font-family:var(--titre);font-weight:700;font-size:13.5px;color:#E8ECF1;cursor:pointer;user-select:none;background:transparent;border:0;border-bottom:3px solid transparent;text-decoration:none;white-space:nowrap}
.v2-m1:hover,.v2-m1.deplie{background:rgba(255,255,255,.08);color:#fff}
.v2-m1.actif{border-bottom-color:var(--argent);color:#fff}
.v2-m1 .fl{font-size:10px;color:var(--argent2);transition:transform .15s}
.v2-m1.deplie .fl{transform:rotate(180deg)}
.v2-m2{display:none;position:absolute;top:100%;left:0;min-width:250px;max-height:calc(100vh - var(--haut) - var(--barre) - 20px);overflow:auto;background:#fff;border:1px solid var(--trait);border-radius:0 0 14px 14px;box-shadow:var(--ombre);padding:6px 0;z-index:49}
.v2-grp:last-child .v2-m2,.v2-grp:nth-last-child(2) .v2-m2,.v2-grp:nth-last-child(3) .v2-m2{left:auto;right:0}
.v2-m1.deplie + .v2-m2{display:block}
.v2-engr{margin-left:auto}.v2-engr .v2-m1{min-width:44px;justify-content:center;padding:0 12px}.v2-engr .v2-m2{left:auto;right:0}
.v2-m2t{padding:12px 16px 4px;font-family:var(--titre);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--texte2);border-top:1px solid var(--trait)}.v2-m2t:first-child{border-top:0}
.v2-m2 a{display:flex;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;color:var(--texte);font-size:13.5px;font-weight:600;white-space:nowrap}
.v2-m2 a:hover{background:#EAF0F7;color:var(--nuit2)}
.v2-m2 a.actif{color:var(--nuit2);font-weight:800;background:var(--carte2)}
.v2-m2 a .ab{margin-left:auto;padding-left:12px;font-size:10px;color:var(--texte2)}
@media (max-width:1400px){.v2-menu{gap:0;padding:0 6px}.v2-m1{padding:0 7px;font-size:12.5px}.v2-m1 .fl{display:none}}
@media (max-width:1200px){.v2-menu{justify-content:flex-start;overflow-x:auto}}

/* ===== pied ===== */
.v2-pied{position:fixed;left:0;right:0;bottom:0;height:var(--pied);background:rgba(6,15,30,.95);color:var(--argent2);font-size:11.5px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;z-index:40;border-top:1px solid rgba(196,201,208,.15)}

/* ===== contenu ===== */
.v2-contenu{position:relative;z-index:1;padding:calc(var(--haut) + var(--barre) + 18px) 20px calc(var(--pied) + 70vh)} /* marge basse d'environ un écran : on peut toujours descendre (comme Waynium) */
.v2-titre{font-family:var(--titre);font-size:22px;font-weight:800;margin:4px 0 14px;display:flex;align-items:center;gap:10px;color:#fff;letter-spacing:.01em}

/* ===== boutons « maison » : quadrillés argent, reflets, ombres, coins arrondis ===== */
.bt{position:relative;min-height:44px;padding:0 18px;border-radius:var(--r-bt);border:1px solid rgba(255,255,255,.65);color:var(--nuit);cursor:pointer;
  background-color:#C4C9D0;
  background-image:linear-gradient(rgba(91,96,104,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(91,96,104,.13) 1px,transparent 1px),linear-gradient(180deg,#F3F5F7 0%,#C4C9D0 48%,#9AA1AB 100%);
  background-size:8px 8px,8px 8px,100% 100%;display:inline-flex;align-items:center;gap:8px;font-family:var(--titre);font-weight:700;font-size:13.5px;letter-spacing:.02em;text-decoration:none;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -2px 0 rgba(91,96,104,.35),0 6px 16px rgba(3,10,22,.28);transition:transform .08s,box-shadow .18s,filter .18s;animation:quadr 18s linear infinite}
.bt::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-130%);transition:transform .6s}
.bt:hover{filter:brightness(1.05);box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 rgba(91,96,104,.35),0 10px 22px rgba(3,10,22,.36)}
.bt:hover::after{transform:translateX(130%)}
.bt:active{transform:translateY(1px)}
.bt:disabled{opacity:.5;cursor:not-allowed}
@keyframes quadr{to{background-position:8px 8px,8px 8px,0 0}}
@media (prefers-reduced-motion:reduce){.bt{animation:none}}
/* variante foncée (action principale) */
.bt.fonce,.pl-actions .bt:first-child,.dos-num .bt{color:#fff;border-color:rgba(196,201,208,.55);background-color:var(--nuit2);
  background-image:linear-gradient(rgba(196,201,208,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(196,201,208,.12) 1px,transparent 1px),linear-gradient(180deg,var(--nuit4) 0%,var(--nuit3) 48%,var(--nuit2) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 6px 16px rgba(3,10,22,.35)}
.bt.clair{color:var(--nuit)}
.bt.contour{background:transparent;color:var(--nuit);border:1px solid var(--argent3);box-shadow:none;animation:none}
.bt.petit{min-height:44px;padding:0 13px;font-size:12.5px}
.bt.rond{width:46px;height:46px;min-height:46px;padding:0;justify-content:center;border-radius:50%}

/* champs */
.ch{height:44px;border:1px solid var(--trait);background:#fff;border-radius:10px;padding:0 12px;color:var(--texte);min-width:0}
.ch:focus{outline:2px solid var(--bleu);outline-offset:0}
textarea.ch{height:auto;min-height:84px;padding:10px 12px}
.pilule{height:44px;border:1px solid rgba(196,201,208,.4);border-radius:22px;background:rgba(255,255,255,.95);padding:0 14px;font-size:13px;color:var(--texte);min-width:0}
.lib{font-size:12px;color:var(--texte2);display:block;margin-bottom:4px;font-weight:600}

/* ===== codes statut (même progression, couleurs de la charte) ===== */
.st{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;color:#fff;font-size:11px;font-weight:800;font-family:var(--titre)}
.st-0{background:#7A3B3B}.st-1{background:#9B1C1C}.st-2{background:#B4510F}.st-3{background:#C8742C}.st-4{background:#2F6B4F}
.st-5{background:var(--bleu)}.st-6{background:#1D6F42}.st-7{background:var(--nuit3)}.st-8{background:var(--nuit2)}.st-9{background:#5B6068}
.st-S{background:#6E5A8C}.st-V{background:#5C4A78}.st-F{background:#4A3A63}.st-G{background:#0B0C0E}.st-E{background:#A7A9AD}

/* ===== planning : bandeau ===== */
.pl-bandeau{background:var(--bandeau);color:#fff;border-radius:var(--r);padding:12px;display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;position:relative;border:1px solid rgba(196,201,208,.22);box-shadow:var(--ombre)}
.pl-bandeau > *{flex:none}
.pl-bandeau.colle{position:sticky;top:calc(var(--haut) + var(--barre));z-index:20}
.mini-cal{width:200px}
.mini-cal .tete{display:flex;align-items:center;gap:2px;font-family:var(--titre);font-weight:700;font-size:13px;margin-bottom:4px}
.mini-cal .tete span{flex:1;text-align:center}
.mini-cal .tete button{width:44px;height:44px;border:0;background:transparent;color:var(--argent);cursor:pointer;border-radius:50%;font-size:18px}
.mini-cal .tete button:hover{background:rgba(255,255,255,.1)}
.mini-cal .tete button.auj{width:auto;min-width:44px;padding:0 10px;border:1px solid rgba(196,201,208,.4);border-radius:22px;font-size:12px;color:#E6E9ED}
.mini-cal table{border-collapse:collapse;width:100%;font-size:12px}
.mini-cal th{color:var(--argent2);font-weight:600;height:20px}
.mini-cal td{text-align:center;height:28px;cursor:pointer;border-radius:8px;color:#E6E8EB}
.mini-cal td:hover{background:rgba(255,255,255,.12)}
.mini-cal td.hors{color:#5B6675}
.mini-cal td.we{color:var(--argent2)}
.mini-cal td.auj{outline:1px solid var(--argent)}
.mini-cal td.sel{background:linear-gradient(180deg,#F3F5F7,#9AA1AB);color:var(--nuit);font-weight:800}
.mini-cal td.plage{background:rgba(196,201,208,.22)}
.pl-ronds{display:flex;flex-direction:column;gap:8px}
.pl-ronds .punaise,.punaise{width:46px;height:46px;border:1px solid rgba(196,201,208,.35);border-radius:50%;background:transparent;color:var(--argent2);cursor:pointer;display:grid;place-items:center}
.punaise.on{color:#fff;background:rgba(255,255,255,.14)}
.pl-champs{display:grid;grid-template-columns:repeat(4,96px);gap:4px 8px;font-size:11px;align-content:start}
.pl-champs label{color:var(--argent);display:flex;flex-direction:column;gap:3px;font-weight:600}
.pl-champs .l2{grid-column:span 2}
.pl-champs .compte{display:flex;align-items:center;gap:6px}
.pl-champs .compte b{font-family:var(--titre);font-size:20px;color:#fff}
#pl-n{min-width:44px;min-height:44px;display:inline-grid;place-items:center;cursor:pointer}
.pl-compteurs{display:grid;grid-template-columns:repeat(2,88px);gap:8px;align-content:center}
.compteur{width:88px;height:64px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(196,201,208,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;padding:4px;color:#fff;font-family:inherit}
.compteur:hover{background:rgba(255,255,255,.12);border-color:var(--argent)}
.compteur b{font-family:var(--titre);font-size:21px;font-weight:800;line-height:1}
.compteur small{font-size:10px;color:var(--argent);margin-top:3px;line-height:1.1}
.pl-avances{flex-basis:100%;display:none;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;padding-top:10px;border-top:1px solid rgba(196,201,208,.2);font-size:11px}
.pl-avances.ouvert{display:grid}
.pl-avances label{color:var(--argent);display:flex;flex-direction:column;gap:3px;font-weight:600}

/* ===== planning : corps et colonne d'actions ===== */
.pl-corps{display:flex;gap:16px;align-items:flex-start;margin-top:14px}
.pl-centre{flex:1;min-width:0}
.pl-actions{width:190px;flex:none;display:flex;flex-direction:column;gap:8px;position:sticky;top:calc(var(--haut) + var(--barre) + 14px)}
.pl-actions .bt{width:100%;justify-content:flex-start}
.pl-actions .bt span{flex:1;text-align:left;line-height:1.15;padding:4px 0}
.pl-actions h6.grp{margin:10px 0 0;font-family:var(--titre);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--argent);font-weight:800}
.pab{font-style:normal;width:9px;height:9px;border-radius:50%;background:var(--argent3);display:inline-block;flex:none;font-size:0;box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.leg-ab{font-size:11px;color:var(--argent);display:flex;align-items:center;gap:6px;margin:4px 0 0}

/* ===== tableau des missions ===== */
.tm{width:100%;border-collapse:separate;border-spacing:0;background:var(--carte);font-size:12.5px;table-layout:auto;border-radius:var(--r);box-shadow:var(--ombre)}
.tm thead th:first-child{border-top-left-radius:var(--r)}.tm thead th:last-child{border-top-right-radius:var(--r)}
.tm thead th{position:sticky;top:calc(var(--haut) + var(--barre));background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;font-family:var(--titre);font-weight:700;font-size:11px;letter-spacing:.04em;height:34px;text-align:left;padding:0 8px;z-index:5}
.tm thead th.tri{cursor:pointer}
.tm tbody tr.lg{height:66px}
.tm tbody tr.lg:nth-of-type(odd){background:#fff}
.tm tbody tr.lg:nth-of-type(even){background:var(--carte2)}
.tm tbody tr.lg:hover{background:#EAF0F7}
.tm tbody tr.lg.sel{background:#DCE6F2!important}
.tm tbody tr.lg.annulee{color:#8C96A3}
.tm tbody tr.lg.annulee .iti1{text-decoration:line-through}
.tm td{padding:6px 8px;vertical-align:middle;cursor:pointer;overflow-wrap:normal;word-break:normal;hyphens:none;border-bottom:1px solid var(--carte3)}
.tm td:hover{box-shadow:inset 0 0 0 1px var(--argent2)}
.tm td.plein{padding:0;text-align:center;color:#fff;font-family:var(--titre);font-weight:800;font-size:12px;letter-spacing:.03em}
.tm td.plein:hover{box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
.tm td.c-st small{display:block;font-size:10px;opacity:.9}
.tm td.c-sel,.tm td.c-ouvre,.tm td.c-plus{padding:0;text-align:center}
label.cc{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer;margin:0}
.chk{width:20px;height:20px;cursor:pointer;accent-color:var(--nuit2)}
.tm .ouvre,.tm .plus{width:44px;height:44px;border:0;background:transparent;cursor:pointer;color:var(--argent3);border-radius:50%;font-size:18px}
.tm .ouvre:hover,.tm .plus:hover{background:var(--carte3);color:var(--nuit)}
.tm .ouvre.on{transform:rotate(90deg);color:var(--nuit)}
.num{font-family:var(--titre);font-weight:800;color:var(--nuit2);text-decoration:none;display:inline-flex;align-items:center;gap:4px;min-height:44px;min-width:44px}
.num:hover{text-decoration:underline}
.pnum{display:inline-block;background:var(--nuit2);color:#fff;font-size:10px;padding:1px 6px;border-radius:6px;font-weight:700}
.dt{display:flex;flex-direction:column;align-items:center;line-height:1.05;font-size:10px;color:var(--texte2)}
.dt b{font-family:var(--titre);font-size:16px;color:var(--nuit2);font-weight:800}
.dt.we b{color:var(--argent3)}
.h{font-family:var(--titre);font-weight:800;font-size:13.5px;color:var(--nuit2)}
.cli2{display:flex;align-items:flex-start;gap:6px}
.cli2 .cli{flex:1;min-width:0}
.cli span{display:block;color:var(--texte2)}
.nomcli{display:flex;align-items:center;min-width:0}
.nomcli b{font-family:var(--titre);font-weight:800;color:var(--nuit2)}
.cli2 .cpt{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--texte2);flex:none}

.cli2 .cpt span{display:flex;align-items:center;gap:3px;white-space:nowrap}
.eti{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:10px;margin-right:6px;background:#C9D3DF;color:#fff;flex:none}
.eti.ok{background:var(--vert)}.eti.ko{background:var(--rouge)}
.iti1{display:flex;align-items:center;gap:8px;min-width:0}
.iti1 .dep,.iti1 .arr{flex:1 1 0;min-width:0}
.iti1 .arr{font-weight:700}
.iti1 .fl{flex:none;color:var(--argent3);font-weight:800}
.iti2{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}
.puce{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:12px;font-size:10.5px;font-weight:700;color:#fff;max-width:100%;text-align:left}
.puce.vol{background:var(--bleu)}.puce.train{background:#5C4A78}.puce.etape{background:#7A818B}
.puce.gris{background:var(--carte3);color:var(--texte);margin-top:3px}
.puce.retard{background:var(--ambre)}.puce.alheure{background:var(--vert)}.puce.arrive{background:#5B6068}
.puce.pab{background:var(--nuit2)}
button.puce{border:0;font-family:inherit;cursor:pointer;min-height:30px;line-height:1.2}
button.puce:hover{filter:brightness(1.12)}button.puce:focus-visible{outline:2px solid var(--nuit2);outline-offset:2px}
.puce.vol.vide{background:transparent;color:var(--bleu);border:1px dashed var(--bleu)}
.puce.annule{background:var(--rouge)}.puce.inconnu{background:#7A818B}
.m-vi{margin-top:12px;min-height:24px}.m-vol{line-height:1.7;font-size:13.5px}.m-vol .puce{vertical-align:middle}
.m-er{color:var(--rouge);font-size:13px}.m-g{color:var(--texte2);font-size:12.5px}
.c-veh b{font-family:var(--titre);font-weight:800;color:var(--nuit2)}
.chf{font-weight:600}
.chf.sans{color:var(--rouge);font-weight:800}
.ns{display:inline-block;font-size:10px;background:var(--rouge);color:#fff;padding:1px 6px;border-radius:6px;margin-left:4px;font-weight:700}
.info-ico{width:30px;height:30px;border-radius:50%;border:1px solid var(--argent);display:grid;place-items:center;font-size:12px;color:var(--texte2);font-weight:800}
.vide-liste{padding:44px;text-align:center;color:var(--texte2);background:#fff;border-radius:var(--r);box-shadow:var(--ombre)}

/* panneau déplié */
.tm tr.deplie td{padding:0;cursor:default;background:#F2F5F9}
.tm tr.deplie td:hover{box-shadow:none}
.dp{display:grid;grid-template-columns:360px 1fr;gap:16px;padding:16px;border-bottom:3px solid var(--nuit2)}
.dp .btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.dp .btns .bt{width:46px;padding:0;justify-content:center}
.mini-t{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;background:#fff;margin-bottom:10px;border-radius:12px;overflow:hidden;border:1px solid var(--trait)}
.mini-t caption{text-align:left;font-family:var(--titre);font-weight:800;font-size:11px;letter-spacing:.1em;padding:4px 0 6px;color:var(--nuit2)}
.mini-t td,.mini-t th{border-bottom:1px solid var(--carte3);padding:7px 10px;text-align:left}
.mini-t th{background:var(--carte2);font-weight:700;color:var(--texte2)}
.mini-t td.n{text-align:right;font-variant-numeric:tabular-nums}
.neg{color:var(--rouge);font-weight:800}
.note-dp{font-size:11px;color:var(--texte2);margin:-4px 0 10px}
.crayon-p,.trombone{width:44px;height:44px;border:0;background:transparent;cursor:pointer;color:var(--argent3);vertical-align:middle}
.tva-sel{height:44px;min-width:78px;border:1px solid var(--trait);border-radius:10px;background:#fff;padding:0 6px;font-size:12px}
.liens-sd{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}

/* éditeur flottant de cellule */
.ed-voile{position:fixed;inset:0;background:rgba(3,10,22,.6);z-index:85;display:flex;align-items:center;justify-content:center;padding:3vh 16px;backdrop-filter:blur(2px)}
.ed{position:relative;background:#fff;border:1px solid var(--trait);border-top:4px solid var(--nuit2);box-shadow:0 20px 60px rgba(0,0,0,.45);border-radius:18px;padding:16px;min-width:min(380px,92vw);width:min(780px,94vw);max-height:94vh;overflow:auto;overscroll-behavior:contain}
.ed h4{position:sticky;top:-16px;background:#fff;z-index:2;padding-top:4px}
html.fen-ouverte,html.fen-ouverte body{overflow:hidden}
.ed h4{margin:0 0 12px;font-family:var(--titre);font-size:15px;font-weight:800;color:var(--nuit2);display:flex;align-items:center;gap:8px}
.ed .x{margin-left:auto;width:44px;height:44px;border:0;background:transparent;font-size:22px;cursor:pointer;border-radius:50%}
.ed .x:hover{background:var(--carte3)}
.ed .grille{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px}
.ed .grille .large{grid-column:1/-1}
.ed .pied{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap;align-items:center}
.ed .pied .note{margin-right:auto;font-size:11.5px;color:var(--texte2);max-width:360px}
.ed .liste-ch{max-height:270px;overflow:auto;border:1px solid var(--trait);border-radius:12px;background:#fff;margin-top:6px}
.ed .liste-ch div{min-height:46px;padding:6px 12px;display:flex;align-items:center;gap:8px;cursor:pointer;border-bottom:1px solid var(--carte3)}
.ed .liste-ch div:hover,.ed .liste-ch div.on{background:#EAF0F7}
.ed .liste-ch small{margin-left:auto;color:var(--texte2)}
.ed .codes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ed .codes button{min-height:46px;border:1px solid var(--trait);background:#fff;border-radius:12px;display:flex;align-items:center;gap:8px;padding:0 10px;cursor:pointer;text-align:left;font-size:12.5px;font-weight:600}
.ed .codes button:hover{border-color:var(--argent3)}
.ed .codes button.actuel{outline:2px solid var(--nuit2)}
.ed .codes button:disabled{opacity:.45;cursor:not-allowed}

/* ===== fiche dossier ===== */
.dos-tete{display:grid;grid-template-columns:auto 1fr 1fr 1.3fr 1fr;gap:12px;align-items:stretch}
.dos-num{background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;padding:14px 18px;display:flex;flex-direction:column;justify-content:center;min-width:160px;border-radius:var(--r);border:1px solid rgba(196,201,208,.25);box-shadow:var(--ombre)}
.dos-num b{font-family:var(--marque);font-size:28px;letter-spacing:.04em}
.dos-num small{color:var(--argent)}
.dos-num .bt{margin-top:10px}
.dos-b{background:#fff;border:1px solid var(--trait);padding:12px 14px;font-size:13px;position:relative;border-radius:var(--r);box-shadow:var(--ombre)}
.dos-b h5{margin:0 0 8px;font-family:var(--titre);font-size:11px;letter-spacing:.12em;color:var(--texte2);font-weight:800;text-transform:uppercase}
.dos-b .l{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dotted var(--trait)}
.dos-b .l span{color:var(--texte2)}
.dos-b .l b{font-weight:700;text-align:right}
.dos-b .crayon{position:absolute;top:6px;right:6px;width:44px;height:44px;border:0;background:transparent;cursor:pointer;border-radius:50%;color:var(--argent3)}
.dos-b .crayon:hover{background:var(--carte3)}
.dos-b p{margin:0;white-space:pre-wrap;max-height:110px;overflow:auto;font-size:12.5px}
.dos-com p{max-height:64px}
.etiq{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;color:#fff;background:var(--argent3)}

/* ===== listes : gabarit en cartes ===== */
.tuiles{display:grid;grid-template-columns:minmax(0,3fr) minmax(230px,1fr);gap:14px;max-width:1280px;margin:0 auto}
.tuile{background:#fff;border:1px solid var(--trait);padding:16px;border-radius:var(--r);box-shadow:var(--ombre)}
.tuile.pleine{grid-column:1/-1}
.tuile.actions{color:#fff;border:1px solid rgba(196,201,208,.25);padding:10px 0;
  background:linear-gradient(rgba(196,201,208,.08) 1px,transparent 1px) 0 0/10px 10px,linear-gradient(90deg,rgba(196,201,208,.08) 1px,transparent 1px) 0 0/10px 10px,linear-gradient(180deg,var(--nuit3),var(--nuit2))}
.tuile.actions a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;color:#E8ECF1;text-decoration:none;font-size:13.5px;font-weight:600;cursor:pointer}
.tuile.actions a:hover{background:rgba(255,255,255,.1);color:#fff}
.tuile.actions a .ab{margin-left:auto;font-size:10px;color:var(--argent2);border:1px solid rgba(196,201,208,.4);border-radius:8px;padding:0 6px}
.rech{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.rech label{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:8px;font-size:13px;color:var(--texte2);font-weight:600}
.rech .bts{grid-column:1/-1;display:flex;gap:10px;margin-top:6px}
.h1m{font-family:var(--titre);font-size:21px;font-weight:800;color:var(--nuit2);margin:0 0 8px}
.pagin{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:46px;font-size:13px;color:var(--texte2)}
.pagin button{min-width:44px;height:44px;border:1px solid var(--trait);background:#fff;border-radius:10px;cursor:pointer;font-weight:700}
.pagin button.on{background:var(--nuit2);color:#fff;border-color:var(--nuit2)}
.tl-wrap{overflow:auto;max-height:calc(100vh - 270px);border-radius:12px}
.tl{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}
.tl th{position:sticky;top:0;background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;font-family:var(--titre);font-weight:700;font-size:11px;text-align:left;padding:9px 8px;white-space:nowrap;cursor:pointer;z-index:2}
.tl td{padding:6px 8px;border-bottom:1px solid var(--carte3);vertical-align:middle;max-width:320px;height:48px;overflow-wrap:normal;word-break:normal;hyphens:none}
.tl tr:nth-child(even) td{background:var(--carte2)}
.tl tr:hover td{background:#EAF0F7}
.tl tr.sel td{background:#DCE6F2}
.tl .a1{width:46px}
.tl td.act{white-space:nowrap}
.tl td.act .bt{margin-left:4px}
.tl .menu-l{width:44px;height:44px;border:1px solid var(--trait);background:#fff;border-radius:50%;cursor:pointer;font-size:16px}
.tl a.lien{font-weight:800;color:var(--nuit2);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.tl a.lien:hover{text-decoration:underline}
.menu-ligne{position:absolute;z-index:40;background:#fff;border:1px solid var(--trait);box-shadow:var(--ombre);min-width:250px;border-radius:12px;overflow:hidden}
.menu-ligne a{display:flex;align-items:center;min-height:46px;padding:0 16px;cursor:pointer;color:var(--texte);text-decoration:none;font-size:13.5px;border-bottom:1px solid var(--carte3);font-weight:600}
.menu-ligne a:hover{background:#EAF0F7}
.menu-ligne a .ab{margin-left:auto;font-size:10px;color:var(--texte2)}

/* fiches */
.fiche{max-width:1080px;margin:0 auto}
.fiche h2{font-family:var(--titre);font-size:17px;font-weight:800;color:var(--nuit2);margin:22px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--trait)}
.fiche .l{display:grid;grid-template-columns:270px 1fr;gap:12px;align-items:center;min-height:46px;border-bottom:1px solid var(--carte3);padding:4px 0}
.fiche .l span{color:var(--texte2);font-size:13px;text-align:right;font-weight:600}
.fiche .l input{height:44px;border:1px solid var(--trait);background:var(--carte2);border-radius:10px;padding:0 12px;width:100%}
.fiche .bts{display:flex;gap:10px;justify-content:flex-end;margin:16px 0}
.fiche > .v2-titre{color:#fff}

/* ===== planning graphique (plein écran) ===== */
.vl{position:fixed;inset:0;z-index:60;display:grid;grid-template-columns:190px 1fr 248px;grid-template-rows:auto 42px 1fr;background:#F2F5F9}
.vl-filtre{grid-row:1;grid-column:1;background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;padding:8px;font-size:12px;display:flex;flex-direction:column;gap:6px}
.vl-actions{grid-row:1;grid-column:2/4;background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;display:flex;align-items:center;gap:8px;padding:8px 12px;flex-wrap:wrap;border-bottom:1px solid rgba(196,201,208,.25)}
.vl-actions select,.vl-actions input{height:44px}
.vl-actions .lieu{width:150px}.vl-actions .heure{width:112px}
.vl-actions .jauge{font-size:12px;color:var(--argent);margin-left:auto}
.vl-coin{grid-row:2;grid-column:1;background:#DCE3EC;font-size:11px;display:flex;align-items:center;padding:0 10px;color:var(--texte2);font-weight:700}
.vl-echelle{grid-row:2;grid-column:2;background:#DCE3EC;overflow:hidden;position:relative}
.vl-echelle .in{position:relative;height:42px}
.vl-echelle .hr{position:absolute;top:0;height:42px;border-left:1px solid #B9C4D2;font-size:11px;padding:3px 4px;color:var(--texte2);font-weight:600}
.vl-echelle .jour{position:absolute;top:22px;font-size:11px;font-weight:800;padding-left:4px;color:var(--nuit2)}
.vl-noms{grid-row:3;grid-column:1;overflow:hidden;background:#E8EDF3;border-right:1px solid #C9D3DF}
.vl-noms .n{height:40px;display:flex;align-items:center;padding:0 10px;font-size:11.5px;line-height:1.1;border-bottom:1px solid #D3DBE5;gap:6px}
.vl-noms .n b{font-weight:700}
.vl-noms .n small{margin-left:auto;color:var(--texte2)}
.vl-grille{grid-row:3;grid-column:2;overflow:auto;position:relative;background:#fff}
.vl-grille .in{position:relative}
.vl-ligne{position:absolute;left:0;height:40px;border-bottom:1px solid #E3E8EF;background-image:linear-gradient(90deg,#DCE3EC 1px,transparent 1px),linear-gradient(90deg,#EEF2F6 1px,transparent 1px);background-size:64px 100%,16px 100%}
.vl-ligne.survol{background-color:#E3ECF7}
.vl-maint{position:absolute;top:0;bottom:0;width:3px;background:var(--rouge);z-index:4;pointer-events:none}
.vl-bloc{position:absolute;height:32px;top:4px;border-radius:8px;color:#fff;font-size:11px;padding:2px 7px;overflow:hidden;white-space:nowrap;cursor:grab;border-left:5px solid rgba(255,255,255,.6);box-shadow:0 2px 6px rgba(3,10,22,.25);z-index:3;line-height:1.25}
.vl-bloc b{font-weight:800}
.vl-bloc.annulee{opacity:.45;text-decoration:line-through}
.vl-bloc .vol{display:inline-block;margin-left:4px;padding:0 5px;border-radius:6px;background:rgba(255,255,255,.25);font-size:10px}
.vl-pile{grid-row:2/4;grid-column:3;background:#E8EDF3;border-left:1px solid #C9D3DF;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:10px}
.vl-pile .tete{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:800}
.carte{background:#fff;border:1px solid var(--trait);border-left:5px solid var(--argent3);border-radius:12px;font-size:11px;cursor:grab;box-shadow:0 2px 8px rgba(3,10,22,.1);overflow:hidden}
.carte .ct{display:flex;align-items:center;gap:6px;background:var(--carte3);padding:4px 8px;font-weight:800}
.carte .ct .st{width:18px;height:18px;font-size:9px;margin-left:auto}
.carte .cb{padding:6px 8px;display:flex;flex-direction:column;gap:2px}
.carte .cb .cl{background:rgba(30,90,168,.1);padding:1px 5px;border-radius:5px}
.carte.glisse,.vl-bloc.glisse{opacity:.5}
.carte.choisie,.vl-bloc.choisie{outline:3px solid var(--bleu);outline-offset:1px}
body[data-vue="graphique"] .v2-menu{display:none}

/* ===== accueil ===== */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.kpi h3{margin:0 0 8px;font-family:var(--titre);font-weight:700;font-size:17px;color:#fff}
.kpi .boite{background:#fff;border:1px solid var(--trait);padding:6px;border-radius:var(--r);box-shadow:var(--ombre)}
.kpi a{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:6px 12px;border-bottom:1px solid var(--carte3);text-decoration:none;color:var(--texte);cursor:pointer;font-size:14.5px;font-weight:600}
.kpi a:last-child{border-bottom:0}
.kpi a:hover{background:var(--carte2)}
.kpi a b{min-width:33%;text-align:center;border-radius:10px;color:#fff;font-family:var(--titre);font-size:17px;font-weight:800;padding:4px 8px;background:linear-gradient(180deg,var(--nuit4),var(--nuit2))!important}
.graphes{display:grid;grid-template-columns:1fr 2fr;gap:16px;margin-top:16px}
.graphe{background:#fff;border:1px solid var(--trait);padding:14px;border-radius:var(--r);box-shadow:var(--ombre)}
.graphe h4{margin:0 0 8px;font-family:var(--titre);font-weight:800;color:var(--nuit2)}
.graphe p{font-size:12px;color:var(--texte2);margin:8px 0 0}
.graphe svg{width:100%;height:auto;display:block}

/* ===== statistiques ===== */
.etiquettes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.etiquettes button{min-height:44px;padding:0 16px;border:1px solid rgba(196,201,208,.45);background:rgba(255,255,255,.08);color:#fff;border-radius:22px;cursor:pointer;font-weight:700}
.etiquettes button.on{background:linear-gradient(180deg,#F3F5F7,#9AA1AB);color:var(--nuit);border-color:#fff}
.rapports{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.rapport{background:#fff;border:1px solid var(--trait);padding:14px;border-radius:var(--r);box-shadow:var(--ombre)}
.rapport h2{font-family:var(--titre);font-size:15px;margin:0 0 8px;font-weight:800;color:var(--nuit2)}
.rapport table{width:100%;border-collapse:collapse;font-size:12.5px}
.rapport td{padding:6px 4px;border-bottom:1px solid var(--carte3)}
.rapport td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rapport .bar{height:8px;background:linear-gradient(90deg,#9AA1AB,var(--bleu));border-radius:4px}

/* fenêtres */
.fen-voile{position:fixed;inset:0;background:rgba(3,10,22,.6);z-index:90;display:flex;align-items:center;justify-content:center;padding:3vh 16px;backdrop-filter:blur(2px)}
.fen{background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.45);width:min(800px,94vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--trait)}
.fen .fc{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}
.fen .ft,.fen .fp{flex:0 0 auto}
.fen .ft{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--trait);font-family:var(--titre);font-weight:800;font-size:16px;color:var(--nuit2)}
.fen .ft button{margin-left:auto;width:44px;height:44px;border:0;background:transparent;font-size:22px;cursor:pointer;border-radius:50%}
.fen .fc{padding:18px}
.fen .fp{padding:14px 18px;border-top:1px solid var(--trait);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.fen .g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fen .g .l2{grid-column:span 2}.fen .g .l3{grid-column:1/-1}
.envoi-recap{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.envoi-recap td{border-bottom:1px solid var(--carte3);padding:6px 4px;vertical-align:top}
.envoi-recap td:first-child{color:var(--texte2);width:38%}

/* panneau des actions massives */
.massif{position:fixed;top:calc(var(--haut) + var(--barre));bottom:var(--pied);left:0;z-index:70;background:linear-gradient(180deg,rgba(22,58,99,.98),rgba(8,24,48,.98));color:#fff;display:flex;transform:translateX(-102%);transition:transform .22s;box-shadow:10px 0 30px rgba(0,0,0,.45);overflow:auto;border-right:1px solid rgba(196,201,208,.2)}
.massif.ouvert{transform:none}
.massif .col{width:240px;border-right:1px solid rgba(196,201,208,.15);padding:12px 0}
.massif h6{margin:4px 16px 8px;font-family:var(--titre);font-size:11px;letter-spacing:.14em;color:var(--argent);font-weight:800;text-transform:uppercase}
.massif a{display:flex;align-items:center;min-height:46px;padding:0 16px;color:#E8ECF1;cursor:pointer;font-size:13.5px;gap:8px;font-weight:600}
.massif a:hover{background:rgba(255,255,255,.08)}
.massif a .ab{margin-left:auto;font-size:10px;color:var(--argent2)}
.massif .ferme{position:sticky;top:0;align-self:flex-start;margin:8px}

/* pages SD (suivi en direct, propositions, documents, frais) */
.sd-grille{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:16px}
.sd-carte{height:calc(100vh - 220px);min-height:420px;border-radius:var(--r);overflow:hidden;box-shadow:var(--ombre);border:1px solid var(--trait)}
.sd-liste{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 220px);overflow:auto}
.sd-item{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:12px 14px;box-shadow:0 4px 14px rgba(3,10,22,.18)}
.sd-item h4{margin:0 0 4px;font-family:var(--titre);font-weight:800;color:var(--nuit2);font-size:14px;display:flex;align-items:center;gap:8px}
.sd-item p{margin:2px 0;font-size:12.5px;color:var(--texte2)}
.doc-ok{color:var(--vert);font-weight:800}.doc-ko{color:var(--rouge);font-weight:800}.doc-bientot{color:var(--ambre);font-weight:800}

/* messages */
.toast{position:fixed;bottom:calc(var(--pied) + 16px);left:50%;transform:translateX(-50%);background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;padding:13px 20px;border-radius:14px;z-index:99;box-shadow:var(--ombre);max-width:90vw;font-size:14px;border:1px solid rgba(196,201,208,.4);font-weight:600}
.charge{padding:30px;text-align:center;color:var(--argent)}
.charge::before{content:"";display:inline-block;width:14px;height:14px;border:2px solid var(--argent2);border-top-color:#fff;border-radius:50%;margin-right:8px;vertical-align:-2px;animation:tour .8s linear infinite}
.tuile .charge,.dos-b .charge,.graphe .charge,.vide-liste .charge{color:var(--texte2)}
@keyframes tour{to{transform:rotate(360deg)}}
.abr{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:26px;max-width:900px;margin:0 auto;box-shadow:var(--ombre)}
.abr h2{margin-top:0;font-family:var(--titre);color:var(--nuit2)}

.pl-champs .pilule{padding:0 10px}
.pl-champs input[type=date],.pl-champs input[type=time]{padding:0 6px;font-size:11.5px}
.pl-champs .compte span{font-size:11px}
@media (max-width:1100px){
  .dos-tete{grid-template-columns:1fr 1fr}
  .tuiles,.sd-grille{grid-template-columns:1fr}
  .graphes{grid-template-columns:1fr}
  .pl-actions{display:none}
}
@media print{
  .v2-haut,.v2-menu,.v2-pied,.pl-bandeau,.pl-actions,.v2-filaments{display:none!important}
  body{background:#fff}
}


/* ================== PALETTES (gris, bleu clair, bleu) ==================
   La valeur --palette (en haut) est lue au démarrage et posée sur <html data-palette="…">. */
html[data-palette="1"]{ /* Ardoise : gris bleuté, bleu, bleu clair */
  --nuit:#16283B; --nuit2:#1F3A57; --nuit3:#2A4E74; --nuit4:#3A6A9A; --encre:#1F3A57; --bleu:#2F74C0; --bleu-clair:#CFE2F6;
  --fond1:#2B3F55; --fond2:#22344A; --fond3:#1A2A3C; --halo:rgba(120,170,225,.30);
  --bandeau:linear-gradient(180deg,#1F3A57 0%,#16283B 100%); --menu:linear-gradient(180deg,#2A4E74,#1F3A57);
  --argent:#C4C9D0; --argent2:#9AA1AB; --argent3:#5B6068; --carte2:#F5F7FA; --carte3:#EDF1F6; --trait:#DCE3EC}
html[data-palette="2"]{ /* Ciel : bleu franc, bleu clair lumineux, gris perle */
  --nuit:#1B4F8A; --nuit2:#2462A6; --nuit3:#2F78C4; --nuit4:#4C95DB; --encre:#2462A6; --bleu:#2F8BE6; --bleu-clair:#DDEFFF;
  --fond1:#4F8CC9; --fond2:#3B76B3; --fond3:#2B5E95; --halo:rgba(210,235,255,.45);
  --bandeau:linear-gradient(180deg,#2C72BC 0%,#1E5A9C 100%); --menu:linear-gradient(180deg,#5DA2E3,#3F86CF);
  --argent:#DCE7F2; --argent2:#B4C6D8; --argent3:#5E6E7F; --carte2:#F3F8FD; --carte3:#E6EFF8; --trait:#D3E1EE}
html[data-palette="3"]{ /* Graphite : gris anthracite, bleu acier, bleu clair glacier */
  --nuit:#24282E; --nuit2:#30363E; --nuit3:#3E4651; --nuit4:#56606D; --encre:#30363E; --bleu:#3F86C9; --bleu-clair:#D6E8F7;
  --fond1:#3A4048; --fond2:#2C3137; --fond3:#202429; --halo:rgba(110,160,210,.26);
  --bandeau:linear-gradient(180deg,#30363E 0%,#24282E 100%); --menu:linear-gradient(180deg,#3E4651,#30363E);
  --argent:#CBD1D8; --argent2:#9EA6B0; --argent3:#5A616B; --carte2:#F4F6F8; --carte3:#EBEEF2; --trait:#DADFE5}

/* ================== bannière : horloge, date, calendrier ================== */
.v2-horloge{display:flex;align-items:center;gap:12px;padding:6px 8px 6px 16px;margin-left:8px;border-radius:18px;border:1px solid rgba(196,201,208,.22);
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.02));box-shadow:inset 0 1px 0 rgba(255,255,255,.12);position:relative;overflow:hidden}
.v2-horloge::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(196,201,208,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(196,201,208,.08) 1px,transparent 1px);background-size:8px 8px;pointer-events:none;animation:quadr 18s linear infinite}
.v2-hm{display:flex;align-items:flex-start;gap:2px;line-height:1}
.v2-hm b{font-family:var(--marque);font-size:24px;font-weight:400;color:#fff;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.v2-hm span{font-family:var(--marque);font-size:11px;color:var(--bleu-clair);margin-top:2px;min-width:16px;font-variant-numeric:tabular-nums}
.v2-jd{display:flex;flex-direction:column;line-height:1.15;border-left:1px solid rgba(196,201,208,.25);padding-left:12px}
.v2-jd span:first-child{font-family:var(--titre);font-weight:800;font-size:12px;text-transform:capitalize;color:var(--bleu-clair);letter-spacing:.04em}
.v2-jd span:last-child{font-family:var(--titre);font-weight:600;font-size:12.5px;color:#E8EEF5;white-space:nowrap}
.v2-calbt{width:44px;height:44px;border-radius:50%;border:1px solid rgba(196,201,208,.35);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:grid;place-items:center;position:relative}
.v2-calbt:hover{background:rgba(255,255,255,.18)}
.v2-calpop{position:fixed;z-index:70;padding:14px;border-radius:18px;background:var(--bandeau);border:1px solid rgba(196,201,208,.3);box-shadow:var(--ombre);color:#fff}
.v2-calpop .mini-cal{width:300px}
.v2-calpop .mini-cal td{height:40px}
@media (max-width:1400px){.v2-jd span:last-child{font-size:11.5px}.v2-hm b{font-size:21px}.v2-recherche{flex-basis:380px}}

/* ================== planning : barre de filtres sur une ligne ================== */
.pl-bandeau{display:block}
.pl-barre{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0}
.pl-jour{display:flex;align-items:center;gap:6px;flex:none}
.pl-jour .bt.rond{font-size:20px}
.pl-datebt{min-height:44px;padding:0 12px;border-radius:22px;border:1px solid rgba(196,201,208,.4);background:rgba(255,255,255,.08);color:#fff;font-family:var(--titre);font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}
.pl-datebt:hover{background:rgba(255,255,255,.16)}
.pl-statuts{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(196,201,208,.4) transparent}
.pl-statuts .rail{display:flex;gap:6px;width:max-content;padding:2px 0}
.pl-statuts .rd{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 10px 0 8px;border-radius:22px;border:1px solid rgba(196,201,208,.3);background:rgba(255,255,255,.06);color:#E8EEF5;cursor:pointer;font-family:var(--titre);font-weight:700;font-size:12px;white-space:nowrap}
.pl-statuts .rd i{width:12px;height:12px;border-radius:50%;background:var(--sc);box-shadow:0 0 0 2px rgba(255,255,255,.25);flex:none}
.pl-statuts .rd em{font-style:normal;font-size:11px;min-width:20px;height:20px;border-radius:10px;background:rgba(255,255,255,.14);display:inline-grid;place-items:center;padding:0 5px}
.pl-statuts .rd:hover{background:rgba(255,255,255,.14)}
.pl-statuts .rd.on{background:#fff;color:var(--nuit2);border-color:#fff}
.pl-statuts .rd.on em{background:var(--sc);color:#fff}
.pl-sels{display:flex;gap:6px;flex:none}
.pl-sels label{display:flex;flex-direction:column;font-size:10px;color:var(--argent);font-weight:700;letter-spacing:.04em;gap:1px}
.pl-sels select{width:132px;height:36px;min-height:36px;padding:0 8px;font-size:12px}
.pl-sels label{min-height:44px;justify-content:center}
.pl-barre .compte{display:flex;flex-direction:column;align-items:center;flex:none;line-height:1}
.pl-barre .compte b{font-family:var(--titre);font-size:20px;color:#fff}
.pl-barre .compte span{font-size:10px;color:var(--argent)}
.pl-avances{display:none;margin-top:10px;padding-top:10px;border-top:1px solid rgba(196,201,208,.2);gap:12px;align-items:flex-start;flex-wrap:wrap}
.pl-avances.ouvert{display:flex}
.pl-avances .pl-champs{grid-template-columns:repeat(4,128px)}
.pl-av2{flex:1 1 100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;font-size:11px}
.pl-av2 label{color:var(--argent);display:flex;flex-direction:column;gap:3px;font-weight:600}
.pl-boutons{display:flex;gap:8px;align-items:flex-end}
/* pastilles compactes (point de couleur + nombre) ; le libellé complet s'affiche sur la pastille choisie et au survol */
@media (max-width:1500px){.pl-sels select{width:112px}.pl-statuts .rd{padding:0 8px 0 7px;font-size:11.5px}}
@media (max-width:1360px){.pl-jour .bt.clair{padding:0 10px}.pl-sels select{width:100px}}
/* couleurs des statuts (ancien SD Admin, sd-statuts.js) */
.st-att{--sc:#B45309}.st-env{--sc:#1E5AA8}.st-ok{--sc:#1D6F42}.st-route{--sc:#0E7490}.st-place{--sc:#6D28D9}.st-bord{--sc:#6D28D9}.st-fin{--sc:#475569}.st-fact{--sc:#0F2A4A}.st-noshow{--sc:#9B1C1C}.st-annul{--sc:#94A3B8}
.stx{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:14px;background:color-mix(in srgb,var(--sc) 14%,#fff);color:color-mix(in srgb,var(--sc) 80%,#000);border:1px solid color-mix(in srgb,var(--sc) 40%,#fff);font-family:var(--titre);font-weight:800;font-size:11.5px;line-height:1.2}
.stx i{width:10px;height:10px;border-radius:50%;background:var(--sc);flex:none}
.tm td.c-st small.regle{display:block;margin-top:3px;font-size:10px;color:var(--vert);font-weight:800}
.ed .codes .stx{margin-right:6px}
.vl-bloc.st-att,.vl-bloc.st-env,.vl-bloc.st-ok,.vl-bloc.st-route,.vl-bloc.st-place,.vl-bloc.st-bord,.vl-bloc.st-fin,.vl-bloc.st-fact,.vl-bloc.st-noshow,.vl-bloc.st-annul{background:var(--sc)}

/* planning pleine largeur : actions au-dessus du tableau */
.pl-corps.pl-plan{flex-direction:column;gap:10px}
.pl-corps.pl-plan .pl-actions{width:100%;position:static;flex-direction:row;flex-wrap:wrap;gap:8px}
.pl-corps.pl-plan .pl-actions .bt{width:auto}
.pl-corps.pl-plan .pl-centre{width:100%}
@media (max-width:1100px){.pl-corps.pl-plan .pl-actions{display:flex}}

/* horaires : début au-dessus, fin en dessous (même case) */
.hrs{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}
.hrs .hd{font-family:var(--titre);font-weight:800;font-size:13.5px;color:var(--nuit2)}
.hrs .hfn{font-family:var(--titre);font-weight:600;font-size:12px;color:var(--texte2);margin-top:3px}
.hrs .hf{font-size:11px;color:var(--argent2);margin-top:3px}
.ic-n{display:inline-flex;align-items:center;gap:3px;font-weight:700;color:var(--texte2);cursor:help}
.tm tbody tr.lg.choisie{background:var(--bleu-clair)!important;box-shadow:inset 4px 0 0 var(--bleu)}

/* ================== panneau de droite ================== */
.v2-pan{position:fixed;top:calc(var(--haut) + var(--barre));right:0;bottom:var(--pied);width:min(500px,94vw);z-index:46;background:var(--carte2);border-left:1px solid var(--trait);box-shadow:-18px 0 40px rgba(3,10,22,.35);transform:translateX(105%);transition:transform .22s ease;overflow:auto;overscroll-behavior:contain;visibility:hidden}
.v2-pan.ouvert{transform:none;visibility:visible}
@media (prefers-reduced-motion:reduce){.v2-pan{transition:none}}
@media (min-width:1600px){body.pan-ouvert .v2-contenu{padding-right:520px}}
.pan-tete{position:sticky;top:0;z-index:2;background:var(--bandeau);color:#fff;padding:12px 14px 14px}
.pan-t1{display:flex;align-items:center;gap:10px}
.pan-num{font-family:var(--titre);font-weight:800;font-size:15px}
.pan-x{margin-left:auto;width:44px;height:44px;border-radius:50%;border:1px solid rgba(196,201,208,.4);background:rgba(255,255,255,.08);color:#fff;font-size:22px;cursor:pointer}
.pan-x:hover{background:rgba(255,255,255,.2)}
.pan-t2{display:flex;align-items:center;gap:16px;margin-top:10px}
.pan-t2 .dt{color:var(--argent)}.pan-t2 .dt b{color:#fff}
.pan-t2 .hrs .hd{color:#fff;font-size:18px}.pan-t2 .hrs .hfn{color:var(--bleu-clair)}.pan-t2 .hrs .hf{color:var(--argent2)}
.pan-cli{display:flex;flex-direction:column;min-width:0}
.pan-cli b{font-family:var(--titre);font-weight:800;font-size:14px}
.pan-cli span{font-size:12px;color:var(--argent)}
.pan-corps{padding:14px}
.pan-corps .mini-t th{width:38%;vertical-align:top}
.pan-blocs{display:flex;flex-direction:column;gap:10px;margin:4px 0 14px}
.pan-bloc{background:#fff;border:1px solid var(--trait);border-radius:14px;padding:10px 12px 12px}
.pan-bloc h6{margin:0 0 8px;font-family:var(--titre);font-weight:800;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--nuit2)}
.pan-bloc .bt{margin:0 6px 6px 0}
.pan-bloc .bt .ab{font-size:10px;font-weight:600;color:var(--texte2)}
.v2-pan .dp{display:block;padding:0;border:0}
.v2-pan .dp > div{min-width:0}
.v2-pan .mini-t{font-size:12px}

/* ================== actions groupées (en bas) ================== */
.v2-groupe{position:fixed;left:50%;bottom:calc(var(--pied) + 12px);transform:translate(-50%,160%);z-index:60;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 32px);
  padding:10px 14px;border-radius:20px;background:var(--bandeau);border:1px solid rgba(196,201,208,.35);box-shadow:var(--ombre);transition:transform .2s;visibility:hidden}
.v2-groupe.ouvert{transform:translate(-50%,0);visibility:visible}
.v2-groupe b{color:#fff;font-family:var(--titre);margin-right:6px}
.v2-groupe .bt.contour{color:#fff;border-color:rgba(196,201,208,.5)}
.puce.gris{white-space:nowrap}
.stx{white-space:nowrap}
.v2-recherche input{text-overflow:clip}

/* ================== Chauffeurs : liste unique et fiche façon CV ================== */
.chf-barre{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.chf-barre .pilule{width:min(420px,100%)}
.chf-filtres{display:flex;gap:6px;flex-wrap:wrap}
.chf-f{min-height:44px;padding:0 14px;border-radius:22px;border:1px solid rgba(196,201,208,.35);background:rgba(255,255,255,.07);color:#E8EEF5;font-family:var(--titre);font-weight:700;font-size:12.5px;cursor:pointer}
.chf-f:hover{background:rgba(255,255,255,.15)}.chf-f.on{background:#fff;color:var(--nuit2)}
.chf-n{color:#fff;font-family:var(--titre);margin-left:auto}
.chf-l{background:#fff;border-radius:var(--r);box-shadow:var(--ombre);overflow:hidden}
.chf-tete,.chf-li{display:grid;grid-template-columns:60px minmax(200px,1.4fr) minmax(190px,1.2fr) minmax(150px,1fr) 150px 150px 120px;gap:10px;align-items:center;padding:8px 14px}
.chf-tete{background:linear-gradient(180deg,var(--nuit3),var(--nuit2));color:#fff;font-family:var(--titre);font-weight:700;font-size:11px;letter-spacing:.04em;position:sticky;top:calc(var(--haut) + var(--barre));z-index:3}
.chf-li{min-height:64px;border-bottom:1px solid var(--carte3);text-decoration:none;color:var(--texte);content-visibility:auto;contain-intrinsic-size:auto 66px}
.chf-li:nth-child(even){background:var(--carte2)}
.chf-li:hover{background:var(--bleu-clair)}
.chf-av{width:46px;height:46px;border-radius:50%;object-fit:cover;background:var(--carte3);display:grid;place-items:center;font-family:var(--titre);font-weight:800;color:var(--nuit2);font-size:15px;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--trait)}
.chf-nom b{display:block;font-family:var(--titre);font-weight:800;color:var(--nuit2)}
.chf-nom small{display:inline-block;margin:3px 6px 0 0;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:10px;background:var(--carte3);color:var(--texte2)}
.chf-nom small.verif{background:#FDECC8;color:#8A4B08}
.chf-ct span,.chf-so small{display:block;font-size:12px;color:var(--texte2)}
.chf-so{font-weight:600}
.chf-pt{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:800;background:var(--carte3);color:var(--texte2);white-space:nowrap}
.chf-pt.ok{background:#DDF1E4;color:#1D6F42}.chf-pt.ko{background:#F8DEDE;color:#9B1C1C}.chf-pt.am{background:#FDECC8;color:#8A4B08}.chf-pt.gris{background:var(--carte3);color:var(--texte2)}
.chf-go{font-family:var(--titre);font-weight:800;font-size:12px;color:var(--bleu);min-height:44px;display:flex;align-items:center}
.chf-fin{padding:14px;text-align:center;color:var(--texte2);font-size:12px}
.cv{display:flex;flex-direction:column;gap:14px}
.cv-tete{display:flex;gap:22px;align-items:center;background:var(--bandeau);color:#fff;border-radius:var(--r);padding:22px;border:1px solid rgba(196,201,208,.25);box-shadow:var(--ombre)}
.cv-photo{width:150px;height:150px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 4px rgba(255,255,255,.85),0 10px 24px rgba(0,0,0,.35);background:var(--nuit3);display:grid;place-items:center;font-family:var(--marque);font-size:42px;color:#fff}
.cv-id h1{margin:0 0 8px;font-family:var(--titre);font-weight:800;font-size:26px;line-height:1.15}
.cv-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cv-co{display:flex;gap:14px;flex-wrap:wrap}
.cv-co a,.cv-co span{color:#fff;font-weight:700;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;border-bottom:1px dashed rgba(255,255,255,.4)}
.cv-so{margin-top:4px;color:var(--bleu-clair);font-weight:700}
.cv-code{margin-top:6px;font-family:var(--titre);color:var(--argent)}.cv-code b{font-family:var(--marque);color:#fff;letter-spacing:.12em;margin-left:6px}
.cv-verif{margin:8px 0 0;color:#FDECC8;font-size:13px}.cv-verif a{color:#fff}
.cv-actions{display:flex;gap:8px;flex-wrap:wrap}
.cv-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cv-b{background:#fff;border-radius:var(--r);padding:14px 16px;box-shadow:var(--ombre);border:1px solid var(--trait);min-width:0}
.cv-b.large{grid-column:1/-1}
.cv-b h3{margin:0 0 10px;font-family:var(--titre);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--nuit2)}
.cv-b h4{margin:6px 0;font-family:var(--titre);font-size:13px;color:var(--nuit2)}
.cv-vide{color:var(--texte2);font-size:13px;margin:4px 0}
.cv-veh{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.cv-veh img,.cv-veh-v{width:120px;height:80px;border-radius:12px;object-fit:cover;background:var(--carte3);flex:none;display:block}
.cv-veh b{display:block;font-family:var(--titre)}.cv-veh small{display:block;color:var(--texte2)}
.cv-plaque{display:inline-block;margin:4px 0;padding:2px 10px;border:2px solid var(--nuit2);border-radius:6px;font-family:var(--marque);font-size:12px;letter-spacing:.08em;white-space:nowrap}
.cv-gam .chf-pt{margin:2px}
.cv-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.cv-doc{display:flex;flex-direction:column;gap:3px;padding:8px;border-radius:12px;border:1px solid var(--trait);text-decoration:none;color:var(--texte);min-height:44px;background:var(--carte2)}
.cv-doc img,.cv-doc .cv-doc-v{width:100%;height:84px;object-fit:cover;border-radius:8px;background:var(--carte3);display:grid;place-items:center;font-family:var(--titre);font-weight:800;color:var(--texte2);font-size:12px;text-align:center}
.cv-doc b{font-size:12.5px}.cv-doc small{font-size:11px;color:var(--texte2)}
.cv-doc.perime{border-color:#9B1C1C;background:#FBEAEA}.cv-doc.perime small:first-of-type{color:#9B1C1C;font-weight:800}
.cv-doc.bientot{border-color:#B4510F;background:#FDF3E6}
.cv-doc.manque{border-style:dashed;opacity:.85}
.cv-ind{padding:6px 10px;border-left:3px solid #9B1C1C;background:var(--carte2);border-radius:8px;margin-bottom:6px;font-size:13px}
.cv-note{white-space:pre-wrap;margin:0}
@media (max-width:1400px){.chf-tete,.chf-li{grid-template-columns:56px minmax(180px,1.3fr) minmax(170px,1.1fr) minmax(130px,1fr) 130px 130px 100px}}

/* espaces partenaires */
.v2-espace{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:18px;background:var(--ec,#5B6068);color:#fff;font-family:var(--titre);font-weight:800;font-size:13px;letter-spacing:.06em;box-shadow:0 0 0 2px rgba(255,255,255,.35);white-space:nowrap}
.acces h2{font-size:20px}.acces-duree{border:1px solid var(--trait);border-radius:12px;padding:10px 14px;margin:12px 0}.acces-duree label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.acces-bt{display:flex;gap:10px;flex-wrap:wrap}.acces .note,.tuile .note{font-size:12px;color:var(--texte2)}
.es-t{font-family:var(--titre);margin:18px 0 8px;color:var(--nuit2)}.es-f{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.es-c{display:inline-block;width:22px;height:22px;border-radius:50%;vertical-align:middle}.es-alerte{color:var(--rouge);font-weight:800}

/* contrôle du 18/10 : statuts lisibles en entier (sur 2 lignes s'il le faut), bouton Filtres, cartes du planning graphique */
.pl-barre{flex-wrap:wrap;row-gap:8px}
.pl-statuts{order:10;flex:1 1 100%;overflow:visible}
.pl-statuts .rail{flex-wrap:wrap;width:auto}
.pl-statuts .rd span{display:inline}
#pl-f{min-width:max-content;flex:none}
.carte .ct{flex-wrap:wrap}
.carte .ct .stx{margin-left:auto}
.carte .cb,.carte .cb *{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.vl-bloc .vol.retard{background:#B4510F}.vl-bloc .vol.annule{background:#9B1C1C}.vl-bloc .vol.inconnu{background:rgba(0,0,0,.25)}.vl-bloc .vol.alheure{background:rgba(29,111,66,.85)}
.c-chf .arch{display:inline-block;margin-left:6px;font-size:10.5px;color:var(--texte2);text-decoration:underline;min-height:24px}
.cv-x{margin-left:8px;width:44px;height:44px;border-radius:50%;border:1px solid #9B1C1C;background:#fff;color:#9B1C1C;cursor:pointer;vertical-align:middle}
.cv-ind{display:flex;align-items:center;flex-wrap:wrap}
.fi-js{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.chk-j{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 10px;border:1px solid var(--trait);border-radius:22px;cursor:pointer}
.cv-veh .bt{margin-left:8px}

/* onglet Pancarte */
.pc-grille{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.6fr);gap:14px}
.pc-b{background:#fff;border-radius:var(--r);padding:14px 16px;box-shadow:var(--ombre);border:1px solid var(--trait);min-width:0}
.pc-b.large{grid-column:1/-1}
.pc-b h3{margin:0 0 10px;font-family:var(--titre);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--nuit2)}
.pc-liste{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}
.pc-li{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:8px 12px;border:1px solid var(--trait);border-radius:12px;background:var(--carte2);cursor:pointer;text-align:left;font-family:inherit}
.pc-li span{font-size:12px;color:var(--texte2)}.pc-li.on{border-color:var(--bleu);background:var(--bleu-clair)}
.pc-tab{aspect-ratio:16/10;border-radius:14px;border:1px solid var(--trait);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;margin:10px 0;overflow:hidden;box-shadow:inset 0 0 0 6px rgba(0,0,0,.04)}
.pc-logo{max-width:70%;max-height:45%;object-fit:contain}.pc-logo-v{font-family:var(--titre);font-weight:800;opacity:.4}
.pc-nom{font-family:var(--titre);font-weight:800;font-size:clamp(16px,2.4vw,34px);letter-spacing:.04em;text-align:center;line-height:1.1}
.pc-txt{font-size:14px;opacity:.8;text-align:center}
.pc-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.pc-mod{border:1px solid var(--trait);border-radius:12px;background:var(--carte2);padding:6px;cursor:pointer;font-family:inherit;text-align:center;min-height:44px}
.pc-mod .pc-tab{margin:0 0 6px}.pc-mod .pc-nom{font-size:12px}
.pc-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}

/* devis et factures */
.fa-barre{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.fa-num{color:#fff;font-size:13px}.fa-num small{color:var(--argent)}
.fa-t td.n,.fa-t th.n{text-align:right;white-space:nowrap}
.fa-ctl{margin-top:12px;padding:10px 12px;border:1px solid var(--trait);border-radius:12px;background:var(--carte2)}.fa-ctl h4{margin:0 0 6px;font-family:var(--titre)}
.fa-rouge{color:#9B1C1C;font-weight:700}.fa-orange{color:#8A4B08;font-weight:700}.fa-vert{color:#1D6F42;font-weight:700}
.ff-l td{vertical-align:middle}.ff-tot{margin:10px 0;font-size:14px}
.pf .g{margin:12px 0}

/* compléments */
.cp-b{background:#fff;border-radius:var(--r);padding:14px 16px;box-shadow:var(--ombre);border:1px solid var(--trait)}
.se-t td{vertical-align:top;min-width:120px}.se-c{font-size:12px;margin-bottom:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.etoiles{color:#B4510F;white-space:nowrap}
.gm{margin-bottom:10px}

/* 18/10 : étapes dans l'ordre (planning dépliable, panneau et fiche numérotés) ; coche « Vol vérifié à … » */
.et-l{list-style:none;margin:6px 0 0;padding:0;counter-reset:et}
.et-l li{display:flex;gap:8px;align-items:baseline;padding:3px 0;counter-increment:et;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.et-l li::before{content:counter(et);flex:none;width:20px;height:20px;border-radius:50%;background:#7A818B;color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.et-l li small{flex:none;font-size:11px;font-weight:700;color:var(--texte2);min-width:58px;white-space:nowrap}
.et-l li span{font-weight:600}
.et-l.complet li:first-child::before{background:var(--vert)}.et-l.complet li:last-child::before{background:var(--nuit2)}
button.puce.etape{min-height:30px}
.vol-ok{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--vert);white-space:nowrap}
.vol-ok svg{flex:none}
.m-g.vol-ok2{color:var(--vert);font-weight:700}

/* 18/10 : calendrier du mois toujours visible à droite du planning + fenêtre au clic, style clair avec relief et vagues
   (bleus #0F2A4A, #081830, #1E5AA8, argent #AFC0D6 / #C4D3E6 ; pas de doré) */
.pl-ligne{display:flex;gap:14px;align-items:flex-start;width:100%}
.pl-ligne .pl-centre{flex:1;min-width:0}
.pl-droite{flex:none;width:286px;position:sticky;top:calc(var(--haut) + var(--barre) + 14px)}
@media (max-width:1100px){.pl-droite{display:none}}
.mini-cal.cal-clair,.v2-calpop .mini-cal{position:relative;overflow:hidden;width:100%;padding:14px 14px 12px;border-radius:20px;background:linear-gradient(180deg,#FFFFFF 0%,#F3F7FC 100%);border:1px solid #DCE5F0;box-shadow:inset 0 1px 0 #fff,0 2px 4px rgba(8,24,48,.06),0 14px 32px rgba(8,24,48,.24);color:#0F2A4A}
.v2-calpop{padding:0;background:transparent;border:0;box-shadow:none}
.v2-calpop .mini-cal{width:310px;box-shadow:0 2px 4px rgba(8,24,48,.08),0 24px 48px rgba(8,24,48,.45)}
.cal-vag{position:absolute;left:0;right:0;bottom:0;width:100%;height:70px;pointer-events:none}
.cal-clair>*:not(.cal-vag),.v2-calpop .mini-cal>*:not(.cal-vag){position:relative}
.cal-clair .tete,.v2-calpop .mini-cal .tete{font-size:15px;color:#0F2A4A;gap:4px}
.cal-clair .tete button,.v2-calpop .mini-cal .tete button{width:44px;height:44px;border-radius:50%;border:1px solid #DCE5F0;background:linear-gradient(180deg,#FFFFFF,#EAF0F7);color:#0F2A4A;font-size:20px;box-shadow:0 2px 6px rgba(8,24,48,.14),inset 0 1px 0 #fff}
.cal-clair .tete button.auj,.v2-calpop .mini-cal .tete button.auj{width:auto;padding:0 12px;border-radius:22px;font-size:12px;font-weight:700;color:#0F2A4A;border-color:#C4D3E6}
.cal-clair table,.v2-calpop .mini-cal table{border-collapse:separate;border-spacing:3px;font-size:13px}
.cal-clair th,.v2-calpop .mini-cal th{color:#5D7391;font-weight:700}
.cal-clair td,.v2-calpop .mini-cal td{height:36px;color:#0F2A4A;font-weight:700;border-radius:12px;position:relative;outline:0}
.cal-clair td:hover,.v2-calpop .mini-cal td:hover{background:#E6EEF8}
.cal-clair td.hors,.v2-calpop .mini-cal td.hors{color:#AFC0D6}
.cal-clair td.we,.v2-calpop .mini-cal td.we{color:#5D7391}
.cal-clair td.auj,.v2-calpop .mini-cal td.auj{outline:0;box-shadow:inset 0 0 0 2px #1E5AA8}
.cal-clair td.plage,.v2-calpop .mini-cal td.plage{background:#DCE8F6}
.cal-clair td.sel,.v2-calpop .mini-cal td.sel{background:linear-gradient(180deg,#2A6CC0,#1E5AA8);color:#fff;box-shadow:0 6px 14px rgba(30,90,168,.38),inset 0 1px 0 rgba(255,255,255,.35)}
.cal-clair td.m::after,.v2-calpop .mini-cal td.m::after{content:"";position:absolute;left:50%;bottom:3px;width:5px;height:5px;margin-left:-2px;border-radius:50%;background:#1E5AA8}
.cal-clair td.sel.m::after,.v2-calpop .mini-cal td.sel.m::after{background:#fff}
.cal-leg{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;font-weight:600;color:#3D5675}
.cal-leg i{width:6px;height:6px;border-radius:50%;background:#1E5AA8}

/* 18/10 : barre d'outils du planning compacte, sur une seule ligne (hauteur 44 px gardée) ; actions en icônes avec infobulle */
.pl-act{display:flex;gap:6px;flex:none;align-items:center}
.pl-act .bt{padding:0 12px;min-width:44px}
.pl-act .bt.ic{width:44px;padding:0;justify-content:center}
.pl-act .bt.ic svg{margin:0}
.pl-barre{gap:8px}
.pl-jour .bt.clair{padding:0 12px}
#pl-f{padding:0 12px}
.pl-barre .compte span{white-space:nowrap}
@media (max-width:1500px){.pl-droite{width:244px}.cal-clair{padding:10px 8px 10px}.cal-clair td{height:31px;font-size:12.5px}.cal-clair .tete{font-size:13.5px}.cal-clair table{border-spacing:2px}}
.c-iti .et-l li{display:block}.c-iti .et-l li::before{margin-right:6px;vertical-align:middle}.c-iti .et-l li small{display:inline;margin-right:4px}.c-iti .et-l li span{display:block;padding-left:26px}
.cal-clair .tete span,.v2-calpop .mini-cal .tete span{white-space:nowrap;text-transform:capitalize}

/* ================== 18/10 : ambiance « bleu, rouge, gris » lumineuse (choix d'Hassan) ==================
   Base palette 3 gardée (gris graphite pour les textes et traits), avec beaucoup plus de bleu lumineux (bannière, menu actif,
   boutons principaux, en-têtes, calendrier), le rouge en accent (alertes, « À attribuer », boutons importants),
   des gris clairs argentés pour les cartes, du relief (ombres douces) et des vagues légères. Pas de doré. */
html[data-palette="3"]{
  --nuit:#081830; --nuit2:#0F2A4A; --nuit3:#1E5AA8; --nuit4:#3C7BD0; --encre:#0F2A4A; --bleu:#1E5AA8; --bleu-clair:#C4D3E6;
  --fond1:#1B3E6B; --fond2:#11294A; --fond3:#0A1B33; --halo:rgba(90,160,240,.38);
  --bandeau:linear-gradient(180deg,#1E5AA8 0%,#0F2A4A 62%,#081830 100%); --menu:linear-gradient(180deg,#16406F,#0F2A4A);
  --argent:#C4D3E6; --argent2:#AFC0D6; --argent3:#5D7391; --argent-clair:#E6EDF6;
  --carte:#FFFFFF; --carte2:#F2F5F9; --carte3:#E7ECF2; --trait:#D5DDE7; --texte:#13202F; --texte2:#4F6177;
  --rouge:#C62828; --vert:#1D6F42; --ombre:0 2px 4px rgba(8,24,48,.10),0 14px 34px rgba(8,24,48,.32);
}
html[data-palette="3"] body{background-image:radial-gradient(120% 70% at 50% -10%,rgba(90,160,240,.42),transparent 60%),radial-gradient(70% 50% at 100% 100%,rgba(196,211,230,.16),transparent 60%),linear-gradient(180deg,var(--fond1) 0%,var(--fond2) 50%,var(--fond3) 100%)}
html[data-palette="3"] body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:22vh;pointer-events:none;z-index:0;opacity:.55;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 200' preserveAspectRatio='none'%3E%3Cpath d='M0 110 C200 60 380 160 600 110 S1000 60 1200 100 V200 H0Z' fill='%23C4D3E6' fill-opacity='.10'/%3E%3Cpath d='M0 150 C240 110 420 190 660 150 S1020 120 1200 150 V200 H0Z' fill='%23AFC0D6' fill-opacity='.10'/%3E%3C/svg%3E") center bottom/100% 100% no-repeat}
html[data-palette="3"] .v2-haut{box-shadow:0 1px 0 rgba(196,211,230,.25),0 8px 24px rgba(8,24,48,.35)}
html[data-palette="3"] .v2-m1.actif,html[data-palette="3"] .v2-m1.deplie{background:linear-gradient(180deg,#2A6CC0,#1E5AA8);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
html[data-palette="3"] .bt.fonce,html[data-palette="3"] #pa-cree{background:linear-gradient(180deg,#2A6CC0,#1E5AA8);border-color:rgba(255,255,255,.45);color:#fff;box-shadow:0 4px 12px rgba(30,90,168,.35),inset 0 1px 0 rgba(255,255,255,.3)}
html[data-palette="3"] .tm thead th,html[data-palette="3"] .tl th{background:linear-gradient(180deg,#2466B6,#173F73)}
html[data-palette="3"] .pl-bandeau{background:linear-gradient(180deg,rgba(30,90,168,.55),rgba(15,42,74,.85));border-color:rgba(196,211,230,.3)}
html[data-palette="3"] .chf.sans{color:#C62828;font-weight:800}
html[data-palette="3"] .tuile,html[data-palette="3"] .vide-liste,html[data-palette="3"] .tm{box-shadow:var(--ombre)}
/* relief, verre dépoli léger, micro-animations à l'ouverture (respecte « réduire les animations ») */
html[data-palette="3"] .v2-haut{background:linear-gradient(180deg,rgba(30,90,168,.92),rgba(15,42,74,.94));backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px)}
html[data-palette="3"] .v2-menu{background:linear-gradient(180deg,rgba(22,64,111,.9),rgba(15,42,74,.92));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 6px 18px rgba(8,24,48,.25)}
html[data-palette="3"] #v2-pan{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.v2-m2{transform-origin:top center}
.v2-m1.deplie + .v2-m2{animation:ouvre .16s ease-out}
.fen{animation:ouvre .18s ease-out}
.fen-voile{animation:fondu .18s ease-out}
.bt,.v2-m1,.cal-clair td,.mini-cal td{transition:background-color .15s,box-shadow .15s,transform .15s}
.bt:hover{transform:translateY(-1px)}
.bt:active{transform:translateY(0)}
:focus-visible{outline:2px solid #5EA1EE;outline-offset:2px}
@keyframes ouvre{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}
@keyframes fondu{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* 18/10 : état de la course sur toute la ligne (fond clair lisible), bouton d'état, traits d'avancement (esprit SD Admin v1) */
.tm tbody tr.lg.l-rouge td{background-color:#FCEBEB}
.tm tbody tr.lg.l-orange td{background-color:#FDF1E3}
.tm tbody tr.lg.l-bleu td{background-color:#E8F1FC}
.tm tbody tr.lg.l-vert td{background-color:#E6F4EB}
.tm tbody tr.lg.l-gris td{background-color:#ECEEF1}
.tm tbody tr.lg td.plein{background-color:revert-layer}
.tm tbody tr.lg:hover td:not(.plein){background-color:#DCE8F7}
.tm tbody tr.lg.sel td:not(.plein){background-color:#D3E1F3}
.tm tbody tr.lg.choisie td:not(.plein){background-color:#CFE0F6}
.etb{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:12px;color:#fff;font-weight:800;font-size:12.5px;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 2px 6px rgba(8,24,48,.18)}
.etb b{width:9px;height:9px;border-radius:50%;background:#fff;opacity:.92;flex:none}
.etb.l-rouge{background:linear-gradient(180deg,#D23434,#A91F1F)}
.etb.l-orange{background:linear-gradient(180deg,#D9620F,#B04A09)}
.etb.l-bleu{background:linear-gradient(180deg,#2A6CC0,#1A4F94)}
.etb.l-vert{background:linear-gradient(180deg,#22804D,#18603A)}
.etb.l-gris{background:linear-gradient(180deg,#7C8590,#5F6771)}
.trx{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:6px;min-width:204px}
.trx div{text-align:center;font:700 9px/1.15 var(--titre);color:#4F6177;white-space:nowrap}
.trx i{display:block;height:6px;border-radius:3px;background:#D3DCE7;margin-bottom:3px}
.trx .f i{background:#4E8EE0}
.trx .e i{background:#4E8EE0;box-shadow:0 0 0 3px rgba(78,142,224,.3)}
.trx .e{color:#0F2A4A}
.pl-resume{display:flex;gap:6px;flex:1 1 auto;min-width:0;justify-content:flex-end}
.pl-resume .rs{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border-radius:12px;border:0;border-left:4px solid;background:rgba(255,255,255,.94);color:#13202F;font-weight:700;font-size:12.5px;white-space:nowrap;cursor:pointer;box-shadow:0 2px 6px rgba(8,24,48,.2)}
.pl-resume .rs b{font-family:var(--titre);font-size:15px}
.pl-resume .rs.l-rouge{border-color:#C62828}.pl-resume .rs.l-orange{border-color:#C2560C}.pl-resume .rs.l-bleu{border-color:#1E5AA8}.pl-resume .rs.l-vert{border-color:#1D6F42}
.pl-resume .rs.on{background:#0F2A4A;color:#fff;box-shadow:0 0 0 2px #5EA1EE}
.pl-avances .pl-statuts{margin-bottom:10px}
.leg-et{margin-top:12px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:var(--ombre);font-size:11.5px;color:#13202F}
.leg-et p{margin:4px 0;display:flex;gap:8px;align-items:center}
.leg-et i{width:14px;height:14px;border-radius:4px;flex:none;border:1px solid rgba(8,24,48,.15)}
.leg-et i.l-rouge{background:#FCEBEB;box-shadow:inset 4px 0 0 #C62828}.leg-et i.l-orange{background:#FDF1E3;box-shadow:inset 4px 0 0 #C2560C}.leg-et i.l-bleu{background:#E8F1FC;box-shadow:inset 4px 0 0 #1E5AA8}.leg-et i.l-vert{background:#E6F4EB;box-shadow:inset 4px 0 0 #1D6F42}.leg-et i.l-gris{background:#ECEEF1;box-shadow:inset 4px 0 0 #7C8590}
@media (max-width:1500px){.pl-resume .rs{padding:0 9px;font-size:12px}.pl-sels select{width:96px}}
/* barre d'outils sur une seule ligne : sous 1600 px, les textes secondaires passent en infobulle (hauteur 44 px gardée) */
.pl-barre{flex-wrap:nowrap!important}
@media (max-width:1799px){
  .pl-barre .lg-t{display:none}
  #pl-f,#pa-cree{width:44px;padding:0;justify-content:center}
  #pl-f svg,#pa-cree svg{margin:0}
  .pl-resume .rs{min-width:44px;padding:0 10px;justify-content:center;border-left-width:0;color:#fff}
  .pl-resume .rs.l-rouge{background:linear-gradient(180deg,#D23434,#A91F1F)}.pl-resume .rs.l-orange{background:linear-gradient(180deg,#D9620F,#B04A09)}.pl-resume .rs.l-bleu{background:linear-gradient(180deg,#2A6CC0,#1A4F94)}.pl-resume .rs.l-vert{background:linear-gradient(180deg,#22804D,#18603A)}
  .pl-resume .rs.on{box-shadow:0 0 0 3px #fff}
  .pl-sels select{width:92px}
  .pl-datebt{padding:0 10px}
  .pl-jour .bt.clair{padding:0 10px}
}
.pl-resume{flex:none;justify-content:flex-start}.pl-sels{flex:0 1 auto;min-width:0}

/* 18/10 : fil d'activité (sous le calendrier du planning, et tiroir ouvert par la cloche) */
.pl-droite{max-height:calc(100vh - var(--haut) - var(--barre) - var(--pied) - 28px);overflow-y:auto;scrollbar-width:thin;padding-bottom:6px}
.fil{margin-top:12px;padding:12px;border-radius:18px;background:linear-gradient(180deg,#FFFFFF,#F3F7FC);border:1px solid #DCE5F0;box-shadow:var(--ombre);color:#13202F}
.fil-t{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.fil-t b{font-family:var(--titre);font-size:14px;color:#0F2A4A}
.fil-n{min-width:22px;height:22px;border-radius:11px;background:#C62828;color:#fff;font-size:11.5px;font-weight:800;display:inline-grid;place-items:center;padding:0 6px}
.fil-lu{margin-left:auto;min-height:44px;padding:0 10px;border:0;background:transparent;color:#1E5AA8;font-weight:700;font-size:12px;cursor:pointer;border-radius:10px}
.fil-lu:hover{background:#E6EEF8}
.fil-f{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.fil-f button{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 10px;border-radius:22px;border:1px solid #D5DDE7;background:#fff;color:#13202F;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.fil-f button i{width:9px;height:9px;border-radius:50%}
.fil-f button.on{background:#0F2A4A;color:#fff;border-color:#0F2A4A}
.fil-l{display:flex;flex-direction:column;gap:8px}
.fil-c{display:flex;gap:10px;align-items:center;padding:10px;border-radius:14px;background:#fff;border:1px solid #E3E9F1;box-shadow:0 1px 2px rgba(8,24,48,.06),0 6px 14px rgba(8,24,48,.08);transition:transform .15s,box-shadow .15s}
.fil-c:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(8,24,48,.08),0 10px 22px rgba(8,24,48,.14)}
.fil-c.nl{border-color:#BFD3EE;background:linear-gradient(180deg,#FFFFFF,#F1F6FD)}
.fil-c.urg{border-color:#F0C4C4}
.fil-p{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 0 0 4px rgba(8,24,48,.08)}
.fil-x{flex:1;min-width:0}
.fil-h{display:flex;gap:6px;align-items:baseline;justify-content:space-between}
.fil-h b{font-size:12.5px;color:#0F2A4A;overflow-wrap:normal;word-break:normal;hyphens:none}
.fil-h small{flex:none;font-size:11px;color:#5D7391;white-space:nowrap}
.fil-c p{margin:2px 0 0;font-size:11.5px;color:#4F6177;overflow-wrap:normal;word-break:normal;hyphens:none}
.fil-c .bt{flex:none}
.bt.rouge{background:linear-gradient(180deg,#D23434,#A91F1F);color:#fff;border-color:rgba(255,255,255,.4)}
.fil-v{margin:6px 0;font-size:12px;color:#4F6177}
.fil-tout{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:6px;font-size:12px;font-weight:700;color:#1E5AA8}
.fil-tiroir{position:fixed;top:calc(var(--haut) + 8px);right:12px;width:min(400px,calc(100vw - 24px));max-height:calc(100vh - var(--haut) - var(--pied) - 20px);overflow-y:auto;z-index:80;border-radius:20px;background:rgba(244,247,251,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(220,229,240,.9);box-shadow:0 2px 6px rgba(8,24,48,.12),0 26px 60px rgba(8,24,48,.45);padding:12px;display:none}
.fil-tiroir.ouvert{display:block;animation:ouvre .18s ease-out}
.fil-tiroir .fil{margin:0;box-shadow:none;border:0;background:transparent;padding:4px}
.fil-tiroir .fil-in{padding-top:4px}
.fil-fx{position:absolute;top:10px;right:10px;color:#0F2A4A;border-color:#C4D3E6;background:#fff}
#v2-cloche{position:relative}
.fil-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;border-radius:9px;background:#C62828;color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px #0F2A4A}
/* version compacte dans la colonne du planning : filtres en pastilles (infobulle), bouton sous le texte */
#pl-fil .fil-f button span{display:none}
#pl-fil .fil-f button{width:44px;padding:0;justify-content:center}
#pl-fil .fil-f button[data-f=""]{width:auto;padding:0 12px}
#pl-fil .fil-f button i{width:12px;height:12px}
#pl-fil .fil-c{flex-wrap:wrap;align-items:flex-start}
#pl-fil .fil-c .fil-x{flex:1 1 calc(100% - 24px)}
#pl-fil .fil-c .bt{margin-left:20px}
#pl-fil .fil-h{flex-wrap:wrap}
@media (max-width:1799px){.trx{min-width:150px}.trx div{font-size:0}.trx i{margin-bottom:0}.etb{padding:0 12px;font-size:12px}}

/* 18/10 : cartes de véhicules (la liste déroulante reste derrière, cachée) */
.veh-sel-cache{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.veh-lab{position:relative}
.veh-cartes{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:4px 0 6px}
.veh-c{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-height:44px;padding:12px 12px 10px;border-radius:16px;border:1.5px solid #D5DDE7;background:linear-gradient(180deg,#FFFFFF,#F3F7FC);color:#0F2A4A;cursor:pointer;text-align:left;box-shadow:0 1px 2px rgba(8,24,48,.06),0 6px 14px rgba(8,24,48,.08);transition:transform .15s,box-shadow .15s,border-color .15s}
.veh-c:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(8,24,48,.08),0 10px 22px rgba(8,24,48,.14)}
.veh-c.on{border-color:#1E5AA8;box-shadow:0 0 0 3px rgba(30,90,168,.25),0 10px 22px rgba(30,90,168,.18)}
.veh-s{width:96px;height:62px;color:#2E4A6E;margin-bottom:2px}
.veh-c.on .veh-s{color:#1E5AA8}
.veh-c b{font-family:var(--titre);font-size:13.5px}
.veh-c small{font-size:11px;color:#4F6177}
.veh-cap{display:flex;gap:12px;margin-top:4px;font-weight:800;font-size:12.5px;color:#13202F}
.veh-cap span{display:inline-flex;align-items:center;gap:4px}

/* 18/10 : Statistiques complètes (cartes en relief, courbe N / N-1, barres, heures de pointe, chauffeurs) */
.sx-barre{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:10px;border-radius:18px;background:linear-gradient(180deg,rgba(30,90,168,.5),rgba(15,42,74,.8));border:1px solid rgba(196,211,230,.3);box-shadow:var(--ombre)}
.sx-vues{display:flex;background:rgba(255,255,255,.12);border-radius:14px;padding:3px}
.sx-vues button{min-height:44px;padding:0 16px;border:0;border-radius:11px;background:transparent;color:#E6EDF6;font-weight:700;cursor:pointer}
.sx-vues button.on{background:#fff;color:#0F2A4A;box-shadow:0 2px 6px rgba(8,24,48,.25)}
.sx-lib{color:#fff;font-family:var(--titre);font-weight:700;font-size:15px;min-width:150px;text-align:center;white-space:nowrap}
.sx-barre .bt.ic{width:44px;padding:0;justify-content:center;font-size:20px}
.sx-barre input[type=date]{min-height:44px;width:160px}
.sx-ks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:14px}
.sx-k{padding:14px 16px;border-radius:18px;background:linear-gradient(180deg,#FFFFFF,#F2F6FB);border:1px solid #DCE5F0;box-shadow:0 1px 2px rgba(8,24,48,.06),0 10px 26px rgba(8,24,48,.22);color:#13202F}
.sx-k small{display:block;font-size:12px;font-weight:700;color:#4F6177}
.sx-k b{display:block;font-family:var(--titre);font-size:26px;color:#0F2A4A;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.sx-n1{display:flex;gap:8px;align-items:center;font-size:12px;color:#4F6177;flex-wrap:wrap}.sx-n1 em{font-style:normal}
.sx-ev{display:inline-block;padding:2px 8px;border-radius:10px;font-weight:800;font-size:11.5px}
.sx-ev.up{background:#E3F2E8;color:#18603A}.sx-ev.down{background:#FCE4E4;color:#A91F1F}
.sx-note{margin:6px 0 0;font-size:11.5px;color:#4F6177}
.sx-b{padding:16px;border-radius:20px;background:linear-gradient(180deg,#FFFFFF,#F4F7FB);border:1px solid #DCE5F0;box-shadow:0 1px 2px rgba(8,24,48,.06),0 12px 30px rgba(8,24,48,.22);color:#13202F;margin-bottom:14px;min-width:0}
.sx-b h3{margin:0 0 10px;font-family:var(--titre);font-size:15px;color:#0F2A4A}
.sx-g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:1000px){.sx-g2{grid-template-columns:1fr}}
.sx-courbe{width:100%;height:auto;display:block}
.sx-courbe .sx-g line{stroke:#E1E7EF}.sx-courbe text{font-size:11px;fill:#4F6177;font-family:var(--police)}
.sx-courbe .sx-l{fill:none;stroke:#1E5AA8;stroke-width:2.6;stroke-linejoin:round}
.sx-courbe .sx-l1{fill:none;stroke:#AFC0D6;stroke-width:2;stroke-dasharray:5 4}
.sx-courbe .sx-aire{fill:rgba(30,90,168,.10)}
.sx-courbe .sx-pt circle{fill:#fff;stroke:#1E5AA8;stroke-width:2}
.sx-leg{display:flex;gap:16px;font-size:12px;color:#4F6177;margin-top:4px}.sx-leg i{display:inline-block;width:18px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.sx-leg i.l{background:#1E5AA8}.sx-leg i.l1{background:#AFC0D6}
.sx-bh{display:flex;flex-direction:column;gap:8px}
.sx-bl{display:grid;grid-template-columns:minmax(110px,38%) 1fr auto;gap:10px;align-items:center;font-size:12.5px}
.sx-bn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.sx-bb{height:12px;border-radius:6px;background:#E7EDF5;overflow:hidden}.sx-bb i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#3C7BD0,#1E5AA8)}
.sx-bl b{white-space:nowrap;font-variant-numeric:tabular-nums}
.sx-pointe{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;height:160px;align-items:end}
.sx-hp{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.sx-hp i{display:block;width:100%;border-radius:4px 4px 0 0;background:#9DBBE3}.sx-hp i.max{background:#C62828}
.sx-hp small{font-size:10px;color:#4F6177;height:14px}
.sx-t td,.sx-t th{white-space:nowrap}
.sx-vide{color:#4F6177;font-size:12.5px}
.sx-ancien{margin-top:24px}
@media print{.v2-haut,.v2-menu,.v2-pied,.sx-barre button,.sx-barre input,.v2-filaments,.sx-ancien{display:none!important}body{background:#fff!important}.v2-contenu{padding:0!important}}
.fil-badge[hidden]{display:none}

/* 18/10 : écran de connexion (identifiant, code à 6 chiffres, Face ID / empreinte, 30 jours) */
body.cx-ouvert .v2-menu,body.cx-ouvert .v2-recherche,body.cx-ouvert .v2-icones{visibility:hidden}
.cx{display:flex;justify-content:center;align-items:flex-start;padding:4vh 16px}
.cx-verrou{position:fixed;inset:0;z-index:200;align-items:center;background:linear-gradient(180deg,rgba(15,42,74,.92),rgba(8,24,48,.96));backdrop-filter:blur(8px)}
.cx-carte{position:relative;overflow:hidden;width:min(420px,100%);border-radius:24px;background:linear-gradient(180deg,#FFFFFF,#F2F6FB);border:1px solid #DCE5F0;box-shadow:0 2px 6px rgba(8,24,48,.12),0 30px 70px rgba(8,24,48,.5);animation:ouvre .2s ease-out}
.cx-vag{position:absolute;left:0;right:0;bottom:0;width:100%;height:90px;pointer-events:none}
.cx-in{position:relative;padding:28px 26px 30px;display:flex;flex-direction:column;gap:12px;color:#13202F}
.cx-marque{font-family:var(--marque);letter-spacing:.2em;font-size:13px;color:#1E5AA8}
.cx h1{margin:0 0 4px;font-family:var(--titre);font-size:24px;color:#0F2A4A}
.cx-l{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:#4F6177}
.cx-l .ch{min-height:48px;font-size:16px}
.cx-r{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13.5px;font-weight:600;cursor:pointer}
.cx-r input{width:22px;height:22px;accent-color:#1E5AA8}
.cx-go,.cx-bio{width:100%;justify-content:center;min-height:50px;font-size:15px}
.cx-bio{gap:10px}
.cx-m{min-height:20px;font-size:13px;font-weight:700;color:#C62828}.cx-m.ok{color:#1E5AA8}
.cx-t{margin:0;font-size:14px;line-height:1.5;color:#13202F}
.cx-liens{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;margin-top:4px}
.cx-lien{min-height:44px;border:0;background:transparent;color:#1E5AA8;font-weight:700;font-size:13px;cursor:pointer;padding:0 4px}
.cx-cases{display:flex;gap:8px;justify-content:center}
.cx-case{width:46px;height:56px;border-radius:12px;border:1.5px solid #C4D3E6;text-align:center;font:800 24px var(--titre);color:#0F2A4A;background:#fff;box-shadow:inset 0 2px 4px rgba(8,24,48,.06)}
.cx-case:focus{border-color:#1E5AA8;outline:0;box-shadow:0 0 0 3px rgba(30,90,168,.25)}

/* ================== 18/10 : version téléphone (≤ 760 px) ==================
   menu replié derrière un bouton, cartes à la place des tableaux, calendrier sous le planning,
   zones de 44 px, rien sous la barre d'état (marges « safe-area »). */
.v2-burger-m{display:none}
@media (max-width:760px){
  :root{--haut:calc(60px + env(safe-area-inset-top));--barre:0px;--pied:0px}
  .v2-haut{padding:env(safe-area-inset-top) 10px 0;gap:8px;height:var(--haut)}
  .v2-burger-m{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;border:1px solid rgba(196,211,230,.35);background:rgba(255,255,255,.1);color:#fff}
  .v2-marque{font-size:12px;letter-spacing:.12em}.v2-marque b{display:none}
  .v2-horloge{padding:4px 8px;margin:0;gap:6px}.v2-hm b{font-size:18px}.v2-hm span,.v2-jd,.v2-calbt{display:none}
  .v2-recherche{display:none}
  .v2-icones{margin-left:auto;gap:4px}.v2-icones button{width:44px;height:44px}
  .v2-pied{display:none}
  .v2-menu{display:none;position:fixed;top:var(--haut);left:0;right:0;bottom:0;height:auto;flex-direction:column;align-items:stretch;justify-content:flex-start;overflow-y:auto;padding:8px 10px calc(16px + env(safe-area-inset-bottom));z-index:60}
  body.menu-ouvert .v2-menu{display:flex}
  .v2-grp{flex-direction:column}
  .v2-m1{min-height:52px;font-size:16px;padding:0 14px;justify-content:space-between;border-radius:12px}
  .v2-m1 .fl{display:inline!important}
  .v2-m2{position:static;min-width:0;max-height:none;border-radius:12px;margin:2px 0 8px;box-shadow:none}
  .v2-engr{margin-left:0}.v2-engr .v2-m1::after{content:"Paramétrage";margin-left:10px;font-size:16px}
  .v2-m2 a{white-space:normal;min-height:48px}
  .v2-contenu{padding:calc(var(--haut) + 10px) 10px calc(24px + env(safe-area-inset-bottom))}
  .v2-titre{font-size:19px}
  /* barre d'outils : sur deux lignes au téléphone, rien ne déborde */
  .pl-bandeau{padding:8px;border-radius:16px}
  .pl-barre{flex-wrap:wrap!important;gap:6px}
  .pl-jour{flex:1 1 100%}.pl-datebt{flex:1}
  .pl-resume{flex:1 1 100%;justify-content:space-between}.pl-resume .rs{flex:1}
  .pl-sels{flex:1 1 100%}.pl-sels label{flex:1}.pl-sels select{width:100%}
  .pl-act{flex:1 1 auto;justify-content:flex-end}
  .pl-barre .compte{flex:none}
  .pl-ligne{flex-direction:column}
  .pl-droite{display:block!important;position:static;width:100%;max-height:none;overflow:visible}
  /* tableau du planning en cartes */
  .tm,.tm tbody,.tm tr,.tm td{display:block;width:auto!important}
  .tm colgroup,.tm thead{display:none}
  .tm{background:transparent;box-shadow:none}
  .tm tbody tr.lg{height:auto;display:grid;grid-template-columns:44px 1fr auto;grid-template-areas:"sel h plus" "cli cli cli" "iti iti iti" "veh chf chf" "st st st";gap:6px 10px;padding:12px;margin-bottom:10px;border-radius:18px;box-shadow:0 1px 2px rgba(8,24,48,.08),0 10px 24px rgba(8,24,48,.25);overflow:hidden}
  .tm tbody tr.lg td{padding:0;border:0;background:transparent!important}
  .tm tbody tr.lg td.c-sel{grid-area:sel;box-shadow:none!important}
  .tm tbody tr.lg td.c-num,.tm tbody tr.lg td.c-type,.tm tbody tr.lg td.c-date,.tm tbody tr.lg td.c-inf{display:none}
  .tm tbody tr.lg td.c-h{grid-area:h}.tm tbody tr.lg td.c-cli{grid-area:cli}.tm tbody tr.lg td.c-iti{grid-area:iti}
  .tm tbody tr.lg td.c-veh{grid-area:veh}.tm tbody tr.lg td.c-chf{grid-area:chf;text-align:right}.tm tbody tr.lg td.c-st{grid-area:st}.tm tbody tr.lg td.c-plus{grid-area:plus}
  .tm tbody tr.lg.l-rouge{background:#FCEBEB;box-shadow:inset 5px 0 0 #C62828,0 10px 24px rgba(8,24,48,.25)}
  .tm tbody tr.lg.l-orange{background:#FDF1E3;box-shadow:inset 5px 0 0 #C2560C,0 10px 24px rgba(8,24,48,.25)}
  .tm tbody tr.lg.l-bleu{background:#E8F1FC;box-shadow:inset 5px 0 0 #1E5AA8,0 10px 24px rgba(8,24,48,.25)}
  .tm tbody tr.lg.l-vert{background:#E6F4EB;box-shadow:inset 5px 0 0 #1D6F42,0 10px 24px rgba(8,24,48,.25)}
  .tm tbody tr.lg.l-gris{background:#ECEEF1;box-shadow:inset 5px 0 0 #7C8590,0 10px 24px rgba(8,24,48,.25)}
  .iti1{flex-direction:column;align-items:flex-start;gap:2px}.iti1 .fl{transform:rotate(90deg)}
  .etb{width:100%;justify-content:center}.trx{min-width:0}.trx div{font-size:8.5px}
  .v2-pan{top:var(--haut);width:100vw;bottom:0}
  .dos-tete{grid-template-columns:1fr!important}
  .tuiles{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr}
  .fen{width:100%!important;max-width:100%;max-height:calc(100vh - var(--haut) - 20px)}
  .fen-voile{padding:calc(var(--haut) + 6px) 8px 8px}
  .sx-barre{gap:6px}.sx-lib{min-width:0;flex:1}.sx-k b{font-size:22px}
  .v2-groupe{bottom:env(safe-area-inset-bottom)}
}
.tl.sts th{white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.2;min-width:0}.tl.sts{table-layout:auto;width:100%}
.tl.sts th .stx{white-space:normal;text-align:left}

/* 18/10 (contrôle publie8) : planning jamais caché par la colonne de droite ; zones de 44 px */
.rail-d{display:none}
.pl-ligne.repli .pl-droite{width:56px;overflow:visible}
.pl-ligne.repli .pl-droite > :not(.rail-d){display:none}
.pl-ligne.repli .rail-d,.pl-ligne.dessous .rail-d{display:flex;flex-direction:column;gap:8px;align-items:center}
.pl-ligne.dessous{flex-direction:column}
.pl-ligne.dessous .pl-droite{width:100%;position:static;max-height:none;display:grid;grid-template-columns:300px 1fr 260px;gap:12px;align-items:start}
.pl-ligne.dessous .pl-droite .fil,.pl-ligne.dessous .pl-droite .leg-et{margin-top:0}
.pl-ligne.dessous .rail-d{flex-direction:row;grid-column:1/-1}
.rail-d .bt.ic{width:44px;height:44px;padding:0;justify-content:center}
@media (max-width:1500px){.tm .puce{white-space:normal}.trx{min-width:100px}.etb{white-space:normal;line-height:1.15;padding:6px 10px;text-align:left}}
.sx-bn{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:normal;word-break:normal;hyphens:none;font-weight:600}
.pl-sels select{height:44px!important;min-height:44px!important}
button.puce{min-height:44px!important}
.cal-clair .tete button,.v2-calpop .mini-cal .tete button{flex:none}
@media (max-width:1400px){.v2-m1{flex:none;min-width:44px;justify-content:center}}

/* 18/10 (Hassan, publie10) : planning en pleine largeur à toutes les tailles d'écran (761 px et plus).
   Plus de colonne à droite ni de boutons : le calendrier s'ouvre en cliquant sur la date, placée à droite du bandeau,
   le fil d'activité est dans le menu Notifications → « Activité » (#/activite). La colonne reste dans la page, cachée : rien n'est supprimé. */
@media (min-width:761px){
  .pl-ligne.haut,.pl-ligne.haut.repli,.pl-ligne.haut.dessous{flex-direction:column}
  .pl-ligne.haut .pl-droite{display:none!important}
  .pl-ligne.haut .pl-centre{width:100%}
  /* bloc date (‹ Aujourd'hui › + date cliquable) à droite du bandeau, comme le sélecteur de date de Waynium */
  .pl-barre > .pl-jour{order:99;margin-left:auto}
}
.fil-page{max-width:760px}

/* ================= 18/10 publie10 : grand bandeau du planning de SD Admin v1, copié à l'identique =================
   Source : SD Admin v1 en ligne (admin.html), styles de la zone #sdx-plan (sd-planning.js + feuilles qui le complètent),
   relevés tels que le navigateur les applique au bandeau (règles effectives, même ordre, mêmes animations sdxscan, sdxtour,
   sdxpulse, sdxgem, sdxbadge). Seule la condition d'écran passe de 1000 px à 761 px. */
@media (min-width: 761px){#sdx-plan{}}
@keyframes sdxscan { 0% { transform: translateX(-120%); } 100% { transform: translateX(420%); } }
@keyframes sdxtour { 100% { transform: rotate(360deg); } }
@keyframes sdxpulse { 0% { left: 4%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: calc(96% - 60px); opacity: 0; } }
@media (min-width: 761px){#sdx-plan .st i{background: radial-gradient(circle at 34% 26%,rgba(255,255,255,.95) 0 9%,rgba(255,255,255,.35) 22%,rgba(255,255,255,0) 46%),radial-gradient(circle at 50% 120%,rgba(255,255,255,.45),rgba(255,255,255,0) 55%),var(--c) !important;}}
@keyframes sdxgem { 0%, 82% { background-position: 120% 0px; } 100% { background-position: -120% 0px; } }
@keyframes sdxbadge { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
#sdx-plan .st i::after,#sdx-plan .st em,#sdx-plan .fr-l::after{animation-iteration-count: 1 !important;}
#sdx-plan{display: none;}
@media (min-width: 761px){#sd.sdx-plan-on #sdx-plan{display: block;}#sdx-plan{position: relative; box-sizing: border-box; padding: 0px 18px 30px; font-family: Manrope, system-ui, sans-serif; color: rgb(15, 42, 74); width: var(--sdx-vw,100vw) !important; max-width: none !important;}#sdx-plan svg{width: 16px; height: 16px; flex: 0 0 auto;}#sdx-plan input,#sdx-plan select{min-width: 0px !important; max-width: none !important; margin: 0px !important;}#sdx-plan .p-top{position: relative; display: grid; gap: 18px; align-items: stretch; color: rgb(255, 255, 255);}#sdx-plan .p-top::before{content: ""; position: absolute; inset: 0px; pointer-events: none; opacity: 0.1; background: repeating-linear-gradient(23deg, rgb(255, 255, 255) 0px, rgb(255, 255, 255) 1px, transparent 1px, transparent 22px), repeating-linear-gradient(-61deg, rgb(255, 255, 255) 0px, rgb(255, 255, 255) 1px, transparent 1px, transparent 30px);}#sdx-plan .p-top > *{position: relative;}#sdx-plan .cal,#sdx-cal-portail .cal{text-align: center;}#sdx-plan .cal-h,#sdx-cal-portail .cal-h{display: flex; align-items: center; justify-content: space-between; font-weight: 800; text-transform: capitalize;}#sdx-plan .cal-h button,#sdx-cal-portail .cal-h button{width: 44px; height: 44px; border-radius: 50%; border: 0px; font-weight: 900; cursor: pointer; line-height: 44px; padding: 0px;}#sdx-plan .cal-g,#sdx-cal-portail .cal-g{display: grid; grid-template-columns: repeat(7, 1fr); margin-top: 6px;}#sdx-plan .cal-g b,#sdx-cal-portail .cal-g b{font-size: 10px; opacity: 0.6; font-weight: 800;}#sdx-plan .cal-g span,#sdx-cal-portail .cal-g span{border-radius: 7px; cursor: pointer; font-weight: 700; transition: background 0.15s, transform 0.15s;}#sdx-plan .cal-g span:hover,#sdx-cal-portail .cal-g span:hover{background: rgba(255, 255, 255, 0.18); transform: scale(1.12);}#sdx-plan .cal-g span.a,#sdx-cal-portail .cal-g span.a{position: relative;}#sdx-plan .cal-g span.a::after,#sdx-cal-portail .cal-g span.a::after{content: ""; position: absolute; left: 50%; bottom: 0px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: rgb(100, 154, 219);}#sdx-plan .cal .auj-bt,#sdx-cal-portail .cal .auj-bt{border-width: 1px; border-style: solid; border-image: none; background: rgba(255, 255, 255, 0.08); color: rgb(255, 255, 255); border-radius: 999px; font-style: normal; font-variant: normal; font-size-adjust: none; font-language-override: normal; font-kerning: auto; font-optical-sizing: auto; font-feature-settings: normal; font-variation-settings: normal; font-weight: 700; font-stretch: normal; line-height: normal; font-family: Manrope, sans-serif; cursor: pointer;}#sdx-plan .cal .auj-bt:hover,#sdx-cal-portail .cal .auj-bt:hover{background: rgb(255, 255, 255); color: rgb(15, 42, 74);}#sdx-plan .frise{display: flex; flex-direction: column; gap: 14px; min-width: 0px;}#sdx-plan .fr-l{display: grid; grid-template-columns: repeat(16, minmax(0px, 1fr)); position: relative;}#sdx-plan .fr-l::before{content: ""; position: absolute; left: 4%; right: 4%; border-radius: 9px;}#sdx-plan .st{position: relative; flex-direction: column; cursor: pointer; border: 0px; background: none; color: rgb(255, 255, 255); font: 700 10.5px / 1.15 Manrope, sans-serif; text-align: center;}#sdx-plan .st small{display: flex; opacity: 0.92;}#sdx-plan .st i{position: relative; border-radius: 50%; display: flex; align-items: center; justify-content: center;}#sdx-plan .st em{position: absolute; padding: 0px 4px;}#sdx-plan .p-rech{display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center;}#sdx-plan .p-ronds{display: flex; flex-direction: column; gap: 8px;}#sdx-plan .p-rond{width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgb(255, 255, 255); color: rgb(255, 255, 255); display: flex; align-items: center; justify-content: center; cursor: pointer; background: linear-gradient(rgb(59, 123, 208), rgb(22, 74, 140)); box-shadow: rgba(0, 0, 0, 0.6) 0px 6px 14px -6px; transition: transform 0.2s;}#sdx-plan .p-rond.v{background: linear-gradient(rgb(46, 204, 113), rgb(30, 132, 73));}#sdx-plan .p-rond:hover{transform: scale(1.1) rotate(-6deg);}#sdx-plan .p-rond svg{width: 20px; height: 20px;}#sdx-plan .p-champs{display: grid; grid-template-columns: minmax(138px, 1.3fr) minmax(104px, 0.9fr) minmax(0px, 1fr) minmax(0px, 1fr); gap: 7px;}#sdx-plan .p-champs input[type="date"],#sdx-plan .p-champs input[type="time"]{font-variant-numeric: tabular-nums; letter-spacing: 0px; padding: 0px 6px 0px 12px !important;}#sdx-plan .p-champs input,#sdx-plan .p-champs select{font: 600 12.5px Manrope, sans-serif; color: rgb(15, 42, 74); background: linear-gradient(rgb(255, 255, 255), rgb(238, 242, 247)); box-shadow: rgba(0, 0, 0, 0.18) 0px 1px 2px inset; width: 100% !important; box-sizing: border-box !important; height: 30px !important; border-radius: 999px !important; border: 0px !important; padding: 0px 12px !important;}#sdx-plan .p-champs .l2{grid-column: span 2;}#sdx-plan .p-gros{grid-column: span 2; height: 34px; border-radius: 999px; border: 0px; cursor: pointer; color: rgb(255, 255, 255); font: 800 15px Manrope, sans-serif; display: flex; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(rgb(59, 123, 208), rgb(36, 98, 180) 55%, rgb(22, 74, 140)); transition: transform 0.2s, filter 0.2s;}#sdx-plan .p-gros:hover{transform: translateY(-2px); filter: brightness(1.1);}#sdx-plan .p-gros svg{width: 18px; height: 18px;}#sdx-plan .cpt{display: flex;}#sdx-plan .cp{border-radius: 50%; gap: 2px; cursor: pointer;}#sdx-plan .cp b{font-weight: 900;}#sdx-plan .cp span{font-weight: 800; text-transform: uppercase;}#sdx-plan .cp svg{width: 34px; height: 34px;}#sdx-plan .p-top{grid-template-columns: 290px minmax(560px, 1fr) auto;}#sdx-plan .p-top::after{content: ""; position: absolute; inset: 0px; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(120, 200, 255, 0.16), transparent); width: 30%; animation: 7s linear 0s infinite normal none running sdxscan;}}
@keyframes sdxscan { 0% { transform: translateX(-120%); } 100% { transform: translateX(420%); } }
@media (min-width: 761px){#sdx-plan .cal,#sdx-cal-portail .cal{position: relative; width: 270px; height: 270px; border-radius: 50%; padding: 46px 40px 0px; box-sizing: border-box; background: radial-gradient(circle at 50% 40%, rgba(59, 123, 208, 0.35), rgba(8, 26, 51, 0.85) 70%); border: 1px solid rgba(120, 200, 255, 0.35); box-shadow: rgba(120, 200, 255, 0.06) 0px 0px 0px 6px, rgba(46, 160, 255, 0.35) 0px 0px 40px, rgba(46, 160, 255, 0.25) 0px 0px 30px inset;}#sdx-plan .cal .ring,#sdx-cal-portail .cal .ring{position: absolute; inset: -14px; width: calc(100% + 28px); height: calc(100% + 28px); pointer-events: none; color: rgb(127, 211, 255);}#sdx-plan .cal .r1,#sdx-cal-portail .cal .r1{animation-timing-function: linear; animation-delay: 0s; animation-iteration-count: infinite; animation-direction: normal; animation-fill-mode: none; animation-play-state: running; animation-name: sdxtour; animation-timeline: auto; animation-range: normal;}#sdx-plan .cal .r2,#sdx-cal-portail .cal .r2{inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); animation-timing-function: linear; animation-delay: 0s; animation-iteration-count: infinite; animation-direction: reverse; animation-fill-mode: none; animation-play-state: running; animation-name: sdxtour; animation-timeline: auto; animation-range: normal; color: rgb(100, 154, 219);}#sdx-plan .cal .r3,#sdx-cal-portail .cal .r3{inset: -24px; width: calc(100% + 48px); height: calc(100% + 48px); animation-timing-function: linear; animation-delay: 0s; animation-iteration-count: infinite; animation-direction: normal; animation-fill-mode: none; animation-play-state: running; animation-name: sdxtour; animation-timeline: auto; animation-range: normal; color: rgb(255, 255, 255);}}
@keyframes sdxtour { 100% { transform: rotate(360deg); } }
@media (min-width: 761px){#sdx-plan .cal-h,#sdx-cal-portail .cal-h{font-size: 13px; letter-spacing: 0.5px;}#sdx-plan .cal-h span,#sdx-cal-portail .cal-h span{text-shadow: rgba(127, 211, 255, 0.8) 0px 0px 10px;}#sdx-plan .cal-h button,#sdx-cal-portail .cal-h button{background: rgba(127, 211, 255, 0.15); color: rgb(255, 255, 255); box-shadow: rgba(127, 211, 255, 0.6) 0px 0px 0px 1px, rgba(127, 211, 255, 0.5) 0px 0px 10px;}#sdx-plan .cal-g,#sdx-cal-portail .cal-g{font-size: 10.5px; gap: 1px;}#sdx-plan .cal-g span,#sdx-cal-portail .cal-g span{padding: 2px 0px;}#sdx-plan .cal-g span.sel,#sdx-cal-portail .cal-g span.sel{background: linear-gradient(rgb(127, 211, 255), rgb(47, 128, 237)); color: rgb(255, 255, 255); box-shadow: rgba(127, 211, 255, 0.9) 0px 0px 12px;}#sdx-plan .cal-g span.auj,#sdx-cal-portail .cal-g span.auj{box-shadow: rgb(100, 154, 219) 0px 0px 0px 1.5px inset;}#sdx-plan .cal .auj-bt,#sdx-cal-portail .cal .auj-bt{margin-top: 5px; padding: 4px 14px; font-size: 11.5px; border-color: rgba(127, 211, 255, 0.7); box-shadow: rgba(127, 211, 255, 0.35) 0px 0px 12px;}#sdx-plan .fr-l::before{background: linear-gradient(90deg, rgb(30, 90, 168), rgb(230, 126, 34), rgb(47, 128, 237), rgb(30, 90, 168), rgb(22, 160, 133), rgb(91, 75, 196), rgb(127, 211, 255), rgb(142, 68, 173), rgb(127, 140, 141), rgb(30, 90, 168)); box-shadow: rgba(127, 211, 255, 0.6) 0px 0px 14px;}#sdx-plan .fr-l::after{content: ""; position: absolute; left: 4%; width: 60px; height: 12px; border-radius: 9px; background: radial-gradient(closest-side, rgb(255, 255, 255), rgba(255, 255, 255, 0)); animation: 4.5s ease-in-out 0s infinite normal none running sdxpulse; pointer-events: none;}}
@keyframes sdxpulse { 0% { left: 4%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: calc(96% - 60px); opacity: 0; } }
@media (min-width: 761px){#sdx-plan .st i::before{content: ""; position: absolute; border-radius: 50%; border: 1.5px dashed rgba(255, 255, 255, 0.55); transition: opacity 0.2s;}#sdx-plan .st:hover i::before{opacity: 1; animation: 3s linear 0s infinite normal none running sdxtour;}#sdx-plan .st small{text-transform: none; text-shadow: rgba(0, 0, 0, 0.6) 0px 1px 6px;}#sdx-plan .st i{font-style: normal; font-variant: normal; font-size-adjust: none; font-language-override: normal; font-kerning: auto; font-optical-sizing: auto; font-feature-settings: normal; font-variation-settings: normal; font-weight: 900; font-stretch: normal; line-height: normal; font-family: Manrope, sans-serif; color: rgb(255, 255, 255); text-shadow: rgba(0, 0, 0, 0.55) 0px 1px 2px; box-shadow: 0 0 0 2px rgba(255,255,255,.95),0 0 0 5px rgba(255,255,255,.12),0 0 18px var(--c),inset 0 -5px 9px rgba(0,0,0,.35),inset 0 2px 3px rgba(255,255,255,.5),0 6px 12px rgba(0,0,0,.45); transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1.5), box-shadow 0.3s, filter 0.3s; overflow: visible; background: radial-gradient(circle at 34% 26%,rgba(255,255,255,.95) 0 9%,rgba(255,255,255,.35) 22%,rgba(255,255,255,0) 46%),radial-gradient(circle at 50% 120%,rgba(255,255,255,.45),rgba(255,255,255,0) 55%),var(--c) !important;}#sdx-plan .st i::after{content: ""; position: absolute; inset: 0px; border-radius: 50%; background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.75) 50%, transparent 65%) 120% 0px / 250% 100%; animation-duration: 7s; animation-timing-function: ease-in-out; animation-iteration-count: infinite; animation-direction: normal; animation-fill-mode: none; animation-play-state: running; animation-name: sdxgem; animation-timeline: auto; animation-range: normal; animation-delay: calc(var(--n) * .45s); pointer-events: none; mix-blend-mode: screen;}}
@keyframes sdxgem { 0%, 82% { background-position: 120% 0px; } 100% { background-position: -120% 0px; } }
@media (min-width: 761px){#sdx-plan .st i::before{inset: -7px; border: 1.5px dashed var(--c); opacity: 0; filter: drop-shadow(0 0 4px var(--c));}#sdx-plan .st:hover i{transform: translateY(-4px) scale(1.2); filter: brightness(1.12) saturate(1.15); box-shadow: 0 0 0 2px #fff,0 0 0 6px rgba(255,255,255,.18),0 0 30px var(--c),0 0 60px var(--c),inset 0 -5px 9px rgba(0,0,0,.3),inset 0 2px 3px rgba(255,255,255,.6),0 12px 18px rgba(0,0,0,.5);}#sdx-plan .st:hover small{opacity: 1; color: rgb(255, 255, 255);}#sdx-plan .st:active i{transform: scale(0.92); transition-duration: 0.08s;}#sdx-plan .st small{min-height: 0px; align-items: center; justify-content: center; letter-spacing: 0px !important;}#sdx-plan .cp{flex: 0 0 auto; overflow: visible; transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1.4), box-shadow 0.3s; background: radial-gradient(circle at 50% 40%, rgba(59, 123, 208, 0.35), rgba(8, 26, 51, 0.85) 70%) !important; border: 1px solid rgba(120, 200, 255, 0.35) !important; box-shadow: rgba(120, 200, 255, 0.06) 0px 0px 0px 6px, rgba(46, 160, 255, 0.35) 0px 0px 40px, rgba(46, 160, 255, 0.25) 0px 0px 30px inset !important;}#sdx-plan .cp .ring{position: absolute; inset: -14px; width: calc(100% + 28px); height: calc(100% + 28px); pointer-events: none; color: rgb(127, 211, 255); animation: 90s linear 0s infinite normal none paused sdxtour;}#sdx-plan .cp .r2{inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); color: rgb(100, 154, 219); animation-duration: 60s; animation-direction: reverse;}#sdx-plan .cp .r3{inset: -24px; width: calc(100% + 48px); height: calc(100% + 48px); color: rgb(255, 255, 255); animation-duration: 30s;}#sdx-plan .cp:hover .ring,#sdx-plan .cp:active .ring{animation-play-state: running;}#sdx-plan .cp:hover{transform: scale(1.07); box-shadow: rgba(120, 200, 255, 0.12) 0px 0px 0px 6px, rgba(46, 160, 255, 0.6) 0px 0px 60px, rgba(46, 160, 255, 0.4) 0px 0px 36px inset !important;}#sdx-plan .cp span{font-size: 9.5px; line-height: 1.15; opacity: 0.95;}#sdx-plan .cp.al b{color: rgb(100, 154, 219); text-shadow: rgba(100, 154, 219, 0.9) 0px 0px 14px;}#sdx-plan .cp.al .r1{color: rgb(100, 154, 219);}#sdx-plan .st em{font-style: normal; font-variant: normal; font-size-adjust: none; font-language-override: normal; font-kerning: auto; font-optical-sizing: auto; font-feature-settings: normal; font-variation-settings: normal; font-weight: 900; font-stretch: normal; font-family: Manrope, sans-serif; border-radius: 10px; color: rgb(7, 18, 31); background: linear-gradient(rgb(207, 224, 244), rgb(100, 154, 219) 50%, rgb(37, 86, 147)); box-shadow: rgb(15, 42, 74) 0px 0px 0px 2px, rgba(100, 154, 219, 0.9) 0px 0px 10px, rgba(0, 0, 0, 0.4) 0px 3px 6px; animation: 2.8s ease-in-out 0s infinite normal none running sdxbadge;}}
@keyframes sdxbadge { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
@media (min-width: 761px){#sdx-plan .cp{position: relative; border: 0px; background: radial-gradient(circle at 50% 35%, rgba(59, 123, 208, 0.45), rgba(8, 26, 51, 0.9) 70%); box-shadow: rgba(46, 160, 255, 0.3) 0px 0px 30px, rgba(46, 160, 255, 0.25) 0px 0px 20px inset;}#sdx-plan .cp > svg.g{position: absolute; inset: -6px; width: calc(100% + 12px); height: calc(100% + 12px); transform: rotate(-90deg);}#sdx-plan .cp b{position: relative; text-shadow: rgba(127, 211, 255, 0.9) 0px 0px 14px;}#sdx-plan .cp span{position: relative;}#sdx-plan .cp > svg.cl{position: relative; width: 30px; height: 30px;}#sdx-plan .p-gros{box-shadow: rgba(255, 255, 255, 0.4) 0px 1px 0px inset, rgba(47, 128, 237, 0.55) 0px 0px 18px;}#sdx-plan .cal .ring,#sdx-plan .st:hover i::before,#sdx-cal-portail .cal .ring{animation-play-state: paused;}#sdx-plan .cal:hover .ring,#sdx-plan .cal:active .ring,#sdx-cal-portail .cal:hover .ring,#sdx-cal-portail .cal:active .ring{animation-play-state: running;}#sdx-plan .cal .r1,#sdx-cal-portail .cal .r1{animation-duration: 90s;}#sdx-plan .cal .r2,#sdx-cal-portail .cal .r2{animation-duration: 60s;}#sdx-plan .cal .r3,#sdx-cal-portail .cal .r3{animation-duration: 30s;}#sdx-plan .p-top::after{display: none;}#sdx-plan .p-top{margin-top: 0px; margin-bottom: 0px; border-radius: 0px; box-shadow: none; overflow: visible; padding: 22px calc(42px) 70px; background: none !important;}#sdx-plan .p-top::before{display: none;}#sdx-plan .p-fond{position: absolute; inset: 0px; z-index: 0; pointer-events: none; overflow: hidden; background: radial-gradient(700px 320px at 12% 50%, rgba(59, 123, 208, 0.55), transparent 62%), radial-gradient(600px 300px at 92% 40%, rgba(46, 204, 255, 0.18), transparent 60%), linear-gradient(160deg, rgb(22, 51, 90), rgb(14, 38, 71) 50%, rgb(8, 26, 51)); -webkit-mask-image: linear-gradient(rgb(0, 0, 0), rgb(0, 0, 0)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 64' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1000V30C900 58 820 14 700 30S500 62 380 36 160 8 0 40Z' fill='%23000'/%3E%3C/svg%3E"); mask-image: linear-gradient(rgb(0, 0, 0), rgb(0, 0, 0)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 64' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1000V30C900 58 820 14 700 30S500 62 380 36 160 8 0 40Z' fill='%23000'/%3E%3C/svg%3E"); -webkit-mask-size: 100% calc(100% - 63px), 100% 64px; mask-size: 100% calc(100% - 63px), 100% 64px; -webkit-mask-position: 0px 0px, 0px 100%; mask-position: 0px 0px, 0px 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;}#sdx-plan .p-fond::before{content: ""; position: absolute; inset: 0px; opacity: 0.1; background: repeating-linear-gradient(23deg, rgb(255, 255, 255) 0px, rgb(255, 255, 255) 1px, transparent 1px, transparent 22px), repeating-linear-gradient(-61deg, rgb(255, 255, 255) 0px, rgb(255, 255, 255) 1px, transparent 1px, transparent 30px);}#sdx-plan .p-fond::after{content: ""; position: absolute; inset: 0px; opacity: 0.18; background: radial-gradient(circle at 18% 60%, transparent 0px, transparent 150px, rgba(127, 211, 255, 0.5) 151px, transparent 153px), radial-gradient(circle at 18% 60%, transparent 0px, transparent 220px, rgba(127, 211, 255, 0.35) 221px, transparent 223px), radial-gradient(circle at 18% 60%, transparent 0px, transparent 300px, rgba(127, 211, 255, 0.22) 301px, transparent 303px);}#sdx-plan .p-top > .cal{margin-bottom: -58px; z-index: 3;}#sdx-plan .p-rond.ac{color: rgb(255, 255, 255); background: linear-gradient(rgb(59, 123, 208), rgb(22, 74, 140));}#sdx-plan{margin-top: -28px !important;}#sdx-plan .p-top{width: var(--sdx-vw) !important; max-width: none !important; margin-left: -18px !important; margin-right: 0px !important; box-sizing: border-box !important;}#sdx-plan .st{padding: 0px;}#sdx-plan .st em{top: -9px; right: -10px; min-width: 16px; height: 16px; font-size: 9.5px; line-height: 16px;}#sdx-plan .fr-l{padding-top: 0px;}#sdx-plan .st{grid-template-rows: 30px 34px 34px 30px; place-items: center; display: grid !important; gap: 0px !important;}#sdx-plan .st i{grid-row: 2; width: 30px !important; height: 30px !important; font-size: 12px !important;}#sdx-plan .st small{grid-row: 1; align-self: end; max-height: 30px; margin: 0px -65%; padding: 0px; white-space: nowrap; hyphens: none; height: auto !important; width: 230% !important; overflow: visible !important; font-size: 9.5px !important; line-height: 1.08 !important;}#sdx-plan .st:nth-child(2n) i{grid-row: 3;}#sdx-plan .st:nth-child(2n) small{grid-row: 4; align-self: start;}#sdx-plan .st i::before{display: none;}#sdx-plan .fr-l::before{bottom: 61px !important; height: 4px !important;}#sdx-plan .fr-l::after{bottom: 57px !important;}#sdx-plan .st::after{content: ""; grid-area: 2 / 1 / 4; width: 2px; height: 22px; background: linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.15)); border-radius: 2px; z-index: 0;}#sdx-plan .st i{z-index: 1;}#sdx-plan .cpt{margin-top: 0px; align-self: center;}#sdx-plan .cp:nth-child(2n+1){margin-top: -60px !important;}#sdx-plan .cp:nth-child(2n){margin-top: 60px !important;}#sdx-plan .cpt{align-items: center; flex: 0 0 auto; gap: 0px !important; padding: 0px 26px 0px 30px !important;}#sdx-plan .cp{width: 112px !important; height: 112px !important;}#sdx-plan .cp + .cp{margin-left: -14px;}#sdx-plan .cp:nth-child(2n+1){margin-top: -66px;}#sdx-plan .cp:nth-child(2n){margin-top: 66px;}#sdx-plan .cp b{font-size: 27px;}#sdx-plan .cp{flex-direction: column; text-align: center; box-sizing: border-box; display: flex !important; align-items: center !important; justify-content: center !important; padding: 0px !important;}#sdx-plan .cp b{display: block; width: 100%; text-align: center; margin: 0px; line-height: 1;}#sdx-plan .cp span{display: block; width: 78px !important; padding: 0px !important; margin: 4px auto 0px !important; text-align: center !important; letter-spacing: 0.3px !important;}#sdx-plan .cp > svg.cl{display: block; margin: 4px auto 0px;}}

/* --- adaptations v2 (seules différences avec la v1) : bandeau en pleine largeur sous la barre du menu, calendrier rond À DROITE
   qui remonte légèrement sous la barre du menu avec un fondu ; compteurs ronds décalés en conséquence ; zones cliquables agrandies
   sans changer le dessin ; la barre v2 restante (jour, filtres, boutons) reste sous le bandeau. --- */
@media (min-width: 761px){
  #sdx-plan.v2-sdx{display:block;width:auto!important;max-width:none!important;margin:-18px -20px 0!important;padding:0 0 6px}
  #sdx-plan.v2-sdx .p-top{width:auto!important;margin:0!important;grid-template-columns:minmax(0,1fr) auto 290px;padding:22px 42px 70px}
  #sdx-plan.v2-sdx .p-top > .frise{grid-column:1;grid-row:1}
  #sdx-plan.v2-sdx .p-top > .cpt{grid-column:2;grid-row:1}
  #sdx-plan.v2-sdx .p-top > .cal{grid-column:3;grid-row:1;justify-self:end;margin-top:-40px}
  #sdx-plan.v2-sdx .p-top > .cal::before{content:"";position:absolute;left:-40px;right:-40px;top:-30px;height:64px;z-index:6;pointer-events:none;background:linear-gradient(180deg,rgba(15,42,74,.95) 0%,rgba(15,42,74,.6) 45%,rgba(15,42,74,0) 100%)}
  #sdx-plan.v2-sdx .p-rond{position:relative}
  #sdx-plan.v2-sdx .p-rond::before{content:"";position:absolute;inset:-4px;border-radius:50%}
  #sdx-plan.v2-sdx .p-gros{position:relative}
  #sdx-plan.v2-sdx .p-gros::before{content:"";position:absolute;left:0;right:0;top:-5px;bottom:-5px}
  #sdx-plan.v2-sdx .st{min-height:44px}
  /* la classe .st existe aussi dans la v2 (pastilles 24 px) : on la neutralise dans le bandeau v1 */
  #sdx-plan.v2-sdx .st{width:auto;height:auto;border-radius:0;justify-items:center}
  .pl-bandeau.v1b .pl-resume,.pl-bandeau.v1b .pl-barre .compte,.pl-bandeau.v1b .pl-compteurs,.pl-bandeau.v1b .v1-vide{display:none!important}
}
@media (min-width: 761px) and (max-width: 1699px){
  #sdx-plan.v2-sdx .p-top{padding:22px 24px 70px;gap:14px}
  #sdx-plan.v2-sdx .cpt{padding:0 8px 0 12px!important}
  #sdx-plan.v2-sdx .cp{width:92px!important;height:92px!important}
  #sdx-plan.v2-sdx .cp + .cp{margin-left:-12px}
  #sdx-plan.v2-sdx .cp:nth-child(2n+1){margin-top:-56px!important}
  #sdx-plan.v2-sdx .cp:nth-child(2n){margin-top:56px!important}
  #sdx-plan.v2-sdx .cp b{font-size:22px}
  #sdx-plan.v2-sdx .cp span{width:66px!important;font-size:8.5px}
}

/* ================= 18/10 publie10 (retour d'Hassan sur la capture 7) =================
   1) États : barre de traits d'avancement à la place des boules (style SD Driver / suivi chauffeur), du rouge à l'orange,
      puis bleu, puis vert ; annulé / no-show en gris ; nombre de missions sur chaque trait ; libellés en quinconce (au-dessus / dessous).
   2) Calendrier rond dans un calque au-dessus de la barre des menus (#sdx-cal-portail), avec fondu ; les menus restent cliquables à côté.
   3) Bas du bandeau : trois vaguelettes superposées comme la bannière de SD Driver (sd-habillage.js, fonction vague(),
      couches V1 / V2 / V3 de 920, 760 et 600 px, animation sdhVagues), en argent et bleu clair lumineux.
   4) Bandeau raccourci (bas remonté). 5) Un seul endroit pour changer de jour : ‹ › à côté de « Aujourd'hui » du calendrier.
   6) Bouton « ● SAHN DRIVE ⇆ Changer » (v1, #sdx-esp-pill). 7) Colonnes case à cocher 28 px et Mission 91 px. */
@keyframes sdVaguesV2{from{background-position:0 calc(100% - 2px),0 calc(100% - 9px),0 calc(100% - 18px)}to{background-position:-600px calc(100% - 2px),760px calc(100% - 9px),-920px calc(100% - 18px)}}
@media (min-width: 761px){
  /* 4) bandeau raccourci */
  #sdx-plan.v2-sdx .p-top{padding-bottom:46px}
  /* 1) barre des états en traits */
  #sdx-plan.v2-sdx .fr-l.sd-traits{column-gap:3px;align-items:stretch;padding:0 2px}
  #sdx-plan.v2-sdx .fr-l.sd-traits::before,#sdx-plan.v2-sdx .fr-l.sd-traits::after{display:none!important}
  #sdx-plan.v2-sdx .tr-et{position:relative;display:grid;grid-template-rows:26px 22px 26px;align-items:center;justify-items:stretch;min-height:74px;padding:0;margin:0;border:0;background:none;cursor:pointer;color:#fff;font:700 9.5px/1.08 Manrope,sans-serif;text-align:center}
  #sdx-plan.v2-sdx .tr-et small{grid-row:1;align-self:end;justify-self:center;width:230%;margin:0 -65%;white-space:nowrap;font-size:9.5px;line-height:1.08;color:#DCE6F2;text-shadow:0 1px 6px rgba(0,0,0,.6);opacity:.95}
  #sdx-plan.v2-sdx .tr-et.bas small{grid-row:3;align-self:start}
  #sdx-plan.v2-sdx .tr-t{grid-row:2;position:relative;display:flex;align-items:center;justify-content:center;height:16px;border-radius:8px;font-style:normal;
    background:linear-gradient(180deg,rgba(255,255,255,.55) 0,rgba(255,255,255,0) 55%),var(--c);box-shadow:0 0 0 1px rgba(255,255,255,.35),0 0 10px var(--c),inset 0 -2px 3px rgba(0,0,0,.25);transition:transform .2s,box-shadow .2s,opacity .2s}
  #sdx-plan.v2-sdx .tr-t b{font:900 10.5px/1 Manrope,sans-serif;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}
  #sdx-plan.v2-sdx .tr-et.zero .tr-t{opacity:.42;box-shadow:0 0 0 1px rgba(255,255,255,.2)}
  #sdx-plan.v2-sdx .tr-et:hover .tr-t{transform:scaleY(1.25);box-shadow:0 0 0 1px #fff,0 0 18px var(--c);opacity:1}
  #sdx-plan.v2-sdx .tr-et.on .tr-t{opacity:1;transform:scaleY(1.3);box-shadow:0 0 0 2px #fff,0 0 22px var(--c)}
  #sdx-plan.v2-sdx .tr-et.on small{color:#fff;opacity:1}
  /* 2) calendrier rond au-dessus de la barre des menus */
  #sdx-plan.v2-sdx .p-top > .cal-place{visibility:hidden;margin-top:-60px}
  #sdx-cal-portail{position:absolute;z-index:49;width:270px;height:270px;color:#fff;font-family:Manrope,system-ui,sans-serif;pointer-events:none}
  #sdx-cal-portail.sous-menu{z-index:2}
  #sdx-cal-portail .cal{pointer-events:none}
  #sdx-cal-portail .cal button,#sdx-cal-portail .cal-g span{pointer-events:auto}
  #sdx-cal-portail .cal::before{content:"";position:absolute;left:-40px;right:-40px;top:-30px;height:70px;z-index:6;pointer-events:none;background:linear-gradient(180deg,rgba(15,42,74,.92) 0%,rgba(15,42,74,.55) 45%,rgba(15,42,74,0) 100%)}
  #sdx-cal-portail .cal-j{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:2px}
  #sdx-cal-portail .cal-j .auj-bt{margin-top:0}
  #sdx-cal-portail .cal-j .bt{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:50%;border:0;font-size:17px;line-height:32px;font-weight:900;color:#fff;cursor:pointer;background:rgba(127,211,255,.15);box-shadow:0 0 0 1px rgba(127,211,255,.6),0 0 10px rgba(127,211,255,.5);position:relative}
  #sdx-cal-portail .cal-j .bt::before{content:"";position:absolute;inset:-6px;border-radius:50%}
  /* 5) un seul endroit pour changer de jour : la date et « Aujourd'hui » de la barre sont cachés (code gardé) */
  .pl-bandeau.v1b .pl-jour{display:none!important}
  /* 3) vaguelettes façon SD Driver */
  #sdx-plan.v2-sdx .p-top > .p-vagues{position:absolute;left:0;right:0;bottom:0;height:64px;z-index:0;pointer-events:none;filter:drop-shadow(0 0 6px rgba(127,211,255,.45));
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 60' preserveAspectRatio='none'%3E%3Cpath d='M0 30Q75 10 150 30T300 30T450 30T600 30V60H0Z' fill='rgba(196,211,230,.10)'/%3E%3Cpath d='M0 30Q75 10 150 30T300 30T450 30T600 30' fill='none' stroke='rgba(214,236,255,.95)' stroke-width='1.6'/%3E%3C/svg%3E") 0 calc(100% - 2px)/600px 34px repeat-x,
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 60' preserveAspectRatio='none'%3E%3Cpath d='M0 30Q75 10 150 30T300 30T450 30T600 30V60H0Z' fill='rgba(196,211,230,.14)'/%3E%3Cpath d='M0 30Q75 10 150 30T300 30T450 30T600 30' fill='none' stroke='rgba(127,211,255,.8)' stroke-width='1.3'/%3E%3C/svg%3E") 0 calc(100% - 9px)/760px 42px repeat-x,
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 60' preserveAspectRatio='none'%3E%3Cpath d='M0 30Q75 10 150 30T300 30T450 30T600 30V60H0Z' fill='rgba(196,211,230,.08)'/%3E%3Cpath d='M0 30Q75 10 150 30T300 30T450 30T600 30' fill='none' stroke='rgba(196,211,230,.6)' stroke-width='1.1'/%3E%3C/svg%3E") 0 calc(100% - 18px)/920px 52px repeat-x;
    animation:sdVaguesV2 48s linear infinite}
  /* 6) bouton « Changer » de la v1 (format compact sous le logo) */
  #sdx-esp-pill{position:relative;display:flex;width:max-content;align-items:center;gap:6px;margin:4px 0 0;padding:3px 9px 3px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff;font:800 9.5px Manrope,-apple-system,Arial,sans-serif;letter-spacing:.4px;cursor:pointer;white-space:nowrap;line-height:1.2}
  #sdx-esp-pill .e-chg{display:inline-flex;align-items:center;gap:4px;margin-left:4px;padding:1px 6px;border-radius:999px;background:#fff;color:#0F2A4A;font-size:9px;letter-spacing:.3px}
  #sdx-esp-pill .e-chg svg{width:12px;height:12px}
  #sdx-esp-pill i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px rgba(255,255,255,.7)}
  #sdx-esp-pill:hover{background:rgba(255,255,255,.22)}
  #sdx-esp-pill::after{content:"";position:absolute;left:-4px;right:-4px;top:-12px;bottom:-12px}
  /* 7) colonnes case à cocher (28 px) et Mission (91 px) */
  .tm thead th:first-child,.tm td.c-sel{padding-left:0!important;padding-right:0!important}
  .tm label.cc{width:28px}
  .tm thead th:nth-child(2),.tm td.c-num{min-width:91px;box-sizing:border-box}
}
@media (max-width: 760px){#sdx-esp-pill{display:none}}
@media (prefers-reduced-motion: reduce){#sdx-plan.v2-sdx .p-top > .p-vagues{animation:none}}

/* 18/10 publie10 : menu Chauffeurs, fonctions Waynium branchées (v2-chauffeurs.js) */
.chf-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px;padding:10px;border-radius:var(--r);background:linear-gradient(135deg,rgba(219,97,36,.28),rgba(110,90,82,.35));border:1px solid rgba(255,255,255,.14)}
.chf-a{min-height:44px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:#fff;font-family:var(--titre);font-weight:700;font-size:12px;cursor:pointer}
.chf-a:hover{background:rgba(255,255,255,.22)}
.chf-seln{margin-left:auto;color:#E8EEF5;font-size:12px}
.chf-l{overflow:clip} /* l'en-tête collant suit la page (overflow:hidden le bloquait dans la liste) */
.chf-rang{display:grid;grid-template-columns:40px minmax(0,1fr) 44px;align-items:center;border-bottom:1px solid var(--carte3)}
.chf-rang .chf-li{border-bottom:0}
.chf-rang:nth-child(even){background:var(--carte2)}
.chf-rang:nth-child(even) .chf-li{background:transparent}
.chf-rang.tete{background:linear-gradient(180deg,var(--nuit3),var(--nuit2));position:sticky;top:calc(var(--haut) + var(--barre));z-index:3}
.chf-rang.tete .chf-tete{position:static;background:none}
.chf-sel{display:grid;place-items:center;min-height:44px;cursor:pointer}
.chf-sel input{width:18px;height:18px;cursor:pointer}
.chf-mn{width:44px;height:44px;border:0;background:none;font-size:20px;color:var(--nuit2);cursor:pointer;border-radius:10px}
.chf-mn:hover{background:var(--bleu-clair)}
.cv-plus{margin-top:8px}
.chf-intro{color:#E8EEF5;margin:-4px 0 12px;font-size:13px;max-width:900px}
.chf-cases{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0 10px}
.chf-defile{overflow-x:auto;max-width:100%}
.chf-dbl{padding:8px 0;border-bottom:1px solid var(--carte3)}.chf-dbl small{display:block;color:var(--texte2);font-size:11px}
.chf-radio{display:block;padding:10px 0;min-height:44px}
.chx .mini-t a{color:var(--nuit2)}
.chx-sem td small{display:block;color:var(--texte2);font-size:11px}
.chx-cr{font-weight:700;white-space:nowrap}
.chx-vide{color:#9AA3AE;text-align:center}
.chx-oui{color:#1D6F42;font-weight:800;text-align:center}
.chx-crit th{font-size:11px}
.chx-f{margin-bottom:10px}
.chx-blocs{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.chx-li div{padding:6px 0;border-bottom:1px solid var(--carte3);font-size:13px}
.chx-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;color:#fff}
.chx-nav .chx-tous{color:#E8EEF5;margin-left:auto}
.chx-staff td{vertical-align:top;min-width:110px}
.chx-staff .auj{background:#EAF0F7}
.chx-c{display:block;margin:2px 0;padding:4px 6px;border-radius:8px;background:#DCE8F7;color:var(--nuit2)!important;font-size:11.5px;font-weight:700;text-decoration:none;white-space:nowrap}
.chx-c.ann{background:#EEE;color:#888!important;text-decoration:line-through}
.chx-ind{display:block;margin:2px 0;padding:4px 6px;border-radius:8px;background:repeating-linear-gradient(135deg,#F8DEDE 0 6px,#FBEAEA 6px 12px);color:#9B1C1C;font-size:11px;font-weight:700}
@media (max-width:760px){.chf-rang{grid-template-columns:36px minmax(0,1fr) 44px}.chf-seln{margin-left:0;width:100%}}

/* 18/10 publie10 : logo SD ONE (gris anthracite, retenu) — fichiers dans sd-one/, proportions 3:1 gardées, rien ajouté dessus */
.v2-marque img.sd-one{display:block;height:40px;width:auto;aspect-ratio:3/1}
#v2-marque #sdx-esp-pill{margin-top:3px}
.cx-marque img{display:block;height:44px;width:auto;aspect-ratio:3/1;margin:0 0 6px}
@media (max-width:760px){.v2-marque img.sd-one{height:30px}}

body:where(.sdflp-1):not(.sdflh-z):not(.sdflh-z) #sdx-cal-portail{z-index:47}
/* 3) 44 px de haut : flèches ‹ ›, « Aujourd'hui » sous le calendrier, bouton « SAHN DRIVE ⇆ Changer » */
#sdx-cal-portail .cal-j .bt{width:44px;height:44px;min-width:44px;min-height:44px;line-height:44px}
#sdx-cal-portail .cal-j .bt::before{inset:0}
#sdx-cal-portail .cal-j .auj-bt{min-height:44px}
@media (min-width:761px){
  .v2-marque img.sd-one{height:36px}
  #v2-marque #sdx-esp-pill{min-height:44px;margin-top:-8px;padding-top:0;padding-bottom:0;background:none;border-color:transparent;isolation:isolate}
  #v2-marque #sdx-esp-pill::before{content:"";position:absolute;left:0;right:0;top:11px;bottom:11px;z-index:-1;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1)}
  #v2-marque #sdx-esp-pill:hover{background:none}
  #v2-marque #sdx-esp-pill:hover::before{background:rgba(255,255,255,.22)}
  #v2-marque #sdx-esp-pill::after{content:none}
}
/* 4) logo fond blanc : fondu dans la carte de connexion (bords estompés, aucun changement de couleur ni de proportions) */
.cx-marque img{mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent),linear-gradient(180deg,transparent,#000 14%,#000 86%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent),linear-gradient(180deg,transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}
/* 2) plus de défilement de côté : la place réservée (invisible) du calendrier ne laisse plus déborder ses anneaux ; le calendrier affiché ne bouge pas */
#sdx-plan.v2-sdx .p-top > .cal-place{overflow:hidden}
/* … et le fondu du haut du calendrier s'arrête avant le bord droit (le calendrier ne bouge pas) */
#sdx-cal-portail .cal::before{right:-20px}

/* 18/10 publie10 étape 2 : fenêtres de modification d'une mission façon Waynium (Client / Passagers 740 px, Itinéraire 786 px, Partenaire / chauffeur 1070 px ; fond #F9FAFC, ombre 0 4px 10px, coins bas 4 px) — toujours centrées (règle d'Hassan) */
.ed.wy{background:#F9FAFC;border:1px solid #DCE2EA;border-top:0;border-radius:0 0 4px 4px;box-shadow:0 4px 10px rgba(0,0,0,.3)}
.ed.wy h4{background:#F9FAFC}
.ed.wy .grille .ch{width:100%;box-sizing:border-box}
.ed.wy-client{width:min(740px,94vw)}.ed.wy-iti{width:min(786px,94vw)}.ed.wy-chauffeur{width:min(1070px,94vw)}
.ed .wy-rech{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.ed .wy-rech .ch{flex:1 1 260px}
.ed .wy-lien{min-height:44px;display:inline-flex;align-items:center;padding:0 6px;color:var(--bleu);font-weight:700;font-size:13px}
.ed .wy-num{display:flex;gap:8px}.ed .wy-num select{flex:0 0 150px}.ed .wy-num input{flex:1}
.ed .wy-sous{margin-top:12px;border-top:1px solid var(--trait);padding-top:8px}
.ed .wy-sous summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-family:var(--titre);font-weight:800;color:var(--nuit2)}
.ed .wy-p{font-size:13px;margin:6px 0}
.ed .wy-lieu{width:100%;margin-bottom:10px}
.ed .wy-onglets{display:flex;gap:4px;border-bottom:2px solid var(--trait);margin-bottom:10px}
.ed .wy-onglets button{min-height:44px;padding:0 16px;border:0;background:transparent;font-family:var(--titre);font-weight:700;color:var(--texte2);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}
.ed .wy-onglets button.on{color:var(--nuit2);border-bottom-color:var(--nuit2)}
.ed .wy-og.cache{display:none}
.ed .wy-dep{display:flex;gap:8px;margin-bottom:8px}
.ed .wy-et{display:grid;grid-template-columns:96px 70px minmax(0,1fr) 150px auto 44px;gap:6px;align-items:center;padding:4px 0;border-bottom:1px solid var(--carte3)}
.ed .wy-tag{font-size:11.5px;font-weight:800;color:var(--nuit2)}
.ed .wy-adr[readonly]{background:#EEF1F5}
.ed .wy-sup{width:44px;height:44px;border:0;background:transparent;font-size:20px;cursor:pointer;border-radius:50%;color:#9B1C1C}.ed .wy-sup:hover{background:#F8DEDE}.ed .wy-sup.vide{display:block}
.ed .wy-chf-haut{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.ed .wy-verrou{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:6px;background:#C62828;color:#fff;font-weight:800;cursor:pointer}
.ed .wy-verrou input{width:18px;height:18px}
.ed .wy-part{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.ed .wy-part .lib{margin:0}.ed .wy-part .cache{display:none}
.ed .wy-chf-bas{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media (max-width:760px){.ed .wy-et{grid-template-columns:80px 1fr 44px}.ed .wy-et .wy-tag{grid-column:2}.ed .wy-et .wy-adr,.ed .wy-et .wy-vol,.ed .wy-et [data-modif]{grid-column:1/-1}}
@media (max-width:760px){.ed.wy .grille{grid-template-columns:minmax(0,1fr)}.ed .wy-num select{flex:0 0 120px;min-width:0}.ed .wy-num input{min-width:0}.ed .wy-rech .ch{flex-basis:100%}.ed .wy-part{max-width:100%}}

/* 18/10 publie10 étape 3 : actions groupées (Waynium) */
.ms-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:10px 0}
.ms-codes .bt{justify-content:flex-start;min-height:44px;text-align:left}
.ms-codes .bt b{display:inline-block;min-width:18px}
.ms-nav{padding:8px 0;border-bottom:1px solid var(--carte3);font-size:13px}.ms-nav small{color:var(--texte2)}
.massif .col{width:220px} /* largeur Waynium : les 6 colonnes tiennent à 1366 px */

/* 18/10 corrections vérificateur étape 3 : le panneau des actions groupées tient à toutes les largeurs */
.massif{max-width:100%;box-sizing:border-box}
.massif .col{flex:0 0 220px}
@media (max-width:760px){.massif{right:0;flex-direction:column;overflow-x:hidden;overflow-y:auto}.massif .col{flex:0 0 auto;width:auto;border-right:0;border-bottom:1px solid rgba(196,201,208,.15)}.massif .ferme{position:static}}
.ms-codes .bt{min-height:46px}

/* sous 1366 px : colonne « Portée » à 160 px, les 6 colonnes tiennent sans défilement (160 + 5 × 220 = 1260) */
@media (min-width:761px) and (max-width:1365px){.massif .col:first-child{flex:0 0 160px;width:160px}}

/* 18/10 publie11 : logo de la barre = écriture seule (bandeau bleu nuit sans fond, sd-one/logo-ecriture.svg), grande taille, « ALL IN ONE » lisible.
   Proportions d'origine gardées (3,67:1). « Changer » passe à côté du logo. */
.v2-marque img.sd-one.sd-one-ecriture{height:68px;width:auto;aspect-ratio:auto;max-width:none}
@media (min-width:761px){
  #v2-marque{display:flex;align-items:center;gap:14px;flex:none}
  #v2-marque #sdx-esp-pill{margin-top:0}
}
@media (max-width:760px){.v2-marque img.sd-one.sd-one-ecriture{height:44px}}
/* Écran de connexion : écriture seule sur fond clair (sd-one/logo-ecriture-clair.svg), sans fondu ni masque */
.cx-marque img.sd-one-ecriture{height:52px;width:auto;aspect-ratio:738/205;mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none}

/* 18/10 publie11 : calendrier rond — tout le contenu cadré et centré DANS le cercle (Hassan 16h24).
   Hauteur du contenu 180 px centrée dans le rond de 270 px ; boutons ronds de 44 px gardés ; grille légèrement réduite. */
@media (min-width:761px){
  #sdx-cal-portail .cal{padding:45px 0 0}
  #sdx-cal-portail .cal-h{width:196px;height:44px;margin:0 auto;font-size:11.5px;letter-spacing:0;white-space:nowrap}
  #sdx-cal-portail .cal-h span{flex:1 1 auto;min-width:0;text-align:center;overflow:hidden}
  #sdx-cal-portail .cal-g{width:176px;height:88px;margin:2px auto 0;gap:0;font-size:10px;grid-auto-rows:1fr;align-content:stretch}
  #sdx-cal-portail .cal-g span{padding:0;display:flex;align-items:center;justify-content:center;line-height:1}
  #sdx-cal-portail .cal-j{margin-top:2px;gap:5px}
  #sdx-cal-portail .cal-j .auj-bt{padding:0 11px;font-size:11px}
}

/* 18/10 publie11 : bouton « ? » (aide) masqué — remis plus tard (son code et son clic restent en place) */
#v2-aide{display:none!important}
/* 18/10 publie11 : lignes impaires de « Factures et devis SD » lisibles (fond blanc, comme les autres listes) */
.tl.fa-t tr:nth-child(odd) td{background:#fff}
.tl.fa-t tr:hover td{background:#EAF0F7}
/* 18/10 publie11 : bouton calendrier de la barre toujours 44 x 44 */
.v2-calbt{flex:none;min-width:44px}

/* ===== 18/10 publie13 — retouches d'Hassan (20h36–20h43) ===== */
/* logo de la barre du haut : environ 30 % plus petit (68 → 48 px), « ALL IN ONE » reste lisible */
.v2-marque img.sd-one.sd-one-ecriture{height:48px}
/* bouton « Retour » commun : même place sur chaque écran sauf l'accueil, en haut à gauche du contenu, 44 px */
.v2-retour{position:absolute;z-index:6;top:calc(var(--haut) + var(--barre) + 12px);left:20px;min-height:44px;min-width:44px;display:inline-flex;align-items:center;gap:6px;padding:0 18px 0 12px;border-radius:999px;border:1px solid #C4D3E6;color:#0F2A4A;font:700 14px/1 var(--titre,inherit);letter-spacing:.02em;cursor:pointer;
  background:linear-gradient(rgba(15,42,74,.06) 1px,transparent 1px) 0 0/8px 8px,linear-gradient(90deg,rgba(15,42,74,.06) 1px,transparent 1px) 0 0/8px 8px,linear-gradient(180deg,#FFFFFF,#E6EDF6);box-shadow:0 1px 0 #fff inset,0 4px 12px rgba(8,24,48,.18);transition:transform .15s ease,box-shadow .15s ease}
.v2-retour:hover{transform:translateY(-1px);box-shadow:0 1px 0 #fff inset,0 8px 18px rgba(8,24,48,.24)}
.v2-retour:active{transform:translateY(0)}
.v2-retour:focus-visible{outline:3px solid #3C7BD0;outline-offset:2px}
.v2-retour[hidden]{display:none}
.v2-retour:not([hidden]) + .v2-contenu{padding-top:calc(var(--haut) + var(--barre) + 70px)}
@media (max-width:760px){.v2-retour{left:16px}}
/* numéro de vol / train dans la ligne de mission : petit et discret, sur une seule ligne ; zone cliquable gardée à 44 px */
.iti2 button.puce.vol,.iti2 button.puce.train{position:relative;min-height:24px!important;padding:2px 9px;font-size:10.5px;line-height:1.3;white-space:nowrap!important;max-width:230px;overflow:hidden;text-overflow:ellipsis;display:inline-block;margin:10px 0}
.iti2 button.puce.vol::after,.iti2 button.puce.train::after{content:"";position:absolute;left:0;right:0;top:-10px;bottom:-10px}
.iti2 .puce.etape{white-space:nowrap}
/* fenêtre de mission : bloc « Vol / train » sur une ligne */
.pan-in [data-sdvol] .m-vol{line-height:1.4;font-size:12.5px}
/* type de véhicule et plaque centrés (ligne du planning) */
.tm td.c-veh,.tl td.c-veh{text-align:center}
.c-veh .puce{justify-content:center}
.cv-plaque{font-size:12px}
/* listes : repère sur toute la ligne pour deux statuts seulement (contraste AA vérifié : texte foncé sur vert clair, texte blanc sur gris foncé) */
.tl tr.st-paye td,.tl tr.st-paye:nth-child(even) td{background:#DDF3E3;color:#0F2A1A}
.tl tr.st-paye:hover td{background:#C9EBD3}
.tl tr.st-abandon td,.tl tr.st-abandon:nth-child(even) td{background:#4A515B;color:#FFFFFF}
.tl tr.st-abandon td a,.tl tr.st-abandon td .lien{color:#E3ECF7}
.tl tr.st-abandon:hover td{background:#3E444D}
html[data-theme="gris"] .tl tr.st-paye td,html[data-theme="blanc"] .tl tr.st-paye td{background:#DDF3E3;color:#0F2A1A}
html[data-theme="gris"] .tl tr.st-abandon td,html[data-theme="blanc"] .tl tr.st-abandon td{background:#4A515B;color:#FFFFFF}
/* Paramétrage → Menus affichés */
.mn-aff .mn-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:12px 0}
.mn-aff .mn-c{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1px solid #C4D3E6;border-radius:12px;background:#F3F6FA;color:#0F2A4A;cursor:pointer}
.mn-aff .mn-c input{width:20px;height:20px;flex:none}
.mn-aff .mn-c small{color:#45546A}
/* Statistiques : Masquer / Afficher par bloc ; pagination des longues listes en bas */
.sx-b > h3{display:flex;align-items:center;gap:10px}
.sx-b > h3 .sx-rep{margin-left:auto;min-height:44px;font-size:12.5px}
.sx-b.sx-cache > :not(h3){display:none!important}
.sx-b.sx-cache{padding-bottom:10px}
.pagin-bas{margin-top:10px}
.pagin .pagin-n{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.pagin .pagin-n select{min-height:44px}
body.pan-ouvert #sdx-cal-portail,body:where(.sdflp-2):not(.sdflh-z):not(.sdflh-z) #sdx-cal-portail{visibility:hidden;pointer-events:none}
/* 18/10 publie14 (Hassan) : page de connexion — bouton « SAHN DRIVE ⇆ Changer » caché, SD ONE + heure + date centrés en haut. Rien d'autre ne bouge. */
body.cx-ouvert #sdx-esp-pill{display:none!important}
body.cx-ouvert .v2-haut{justify-content:center}
body.cx-ouvert .v2-haut .v2-recherche,body.cx-ouvert .v2-haut .v2-icones{display:none}
body.cx-ouvert #v2-marque{flex:none}
/* 18/10 publie15 (Hassan) : navigation des jours dans la barre du planning ; reste visible quand la fenêtre Mission est ouverte */
.pl-nav{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
.pl-nav .bt{min-height:44px;min-width:44px}
.pl-nav .pl-nav-d{font-family:var(--titre);font-weight:700;font-size:13px;color:#fff;white-space:nowrap;padding:0 4px}
html[data-theme="gris"] .pl-nav .pl-nav-d,html[data-theme="blanc"] .pl-nav .pl-nav-d{color:#0F2A4A}
@media (max-width:1599px){body.pan-ouvert .pl-nav{margin-right:min(500px,94vw)}}
/* page de connexion : le bouton « Retour » est caché */
body.cx-ouvert #v2-retour{display:none!important}
body.cx-ouvert .v2-retour + .v2-contenu{padding-top:calc(var(--haut) + var(--barre) + 18px)}
/* 18/10 publie17 : sélecteur rapide du calendrier rond (titre du mois cliquable) */
.cal-h .cal-titre{background:none;border:0;color:inherit;font:inherit;cursor:pointer;min-height:44px;padding:0 6px;border-radius:10px}
.cal-h .cal-titre:hover,.cal-h .cal-titre:focus-visible{background:rgba(196,211,230,.18);outline:none}
.sm{display:grid;gap:14px}
.sm-an{display:flex;align-items:center;justify-content:center;gap:16px}
.sm-an b{font-size:20px;color:#0F2A4A;min-width:70px;text-align:center}
.sm-an .bt{min-width:44px;min-height:44px}
.sm-mois{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sm-mois .bt{min-height:44px;width:100%}
.sm-mois .bt.on{background:linear-gradient(180deg,#1E5AA8,#0F2A4A);color:#fff;border-color:#1E5AA8}
.sm-d input{min-height:44px;width:100%}
/* 18/10 publie17 — bulles d'état, style B choisi par Hassan : barres segmentées de même taille, compteur + icône,
   nom en douceur au survol ou au clic, bouton « Légende » (tous les noms). Couleurs ZI, quadrillage, sans doré. */
#sdx-plan.v2-sdx .fr-l.fr-b{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px;row-gap:6px}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b{display:flex;flex-direction:column;align-items:stretch;gap:5px;width:76px;min-height:44px;padding:0;margin:0;border:0;background:none;cursor:pointer;flex:none}
#sdx-plan.v2-sdx .fr-b .tr-seg{position:relative;display:flex;align-items:center;justify-content:center;gap:5px;height:40px;font-style:normal;color:#fff;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 55%),linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 55%,#081830));
  clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%,12% 50%);transition:filter .2s ease,transform .2s ease}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b:first-child .tr-seg{clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%)}
#sdx-plan.v2-sdx .fr-b .tr-seg::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px) 0 0/6px 6px,linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px) 0 0/6px 6px;pointer-events:none}
#sdx-plan.v2-sdx .fr-b .tr-seg b{font:900 15px/1 Manrope,Inter,sans-serif;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
#sdx-plan.v2-sdx .fr-b .tr-seg svg{flex:none}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b:hover .tr-seg{filter:brightness(1.2)}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b.zero .tr-seg{filter:saturate(.4) brightness(.8)}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b.on .tr-seg{filter:brightness(1.25);transform:translateY(-2px)}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b.on{outline:2px solid #fff;outline-offset:2px;border-radius:6px}
#sdx-plan.v2-sdx .fr-b .tr-nom{display:block;max-height:0;opacity:0;overflow:hidden;transform:translateY(-4px);transition:max-height .35s ease,opacity .3s ease,transform .3s ease;font-size:10.5px;font-weight:700;line-height:1.15;color:#DCE6F2;text-align:center;white-space:normal}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b:hover .tr-nom,#sdx-plan.v2-sdx .fr-b .tr-et.tr-b:focus-visible .tr-nom,#sdx-plan.v2-sdx .fr-b .tr-et.tr-b.vu .tr-nom,#sdx-plan.v2-sdx .fr-b.legende .tr-nom{max-height:40px;opacity:1;transform:none}
#sdx-plan.v2-sdx .fr-b .tr-et.tr-b:focus-visible{outline:2px solid #3C7BD0;outline-offset:3px}
#sdx-plan.v2-sdx .fr-b .tr-leg{align-self:flex-start;min-height:44px;margin-left:8px;padding:0 16px;border-radius:999px;border:1px solid #C4D3E6;color:#0F2A4A;font-weight:700;font-size:13px;cursor:pointer;
  background:linear-gradient(rgba(15,42,74,.07) 1px,transparent 1px) 0 0/7px 7px,linear-gradient(90deg,rgba(15,42,74,.07) 1px,transparent 1px) 0 0/7px 7px,linear-gradient(180deg,#fff,#DCE5F0);box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .15s}
#sdx-plan.v2-sdx .fr-b .tr-leg:hover{transform:translateY(-1px)}
#sdx-plan.v2-sdx .fr-b .tr-leg.on{background:linear-gradient(180deg,#1E5AA8,#0F2A4A);color:#fff;border-color:#3C7BD0}
@media (prefers-reduced-motion:reduce){#sdx-plan.v2-sdx .fr-b .tr-nom,#sdx-plan.v2-sdx .fr-b .tr-seg{transition:none}}
/* 18/10 publie17 : panneau Activité — le × ne recouvre plus « Tout marquer lu » (les deux à 44 px) */
.fil-tiroir .fil-t{padding-right:58px;min-height:44px}
.fil-tiroir .fil-fx{min-width:44px;min-height:44px}
/* Paramétrage → Modèle de fiche de mission */
.mf{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:12px}
.mf-c{display:flex;flex-direction:column;gap:4px;text-align:left;min-height:44px;padding:14px 16px;border-radius:14px;border:1px solid #C4D3E6;background:#F3F6FA;color:#0F2A4A;cursor:pointer;font:inherit}
.mf-c b{font-size:15px}.mf-c small{color:#45546A}
.mf-c.on{border:2px solid #1E5AA8;background:#fff;box-shadow:0 6px 16px rgba(15,42,74,.15)}
/* 19/10 publie19 (Hassan) : fiche chauffeur, bloc Véhicules — la photo du véhicule (souvent la plaque) s'affichait en grand à gauche (120 × 80).
   Taille normale, cohérente avec la ligne, centrée avec le nom du véhicule. Affichage seulement. */
.cv-veh{align-items:center;gap:10px}
.cv-veh img,.cv-veh-v{width:64px;height:44px;border-radius:8px}
.cv-veh .cv-plaque{margin:2px 0;padding:1px 8px;border-width:1.5px;vertical-align:middle}
.cv-veh b{line-height:1.25}
/* 19/10 publie19 : plaque de la fiche chauffeur contenue dans sa colonne sur téléphone (sans couper la plaque) */
.cv-veh>div{min-width:0}
@media (max-width:480px){.cv-veh{gap:8px}.cv-veh .cv-plaque{font-size:10.5px;letter-spacing:.02em;padding:1px 5px}}
/* 19/10 publie20 (Hassan) : confirmation d'envoi du bon de mission (blanc, bord fin ; rouge en cas d'échec) et trace des envois dans la fiche mission */
.bon-msg{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--pied,0px) + 16px);z-index:100;display:flex;align-items:center;gap:12px;background:#fff;color:#0F2A4A;border:1px solid #1D6F42;border-left:5px solid #1D6F42;border-radius:12px;padding:8px 8px 8px 14px;max-width:min(640px,calc(100vw - 32px));box-shadow:0 6px 18px rgba(8,24,48,.18);font-size:14px;line-height:1.35}
.bon-msg p{margin:0;flex:1;overflow-wrap:anywhere;hyphens:none}
.bon-msg.ko{border-color:#C62828;color:#9B1C1C;font-weight:600}
.bon-msg.info{border-color:#B4510F}
.bon-msg button{min-height:44px;min-width:44px;flex:none}
.bon-trace{margin-top:12px;padding:10px 12px;border:1px solid rgba(15,42,74,.18);border-radius:10px;background:#fff;color:#0F2A4A}
.bon-trace h6{margin:0 0 6px;font-size:13px}
.bon-trace ul{margin:0;padding:0;list-style:none}
.bon-trace li{padding:5px 0;border-top:1px solid rgba(15,42,74,.08);font-size:13px;overflow-wrap:anywhere;hyphens:none}
.bon-trace li:first-child{border-top:0}
.bon-trace li.ko,.bon-trace .ko{color:#C62828}

/* ===== v2-themes.css ===== */
/* SD ONE — 18/10 publie11 : thèmes « Gris » et « Blanc » (Paramétrage → Choisir le template).
   Le thème « Bleu » (par défaut) n'est PAS touché : toutes les règles ci-dessous ne s'appliquent que si
   <html data-theme="gris"> ou <html data-theme="blanc">. Couleurs ZI : argent #AFC0D6 / #C4D3E6, texte #0F2A4A, sans doré.
   Les compteurs ronds et le calendrier rond gardent leur verre bleu nuit (la « touche de bleu »). */

html[data-theme="gris"],html[data-theme="blanc"]{
  --fond1:#EEF2F7; --fond2:#E4E9F0; --fond3:#D8DFE8; --halo:rgba(196,211,230,.55);
  --argent:#5D7290; --argent2:#5D6B7E; --argent-clair:#F3F6FA;
  --texte:#0F2A4A; --texte2:#45546A; --trait:#C4D3E6; --carte2:#F3F6FA; --carte3:#E9EEF5;
  --ombre:0 8px 24px rgba(15,42,74,.12);
}
html[data-theme="blanc"]{--fond1:#FFFFFF; --fond2:#FAFBFD; --fond3:#F3F6FA; --halo:rgba(196,211,230,.35)}
html[data-theme="gris"],html[data-theme="gris"] body{background-color:#E4E9F0}
html[data-theme="blanc"],html[data-theme="blanc"] body{background-color:#FFFFFF}
html[data-theme="gris"] body,html[data-theme="blanc"] body{background-image:radial-gradient(120% 70% at 50% -10%,var(--halo),transparent 60%),linear-gradient(180deg,var(--fond1) 0%,var(--fond2) 55%,var(--fond3) 100%)!important}
html[data-theme="gris"] body::after,html[data-theme="blanc"] body::after{opacity:.25}

/* décor : quadrillage + filaments, en filets fins bleu-gris */
html[data-theme="gris"] .v2-filaments::before{background-image:linear-gradient(rgba(15,42,74,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,42,74,.05) 1px,transparent 1px)}
html[data-theme="blanc"] .v2-filaments::before{background-image:linear-gradient(rgba(30,90,168,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(93,114,144,.06) 1px,transparent 1px)}
html[data-theme="gris"] .v2-filaments i,html[data-theme="blanc"] .v2-filaments i{background:linear-gradient(90deg,transparent,rgba(30,90,168,.55),transparent);filter:none;opacity:.6}
html[data-theme="gris"] .v2-filaments i:nth-child(4),html[data-theme="blanc"] .v2-filaments i:nth-child(4){background:linear-gradient(180deg,transparent,rgba(93,114,144,.55),transparent)}

/* barre du haut */
html[data-theme="gris"] .v2-haut{background:linear-gradient(180deg,#F3F6FA,#DCE4EE)!important;color:#0F2A4A;border-bottom:1px solid #C4D3E6;box-shadow:0 1px 0 #fff inset,0 6px 18px rgba(15,42,74,.10)!important}
html[data-theme="blanc"] .v2-haut{background:rgba(255,255,255,.96)!important;color:#0F2A4A;border-bottom:1px solid #D7E1EC;box-shadow:0 6px 18px rgba(15,42,74,.07)!important}
html[data-theme="gris"] .v2-horloge,html[data-theme="blanc"] .v2-horloge{background:rgba(255,255,255,.7);border-color:#C4D3E6;box-shadow:none}
html[data-theme="gris"] .v2-horloge::before,html[data-theme="blanc"] .v2-horloge::before{background-image:linear-gradient(rgba(15,42,74,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(15,42,74,.05) 1px,transparent 1px)}
html[data-theme="gris"] .v2-hm b,html[data-theme="blanc"] .v2-hm b{color:#0F2A4A}
html[data-theme="gris"] .v2-hm span,html[data-theme="gris"] .v2-jd span:first-child,html[data-theme="blanc"] .v2-hm span,html[data-theme="blanc"] .v2-jd span:first-child{color:#1E5AA8}
html[data-theme="gris"] .v2-jd span:last-child,html[data-theme="blanc"] .v2-jd span:last-child{color:#0F2A4A}
html[data-theme="gris"] .v2-jd,html[data-theme="blanc"] .v2-jd{border-left-color:#C4D3E6}
html[data-theme="gris"] .v2-calbt,html[data-theme="blanc"] .v2-calbt,html[data-theme="gris"] .v2-icones button,html[data-theme="blanc"] .v2-icones button,html[data-theme="gris"] .v2-burger,html[data-theme="blanc"] .v2-burger,html[data-theme="gris"] .v2-burger-m,html[data-theme="blanc"] .v2-burger-m{background:#fff;border:1px solid #AFC0D6;color:#0F2A4A}
html[data-theme="gris"] .v2-calbt:hover,html[data-theme="blanc"] .v2-calbt:hover,html[data-theme="gris"] .v2-icones button:hover,html[data-theme="blanc"] .v2-icones button:hover{background:#E9EEF5;color:#0F2A4A;border-color:#5D7290}
html[data-theme="gris"] .v2-recherche input,html[data-theme="blanc"] .v2-recherche input{background:#fff;border-color:#AFC0D6;color:#0F2A4A}
html[data-theme="gris"] .v2-recherche input::placeholder,html[data-theme="blanc"] .v2-recherche input::placeholder{color:#5D6B7E}
html[data-theme="gris"] .v2-recherche .ico,html[data-theme="blanc"] .v2-recherche .ico{color:#45546A}
html[data-theme="gris"] #sdx-esp-pill,html[data-theme="blanc"] #sdx-esp-pill{color:#0F2A4A}
html[data-theme="gris"] #v2-marque #sdx-esp-pill::before,html[data-theme="blanc"] #v2-marque #sdx-esp-pill::before{border-color:#AFC0D6;background:#fff}
html[data-theme="gris"] #sdx-esp-pill .e-chg,html[data-theme="blanc"] #sdx-esp-pill .e-chg{background:#0F2A4A;color:#fff}
html[data-theme="gris"] #sdx-esp-pill i,html[data-theme="blanc"] #sdx-esp-pill i{box-shadow:0 0 0 2px #AFC0D6}

/* barre des menus */
html[data-theme="gris"] .v2-menu{background:linear-gradient(180deg,#E9EEF5,#DDE5EF)!important;border-bottom:1px solid #C4D3E6;box-shadow:0 4px 12px rgba(15,42,74,.08)!important}
html[data-theme="blanc"] .v2-menu{background:#FFFFFF!important;border-bottom:1px solid #D7E1EC;box-shadow:0 4px 12px rgba(15,42,74,.05)!important}
html[data-theme="gris"] .v2-m1,html[data-theme="blanc"] .v2-m1{color:#0F2A4A}
html[data-theme="gris"] .v2-m1 .fl,html[data-theme="blanc"] .v2-m1 .fl{color:#5D7290}
html[data-theme="gris"] .v2-m1:hover,html[data-theme="blanc"] .v2-m1:hover{background:rgba(30,90,168,.08);color:#0F2A4A}
html[data-theme="gris"] .v2-m1.actif,html[data-theme="gris"] .v2-m1.deplie,html[data-theme="blanc"] .v2-m1.actif,html[data-theme="blanc"] .v2-m1.deplie{background:linear-gradient(180deg,#2A6CC0,#1E5AA8)!important;color:#fff}
html[data-theme="gris"] .v2-m1.actif .fl,html[data-theme="gris"] .v2-m1.deplie .fl,html[data-theme="blanc"] .v2-m1.actif .fl,html[data-theme="blanc"] .v2-m1.deplie .fl{color:#fff}

/* pied de page */
html[data-theme="gris"] .v2-pied{background:rgba(220,228,238,.97);color:#45546A;border-top-color:#C4D3E6}
html[data-theme="blanc"] .v2-pied{background:rgba(255,255,255,.97);color:#45546A;border-top-color:#D7E1EC}

/* bandeau du planning (zone haute) : fond clair, textes bleu nuit ; compteurs et calendrier ronds en verre bleu nuit */
html[data-theme="gris"] #sdx-plan .p-fond{background:radial-gradient(700px 320px at 12% 50%,rgba(175,192,214,.55),transparent 62%),linear-gradient(180deg,#E9EEF5,#DCE4EE)!important}
html[data-theme="blanc"] #sdx-plan .p-fond{background:radial-gradient(700px 320px at 12% 50%,rgba(196,211,230,.35),transparent 62%),linear-gradient(180deg,#FFFFFF,#F3F6FA)!important}
html[data-theme="gris"] #sdx-plan .p-fond::before,html[data-theme="blanc"] #sdx-plan .p-fond::before{filter:invert(1);opacity:.06}
html[data-theme="gris"] #sdx-plan .p-fond::after,html[data-theme="blanc"] #sdx-plan .p-fond::after{opacity:.35}
html[data-theme="gris"] #sdx-plan .p-top,html[data-theme="blanc"] #sdx-plan .p-top{color:#0F2A4A}
html[data-theme="gris"] #sdx-plan .p-top::before,html[data-theme="blanc"] #sdx-plan .p-top::before{filter:invert(1);opacity:.05}
html[data-theme="gris"] #sdx-plan .st,html[data-theme="blanc"] #sdx-plan .st,html[data-theme="gris"] #sdx-plan .st small,html[data-theme="blanc"] #sdx-plan .st small,html[data-theme="gris"] #sdx-plan .st:hover small,html[data-theme="blanc"] #sdx-plan .st:hover small{color:#0F2A4A;text-shadow:none}
html[data-theme="gris"] #sdx-plan .st::after,html[data-theme="blanc"] #sdx-plan .st::after{background:linear-gradient(rgba(15,42,74,.55),rgba(15,42,74,.1))}
html[data-theme="gris"] #sdx-plan.v2-sdx .p-top > .cal::before,html[data-theme="gris"] #sdx-cal-portail .cal::before{background:linear-gradient(180deg,rgba(221,229,239,.95) 0%,rgba(221,229,239,.55) 45%,rgba(221,229,239,0) 100%)}
html[data-theme="blanc"] #sdx-plan.v2-sdx .p-top > .cal::before,html[data-theme="blanc"] #sdx-cal-portail .cal::before{background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.55) 45%,rgba(255,255,255,0) 100%)}

/* écran « Choisir le template » (visible dans les trois thèmes) */
.tpl-choix{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:14px}
.tpl-carte{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:44px;padding:14px;border-radius:14px;border:2px solid #C4D3E6;background:#fff;color:#0F2A4A;text-align:left;cursor:pointer;font:inherit}
.tpl-carte:hover{border-color:#5D7290}
.tpl-carte[aria-checked="true"]{border-color:#1E5AA8;box-shadow:0 0 0 3px rgba(30,90,168,.2)}
.tpl-carte b{font-family:var(--titre);font-size:15px}
.tpl-carte small{font-size:12.5px;color:#45546A;line-height:1.35}
.tpl-ap{display:flex;align-items:center;width:100%;height:76px;padding:0 12px;border-radius:10px;border:1px solid #C4D3E6}
.tpl-bleu .tpl-ap{background:linear-gradient(180deg,#1E5AA8,#0F2A4A)}
.tpl-gris .tpl-ap{background:linear-gradient(180deg,#F3F6FA,#DCE4EE)}
.tpl-blanc .tpl-ap{background:#fff;background-image:linear-gradient(rgba(30,90,168,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(93,114,144,.06) 1px,transparent 1px);background-size:16px 16px}
.tpl-ap img{height:52px;width:auto}

/* textes posés directement sur le fond de page : bleu nuit en thème clair */
html[data-theme="gris"] .v2-titre,html[data-theme="blanc"] .v2-titre,html[data-theme="gris"] .fiche > .v2-titre,html[data-theme="blanc"] .fiche > .v2-titre,html[data-theme="gris"] .kpi h3,html[data-theme="blanc"] .kpi h3{color:#0F2A4A}
html[data-theme="gris"] #sdx-plan .st small,html[data-theme="blanc"] #sdx-plan .st small{color:#0F2A4A!important;opacity:1!important;text-shadow:none!important}
/* barre Chauffeur / Véhicule du planning : verre bleu nuit (lisible, touche de bleu) */
html[data-theme="gris"] .pl-bandeau,html[data-theme="blanc"] .pl-bandeau{background:linear-gradient(180deg,#2466B6,#173F73)!important;border-color:#AFC0D6}
/* libellés des traits d'état (frise du planning) */
html[data-theme="gris"] #sdx-plan.v2-sdx .tr-et,html[data-theme="blanc"] #sdx-plan.v2-sdx .tr-et{color:#0F2A4A}
html[data-theme="gris"] #sdx-plan.v2-sdx .tr-et small,html[data-theme="blanc"] #sdx-plan.v2-sdx .tr-et small,html[data-theme="gris"] #sdx-plan.v2-sdx .tr-et.on small,html[data-theme="blanc"] #sdx-plan.v2-sdx .tr-et.on small{color:#0F2A4A;text-shadow:none;opacity:1}
/* compteurs ronds et calendrier rond : verre bleu nuit opaque sur fond clair (lisibles) */
html[data-theme="gris"] #sdx-plan .cp,html[data-theme="blanc"] #sdx-plan .cp,html[data-theme="gris"] #sdx-cal-portail .cal,html[data-theme="blanc"] #sdx-cal-portail .cal{background:radial-gradient(circle at 50% 35%,#2A6CC0,#0F2A4A 72%)!important}
html[data-theme="gris"] #sdx-plan .cp,html[data-theme="blanc"] #sdx-plan .cp,html[data-theme="gris"] #sdx-plan .cp *,html[data-theme="blanc"] #sdx-plan .cp *{color:#fff}
html[data-theme="gris"] .pl-bandeau,html[data-theme="blanc"] .pl-bandeau{--argent:#DCE6F2;--argent2:#C4D3E6;--texte2:#DCE6F2}
html[data-theme="gris"] .pl-bandeau label,html[data-theme="blanc"] .pl-bandeau label,html[data-theme="gris"] .pl-bandeau .lib,html[data-theme="blanc"] .pl-bandeau .lib{color:#DCE6F2}

/* ===== v2-mobile.css ===== */
/* 21/10/2026 (Hassan) : SD ONE version smartphone. Seulement sur petit écran (760 px et moins) ;
   rien n'est retiré : les doublons sont seulement masqués sur téléphone, l'ordinateur ne change pas. */
@media (max-width:760px){
  /* barre du haut : logo un peu plus petit, l'heure en entier, boutons ronds plus discrets */
  header.v2-haut{gap:6px!important}
  header.v2-haut .v2-marque img.sd-one{width:108px!important;height:auto!important}
  header.v2-haut .v2-horloge{flex:0 0 auto!important;width:auto!important;overflow:visible!important;padding:0 8px!important;margin-left:auto!important;height:32px!important;align-self:center!important}
  header.v2-haut .v2-horloge #v2-hm{font-size:15px!important;letter-spacing:.02em!important}
  header.v2-haut .v2-icones{gap:0!important}
  header.v2-haut .v2-icones > button{border:0!important;box-shadow:none!important;background:radial-gradient(circle at center,rgba(255,255,255,.07) 16px,rgba(196,201,208,.35) 16.5px,rgba(196,201,208,.35) 17.2px,transparent 17.8px)!important}
  header.v2-haut .v2-icones > button svg{width:19px!important;height:19px!important}
  /* planning : la 2e barre de dates (doublon de la 1re) est masquée sur téléphone */
  #pl-b .pl-barre .pl-nav{display:none!important}
  /* carte mission : chauffeur puis véhicule sur toute la largeur (plus de plaque coupée lettre par lettre) */
  table.tm tr.lg{grid-template-areas:"sel h plus" "cli cli cli" "iti iti iti" "chf chf chf" "veh veh veh" "st st st"!important}
  table.tm tr.lg td.c-chf,table.tm tr.lg td.c-veh{text-align:left!important}
  table.tm tr.lg td.c-veh .puce{white-space:normal;word-break:normal;overflow-wrap:anywhere;max-width:100%}
}

/* ===== v2-mobile2.css ===== */
/* 21/10/2026 (Hassan) : audit SD ONE téléphone, page par page. Seulement sur petit écran (760 px et moins),
   sauf les boutons (sans quadrillage partout). Rien n'est retiré : mise en page seulement. */

/* Boutons : plus de quadrillage « cahier de classe » */
#v2-contenu .bt:not(.clair):not(.contour):not(.fonce):not(.rond){background:linear-gradient(180deg,#1A3D66 0%,#0F2A4A 55%,#081830 100%)!important;color:#fff!important;border:1px solid rgba(175,192,214,.35)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 4px 12px rgba(8,24,48,.18)!important}
#v2-contenu .bt:not(.clair):not(.contour):not(.fonce):not(.rond) svg{color:#fff}
#v2-contenu .bt.clair,#v2-contenu .bt.rond{background:#fff!important;background-image:none!important;color:#0F2A4A!important;border:1px solid #AFC0D6!important;box-shadow:inset 0 1px 0 #fff,0 3px 10px rgba(15,42,74,.10)!important}

@media (max-width:760px){
  /* pages de liste : plus rien ne dépasse à droite */
  .tuiles{grid-template-columns:minmax(0,1fr)!important}
  .tuiles>.tuile{min-width:0!important;max-width:100%}
  /* formulaires de recherche sur une colonne */
  .tuile form.rech{min-width:0!important;max-width:100%;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
  .tuile form.rech > label{grid-template-columns:118px minmax(0,1fr)!important;gap:10px;align-items:center}
  .tuile form.rech > label > .ch{width:100%!important;min-width:0!important;min-height:44px}
  .tuile form.rech .bts{display:flex;flex-wrap:wrap;gap:10px}
  .tuile form.rech .bts > *{flex:1 1 140px;min-height:44px;white-space:nowrap;font-size:13px!important;padding:0 8px!important;letter-spacing:0!important}

  /* tableaux : chaque ligne devient une carte (la classe tl-carte est posée par v2-ajustements.js) */
  #v2-contenu .tl-wrap{overflow:visible!important;max-height:none!important;height:auto!important}
  #v2-contenu table.tl-carte,#v2-contenu table.tl-carte tbody{display:block!important;width:100%!important;min-width:0!important;background:none!important;box-shadow:none!important;border:0!important}
  #v2-contenu table.tl-carte thead{display:block!important}
  #v2-contenu table.tl-carte thead tr{display:flex!important;background:none!important}
  #v2-contenu table.tl-carte thead th:not(.a1){display:none!important}
  #v2-contenu table.tl-carte thead th.a1{background:none!important;border:0!important;padding:0 0 6px 14px!important}
  #v2-contenu table.tl-carte tr.tl-tete{display:none!important}
  #v2-contenu table.tl-carte tbody tr{display:grid!important;grid-template-columns:minmax(0,1fr);align-items:center;gap:6px 10px;padding:10px 14px 12px!important;margin:0 0 10px!important;background:#fff!important;border:1px solid #DCE3EC!important;border-radius:14px!important;box-shadow:0 2px 8px rgba(15,42,74,.06)!important;height:auto!important}
  #v2-contenu table.tl-carte tbody td{display:grid!important;grid-template-columns:110px minmax(0,1fr);gap:10px;border:0!important;padding:0!important;min-width:0!important;max-width:none!important;width:auto!important;height:auto!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important;font-size:13.5px!important;text-align:left!important;background:none!important}
  #v2-contenu table.tl-carte tbody td + td{padding-top:6px!important;border-top:1px solid #EEF2F6!important}
  #v2-contenu table.tl-carte tbody td::before{content:attr(data-lib);color:#5B6B80;font-size:12px;font-weight:600}
  #v2-contenu table.tl-carte tbody td.tl-vide{display:none!important}
  /* tableaux avec case à cocher et bouton « … » : case, bouton et nom sur la 1re ligne */
  #v2-contenu table.tl-carte.tl-chk tbody tr{grid-template-columns:auto auto minmax(0,1fr)}
  #v2-contenu table.tl-carte.tl-chk tbody td:nth-child(-n+3){display:block!important;border-top:0!important;padding-top:0!important}
  #v2-contenu table.tl-carte.tl-chk tbody td:nth-child(-n+3)::before{content:none}
  #v2-contenu table.tl-carte.tl-chk tbody td:nth-child(3){font-weight:700;font-size:14.5px!important}
  #v2-contenu table.tl-carte.tl-chk tbody td:nth-child(n+4){grid-column:1/-1}
  /* tableau croisé (Suivi des statuts) : il défile dans son cadre, 1re colonne fixe */
  #v2-contenu table.tl.sts{display:block!important;overflow-x:auto!important;max-width:100%!important;-webkit-overflow-scrolling:touch;background:#fff!important;border-radius:12px}
  #v2-contenu table.tl.sts td:first-child,#v2-contenu table.tl.sts th:first-child{position:sticky;left:0;z-index:1;background:#fff}
  #v2-contenu th{font-size:12px!important}
  #v2-contenu .chk{width:22px!important;height:22px!important}
  #v2-contenu label.cc{min-width:44px;min-height:44px;display:inline-flex!important;align-items:center;justify-content:center}

  /* grilles à 2 colonnes (Pancarte, fiche chauffeur) : une seule colonne */
  #v2-contenu .pc-grille,#v2-contenu .cv-grille{grid-template-columns:minmax(0,1fr)!important}

  /* fiches (mission, dossier…) : libellé au-dessus du champ ; fiche chauffeur : en-tête qui revient à la ligne */
  #v2-contenu .fiche .l{grid-template-columns:minmax(0,1fr)!important;gap:4px!important}
  #v2-contenu .fiche .l > *{text-align:left!important;min-width:0!important;width:100%!important;max-width:none!important}
  #v2-contenu .cv-tete{flex-wrap:wrap!important}
  #v2-contenu .cv-id{min-width:0!important;flex:1 1 170px!important}
  #v2-contenu .cv-co{flex-wrap:wrap!important;row-gap:4px}
  /* le panneau caché à droite ne doit plus élargir la page */
  html,body{overflow-x:clip}

  /* iPhone : tout passe sous l'heure et la batterie (zone de la barre d'état) */
  header.v2-haut{padding-top:env(safe-area-inset-top,0px)!important;height:calc(60px + env(safe-area-inset-top,0px))!important;box-sizing:border-box!important}
  #v2-menu,#v2-pan{top:calc(60px + env(safe-area-inset-top,0px))!important}
  body.menu-ouvert #v2-voile{top:calc(60px + env(safe-area-inset-top,0px))!important}
  #v2-contenu{margin-top:env(safe-area-inset-top,0px)}
  #v2-retour{top:calc(72px + env(safe-area-inset-top,0px))!important}
  /* fenêtre du dossier : rien ne déborde, plus de glissement de droite à gauche */
  #v2-pan{overflow-x:hidden!important;max-width:100vw}
  #v2-pan .pan-in{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important;box-sizing:border-box}
  #v2-pan table{width:100%!important;max-width:100%!important;table-layout:fixed}
  #v2-pan td,#v2-pan th{overflow-wrap:anywhere;white-space:normal!important}
  #v2-pan .pan-in > *{max-width:100%;min-width:0;box-sizing:border-box}

  /* barres de dates (Relevé…) : retour à la ligne au lieu d'écraser les boutons */
  #v2-contenu .pl-jour{flex-wrap:wrap!important;gap:8px!important}
  #v2-contenu .pl-jour > *{flex:0 0 auto!important;min-width:0}
  #v2-contenu .pl-jour > b{flex:1 1 140px!important}

  /* liste des chauffeurs : une carte par chauffeur, contact en dessous du nom */
  #v2-contenu .chf-rang{grid-template-columns:36px minmax(0,1fr) 44px!important}
  #v2-contenu a.chf-li{grid-template-columns:44px minmax(0,1fr)!important;grid-auto-rows:auto;gap:2px 12px!important;overflow:visible!important;min-width:0!important;align-items:start!important;padding:10px 0!important}
  #v2-contenu a.chf-li > *{grid-column:2;min-width:0!important;width:auto!important;white-space:normal!important;overflow-wrap:break-word;font-size:13px}
  #v2-contenu a.chf-li > .chf-av{grid-column:1;grid-row:1 / span 6}
  #v2-contenu a.chf-li > .chf-nom{font-size:14.5px}
  #v2-contenu a.chf-li > .chf-ct{display:flex!important;flex-direction:column;color:#4A5A70}
  #v2-contenu a.chf-li > .chf-ct span{overflow-wrap:anywhere}
  #v2-contenu a.chf-li > .chf-ct span:last-child{font-size:12.5px}
  #v2-contenu a.chf-li > .chf-go{display:none!important}
  #v2-contenu .chf-tete{grid-template-columns:44px minmax(0,1fr)!important;overflow:hidden}
  #v2-contenu .chf-tete > span:nth-child(n+3){display:none!important}

  /* Planning visuel : en colonne sous l'en-tête (il couvrait l'en-tête et le bouton Retour) */
  #v2-contenu .vl{top:calc(60px + env(safe-area-inset-top,0px))!important;bottom:0!important;height:auto!important;overflow-y:auto!important;align-content:start;grid-template-columns:112px minmax(0,1fr)!important;grid-template-rows:auto!important;grid-template-areas:none!important}
  body:where(.sdflp-3):not(#sdflh-z):not(.sdflh-z) #v2-retour{display:none!important}
  #v2-contenu .vl-filtre{grid-column:1/-1!important;grid-row:1!important;height:auto!important;width:auto!important}
  #v2-contenu .vl-actions{grid-column:1/-1!important;grid-row:2!important;height:auto!important;width:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;padding:10px!important}
  #v2-contenu .vl-actions > *{width:100%!important;min-width:0!important;max-width:none!important;min-height:44px;margin:0!important}
  #v2-contenu .vl-actions > .bt.rond{width:44px!important;height:44px!important;justify-self:center}
  #v2-contenu .vl-actions > .jauge{grid-column:1/-1}
  #v2-contenu .vl-coin{grid-column:1!important;grid-row:3!important;width:auto!important}
  #v2-contenu .vl-echelle{grid-column:2!important;grid-row:3!important}
  #v2-contenu .vl-noms{grid-column:1!important;grid-row:4!important;width:auto!important}
  #v2-contenu .vl-grille{grid-column:2!important;grid-row:4!important}
  #v2-contenu .vl-pile{grid-column:1/-1!important;grid-row:5!important;width:auto!important;height:auto!important}
}
/* titres de page lisibles sur le fond bleu nuit (thème par défaut) */
:root:not([data-theme]) #v2-contenu .v2-titre{color:#fff!important}
/* iPhone tenu à l'horizontale : l'en-tête et le menu évitent l'encoche */
@media (orientation:landscape) and (max-height:500px){header.v2-haut{padding-left:max(18px,env(safe-area-inset-left,0px))!important;padding-right:max(18px,env(safe-area-inset-right,0px))!important}#v2-contenu{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}}

/* ===== v2-correctifs-2110.css ===== */
/* 21/10/2026 (Hassan) : correctifs d'affichage SD ONE après l'audit du 21/10 (téléphone, tablette, ordinateur).
   Chargé EN DERNIER, après v2-mobile2.css. Mise en page seulement : aucune fonction, aucun bouton, aucun texte retiré.
   Charte : bleu nuit #0F2A4A / #081830, bleu #1E5AA8, argent #AFC0D6 / #C4D3E6, blanc. Cibles tactiles ≥ 44 px. */

/* ===================== Partout ===================== */
/* Connexion : « Mot de passe » ne colle plus au champ Identifiant */
.cx-l + .cx-l{margin-top:10px}
/* Statistiques : les cartes de rapports ne dépassent plus à droite sur un écran étroit (360 px) */
.rapports{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr))}
/* Bouton Retour : plus de quadrillage (comme les autres boutons) */
#v2-retour{background:linear-gradient(180deg,#FFFFFF,#E6EDF6)!important}
/* Impression / PDF (statistiques…) : le bouton Retour n'est plus imprimé par-dessus le chiffre d'affaires */
@media print{.v2-retour,#v2-retour{display:none!important}}

/* ===================== Ordinateur et tablette (761 px et plus) ===================== */
@media (min-width:761px){
  /* Planning visuel : il commence sous l'en-tête (la barre d'outils n'est plus cachée dessous) */
  #v2-contenu .vl{top:var(--haut,72px)}
  body[data-vue="graphique"] #v2-retour,body:where(.sdflp-3):not(#sdflh-z):not(.sdflh-z) #v2-retour{display:none!important}
  /* Suivi des statuts : tableau sur fond blanc (une ligne sur deux était bleu nuit sur bleu nuit) */
  #v2-contenu table.tl.sts{background:#fff;border-radius:12px}
  /* Suivi des statuts et Planning de la semaine : le tableau défile dans son cadre au lieu d'élargir la page */
  #v2-contenu #sts,#v2-contenu #se{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
}
/* Accueil (ordinateur, 1101 px et plus : en dessous les graphiques sont déjà l'un sous l'autre) :
   les deux graphiques à parts égales (les mois du 1er graphique étaient écrits en 7 à 9 px) */
@media (min-width:1101px){
  .graphes{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}

/* ===================== Tablette et téléphone à l'horizontale (761 à 1200 px) ===================== */
/* les sous-menus (Missions, Clients…) s'affichent enfin : la barre de menu ne les coupe plus.
   La classe v2-menu-tient est posée par v2-ajustements.js seulement quand toutes les rubriques tiennent sur la ligne
   (sinon la barre garde son défilement de côté, comme avant). */
@media (min-width:761px) and (max-width:1200px){
  html.v2-menu-tient #v2-menu{overflow:visible!important}
}
/* petite tablette : rubriques un peu plus serrées pour qu'elles tiennent toutes sur la ligne */
@media (min-width:761px) and (max-width:900px){
  .v2-menu > .v2-grp:not(.v2-engr) > .v2-m1{padding:0 5px}
}

/* ===================== Tablette (761 à 1100 px) ===================== */
@media (min-width:761px) and (max-width:1100px){
  /* En-tête : l'horloge ne rétrécit plus, le bouton Calendrier reste visible et cliquable.
     La date du jour reste affichée dans le pied de page. */
  .v2-horloge{flex:0 0 auto;gap:6px;padding:4px 6px 4px 12px}
  .v2-jd{display:none}
  /* les secondes sont masquées comme sur téléphone (l'heure reste) ; logo un peu plus petit :
     la Recherche garde ainsi une largeur utile */
  .v2-hm span{display:none}
  header.v2-haut{gap:10px}
  #v2-marque{gap:8px}
  .v2-marque img.sd-one.sd-one-ecriture{height:36px}
  .v2-recherche{min-width:0;flex:1 1 160px}
  .v2-recherche input{padding-right:40px}
}

/* Petite tablette (761 à 1000 px) : le tableau du Planning défile dans son cadre au lieu d'élargir la page
   (au-delà de 1000 px il tient déjà, et son en-tête reste collé en haut) */
@media (min-width:761px) and (max-width:1000px){
  #v2-contenu .pl-centre{min-width:0;overflow-x:auto}
}

/* ===================== Téléphone (760 px et moins) ===================== */
@media (max-width:760px){
  /* l'encoche n'est plus comptée deux fois au-dessus du contenu (--haut la contient déjà) */
  #v2-contenu{margin-top:0}

  /* --- Planning visuel --- */
  #v2-contenu .vl-grille,#v2-contenu .vl-noms{min-height:280px}
  #v2-contenu .vl-pile{overflow:visible!important}
  #v2-contenu .vl-pile>*{flex-shrink:0}
  #v2-contenu .vl-pile select.ch,#v2-contenu #vp-f{min-height:44px}
  /* noms de chauffeurs longs : à la ligne, 3 lignes au plus, plus rien ne déborde sur la grille */
  #v2-contenu .vl-noms .n b{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:10.5px;line-height:1.15}

  /* --- Suivi des statuts : « Jour » et « Mois » lisibles (blanc sur blanc), chiffres touchables au doigt --- */
  #v2-contenu table.tl.sts th:first-child{color:#0F2A4A!important}
  #v2-contenu table.tl.sts td a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
  #v2-contenu table.tl.sts td:first-child a{justify-content:flex-start}

  /* --- Statistiques : nom de la période en entier (« octobre 2026 ») --- */
  .sx-barre .sx-lib{flex:1 1 calc(100% - 110px);white-space:normal;line-height:1.2}

  /* --- Planning : pastilles vol / train et lien « archive » touchables --- */
  #v2-contenu .iti2 button.puce.vol,#v2-contenu .iti2 button.puce.train,#v2-contenu .puce.vol{min-height:44px!important;margin:4px 0!important;white-space:normal!important;max-width:100%}
  #v2-contenu .c-chf .arch{display:inline-flex;align-items:center;min-height:44px}
  /* étiquettes d'avancement : un peu d'air sous la barre, texte un peu plus grand */
  .trx i{margin-bottom:4px}
  .trx div{font-size:9.5px}
  /* tri par date : le bouton « Date ▲/▼ » reste disponible au téléphone */
  #v2-contenu .tm thead{display:block!important}
  #v2-contenu .tm thead tr{display:flex!important;justify-content:flex-end;margin-bottom:8px}
  #v2-contenu .tm thead th{display:none!important}
  #v2-contenu .tm thead th#tm-tri{display:inline-flex!important;align-items:center;min-height:44px;padding:0 16px;border-radius:12px;background:#fff;color:#0F2A4A;cursor:pointer;position:static}

  /* --- Tableaux en cartes : plusieurs éléments dans une case restent à droite du libellé (ex. « Avoir ») --- */
  #v2-contenu table.tl-carte tbody td > *{grid-column:2}
  #v2-contenu table.tl-carte.tl-chk tbody td:nth-child(-n+3) > *{grid-column:auto}
  /* Factures et devis : la consigne de recherche en entier */
  #v2-contenu .fa-barre #fa-q{flex:1 1 100%;width:100%;min-width:0}
  /* Liste des chauffeurs : case à cocher de 44 px */
  #v2-contenu .chf-rang{grid-template-columns:44px minmax(0,1fr) 44px!important}

  /* --- Champs en 16 px : l'iPhone ne zoome plus à chaque appui --- */
  .ch,input.ch,select.ch,textarea.ch,#v2-pan select,.fen input,.fen select,.fen textarea,.ed input,.ed select,.ed textarea{font-size:16px!important}

  /* --- Panneau de la course --- */
  /* l'en-tête et la croix restent en haut quand on fait défiler (clip au lieu de hidden) */
  #v2-pan .pan-in{overflow-x:clip!important}
  /* grands tableaux (Valorisation, 5 colonnes et plus) : ils défilent dans leur cadre, plus de mots coupés lettre par lettre */
  #v2-pan table.mini-t:has(tr > :nth-child(5)){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  #v2-pan table.mini-t:has(tr > :nth-child(5)) > tbody{display:table;min-width:560px;table-layout:auto}
  #v2-pan table.mini-t:has(tr > :nth-child(5)) td,#v2-pan table.mini-t:has(tr > :nth-child(5)) th{overflow-wrap:normal!important}
  #v2-pan table.mini-t:has(tr > :nth-child(5)) > caption{display:block}
  /* tableau « Suivi » (4 cases par ligne) : libellé puis valeur, deux par deux */
  #v2-pan table.mini-t:has(tr > :nth-child(4)):not(:has(tr > :nth-child(5))) tr{display:grid;grid-template-columns:40% 60%}

  /* --- Fenêtres d'édition (.ed) --- */
  /* la fenêtre reste entre la barre d'état (heure, batterie) et la barre d'accueil de l'iPhone */
  .ed{max-height:calc(94vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(94dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
  /* Statut de la mission : 2 colonnes (la 3e était hors de l'écran : Reçue, À bord, No show) */
  .ed .codes{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ed .codes .stx{white-space:normal}
  /* Véhicule, Date et heures… : une colonne, plus aucun champ coupé à droite */
  .ed .grille{grid-template-columns:minmax(0,1fr)!important}
  /* Enregistrer / Annuler toujours visibles en bas de la fenêtre */
  .ed .pied{position:sticky;bottom:-16px;background:#fff;padding:10px 0 12px;margin-bottom:-16px;z-index:3;border-top:1px solid var(--trait,#DCE3EC)}
  /* croix de fermeture : 44 px de large (elle était écrasée à 27 px) */
  .ed .x{flex:0 0 44px}
  /* Itinéraire : l'heure de départ en entier (« 09:30 » et non « 09: ») */
  .ed .wy-h{min-width:96px}

  /* --- Fenêtres (.fen) : Tarif de la mission, Création d'un dossier --- */
  .fen .g{grid-template-columns:minmax(0,1fr)!important}
  .fen .g>label{min-width:0}
  .fen .g .ch{width:100%;box-sizing:border-box}

  /* --- Barre « Actions groupées » : une ligne en bas de l'écran qui défile de côté --- */
  .v2-groupe{left:8px;right:8px;max-width:none;transform:translateY(160%);flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}
  .v2-groupe.ouvert{transform:none}
  .v2-groupe>*{flex:0 0 auto}
}

/* ===================== Téléphone tenu à l'horizontale ===================== */
@media (orientation:landscape) and (max-height:500px) and (min-width:761px){
  /* la liste s'arrête au-dessus du pied de page et de la barre d'accueil ; le reste défile dans la liste */
  .v2-m2{max-height:calc(100vh - var(--haut) - var(--barre) - var(--pied) - env(safe-area-inset-bottom,0px) - 12px)}
  /* menu, pied de page et bouton Retour évitent l'encoche et la barre d'accueil */
  #v2-menu{padding-left:max(6px,env(safe-area-inset-left,0px))!important;padding-right:max(6px,env(safe-area-inset-right,0px))!important}
  .v2-pied{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));height:calc(var(--pied) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  .v2-retour,#v2-retour{left:max(20px,env(safe-area-inset-left,0px))}
  /* consigne de recherche lisible dans un champ étroit */
  #v2-q::placeholder{font-size:12px}
}

/* 21/10 v2 : panneau d'actions du dossier visible au téléphone et sur tablette (pro forma, devis, e-mail…), essayé par verif-p1 */
@media (max-width:1100px){.pl-corps:has(#ds-a){flex-wrap:wrap}.pl-corps #ds-a.pl-actions{display:flex;flex:1 1 100%;width:auto;min-width:0;box-sizing:border-box;position:static;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:14px}.pl-corps #ds-a.pl-actions .bt{width:auto;min-height:44px}.pl-corps #ds-a.pl-actions h6.grp{flex-basis:100%}}
/* Planning RH : flèches ‹ › à 44 px */
.chx-nav button{min-width:44px}
/* 22/10 : champs de date et d'heure du Planning à 44 px (ordinateur) */
#pl-du,#pl-hd,#pl-dos,#pl-mis,#pl-au,#pl-hf{min-height:44px}

/* ===== v2-connexion2.css ===== */
/* v2-connexion2.css — 21/10/2026 soir (PHASE3 p3-connexion, décisions d'Hassan)
   Page de connexion UNIQUE de SD ONE : fond bleu nuit + CARTE DU MONDE (Paris au centre, liaisons lumineuses),
   heure + date centrés au-dessus du cadre, logo SD ONE bleu en haut du cadre blanc, pas de « SAHN DRIVE ⇆ Changer » ni de bandeau sur cette page.
   Tout est rangé sous body.cx-ouvert : dès que la connexion est faite (classe retirée par route()), plus rien ne s'applique.
   Couleurs : bleu nuit #081830 / #0F2A4A, bleu #1E5AA8, bleu lumière #4E8EE0 / #7DB4FF, argent #AFC0D6 / #C4D3E6, blanc. Jamais de doré. */

/* ---------- la page : rien d'autre que la connexion ---------- */
body.cx-ouvert{background:#081830!important}
body.cx-ouvert .v2-haut,body.cx-ouvert .v2-menu,body.cx-ouvert .v2-pied,body.cx-ouvert .v2-filaments,
body.cx-ouvert #v2-retour,body.cx-ouvert #sdx-esp-pill,body.cx-ouvert #v2-voile,body.cx-ouvert .v2-groupe{display:none!important}
body.cx-ouvert .v2-contenu,body.cx-ouvert .v2-retour + .v2-contenu{padding:calc(env(safe-area-inset-top,0px) + 22px) 16px calc(env(safe-area-inset-bottom,0px) + 22px)!important;min-height:100vh;min-height:100dvh;box-sizing:border-box}
body:not(.cx-ouvert) #cx-fond{display:none!important}
body.cx-ouvert::before,body.cx-ouvert::after{display:none!important} /* vaguelettes du thème : masquées ici seulement */

/* ---------- le fond : carte du monde ---------- */
#cx-fond{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:radial-gradient(90% 60% at 50% 28%,#16407a 0%,#0c2550 46%,#081830 78%,#061229 100%)}
#cx-fond .cxf-carte{position:absolute;left:50%;top:max(110px,13vh);width:max(112vw,130vh);aspect-ratio:1000/501;transform:translate(calc(-1 * var(--px,50%)),calc(-1 * var(--py,34%)));
  animation:cxfDerive 60s ease-in-out infinite alternate}
#cx-fond .cxf-terre{position:absolute;inset:0;opacity:.30;
  background:linear-gradient(180deg,#C4D3E6 0%,#AFC0D6 40%,#7D93B2 100%);
  -webkit-mask:url(carte-monde-vraie.svg) 0 0/100% 100% no-repeat;mask:url(carte-monde-vraie.svg) 0 0/100% 100% no-repeat}
#cx-fond .cxf-carte::before{content:"";position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(175,192,214,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(175,192,214,.07) 1px,transparent 1px);background-size:4.1667% 8.3%}
#cx-fond svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#cx-fond .cxf-arc{fill:none;stroke:rgba(196,211,230,.30);stroke-width:.9;vector-effect:non-scaling-stroke}
#cx-fond .cxf-fil{fill:none;stroke:#9CC7FF;stroke-width:2.2;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:7 140;stroke-dashoffset:7;opacity:0;
  filter:drop-shadow(0 0 4px rgba(78,142,224,.9));animation:cxfFil 9s linear infinite}
#cx-fond .cxf-ville{fill:#E6EEF7;opacity:.55;animation:cxfVille 3.2s ease-in-out infinite}
#cx-fond .cxf-paris{fill:#fff}
#cx-fond .cxf-halo{transform-box:fill-box;transform-origin:center;animation:cxfHalo 3.6s ease-in-out infinite}
#cx-fond .cxf-onde{fill:none;stroke:#7DB4FF;stroke-width:1.2;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:cxfOnde 3s ease-out infinite}
/* plaques de quadrillage tournées, dans les coins */
#cx-fond .cxf-plaque{position:absolute;width:300px;height:200px;opacity:.55;
  background-image:linear-gradient(rgba(175,192,214,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(175,192,214,.10) 1px,transparent 1px);background-size:14px 14px;
  -webkit-mask:radial-gradient(closest-side,#000 40%,transparent);mask:radial-gradient(closest-side,#000 40%,transparent)}
#cx-fond .p1{left:-60px;top:-30px;transform:rotate(18deg)}
#cx-fond .p2{right:-70px;top:12vh;transform:rotate(-24deg)}
#cx-fond .p3{left:-80px;bottom:6vh;transform:rotate(-12deg)}
#cx-fond .p4{right:-50px;bottom:-40px;transform:rotate(30deg)}
/* grand reflet qui traverse lentement + poussière argentée */
#cx-fond .cxf-reflet{position:absolute;top:-20%;bottom:-20%;width:34vw;left:-40vw;transform:skewX(-18deg);
  background:linear-gradient(90deg,rgba(196,211,230,0),rgba(196,211,230,.07),rgba(196,211,230,0));animation:cxfReflet 14s ease-in-out 1.5s infinite}
#cx-fond .cxf-poussiere{position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(1px 1px at 12% 22%,#C4D3E6,transparent),radial-gradient(1px 1px at 78% 14%,#C4D3E6,transparent),radial-gradient(1.4px 1.4px at 64% 72%,#E6EEF7,transparent),
  radial-gradient(1px 1px at 30% 84%,#AFC0D6,transparent),radial-gradient(1px 1px at 88% 58%,#C4D3E6,transparent),radial-gradient(1.3px 1.3px at 44% 40%,#E6EEF7,transparent),
  radial-gradient(1px 1px at 6% 62%,#AFC0D6,transparent),radial-gradient(1px 1px at 52% 8%,#C4D3E6,transparent),radial-gradient(1px 1px at 94% 90%,#AFC0D6,transparent);
  animation:cxfPoussiere 7s ease-in-out infinite alternate}
@keyframes cxfFil{0%{stroke-dashoffset:7;opacity:0}4%{opacity:1}30%{stroke-dashoffset:-100;opacity:1}33%,100%{stroke-dashoffset:-100;opacity:0}}
@keyframes cxfVille{50%{opacity:1}}
@keyframes cxfHalo{50%{transform:scale(1.25);opacity:.85}}
@keyframes cxfOnde{0%{transform:scale(1);opacity:.8}100%{transform:scale(7);opacity:0}}
@keyframes cxfReflet{0%{left:-40vw}60%,100%{left:120vw}}
@keyframes cxfPoussiere{to{opacity:.85;transform:translateY(-6px)}}
@keyframes cxfDerive{to{margin-left:-2vw}}
@media (max-width:760px){#cx-fond .cxf-carte{top:calc(env(safe-area-inset-top,0px) + 96px)}} /* téléphone : Paris derrière l'heure, pas sur la date */

/* ---------- le contenu ---------- */
body.cx-ouvert .cx.cx-u{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:20px;padding:0;min-height:calc(100vh - 44px);min-height:calc(100dvh - 44px)}
.cx-u .cx-hero{display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff;gap:6px;margin-top:max(5vh,14px)}
.cx-u .cx-logo{display:block;width:min(64vw,250px);height:auto;filter:drop-shadow(0 4px 18px rgba(3,10,24,.55))}
.cx-u .cx-heure{display:flex;align-items:flex-start;justify-content:center;gap:4px;margin-top:0;font-family:Montserrat,var(--titre),system-ui,sans-serif;line-height:1;
  text-shadow:0 2px 16px rgba(3,10,24,.6),0 0 26px rgba(78,142,224,.35)}
.cx-u .cx-heure b{font-weight:600;font-size:clamp(46px,13vw,64px);letter-spacing:.02em;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#FFFFFF 0%,#E6EEF7 55%,#AFC0D6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.cx-u .cx-heure span{font-weight:600;font-size:15px;color:#AFC0D6;margin-top:6px;font-variant-numeric:tabular-nums;min-width:2ch;text-align:left}
.cx-u .cx-date{font-family:Manrope,var(--police),system-ui,sans-serif;font-weight:600;font-size:15px;letter-spacing:.04em;color:#C4D3E6;white-space:nowrap}

/* la carte de connexion : blanche, liseré lumineux en haut, halo bleu */
.cx-u .cx-carte{width:min(420px,100%);border-radius:24px;border:1px solid rgba(196,211,230,.7);background:linear-gradient(180deg,#FFFFFF 0%,#F4F7FB 100%);
  box-shadow:0 2px 6px rgba(3,10,24,.25),0 30px 70px rgba(3,10,24,.55),0 0 0 6px rgba(196,211,230,.07),0 0 60px rgba(78,142,224,.18)}
.cx-u .cx-carte::before{content:"";position:absolute;left:10%;right:10%;top:0;height:2px;z-index:2;border-radius:2px;background:linear-gradient(90deg,rgba(78,142,224,0),#7DB4FF,rgba(78,142,224,0))}
.cx-u .cx-carte .cx-marque{display:flex;justify-content:center;margin:0 0 2px} /* retour d'Hassan : logo bleu simple DANS le cadre, en haut */
.cx-u .cx-carte .cx-marque img.sd-one-ecriture{height:58px;margin:0}
.cx-u .cx-in{padding:24px 24px 30px;gap:10px}
.cx-u h1{margin:0;font-family:Montserrat,var(--titre),sans-serif;font-size:22px;color:#0F2A4A;text-align:center}
.cx-u .cx-sous{margin:-4px 0 6px;font-size:13.5px;line-height:1.45;color:#4F6177;text-align:center}
.cx-u .cx-r{font-size:13.5px}
/* boutons brillants (jamais transparents) : liseré lumineux, reflet qui passe, halo au survol */
.cx-u .cx-go{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.35);color:#fff;font-family:Montserrat,sans-serif;font-weight:700;letter-spacing:.02em;
  background:linear-gradient(180deg,#2B6CC0 0%,#1E5AA8 48%,#163A63 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 8px 20px rgba(15,42,74,.32)}
.cx-u .cx-go::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px);background-size:9px 9px;transition:background-position .6s ease}
.cx-u .cx-go:hover::before,.cx-u .cx-go:focus-visible::before{background-position:9px 9px}
.cx-u .cx-go::after{content:"";position:absolute;top:-20%;bottom:-20%;width:28%;left:-40%;transform:skewX(-18deg);pointer-events:none;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));animation:cxBtReflet 5.5s ease-in-out 1.2s infinite}
.cx-u .cx-go:hover,.cx-u .cx-go:focus-visible{box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 0 3px rgba(78,142,224,.30),0 10px 26px rgba(30,90,168,.45);outline:0}
.cx-u .cx-go:disabled{filter:saturate(.6) brightness(.95)}
.cx-u .cx-bio{background:linear-gradient(180deg,#FFFFFF,#EEF3F9);border:1px solid #C4D3E6;color:#0F2A4A;box-shadow:inset 0 1px 0 #fff,0 3px 10px rgba(15,42,74,.10)}
.cx-u .cx-liens{gap:0 12px}
.cx-u .cx-lien{white-space:nowrap;min-height:44px!important;display:inline-flex;align-items:center}
@keyframes cxBtReflet{0%{left:-40%}35%,100%{left:130%}}

/* pied : « Un service de SAHN DRIVE SAS » (+ « Réactiver l'intro » si elle est coupée) */
.cx-u .cx-bas{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 16px;margin-top:auto;padding-top:6px}
.cx-u .cx-bas a,.cx-u .cx-bas .cx-lien{display:inline-flex;align-items:center;min-height:44px;color:#AFC0D6;font:600 12.5px Manrope,system-ui,sans-serif;text-decoration:none;letter-spacing:.03em}
.cx-u .cx-bas a:hover,.cx-u .cx-bas .cx-lien:hover{color:#fff}

/* verrou Face ID / empreinte : la carte du monde reste visible derrière */
body.cx-ouvert .v2-contenu > .charge{visibility:hidden}
body.cx-ouvert .cx-verrou{background:linear-gradient(180deg,rgba(8,24,48,.30),rgba(6,18,41,.55));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}

/* ordinateur : un peu plus grand, toujours centré */
@media (min-width:761px){
  .cx-u .cx-logo{width:280px}
  .cx-u .cx-heure b{font-size:68px}
  .cx-u .cx-date{font-size:16px}
  body.cx-ouvert .cx.cx-u{gap:22px}
}
/* petits écrans en hauteur (ordinateur portable, téléphone couché) */
@media (max-height:700px) and (min-width:761px){.cx-u .cx-logo{width:220px}.cx-u .cx-heure b{font-size:52px}.cx-u .cx-hero{margin-top:0}}
@media (max-width:360px){.cx-u .cx-in{padding:20px 16px 26px}.cx-u .cx-date{font-size:14px}}

/* mouvement réduit : tout est figé */
@media (prefers-reduced-motion:reduce){
  #cx-fond *,#cx-fond .cxf-carte,.cx-u .cx-go::after{animation:none!important}
  #cx-fond .cxf-fil{opacity:0}
}

/* 22/10/2026 (Hassan : « les avions qui vont partout ») : trajets lumineux et lignes de vol masqués ; le reste de la carte est inchangé */
#cx-fond .cxf-fil,#cx-fond .cxf-arc{display:none!important}

/* 22/10/2026 (Hassan : « l horloge est trop grosse, elle fait descendre les messages du bas ») : horloge plus petite */
.cx-u .cx-heure b{font-size:clamp(34px,10vw,46px)!important}
.cx-u .cx-heure span{font-size:13px;margin-top:4px}
.cx-u .cx-hero{margin-top:max(2vh,8px)}
@media (min-width:761px){.cx-u .cx-heure b{font-size:50px!important}}
@media (max-height:700px) and (min-width:761px){.cx-u .cx-heure b{font-size:40px!important}}

/* ===== v2-wp2b.css ===== */
/* SD ONE — 21/10/2026, PHASE3 p3-p2b : écrans « Listes de référence », « Contacts et passagers », « Entité commerciale » (v2-wp2b.js).
   Charte : bleu nuit #0F2A4A / #081830, bleu #1E5AA8, argent #AFC0D6 / #C4D3E6, blanc. Zones cliquables de 44 px, téléphone d'abord. */
.wp2b{background:#fff;color:#0F2A4A;border:1px solid #C4D3E6;border-radius:14px;padding:14px;box-shadow:0 4px 14px rgba(8,24,48,.10);min-width:0;max-width:100%}
.wp2b .lib,.wp2b b,.wp2b h2{color:#0F2A4A}
.wp2b-h{font-family:var(--titre,Montserrat,sans-serif);font-size:16px;font-weight:800;margin:0;color:#0F2A4A}
.wp2b-onglets{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.wp2b-on{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid #C4D3E6;background:#F3F6FA;color:#0F2A4A;text-decoration:none;font-weight:700;font-size:13px}
.wp2b-on.on{background:#0F2A4A;border-color:#0F2A4A;color:#fff}
.wp2b-on:focus-visible,.wp2b-case input:focus-visible{outline:3px solid #1E5AA8;outline-offset:2px}
.wp2b-barre{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:6px 0 10px}
.wp2b-barre .wp2b-h{margin-right:auto}
.wp2b-bts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.wp2b-bts .bt{min-height:44px}
.wp2b-fin{justify-content:flex-end;margin-top:14px}
.wp2b-defile{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.wp2b-t{min-width:640px}
.wp2b-t td{vertical-align:middle}
.wp2b-t .n{text-align:right}
.wp2b-act{white-space:nowrap}
.wp2b-act .bt+.bt{margin-left:6px}
.wp2b-masque td{color:#6A7C93;background:#F7F9FB}
.wp2b-pt{display:inline-block;padding:2px 8px;border-radius:10px;background:#E8EEF6;color:#0F2A4A;font-size:11px;font-weight:700;margin-left:4px}
.wp2b-coul{display:inline-block;width:18px;height:18px;border-radius:5px;border:1px solid #AFC0D6;vertical-align:middle;margin-right:6px}
.wp2b-case{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;color:#0F2A4A}
.wp2b-case input{width:20px;height:20px;accent-color:#1E5AA8}
.wp2b-cases{display:flex;flex-wrap:wrap;gap:4px 18px}
.wp2b-imp{background:#EEF3FA;border:1px solid #C4D3E6;border-radius:12px;padding:10px 12px;margin:0 0 12px;color:#0F2A4A}
.wp2b-imp ul{margin:6px 0;padding-left:20px}
.wp2b-ok{background:#EEF6F1;border:1px solid #B7D5C3;border-radius:12px;padding:10px 12px;margin:0 0 12px;color:#14472B}
.wp2b-ko{color:#9B1C1C;font-weight:700}
.wp2b-vide{color:#4F6478;margin:10px 0}
.wp2b-rech{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;align-items:end;margin:0 0 10px}
.wp2b-l{display:flex;flex-direction:column;min-width:0}
.wp2b-l .ch{width:100%;min-height:44px}
.wp2b-massif{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.wp2b-attente{font-size:12px;font-weight:700;color:#4F6478;background:#F3F6FA;border:1px dashed #AFC0D6;border-radius:10px;padding:6px 10px}
.wp2b-sel{width:44px;text-align:center}
.wp2b-sel input{width:20px;height:20px;accent-color:#1E5AA8}
.wp2b-pag{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.wp2b-pag span{margin-right:auto}
.wp2b-cache{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wp2b-sec{border-top:1px solid #E1E8F1;padding-top:12px;margin-top:12px}
.wp2b-sec:first-of-type{border-top:0;margin-top:0}
.wp2b-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.wp2b-g .l2{grid-column:span 2}.wp2b-g .l3{grid-column:1/-1}
.wp2b-g label{display:flex;flex-direction:column;min-width:0}
.wp2b-g .ch{width:100%}
.wp2b-logo{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:8px}
.wp2b-logo-v{min-height:70px;min-width:200px;max-width:100%;display:flex;align-items:center;justify-content:center;border:1px dashed #AFC0D6;border-radius:12px;padding:8px;background:#F7F9FB;color:#4F6478;font-size:12px}
.wp2b-logo-v img{max-height:60px;max-width:240px;display:block}
.wp2b-journal{margin-top:12px;font-size:12px;color:#4F6478}
.wp2b-journal summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700;color:#0F2A4A}
.wp2b-fixe{margin:0;color:#0F2A4A}
.wp2b-lien{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.wp2b-lien p{margin:0;margin-right:auto;font-size:12px;color:#4F6478}
.wp2b-lien .bt{text-decoration:none}
.fen .wp2b-c{padding:4px;height:44px;width:100%}
@media (max-width:760px){
  .wp2b{padding:10px;border-radius:12px}
  .wp2b-g{grid-template-columns:minmax(0,1fr)}
  .wp2b-g .l2,.wp2b-g .l3{grid-column:auto}
  .wp2b-barre .wp2b-h{flex:1 1 100%}
  .wp2b-bts .bt{flex:1 1 auto;justify-content:center}
  .wp2b-on{flex:1 1 calc(50% - 8px);justify-content:center;text-align:center}
}

/* ===== v2-wp2a.css ===== */
/* SD ONE — 22/10/2026, PHASE4 p4-p2a : « Règlements clients », « Bons de commission et paiements fournisseurs », « Alertes et tâches »,
   « Journal des modifications » (v2-wp2a.js). Charte : bleu nuit #0F2A4A / #081830, bleu #1E5AA8, argent #AFC0D6 / #C4D3E6, blanc.
   Zones cliquables de 44 px, téléphone d'abord, aucun mot coupé. */
.wp2a{background:#fff;color:#0F2A4A;border:1px solid #C4D3E6;border-radius:14px;padding:14px;box-shadow:0 4px 14px rgba(8,24,48,.10);min-width:0;max-width:100%;overflow-wrap:normal;word-break:normal;hyphens:manual}
.wp2a .lib,.wp2a b,.wp2a h2,.wp2a h3{color:#0F2A4A}
.wp2a-h{font-family:var(--titre,Montserrat,sans-serif);font-size:16px;font-weight:800;margin:0;color:#0F2A4A}
.wp2a-h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;margin:12px 0 6px;color:#0F2A4A}
.wp2a-onglets{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.wp2a-on{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid #C4D3E6;background:#F3F6FA;color:#0F2A4A;text-decoration:none;font-weight:700;font-size:13px}
.wp2a-on.on{background:#0F2A4A;border-color:#0F2A4A;color:#fff}
.wp2a-on:focus-visible,.wp2a-f:focus-visible,.wp2a-case input:focus-visible{outline:3px solid #1E5AA8;outline-offset:2px}
.wp2a-barre{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin:6px 0 10px}
.wp2a-barre .wp2a-h{margin-right:auto;align-self:center}
.wp2a-barre .wp2a-bts{margin-left:auto}
.wp2a-bts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wp2a-bts .bt,.wp2a-barre>.bt{min-height:44px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.wp2a-filtres{display:flex;flex-wrap:wrap;gap:6px}
.wp2a-f{min-height:44px;padding:0 12px;border-radius:22px;border:1px solid #C4D3E6;background:#F3F6FA;color:#0F2A4A;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}
.wp2a-f.on{background:#1E5AA8;border-color:#1E5AA8;color:#fff}
.wp2a-l{display:flex;flex-direction:column;min-width:0;flex:1 1 220px}
.wp2a-l .ch{width:100%;min-height:44px}
.wp2a-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}
.wp2a-kpis>div{border:1px solid #C4D3E6;border-radius:12px;padding:10px 12px;background:#F7F9FB;display:flex;flex-direction:column;gap:2px;min-width:0}
.wp2a-kpis span{font-size:12px;color:#4F6478;font-weight:700}
.wp2a-kpis b{font-size:20px;font-weight:800;color:#0F2A4A;white-space:nowrap}
.wp2a-kpis small{font-size:12px;color:#4F6478}
.wp2a-kpis .ko b{color:#9B1C1C}
.wp2a-defile{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.wp2a-t{min-width:720px}
.wp2a-t td{vertical-align:middle}
.wp2a-t .n{text-align:right;white-space:nowrap}
.wp2a-t th{white-space:nowrap}
.wp2a-tot th{background:#EEF3FA}
.wp2a-act{white-space:nowrap}
.wp2a-act .bt+.bt{margin-left:6px}
.wp2a-act .bt,.wp2a-liste .bt{min-height:44px}
.wp2a-masque td,.wp2a-masque{color:#6A7C93;background:#F7F9FB}
.wp2a-masque td{text-decoration:line-through;text-decoration-color:#AFC0D6}
.wp2a-masque td.wp2a-act,.wp2a-masque td:last-child{text-decoration:none}
.wp2a-retard td{background:#FDF3F3}
.wp2a-chg td{background:#EEF3FA;font-weight:700}
.wp2a-pt{display:inline-block;padding:3px 9px;border-radius:10px;background:#E8EEF6;color:#0F2A4A;font-size:11px;font-weight:800;margin:0 4px 0 0;white-space:nowrap}
.wp2a-pt.ok{background:#E3F1E8;color:#14472B}
.wp2a-pt.ko{background:#FBE4E4;color:#8A1C1C}
.wp2a-pt.am{background:#FFF1DC;color:#7A4300}
.wp2a-pt.bl{background:#E3ECF8;color:#123E78}
.wp2a-pt.gris{background:#EEF1F5;color:#4F6478}
.wp2a-gris{color:#4F6478}
.wp2a-case{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;color:#0F2A4A}
.wp2a-case input{width:20px;height:20px;accent-color:#1E5AA8}
.wp2a-vide{color:#4F6478;margin:10px 0}
.wp2a-ok{background:#EEF6F1;border:1px solid #B7D5C3;border-radius:12px;padding:10px 12px;margin:0 0 12px;color:#14472B}
.wp2a-msg{color:#9B1C1C;font-weight:700;min-height:1.2em;margin-top:6px}
.wp2a-fixe{margin:0 0 10px;color:#0F2A4A;line-height:1.5}
.wp2a-sec{border-top:1px solid #E1E8F1;padding-top:12px;margin-top:14px}
.wp2a-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.wp2a-al{border:1px solid #C4D3E6;border-left:5px solid #AFC0D6;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:#fff}
.wp2a-al.p-haute{border-left-color:#B3261E}
.wp2a-al.p-normale{border-left-color:#1E5AA8}
.wp2a-al.p-basse{border-left-color:#AFC0D6}
.wp2a-al-t{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.wp2a-al-t b{margin-right:4px}
.wp2a-al-d{font-size:13px;color:#2B405A}
.wp2a-al-x{margin:0;font-size:13px;white-space:pre-line;color:#2B405A}
.wp2a-coul{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid #AFC0D6;vertical-align:middle;margin-right:6px;flex:0 0 auto}
.wp2a-regles{margin:6px 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px}
.wp2a-rech{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end;margin:0 0 10px}
.wp2a-rech label{display:flex;flex-direction:column;min-width:0}
.wp2a-rech .ch{width:100%;min-height:44px}
.wp2a-pag{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.wp2a-pag span{margin-right:auto}
.wp2a-pag .bt,.wp2a-plus .bt{min-height:44px}
.wp2a-plus{margin-top:10px}
.wp2a-lien{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.wp2a-lien p{margin:0;margin-right:auto;font-size:12px;color:#4F6478}
.wp2a-lien .bt{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.fen .wp2a-msg:empty{display:none}
.wp2a-dt{min-width:520px}
@media (max-width:760px){
  .wp2a{padding:10px;border-radius:12px}
  .wp2a-kpis{grid-template-columns:minmax(0,1fr)}
  .wp2a-barre .wp2a-h{flex:1 1 100%}
  .wp2a-barre .wp2a-bts{margin-left:0;width:100%}
  .wp2a-bts .bt{flex:1 1 auto}
  .wp2a-barre>.bt{flex:1 1 100%}
  .wp2a-on{flex:1 1 calc(50% - 8px);justify-content:center;text-align:center}
  .wp2a-f{flex:1 1 auto}
  .wp2a-rech{grid-template-columns:minmax(0,1fr)}
}

