/* MAISON MONTAIGNE — système de design V1 (identité provisoire, placeholder) */
:root{
  --ivoire:#F5F1E8; --papier:#FFFDF8; --papier-2:#FBF8F1; --ligne:#E3DBCB; --ligne-forte:#CDBFA6;
  --encre:#1E1C19; --graphite:#4B4741; --sourdine:#6A6459; --bronze:#96774A; --bronze-clair:#C9AB7C; --bronze-fond:#F1E7D6;
  --vert:#3B6A49; --vert-fond:#E5EFE7; --ambre:#A9711C; --ambre-fond:#F7EBD3; --rouge:#A3392C; --rouge-fond:#F6DFDA; --noir:#141311;
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif; --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r:10px; --r-s:6px; --ombre:0 1px 2px rgba(30,28,25,.06),0 8px 24px -12px rgba(30,28,25,.18);
}
/* ==== Étape 0 : couche de tokens SÉMANTIQUES (UI/UX V2) ====
   Alias de la palette ci-dessus : aucune couleur ni fonte nouvelle, aucune règle existante modifiée.
   Base typographique : html=15px, donc 1rem=15px. Corps mini = 14px = --t-2.
   Les usages en dur seront migrés vers ces tokens lot par lot (Étape 0 ne remplace rien). */
:root{
  --c-fond:var(--ivoire); --c-surface:var(--papier); --c-surface-2:var(--papier-2);
  --c-bord:var(--ligne); --c-bord-fort:var(--ligne-forte); --c-inverse:var(--noir);
  --c-texte:var(--encre); --c-texte-2:var(--graphite); --c-texte-3:var(--sourdine);
  --c-accent:var(--bronze); --c-accent-clair:var(--bronze-clair); --c-accent-fond:var(--bronze-fond);
  --c-ok:var(--vert); --c-ok-fond:var(--vert-fond);
  --c-attention:var(--ambre); --c-attention-fond:var(--ambre-fond);
  --c-critique:var(--rouge); --c-critique-fond:var(--rouge-fond);
  --t-1:.8rem;    /* 12px — micro : badges, méta (hors corps) */
  --t-2:.933rem;  /* 14px — CORPS minimum */
  --t-3:1.133rem; /* 17px — sous-titre / h3 */
  --t-4:1.6rem;   /* 24px — titre de section / h2 */
  --t-5:2.133rem; /* 32px — titre de page / grand chiffre / h1 */
  --e-1:.25rem; --e-2:.5rem; --e-3:1rem; --e-4:1.6rem;
  --rayon:var(--r); --rayon-s:var(--r-s); --rayon-pill:999px;
  --ombre-1:var(--ombre); --ombre-2:0 2px 10px -2px rgba(30,28,25,.12);
  --chiffres:"tnum" 1,"lnum" 1;
}
*{box-sizing:border-box}
html{font-size:15px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivoire);color:var(--encre);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--bronze);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;letter-spacing:0;margin:0;color:var(--encre)}
h1{font-size:1.9rem;line-height:1.2}h2{font-size:1.4rem;line-height:1.25}h3{font-size:1.2rem;line-height:1.3}
p{margin:.4rem 0}
.muted{color:var(--sourdine)}.small{font-size:.9rem}.tiny{font-size:.82rem}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}
.num{font-family:var(--serif);font-variant-numeric:tabular-nums lining-nums;font-weight:600}
/* Lot A — chiffres : lining tabulaire sur toutes les valeurs numériques d'affichage (KPI, jalons, branches) */
.val,.kpi .val,.compte .j,.branche .val{font-variant-numeric:tabular-nums lining-nums}
/* Lot A — couleur par signe (mécanisme ; filtre euros_signe). Sens MATHÉMATIQUE ; à ne pas confondre avec un seuil/écart. */
.montant{font-variant-numeric:tabular-nums lining-nums}
.montant--neg{color:var(--c-critique)} .montant--pos{color:var(--c-ok)} .montant--nul{color:var(--c-texte-2)}
/* Lot B — mur d'alertes : ligne entièrement cliquable (lien étiré, HTML valide) + survol ; groupes repliables via <details> */
.alerte.cliquable{position:relative}
.alerte.cliquable:hover{background:var(--c-surface-2)}
.alerte.cliquable .agir::after{content:"";position:absolute;inset:0}
.grp-alertes>summary{cursor:pointer;list-style:none;font:inherit;font-weight:600;margin:.6rem 0 .3rem;color:var(--c-texte-2)}
.grp-alertes>summary::-webkit-details-marker{display:none}
.grp-alertes>summary::before{content:'▾';margin-right:.4rem;font-size:.8rem;color:var(--c-texte-3)}
.grp-alertes:not([open])>summary::before{content:'▸'}
/* structure */
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.nav{background:var(--noir);color:#EDE6D8;padding:1.4rem 1.1rem 1.6rem;display:flex;flex-direction:column;gap:1.2rem;position:sticky;top:0;height:100vh;height:100dvh;
  overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4a463f var(--noir)}
