/* RFPyrogest' ERP — Styles spécifiques ERP
   Étape 1.5 : login error, écran accès refusé, modale Mon Profil,
               overlay re-login (déconnexion par inactivité). */

/* ── LOGIN : message d'erreur ──────────────────────────────── */
.login-error{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--red);
  background:rgba(198,40,40,0.08);
  border:1px solid rgba(198,40,40,0.25);
  border-radius:8px;
  padding:8px 12px;
  margin-bottom:12px;
  text-align:center;
  display:none;
}
.login-error.show{display:block;}

/* ── ÉCRAN ACCÈS REFUSÉ ───────────────────────────────────── */
.access-denied-screen{
  position:fixed;
  inset:0;
  background:var(--navy-light);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
  padding:24px;
}
.access-denied-card{
  background:#fff;
  border:2px solid var(--gold);
  border-radius:14px;
  padding:36px 40px;
  max-width:420px;
  width:100%;
  text-align:center;
  box-shadow:0 12px 40px rgba(10,20,60,0.15);
}
.access-denied-card svg.access-denied-icon{display:block;margin:0 auto 14px;}
.access-denied-title{
  font-family:'Exo 2',sans-serif;
  font-weight:800;
  font-size:22px;
  color:var(--navy);
  margin-bottom:8px;
}
.access-denied-sub{
  font-family:'DM Sans',sans-serif;
  font-size:14px;
  color:var(--text-muted);
  margin-bottom:22px;
}
.access-denied-card .btn-secondary{
  margin:0 auto;
  justify-content:center;
}

/* ── MODALE MON PROFIL ────────────────────────────────────── */
.profil-modal-head{
  background:#1A3A8F;
  padding:14px 20px;
  border-bottom:3px solid #C9A84C;
  display:flex;
  align-items:center;
  gap:10px;
  margin:-26px -30px 20px -30px;
  border-radius:14px 14px 0 0;
}
.profil-modal-title{
  font-family:'Exo 2',sans-serif;
  font-size:17px;
  font-weight:700;
  color:#fff;
  flex:1;
}
.profil-modal-chip{
  font-size:11px;
  font-weight:600;
  color:rgba(255,255,255,0.5);
  text-transform:uppercase;
  letter-spacing:1px;
}
.profil-section-title{
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--navy);
  text-transform:uppercase;
  letter-spacing:.8px;
  margin-bottom:10px;
}
.profil-section-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.profil-section-row .profil-section-title{margin-bottom:0;}
.profil-hr{
  border:none;
  border-top:1px solid var(--border-light);
  margin:16px 0;
}
.profil-saved-badge{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:600;
  color:var(--green);
  opacity:0;
  transition:opacity .15s ease;
  pointer-events:none;
}
.profil-saved-badge.show{opacity:1;}
.profil-warn{
  display:none;
  background:#FEF3C7;
  border:1px solid #F59E0B;
  border-radius:6px;
  padding:8px 12px;
  margin-top:6px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:#92400E;
}
.profil-warn.show{display:block;}
.modal-input-readonly{
  background:#f4f6fb;
  color:var(--text-muted);
  cursor:not-allowed;
}
.modal-input-readonly:focus{border-color:var(--border);}
.profil-toggle-pwd-btn{
  width:100%;
  justify-content:center;
}

/* ── OVERLAY RE-LOGIN (inactivité) ────────────────────────── */
.reauth-overlay{
  position:fixed;
  inset:0;
  background:rgba(10,20,60,0.65);
  z-index:900;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.reauth-overlay.show{display:flex;}
.reauth-card{
  background:#fff;
  border-radius:14px;
  border:2px solid var(--gold);
  padding:28px 32px;
  width:100%;
  max-width:380px;
  box-shadow:0 16px 48px rgba(10,20,60,0.4);
}
.reauth-title{
  font-family:'Exo 2',sans-serif;
  font-weight:800;
  font-size:18px;
  color:var(--navy);
  margin-bottom:6px;
}
.reauth-sub{
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text-muted);
  margin-bottom:16px;
}
.reauth-email{
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:600;
  color:var(--navy);
  background:var(--navy-light);
  padding:8px 12px;
  border-radius:6px;
  margin-bottom:12px;
  text-align:center;
}
.reauth-error{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--red);
  margin:8px 0 0;
  min-height:16px;
  text-align:center;
}
.reauth-card .login-btn{
  margin-top:8px;
}

/* ── MODALE DE CONFIRMATION (showConfirm / showAlert) ───────
   z-index PLUS ÉLEVÉ que .modal-overlay (500 dans style.css) pour
   garantir que cette modale s'affiche toujours AU-DESSUS de toute
   autre modale ouverte (fiche employé, modales de création, etc.).
   On reste sous .toast (9999) pour ne pas masquer une notif. */
.confirm-overlay{
  z-index:900;
}
.confirm-card{
  border:2px solid var(--gold);
  max-width:420px;
}
.confirm-title{
  font-family:'Exo 2',sans-serif;
  font-weight:800;
  font-size:18px;
  color:var(--navy);
  margin-bottom:8px;
}
.confirm-message{
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text);
  line-height:1.5;
  margin-bottom:6px;
  white-space:pre-wrap;
}

/* ── BOUTONS DÉSACTIVÉS — état visuel cohérent ────────────── */
.btn-primary:disabled,
.btn-gold:disabled,
.btn-danger:disabled,
.btn-secondary:disabled{
  opacity:0.45;
  cursor:not-allowed;
  pointer-events:none;
}

/* ════════════════════════════════════════════════════════════
   PRESTATIONS — Module ERP-3a
   ════════════════════════════════════════════════════════════ */

