/* MyPivotis — feuille unique, aucune ressource extérieure (la politique de
   contenu du site n'autorise que nos propres fichiers). */
/* Un élément marqué « hidden » reste caché, même si sa classe lui donne un affichage (grid, flex…) : sinon le
   cadre de la caméra du poste ne se fermait pas (03.10.2026). */
[hidden]{display:none!important}
:root{
  --fond:#f4f5f7; --papier:#ffffff; --encre:#15171b; --encre-2:#3d4249; --gris:#6b7280; --gris-2:#9aa1ab;
  --ligne:#e3e6ea; --ligne-2:#eef0f3; --accent:#1c5cab; --accent-fonce:#154a8c; --accent-doux:#e8f0fb;
  --ok:#15803d; --ok-doux:#e4f4e9; --alerte:#b7791f; --alerte-doux:#fcf1d9; --danger:#c62828; --danger-doux:#fbe5e3;
  --rayon:14px; --ombre:0 1px 2px rgba(16,24,40,.05),0 4px 16px rgba(16,24,40,.06);
  --c-bleu:#2563eb; --c-violet:#7c3aed; --c-teal:#0d9488; --c-ambre:#d97706; --c-indigo:#4f46e5;
  --c-vert:#16a34a; --c-rose:#be185d; --c-ardoise:#475569;
  --champ:#ffffff; --bord-champ:#cfd4db; --barre-fond:rgba(255,255,255,.92); --onglet-fond:#e9ecf1;
  --alerte-texte:#8a5a12; --bord-survol:#d5dae1; --bord-alerte:#f0c56b; --objectif:#d5dae1; --objectif-fond:#f6f7f9;
  --objectif-bord:#c3c9d2; --violet-doux:#ede9fe; --violet-texte:#5b21b6;
  --titres:inherit; --chiffres:inherit;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font:15px/1.5 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif}
a{color:var(--accent)}
h1{font-size:28px;line-height:1.2;margin:0 0 6px;letter-spacing:-.01em;font-family:var(--titres)}
h2{font-size:17px;margin:0 0 14px;font-family:var(--titres)}
h3{font-size:14px;margin:22px 0 10px;color:var(--encre-2)}
.ico{width:20px;height:20px;flex:none}

/* ---------------- logo */
.logo{width:34px;height:34px;color:var(--accent);flex:none}
.logo-pivot{fill:var(--encre)}

/* ---------------- pages d'entrée (connexion, invitation, code) */
body.entree{background:radial-gradient(1200px 600px at 50% -10%,#e3ecf8 0,var(--fond) 60%)}
.entree-cadre{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px}
.entree-marque{display:flex;align-items:center;gap:10px;font-size:24px;letter-spacing:-.01em;margin-bottom:20px}
.entree-marque b,.barre-marque b{color:var(--accent);font-weight:750}
.entree-marque .logo{width:40px;height:40px}
.entree-carte{width:100%;max-width:430px;background:var(--papier);border:1px solid var(--ligne);border-radius:18px;padding:30px 30px 26px;box-shadow:var(--ombre)}
.entree-carte h1{font-size:22px}
.entree-pied{display:flex;align-items:center;gap:8px;color:var(--gris);font-size:12.5px;margin:18px 0 0}
.entree-pied .ico{width:16px;height:16px;color:var(--ok)}
.entree-version{color:var(--gris-2);font-size:11px;margin:4px 0 0}
.sous-titre{color:var(--gris);margin:0 0 18px}
.lien-bas{text-align:center;margin:16px 0 0;font-size:14px}

/* ---------------- formulaires (les nôtres et ceux d'allauth) */
form p,.champ{margin:0 0 14px}
form p label,.champ>label,.champ-titre{display:block;font-size:13px;font-weight:600;color:var(--encre-2);margin:0 0 5px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input[type=tel],input[type=search],input:not([type]),select,textarea{
  width:100%;font:inherit;color:var(--encre);background:var(--champ);border:1px solid var(--bord-champ);border-radius:10px;padding:10px 12px;outline:none;
  transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-doux)}
input[disabled]{background:var(--ligne-2);color:var(--encre-2)}
.champ.erreur input{border-color:var(--danger)}
.aide,form p .helptext,form p span.helptext{display:block;font-size:12.5px;color:var(--gris);margin:5px 0 0}
.helptext ul{margin:4px 0 0;padding-left:18px}
.err,.errorlist{color:var(--danger);font-size:13px;margin:5px 0 0}
.errorlist{list-style:none;padding:0}
.choix>div{display:flex;flex-wrap:wrap;gap:8px}
.choix>div>div{margin:0}
.choix label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ligne);border-radius:10px;padding:8px 12px;cursor:pointer;
  font-size:14px;font-weight:500;color:var(--encre);background:var(--papier);margin:0}
.choix label:has(input:checked){border-color:var(--accent);background:var(--accent-doux)}
.choix input{margin:0;accent-color:var(--accent)}
.case label{display:flex;align-items:center;gap:8px;font-weight:500}
.choix>.groupes-modules{display:grid;gap:12px}
.groupe-modules{border:1px solid var(--ligne);border-radius:12px;padding:6px 14px 14px;margin:0;min-width:0}
.groupe-modules legend{display:flex;align-items:center;gap:10px;padding:0 6px;margin-left:-6px}
.choix .groupe-modules legend label.tout{border:0;padding:0;background:none;font-size:13.5px;font-weight:700;color:var(--encre-2);text-transform:uppercase;letter-spacing:.04em}
.groupe-modules .nb{font-size:12px;color:var(--gris)}
.groupe-modules .options{display:flex;flex-wrap:wrap;gap:8px}
.confiance{margin:0 0 16px}
.confiance label{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--encre);cursor:pointer}
.confiance input{width:16px;height:16px;margin:0;accent-color:var(--accent)}
.confiance .aide{margin:4px 0 0 25px}
form img{display:block;margin:4px auto 16px;width:190px;height:190px;border:1px solid var(--ligne);border-radius:12px;padding:8px;background:var(--papier)}

/* ---------------- boutons */
.btn,button{font:inherit;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:10px;
  padding:10px 18px;border:1px solid transparent;cursor:pointer;text-decoration:none;line-height:1.2;transition:background .15s,border-color .15s}
.btn-primaire{background:var(--accent);color:#fff}
.btn-primaire:hover{background:var(--accent-fonce)}
.btn-second{background:var(--papier);color:var(--encre);border-color:var(--bord-champ)}
.btn-second:hover{border-color:var(--encre-2)}
.btn-danger{background:var(--danger);color:#fff}
.btn-petit{padding:6px 11px;font-size:13px;border-radius:8px}
.entree-carte .btn-primaire,.btn.large{width:100%;padding:12px 18px;margin-top:4px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}

/* ---------------- messages */
.messages{margin:0 0 18px}
.message{margin:0 0 8px;padding:11px 14px;border-radius:10px;font-size:14px;background:var(--accent-doux);color:var(--accent-fonce);overflow-wrap:anywhere}
.message.success{background:var(--ok-doux);color:var(--ok)}
.message.warning{background:var(--alerte-doux);color:var(--alerte-texte)}
.message.error{background:var(--danger-doux);color:var(--danger)}

/* ---------------- application (connecté) */
.barre{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;background:var(--barre-fond);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--ligne);padding:10px 24px;min-height:60px}
.barre-marque{display:flex;align-items:center;gap:9px;color:var(--encre);text-decoration:none;font-size:18px}
.barre-marque .logo{width:30px;height:30px}
.fil{display:flex;align-items:center;gap:8px;font-size:14px;min-width:0;flex-wrap:wrap}
.fil a{color:var(--encre);font-weight:600;text-decoration:none}
.fil a:hover{color:var(--accent)}
.fil span{color:var(--encre-2)}
.fil-sep{color:var(--gris-2) !important}
.barre-droite{margin-left:auto;display:flex;align-items:center;gap:10px}
.barre-lien{display:flex;align-items:center;gap:6px;color:var(--encre-2);text-decoration:none;font-size:13.5px;font-weight:600;
  padding:7px 10px;border-radius:9px}
.barre-lien:hover{background:var(--ligne-2)}
.menu-compte{position:relative}
.menu-compte summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px 4px 4px;border-radius:999px}
.menu-compte summary::-webkit-details-marker{display:none}
.menu-compte summary:hover{background:var(--ligne-2)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12.5px;font-weight:700}
.menu-nom{font-size:14px;font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-liste{position:absolute;right:0;top:calc(100% + 6px);min-width:250px;background:var(--papier);border:1px solid var(--ligne);border-radius:12px;
  box-shadow:var(--ombre);padding:6px}
.menu-liste a,.menu-liste button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:8px;color:var(--encre);
  text-decoration:none;font-size:14px;font-weight:500;background:none;border:0;justify-content:flex-start}
.menu-liste a:hover,.menu-liste button:hover{background:var(--ligne-2)}
.menu-liste .ico{width:17px;height:17px;color:var(--gris)}
.menu-liste form{margin:0}
.menu-titre{margin:6px 10px 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris-2);font-weight:700}
.menu-liste hr{border:0;border-top:1px solid var(--ligne-2);margin:6px 0}
.page{max-width:1180px;margin:0 auto;padding:28px 24px 40px}
.pied{text-align:center;color:var(--gris-2);font-size:12px;padding:0 0 28px}
.entete{margin:0 0 24px}
.surtitre{margin:0 0 4px;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);font-weight:700}
.section{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);margin:28px 0 12px;font-weight:700}

/* tuiles */
.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.tuiles.petites{grid-template-columns:repeat(auto-fill,minmax(250px,320px))}
.tuile{position:relative;display:flex;flex-direction:column;gap:4px;background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);
  padding:18px 18px 16px;text-decoration:none;color:var(--encre);box-shadow:0 1px 2px rgba(16,24,40,.04);transition:transform .15s,box-shadow .15s,border-color .15s}
.tuile:hover{transform:translateY(-2px);box-shadow:var(--ombre);border-color:var(--bord-survol)}
.tuile-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:8px;color:var(--c);background:var(--c-doux)}
.tuile-ico .ico{width:26px;height:26px}
.tuile-ico.grand{width:64px;height:64px;border-radius:16px}
.tuile-ico.grand .ico{width:36px;height:36px}
.tuile-nom{font-weight:700;font-size:16px}
.tuile-desc{color:var(--gris);font-size:13.5px}
.c-bleu{--c:var(--c-bleu);--c-doux:#e8effd}.c-violet{--c:var(--c-violet);--c-doux:#f1eafe}.c-teal{--c:var(--c-teal);--c-doux:#e2f5f2}
.c-ambre{--c:var(--c-ambre);--c-doux:#fdf1e1}.c-indigo{--c:var(--c-indigo);--c-doux:#ecebfd}.c-vert{--c:var(--c-vert);--c-doux:#e5f6ea}
.c-rose{--c:var(--c-rose);--c-doux:#fbe8f0}.c-ardoise{--c:var(--c-ardoise);--c-doux:#eceff3}
.tuile{border-top:0}
.tuile::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;border-radius:var(--rayon) var(--rayon) 0 0;background:var(--c,var(--accent))}
.badge{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--ligne-2);color:var(--encre-2);white-space:nowrap}
.badge.bientot{position:absolute;top:14px;right:14px;background:var(--ligne-2);color:var(--gris)}
.badge.essai{background:var(--alerte-doux);color:var(--alerte-texte)}
.badge.admin{background:var(--accent-doux);color:var(--accent-fonce)}
.badge.alerte{background:var(--danger-doux);color:var(--danger)}
.badge.profil{margin:0 4px 4px 0;background:var(--encre-2);color:var(--papier)}
.vide{color:var(--gris);font-size:14px}

/* cartes et tableaux */
.carte{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:22px;box-shadow:0 1px 2px rgba(16,24,40,.04);margin:0 0 18px;min-width:0}
.carte h2{display:flex;align-items:center;gap:9px}
.carte h2 .ico{color:var(--accent)}
.carte.etroite{max-width:620px}
.compte{font-size:12px;background:var(--ligne-2);color:var(--encre-2);border-radius:999px;padding:1px 9px}
.deux-col{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:18px;align-items:start}
.colonne-cartes{display:grid;gap:0;align-content:start;min-width:0}
.tableau{width:100%;border-collapse:collapse;font-size:14px}
.tableau th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gris);font-weight:700;padding:0 10px 8px;
  border-bottom:1px solid var(--ligne)}
.tableau td{padding:10px;border-bottom:1px solid var(--ligne-2);vertical-align:top}
.tableau tr:last-child td{border-bottom:0}
.sous{display:block;color:var(--gris);font-size:12.5px}
td.sous{display:table-cell}
.nw{white-space:nowrap}
.mono{font-family:Consolas,monospace;font-size:12px}
.puces{display:flex;flex-wrap:wrap;gap:4px}
td.puces{display:table-cell}
.puce{display:inline-block;font-size:11.5px;font-weight:600;border-radius:6px;padding:2px 7px;margin:0 4px 4px 0;color:var(--c);background:var(--c-doux)}
.actions-ligne{white-space:nowrap;text-align:right}
.actions-ligne form{display:inline}
.confirmer{display:inline-block;position:relative}
.confirmer summary{list-style:none}
.confirmer summary::-webkit-details-marker{display:none}
.confirmer[open] form{position:absolute;right:0;top:calc(100% + 6px);z-index:5;background:var(--papier);border:1px solid var(--ligne);border-radius:10px;padding:8px;box-shadow:var(--ombre)}
.liste-liens{list-style:none;margin:0;padding:0}
.liste-liens li a{display:flex;flex-direction:column;padding:12px 14px;border:1px solid var(--ligne);border-radius:12px;margin:0 0 8px;text-decoration:none;color:var(--encre)}
.liste-liens li a:hover{border-color:var(--accent);background:var(--accent-doux)}
.liste-liens li a span{color:var(--gris);font-size:13px}
.bientot-carte{background:var(--papier);border:1px solid var(--ligne);border-radius:18px;padding:40px 32px;text-align:center;max-width:620px;margin:20px auto}
.bientot-carte .tuile-ico{margin:0 auto 14px}

/* pages de gestion d'allauth (double authentification, mot de passe, sessions) */
.app .page>h1{margin-bottom:16px}
.app .page>form:not(.pleine-largeur),.app .page>section:not(.entete):not(.carte):not(.bientot-carte):not(.mes-chiffres){max-width:620px}
.app .page>form{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:22px}
.app .page table{width:100%;border-collapse:collapse;background:var(--papier)}
.app .page table td,.app .page table th{padding:8px 10px;border-bottom:1px solid var(--ligne-2);text-align:left;font-size:14px}

/* ---------------- ERP : listes, fiches, historique */
.titre-section{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 12px}
.titre-section .section{margin:0}
.entete-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.btn .ico{width:17px;height:17px}
.badge.coin{position:absolute;top:14px;right:14px}
.badge.ok{background:var(--ok-doux);color:var(--ok)}
.tuile.inactive{opacity:.6}
.demarrer p{color:var(--encre-2);margin:0 0 16px}
.carte.formulaire{max-width:860px}
fieldset.groupe{border:0;margin:0 0 6px;padding:0;min-width:0}
fieldset.groupe legend{float:left;width:100%;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);
  font-weight:700;padding:0;margin:0 0 12px}
