/* 5.7.4 — Boutons harmonisés de l'administration
   Une seule apparence pour tous les boutons : même arrondi, même police, même graisse, couleurs unifiées.
   Les boutons d'action des cartes (Modifier, Dupliquer, Supprimer, Archiver) et Partager deviennent des carrés à icône seule.
   Portée : pages d'administration uniquement (body.is-admin-context) — le site public n'est pas touché. */

body.is-admin-context {
  --eb-r: 8px;
  --eb-sq: 34px;
  --eb-blue: #2563eb;   --eb-blue-h: #1d4ed8;
  --eb-green: #16a34a;  --eb-green-h: #15803d;
  --eb-red: #dc2626;    --eb-red-h: #b91c1c;
  --eb-slate: #64748b;  --eb-slate-h: #475569;
  --eb-dark: #334155;   --eb-dark-h: #1e293b;
  --eb-ink: #111827;    --eb-ink-h: #000;
  --eb-online: #15803d; --eb-offline: #dc2626;
  --eb-shadow: 0 1px 2px rgba(15, 23, 42, .14);
}

/* ---------- Base commune ---------- */
body.is-admin-context .btn:not(.btn-link),
body.is-admin-context a.btn-back,
body.is-admin-context a.btn-add {
  border-radius: var(--eb-r) !important;
  font-family: Poppins, Arial, sans-serif;
  font-weight: 600;
  letter-spacing: 0;
  border-width: 1.5px;
  box-shadow: var(--eb-shadow);
  transition: background-color .15s, border-color .15s, box-shadow .15s, color .15s;
}
/* Pas de « display » imposé ici : certains boutons sont volontairement masqués (ex. étoile Favoris du fil d'Ariane, visible sur mobile uniquement). */
body.is-admin-context .btn:not(.btn-link) { line-height: 1.2; }
body.is-admin-context .btn:not(.btn-link):focus-visible,
body.is-admin-context a.btn-back:focus-visible,
body.is-admin-context a.btn-add:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; }
body.is-admin-context .btn-sm:not(.btnBloc) { min-height: var(--eb-sq); padding: .35rem .75rem; font-size: 13px; }

