/* NEXORA by INTRIVEX : charte « Grand livre » (docs/design/brand-guidelines.md, docs/design/ui-ux-guidelines.md).
   Polices servies par l'application (licence OFL, public/polices) : aucune requête vers un service tiers. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/static/polices/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/static/polices/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/static/polices/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/static/polices/ibm-plex-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/static/polices/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/static/polices/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/static/polices/ibm-plex-mono-latin-600-normal.woff2) format("woff2")}

/* ---------- Jetons ---------- */
:root{
  /* Marque */
  --reliure:#0F3B33; --registre:#1F6B5A; --laiton:#B98A2F; --laiton-texte:#8A6418; --papier:#F6F5F0;
  /* Surfaces et texte */
  --bg:#F6F5F0; --surface:#FFFFFF; --surface-2:#EFEFE8; --line:#DCDDD3; --line-forte:#C4C6BA;
  --fg:#2B2F36; --titre:#0F3B33; --muted:#5E665F;
  --accent:#1F6B5A; --accent-fort:#0F3B33; --accent-soft:#E3EFE9; --on-accent:#FFFFFF;
  /* États (distincts du vert de marque) */
  --ok:#2F7A4F; --ok-soft:#E2F0E7; --warn:#9A5B00; --warn-soft:#FBEFD9; --danger:#A3241C; --danger-soft:#FBE6E3; --info:#2C5D8F; --info-soft:#E3ECF6;
  /* Menu latéral (toujours vert reliure) */
  --lat-bg:#0F3B33; --lat-fg:#D6DFDA; --lat-muted:#8FA59B; --lat-actif:#1F6B5A;
  /* Typographie */
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-num:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  /* Formes */
  --r:10px; --r-sm:7px; --ombre:0 1px 2px rgba(15,59,51,.06),0 4px 16px rgba(15,59,51,.06);
  --lat-largeur:248px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0E1714; --surface:#15211D; --surface-2:#1B2925; --line:#2A3833; --line-forte:#3A4A44;
  --fg:#E6EBE7; --titre:#E6EBE7; --muted:#9AA8A0;
  --accent:#7FC4AC; --accent-fort:#A9DCC9; --accent-soft:#1D3A31; --on-accent:#0E1714;
  --ok:#7FD3A6; --ok-soft:#163327; --warn:#F0B45A; --warn-soft:#3A2B14; --danger:#F29B92; --danger-soft:#3A1D1B; --info:#93B9E6; --info-soft:#1A2A3D;
  --lat-bg:#0A1310; --lat-actif:#1F6B5A; --laiton-texte:#D9B25E;
  --ombre:0 1px 2px rgba(0,0,0,.3);
  color-scheme:dark}}