fieldset.groupe+fieldset.groupe legend{border-top:1px solid var(--ligne-2);padding-top:18px;margin-top:4px}
.grille-champs{clear:both;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.grille-champs .case{align-self:center}
.tableau tr.inactif td{color:var(--gris-2)}
.tableau tr.inactif .lien-fiche{color:var(--gris)}
.lien-fiche{font-weight:700;text-decoration:none}
.lien-fiche:hover{text-decoration:underline}
.changements{list-style:none;margin:0;padding:0;font-size:13.5px}
.changements li{margin:0 0 2px;overflow-wrap:anywhere}
.changements s{color:var(--gris)}
.champ-nom{color:var(--gris)}
.champ-nom::after{content:" :"}
.historique details summary{cursor:pointer;color:var(--gris);font-size:13px;list-style:none}
.historique details summary::-webkit-details-marker{display:none}
.historique details[open] summary{margin-bottom:6px}
.mono-grand{font-family:Consolas,monospace;font-size:16px;color:var(--encre)}
.onglets{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.entete .onglets{margin:0}
.onglet{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:9px;border:1px solid var(--ligne);background:var(--papier);
  color:var(--encre);text-decoration:none;font-weight:600;font-size:14px}
.onglet:hover{border-color:var(--accent)}
.onglet.actif{background:var(--accent);border-color:var(--accent);color:#fff}
.a-venir{font-size:11px;font-weight:500;color:var(--gris)}
.onglet.actif .a-venir{color:#dbe6f6}
.liste-reglages{margin:4px 0 12px}
.liste-reglages .champ{margin:0;padding:14px 0;border-bottom:1px solid var(--ligne-2)}
.liste-reglages .champ:last-child{border-bottom:0}
.liste-reglages input[type=number]{max-width:180px}
/* listes : recherche, tri, Excel */
.barre-liste{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.barre-liste .recherche{flex:1 1 220px;max-width:340px}
.compte-liste{color:var(--gris);font-size:13px;margin-right:auto}
.tableau th.triable{cursor:pointer;user-select:none}
.tableau th.triable:hover,.tableau th[aria-sort]{color:var(--encre)}
.tableau th[aria-sort=ascending]::after{content:" ▲";font-size:9px}
.tableau th[aria-sort=descending]::after{content:" ▼";font-size:9px}
/* import Excel */
.carte .texte{color:var(--encre-2);margin:0 0 14px}
.carte h2.etape{margin-top:26px;padding-top:20px;border-top:1px solid var(--ligne-2)}
input[type=file]{display:block;width:100%;font:inherit;font-size:14px;padding:10px;border:1px dashed var(--bord-champ);border-radius:10px;background:var(--fond)}
.fichier-importe{font-weight:700;margin:0 0 10px;overflow-wrap:anywhere}
.bilan{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.bilan .badge{font-size:12.5px;padding:4px 11px}
.carte form+.tableau,.carte .message+.tableau{margin-top:16px}
.barre-liste select{width:auto;flex:0 1 190px;padding:8px 10px;font-size:14px}
.tableau .nombre{text-align:right}
/* ---------------- articles */
.liens-module{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 16px}
.vignette{width:48px;padding-top:6px !important;padding-bottom:6px !important}
.vignette img,.vignette-vide{width:40px;height:40px;border-radius:8px;object-fit:cover;display:grid;place-items:center;
  background:var(--ligne-2);color:var(--gris-2);border:1px solid var(--ligne)}
.vignette-vide .ico{width:20px;height:20px}
.liste-articles td{vertical-align:middle}
.entete-article{display:flex;align-items:center;gap:20px;margin:0 0 18px;flex-wrap:wrap}
.photo-article{width:96px;height:96px;flex:none;border-radius:16px;background:var(--papier);border:1px solid var(--ligne);display:grid;
  place-items:center;overflow:hidden;color:var(--gris-2)}
.photo-article img{width:100%;height:100%;object-fit:contain}
.photo-article .ico{width:42px;height:42px}
/* loupe : la photo d'un article en grand à côté du curseur, au survol (pivotis.js) */
.vignette img,.photo-article img,.carte-of-tete img,.carte-pdp-photo img{cursor:zoom-in}
.loupe{position:fixed;left:0;top:0;z-index:80;pointer-events:none;background:var(--papier);border:1px solid var(--ligne);
  border-radius:14px;padding:8px;box-shadow:0 18px 48px rgba(20,24,31,.24);opacity:0;transition:opacity .12s ease}
.loupe.visible{opacity:1}
.loupe img{display:block;width:min(380px,60vw);height:auto;max-height:min(380px,70vh);object-fit:contain;border-radius:8px;background:#fff}
@media print{.loupe{display:none}}
.entete-texte{flex:1 1 320px;min-width:0}
.entete-texte h1{overflow-wrap:anywhere}
.entete-texte .sous-titre{margin-bottom:10px}
.entete-article .bilan{margin:0}
.action-entete{max-width:260px}
.action-entete .aide{margin-top:6px}
.sommaire{position:sticky;top:60px;z-index:10;display:flex;flex-wrap:wrap;gap:4px;margin:0 0 16px;padding:8px 0;
  background:var(--fond)}
.sommaire a{padding:6px 12px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--encre-2);text-decoration:none;
  border:1px solid var(--ligne);background:var(--papier)}
.sommaire a:hover{border-color:var(--accent);color:var(--accent)}
.app .page>form.fiche-article{max-width:none;background:none;border:0;padding:0;border-radius:0}
.fiche-article .carte{max-width:none;scroll-margin-top:120px}
#documents,#historique{scroll-margin-top:120px}
.grille-champs.trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.bloc-aide{margin:-6px 0 14px}
.barre-enregistrer{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 18px;padding:12px 16px;background:var(--barre-fond);backdrop-filter:blur(6px);
  border:1px solid var(--ligne);border-radius:var(--rayon);box-shadow:var(--ombre)}
.barre-enregistrer .aide{margin:0 0 0 auto}
.titre-carte{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.titre-carte h2{margin:0}
.zone-depot{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px;text-align:center;
  border:2px dashed var(--bord-champ);border-radius:12px;background:var(--fond);cursor:pointer;color:var(--encre-2)}
.zone-depot input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0;border:0}
.zone-depot.survol,.zone-depot.pleine{border-color:var(--accent);background:var(--accent-doux)}
.ligne-depot{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:12px 0 4px}
.ligne-depot .champ{margin:0;flex:0 1 240px}
.depot+.tableau{margin-top:18px}

@media (max-width:1060px){
  .grille-champs.trois{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .grille-champs,.grille-champs.trois{grid-template-columns:1fr}
  .sommaire{position:static}
  .action-entete{max-width:none}
  .deux-col{grid-template-columns:1fr}
  .barre{padding:10px 16px;flex-wrap:wrap}
  .page{padding:20px 16px 32px}
  .menu-nom,.barre-lien span{display:none}
  .tableau{display:block;overflow-x:auto}
}
.image-actuelle{margin:0 0 6px;font-size:13.5px;color:var(--encre-2)}
.retirer-image{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-weight:600}
.sous-inline{color:var(--gris);font-size:12.5px}
/* ---------------- données techniques */
.bandeau-version{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;border-left:4px solid var(--gris-2)}
.bandeau-version h2{margin:0 0 4px}
.bandeau-version .aide{margin:2px 0 0}
.bandeau-version .actions{margin:0;align-items:center}
.bandeau-version form{margin:0}
.bandeau-version.etat-brouillon{border-left-color:var(--accent)}
.bandeau-version.etat-en_service{border-left-color:var(--ok)}
details.ajout{margin-top:14px}
details.ajout summary{list-style:none;display:inline-flex}
details.ajout summary::-webkit-details-marker{display:none}
details.ajout[open] summary{margin-bottom:14px}
details.ajout form{border-top:1px solid var(--ligne-2);padding-top:14px}
.calcul-quantite{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calcul-quantite label{font-weight:600;font-size:14px;color:var(--encre-2)}
.calcul-quantite input{width:110px}
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 18px}
.chiffre{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:14px 16px}
.chiffre span{display:block;font-size:12.5px;color:var(--gris)}
.chiffre b{display:block;font-size:22px;margin-top:4px;letter-spacing:-.01em;font-family:var(--chiffres)}
.chiffre b.petit{font-size:15px}
.tableau.arbre tr.niveau-0 td{background:var(--ligne-2)}
.tableau.arbre tr.niveau-1 td:first-child{padding-left:26px}
.tableau.arbre tr.niveau-2 td:first-child{padding-left:46px}
.tableau.arbre tr.niveau-3 td:first-child{padding-left:66px}
.tableau.arbre tr.niveau-4 td:first-child{padding-left:86px}
.tableau.arbre tr.niveau-5 td:first-child,.tableau.arbre tr.niveau-6 td:first-child,.tableau.arbre tr.niveau-7 td:first-child,
.tableau.arbre tr.niveau-8 td:first-child,.tableau.arbre tr.niveau-9 td:first-child,.tableau.arbre tr.niveau-10 td:first-child,
.tableau.arbre tr.niveau-11 td:first-child,.tableau.arbre tr.niveau-12 td:first-child{padding-left:106px}
.tableau.arbre tr:not(.niveau-0) td:first-child{border-left:2px solid var(--ligne-2)}
.tableau.arbre tr.a-verifier td{background:var(--alerte-doux)}
.confirmer-import{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:0 0 6px}
.case-simple{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.sommaire a.vers-module{border-color:var(--accent);color:var(--accent);background:var(--accent-doux)}
/* ---------------- menu de gauche */
.bouton-menu{display:grid;place-items:center;background:none;border:0;padding:7px;border-radius:9px;color:var(--encre-2);margin-left:-6px}
.bouton-menu:hover{background:var(--ligne-2)}
.bouton-menu .ico{width:20px;height:20px}
.corps.avec-menu{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:start}
.corps.avec-menu .page{max-width:1280px;width:100%}
html.menu-cache .corps.avec-menu{grid-template-columns:minmax(0,1fr)}
html.menu-cache .menu-gauche{display:none}
.menu-gauche{position:sticky;top:61px;height:calc(100vh - 61px);overflow-y:auto;background:var(--papier);border-right:1px solid var(--ligne);
  padding:12px 10px 20px}
.menu-groupe{margin:0 0 6px}
.menu-groupe-titre{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-2);font-weight:700;margin:14px 10px 6px}
.menu-lien{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--encre-2);text-decoration:none;
  font-size:14px;font-weight:500;line-height:1.3}
.menu-lien:hover{background:var(--ligne-2);color:var(--encre)}
.menu-lien.actif{background:var(--accent-doux);color:var(--accent-fonce);font-weight:700}
.menu-lien>.ico{width:18px;height:18px;color:var(--gris)}
.menu-module summary{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;cursor:pointer;list-style:none;
  font-size:14px;font-weight:600;color:var(--encre)}
.menu-module summary::-webkit-details-marker{display:none}
.menu-module summary:hover{background:var(--ligne-2)}
.menu-module summary::after{content:"";margin-left:auto;width:6px;height:6px;border-right:2px solid var(--gris-2);
  border-bottom:2px solid var(--gris-2);transform:rotate(-45deg);transition:transform .15s}
.menu-module[open] summary::after{transform:rotate(45deg)}
.menu-module-nom{min-width:0}
.menu-ico{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--c-doux);flex:none}
.menu-ico .ico{width:16px;height:16px;color:var(--c)}
.menu-ecrans{margin:2px 0 8px 22px;padding-left:10px;border-left:1px solid var(--ligne)}
.menu-ecrans .menu-lien{padding:6px 10px;font-size:13.5px}
.menu-bientot{color:var(--gris)}
.menu-bientot em{margin-left:auto;font-style:normal;font-size:10.5px;color:var(--gris-2)}
.menu-astuce{font-size:11.5px;color:var(--gris-2);margin:18px 10px 0}
/* ---------------- onglets (comme Fortee) */
.bureau-page .pied{display:none}
.bureau{display:flex;flex-direction:column;height:calc(100vh - 61px);min-width:0}
.onglets-barre{display:flex;align-items:flex-end;gap:4px;padding:8px 12px 0;background:var(--fond);border-bottom:1px solid var(--ligne);overflow-y:hidden;
  overflow-x:auto;flex:none}
.onglets-liste{display:flex;gap:4px;min-width:0}
.onglet-bouton{display:flex;align-items:center;flex:none;border:1px solid var(--ligne);border-bottom:0;border-radius:10px 10px 0 0;
  background:var(--onglet-fond)}
.onglet-bouton.actif{background:var(--papier);position:relative;top:1px}
.onglet-bouton button{font-weight:600;border:0;background:none;border-radius:0}
.onglet-nom{display:block;padding:8px 4px 8px 12px;font-size:13px;color:var(--encre-2);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;max-width:190px}
.onglet-bouton.actif .onglet-nom{color:var(--encre)}
.onglet-bouton button.onglet-fermer{padding:3px 7px;margin-right:4px;font-size:16px;line-height:1;color:var(--gris);border-radius:6px}
.onglet-bouton button.onglet-fermer:hover{background:var(--ligne);color:var(--encre)}
.onglet-plus{display:grid;place-items:center;background:none;border:0;padding:6px 8px;margin-bottom:3px;color:var(--gris);border-radius:8px}
.onglet-plus:hover{background:var(--ligne-2);color:var(--encre)}
.onglet-plus .ico{width:16px;height:16px}
.onglets-cadres{flex:1;min-height:0;background:var(--fond)}
.onglet-cadre{display:block;width:100%;height:100%;border:0;background:var(--fond)}
.onglet-cadre[hidden]{display:none}
/* une page affichée dans un onglet */
.fil-page{display:none}
html.dans-onglet .barre,html.dans-onglet .menu-gauche,html.dans-onglet .pied{display:none}
html.dans-onglet .corps.avec-menu{display:block}
html.dans-onglet .page{padding-top:16px}
html.dans-onglet .fil-page{display:flex;margin:0 0 14px;font-size:13px}
html.dans-onglet .sommaire{top:0}
@media (max-width:860px){
  .corps.avec-menu{display:block}
  .menu-gauche{display:none;position:fixed;top:61px;left:0;bottom:0;height:auto;width:min(290px,86vw);z-index:40;box-shadow:var(--ombre)}
  html.menu-ouvert .menu-gauche{display:block}
  html.menu-cache .menu-gauche{display:none}
  html.menu-ouvert.menu-cache .menu-gauche{display:block}
  .bureau{height:calc(100vh - 61px)}
}
/* ---------------- stock */
.negatif{color:var(--danger)}
.mono-titre{font-family:Consolas,monospace;letter-spacing:0}
a.chiffre.lien-chiffre{text-decoration:none;color:var(--encre)}
a.chiffre.lien-chiffre:hover{border-color:var(--accent)}
.chiffre.a-voir{border-color:var(--bord-alerte);background:var(--alerte-doux)}
.tableau.fiche-lecture th{text-transform:none;letter-spacing:0;font-size:13px;width:38%;padding:10px;border-bottom:1px solid var(--ligne-2)}
.saisie-compte{width:110px;text-align:right;padding:6px 8px}
.efface-prevision{display:block;font-size:11px;color:var(--gris);text-align:right;white-space:nowrap;margin-top:2px}
.actions-ligne form{display:inline}
/* étiquettes QR : planche A4 de 3 × 8 étiquettes de 70 × 37 mm */
body.planche{background:#fff}
/* l'aperçu d'un document, par-dessus la page (pivotis.js) */
dialog.apercu{width:min(1020px,96vw);height:94vh;max-width:none;max-height:none;padding:0;border:0;border-radius:14px;
  overflow:hidden;background:var(--papier);color:var(--encre);box-shadow:0 24px 70px rgba(0,0,0,.35)}
dialog.apercu[open]{display:flex;flex-direction:column}
dialog.apercu::backdrop{background:rgba(12,18,28,.55)}
.apercu-barre{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--ligne)}
.apercu-titre{font-size:15px}
.apercu-barre .aide{margin-right:auto;font-size:12px}
.apercu-cadre{flex:1;width:100%;border:0;background:#e9ebee}
html.dans-apercu .barre-impression{display:none}
.barre-impression{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--ligne);background:var(--fond)}
.etiquettes{display:grid;grid-template-columns:repeat(3,70mm);grid-auto-rows:37mm;width:210mm;margin:0 auto;padding:0}
.etiquette{display:flex;align-items:center;gap:3mm;padding:3mm 4mm;overflow:hidden;border:1px dashed #d5dae1}
.etiquette-qr svg{width:26mm;height:26mm;display:block}
.etiquette-texte{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.etiquette-texte b{font-size:13pt;font-family:Consolas,monospace;overflow-wrap:anywhere}
.etiquette-texte span{font-size:8pt;color:#3d4249}
.etiquette-texte small{font-size:7pt;color:#6b7280}
.etiquettes{page:planche}
@page planche{size:A4;margin:0}
@media print{
  .barre-impression{display:none}
  .etiquette{border:0}
}
/* ---------------- droits */
.tableau-droits select{max-width:240px;padding:7px 10px}
.tableau-droits label{font-weight:600}
.tableau-droits tr.groupe th{padding:18px 10px 8px;color:var(--encre-2)}
.tableau-droits tbody:first-of-type tr.groupe th{padding-top:12px}
.tableau-droits td.par-profils{color:var(--encre-2);font-size:13.5px;vertical-align:middle;white-space:nowrap}
.supprimer-profil{margin-top:18px;padding-top:14px;border-top:1px solid var(--ligne-2)}
.apercu-logo{display:grid;place-items:center;min-height:120px;margin:0 0 16px;padding:16px;border:1px dashed var(--ligne);border-radius:12px;background:var(--papier)}
.apercu-logo img{max-width:320px;max-height:110px;object-fit:contain}
/* ---------------- reprise des données */
.etapes{list-style:none;margin:0;padding:0}
.etape{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--ligne-2);flex-wrap:wrap}
.etape:last-child{border-bottom:0}
.etape-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ligne-2);font-weight:700;flex:none}
.etape.faite .etape-n{background:var(--ok-doux);color:var(--ok)}
.etape-texte{flex:1 1 280px;min-width:0}
.etape-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* ---------------- feuilles A4 : documents (static/css/documents.css) et fiche suiveuse (ci-dessous) */
body.impression{background:#e6e8ec}
.feuille{width:210mm;min-height:297mm;margin:18px auto;background:#fff;position:relative;font-size:10pt;line-height:1.4;color:#111;
  box-shadow:0 1px 3px rgba(20,24,31,.08),0 12px 32px rgba(20,24,31,.12)}
.fiche-suiveuse{page:fiche;padding:14mm 14mm 22mm}
.fiche-suiveuse .doc-logo{display:block;max-width:60mm;max-height:22mm;object-fit:contain;margin:0 0 3mm}
.fiche-suiveuse .doc-nom{font-size:15pt;font-weight:700;margin:0 0 2mm}
.fiche-suiveuse .doc-sous{display:block;font-size:8pt;color:#555}
.fiche-suiveuse .doc-pied{position:absolute;left:14mm;right:14mm;bottom:9mm;border-top:.5pt solid #bbb;padding-top:2mm;font-size:7.5pt;
  color:#555;text-align:center}
.fiche-suiveuse .doc-pied p{margin:0}
@page fiche{size:A4;margin:10mm 10mm 14mm;
  @bottom-right{content:counter(page) " / " counter(pages);font-family:"Segoe UI",Arial,sans-serif;font-size:7pt;color:#777}}
@media print{
  body.impression{background:#fff}
  body.impression .barre-impression{display:none}
  .feuille{margin:0;box-shadow:none;width:auto;min-height:0}
  .fiche-suiveuse{padding:0}
  .fiche-suiveuse .doc-pied{position:static;margin-top:6mm}
}
@media screen and (max-width:860px){
  .feuille.fiche-suiveuse{width:auto;min-height:0;margin:0;padding:18px 16px 60px}
}
/* ---------------- statuts des documents (achats, ventes, production) */
.badge.statut-brouillon{background:var(--ligne-2);color:var(--encre-2)}
.badge.statut-a_valider{background:var(--alerte-doux);color:var(--alerte-texte)}
.badge.statut-validee,.badge.statut-confirmee,.badge.statut-planifie,.badge.statut-envoyee,.badge.statut-emise,.badge.statut-lance{background:var(--accent-doux);color:var(--accent-fonce)}
.badge.statut-partielle,.badge.statut-en_cours,.badge.statut-partiellement_payee{background:var(--violet-doux);color:var(--violet-texte)}
.badge.statut-recue,.badge.statut-livree,.badge.statut-soldee,.badge.statut-termine,.badge.statut-payee,.badge.statut-acceptee,.badge.statut-close,.badge.statut-facturee{background:var(--ok-doux);color:var(--ok)}
.badge.statut-annulee,.badge.statut-refusee,.badge.statut-annule{background:var(--danger-doux);color:var(--danger)}
.retard{color:var(--danger);font-weight:700}
.tableau td.actions-ligne .btn{margin-left:4px}
.ligne-annulee td{color:var(--gris-2);text-decoration:line-through}
.bandeau-statut{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:12px 16px;background:var(--papier);
  border:1px solid var(--ligne);border-radius:var(--rayon)}
.bandeau-statut .actions{margin:0}
.bandeau-statut form{margin:0}
.bandeau-statut .aide{margin:0}
.grille-reception td{vertical-align:middle}
.grille-reception input,.grille-reception select,.grille-reception textarea{padding:6px 8px;font-size:14px}
.grille-reception textarea{min-height:34px;resize:vertical}
/* livraison : les n° de série en stock, à cocher */
.choix-series{max-height:190px;min-width:220px;overflow:auto;padding:4px 10px;border:1px solid var(--bord-champ);border-radius:8px;background:var(--champ)}
.choix-series label{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:14px;font-weight:400;white-space:nowrap;cursor:pointer}
.grille-reception .choix-series input{width:auto;padding:0}
.grille-reception .q{width:100px}
.deux-col.larges{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.deux-col.larges{grid-template-columns:1fr}}
/* ---------------- vente */
.tableau.totaux-ecran{width:auto;min-width:320px;margin:12px 0 0 auto}
.tableau.totaux-ecran th{text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:500;color:var(--encre-2);border:0;padding:4px 16px 4px 0}
.tableau.totaux-ecran td{border:0;padding:4px 0;white-space:nowrap}
.tableau.totaux-ecran tr.fort th,.tableau.totaux-ecran tr.fort td{font-weight:700;color:var(--encre);border-top:1px solid var(--ligne);padding-top:8px}
.confirmer .form-ligne{display:flex;gap:6px;align-items:center}
.confirmer .form-ligne input{width:90px;padding:6px 8px}
.tableau-defilant{overflow-x:auto}
.grille-previsions th,.grille-previsions td{padding:6px 4px}
.saisie-prevision{width:64px;padding:5px 6px;text-align:right;font-size:13.5px}
.liste-simple{margin:0;padding-left:18px}
.grille-reception input.q{width:100px}
/* ---------------- les KPI (tableaux/kpi.py, 0.7.7) */
.kpi-bloc h2 .compte{margin-left:6px}
.kpi-maillon{display:grid;gap:8px;margin-top:16px}
.kpi-maillon-titre{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gris)}
.kpi-maillon-titre span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;
  background:var(--ligne-2);color:var(--encre);font-size:12px;letter-spacing:0}
.kpi-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.kpi-carte{--kc:var(--gris);display:grid;gap:3px;align-content:start;padding:12px 14px 12px 16px;border:1px solid var(--ligne);
  border-left:4px solid var(--kc);border-radius:10px;background:var(--papier);color:var(--encre);text-decoration:none}
.kpi-carte:hover{border-color:var(--kc)}
.kpi-vert{--kc:var(--ok)}.kpi-orange{--kc:var(--alerte)}.kpi-rouge{--kc:var(--danger)}.kpi-gris,.kpi-neutre{--kc:var(--gris)}
.kpi-nom{font-weight:700;font-size:14.5px}
.kpi-nom b{color:var(--kc);margin-right:6px;font-variant-numeric:tabular-nums}
.kpi-question{font-size:12.5px;color:var(--gris);font-style:italic}
.kpi-valeur{font-size:26px;font-weight:800;line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums;color:var(--kc)}
.kpi-gris .kpi-valeur{color:var(--gris);font-size:17px;font-weight:600;padding-block:5px}
.kpi-objectif{font-size:12.5px;color:var(--gris)}
.kpi-courbe{width:100%;height:32px;display:block;margin:4px 0 2px}
.kpi-courbe polyline{fill:none;stroke:var(--kc);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.kpi-courbe circle{fill:var(--kc)}
.kpi-cible{stroke:var(--gris);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.kpi-detail{font-size:12.5px;color:var(--encre-2)}
.kpi-legende{display:inline-flex;align-items:center;gap:4px;margin-right:6px;white-space:nowrap}
.kpi-legende::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--kc)}
/* ---------------- l'accueil : mes chiffres et à faire (0.7.8) */
.mes-chiffres{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;margin:0 0 8px}
.mes-chiffres.chargement{display:block;min-height:120px}
.mes-chiffres-kpi{display:grid;gap:10px;min-width:0}
.mes-chiffres-kpi .titre-section{margin:0}
.mes-chiffres-kpi .kpi-grille{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.mon-a-faire{border:1px solid var(--ligne);border-radius:12px;background:var(--papier);padding:14px 16px;display:grid;
  gap:2px;align-content:start}
.mon-a-faire h2{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px}
.mon-a-faire-ligne{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:baseline;padding:7px 0;
  border-top:1px solid var(--ligne-2);color:var(--encre);text-decoration:none}
.mon-a-faire-ligne:first-of-type{border-top:0}
.mon-a-faire-ligne b{text-align:right;font-size:18px;font-variant-numeric:tabular-nums;color:var(--accent)}
.mon-a-faire-ligne:hover span{text-decoration:underline}
.choisir-chiffres form{margin-top:10px;display:grid;gap:10px}
.choix-kpi{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px}
.choix-kpi label{display:flex;gap:8px;align-items:center;font-size:14px}
@media (min-width:1180px){.mes-chiffres{grid-template-columns:minmax(0,2.4fr) minmax(260px,1fr)}
  .mon-a-faire{margin-top:44px}}
/* ---------------- la revue mensuelle (0.7.9) */
.actions-entete{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
.revue-mois{margin-bottom:6px}
.tableau.revue{min-width:960px}
.tableau.revue td{vertical-align:top}
.revue .imprime{display:none}
.revue-maillon th{background:var(--fond);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gris);text-align:left;padding:6px 10px}
.revue-maillon th span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;margin-right:8px;
  background:var(--ligne-2);color:var(--encre);letter-spacing:0;font-size:11.5px}
.revue tr[class^="kpi-"]{--kc:var(--gris)}
.revue tr.kpi-vert{--kc:var(--ok)}.revue tr.kpi-orange{--kc:var(--alerte)}.revue tr.kpi-rouge{--kc:var(--danger)}
.revue-kpi{min-width:210px;border-left:4px solid var(--kc)}
.revue-kpi a{font-weight:700;color:var(--encre);text-decoration:none}
.revue-kpi a b{color:var(--kc);margin-right:6px}
.revue-kpi a:hover{text-decoration:underline}
.revue-avant{display:flex;gap:6px;align-items:flex-start;margin-top:6px;font-size:12.5px;color:var(--encre-2)}
.revue-avant input{margin-top:3px}
.revue-chiffre{min-width:120px}
.revue-valeur{display:block;font-size:20px;font-weight:800;color:var(--kc);font-variant-numeric:tabular-nums}
.revue-chiffre .sous{display:block;white-space:normal;max-width:200px;margin-left:auto}
.revue-objectif{font-size:12.5px;color:var(--gris);width:110px}
.revue-courbe{width:116px}
.revue-courbe .kpi-courbe{width:108px;margin:4px 0 0}
.revue-texte{min-width:200px}
.revue-action{min-width:250px}
.revue-qui-date{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:6px;margin-top:6px}
.revue textarea,.revue input[type=text],.revue input[type=date]{width:100%;font-size:13px;padding:6px 8px}
.revue textarea{min-height:52px;resize:vertical}
.revue-enregistrer{position:sticky;bottom:0;background:var(--fond);padding:10px 0;border-top:1px solid var(--ligne);
  display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.encart-formulaire{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;border-left:4px solid var(--accent)}
/* ---------------- Pivotis MES (0.9.0) : la répartition des OF et le poste de l'opérateur */
.mes-jauge{display:inline-block;width:120px;height:8px;border-radius:99px;background:var(--ligne-2);overflow:hidden;vertical-align:middle}
.mes-jauge i{display:block;height:100%;background:var(--ok);border-radius:99px}
.mes-jauge.plein i{background:var(--danger)}
.mes-tableau{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px;align-items:start}
.mes-colonne{display:flex;flex-direction:column;gap:10px;min-height:220px;padding:10px;border:1px solid var(--ligne);border-radius:12px;background:var(--onglet-fond)}
.mes-a-repartir{background:var(--accent-doux)}
.mes-colonne.survol{outline:2px dashed var(--accent);outline-offset:-3px}
.mes-col-tete{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.mes-col-tete h2{margin:0;font-size:15px}
.mes-col-tete .mes-jauge{width:100%}
.mes-charge-texte{font-size:12px;color:var(--gris);font-variant-numeric:tabular-nums}
.mes-cartes{display:flex;flex-direction:column;gap:8px}
.mes-of{display:grid;gap:2px;padding:9px 10px;border:1px solid var(--ligne);border-radius:10px;background:var(--papier);font-size:13px}
.mes-of p{margin:0}
[data-repartition] .mes-of{cursor:grab}
.mes-of.glisse{opacity:.45}
.mes-of.mes-of-retard{border-left:4px solid var(--danger)}
.mes-of-tete{display:flex;justify-content:space-between;gap:6px;font-weight:600}
.mes-of-tete .mono{font-size:13px}
.mes-heures{color:var(--encre-2);font-variant-numeric:tabular-nums}
.mes-of-article,.mes-of-op{color:var(--encre-2)}
.mes-of-pied{font-size:12px;color:var(--gris)}
.mes-retard{color:var(--danger);font-weight:600}
.mes-bloque{color:var(--alerte-texte)}
.sous-inline{font-size:12px;color:var(--gris)}
.mes-donner summary{font-size:12px;color:var(--accent);cursor:pointer}
.mes-donner form{display:flex;gap:6px;margin-top:6px}
.mes-donner select{flex:1;min-width:0}
.mes-charges .mes-jauge{width:160px}
body.mes-poste{background:var(--fond)}
.poste-barre{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:12px 18px;border-bottom:1px solid var(--ligne);background:var(--papier)}
.poste-marque{display:flex;align-items:center;gap:8px;color:var(--encre);text-decoration:none;font-size:17px}
.poste-marque .logo{width:28px;height:28px}
.poste-espace{color:var(--gris);font-size:14px}
.poste-droite{margin-left:auto;display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.poste-qui{font-size:16px}
.poste-page{max-width:920px;margin:0 auto;padding:18px 16px 60px}
.poste-badge{max-width:440px;margin:10vh auto 0;text-align:center}
.poste-badge h1{font-size:30px}
.poste-badge-form{display:flex;gap:10px;margin-top:18px}
.poste-badge-form input{flex:1;min-width:0;padding:14px;font-size:28px;text-align:center;border:1px solid var(--bord-champ);border-radius:12px;background:var(--champ);color:var(--encre)}
.poste-badge-form button{padding:14px 22px;font-size:18px;border-radius:12px}
.poste-erreur{margin-top:14px;color:var(--danger);font-weight:600}
.poste-onglets{display:flex;gap:8px;margin-bottom:16px}
.poste-onglets a{flex:1;padding:14px;border:1px solid var(--ligne);border-radius:12px;background:var(--papier);color:var(--encre-2);font-size:16px;font-weight:700;text-align:center;text-decoration:none}
.poste-onglets a[aria-current]{border-color:var(--accent);background:var(--accent);color:#fff}
.poste-onglets span{opacity:.8}
.poste-alerte{padding:10px 14px;border-radius:10px;background:var(--alerte-doux);color:var(--alerte-texte)}
.poste-file{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.poste-of{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 18px;padding:16px 18px;border:1px solid var(--ligne);border-radius:14px;background:var(--papier)}
.poste-of.poste-of-en-cours{border-color:var(--ok);box-shadow:0 0 0 3px var(--ok-doux)}
.poste-of.poste-of-retard{border-left:5px solid var(--danger)}
.poste-of-texte{flex:1;min-width:240px}
.poste-of-texte p{margin:0 0 4px}
.poste-of-num{font-size:18px}
.poste-of-num .mono{font-size:18px}
.poste-of-article{font-size:16px}
.poste-of-op{font-size:15px;color:var(--encre-2)}
.poste-of-pied{font-size:14px;color:var(--gris)}
.poste-consigne{margin-top:8px!important;padding-left:10px;border-left:3px solid var(--ligne);font-size:14px;color:var(--encre-2)}
.poste-of-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
.poste-btn{min-width:150px;min-height:58px;font-size:18px;border-radius:12px}
.poste-go{background:var(--ok);color:#fff}
.poste-pause{border:1px solid var(--bord-champ);background:var(--papier);color:var(--encre)}
.poste-fin{list-style:none;cursor:pointer;background:var(--accent);color:#fff}
.poste-fin::-webkit-details-marker{display:none}
.poste-off{background:var(--ligne-2);color:var(--gris);cursor:not-allowed;font-size:15px}
.poste-deconnexion{min-height:48px;padding:10px 20px;font-size:17px}
/* 0.9.5 : le poste de l'opérateur, maquettes B2 et B1 choisies par Adnan dans Claude Design. Une palette à lui (lisible
   de loin, la même pour tous les thèmes), de grandes zones à toucher ; vert = en travail, jaune et rouge = pause,
   gris = bloqué, bleu = les actions. */
body.mes-poste{--p-fond:#E9ECEF;--p-trait:#C5CBD2;--p-trait-2:#D5DAE0;--p-encre:#121518;--p-gris:#434B54;--p-bleu:#1456B8;
  --p-bleu-f:#0F4699;--p-vert:#12773A;--p-vert-doux:#DCF2E3;--p-vert-plein:#B3E2C3;--p-vert-trait:#8FC7A2;
  --p-vert-texte:#0B4F27;--p-jaune:#FFD84D;--p-jaune-trait:#8A6D00;--p-orange:#B54D00;--p-orange-doux:#FFF4EA;
  --p-orange-texte:#7A3300;--p-rouge:#B42318;--p-rouge-doux:#FDE2DF;--p-bloque:#E1E4E8;
  background:var(--p-fond);color:var(--p-encre)}
.poste-entete{display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px 0}
.poste-cadre{flex:1 1 380px;min-width:0;display:flex;align-items:center;gap:16px;min-height:92px;box-sizing:border-box;
  padding:10px 16px 10px 24px;background:#fff;border:2px solid var(--p-trait);border-radius:16px}
.poste-horloge{justify-content:space-between}
.poste-date{font-size:25px;font-weight:700}
.poste-heure{font-family:Consolas,"SF Mono",Menlo,monospace;font-size:56px;font-weight:700;letter-spacing:-1px;
  font-variant-numeric:tabular-nums}
.poste-avatar{width:60px;height:60px;flex:none;border-radius:50%;background:var(--p-bleu);color:#fff;display:grid;
  place-items:center;font-size:23px;font-weight:800}
.poste-avatar-logo{background:#fff;border:2px solid var(--p-trait)}
.poste-avatar-logo .logo{width:36px;height:36px}
.poste-qui{font-size:inherit}
body.mes-poste .mono{font-size:inherit}
.poste-qui-texte{flex:1;min-width:0;display:flex;flex-direction:column}
.poste-qui-texte b{font-size:26px;font-weight:800;line-height:1.15}
.poste-qui-texte span{font-size:18px;color:var(--p-gris)}
.poste-qui-texte b,.poste-qui-texte span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.mes-poste .poste-page{max-width:none;margin:0;padding:16px 20px 20px}
.poste-pied{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:0 20px 20px;color:var(--p-gris);font-size:14px}
.poste-pied form{display:inline}
/* les boutons */
.poste-bouton{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:0 18px;
  box-sizing:border-box;border-radius:12px;border:2px solid transparent;font:inherit;font-size:19px;font-weight:800;
  line-height:1.15;text-align:center;text-decoration:none;cursor:pointer}
.poste-bouton .ico{width:26px;height:26px;flex:none}
/* 0.9.7 (Adnan : « les contours des boutons, quand c'est vert et rouge ou orange, c'est moche ») : des boutons
   pleins, une seule couleur chacun, sans contour ; les actions secondaires en bleu clair */
.poste-bouton{border:0}
.poste-bouton:active{transform:translateY(1px);filter:brightness(.94)}
.poste-bouton-contour{background:#DCE7F8;color:var(--p-bleu-f)}
.poste-bouton-bleu{background:var(--p-bleu);color:#fff}
.poste-bouton-vert{background:var(--p-vert);color:#fff}
.poste-bouton-jaune{background:var(--p-jaune);color:var(--p-encre)}
.poste-bouton-orange{background:#FFD8B8;color:var(--p-orange-texte)}
.poste-bouton-off,.poste-bouton:disabled{background:#D3D7DC;color:#4A525B;box-shadow:none;cursor:not-allowed}
.poste-deconnexion{min-height:64px;font-size:20px}
/* la page : l'OF en main à gauche, la file à droite */
.poste-b2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;align-items:start}
@media (min-width:1000px),(min-width:900px) and (orientation:landscape){
  .poste-file{position:sticky;top:12px;max-height:calc(100vh - 150px)}
}
@media (max-width:899px),(max-width:999px) and (orientation:portrait){.poste-b2{grid-template-columns:1fr}}
.poste-focus{position:relative;display:flex;flex-direction:column;gap:14px;padding:16px 20px 20px;border:3px solid var(--p-trait);
  border-radius:16px;background:#fff;overflow:hidden}
.poste-focus>*{position:relative;z-index:1}
.poste-focus-plein{position:absolute!important;z-index:0!important;top:0;bottom:0;left:0;background:var(--p-vert-plein);
  transition:width .8s ease}
.poste-focus.etat-travail{border-color:var(--p-vert);background:var(--p-vert-doux)}
/* en pause, la carte clignote jaune et rouge : un calque rouge dont seule l'opacité change (0.9.6 : la tablette ne
   redessine plus toute la carte à chaque image, elle reste rapide) */
.poste-focus.etat-pause{border-color:var(--p-rouge);background:#FFE07A}
.poste-focus.etat-pause::before{content:'';position:absolute;inset:0;z-index:0;background:#F7B0A4;opacity:0;
  animation:poste-pause 2.4s ease-in-out infinite;will-change:opacity;pointer-events:none}
.poste-focus.etat-bloque{background:var(--p-bloque)}
@keyframes poste-pause{0%,100%{opacity:0}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.poste-focus.etat-pause::before{animation:none}}
.poste-focus-pause{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:-16px -20px 0;padding:12px 20px;
  background:var(--p-encre);color:#fff;font-size:22px}
.poste-focus-pause .ico{width:28px;height:28px}
.poste-focus-tete{display:flex;gap:16px}
.poste-focus-photo{width:120px;height:120px;flex:none;box-sizing:border-box;border-radius:12px;border:2px solid var(--p-vert-trait);
  background:#fff;overflow:hidden;display:grid;place-items:center}
.poste-focus-photo img{width:100%;height:100%;object-fit:cover}
.poste-sans-photo{display:grid;place-items:center;color:#8A929B;background:#DDE1E6}
.poste-sans-photo .ico{width:56%;height:56%}
.poste-focus-titres{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.poste-pastilles{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-size:20px}
.poste-pastille{display:inline-flex;align-items:center;height:32px;padding:0 13px;box-sizing:border-box;border-radius:16px;
  font-size:16px;font-weight:800}
.poste-pastille-etat{background:var(--p-bleu);color:#fff}
.etat-travail .poste-pastille-etat{background:var(--p-vert)}
.etat-pause .poste-pastille-etat{background:var(--p-rouge)}
.etat-bloque .poste-pastille-etat{background:#5A626B}
.poste-pastille-urgent{background:var(--p-rouge);color:#fff}
.poste-pastille-retard{background:#F9CFCA;color:#8A1A12}
.poste-pastille-prevenu{margin-left:auto;background:#FFB36B;color:var(--p-encre)}
.poste-focus-op{margin:0;font-size:28px;font-weight:800;line-height:1.12}
.poste-focus-ligne{margin:0;font-size:18px;color:#2E353C}
.poste-focus-vide{gap:8px}
.poste-focus-vide p{margin:0;font-size:18px}
/* B2 : l'étape du procès */
.poste-etape{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:#fff;border:2px solid var(--p-vert-trait);border-radius:14px}
.poste-etape-segments{display:flex;gap:6px}
.poste-etape-segments span{flex:1;height:10px;border-radius:5px;background:var(--p-trait-2)}
.poste-etape-segments span.faite{background:#8A929B}
.poste-etape-segments span.actuelle{background:var(--p-bleu)}
.poste-etape-tete{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 12px}
.poste-etape-n{font-size:17px;font-weight:800;color:var(--p-bleu-f)}
.poste-etape-titre{margin:0;font-size:27px;font-weight:800}
.poste-etape-ensuite{margin:0;font-size:17px;color:#2E353C}
.poste-etape-details{margin:0;padding-left:26px;font-size:20px;line-height:1.35}
.poste-etape-vide{margin:0;font-size:18px;color:var(--p-gris)}
.poste-etape-boutons,.poste-b1-boutons{display:flex;flex-wrap:wrap;gap:10px}
.poste-etape-boutons>*,.poste-b1-boutons>*{flex:1 1 160px}
.poste-etape-boutons form{display:flex}
.poste-etape-boutons form .poste-bouton{flex:1}
/* B1 : la grande photo et ses chiffres */
.poste-b1-corps{display:flex;gap:14px}
.poste-b1-photo{position:relative;width:168px;height:168px;flex:none;box-sizing:border-box;border-radius:14px;
  background:#fff;overflow:hidden;display:grid;place-items:center}
.poste-b1-photo img{width:100%;height:100%;object-fit:cover}
.poste-b1-photo span{position:absolute;left:0;right:0;bottom:0;padding:2px 6px;background:rgba(255,255,255,.85);
  font-size:12px;font-weight:700;text-align:center;color:#3B434C;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.poste-b1-chiffres{flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.sans-photo .poste-b1-chiffres{grid-template-columns:repeat(4,minmax(0,1fr))}
.poste-b1-chiffres>div{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 12px;
  border-radius:12px;background:rgba(18,21,24,.06)}
.poste-b1-chiffres dt{font-size:14px;font-weight:700;color:#3E464F}
.poste-b1-chiffres dd{margin:0;font-size:22px;font-weight:800;line-height:1.15;overflow-wrap:anywhere}
.poste-b1-chiffres .poste-chiffre-retard{background:#F9CFCA}
.poste-b1-chiffres .poste-chiffre-retard dt,.poste-b1-chiffres .poste-chiffre-retard dd{color:#8A1A12}
/* le temps passé */
.poste-temps p{display:flex;justify-content:space-between;gap:12px;margin:0 0 6px;font-size:20px;font-weight:700;color:var(--p-vert-texte)}
.poste-temps b{font-size:26px;white-space:nowrap}
.poste-progression{display:block;height:18px;box-sizing:border-box;background:#fff;border:2px solid var(--p-vert);border-radius:10px;overflow:hidden}
.poste-progression i{display:block;height:100%;background:var(--p-vert);transition:width .8s ease}
.depasse .poste-progression{border-color:var(--p-rouge)}
.depasse .poste-progression i{background:var(--p-rouge)}
.depasse .poste-temps p{color:var(--p-rouge)}
.poste-bloque{display:flex;align-items:center;gap:10px;margin:0;padding:10px 12px;border-radius:10px;background:#fff;font-size:18px;font-weight:700}
.poste-bloque .ico,.poste-mini-bloque .ico{width:24px;height:24px;flex:none}
.poste-actions{display:flex;gap:12px}
.poste-actions>*{flex:1;min-width:0}
.poste-actions .poste-bouton{width:100%;min-height:78px;font-size:24px}
.poste-actions form{display:flex}
.poste-actions .poste-large{flex:2}
/* B2 : la file avec les heures de début */
.poste-file{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;background:#fff;
  border:2px solid var(--p-trait);border-radius:16px;overflow:hidden}
.poste-file-tete{padding:14px 18px 10px;border-bottom:2px solid var(--p-trait-2)}
.poste-file-tete h2{margin:0;font-size:25px;font-weight:800}
.poste-file-tete h2 span{font-size:18px;font-weight:500;color:var(--p-gris)}
.poste-file-tete p{margin:0;font-size:16px;color:var(--p-gris)}
.poste-file-corps{flex:1;min-height:0;overflow:auto;padding:10px 18px;display:flex;flex-direction:column;gap:10px}
.poste-file-jour{display:flex;justify-content:space-between;gap:8px;margin:4px 0 0;font-size:18px;font-weight:800;color:#2E353C}
.poste-file-jour span+span{font-weight:700}
.poste-file-ligne{display:flex;gap:12px}
.poste-file-heure{width:68px;flex:none;padding-top:10px;text-align:right;font-family:Consolas,"SF Mono",Menlo,monospace;
  font-size:18px;font-weight:700}
.poste-mini{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:2px solid var(--p-trait);
  border-radius:12px;background:#fff}
.poste-mini.etat-bloque,.poste-b1-carte.etat-bloque{border-color:#B8BEC6;background:var(--p-bloque);color:#3E454D}
.poste-mini-corps{display:flex;gap:10px;align-items:center}
.poste-mini-corps img,.poste-mini-corps .poste-sans-photo{width:60px;height:60px;flex:none;border-radius:8px;object-fit:cover}
.poste-mini-op,.poste-mini-ligne,.poste-b1-op,.poste-b1-ligne{margin:0}
.poste-mini-op{font-size:19px;font-weight:800;line-height:1.15}
.poste-mini-ligne{font-size:15px;color:#2E353C}
.poste-mini-boutons{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.poste-mini-boutons .poste-bouton,.poste-b1-carte-boutons .poste-bouton{width:100%;min-height:54px;padding:0 8px;font-size:16px}
.poste-mini-boutons form,.poste-b1-carte-boutons form{display:flex}
.poste-mini-bloque{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border-radius:8px;background:#fff;
  font-size:16px;font-weight:800;color:var(--p-encre)}
.poste-file-pied{display:flex;gap:8px;padding:10px 18px;border-top:2px solid var(--p-trait-2)}
.poste-file-pied>*{flex:1;min-height:52px;font-size:16px}
.poste-vide{color:var(--p-gris)}
/* B1 : la file en onglets par jour */
.poste-file-b1{gap:12px;padding:0;background:transparent;border:0;overflow:auto}
.poste-onglets-jours{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.poste-onglet-jour{min-height:72px;box-sizing:border-box;border-radius:12px;border:2px solid #9AA2AB;background:#fff;color:var(--p-encre);
  font:inherit;font-size:20px;font-weight:800;line-height:1.15;display:flex;flex-direction:column;align-items:center;
  justify-content:center;cursor:pointer}
.poste-onglet-jour span{font-size:15px;font-weight:700;color:var(--p-gris)}
.poste-onglet-jour[aria-selected="true"]{border-color:var(--p-encre);background:var(--p-encre);color:#fff}
.poste-onglet-jour[aria-selected="true"] span{color:#C9CED4}
.poste-panneau-jour{display:flex;flex-direction:column;gap:12px}
.poste-b1-carte{display:flex;flex-direction:column;gap:12px;padding:14px;border:2px solid var(--p-trait);border-radius:14px;background:#fff}
.poste-b1-carte-corps{display:flex;gap:14px}
.poste-b1-carte-corps img,.poste-b1-carte-corps .poste-sans-photo{width:116px;height:116px;flex:none;border-radius:12px;object-fit:cover}
.poste-b1-carte-corps>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.poste-b1-op{font-size:22px;font-weight:800;line-height:1.15}
.poste-b1-ligne{font-size:17px;font-weight:700}
.poste-b1-carte-boutons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.poste-file-b1 .poste-file-pied{padding:0;border:0}
.poste-signales{margin-top:16px}
.poste-signales summary{cursor:pointer;font-size:17px;font-weight:700;color:var(--p-bleu-f)}
/* les fenêtres par-dessus l'écran : la pause, les pièces faites, le procès, un problème */
.poste-fenetre{width:min(1040px,96vw);max-height:94vh;padding:0;border:0;border-radius:18px;background:#fff;color:var(--p-encre);
  box-shadow:0 24px 70px rgba(0,0,0,.35)}
.poste-fenetre::backdrop{background:rgba(18,21,24,.66)}
.poste-fenetre-form{display:flex;flex-direction:column;max-height:94vh}
.poste-fenetre-tete{padding:20px 28px 14px;border-bottom:2px solid var(--p-trait-2)}
.poste-fenetre-tete h2{margin:0;font-size:30px;font-weight:800}
.poste-fenetre-tete p{margin:4px 0 0;font-size:19px;color:#2E353C}
.poste-proces-tete{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:12px;background:#fff}
.poste-proces-tete h2{font-size:26px}
.poste-proces-boutons{display:flex;gap:10px}
.poste-legende{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--p-orange-texte)!important}
.poste-legende-carre{width:22px;height:22px;flex:none;box-sizing:border-box;border-radius:6px;background:#FFD8B8}
.poste-tuiles{display:grid;gap:12px;padding:16px 28px;overflow:auto}
.poste-tuiles-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.poste-tuiles-3{grid-template-columns:repeat(3,minmax(0,1fr));padding:0}
.poste-tuile{position:relative;display:flex;align-items:center;gap:14px;min-height:76px;box-sizing:border-box;padding:8px 18px;
  border:2px solid #9AA2AB;border-radius:14px;background:#fff;cursor:pointer}
.poste-tuile input{position:absolute;opacity:0;pointer-events:none}
.poste-tuile-texte{flex:1;display:flex;flex-direction:column}
.poste-tuile-texte b{font-size:22px;font-weight:800;line-height:1.15}
.poste-tuile-texte small{font-size:16px;font-weight:700}
.poste-tuile.alerte{border-color:#FFD8B8;background:#FFD8B8;color:#5C2600}
.poste-tuile-coche{display:none;width:40px;height:40px;flex:none;border-radius:50%;background:var(--p-encre);color:#fff;place-items:center}
.poste-tuile-coche .ico{width:24px;height:24px}
.poste-tuile:has(input:checked){border:5px solid var(--p-encre);padding:5px 15px}
.poste-tuile:has(input:checked) .poste-tuile-coche{display:grid}
.poste-tuile:has(input:focus-visible){outline:3px solid var(--p-bleu);outline-offset:2px}
.poste-fenetre-pied{display:flex;gap:14px;margin-top:auto;padding:16px 28px 22px}
.poste-fenetre-pied>*{flex:1;min-height:70px;font-size:22px}
.poste-fenetre-pied .poste-large{flex:2}
.poste-compteurs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:18px 28px 0}
.poste-compteur{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px}
.poste-compteur.bonnes{background:#E3F4E8}
.poste-compteur.bonnes label{color:var(--p-vert-texte)}
.poste-compteur.rebut{background:#FCE6E3}
.poste-compteur.rebut label{color:#8A1A12}
.poste-compteur label{font-size:22px;font-weight:800}
.poste-compteur-ligne{display:flex;align-items:center;gap:12px}
.poste-compteur-ligne button{width:76px;height:76px;flex:none;border-radius:14px;border:0;background:#DCE7F8;
  color:var(--p-bleu-f);display:grid;place-items:center;cursor:pointer}
.poste-compteur-ligne button[data-pas="1"]{background:var(--p-bleu);color:#fff}
.poste-compteur-ligne .ico{width:32px;height:32px}
.poste-compteur-ligne input{flex:1;min-width:0;height:76px;box-sizing:border-box;border:2px solid #9AA2AB;border-radius:14px;
  background:#fff;color:var(--p-encre);text-align:center;font-family:Consolas,"SF Mono",Menlo,monospace;font-size:44px;font-weight:700}
.poste-total{margin:12px 28px 0;font-size:19px;font-weight:700;color:var(--p-vert-texte)}
.poste-total.trop{color:var(--p-rouge)}
.poste-causes{margin:14px 28px 0;padding:0;border:0}
.poste-causes legend{margin-bottom:10px;padding:0;font-size:22px;font-weight:800}
.poste-causes legend span{font-size:17px;color:#8A1A12}
.poste-proces-corps{padding:6px 28px 24px}
.poste-proces-corps .tableau{display:table;width:100%;margin-bottom:8px}
.poste-proces-article{margin-top:14px;color:#2E353C}
.poste-proces-corps h3{margin-top:18px;font-size:18px}
.poste-etapes{list-style:none;padding:0;display:grid;gap:8px}
.poste-etapes li{padding:10px 12px;border:1px solid var(--p-trait);border-radius:10px}
.poste-etapes li p{margin:0}
.poste-etapes li.actuelle{border:2px solid var(--p-bleu);background:#E6EEFA}
.poste-etapes li.faite{opacity:.6}
.poste-etape-ligne{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px}
.poste-etape-ligne span{color:var(--p-gris);font-size:14px}
.poste-etape-consigne{margin-top:6px!important;padding-left:10px;border-left:3px solid var(--p-trait);font-size:15px}
.poste-proces-docs{padding-left:20px;margin-bottom:20px}
.poste-voir{display:grid;gap:14px}
.poste-voir-tete{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.poste-voir-tete h1{margin:0;font-size:24px}
.poste-voir-image{display:block;max-width:100%;margin:0 auto;border:1px solid var(--p-trait);border-radius:10px;background:#fff}
.poste-voir-pdf{width:100%;height:72vh;border:1px solid var(--p-trait);border-radius:10px;background:#fff}
@media (max-width:760px){
  .poste-heure{font-size:40px}
  .poste-tuiles-2,.poste-tuiles-3,.poste-compteurs{grid-template-columns:1fr}
  /* 0.9.17 (Adnan : « en portrait l'image est trop grande, 40 % de l'écran ») : photo réduite, tuiles à sa droite */
  .poste-b1-corps{align-items:flex-start;gap:10px}
  .poste-b1-photo{width:30%;max-width:150px;height:auto;aspect-ratio:1/1}
  .poste-b1-carte-boutons{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* 0.9.6 : le poste s'adapte à l'écran (Adnan, tablette 11" en paysage : « la carte démarrée ne s'affiche pas
   entièrement »). Sur un écran large, tout tient sans faire défiler la page : l'en-tête, l'OF en main et ses
   boutons ; seuls le détail de l'étape et la file défilent dans leur cadre. Plus l'écran est bas, plus tout se
   resserre (les deux rectangles du haut d'abord) et le secondaire s'efface. */
@media (min-width:1000px),(min-width:900px) and (orientation:landscape){
  body.poste-plein{height:100vh;height:100dvh;height:var(--poste-h,100dvh);display:flex;flex-direction:column;overflow:hidden}
  .poste-plein .poste-entete,.poste-plein .poste-pied{flex:none}
  .poste-plein .poste-pied-tablette{display:none}
  body.poste-plein .poste-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}
  .poste-plein .poste-page>:not(dialog){flex:none;margin:0}
  .poste-plein .poste-page>.poste-b2{flex:1 1 auto;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}
  .poste-plein .poste-page .message{margin:0 0 4px;padding:8px 12px;font-size:15px}
  .poste-plein .poste-focus{min-height:0}
  .poste-plein .poste-focus>*{flex-shrink:0}
  .poste-plein .poste-focus>.poste-etape,.poste-plein .poste-focus>.poste-b1-corps{flex-shrink:1;min-height:0;overflow:hidden}
  .poste-plein .poste-etape>*{flex-shrink:0}
  .poste-plein .poste-etape>.poste-etape-details{flex-shrink:1;min-height:0;overflow:auto}
  .poste-plein .poste-actions{margin-top:auto}
  /* B1 : la photo prend la place libre de la carte (carrée, jusqu'à près de la moitié de la largeur) */
  .poste-plein .poste-focus>.poste-b1-corps:not(.sans-photo){flex:1 1 auto}
  .poste-plein .poste-b1-corps:not(.sans-photo) .poste-b1-photo{width:auto;height:100%;max-width:46%;aspect-ratio:1/1}
  .poste-plein .poste-file{position:static;max-height:none;min-height:0}
  .poste-plein .poste-file-b1{overflow:auto}
}
/* un écran pas très haut (une tablette 10 à 12 pouces en paysage, avec la barre du navigateur) */
@media (max-height:860px){
  .poste-entete{gap:10px;padding:8px 14px 0}
  .poste-cadre{min-height:58px;gap:12px;padding:4px 10px 4px 16px;border-radius:12px}
  .poste-date{font-size:19px}
  .poste-heure{font-size:38px}
  .poste-avatar{width:42px;height:42px;font-size:18px}
  .poste-avatar-logo .logo{width:26px;height:26px}
  .poste-qui-texte b{font-size:21px}
  .poste-qui-texte span{font-size:15px}
  .poste-cadre .poste-deconnexion{min-height:46px;font-size:17px}
  body.mes-poste .poste-page{padding:10px 14px 12px}
  .poste-b2{gap:12px}
  .poste-focus{gap:10px;padding:12px 16px 14px}
  .poste-focus-pause{margin:-12px -16px 0;padding:8px 16px;font-size:19px}
  .poste-focus-tete{gap:12px}
  .poste-focus-photo{width:88px;height:88px}
  .poste-pastilles{gap:6px;font-size:18px}
  .poste-pastille{height:28px;padding:0 11px;font-size:15px}
  .poste-focus-op{font-size:24px}
  .poste-focus-ligne{font-size:16px}
  .poste-focus-op,.poste-focus-ligne{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .poste-etape{gap:8px;padding:10px 14px}
  .poste-etape-segments span{height:8px}
  .poste-etape-n{font-size:15px}
  .poste-etape-titre{font-size:23px}
  .poste-etape-ensuite{font-size:15px}
  .poste-etape-details{font-size:18px;line-height:1.3}
  .poste-bouton{min-height:50px;font-size:17px}
  .poste-bouton .ico{width:22px;height:22px}
  .poste-temps p{margin-bottom:4px;font-size:17px}
  .poste-temps b{font-size:22px}
  .poste-progression{height:14px}
  .poste-bloque{padding:8px 10px;font-size:16px}
  .poste-actions{gap:10px}
  .poste-actions .poste-bouton{min-height:62px;font-size:21px}
  .poste-file-tete{padding:10px 14px 8px}
  .poste-file-tete h2{font-size:21px}
  .poste-file-tete h2 span{font-size:16px}
  .poste-file-tete p{font-size:14px}
  .poste-file-corps{gap:8px;padding:8px 12px}
  .poste-file-jour{font-size:16px}
  .poste-file-heure{width:58px;padding-top:8px;font-size:16px}
  .poste-mini{gap:6px;padding:8px 10px}
  .poste-mini-op{font-size:17px}
  .poste-mini-ligne{font-size:14px}
  .poste-mini-corps img,.poste-mini-corps .poste-sans-photo{width:48px;height:48px}
  .poste-mini-boutons .poste-bouton,.poste-b1-carte-boutons .poste-bouton{min-height:46px;font-size:15px}
  .poste-file-pied{gap:6px;padding:8px 12px}
  .poste-file-pied>*{min-height:46px;padding:0 6px;font-size:14px;white-space:nowrap}
  .poste-b1-corps{gap:12px}
  .poste-b1-photo{width:136px;height:136px}
  .poste-b1-chiffres{gap:6px}
  .poste-b1-chiffres>div{padding:6px 10px}
  .poste-b1-chiffres dt{font-size:13px}
  .poste-b1-chiffres dd{font-size:19px}
  .poste-onglet-jour{min-height:56px;font-size:18px}
  .poste-onglet-jour span{font-size:14px}
  .poste-b1-carte{gap:10px;padding:10px}
  .poste-b1-carte-corps img,.poste-b1-carte-corps .poste-sans-photo{width:84px;height:84px}
  .poste-b1-op{font-size:19px}
  .poste-b1-ligne{font-size:15px}
  /* les fenêtres */
  .poste-fenetre,.poste-fenetre-form{max-height:96vh}
  .poste-fenetre-tete{padding:14px 22px 10px}
  .poste-fenetre-tete h2{font-size:25px}
  .poste-fenetre-tete p{font-size:17px}
  .poste-proces-tete h2{font-size:23px}
  .poste-tuiles{gap:10px;padding:12px 22px}
  .poste-tuiles-3{padding:0}
  .poste-tuile{min-height:60px}
  .poste-tuile-texte b{font-size:20px}
  .poste-tuile-texte small{font-size:15px}
  .poste-compteurs{gap:14px;padding:12px 22px 0}
  .poste-compteur{gap:8px;padding:10px 14px}
  .poste-compteur label{font-size:19px}
  .poste-compteur-ligne button{width:60px;height:60px}
  .poste-compteur-ligne input{height:60px}
  .poste-total{margin:10px 22px 0;font-size:17px}
  .poste-causes{margin:10px 22px 0}
  .poste-causes legend{margin-bottom:8px;font-size:19px}
  .poste-fenetre-pied{gap:10px;padding:12px 22px 16px}
  .poste-fenetre-pied>*{min-height:58px;font-size:19px}
  .poste-proces-corps{padding:4px 22px 18px}
}
/* un écran bas (moins de 700 px de haut : le secondaire s'efface) */
@media (max-height:700px){
  .poste-cadre{min-height:52px}
  .poste-date{font-size:17px}
  .poste-heure{font-size:34px}
  .poste-avatar{width:38px;height:38px;font-size:16px}
  .poste-qui-texte b{font-size:19px}
  .poste-qui-texte span{font-size:14px}
  .poste-cadre .poste-deconnexion{min-height:42px;font-size:16px}
  body.mes-poste .poste-page{padding:8px 14px 8px}
  .poste-focus{gap:8px;padding:10px 14px 12px}
  .poste-focus-pause{margin:-10px -14px 0;padding:6px 14px;font-size:17px}
  .poste-focus-photo{width:72px;height:72px}
  .poste-focus-op{font-size:21px}
  .poste-focus-ligne{font-size:15px}
  .poste-etape{gap:6px;padding:8px 12px}
  .poste-etape-titre{font-size:21px}
  .poste-etape-details{font-size:17px}
  .poste-bouton{min-height:46px;font-size:16px}
  .poste-temps p{font-size:15px}
  .poste-temps b{font-size:19px}
  .poste-progression{height:12px}
  .poste-actions .poste-bouton{min-height:56px;font-size:20px}
  .poste-file-tete p{display:none}
  .poste-b1-photo{width:112px;height:112px}
  .poste-b1-chiffres dd{font-size:17px}
  .poste-fenetre-tete{padding:10px 20px 8px}
  .poste-fenetre-tete h2{font-size:22px}
  .poste-fenetre-tete p{font-size:15px}
  .poste-legende{display:none!important}
  .poste-tuile{min-height:52px}
  .poste-compteur-ligne button{width:52px;height:52px}
  .poste-compteur-ligne input{height:52px}
  .poste-fenetre-pied>*{min-height:52px;font-size:18px}
}
/* 0.9.7 : un écran très bas (une tablette 10-11" en paysage avec la barre de Chrome : 450 à 560 px de haut) */
@media (max-height:590px){
  .poste-entete{gap:8px;padding:6px 12px 0}
  .poste-cadre{min-height:46px;gap:10px;padding:3px 8px 3px 14px;border-radius:10px}
  .poste-date{font-size:16px}
  .poste-heure{font-size:30px}
  .poste-avatar{width:34px;height:34px;font-size:15px}
  .poste-qui-texte b{font-size:17px}
  .poste-qui-texte span{font-size:13px}
  .poste-cadre .poste-deconnexion{min-height:38px;padding:0 12px;font-size:15px}
  body.mes-poste .poste-page,body.poste-plein .poste-page{gap:6px;padding:6px 12px}
  .poste-b2{gap:10px}
  .poste-focus{gap:6px;padding:8px 12px 10px;border-width:2px}
  .poste-focus-pause{margin:-8px -12px 0;padding:5px 12px;font-size:16px}
  .poste-focus-pause .ico{width:22px;height:22px}
  .poste-focus-tete{gap:10px}
  .poste-focus-photo{width:60px;height:60px}
  .poste-pastilles{gap:5px;font-size:16px}
  .poste-pastille{height:24px;padding:0 9px;font-size:13px}
  .poste-focus-op{font-size:19px}
  .poste-focus-ligne{font-size:14px}
  .poste-etape{gap:5px;padding:6px 10px}
  .poste-etape-segments span{height:6px}
  .poste-etape-n{font-size:14px}
  .poste-etape-titre{font-size:19px}
  .poste-etape-ensuite{font-size:14px}
  .poste-etape-details{font-size:16px}
  .poste-bouton{min-height:42px;padding:0 12px;font-size:15px}
  .poste-bouton .ico{width:20px;height:20px}
  .poste-temps p{margin-bottom:3px;font-size:14px}
  .poste-temps b{font-size:17px}
  .poste-progression{height:10px}
  .poste-bloque{padding:6px 8px;font-size:14px}
  .poste-actions{gap:8px}
  .poste-actions .poste-bouton{min-height:50px;font-size:18px}
  .poste-b1-corps{gap:8px}
  .poste-b1-photo{width:88px;height:88px}
  .poste-b1-photo span{display:none}
  .poste-b1-chiffres{gap:4px}
  .poste-b1-chiffres>div{padding:3px 8px;border-radius:8px}
  .poste-b1-chiffres dt{font-size:12px}
  .poste-b1-chiffres dd{font-size:15px}
  .poste-onglets-jours{gap:6px}
  .poste-onglet-jour{min-height:46px;font-size:15px}
  .poste-onglet-jour span{font-size:12px}
  .poste-panneau-jour{gap:8px}
  .poste-b1-carte{gap:8px;padding:8px}
  .poste-b1-carte-corps img,.poste-b1-carte-corps .poste-sans-photo{width:64px;height:64px}
  .poste-b1-op{font-size:17px}
  .poste-b1-ligne,.poste-mini-ligne{font-size:13px}
  .poste-file-tete{padding:6px 12px}
  .poste-file-tete h2{font-size:18px}
  .poste-file-corps{gap:6px;padding:6px 10px}
  .poste-mini-op{font-size:15px}
  .poste-mini-boutons .poste-bouton,.poste-b1-carte-boutons .poste-bouton{min-height:40px;font-size:14px}
  .poste-file-pied{padding:6px 10px}
  .poste-file-pied>*{min-height:40px;padding:0 6px;font-size:13px;line-height:1.1;white-space:normal}
  /* les fenêtres */
  .poste-fenetre-tete{padding:8px 16px 6px}
  .poste-fenetre-tete h2,.poste-proces-tete h2{font-size:20px}
  .poste-fenetre-tete p{font-size:14px}
  .poste-tuiles{gap:8px;padding:8px 16px}
  .poste-tuiles-3{padding:0}
  .poste-tuile{min-height:46px;padding:4px 12px}
  .poste-tuile:has(input:checked){padding:1px 9px}
  .poste-tuile-texte b{font-size:17px}
  .poste-tuile-texte small{font-size:13px}
  .poste-tuile-coche{width:30px;height:30px}
  .poste-compteurs{gap:10px;padding:8px 16px 0}
  .poste-compteur{gap:6px;padding:8px 10px}
  .poste-compteur label{font-size:16px}
  .poste-compteur-ligne button{width:46px;height:46px}
  .poste-compteur-ligne input{height:46px}
  .poste-total{margin:6px 16px 0;font-size:15px}
  .poste-causes{margin:8px 16px 0}
  .poste-causes legend{margin-bottom:6px;font-size:16px}
  .poste-fenetre-pied{gap:8px;padding:8px 16px 10px}
  .poste-fenetre-pied>*{min-height:46px;font-size:16px}
  .poste-proces-corps{padding:4px 16px 12px}
}
/* 0.9.6 : un bouton touché répond tout de suite (barre bleue qui court en haut, bouton grisé) */
body.mes-poste.poste-attente::after{content:'';position:fixed;z-index:60;top:0;left:0;width:40%;height:5px;
  background:var(--p-bleu);animation:poste-attente 1s ease-in-out infinite;pointer-events:none}
@keyframes poste-attente{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
.poste-attente .poste-bouton{pointer-events:none}
.poste-bouton.poste-envoye{opacity:.55}
.poste-fenetre .poste-signalements li{padding:12px 14px;font-size:17px}
/* les photos et les plans des étapes de la gamme (Données techniques) */
.etape-vignette{width:44px;height:33px;object-fit:cover;border-radius:4px;border:1px solid var(--ligne);vertical-align:middle;margin-right:6px}
.etape-cellule{white-space:nowrap}
.etape-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px 28px}
.etape-form .actions{grid-column:1/-1}
.etape-bloc{display:grid;gap:8px;align-content:start}
.etape-bloc h2{margin:0;font-size:17px}
.etape-apercu{max-width:100%;max-height:260px;border-radius:10px;border:1px solid var(--ligne)}
.poste-bloque-aide{flex-basis:100%;margin:0;color:var(--gris);font-size:13px}
.mes-lancer{margin:6px 0 0}
.poste-quantites{display:grid;grid-template-columns:auto 120px;align-items:center;gap:8px 10px;margin-top:10px}
.poste-quantites input{padding:10px;font-size:20px;text-align:right}
.poste-quantites button{grid-column:1/-1;min-height:50px}
.poste-quantites-aide{grid-column:1/-1;margin:0;font-size:13px;color:var(--gris)}
.poste-planning{display:flex;flex-direction:column;gap:10px}
.poste-jour{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:6px 14px;padding:12px 16px;border:1px solid var(--ligne);border-radius:12px;background:var(--papier)}
.poste-jour p{margin:0}
.poste-jour-date b{text-transform:capitalize}
.poste-jour .mes-jauge{width:100%}
.poste-jour ul{grid-column:2;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:14px}
.poste-jour li{display:flex;gap:8px}
.poste-jour-h{margin-left:auto;color:var(--gris);font-variant-numeric:tabular-nums}
.poste-jour.absent{background:var(--violet-doux)}
.poste-jour-absent{color:var(--violet-texte);font-weight:600}
.poste-vide{padding:30px;border:1px dashed var(--ligne);border-radius:14px;background:var(--papier);color:var(--gris);text-align:center;list-style:none}
.badge.urgent{background:var(--danger-doux);color:var(--danger)}
/* étape 2 (0.9.1) : pause avec motif, problème avec photo */
.poste-choix{position:relative}
.poste-choix>summary{list-style:none;cursor:pointer}
.poste-choix>summary::-webkit-details-marker{display:none}
.poste-motifs,.poste-probleme-form{display:grid;gap:8px;margin-top:10px;padding:12px;border:1px solid var(--ligne);border-radius:12px;background:var(--fond);min-width:min(320px,80vw)}
.poste-motifs p{margin:0;font-weight:700}
.poste-motif{justify-content:flex-start;min-height:48px;border:1px solid var(--bord-champ);background:var(--papier);color:var(--encre);font-size:16px}
.poste-motif-alerte{border-color:var(--bord-alerte);background:var(--alerte-doux);color:var(--alerte-texte)}
.poste-probleme{border:1px solid var(--bord-alerte);background:var(--alerte-doux);color:var(--alerte-texte)}
.poste-genres{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;border:0}
.poste-genres legend{margin-bottom:6px;font-weight:700}
.poste-genres label{display:inline-flex;align-items:center;gap:6px;font-size:15px}
.poste-probleme-form textarea{width:100%}
.poste-quantites select{min-width:0;padding:10px;font-size:16px}
.poste-of.poste-of-en-pause{border-color:var(--bord-alerte);box-shadow:0 0 0 3px var(--alerte-doux)}
.poste-en-pause{color:var(--alerte-texte)}
.poste-signaler{margin-top:22px;display:grid;gap:10px}
.poste-signaler h2{margin:8px 0 0;font-size:17px}
.poste-signalements{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.poste-signalements li{padding:10px 12px;border:1px solid var(--ligne);border-radius:10px;background:var(--papier);font-size:14px}
.poste-signalements li.traite{opacity:.8}
.poste-reponse{display:block;margin-top:4px;color:var(--ok);font-weight:600}
.mes-bandeau{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--bord-alerte);border-radius:12px;background:var(--alerte-doux);color:var(--alerte-texte);text-decoration:none}
.mes-bandeau .ico{width:18px;height:18px;flex:none}
.mes-pauses{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 0;font-size:13px;color:var(--gris)}
.mes-pause{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--ligne-2);color:var(--encre-2);font-size:12px}
.mes-pause.alerte{background:var(--alerte-doux);color:var(--alerte-texte);font-weight:600}
.mes-signalements{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.mes-signalement{display:flex;gap:14px;align-items:flex-start;padding:12px;border:1px solid var(--ligne);border-radius:12px}
.mes-signalement-photo img{display:block;width:130px;height:100px;object-fit:cover;border-radius:8px;border:1px solid var(--ligne)}
.mes-signalement-texte{flex:1;min-width:0}
.mes-signalement-texte p{margin:0 0 4px}
.mes-traiter{display:flex;gap:8px;margin-top:8px}
.mes-traiter input{flex:1;min-width:0}
tr.mes-ligne-alerte td{background:var(--alerte-doux)}
/* 0.9.2 : les tablettes de l'atelier (reliées par un code QR), le badge lu par la caméra, les badges à imprimer */
.poste-scanner{margin:22px 0 6px;display:grid;gap:10px}
.poste-scanner-ouvrir{width:100%;min-height:72px;font-size:21px}
.poste-scanner-ouvrir .ico{width:28px;height:28px}
.poste-camera{display:grid;gap:10px}
.poste-camera video{width:100%;max-height:52vh;border-radius:14px;background:#000;object-fit:cover}
.poste-camera-texte{margin:0;color:var(--encre-2)}
.poste-camera-boutons{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.relier{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px 28px;align-items:center}
.relier-qr{padding:14px;background:#fff;border:1px solid var(--ligne);border-radius:12px;line-height:0}
.relier-qr svg{width:260px;height:260px}
.relier-etapes{margin:0;padding-left:20px;display:grid;gap:8px}
.relier-code,.relier .actions{grid-column:1/-1;margin:0}
.relier-code .mono{font-size:1.1em;letter-spacing:.05em;overflow-wrap:anywhere}
.atelier-form{display:flex;gap:10px;margin:16px 0}
.atelier-form input{flex:1;min-width:0;padding:12px;font-size:22px;text-align:center;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--bord-champ);border-radius:10px;background:var(--champ);color:var(--encre)}
.atelier-form .btn{flex:1}
.atelier-form input+.btn{flex:none}
@media (max-width:640px){.relier{grid-template-columns:1fr}.relier-qr{justify-self:center}.relier-qr svg{width:220px;height:220px}}
.feuille.badges{page:badges;padding:10mm 12mm;display:grid;grid-template-columns:repeat(2,85.6mm);grid-auto-rows:54mm;gap:2mm 6mm;
  justify-content:center;align-content:start}
.badge-carte{box-sizing:border-box;display:flex;align-items:center;gap:3mm;padding:4mm;border:.3mm dashed #999;border-radius:3mm;
  overflow:hidden;break-inside:avoid}
.badge-texte{flex:1;min-width:0}
.badge-texte p{margin:0}
.badge-societe{font-size:7.5pt;color:#555;text-transform:uppercase;letter-spacing:.04em}
.badge-nom{margin:2mm 0 1mm!important;font-size:14pt;font-weight:700;line-height:1.15;overflow-wrap:anywhere}
.badge-secteur{font-size:9pt;color:#333}
.badge-numero{margin-top:3mm!important;font-size:9pt}
.badge-numero b{font-size:13pt;letter-spacing:.05em}
.badge-qr{flex:none;width:30mm;height:30mm;line-height:0}
.badge-qr svg{width:100%;height:100%}
.barre-impression .ligne-form select{min-width:180px}
@page badges{size:A4;margin:8mm}
@media print{.feuille.badges{padding:0}}
@media screen and (max-width:860px){.feuille.badges{width:auto;min-height:0;margin:0;grid-template-columns:repeat(auto-fill,85.6mm)}}
/* 0.9.3 : 2 badges carte d'identité par étiquette d'envoi 100 × 150 mm (une étiquette = une page), à découper */
.badges-etiquettes{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;padding:18px}
.badge-planche{page:e100x150;box-sizing:border-box;width:100mm;height:150mm;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:10mm;background:#fff;color:#111;border:1px solid #c9ced6;break-after:page;break-inside:avoid}
.badge-planche .badge-carte{flex:none;width:85.6mm;height:54mm;border-color:#555}   /* le trait de découpe, net en thermique */
@page e100x150{size:100mm 150mm;margin:0}
@media print{
  body.impression .badges-etiquettes{display:block;padding:0}
  .badge-planche{border:0}
  .badge-planche:last-child{break-after:auto}
}
/* 0.9.3 (étape 3) : l'écran de l'atelier (sombre, lisible de loin, quel que soit le thème), le TRS et les pertes */
body.mes-direct{--d-fond:#0f1622;--d-carte:#1a2433;--d-texte:#e8eef7;--d-gris:#93a1b5;--d-trait:#2a3648;--d-marche:#4ade80;
  --d-arret:#fb923c;--d-pause:#facc15;--d-absent:#a78bfa;--d-libre:#4f6380;
  margin:0;min-height:100vh;background:var(--d-fond);color:var(--d-texte);font-size:16px}
.direct-barre{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;padding:12px 20px;border-bottom:1px solid var(--d-trait)}
.direct-marque{display:flex;align-items:center;gap:8px;font-size:17px}
.direct-marque .logo{width:28px;height:28px}
.direct-titre{color:var(--d-gris)}
.direct-filtres{display:flex;flex-wrap:wrap;gap:6px}
.direct-filtres a{padding:5px 12px;border:1px solid var(--d-trait);border-radius:999px;color:var(--d-gris);text-decoration:none;font-size:14px}
.direct-filtres a[aria-current]{border-color:#6aa3ec;background:#1c5cab;color:#fff}
.direct-droite{margin-left:auto;display:flex;align-items:center;gap:10px}
.direct-heure{font-size:26px;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.direct-bouton{padding:6px 12px;border:1px solid var(--d-trait);border-radius:8px;background:transparent;color:var(--d-gris);font-size:14px;text-decoration:none;cursor:pointer}
.direct-reseau{margin:0;padding:8px 20px;background:#3a1f12;color:#fed7aa}
.direct-page{padding:16px 20px 30px}
.direct-grille{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.direct-blocs{display:grid;gap:18px;min-width:0}
.direct-secteur-tete{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:0 0 10px}
.direct-secteur-tete h2{margin:0;font-size:22px}
.direct-compte{color:var(--d-gris)}
.direct-compte b{color:var(--d-marche);font-size:20px}
.direct-compte-arret b{color:var(--d-arret)}
.direct-trs{margin-left:auto;padding:4px 12px;border-radius:999px;background:var(--d-carte);color:var(--d-gris)}
.direct-trs b{color:var(--d-texte);font-size:20px;margin-left:4px}
.direct-trs.niveau-bon b{color:var(--d-marche)}.direct-trs.niveau-moyen b{color:var(--d-pause)}.direct-trs.niveau-faible b{color:var(--d-arret)}
.direct-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.direct-tuile{display:grid;gap:5px;align-content:start;min-width:0;padding:12px 14px;border-radius:12px;background:var(--d-carte);border-top:6px solid var(--d-libre)}
.direct-tuile p{margin:0;overflow-wrap:anywhere}
.direct-tuile.etat-marche{border-top-color:var(--d-marche)}
.direct-tuile.etat-arret{border-top-color:var(--d-arret);background:#2a1d17}
.direct-tuile.etat-pause{border-top-color:var(--d-pause)}
.direct-tuile.etat-absent{border-top-color:var(--d-absent)}
.direct-tuile.etat-fini{opacity:.75}
.direct-tuile-tete{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.direct-tuile-tete b{font-size:18px}
.direct-tuile-tete span{color:var(--d-gris);font-size:13px;text-align:right}
.direct-tuile.etat-marche .direct-tuile-tete span{color:var(--d-marche)}
.direct-tuile.etat-arret .direct-tuile-tete span,.direct-tuile.etat-arret .direct-motif{color:var(--d-arret);font-weight:700}
.direct-tuile.etat-pause .direct-tuile-tete span{color:var(--d-pause)}
.direct-of{font-size:15px}
.direct-of .mono{color:var(--d-gris)}
.direct-article,.direct-prochain,.direct-chiffres{color:var(--d-gris);font-size:13px}
.direct-chiffres{display:flex;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums}
.direct-avance{display:block;height:10px;border-radius:99px;background:var(--d-trait);overflow:hidden}
.direct-avance i{display:block;height:100%;border-radius:99px;background:var(--d-marche)}
.direct-tuile.etat-depasse .direct-avance i{background:var(--d-arret)}
.direct-tuile.etat-depasse .direct-chiffres span:first-child{color:var(--d-arret);font-weight:700}
.direct-vide{color:var(--d-gris)}
.direct-alertes{position:sticky;top:12px;padding:14px;border-radius:12px;background:var(--d-carte)}
.direct-alertes h2{display:flex;justify-content:space-between;margin:0 0 10px;font-size:18px}
.direct-alertes h2 span{color:var(--d-arret)}
.direct-alertes ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.direct-alerte{display:grid;gap:2px;padding:8px 10px;border-left:4px solid var(--d-libre);border-radius:6px;background:var(--d-fond);font-size:14px}
.direct-alerte span{color:var(--d-gris);font-size:13px;overflow-wrap:anywhere}
.direct-alerte.alerte-probleme,.direct-alerte.alerte-arret{border-left-color:var(--d-arret)}
.direct-alerte.alerte-oubli,.direct-alerte.alerte-depasse,.direct-alerte.alerte-rebut{border-left-color:var(--d-pause)}
.direct-alerte.alerte-retard{border-left-color:#6aa3ec}
.direct-alerte.alerte-rien{border-left-color:var(--d-marche)}
.direct-maj{margin:18px 0 0;color:var(--d-gris);font-size:12px}
@media (max-width:980px){.direct-grille{grid-template-columns:1fr}.direct-alertes{position:static}}
.mes-trs-barre{white-space:nowrap}
.mes-trs-barre b{margin-left:8px}
.mes-jauge.niveau-bon i{background:var(--ok)}.mes-jauge.niveau-moyen i{background:var(--alerte)}.mes-jauge.niveau-faible i{background:var(--danger)}
.mes-trs tfoot th,.mes-trs tfoot td{border-top:2px solid var(--ligne);font-weight:700}
.mes-pertes-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:0 18px}
.mes-pertes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mes-pertes li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:10px;font-size:14px}
.mes-pertes-barre{display:block;height:10px;border-radius:99px;background:var(--ligne-2);overflow:hidden}
.mes-pertes-barre i{display:block;height:100%;background:var(--alerte)}
.mes-pertes-barre.rebut i{background:var(--danger)}
.mes-of-fin{color:var(--gris)}
.mes-of-fin.retard{color:var(--danger);font-weight:600}
.mes-chiffre-trs.niveau-bon b{color:var(--ok)}.mes-chiffre-trs.niveau-moyen b{color:var(--alerte-texte)}.mes-chiffre-trs.niveau-faible b{color:var(--danger)}
.mes-alertes{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px}
.mes-alertes li{padding:8px 12px;border-left:4px solid var(--bord-alerte);border-radius:8px;background:var(--papier);font-size:14px}
.mes-alertes li.alerte-retard{border-left-color:var(--accent)}
.mes-alertes li span{color:var(--gris)}
@media (max-width:600px){
  .poste-jour{grid-template-columns:1fr}
  .poste-jour ul{grid-column:1}
  .poste-of-actions{width:100%}
  .poste-btn{flex:1;min-width:0}
}
/* ---------------- le carnet de test du super-administrateur (0.8.8) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.carnet-bouton{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:6px;padding:9px 15px;
  border-radius:999px;border:1px solid var(--accent);background:var(--papier);color:var(--accent-fonce);font-size:13px;
  box-shadow:0 6px 18px rgba(16,24,40,.18)}
.carnet-bouton .ico{width:16px;height:16px}
.carnet-bouton:hover{background:var(--accent);color:#fff}
html.dans-apercu .carnet-bouton{display:none}
dialog.carnet-dialogue{width:min(520px,94vw);padding:0;border:0;border-radius:14px;background:var(--papier);color:var(--encre);
  box-shadow:0 24px 70px rgba(0,0,0,.35)}
dialog.carnet-dialogue::backdrop{background:rgba(12,18,28,.45)}
.carnet-form{display:flex;flex-direction:column;gap:12px;padding:18px}
.carnet-tete{display:flex;align-items:center;justify-content:space-between;gap:10px}
.carnet-tete h2{margin:0;display:flex;align-items:center;gap:8px;font-size:17px}
.carnet-ou{margin:0;overflow-wrap:anywhere}
.carnet-genres{display:flex;flex-wrap:wrap;gap:6px 16px;border:0;margin:0;padding:0}
.carnet-genres label{display:inline-flex;align-items:center;gap:6px;font-size:14px}
.carnet-form textarea{width:100%;resize:vertical}
.carnet-capture{display:flex;flex-direction:column;gap:8px;padding:10px;border:1.5px dashed var(--bord-champ);border-radius:10px;font-size:13px}
.carnet-capture.colle{border-color:var(--accent);background:var(--accent-doux)}
.carnet-apercu{max-height:180px;object-fit:contain;border-radius:6px;background:var(--fond)}
.carnet-boutons{display:flex;gap:8px;justify-content:flex-end}
.carnet-liste{list-style:none;margin:0;padding:0}
.carnet-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:14px 0;border-top:1px solid var(--ligne)}
.carnet-note:first-child{border-top:0;padding-top:4px}
.carnet-texte{min-width:0}
.carnet-texte p{margin:0 0 6px}
.carnet-meta{font-size:12.5px;color:var(--gris)}
.carnet-reponse{padding:8px 10px;border-radius:8px;background:var(--ok-doux);font-size:13.5px}
.carnet-vignette img{display:block;width:180px;max-width:100%;max-height:120px;object-fit:cover;border:1px solid var(--ligne);border-radius:8px}
.carnet-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.carnet-actions form{display:inline}
.carnet-fait .carnet-texte,.carnet-abandon .carnet-texte{opacity:.7}
.badge.carnet-genre-corriger{background:var(--danger-doux);color:var(--danger)}
.badge.carnet-genre-ameliorer{background:var(--alerte-doux);color:var(--alerte-texte)}
.badge.carnet-genre-idee{background:var(--accent-doux);color:var(--accent-fonce)}
.carnet-grande{max-width:100%;border:1px solid var(--ligne);border-radius:8px}
@media (max-width:640px){.carnet-note{grid-template-columns:1fr}.carnet-bouton span{display:none}}
@media print{.carnet-bouton{display:none}}
/* ---------------- les KPI en tête des vues d'ensemble (0.8.0) */
.kpi-module{display:grid;gap:6px;margin:0 0 18px}
.kpi-module.chargement{min-height:0;margin:0}
.kpi-module .kpi-grille{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.kpi-module-lien{justify-self:end;font-size:13px}
/* ---------------- le bandeau du PDP (0.8.0) */
.pdp-bandeau{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 18px}
.pdp-bandeau .chiffre{padding:12px 14px}
.pdp-bandeau .chiffre.actif{border-color:var(--accent);background:var(--accent-doux)}
.pdp-tenue{--kc:var(--gris);grid-column:span 2;display:grid;gap:4px;align-content:start;padding:12px 14px;border:1px solid var(--ligne);
  border-left:4px solid var(--kc);border-radius:var(--rayon);background:var(--papier);color:var(--encre);text-decoration:none}
.pdp-tenue>span:first-child{font-size:12.5px;color:var(--gris)}
.pdp-tenue b{font-size:28px;color:var(--kc);font-variant-numeric:tabular-nums}
.pdp-tenue .remplie{background:var(--kc)}
.pdp-tenue em{font-style:normal;font-size:12px;color:var(--gris)}
.pdp-tenue.kpi-vert,.pdp-prevision.kpi-vert{--kc:var(--ok)}.pdp-tenue.kpi-orange,.pdp-prevision.kpi-orange{--kc:var(--alerte)}
.pdp-tenue.kpi-rouge,.pdp-prevision.kpi-rouge{--kc:var(--danger)}
.pdp-prevision b{color:var(--kc,var(--encre))}
.pdp-prevision.kpi-gris b{font-size:15px;color:var(--gris)}
.carte-pdp-mois{display:grid;gap:6px;align-content:start}
.carte-pdp-mois>.badge{justify-self:start}
@media (max-width:520px){.pdp-tenue{grid-column:auto}}
/* ---------------- production */
.tableau.charge td{vertical-align:middle}
.case-charge{min-width:92px}
.barre-charge{position:relative;display:block;height:8px;border-radius:4px;background:var(--ligne-2);overflow:hidden}
.barre-charge .remplie{display:block;height:100%;background:var(--ok);border-radius:4px}
/* la maladie (0.7.5) : hachurée, depuis la droite de la barre, par-dessus la charge */
.barre-charge .maladie,.legende-maladie{background:repeating-linear-gradient(135deg,var(--c-violet) 0 3px,transparent 3px 5px)}
.barre-charge .maladie{position:absolute;top:0;right:0;height:100%;border-left:1px solid var(--c-violet)}
.legende-maladie{display:inline-block;width:22px;height:8px;border-radius:3px;vertical-align:middle;
  border:1px solid var(--c-violet)}
.ligne-maladie td{color:var(--c-violet)}
.chiffre-maladie{display:block;font-size:11.5px;color:var(--c-violet);white-space:nowrap}
.case-charge.pleine .remplie{background:var(--alerte)}
.case-charge.surcharge .remplie{background:var(--danger)}
.chiffre-charge{display:block;font-size:12px;color:var(--gris);margin-top:3px;white-space:nowrap}
.palier-0{width:0}.palier-1{width:10%}.palier-2{width:20%}.palier-3{width:30%}.palier-4{width:40%}.palier-5{width:50%}
.palier-6{width:60%}.palier-7{width:70%}.palier-8{width:80%}.palier-9{width:90%}.palier-10{width:100%}
.avancement{display:inline-block;width:80px;vertical-align:middle}
.poste-badge{max-width:620px;margin:0 auto}
.poste-badge input[name=badge]{font-size:28px;text-align:center;letter-spacing:.1em;padding:14px}
.poste-badge .actions .btn{flex:1 1 200px;padding:16px;font-size:17px}
.op-badge{border:2px solid var(--accent);border-radius:var(--rayon);padding:16px;margin:0 0 16px;background:var(--accent-doux)}
.op-badge h2{margin:0 0 4px}
.confirmer .form-terminer{min-width:290px}
.confirmer .form-terminer .champ{margin:0 0 8px}
.tableau tr.sous-ligne td{border-top:0;padding-top:0}
.barre-liste .titre-inline{margin:0 auto 0 0;display:flex;align-items:center;gap:9px}
.barre-liste form{display:flex;gap:6px;align-items:center}
/* fiche suiveuse (A4 portrait, allégée) */
.fs-tete{display:flex;justify-content:space-between;align-items:flex-start;margin:0 0 5mm}
.fs-titre{font-size:9pt;text-transform:uppercase;letter-spacing:.1em;color:#555;margin:2mm 0 0}
.fs-numero{font-family:Consolas,monospace;font-size:22pt;font-weight:700;margin:0}
.fs-qr{text-align:center;font-size:7pt;color:#555}
.fs-qr svg{width:24mm;height:24mm;display:block}
.fs-infos{width:100%;border-collapse:collapse;font-size:9.5pt;margin:0 0 5mm}
.fs-infos th{text-align:left;font-weight:400;color:#555;padding:1.5mm 3mm 1.5mm 0;width:22mm;font-size:8pt;text-transform:uppercase}
.fs-infos td{padding:1.5mm 4mm 1.5mm 0;border-bottom:.5pt solid #ddd}
.fs-section{font-size:9pt;text-transform:uppercase;letter-spacing:.08em;margin:5mm 0 2mm;color:#333}
.fs-ops,.fs-comp{width:100%;border-collapse:collapse;font-size:9pt}
.fs-ops th,.fs-comp th{text-align:left;font-size:7pt;text-transform:uppercase;color:#555;border-bottom:1pt solid #111;padding:0 1.5mm 1mm}
.fs-ops td,.fs-comp td{padding:2mm 1.5mm;border-bottom:.5pt solid #bbb;vertical-align:top}
.fs-n{font-weight:700;font-size:11pt}
.fs-case{width:14mm;border-left:.5pt solid #ddd}
.fs-visa{width:26mm;border-left:.5pt solid #ddd}
.fs-qr-op svg{width:16mm;height:16mm;display:block}
/* ---------------- MRP */
.tableau tr.a-verifier td{background:var(--alerte-doux)}
.tableau tr.ligne-proposition td{background:var(--accent-doux)}
/* ---------------- SAV */
.colonnes-statut{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:0 0 18px}
.colonne-statut{padding:14px;margin:0}
.colonne-statut h2{font-size:14px;margin:0 0 10px}
.carte-dossier{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid var(--ligne);border-radius:10px;
  margin:0 0 8px;text-decoration:none;color:var(--encre);font-size:13.5px}
.carte-dossier:hover{border-color:var(--accent);background:var(--accent-doux)}
.carte-dossier.en-retard{border-color:#f0b4ae;background:var(--danger-doux)}
/* ---------------- graphiques en colonnes (sans lignes horizontales) */
.positif{color:var(--ok)}
.colonnes-graphique{display:flex;align-items:flex-end;gap:8px;height:190px;padding:8px 0 0;overflow-x:auto}
.colonne-graphique{flex:1 0 34px;max-width:64px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.colonne-graphique .valeur{font-size:11px;color:var(--encre-2);margin:0 0 3px;white-space:nowrap}
.colonne-graphique .baton{display:block;width:100%;border-radius:6px 6px 2px 2px;background:var(--c-bleu);min-height:2px}
.colonne-graphique.reel .baton{background:var(--c-vert)}
.colonne-graphique.actuel .baton{background:var(--accent)}
.colonne-graphique.faible .baton{background:var(--gris-2)}
.colonne-graphique .legende{font-size:11px;color:var(--gris);margin-top:4px;white-space:nowrap}
.palier-h-0{height:2px}.palier-h-1{height:13px}.palier-h-2{height:26px}.palier-h-3{height:39px}.palier-h-4{height:52px}
.palier-h-5{height:65px}.palier-h-6{height:78px}.palier-h-7{height:91px}.palier-h-8{height:104px}.palier-h-9{height:117px}
.palier-h-10{height:130px}
/* ---------------- tableaux de bord */
.bloc-tableau h3{margin:18px 0 8px}
.tuiles-ecart{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.tuile-ecart{border:1px solid var(--ligne);border-radius:12px;padding:12px 14px}
.tuile-ecart span{display:block;font-size:12.5px;color:var(--gris)}
.tuile-ecart b{display:block;font-size:22px;margin-top:4px}
.tuile-ecart.hausse{background:var(--ok-doux);border-color:#bfe3c9}
.tuile-ecart.hausse b{color:var(--ok)}
.tuile-ecart.baisse{background:var(--danger-doux);border-color:#f0c2bc}
.tuile-ecart.baisse b{color:var(--danger)}
svg.courbe{width:100%;height:auto;max-height:220px;display:block}
.correspondance{margin:0 0 16px;padding:12px;border:1px solid var(--ligne);border-radius:12px;background:var(--fond)}
.correspondance h3{margin:0 0 4px}
.correspondance select{padding:6px 8px;font-size:14px}
/* ---------------- pilotage de production (PDP, atelier, OF, charge, tableau de bord, ventes, budget) */
.chiffre em{display:block;font-style:normal;font-size:12px;color:var(--gris);margin-top:3px}
.vide-pilotage p{color:var(--encre-2);max-width:760px}
.barre-exercice{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px}
.barre-exercice span{font-size:12.5px;color:var(--gris);margin-right:4px}
.barre-exercice a{padding:5px 13px;border-radius:999px;border:1px solid var(--ligne);background:var(--papier);color:var(--encre-2);text-decoration:none;font-weight:700;font-size:13px}
.barre-exercice a.courant{border-color:var(--accent)}
.barre-exercice a.actif{background:var(--accent);border-color:var(--accent);color:#fff}
.barre-mois{display:grid;grid-template-columns:repeat(12,minmax(62px,1fr));gap:6px;margin:0 0 18px;overflow-x:auto;padding-bottom:2px}
.barre-mois a{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border:1px solid var(--ligne);border-radius:10px;background:var(--papier);text-decoration:none;color:var(--encre)}
.barre-mois a span{font-size:12px;color:var(--gris)}
.barre-mois a b{font-size:18px;line-height:1.3}
.barre-mois a em{font-style:normal;font-size:11px;color:var(--gris)}
.barre-mois a.passe{background:var(--ligne-2)}
.barre-mois a.courant{border-color:var(--accent)}
.barre-mois a.retard b{color:var(--danger)}
.barre-mois a.actif{background:var(--accent);border-color:var(--accent);color:#fff}
.barre-mois a.actif span,.barre-mois a.actif em,.barre-mois a.actif.retard b{color:#fff}
.entete-mois{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:0 0 14px}
.entete-mois h2{margin:0}
.entete-mois span{color:var(--gris);font-size:13.5px}
.entete-mois span b{color:var(--encre)}
.entete-mois span.retard{color:var(--danger);font-weight:700}
.cartes-pdp{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.carte-pdp{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);overflow:hidden;display:flex;flex-direction:column;break-inside:avoid}
.carte-pdp-photo{position:relative;aspect-ratio:4/3;background:var(--ligne-2);display:flex;align-items:center;justify-content:center}
.carte-pdp-photo img{width:100%;height:100%;object-fit:contain;background:var(--papier)}
.carte-pdp-photo .ico{width:54px;height:54px;color:var(--gris-2)}
.carte-pdp-qte{position:absolute;top:10px;right:10px;background:var(--accent);color:#fff;border-radius:999px;padding:3px 11px;font-weight:800;font-size:15px}
.carte-pdp-qte small{font-weight:600;opacity:.85;font-size:12px}
.carte-pdp-texte{padding:12px 14px 14px;display:flex;flex-direction:column;gap:3px;flex:1}
.carte-pdp-famille{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);font-weight:700}
.carte-pdp-texte b{font-size:14.5px;line-height:1.3}
.carte-pdp-texte .mono{font-size:12px;color:var(--encre-2)}
.carte-pdp-refs{font-size:11.5px;color:var(--gris);margin:4px 0 0;line-height:1.45}
.carte-pdp .btn{align-self:flex-start;margin-top:8px}
.carte-pdp.retard{border-color:#efb3ab}
.carte-pdp.retard .carte-pdp-qte{background:var(--danger)}
.carte-pdp.prevision{border-color:#e2c9a6;background:#fdf8f1}
.carte-pdp.prevision .carte-pdp-qte{background:#8c6239}
.carte-pdp.couverte .carte-pdp-qte{background:#4a5f7a}
.carte-pdp.couverte .carte-pdp-photo img{filter:saturate(.6)}
.pastilles{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.pastille{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--ligne-2);color:var(--encre-2);white-space:nowrap}
.pastille.expedie{background:#e7ecf2;color:#4a5f7a}
.pastille.magasin{background:var(--ok-doux);color:var(--ok)}
.pastille.fabrication{background:var(--violet-doux);color:var(--violet-texte)}
.pastille.lancer{background:var(--alerte-doux);color:var(--alerte-texte)}
.pastille.prevision{background:#f6ecdf;color:#8c6239}
.pastille.retard{background:var(--danger-doux);color:var(--danger)}
details.couvertes{margin-top:18px}
details.couvertes summary{cursor:pointer;font-weight:700;color:var(--encre-2);margin-bottom:12px}
.aller-famille{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}
.tableau-annuel th,.tableau-annuel td{text-align:right;white-space:nowrap}
.tableau-annuel th:first-child,.tableau-annuel td:first-child{text-align:left;white-space:normal;min-width:210px}
.tableau-annuel th.courant{color:var(--accent)}
.tableau-annuel th.passe{color:var(--gris-2)}
.tableau-annuel td .sous{display:block;font-size:11px;font-weight:400}
.tableau-annuel td.vide-case{color:var(--gris-2)}
.tableau-annuel td.retard b{color:var(--danger)}
.tableau-annuel td.prevision b{color:#8c6239}
.tableau-annuel tr.total td{font-weight:800;border-top:2px solid var(--ligne)}
.tableau-annuel tr.dont-prevision td{color:#8c6239;font-size:12.5px}
@media print{
  body.app .barre,body.app .menu-gauche,body.app .pied,body.app .actions,body.app .barre-mois,body.app details.couvertes:not([open]),
  body.app .aller-famille,body.app .btn{display:none!important}
  body.app .corps{display:block}
  body.app .page{padding:0;max-width:none}
  body.app .carte{box-shadow:none;break-inside:auto}
  .cartes-pdp{grid-template-columns:repeat(4,1fr);gap:8px}
  @page{size:A4;margin:10mm}
}
.jauge-mini{display:block;height:6px;border-radius:99px;background:var(--ligne-2);overflow:hidden;margin:6px 0 2px}
.jauge-mini span{display:block;height:100%;background:var(--c-violet);border-radius:99px}
.colonnes-atelier{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start;margin:0 0 18px}
.colonne-atelier{background:var(--ligne-2);border-radius:var(--rayon);padding:12px}
.colonne-atelier h2{font-size:16px;margin:2px 4px 2px;display:flex;align-items:center;gap:8px}
.colonne-atelier h2 em{font-style:normal;font-size:12px;background:var(--papier);border-radius:99px;padding:1px 9px;color:var(--encre-2)}
.colonne-atelier>.aide{margin:0 4px 10px}
.colonne-atelier.en_cours{background:#efeafd}
.carte-of{background:var(--papier);border:1px solid var(--ligne);border-radius:12px;padding:12px;margin:0 0 10px}
.carte-of.retard{border-color:#efb3ab}
.carte-of.manque{box-shadow:inset 3px 0 0 var(--danger)}
.carte-of-tete{display:flex;align-items:center;gap:10px}
.carte-of-tete img,.carte-of-vignette{width:54px;height:40px;object-fit:contain;border-radius:8px;background:var(--ligne-2);flex:none;display:grid;place-items:center}
.carte-of-vignette .ico{width:22px;height:22px;color:var(--gris-2)}
.carte-of-tete div{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.carte-of-tete b{font-size:13.5px}
.carte-of-tete .mono{font-size:11.5px;color:var(--gris)}
.carte-of-qte{background:var(--c-violet);color:#fff;border-radius:99px;padding:2px 10px;font-weight:800}
.carte-of.retard .carte-of-qte{background:var(--danger)}
.carte-of-ligne{margin:6px 0 0;font-size:12.5px;color:var(--encre-2)}
.carte-of-ligne .sous{display:inline;margin-left:6px}
.carte-of-ligne.retard{color:var(--danger);font-weight:700}
.carte-of-manques{margin:8px 0 0;padding:8px 10px;list-style:none;background:var(--danger-doux);border-radius:8px;font-size:12.5px}
.carte-of-manques li .sous{display:block}
.onglets-page{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;border-bottom:1px solid var(--ligne);padding-bottom:10px}
.onglets-page a{padding:7px 13px;border-radius:10px;text-decoration:none;color:var(--encre-2);font-weight:700;font-size:13.5px;border:1px solid transparent}
.onglets-page a em{font-style:normal;font-size:11.5px;background:var(--ligne-2);border-radius:99px;padding:1px 7px;margin-left:4px;color:var(--gris)}
.onglets-page a:hover{background:var(--papier);border-color:var(--ligne)}
.onglets-page a.actif{background:var(--accent);color:#fff}
.onglets-page a.actif em{background:rgba(255,255,255,.2);color:#fff}
.recherche-of{display:flex;gap:8px;align-items:center}
.recherche-of input{padding:9px 12px;border:1px solid var(--ligne);border-radius:10px;min-width:240px;font:inherit}
.grille-ateliers{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:0 0 18px}
.carte-atelier{display:flex;flex-direction:column;gap:3px;background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:14px 16px;text-decoration:none;color:var(--encre)}
.carte-atelier:hover{border-color:var(--c-teal)}
.carte-atelier b{font-size:15px}
.carte-atelier span{font-size:12.5px;color:var(--gris)}
.carte-atelier em{font-style:normal;font-weight:800;color:var(--c-teal);font-size:15px}
.liste-of{display:flex;flex-direction:column;gap:6px}
.of-trace{border:1px solid var(--ligne);border-radius:12px;background:var(--papier)}
.of-trace.retard{border-color:#efb3ab}
.of-trace summary{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1.6fr) minmax(180px,1.6fr) 110px 120px;gap:12px;align-items:center;padding:10px 14px;cursor:pointer;list-style:none}
.of-trace summary::-webkit-details-marker{display:none}
.of-trace summary .sous{display:block}
.of-num{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.of-av{font-size:12px;color:var(--gris)}
.of-fin.retard{color:var(--danger);font-weight:700}
.of-detail{padding:0 14px 14px;border-top:1px solid var(--ligne-2)}
.of-detail .tableau{margin:10px 0}
tr.op-courante td{background:#f1ecfd}
@media (max-width:860px){
  .colonnes-atelier{grid-template-columns:1fr}
  .of-trace summary{grid-template-columns:1fr 1fr}
  .recherche-of input{min-width:0;flex:1}
}
/* graphiques du pilotage (6 modèles : cadre, colonnes, tuiles, courbes, cumul, écarts) : ni axe ni lignes */
.graphique{margin:0 0 20px}
.graphique figcaption{display:flex;flex-direction:column;gap:2px;margin:0 0 10px}
.graphique figcaption b{font-size:14px}
.graphique figcaption span{font-size:13.5px;color:var(--encre-2)}
.colonnes-pilotage{display:flex;align-items:flex-end;gap:8px;min-height:180px;overflow-x:auto;padding-top:6px}
.colonne-pilotage{flex:1 0 44px;max-width:80px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.colonne-pilotage .valeur{font-size:11px;color:var(--encre-2);margin:0 0 3px;white-space:nowrap}
.colonne-pilotage .valeur i{font-style:normal;color:var(--gris-2)}
.colonne-pilotage .pile{position:relative;display:block;width:100%}
.colonne-pilotage .cadre-obj{position:absolute;left:0;right:0;bottom:0;border:2px solid var(--objectif-bord);border-radius:7px 7px 3px 3px;background:var(--objectif-fond)}
.colonne-pilotage .pile .rempli{position:absolute;left:5px;right:5px;bottom:0;border-radius:4px 4px 1px 1px}
.colonne-pilotage .rempli{display:block;background:var(--accent)}
.colonne-pilotage .rempli.seul{width:100%;border-radius:6px 6px 2px 2px}
.colonne-pilotage .duo{display:flex;align-items:flex-end;gap:3px;width:100%}
.colonne-pilotage .duo span{flex:1;border-radius:4px 4px 1px 1px}
.colonne-pilotage .duo .obj{background:var(--objectif)}
.colonne-pilotage.atteint .rempli{background:var(--ok)}
.colonne-pilotage.proche .rempli{background:#e0a100}
.colonne-pilotage.loin .rempli{background:var(--danger)}
.sens-moins .colonne-pilotage.atteint .rempli{background:var(--accent)}
.colonne-pilotage .legende{font-size:11px;color:var(--gris);margin-top:4px;white-space:nowrap}
.colonne-pilotage .ecart{font-size:11px;font-weight:800;white-space:nowrap;min-height:15px}
.colonne-pilotage.atteint .ecart{color:var(--ok)}
.colonne-pilotage.proche .ecart{color:#b7791f}
.colonne-pilotage.loin .ecart{color:var(--danger)}
.sens-moins .colonne-pilotage.atteint .ecart{color:var(--gris)}
.anneaux{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.anneau{position:relative;display:flex;flex-direction:column;align-items:center;border:1px solid var(--ligne);border-radius:12px;padding:10px 6px;background:var(--papier)}
.anneau svg{width:64px;height:64px}
.anneau .arc{stroke:var(--accent)}
.anneau.atteint .arc{stroke:var(--ok)}
.anneau.proche .arc{stroke:#e0a100}
.anneau.loin .arc{stroke:var(--danger)}
.sens-moins .anneau.atteint .arc{stroke:var(--accent)}
.anneau b{position:absolute;top:32px;font-size:12.5px}
.anneau span{font-size:12px;color:var(--gris);margin-top:4px}
.anneau em{font-style:normal;font-size:11.5px;color:var(--encre-2)}
.anneau.futur{opacity:.55}
.colonnes-ecarts{display:flex;gap:8px;overflow-x:auto}
.colonne-ecart{flex:1 0 44px;max-width:80px;display:flex;flex-direction:column;align-items:center}
.colonne-ecart .haut,.colonne-ecart .bas{display:flex;flex-direction:column;align-items:center;width:100%;height:80px}
.colonne-ecart .haut{justify-content:flex-end}
.colonne-ecart .bas{justify-content:flex-start;margin-top:3px}
.colonne-ecart .baton{display:block;width:100%;border-radius:4px}
.colonne-ecart.atteint .baton{background:var(--ok)}
.colonne-ecart.loin .baton{background:var(--danger)}
.colonne-ecart .valeur{font-style:normal;font-size:11px;font-weight:800;margin:2px 0}
.colonne-ecart.atteint .valeur{color:var(--ok)}
.colonne-ecart.loin .valeur{color:var(--danger)}
.colonne-ecart .legende{font-size:11px;color:var(--gris);white-space:nowrap}
svg.courbe-pilotage{width:100%;height:auto;max-height:230px;display:block}
.ph-0{height:0.0px}.ph-1{height:3.25px}.ph-2{height:6.5px}.ph-3{height:9.75px}.ph-4{height:13.0px}.ph-5{height:16.25px}.ph-6{height:19.5px}.ph-7{height:22.75px}.ph-8{height:26.0px}.ph-9{height:29.25px}.ph-10{height:32.5px}.ph-11{height:35.75px}.ph-12{height:39.0px}.ph-13{height:42.25px}.ph-14{height:45.5px}.ph-15{height:48.75px}.ph-16{height:52.0px}.ph-17{height:55.25px}.ph-18{height:58.5px}.ph-19{height:61.75px}.ph-20{height:65.0px}.ph-21{height:68.25px}.ph-22{height:71.5px}.ph-23{height:74.75px}.ph-24{height:78.0px}.ph-25{height:81.25px}.ph-26{height:84.5px}.ph-27{height:87.75px}.ph-28{height:91.0px}.ph-29{height:94.25px}.ph-30{height:97.5px}.ph-31{height:100.75px}.ph-32{height:104.0px}.ph-33{height:107.25px}.ph-34{height:110.5px}.ph-35{height:113.75px}.ph-36{height:117.0px}.ph-37{height:120.25px}.ph-38{height:123.5px}.ph-39{height:126.75px}.ph-40{height:130.0px}
.eh-0{height:0.0px}.eh-1{height:3.25px}.eh-2{height:6.5px}.eh-3{height:9.75px}.eh-4{height:13.0px}.eh-5{height:16.25px}.eh-6{height:19.5px}.eh-7{height:22.75px}.eh-8{height:26.0px}.eh-9{height:29.25px}.eh-10{height:32.5px}.eh-11{height:35.75px}.eh-12{height:39.0px}.eh-13{height:42.25px}.eh-14{height:45.5px}.eh-15{height:48.75px}.eh-16{height:52.0px}.eh-17{height:55.25px}.eh-18{height:58.5px}.eh-19{height:61.75px}.eh-20{height:65.0px}
summary.lien-detail{cursor:pointer;color:var(--accent);font-weight:700;font-size:13px;margin:4px 0 8px}
svg.composition{width:100%;height:34px;display:block;margin:4px 0 10px}
.composition .c-expedie{fill:#4a5f7a}.composition .c-magasin{fill:#15803d}.composition .c-fabrication{fill:#7c3aed}.composition .c-lancer{fill:#e0a100}
.legende-composition{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0;padding:0;font-size:13px;color:var(--encre-2)}
.legende-composition i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legende-composition .c-expedie i{background:#4a5f7a}.legende-composition .c-magasin i{background:#15803d}
.legende-composition .c-fabrication i{background:#7c3aed}.legende-composition .c-lancer i{background:#e0a100}
.a-faire{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.a-faire a{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--ligne);border-radius:12px;text-decoration:none;color:var(--encre);background:var(--papier)}
.a-faire a:hover{border-color:var(--accent)}
.a-faire b{font-size:22px;color:var(--danger);min-width:34px;text-align:center}
.a-faire span{display:flex;flex-direction:column;font-weight:700;font-size:14px}
.a-faire em{font-style:normal;font-weight:400;font-size:12.5px;color:var(--gris)}
.jauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:0 0 18px}
.jauge{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:14px 16px;text-align:center}
.jauge svg{width:100%;max-width:220px;height:auto;display:block;margin:0 auto}
.jauge .fond{stroke:#eef0f3}
.jauge .arc{stroke:var(--accent)}
.jauge.atteint .arc{stroke:var(--ok)}.jauge.proche .arc{stroke:#e0a100}.jauge.loin .arc{stroke:var(--danger)}
.jauge .trait{stroke:#15171b}
.jauge b{display:block;font-size:24px;margin-top:-6px}
.jauge span{display:block;font-size:13px;color:var(--encre-2);font-weight:700}
.jauge em{display:block;font-style:normal;font-size:12px;color:var(--gris);margin-top:2px}
.grille-budget input{width:120px;text-align:right;padding:6px 8px;border:1px solid var(--ligne);border-radius:8px;font:inherit}
.grille-budget input.texte{width:100%;min-width:220px;text-align:left}
.grille-budget td{vertical-align:middle}
.controles li{margin:0 0 8px}
.controles li.grave b{color:var(--danger)}
.fiches-produit{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.fiche-produit dl{display:grid;grid-template-columns:1fr auto;gap:3px 12px;margin:8px 0 0;font-size:13px}
.fiche-produit dt{color:var(--gris)}
.fiche-produit dd{margin:0;text-align:right;font-weight:700}
.fiche-produit dd.positif{color:var(--ok)}
.fiche-produit dd.negatif{color:var(--danger)}
.quota-depasse td{background:var(--danger-doux)}
/* ---------------- les quatre formes ajoutées : classement, tendance, carte de chaleur (la jauge est plus haut) */
.classement{margin:0 0 18px}
.classement figcaption{display:flex;flex-direction:column;gap:2px;margin:0 0 10px}
.classement figcaption b{font-size:14px}
.classement figcaption span{font-size:13.5px;color:var(--encre-2)}
.rang{display:grid;grid-template-columns:minmax(110px,30%) minmax(0,1fr) auto;gap:12px;align-items:center;padding:5px 0}
.rang-libelle{font-size:13.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis}
.rang-libelle small{display:block;font-weight:400;color:var(--gris);font-size:12px}
.rang-piste{position:relative;height:16px}
.rang-barre{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--accent);min-width:2px}
.rang.atteint .rang-barre{background:var(--ok)}.rang.proche .rang-barre{background:#e0a100}.rang.loin .rang-barre{background:var(--danger)}
.rang-objectif{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--encre)}
.rang-valeur{font-size:13px;font-weight:700;white-space:nowrap;text-align:right}
.rang-valeur small{color:var(--gris);font-weight:500}
.tendances{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:0 0 18px}
.tendance{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:12px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.tendance.seule{border:0;padding:0;background:none;max-width:420px}
.tendance-libelle{font-size:12.5px;color:var(--gris)}
.tendance-chiffre{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.tendance-chiffre b{font-size:24px;font-family:var(--chiffres)}
.tendance-chiffre i{font-style:normal;color:var(--gris);font-size:13px}
.tendance-chiffre em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--gris)}
.tendance.hausse .tendance-chiffre em{color:var(--ok)}
.tendance.baisse .tendance-chiffre em{color:var(--danger)}
.tendance-chiffre small{font-weight:400;color:var(--gris)}
.tendance-courbe{width:100%;height:40px;display:block;margin-top:4px;overflow:visible}
.tendance-courbe polyline{stroke:var(--accent)}
.tendance.hausse .tendance-courbe polyline{stroke:var(--ok)}
.tendance.baisse .tendance-courbe polyline{stroke:var(--danger)}
.tendance-mois{font-size:11.5px;color:var(--gris-2)}
table.chaleur{border-collapse:separate;border-spacing:4px;width:100%;font-size:13px}
table.chaleur th{font-size:11.5px;color:var(--gris);font-weight:600;text-align:center;white-space:nowrap;padding:0 2px}
table.chaleur tbody th{text-align:left;color:var(--encre);font-size:13px;padding-right:8px}
table.chaleur tbody th small{display:block;font-size:11px}
table.chaleur td{text-align:center;border-radius:6px;padding:9px 4px;font-weight:700;min-width:46px}
table.chaleur td small{font-weight:400;font-size:10px;margin-left:1px}
.ch-vide,.ch-0{background:var(--ligne-2);color:var(--gris-2)}
.ch-1{background:#e4f4e9;color:#15803d}.ch-2{background:#bfe3c9;color:#0f5f2c}.ch-3{background:#fcf1d9;color:#8a5a12}
.ch-4{background:#f6c9a0;color:#7a3a0c}.ch-5{background:#f3b1ab;color:#8f1d1d}
.legende-chaleur{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:8px 0 0;font-size:12px}
.legende-chaleur li{padding:2px 9px;border-radius:999px}
.pw-0{width:0%}.pw-1{width:2%}.pw-2{width:4%}.pw-3{width:6%}.pw-4{width:8%}.pw-5{width:10%}.pw-6{width:12%}.pw-7{width:14%}.pw-8{width:16%}.pw-9{width:18%}.pw-10{width:20%}.pw-11{width:22%}.pw-12{width:24%}.pw-13{width:26%}.pw-14{width:28%}.pw-15{width:30%}.pw-16{width:32%}.pw-17{width:34%}.pw-18{width:36%}.pw-19{width:38%}.pw-20{width:40%}.pw-21{width:42%}.pw-22{width:44%}.pw-23{width:46%}.pw-24{width:48%}.pw-25{width:50%}.pw-26{width:52%}.pw-27{width:54%}.pw-28{width:56%}.pw-29{width:58%}.pw-30{width:60%}.pw-31{width:62%}.pw-32{width:64%}.pw-33{width:66%}.pw-34{width:68%}.pw-35{width:70%}.pw-36{width:72%}.pw-37{width:74%}.pw-38{width:76%}.pw-39{width:78%}.pw-40{width:80%}.pw-41{width:82%}.pw-42{width:84%}.pw-43{width:86%}.pw-44{width:88%}.pw-45{width:90%}.pw-46{width:92%}.pw-47{width:94%}.pw-48{width:96%}.pw-49{width:98%}.pw-50{width:100%}
.pl-0{left:0%}.pl-1{left:2%}.pl-2{left:4%}.pl-3{left:6%}.pl-4{left:8%}.pl-5{left:10%}.pl-6{left:12%}.pl-7{left:14%}.pl-8{left:16%}.pl-9{left:18%}.pl-10{left:20%}.pl-11{left:22%}.pl-12{left:24%}.pl-13{left:26%}.pl-14{left:28%}.pl-15{left:30%}.pl-16{left:32%}.pl-17{left:34%}.pl-18{left:36%}.pl-19{left:38%}.pl-20{left:40%}.pl-21{left:42%}.pl-22{left:44%}.pl-23{left:46%}.pl-24{left:48%}.pl-25{left:50%}.pl-26{left:52%}.pl-27{left:54%}.pl-28{left:56%}.pl-29{left:58%}.pl-30{left:60%}.pl-31{left:62%}.pl-32{left:64%}.pl-33{left:66%}.pl-34{left:68%}.pl-35{left:70%}.pl-36{left:72%}.pl-37{left:74%}.pl-38{left:76%}.pl-39{left:78%}.pl-40{left:80%}.pl-41{left:82%}.pl-42{left:84%}.pl-43{left:86%}.pl-44{left:88%}.pl-45{left:90%}.pl-46{left:92%}.pl-47{left:94%}.pl-48{left:96%}.pl-49{left:98%}.pl-50{left:100%}
/* ---------------- apparence : thèmes et modèles de graphiques */
.choix-apercus{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.choix-apercus.graphiques{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.choix-apercus.petits{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.choix-apercu{position:relative;display:flex;flex-direction:column;gap:5px;border:2px solid var(--ligne);border-radius:var(--rayon);padding:10px;
  cursor:pointer;background:var(--papier);margin:0}
.choix-apercu input{position:absolute;opacity:0;width:1px;height:1px}
.choix-apercu img{width:100%;height:auto;border-radius:8px;border:1px solid var(--ligne);display:block;background:#fff}
.choix-apercu:has(input:checked){border-color:var(--accent);background:var(--accent-doux)}
.choix-apercu:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.choix-apercu b{font-size:15px}
.choix-apercu span{font-size:12.5px;color:var(--gris)}
.choix-apercus.petits .choix-apercu span{display:none}
.apercu-societe{display:grid !important;place-items:center;aspect-ratio:16/10;border-radius:8px;border:1px dashed var(--ligne);color:var(--gris)}
.apercu-societe .ico{width:34px;height:34px}
.barre-choix{grid-column:1/-1}
.app .page>form.formulaire-large{max-width:none;background:none;border:0;padding:0;border-radius:0}
/* 0.6.1 : fiches produit (Budget & fiches produit) */
.projets-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.ligne-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.ligne-form input,.ligne-form select{padding:7px 9px;border:1px solid var(--bord-champ);border-radius:8px;font:inherit;background:var(--champ);color:var(--encre);max-width:100%}
.ligne-form input[name=designation],.ligne-form select[name=article]{min-width:260px}
.ligne-form .champ-court{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--gris)}
.ligne-form .champ-court input{width:120px;text-align:right}
.fiche-lien{margin-top:10px}
.form-cache{display:none}
.fiche-entete{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:20px;align-items:start}
.fiche-photo{aspect-ratio:1/1;background:var(--ligne-2);border-radius:var(--rayon);display:flex;align-items:center;justify-content:center;overflow:hidden}
.fiche-photo img{width:100%;height:100%;object-fit:contain;background:var(--papier)}
.fiche-photo .ico{width:54px;height:54px;color:var(--gris-2)}
.fiche-photo-actions{display:flex;flex-direction:column;gap:6px;margin:8px 0 0}
.fiche-photo-actions input[type=file]{font-size:12px;max-width:100%}
.champs-entete{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 14px}
.champs-entete label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--gris)}
.champs-entete input,.champs-entete select{padding:7px 9px;border:1px solid var(--bord-champ);border-radius:8px;font:inherit;background:var(--champ);color:var(--encre)}
.champs-entete label.case{flex-direction:row;align-items:center;gap:8px;align-self:end;padding-bottom:8px}
.bandeau-rapprochement{border-left:4px solid var(--gris-2)}
.bandeau-rapprochement h2{margin:0 0 4px;font-size:16px}
.bandeau-rapprochement.vert{border-left-color:var(--ok);background:var(--ok-doux)}
.bandeau-rapprochement.beige{border-left-color:var(--bord-alerte);background:var(--alerte-doux)}
.bandeau-rapprochement.rouge{border-left-color:var(--danger);background:var(--danger-doux)}
.bandeau-rapprochement ul{margin:6px 0;padding-left:18px}
.bandeau-rapprochement .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.bandeau-rapprochement form{margin:0}
.grille-fiche input,.grille-fiche select{padding:5px 7px;border:1px solid var(--bord-champ);border-radius:7px;font:inherit;font-size:13px;background:var(--champ);color:var(--encre)}
.grille-fiche input.nb{width:88px;text-align:right}
.grille-fiche input.ref{width:130px}
.grille-fiche input.lib{display:block;width:100%;min-width:170px;margin-top:4px}
.grille-fiche th input{width:120px;font-weight:700}
.grille-fiche td{vertical-align:top}
.grille-fiche tr.groupe th{background:var(--ligne-2);text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--encre-2)}
.grille-fiche tr.total td{font-weight:700;border-top:2px solid var(--ligne)}
.grille-fiche tr.ligne-tete td{background:var(--accent-doux)}
.origine{display:inline-block;margin-left:6px;font-size:11px;color:var(--gris)}
.ajouter-lignes{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}
.btn-x{background:none;border:0;color:var(--gris);cursor:pointer;font-size:16px;line-height:1;padding:0 4px}
.btn-x:hover{color:var(--danger)}
.pastille.ok{background:var(--ok-doux);color:var(--ok)}
.pastille.alerte{background:var(--alerte-doux);color:var(--alerte-texte)}
.pastille.danger{background:var(--danger-doux);color:var(--danger)}
.titre-sous{margin-top:20px}
.titre-sous h3,#prix h3{margin:18px 0 8px;font-size:15px}
.bascule{display:flex;gap:6px;margin:0}
.case-simple{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:13px;color:var(--encre-2)}
.bloc-notes{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-size:13px;color:var(--gris)}
.bloc-notes textarea{padding:9px 10px;border:1px solid var(--bord-champ);border-radius:8px;font:inherit;background:var(--champ);color:var(--encre)}
.liste-champs{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px}
.liste-champs dt{color:var(--gris)}
.liste-champs dd{margin:0}
@media (max-width:760px){.fiche-entete{grid-template-columns:1fr}.fiche-photo{max-width:260px}}
@media print{.projets-actions,.ajouter-lignes,.fiche-photo-actions,.bascule{display:none}}
/* 0.6.2 : plan de la saison */
.filtres-plan{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.filtres-plan .filtre{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--ligne);border-radius:999px;font-size:13px;color:var(--encre-2);text-decoration:none;background:var(--papier)}
.filtres-plan .filtre span{font-size:11.5px;color:var(--gris)}
.filtres-plan .filtre.active{border-color:var(--accent);color:var(--accent-fonce);background:var(--accent-doux)}
.tableau-plan td.ordre{white-space:nowrap}
.tableau-plan td.nombre{white-space:nowrap}
.modele-plan{display:flex;gap:10px;align-items:flex-start;min-width:230px}
.vignette-plan{width:44px;height:44px;object-fit:contain;border-radius:6px;background:var(--papier);flex:none}
.modele-plan .pastille{margin:4px 4px 0 0}
.au-plan{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
/* 0.6.3 : planning mensuel */
.planning-actions{margin:0 0 14px}
.planning-actions form{margin:0}
.grille-planning input.mois{width:58px}
.grille-planning .fige{position:sticky;left:0;z-index:1;background:var(--papier);min-width:210px}
.grille-planning thead .fige{background:inherit}
.grille-planning th.passe,.grille-planning td.passe{background:var(--ligne-2)}
.grille-planning input::placeholder{color:var(--gris-2)}
.grille-planning td.reste-a-planifier{color:var(--alerte-texte);font-weight:700}
.grille-planning td.avec-fermeture{color:var(--alerte-texte);font-weight:700}
.grille-planning td.charge-mois{font-weight:700;font-size:12.5px;white-space:nowrap}
.grille-planning tfoot td{border-top:1px solid var(--ligne)}
/* 0.6.5 : scénarios */
.tableau-plan tr.ligne-courante td{background:var(--accent-doux)}
.nom-scenario{width:190px;font-weight:700;padding:5px 7px;border:1px solid var(--bord-champ);border-radius:7px;font:inherit;background:var(--champ);color:var(--encre)}
.actions-scenario{white-space:nowrap}
.actions-scenario .confirmer{margin-left:4px}

/* 0.6.6 : le guide des pages, les bulles « i », l'impression en paysage du Budget */
.aides-page{float:right;margin:0 0 10px 16px;display:flex;align-items:center;gap:8px;position:relative;z-index:3}
.guide-page summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 6px;border:1px solid var(--ligne);border-radius:999px;background:var(--papier);font-size:13px;font-weight:600;color:var(--encre-2)}
.guide-page summary::-webkit-details-marker{display:none}
.guide-page[open] summary{border-color:var(--accent);color:var(--accent-fonce)}
.guide-rond{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:800}
.aide-panneau{position:absolute;right:0;top:calc(100% + 6px);width:min(560px,calc(100vw - 32px));background:var(--papier);border:1px solid var(--ligne);border-radius:var(--rayon);padding:16px 18px;box-shadow:var(--ombre);font-size:13.5px;line-height:1.5}
.aide-panneau h2{margin:0 0 6px;font-size:16px}
.guide-corps h3{margin:12px 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--gris)}
.guide-corps ol,.guide-corps ul{margin:0;padding-left:20px}
.guide-corps li{margin:3px 0}
.bulle{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;border-radius:50%;border:1px solid var(--gris-2);color:var(--gris);font:italic 700 10px/1 Georgia,serif;cursor:help;vertical-align:1px;text-transform:none;letter-spacing:0}
.bulle:hover,.bulle:focus{border-color:var(--accent);color:var(--accent);outline:none}
.bulle-texte{position:fixed;z-index:60;max-width:280px;padding:8px 11px;border-radius:8px;background:#17202a;color:#fff;font-size:12.5px;line-height:1.45;font-weight:400;box-shadow:var(--ombre);opacity:0;pointer-events:none;transition:opacity .12s}
.bulle-texte.visible{opacity:1}
@page paysage{size:A4 landscape;margin:8mm}
@media print{
  .aides-page,.bulle,.bulle-texte,.filtres-plan,.planning-actions,.barre-enregistrer,.onglets-page,.barre-exercice,
  .ajouter-lignes,.confirmer,.form-cache,.au-plan form,.fiche-photo-actions{display:none!important}
  body.app .page:has(.tableau-plan),body.app .page:has(.grille-planning),body.app .page:has(.grille-fiche){page:paysage}
  body.app .tableau-defilant{overflow:visible}
  .grille-planning .fige{position:static}
  body.app .page input,body.app .page select,body.app .page textarea{border:0!important;background:none!important;padding:0!important;box-shadow:none!important;-webkit-appearance:none;appearance:none;color:inherit}
  body.app .page input::placeholder{color:transparent}
  .tableau-plan,.grille-planning,.grille-fiche{font-size:10px}
}
/* 0.6.8 : les processus (le rond « i » des pages, comme dans Fortee, et la page du processus) */
.processus-page summary{list-style:none;cursor:pointer;display:inline-flex}
.processus-page summary::-webkit-details-marker{display:none}
.info-rond{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--accent);background:var(--accent-doux);color:var(--accent);font:italic 700 16px/1 Georgia,serif}
.processus-page summary:hover .info-rond,.processus-page[open] .info-rond{background:var(--accent);color:#fff}
.info-rond.petit{width:17px;height:17px;border-width:1px;font-size:10.5px;vertical-align:-3px}
.aide-panneau .surtitre{margin:0 0 2px}
.aide-panneau .btn{margin-top:4px}
.chaine-processus{list-style:none;margin:10px 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chaine-processus a{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;border:1px solid var(--ligne);border-radius:999px;background:var(--papier);color:var(--encre-2);font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap}
.chaine-processus a:hover{border-color:var(--accent);color:var(--accent)}
.chaine-processus .num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--ligne-2);color:var(--encre-2);font-size:11px;font-weight:800}
.chaine-processus .ici a{border-color:var(--accent);background:var(--accent-doux);color:var(--accent-fonce)}
.chaine-processus .ici .num{background:var(--accent);color:#fff}
.chaine-processus.grande{margin:0 0 18px}
.chaine-processus.grande a{padding:5px 14px 5px 5px;font-size:13.5px}
.chaine-processus.grande .num{width:24px;height:24px;font-size:12px;background:var(--accent);color:#fff}
.processus-haut{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:0 18px}
.liste-processus{margin:0;padding-left:20px;color:var(--encre-2)}
.liste-processus li{margin:5px 0;line-height:1.5}
.processus-essai{background:var(--accent-doux);border-color:var(--accent-doux)}
.processus-essai p{margin:0 0 6px}
.etape-processus{scroll-margin-top:72px}
.etape-tete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.carte .etape-tete h2{margin:0;flex:1 1 220px}
.etape-num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border-radius:50%;background:var(--accent);color:#fff;font-size:15px;font-weight:800}
.etape-colonnes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:6px 30px}
.etape-processus h3{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--gris)}
.etape-bloque{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--alerte-doux)}
.etape-bloque h3,.etape-bloque .liste-processus{color:var(--alerte-texte)}
.cas-processus{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px 30px}
.cas-processus dt{margin:0 0 3px;font-weight:700}
.cas-processus dd{margin:0;color:var(--encre-2);line-height:1.5}
@media print{.chaine-processus a{border-color:var(--ligne)}.etape-processus{break-inside:avoid}}
/* 0.6.9 : tous les processus (liste), plusieurs processus dans le même rond « i » */
.aides-page .aide-panneau{max-height:max(340px,calc(100vh - 150px));overflow:auto}
.processus-bloc+.processus-bloc{margin-top:16px;padding-top:14px;border-top:1px solid var(--ligne-2)}
.aide-panneau h2 a,.liste-processus-cartes h2 a{color:inherit;text-decoration:none}
.aide-panneau h2 a:hover,.liste-processus-cartes h2 a:hover{color:var(--accent)}
.aide-panneau>.aide{margin:14px 0 0}
.liste-processus-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:0 18px}
.liste-processus-cartes .chaine-processus{margin-bottom:0}
/* 0.7.0 : Pivotis mobile ; sur un petit écran, la version complète propose la version téléphone */
.lien-mobile{display:none}
@media (max-width:700px){.lien-mobile{display:inline-flex}}
/* 0.9.9 : Pivotis MES, le langage commun (maquette « Pivotis MES · Pages harmonisées », validée par Adnan le 03.10).
   Les mêmes états en couleur que sur la tablette : vert en marche, jaune en pause (arrêt prévu), rouge à l'arrêt,
   orange problème, gris libre, violet absent. Tuiles et boutons pleins, sans contour ; une icône devant une alerte,
   pas de trait de couleur à gauche. */
.mes-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;box-sizing:border-box;
  border:0;border-radius:10px;font:inherit;font-size:14px;font-weight:700;line-height:1.15;text-decoration:none;cursor:pointer;white-space:nowrap}
.mes-btn .ico{width:18px;height:18px;flex:none}
.mes-btn:hover{filter:brightness(.95)}
.mes-btn-bleu{background:#1456B8;color:#fff}
.mes-btn-clair{background:#DCE7F8;color:#0F4699}
.mes-btn-vert{background:#12773A;color:#fff}
.mes-btn:disabled,.mes-btn.inactif{background:#D3D7DC;color:#4A525B;cursor:not-allowed;pointer-events:none}
.mes-etat{display:inline-flex;align-items:center;height:22px;padding:0 9px;box-sizing:border-box;border-radius:11px;font-size:12px;
  font-weight:800;white-space:nowrap;background:#5A626B;color:#fff}
.mes-etat.etat-marche,.mes-etat.etat-travail{background:#12773A;color:#fff}
.mes-etat.etat-pause{background:#FFD84D;color:#121518}
.mes-etat.etat-arret,.mes-etat.etat-urgent{background:#B42318;color:#fff}
.mes-etat.etat-probleme{background:#B54D00;color:#fff}
.mes-etat.etat-absent{background:#5B45A0;color:#fff}
.mes-etat.etat-fini{background:#3E454D;color:#fff}
.mes-etat.etat-retard{background:#F9CFCA;color:#8A1A12}
.mes-etat.etat-bloque{background:#E1E4E8;color:#3E454D}
.mes-compte{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;box-sizing:border-box;
  border-radius:11px;background:var(--encre);color:var(--papier);font-size:13px;font-weight:800}
/* les chiffres du haut */
.mes-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 18px}
.mes-kpi{display:flex;flex-direction:column;gap:2px;min-width:0;padding:14px 18px;border-radius:14px;background:var(--papier);
  color:var(--encre);text-decoration:none}
.mes-kpi>span:first-child{font-size:13px;font-weight:700;opacity:.85}
.mes-kpi b{font-size:30px;font-weight:800;line-height:1.1}
.mes-kpi b small{font-size:15px;font-weight:700}
.mes-kpi.etat-marche{background:#DCF2E3;color:#0B4F27}
.mes-kpi.etat-pause{background:#FFF3C4;color:#5C4A00}
.mes-kpi.etat-arret{background:#F9CFCA;color:#8A1A12}
.mes-kpi.etat-probleme{background:#FFD8B8;color:#7A3300}
.mes-kpi.mes-kpi-fonce{background:#121518;color:#fff}
.mes-kpi-aide{font-size:12px;opacity:.8}
.mes-kpi-barre{display:block;height:8px;margin:4px 0 2px;border-radius:4px;background:rgba(127,135,145,.25);overflow:hidden}
.mes-kpi-barre i{display:block;height:100%;background:#12773A}
.mes-kpi-barre.niveau-moyen i{background:#C98A00}
.mes-kpi-barre.niveau-faible i{background:#B42318}
.mes-kpi-fonce .mes-kpi-barre.niveau-moyen i{background:#FFD84D}
/* la vue d'ensemble : les secteurs et leurs opérateurs, « À traiter » à droite */
.mes-accueil{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.mes-accueil-secteurs{flex:999 1 620px;min-width:0;display:grid;gap:16px}
.mes-accueil-secteurs .carte,.mes-a-traiter{margin:0}
.mes-a-traiter{flex:1 1 320px;min-width:0;display:grid;gap:8px}
.mes-a-traiter h2,.mes-secteur-tete h2{display:flex;align-items:center;gap:8px;margin:0;font-size:19px}
.mes-a-traiter-liens{display:grid;gap:6px;margin-top:4px}
.mes-secteur-tete{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px}
.mes-resume{color:var(--gris);font-size:14px}
.mes-trs-pastille{margin-left:auto;padding:4px 12px;border-radius:14px;background:var(--ligne-2);color:var(--encre);font-size:13px;
  font-weight:800;text-decoration:none;white-space:nowrap}
.mes-trs-pastille.niveau-bon{background:#DCF2E3;color:#0B4F27}
.mes-trs-pastille.niveau-moyen{background:#FFF3C4;color:#5C4A00}
.mes-trs-pastille.niveau-faible{background:#F9CFCA;color:#8A1A12}
.mes-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.mes-tuile{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;border-radius:12px;background:var(--ligne-2);color:var(--encre)}
.mes-tuile p{margin:0}
.mes-tuile.etat-marche{background:#DCF2E3;color:#121518}
.mes-tuile.etat-pause{background:#FFF3C4;color:#121518}
.mes-tuile.etat-arret{background:#F9CFCA;color:#121518}
.mes-tuile.etat-absent{background:#E9E4F6;color:#121518}
.mes-tuile-tete{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.mes-tuile-tete b{flex:1 1 auto;min-width:0;font-size:16px;overflow-wrap:anywhere}
.mes-tuile-ligne{min-height:34px;font-size:13px;overflow-wrap:anywhere}
.mes-tuile-file{font-size:12px;opacity:.8}
.mes-charge{display:block;height:6px;border-radius:3px;background:rgba(127,135,145,.25);overflow:hidden}
.mes-charge i{display:block;height:100%;background:#12773A}
.mes-charge.plein i{background:#B42318}
/* une alerte : une icône dans un carré de couleur, le titre, le détail */
.mes-alerte{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:var(--ligne-2);color:var(--encre)}
.mes-alerte-icone{width:32px;height:32px;flex:none;border-radius:9px;display:grid;place-items:center;background:#DCE7F8;color:#0F4699}
.mes-alerte-icone .ico{width:18px;height:18px}
.mes-alerte.alerte-probleme .mes-alerte-icone,.mes-alerte.alerte-manco .mes-alerte-icone{background:#FFD8B8;color:#7A3300}
.mes-alerte.alerte-arret .mes-alerte-icone,.mes-alerte.alerte-oubli .mes-alerte-icone,.mes-alerte.alerte-depasse .mes-alerte-icone,
.mes-alerte.alerte-rebut .mes-alerte-icone{background:#F9CFCA;color:#8A1A12}
.mes-alerte.alerte-rien .mes-alerte-icone{background:#DCF2E3;color:#0B4F27}
.mes-alerte-texte{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.mes-alerte-texte b{font-size:14px}
.mes-alerte-texte span{font-size:13px;color:var(--gris);overflow-wrap:anywhere}
/* la répartition : « À répartir » à gauche, la semaine de chaque opérateur à droite (variante B de Claude Design) */
.mes-repartition-tete{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 14px}
.mes-repartition-tete .filtres-plan{margin:0}
.mes-semaine-nav{display:flex;align-items:center;gap:8px;margin-left:auto}
.mes-semaine-nav b{padding:0 4px;font-size:16px;white-space:nowrap}
.mes-semaine-nav .mes-btn{min-width:40px}
.mes-semaine-nav .mes-btn .ico{width:16px;height:16px}
.mes-problemes-bande{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.mes-probleme-lien{flex:1 1 240px;min-width:0;display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;
  background:#FFD8B8;color:#3D1A00;text-decoration:none}
.mes-probleme-lien span{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px}
.mes-probleme-lien b{font-size:14px}
.mes-probleme-lien em{font-style:normal;font-weight:800;color:#7A3300}
.mes-probleme-compte{flex:0 0 auto;background:#B54D00;color:#fff;font-size:15px;font-weight:800}
.mes-probleme-compte .ico{width:20px;height:20px}
.mes-repartition{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}
.mes-colonne-repartir{flex:0 0 260px;min-width:0;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:16px;
  background:var(--ligne-2)}
.mes-colonne-repartir.survol,.mes-semaine-ligne.survol{background:#DCE7F8}
.mes-colonne-tete{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:0 2px 2px}
.mes-colonne-tete h2{margin:0;font-size:18px}
.mes-colonne-tete span{font-size:13px;font-weight:700;color:var(--gris)}
.mes-colonne-repartir .mes-of{border:0;border-radius:12px;background:var(--papier);gap:4px}
.mes-of-pastilles{display:flex;flex-wrap:wrap;gap:4px;margin:0}
.mes-of-pastilles:empty{display:none}
.mes-of-lancer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:4px 4px 4px 10px;border-radius:8px;
  background:var(--ligne-2);font-size:13px;font-weight:700}
.mes-semaine{flex:999 1 700px;min-width:0;padding:10px 14px 14px;border-radius:16px;background:var(--papier);overflow-x:auto}
.mes-semaine-grille{min-width:760px;display:grid;gap:8px}
.mes-semaine-jours{display:grid;grid-template-columns:200px repeat(5,minmax(0,1fr));font-size:13px;font-weight:800;color:var(--gris)}
.jours-6 .mes-semaine-jours{grid-template-columns:200px repeat(6,minmax(0,1fr))}
.jours-7 .mes-semaine-jours{grid-template-columns:200px repeat(7,minmax(0,1fr))}
.mes-semaine-jours span{padding:6px 0;text-align:center}
.mes-semaine-jours span:first-child{padding-left:4px;text-align:left}
.mes-semaine-jours .aujourdhui{color:#1456B8}
.mes-semaine-ligne{display:flex;min-height:96px;border-radius:12px;background:var(--ligne-2)}
.mes-semaine-qui{width:200px;flex:none;box-sizing:border-box;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:5px}
.mes-semaine-qui p{margin:0}
.mes-semaine-nom{display:flex;align-items:center;gap:6px}
.mes-semaine-nom b{flex:1;min-width:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mes-semaine-chiffres{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--gris)}
.mes-semaine-chiffres.plein{color:#B42318;font-weight:700}
.mes-semaine-piste{position:relative;flex:1;min-width:0;
  background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),rgba(127,135,145,.28) calc(20% - 1px) 20%)}
.jours-6 .mes-semaine-piste{background:repeating-linear-gradient(90deg,transparent 0 calc(16.6667% - 1px),rgba(127,135,145,.28) calc(16.6667% - 1px) 16.6667%)}
.jours-7 .mes-semaine-piste{background:repeating-linear-gradient(90deg,transparent 0 calc(14.2857% - 1px),rgba(127,135,145,.28) calc(14.2857% - 1px) 14.2857%)}
.mes-barre{position:absolute;top:10px;bottom:10px;box-sizing:border-box;padding:4px 7px;border-radius:7px;overflow:hidden;display:flex;
  flex-direction:column;justify-content:center;gap:1px;background:#DCE7F8;color:#0F4699;font-size:12px;line-height:1.2;
  text-decoration:none;cursor:grab}
.mes-barre b,.mes-barre span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mes-barre.court b,.mes-barre.court span{display:none}
.mes-barre:hover,.mes-barre:focus-visible{filter:brightness(.92);outline:none}
.mes-barre.glisse{opacity:.45}
.mes-barre.barre-travail{background:#12773A;color:#fff}
.mes-barre.barre-pause{background:#FFD84D;color:#121518}
.mes-barre.barre-tard{background:#F9CFCA;color:#8A1A12}
.mes-barre.barre-bloque{background:#D3D7DC;color:#3E454D}
.mes-semaine-bloc{position:absolute;top:6px;bottom:6px;box-sizing:border-box;padding:4px 8px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;overflow:hidden;font-size:12px;font-weight:700;text-align:center}
.mes-semaine-bloc.bloc-absent{background:#E9E4F6;color:#3D2D73}
.mes-semaine-bloc.bloc-passe{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(127,135,145,.14) 6px 12px);color:var(--gris)}
.mes-semaine-bloc.bloc-ferme{background:rgba(127,135,145,.14);color:var(--gris)}
.mes-legende{display:flex;flex-wrap:wrap;gap:6px 14px;padding:4px 2px 0;font-size:12px;color:var(--gris)}
.mes-legende span{display:inline-flex;align-items:center;gap:6px}
.mes-legende i{width:12px;height:12px;border-radius:3px;background:#DCE7F8}
.mes-legende .barre-travail{background:#12773A}.mes-legende .barre-pause{background:#FFD84D}.mes-legende .barre-tard{background:#F9CFCA}
.mes-legende .barre-bloque{background:#D3D7DC}.mes-legende .bloc-absent{background:#E9E4F6}
/* la fenêtre d'un OF (un clic sur sa barre) */
.mes-fenetre{width:min(560px,94vw);padding:0;border:0;border-radius:16px;background:var(--papier);color:var(--encre);
  box-shadow:0 24px 60px rgba(0,0,0,.3)}
.mes-fenetre::backdrop{background:rgba(18,21,24,.55)}
.mes-fenetre-tete{display:flex;align-items:flex-start;gap:10px;padding:16px 18px 8px}
.mes-fenetre-tete h2{flex:1;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:19px}
.mes-fenetre-corps{display:grid;gap:10px;padding:0 18px 18px}
.mes-fenetre-corps p{margin:0}
.mes-fenetre-corps ul{margin:0;padding-left:18px}
.mes-fenetre-corps form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mes-fenetre-corps select{flex:1;min-width:0;min-height:40px}
.mes-fin-tard{color:#B42318;font-weight:700}
/* TRS et pertes */
.mes-pertes-barre i{background:#B54D00}
.mes-pertes-barre.rebut i{background:#B42318}
.mes-jauge.niveau-bon i{background:#12773A}.mes-jauge.niveau-moyen i{background:#C98A00}.mes-jauge.niveau-faible i{background:#B42318}
/* problèmes signalés */
.mes-problemes{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.mes-problemes-liste{flex:999 1 600px;min-width:0;display:grid;gap:12px}
.mes-problemes-cote{flex:1 1 320px;min-width:0;display:grid;gap:12px}
.mes-problemes-liste h2,.mes-problemes-cote h2{display:flex;align-items:center;gap:8px;margin:0;font-size:19px}
.mes-problemes-cote .carte{margin:0;display:grid;gap:8px}
.mes-probleme{display:flex;gap:16px;padding:16px 18px;border-radius:16px;background:var(--papier)}
.mes-probleme-photo{width:112px;height:112px;flex:none;border-radius:12px;overflow:hidden;background:var(--ligne-2);display:grid;
  place-items:center;color:var(--gris);font-size:12px;font-weight:700;text-align:center;text-decoration:none}
.mes-probleme-photo img{width:100%;height:100%;object-fit:cover}
.mes-probleme-texte{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.mes-probleme-texte p{margin:0}
.mes-probleme-tete{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.mes-probleme-tete b{font-size:16px}
.mes-probleme-quand{margin-left:auto;font-size:13px;color:var(--gris)}
.mes-probleme .mes-traiter{margin:2px 0 0}
.mes-probleme .mes-traiter input{min-height:40px}
.mes-qui-pause{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:12px;background:#FFF3C4;color:#121518}
.mes-qui-pause.arret{background:#F9CFCA}
.mes-qui-pause b{max-width:100%;overflow-wrap:anywhere}
.mes-qui-pause>span{font-size:13px}
.mes-traite{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--ligne-2);font-size:13px}
.mes-traite b{font-size:14px}
.mes-traite em{font-style:normal;font-weight:700;color:var(--ok)}
@media (max-width:700px){.mes-probleme{flex-direction:column}.mes-probleme-photo{width:100%;height:160px}}
/* l'écran de l'atelier (sombre) : les mêmes états, en couleurs pour le noir */
body.mes-direct{--d-fond:#0E1116;--d-carte:#1A1F27;--d-texte:#E8EAED;--d-gris:#9AA3AF;--d-trait:#222832;--d-marche:#2FB86A;
  --d-arret:#F0645A;--d-pause:#FFD84D;--d-absent:#A38BEB;--d-libre:#5A626B;--d-probleme:#FF9A4D}
.direct-tuile{border-top:0;gap:7px;padding:14px 16px;border-radius:14px}
.direct-tuile.etat-marche{background:#12291C}
.direct-tuile.etat-arret{background:#33161A}
.direct-tuile.etat-pause{background:#2E2810}
.direct-tuile.etat-absent{background:#1E1A2B}
.direct-tuile-tete{align-items:center}
.direct-tuile-tete b{flex:1;min-width:0;overflow-wrap:anywhere}
.direct-tuile-tete .mes-etat{height:24px;padding:0 10px;font-size:13px}
body.mes-direct .mes-etat{color:#fff}
body.mes-direct .mes-etat.etat-marche{background:var(--d-marche);color:#0E1116}
body.mes-direct .mes-etat.etat-pause{background:var(--d-pause);color:#0E1116}
body.mes-direct .mes-etat.etat-arret{background:var(--d-arret);color:#0E1116}
body.mes-direct .mes-etat.etat-absent{background:var(--d-absent);color:#0E1116}
body.mes-direct .mes-etat.etat-probleme{background:var(--d-probleme);color:#0E1116}
.direct-tuile.etat-arret .direct-motif{color:#F7A7A0}
.direct-tuile.etat-pause .direct-motif{color:#F2DC86}
.direct-trs{background:var(--d-carte);color:var(--d-gris)}
.direct-trs.niveau-bon{background:var(--d-marche);color:#0E1116}
.direct-trs.niveau-moyen{background:var(--d-pause);color:#0E1116}
.direct-trs.niveau-faible{background:var(--d-arret);color:#0E1116}
.direct-trs.niveau-bon b,.direct-trs.niveau-moyen b,.direct-trs.niveau-faible b{color:inherit}
.direct-alertes ul{gap:8px}
.direct-alertes .mes-alerte{background:#1D232C;color:var(--d-texte)}
.direct-alertes .mes-alerte-texte b{font-size:15px}
.direct-alertes .mes-alerte-texte span{color:var(--d-gris)}
.direct-alertes .mes-alerte-icone{background:#9FC0F5;color:#0E1116}
.direct-alertes .alerte-probleme .mes-alerte-icone{background:var(--d-probleme);color:#0E1116}
.direct-alertes .alerte-arret .mes-alerte-icone,.direct-alertes .alerte-oubli .mes-alerte-icone,.direct-alertes .alerte-depasse .mes-alerte-icone,
.direct-alertes .alerte-rebut .mes-alerte-icone{background:var(--d-arret);color:#0E1116}
.direct-alertes .alerte-rien .mes-alerte-icone{background:var(--d-marche);color:#0E1116}
.direct-alertes h2 span{color:var(--d-probleme)}
.direct-plus{padding:4px 10px;color:var(--d-gris);font-size:13px}
.direct-filtres a{border:0;background:var(--d-carte);color:var(--d-texte)}
.direct-filtres a[aria-current]{border:0;background:var(--d-texte);color:#0E1116;font-weight:800}
.direct-bouton{border:0;background:var(--d-carte);color:var(--d-texte)}
/* le badge sur la tablette : scanner à gauche, pavé de chiffres à droite (le clavier d'Android ne cache plus l'écran) */
body.mes-poste .poste-badge-b2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;max-width:none;margin:0;text-align:left}
.poste-plein .poste-page>.poste-badge-b2{flex:1 1 auto;min-height:0}
.poste-badge-b2>section{display:flex;flex-direction:column;gap:16px;min-width:0;padding:24px 28px;border-radius:16px;background:#fff}
.poste-badge-b2 h1{margin:0;font-size:32px;font-weight:800}
.poste-badge-b2 p{margin:0;font-size:18px;color:#2E353C}
.poste-badge-b2 .poste-scanner{flex:1;display:flex;flex-direction:column;gap:12px}
.poste-scan-grand{flex:1;min-height:180px;border:0;border-radius:16px;background:var(--p-bleu);color:#fff;font:inherit;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer}
.poste-scan-grand .ico{width:72px;height:72px}
.poste-scan-grand b{font-size:26px;font-weight:800}
.poste-scan-grand span{font-size:15px;color:#DCE7F8}
.poste-sans-camera{padding:14px 16px;border-radius:12px;background:#F3F5F7}
.poste-pave-form{flex:1;display:flex;flex-direction:column;gap:10px}
.poste-pave-form label{font-size:16px;font-weight:700;color:#434B54}
.poste-pave-form input{width:100%;height:64px;box-sizing:border-box;border:0;border-radius:12px;background:#F3F5F7;padding:0 18px;
  font-family:Consolas,"SF Mono",Menlo,monospace;font-size:34px;font-weight:700;letter-spacing:4px;color:var(--p-encre)}
.poste-pave{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(48px,1fr);gap:10px}
.poste-pave button{min-height:60px;border:0;border-radius:12px;background:#F3F5F7;color:var(--p-encre);font:inherit;font-size:28px;
  font-weight:700;cursor:pointer}
.poste-pave button:active{filter:brightness(.9)}
.poste-pave .poste-pave-effacer{background:#DCE7F8;color:var(--p-bleu-f);display:grid;place-items:center}
.poste-pave .poste-pave-effacer .ico{width:30px;height:30px}
.poste-pave .poste-pave-entrer{background:var(--p-vert);color:#fff;font-size:22px;font-weight:800}
.poste-badge-b2 .poste-camera{display:flex;flex-direction:column;gap:10px}
@media (max-width:899px){body.mes-poste .poste-badge-b2{grid-template-columns:1fr}}
@media (max-height:700px){
  .poste-badge-b2>section{gap:10px;padding:16px 20px}
  .poste-badge-b2 h1{font-size:26px}
  .poste-badge-b2 p{font-size:16px}
  .poste-scan-grand{min-height:120px}
  .poste-scan-grand .ico{width:52px;height:52px}
  .poste-pave-form input{height:52px;font-size:28px}
  .poste-pave button{min-height:46px;font-size:24px}
}
/* 0.9.10 : le poste sur un téléphone en hauteur (Adnan, sur son Oppo : le nom coupé, « Régla ge » coupé au milieu du
   mot, Pause / Terminer / Problème sous le bas de l'écran). L'en-tête se resserre, « Déconnexion » ne garde que son
   icône, les tuiles passent à deux colonnes, et les boutons d'action restent collés en bas de l'écran pendant qu'on
   fait défiler la carte (`overflow:clip` au lieu de `hidden` : la carte garde ses coins sans bloquer le collage). */
@media (max-width:600px){
  .poste-entete{gap:8px;padding:8px 10px 0}
  .poste-cadre{flex-basis:100%;min-height:52px;gap:10px;padding:4px 8px 4px 12px;border-radius:12px}
  .poste-date{font-size:17px}
  .poste-heure{font-size:30px;letter-spacing:0}
  .poste-avatar{width:40px;height:40px;font-size:16px}
  .poste-qui-texte b{font-size:19px}
  .poste-qui-texte span{font-size:14px}
  .poste-cadre .poste-deconnexion{min-height:44px;min-width:52px;padding:0 12px}
  .poste-deconnexion-texte{display:none}
  body.mes-poste .poste-page{padding:8px 10px 12px}
  .poste-b2{grid-template-columns:minmax(0,1fr)}
  .poste-focus{gap:10px;padding:12px;border-radius:14px;overflow:clip}
  .poste-focus-pause{margin:-12px -12px 0;padding:8px 12px;font-size:17px}
  .poste-focus-tete{gap:10px}
  .poste-focus-photo{width:72px;height:72px}
  .poste-pastilles{gap:6px;font-size:17px}
  .poste-focus-op{font-size:21px}
  .poste-focus-ligne{font-size:15px}
  .poste-b1-chiffres,.sans-photo .poste-b1-chiffres{grid-template-columns:repeat(2,minmax(0,1fr))}
  .poste-b1-chiffres dd{font-size:16px;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  /* 0.9.17 : la photo petite à gauche, les 4 tuiles à côté (avant : la photo en pleine largeur) */
  .poste-b1-photo{width:104px;max-width:none}
  .poste-b1-photo span{padding:1px 4px;font-size:11px;line-height:1.2;white-space:normal}
  .poste-b1-chiffres{gap:6px}
  .poste-b1-chiffres>div{padding:5px 8px}
  .poste-b1-chiffres dt{font-size:12px}
  /* la demande de pièces : l'état et « Annuler » sur la 1re ligne, le texte dessous en pleine largeur */
  .poste-pieces .poste-piece p{flex:1 1 100%;order:3}
  .poste-pieces .poste-piece form{margin-left:auto}
  .poste-etape-boutons>*,.poste-b1-boutons>*{flex-basis:120px}
  .poste-temps p{font-size:15px}
  .poste-temps b{font-size:19px}
  .poste-actions{position:sticky;bottom:0;z-index:2;margin:0 -12px -12px;padding:10px 12px 12px;background:inherit;
    box-shadow:0 -8px 14px -10px rgba(0,0,0,.35)}
  .poste-actions .poste-bouton{flex-direction:column;gap:2px;min-height:64px;padding:4px 6px;font-size:17px}
  .poste-actions .poste-bouton .ico{width:24px;height:24px}
  /* les fenêtres (pièces faites, pause) : le bouton qui valide reste en bas, les causes du rebut sur deux colonnes */
  .poste-fenetre-pied{position:sticky;bottom:0;z-index:2;background:#fff;box-shadow:0 -8px 14px -10px rgba(0,0,0,.35)}
  .poste-causes .poste-tuiles-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* le badge : le bouton de la caméra en une ligne, le pavé entier sur l'écran sans faire défiler */
  body.mes-poste .poste-badge-b2{gap:10px}
  body.mes-poste .poste-badge-b2>section{gap:10px;padding:12px 14px}
  body.mes-poste .poste-badge-b2 h1{font-size:22px}
  body.mes-poste .poste-badge-b2 section>p{font-size:15px}
  body.mes-poste .poste-scan-grand{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px;
    min-height:0;padding:10px 14px;text-align:left}
  body.mes-poste .poste-scan-grand .ico{grid-row:span 2;width:44px;height:44px}
  body.mes-poste .poste-scan-grand b{font-size:20px;line-height:1.2}
  body.mes-poste .poste-scan-grand span{font-size:14px;line-height:1.3}
  body.mes-poste .poste-badge-b2 .poste-scanner{margin:0}
  body.mes-poste .poste-pave-form{gap:8px}
  body.mes-poste .poste-pave-form input{height:52px;font-size:28px}
  body.mes-poste .poste-pave{gap:8px}
  body.mes-poste .poste-pave button{min-height:48px;font-size:24px}
}
@media (max-width:380px){.poste-actions .poste-bouton{font-size:15px}}
/* 0.9.12 : les pièces demandées à la Logistique, sur la carte de l'OF et dans leur fenêtre (le poste) */
.poste-pieces{display:flex;flex-direction:column;gap:6px}
.poste-piece{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:8px 12px;border-radius:12px;background:#fff;
  border:2px solid var(--p-trait-2);font-size:16px}
.poste-piece p{flex:1;min-width:0;margin:0}
.poste-piece form{display:flex}
.poste-piece .poste-pastille{background:#DCE7F8;color:var(--p-bleu-f)}
.poste-piece.statut-manco{border-color:#E8833A;background:#FFF0E3}
.poste-piece.statut-manco .poste-pastille{background:#E8833A;color:#fff}
.poste-piece.statut-terminee{border-color:var(--p-vert);background:var(--p-vert-doux)}
.poste-piece.statut-terminee .poste-pastille{background:var(--p-vert);color:#fff}
.poste-piece.statut-refusee{border-color:var(--p-rouge);background:var(--p-rouge-doux)}
.poste-piece.statut-refusee .poste-pastille{background:var(--p-rouge);color:#fff}
.poste-piece .poste-reponse{display:block;margin-top:2px}
.poste-piece .poste-bouton{min-height:44px;padding:0 14px;font-size:16px}
.poste-pieces-liste{display:flex;flex-direction:column;gap:10px;padding:16px 28px 0}
.poste-piece-choix{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:14px;background:#F3F5F8}
.poste-piece-choix p{flex:1;min-width:0;margin:0;display:flex;flex-direction:column}
.poste-piece-choix p b{font-size:20px}
.poste-piece-choix p span{font-size:15px;color:var(--p-gris)}
.poste-piece-choix .poste-compteur-ligne{flex:none;width:280px}
.poste-bloque-choix{margin:12px 28px 0}
@media (max-width:600px){
  .poste-pieces-liste{padding:12px 14px 0}
  .poste-piece-choix{flex-wrap:wrap;gap:8px}
  .poste-piece-choix .poste-compteur-ligne{width:100%}
  .poste-piece-choix .poste-compteur-ligne button{width:60px;height:60px}
  .poste-piece-choix .poste-compteur-ligne input{height:60px}
  .poste-bloque-choix{margin:10px 14px 0}
  .poste-actions:has(> :nth-child(4)) .poste-bouton{font-size:14px}
}
/* 0.9.12 : Stock › Préparation pour l'atelier (les demandes de l'atelier et les kits) */
.prep-bloc{padding:12px 0;border-top:1px solid var(--ligne)}
.prep-bloc:first-of-type{border-top:0}
.prep-bloc.urgent{margin:6px 0;padding:12px;border-top:0;border-radius:10px;background:var(--danger-doux)}
.prep-tete{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.prep-titre{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0}
.prep-tete .sous{margin:3px 0 0}
.prep-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.prep-actions form{display:inline}
.prep-lots{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}
.prep-lot{padding:1px 7px;border-radius:6px;background:var(--ligne-2);font-family:var(--chiffres);font-size:13px}
.prep-serie{display:block;margin:0 0 6px;font-size:12.5px}
.prep-serie input{display:block;width:100%;margin-top:4px}
.badge.prep-statut-manco{background:var(--alerte-doux);color:var(--alerte-texte)}
.prep-manco{margin:6px 0 0}
.badge.prep-statut-terminee{background:var(--ok-doux);color:var(--ok)}
.badge.prep-statut-refusee{background:var(--danger-doux);color:var(--danger)}
.prep-servies{margin-top:10px;font-size:13px}
.prep-servies ul{margin:6px 0 0;padding-left:18px}
.prep-rien{margin:0}
/* 0.9.12 (relecture) : en plein écran, les demandes de pièces défilent au lieu de pousser Pause / Terminer hors de la
   carte ; dans l'en-tête, « Fin de journée » et « Déconnexion » passent sous le nom quand la place manque */
@media (min-width:1000px),(min-width:900px) and (orientation:landscape){
  /* 0.9.17 (Adnan : « la ligne de la demande en paysage ne s'adapte pas à la carte ») : la ligne ne se fait plus
     écraser (elle se resserre sur une ligne) ; c'est le texte de l'étape qui cède la place, ses boutons restent */
  .poste-plein .poste-focus>.poste-pieces{flex:none}
  .poste-plein .poste-focus>.poste-pieces:has(>.poste-piece+.poste-piece){max-height:88px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .poste-plein .poste-focus:has(>.poste-pieces){gap:6px}
  .poste-plein .poste-piece{flex-wrap:nowrap;gap:8px;padding:4px 6px 4px 10px;font-size:15px;line-height:1.25}
  .poste-plein .poste-piece .poste-pastille{flex:none;height:26px;padding:0 9px;font-size:14px}
  .poste-plein .poste-piece p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .poste-plein .poste-piece.statut-refusee p{-webkit-line-clamp:3}
  .poste-plein .poste-piece .poste-reponse{display:inline;margin:0 0 0 6px}
  .poste-plein .poste-piece form{flex:none}
  .poste-plein .poste-piece .poste-bouton{min-height:34px;padding:0 12px;font-size:15px}
  .poste-plein .poste-focus>.poste-etape{overflow:auto;overscroll-behavior:contain;scrollbar-width:none}
  .poste-plein .poste-etape>.poste-etape-tete{flex-shrink:1;min-height:0;overflow:hidden}
  .poste-plein .poste-etape>.poste-etape-details{flex-shrink:1000}
  .poste-plein .poste-etape-boutons{flex-wrap:nowrap}
  .poste-plein .poste-etape-boutons>*{flex:1 1 auto;min-width:0}
  .poste-plein .poste-etape-boutons .poste-bouton{line-height:1.1;text-align:center}
}
.poste-qui{flex-wrap:wrap;row-gap:8px}
.poste-qui-texte{flex:1 1 170px}
.poste-qui-boutons{display:flex;gap:10px;margin-left:auto}
.poste-file-pied{flex-wrap:wrap}
.poste-file-pied>*{flex:1 1 auto}
/* 0.9.13 : « Tout » sous les pièces bonnes (la quantité part de 0) */
.poste-tout{width:100%;min-height:52px;font-size:18px}
/* 0.9.14 : « Zéro » à côté de « Tout » */
.poste-tout-ligne{display:flex;gap:10px}
.poste-tout-ligne .poste-bouton{min-height:52px;font-size:18px}
.poste-tout-ligne [data-zero]{flex:1}
.poste-tout-ligne .poste-tout{flex:2;width:auto}
/* 0.9.15 (Adnan : « quand un texte vient entre les rectangles et les cartes, les boutons se perdent en dehors de la
   tablette, ça change la grandeur de la carte ») : sur le poste, le message d'une action s'affiche PAR-DESSUS l'en-tête,
   sans pousser la carte, puis s'efface tout seul (7 s, une erreur 12 s) */
body.mes-poste .poste-page>.messages{position:fixed;top:10px;left:50%;z-index:60;width:min(760px,calc(100vw - 24px));
  margin:0;transform:translateX(-50%);pointer-events:none;animation:poste-message 7s ease forwards}
body.mes-poste .poste-page>.messages:has(.error){animation-duration:12s}
body.mes-poste .poste-page>.messages .message{margin:0 0 6px;padding:12px 16px;font-size:17px;box-shadow:0 10px 30px rgba(0,0,0,.28)}
@keyframes poste-message{0%,85%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
/* 0.9.17 : un écran bas (700 px ou moins) : le titre de l'étape reste sur une ligne et ne disparaît jamais
   (« Étape N sur M » se lit sur les segments) ; avec une demande de pièces, la ligne de l'OF tient sur une ligne */
@media (min-width:1000px) and (max-height:700px),(min-width:900px) and (orientation:landscape) and (max-height:700px){
  .poste-plein .poste-etape-n{display:none}
  .poste-plein .poste-etape-tete{flex-wrap:nowrap}
  .poste-plein .poste-etape-tete>div{flex:1 1 auto;min-width:0}
  .poste-plein .poste-etape-titre,.poste-plein .poste-etape-ensuite{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .poste-plein .poste-etape-ensuite{flex:0 1 auto;min-width:0;max-width:45%}
  .poste-plein .poste-etape-titre{line-height:1.2}
  .poste-plein .poste-etape>.poste-etape-tete{min-height:25px}
  .poste-plein .poste-focus:has(>.poste-pieces)>.poste-etape{padding-top:6px;padding-bottom:6px}
  .poste-plein .poste-focus:has(>.poste-pieces) .poste-focus-ligne{-webkit-line-clamp:1}
  .poste-plein .poste-focus:has(>.poste-pieces) .poste-etape-details{display:none}
  .poste-plein .poste-piece{padding-top:3px;padding-bottom:3px;font-size:14px}
}
@media (min-width:1000px) and (max-height:590px),(min-width:900px) and (orientation:landscape) and (max-height:590px){
  .poste-plein .poste-etape>.poste-etape-tete{min-height:23px}
  .poste-plein .poste-focus:has(>.poste-pieces) .poste-focus-ligne{display:none}
}
/* 0.9.17 : « Manco » et « Refuser » de la Préparation pour l'atelier : un champ assez large pour la remarque */
.prep-actions .confirmer .form-ligne input{width:min(240px,48vw)}
.prep-actions .confirmer .form-ligne .btn{white-space:nowrap}
.poste-piece.statut-manco .poste-reponse{color:#8A3A00;font-weight:700}
.poste-piece.statut-refusee .poste-reponse{color:#8A1A12}
/* 0.9.22 (carnet n° 3 : « le champ de sélection ne se voit pas bien ») : le choix du sous-traitant, lisible */
.confirmer .form-ligne select.choix-sous-traitant{min-width:240px;max-width:60vw;padding:6px 8px}
/* 0.9.22 (carnet n° 5) : dont pièces KO, sous la quantité reçue d'une sous-traitance */
.reception-ko{display:block;margin-top:6px;font-size:12.5px;color:var(--gris)}
.reception-ko input{display:block;width:100%;margin-top:3px}
/* 0.9.22 (carnet n° 1) : l'interrupteur actif / désactivé des listes de base */
.bascule-form{display:inline-flex;vertical-align:middle;margin-right:6px}
.bascule{position:relative;width:42px;height:24px;padding:0;border:0;border-radius:12px;background:#C5CCD5;cursor:pointer;transition:background .15s}
.bascule::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.bascule.on{background:var(--ok)}
.bascule.on::after{left:21px}
.bascule:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* 0.9.22 (carnet n° 2) : la disponibilité d'une ligne à livrer */
.couverture .badge{margin:1px 4px 1px 0;white-space:nowrap}
.couverture .badge a{color:inherit}

/* 0.9.23 : avertir avant une action (remettre en préparation une commande qui a un OF ou un acompte) */
.confirmer .form-avertir{width:min(380px,86vw);display:flex;flex-direction:column;gap:8px;text-align:left;white-space:normal}
.form-avertir p{margin:0}.form-avertir ul{margin:0;padding-left:18px}.form-avertir li{margin:2px 0}
.form-avertir .btn{align-self:flex-end}

/* ================================================================ 0.9.23 : les suivis (direction B du canevas « Pivotis ·
   Refonte des suivis », choisie par Adnan) : commande client, commande fournisseur, OF. Un bandeau sombre (n°, état,
   actions, étapes, 4 chiffres, une grosse barre), puis les lignes en cartes groupées par état. Couleurs fixes du
   langage MES ; les cartes suivent le thème (--papier, --encre). Largeurs des barres : data-place (CSP). */
.sv{display:flex;flex-direction:column;gap:24px;margin:0 0 24px;clear:both}
.sv-bandeau{background:#111A26;color:#fff;border-radius:16px;padding:24px clamp(18px,2.2vw,28px);box-shadow:0 1px 3px rgba(17,26,38,.08)}
.sv-tete{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 32px}
.sv-ident{flex:1 1 360px;min-width:0}
.sv-genre{margin:0;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#9AA6B8}
.sv-titre{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:6px}
.sv .sv-titre h1{margin:0;font-family:Consolas,"SF Mono",Menlo,monospace;font-size:34px;font-weight:700;line-height:1.15;color:#fff;letter-spacing:0;overflow-wrap:anywhere}
.sv-tiers{margin:12px 0 0;font-size:17px;font-weight:700;color:#fff}
.sv-tiers a{color:#9EC2FF;text-underline-offset:3px}
.sv-meta{margin:4px 0 0;font-size:14px;color:#C9D1DC}
.sv-meta a{color:#9EC2FF}
.sv-meta .mono{font-size:14px;color:#E6EAF0}
.sv-pastille{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 12px;border-radius:14px;font-size:13px;font-weight:800;white-space:nowrap;text-decoration:none;background:#EEF0F2;color:#3E454D}
.sv-pastille .ico{width:15px;height:15px}
.sv-p-bleu{background:#1456B8;color:#fff}.sv-p-vert{background:#12773A;color:#fff}.sv-p-jaune{background:#FFD84D;color:#121518}
.sv-p-rouge{background:#F9CFCA;color:#8A1A12}.sv-p-orange{background:#FFD8B8;color:#7A3300}.sv-p-violet{background:#E9E4F6;color:#3D2D73}
.sv-p-gris{background:#EEF0F2;color:#3E454D}.sv-p-bleu-clair{background:#DCE7F8;color:#0F4699}.sv-p-rouge-fort{background:#B42318;color:#fff}
.sv-actions{flex:0 1 auto;max-width:640px;min-width:0;margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px}
.sv-actions form,.sv-actions details{margin:0}
/* les thèmes restylent .btn (html[data-theme] .btn-second) : sélecteurs plus forts pour les boutons du bandeau */
.sv .sv-bandeau .sv-actions>.btn,.sv .sv-bandeau .sv-actions>form>.btn,.sv .sv-bandeau .sv-actions>details>summary.btn{
  min-height:44px;padding:0 18px;border:0;border-radius:12px;font-size:15px;font-weight:800;line-height:1.2;background:#26324A;color:#fff}
.sv .sv-bandeau .sv-actions>.btn:hover,.sv .sv-bandeau .sv-actions>form>.btn:hover,.sv .sv-bandeau .sv-actions>details>summary.btn:hover{background:#33435F;color:#fff}
.sv .sv-bandeau .sv-actions>.btn-primaire,.sv .sv-bandeau .sv-actions>form>.btn-primaire{background:#1456B8}
.sv .sv-bandeau .sv-actions>.btn-primaire:hover,.sv .sv-bandeau .sv-actions>form>.btn-primaire:hover{background:#0F4699}
.sv .sv-bandeau .sv-actions .btn .ico{width:18px;height:18px}
.sv-bandeau .confirmer[open] form{color:var(--encre);text-align:left}
.sv-bandeau .confirmer form .btn{min-height:36px;font-size:14px;padding:0 14px;border-radius:10px}
.sv-bandeau .confirmer form .btn-danger{background:#B42318}.sv-bandeau .confirmer form .btn-primaire{background:#1456B8}
.sv-bandeau .confirmer form a{color:var(--accent)}
.sv-etapes{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sv-etapes li{display:flex;align-items:center;gap:8px}
.sv-etapes li+li::before{content:"";width:7px;height:7px;border-top:2px solid #5F6B7D;border-right:2px solid #5F6B7D;transform:rotate(45deg);margin:0 8px 0 0}
.sv-etape{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px 0 6px;border-radius:18px;font-size:14px;font-weight:700;color:#9AA6B8}
.sv-etape-rond{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid #5F6B7D;box-sizing:border-box;flex:none}
.sv-etape-rond .ico{width:14px;height:14px;stroke-width:4}
.sv-etape.fait{background:#1B2636;color:#E6EAF0}
.sv-etape.fait .sv-etape-rond{border:0;background:#2FB36A;color:#111A26}
.sv-etape.courant{background:#1456B8;color:#fff;font-weight:800}
.sv-etape.courant .sv-etape-rond{border:0;background:#fff}
.sv-etape.courant .sv-etape-rond::after{content:"";width:10px;height:10px;border-radius:50%;background:#1456B8}
.sv-etape.courant small{font-size:14px;font-weight:700;color:#DCE7F8;font-variant-numeric:tabular-nums}
.sv-etape.arret{background:#F9CFCA;color:#8A1A12}
.sv-etape.arret .sv-etape-rond{border-color:#8A1A12}
.sv-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px 28px;margin-top:22px;padding-top:22px;border-top:1px solid #26324A}
.sv-chiffre{min-width:0}
.sv-chiffre p{margin:0}
.sv-chiffre-lib{font-size:13px;font-weight:700;color:#9AA6B8}
.sv-chiffre .sv-chiffre-val{margin-top:4px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.sv-chiffre-val b{font-size:30px;font-weight:800;line-height:1.1;color:#fff;font-variant-numeric:tabular-nums}
.sv-chiffre-val span{font-size:15px;font-weight:700;color:#9AA6B8}
.sv-chiffre .sv-chiffre-note{margin-top:6px;font-size:13px;color:#C9D1DC}
.sv-chiffre.alerte b{color:#FF9C90}.sv-chiffre.alerte .sv-chiffre-note{color:#FFB4AA}
.sv-avance{margin-top:22px}
.sv-avance-tete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;font-size:14px;font-weight:700;color:#E6EAF0}
.sv-avance-tete b{color:#fff;font-weight:800;font-variant-numeric:tabular-nums}
.sv-barre{display:flex;gap:2px;height:10px;margin-top:10px;border-radius:5px;background:#26324A;overflow:hidden}
.sv-barre>span{display:block;width:0;flex:none}
.sv-b-vert{background:#2FB36A}.sv-b-bleu{background:#4C8DF6}.sv-b-rouge{background:#F0675A}.sv-b-violet{background:#9B87E0}.sv-b-jaune{background:#FFD84D}
.sv-legende{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;color:#C9D1DC}
.sv-legende li{display:flex;align-items:center;gap:8px}
.sv-legende li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--sv-l,#26324A);box-shadow:var(--sv-lo,inset 0 0 0 1px #7D889A)}
.sv-legende .l-vert{--sv-l:#2FB36A;--sv-lo:none}.sv-legende .l-bleu{--sv-l:#4C8DF6;--sv-lo:none}.sv-legende .l-rouge{--sv-l:#F0675A;--sv-lo:none}
.sv-legende .l-violet{--sv-l:#9B87E0;--sv-lo:none}.sv-legende .l-jaune{--sv-l:#FFD84D;--sv-lo:none}

/* les lignes */
.sv-lignes-tete{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.sv-lignes-tete>div:first-child{flex:1 1 260px;min-width:0}
.sv .sv-lignes-tete h2{margin:0;font-size:18px;font-weight:800;line-height:1.4}
.sv-lignes-tete p{margin:2px 0 0;font-size:14px;color:var(--gris)}
.sv-cles{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--encre-2)}
.sv-cles li{display:flex;align-items:center;gap:6px}
.sv-cles li::before{content:"";width:16px;height:8px;border-radius:4px;background:var(--sv-c,#CDD3DA)}
.sv-cles .c-vert{--sv-c:#12773A}.sv-cles .c-bleu{--sv-c:#1456B8}.sv-cles .c-violet{--sv-c:#5B45A0}.sv-cles .c-rouge{--sv-c:#B42318}
.sv-bascule{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:#DDE2E8}
.sv-bascule a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:9px;color:#2E353C;font-size:14px;font-weight:700;text-decoration:none}
.sv-bascule a[aria-current]{background:#fff;color:#121518;font-weight:800;box-shadow:0 1px 2px rgba(17,26,38,.14)}
.sv-groupe{margin-top:22px}
.sv-groupe-tete{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-bottom:12px}
.sv-groupe-tete::before{content:"";flex:0 0 12px;height:12px;border-radius:50%;background:var(--sv-rond,#8A929B)}
.sv .sv-groupe-tete h3{margin:0;font-size:16px;font-weight:800;line-height:1.4;color:var(--encre)}
.sv-groupe-tete span{font-size:14px;color:var(--gris)}
.sv-groupe-tete .sv-groupe-montant{margin-left:auto;font-weight:700;color:var(--encre-2);font-variant-numeric:tabular-nums}
.sv-g-rouge{--sv-rond:#B42318}.sv-g-bleu{--sv-rond:#1456B8}.sv-g-violet{--sv-rond:#5B45A0}.sv-g-vert{--sv-rond:#12773A}
.sv-g-orange{--sv-rond:#B54D00}.sv-g-jaune{--sv-rond:#E0B400}.sv-g-gris{--sv-rond:#8A929B}
.sv-ligne{margin:0 0 12px;background:var(--papier);border-radius:16px;box-shadow:0 1px 3px rgba(17,26,38,.08);overflow:hidden}
.sv-ligne.annulee{opacity:.62}
.sv-ligne.annulee .sv-code{text-decoration:line-through}
.sv-ligne.courante{box-shadow:0 0 0 2px #1456B8,0 1px 3px rgba(17,26,38,.08)}
.sv-ligne-bandeau{display:flex;align-items:center;gap:8px;min-height:28px;padding:4px 20px;background:#F9CFCA;color:#8A1A12;font-size:13px;font-weight:800}
.sv-ligne-bandeau.orange{background:#FFD8B8;color:#7A3300}
.sv-ligne-bandeau.bleu{background:#DCE7F8;color:#0F4699}
.sv-ligne-bandeau .ico{width:16px;height:16px;flex:none}
.sv-ligne-corps{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;padding:16px 20px}
.sv-ligne-art{flex:100 1 320px;min-width:0;display:flex;align-items:flex-start;gap:16px}
.sv-vignette{flex:0 0 72px;width:72px;height:72px;border-radius:12px;background:var(--ligne-2);color:var(--encre-2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.sv-vignette img{width:100%;height:100%;object-fit:cover}
.sv-vignette .ico{width:40px;height:40px;stroke-width:1.8}
.sv-ligne-texte{flex:1 1 auto;min-width:0}
.sv-ligne-id{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.sv-pos{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;background:var(--ligne-2);color:var(--encre-2);font-family:Consolas,"SF Mono",monospace;font-size:12px;font-weight:700}
.sv-code{font-size:17px;font-weight:800;line-height:1.35;color:var(--encre);text-decoration:underline;text-decoration-color:#B9C0C8;text-decoration-thickness:2px;text-underline-offset:4px;overflow-wrap:anywhere}
a.sv-code:hover{text-decoration-color:currentColor}
.sv-des{margin:2px 0 0;color:var(--encre-2);overflow-wrap:anywhere}
.sv-infos{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sv-info{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 10px;border-radius:14px;background:var(--ligne-2);color:var(--encre-2);font-size:12px;font-weight:700;text-decoration:none}
.sv-info::before{content:"";flex:0 0 8px;height:8px;border-radius:50%;background:var(--sv-point,#8A929B)}
a.sv-info:hover{text-decoration:underline}
.sv-info.alerte{background:#FFD8B8;color:#7A3300}
.sv-info.danger{background:#F9CFCA;color:#8A1A12}
.sv-i-vert{--sv-point:#12773A}.sv-i-bleu{--sv-point:#1456B8}.sv-i-violet{--sv-point:#5B45A0}.sv-i-orange{--sv-point:#B54D00}
.sv-i-rouge{--sv-point:#B42318}.sv-i-jaune{--sv-point:#E0B400}
.sv-ligne-chiffres{flex:0 1 440px;min-width:0;display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 28px}
.sv-bloc{flex:1 1 120px;min-width:0}
.sv-bloc p{margin:0}
.sv-bloc-lib{font-size:12px;font-weight:700;color:var(--gris)}
.sv-bloc .sv-bloc-val{margin-top:2px;display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;font-variant-numeric:tabular-nums}
.sv-bloc-val b{font-size:22px;font-weight:800;line-height:1.2;color:var(--encre)}
.sv-bloc-val span{font-size:13px;font-weight:700;color:var(--gris)}
.sv-bloc .sv-bloc-note{margin-top:6px;font-size:12px;color:var(--gris)}
.sv-bloc .sv-bloc-date{margin-top:2px;font-size:16px;font-weight:800;line-height:1.5;color:var(--encre);font-variant-numeric:tabular-nums}
.sv-bloc.montant{text-align:right}
.sv-bloc.montant .sv-bloc-date{font-size:18px}
.sv-segments{display:flex;gap:3px;margin-top:8px}
.sv-segments span{flex:1 1 0;height:8px;border-radius:4px;background:#CDD3DA}
.sv-mini-barre{display:flex;height:8px;margin-top:8px;border-radius:4px;background:#CDD3DA;overflow:hidden}
.sv-mini-barre span{display:block;width:0;flex:none}
.sv-segments .s-vert,.sv-mini-barre .s-vert{background:#12773A}.sv-segments .s-bleu,.sv-mini-barre .s-bleu{background:#1456B8}
.sv-segments .s-violet,.sv-mini-barre .s-violet{background:#5B45A0}.sv-segments .s-rouge,.sv-mini-barre .s-rouge{background:#B42318}
.sv-segments .s-orange,.sv-mini-barre .s-orange{background:#B54D00}.sv-segments .s-jaune,.sv-mini-barre .s-jaune{background:#E0B400}
.sv-puce{display:inline-flex;align-items:center;min-height:26px;margin-top:6px;padding:0 11px;border-radius:14px;font-size:13px;font-weight:800;white-space:nowrap}
.sv-ligne-boutons{flex:1 0 172px;min-width:0;display:flex;flex-wrap:wrap;gap:8px}
.sv-ligne-boutons>form,.sv-ligne-boutons>details{display:flex;flex:1 1 150px;margin:0}
.sv-ligne-boutons>details>summary{flex:1 1 auto}
.sv-bouton{flex:1 1 150px;display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;border:0;border-radius:10px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;white-space:nowrap;text-decoration:none;background:#DCE7F8;color:#0F4699}
.sv-bouton:hover{filter:brightness(.95)}
.sv-bouton .ico{width:18px;height:18px}
.sv-bouton.principal{background:#1456B8;color:#fff}.sv-bouton.avancer{background:#12773A;color:#fff}
.sv-bouton.signaler{background:#FFD8B8;color:#7A3300}.sv-bouton.neutre{background:var(--ligne-2);color:var(--encre)}
.sv-bouton.danger{background:#F9CFCA;color:#8A1A12}
.sv-ligne-boutons .confirmer[open] form{min-width:220px}
.sv-ligne-plus{border-top:1px solid var(--ligne-2);padding:12px 20px 16px 108px}
.sv-vide{background:var(--papier);border-radius:16px;padding:22px 24px;color:var(--gris);margin:12px 0 0}

/* totaux, blocs du bas */
.sv-totaux{margin-top:12px;background:var(--papier);border-radius:16px;box-shadow:0 1px 3px rgba(17,26,38,.08);padding:18px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px}
.sv-totaux>div{flex:1 1 220px;min-width:0}
.sv-totaux>div p{margin:0;font-size:14px;font-weight:700;color:var(--encre-2)}
.sv-totaux>div p+p{margin-top:2px;font-size:13px;font-weight:400;color:var(--gris)}
.sv-totaux dl{flex:0 1 auto;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:12px 32px;font-variant-numeric:tabular-nums}
.sv-totaux dt{font-size:12px;font-weight:700;color:var(--gris)}
.sv-totaux dd{margin:2px 0 0;font-size:17px;font-weight:700;color:var(--encre)}
.sv-totaux .sv-total-fort{padding:10px 18px;border-radius:12px;background:#111A26;color:#fff}
.sv-total-fort dt{color:#9AA6B8}
.sv-total-fort dd{margin:0;display:flex;align-items:baseline;gap:6px;color:#fff}
.sv-total-fort dd b{font-size:26px;font-weight:800;line-height:1.2}
.sv-total-fort dd span{font-size:14px;font-weight:700;color:#9AA6B8}
.sv-bas{display:flex;flex-wrap:wrap;align-items:stretch;gap:16px}
.sv-bas>section{flex:1 1 420px;min-width:0;margin:0;display:flex;flex-direction:column}
.sv-carte{background:var(--papier);border-radius:16px;box-shadow:0 1px 3px rgba(17,26,38,.08);padding:22px 24px;border:0}
.sv .sv-carte h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:18px;font-weight:800}
.sv-compte{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:12px;background:var(--ligne-2);color:var(--encre-2);font-size:13px;font-weight:800}
.sv-docs{list-style:none;margin:12px 0 0;padding:0}
.sv-docs li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 0;border-top:1px solid var(--ligne)}
.sv-doc-ico{flex:0 0 44px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--ligne-2);color:var(--encre-2)}
.sv-doc-ico .ico{width:22px;height:22px}
.sv-docs li>div{flex:1 1 200px;min-width:0}
.sv-docs li>div a{font-family:Consolas,"SF Mono",monospace;font-size:15px;font-weight:700}
.sv-docs li>div p{margin:2px 0 0;font-size:14px;color:var(--gris)}
.sv-docs .sv-doc-montant{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.sv-docs li.annule{opacity:.6}
.sv-restes{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:16px 18px;border-radius:12px;background:var(--fond)}
.sv-restes p{margin:0;font-size:12px;font-weight:700;color:var(--gris)}
.sv-restes p+p{margin-top:2px;display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums;font-size:13px}
.sv-restes p+p b{font-size:22px;font-weight:800;line-height:1.2;color:var(--encre)}
.sv-histo{background:var(--papier);border-radius:16px;box-shadow:0 1px 3px rgba(17,26,38,.08)}
.sv-histo>summary{display:flex;align-items:center;gap:14px;min-height:68px;padding:12px 24px;cursor:pointer;list-style:none}
.sv-histo>summary::-webkit-details-marker{display:none}
.sv-histo>summary b{display:block;font-size:18px;font-weight:800;line-height:1.4}
.sv-histo>summary small{display:block;font-size:14px;color:var(--gris)}
.sv-histo>summary>span:nth-child(2){flex:1 1 auto;min-width:0}
.sv-histo>summary>.ico{transition:transform .15s}
.sv-histo[open]>summary>.ico{transform:rotate(90deg)}
.sv-histo>div{padding:0 24px 20px}
@media (max-width:600px){
  .sv .sv-titre h1{font-size:26px}
  .sv-chiffre-val b{font-size:24px}
  .sv-ligne-plus{padding-left:20px}
  .sv-actions{justify-content:flex-start;margin-left:0}
}
/* 0.9.23 : la vue d'ensemble de Pivotis MES en direction B (bandeau sombre, tuiles blanches, plus d'aplats pastel) */
.mes-b .mes-b-titre{margin:6px 0 0;font-size:34px;line-height:1.15;font-weight:800;letter-spacing:-.01em;color:#fff}
.mes-b .sv-meta .sv-pastille{margin-right:6px;vertical-align:middle}
.mes-b-chiffres{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.mes-b-chiffres a.sv-chiffre{color:inherit;text-decoration:none;border-radius:10px}
.mes-b-chiffres a.sv-chiffre:hover .sv-chiffre-val b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.mes-b-chiffres .sv-chiffre-lib{display:flex;align-items:center;gap:8px}
.mes-b-rond{flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:#8A929B;display:inline-block}
.mes-b-rond.r-vert{background:#2FB36A}.mes-b-rond.r-jaune{background:#FFD84D}.mes-b-rond.r-rouge{background:#F26B5E}
.mes-b-rond.r-orange{background:#FF9A4D}.mes-b-rond.r-bleu{background:#4C8DF6}
.mes-b-rond.niveau-bon{background:#12773A}.mes-b-rond.niveau-moyen{background:#E0B400}.mes-b-rond.niveau-faible{background:#B42318}
.mes-b-trs-barre{display:block;max-width:180px;height:4px;margin-top:8px;border-radius:2px;background:#26324A;overflow:hidden}
.mes-b-trs-barre i{display:block;height:100%;background:#4C8DF6}
.mes-b-equipe{display:flex;gap:4px;height:10px;margin-top:10px}
.mes-b-equipe span{flex:1 1 0;min-width:0;border-radius:5px;background:var(--sv-l,#5D6B80)}
.mes-b-equipe .e-marche,.mes-b-legende .e-marche{--sv-l:#2FB36A}.mes-b-equipe .e-pause,.mes-b-legende .e-pause{--sv-l:#FFD84D}
.mes-b-equipe .e-arret,.mes-b-legende .e-arret{--sv-l:#F26B5E}.mes-b-equipe .e-libre,.mes-b-legende .e-libre{--sv-l:#4C8DF6}
.mes-b-equipe .e-fini,.mes-b-legende .e-fini{--sv-l:#9AA6B8}.mes-b-equipe .e-absent,.mes-b-legende .e-absent{--sv-l:#5D6B80}
.mes-b-legende li{--sv-lo:none}
.mes-b-corps{display:flex;flex-wrap:wrap;align-items:flex-start;gap:28px 24px}
.mes-b-secteurs{flex:999 1 600px;min-width:0;display:flex;flex-direction:column;gap:32px}
.mes-b-secteur-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:0 2px}
.mes-b .mes-b-secteur-tete h2{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;line-height:1.3;font-weight:800;color:var(--encre)}
.mes-b-secteur-tete h2 .mes-b-rond{flex-basis:12px;width:12px;height:12px}
.mes-b-trs{font-size:13px;color:var(--gris);white-space:nowrap;text-decoration:none}
.mes-b-trs b{margin-left:4px;font-size:18px;font-weight:800;color:var(--encre);font-variant-numeric:tabular-nums}
.mes-b-trs b.niveau-bon{color:#12773A}.mes-b-trs b.niveau-moyen{color:#8A6A00}.mes-b-trs b.niveau-faible{color:#B42318}
.mes-b-secteur-sous{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;min-height:36px;margin:8px 2px 12px;font-size:14px;color:var(--encre-2)}
.mes-b-secteur-sous .sv-bouton{flex:0 0 auto}
.mes-b-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,228px),1fr));gap:14px}
.mes-b-tuile{display:flex;flex-direction:column;min-width:0;background:var(--papier);border-radius:16px;box-shadow:0 1px 3px rgba(17,26,38,.08);overflow:hidden}
.mes-b-tuile .sv-ligne-bandeau{padding:4px 14px}
.sv-ligne-bandeau.jaune{background:#FFF3C4;color:#5C4A00}
.mes-b-tuile-corps{display:flex;flex-direction:column;gap:14px;flex:1 1 auto;padding:16px}
.mes-b-qui{display:flex;align-items:center;gap:12px;min-width:0}
.mes-b-qui>div{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:5px 6px}
.mes-b-qui b{flex:1 0 100%;font-size:17px;line-height:1.25;font-weight:800;color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mes-b-avatar{flex:0 0 48px;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:3px solid #8A929B;background:var(--ligne-2);color:var(--encre-2);font-size:15px;font-weight:800}
.mes-b-tuile.etat-marche .mes-b-avatar{border-color:#12773A;color:#0B4F27}
.mes-b-tuile.etat-pause .mes-b-avatar{border-color:#E0B400;color:#5C4A00}
.mes-b-tuile.etat-arret .mes-b-avatar{border-color:#B42318;color:#8A1A12}
.mes-b-tuile.etat-libre .mes-b-avatar{border-color:#1456B8;color:#0F4699}
.mes-b-tuile.etat-absent .mes-b-avatar{border-color:#5B45A0;color:#3D2D73}
.mes-b-quoi{min-width:0}
.mes-b-quoi p{margin:0}
.mes-b-quoi .mes-b-petit{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.mes-b-quoi a.mono{display:inline-block;margin-top:3px;font-size:15px;font-weight:700;color:#1456B8;text-decoration:none}
.mes-b-quoi a.mono:hover{text-decoration:underline}
.mes-b-quoi p+p,.mes-b-quoi a+p{margin-top:2px;font-size:15px;line-height:1.35;font-weight:600;color:var(--encre-2);overflow-wrap:anywhere}
.mes-b-avance p{margin:0;display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}
.mes-b-avance p b{font-size:22px;line-height:1.15;font-weight:800;color:var(--encre);white-space:nowrap}
.mes-b-avance p span{font-size:14px;font-weight:600;color:var(--gris)}
.mes-b-avance p em{margin-left:auto;font-style:normal;font-size:14px;font-weight:700;color:var(--encre-2)}
.mes-b-avance .sv-segments{gap:4px}
.mes-b-avance .sv-segments span{height:10px;border-radius:5px}
/* 0.9.23 (relecture) : le gris seulement pour les pièces à faire (il passait devant le vert des pièces bonnes) */
.mes-b-avance .sv-segments span:not([class]){background:#E3E7EC}
.mes-b-barre{display:block;height:10px;margin-top:8px;border-radius:5px;background:#E3E7EC;overflow:hidden}
.mes-b-barre i{display:block;height:100%;border-radius:5px;background:#12773A}
.mes-b-avance .mes-b-temps{margin-top:6px;font-size:13px;color:var(--gris)}
.mes-b-avance .mes-b-temps.depasse{color:#B42318;font-weight:700}
.mes-b-file{margin-top:auto;padding-top:12px;border-top:1px solid var(--ligne-2)}
.mes-b-file p{margin:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 8px;font-size:13px;font-variant-numeric:tabular-nums;color:var(--gris)}
.mes-b-file p b{font-weight:700;color:var(--encre-2)}
.mes-b-file p b.plein{color:#B42318}
.mes-b-charge{display:block;height:6px;margin-top:7px;border-radius:3px;background:var(--ligne-2);overflow:hidden}
.mes-b-charge i{display:block;height:100%;border-radius:3px;background:#12773A}
.mes-b-charge.plein i{background:#B42318}
.mes-b-traiter{flex:1 1 340px;min-width:0;padding:20px}
.mes-b .mes-b-traiter h2{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:800}
.mes-b-traiter h2 small{margin-left:auto;font-size:13px;font-weight:400;color:var(--gris)}
.mes-b-traiter ul{list-style:none;margin:12px 0 0;padding:0}
.mes-b-traiter li{border-top:1px solid var(--ligne-2)}
.mes-b-traiter .mes-alerte{background:none;border-radius:0;padding:13px 0;gap:12px}
.mes-b-traiter .mes-alerte-icone{width:38px;height:38px;border-radius:10px}
.mes-b-traiter .mes-alerte-texte b{font-size:15px;line-height:1.3}
.mes-b-traiter .mes-alerte-texte span{font-size:14px;line-height:1.4}
.mes-b-liens{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.mes-b-liens .sv-bouton{flex:0 0 auto;min-height:44px;white-space:normal;text-align:center}
@media (max-width:600px){.mes-b .mes-b-titre{font-size:26px}}
/* 0.9.23 : les pages MES suivent la direction B : la liste « en pause » sans aplat, le TRS total en évidence */
.mes-qui-pause{background:none;border-radius:0;border-top:1px solid var(--ligne-2);padding:10px 0;color:var(--encre)}
.mes-qui-pause b{display:flex;align-items:center;gap:8px}
.mes-qui-pause b::before{content:"";flex:0 0 10px;height:10px;border-radius:50%;background:#E0B400}
.mes-qui-pause.arret{background:none}
.mes-qui-pause.arret b::before{background:#B42318}
.mes-qui-pause>span{padding-left:18px;color:var(--encre-2)}
.mes-b-trs-total{padding:12px 14px;margin:-12px -14px;border-radius:12px;background:#1B2636}
.mes-b-trs-barre.niveau-bon i{background:#2FB36A}.mes-b-trs-barre.niveau-moyen i{background:#FFD84D}.mes-b-trs-barre.niveau-faible i{background:#F26B5E}
.sv-mini-barre i{display:block;height:100%;flex:none}
/* 0.9.23 : la fiche de l'OF en direction B : les opérations en frise (une carte par opération, l'opération en cours en
   bleu), le détail de l'opération en cours (ses étapes cochées) et les composants en tuiles */
.sv-ops-tete{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 12px}
.sv .sv-ops-tete h2{margin:0;font-size:18px;font-weight:800}
.sv-ops-tete span{font-size:14px;color:var(--gris)}
.sv-ops-tete a{margin-left:auto;font-size:14px;font-weight:700}
.sv-frise{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));row-gap:16px}
.sv-op{display:flex;flex-direction:column;gap:12px;padding:0 7px;min-width:0}
.sv-op-rail{display:flex;align-items:center;height:46px}
.sv-op-trait{flex:1;height:4px;border-radius:2px;background:#D5DAE0}
.sv-op:first-child .sv-op-rail .sv-op-trait:first-child,.sv-op:last-child .sv-op-rail .sv-op-trait:last-child{visibility:hidden}
.sv-op.fait .sv-op-trait,.sv-op.courant .sv-op-trait:first-child{background:#12773A}
.sv-op-rond{width:40px;height:40px;flex:none;margin:0 8px;border-radius:50%;display:grid;place-items:center;background:var(--papier);color:var(--encre-2);box-shadow:inset 0 0 0 3px #CDD3DA;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.sv-op-rond .ico{width:20px;height:20px;stroke-width:4}
.sv-op.fait .sv-op-rond{background:#12773A;color:#fff;box-shadow:none}
.sv-op.courant .sv-op-rond{background:#1456B8;color:#fff;box-shadow:0 0 0 5px #DCE7F8}
.sv-op.retard:not(.fait):not(.courant) .sv-op-rond{box-shadow:inset 0 0 0 3px #B42318;color:#8A1A12}
.sv-op-carte{flex:1;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;background:var(--papier);color:var(--encre);box-shadow:0 1px 3px rgba(17,26,38,.08)}
.sv-op.courant .sv-op-carte{background:#1456B8;color:#fff}
.sv-op-carte p{margin:0}
.sv-op-tete{display:flex;align-items:center;gap:8px}
.sv-op-num{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.sv-op.courant .sv-op-num{color:#DCE7F8}
.sv-op-tete .sv-pastille{margin-left:auto;min-height:24px;padding:0 10px}
.sv .sv-op-carte h3{margin:0;font-size:16px;font-weight:800;line-height:1.3;color:inherit;overflow-wrap:anywhere}
.sv-op-ou{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13px;color:var(--gris)}
.sv-op-poste{padding:2px 8px;border-radius:8px;background:var(--ligne-2);color:var(--encre-2);font-weight:800}
.sv-op-qui{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.sv-op-ini{width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;background:#DCE7F8;color:#0F4699;font-size:12px;font-weight:800}
.sv-op-ini .ico{width:15px;height:15px}
.sv-op-pieces p{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.sv-op-pieces b{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.sv-op-pieces span{font-size:13px;color:var(--gris)}
.sv-op-temps{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:14px}
.sv-op-temps .ico{width:16px;height:16px;color:var(--gris)}
.sv-op-temps b{font-variant-numeric:tabular-nums}
.sv-op-temps .sv-pastille{min-height:22px;padding:0 8px;font-size:12.5px}
.sv-op-cf{font-size:13px;color:var(--gris)}
.sv-op-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px}
.sv-op-actions>.sv-bouton,.sv-op-actions>details{flex:1 1 auto}
.sv-op-actions .sv-bouton{min-height:36px;padding:0 12px}
.sv-op-actions .confirmer[open] form{color:var(--encre);text-align:left;min-width:260px}
.sv-op-etapes>summary{list-style:none}
.sv-op-etapes>summary::-webkit-details-marker{display:none}
.sv-op-etapes ol{margin:8px 0 0;padding-left:20px;font-size:13px}
.sv-op-etapes li.fait{color:var(--gris);text-decoration:line-through}
.sv-op-etapes[open]{flex-basis:100%}
.sv-op-attente{font-size:13px;color:var(--gris)}
/* l'opération en cours, en bleu */
.sv-op.courant .sv-op-ou,.sv-op.courant .sv-op-pieces span,.sv-op.courant .sv-op-cf,.sv-op.courant .sv-op-attente{color:#DCE7F8}
.sv-op.courant .sv-op-poste{background:rgba(255,255,255,.18);color:#fff}
.sv-op.courant .sv-op-ini{background:#fff}
.sv-op.courant .sv-segments span,.sv-op.courant .sv-mini-barre{background:rgba(255,255,255,.25)}
.sv-op.courant .sv-segments .s-bleu,.sv-op.courant .sv-mini-barre .s-bleu{background:#fff}
.sv-op.courant .sv-op-temps .ico{color:#DCE7F8}
.sv-op.courant .sv-op-cf a{color:#fff}
.sv-op.courant .sv-op-actions>.sv-bouton,.sv-op.courant .sv-op-actions>details>summary.sv-bouton{background:rgba(255,255,255,.18);color:#fff}
.sv-op.courant .sv-op-actions>details>summary.sv-bouton.avancer{background:#12773A}
/* le détail de l'opération en cours */
.sv-encours-tete{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 14px}
.sv-encours-tete p{margin:0;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.sv .sv-encours-tete h2{margin:2px 0 0;font-size:22px;font-weight:800;line-height:1.2}
.sv-encours-tete .sv-pastille{margin-left:auto}
.sv-encours-qui{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:12px 0 0;font-size:14px;color:var(--encre-2)}
.sv-encours-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px 20px;margin:16px 0 0}
.sv-encours-chiffres p{margin:0}
.sv-encours-chiffres b{font-size:26px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.sv-encours-chiffres b small{font-size:16px;color:var(--gris)}
.sv-encours-chiffres span{display:block;font-size:13px;color:var(--gris);margin:2px 0 6px}
.sv-avertir{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:16px 0 0;padding:12px 14px;border-radius:12px;background:#FFD8B8;color:#7A3300;font-size:14px}
.sv-avertir .ico{width:20px;height:20px;flex:none}
.sv-avertir span{flex:1 1 220px;min-width:0}
.sv-avertir a{color:#7A3300;font-weight:800}
.sv .sv-etapes-liste-titre{display:flex;align-items:baseline;gap:10px;margin:18px 0 8px;font-size:16px;font-weight:800}
.sv-etapes-liste-titre span{font-size:14px;font-weight:400;color:var(--gris)}
.sv-etapes-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sv-etapes-liste li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--fond)}
.sv-etapes-liste li .sv-etape-rond{margin-top:1px;border-color:#CDD3DA;color:var(--gris);font-size:12px;font-weight:800}
.sv-etapes-liste li.fait .sv-etape-rond{border:0;background:#12773A;color:#fff}
.sv-etapes-liste li.courant{background:#DCE7F8}
.sv-etapes-liste li.courant .sv-etape-rond{border-color:#1456B8;color:#1456B8}
.sv-etapes-liste li b{display:block;font-size:15px}
.sv-etapes-liste li.fait b{color:var(--gris)}
.sv-etapes-liste li span{display:block;font-size:13px;color:var(--encre-2);white-space:pre-line}
/* les composants en tuiles */
.sv-compos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:10px;margin:12px 0 0}
.sv-compo{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 14px;border-radius:12px;background:var(--fond)}
.sv-compo.a-sortir{background:#FFF4EB;box-shadow:inset 0 0 0 1px #FFD8B8}
.sv-compo p{margin:0}
.sv-compo-tete{display:flex;align-items:center;gap:8px}
.sv-compo-tete a{font-weight:800}
.sv-compo-tete .sv-pastille{margin-left:auto;min-height:22px;padding:0 8px;font-size:12px}
.sv-compo-des{font-size:13px;color:var(--encre-2);overflow-wrap:anywhere}
.sv-compo-q{display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}
.sv-compo-q b{font-size:18px;font-weight:800}
.sv-compo-q span{font-size:13px;color:var(--gris)}
.sv-compo-lots{font-family:Consolas,monospace;font-size:12px;color:var(--gris);overflow-wrap:anywhere}
.sv-compo input.saisie-compte{width:100%}
.sv-compos-titre{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.sv .sv-compos-titre h2{margin:0;font-size:18px;font-weight:800}
.sv-compos-titre .sv-bouton{flex:0 0 auto;margin-left:auto}
/* 0.9.23 : « Pièce en plus » et « Rendre au magasin » sous les composants de l'OF */
.sv-compos-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.sv-compos-actions>.confirmer>summary.sv-bouton{flex:0 0 auto}
.sv-compos-actions .confirmer[open] form{left:0;right:auto;color:var(--encre);min-width:min(520px,86vw);flex-wrap:wrap}
.sv-compos-actions .confirmer[open] .aide{max-width:520px}
/* 0.9.23 (relecture) : le thème « nuit » (fond sombre) sur les suivis et le MES : les textes en couleur foncée fixe
   passent en teintes claires ; les blocs à fond clair fixe dont le texte suit le thème prennent un fond sombre ;
   les pièces et le rail « à faire » en gris sombre (en clair, ils passaient devant ce qui est fait) */
html[data-theme="nuit"] .mes-b-tuile.etat-marche .mes-b-avatar{border-color:#2FB36A;color:#7FD3A0}
html[data-theme="nuit"] .mes-b-tuile.etat-pause .mes-b-avatar{border-color:#E0B400;color:#FFD84D}
html[data-theme="nuit"] .mes-b-tuile.etat-arret .mes-b-avatar{border-color:#F0675A;color:#FF9C90}
html[data-theme="nuit"] .mes-b-tuile.etat-libre .mes-b-avatar{border-color:#4C8DF6;color:#9EC2FF}
html[data-theme="nuit"] .mes-b-tuile.etat-absent .mes-b-avatar{border-color:#9B87E0;color:#C9B8FF}
html[data-theme="nuit"] .mes-b-quoi a.mono{color:#9EC2FF}
html[data-theme="nuit"] .mes-b-trs b.niveau-bon{color:#7FD3A0}
html[data-theme="nuit"] .mes-b-trs b.niveau-moyen{color:#FFD84D}
html[data-theme="nuit"] .mes-b-trs b.niveau-faible,html[data-theme="nuit"] .mes-b-avance .mes-b-temps.depasse,
html[data-theme="nuit"] .mes-b-file p b.plein{color:#FF9C90}
html[data-theme="nuit"] .mes-b-rond.niveau-bon{background:#2FB36A}
html[data-theme="nuit"] .mes-b-rond.niveau-faible{background:#F0675A}
html[data-theme="nuit"] .sv-segments span:not([class]),html[data-theme="nuit"] .sv-mini-barre,
html[data-theme="nuit"] .mes-b-barre,html[data-theme="nuit"] .sv-op-trait{background:#343C48}
html[data-theme="nuit"] .sv-op.courant .sv-segments span:not([class]){background:rgba(255,255,255,.25)}
html[data-theme="nuit"] .sv-cles li:not([class]){--sv-c:#343C48}
html[data-theme="nuit"] .sv-op.retard:not(.fait):not(.courant) .sv-op-rond{box-shadow:inset 0 0 0 3px #F0675A;color:#FF9C90}
html[data-theme="nuit"] .sv-etapes-liste li.courant{background:var(--accent-doux)}
html[data-theme="nuit"] .sv-etapes-liste li.courant .sv-etape-rond{border-color:#9EC2FF;color:#9EC2FF}
html[data-theme="nuit"] .sv-compo.a-sortir{background:var(--alerte-doux);box-shadow:inset 0 0 0 1px var(--bord-alerte)}
/* 0.9.23 : un code article sans lien (module Articles pas autorisé) ne ressemble pas à un lien */
span.sv-code{text-decoration:none}
