/* ux-baseline.css — D-UX-BASELINE-20260720 (Ambre)
   Correctifs transversaux pour les cockpits a score UX < 70.
   Injecte page par page (batch de 5, E2E chacune). Ne change PAS l'identite
   visuelle de la page: uniquement lisibilite, focus, debordements, etats. */

/* 1. Focus clavier visible partout (22/22 pages en manquaient) */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid #7c9dff !important;
  outline-offset: 2px !important;
  border-radius: 4px;
}

/* 2. Tables scrollables sur petit ecran (debordement mobile) */
table { max-width: 100%; }
.ux-table-wrap, .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
@media (max-width: 760px) {
  table { display: block; overflow-x: auto; white-space: nowrap; }
}

/* 3. Garde-fou contraste: si la page declare un fond tres sombre,
   on force une couleur de texte par defaut lisible sur les elements
   qui n'ont pas de couleur explicite. (Heritage seulement — les couleurs
   explicites de la page gagnent.) */
body.ux-dark-guard { color: #d7dbea !important; }

/* 4. Etats standards prets a l'emploi (les pages peuvent les utiliser) */
.ux-empty, .ux-error, .ux-loading {
  padding: 22px; text-align: center; border-radius: 10px;
  font-size: 13px; letter-spacing: .3px;
}
.ux-empty  { color: #8b93ad; background: rgba(139,147,173,.08); }
.ux-error  { color: #f28ba0; background: rgba(242,139,160,.10); }
.ux-loading{ color: #9aa6cc; background: rgba(154,166,204,.08); }
.ux-loading::after { content: '…'; animation: uxdots 1.2s infinite; }
@keyframes uxdots { 0%{opacity:.3} 50%{opacity:1} 100%{opacity:.3} }

/* 5. Texte minimum lisible: interdit sous 9px via variables communes */
small, .small, .tiny { font-size: max(10px, 1em) !important; }

/* 6. Reduced motion respecte */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