/* ---------- Base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
a:hover{color:var(--accent-fort)}
h1,h2,h3{color:var(--titre);text-wrap:balance}
h1{font-size:1.6rem;margin:2px 0 0;letter-spacing:-.01em;font-weight:700}
h2{font-size:1.06rem;margin:0 0 12px;font-weight:600}
h3{font-size:.95rem;margin:18px 0 8px;font-weight:600}
.muted{color:var(--muted)} .small{font-size:.8rem} .mono{font-family:var(--f-num)} .strong{font-weight:700}
:focus-visible{outline:2px solid var(--laiton);outline-offset:2px}
.ic{flex:none;vertical-align:middle}
.evitement{position:absolute;left:-9999px;top:8px;z-index:50;background:var(--surface);color:var(--fg);padding:8px 12px;border-radius:var(--r-sm)}
.evitement:focus{left:max(12px,env(safe-area-inset-left,0px))}

/* ---------- Coque : menu latéral et en-tête ---------- */
.coque{min-height:100vh}
.lateral{background:var(--lat-bg);color:var(--lat-fg);display:flex;flex-direction:column;gap:6px;padding:18px 12px}
.lateral .marque{display:block;padding:4px 8px 14px}
.lateral .marque img{display:block;width:168px;height:auto}
.lateral nav{display:grid;gap:2px}
.lateral .groupe{font-family:var(--f-num);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--lat-muted);margin:14px 10px 4px}
.lateral nav a{display:flex;align-items:center;gap:10px;color:var(--lat-fg);text-decoration:none;padding:8px 10px;border-radius:var(--r-sm);font-size:.9rem;font-weight:500}
.lateral nav a:hover{background:rgba(255,255,255,.06);color:#FFFFFF}
.lateral nav a[aria-current="page"]{background:var(--lat-actif);color:#FFFFFF;box-shadow:inset 3px 0 0 var(--laiton)}
.lateral .pied{margin-top:auto;padding:14px 10px 4px;font-size:.72rem;color:var(--lat-muted)}
.zone{min-width:0;display:flex;flex-direction:column}
.entete-app{display:flex;align-items:center;gap:10px;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.entete-app .espace{flex:1}
.bouton-menu{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer}
.entete-app .marque-mobile{display:none}
.entete-app .marque-mobile img{display:block;height:26px;width:auto}

@media (min-width:961px){
  .coque{display:grid;grid-template-columns:var(--lat-largeur) minmax(0,1fr)}
  .lateral{position:sticky;top:0;height:100vh;overflow-y:auto}
}
@media (max-width:600px){
  .entete-app{gap:6px}
  .entete-app .compte-menu .texte,.entete-app .compte-menu>summary>.ic{display:none}
  .entete-app .compte-menu>summary{padding:4px;border-radius:50%}
  .deroulant>summary{max-width:100%}
}
/* Tablette et téléphone : le menu devient un tiroir (avec script) ; sans script, il reste au-dessus du contenu. */
@media (max-width:960px){
  .js .lateral{position:fixed;inset:0 auto 0 0;width:min(84vw,300px);z-index:40;transform:translateX(-100%);transition:transform .2s ease;padding-top:max(18px,env(safe-area-inset-top,0px));overflow-y:auto}
  .js .menu-ouvert .lateral{transform:none;box-shadow:0 0 0 100vmax rgba(10,20,17,.45)}
  .js .bouton-menu{display:inline-flex}
  .entete-app .marque-mobile{display:block}
}
@media (prefers-reduced-motion:reduce){.js .lateral{transition:none}}

/* Menus déroulants (details/summary : fonctionnent sans script) */
.deroulant{position:relative;min-width:0}
.deroulant>summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);font-size:.88rem;font-weight:500;max-width:min(60vw,280px)}
.deroulant>summary::-webkit-details-marker{display:none}
.deroulant>summary .texte{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.deroulant>summary .sous{display:block;font-size:.72rem;color:var(--muted);font-weight:400}
.deroulant[open]>summary{border-color:var(--accent)}
.deroulant .panneau{position:absolute;right:0;top:calc(100% + 6px);min-width:240px;max-width:min(92vw,320px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--ombre);padding:6px;z-index:30;display:grid;gap:2px}
.deroulant.gauche .panneau{left:0;right:auto}
.deroulant .panneau .titre-panneau{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 10px 2px}
.deroulant .panneau a,.deroulant .panneau button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;font-size:.88rem;color:var(--fg);text-decoration:none;padding:8px 10px;border-radius:var(--r-sm);border:0;background:none;cursor:pointer}
.deroulant .panneau a:hover,.deroulant .panneau button:hover{background:var(--surface-2)}
.deroulant .panneau .actuelle{display:flex;align-items:center;gap:10px;padding:8px 10px;font-weight:600;font-size:.88rem;color:var(--accent)}
.deroulant .panneau .sous{display:block;font-size:.74rem;color:var(--muted);font-weight:400}
.deroulant .panneau hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.deroulant .panneau form{margin:0}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--reliure);color:var(--papier);display:grid;place-items:center;font-size:.72rem;font-weight:700;flex:none}

/* ---------- Contenu ---------- */
.wrap{width:100%;max-width:1240px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px));padding-block:24px 56px}
.wrap.narrow{max-width:680px}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px}
.eyebrow{font-family:var(--f-num);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}
.eyebrow a{color:inherit}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:16px;min-width:0}
.card>h2:first-child{display:flex;align-items:center;gap:8px}
.grille-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;align-items:start}
.grille-2>.card{margin-bottom:0}
.stack{display:grid;gap:12px}
.list{margin:0;padding-left:18px;font-size:.88rem}

/* Tuiles de chiffres */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:2px;min-width:0}
.kpi>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}
.kpi b{font-family:var(--f-num);font-size:1.3rem;font-weight:600;color:var(--titre);font-variant-numeric:tabular-nums}
.kpi small{font-size:.78rem;color:var(--muted)}
@media (max-width:600px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:12px}.kpi b{font-size:1.05rem}}

