/* 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}}

/* 18/10 publie10 : corrections du vérificateur indépendant */
/* 1) un menu déroulé passe toujours au-dessus du calendrier rond (le calendrier garde sa place) */
body:has(.v2-m1.deplie) #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}
/* 18/10 publie13 (Hassan) : quand un panneau latéral est ouvert (fenêtre Mission ou autre), le calendrier rond du bandeau se cache ; il revient à la fermeture */
body.pan-ouvert #sdx-cal-portail,body:has(.massif.ouvert) #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}