/* ── Badges statut prestation ─────────────────────────────── */
.badge-presta-planifiee{background:#e8f5e9;color:#1b5e20;border:1px solid rgba(27,94,32,.3);}
.badge-presta-encours  {background:#e3f2fd;color:#0d47a1;border:1px solid rgba(13,71,161,.3);}
.badge-presta-realisee {background:#f3e5f5;color:#4a148c;border:1px solid rgba(74,20,140,.3);}
.badge-presta-afacturer{background:#e8f0fe;color:#1a73e8;border:1px solid rgba(26,115,232,.3);}
.badge-presta-facturee {background:#e6f4ea;color:#137333;border:1px solid rgba(19,115,51,.3);}
.badge-presta-cloturee {background:#f1f3f4;color:#5f6368;border:1px solid rgba(95,99,104,.25);}
/* ms-panel "Type de bande son" — toutes les options visibles sans scroll
   (override de .ms-panel { max-height:220px; overflow-y:auto } de style.css) */
#fp-bandeson-panel{ max-height:none;overflow:visible; }

/* ═══ Titres de cards INTERNES (Option A) — filet gold + fond bg ════
   Règle UNIQUE pour tous les titres de cards. Le sélecteur descendant
   `.card .card-title` limite Option A aux titres SITUÉS À L'INTÉRIEUR
   d'une card. Les titres de section d'onglet (en haut de chaque onglet,
   wrappés dans .fp-card-head NON inscrit dans .card) gardent leur style
   d'origine défini dans style.css ligne 100 (uppercase grise, fine).
   Distinction nette → 0 conflit. */
.card .card-title{
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:800;
  color:var(--navy);
  text-transform:uppercase;
  letter-spacing:.8px;
  padding:12px 20px;
  border-left:4px solid var(--gold);
  background:var(--bg);
  margin:-16px -20px 16px -20px;
  border-radius:14px 14px 0 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:calc(100% + 40px);
  box-sizing:border-box;
  gap:12px;
}
/* Titres de section d'onglet (BUDGET, LOGISTIQUE, SITE DE TIR, ÉQUIPE…)
   Ces titres sont rendus dans un .fp-card-head DIRECT CHILD du conteneur
   d'onglet — JAMAIS à l'intérieur d'une .card. Spécificité plus haute que
   `.card .card-title` (id + classes) → l'emporte sans !important. */
#fp-tab-content > .fp-card-head > .card-title,
#fe-tab-content > .fp-card-head > .card-title{
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:700;
  color:var(--text-hint);
  text-transform:uppercase;
  letter-spacing:.8px;
  padding:0;
  background:transparent;
  border-left:none;
  border-radius:0;
  margin:0 0 14px 0;
  width:auto;
  display:block;
}

/* ═══ Espacement haut + bas sur les onglets de fiche ═════════════════
   padding-top évite que le margin négatif de .card-title (-17.5px)
   ne fasse remonter la 1ère card sur les pills de navigation. */
#fp-tab-content,
#fe-tab-content{
  padding-top:18px;
  padding-bottom:40px;
}
/* Bouton "+ Ajouter un élément logistique" : marge inférieure */
.fp-logi-btn-add{ margin-bottom:24px !important; }

/* Badges statutFacturation (onglet 5 — barre navy + récap) */
.badge-a-facturer    {background:#e8f0fe;color:#1a73e8;border:1px solid rgba(26,115,232,.3);}
.badge-facture-emise {background:#e6f4ea;color:#137333;border:1px solid rgba(19,115,51,.3);}

/* ═══ Onglet Facturation — Stepper 4 étapes ═══════════════════ */
.fp-stepper{ display:flex;align-items:flex-start;gap:0;margin-bottom:24px;flex-wrap:wrap; }
.fp-step-wrap{ display:flex;align-items:flex-start;flex:0 0 auto; }
.fp-step{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  cursor:pointer;min-width:90px;padding:6px 10px;border-radius:8px;
  transition:background .12s;
}
.fp-step:hover{ background:rgba(26,58,143,0.04); }
.fp-step.fp-step-disabled{ cursor:not-allowed;opacity:.45; }
.fp-step.fp-step-disabled:hover{ background:transparent; }
.fp-step-circle{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Exo 2',sans-serif;font-size:14px;font-weight:800;
  background:#fff;border:2px solid #cbd5e1;color:#94a3b8;
  transition:all .15s;
}
.fp-step-label{
  font-family:'Exo 2',sans-serif;font-size:11px;font-weight:700;
  color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;
  text-align:center;
}
.fp-step-date{
  font-family:'DM Sans',sans-serif;font-size:10px;color:var(--text-hint);
  text-align:center;margin-top:-2px;
}
/* Étape DONE (passée) : fond navy + ✓ blanc */
.fp-step-done .fp-step-circle{ background:var(--navy);border-color:var(--navy);color:#fff; }
.fp-step-done .fp-step-label{ color:var(--navy); }
/* Étape ACTIVE (en cours) : fond gold + N navy */
.fp-step-active .fp-step-circle{ background:var(--gold);border-color:var(--gold);color:var(--navy); }
.fp-step-active .fp-step-label{ color:var(--navy);font-weight:800; }
/* Étape CLÔTURE (étape 4 atteinte) : fond vert pâle + ✓ vert */
.fp-step-cloture .fp-step-circle{ background:#e8f5e9;border-color:#2e7d32;color:#2e7d32; }
.fp-step-cloture .fp-step-label{ color:#2e7d32; }
/* Étape SÉLECTIONNÉE (visuel pour le tab actif sous le stepper) */
.fp-step-selected{ background:rgba(201,168,76,0.08);box-shadow:0 0 0 1.5px var(--gold) inset; }
/* Ligne entre étapes */
.fp-step-line{
  flex:1 1 auto;height:2px;background:#cbd5e1;margin-top:25px;min-width:24px;
}
.fp-step-line.fp-step-line-done{ background:var(--navy); }
.badge-presta-annulee  {background:#ffebee;color:#b71c1c;border:1px solid rgba(183,28,28,.3);}
.badge-presta-reportee {background:#fff3e0;color:#e65100;border:1px solid rgba(230,81,0,.3);}

/* ── Badges type prestation (badges F4/F3 réutilisent style.css l.152) ── */
.badge-type-f4,
.badge-type-f3       {background:var(--gold-bg);color:#7a5c10;border:1px solid var(--gold);}
.badge-type-patinoire{background:rgba(21,101,192,.1);color:#1565c0;border:1px solid rgba(21,101,192,.35);}
.badge-type-autre    {background:rgba(26,58,143,.06);color:var(--text-muted);border:1px solid var(--border);}

/* ── Badge paiement (acompte) — autres réutilisent badge-attente / badge-pret ── */
.badge-paiement-acompte{background:rgba(245,127,23,.12);color:#e65100;border:1px solid rgba(230,81,0,.3);}

/* ── Mini-badges dans la cellule N° prestation ───────────── */
.badge-mini{
  display:inline-block;
  padding:2px 6px;
  font-family:'DM Sans',sans-serif;
  font-size:9px;
  font-weight:700;
  border-radius:4px;
  margin-right:5px;
  text-transform:uppercase;
  letter-spacing:.5px;
  vertical-align:middle;
}
.badge-mini.badge-montage  {background:#1565c0;color:#fff;}
.badge-mini.badge-demontage{background:#e65100;color:#fff;}
.badge-mini.badge-reporte  {background:#fff3e0;color:#e65100;border:1px solid rgba(230,81,0,.3);}

/* ── Lignes spéciales du tableau ─────────────────────────── */
.row-presta-annulee   {background:#fff8f8;}
.row-presta-annulee td{color:var(--text-muted);}
/* Cellules texte d'une ligne prestation annulée — barrées (numéro + badges exclus) */
.fp-td-barre{ text-decoration:line-through; opacity:.6; }

/* ── Modale création — grille 4 cards ────────────────────── */
.presta-cards-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:14px;
}
.presta-card-type{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:12px;
  padding:18px 8px 14px;
  text-align:center;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
  user-select:none;
}
.presta-card-type:hover{
  border-color:var(--navy);
  background:var(--bg);
}
.presta-card-type.selected{
  border-color:var(--navy);
  background:var(--navy);
}
.presta-card-svg{
  display:flex;
  align-items:center;
  justify-content:center;
  height:48px;
  margin-bottom:8px;
}
.presta-card-svg svg{display:block;}
.presta-card-svg .svg-shape{fill:var(--navy);transition:fill .15s ease;}
.presta-card-type.selected .presta-card-svg .svg-shape{fill:var(--gold);}
.presta-card-svg .svg-text{
  font-family:'Exo 2',sans-serif;
  font-size:38px;          /* sans rognage latéral ; flocon Patinoire ajusté à la même hauteur via son viewBox */
  font-weight:800;
  fill:var(--navy);
  transition:fill .15s ease;
}
.presta-card-type.selected .presta-card-svg .svg-text{fill:var(--gold);}
.presta-card-label{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  color:var(--navy);
  transition:color .15s ease;
}
.presta-card-type.selected .presta-card-label{color:var(--gold);}

/* ── Encart toggle pyro (sous les 4 cards, conditionnel "Autre") ── */
.presta-toggle-pyro-wrap{
  background:var(--bg);
  border:1.5px solid var(--border);
  border-radius:10px;
  padding:12px 14px;
  margin:-6px 0 14px;
}
.presta-toggle-pyro-row{
  display:flex;
  align-items:center;
  gap:14px;
  cursor:pointer;
}
.presta-toggle-pyro-text{
  flex:1;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  font-weight:600;
  color:var(--navy);
}
.presta-toggle-pyro-sub{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-muted);
  font-style:italic;
  margin-top:2px;
  font-weight:400;
}

/* ── Recap-bar (variante avec 8 items) — séparateur entre items ── */
.recap-actions{margin-left:auto;}

/* ── Drag & drop des colonnes (en-têtes du tableau) ───────── */
#tbl-prestations thead th{position:relative;}
.presta-th-dragging{opacity:.4;}
.presta-th-drop-before::before,
.presta-th-drop-after::after{
  content:'';
  position:absolute;
  top:6%;
  bottom:6%;
  width:3px;
  background:var(--gold);
  border-radius:2px;
  z-index:5;
  pointer-events:none;
}
.presta-th-drop-before::before{left:-1px;}
.presta-th-drop-after::after  {right:-1px;}

/* ── Drag & drop des colonnes — tableau Carnet de bord ──
   Utilise .th-resize-handle natif (style.css) pour le séparateur blanc.
   Classes propres au carnet pour le drag (évite conflit avec .presta-th-*). */
#tbl-fv-carnet thead th{position:relative;}
.fv-carnet-th-dragging{opacity:.4;}
.fv-carnet-th-drop-before::before,
.fv-carnet-th-drop-after::after{
  content:'';
  position:absolute;
  top:6%;
  bottom:6%;
  width:3px;
  background:var(--gold);
  border-radius:2px;
  z-index:5;
  pointer-events:none;
}
.fv-carnet-th-drop-before::before{left:-1px;}
.fv-carnet-th-drop-after::after  {right:-1px;}
/* Surcharge "non-cliquable hover" pour les lignes qui ne sont pas des trajets cliquables :
   le hover navy-light global s'applique mais on garde le fond coloré spécifique au type. */
#tbl-fv-carnet tbody tr.carnet-row-anomalie td        { background:#fff5f5; }
#tbl-fv-carnet tbody tr.carnet-row-mise-maint td       { background:#fff3e0; }
#tbl-fv-carnet tbody tr.carnet-row-sortie-maint td     { background:#e8f5e9; }
#tbl-fv-carnet tbody tr.carnet-row-resolution td       { background:#e8f5e9; }
#tbl-fv-carnet tbody tr.carnet-row-anomalie:hover td,
#tbl-fv-carnet tbody tr.carnet-row-mise-maint:hover td,
#tbl-fv-carnet tbody tr.carnet-row-sortie-maint:hover td,
#tbl-fv-carnet tbody tr.carnet-row-resolution:hover td {
  background:var(--navy-light);
}
/* Pas de curseur pointer sur les lignes non cliquables */
#tbl-fv-carnet tbody tr{cursor:default;}

/* ── Drag & drop des colonnes — tableau Flotte Location (ERP-9 étape 4) ──
   Calque pattern Carnet : drag classes propres + .th-resize-handle natif
   (style.css) pour le séparateur blanc permanent. */
#tbl-fl-location thead th{position:relative;}
.fl-loc-th-dragging{opacity:.4;}
.fl-loc-th-drop-before::before,
.fl-loc-th-drop-after::after{
  content:'';
  position:absolute;
  top:6%;
  bottom:6%;
  width:3px;
  background:var(--gold);
  border-radius:2px;
  z-index:5;
  pointer-events:none;
}
.fl-loc-th-drop-before::before{left:-1px;}
.fl-loc-th-drop-after::after  {right:-1px;}

/* ════════════════════════════════════════════════════════════
   FICHE PRESTATION (ERP-3b)
   ════════════════════════════════════════════════════════════ */

/* ── Bandeau supérieur (calque Stock : #EEF2FB + filet gold) ── */
.fp-bandeau{
  background:#EEF2FB;
  border-bottom:3px solid #C9A84C;
  margin:-20px -24px 0 -24px;
  padding:12px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-shrink:0;
}
.fp-bandeau-left{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.fp-bandeau-sep{
  width:1px;
  height:44px;
  background:#c8d0e8;
  flex-shrink:0;
}
.fp-bandeau-titlewrap{min-width:0;}
.fp-bandeau-title{
  font-family:'Exo 2',sans-serif;
  font-size:20px;
  font-weight:800;
  color:var(--navy);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fp-bandeau-sub{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:3px;
}
.fp-bandeau-num{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  color:var(--text-muted);
}
.fp-bandeau-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* ── Barre navy des statuts ───────────────────────────────── */
.fp-barre-statuts{
  background:var(--navy);
  margin:0 -24px;
  padding:12px 20px;
  display:flex;
  align-items:center;
  gap:0;
  flex-wrap:wrap;
  flex-shrink:0;
}
.fp-stat-block{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:0 14px;
  min-width:0;
}
.fp-stat-block:first-child{padding-left:0;}
.fp-stat-label{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:rgba(255,255,255,0.55);
  text-transform:uppercase;
  letter-spacing:.6px;
}
.fp-stat-value{
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  font-weight:700;
  color:#fff;
  display:flex;
  align-items:center;
  gap:6px;
}
.fp-stat-sep{
  width:1px;
  height:36px;
  background:rgba(255,255,255,0.15);
  flex-shrink:0;
}

/* Bouton inline (statut création → En cours / Terminé) */
.fp-stat-inline-btn{
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.2);
  color:#fff;
  border-radius:6px;
  padding:3px 8px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:all .12s;
}
.fp-stat-inline-btn:hover{
  background:var(--gold);
  color:var(--navy);
  border-color:var(--gold);
}

/* ms-dropdown statut paiement dans la barre navy */
.ms-btn.fp-ms-paiement{
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.18);
  color:#fff;
  font-weight:700;
  padding:3px 9px;
  font-size:12px;
}
.ms-btn.fp-ms-paiement:hover{
  background:rgba(255,255,255,0.15);
  color:#fff;
}
.ms-btn.fp-ms-paiement svg{stroke:#fff;}

/* Alerte conflit adresse/clé console (Explo V1/X2) — non bloquante */
.fp-conflit-console-alert{
  grid-column:span 4;
  background:#ffebee;
  color:#b71c1c;
  border:1px solid rgba(183,28,28,0.30);
  border-radius:8px;
  padding:8px 12px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
}

/* Conflit chef de tir (badge ⚠) */
.fp-conflit-chef{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  background:var(--red);
  color:#fff;
  border-radius:50%;
  font-size:11px;
  font-weight:800;
  cursor:help;
}

/* ── Page Consoles de tir (ERP-3f) — pills modèle + ligne ANNULEE + conflit ─ */
#ct-modele-pills{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
}
.ct-pill{
  background:var(--bg);
  color:var(--text-muted);
  border:1px solid rgba(0,0,0,0.10);
  border-radius:14px;
  padding:4px 12px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  transition:all .15s ease;
}
.ct-pill:hover{
  background:rgba(0,0,0,0.04);
  color:var(--text);
}
.ct-pill.active{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
}

/* Annulée — barré rouge dans la table consoles uniquement (la liste prestations
   garde son style background-only via .row-presta-annulee) */
#tbl-consoles-tir .row-presta-annulee td{
  text-decoration:line-through;
  text-decoration-color:var(--red);
  text-decoration-thickness:2px;
  color:var(--text-muted);
}

/* Conflit adresse/clé sur même date — fond orange + bordure */
#tbl-consoles-tir .row-console-conflit > td{
  background:#fff3e0 !important;
}
#tbl-consoles-tir .row-console-conflit:hover > td{
  background:#ffe9cc !important;
}
.ct-conflit-icon{
  display:inline-block;
  color:#e65100;
  font-weight:800;
  margin-right:4px;
  cursor:help;
}

/* ── Pills onglets navy/gold ──────────────────────────────── */
.fp-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:14px 0 12px;
  flex-shrink:0;
}
.fp-tab{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:18px;
  padding:7px 14px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  color:var(--text-muted);
  cursor:pointer;
  transition:all .12s;
  text-transform:uppercase;
  letter-spacing:.4px;
  white-space:nowrap;
}
.fp-tab:hover{
  border-color:var(--navy);
  color:var(--navy);
}
.fp-tab.active{
  background:var(--navy);
  border-color:var(--navy);
  color:var(--gold);
}

/* ── Contenu d'onglet ─────────────────────────────────────── */
.fp-tab-content{flex:1;min-height:0;}

/* En-tête de card (titre + saved badge) */
.fp-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
}

/* ── Grille 4 colonnes (onglet 1) ─────────────────────────── */
.fp-grid-4col{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.fp-grid-4col .modal-field{margin-bottom:0;}
@media (max-width:1100px){
  .fp-grid-4col{grid-template-columns:repeat(2,1fr);}
}

/* ── Autocomplete (résultats client / chef de tir) ────────── */
.fp-autocomplete-results{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:8px;
  margin-top:4px;
  max-height:240px;
  overflow-y:auto;
  position:absolute;
  left:0;
  right:0;
  z-index:10;
  box-shadow:0 6px 20px rgba(10,20,60,.12);
}

/* ── Récap pills (onglet 1, bas) ──────────────────────────── */
.fp-recap-pills{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  overflow-x:auto;
}
.fp-pill-recap{
  border-radius:10px;
  padding:10px 12px;
  border:1.5px solid var(--border);
  background:var(--bg);
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  flex-shrink:0;
  flex:1 1 auto;
}
.fp-pill-recap-label{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.5px;
}
.fp-pill-recap-value{
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fp-pill-recap-empty{
  background:var(--bg);
  border-color:var(--border);
}
.fp-pill-recap-empty .fp-pill-recap-value{color:var(--text-hint);}
.fp-pill-recap-orange{
  background:var(--orange-bg);
  border-color:rgba(230,81,0,.3);
}
.fp-pill-recap-orange .fp-pill-recap-value{color:var(--orange);}
.fp-pill-recap-green{
  background:rgba(46,125,50,0.10);
  border-color:rgba(46,125,50,0.30);
}
.fp-pill-recap-green .fp-pill-recap-value{color:var(--green);}
.fp-pill-recap-info{
  background:#fff;
  border-color:var(--navy-light);
}
/* .client-result-item est défini dans style.css (l.651) — réutilisé tel quel. */

/* ── Field-blocks éditables (onglet 1 fiche prestation) ─────
   Override le style.css l.289 (fond #EEF2FB) → fond BLANC ici,
   bordure légère au repos, bordure gold au focus.
   Le fond #EEF2FB s'applique uniquement à la card contenante. */
.field-block{
  background:#fff;
  border:1.5px solid var(--border);
  transition:border-color .12s ease;
  position:relative;
}
.field-block.editing{
  border-color:var(--gold);
}
/* Card "INFORMATIONS GÉNÉRALES" : fond bleu clair pour faire ressortir
   les field-blocks blancs en contraste. */
.fp-card-tinted{background:var(--bg);}
.fp-fb-input,
.fp-fb-textarea,
.fp-fb-select{
  width:100%;
  border:none;
  background:transparent;
  outline:none;
  padding:0;
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  line-height:1.4;
}
.fp-fb-input::placeholder,
.fp-fb-textarea::placeholder{
  color:var(--text-hint);
  font-weight:400;
  font-style:italic;
}
.fp-fb-textarea{
  resize:vertical;
  min-height:48px;
  font-family:'DM Sans',sans-serif;
  font-weight:500;
}
/* Input date : retirer le décor par défaut, garder lisibilité */
.fp-fb-input[type=date]{
  font-family:'Exo 2',sans-serif;
  font-weight:700;
  cursor:pointer;
}

/* ms-dropdown stylé en field-block */
.ms-btn.ms-btn-fb{
  width:100%;
  background:transparent;
  border:none;
  padding:0;
  justify-content:space-between;
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
}
.ms-btn.ms-btn-fb:hover{
  color:var(--navy);
  background:transparent;
}
.ms-btn.ms-btn-fb svg{stroke:var(--navy);}
.ms-btn.ms-btn-fb.ms-active{
  background:transparent;
  color:var(--navy);
}

/* Toggle déclaration préfectorale dans un field-block */
.fp-fb-toggle-row{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
}
.fp-fb-toggle-text{
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  flex:1;
}

/* Ligne meta sous certains field-blocks (filtre F4, saisie libre) */
.fp-fb-meta{
  margin-top:6px;
  display:flex;
  align-items:center;
  gap:14px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-muted);
}
.fp-fb-meta a, .fp-fb-meta span.link{
  cursor:pointer;
  text-decoration:underline;
  color:var(--navy);
}

/* Ligne d'ajout date (patinoire) */
.fp-rep-row{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:4px;
}

/* Patinoire — Date + Heure dans un field-block (séparateur vertical, heure en gold) */
.fp-date-time-row{
  display:flex;
  align-items:center;
  gap:0;
}
.fp-dt-date{
  flex:2;
  color:var(--navy) !important;
}
.fp-dt-time{
  flex:1;
  color:var(--gold) !important;
}
.fp-dt-sep{
  width:1px;
  height:20px;
  background:var(--border);
  margin:0 10px;
  flex-shrink:0;
}

/* Encart méta sous le field-block Chef de tir
   (visible uniquement quand l'input chef de tir a le focus) */
.fp-cheftir-meta-card{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  margin-top:6px;
}

/* ── ms-item-check (filtres multi-select cumulables) ──────── */
.ms-item.ms-item-check{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.ms-item.ms-item-check input[type=checkbox]{
  margin:0;
  flex-shrink:0;
  cursor:pointer;
  pointer-events:none;  /* le clic est géré par le label parent (preventDefault sur input) */
}
.ms-item.ms-item-check span{
  flex:1;
  user-select:none;
}

/* ── Tri colonnes (header actif) ──────────────────────────── */
#tbl-prestations thead th.fp-th-tri-active,
#tbl-employes   thead th.fp-th-tri-active,
#tbl-dash-recap thead th.fp-th-tri-active{
  color:var(--gold);
  background:var(--navy-dark);
}

/* ── Lignes inactives (module Employés) ───────────────────── */
.row-emp-inactive    {background:#fafafa;}
.row-emp-inactive td {color:var(--text-muted);font-style:italic;}

/* ── Badges qualification pyrotechnique ───────────────────── */
/* Trois niveaux distincts, repris dans la liste, la fiche et
   l'autocomplete chef de tir des prestations. */
.badge-qualif-sans   {background:#f5f5f5;color:#757575;border:1px solid #ddd;}
.badge-qualif-f4t2n1 {background:#e8f5e9;color:#2e7d32;border:1px solid rgba(46,125,50,.3);font-weight:700;}
.badge-qualif-f4t2n2 {background:#fce4ec;color:#880e4f;border:1px solid rgba(136,14,79,.3);font-weight:700;}

/* ═══ Onglet 10 Équipe — refonte visuelle ═══════════════════ */
/* Wrapper de l'onglet : padding-bottom pour ne pas masquer le dernier
   membre derrière la recap-bar sticky. */
.fp-tab10-wrap{ padding-bottom:80px; }

/* Card chef (fond navy + badge top gold) ────────────────── */
.fp-tab10-row-chef{
  position:relative;
  background:var(--navy);
  color:#fff;
  border-radius:14px;
  padding:22px 22px 18px 22px;
  margin-bottom:14px;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:nowrap;
}
.fp-tab10-chef-badge-top{
  position:absolute;
  top:0;
  left:22px;
  background:var(--gold);
  color:var(--navy);
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  padding:4px 14px;
  border-radius:0 0 8px 8px;
}
.fp-tab10-row-chef .fp-tab10-avatar{
  width:56px;height:56px;border-radius:50%;
  background:var(--navy-dark);
  border:2px solid var(--gold);
  color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:'Exo 2',sans-serif;font-size:16px;font-weight:800;
  flex-shrink:0;
}
.fp-tab10-row-chef .fp-tab10-nom{
  font-family:'Exo 2',sans-serif;font-size:16px;font-weight:700;color:#fff;
  display:flex;align-items:center;gap:8px;margin-bottom:6px;
}
.fp-tab10-row-chef .fp-tab10-info{ width:200px;flex-shrink:0; }
.fp-tab10-row-chef .fp-tab10-bloc-label{ color:rgba(255,255,255,0.55); }
.fp-tab10-row-chef .fp-tab10-sep{ background:rgba(255,255,255,0.15); }
/* Spécificité avec #s-fiche-prestation pour battre l'override navy global (l.1069). */
#s-fiche-prestation .fp-tab10-row-chef .toggle-switch{ background:rgba(255,255,255,0.25); }
#s-fiche-prestation .fp-tab10-row-chef .toggle-switch.checked{ background:var(--gold); }
#s-fiche-prestation .fp-tab10-row-chef .toggle-switch.checked::after{ background:var(--navy); }
.fp-tab10-row-chef .fp-tab10-pill-presence{
  background:transparent;border:1.5px solid rgba(255,255,255,0.3);color:#fff;
}
.fp-tab10-row-chef .fp-tab10-pill-presence.active{
  background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:700;
}
.fp-tab10-row-chef .fp-tab10-btn-remove{ color:rgba(255,255,255,0.6); }
.fp-tab10-row-chef .fp-tab10-btn-remove:hover{ color:#fff; }

/* Card membre (fond blanc) ──────────────────────────────── */
.fp-tab10-row-membre{
  position:relative;
  background:#fff;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(26,58,143,0.08);
  padding:14px 18px;
  margin-bottom:10px;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:nowrap;
}
.fp-tab10-row-membre.is-inactive{ border:1.5px solid #ffe082; }
.fp-tab10-row-membre.is-cancelled{ opacity:.55;text-decoration:line-through;pointer-events:none; }
.fp-tab10-row-membre .fp-tab10-avatar{
  width:44px;height:44px;border-radius:50%;
  background:var(--navy);color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:'Exo 2',sans-serif;font-size:13px;font-weight:800;flex-shrink:0;
}
.fp-tab10-row-membre .fp-tab10-nom{
  font-family:'Exo 2',sans-serif;font-size:14px;font-weight:700;color:var(--navy);
  margin-bottom:4px;
}
.fp-tab10-row-membre .fp-tab10-info{ width:200px;flex-shrink:0; }
.fp-tab10-row-membre .fp-tab10-bloc-label{ color:var(--text-hint); }
.fp-tab10-row-membre .fp-tab10-sep{ background:var(--border); }
.fp-tab10-row-membre .fp-tab10-pill-presence{
  background:#fff;border:1.5px solid var(--border);color:var(--text-muted);
}
.fp-tab10-row-membre .fp-tab10-pill-presence.active{
  background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700;
}

/* Flash de surbrillance — carte membre/chef ciblée à l'ouverture depuis la
   fiche employé (clic sur une ligne de prestation). Anneau doré → transparent en 1s. */
@keyframes fpTab10Flash{
  0%   { box-shadow:0 0 0 3px rgba(201,168,76,0.90); }
  60%  { box-shadow:0 0 0 3px rgba(201,168,76,0.55); }
  100% { box-shadow:0 0 0 3px rgba(201,168,76,0); }
}
.fp-tab10-flash{ animation:fpTab10Flash 1s ease-out; }

/* Nom/prénom cliquable → ouvre la fiche employé.
   Cible uniquement le bloc nom — pas le reste de la card. */
.fp-tab10-nom.is-clickable{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:6px;
  transition:opacity .12s, text-decoration-color .12s;
}
.fp-tab10-nom.is-clickable:hover{
  text-decoration:underline;
  opacity:.85;
}

/* Rangée des badges (qualif + CHEF DE TIR + INACTIF) sous le nom ──── */
.fp-tab10-badges-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}

/* Éléments communs — largeurs FIXES pour aligner les séparateurs ──── */
.fp-tab10-bloc{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  width:70px;flex-shrink:0;
}
.fp-tab10-bloc-presence{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  width:220px;flex-shrink:0;
}
.fp-tab10-bloc-label{
  font-family:'Exo 2',sans-serif;font-size:9px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.8px;
}
.fp-tab10-sep{ width:1px;height:54px;flex-shrink:0; }
.fp-tab10-pills-presence{ display:flex;gap:6px;justify-content:center; }
.fp-tab10-pill-presence{
  border-radius:20px;padding:5px 12px;font-family:'DM Sans',sans-serif;
  font-size:11px;cursor:pointer;transition:all .12s;
  border-width:1.5px;border-style:solid;
  white-space:nowrap;
}
.fp-tab10-btn-remove{
  background:none;border:none;cursor:pointer;
  font-size:20px;line-height:1;padding:2px 8px;
  color:#ef9a9a;
  flex-shrink:0;
}
.fp-tab10-btn-remove:hover{ color:#c62828; }

/* Bloc commentaire (à droite du dernier séparateur, prend l'espace restant) */
.fp-tab10-bloc-commentaire{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  flex:1 1 0;
  min-width:0; /* indispensable pour que flex:1 fonctionne avec un input enfant */
}
.fp-tab10-input-commentaire{
  width:100%;
  border:1.5px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text);
  background:#fff;
  box-sizing:border-box;
}
.fp-tab10-row-chef .fp-tab10-input-commentaire{
  background:rgba(255,255,255,0.1);
  border-color:rgba(255,255,255,0.25);
  color:#fff;
}
.fp-tab10-row-chef .fp-tab10-input-commentaire::placeholder{ color:rgba(255,255,255,0.4); }
.fp-tab10-row-chef .fp-tab10-input-commentaire:focus{
  background:rgba(255,255,255,0.15);
  border-color:var(--gold);
  outline:none;
}
.fp-tab10-row-membre .fp-tab10-input-commentaire:focus{
  border-color:var(--navy);
  outline:none;
}

/* Recap-bar sticky en bas — UNIQUEMENT pour l'onglet 10 ──── */
.recap-bar.fp-tab10-recap-sticky{
  position:sticky;
  bottom:0;
  z-index:10;
  background:var(--navy);
  margin-top:14px;
  /* Un léger ombrage pour décoller visuellement du contenu qui peut passer dessous */
  box-shadow:0 -4px 12px rgba(10,20,60,0.18);
}

/* ═══ Onglet 9 — sous-onglets par date (refonte report) ═══════ */
.fp-tab10-sousonglets{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:14px;
}
.fp-tab10-sousonglet{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:16px;
  padding:6px 14px;
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--text-muted);
  cursor:pointer;
  transition:all .12s;
  white-space:nowrap;
}
.fp-tab10-sousonglet:hover{ border-color:var(--navy);color:var(--navy); }
.fp-tab10-sousonglet.active{
  background:var(--navy);
  border-color:var(--navy);
  color:var(--gold);
}
.fp-tab10-sousonglet.figee{
  font-style:italic;
  color:var(--text-hint);
}
/* Sous-onglet figé ACTIF : texte gold sur fond navy (lisible, comme la date
   courante active) — bat la couleur grise de .figee (spécificité supérieure). */
.fp-tab10-sousonglet.figee.active{ color:var(--gold); }
.fp-tab10-sousonglet.figee svg{ opacity:.7; }
.fp-tab10-sousonglet.figee.active svg{ opacity:1; }

/* Bannière "date figée" en tête de la vue lecture seule */
.fp-tab10-figee-banniere{
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#FFF3E0;
  border:1.5px solid rgba(230,81,0,.25);
  border-radius:12px;
  padding:12px 16px;
  margin-bottom:14px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:#8a4b00;
  line-height:1.45;
}
.fp-tab10-figee-banniere svg{ flex-shrink:0;margin-top:1px; }

/* Bloc date figée = carte membre RÉELLE (lecture seule) + strip rémunération */
.fp-tab10-figee-bloc{ margin-bottom:10px; }
.fp-tab10-figee-bloc.is-remu-active .fp-tab10-remu-strip{
  background:#FFE3CC;
  border-color:rgba(230,81,0,.45);
}

/* Strip "Rémunérer ce déplacement" — sous la carte membre figée */
.fp-tab10-remu-strip{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  padding:10px 16px;
  margin-top:4px;
  background:#FFF3E0;
  border:1.5px solid rgba(230,81,0,.22);
  border-radius:10px;
}
.fp-tab10-remu-strip-fields{
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
  flex:1 1 auto;
}
.fp-tab10-figee-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

/* Toggle orange "Rémunérer ce déplacement" */
.fp-tab10-remu-deplacement{
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  color:var(--text-muted);
  flex-shrink:0;
  user-select:none;
}
.fp-tab10-remu-deplacement.active{ color:#E65100; }
#s-fiche-prestation .fp-tab10-remu-deplacement .toggle-switch.checked{ background:#E65100; }
#s-fiche-prestation .fp-tab10-remu-deplacement .toggle-switch.checked::after{ background:#fff; }

/* Badge orange "X déplacements à rémunérer" dans la recap-bar */
.fp-tab10-badge-deplacements{
  background:#E65100;
  color:#fff;
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:5px 12px;
  border-radius:14px;
  white-space:nowrap;
}

/* Section header (Membres de l'équipe) ──────────────────── */
.fp-tab10-section-head{
  background:#fff;border-radius:14px;
  box-shadow:0 2px 8px rgba(26,58,143,0.08);
  padding:14px 18px;margin-bottom:10px;
}
.fp-tab10-section-title{
  font-family:'Exo 2',sans-serif;font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:1px;color:var(--text-hint);
}

/* Modale ajout membre — résultats scrollables ───────────── */
.fp-tab10-add-list-wrap{
  max-height:300px;overflow-y:auto;
  border:1.5px solid var(--border);border-radius:8px;background:#fff;
}
.fp-tab10-add-row{
  padding:8px 12px;border-bottom:1px solid var(--border-light);
  display:flex;align-items:center;gap:10px;
}
.fp-tab10-add-row:last-child{ border-bottom:none; }
.fp-tab10-add-row.disabled{ opacity:.5;cursor:not-allowed; }
.fp-tab10-add-row .fp-tab10-add-avatar{
  width:32px;height:32px;border-radius:50%;
  background:var(--navy);color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:'Exo 2',sans-serif;font-size:11px;font-weight:800;flex-shrink:0;
}
.fp-tab10-add-row img.fp-tab10-add-avatar{ background:none;border:1.5px solid var(--border);object-fit:cover; }

/* ── Field-block en lecture seule (Onglet 3 — bloc 1) ─────── */
.field-block.fp-fb-readonly{
  background:var(--bg);
  border-color:var(--border-light);
  cursor:default;
}
.field-block.fp-fb-readonly:hover,
.field-block.fp-fb-readonly.editing{
  border-color:var(--border-light);
}
.fp-fb-readonly-value{
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  line-height:1.4;
}

/* ── Onglet désactivé visuellement (Patinoire/Autre tab 2) ── */
.fp-tab.fp-tab-disabled{
  opacity:.55;
}
.fp-tab.fp-tab-disabled:hover{
  border-color:var(--border);
  color:var(--text-muted);
}

/* ── Onglet 2 — Field-block Poids unifié (Déclaré | Réel) ─── */
.fp-poids-block .fp-poids-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:6px;
}
.fp-poids-cell{
  display:flex;
  align-items:center;
  gap:6px;
  flex:1;
  min-width:0;
}
.fp-poids-cell-label{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--text-hint);
  text-transform:uppercase;
  letter-spacing:.5px;
}
.fp-poids-input{
  flex:1;
  min-width:0;
}
.fp-poids-unit{
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:600;
  color:var(--text-hint);
}
.fp-poids-sep{
  width:1px;
  align-self:stretch;
  background:var(--border-light);
  flex-shrink:0;
}
.fp-poids-real-value{
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  flex:1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fp-poids-real-ok .fp-poids-real-value{color:#2e7d32;}
.fp-poids-real-ok-label{color:#2e7d32;}
.fp-poids-real-check{
  display:inline-block;
  color:#2e7d32;
  font-weight:800;
  margin-right:2px;
}

/* ── Onglet 3 — Bloc Informations du site (2 colonnes) ────── */
.fp-site-info-card{
  background:var(--bg);
  border:1.5px solid var(--border);
  border-radius:10px;
  padding:14px 18px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.fp-site-info-left{
  min-width:0;
  flex:1;
}
.fp-site-info-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  flex-shrink:0;
}
.fp-site-libelle{
  font-family:'Exo 2',sans-serif;
  font-size:16px;
  font-weight:800;
  color:var(--navy);
  line-height:1.2;
  margin-bottom:6px;
}
.fp-site-adresse{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--text-muted);
  line-height:1.6;
}
.fp-site-gps{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-muted);
}
.fp-site-maps-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:6px;
  padding:5px 10px;
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:700;
  color:var(--navy);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.4px;
  cursor:pointer;
  transition:border-color .12s, color .12s;
}
.fp-site-maps-btn:hover{
  border-color:var(--navy);
  background:var(--navy-light);
}

/* ── Cards fiche client + fiche prestation : fond blanc + ombre douce ──
   Override le .card de style.css l.99 (border 1.5px var(--border)) en
   retirant la bordure et accentuant légèrement l'ombre.
   Exclusions :
     - .fp-budget-card-b   → bordure gold 2px conservée (Option B)
     - .fp-budget-pyro-card → fond navy/gold conservé (n'est pas .card)
     - .fp-logi-prestataire  → fond bg conservé (n'est pas .card)
     - .modal               → hors du scope #s-fiche-* */
#s-fiche-client .card,
#s-fiche-prestation .card{
  background:#fff;
  border:none;
  border-radius:14px;
  box-shadow:0 2px 8px rgba(26,58,143,0.08);
}
/* La card "Informations générales" et autres .fp-card-tinted dans la fiche
   prestation : on rétablit le fond blanc (annule l'ancien tint #eef2fb). */
#s-fiche-prestation .card.fp-card-tinted{
  background:#fff;
}

/* ── Toggle switch couleur navy au lieu de l'orange du Stock ──
   Override style.css l.195 (.toggle-switch.checked → background:#E65100)
   dans TOUS les écrans ERP. La couleur gold est conservée uniquement
   sur la card Chef de tir (fond navy) — règle plus spécifique l.1055. */
#s-fiche-client .toggle-switch.checked,
#s-fiche-prestation .toggle-switch.checked,
#s-clients .toggle-switch.checked,
#s-prestations .toggle-switch.checked,
#s-employes .toggle-switch.checked,
#s-fiche-employe .toggle-switch.checked,
#s-suivi-equipes .toggle-switch.checked,
#s-consoles-tir .toggle-switch.checked,
#s-disponibilites .toggle-switch.checked,
#s-fiche-dispo .toggle-switch.checked,
#s-flotte .toggle-switch.checked,
#s-fiche-vehicule .toggle-switch.checked,
#s-parametres .toggle-switch.checked,
.modal-overlay .toggle-switch.checked{
  background:var(--navy);
}

/* ── Boutons d'action header fiche véhicule (ERP-9 Étape 3) ────────
   28×28px avec bordure légère, gris neutre par défaut.
   Variants : -maint (orange au hover/active), -danger (rouge au hover),
   -success (vert au hover, pour réactivation). */
#s-fiche-vehicule .fv-action-btn{
  width:28px;
  height:28px;
  border-radius:6px;
  background:#fff;
  border:1.5px solid var(--border);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-shrink:0;
  color:var(--text-muted);
  padding:0;
  transition:border-color .12s, color .12s, background .12s;
}
#s-fiche-vehicule .fv-action-btn:disabled{
  opacity:.4;
  cursor:not-allowed;
}
#s-fiche-vehicule .fv-action-btn:hover:not(:disabled){
  border-color:var(--navy);
  color:var(--navy);
}
#s-fiche-vehicule .fv-action-btn-maint:hover:not(:disabled),
#s-fiche-vehicule .fv-action-btn-maint.active{
  border-color:var(--orange);
  color:var(--orange);
  background:var(--orange-bg);
}
/* Bouton clé en mode "véhicule actuellement en maintenance — prêt à sortir" :
   teinte verte pour signaler que cliquer remet en service.
   (Q4 utilisateur — corr maintenance) */
#s-fiche-vehicule .fv-action-btn-maint.success{
  border-color:var(--green);
  color:var(--green);
  background:var(--green-bg);
}
#s-fiche-vehicule .fv-action-btn-maint.success:hover:not(:disabled){
  border-color:var(--green);
  color:#fff;
  background:var(--green);
}
#s-fiche-vehicule .fv-action-btn-danger:hover:not(:disabled){
  border-color:var(--red);
  color:var(--red);
  background:var(--red-bg);
}
#s-fiche-vehicule .fv-action-btn-success:hover:not(:disabled){
  border-color:var(--green);
  color:var(--green);
  background:var(--green-bg);
}

/* ── Modales avec ms-dropdown : ms-panel ne doit pas être clippé ──
   La .modal a overflow-y:auto (style.css l.367), ce qui clippe les
   .ms-panel (position:absolute). On désactive overflow uniquement sur
   les modales courtes (qui tiennent dans 90vh) — les modales longues
   (modal-new-dispo, modal-new-campagne) gardent le scroll + sticky footer. */
#modal-fp-tab10-add > .modal,
#modal-new-employe > .modal{
  overflow: visible;
}
#modal-fp-tab10-add .ms-panel,
#modal-new-employe .ms-panel,
#modal-new-dispo .ms-panel,
#modal-new-campagne .ms-panel{
  z-index: 800;
}

/* ─────────────────────────────────────────────────────────────────────────
   Modale "Voir disponibles à cette date" (onglet 9 Équipe) — refonte
   Layout flex column : header fixe + filtres fixes + tableau scrollable
   + récap-bar sticky en bas. Largeur 700px, hauteur max 80vh.
───────────────────────────────────────────────────────────────────────── */
#modal-fp-tab10-dispos > .modal.fp-tab10-dispo-modal{
  max-width:700px;
  width:96%;
  max-height:80vh;
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.fp-tab10-dispo-head{
  background:var(--navy-dark);
  border-bottom:3px solid var(--gold);
  padding:14px 20px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.fp-tab10-dispo-title{
  font-family:'Exo 2',sans-serif;
  font-size:17px;
  font-weight:700;
  color:#fff;
  flex:1;
  min-width:0;
}
.fp-tab10-dispo-count-badge{
  background:var(--gold);
  color:var(--navy-dark);
  border-radius:10px;
  padding:2px 10px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:800;
  min-width:24px;
  text-align:center;
  flex-shrink:0;
}
.fp-tab10-dispo-label{
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:700;
  color:rgba(255,255,255,0.5);
  text-transform:uppercase;
  letter-spacing:.8px;
  flex-shrink:0;
}
.fp-tab10-dispo-filters{
  padding:12px 20px;
  background:var(--bg);
  border-bottom:1.5px solid var(--border);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  flex-shrink:0;
}
.fp-tab10-dispo-filt{
  width:auto;
  min-width:160px;
  padding:8px 12px;
  font-size:12px;
}
.fp-tab10-dispo-tbl-wrap{
  flex:1;
  overflow-y:auto;
  background:#fff;
  min-height:160px;
}
.fp-tab10-dispo-tbl{
  width:100%;
  border-collapse:collapse;
}
.fp-tab10-dispo-tbl thead tr{
  background:var(--navy);
  position:sticky;
  top:0;
  z-index:5;
}
.fp-tab10-dispo-tbl thead th{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.8px;
  padding:10px 14px;
  text-align:left;
  white-space:nowrap;
}
.fp-tab10-dispo-tbl tbody tr{
  border-bottom:1px solid var(--border-light);
  transition:background .1s;
}
.fp-tab10-dispo-tbl tbody tr:nth-child(even){ background:#f8f9fe; }
.fp-tab10-dispo-tbl tbody tr:hover{ background:var(--navy-light); }
.fp-tab10-dispo-tbl tbody td{
  padding:9px 14px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text);
  vertical-align:middle;
}
.fp-tab10-dispo-avatar{
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--navy-light);
  color:var(--navy);
  border:1.5px solid var(--border);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:800;
  flex-shrink:0;
  margin-right:10px;
  vertical-align:middle;
}
.fp-tab10-dispo-namecell{
  display:inline-flex;
  align-items:center;
  font-family:'Exo 2',sans-serif;
  font-weight:700;
  color:var(--navy);
}
.fp-tab10-dispo-qualif{
  display:inline-block;
  background:var(--navy);
  color:#fff;
  border-radius:6px;
  padding:2px 8px;
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.4px;
}
.fp-tab10-dispo-qualif.sans{
  background:#9AA5BF;
}
.fp-tab10-dispo-stat{
  display:inline-flex;
  align-items:center;
  gap:5px;
  border-radius:8px;
  padding:3px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:700;
  border:1px solid;
}
.fp-tab10-dispo-stat.journee{
  background:var(--green-bg);
  color:var(--green);
  border-color:rgba(46,125,50,0.4);
}
.fp-tab10-dispo-stat.matin{
  background:var(--orange-bg);
  color:var(--orange);
  border-color:rgba(230,81,0,0.4);
}
.fp-tab10-dispo-stat.aprem{
  background:#E3F2FD;
  color:#1565C0;
  border-color:rgba(21,101,192,0.4);
}
/* Ligne grisée quand l'employé est déjà sur une autre prestation ce jour-là */
.fp-tab10-dispo-tbl tbody tr.fp-tab10-dispo-row-conflit td{
  opacity:0.55;
}
.fp-tab10-dispo-tbl tbody tr.fp-tab10-dispo-row-conflit td:last-child{
  opacity:1;
}
/* Badge rouge "Déjà sur autre presta" — alerte visuelle forte */
.fp-tab10-dispo-conflit-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:var(--red-bg);
  color:var(--red);
  border:1.5px solid rgba(198,40,40,0.45);
  border-radius:8px;
  padding:3px 9px;
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.3px;
  cursor:help;
  white-space:nowrap;
}
.fp-tab10-dispo-recap{
  margin:0;
  border-radius:0;
  flex-shrink:0;
}
.fp-tab10-dispo-close{
  background:rgba(255,255,255,0.1);
  border-color:rgba(255,255,255,0.25);
  color:#fff;
}
.fp-tab10-dispo-close:hover{
  background:#fff;
  color:var(--navy);
  border-color:#fff;
}

/* ── Modales longues "Nouveau formulaire" + "Nouvelle campagne" + "Groupes"
   Contenu volumineux : on conserve l'overflow-y:auto par défaut et on
   colle le footer .modal-actions en bas pour qu'il reste accessible. */
#modal-new-dispo > .modal,
#modal-new-campagne > .modal,
#modal-groupes-dispo > .modal{
  /* default OK : max-height:90vh ; overflow-y:auto */
  padding-bottom:0;        /* le footer sticky prend son propre padding */
}
#modal-new-dispo .modal-actions,
#modal-new-campagne .modal-actions,
#modal-groupes-dispo .modal-actions{
  position:sticky;
  bottom:0;
  background:#fff;
  margin:20px -30px 0;
  padding:14px 30px;
  border-top:1.5px solid var(--border);
  z-index:5;
}
#modal-groupes-dispo .ms-panel{ z-index:800; }