/* Formulaires */
.form-grid{display:grid;gap:14px}
fieldset{border:0;margin:0;padding:0;display:grid;gap:10px}
fieldset+fieldset{padding-top:16px;border-top:1px solid var(--line)}
legend{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;padding:0}
label{display:grid;gap:5px;font-size:.84rem;font-weight:600;color:var(--fg)}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:640px){.row2,.row3{grid-template-columns:minmax(0,1fr)}}
input,select,textarea{font:inherit;font-size:.92rem;font-weight:400;padding:9px 11px;border:1px solid var(--line-forte);border-radius:var(--r-sm);background:var(--surface);color:var(--fg);width:100%;min-width:0}
input:hover,select:hover,textarea:hover{border-color:var(--muted)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
input.num{font-family:var(--f-num);text-align:right}
input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}
.hint{font-size:.78rem;color:var(--muted);margin:0;font-weight:400}
.check{display:flex;gap:8px;align-items:center;font-weight:400}
.check input{width:auto;accent-color:var(--reliure)}
.checks{display:flex;flex-wrap:wrap;gap:6px 18px}
.champ-recherche{position:relative;display:block}
.champ-recherche .ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.champ-recherche input{padding-left:36px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:.87rem;font-weight:600;padding:8px 15px;border-radius:var(--r-sm);border:1px solid var(--reliure);background:var(--reliure);color:var(--papier);cursor:pointer;text-decoration:none;line-height:1.3}
.btn:hover{background:var(--registre);border-color:var(--registre);color:#FFFFFF}
.btn.ghost{background:var(--surface);color:var(--titre);border-color:var(--line-forte)}
.btn.ghost:hover{border-color:var(--reliure);color:var(--titre);background:var(--surface-2)}
.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--danger)}
.btn.danger:hover{background:var(--danger);color:#FFFFFF}
.btn.sm{padding:5px 10px;font-size:.78rem}
button.link{background:none;border:0;color:var(--accent);font:inherit;font-size:.86rem;cursor:pointer;padding:0 0 0 6px;text-decoration:underline}
@media (prefers-color-scheme: dark){.btn{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn:hover{background:var(--accent-fort);border-color:var(--accent-fort);color:var(--on-accent)}}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.inline{display:inline}
.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px}
.inline-form label{max-width:260px}

/* Messages */
.flash,.error,.note{display:block;border-radius:var(--r-sm);padding:11px 14px;font-size:.9rem;border:1px solid transparent}
.flash{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent);color:var(--fg);margin-bottom:16px}
.error{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--fg)}
.note{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 25%,transparent);margin-bottom:16px}
.note p{margin:0 0 8px}
.note p:last-child{margin-bottom:0}
.note.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}

/* Badges d'état */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;padding:2px 9px;border-radius:99px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.pill.valide{background:var(--ok-soft);color:var(--ok)}
.pill.brouillon{background:var(--warn-soft);color:var(--warn)}
.pill.en-cours{background:var(--info-soft);color:var(--info)}
.pill.refuse{background:var(--danger-soft);color:var(--danger)}

/* Tableaux */
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.87rem}
th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;white-space:nowrap;background:var(--surface)}
table.data tbody tr:hover td{background:var(--surface-2)}
.n{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums;white-space:nowrap}
tfoot td{font-weight:700;border-top:2px solid var(--titre);border-bottom:0}
table.narrow-t{max-width:620px}
td a{font-weight:600;text-decoration:none}
td a:hover{text-decoration:underline}
.vide{display:grid;justify-items:center;gap:8px;text-align:center;padding:32px 16px;color:var(--muted)}
.vide .ic{color:var(--line-forte)}
.vide p{margin:0;max-width:46ch}
.outils{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}
.outils .champ-recherche{flex:1 1 240px}
.outils select{width:auto}
.compte{font-size:.8rem;color:var(--muted)}

/* Listes de tâches (tableau de bord) */
.taches{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.taches li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}
.taches li .quoi{flex:1;min-width:0}
.taches li .quoi b{display:block;font-weight:600}
.taches li .quoi span{font-size:.82rem;color:var(--muted)}
.taches li>.ic{color:var(--accent)}
.activite{list-style:none;margin:0;padding:0;display:grid}
.activite li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.activite li:last-child{border-bottom:0}
.activite time{font-family:var(--f-num);font-size:.76rem;color:var(--muted);white-space:nowrap}
.raccourcis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px}
.raccourcis a{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);text-decoration:none;color:var(--titre);font-weight:600;font-size:.9rem;background:var(--surface)}
.raccourcis a:hover{border-color:var(--accent);background:var(--accent-soft)}
.entreprise-carte{display:flex;align-items:center;gap:14px}
.entreprise-carte .logo-ent{width:48px;height:48px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;color:var(--titre);font-weight:700;overflow:hidden;flex:none}
.entreprise-carte .logo-ent img{max-width:100%;max-height:100%}

