/* ==================================================================
   SOAIADANANA — feuille de style commune de l'intranet
   ------------------------------------------------------------------
   Chargée AVANT le <style> propre à chaque page : toute règle locale
   d'une page reste prioritaire. Ce fichier ne contient que ce qui est
   réellement partagé — jetons de couleur, barre de navigation entre
   les outils, pied de page, et la mise en page de l'accueil.

   Toutes les classes communes sont préfixées « x- » pour ne jamais
   entrer en collision avec les classes internes des outils.
================================================================== */

/* ---------- 1. Jetons de couleur (union des quatre pages) ---------- */
:root{
  --porcelain:#EEF1EF;   /* fond de page                 */
  --paper:#FBFCFB;       /* fond des panneaux            */
  --ink:#12201E;         /* texte principal              */
  --ink-soft:#5A6A66;    /* texte secondaire             */
  --rim:#1E4B8F;         /* bleu d'accent, liens, focus  */
  --rim-pale:#E9EFF8;    /* aplat bleu clair             */
  --brass:#9A6F1E;       /* laiton, mises en avant       */
  --brass-pale:#F8F1E2;  /* aplat laiton clair           */
  --rule:#C7CFCB;        /* filets                       */
  --rule-faint:#DDE3E0;  /* filets légers                */
  --slip:#FDFBF4;        /* fond crème                   */
  --alert:#8C2F1D;       /* alertes, valeurs manquées    */
  --success:#2F6B45;     /* valeurs tenues               */

  /* ---------- Jetons de dimension tactile (lot 24) ----------
     L'application se tient au doigt, sur tablette. Un bouton de
     32 px de haut se rate une fois sur trois : ces trois valeurs
     sont la mesure de ce qui se touche, et rien d'autre ne doit
     décider de la taille d'une cible.

     · --cible        44 px, le minimum d'une zone tapable
     · --cible-large  56 px, pour un geste fréquent ou destructeur
     · --ecart-cible   8 px entre deux cibles voisines — sans quoi
                       deux boutons corrects se touchent quand même
     · --saisie       16 px de texte dans un champ : en dessous, le
                       navigateur mobile zoome de lui-même et la mise
                       en page saute à chaque fois qu'on saisit.

     Les règles qui s'en servent sont sous « pointer: coarse » : au
     doigt, tout grandit ; à la souris, la densité reste. */
  --cible:44px;
  --cible-large:56px;
  --ecart-cible:8px;
  --saisie:16px;
}

/* ---------- 2. Socle ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--porcelain);
  color:var(--ink);
  font-family:'IBM Plex Sans',system-ui,sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.x-mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}

/* ---------- 3. Barre de navigation de l'intranet ----------
   Insérée en haut du <body> de chaque page, au-dessus de l'en-tête
   propre à l'outil, qui n'est pas modifié.                          */
.x-nav{
  /* display:block est explicite : trois pages définissent une règle de type
     nav{display:flex} pour leurs onglets internes. La classe l'emporte. */
  display:block;
  background:var(--ink);
  color:var(--porcelain);
  border-bottom:1px solid var(--ink);
}
.x-nav-in{
  max-width:1500px;margin:0 auto;
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;
  padding:8px 22px;
}
.x-brand{
  display:flex;align-items:center;gap:9px;
  color:inherit;text-decoration:none;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  white-space:nowrap;
}
.x-brand b{font-weight:600;color:var(--paper)}
/* Garde-fou : si un jour une image est placée dans la marque, elle reste
   à la hauteur de la barre au lieu de s'afficher en pleine taille. */
.x-brand img{height:20px;width:auto;display:block}
.x-links{
  display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;
  margin-left:auto;
}
.x-links a{
  color:rgba(238,241,239,.72);
  text-decoration:none;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.08em;
  padding:5px 9px;
  border:1px solid transparent;
  white-space:nowrap;
}
.x-links a:hover{color:var(--porcelain);border-color:rgba(238,241,239,.3)}
.x-links a[aria-current=page]{
  color:var(--paper);
  border-color:rgba(238,241,239,.45);
  background:rgba(238,241,239,.1);
}
.x-nav a:focus-visible,.x-foot a:focus-visible{outline:2px solid var(--paper);outline-offset:1px}

