/* Indicateur d'avancement du traitement d'une ressource.
   Ligne dédiée : la ligne d'action porte déjà le badge de format, le sélecteur
   d'export et le bouton de téléchargement. */

.resource-traitement-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
  margin-top: 6px;
}

/* Vide tant que rien n'est à dire : la ligne ne doit pas creuser un espace sur
   une ressource ordinaire (PDF, image…), qui ne relève d'aucun traitement. */
.resource-traitement-row:empty {
  display: none;
  margin-top: 0;
}

.traitement-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border: 1px solid transparent;
  border-radius: 100px;
  /* Même taille que les boutons du thème (.btn), dont « Télécharger ». */
  font-size: 14px;
  line-height: 1.4;
}

.traitement-badge::before {
  content: '';
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  flex: none;
}

/* En attente et en cours : même code couleur, l'usager n'a pas à distinguer
   « accepté » de « démarré ». Le point pulse tant que le travail avance. */
.traitement-badge--en_file,
.traitement-badge--en_cours {
  background: #eaf2fb;
  border-color: #bcd4ee;
  color: #1c5384;
}

.traitement-badge--en_cours::before {
  animation: traitement-pulse 1.4s ease-in-out infinite;
}

@keyframes traitement-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.25; }
}

@media (prefers-reduced-motion: reduce) {
  .traitement-badge--en_cours::before {
    animation: none;
  }
}

.traitement-badge--termine {
  background: #e8f4ec;
  border-color: #bcdcc7;
  color: #1a5c46;
}

.traitement-badge--echec {
  background: #fbeaea;
  border-color: #eec4c4;
  color: #b03030;
}

/* Sondage abandonné : ni succès ni échec, le travail n'a simplement plus donné
   signe de vie. */
.traitement-badge--attente {
  background: #f4f1e8;
  border-color: #e0d9c4;
  color: #7a6420;
}

/* Message d'échec : parfois une trace technique de plusieurs lignes. Borné à
   l'affichage pour ne pas déformer la fiche ; le titre porte le texte entier. */
.traitement-badge__detail {
  display: inline-block;
  max-width: 42ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
  opacity: 0.85;
}

.traitement-badge__detail::before {
  content: '— ';
}

/* Relance après abandon du sondage : discret, ce n'est pas l'action principale. */
.traitement-relance {
  padding: 4px 12px;
  border: 1px solid #cfcfcf;
  border-radius: 100px;
  background: #fff;
  font-size: 14px;
  line-height: 1.4;
  cursor: pointer;
}

.traitement-relance:hover {
  border-color: #999;
  background: #f5f5f5;
}

/* Fermeture d'un message d'échec : il est terminal, donc réaffiché à chaque
   sondage et à chaque visite. L'usager doit pouvoir l'écarter. */
.traitement-badge__fermer {
  margin-left: 2px;
  padding: 0 2px;
  border: 0;
  background: none;
  color: inherit;
  font-size: 18px;
  line-height: 1;
  opacity: 0.65;
  cursor: pointer;
}

.traitement-badge__fermer:hover {
  opacity: 1;
}