/* Connexion et pages publiques */
.public{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.public .vitrine{background:var(--reliure);color:#D6DFDA;padding:48px clamp(24px,5vw,72px);display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.public .vitrine img{width:min(260px,70%);height:auto}
.public .vitrine h2{color:#F6F5F0;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.25;max-width:20ch;margin:0}
.public .vitrine p{max-width:42ch;margin:12px 0 0;color:#B9C6BF}
.public .vitrine .points{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.92rem}
.public .vitrine .points li{display:flex;gap:10px;align-items:flex-start}
.public .vitrine .points .ic{color:var(--laiton);margin-top:2px}
.public .vitrine .bas{font-size:.76rem;color:#8FA59B}
.public .formulaire{display:grid;place-items:center;padding:40px max(16px,env(safe-area-inset-right,0px)) 40px max(16px,env(safe-area-inset-left,0px));background:var(--bg)}
.public .formulaire .carte{width:100%;max-width:400px;display:grid;gap:18px}
.public .formulaire h1{font-size:1.5rem}
.public .marque-mobile{display:none}
@media (max-width:860px){
  .public{grid-template-columns:minmax(0,1fr)}
  .public .vitrine{display:none}
  .public .marque-mobile{display:block}
  .public .marque-mobile img{height:34px;width:auto}
}
.login{margin-top:8vh}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--titre);text-decoration:none}
.brand.big{font-size:1.2rem;margin-bottom:8px}

/* Fenêtre de confirmation */
dialog.confirmation{border:1px solid var(--line);border-radius:var(--r);padding:0;max-width:min(92vw,440px);background:var(--surface);color:var(--fg);box-shadow:0 20px 50px rgba(0,0,0,.25)}
dialog.confirmation::backdrop{background:rgba(10,20,17,.5)}
dialog.confirmation .corps{padding:20px 22px;display:grid;gap:10px}
dialog.confirmation h2{margin:0;display:flex;gap:8px;align-items:center}
dialog.confirmation .boutons{display:flex;justify-content:flex-end;gap:8px;padding:12px 22px;background:var(--surface-2);border-top:1px solid var(--line);border-radius:0 0 var(--r) var(--r)}

/* Divers écrans existants */
.logo-apercu{max-height:64px;max-width:240px;border:1px solid var(--line);border-radius:6px;padding:4px;background:#fff}
.nets{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 16px;margin:0 0 10px}
.nets dt{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.nets dd{margin:2px 0 0;font-weight:700;font-size:1.05rem;font-family:var(--f-num)}
.pnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pnav input{width:auto}
.slip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
.slip-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.slip-head h2{margin:0;font-size:1.05rem;letter-spacing:.02em}
.slip-head .right{text-align:right;font-size:.84rem}
.slip-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 16px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:.86rem}
.slip-meta span{display:block;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.slip-t td,.slip-t th{padding-inline:18px}
.slip-t tr.sec td{background:var(--surface-2);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.slip-t tr.sum td{font-weight:700;border-top:2px solid var(--titre)}
.pay{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:var(--reliure);color:var(--papier);font-weight:700;border-top:3px solid var(--laiton)}
.pay b{font-family:var(--f-num);font-size:1.3rem}
.slip-foot{padding:10px 18px;font-size:.78rem;color:var(--muted)}
.sign{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0 40px}
.sign div{border-top:1px solid var(--line);padding-top:6px}
ol.steps{list-style:none;margin:0;padding:0;counter-reset:s}
ol.steps li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);counter-increment:s}
ol.steps li::before{content:counter(s);font-family:var(--f-num);font-size:.78rem;color:var(--laiton-texte);font-weight:600;padding-top:2px}
ol.steps .st{font-weight:600;font-size:.9rem}
ol.steps .fx{font-size:.78rem;color:var(--muted);font-family:var(--f-num)}
ol.steps .val{font-family:var(--f-num);font-weight:600;white-space:nowrap}
.sim{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.sim{grid-template-columns:minmax(0,1fr)}}
.hero{display:grid;margin-bottom:12px}
.hero b{font-family:var(--f-num);font-size:2.2rem;color:var(--titre);font-weight:600;line-height:1.15}
.compare{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
@media (max-width:640px){.compare{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sc{border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.sc.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.sc span{display:block;font-size:.72rem;color:var(--muted);font-weight:600}
.sc b{font-family:var(--f-num)}

/* Circuit de validation */
ol.circuit{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}
ol.circuit li{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:4px;min-width:0}
ol.circuit li.courante{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--laiton)}
ol.circuit li.faite{background:var(--surface-2)}
ol.circuit .titre{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-weight:600}
.histo{margin:8px 0 0;padding-left:18px;font-size:.85rem;display:grid;gap:4px}
details{margin-top:10px} summary{cursor:pointer;font-size:.9rem;color:var(--accent)}
.deroulant{margin-top:0}

/* Impression : le bulletin seul */
@media print{
  .no-print,.lateral,.entete-app,.bar{display:none!important}
  .coque{display:block}
  body{background:#fff;color:#000;font-size:12px}
  .wrap{padding:0;max-width:none}
  .slip{border:1px solid #999;border-radius:0}
  .pay{background:#fff;color:#000;border-top:2px solid #000;border-bottom:2px solid #000}
  .slip-head,.slip-t tr.sec td{background:#f1f1f1}
}

/* Fiches à sections (salarié) : sommaire latéral collant, sections en cartes, barre d'enregistrement collante. */
.fiche{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:start}
.sous-nav{position:sticky;top:76px;display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px}
.sous-nav a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);color:var(--fg);text-decoration:none;font-size:.88rem;font-weight:500}
.sous-nav a:hover{background:var(--surface-2);color:var(--titre)}
.fiche-corps{display:grid;gap:16px;min-width:0}
.fiche-corps .card{margin-bottom:0}
.fiche-corps fieldset.card{display:grid;gap:12px;scroll-margin-top:80px}
.fiche-corps fieldset.card>legend{float:left;width:100%;font-size:.9rem;color:var(--titre);text-transform:none;letter-spacing:0;font-weight:600;margin-bottom:4px}
.fiche-corps fieldset+fieldset{border-top:1px solid var(--line);padding-top:18px}
.barre-enregistrer{position:sticky;bottom:0;background:var(--bg);padding:12px 0;border-top:1px solid var(--line);z-index:5}
@media (max-width:960px){.fiche{grid-template-columns:minmax(0,1fr)}.sous-nav{position:static;display:flex;flex-wrap:wrap}}
.erreur-carte h1{font-size:1.4rem}
.personne{display:flex;align-items:center;gap:10px}
.personne>span:last-child{display:grid}
.ligne-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ligne-form select{width:auto;padding:6px 8px;font-size:.85rem}
.detail-journal{max-width:420px;white-space:normal;word-break:break-word}

/* Profil, double authentification, plateforme */
.avatar.grand{width:52px;height:52px;font-size:1.05rem}
.head .personne{gap:14px}
.texte-alerte{color:var(--danger)}
.etapes-mfa{margin:0;padding-left:22px;display:grid;gap:22px}
.etapes-mfa h2{margin:0 0 6px;font-size:1rem}
.qr-mfa{width:200px;max-width:100%;padding:10px;background:#FFFFFF;border:1px solid var(--line);border-radius:var(--r)}
.qr-mfa svg{display:block;width:100%;height:auto}
.cle-mfa{font-size:1.05rem;letter-spacing:.06em;word-break:break-all;background:var(--surface-2);padding:10px 12px;border-radius:var(--r-sm)}
input.code-mfa{font-family:var(--f-num);font-size:1.3rem;letter-spacing:.3em;text-align:center}
.codes-secours{list-style:none;margin:14px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.codes-secours li{background:var(--surface-2);border:1px dashed var(--line-forte);border-radius:var(--r-sm);padding:10px;text-align:center;font-size:1.02rem;letter-spacing:.05em}
/* Fiches : informations en deux colonnes ; sections repliables ; actions d'une ligne de tableau */
dl.infos{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0 0 14px}
dl.infos dt{color:var(--muted);font-size:.88rem}
dl.infos dd{margin:0;min-width:0;overflow-wrap:anywhere}
.grille-2+.card,.grille-2+section{margin-top:16px}
details.card{margin-top:0}
details.card>summary{font-size:1rem;color:var(--fg)}
details.card[open]>summary{margin-bottom:12px}
.actions-ligne{margin-top:0}
.actions-ligne>.stack{margin-top:8px;gap:8px}
.actions-ligne .ligne-form input{min-width:0;width:9rem}