@media(max-width:700px){
  .x-nav-in{padding:8px 14px;gap:6px 10px}
  .x-links{margin-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .x-links a{padding:5px 7px}
}

/* ---------- 4. Pied de page commun ---------- */
.x-foot{
  max-width:1500px;margin:26px auto 0;
  padding:22px;
  border-top:1px solid var(--rule);
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.05em;color:var(--ink-soft);
  display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;
}
.x-foot a{color:var(--rim);text-decoration:none;border-bottom:1px solid rgba(30,75,143,.35)}
.x-foot a:hover{border-bottom-color:var(--rim)}
.x-foot .x-foot-end{margin-left:auto}
/* Trois outils affichent en mobile une barre de total fixée en bas de
   l'écran : le pied de page réserve la place pour ne pas passer dessous. */
@media(max-width:900px){.x-foot{padding-bottom:78px}}
@media(max-width:700px){
  .x-foot{padding:18px 14px 78px}
  .x-foot .x-foot-end{margin-left:0}
}

/* ---------- 5. Accueil de l'intranet (index.html) ---------- */
.x-page{max-width:1140px;margin:0 auto;padding:34px 22px 60px}

.x-hero{
  background:var(--paper);
  border:1px solid var(--rule);
  padding:30px 32px 26px;
}
/* Le fichier du logo est carré et largement margé : la fenêtre ci-dessous
   le recadre sur sa bande utile au lieu de l'afficher minuscule. */
.x-hero-logo{
  display:block;height:76px;width:232px;
  object-fit:cover;object-position:center 45%;
  margin:0 0 18px;
}
@media(max-width:620px){.x-hero-logo{height:60px;width:184px}}
.x-hero .x-eyebrow{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 10px;
}
.x-hero h1{
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;font-size:clamp(32px,6vw,52px);line-height:1.03;
  letter-spacing:-.01em;margin:0 0 10px;
}
.x-hero h1 em{font-style:italic;color:var(--brass)}
.x-hero p{max-width:66ch;color:var(--ink-soft);margin:0}
.x-hero-facts{
  display:flex;flex-wrap:wrap;gap:0;
  margin-top:22px;border-top:1px solid var(--rule-faint);
}
.x-hero-facts div{
  flex:1 1 170px;padding:12px 16px 10px;
  border-right:1px solid var(--rule-faint);
}
.x-hero-facts div:last-child{border-right:0}
.x-hero-facts b{
  display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brass);font-weight:500;margin-bottom:3px;
}
.x-hero-facts span{font-size:13.5px;color:var(--ink)}

.x-section-label{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);margin:34px 0 12px;
}

.x-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}
.x-card{
  background:var(--paper);
  border:1px solid var(--rule);
  border-top:3px solid var(--brass);
  padding:20px 22px 18px;
  display:flex;flex-direction:column;
  color:inherit;text-decoration:none;
}
.x-card:hover{border-color:var(--rim);border-top-color:var(--rim)}
.x-card:focus-visible{outline:2px solid var(--rim);outline-offset:2px}
.x-card .x-kicker{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 6px;
}
.x-card h2{
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;font-size:27px;line-height:1.1;margin:0 0 8px;
}
.x-card h2 em{font-style:italic;color:var(--rim)}
.x-card .x-desc{font-size:13.5px;color:var(--ink-soft);margin:0 0 14px}
.x-card ul{margin:0 0 16px;padding:0;list-style:none}
.x-card li{
  font-size:13px;padding:5px 0 5px 15px;position:relative;
  border-bottom:1px solid var(--rule-faint);
}
.x-card li:last-child{border-bottom:0}
.x-card li::before{
  content:"";position:absolute;left:0;top:12px;
  width:6px;height:1px;background:var(--brass);
}
.x-card .x-go{
  margin-top:auto;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rim);
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding-top:12px;border-top:1px solid var(--rule-faint);
}
.x-card .x-file{color:var(--ink-soft);letter-spacing:.04em;text-transform:none}

.x-note{
  background:var(--slip);
  border:1px solid var(--rule);
  border-left:3px solid var(--alert);
  padding:20px 24px 18px;
  margin-top:18px;
}
.x-note h2{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;margin:0 0 12px;
}
.x-note ul{margin:0;padding:0;list-style:none}
.x-note li{
  font-size:13.5px;padding:9px 0 9px 108px;position:relative;
  border-bottom:1px solid var(--rule-faint);line-height:1.45;
}
.x-note li:last-child{border-bottom:0}
.x-note li::before{
  content:attr(data-k);position:absolute;left:0;top:9px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brass);
}
.x-note strong{font-weight:600}
@media(max-width:620px){
  .x-note li{padding:9px 0 9px 0}
  .x-note li::before{position:static;display:block;margin-bottom:3px}
}