/* ── Lignes de la liste des groupes (vue liste de la modale Groupes) ──── */
.grp-row{
  display:flex;align-items:center;gap:12px;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:10px;
  padding:10px 14px;
  margin-bottom:8px;
  transition:border-color .12s;
}
.grp-row:hover{ border-color:var(--navy); }
.grp-row-name{
  flex:1;min-width:0;
  font-family:'Exo 2',sans-serif;font-weight:700;font-size:14px;
  color:var(--navy);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.grp-row-count{
  font-family:'DM Sans',sans-serif;font-size:11px;
  color:var(--text-muted);
  background:var(--bg);
  border-radius:6px;
  padding:3px 8px;
  white-space:nowrap;
}
.grp-row-actions{
  display:inline-flex;gap:6px;flex-shrink:0;
}

/* ── Calendrier campagne (modale "Créer une campagne") ──────────────────
   Compact : largeur limitée + cellules ~40px (au lieu de remplir 600px). */
.dispo-cal-wrap{
  background:var(--bg);
  border:1.5px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
  max-width:340px;
  margin:0 auto;
}
.dispo-cal-nav{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:8px;
}
.dispo-cal-nav-btn{
  width:28px;height:28px;border-radius:7px;
  background:#fff;border:1.5px solid var(--border);
  color:var(--navy);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .12s;-webkit-tap-highlight-color:transparent;
}
.dispo-cal-nav-btn:hover{ background:var(--navy);color:var(--gold);border-color:var(--navy); }
.dispo-cal-month{
  font-family:'Exo 2',sans-serif;font-weight:800;font-size:13px;
  color:var(--navy);text-transform:uppercase;letter-spacing:.4px;
}
.dispo-cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:3px;
}
.dispo-cal-weekdays{
  margin-bottom:4px;
}
.dispo-cal-weekdays > div{
  text-align:center;
  font-family:'DM Sans',sans-serif;font-size:9px;font-weight:700;
  color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;
  padding:2px 0;
}
.dispo-cal-cell{
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  font-family:'Exo 2',sans-serif;font-size:12px;font-weight:600;
  border-radius:6px;
  cursor:pointer;
  background:#fff;
  border:1.5px solid var(--border-light);
  color:var(--navy);
  transition:all .1s;
  user-select:none;-webkit-tap-highlight-color:transparent;
}
.dispo-cal-cell:hover{ border-color:var(--navy); }
.dispo-cal-cell.empty{
  cursor:default;border-color:transparent;background:transparent;
}
.dispo-cal-cell.empty:hover{ border-color:transparent; }
.dispo-cal-cell.other-month{
  color:var(--text-hint);background:transparent;border-color:transparent;
  font-weight:500;
}
.dispo-cal-cell.other-month:hover{ background:var(--border-light); }
.dispo-cal-cell.today{
  border-color:var(--gold);
  font-weight:800;
}
.dispo-cal-cell.selected{
  background:var(--navy);color:var(--gold);
  border-color:var(--navy);
  box-shadow:0 2px 6px rgba(26,58,143,0.25);
}
.dispo-cal-cell.selected:hover{ background:var(--navy-dark); }
.dispo-cal-cell.conflict{
  background:repeating-linear-gradient(45deg, rgba(230,81,0,0.15), rgba(230,81,0,0.15) 4px, transparent 4px, transparent 8px);
  border-color:rgba(230,81,0,0.4);
  color:var(--orange);
  cursor:not-allowed;
}
.dispo-cal-cell.conflict::after{
  content:'';
}
.dispo-cal-range-helper{
  margin-top:10px;
  background:var(--gold-bg);
  border:1.5px solid var(--gold);
  border-radius:10px;
  padding:12px;
}

