/* ORENIQ ULTRACODE-01 : pièces jointes et analyse transversale (éléments créés par ultracode.js seulement si le serveur
   publie /ultracode/status ; sinon aucune règle ne s'applique). Couleurs : tokens de palette.css et app.css. */
.btn-joindre { display: inline-flex; align-items: center; gap: var(--space-2); align-self: flex-end; min-height: 48px; }
.btn-joindre .icone { flex: none; }
.ultracode-barre {
  flex-basis: 100%; margin: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-md);
  background: var(--info-fond); color: var(--info-texte); border: 1px solid var(--info-bord);
  font-size: 14px; line-height: 20px;
}
.ultracode-barre[hidden] { display: none; }
.ultracode-barre { flex-wrap: wrap; }
.ultracode-barre-texte { flex: 1 1 16rem; }

/* Mode de mission : Analyser | Coder (bouton pressé = mode actif). */
.ultracode-modes { display: inline-flex; flex: none; }
.ultracode-modes .btn-secondaire { border-radius: 0; min-height: 36px; padding: 0 var(--space-3); color: var(--info-texte); border-color: var(--info-texte); }
.ultracode-modes .btn-secondaire:first-child { border-radius: var(--radius-md) 0 0 var(--radius-md); }
.ultracode-modes .btn-secondaire:last-child { border-radius: 0 var(--radius-md) var(--radius-md) 0; border-left-width: 0; }
.ultracode-modes .btn-secondaire[aria-pressed="true"] { background: var(--info-texte); color: var(--info-fond); }
.ultracode-modes .btn-secondaire:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Mission Code : bulle mise à jour en place, actions d'accord, diff, téléchargement. */
.message.ultracode-code { white-space: normal; }
.message.ultracode-code .points { display: inline-flex; margin-top: var(--space-2); }
.ultracode-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.ultracode-actions .btn-principal, .ultracode-actions .btn-secondaire { min-height: 44px; }
.ultracode-diff {
  margin: var(--space-1) 0 var(--space-2); padding: var(--space-2); max-height: 22rem; overflow: auto;
  font-family: var(--font-mono); font-size: 12px; line-height: 18px; white-space: pre; border-radius: var(--radius-md);
  background: var(--surface); border: 1px solid var(--line);
}
.ultracode-diff .plus { color: var(--ok-texte); }
.ultracode-diff .moins { color: var(--erreur-texte); }
.ultracode-telecharger { display: inline-flex; align-items: center; margin-top: var(--space-3); min-height: 44px; text-decoration: none; }
.ultracode-telecharger:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
/* BUILDER-02C (D5) : « Mes projets » et « Fermer » (ex-« Terminer », qui effaçait) dans la barre. */
.ultracode-barre .btn-fermer-projet, .ultracode-barre .btn-mes-projets { color: var(--info-texte); border-color: var(--info-texte); flex: none; }
/* BUILDER-02B : choix des projets en cours (liste native) et reprise explicite d'un travail interrompu. */
.ultracode-projets {
  flex: 0 1 18rem; min-width: 0; max-width: 100%; min-height: 36px; padding: 0 var(--space-2);
  font: inherit; font-size: 14px; color: var(--info-texte); background: var(--info-fond);
  border: 1px solid var(--info-texte); border-radius: var(--radius-md);
}
.ultracode-projets[hidden] { display: none; }
.ultracode-projets:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ultracode-barre .btn-fermer-projet[hidden], .ultracode-barre .btn-mes-projets[hidden], .ultracode-modes[hidden] { display: none; }
/* Rappels neutres de l'historique repris (projet retrouvé ou ouvert, décision) : discrets, jamais en style d'erreur. */
.message.ultracode-reprise, .message.ultracode-decision { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.ultracode-barre-texte { min-width: 0; overflow-wrap: anywhere; }

/* Bulles Ultracode de l'utilisateur : la règle d'en-tête « .utilisateur { display: flex } » (app.css) atteint aussi les
   bulles « message utilisateur » et met l'heure en colonne étroite à droite du texte ; corrigé ICI pour les seules
   bulles Ultracode (le chat existant n'est pas modifié par ce lot ; défaut signalé à part). */
.message.utilisateur.ultracode-question { display: block; }
.message.ultracode-manifeste, .message.ultracode-reponse { white-space: normal; }
.message.ultracode-reponse > span:first-child { white-space: pre-wrap; display: block; }
.ultracode-titre { display: block; font-weight: 600; }
.ultracode-comptes { display: block; margin-top: var(--space-1); font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.ultracode-details { margin-top: var(--space-2); }
.ultracode-details summary { cursor: pointer; font-size: 14px; line-height: 20px; color: var(--accent-text); font-weight: 600; }
.ultracode-details summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.ultracode-liste { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.ultracode-fichier { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-2); font-size: 14px; line-height: 20px; }
.ultracode-nom { font-family: var(--font-mono); font-size: 13px; overflow-wrap: anywhere; min-width: 0; }
.ultracode-taille { color: var(--ink-muted); font-size: 12px; }
.ultracode-statut { padding: 0 var(--space-2); border-radius: var(--radius-full); font-size: 12px; line-height: 20px; font-weight: 600; border: 1px solid; }
.ultracode-statut.ok { background: var(--ok-fond); color: var(--ok-texte); border-color: var(--ok-bord); }
.ultracode-statut.info { background: var(--info-fond); color: var(--info-texte); border-color: var(--info-bord); }
.ultracode-statut.erreur { background: var(--erreur-fond); color: var(--erreur-texte); border-color: var(--erreur-bord); }
.ultracode-note { display: block; flex-basis: 100%; margin-top: var(--space-1); font-size: 12px; line-height: 16px; color: var(--ink-muted); overflow-wrap: anywhere; }
.ultracode-sources-titre { display: block; margin-top: var(--space-3); font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-muted); }
.ultracode-sources { margin: var(--space-1) 0 0; padding-left: var(--space-4); font-size: 14px; line-height: 20px; }
.ultracode-attente-texte { display: block; margin-top: var(--space-1); font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* BUILDER-02C : panneau « Mes projets » (boîte de dialogue native, modale) : une carte par projet utilisable ; défilement
   interne ; aucune largeur fixe au-delà de l'écran (mobile : presque toute la largeur). */
.ultracode-mes-projets {
  width: min(640px, calc(100vw - 32px)); max-height: min(85vh, 760px); padding: 0; overflow: auto;
  color: var(--ink); background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-lg);
}
.ultracode-mes-projets::backdrop { background: rgba(0, 0, 0, 0.35); }
.ultracode-mes-projets-tete {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);
  padding: var(--space-3) var(--space-4); background: var(--surface-raised); border-bottom: 1px solid var(--line);
}
.ultracode-mes-projets-titre { margin: 0; font-family: var(--font-display); font-size: 18px; line-height: 26px; font-weight: 600; }
.ultracode-mes-projets-fermer { flex: none; min-height: 40px; }
.ultracode-mes-projets-info { margin: var(--space-3) var(--space-4) 0; }
.ultracode-mes-projets-liste { list-style: none; margin: 0; padding: var(--space-3) var(--space-4) var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); }
.ultracode-projet {
  display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; padding: var(--space-3);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md);
}
.ultracode-projet-tete { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-2); min-width: 0; }
.ultracode-projet-nom { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.ultracode-projet-etat {
  padding: 0 var(--space-2); border-radius: var(--radius-full); font-size: 12px; line-height: 20px; font-weight: 600;
  background: var(--info-fond); color: var(--info-texte); border: 1px solid var(--info-bord);
}
.ultracode-projet-ouvert { font-size: 12px; line-height: 20px; color: var(--ink-muted); }
.ultracode-projet-details { font-size: 13px; line-height: 18px; color: var(--ink-muted); overflow-wrap: anywhere; }
.ultracode-projet-echeance { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink); }
.ultracode-projet-actions { margin-top: var(--space-2); }
.ultracode-supprimer-projet { color: var(--erreur-texte); border-color: var(--erreur-bord); }
.ultracode-projet-actions button:focus-visible, .ultracode-mes-projets-fermer:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

@media (max-width: 600px) {
  .btn-joindre .libelle-joindre { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .btn-joindre { padding: var(--space-2); }
  .ultracode-mes-projets { width: calc(100vw - 24px); max-height: 88vh; }
  .ultracode-mes-projets-tete, .ultracode-mes-projets-liste { padding-left: var(--space-3); padding-right: var(--space-3); }
  .ultracode-mes-projets-info { margin-left: var(--space-3); margin-right: var(--space-3); }
  .ultracode-projet-actions button { flex: 1 1 auto; }
}