.x-src{
  background:var(--paper);border:1px solid var(--rule);
  padding:4px 22px 6px;margin-top:18px;
}
.x-src div{
  display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid var(--rule-faint);font-size:13.5px;
}
.x-src div:last-child{border-bottom:0}
.x-src b{font-weight:500}
.x-src span{color:var(--ink-soft);font-size:12.5px;margin-left:auto}
@media(max-width:620px){.x-src span{margin-left:0;width:100%}}

/* ---------- 6. Coordonnées de l'entreprise ----------
   Alimenté par assets/identite.js. Le bloc d'alerte reste visible à
   l'impression : un document ne doit pas partir sans moyen de contact. */
.soa-contact{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.03em;color:var(--ink-soft);
  margin-top:3px;
}
.soa-legal{opacity:.85}
.soa-manque{
  margin-top:8px;padding:7px 10px;
  border:1px solid var(--alert);border-left-width:3px;
  background:rgba(140,47,29,.07);
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10.5px;line-height:1.45;letter-spacing:.02em;color:var(--alert);
}
.soa-manque b{font-weight:600}
.x-foot .soa-manque-inline{color:var(--alert);font-weight:600}

/* ---------- 7. Impression ----------
   Ni la barre de navigation ni le pied de page ne doivent apparaître
   sur les bons de commande, fiches et propositions imprimés.        */
@media print{
  .x-nav,.x-foot,.x-idbanner,.x-noprint{display:none !important}
  body{background:#fff}
}

/* ---------- 8. Fonctions communes de l'intranet (assets/commun.js) ---------- */

/* Bandeau « coordonnées manquantes », inséré sous la navigation des outils. */
.x-idbanner{
  display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;
  background:var(--slip);
  border-bottom:1px solid var(--rule);
  border-left:3px solid var(--alert);
  padding:8px 22px;
  font-size:12.5px;color:var(--alert);
}
.x-idbanner a{
  color:var(--rim);text-decoration:none;font-weight:500;
  border-bottom:1px solid rgba(30,75,143,.35);
}
.x-idbanner a:hover{border-bottom-color:var(--rim)}

/* Panneau neutre du sommaire (identité, sauvegardes, journal). */
.x-panel{
  background:var(--paper);border:1px solid var(--rule);
  padding:20px 24px 18px;margin-top:18px;
}
.x-panel h2{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;margin:0 0 12px;
}
.x-panel .x-panel-intro{font-size:13.5px;color:var(--ink-soft);margin:0 0 14px;max-width:72ch}

/* Recherche globale. */
.x-rech-panel{
  background:var(--paper);border:1px solid var(--rule);
  border-top:3px solid var(--rim);
  padding:20px 24px 18px;margin-top:18px;
}
.x-rech-panel input[type=search]{
  width:100%;padding:11px 14px;font-size:16px;
  font-family:'IBM Plex Sans',system-ui,sans-serif;
  color:var(--ink);background:var(--porcelain);
  border:1px solid var(--rule);border-radius:0;outline:none;
}
.x-rech-panel input[type=search]:focus{border-color:var(--rim);background:#fff}
.x-rech-aide{font-size:12.5px;color:var(--ink-soft);margin:10px 0 0}
.x-rech-groupe{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brass);margin:16px 0 6px;
}
.x-rech-groupe span{color:var(--ink-soft)}
.x-rech-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.x-rech-item{
  display:flex;flex-direction:column;gap:1px;
  padding:8px 12px;background:var(--porcelain);
  border:1px solid var(--rule-faint);
  color:inherit;text-decoration:none;font-size:13.5px;
}
.x-rech-item:hover{border-color:var(--rim);background:#fff}
.x-rech-item b{font-weight:500}
.x-rech-item span{font-size:11.5px;color:var(--ink-soft)}
.x-rech-plus{grid-column:1/-1;font-size:12px;color:var(--ink-soft);margin:2px 0 0}

/* Formulaire d'identité. */
.x-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 18px;margin-top:6px}
.x-field{display:flex;flex-direction:column;gap:4px}
.x-field label{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);
}
.x-field input{
  padding:10px;font-size:var(--saisie);min-height:var(--cible);color:var(--ink);
  background:var(--porcelain);border:1px solid var(--rule);
  border-radius:0;outline:none;font-family:inherit;
}
.x-field input:focus{border-color:var(--rim);background:#fff}
.x-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
.x-etat-note{font-size:12px;color:var(--ink-soft)}

/* Boutons communs. */
.x-btn{
  display:inline-block;padding:8px 14px;cursor:pointer;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--rim);background:var(--paper);border:1px solid var(--rim);
  border-radius:0;text-decoration:none;
}
.x-btn:hover{background:var(--rim-pale)}
.x-btn.principal{color:var(--porcelain);background:var(--ink);border-color:var(--ink)}
.x-btn.principal:hover{background:var(--rim);border-color:var(--rim)}
.x-btn.danger{color:var(--alert);border-color:var(--alert)}
.x-btn.danger:hover{background:rgba(140,47,29,.07)}