/* ── Colonne "IP" du tableau fiche-dispo : visible admin uniquement ─────
   Le th et les td portent .dispo-col-ip ; la colonne n'est révélée que
   si la table parent reçoit la classe .show-ip (toggle JS selon role). */
#tbl-fd-reponses .dispo-col-ip{ display:none; }
#tbl-fd-reponses.show-ip .dispo-col-ip{ display:table-cell; }

/* ── Boutons radio modale "Saisie manuelle" (ERP-8) ──────────────────────
   Look bouton secondaire compact ; quand sélectionné → fond navy + or. */
.msm-radio{
  background:#fff;color:var(--navy);border:1.5px solid var(--border);
  border-radius:10px;padding:10px 14px;
  font-family:'Exo 2',sans-serif;font-weight:700;font-size:12px;
  cursor:pointer;display:flex;align-items:center;gap:8px;justify-content:center;
  transition:all .12s;text-transform:uppercase;letter-spacing:.5px;
}
.msm-radio:hover{ border-color:var(--navy); }
.msm-radio.selected{
  background:var(--navy);color:var(--gold);border-color:var(--navy);
}

/* ── Onglet 4 — Budget : lignes extensibles (CSS Grid pour alignement strict) ── */
.fp-budget-ligne{
  display:grid;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
}
/* Annexe / Location : description | montant | coeff | total | bouton */
.fp-budget-ligne.fp-budget-ligne-full{
  grid-template-columns:3fr 1.5fr 0.8fr 1.2fr 32px;
}
/* Simplifiées : description | montant | bouton */
.fp-budget-ligne.fp-budget-ligne-simple{
  grid-template-columns:3fr 1.5fr 32px;
}
/* Header de tableau au-dessus des lignes : pas de fond, juste labels en texte */
.fp-budget-ligne.fp-budget-headers{
  background:transparent;
  padding:0;
  margin-bottom:4px;
}
/* Inputs et cellules totaux : prennent toute la largeur de leur colonne grid */
.fp-budget-ligne > input,
.fp-budget-ligne > .fp-budget-ligne-total{
  width:100%;
  min-width:0;
}
.fp-bh-cell{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--text-hint);
  text-transform:uppercase;
  letter-spacing:.8px;
}
/* Cellule "Total ligne" calculée (readonly) */
.fp-budget-ligne-total{
  user-select:none;
  cursor:default;
}

/* ── Bandeau Budget global (navy avec 2 inputs + flèche) ───── */
.fp-budget-global-bandeau{
  background:var(--navy);
  border-radius:14px;
  padding:18px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:14px;
}
.fp-bg-block{
  flex:1;
  min-width:0;
}
.fp-bg-label{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:rgba(255,255,255,0.5);
  text-transform:uppercase;
  letter-spacing:.8px;
  margin-bottom:6px;
}
.fp-bg-input{
  width:100%;
  background:rgba(255,255,255,0.10);
  border:1.5px solid rgba(255,255,255,0.20);
  border-radius:8px;
  padding:8px 12px;
  font-family:'Exo 2',sans-serif;
  font-size:16px;
  font-weight:700;
  color:#fff;
  outline:none;
  transition:border-color .15s ease, background .15s ease;
}
.fp-bg-input:focus{
  border-color:var(--gold);
  background:rgba(255,255,255,0.15);
}
.fp-bg-input.fp-bg-input-gold{
  color:var(--gold);
}
.fp-bg-input::placeholder{color:rgba(255,255,255,0.30);}
.fp-bg-arrow{
  font-size:20px;
  color:rgba(255,255,255,0.30);
  flex-shrink:0;
  user-select:none;
  font-weight:300;
}

