/* ORENIQ PJ-01 : pièces jointes du chat standard (éléments créés par pieces.js seulement si le serveur publie
   /pieces/status ; sinon aucune règle ne s'applique). Couleurs : tokens de palette.css et app.css. */
.btn-pieces {
  flex: none; align-self: flex-end; min-width: 48px; min-height: 48px; padding: 0;
  font-size: 24px; line-height: 1; font-weight: 500;
}
.btn-pieces:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Une seule expérience : le bouton propre d'Ultracode est masqué, le choix « Analyser avec Ultracode » le remplace. */
.pieces-actif #btn-joindre { display: none; }
.pieces-ultracode {
  flex: none; align-self: center; display: inline-flex; align-items: center; gap: var(--space-2);
  font-size: 14px; line-height: 20px; color: var(--texte-secondaire, inherit); cursor: pointer;
}
.pieces-ultracode[hidden] { display: none; }
.pieces-ultracode input { width: 18px; height: 18px; margin: 0; }

.pieces-zone {
  flex-basis: 100%; display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-md);
  background: var(--surface); border: 1px solid var(--line);
}
.pieces-zone[hidden] { display: none; }
.pieces-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pieces-liste:empty { display: none; }
.pieces-pastille {
  display: inline-flex; flex-direction: column; min-width: 0; max-width: 100%;
  padding: var(--space-1) var(--space-3); border-radius: var(--radius-md);
  background: var(--info-fond); color: var(--info-texte); border: 1px solid var(--info-bord);
  font-size: 13px; line-height: 18px;
}
.pieces-pastille.ok { background: var(--ok-fond, var(--info-fond)); color: var(--ok-texte, var(--info-texte)); border-color: var(--ok-bord, var(--info-bord)); }
.pieces-pastille.erreur { background: var(--erreur-fond, var(--info-fond)); color: var(--erreur-texte, var(--info-texte)); border-color: var(--erreur-bord, var(--info-bord)); }
.pieces-nom { font-weight: 600; overflow-wrap: anywhere; }
.pieces-detail { opacity: 0.85; }
.pieces-actions { display: inline-flex; align-items: center; }
.pieces-retirer { min-height: 36px; padding: 0 var(--space-3); }
.pieces-ligne { margin: 0; font-size: 14px; line-height: 20px; overflow-wrap: anywhere; }
.pieces-ligne[hidden] { display: none; }
.pieces-ligne.erreur { color: var(--erreur-texte, inherit); }

/* Noms des fichiers joints sous un message de l'utilisateur (conversation et historique). La règle d'en-tête
   « .utilisateur { display: flex } » (app.css) atteint aussi les bulles « message utilisateur » : corrigé ICI pour les
   seules bulles portant des fichiers (le chat existant n'est pas modifié), comme pour les bulles Ultracode. */
.message.utilisateur.avec-pieces { display: block; }
.message.avec-pieces > span:first-child { display: block; white-space: pre-wrap; }
.message .pieces-message {
  list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-1);
  font-size: 13px; line-height: 18px;
}
.message .pieces-message li {
  padding: 2px var(--space-2); border-radius: var(--radius-md); border: 1px solid currentColor; opacity: 0.85; overflow-wrap: anywhere;
}

/* Glisser-déposer : voile sur la conversation pendant le survol. */
#vue-chat { position: relative; }
.pieces-voile {
  position: absolute; inset: 0; z-index: 20; display: flex; align-items: center; justify-content: center; padding: var(--space-4);
  background: color-mix(in srgb, var(--surface) 88%, transparent); border: 2px dashed var(--focus);
  font-size: 18px; line-height: 26px; text-align: center; pointer-events: none;
}
.pieces-voile[hidden] { display: none; }