/* Pastilles d'état. */
.x-pill{
  display:inline-block;padding:2px 9px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  border:1px solid var(--rule);
}
.x-pill.ok{color:var(--success);border-color:var(--success);background:rgba(47,107,69,.07)}
.x-pill.ko{color:var(--alert);border-color:var(--alert);background:rgba(140,47,29,.07)}
.x-point{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--rule)}
.x-point.ok{background:var(--success)}

/* Journal des modifications. */
.x-jtable{width:100%;border-collapse:collapse;font-size:13px}
.x-jtable th{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;text-align:left;
  padding:6px 10px 6px 0;border-bottom:1px solid var(--rule);
}
.x-jtable td{padding:7px 10px 7px 0;border-bottom:1px solid var(--rule-faint);vertical-align:top}
.x-jtable td:first-child{white-space:nowrap;color:var(--ink-soft);font-size:12px}
.x-j-type{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;
  color:var(--brass);letter-spacing:.06em;
}
.x-j-vide{color:var(--ink-soft);font-size:13px}

/* Suivi des points à traiter (sommaire). */
.x-traiter-intro{font-size:13px;color:var(--ink-soft);margin:0 0 12px;max-width:74ch}
.x-traiter-progression{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:11.5px;letter-spacing:.04em;color:var(--ink-soft);
  margin:0 0 10px;display:flex;align-items:center;gap:12px;
}
.x-traiter-progression b{color:var(--ink);font-weight:600}
.x-t-bar{
  flex:0 1 180px;height:5px;background:var(--rule-faint);
  display:inline-block;position:relative;overflow:hidden;
}
.x-t-bar span{position:absolute;left:0;top:0;bottom:0;background:var(--success)}
.x-note li.x-t-item{padding-right:118px}
.x-t-pastille{
  position:absolute;right:0;top:7px;
  padding:2px 9px;cursor:pointer;
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  background:var(--slip);border:1px solid var(--rule);border-radius:0;
}
.x-t-pastille.ko{color:var(--alert);border-color:var(--alert)}
.x-t-pastille.ko:hover{background:rgba(140,47,29,.08)}
.x-t-pastille.cours{color:var(--brass);border-color:var(--brass)}
.x-t-pastille.cours:hover{background:rgba(154,111,30,.09)}
.x-t-pastille.ok{color:var(--success);border-color:var(--success)}
.x-t-pastille.ok:hover{background:rgba(47,107,69,.08)}
.x-note li.x-t-regle{opacity:.6}
.x-note li.x-t-regle strong{text-decoration:line-through;text-decoration-thickness:1px}
@media(max-width:620px){
  .x-note li.x-t-item{padding-right:0}
  .x-t-pastille{position:static;display:inline-block;margin:0 0 6px}
}

/* ---------- 9. Verrouillage des réglages, registre, agenda ---------- */