/* ── Option A — Card Budget pyrotechnique (navy/gold centrée) ── */
.fp-budget-pyro-card{
  background:var(--navy);
  border-radius:12px;
  padding:22px 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.fp-budget-pyro-formula{
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  color:rgba(255,255,255,0.45);
  letter-spacing:.3px;
}
.fp-budget-pyro-amount{
  font-family:'Exo 2',sans-serif;
  font-size:30px;
  font-weight:800;
  color:var(--gold);
  line-height:1;
}
.fp-budget-pyro-label{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.8px;
  opacity:.75;
}

/* ── Option B — Cards Coeff/Budgets produits/réel (white/gold) ── */
.fp-budget-cards-b-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  margin-bottom:14px;
}
@media (max-width:900px){
  .fp-budget-cards-b-grid{grid-template-columns:1fr;}
}
.fp-budget-card-b{
  background:#fff;
  border:2px solid var(--gold);
  border-radius:12px;
  padding:16px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.fp-budget-card-left{
  flex:1;
  min-width:0;
}
.fp-budget-card-label{
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:700;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.8px;
  margin-bottom:4px;
}
.fp-budget-card-formula{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-muted);
  margin-bottom:2px;
}
.fp-budget-card-hint{
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  color:var(--text-hint);
  font-style:italic;
}
.fp-budget-card-right{
  flex-shrink:0;
}
.fp-budget-card-value-input,
.fp-budget-card-value-readonly{
  font-family:'Exo 2',sans-serif;
  font-size:20px;
  font-weight:800;
  color:var(--navy);
  text-align:right;
  white-space:nowrap;
}
.fp-budget-card-value-input{
  border:none;
  outline:none;
  background:transparent;
  width:200px;
  padding:0;
}
.fp-budget-card-value-input::placeholder{color:var(--text-hint);font-weight:400;}
.fp-budget-card-value-blue{color:#0d47a1;}
.fp-budget-card-value-gold{color:var(--gold);}

/* ════════════════════════════════════════════════════════════
   ONGLET 5 — LOGISTIQUE
   ════════════════════════════════════════════════════════════ */

/* Header de section (titre + toggle Nécessaire) */
.fp-logi-section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}
.fp-logi-section-title{flex:1;min-width:0;}
.fp-logi-section-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.fp-logi-empty{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-hint);
  font-style:italic;
  padding:6px 0;
}
.fp-logi-custom-title{
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--navy);
  text-transform:uppercase;
  letter-spacing:1.2px;
  border:1px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  background:#fff;
  width:100%;
}

/* Bloc prestataire individuel — fond bg + bordure légère pour ressortir sur la card blanche */
.fp-logi-prestataire{
  background:var(--bg);
  border:1px solid rgba(26,58,143,0.15);
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:10px;
}
.fp-logi-presta-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
}
.fp-logi-presta-num{
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:700;
  color:var(--text-hint);
  text-transform:uppercase;
  letter-spacing:.8px;
}

/* Grille 2 colonnes pour les prestataires */
.fp-grid-2col{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
@media (max-width:700px){
  .fp-grid-2col{grid-template-columns:1fr;}
}

/* Alertes prestataire (5 niveaux) */
.fp-logi-alert{
  display:flex;
  align-items:center;
  gap:6px;
  padding:7px 12px;
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  margin-bottom:8px;
  border:1px solid;
}
.fp-logi-alert-green{
  background:rgba(46,125,50,0.10);
  color:#1b5e20;
  border-color:rgba(46,125,50,0.30);
}
.fp-logi-alert-red{
  background:#ffebee;
  color:#b71c1c;
  border-color:rgba(183,28,28,0.40);
}
.fp-logi-alert-orange{
  background:var(--orange-bg);
  color:var(--orange);
  border-color:rgba(230,81,0,0.35);
}
.fp-logi-alert-orange2{
  background:#fff3e0;
  color:#e65100;
  border-color:rgba(230,81,0,0.25);
}
.fp-logi-alert-yellow{
  background:#fff8e1;
  color:#f57f17;
  border-color:rgba(245,127,23,0.30);
}
.fp-logi-alert-neutral{
  background:var(--navy-light);
  color:var(--navy);
  border-color:rgba(26,58,143,0.20);
}

/* Checkbox bon de réservation — legacy (conservée au cas où un autre flow l'utilise) */
.fp-logi-checkbox-row{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--text);
  user-select:none;
}
.fp-logi-checkbox-row input[type=checkbox]{
  cursor:pointer;
  flex-shrink:0;
}

/* ─── Bon de réservation — upload inline (remplace l'ancienne checkbox) ─── */
/* État "pas encore joint" : bouton compact + hint texte */
.fp-logi-bon-empty{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.fp-logi-bon-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  height:30px;
  background:#fff;
  border:1.5px dashed var(--border, #dce5f5);
  border-radius:7px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  color:var(--navy);
  cursor:pointer;
  transition:all .12s;
}
.fp-logi-bon-btn:hover{
  background:var(--bg, #EEF2FB);
  border-style:solid;
  border-color:var(--navy);
}
.fp-logi-bon-hint{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-hint);
  font-style:italic;
}

/* État "fichier joint" : chip avec icône + nom cliquable + bouton × */
.fp-logi-bon-joint{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:5px 10px;
  background:rgba(46,125,50,0.08);
  border:1px solid rgba(46,125,50,0.30);
  border-radius:7px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  max-width:100%;
}
.fp-logi-bon-link{
  font-weight:600;
  color:var(--navy);
  text-decoration:none;
  max-width:280px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.fp-logi-bon-link:hover{ text-decoration:underline; }
.fp-logi-bon-del{
  width:22px;
  height:22px;
  border-radius:50%;
  border:none;
  background:rgba(198,40,40,0.10);
  color:#c62828;
  font-size:14px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background .12s;
  flex-shrink:0;
  padding:0;
}
.fp-logi-bon-del:hover{ background:rgba(198,40,40,0.22); }

/* ── Field-block Client / Mission interne (type Autre) ────── */
.fp-client-fb-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.fp-client-fb-badge{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--text-hint);
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:4px;
  padding:2px 6px;
  text-transform:uppercase;
  letter-spacing:.5px;
  cursor:pointer;
  user-select:none;
  transition:border-color .12s, color .12s;
}
.fp-client-fb-badge:hover{
  border-color:var(--navy);
  color:var(--navy);
}
.field-block.fp-client-mi-on{
  background:#f0f4ff;
  border-color:var(--navy);
}
.field-block.fp-client-mi-on.editing{
  border-color:var(--gold);
}
.fp-mi-back-link{
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:600;
  color:var(--text-muted);
  text-decoration:underline;
  cursor:pointer;
  user-select:none;
}
.fp-mi-back-link:hover{
  color:var(--navy);
}
.fp-mi-validated-badge{
  display:inline-block;
  margin-top:8px;
  background:var(--navy);
  color:var(--gold);
  border:1px solid var(--navy);
  border-radius:4px;
  padding:3px 8px;
  font-family:'Exo 2',sans-serif;
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
}

/* ── Tags dates isolées (filtre période + bouton "+") ─────── */
#presta-date-tags .tag-item{
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:var(--gold-bg);
  border:1.5px solid var(--gold);
  border-radius:14px;
  padding:2px 4px 2px 10px;
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:700;
  color:#7a5c10;
}
#presta-date-tags .tag-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border-radius:50%;
  background:rgba(122,92,16,0.15);
  cursor:pointer;
  font-size:13px;
  line-height:1;
  user-select:none;
}
#presta-date-tags .tag-close:hover{
  background:var(--red);
  color:#fff;
}

/* ─────────────────────────────────────────────────────────────────
   ERP-3g — Onglet 8 Atelier / Création
   ───────────────────────────────────────────────────────────────── */

/* Badge statutAtelier === EN_ATTENTE → rouge alerte (le Stock doit agir) */
.badge-atelier-attente{
  background:#ffebee;
  color:#c62828;
  border:1.5px solid #ef9a9a;
}

/* Mention "Géré par le Stock" — discrète à droite du badge */
.fp-tab8-mention-stock{
  display:inline-block;
  margin-left:10px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-style:italic;
  color:var(--text-hint);
}

/* Bouton "Notifier l'atelier" — accent gold pour signaler l'action attendue */
.fp-tab8-btn-notifier{
  background:var(--gold);
  color:var(--navy);
  border:none;
  border-radius:8px;
  padding:8px 16px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  transition:filter .15s ease;
}
.fp-tab8-btn-notifier:hover{filter:brightness(1.05);}

/* Layout commun blocs 1 & 2 — statut actuel à gauche, actions à droite */
.fp-tab8-statut-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.fp-tab8-statut-current{display:flex;flex-direction:column;gap:6px;}
.fp-tab8-statut-label{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:600;
  color:var(--text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.fp-tab8-statut-value{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
}
.fp-tab8-statut-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* Checklist 6 items */
.fp-tab8-cl-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:14px;
}
.fp-tab8-cl-row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:8px 10px;
  background:#fff;
  border:1px solid rgba(0,0,0,0.06);
  border-radius:8px;
}
.fp-tab8-cl-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  flex:0 0 auto;
  min-width:240px;
}
.fp-tab8-cl-label{
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text);
  font-weight:500;
}
.fp-tab8-cl-comment{flex:1;min-width:200px;}

/* Barre de progression */
.fp-tab8-progress-wrap{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px 4px 0;
}
.fp-tab8-progress-bar{
  width:100%;
  height:8px;
  background:rgba(0,0,0,0.06);
  border-radius:6px;
  overflow:hidden;
}
.fp-tab8-progress-fill{
  height:100%;
  background:var(--navy);
  transition:width .25s ease;
}
.fp-tab8-progress-fill.complete{background:var(--green);}
.fp-tab8-progress-text{
  display:flex;
  align-items:center;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--text-muted);
}

/* ═══ Page Paramètres — bascule onglets ════════════════════════
   Réutilise .fp-tabs / .fp-tab du pattern fiches (style-erp.css §707).
   Un seul .param-pane visible à la fois (toggle via _paramSetActiveTab). */
.param-pane{ display:none; }
.param-pane.active{ display:block; }

/* ═══ Page Paramètres — onglet Listes & types ════════════════════════
   Widget générique d'édition de liste (param-liste) + grilles d'affichage. */

.param-listes-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 22px;
  margin-bottom:6px;
}
@media (max-width:900px){
  .param-listes-grid{ grid-template-columns:1fr; }
}

.param-titres-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px 22px;
  margin-bottom:6px;
}
@media (max-width:900px){
  .param-titres-grid{ grid-template-columns:1fr; }
}

.param-liste-block{ min-width:0; }

.param-titres-subtitle{
  font-family:'Exo 2',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:var(--navy);
  margin-bottom:6px;
}

.param-liste{
  background:var(--bg);
  border:1px solid var(--border-light);
  border-radius:8px;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.param-liste-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  background:#fff;
  border:1px solid var(--border-light);
  border-radius:6px;
  padding:6px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;
  color:var(--text);
}

.param-liste-label{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.param-liste-actions{
  display:flex;
  align-items:center;
  gap:3px;
  flex-shrink:0;
}

.param-liste-btn-icon{
  background:#fff;
  border:1px solid var(--border);
  border-radius:5px;
  width:24px;
  height:24px;
  padding:0;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  font-weight:700;
  line-height:1;
  color:var(--text-muted);
  cursor:pointer;
  transition:all .12s;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.param-liste-btn-icon:hover:not(:disabled){
  border-color:var(--navy);
  color:var(--navy);
  background:var(--bg);
}
.param-liste-btn-icon:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.param-liste-btn-del{
  font-size:16px;
  color:#c62828;
}
.param-liste-btn-del:hover:not(:disabled){
  background:#ffebee;
  border-color:#c62828;
  color:#b71c1c;
}

.param-liste-add{
  display:flex;
  gap:6px;
  margin-top:4px;
  padding-top:8px;
  border-top:1px dashed var(--border);
}

.param-liste-input{
  flex:1;
  min-width:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;
  color:var(--text);
  outline:none;
}
.param-liste-input:focus{ border-color:var(--navy); }

.param-liste-add-btn{
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
  border-radius:6px;
  padding:6px 12px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
  transition:all .12s;
}
.param-liste-add-btn:hover{ background:#0f2440; }

.param-liste-warning{
  margin-top:14px;
  padding:10px 14px;
  background:#fff8e1;
  border:1px solid #ffecb3;
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:#7a5c00;
  line-height:1.5;
}

/* ═══ Page Paramètres — onglet Alertes ════════════════════════════════
   Widgets : paliers colorés (douce/moyenne/forte/critique/bloquant), inputs
   simples, flags jX, toggles. */

.param-paliers-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px 22px;
}
@media (max-width:900px){
  .param-paliers-grid{ grid-template-columns:1fr; }
}

.param-paliers-block{ min-width:0; }

.param-paliers{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:4px;
}

.param-palier-row{
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--bg);
  border:1px solid var(--border-light);
  border-radius:8px;
  padding:8px 12px;
}

.param-palier-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  flex-shrink:0;
  box-shadow:0 0 0 2px #fff, 0 0 0 3px rgba(0,0,0,.06);
}
.param-palier-dot.douce   { background:#42a5f5; }
.param-palier-dot.moyenne { background:#fbc02d; }
.param-palier-dot.forte   { background:#fb8c00; }
.param-palier-dot.critique{ background:#e53935; }
.param-palier-dot.bloquant{ background:#e53935; }

.param-palier-name{
  flex:1;
  min-width:0;
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;
  font-weight:600;
  color:var(--text);
}

.param-palier-input{
  width:80px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;
  color:var(--text);
  outline:none;
  text-align:right;
}
.param-palier-input:focus{ border-color:var(--navy); }

.param-palier-suffix{
  font-family:'DM Sans',sans-serif;
  font-size:11.5px;
  color:var(--text-muted);
  white-space:nowrap;
  min-width:90px;
}

.param-palier-hint{
  margin-top:8px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-hint);
  font-style:italic;
  line-height:1.5;
}

/* Champ simple (label + input + suffixe sur une ligne) */
.param-simple-field{ margin-bottom:12px; }
.param-simple-field:last-child{ margin-bottom:0; }

.param-simple-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:4px;
}

/* Rangée de 4 paliers en jours (logistique) */
.param-logi-row{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
  margin-top:4px;
}
@media (max-width:700px){
  .param-logi-row{ grid-template-columns:repeat(2, 1fr); }
}

.param-logi-cell{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  background:var(--bg);
  border:1px solid var(--border-light);
  border-radius:8px;
  padding:8px 12px;
}

.param-logi-cell-label{
  font-family:'Exo 2',sans-serif;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:var(--navy);
}

.param-logi-cell .param-palier-input{ width:100%; }

/* Flags jX (chips cliquables) */
.param-flags-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:4px;
}

.param-flag{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:18px;
  padding:7px 16px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.4px;
  color:var(--text-muted);
  cursor:pointer;
  transition:all .12s;
  text-transform:uppercase;
  white-space:nowrap;
}
.param-flag:hover{
  border-color:var(--navy);
  color:var(--navy);
}
.param-flag.on{
  background:var(--navy);
  border-color:var(--navy);
  color:var(--gold);
}

/* Bloc grisé visuellement quand le toggle activation est OFF (préf F3) */
.param-flags-row.param-flags-disabled{
  opacity:.4;
  pointer-events:none;
}

/* Toggles avec libellé + hint sur la droite */
.param-toggles-row{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px 22px;
  margin-top:18px;
}
@media (max-width:900px){
  .param-toggles-row{ grid-template-columns:1fr; }
}

.param-toggle-block{
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:var(--bg);
  border:1px solid var(--border-light);
  border-radius:8px;
  padding:10px 14px;
}

.param-toggle-block .toggle-switch{ flex-shrink:0; margin-top:2px; }

.param-toggle-meta{ min-width:0; }

.param-toggle-label{
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;
  font-weight:600;
  color:var(--text);
}

.param-toggle-hint{
  margin-top:3px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-muted);
  line-height:1.4;
}

/* ═══ Page Paramètres — onglet Système ════════════════════════════════
   Widget Checklist atelier : extension du widget liste vague 2 avec un
   input label éditable inline + toggle "avec commentaire" par ligne. */

.param-checklist-hint{
  margin:0 0 10px;
  font-family:'DM Sans',sans-serif;
  font-size:11.5px;
  color:var(--text-muted);
  line-height:1.6;
}
.param-checklist-hint code{
  background:#fff;
  border:1px solid var(--border);
  padding:1px 5px;
  border-radius:4px;
  font-size:10.5px;
}

.param-checklist{
  background:var(--bg);
  border:1px solid var(--border-light);
  border-radius:8px;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.param-checklist-item{
  display:flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1px solid var(--border-light);
  border-radius:6px;
  padding:6px 10px;
}

.param-checklist-id{
  flex-shrink:0;
  min-width:140px;
  max-width:180px;
  font-family:'DM Sans',sans-serif;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.3px;
  color:var(--text-muted);
  background:var(--bg);
  border:1px dashed var(--border);
  border-radius:5px;
  padding:3px 8px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:help;
}

.param-checklist-label-input{
  flex:1;
  min-width:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:6px;
  padding:6px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:12.5px;
  color:var(--text);
  outline:none;
}
.param-checklist-label-input:focus{ border-color:var(--navy); }

.param-checklist-com{
  flex-shrink:0;
  width:30px;
  height:30px;
  padding:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:6px;
  color:var(--text-muted);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:all .12s;
}
.param-checklist-com:hover{
  border-color:var(--navy);
  color:var(--navy);
}
.param-checklist-com.on{
  background:var(--navy);
  border-color:var(--navy);
  color:var(--gold);
}

.param-checklist-add{
  display:flex;
  gap:6px;
  margin-top:4px;
  padding-top:8px;
  border-top:1px dashed var(--border);
  align-items:center;
}
.param-checklist-add .param-checklist-label-input{ flex:1; }

/* ═══════════════════════════════════════════════════════════════
   Dashboard ERP-11 — Étape E1 (squelette UI + sélecteur période)
═══════════════════════════════════════════════════════════════ */

/* Sélecteur période dans le page-header > btn-row */
.dash-periode-wrap{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:32px;
}
.dash-periode-label{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--text-muted);
  letter-spacing:.01em;
  white-space:nowrap;
}
.dash-periode-select{
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--text);
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:8px;
  padding:6px 28px 6px 10px;
  height:32px;
  line-height:1;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%231A3A8F' stroke-width='2.5'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position:right 8px center;
  transition:border-color .12s;
}
.dash-periode-select:hover{ border-color:var(--navy); }
.dash-periode-select:focus{
  outline:none;
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.08);
}