/* Le menu défile À L'INTÉRIEUR de sa colonne sombre : aucune entrée ne sort jamais sur le fond clair de la page, quel que soit le nombre d'entrées ou la hauteur de l'écran. */
.nav::-webkit-scrollbar{width:8px}.nav::-webkit-scrollbar-thumb{background:#4a463f;border-radius:4px}
.nav>*{flex:none}
.marque{display:flex;align-items:center;gap:.7rem;color:var(--ivoire)}
.marque .mono-mm{width:38px;height:38px;border:1px solid var(--bronze-clair);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-weight:600;color:var(--bronze-clair);font-size:1.05rem}
.marque b{font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:.06em;display:block;line-height:1.05}
.marque .tiny{color:var(--bronze-clair);letter-spacing:.14em;text-transform:uppercase;font-size:.62rem}
.nav a.item{display:flex;align-items:center;gap:.6rem;color:#C9C2B4;padding:.5rem .6rem;border-radius:var(--r-s);font-size:.92rem}
.nav a.item:hover,.nav a.item.actif{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.nav a.item.actif{border-left:2px solid var(--bronze-clair);padding-left:calc(.6rem - 2px)}
/* Lot E — icônes des 7 entrées + état actif RENFORCÉ */
.nav-ico{display:inline-block;width:1.15em;text-align:center;opacity:.75;margin-right:.15rem}
.nav a.item.actif{background:rgba(201,171,124,.16);color:#fff;font-weight:600;border-left:3px solid var(--bronze-clair);padding-left:calc(.6rem - 3px)}
.nav details.nav-groupe>summary.item.actif{color:#fff}
.nav .groupe{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sourdine);margin:.4rem .6rem 0}
.nav details.nav-groupe>summary{cursor:pointer;list-style:none}.nav details.nav-groupe>summary::-webkit-details-marker{display:none}.nav details.nav-groupe>summary::after{content:'▾';margin-left:auto;font-size:.8rem;color:var(--sourdine)}.nav details.nav-groupe[open]>summary::after{content:'▴'}
.nav details.nav-groupe a.item.sous{padding-left:1.4rem;font-size:.88rem}.nav details.nav-groupe a.item.sous.actif{padding-left:calc(1.4rem - 2px)}
.nav .bas{margin-top:auto;padding-top:1rem;font-size:.82rem;color:#A39B8D}
.nav .stub-tag{margin-left:auto;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine);border:1px solid #3a3733;border-radius:3px;padding:0 4px}
.main{min-width:0;display:flex;flex-direction:column}
.bandeau-sandbox{background:var(--ambre);color:#fff;padding:.45rem 1.6rem;font-size:.84rem;display:flex;gap:1rem;align-items:center}
.bandeau-sandbox b{letter-spacing:.08em}
.bandeau-sandbox a{color:#fff;text-decoration:underline;margin-left:auto}
.bandeau-live{background:var(--rouge);color:#fff;padding:.45rem 1.6rem;font-size:.84rem}
.haut{display:flex;align-items:center;gap:1rem;padding:1rem 1.6rem 0;flex-wrap:wrap}
.haut .fil{color:var(--sourdine);font-size:.86rem}
.haut .droite{margin-left:auto;display:flex;align-items:center;gap:.8rem;font-size:.86rem}
.contenu{padding:var(--e-3) var(--e-4) 2rem;max-width:1380px;width:100%}
.titre-page{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.4rem 0 1.2rem;flex-wrap:wrap}
.titre-page .sous{color:var(--c-texte-2);margin-top:.3rem;font-size:1rem}
/* cartes et grilles */
.carte{background:var(--papier);border:1px solid var(--ligne);border-radius:var(--r);box-shadow:var(--ombre);padding:var(--e-3);overflow-x:auto}
.carte.plate{box-shadow:none}
.carte h2,.carte h3{margin-bottom:var(--e-2)}
.grille{display:grid;gap:var(--e-3)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pile{display:flex;flex-direction:column;gap:var(--e-3)}
.ligne{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.entre{justify-content:space-between}
.sep{border:0;border-top:1px solid var(--ligne);margin:1rem 0}
/* indicateurs */
.kpi{padding:var(--e-3)}
.kpi .lib{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sourdine)}
.kpi .val{font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1.1;margin-top:.25rem}
.kpi .val.rouge{color:var(--rouge)}.kpi .val.vert{color:var(--vert)}
/* badges */
.badge{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.74rem;font-weight:500;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}
.b-neutre{background:var(--papier-2);border-color:var(--ligne-forte);color:var(--graphite)}
.b-bronze{background:var(--bronze-fond);color:var(--bronze);border-color:#E2CFAE}
.b-vert{background:var(--vert-fond);color:var(--vert);border-color:#C6DCCB}
.b-ambre{background:var(--ambre-fond);color:var(--ambre);border-color:#EBD3A6}
.b-rouge{background:var(--rouge-fond);color:var(--rouge);border-color:#EBBFB6}
.b-noir{background:var(--noir);color:#fff}
.b-confirmer{background:transparent;border:1px dashed var(--bronze);color:var(--bronze);font-style:italic}
/* comptes à rebours */
.compte{display:flex;align-items:center;gap:.9rem;padding:.7rem .2rem;border-top:1px solid var(--ligne)}
.compte:first-child{border-top:0}
.compte .j{min-width:74px;text-align:center;font-family:var(--serif);font-weight:600;font-size:1.5rem;line-height:1;padding:.45rem .3rem;border-radius:var(--r-s);background:var(--papier-2);color:var(--graphite)}
.compte .j small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin-top:.2rem;opacity:.85}
.compte.calme .j{background:var(--papier-2)}
.compte.attention .j{background:var(--bronze-fond);color:var(--bronze)}
.compte.urgent .j{background:var(--ambre-fond);color:var(--ambre)}
.compte.critique .j{background:var(--rouge-fond);color:var(--rouge)}
.compte.depasse .j{background:var(--noir);color:#fff}
.compte.realisee .j{background:var(--vert-fond);color:var(--vert)}
.compte .t b{display:block;font-weight:500}
.compte .t span{color:var(--sourdine);font-size:.84rem}
/* alertes */
.alerte{display:flex;gap:.7rem;align-items:flex-start;padding:.6rem .7rem;border-radius:var(--r-s);border-left:3px solid var(--ligne-forte);background:var(--papier-2);font-size:.9rem}
.alerte.rouge{border-color:var(--rouge);background:var(--rouge-fond)}.alerte.ambre{border-color:var(--ambre);background:var(--ambre-fond)}.alerte.noir{border-color:var(--noir)}
.alerte .quoi b{font-weight:600}
.alerte .ico{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.74rem;font-weight:700;font-family:var(--serif);background:var(--ligne-forte);color:#fff;margin-top:.05rem}
.alerte.rouge .ico{background:var(--rouge)}.alerte.ambre .ico{background:var(--ambre)}.alerte.noir .ico{background:var(--noir)}
.alerte .quoi{flex:1;min-width:0}
.alerte .agir{margin-left:auto;align-self:center;min-height:40px;white-space:nowrap}
.mur-tete{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}
.mur-tete h3{margin:0 .3rem 0 0}
.pastille{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 .45rem;border-radius:999px;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums;color:#fff}
.pastille.noir{background:var(--noir)}.pastille.rouge{background:var(--rouge)}.pastille.ambre{background:var(--ambre)}
.btn.coche{min-width:44px;min-height:44px;justify-content:center;font-size:1.05rem}
.tb-grille{display:grid;gap:1rem;grid-template-columns:2fr 1fr}
/* état vide composable : titre, phrase, action */
.etat-vide{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;padding:1.4rem 1rem;color:var(--sourdine);border:1px dashed var(--ligne-forte);border-radius:var(--r);background:var(--papier-2)}
.etat-vide.compact{flex-direction:row;align-items:baseline;text-align:left;flex-wrap:wrap;gap:var(--e-2);padding:var(--e-2) var(--e-3)}
.etat-vide.compact b{font-size:var(--t-2)}
.etat-vide.compact p{font-size:var(--t-1);color:var(--c-texte-3);max-width:none}
.etat-vide.compact .btn{margin-top:0}
.etat-vide img.visuel{width:72px;height:54px;object-fit:cover;border-radius:6px;flex:none;align-self:center;opacity:.92;border:1px solid var(--ligne)}
.etat-vide b{font-family:var(--serif);font-weight:600;font-size:1.12rem;color:var(--encre)}
.etat-vide p{margin:0;font-size:.88rem;max-width:36ch}
.etat-vide .btn{margin-top:.5rem;min-height:44px}
.carte.vide .etat-vide{border:0;background:transparent;padding-top:.2rem}
.tab td .etat-vide{margin:.3rem 0}.tab tr:hover td .etat-vide{background:var(--papier-2)}
/* Ma journée : lignes-cartes tactiles */
.lj{display:flex;align-items:center;gap:.7rem;padding:.55rem .3rem;min-height:48px;border-top:1px solid var(--ligne);color:inherit;text-decoration:none}
.carte .lj:first-of-type,.carte p+.lj,.carte h3+.lj{border-top:0}
.lj:hover{background:var(--papier-2);text-decoration:none}
.lj-t{flex:1;min-width:0}.lj-t b{display:block;font-weight:500;line-height:1.3}.lj-t span{display:block;font-size:.82rem;color:var(--sourdine)}
.lj-d{display:flex;align-items:center;gap:.4rem;white-space:nowrap}
.lj::after{content:"›";color:var(--bronze-clair);font-size:1.4rem;line-height:1;font-family:var(--serif)}
.carte h3 .pastille{vertical-align:middle;margin-left:.25rem}
/* axe de dates (B15) */
.axe{position:relative;height:74px;margin:.4rem .6rem 0}
.axe-ligne{position:absolute;left:0;right:0;top:30px;height:2px;background:var(--ligne-forte)}
.axe-pt{position:absolute;top:22px;transform:translateX(-50%);text-align:center;font-size:.68rem;line-height:1.15;color:var(--sourdine);width:76px}
.axe-pt i{display:block;width:14px;height:14px;border-radius:50%;margin:0 auto 4px;background:var(--graphite);border:2px solid var(--papier)}
.axe-pt b{display:block;color:var(--encre);font-weight:600}
.axe-pt.attention i{background:var(--bronze)}.axe-pt.urgent i{background:var(--ambre)}.axe-pt.critique i{background:var(--rouge)}.axe-pt.depasse i{background:var(--noir)}.axe-pt.realisee i{background:var(--vert)}
.axe-auj{position:absolute;top:8px;bottom:14px;width:2px;background:var(--bronze);transform:translateX(-50%)}
.axe-auj span{position:absolute;top:-8px;left:5px;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bronze);white-space:nowrap}
@media (max-width:620px){.axe-pt span{display:none}.axe-pt{width:44px}}
/* branches de statut */
.branches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem}
.branche{border:1px solid var(--ligne);border-radius:var(--r-s);padding:.6rem .7rem;background:var(--papier-2)}
.branche .lib{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sourdine)}
.branche .val{font-weight:500;margin-top:.15rem}
.etapes{display:flex;gap:.3rem;flex-wrap:wrap;margin:.6rem 0}
.etape{flex:1;min-width:110px;text-align:center;font-size:.76rem;padding:.4rem .3rem;border:1px solid var(--ligne);border-radius:var(--r-s);color:var(--sourdine);background:var(--papier)}
.etape.fait{background:var(--vert-fond);border-color:#C6DCCB;color:var(--vert)}
.etape.actuel{background:var(--noir);border-color:var(--noir);color:#fff;font-weight:500}
/* tableaux */
table.tab{width:100%;border-collapse:collapse;font-size:var(--t-2)}
.tab th{text-align:left;font-weight:600;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sourdine);padding:.5rem .6rem;border-bottom:1px solid var(--ligne-forte)}
.tab td{padding:.55rem .6rem;border-bottom:1px solid var(--ligne);vertical-align:middle}
.tab tr:hover td{background:var(--papier-2)}
.tab td.num,.tab th.num{text-align:right;font-variant-numeric:tabular-nums}
/* Lot D — tri par colonne : en-têtes cliquables + indicateur */
.tab th.triable{cursor:pointer;user-select:none}
.tab th.triable:hover{color:var(--c-texte-2)}
.tab th.triable::after{content:'\2195';opacity:.35;margin-left:.3em;font-size:.9em}
.tab th.triable[data-tri=asc]::after{content:'\2191';opacity:1}
.tab th.triable[data-tri=desc]::after{content:'\2193';opacity:1}
.tab td.vert{color:var(--vert);font-weight:600}
/* Lot D — en-têtes collants : les tables enveloppées défilent dans leur cadre, l'en-tête reste visible */
.tab-wrap{overflow:auto;max-height:72vh}
.tab-wrap table.tab thead th{position:sticky;top:0;z-index:1;background:var(--c-surface);box-shadow:inset 0 -1px var(--c-bord-fort)}
.colonnes-vides{margin:0 0 .5rem}
[hidden]{display:none!important}   /* l'attribut hidden doit gagner sur toute classe display:flex/grid (palette, tiroirs) */
/* Lot E — palette de commandes (Cmd+K) */
.palette-ov{position:fixed;inset:0;background:rgba(20,19,17,.45);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:50}
.palette{background:var(--c-surface);border:1px solid var(--c-bord-fort);border-radius:var(--rayon);box-shadow:var(--ombre-2);width:min(560px,92vw);overflow:hidden}
.palette-q{width:100%;border:0;border-bottom:1px solid var(--c-bord);padding:.9rem 1rem;font-size:var(--t-3);background:transparent;color:var(--c-texte)}
.palette-q:focus{outline:none}
.palette-res{list-style:none;margin:0;padding:.3rem;max-height:50vh;overflow:auto}
.palette-res li{padding:.5rem .7rem;border-radius:var(--rayon-s);cursor:pointer;font-size:var(--t-2);color:var(--c-texte)}
.palette-res li.actif{background:var(--c-accent-fond)}
/* Lot F — carte d'opération : frise des jalons, tâche en tête, tags en grille de 5 avec pastille */
.frise{display:flex;gap:.25rem;margin:.7rem 0 .5rem}
.frise .jalon{flex:1;text-align:center;font-size:var(--t-1);color:var(--c-texte-3)}
.frise .jalon .pt{display:block;height:6px;border-radius:3px;background:var(--c-bord-fort);margin-bottom:.25rem}
.frise .jalon.ok{color:var(--c-texte);font-weight:600}
.frise .jalon.ok .pt{background:var(--c-ok)}
.tache-tete{background:var(--c-accent-fond);border-radius:var(--rayon-s);padding:.45rem .6rem;font-size:var(--t-2);margin-bottom:.2rem}
.tache-tete .lib{color:var(--c-texte-3);font-size:var(--t-1);text-transform:uppercase;letter-spacing:.08em;margin-right:.4rem}
.tags-grille{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;margin:.3rem 0}
.tags-grille .tag-etat{border:1px solid var(--c-bord);border-radius:var(--rayon-s);padding:.3rem .5rem .3rem .4rem;position:relative}
.tags-grille .tag-etat .lib{display:block;color:var(--c-texte-3);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}
.tags-grille .tag-etat .val{display:block;color:var(--c-texte);margin-top:.1rem;font-size:var(--t-1)}
.tags-grille .tag-etat::before{content:'';position:absolute;top:.45rem;right:.4rem;width:7px;height:7px;border-radius:50%;background:var(--c-bord-fort)}
.tags-grille .tag-etat.e-attente::before{background:var(--c-attention)}
.tags-grille .tag-etat.e-ok::before{background:var(--c-ok)}
@media (max-width:620px){.tags-grille{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* tableau des ventes : saisie inline, retour d'état sur la ligne */
.prix-inp{width:118px;text-align:right;padding:.35rem .5rem;font-weight:600;font-variant-numeric:tabular-nums}
.statut-sel{padding:.35rem .4rem;width:auto}
tr.lot-vert td.prix,tr.lot-vert td.prix input{color:var(--vert)} tr.lot-vert td.prix input{border-color:#C6DCCB;background:var(--vert-fond)} tr.lot-exclu td{opacity:.55}
td.prix{position:relative;white-space:nowrap}
td.prix::after{display:inline-block;width:1.1em;margin-left:.3rem;font-size:.8rem;vertical-align:middle;text-align:left;content:""}
tr.enregistrement td.prix::after{content:"…";color:var(--sourdine)}
tr.enregistre td.prix::after{content:"✓";color:var(--vert);font-weight:700}
tr.echec td.prix::after{content:"!";color:var(--rouge);font-weight:700}
tr.echec td.prix input{border-color:var(--rouge);background:var(--rouge-fond)}
/* formulaires */
.champ{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}
.champ label{font-size:.8rem;font-weight:500;color:var(--graphite)}
.champ .aide{font-size:.78rem;color:var(--sourdine)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{
  font:inherit;padding:.55rem .7rem;border:1px solid var(--ligne-forte);border-radius:var(--r-s);background:#fff;color:var(--encre);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--bronze-clair);outline-offset:1px;border-color:var(--bronze)}
textarea{min-height:110px;resize:vertical}
.form-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.2rem}
.form-grille .large{grid-column:1/-1}
.btn{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.9rem;font-weight:500;padding:.55rem 1rem;border-radius:var(--r-s);border:1px solid var(--ligne-forte);background:var(--papier);color:var(--encre);cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{background:var(--papier-2);text-decoration:none}
.btn.primaire{background:var(--noir);border-color:var(--noir);color:#fff}.btn.primaire:hover{background:#2c2a26}
.btn.bronze{background:var(--bronze);border-color:var(--bronze);color:#fff}
.btn.vert{background:var(--vert);border-color:var(--vert);color:#fff}
.btn.rouge{background:var(--rouge);border-color:var(--rouge);color:#fff}
.btn.petit{padding:.3rem .65rem;font-size:.8rem}
.btn.lien{border:0;background:transparent;color:var(--bronze);padding:.2rem .3rem}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
form.inline{display:inline}
.btn.pleine{width:100%;justify-content:center;min-height:48px}
.devis-form{gap:.4rem}.montant-inp{width:150px;font-variant-numeric:tabular-nums}
/* onglets */
.onglets{display:flex;gap:.2rem;border-bottom:1px solid var(--ligne-forte);margin:1rem 0 1.2rem;overflow-x:auto}
.onglets a{padding:.6rem .9rem;color:var(--sourdine);border-bottom:2px solid transparent;white-space:nowrap;font-size:.92rem}
.onglets a:hover{color:var(--encre);text-decoration:none}
.onglets a.actif{color:var(--encre);border-bottom-color:var(--bronze);font-weight:500}
.onglets-plus{margin:-.9rem 0 1.2rem}.onglets-plus>summary{cursor:pointer;list-style:none;display:inline-flex;gap:.5rem;align-items:center;padding:.35rem .9rem;font-size:.86rem;color:var(--sourdine);border-radius:var(--r-s)}
.onglets-plus>summary::-webkit-details-marker{display:none}.onglets-plus>summary>span:first-child::after{content:' ▾'}.onglets-plus[open]>summary>span:first-child::after{content:' ▴'}.onglets-plus>summary:hover{color:var(--encre);background:var(--fond-2,rgba(0,0,0,.03))}
.onglets.secondaires{margin:.2rem 0 0;border-bottom:1px dashed var(--ligne-forte)}.onglets.secondaires a{font-size:.88rem;padding:.45rem .8rem}
/* messages */
.flash{padding:.6rem .9rem;border-radius:var(--r-s);margin-bottom:.8rem;font-size:.9rem;border:1px solid}
.flash.success{background:var(--vert-fond);border-color:#C6DCCB;color:var(--vert)}
.flash.error{background:var(--rouge-fond);border-color:#EBBFB6;color:var(--rouge)}
.flash.warning,.flash.info{background:var(--ambre-fond);border-color:#EBD3A6;color:var(--ambre)}
/* fil */
.fil-liste{list-style:none;margin:0;padding:0}
.fil-liste li{display:grid;grid-template-columns:120px 1fr;gap:.8rem;padding:.55rem 0;border-top:1px solid var(--ligne);font-size:.9rem}
.fil-liste li:first-child{border-top:0}
.fil-liste .quand{color:var(--sourdine);font-size:.8rem;padding-top:.15rem}
.fil-liste .type{font-weight:500}
/* arbre documents */
.arbre{list-style:none;padding-left:0;margin:0}
.arbre ul{list-style:none;padding-left:1.1rem;margin:0;border-left:1px dashed var(--ligne-forte)}
.arbre li{padding:.18rem 0}
.arbre .dos{display:flex;gap:.5rem;align-items:baseline}
.arbre .dos .lib{font-weight:500}
.arbre .dos .code{font-family:var(--serif);color:var(--sourdine)}
.arbre .n1>.dos .lib{font-size:1.02rem;font-weight:600}
.doc{display:flex;gap:.6rem;align-items:center;padding:.25rem .4rem;margin-left:2.6rem;border-radius:var(--r-s);background:var(--papier-2);font-size:.86rem;margin-top:.15rem}
.doc.caduc{opacity:.55;text-decoration:line-through}
/* D01 : vue documents en tuiles façon Drive */
.fil-drive{font-size:.9rem;margin-bottom:.6rem;color:var(--sourdine)}
.fil-drive a{color:var(--bronze)}.fil-drive .sep{color:var(--ligne-forte);margin:0 .1rem}.fil-drive b{color:var(--encre)}
.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;margin:.4rem 0 .2rem}
.tuile{display:flex;flex-direction:column;gap:.35rem;padding:.75rem .8rem;border:1px solid var(--ligne);border-radius:var(--r);background:var(--papier-2);text-decoration:none;color:var(--encre);transition:.12s}
.tuile:hover{background:var(--bronze-fond);border-color:var(--ligne-forte);text-decoration:none;transform:translateY(-1px)}
.tuile.vide{opacity:.72}
.tuile .ico-dossier{width:30px;height:24px;border-radius:3px 3px 4px 4px;background:var(--bronze-clair);position:relative}
.tuile .ico-dossier::before{content:"";position:absolute;top:-5px;left:0;width:13px;height:6px;border-radius:3px 3px 0 0;background:var(--bronze-clair)}
.tuile.vide .ico-dossier,.tuile.vide .ico-dossier::before{background:var(--ligne-forte)}
.tuile .nom{font-weight:600;font-size:.92rem;line-height:1.25}
.tuile .meta{font-size:.72rem;color:var(--sourdine)}
.tuile .meta .code{font-family:var(--serif)}
.pastille-vide{color:var(--ambre)}
/* dépôt */
.zone-depot{border:2px dashed var(--ligne-forte);border-radius:var(--r);padding:2rem;text-align:center;background:var(--papier-2);transition:.15s}
.zone-depot.survol{border-color:var(--bronze);background:var(--bronze-fond)}
.zone-depot input{display:none}
.zone-depot::before{content:"";display:block;width:36px;height:36px;margin:0 auto .5rem;border-radius:50%;border:1.5px solid var(--bronze-clair);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2396774A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242'/%3E%3Cpath d='M12 12v9'/%3E%3Cpath d='m16 16-4-4-4 4'/%3E%3C/svg%3E") center/18px no-repeat}
.zone-depot p{margin:.2rem 0}
.progres{height:8px;background:var(--ligne);border-radius:999px;overflow:hidden}
.progres>div{height:100%;background:var(--bronze);width:0;transition:width .2s}
.fichier-ligne{display:grid;grid-template-columns:1fr 100px 80px;gap:.8rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--ligne);font-size:.88rem}
/* connexion */
.connexion{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.connexion .visuel{background:var(--noir) center/cover no-repeat;position:relative;min-height:320px}
.connexion .visuel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,17,.15),rgba(20,19,17,.75))}
.connexion .visuel .legende{position:absolute;left:2.2rem;bottom:2rem;color:var(--ivoire);z-index:1;max-width:420px}
.connexion .visuel .legende h1{font-size:2.6rem;color:#fff;font-weight:500}
.connexion .panneau{display:flex;align-items:center;justify-content:center;padding:2rem}
.connexion .boite{width:100%;max-width:380px}
.placeholder-tag{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-clair);border:1px dashed var(--bronze-clair);border-radius:3px;padding:.1rem .4rem}
/* portail */
.portail-shell{max-width:980px;margin:0 auto;padding:1.2rem 1.4rem 3rem}
.portail-haut{display:flex;align-items:center;gap:1rem;padding:.6rem 0 1.2rem;border-bottom:1px solid var(--ligne);margin-bottom:1.4rem}
.hero{border-radius:var(--r);overflow:hidden;background:var(--noir) center/cover;min-height:150px;position:relative;color:#fff;display:flex;align-items:flex-end;padding:1.2rem 1.4rem}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,19,17,.8),rgba(20,19,17,.1))}
.hero>*{position:relative}
.vide{text-align:center;padding:2.2rem 1rem;color:var(--sourdine)}
.vide img{max-width:280px;border-radius:var(--r);opacity:.9;margin-bottom:.8rem}
.illus{height:110px;border-radius:var(--r);background:var(--noir) center/cover;margin-bottom:1rem;position:relative}
.illus::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,19,17,.55),transparent);border-radius:var(--r)}
/* pages d'erreur */
.erreur-page{max-width:560px;margin:8vh auto;text-align:center}
.erreur-page img{max-width:360px;border-radius:var(--r);margin-bottom:1rem}
/* mobile */
.burger{display:none}
@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .nav{position:fixed;top:0;bottom:0;left:-260px;width:250px;z-index:20;transition:left .2s;height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .nav.ouvert{left:0}
  .burger{display:inline-flex}
  .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .branches{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grille{grid-template-columns:1fr}
  .connexion{grid-template-columns:1fr}
  .connexion .visuel{min-height:220px}
  .contenu{padding:1rem}
  .haut{padding:.8rem 1rem 0}
  .tb-grille{grid-template-columns:1fr}
  .tb-alertes{order:-1}
}
@media (max-width:620px){
  .g2,.g3,.g4{grid-template-columns:1fr}
  /* tactile : colonnes secondaires masquées (.m), cibles de 44 px */
  .tab .m{display:none}
  .btn,.btn.petit{min-height:44px}
  .btn.lien{min-height:0}
  input[type=text],input[type=email],input[type=number],input[type=date],select,.prix-inp,.statut-sel{min-height:44px;font-size:16px}
  .prix-inp{width:100%;min-width:96px}
  .actions .btn{flex:1 1 auto;justify-content:center}
  .nav.ouvert{box-shadow:0 0 0 100vmax rgba(20,19,17,.45)}
  .devis-form{flex-direction:column;align-items:stretch}.devis-form .montant-inp{width:100%}.devis-form .btn{width:100%;justify-content:center;min-height:48px}
  .fil-liste li{grid-template-columns:1fr}
  .fichier-ligne{grid-template-columns:1fr 70px 60px}
  h1{font-size:1.6rem}
}

/* Connexion par code à 6 chiffres : UN champ standard, visible, sans habillage par-dessus (un pseudo-élément absolu
   posé sur le champ masquait la saisie — corrigé le 2026-09-03). L'espacement des chiffres est purement typographique. */
.code-cases{max-width:352px}
.code-6{display:block;width:100%;height:56px;padding:0 .6rem 0 1rem;font-family:ui-monospace,'DejaVu Sans Mono',Menlo,monospace;font-size:1.7rem;font-weight:600;letter-spacing:.45em;text-align:center;
  border:1px solid var(--ligne-forte);border-radius:var(--r-s);background:#fff;color:var(--encre);caret-color:var(--bronze)}
.code-6::placeholder{color:var(--ligne-forte);letter-spacing:.45em}
.code-6:focus{outline:2px solid var(--bronze-clair);outline-offset:1px;border-color:var(--bronze)}
.code-form.en-erreur .code-6{border-color:var(--rouge);background:var(--rouge-fond)}
.code-etat{margin:.5rem 0 0;font-size:.84rem;color:var(--sourdine);min-height:1.3em}
.code-etat.rouge{color:var(--rouge);font-weight:500}
.code-jauge{display:flex;gap:4px;margin-top:.6rem}
.code-jauge span{flex:1;height:4px;border-radius:2px;background:var(--vert)}
.code-jauge span.perdue{background:var(--rouge-fond);border:1px solid #EBBFB6}
.code-renvoi{display:flex;align-items:center;gap:.7rem;margin-top:.9rem;flex-wrap:wrap}
.code-renvoi .btn{min-height:48px}
.code-bloque .btn{display:inline-flex;margin-top:.4rem}
/* C2 — Tâches à réaliser : sections par rubrique */
.carte.rubrique{scroll-margin-top:1rem}.carte.rubrique.vide{opacity:.75}.carte.rubrique.vide h3{color:var(--sourdine)}
.tab.compacte td,.tab.compacte th{padding:.3rem .5rem;font-size:.88rem}tr.urgente td:first-child{border-left:3px solid var(--rouge)}
.badge.b-vide{background:transparent;border:1px solid var(--ligne-forte);color:var(--sourdine)}.saisie-ligne input,.saisie-ligne select{min-height:34px}
/* C1 — priorité des opérations */
tr.op-ligne{cursor:grab}tr.op-ligne .poignee{color:var(--muted,#999);cursor:grab;user-select:none}tr.op-ligne.en-glisse{opacity:.45;background:var(--bronze-clair,#f0e9df)}tr.op-ligne.en-glisse *{cursor:grabbing}td.rang{white-space:nowrap}td.rang .fleches{display:inline-flex;gap:2px;margin-left:.3rem;vertical-align:middle}td.rang .fleches .btn.petit{padding:0 .35rem;min-height:26px;line-height:1}
/* C6 — fiche projet : groupes de cases à cocher */
.champ.cases ul{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem .9rem}.champ.cases li label{display:inline-flex;gap:.35rem;align-items:center;font-weight:400;font-size:.9rem}.champ.cases input[type=checkbox]{width:auto;min-height:0}

/* P12 — feu Go/No-Go du lancement de la prochaine opération */
.feu-go{border-left:5px solid var(--sourdine)}
.feu-go.feu-go{border-left-color:var(--vert);background:var(--vert-fond)}
.feu-go.feu-attendre{border-left-color:var(--ambre);background:var(--ambre-fond)}
.feu-go.feu-no_go{border-left-color:var(--rouge);background:var(--rouge-fond)}
.feu-go.feu-incomplet,.feu-go.feu-aucune{border-left-color:var(--bronze-clair);background:var(--bronze-fond)}
.feu-pastille{width:20px;height:20px;border-radius:50%;flex:0 0 auto;background:var(--sourdine);box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(0,0,0,.06)}
.feu-pastille.feu-go{background:var(--vert)}
.feu-pastille.feu-attendre{background:var(--ambre)}
.feu-pastille.feu-no_go{background:var(--rouge)}
.feu-pastille.feu-incomplet,.feu-pastille.feu-aucune{background:var(--bronze-clair)}

/* P02 / P03 — bandeaux de trésorerie datés */
.bandeau-vert{background:var(--vert-fond);border-left:4px solid var(--vert);color:var(--vert);padding:.55rem .8rem;border-radius:4px;margin:.6rem 0;font-size:.9rem}
.bandeau-rouge-doux{background:var(--rouge-fond);border-left:4px solid var(--rouge);color:var(--rouge);padding:.55rem .8rem;border-radius:4px;margin:.6rem 0;font-size:.9rem}

/* B01 — bilan en grille A–E, tableau des ventes à droite */
.bilan-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
@media (max-width:900px){.bilan-cols{grid-template-columns:1fr}}
.sel-urgence{font-size:.85rem;padding:.15rem .3rem;border-radius:6px;border:1px solid var(--bord,#ddd)}.sel-urgence.u-forte{color:var(--rouge);border-color:var(--rouge);font-weight:600}.sel-urgence.u-moyenne{color:var(--ambre,#b8860b)}

/* #33 R4/S9 — Responsive mobile & tablette : navigation latérale repliable et grands tableaux scrollables.
   Complète les points d'arrêt existants (le tiroir de menu à 980px, les cibles tactiles à 620px). */
@media (min-width:981px) and (max-width:1180px){
  /* petit portable / tablette paysage : colonne de menu resserrée, plus de place pour les tableaux */
  .shell{grid-template-columns:208px 1fr}
  .contenu{padding:1.1rem 1.2rem 2.5rem}
}
@media (max-width:980px){
  /* menu en tiroir : un voile assombrit la page dès la tablette (pas seulement sous 620px) pour signaler l'ouverture */
  .nav.ouvert{box-shadow:0 0 0 100vmax rgba(20,19,17,.45)}
  .bilan-cols{grid-template-columns:1fr}
}
/* conteneurs de tableaux : défilement horizontal fluide plutôt qu'un écrasement des colonnes */
.carte,.tab-wrap{-webkit-overflow-scrolling:touch}
/* Mobile : une table large ne doit jamais élargir la page — les enfants de grille/pile peuvent rétrécir, la carte défile en interne */
.grille>*,.pile>*,.contenu>*,.bilan-cols>*,[class$='-cols']>*{min-width:0}.contenu,.shell{min-width:0}.carte{max-width:100%}
@media (max-width:620px){.bandeau-sandbox{flex-wrap:wrap;gap:.3rem .8rem;padding:.45rem 1rem;line-height:1.3}.bandeau-sandbox a{margin-left:0}}
@media (max-width:620px){.form-grille,[style*="min-width:380px"]{min-width:0!important}}

@media (max-width:620px){
  /* au téléphone, un grand tableau conserve des colonnes lisibles et défile DANS sa carte (les colonnes .m sont déjà masquées) */
  table.tab{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;min-width:0}   /* le tableau défile lui-même, il n'élargit jamais la page */
  /* onglets et fil d'en-tête au ras des bords pour gagner de la largeur */
  .onglets{margin-left:-1rem;margin-right:-1rem;padding:0 1rem;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;scrollbar-width:thin}   /* la barre d'onglets défile au lieu d'élargir la page */
  .titre-page{gap:.4rem}
  .haut{padding-top:.6rem}
}

/* #45 — Densité d'affichage réglable (confort par défaut / compact), mémorisée */
.densite{display:inline-flex;border:1px solid var(--ligne-forte);border-radius:var(--r-s);overflow:hidden;background:var(--papier)}
.densite .densite-opt{font:inherit;font-size:.78rem;line-height:1;cursor:pointer;border:0;background:transparent;color:var(--graphite);padding:.35rem .6rem}
.densite .densite-opt+.densite-opt{border-left:1px solid var(--ligne-forte)}
.densite .densite-opt:hover{background:var(--papier-2)}
.densite .densite-opt[aria-pressed=true]{background:var(--noir);color:#fff}
/* Mode compact : espacements et titres resserrés, cibles tactiles préservées (>=44px) */
body.dense{line-height:1.42}
body.dense .contenu{padding-top:.8rem}
body.dense .titre-page{margin:.2rem 0 .8rem}
body.dense h1{font-size:1.7rem}body.dense h2{font-size:1.28rem}body.dense h3{font-size:1.05rem}
body.dense .carte{padding:.75rem .85rem}
body.dense .kpi{padding:.7rem .85rem}body.dense .kpi .val{font-size:1.7rem}
body.dense .grille,body.dense .pile{gap:.7rem}
body.dense .tab th,body.dense .tab td{padding:.32rem .5rem}
body.dense .lj{min-height:44px;padding:.4rem .3rem}
body.dense .compte{padding:.5rem .2rem}
body.dense .alerte{padding:.45rem .6rem}

/* #46 — Raccourcis clavier : bouton d'aide et modale de rappel */
.aide-btn{font-weight:700}
.modal-raccourcis{display:none;position:fixed;inset:0;z-index:60;background:rgba(20,19,17,.5);align-items:center;justify-content:center;padding:1rem}
.modal-raccourcis.ouvert{display:flex}
.modal-raccourcis .mr-boite{background:var(--papier);border:1px solid var(--ligne-forte);border-radius:var(--r);box-shadow:var(--ombre);max-width:440px;width:100%;padding:1.1rem 1.2rem;max-height:90vh;overflow:auto}
.modal-raccourcis .mr-tete{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.modal-raccourcis .mr-tete h3{margin:0}
.modal-raccourcis .mr-liste{margin:0}
.modal-raccourcis .mr-liste>div{display:flex;align-items:center;gap:.8rem;padding:.4rem 0;border-top:1px solid var(--ligne)}
.modal-raccourcis .mr-liste>div:first-child{border-top:0}
.modal-raccourcis dt{flex:0 0 90px;display:flex;gap:.25rem}
.modal-raccourcis dd{margin:0;font-size:.9rem;color:var(--graphite)}
.modal-raccourcis kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;background:var(--papier-2);border:1px solid var(--ligne-forte);border-bottom-width:2px;border-radius:4px;padding:.1rem .4rem;color:var(--encre)}

/* Vague 2 — bibliothèque data-viz maison */
.mm-chart{width:100%;min-height:1em}
.mm-svg{display:block;overflow:visible}
.mm-chart.spark{display:inline-block;width:80px;height:26px;vertical-align:middle}
.chart-legende{display:flex;gap:1rem;font-size:.75rem;color:var(--c-texte-3,var(--sourdine));margin-top:.3rem;flex-wrap:wrap}
.chart-legende .lg{display:inline-flex;align-items:center;gap:.3rem}
.chart-legende .sw{width:.7rem;height:.7rem;border-radius:2px;display:inline-block}

/* Vague 1 — anneau de focus clavier cohérent (accessibilité) */
:where(a,button,summary,[tabindex],.item,.tab th.triable,.palette-res li):focus-visible{outline:2px solid var(--bronze-clair);outline-offset:2px;border-radius:3px}

/* Fondations a11y : respect de la préférence « moins d'animations » */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
/* Impression : la page utile seulement (bilan, fiche, tableaux), sans menu ni bandeau ni boutons */
@media print{.nav,.bandeau-sandbox,.bandeau-live,.burger,.btn,button,.palette-ov,.onglets,.titre-page .actions{display:none!important}.shell{display:block}.main,.contenu{max-width:none;padding:0}.carte{box-shadow:none;border-color:#bbb;break-inside:avoid;overflow:visible}body{background:#fff;color:#000}a{color:inherit;text-decoration:none}.tab-wrap{max-height:none;overflow:visible}table.tab thead th{position:static}}
/* RETOURS-CATHERINE 26/10 — la Roadmap dans l'ERP : tableau des tâches = la feuille (7 colonnes), page /roadmap */
.nav-ops{margin:-.4rem 0 .8rem;gap:.5rem}
.sep-matrice{font-family:var(--serif);font-weight:600;color:var(--sourdine)}
.carte.rubrique.feuille>summary{background:var(--papier-2);margin:calc(-1 * var(--e-3)) calc(-1 * var(--e-3)) .4rem;padding:.55rem var(--e-3);border-bottom:1px solid var(--ligne);border-radius:var(--r) var(--r) 0 0}
.defile{overflow-x:auto;max-width:100%}
.tab.roadmap{width:100%;min-width:860px;table-layout:fixed}
.tab.roadmap th:nth-child(1){width:29%}.tab.roadmap th:nth-child(2){width:10%}.tab.roadmap th:nth-child(3){width:11%}.tab.roadmap th:nth-child(4),.tab.roadmap th:nth-child(5){width:9%}.tab.roadmap th:nth-child(6){width:20%}.tab.roadmap th:nth-child(7){width:12%}
.tab.roadmap td{vertical-align:top;font-size:.9rem;overflow-wrap:anywhere}
.tab.roadmap form.inline{display:block}
.tab.roadmap tr.urgente td.cel-titre .texte{color:var(--rouge);font-weight:600}
.tab.roadmap tr.close td{opacity:.5}.tab.roadmap tr.close td.cel-statut{opacity:.8}
.tab.roadmap td.retard,.tab.roadmap b.retard,b.retard{color:var(--rouge);font-weight:600}
.tab.roadmap input[type=date]{font-size:.82rem;padding:.15rem .2rem;width:100%;box-sizing:border-box;min-width:0}
.tab.roadmap select{font-size:.85rem;padding:.15rem .2rem;width:100%;box-sizing:border-box;min-width:0}
.tab.roadmap .pile-edition input[type=text]{width:100%;box-sizing:border-box}
.sel-urgence.u-forte{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.sel-statut.s-clos{color:var(--sourdine)}.sel-statut.s-a_relancer{color:var(--ambre);border-color:var(--ambre)}
.cel-titre{position:relative}.cel-titre .crayon{opacity:.45;margin-left:.2rem}.cel-titre:hover .crayon,.cel-titre .crayon:focus{opacity:1}
.cel-titre .pile-edition{display:none;flex-direction:column;gap:.3rem;margin-top:.3rem}
.cel-titre.edition .texte,.cel-titre.edition .crayon{display:none}.cel-titre.edition .pile-edition{display:flex}
.cel-action .note{margin:0 0 .2rem;line-height:1.35}.cel-action .note b{font-variant-numeric:tabular-nums}
.cel-action .ajout-note{display:flex;gap:.25rem;margin-top:.3rem;flex-wrap:wrap}.cel-action .ajout-note input[type=text]{flex:1;min-width:8rem;font-size:.85rem;padding:.15rem .3rem}
.cel-statut .relance{margin-top:.25rem;display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}
.filtres-roadmap{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin:0 0 .9rem}.filtres-roadmap .badge{font-size:.86rem;padding:.3rem .8rem}.filtres-roadmap .badge.actif{font-weight:600}
.section-roadmap{margin:.5rem 0 .2rem}.bandeau-section{background:var(--papier-2);border:1px solid var(--ligne);border-bottom:0;border-radius:var(--r-s,6px) var(--r-s,6px) 0 0;padding:.35rem .6rem;font-weight:600;text-align:center;font-size:.92rem}
.bloc-op.vide{opacity:.8}
@media (max-width:620px){.nav-ops .btn{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Mode d'emploi (/aide) — fragment pandoc de docs/erp/guide ; captures dans static/aide/ */
.modal-raccourcis .mr-guide{margin:.8rem 0 0;padding-top:.6rem;border-top:1px solid var(--ligne);font-size:.9rem}
.aide-guide{max-width:60rem;line-height:1.55}
.aide-guide h1{font-size:1.35rem;margin:2rem 0 .6rem;padding-top:1rem;border-top:2px solid var(--ligne)}
.aide-guide h1:first-child{margin-top:0;border-top:0;padding-top:0}
.aide-guide h2{font-size:1.1rem;margin:1.3rem 0 .4rem}
.aide-guide table{border-collapse:collapse;margin:.6rem 0;width:100%;font-size:.92rem}
.aide-guide th,.aide-guide td{border:1px solid var(--ligne);padding:.35rem .5rem;text-align:left;vertical-align:top}
.aide-guide img{max-width:100%;height:auto;border:1px solid var(--ligne);border-radius:6px;margin:.4rem 0 .8rem;display:block}
.aide-guide figure{margin:.6rem 0 1rem}.aide-guide figcaption{font-size:.85rem;color:var(--muet,#666)}
.aide-guide .sommaire{columns:2;column-gap:2rem;font-size:.92rem}
.aide-guide code{font-size:.9em}
@media (max-width:700px){.aide-guide .sommaire{columns:1}}