/* Bouton de verrou, inséré dans la barre de navigation. */
.x-verrou-btn{
  cursor:pointer;color:rgba(238,241,239,.72);background:transparent;
  border:1px solid transparent;border-radius:0;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.08em;
  padding:5px 9px;white-space:nowrap;
}
.x-verrou-btn:hover{color:var(--porcelain);border-color:rgba(238,241,239,.3)}
.x-verrou-btn:focus-visible{outline:2px solid var(--paper);outline-offset:1px}
.x-verrou-btn.actif{color:#F3DFB6;border-color:var(--brass);background:rgba(154,111,30,.22)}

/* Effets du verrouillage, page par page (le corps est marqué par commun.js). */
body.x-verrouille[data-page="mercuriale"] input.prix{pointer-events:none;opacity:.5}
body.x-verrouille[data-page="mercuriale"] #reinit,
body.x-verrouille[data-page="mercuriale"] label[for=importer]{display:none !important}
body.x-verrouille[data-page="offre-restaurant"] [data-view="market-config"],
body.x-verrouille[data-page="offre-restaurant"] [data-view="dish-config"],
body.x-verrouille[data-page="offre-restaurant"] [data-view="dish-create"]{display:none !important}
body.x-verrouille[data-page="accueil"] #xi-enregistrer,
body.x-verrouille[data-page="accueil"] #xi-telecharger,
body.x-verrouille[data-page="accueil"] #xi-retablir,
body.x-verrouille[data-page="accueil"] label[for=xs-fichier],
body.x-verrouille[data-page="accueil"] #xj-vider{display:none !important}
body.x-verrouille[data-page="accueil"] #x-identite input{pointer-events:none;opacity:.55}
body.x-verrouille[data-page="accueil"] .x-t-pastille{pointer-events:none;opacity:.5}

/* Registre des documents. */
.x-doc-statut{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;
  padding:3px 5px;border:1px solid var(--rule);background:var(--paper);
  color:var(--ink);border-radius:0;
}
.x-doc-note{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:1px}
.x-doc-ag,.x-doc-del{
  cursor:pointer;margin-right:6px;padding:2px 8px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;
  background:var(--paper);border:1px solid var(--rule);color:var(--rim);border-radius:0;
}
.x-doc-ag:hover{border-color:var(--rim);background:var(--rim-pale)}
.x-doc-del{color:var(--alert)}
.x-doc-del:hover{border-color:var(--alert);background:rgba(140,47,29,.07)}

/* Agenda des prestations. */
.x-field select{
  padding:10px;font-size:var(--saisie);min-height:var(--cible);color:var(--ink);
  background:var(--porcelain);border:1px solid var(--rule);
  border-radius:0;outline:none;font-family:inherit;
}
.x-field select:focus{border-color:var(--rim);background:#fff}
.x-ag{
  display:flex;align-items:baseline;gap:14px;
  padding:8px 0;border-bottom:1px solid var(--rule-faint);font-size:13.5px;
}
.x-ag.passe{opacity:.55}
.x-ag.bientot{
  background:var(--brass-pale);
  margin:0 -12px;padding-left:12px;padding-right:12px;
  border-left:3px solid var(--brass);
}
.x-ag-date{
  flex:0 0 110px;color:var(--ink);
  font-size:12px;text-transform:capitalize;
}
.x-ag-quand{
  flex:0 0 92px;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10.5px;letter-spacing:.05em;color:var(--brass);text-transform:uppercase;
}
.x-ag-nom{flex:1}
.x-ag-meta{display:block;font-size:12px;color:var(--ink-soft)}
.x-ag-del{
  cursor:pointer;padding:0 8px;align-self:center;
  font-size:15px;line-height:1.6;color:var(--alert);
  background:transparent;border:1px solid transparent;border-radius:0;
}
.x-ag-del:hover{border-color:var(--alert);background:rgba(140,47,29,.07)}

/* Statuts de prestation : le select de la ligne fait office de badge. */
.x-ag-statut{
  cursor:pointer;align-self:center;padding:2px 6px;max-width:130px;
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;
  letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-soft);background:var(--porcelain);
  border:1px solid var(--rule);border-radius:0;
}
.x-ag-statut.s-a-confirmer{color:var(--brass);border-color:var(--brass);background:var(--brass-pale)}
.x-ag-statut.s-confirmee{color:var(--success);border-color:var(--success);background:#EAF3ED}
.x-ag-statut.s-terminee{color:var(--ink-soft);border-color:var(--rule)}
.x-ag-statut.s-annulee{color:var(--alert);border-color:var(--alert);background:rgba(140,47,29,.06)}
.x-ag.s-annulee .x-ag-nom b{text-decoration:line-through}
.x-ag.s-annulee{opacity:.6}
.x-ag.s-terminee .x-ag-nom{color:var(--ink-soft)}

/* Bascule liste / calendrier et exports. */
.x-ag-outils{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:10px;margin-bottom:12px;
}
.x-vue-bascule{display:flex;border:1px solid var(--rule)}
.x-vue-btn{
  cursor:pointer;padding:5px 14px;font-size:12px;font-family:inherit;
  color:var(--ink-soft);background:var(--paper);border:0;border-radius:0;
}
.x-vue-btn + .x-vue-btn{border-left:1px solid var(--rule)}
.x-vue-btn.actif{background:var(--ink);color:var(--paper)}
.x-ag-export{display:flex;gap:8px}

/* Calendrier mensuel : grille lun → dim, chips colorées par statut. */
.x-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.x-cal-nav h2{margin:0;text-transform:capitalize}
.x-cal-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.x-cal-jnom{
  padding:4px 0;text-align:center;font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-soft);
}
.x-cal-j{
  min-height:80px;padding:4px;cursor:pointer;
  background:var(--paper);border:1px solid var(--rule-faint);
}
.x-cal-j:hover{border-color:var(--brass)}
.x-cal-j.hors{opacity:.4;background:transparent}
.x-cal-j.auj{border-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass)}
.x-cal-jnum{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;color:var(--ink-soft);
}
.x-cal-j.auj .x-cal-jnum{color:var(--brass);font-weight:700}
.x-cal-ev{
  margin-top:2px;padding:1px 4px;font-size:10.5px;line-height:1.5;
  background:var(--porcelain);border-left:2px solid var(--brass);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.x-cal-ev.s-confirmee{border-left-color:var(--success)}
.x-cal-ev.s-terminee{border-left-color:var(--ink-soft);opacity:.65}
.x-cal-ev.s-annulee{border-left-color:var(--alert);opacity:.55;text-decoration:line-through}
.x-cal-legende{margin:8px 0 0;font-size:11.5px;color:var(--ink-soft)}
@media(max-width:620px){
  .x-cal-j{min-height:52px}
  .x-cal-ev{font-size:9px;padding:0 3px}
}
@media(max-width:620px){
  .x-ag{flex-wrap:wrap;gap:2px 10px}
  .x-ag-quand{flex:0 0 auto}
}

/* ---------- 10. Pilotage et rappels ---------- */

/* Bandeau de rappels, inséré en tête du sommaire par commun.js. */
.x-rappels{
  background:var(--slip);border:1px solid var(--rule);
  border-left:3px solid var(--brass);
  padding:10px 18px;margin-bottom:22px;
}
.x-rappel{
  display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;
  padding:4px 0;font-size:13px;
}
.x-rappel + .x-rappel{border-top:1px solid var(--rule-faint)}
.x-rappel a{
  color:var(--rim);text-decoration:none;font-weight:500;
  border-bottom:1px solid rgba(30,75,143,.35);white-space:nowrap;
}
.x-rappel a:hover{border-bottom-color:var(--rim)}

/* Blocs de pilotage. */
.x-pilo{
  display:flex;flex-wrap:wrap;gap:0;
  border:1px solid var(--rule-faint);background:var(--porcelain);
}
.x-pb{
  flex:1 1 170px;padding:12px 16px 10px;
  border-right:1px solid var(--rule-faint);
}
.x-pb:last-child{border-right:0}
.x-pb b{
  display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brass);font-weight:500;margin-bottom:3px;
}
.x-pb-v{
  display:block;font-size:16px;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.x-pb-s{display:block;font-size:11.5px;color:var(--ink-soft);margin-top:1px}

/* Histogramme du CA accepté. */
.x-bars{margin-top:16px}
.x-bars-titre{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 8px;
}
.x-bars-grille{
  display:flex;align-items:flex-end;gap:10px;height:120px;
  padding:0 4px;
}
.x-bar-col{
  flex:1;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;gap:4px;height:100%;min-width:0;
}
.x-bar-val{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;
  color:var(--ink-soft);white-space:nowrap;overflow:hidden;
}
.x-bar{
  display:block;width:100%;max-width:56px;
  background:var(--rim);opacity:.85;
}
.x-bar-nom{
  font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);
}
