/* ============================================================
   ADMIN — boutons-icônes et actions des tableaux
   admin/components/table/table.css · codia-modules (socle « core »)
   ============================================================
   Styles de table.js (.icon-btn, .cell-actions). L'ordre des règles est
   celui de la cascade d'origine : la base .icon-btn d'abord, complétée
   ensuite (ne pas fusionner sans comparer les styles calculés).
   ============================================================ */
.icon-btn {
  background: none;
  border: 1px solid var(--c-line, rgba(10, 31, 56, 0.12));
  width: 30px;
  height: 30px;
  border-radius: 0;
  cursor: pointer;
  transition: all 0.2s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
  font-size: 14px;
}
.icon-btn:hover { background: var(--c-soft, #F7F3EC); border-color: var(--c-accent, #236FA8); }

/* Actions en bout de ligne, boutons icônes centrés. */
.cell-actions { display: flex; align-items: center; justify-content: center; gap: 6px; }
.cell-actions-head { text-align: center; }
.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--c-line, rgba(10, 31, 56, 0.12));
  background: var(--c-paper, #FDFCFA);
  color: var(--c-ink, #1A1A1A);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color 0.15s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), color 0.15s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), background 0.15s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
}
.icon-btn:hover { border-color: var(--c-accent, #236FA8); color: var(--c-accent, #236FA8); background: var(--c-soft, #F7F3EC); }
.icon-btn-danger:hover { border-color: var(--c-danger, #b3261e); color: var(--c-danger, #b3261e); background: var(--c-danger-soft, rgba(179, 38, 30, 0.06)); }
/* Bouton-icône commun à tous les tableaux de l'admin :
   action principale de la ligne en bleu ; bulle qui nomme l'action au survol
   et au focus clavier, ancrée à droite (ne sort pas du tableau). */
.icon-btn { position: relative; flex-shrink: 0; padding: 0; font: inherit; }
.icon-btn:focus-visible { outline: 2px solid var(--c-accent, #236FA8); outline-offset: 2px; }
.icon-btn:disabled { opacity: 0.45; cursor: default; pointer-events: none; }
.icon-btn-primary { color: var(--c-accent, #236FA8); border-color: var(--c-accent-soft, rgba(35, 111, 168, 0.45)); background: var(--c-accent-soft, rgba(35, 111, 168, 0.06)); }
.icon-btn-primary:hover { color: var(--c-on-strong, #fff); border-color: var(--c-accent, #236FA8); background: var(--c-accent, #236FA8); }
.icon-btn[data-tip]::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  padding: 5px 9px;
  border-radius: 4px;
  background: var(--c-primary, #0A1F38);
  color: var(--c-on-strong, #fff);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(3px);
  pointer-events: none;
  transition: opacity 0.15s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)), transform 0.15s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
  z-index: 5;
}
.icon-btn[data-tip]:hover::after, .icon-btn[data-tip]:focus-visible::after { opacity: 1; transform: none; }
/* Écran tactile : la bulle resterait affichée après un toucher. */
@media (hover: none) { .icon-btn[data-tip]::after { display: none; } }
/* Emplacement vide de la taille d'un bouton (APP.AdminTable.slot). */
.icon-btn-slot { width: 34px; height: 34px; flex-shrink: 0; }
