/* AGMS — AVANIS Global System Management — charte graphique ALTRAN v2.0 */
:root{
  --bleu:#143390; --bleu-fonce:#0d2469; --bleu-clair:#2a4bb5;
  --or:#E1AB00; --or-pale:#FBF3DC;
  --gris-perle:#D6DCE5; --anthracite:#333333;
  --bleu-pale:#E8EAF4; --bord:#BFC7DA;
  --fond:#F4F6FB; --blanc:#fff;
  --vert:#1B7F4B; --rouge:#B32020; --orange:#C4700A;
  --ombre:0 1px 3px rgba(20,51,144,.08), 0 4px 14px rgba(20,51,144,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:Arial,Helvetica,"Liberation Sans",sans-serif;
  font-size:13px;color:var(--anthracite);background:var(--fond);
  display:flex;overflow:hidden;line-height:1.35;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--gris-perle);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:#b9c2d3}

/* ---------- barre latérale ---------- */
#nav{
  width:216px;flex-shrink:0;background:var(--bleu);color:#fff;
  display:flex;flex-direction:column;height:100vh;
}
#nav .logo{padding:16px 14px 12px;border-bottom:1px solid rgba(255,255,255,.14)}
/* LE LOGO BLANC EST UN FICHIER, PAS UN FILTRE. `brightness(0) invert(1)`
   écrasait l'arche or et le bleu en blanc pur : c'est une recoloration, que
   la charte interdit, et la version blanche officielle existe. Largeur portée
   à 190 px pour que la baseline du bloc-marque 2026 reste lisible — le
   minimum de la charte est 110 px, le recommandé 180 à 240. */
#nav .logo img{width:100%;max-width:190px;display:block}
#nav .logo .app{font-size:10px;letter-spacing:1.6px;color:var(--or);margin-top:7px;font-weight:bold}
/* Le menu s'est allongé avec les modules : la liste défile, le logo et
   le pied restent en place. Sans cela, les dernières entrées sortaient
   simplement de l'écran sur un portable. */
#nav .liens{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
#nav .liens::-webkit-scrollbar{width:6px}
#nav .liens::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:3px}
#nav .liens::-webkit-scrollbar-track{background:transparent}
/* ---------- LES GROUPES SE PLIENT ----------
   « Il faudrait pouvoir grouper les modules, comme dans Excel, pour
   éviter d'avoir en permanence une vue complète qui oblige à chercher
   ce qu'on veut. » — Direction Générale, 19 septembre 2026.
   Le groupe qui contient la page ouverte s'ouvre tout seul : on ne perd
   jamais de vue où l'on est. */
#nav .grp{font-size:9.5px;letter-spacing:1.2px;color:rgba(255,255,255,.45);
  padding:10px 16px 5px;font-weight:bold;cursor:pointer;display:flex;align-items:center;gap:6px;
  user-select:none;transition:color .12s}
#nav .grp:hover{color:rgba(255,255,255,.85)}
#nav .grp:first-child{padding-top:8px}
#nav .grp .chev{display:inline-block;font-size:8px;opacity:.6;transition:transform .15s;
  transform:rotate(0deg);width:8px}
#nav .grp.ouvert .chev{transform:rotate(90deg);opacity:.9}
#nav .grp.porte{color:var(--or)}
#nav .sgrp{display:none;overflow:hidden}
#nav .sgrp.ouvert{display:block}
/* Un groupe fermé qui contient la page ouverte le signale par une pastille,
   pour qu'on ne cherche pas où l'on est. */
#nav .grp.porte:not(.ouvert)::after{content:'●';font-size:7px;color:var(--or);margin-left:auto}
#nav a{
  display:flex;align-items:center;gap:9px;padding:7px 16px;color:rgba(255,255,255,.86);
  text-decoration:none;font-size:12.5px;border-left:3px solid transparent;cursor:pointer;
  line-height:1.25;
}
#nav a:hover{background:rgba(255,255,255,.07);color:#fff}
#nav a.actif{background:rgba(255,255,255,.12);border-left-color:var(--or);color:#fff;font-weight:bold}
#nav a .ic{width:16px;text-align:center;opacity:.9;font-size:13px}
#nav .bas{flex-shrink:0;padding:11px 16px;border-top:1px solid rgba(255,255,255,.14);font-size:10px;color:rgba(255,255,255,.55)}
#nav .bas b{color:var(--or);font-weight:normal}