/* ---------- Couleurs (boutons pleins) ---------- */
body.is-admin-context .btn.btn-primary,
body.is-admin-context .btn.btn-info { background-color: var(--eb-blue); border-color: var(--eb-blue); color: #fff; }
body.is-admin-context .btn.btn-primary:hover,
body.is-admin-context .btn.btn-info:hover { background-color: var(--eb-blue-h); border-color: var(--eb-blue-h); color: #fff; }
body.is-admin-context .btn.btn-success { background-color: var(--eb-green); border-color: var(--eb-green); color: #fff; }
body.is-admin-context .btn.btn-success:hover { background-color: var(--eb-green-h); border-color: var(--eb-green-h); color: #fff; }
body.is-admin-context .btn.btn-danger { background-color: var(--eb-red); border-color: var(--eb-red); color: #fff; }
body.is-admin-context .btn.btn-danger:hover { background-color: var(--eb-red-h); border-color: var(--eb-red-h); color: #fff; }
body.is-admin-context .btn.btn-secondary:not(.btn-light) { background-color: var(--eb-slate); border-color: var(--eb-slate); color: #fff; }
body.is-admin-context .btn.btn-secondary:not(.btn-light):hover { background-color: var(--eb-slate-h); border-color: var(--eb-slate-h); color: #fff; }
body.is-admin-context .btn.btn-dark { background-color: var(--eb-dark); border-color: var(--eb-dark); color: #fff; }
body.is-admin-context .btn.btn-dark:hover { background-color: var(--eb-dark-h); border-color: var(--eb-dark-h); color: #fff; }

/* ---------- Boutons à contour (menu Actions, boutons secondaires) ---------- */
body.is-admin-context .btn[class*="btn-outline-"] { background-color: #fff; box-shadow: var(--eb-shadow); }
body.is-admin-context .btn.btn-outline-secondary { border-color: #94a3b8; color: #475569; }
body.is-admin-context .btn.btn-outline-secondary:hover,
body.is-admin-context .btn.btn-outline-secondary[aria-expanded="true"] { background-color: #f1f5f9; border-color: #64748b; color: #1e293b; }
body.is-admin-context .btn.btn-outline-primary { border-color: var(--eb-blue); color: var(--eb-blue); }
body.is-admin-context .btn.btn-outline-primary:hover { background-color: var(--eb-blue); color: #fff; }
body.is-admin-context .btn.btn-outline-danger { border-color: var(--eb-red); color: var(--eb-red); }
body.is-admin-context .btn.btn-outline-danger:hover { background-color: var(--eb-red); color: #fff; }
body.is-admin-context .btn.btn-outline-success { border-color: var(--eb-green); color: var(--eb-green); }
body.is-admin-context .btn.btn-outline-success:hover { background-color: var(--eb-green); color: #fff; }

/* ---------- Barre du haut : Retour / Ajouter / Configuration ---------- */
body.is-admin-context a.btn-back {
  background-color: var(--eb-ink); color: #fff; font-size: 14px !important; font-weight: 600;
  padding: 0 14px; min-height: 36px; border-radius: var(--eb-r); gap: 8px;
}
body.is-admin-context a.btn-back:hover { background-color: var(--eb-ink-h); color: #fff; }
body.is-admin-context a.btn-back::before { filter: none; }
body.is-admin-context a.btn-add {
  background-color: var(--eb-green); color: #fff; font-size: 14px !important; font-weight: 600;
  padding: 0 16px; min-height: 36px; border-radius: var(--eb-r); gap: 8px;
}
body.is-admin-context a.btn-add:hover { background-color: var(--eb-green-h); color: #fff; }
body.is-admin-context a.btn-add::before { filter: none; }
body.is-admin-context a.btn-add.btn-add--stock { background-color: #475569 !important; }
body.is-admin-context a.btn-add.btn-add--stock:hover { background-color: #334155 !important; }
/* La messagerie garde son bouton Retour rond (vue conversation) */
body.is-admin-context .msg-2pane .msg-pane-detail .menuPageTop a.btn-back { padding: 0; min-height: 0; border-radius: 50%; background: #f1f5f9; color: #334155; }

/* ---------- Boutons d'action des cartes : carrés à icône seule ---------- */
body.is-admin-context .btn.btn-sm:is(
  [title="Modifier"], [data-original-title="Modifier"],
  [title="Dupliquer"], [data-original-title="Dupliquer"],
  [title="Supprimer"], [data-original-title="Supprimer"],
  [title="Archiver"], [data-original-title="Archiver"],
  [title="Désarchiver"], [data-original-title="Désarchiver"],
  [title="Desarchiver"], [data-original-title="Desarchiver"],
  [title="Télécharger le QRCode"], [data-original-title="Télécharger le QRCode"],
  [title="Partager"], [data-original-title="Partager"]) {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--eb-sq) !important; height: var(--eb-sq); min-height: var(--eb-sq);
  padding: 0 !important; font-size: 0 !important; gap: 0; vertical-align: middle;
}
body.is-admin-context .btn.btn-sm:is(
  [title="Modifier"], [data-original-title="Modifier"],
  [title="Dupliquer"], [data-original-title="Dupliquer"],
  [title="Supprimer"], [data-original-title="Supprimer"],
  [title="Archiver"], [data-original-title="Archiver"],
  [title="Désarchiver"], [data-original-title="Désarchiver"],
  [title="Desarchiver"], [data-original-title="Desarchiver"],
  [title="Télécharger le QRCode"], [data-original-title="Télécharger le QRCode"],
  [title="Partager"], [data-original-title="Partager"]) i,
body.is-admin-context .btn.btn-sm:is(
  [title="Modifier"], [data-original-title="Modifier"],
  [title="Dupliquer"], [data-original-title="Dupliquer"],
  [title="Supprimer"], [data-original-title="Supprimer"],
  [title="Archiver"], [data-original-title="Archiver"],
  [title="Désarchiver"], [data-original-title="Désarchiver"],
  [title="Desarchiver"], [data-original-title="Desarchiver"],
  [title="Télécharger le QRCode"], [data-original-title="Télécharger le QRCode"],
  [title="Partager"], [data-original-title="Partager"]) svg { font-size: 15px !important; margin: 0 !important; }

/* ---------- Pastilles des cartes : En ligne / Hors ligne et compteurs ---------- */
body.is-admin-context .btnBloc {
  border-radius: var(--eb-r); font-family: Poppins, Arial, sans-serif; font-weight: 600; font-size: 12px;
  padding: 5px 10px; line-height: 1.2; border: 0;
}
body.is-admin-context .btnBloc[style*="background-color:green"],
body.is-admin-context .btnBloc[style*="background-color: green"] { background-color: var(--eb-online) !important; }
body.is-admin-context .btnBloc[style*="background-color:red"],
body.is-admin-context .btnBloc[style*="background-color: red"] { background-color: var(--eb-offline) !important; }
body.is-admin-context .btnBloc.dragBloc { width: var(--eb-sq); height: var(--eb-sq); padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 15px !important; background: #fff; border: 1.5px solid #cbd5e1; }

/* ---------- Pastilles des listes (fichiers, liens, FAQ…) ---------- */
body.is-admin-context .emiLst-badge { border-radius: var(--eb-r); padding: 6px 12px; font-family: Poppins, Arial, sans-serif; font-weight: 600; font-size: 12px; box-shadow: var(--eb-shadow); }
body.is-admin-context .emiLst-badge:is([title="Partager ce fichier"], [data-original-title="Partager ce fichier"]) {
  width: var(--eb-sq); height: var(--eb-sq); padding: 0; justify-content: center; font-size: 0; gap: 0; background-color: var(--eb-slate) !important;
}
body.is-admin-context .emiLst-badge:is([title="Partager ce fichier"], [data-original-title="Partager ce fichier"]) i { font-size: 15px; margin: 0; }

/* ---------- Poignées de déplacement : la croix, dans un carré blanc (cartes, listes, champs de formulaire) ---------- */
body.is-admin-context .dragBloc.emiLst-noclick,
body.is-admin-context .dragBloc.field-row-drag,
body.is-admin-context .pl-drag-handle,
body.is-admin-context .emi-drag-sq {
  width: var(--eb-sq); height: var(--eb-sq); flex: 0 0 var(--eb-sq);
  display: inline-flex !important; align-items: center; justify-content: center;
  padding: 0 !important; margin-left: 10px; margin-right: 10px; font-size: 15px !important;
  background: #fff; color: #111827 !important; border: 1.5px solid #cbd5e1; border-radius: var(--eb-r);
  box-shadow: var(--eb-shadow); cursor: move;
}
body.is-admin-context .dragBloc.emiLst-noclick:hover,
body.is-admin-context .dragBloc.field-row-drag:hover,
body.is-admin-context .drag-handle:hover .emi-drag-sq { border-color: #64748b; }
body.is-admin-context .emi-drag-sq { margin: 0; vertical-align: middle; }

/* ---------- Listes : badge d'état (Actif / En ligne…) à la même hauteur que le bouton Actions ---------- */
body.is-admin-context .emiLst-badge { min-height: var(--eb-sq); display: inline-flex; align-items: center; padding: 0 12px; font-size: 13px; }
/* Bouton Actions (widget partagé) : même taille partout — listes, tableaux des commandes, livraisons, paiements, cartes cadeaux, promotions, réservations… */
body.is-admin-context .actionsDropdownWidget > .btn.dropdown-toggle,
body.is-admin-context .btn.dropdown-toggle:is([title="Actions"], [data-original-title="Actions"]),
body.is-admin-context .emiLst-badges .btn.dropdown-toggle,
body.is-admin-context .emiLst .btn.dropdown-toggle {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 6px;
  height: var(--eb-sq) !important; min-height: var(--eb-sq) !important; min-width: 56px;
  padding: 0 .75rem !important; font-size: 13px !important; line-height: 1 !important; vertical-align: middle;
}
body.is-admin-context .actionsDropdownWidget > .btn.dropdown-toggle i,
body.is-admin-context .btn.dropdown-toggle:is([title="Actions"], [data-original-title="Actions"]) i { font-size: 15px !important; margin: 0 !important; }
body.is-admin-context .actionsDropdownWidget > .btn.dropdown-toggle::after { margin-left: 2px; vertical-align: middle; }

/* ---------- Désarchiver : carré jaune (même forme que Archiver) ---------- */
body.is-admin-context .btn.btn-sm:is([title="Desarchiver"], [data-original-title="Desarchiver"], [title="Désarchiver"], [data-original-title="Désarchiver"]) {
  background-color: #facc15; border-color: #facc15; color: #1f2937;
}
body.is-admin-context .btn.btn-sm:is([title="Desarchiver"], [data-original-title="Desarchiver"], [title="Désarchiver"], [data-original-title="Désarchiver"]):hover {
  background-color: #eab308; border-color: #eab308; color: #111827;
}

/* ---------- QR code : carré à icône seule, icône un peu plus grande ---------- */
body.is-admin-context .btn.btn-sm:is([title="Télécharger le QRCode"], [data-original-title="Télécharger le QRCode"],
  [title="Partager"], [data-original-title="Partager"]) i,
body.is-admin-context .btn.btn-sm:is([title="Télécharger le QRCode"], [data-original-title="Télécharger le QRCode"],
  [title="Partager"], [data-original-title="Partager"]) svg { font-size: 19px !important; }

/* ---------- Ajouter : tout bouton « + » est vert (catégories, sous-catégories, champs…) ---------- */
body.is-admin-context .btn:is(:has(> i.fa-plus), :has(> i.fa-circle-plus), :has(> i.fa-square-plus), :has(> svg.fa-plus)) {
  background-color: var(--eb-green) !important; border-color: var(--eb-green) !important; color: #fff !important;
}
body.is-admin-context .btn:is(:has(> i.fa-plus), :has(> i.fa-circle-plus), :has(> i.fa-square-plus), :has(> svg.fa-plus)):hover {
  background-color: var(--eb-green-h) !important; border-color: var(--eb-green-h) !important;
}

/* ---------- Partager (cartes produits) : carré ardoise, comme Partager dans les listes ---------- */
body.is-admin-context .btn.btn-sm:is([title="Partager"], [data-original-title="Partager"]) {
  background-color: var(--eb-slate) !important; border-color: var(--eb-slate) !important; color: #fff !important;
}
body.is-admin-context .btn.btn-sm:is([title="Partager"], [data-original-title="Partager"]):hover {
  background-color: var(--eb-slate-h) !important; border-color: var(--eb-slate-h) !important;
}

/* ---------- Listes paramétrables : poignée (marges du tableau) et badge Actif à la hauteur des boutons ---------- */
body.is-admin-context .pl-drag-handle { margin: 0 !important; }
body.is-admin-context .btnBloc[style*="position:static"] {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 6px;
  min-height: var(--eb-sq); padding: 0 12px !important; font-size: 13px !important; vertical-align: middle;
  border-radius: var(--eb-r) !important; box-shadow: var(--eb-shadow);
}
/* Les pastilles posées sur les images des cartes gardent leur arrondi standard */
body.is-admin-context .btnBloc { border-radius: var(--eb-r) !important; }

/* ---------- Produits en liste : boutons d'état (En ligne / Nouveauté / Réservations) au format des badges ---------- */
body.is-admin-context .annListeEtats .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  width: 130px !important; min-height: 30px; padding: 0 10px !important; font-size: 12px !important; font-weight: 600;
  border-radius: var(--eb-r) !important; box-shadow: var(--eb-shadow); color: #fff !important;
}
body.is-admin-context .annListeEtats .btn[style*="background-color:green"],
body.is-admin-context .annListeEtats .btn[style*="background-color: green"] { background-color: var(--eb-online) !important; }
body.is-admin-context .annListeEtats .btn[style*="background-color:red"],
body.is-admin-context .annListeEtats .btn[style*="background-color: red"] { background-color: var(--eb-offline) !important; }

/* ---------- Boutons avec texte (hors barre du haut) : même hauteur que les badges et les carrés ---------- */
body.is-admin-context .btn.emi-btn-txt {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: var(--eb-sq); padding: 0 14px !important; font-size: 13px !important; font-weight: 600;
  white-space: nowrap; text-transform: none; vertical-align: middle;
}
/* Signature : sélecteur de modèle (le modèle actif garde la couleur du site) */
body.is-admin-context .sigTplBtnGroup .sigTplBtn { min-height: var(--eb-sq); padding: 0 14px; border-width: 1.5px; }
/* Dans la barre du haut, un bouton texte prend la hauteur de Retour / Ajouter */
body.is-admin-context .menuPageTop .btn.emi-btn-txt { min-height: 36px; font-size: 14px !important; }
/* Bouton à icône seule hors cartes (ex. « Gérer les types de formulaire » à côté d'une liste) : carré standard */
body.is-admin-context .btn.emi-btn-sq {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: var(--eb-sq); height: var(--eb-sq); min-height: var(--eb-sq); padding: 0 !important; font-size: 15px !important;
}
/* Galerie photos : boutons Trier / Supprimer posés par le module de dépôt (dropzone) */
body.is-admin-context .dropzone .dz-preview a.dz-remove,
body.is-admin-context .dropzone .dz-preview a[data-dz-sortable] {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--eb-sq);
  padding: 0 14px !important; font-size: 13px; font-weight: 600; border-radius: var(--eb-r); text-decoration: none;
}
body.is-admin-context .dropzone .dz-preview a.dz-remove { background-color: var(--eb-red); color: #fff !important; }
body.is-admin-context .dropzone .dz-preview a[data-dz-sortable][style*="13a6c2"] { background-color: var(--eb-blue) !important; border-color: var(--eb-blue); }