/* Grille 6 sections (2 colonnes) — legacy E1, conservé pour ne rien casser ailleurs */
.dash-sections-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px;
}

/* Placeholder neutre "—" dans les sections (E1) */
.dash-section-body{
  text-align:center;
  padding:30px 14px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text-hint);
}

/* ═══════════════════════════════════════════════════════════════
   Dashboard ERP-11 — Refonte visuelle (5 tuiles navy + sections + cartes synthèse)
═══════════════════════════════════════════════════════════════ */

/* ─── Bande de 5 tuiles navy ─────────────────────────────────── */
.dash-tiles{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
  margin-bottom:14px;
}
@media (max-width: 1280px){
  .dash-tiles{ grid-template-columns:repeat(3, 1fr); }
}
@media (max-width: 720px){
  .dash-tiles{ grid-template-columns:1fr 1fr; }
}

.dash-tile{
  position:relative;
  background:#1A3A8F;
  color:#fff;
  border-radius:12px;
  padding:16px 18px;
  box-shadow:0 2px 8px rgba(26,58,143,0.12);
  overflow:hidden;
}
.dash-tile.is-alert{ background:#0D2260; }

.dash-tile-icon{
  position:absolute;
  top:14px;
  right:14px;
  color:#C9A84C;
  opacity:.85;
}
.dash-tile-label{
  font-family:'DM Sans', sans-serif;
  font-size:10px;
  font-weight:700;
  color:#C9A84C;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:6px;
  padding-right:26px;
  line-height:1.2;
}
.dash-tile-value{
  font-family:'Exo 2', sans-serif;
  font-size:32px;
  font-weight:800;
  color:#fff;
  line-height:1;
  margin-bottom:6px;
}
.dash-tile-value.is-gold{   color:#C9A84C; }
.dash-tile-value.is-orange{ color:#fb8c00; }
.dash-tile-value.is-red{    color:#ff6b6b; }
.dash-tile-sub{
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  color:rgba(255,255,255,0.65);
  font-style:italic;
  letter-spacing:.01em;
}

/* ─── Top grid : 2 colonnes (Prochaines + Équipes non affectées) ─ */
.dash-top-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:14px;
  margin-bottom:14px;
}
@media (max-width: 1080px){
  .dash-top-grid{ grid-template-columns:1fr; }
}

.dash-section{
  background:#fff;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:14px;
  padding:16px 18px;
  box-shadow:0 2px 8px rgba(26,58,143,0.05);
}
.dash-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
  padding-bottom:10px;
  border-bottom:1.5px solid var(--border-light, #eef2fb);
}
.dash-section-title{
  font-family:'Exo 2', sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--navy);
  letter-spacing:.02em;
}
.dash-section-count{
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  color:var(--text-muted);
  font-weight:600;
}
.dash-section-body-list{
  /* container des lignes — héberge la timeline ou les équipes non affectées */
  min-height:60px;
}
.dash-section-footer{
  display:flex;
  justify-content:flex-end;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border-light, #eef2fb);
}
.dash-btn-voir-toutes{
  display:inline-flex;
  align-items:center;
  gap:5px;
  background:transparent;
  border:none;
  padding:4px 8px;
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--gold);
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:.06em;
  transition:color .12s;
  border-radius:6px;
}
.dash-btn-voir-toutes:hover{
  color:var(--navy);
  background:rgba(26,58,143,0.04);
}

/* ─── Ligne timeline (Prochaines prestations) ─────────────────── */
.dash-timeline-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 4px;
  border-bottom:1px solid var(--border-light, #eef2fb);
  cursor:pointer;
  transition:background .12s;
}
.dash-timeline-row:last-child{ border-bottom:none; }
.dash-timeline-row:hover{ background:var(--bg, #EEF2FB); }

.dash-timeline-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  flex-shrink:0;
  background:#9aa5bf; /* défaut = gris (far) */
  box-shadow:0 0 0 3px rgba(154,165,191,0.18);
}
.dash-timeline-dot.is-urgent{
  background:#c62828;
  box-shadow:0 0 0 3px rgba(198,40,40,0.18);
}
.dash-timeline-dot.is-soon{
  background:#e65100;
  box-shadow:0 0 0 3px rgba(230,81,0,0.18);
}

.dash-timeline-num{
  font-family:'Exo 2', sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--navy);
  min-width:170px;
  flex-shrink:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dash-timeline-client{
  flex:1.2;
  min-width:0;
  font-family:'DM Sans', sans-serif;
  font-size:12px;
  color:var(--text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dash-timeline-site{
  flex:1;
  min-width:0;
  font-family:'DM Sans', sans-serif;
  font-size:12px;
  color:var(--text-muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dash-timeline-jours{
  font-family:'Exo 2', sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--gold);
  min-width:80px;
  text-align:right;
  flex-shrink:0;
  white-space:nowrap;
}
.dash-timeline-badge{
  min-width:90px;
  flex-shrink:0;
  text-align:right;
}

/* ─── Ligne équipe non affectée ──────────────────────────────── */
.dash-equipe-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 4px;
  border-bottom:1px solid var(--border-light, #eef2fb);
}
.dash-equipe-row:last-child{ border-bottom:none; }
.dash-equipe-num{
  font-family:'Exo 2', sans-serif;
  font-size:11px;
  font-weight:700;
  color:var(--navy);
  flex:1.2;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.dash-equipe-num:hover{ text-decoration:underline; }
.dash-equipe-date{
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  color:var(--text-muted);
  flex-shrink:0;
  min-width:80px;
}
.dash-equipe-progress{
  font-family:'Exo 2', sans-serif;
  font-size:11px;
  font-weight:700;
  color:#e65100;
  flex-shrink:0;
  min-width:70px;
  text-align:center;
}
.dash-equipe-btn-affecter{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:var(--navy);
  color:#fff;
  border:none;
  padding:5px 11px;
  border-radius:7px;
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  transition:background .12s;
  flex-shrink:0;
}
.dash-equipe-btn-affecter:hover{ background:#0D2260; }

.dash-equipe-ok{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:24px 10px;
  font-family:'DM Sans', sans-serif;
  font-size:13px;
  font-weight:600;
  color:#2e7d32;
}
.dash-equipe-ok svg{ flex-shrink:0; color:#2e7d32; }

/* ─── Empty state lignes (Prochaines / Équipes) ──────────────── */
.dash-empty{
  text-align:center;
  padding:20px 10px;
  font-family:'DM Sans', sans-serif;
  font-size:12px;
  color:var(--text-hint);
  font-style:italic;
}

/* ─── Grille 3 × 2 — 6 cartes synthèse ───────────────────────── */
.dash-summary-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
}
@media (max-width: 1080px){
  .dash-summary-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 720px){
  .dash-summary-grid{ grid-template-columns:1fr; }
}

.dash-card{
  background:#fff;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:12px;
  padding:14px 16px;
  box-shadow:0 1px 4px rgba(26,58,143,0.04);
  display:flex;
  flex-direction:column;
}
.dash-card-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.dash-card-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:8px;
  flex-shrink:0;
}
.dash-card-icon.is-gold  { background:rgba(201,168,76,0.15); color:#7a5c10; }
.dash-card-icon.is-orange{ background:rgba(230,81,0,0.12);  color:#e65100; }
.dash-card-icon.is-red   { background:rgba(198,40,40,0.10); color:#c62828; }
.dash-card-icon.is-navy  { background:rgba(26,58,143,0.10); color:var(--navy); }
.dash-card-title{
  font-family:'Exo 2', sans-serif;
  font-size:12px;
  font-weight:700;
  color:var(--navy);
  letter-spacing:.02em;
}
.dash-card-value{
  font-family:'Exo 2', sans-serif;
  font-size:24px;
  font-weight:800;
  color:var(--navy);
  line-height:1;
  margin-bottom:8px;
}
.dash-card-detail{
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  color:var(--text-muted);
  line-height:1.5;
  margin-bottom:10px;
  flex:1;
  min-height:32px;
}
.dash-card-action{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:auto;
  padding-top:10px;
  border-top:1px solid var(--border-light, #eef2fb);
  font-family:'DM Sans', sans-serif;
  font-size:11px;
  font-weight:600;
  color:var(--navy);
  text-decoration:none;
  text-transform:none;
  transition:color .12s;
}
.dash-card-action:hover{ color:var(--gold); }
.dash-card-action.is-disabled{
  color:var(--text-hint);
  cursor:not-allowed;
  pointer-events:none;
}
.dash-card-action.is-disabled:hover{ color:var(--text-hint); }

/* ─── Cartes cliquables (point 5) ─────────────────────────────── */
/* Toute la carte navigue au clic. Pour les cartes expandables, le
   déroulé se déclenche via le chevron seul (stopPropagation) ; le lien
   « Voir » et les lignes expand font aussi stopPropagation. */
.dash-card-clickable{
  cursor:pointer;
  transition:background .12s, box-shadow .12s, border-color .12s;
}
.dash-card-clickable:hover{
  background:rgba(26,58,143,0.045);
  border-color:rgba(26,58,143,0.28);
  box-shadow:0 2px 10px rgba(26,58,143,0.10);
}
.dash-card-diplomes .dash-card-head,
.dash-card-factu .dash-card-head,
.dash-card-paiements .dash-card-head{ position:relative; padding-right:22px; }
.dash-card-diplomes.is-expanded .dash-card-chevron,
.dash-card-factu.is-expanded .dash-card-chevron,
.dash-card-paiements.is-expanded .dash-card-chevron{ transform:rotate(180deg); }
.dash-card-diplomes.is-expanded .dash-card-expand,
.dash-card-factu.is-expanded .dash-card-expand,
.dash-card-paiements.is-expanded .dash-card-expand{
  max-height:500px;
  overflow-y:auto;
  opacity:1;
  margin-top:8px;
}

/* ─── Drag-drop des cartes synthèse (point 1) ─────────────────── */
/* Les <svg> internes sont transparents au pointeur : un drag initié
   n'importe où sur la carte la déplace bien (et non l'icône seule),
   et les clics passent à l'élément interactif parent. */
.dash-summary-grid .dash-card svg{ pointer-events:none; }
.dash-summary-grid .dash-card[draggable="true"]{
  -webkit-user-select:none;
  user-select:none;
}
.dash-card.dash-is-dragging{
  opacity:.45;
  box-shadow:0 8px 24px rgba(26,58,143,0.22);
}

/* ─── Carte libre — non cliquable, déplaçable uniquement (point 4) ─ */
.dash-card-libre{ cursor:grab; }
.dash-card-libre:active{ cursor:grabbing; }
.dash-card-libre .dash-card-title,
.dash-card-libre .dash-card-value{ color:var(--text-hint); }
.dash-card-libre .dash-card-detail{
  color:var(--text-hint);
  font-style:italic;
}

/* Valeur de carte colorée selon la sévérité (Suivi flotte / frais) */
.dash-card-value.is-orange{ color:#e65100; }
.dash-card-value.is-red{ color:#c62828; }

/* ─── Panneau récap — tableau plein dashboard au clic sur une card ─── */
/* Le tableau #tbl-dash-recap hérite tout le style générique (style.css) :
   header navy + texte gold Exo 2, séparateurs .th-resize-handle, hover
   navy-light. Seul le fil d'Ariane a besoin de styles propres. */
.dash-recap-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'Exo 2', sans-serif;
  font-size:15px;
  font-weight:800;
}
.dash-recap-crumb-link{
  color:var(--text-muted);
  font-weight:700;
  cursor:pointer;
  transition:color .12s;
}
.dash-recap-crumb-link:hover{ color:var(--gold); }
.dash-recap-crumb-sep{ color:var(--text-hint); font-weight:400; }
.dash-recap-crumb-cur{ color:var(--navy); }

/* Barre J-critique cliquable — hover discret + cursor pointer */
.dash-alert-critique{ transition:background .12s, box-shadow .12s; }
.dash-alert-critique:hover{
  background:rgba(198,40,40,0.10);
  box-shadow:0 1px 4px rgba(198,40,40,0.18);
}

/* ─── Badges paliers (titres) ─────────────────────────────────── */
.dash-badge-palier{
  display:inline-flex;
  align-items:center;
  padding:2px 7px;
  border-radius:6px;
  font-family:'Exo 2', sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
  border:1px solid transparent;
}
.dash-badge-palier-douce{
  background:rgba(21,101,192,0.10);
  color:#1565c0;
  border-color:rgba(21,101,192,0.30);
}
.dash-badge-palier-moyenne{
  background:rgba(249,168,37,0.14);
  color:#92400e;
  border-color:rgba(249,168,37,0.40);
}
.dash-badge-palier-forte{
  background:rgba(230,81,0,0.10);
  color:#e65100;
  border-color:rgba(230,81,0,0.30);
}
.dash-badge-palier-critique{
  background:rgba(198,40,40,0.10);
  color:#c62828;
  border-color:rgba(198,40,40,0.30);
}
.dash-badge-palier-expire{
  background:#c62828;
  color:#fff;
  border-color:#c62828;
  font-weight:800;
  letter-spacing:.06em;
}

/* ─── Séparateur "Titres expirés" dans l'expand ──────────────── */
.dash-card-expand-separator{
  display:flex;
  align-items:center;
  gap:8px;
  margin:10px 4px 4px 4px;
  padding:4px 0;
  font-family:'Exo 2', sans-serif;
  font-size:10px;
  font-weight:700;
  color:#c62828;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.dash-card-expand-separator::before,
.dash-card-expand-separator::after{
  content:'';
  flex:1;
  height:1px;
  background:rgba(198,40,40,0.25);
}

/* Chevron en haut à droite — masqué tant qu'il n'y a pas de data à dérouler */
.dash-card-equip .dash-card-head{ position:relative; padding-right:22px; }
.dash-card-chevron{
  position:absolute;
  top:0;
  right:0;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:5px;
  color:var(--text-muted);
  transition:transform .25s ease, color .15s;
  user-select:none;
}
.dash-card-equip:hover .dash-card-chevron{ color:var(--navy); }
.dash-card-equip.is-expanded .dash-card-chevron{ transform:rotate(180deg); }

/* Zone repliable : max-height animée pour transition smooth.
   500px suffit pour ~8 prestas — au-delà, scroll vertical. */
.dash-card-expand{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease, margin .25s ease, opacity .2s ease;
  opacity:0;
}
.dash-card-equip.is-expanded .dash-card-expand{
  max-height:500px;
  overflow-y:auto;
  opacity:1;
  margin-top:8px;
}

/* Ligne de presta dans la vue étendue */
.dash-card-expand-row{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:8px 6px;
  border-top:1px solid var(--border-light, #eef2fb);
  cursor:pointer;
  transition:background .12s;
}
.dash-card-expand-row:first-child{ border-top:none; }
.dash-card-expand-row:hover{ background:var(--bg, #EEF2FB); }
.dash-card-expand-row-top{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'DM Sans', sans-serif;
  font-size:11px;
}
.dash-card-expand-num{
  font-family:'Exo 2', sans-serif;
  font-weight:700;
  color:var(--navy);
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dash-card-expand-date{
  color:var(--text-muted);
  flex-shrink:0;
}
.dash-card-expand-jours{
  font-family:'Exo 2', sans-serif;
  font-weight:700;
  color:#e65100;
  flex-shrink:0;
  min-width:50px;
  text-align:right;
}
.dash-card-expand-jours.is-urgent{ color:#c62828; }
.dash-card-expand-blocs{
  font-family:'DM Sans', sans-serif;
  font-size:10px;
  color:var(--text-muted);
  font-style:italic;
  padding-left:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ═══════════════════════════════════════════════════════════════
   Fiche prestation — Bloc "Ville pour le numéro de prestation"
   Sélecteur radio Client/Site + champ texte + aperçu temps réel.
═══════════════════════════════════════════════════════════════ */
.fp-ville-numero-block{ /* hérite de .field-block — overrides spécifiques */ }

.fp-ville-radios{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin:6px 0 10px 0;
}
.fp-ville-radio{
  display:inline-flex;
  align-items:flex-start;
  gap:8px;
  cursor:pointer;
  padding:6px 10px;
  border:1.5px solid var(--border);
  border-radius:8px;
  background:#fff;
  transition:border-color .12s, background .12s;
  min-width:200px;
}
.fp-ville-radio:hover{ border-color:var(--navy); }
.fp-ville-radio input[type=radio]{
  margin:2px 0 0 0;
  accent-color:var(--navy);
  cursor:pointer;
}
.fp-ville-radio input[type=radio]:disabled{ cursor:not-allowed; }
.fp-ville-radio input[type=radio]:checked + .fp-ville-radio-text{ color:var(--navy); font-weight:500; }
.fp-ville-radio-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text);
  line-height:1.3;
}
.fp-ville-radio-sub{
  font-size:11px;
  font-weight:400;
  color:var(--text-muted);
  font-style:italic;
}

/* Champ texte "Ville du site de tir" — overrides de .fp-fb-input pour lui
   donner un look d'input standard (au lieu du style transparent du field-block). */
.fp-ville-site-input.fp-fb-input{
  border:1.5px solid #dce5f5;
  background:#fff;
  height:40px;
  padding:0 12px;
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-weight:500;
  color:var(--text);
  transition:border-color .12s, box-shadow .12s;
}
.fp-ville-site-input.fp-fb-input:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.08);
}
.fp-ville-site-input.fp-fb-input:hover:not(:disabled):not(:focus){
  border-color:var(--navy);
}
.fp-ville-site-input.fp-fb-input:disabled{
  background:#f5f5f5;
  color:var(--text-hint);
  cursor:not-allowed;
  border-color:#dce5f5;
  box-shadow:none;
}
.fp-ville-site-input.fp-fb-input::placeholder{
  color:var(--text-hint);
  font-style:italic;
  font-weight:400;
}

/* Bouton "Valider" en bout d'input (3 états).
   - .fp-ville-validate-btn : version 40px utilisée par le bloc "ville pour numéro"
     (input restylé à 40px pour matcher).
   - .fp-input-validate-btn : version compacte 28px utilisée par les champs inline
     standard (lieu libre mission interne) — n'agrandit pas la cellule field-block. */
.fp-ville-site-row{
  display:flex;
  gap:10px;
  align-items:stretch;
}
.fp-ville-site-row .fp-ville-site-input{ flex:1; }

/* Variante compacte : le bouton est en position absolue à droite de l'input.
   Il ne contribue plus à la hauteur de la cellule field-block, qui garde
   la même hauteur naturelle que les autres champs sans bouton. */
.fp-input-validate-row{
  position:relative;
  margin-top:6px;
}
.fp-input-validate-row .fp-input-validate-input{
  width:100%;
  padding-right:70px;        /* réserve la place pour le bouton compact */
  box-sizing:border-box;
}

/* Styles communs (couleurs, états) — partagés entre les 2 variantes */
.fp-ville-validate-btn,
.fp-input-validate-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  letter-spacing:.01em;
  cursor:pointer;
  white-space:nowrap;
  background:#e7ecf7;
  color:#8a94ab;
  border:1.5px solid #dce5f5;
  transition:all .12s;
}
.fp-ville-validate-btn:disabled,
.fp-input-validate-btn:disabled{ cursor:not-allowed; }

/* Tailles spécifiques */
.fp-ville-validate-btn{
  height:40px;
  padding:0 18px;
  font-size:12px;
}
.fp-input-validate-btn{
  position:absolute;
  right:2px;
  top:50%;
  transform:translateY(-50%);
  /* PAS de height fixe : on laisse padding+line-height définir la taille,
     ce qui garantit que le bouton reste ≤ hauteur naturelle du texte de l'input
     et n'agrandit pas la cellule field-block. */
  height:auto;
  padding:2px 8px;
  font-size:10px;
  line-height:1;
  gap:4px;
  letter-spacing:.02em;
}
.fp-input-validate-btn svg{ width:9px; height:9px; }

/* État "dirty" : modif en attente, bouton actif navy */
.fp-ville-validate-btn.dirty,
.fp-input-validate-btn.dirty{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
}
.fp-ville-validate-btn.dirty:hover,
.fp-input-validate-btn.dirty:hover{
  background:#15306e;
  border-color:#15306e;
}

/* État "saved" : valeur déjà validée, bouton vert désactivé */
.fp-ville-validate-btn.saved,
.fp-input-validate-btn.saved{
  background:rgba(46,125,50,0.10);
  color:var(--green, #2e7d32);
  border-color:rgba(46,125,50,0.35);
  cursor:default;
}

/* ═══════════════════════════════════════════════════════════════
   Autocomplétion d'adresse (API BAN data.gouv.fr) — Phase 1
   Dropdown singleton position:fixed sous l'input actif.
═══════════════════════════════════════════════════════════════ */
.adr-autocomplete-dropdown{
  position:fixed;
  z-index:9999;
  background:#fff;
  border:1.5px solid #dce5f5;
  border-radius:8px;
  box-shadow:0 6px 20px rgba(26,58,143,0.12);
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  color:var(--text);
  max-height:260px;
  overflow-y:auto;
  display:none;
  min-width:220px;
  max-width:520px;
}
.adr-autocomplete-dropdown.show{ display:block; }

.adr-autocomplete-item{
  padding:8px 12px;
  cursor:pointer;
  border-bottom:1px solid var(--border-light);
  line-height:1.35;
  transition:background .08s;
}
.adr-autocomplete-item:last-of-type{ border-bottom:none; }
.adr-autocomplete-item:hover,
.adr-autocomplete-item.active{
  background:var(--bg);
}
.adr-autocomplete-item-context{
  display:block;
  font-size:11px;
  color:var(--text-hint);
  font-style:italic;
  margin-top:2px;
}

.adr-autocomplete-empty{
  padding:10px 12px;
  color:var(--text-hint);
  font-style:italic;
  font-size:12px;
}

.adr-autocomplete-attrib{
  padding:6px 12px;
  font-size:10px;
  color:var(--text-hint);
  font-style:italic;
  border-top:1px solid var(--border-light);
  background:#fafbfd;
  text-align:right;
  letter-spacing:.01em;
}

.fp-ville-apercu{
  margin-top:8px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--text-muted);
}
.fp-ville-apercu-label{ color:var(--text-muted); }
.fp-ville-apercu-num{
  font-family:'Consolas','Menlo','Monaco',monospace;
  font-size:12px;
  color:var(--navy);
  background:var(--bg, #EEF2FB);
  padding:2px 8px;
  border-radius:4px;
  border:1px solid var(--border);
  letter-spacing:.02em;
}

.fp-ville-warn{
  margin-top:8px;
  padding:6px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:#8a4d00;
  background:#fff3e0;
  border:1px solid #ffb74d;
  border-radius:6px;
}

.fp-ville-locked-note{
  margin-top:8px;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  color:var(--text-hint);
  font-style:italic;
}

/* ═══════════════════════════════════════════════════════════════
   Onglet 9 (Équipe) — Bloc horaires + indicateur de complétude
═══════════════════════════════════════════════════════════════ */

/* La carte et le titre utilisent le pattern .card + .card-title de l'ERP
   (défini plus haut). Pas de styles dupliqués ici — uniquement la grille
   intérieure et les contrôles spécifiques.

   Layout en 4 colonnes :
     [ Heure RDV ] [ Visualisation trajet ] [ Heure Arrivée ] [ Date intervention ]
   Sur petit écran, passe en 1 colonne empilée. */
/* Card Horaires d'équipe : padding interne réduit pour éviter l'espace blanc
   excessif en bas (le contenu fait < hauteur naturelle d'une .card standard).
   padding-top:16px matche le margin-top:-16px du .card-title — pas de trait
   blanc entre le bord supérieur de la card et la barre de titre. */
/* ─── Bloc unifié "Horaires d'équipe" (onglet 9) ────────────────
   Layout flex inline :
     [Heure RDV] | sep | [Trajet] | sep | [Heure arrivée] | spacer | [Date intervention]
   Bordure gauche gold 4px, fond blanc, border-radius 10px côté droit.
─────────────────────────────────────────────────────────────────*/
.fp-tab10-horaires-block{
  display:flex;
  align-items:center;
  gap:20px;
  padding:14px 18px;
  background:#fff;
  border-left:4px solid #C9A84C;
  border-radius:0 10px 10px 0;
  margin-bottom:14px;
  box-shadow:0 1px 3px rgba(26,58,143,0.05);
  flex-wrap:wrap;
}
.fp-tab10-horaires-side{
  display:flex;
  flex-direction:column;
  flex-shrink:0;
}
.fp-tab10-horaires-sep{
  width:1px;
  align-self:stretch;
  background:#dce5f5;
  flex-shrink:0;
  margin:4px 0;
}
.fp-tab10-horaires-spacer{
  flex:1 1 auto;
  min-width:12px;
}
@media (max-width: 1080px){
  .fp-tab10-horaires-block{ gap:14px; }
  .fp-tab10-horaires-spacer{ display:none; }
  .fp-tab10-date-encart{ order:99; }
}

/* Conteneur central — visualisation trajet (durée + icônes + battement) */
.fp-tab10-trajet{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 8px;
  flex-shrink:0;
}
.fp-tab10-trajet-duree{
  font-family:'Exo 2',sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--gold);
  white-space:nowrap;
  letter-spacing:.02em;
  line-height:1;
}
.fp-tab10-trajet-ligne{
  display:flex;
  align-items:center;
  gap:8px;
}
/* Points navy de chaque extrémité de la ligne de trajet */
.fp-tab10-trajet-point{
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--navy);
  flex-shrink:0;
}
/* Flèches pointillées gold */
.fp-tab10-trajet-arrow{
  display:inline-block;
  width:60px;
  height:0;
  border-top:2px dashed var(--gold);
  flex-shrink:0;
  opacity:1;
}
@media (max-width: 1200px){
  .fp-tab10-trajet-arrow{ width:46px; }
}
@media (max-width: 980px){
  .fp-tab10-trajet-arrow{ width:36px; }
}
/* Icône voiture navy — pas de fond, pas de bordure (cohérence avec les points navy) */
.fp-tab10-trajet-voiture-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  color:var(--navy);
  flex-shrink:0;
  background:transparent;
  border:none;
}
/* Mention battement (hint gris) sous la ligne de trajet */
.fp-tab10-trajet-battement{
  min-height:14px;
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  color:var(--text-hint);
  font-style:italic;
  letter-spacing:.02em;
  text-align:center;
  white-space:nowrap;
}
.fp-tab10-trajet-battement.is-error{ color:#c97b00; font-style:normal; font-weight:600; }

/* Badge "Intervention" — gold subtil à droite */
.fp-tab10-date-encart{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:8px 14px;
  background:rgba(201,168,76,0.10);
  border:1px solid rgba(201,168,76,0.30);
  border-radius:8px;
  flex-shrink:0;
  align-self:center;
}
.fp-tab10-date-encart-head{
  font-family:'DM Sans',sans-serif;
  font-size:9px;
  font-weight:700;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.fp-tab10-date-encart-val{
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  letter-spacing:.01em;
  white-space:nowrap;
}

/* Status de la clé API Google Maps dans Paramètres → Système → Intégrations */
.param-integration-status{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:500;
  padding:4px 0;
}
.param-integration-status.is-ok{ color:var(--green, #2e7d32); }
.param-integration-status.is-empty{ color:var(--text-muted); font-style:italic; }
.fp-tab10-horaires-cell{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fp-tab10-horaires-label{
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  font-weight:700;
  color:var(--text-hint);
  letter-spacing:.6px;
  text-transform:uppercase;
}
.fp-tab10-horaires-input{
  width:110px;
  height:32px;
  padding:0 8px;
  background:#fff;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:6px;
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  outline:none;
  transition:border-color .12s;
}
.fp-tab10-horaires-input:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.10);
}
.fp-tab10-horaires-input:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* Ligne "Départ date anticipée" — toggle .toggle-switch + date facultative à droite */
.fp-tab10-anticipe-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:4px;
}
.fp-tab10-anticipe-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--text, var(--navy));
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
.fp-tab10-anticipe-label-txt{ line-height:1; }
.fp-tab10-anticipe-toggle.is-disabled{
  opacity:.5;
  cursor:not-allowed;
  pointer-events:none;
}
/* Override : dans ce contexte, le toggle activé est navy (et non orange).
   style.css définit la couleur par défaut, on l'écrase ici avec une
   spécificité plus haute (descendant). Aucune touche à style.css. */
.fp-tab10-anticipe-toggle .toggle-switch.checked{
  background:var(--navy);
}

/* Sélecteur de date qui apparaît à droite du toggle quand celui-ci est ON */
.fp-tab10-horaires-date{
  height:28px;
  padding:0 8px;
  background:#fff;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:6px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  color:var(--navy);
  outline:none;
  transition:border-color .12s;
  cursor:pointer;
}
.fp-tab10-horaires-date:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.10);
}
.fp-tab10-horaires-date:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* Badge indicateur d'équipe — 3 états (vert / orange / rouge) */
.fp-tab10-equipe-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  padding:8px 14px;
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  font-weight:600;
  border:1.5px solid transparent;
}
.fp-tab10-equipe-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  flex:0 0 auto;
}
.fp-tab10-equipe-badge.is-ok{
  background:rgba(46,125,50,0.10);
  color:var(--green, #2e7d32);
  border-color:rgba(46,125,50,0.35);
}
.fp-tab10-equipe-badge.is-ok .fp-tab10-equipe-dot{ background:var(--green, #2e7d32); }
.fp-tab10-equipe-badge.is-warn{
  background:#fff3e0;
  color:#e65100;
  border-color:#ffb74d;
}
.fp-tab10-equipe-badge.is-warn .fp-tab10-equipe-dot{ background:#ff9800; }
.fp-tab10-equipe-badge.is-over{
  background:#fdecea;
  color:#c62828;
  border-color:#ef9a9a;
}
.fp-tab10-equipe-badge.is-over .fp-tab10-equipe-dot{ background:#e53935; }

/* ═══════════════════════════════════════════════════════════════
   Onglet 9 (Équipe) — Bloc Rémunération + Badge Frais sur la carte
═══════════════════════════════════════════════════════════════ */
.fp-tab10-bloc-remu{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  min-width:110px;
}
.fp-tab10-bloc-remu.is-masque{ opacity:.45; }
.fp-tab10-remu-wrap{
  display:inline-flex;
  align-items:center;
  gap:4px;
  background:#fff;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:6px;
  padding:2px 8px;
  height:30px;
  transition:border-color .12s;
}
.fp-tab10-remu-wrap:focus-within{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.10);
}
.fp-tab10-input-remu{
  width:64px;
  border:none;
  outline:none;
  background:transparent;
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  text-align:right;
  -moz-appearance:textfield;
}
.fp-tab10-input-remu::-webkit-outer-spin-button,
.fp-tab10-input-remu::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.fp-tab10-input-remu::placeholder{ color:var(--text-hint); font-style:italic; font-weight:400; }
.fp-tab10-input-remu:disabled{ cursor:not-allowed; color:var(--text-hint); }
.fp-tab10-remu-unit{
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  color:var(--text-muted);
}
.fp-tab10-remu-hint{
  font-family:'DM Sans',sans-serif;
  font-size:10px;
  color:#c97b00;
  font-style:italic;
  letter-spacing:.02em;
}
.fp-tab10-remu-hint.is-info{ color:var(--text-hint); }

/* Mini champ "Arrivée" individuelle — discret, à côté de la rémunération */
.fp-tab10-bloc-arrivee{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  margin-left:2px;
}
.fp-tab10-input-arrivee{
  width:80px;
  height:30px;
  padding:0 8px;
  background:#fff;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:6px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  color:var(--navy);
  outline:none;
  transition:border-color .12s;
}
.fp-tab10-input-arrivee:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.10);
}
.fp-tab10-input-arrivee:hover:not(:focus){
  border-color:var(--navy);
}

/* Badge Frais (cliquable) — 3 états : empty / warn / ok */
.fp-tab10-bloc-frais{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
}
.fp-tab10-frais-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 10px;
  height:28px;
  border-radius:14px;
  border:1.5px solid var(--border, #dce5f5);
  background:#fff;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:600;
  color:var(--text-muted);
  cursor:pointer;
  transition:all .12s;
  white-space:nowrap;
}
.fp-tab10-frais-badge:hover{ transform:translateY(-1px); box-shadow:0 2px 6px rgba(26,58,143,0.10); }
.fp-tab10-frais-badge svg{ flex-shrink:0; }
.fp-tab10-frais-badge.is-empty{ color:var(--text-hint); border-color:var(--border, #dce5f5); background:#fafbfd; }
.fp-tab10-frais-badge.is-warn{
  background:#fff3e0;
  color:#e65100;
  border-color:#ffb74d;
}
.fp-tab10-frais-badge.is-ok{
  background:rgba(46,125,50,0.10);
  color:var(--green, #2e7d32);
  border-color:rgba(46,125,50,0.35);
}

/* ═══════════════════════════════════════════════════════════════
   Modale "Frais d'un membre" — réutilise le pattern fp-tab10-dispo-modal
   pour le header + recap-bar footer, avec un body propre tableau + form.
═══════════════════════════════════════════════════════════════ */
.fp-frais-modal{
  max-width:880px;
  width:92vw;
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  max-height:90vh;
}
.fp-frais-list-wrap{
  overflow:auto;
  padding:14px 20px 4px;
  max-height:48vh;
}
.fp-frais-tbl{
  width:100%;
  border-collapse:collapse;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
}
.fp-frais-tbl thead th{
  position:sticky;
  top:0;
  background:#fff;
  text-align:left;
  padding:8px 10px;
  font-size:10px;
  font-weight:700;
  color:var(--text-hint);
  text-transform:uppercase;
  letter-spacing:.04em;
  border-bottom:1.5px solid var(--border, #dce5f5);
  z-index:1;
}
.fp-frais-tbl tbody td{
  padding:10px;
  border-bottom:1px solid var(--border-light, #eef2fb);
  color:var(--text);
  vertical-align:middle;
}
.fp-frais-tbl tbody tr:hover td{ background:rgba(26,58,143,0.025); }

.fp-frais-stat{
  display:inline-block;
  padding:3px 10px;
  border-radius:12px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.02em;
  border:1.5px solid transparent;
}
.fp-frais-stat.is-ok{
  background:rgba(46,125,50,0.10);
  color:var(--green, #2e7d32);
  border-color:rgba(46,125,50,0.35);
}
.fp-frais-stat.is-refuse{
  background:#fdecea;
  color:#c62828;
  border-color:#ef9a9a;
}
.fp-frais-stat.is-attente{
  background:#fff3e0;
  color:#e65100;
  border-color:#ffb74d;
}

.fp-frais-just-link{
  font-size:11px;
  color:var(--navy);
  text-decoration:none;
  font-weight:500;
}
.fp-frais-just-link:hover{ text-decoration:underline; }

.fp-frais-actions-cell{
  display:inline-flex;
  gap:6px;
  justify-content:flex-end;
}
.fp-frais-act{
  width:28px;
  height:28px;
  border-radius:6px;
  border:1.5px solid var(--border, #dce5f5);
  background:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:var(--text-muted);
  transition:all .12s;
}
.fp-frais-act:hover{ transform:translateY(-1px); }
.fp-frais-act.is-ok{ color:var(--green, #2e7d32); }
.fp-frais-act.is-ok:hover{ background:rgba(46,125,50,0.08); border-color:rgba(46,125,50,0.35); }
.fp-frais-act.is-refuse{ color:#c62828; }
.fp-frais-act.is-refuse:hover{ background:#fdecea; border-color:#ef9a9a; }
.fp-frais-act.is-del{ color:#c62828; }
.fp-frais-act.is-del:hover{ background:#fdecea; border-color:#ef9a9a; }
.fp-frais-act.is-reopen{ color:var(--navy); }
.fp-frais-act.is-reopen:hover{ background:var(--bg); border-color:var(--navy); }

/* Formulaire d'ajout inline en bas de la modale */
.fp-frais-add{
  padding:14px 20px;
  border-top:1px solid var(--border, #dce5f5);
  background:var(--bg, #EEF2FB);
}
.fp-frais-add-title{
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:700;
  color:var(--navy);
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.fp-frais-add-row{
  display:grid;
  grid-template-columns:140px 130px 1fr auto auto;
  gap:10px;
  align-items:center;
}
@media (max-width: 720px){
  .fp-frais-add-row{ grid-template-columns:1fr; }
}
.fp-frais-add-cat{
  height:36px;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:8px;
  padding:0 10px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  background:#fff;
  color:var(--navy);
}
.fp-frais-add-montant-wrap{
  position:relative;
  display:flex;
  align-items:center;
}
.fp-frais-add-montant{
  width:100%;
  height:36px;
  padding:0 28px 0 10px;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:8px;
  font-family:'Exo 2',sans-serif;
  font-size:13px;
  font-weight:700;
  color:var(--navy);
  text-align:right;
}
.fp-frais-add-unit{
  position:absolute;
  right:10px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  color:var(--text-muted);
  pointer-events:none;
}
.fp-frais-add-comment{
  height:36px;
  padding:0 10px;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
}
.fp-frais-add-btn{ height:36px; white-space:nowrap; }

/* 2e ligne du formulaire d'ajout : bouton forfait panier seul (action distincte) */
.fp-frais-add-actions-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  color:var(--text-muted);
  flex-wrap:wrap;
}
/* Chip filename — apparaît sous l'add-row quand un fichier est sélectionné via "Joindre" */
.fp-frais-add-file-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  padding:5px 10px;
  background:rgba(26,58,143,0.06);
  border:1px solid var(--border, #dce5f5);
  border-radius:7px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--navy);
  max-width:100%;
}
.fp-frais-add-file-chip svg{ color:var(--navy); flex-shrink:0; }
/* Bouton "Appliquer forfait panier" — accent gold doux pour le distinguer
   du bouton "Joindre justificatif" (qui est en dashed) */
.fp-frais-forfait-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  height:30px;
  background:rgba(201,168,76,0.12);
  border:1.5px solid var(--gold);
  border-radius:7px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  color:#7a6510;
  cursor:pointer;
  transition:all .12s;
  white-space:nowrap;
}
.fp-frais-forfait-btn:hover{
  background:rgba(201,168,76,0.22);
  border-color:#a78a3a;
}
.fp-frais-forfait-btn svg{ color:#a78a3a; }
.fp-frais-add-file-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  height:30px;
  background:#fff;
  border:1.5px dashed var(--border, #dce5f5);
  border-radius:7px;
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:600;
  color:var(--navy);
  cursor:pointer;
  transition:all .12s;
}
.fp-frais-add-file-btn:hover{
  background:var(--bg, #EEF2FB);
  border-style:solid;
  border-color:var(--navy);
}
.fp-frais-add-file-name{
  font-weight:500;
  color:var(--navy);
  font-size:12px;
  max-width:280px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.fp-frais-add-file-clear{
  width:22px;
  height:22px;
  border-radius:50%;
  border:none;
  background:rgba(198,40,40,0.12);
  color:#c62828;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.fp-frais-add-file-clear:hover{ background:rgba(198,40,40,0.22); }

/* Boutons "Joindre" / "Remplacer" / "Retirer" dans la colonne Justificatif du tableau */
.fp-frais-just-attach{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 8px;
  border:1.5px dashed var(--border, #dce5f5);
  border-radius:6px;
  background:#fff;
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:600;
  color:var(--navy);
  cursor:pointer;
  transition:all .12s;
}
.fp-frais-just-attach:hover{
  background:var(--bg, #EEF2FB);
  border-style:solid;
  border-color:var(--navy);
}
.fp-frais-just-mini{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  margin-left:4px;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:5px;
  background:#fff;
  color:var(--text-muted);
  font-size:13px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  transition:all .12s;
  vertical-align:middle;
}
.fp-frais-just-mini:hover{ color:var(--navy); border-color:var(--navy); }
.fp-frais-just-mini.is-del{ color:#c62828; }
.fp-frais-just-mini.is-del:hover{ background:#fdecea; border-color:#ef9a9a; color:#c62828; }

/* ═══════════════════════════════════════════════════════════════
   Module Suivi Équipes — barre d'onglets (Présences / Rému / Frais / Globale)
═══════════════════════════════════════════════════════════════ */
.se-tabs{
  display:flex;
  gap:4px;
  margin-bottom:14px;
  border-bottom:1.5px solid var(--border, #dce5f5);
  padding-left:2px;
}
.se-tab{
  padding:9px 18px;
  background:transparent;
  border:none;
  border-bottom:2px solid transparent;
  margin-bottom:-1.5px;
  font-family:'Exo 2',sans-serif;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--text-muted);
  cursor:pointer;
  transition:color .12s, border-color .12s;
}
.se-tab:hover{ color:var(--navy); }
.se-tab.active{
  color:var(--navy);
  border-bottom-color:var(--gold);
}

/* ═══════════════════════════════════════════════════════════════
   Onglet 10 « Pièces jointes » — toggle "Visible convocation"
   Placé entre le bloc nom/meta et les boutons d'actions sur chaque ligne.
═══════════════════════════════════════════════════════════════ */
.fp-pj-conv-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
  padding:0 4px;
}
.fp-pj-conv-label{
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:500;
  color:var(--text-muted);
  letter-spacing:.02em;
}

/* ═══════════════════════════════════════════════════════════════
   Onglet Paramètres « Rémunération » — tableau 7 règles
═══════════════════════════════════════════════════════════════ */
.param-remu-table{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:4px;
}
.param-remu-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:16px;
  align-items:center;
  padding:10px 14px;
  background:var(--bg, #EEF2FB);
  border:1px solid var(--border, #dce5f5);
  border-radius:8px;
  transition:border-color .12s;
}
.param-remu-row:hover{ border-color:rgba(26,58,143,0.30); }
/* Séparation visuelle entre les règles tarifaires et le forfait panier :
   simple gap plus marqué, sans trait pseudo-élément (qui se positionnait mal). */
.param-remu-row.param-remu-row-sep{ margin-top:16px; }
.param-remu-cell-label{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.param-remu-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:22px;
  padding:0 8px;
  background:var(--navy);
  color:var(--gold);
  border-radius:11px;
  font-family:'Exo 2',sans-serif;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  white-space:nowrap;
  flex-shrink:0;
}
.param-remu-rule{
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  font-weight:500;
  color:var(--text);
}
.param-remu-cell-input{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.param-remu-input{
  width:90px;
  height:34px;
  padding:0 10px;
  text-align:right;
  border:1.5px solid var(--border, #dce5f5);
  border-radius:7px;
  background:#fff;
  font-family:'Exo 2',sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--navy);
  outline:none;
  transition:border-color .12s;
  -moz-appearance:textfield;
}
.param-remu-input::-webkit-outer-spin-button,
.param-remu-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.param-remu-input:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,58,143,0.10);
}
.param-remu-unit{
  font-family:'Exo 2',sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--text-muted);
}