/* ---------- zone principale ---------- */
#main{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden}
#bandeau{
  height:5px;flex-shrink:0;
  background:linear-gradient(90deg,var(--bleu) 0%,var(--bleu) 55%,var(--gris-perle) 55%,var(--gris-perle) 78%,var(--or) 78%,var(--or) 100%);
}
#bandeau.parle{height:auto;background:none;padding:10px 22px 0;max-height:40vh;overflow:auto}
#entete{
  background:#fff;border-bottom:1px solid var(--bord);padding:11px 22px;
  display:flex;align-items:center;gap:16px;flex-shrink:0;
}
#entete h1{font-size:15px;color:var(--bleu);font-weight:bold}
#entete .sous{font-size:11px;color:#7b8394;margin-top:1px}
#entete .actions{margin-left:auto;display:flex;gap:8px;align-items:center}
#contenu{flex:1;overflow-y:auto;padding:18px 22px 40px}

/* ---------- boutons ---------- */
.btn{
  background:var(--bleu);color:#fff;border:none;padding:7px 14px;border-radius:3px;
  cursor:pointer;font-size:12px;font-weight:bold;letter-spacing:.2px;
}
.btn:hover{background:var(--bleu-fonce)}
.btn.sec{background:#fff;color:var(--bleu);border:1px solid var(--bord)}
.btn.sec:hover{background:var(--bleu-pale)}
.btn.or{background:var(--or);color:#3a2c00}
.btn.or:hover{background:#c99900}
.btn.danger{background:#fff;color:var(--rouge);border:1px solid #e3bcbc}
.btn.danger:hover{background:#fdf2f2}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.sm{padding:4px 9px;font-size:11px}

/* ---------- cartes ---------- */
.carte{background:#fff;border:1px solid var(--bord);border-radius:4px;box-shadow:var(--ombre);margin-bottom:16px}
.carte>h2{
  font-size:12px;color:var(--bleu);font-weight:bold;padding:10px 14px;
  border-bottom:1px solid var(--bord);letter-spacing:.3px;display:flex;align-items:center;gap:8px;
}
.carte>h2 .compl{margin-left:auto;font-weight:normal;font-size:11px;color:#7b8394}
.carte .corps{padding:14px}
.carte .corps.plat{padding:0}

/* ---------- grilles de tuiles ---------- */
.tuiles{display:grid;gap:12px;margin-bottom:16px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)} .g5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1300px){.g5{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}
.tuile{background:#fff;border:1px solid var(--bord);border-radius:4px;padding:12px 14px;box-shadow:var(--ombre);border-top:3px solid var(--bleu)}
.tuile.or{border-top-color:var(--or)} .tuile.vert{border-top-color:var(--vert)} .tuile.rouge{border-top-color:var(--rouge)}
.tuile .lbl{font-size:10px;letter-spacing:.8px;color:#7b8394;font-weight:bold;text-transform:uppercase}
.tuile .val{font-size:21px;font-weight:bold;color:var(--bleu);margin-top:5px;letter-spacing:-.4px}
.tuile .val.neg{color:var(--rouge)}
.tuile .note{font-size:10.5px;color:#8b93a3;margin-top:3px}

/* ---------- tableaux ---------- */
table{border-collapse:collapse;width:100%;font-size:11.5px}
thead th{
  background:var(--bleu);color:#fff;font-weight:bold;text-align:left;
  padding:7px 9px;font-size:10.5px;letter-spacing:.3px;position:sticky;top:0;z-index:2;white-space:nowrap;
}
thead th.n{text-align:right}
tbody td{padding:5px 9px;border-bottom:1px solid #EDF0F6;vertical-align:top}
tbody tr:nth-child(even){background:var(--bleu-pale)}
tbody tr:hover{background:#dfe4f3}
td.n,th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tfoot td{background:var(--gris-perle);font-weight:bold;padding:7px 9px;border-top:2px solid var(--bleu)}
/* Tableau de saisie (ventes clients) : cellules resserrées, et pas de
   flèches ± qui mangent la moitié d'une case à trois chiffres. */
table.vt-saisie thead th{padding:7px 6px}
table.vt-saisie tbody td{padding:5px 5px;vertical-align:middle}
table.vt-saisie tfoot td{padding:7px 14px 7px 6px}
table.vt-saisie input[type=number]{-moz-appearance:textfield;appearance:textfield}
table.vt-saisie input[type=number]::-webkit-outer-spin-button,
table.vt-saisie input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tbl-scroll{max-height:560px;overflow:auto;border-top:1px solid var(--bord)}
.neg{color:var(--rouge)} .pos{color:var(--vert)}
.dim{color:#8b93a3}
.mono{font-variant-numeric:tabular-nums}

/* ---------- formulaires ---------- */
.form{display:grid;grid-template-columns:repeat(4,1fr);gap:11px 14px}
.form .champ{display:flex;flex-direction:column;gap:3px}
.form .champ.l2{grid-column:span 2} .form .champ.l3{grid-column:span 3} .form .champ.l4{grid-column:span 4}
label{font-size:10px;font-weight:bold;color:#5c6478;letter-spacing:.4px;text-transform:uppercase}
input,select,textarea{
  border:1px solid var(--bord);border-radius:3px;padding:6px 8px;background:#fff;font-size:12.5px;width:100%;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--bleu);box-shadow:0 0 0 2px rgba(20,51,144,.11)}
input[readonly]{background:#F3F5FA;color:#6a7285}
input.n{text-align:right;font-variant-numeric:tabular-nums}
.sect{
  grid-column:span 4;font-size:10.5px;font-weight:bold;color:var(--bleu);letter-spacing:1px;
  border-bottom:1px solid var(--gris-perle);padding-bottom:4px;margin-top:6px;text-transform:uppercase;
}
.aide{font-size:10px;color:#8b93a3}

/* ---------- badges & alertes ---------- */
.badge{display:inline-block;padding:1px 7px;border-radius:9px;font-size:9.5px;font-weight:bold;letter-spacing:.3px;white-space:nowrap}
.b-bleu{background:var(--bleu-pale);color:var(--bleu)}
.b-or{background:var(--or-pale);color:#8a6a00}
.b-vert{background:#E4F3EA;color:var(--vert)}
.b-rouge{background:#FBECEC;color:var(--rouge)}
.b-gris{background:#EFF1F6;color:#6a7285}
.alerte{padding:9px 12px;border-radius:3px;font-size:12px;margin-bottom:12px;border-left:3px solid}
.a-or{background:var(--or-pale);border-color:var(--or)}
.a-rouge{background:#FBECEC;border-color:var(--rouge)}
.a-vert{background:#E4F3EA;border-color:var(--vert)}
.a-bleu{background:var(--bleu-pale);border-color:var(--bleu)}

/* ---------- filtres ---------- */
.filtres{display:flex;gap:9px;align-items:flex-end;flex-wrap:wrap;margin-bottom:13px}
.filtres .champ{min-width:135px}
.filtres .champ.sm{min-width:96px}

/* ---------- graphiques ---------- */
.graph{width:100%;height:210px}
.graph text{font-size:9.5px;fill:#7b8394}
.legende{display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:#5c6478;margin-top:7px}
.legende i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:4px}

/* ---------- accueil / configuration ---------- */
#accueil{display:flex;align-items:center;justify-content:center;height:100vh;width:100%;background:var(--fond)}
#accueil .boite{background:#fff;border:1px solid var(--bord);border-radius:5px;box-shadow:var(--ombre);width:560px;overflow:hidden}
#accueil .haut{height:5px;background:linear-gradient(90deg,var(--bleu) 55%,var(--gris-perle) 55%,var(--gris-perle) 78%,var(--or) 78%)}
#accueil .in{padding:26px 30px 24px}
#accueil img{width:190px;margin-bottom:16px}
#accueil h2{font-size:16px;color:var(--bleu);margin-bottom:6px}
#accueil p{font-size:12.5px;color:#5c6478;margin-bottom:14px}
#accueil .chemin{background:var(--bleu-pale);border:1px solid var(--bord);border-radius:3px;padding:8px 10px;font-size:11.5px;word-break:break-all;margin-bottom:12px}

/* ---------- écrans de sécurité ---------- */
#securite{display:none;align-items:center;justify-content:center;height:100vh;width:100%;background:var(--fond)}
#securite .boite{background:#fff;border:1px solid var(--bord);border-radius:5px;box-shadow:var(--ombre);width:480px;overflow:hidden}
#securite .haut{height:5px;background:linear-gradient(90deg,var(--bleu) 55%,var(--gris-perle) 55%,var(--gris-perle) 78%,var(--or) 78%)}
#securite .in{padding:26px 30px 24px}
#securite img{width:170px;margin-bottom:16px}
#securite h2{font-size:16px;color:var(--bleu);margin-bottom:6px}
#securite p{font-size:12.5px;color:#5c6478;margin-bottom:15px}
.form-sec{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.form-sec label{margin-top:8px}
.form-sec label.case{display:flex;gap:8px;align-items:flex-start;text-transform:none;font-size:11.5px;
  font-weight:normal;color:var(--anthracite);letter-spacing:0;background:var(--bleu-pale);
  border:1px solid var(--bord);border-radius:3px;padding:9px 10px;margin-top:12px;cursor:pointer}
.form-sec label.case input,label.case input{width:auto;margin-top:2px;flex-shrink:0}
label.case{display:flex;gap:8px;align-items:flex-start;text-transform:none;font-size:11.5px;
  font-weight:normal;color:var(--anthracite);letter-spacing:0;cursor:pointer}
.msg-err{color:var(--rouge);font-size:11.5px;min-height:17px;margin-bottom:7px;font-weight:bold}
.code-rec{background:var(--or-pale);border:1px solid var(--or);border-radius:4px;padding:15px;
  text-align:center;font-size:19px;font-weight:bold;letter-spacing:2px;color:#5c4700;
  font-family:Consolas,"Courier New",monospace;word-break:break-all}
.lien{color:var(--bleu);font-size:11.5px}

/* ---------- modale ---------- */
#modale{position:fixed;inset:0;background:rgba(13,36,105,.42);display:none;align-items:center;justify-content:center;z-index:50}
#modale.on{display:flex}
#modale .boite{background:#fff;border-radius:5px;box-shadow:0 12px 40px rgba(0,0,0,.3);width:min(940px,92vw);max-height:88vh;overflow:auto}
#modale .tete{background:var(--bleu);color:#fff;padding:11px 16px;font-weight:bold;font-size:13px;display:flex;align-items:center}
#modale .tete button{margin-left:auto;background:none;border:none;color:#fff;font-size:18px;cursor:pointer;line-height:1}
#modale .in{padding:16px}
#modale .pied{padding:11px 16px;border-top:1px solid var(--bord);display:flex;gap:8px;justify-content:flex-end;background:#FAFBFD;flex-wrap:wrap}

/* ---------- onglets ---------- */
.onglets{display:flex;gap:2px;border-bottom:2px solid var(--bleu);margin-bottom:15px}
.onglets button{
  background:var(--bleu-pale);border:1px solid var(--bord);border-bottom:none;color:var(--bleu);
  padding:7px 15px;cursor:pointer;font-size:11.5px;font-weight:bold;border-radius:3px 3px 0 0;
}
.onglets button.actif{background:var(--bleu);color:#fff;border-color:var(--bleu)}

/* ---------- états financiers ---------- */
.etat{background:#fff;padding:22px 26px;border:1px solid var(--bord);border-radius:4px;box-shadow:var(--ombre)}
.etat .tete-etat{border-bottom:2px solid var(--bleu);padding-bottom:11px;margin-bottom:15px;display:flex;align-items:flex-end}
.etat .tete-etat img{height:36px}
.etat .tete-etat .t{margin-left:auto;text-align:right}
.etat .tete-etat h3{font-size:14px;color:var(--bleu)}
.etat .tete-etat .p{font-size:11px;color:#7b8394}
.etat table{font-size:11.5px}
.etat tr.rub td{background:var(--bleu-pale);font-weight:bold;color:var(--bleu);border-top:1px solid var(--bord)}
.etat tr.tot td{background:var(--bleu);color:#fff;font-weight:bold}
.etat tr.sstot td{border-top:1px solid var(--bleu);font-weight:bold;background:#F3F5FA}
.etat .pied-etat{margin-top:18px;padding-top:9px;border-top:1px solid var(--bleu);text-align:center;font-size:7.5px;color:#7b8394;line-height:1.5}
.etat .indent{padding-left:22px}

/* ---------- divers ---------- */
.vide{text-align:center;padding:40px 20px;color:#8b93a3;font-size:12.5px}
.chargement{text-align:center;padding:50px;color:var(--bleu);font-size:13px}
.pilule{background:var(--bleu-pale);border:1px solid var(--bord);border-radius:11px;padding:2px 9px;font-size:11px;display:inline-flex;gap:5px;align-items:center}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:1250px){.split{grid-template-columns:1fr}}
datalist{display:none}

@media print{
  /* ---------- FILET DE SÉCURITÉ POUR LE NOIR ET BLANC ----------
     Un navigateur n'imprime PAS les fonds de couleur tant qu'on n'a pas
     coché « graphiques d'arrière-plan ». Le bandeau bleu d'une pièce
     sortait donc blanc — et le texte BLANC qu'il portait disparaissait
     avec lui : référence du bon, titre de bloc, en-tête de tableau.
     On rend donc ce texte noir et l'on borde le bandeau, pour que la
     pièce reste lisible même sans un gramme d'encre de fond. */
  /* Ce filet ne vaut QUE pour un tirage monochrome : la classe « mono »
     est posée par l'aperçu, et se retire d'un bouton quand la pièce doit
     sortir en couleur. Sans cette condition, la couleur était impossible
     même en cochant « Graphiques d'arrière-plan » dans le navigateur. */
  #zone-impression.mono [style*="color:#fff"]{color:#000!important}
  #zone-impression.mono [style*="background:#143390"]{background:#fff!important;
    border:1px solid #000!important}
  #zone-impression.mono [style*="background:#E1AB00"]{background:#000!important}
  /* En couleur, on n'attend pas que l'utilisateur trouve la case du
     navigateur : la pièce demande elle-même que les fonds soient posés. */
  #zone-impression:not(.mono){-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .no-print{display:none!important}
  /* ---------- UNE PIÈCE, UNE FEUILLE ----------
     La zone d'impression est posée PAR-DESSUS l'application, en
     position fixe. À l'impression elle repasse en flux normal — et se
     range donc APRÈS l'écran qui est toujours là dessous. Le tirage
     sortait à deux feuilles : l'écran de l'application d'abord, vidé de
     son menu et de ses filtres donc presque blanc, la pièce ensuite.
     Tant qu'une pièce est à l'écran, elle est seule à s'imprimer. */
  body:has(#zone-impression) > *:not(#zone-impression){display:none!important}
  #zone-impression{position:static!important;padding:0!important;overflow:visible!important}
  #nav,#entete,#bandeau,.filtres,.onglets,.btn{display:none!important}
  #contenu{overflow:visible;padding:0}
  body{background:#fff;display:block;overflow:visible}
  .etat{border:none;box-shadow:none;padding:0}
}

/* Tableaux à colonnes courtes : le texte se lit mieux centré, mais les
   montants restent alignés à droite pour qu'on puisse les comparer
   d'un coup d'œil en descendant la colonne. */
tr.ctr>th,tr.ctr>td{text-align:center}
tr.ctr>th.n,tr.ctr>td.n{text-align:right}

/* Double validation du DG (22/09/2026) : une pièce que la Direction n'a pas
   encore validée se lit en grisé, et le compteur des pièces en attente
   s'affiche dans le menu. */
tr.dg-non-valide td{color:#8b93a3;background:#f6f7fa}
tr.dg-non-valide td b{color:#6a7285}
tr.dg-non-valide .btn{opacity:1}
.nb-dg{display:inline-block;min-width:16px;margin-left:6px;padding:0 5px;border-radius:8px;
  background:#E1AB00;color:#143390;font-size:10px;font-weight:bold;text-align:center;line-height:15px}
.dg-verrou input:disabled,.dg-verrou select:disabled,.form .dg-reserve input:disabled,
.form .dg-reserve select:disabled{background:#EFF1F6;color:#8b93a3;cursor:not-allowed}
.dg-reserve label::after{content:" — réservé au DG";font-weight:normal;color:#8b93a3;font-size:10px}

/* ---------- UNE PIÈCE NE SE SURLIGNE PAS SOUS LA SOURIS ----------
   « Pourquoi le BC sort en PDF avec un fond bleu ? » — Direction
   Générale, 13 octobre 2026. Toute la pièce est posée dans une ligne de
   tableau (la mise en page des feuilles, EX.paginer) : la souris qui la
   survolait l'allumait du bleu de survol des tableaux de l'application
   (#dfe4f3), et ce bleu partait dans le PDF. Dans l'aperçu, ni la
   ligne-cadre ni les lignes des pièces ne s'allument plus. */
#zone-impression table.paginee > tbody > tr,
#zone-impression table.paginee > tbody > tr:hover,
#zone-impression table.paginee > thead > tr,
#zone-impression table.paginee > tfoot > tr{background:transparent!important}
#zone-impression tbody tr:hover{background:transparent}
#zone-impression tbody tr:nth-child(even):hover{background:var(--bleu-pale)}
#zone-impression .fbc tbody tr:hover{background:transparent}

/* ---------- plusieurs sociétés (v309) ---------- */
#soc-choix{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:var(--fond)}
#soc-choix .boite{background:#fff;border:1px solid var(--bord);border-radius:5px;box-shadow:var(--ombre);width:min(640px,94vw);overflow:hidden}
#soc-choix .haut{height:5px;background:linear-gradient(90deg,var(--bleu) 55%,var(--gris-perle) 55%,var(--gris-perle) 78%,var(--or) 78%)}
#soc-choix .in{padding:26px 30px 24px}
#soc-choix .soc-marque{font-size:24px;font-weight:bold;letter-spacing:5px;color:var(--bleu)}
#soc-choix .soc-app{font-size:10px;letter-spacing:1.8px;color:var(--or);font-weight:bold;margin:3px 0 14px}
#soc-choix p{font-size:12.5px;color:#5c6478;margin-bottom:14px}
#soc-choix .soc-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
#soc-choix .soc-carte{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;cursor:pointer;
  background:#fff;border:1px solid var(--bord);border-left:4px solid var(--bleu);border-radius:4px;padding:12px 14px}
#soc-choix .soc-carte:hover,#soc-choix .soc-carte:focus-visible{border-left-color:var(--or);background:var(--bleu-pale);outline:none}
#soc-choix .soc-carte .logo{height:64px;width:100%;display:flex;align-items:center;justify-content:center;
  margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--gris-perle)}
#soc-choix .soc-carte .logo img{max-height:56px;max-width:85%;width:auto;height:auto;object-fit:contain}
#soc-choix .soc-carte .sigle{font-size:16px;font-weight:bold;color:var(--bleu);letter-spacing:1px}
#soc-choix .soc-carte .nom{font-size:11px;color:var(--anthracite)}
#soc-choix .soc-carte .act{font-size:10.5px;color:#8b93a3}
#nav .logo .soc-mot{display:flex;flex-direction:column;gap:3px}
#nav .logo .soc-mot b{font-size:21px;letter-spacing:2.5px;color:#fff}
#nav .logo .soc-mot span{font-size:10px;color:rgba(255,255,255,.7)}
#nav .logo .soc-changer{display:block;margin-top:8px;font-size:10.5px;color:rgba(255,255,255,.75);cursor:pointer;padding:0;border:none}
#nav .logo .soc-changer:hover{color:var(--or);background:none}
.cn-cases{display:flex;gap:18px;align-items:center;padding-top:6px;flex-wrap:wrap}
.cn-case{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;white-space:nowrap}
.cn-case input{width:auto}

/* ---------- charte d'une autre société (v311) ----------
   Les couleurs passent par les variables posées par SOC.appliquerCharte ;
   ces règles couvrent ce que la feuille écrivait en dur. ALTRAN n'a pas
   d'attribut data-charte : rien de ceci ne la touche. */
:root[data-charte] body{color:var(--anthracite)}
:root[data-charte] tbody tr:hover{background:var(--survol)}
:root[data-charte] tbody td{border-bottom-color:var(--bord)}
:root[data-charte] input:focus,:root[data-charte] select:focus,:root[data-charte] textarea:focus{box-shadow:0 0 0 2px rgba(28,71,120,.14)}
:root[data-charte] .carte>h2 .compl,:root[data-charte] .tuile .lbl,:root[data-charte] .tuile .note,:root[data-charte] .aide{color:var(--meta)}
/* Encadré : fond bleu pâle, bordure bleu institutionnel. */
:root[data-charte] .alerte.a-bleu{border:1px solid var(--bleu);border-left-width:4px;background:var(--bleu-pale)}
/* L'orange reste la couleur de l'attention, la charte n'en dit rien. */
:root[data-charte] .alerte.a-or{background:#FFF6E0;border-color:#C98A00}
:root[data-charte] .b-or{background:#FFF6E0;color:#8a6a00}
:root[data-charte] .tuile.or{border-top-color:#C98A00}
:root[data-charte] .btn.or{background:var(--bleu);color:#fff}
:root[data-charte] .btn.or:hover{background:var(--bleu-fonce)}
:root[data-charte] #nav .grp.porte,:root[data-charte] #nav .logo .app,:root[data-charte] #nav .grp.porte:not(.ouvert)::after{color:var(--nav-accent)}
:root[data-charte] #nav a.actif{border-left-color:var(--nav-accent)}
:root[data-charte] #nav-solde b{color:var(--nav-accent)}
@media print{
  :root[data-charte] #zone-impression.mono [style*="background:#1C4778"]{background:#fff!important;border:1px solid #000!important}
  :root[data-charte] #zone-impression.mono [style*="background:#2E5F96"]{background:#000!important}
}
