* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
}

/* AJOUT : Forcer la bonne police pour les icônes Google.
   Le !important est nécessaire pour surcharger la règle globale "*" */
.material-symbols-outlined {
  font-family: 'Material Symbols Outlined' !important;
}
/* Assurez-vous que le body peut contenir les sections en position absolue */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  position: relative;
  overflow-x: hidden; /* Très important : cache ce qui dépasse */
}

/* 1. Style de base pour TOUTES les sections */
#main-section, #leftsection, #presentation-section, #texte-explicatif-section {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: transform 0.5s ease-in-out;
  backface-visibility: hidden;
  overflow-y: auto;
}

/* 2. Position par défaut de chaque section (main-section est à sa place, les autres sont à gauche) */
#main-section { transform: translateX(0); }
#leftsection { transform: translateX(-100%); }
#presentation-section { transform: translateX(-100%); }
#texte-explicatif-section { transform: translateX(-100%); }



/* 3. Définition des mouvements pour chaque état du <body> */

/* État 2 : la section gauche est active */
body.left-section-is-active #main-section { transform: translateX(100%); }
body.left-section-is-active #leftsection { transform: translateX(0); }
/* La section présentation reste cachée à gauche */
body.left-section-is-active #presentation-section { transform: translateX(-100%); }
/* La section texte-explicatif reste cachée à gauche */
body.left-section-is-active #texte-explicatif-section { transform: translateX(-100%); }

/* État 3 : la section présentation est active */
body.presentation-section-is-active #main-section { transform: translateX(100%); }
body.presentation-section-is-active #leftsection { transform: translateX(100%); }
body.presentation-section-is-active #presentation-section { transform: translateX(0); }

/* État 4 : la section texte-explicatif est active */
body.texte-explicatif-section-is-active #main-section { transform: translateX(100%); }
body.texte-explicatif-section-is-active #leftsection { transform: translateX(100%); }
body.texte-explicatif-section-is-active #texte-explicatif-section { transform: translateX(0); }




/* (Optionnel mais recommandé) État 1 : retour à la normale, la section principale est active */
body.main-section-is-active #main-section { transform: translateX(0); }
body.main-section-is-active #leftsection { transform: translateX(-100%); }
body.main-section-is-active #presentation-section { transform: translateX(-100%); }
body.main-section-is-active #texte-explicatif-section { transform: translateX(-100%); }

/* Petit style pour que le "lien" interne ressemble à un lien */
.menu-lien-interne {
  cursor: pointer;
  color: #007bff; /* Ou la couleur de vos liens */
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
}
.menu-lien-interne:hover {
  color: #0056b3;
  text-decoration: underline;
}

/* --- FIN : Code pour l'animation de transition --- */

.container {
  display: flex;
  height: 100vh;
}




.logo {
  max-width: 150px;
  margin-bottom: 20px;
}

/* --- SECTION IMPORTANTE POUR LES INDENTATIONS --- */
.sidebar nav ul {
  list-style: none;
  /* Supprimé le padding/margin ici pour permettre aux listes imbriquées de définir leur propre indentation */
  /* padding: 0; */ /* Ces lignes étaient implicites si le * les efface */
}

/* Cibler les listes imbriquées pour créer l'indentation */
.sidebar nav ul ul {
  /* Ajout d'un padding à gauche pour créer l'indentation pour les sous-listes */
  padding-left: 20px; /* Ajustez cette valeur selon la profondeur d'indentation désirée */
  margin-top: 5px; /* Petite marge au-dessus de la sous-liste pour la séparer */
}

.sidebar nav ul li {
  margin: 10px 0;
}

/* CORRECTION : Cible tous les liens dans la liste du menu latéral pour un affichage cohérent */
.sidebar nav ul li a,
#leftsection ul li a {
  text-decoration: none;
  color: #007bff;
  display: flex;
  align-items: center;
  gap: 10px;
}

.sidebar nav ul li a:hover,
#leftsection ul li a:hover {
  text-decoration: underline;
}

/* NOUVEAU : Style pour les icônes dans le menu latéral */
.sidebar-button .material-symbols-outlined,
.menu-lien-interne .material-symbols-outlined,
.sidebar nav a .material-symbols-outlined,
#leftsection ul a .material-symbols-outlined {
    color: #213467; /* Bleu CIVA pour l'icône */
    font-size: 22px; /* Taille cohérente pour les icônes de menu */
}


.footer {
  margin-top: auto;
  font-size: 0.9em;
  color: #555;
}

.experience {
  margin-top: 10px;
  color: #e6007e;
  font-weight: bold;
}

.content {
  flex-grow: 1;
  padding: 40px;
}

h1 {
  display: flex;
  flex-direction: column; /* Empile les enfants (top-line et header-title) verticalement */
  align-items: center;   /* Centre les enfants horizontalement */
  width: 100%;
  margin-bottom: 20px;
  font-size: 1.25em;
  color: #213467;
}

/* 2. Le conteneur de la ligne du haut (logo + menu) */
.header-top-line {
  position: relative; /* C'est LA LIGNE CRUCIALE. Elle devient le référent pour le positionnement absolu du menu. */
  width: 100%;
  display: flex;
  justify-content: center; /* Centre son contenu (le logo) par défaut */
  align-items: center;
}

/*h1 .header-title {
  /* C'est l'élément qui doit prendre tout l'espace restant.  * /
  flex-grow: 1; /* Il va s'étirer pour remplir l'espace vide. * /
  
  /* On supprime les marges qui ne sont plus nécessaires  * /
  margin: 0;
  
  /* Le reste est bon * /
  display: block;
  text-align: left;
  width: auto; /* La largeur est maintenant gérée par flex-grow * / 
} */

.highlight {
  color: #213467;
}

p {
  margin: 5px 0;
  line-height: 1.6;
}

.reduction {
  display: block;
  margin: 15px 0;
  color: #007bff;
  text-decoration: none;
}

.reduction:hover {
  text-decoration: underline;
}

/* Ajoutez ceci pour styliser le bouton comme un lien */
button#toggle-examples-button.reduction {
  /* Reprend les styles de a.reduction */
  display: block; /* ou inline-block selon le comportement souhaité, mais block suit a.reduction */
  margin: 15px 0;
  color: #007bff;
  text-decoration: none;

  /* Styles spécifiques pour le bouton pour qu'il ressemble à un lien */
  background: none; /* Supprime le fond par défaut du bouton */
  border: none; /* Supprime la bordure par défaut du bouton */
  padding: 0; /* Supprime le padding par défaut du bouton si nécessaire */
  font-family: Arial, sans-serif; /* Assure la même police */
  font-size: inherit; /* Utilise la taille de police du parent */
  cursor: pointer; /* Pour indiquer qu'il est cliquable */
  text-align: left; /* Aligne le texte à gauche, comme un lien typique */
  text-decoration: underline;
}

/* Assure le même effet au survol */
button#toggle-examples-button.reduction:hover {
  text-decoration: underline;
}

.question-box {
  margin-top: 30px;
  background: #fff;
  border: 1px solid #ccc;
  padding: 15px;
  border-radius: 8px;
}


/* Bouton Stop ajouté */
#button-stop {
  position: absolute;
  right: 15px; /*55px; /* Positionné à gauche du bouton d'envoi (ajustez si nécessaire) */
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  z-index: 10;
}
#button-stop img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}


/* Conteneur pour le textarea et l'icône, maintenant aligné à gauche */
.textarea-container {
  position: relative;
  display: flex; /* Permet d'aligner les éléments */
  align-items: flex-end; /* Aligne les éléments en bas */
  gap: 5px; /* Petit espace entre le textarea et l'icône */
  margin-top: 10px;
  width: 100%; /* Le conteneur prendra toute la largeur disponible du parent (.question-box) */
  max-width: none; /* Annuler le centrage automatique précédent */
  margin-left: 0; /* Retirer la marge gauche pour qu'il s'aligne à gauche */
  margin-right: 0;
  padding-left: 0; /* Retirer le padding gauche si le parent .question-box n'en a pas */
  padding-right: 0;
}

.textarea-container textarea {
  flex-grow: 1; /* Le textarea prend tout l'espace disponible */
  width: 100%; /* Prend toute la largeur du conteneur */
  /*padding: 10px; */
  /*padding-right: 110px; /* Laisse de la place pour les deux boutons (55px pour envoi + 10px espace + 10px pour stop + 25px marge de sécurité) */
  padding-left: 15px;
  padding-top: 10px;
  padding-bottom: 10px;  
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: none;
  box-sizing: border-box;
  overflow-y: hidden;
  min-height: 50px; /* Hauteur minimale */
  max-height: 150px; /* Hauteur maximale */
  padding-right: 27px; /* 55px; /* Assure de l'espace pour l'icône DANS le textarea. Ajustez si l'icône est trop proche du texte. */
  background-color: #f8f9fa; /* Fond léger pour le textarea */
  font-size: 1em; /* Pour que le texte soit de la même taille que le reste (bulles de chat) */
  line-height: 1.5; /* Améliore la lisibilité du texte sur plusieurs lignes */
}

/* Style pour le bouton d'envoi interne (l'icône) */
.textarea-container .send-btn-inner {
  position: absolute; /* Positionnement absolu */
  right: 10px; /* Positionné à droite du conteneur */
  top: 50%; /* Centré verticalement */
  transform: translateY(-50%); /* Ajuste le centrage vertical */
  background: transparent; /* Fond transparent */
  border: none; /* Pas de bordure */
  padding: 0; /* Pas de padding interne */
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px; /* Taille de l'icône */
  height: 30px; /* Taille de l'icône */
  z-index: 10; /* S'assure que l'icône est au-dessus du texte */
}

.textarea-container .send-btn-inner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain; /* Maintient le ratio de l'image */
  /* Pour la transparence : assurez-vous que fleche.webp est un PNG avec fond transparent. */
}

.textarea-locked {

font-weight: bold;
font-style: italic;

}

.sending-info {
  align-items: bottom;
  display: flex;
  /*font-weight: bold;*/
  /*font-style: italic;*/
  
  }

/* Les autres éléments comme les selects ou autres contrôles devraient être gérés différemment */
/* Si vous avez d'autres contrôles à côté du textarea, ils devront être dans un autre div */

.chat-controls-extra { /* Un div pour contenir d'autres contrôles si nécessaire */
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px; /* Espace au-dessus */
}




.send-btn img {
  display: block; /* Assure que l'image est un bloc pour mieux gérer son dimensionnement */
  width: 44px; /* Largeur fixe */
  height: 44px; /* Hauteur fixe */
  /* Pour que l'image fasse "1 ligne de hauteur" et soit transparente,
   il faut s'assurer que le bouton la contient correctement.
   La transparence de l'image "fleche.webp" dépend du fichier lui-même.
   Si le fond est bleu, il faut soit modifier le fichier image (fond transparent),
   soit utiliser un filtre CSS si c'est une couleur unie, mais le mieux est une image PNG avec transparence. */
  /* Si vous voulez que le bouton lui-même soit de la hauteur d'une ligne de texte,
     il faut gérer la hauteur du textarea et du conteneur (.controls) */
  /* Si vous voulez que l'image SOIT la ligne : */
  /* height: 1em; */ /* Adaptez 'em' à la taille de police courante si besoin */
  /* Mais comme vous avez spécifié 44x44, gardons cela et assurons-nous que le bouton l'englobe */
}
.send-btn:hover {
  background-color: #5848e5;
}

.disclaimer {
  font-size: 0.8em;
  color: #666;
  margin-top: 10px;
}

/* ====================================================================== */
/* == STYLES POUR LES BULLES DE RÉFÉRENCE (THÈME COHÉRENT CIVA) == */
/* ====================================================================== */

/* --- 1. Styles de base COMMUNS à toutes les bulles --- */
/* On groupe toutes les classes pour leur appliquer les mêmes propriétés de mise en forme */
.bulle-reference,
.bulle-reference-1, .bulle-reference-2, .bulle-reference-3,
.bulle-reference-4, .bulle-reference-5, .bulle-reference-6,
.bulle-reference-7, .bulle-reference-8, .bulle-reference-9,
.bulle-reference-10, .bulle-reference-11, .bulle-reference-12,
.bulle-reference-13, .bulle-reference-14, .bulle-reference-15 {
    display: inline-block;
    padding: 1px 6px !important;
    border-radius: 17px !important;
    margin: 0 4px !important;
    font-weight: bold !important;
    font-size: 0.75em !important;
    vertical-align: baseline !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    word-wrap: break-word;
    max-width: 100%;
    /* Ajout d'une bordure pour le rappel de couleur */
    border: 2px solid transparent !important;
}

/* --- 2. Styles SPÉCIFIQUES pour chaque bulle (couleurs) --- */

/* 1. Bleu CIVA (Style par défaut et N°1) */
/*.bulle-reference {
    border-color: #213467 !important;     /* Bordure ton sur ton * /
    color: #ffffff !important;           /* Texte blanc * /
}
.bulle-reference:hover,
.bulle-reference-1:hover {
    background-color: #3a528a !important;
    border-color: #3a528a !important;
}
*/
.bulle-reference-1 {
  /* 1. Un fond et une bordure gris clair, avec une très légère teinte bleue */
  background-color: #e4e8f0 !important; 
  border-color: #e4e8f0 !important;

  /* 2. Le "rappel" de la couleur CIVA se fait via la couleur du texte */
  color: #213467 !important;
}
.bulle-reference {
  background-color: #213467 !important; /* Bleu CIVA */
  border-color: #213467 !important;     /* Bordure ton sur ton */
  color: #ffffff !important;           /* Texte blanc */
}

/* On définit aussi un état au survol (hover) pour la cohérence */
.bulle-reference-1:hover {
  background-color: #d1d7e0 !important; /* Un gris légèrement plus foncé */
  border-color: #d1d7e0 !important;
  color: #213467 !important; /* Le texte ne change pas de couleur */
}

/* 2. Or Vif avec texte CIVA */
.bulle-reference-2 {
    background-color: #FFD700 !important; /* Or */
    color: #213467 !important;           /* Texte Bleu CIVA */
    border-color: #e0b400 !important;     /* Bordure dorée foncée */
}
.bulle-reference-2:hover { background-color: #e0b400 !important; }

/* 3. Vert d'eau avec bordure CIVA */
.bulle-reference-3 {
    background-color: #26A69A !important; /* Vert d'eau / Teal */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-3:hover { background-color: #00897B !important; }

/* 4. Orange Corail avec bordure CIVA */
.bulle-reference-4 {
    background-color: #FF7F50 !important; /* Corail */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-4:hover { background-color: #FF6347 !important; }

/* 5. Gris Clair avec texte CIVA */
.bulle-reference-5 {
    background-color: #e9ecef !important; /* Gris très clair */
    color: #213467 !important;           /* Texte Bleu CIVA */
    border-color: #ced4da !important;
}
.bulle-reference-5:hover { background-color: #ced4da !important; }

/* 6. Violet avec bordure CIVA */
.bulle-reference-6 {
    background-color: #9370DB !important; /* Violet moyen */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-6:hover { background-color: #8A2BE2 !important; }

/* 7. Vert Vif avec bordure CIVA */
.bulle-reference-7 {
    background-color: #32CD32 !important; /* Vert lime */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-7:hover { background-color: #228B22 !important; }

/* 8. Bleu Ciel Pâle avec texte CIVA */
.bulle-reference-8 {
    background-color: #e0f7fa !important; /* Bleu ciel très pâle */
    color: #213467 !important;           /* Texte Bleu CIVA */
    border-color: #b2ebf2 !important;
}
.bulle-reference-8:hover { background-color: #b2ebf2 !important; }

/* 9. Magenta avec bordure CIVA */
.bulle-reference-9 {
    background-color: #C71585 !important; /* Violet-rouge moyen */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-9:hover { background-color: #b21074 !important; }

/* 10. Rouge Tomate avec bordure CIVA */
.bulle-reference-10 {
    background-color: #d32f2f !important; /* Rouge foncé */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-10:hover { background-color: #b71c1c !important; }

/* 11. Vert Olive avec bordure CIVA */
.bulle-reference-11 {
    background-color: #808000 !important; /* Olive */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-11:hover { background-color: #6B8E23 !important; }

/* 12. Lavande Pâle avec texte CIVA */
.bulle-reference-12 {
    background-color: #e1e5f7 !important; /* Lavande très pâle */
    color: #213467 !important;           /* Texte Bleu CIVA */
    border-color: #d0d7f2 !important;
}
.bulle-reference-12:hover { background-color: #d0d7f2 !important; }

/* 13. Marron Sienne avec bordure CIVA */
.bulle-reference-13 {
    background-color: #A0522D !important; /* Sienne */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-13:hover { background-color: #8B4513 !important; }

/* 14. Rose Poudré avec texte CIVA */
.bulle-reference-14 {
    background-color: #fce4ec !important; /* Rose très pâle */
    color: #213467 !important;           /* Texte Bleu CIVA */
    border-color: #f8bbd0 !important;
}
.bulle-reference-14:hover { background-color: #f8bbd0 !important; }

/* 15. Indigo avec bordure CIVA */
.bulle-reference-15 {
    background-color: #4B0082 !important; /* Indigo */
    color: #ffffff !important;           /* Texte blanc */
    border-color: #213467 !important;     /* Rappel Bleu CIVA */
}
.bulle-reference-15:hover { background-color: #3A0067 !important; }


/* Style for clickable bubbles - Discret and muted */
.alias-bubble {
  display: inline-block;
  color:  #213467; 
  background-color:  #b0c0ec;
  padding: 8px 16px;
  border-radius: 20px;
  margin: 5px;
  cursor: pointer;
  user-select: none;
  border: 1px solid #ced4da; /* Subtle border to define the bubble */
  font-size: 0.9rem; /* Slightly smaller font for a more subtle appearance */
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; /* Smooth transition for hover effect */
  font-weight: bold;
}

.alias-bubble:hover {
  color: #ffffff;
  background-color:  #707a95;
}

/* --- NOUVEAU STYLE À AJOUTER --- */
/* Style pour la bulle de thématique active */
.alias-bubble.active {
  color: #ffffff;
  background-color: #213467; /* bleu CIVA */
  border-color: #213467;
}

.example-bubble {
  display: inline-block;
  background-color: #e9ecef; /* Light gray background */
  color: #495057; /* Dark gray text */
  padding: 8px 16px;
  border-radius: 20px;
  margin: 5px;
  cursor: pointer;
  user-select: none;
  border: 1px solid #ced4da; /* Subtle border to define the bubble */
  font-size: 0.9rem; /* Slightly smaller font for a more subtle appearance */
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; /* Smooth transition for hover effect */
}

.example-bubble:hover {
  background-color: #ced4da; /* Slightly darker gray on hover */
  color: #212529; /* Darker text on hover */
}


.civa-logo-img {
  float: none; /* Optionnel si vous n'avez pas de float ailleurs, mais le laisser ne fait pas de mal */
  display: inline-block; /* Permet à l'image de se comporter comme un élément de texte et d'être alignée */
  vertical-align: middle; /* Aligne l'image au milieu de la ligne de texte */
  height: 2em; /* Ajustez cette valeur pour correspondre à la hauteur de la ligne. 'em' est relatif à la taille de police du parent. */
  /* Vous pouvez aussi utiliser une valeur fixe en pixels, par ex. height: 20px; */
  width: auto; /* Pour maintenir les proportions de l'image */
  margin: 0 5px 0 0; /* Ajoute une petite marge à droite de l'image pour la séparer du texte, annule le centrage automatique horizontal */
  /* Si vous voulez toujours centrer l'image PAR RAPPORT AU CONTENEUR GLOBAL du texte : */
  /* Si le texte est dans un conteneur comme <p> ou <div>, et que vous voulez que ce CONTENEUR soit centré, il faut le centrer lui-même, pas l'image directement. */
  /* Si vous avez un besoin spécifique de centrer l'image DANS SA LIGNE, c'est plus complexe et nécessite souvent des conteneurs flexbox ou grid. */
  /* Pour l'objectif "après le texte, hauteur de ligne", le margin: 0 5px 0 0; est le plus pertinent. */
  background-color: transparent !important; /* Fond transparent */
  /*#6B8E23 */
}

.hidden {
  display: none !important;
}

.macif-chat-logo-right-float {
  float: right; /* Fait flotter le logo MACIF à droite */
  display: flex;
  align-items: center;
  color: #003366; /* Macif Dark Blue */
  white-space: nowrap; /* Empêche le texte de passer à la ligne */
  margin-left: 15px; /* Espace entre le logo MACIF et le texte CIVA */
  margin-top: 5px; /* Petit ajustement visuel */
  margin-bottom: 30px;
 }
 
 .macif-chat-logo-right-float img {
  width: 70px; /* Logo size in chat header */
  height: 35px;
  margin-right: 8px;
 }

/* 3. Le logo au centre (déjà géré par le parent) */
.macif-civa-logo-center-float {
  /* Pas besoin de styles de positionnement complexes ici. */
  /* On peut juste s'assurer qu'il a la bonne taille. */
}
.macif-civa-logo-center-float img {
  width: 250px;
  height: auto;
}

.macif-civa-logo-center-float img {
  width: 250px; /* Taille spécifiée */
  height: 125px; /* Taille spécifiée */
  max-width: 100%; /* S'assure que l'image ne dépasse JAMAIS la largeur de son conteneur */
  height: auto; /* Garde les proportions lors du redimensionnement si nécessaire, mais ici on fixe une hauteur */
  /* Si vous avez une hauteur fixe, assurez-vous qu'elle est compatible avec la largeur. */
  /* En général, on préfère fixer l'aspect ratio, ici les dimensions sont données donc on peut les utiliser */
  /* Si vous voulez juste la taille 140x70 : */
  /* width: 140px; */
  /* height: 70px; */
  /* object-fit: cover; */ /* Pour s'assurer que l'image couvre la zone tout en gardant son ratio */
}

/* 4. Le menu, positionné de manière absolue à droite */
.menu-lien {
  position: absolute; /* Sort du flux normal pour être placé précisément */
  left: 0;           /* Collé au bord droit de son parent relatif (.header-top-line) */
  top: 50%;           /* Positionné à 50% de la hauteur du parent */
  transform: translateY(-50%); /* Remonte de 50% de sa propre hauteur pour un centrage vertical parfait */
}
.menu-lien img {
  width: 25px;
  height: auto;
  cursor: pointer; /* Indique qu'il est cliquable */
}

.header-title {
  margin-top: 15px;    /* Conserve l'espace entre le logo et le titre */
  width: 100%;         /* Ligne clé : le conteneur du titre prend toute la largeur */
  text-align: left;    /* Ligne clé : le texte à l'intérieur s'aligne à gauche */
}

/* ============================================= */
/* == STYLES POUR LES BULLES DE CHAT          == */
/* ============================================= */
/* ============================================= */
/* == STYLES POUR LES BULLES DE CHAT          == */
/* ============================================= */

.message {
  position: relative; /* Indispensable pour le position: absolute des actions */
  display: block; 
  margin-bottom: 5px;
  border-left: 5px;
  border-radius: 15px;
  word-wrap: break-word;
  
  /* LA SOLUTION ROBUSTE : 
     On définit le padding normal en haut, bas et gauche (6px / 7px).
     MAIS on force un padding-right de 95px (largeur des 3 icônes + espaces).
     Cela crée une zone réservée à droite où le texte n'ira JAMAIS. */
  padding: 6px 95px 6px 7px;
}

.message-content-container {
  min-width: 0;
}

/* 1. On annule explicitement l'ancienne astuce du ::after qui causait le bug */
.message-content-container::after,
.main-content-wrapper::after,
.main-content-wrapper p::after {
  display: none !important;
}

/* 2. On nettoie au maximum les paragraphes vides générés par le LLM */
.main-content-wrapper p:empty {
  display: none !important;
}
.main-content-wrapper p:last-child {
  margin-bottom: 0; /* Évite un espacement inutile sous le dernier texte */
}

/* 3. Les actions restent en position absolue comme exigé */
.message-actions {
  position: absolute; 
  bottom: 6px;        /* S'aligne parfaitement avec le padding du bas */
  right: 7px;         /* Se place dans la zone protégée des 95px à droite */
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  z-index: 5;
}

/* --- STYLES SPÉCIFIQUES PAR TYPE DE MESSAGE --- */

.message.user {
  /*background-color: #007bff;
  color: white;
  */
  background-color: #e9ecef; /* Light gray background */
  color: #495057; /* Dark gray text */
  margin-left: auto;
  border-bottom-right-radius: 5px;
  max-width: 85%;
}


/* NOUVEAU STYLE COMME DEMANDÉ */
.message.assistant {
  background-color: #fdfdfd; /* Fond blanc très clair */
  border: 1px solid #213467; /* Bordure fine avec la couleur demandée */
  color: #333;
  margin-right: auto;
  border-bottom-left-radius: 5px;
  max-width: 100%;
}

/* Styles des boutons dans la bulle */
.action-button {
  font-size: 22px; /* Contrôle la taille de l'icône */
  width: 24px;     /* Assure une zone de clic cohérente */
  height: 24px;    /* Assure une zone de clic cohérente */
  display: inline-flex; /* Permet un centrage parfait de l'icône */
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s, transform 0.2s;
}

.action-button:hover {
  opacity: 1;
  transform: scale(1.1);
}

/* NOUVEAU : Style pour le bouton d'impact environnemental */
.action-button.impact-button {
  color: #28a745; /* Vert feuille */
}

.action-button.impact-button:hover {
  color: #218838; /* Vert plus foncé */
}
/* La classe que nous ajouterons pour le feedback */
.action-button.copy-success {
  /*border-radius: 15px !important;
  /* Une bordure verte pour indiquer le succès (NE MARCHE PAS, IL FAUT PASSER PAR UN CONTENER AU DESSUS)
  border-color: #159232; /* Un vert standard pour "succès" * /
  border: 2px solid transparent !important;
  */
  /* On fait "popper" légèrement le bouton pour attirer l'oeil */
  transform: scale(1.25);
  
  /* Optionnel : une ombre verte pour un effet "glow" */
  /*box-shadow: 0 0 10px rgba(40, 167, 69, 0.5);*/
  box-shadow: 0 0 10px rgba(9, 100, 30, 0.5);

}


/* Styles spécifiques pour les boutons de feedback */
.feedback-button {
  width: 24px;
  height: 24px;
  opacity: 0.6;
  border: 2px solid transparent;
  border-radius: 50%;
  padding: 2px;
  box-sizing: border-box;
  transition: all 0.2s ease-in-out;
}
li
.feedback-selected {
  opacity: 1 !important;
  transform: scale(1.1);
  border-color: #007bff;
}

.feedback-button.negative.feedback-selected {
  border-color: #dc3545;
}

.feedback-button:hover {
  opacity: 1;
  transform: scale(1.05);
}

/* --- STYLES POUR LES LISTES DANS LES MESSAGES --- */
.message-content-container ul,
.message-content-container ol {
  margin-top: 1em;
  margin-bottom: 1em;
  padding-left: 40px; /* Indentation correcte */
}

.message-content-container li {
  margin-bottom: 0.5em;
}


/* --- STYLES POUR LA FENETRE MODALE D'INFORMATION --- */

/* L'arrière-plan grisé qui couvre toute la page */
.modal-overlay {
  display: none; /* Caché par défaut */
  position: fixed; /* Reste en place même si on scrolle */
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.6); /* Noir semi-transparent */
  z-index: 1000; /* Au-dessus de tout le reste */
  /* On retire justify-content et align-items car le positionnement est maintenant manuel */
}

/* La classe pour afficher la modale */
.modal-overlay.visible {
  display: block; /* On passe de flex à block */
}

/* Le conteneur de la fenêtre modale elle-même */
.modal-container {
  /* On passe de relative à absolute pour pouvoir le placer précisément */
  position: absolute;
  background-color: #ffffff;
  padding: 25px 30px;
  border-radius: 8px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  width: 90%;
  max-width: 700px; /* Largeur maximale */
  max-height: 85vh; /* Hauteur maximale */
  overflow-y: auto; /* Ajoute une barre de défilement si le contenu est trop long */
  font-family: Arial, sans-serif;
  /* La position (top/left) sera définie par JavaScript */
}

/* Le bouton pour fermer (la croix '×') */
.modal-close-btn {
  position: absolute;
  top: 10px;
  right: 15px;
  border: none;
  background: none;
  font-size: 2rem;
  font-weight: bold;
  color: #888;
  cursor: pointer;
  line-height: 1;
}
.modal-close-btn:hover {
  color: #333;
 
}

/* La zone où le contenu est affiché */
.modal-content {
  /*color: #333; */
  color: #240000;
}

/* Styles pour le contenu formaté DANS la modale */
.modal-content h3 {
  color: #213467;
  margin-top: 0;
  margin-bottom: 20px;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 10px;
}

/* Utilisation d'une liste de description pour les attributs */
.modal-content dl {
  margin-top: 15px;
}

.modal-content dt {
  font-weight: bold;
  color: #555;
  margin-top: 10px;
}

.modal-content dd {
  margin-left: 20px;
  margin-bottom: 10px;
  background-color: #f8f9fa;
  padding: 8px;
  border-radius: 4px;
  border: 1px solid #e9ecef;
  word-break: break-word; /* Coupe les longs liens pour éviter le débordement */
}

/* Style spécifique pour le contenu de la balise 'title' pour préserver les sauts de ligne */
.modal-content .modal-title-css-content {
  white-space: pre-wrap; /* Essentiel pour respecter les retours à la ligne */
  background-color: #e9f5ff;
  border-left: 4px solid #007bff;
  padding: 15px;
  margin: 15px 0;
  font-family: monospace;
  font-size: 0.9em;
  color:#213467 ; /* Bleu CIVA */
}

/* Rendre les liens dans la modale cliquables et stylisés */
.modal-title-css-content a {
  /*color: #007bff;*/
  /*color:yellow */
  color: inherit !important; 
  font-weight: inherit !important; 
  font-size: inherit !important; 
  text-decoration: underline;
}


/* ============================================= */
/* == STYLES POUR L'AFFICHAGE DE CODE (<code>) == */
/* ============================================= */

/* --- 1. Style pour le code "EN LIGNE" (inline) --- */
/* Cible les balises <code> qui ne sont PAS dans une balise <pre> */
:not(pre) > code {
  font-family: 'Consolas', 'Monaco', 'Menlo', 'Courier New', monospace;
  background-color: #f3f4f6; /* Fond gris très clair */
  color: #4b5563;           /* Texte gris foncé */
  padding: 3px 6px;         /* Espace intérieur */
  border-radius: 5px;       /* Coins arrondis */
  font-size: 0.9em;         /* Taille de police légèrement réduite */
  border: 1px solid #e5e7eb; /* Bordure subtile */
}

/* --- 2. Style pour les "BLOCS" de code --- */
/* La balise <pre> est utilisée pour préserver les espaces et sauts de ligne */
pre {
  font-family: 'Consolas', 'Monaco', 'Menlo', 'Courier New', monospace;
  background-color: #282c34; /* Fond sombre (thème "Atom One Dark") */
  color: #abb2bf;           /* Texte gris clair pour une bonne lisibilité */
  padding: 1.2em 1.5em;      /* Espace intérieur généreux */
  border-radius: 8px;        /* Coins arrondis */
  overflow-x: auto;          /* Barre de défilement horizontale si une ligne est trop longue */
  margin: 1.5em 0;           /* Marge verticale pour séparer du reste du contenu */
  font-size: 0.95em;
  line-height: 1.5;          /* Espacement entre les lignes pour plus de clarté */
}

/* On s'assure que la balise <code> dans <pre> n'hérite pas des styles du code en ligne */
pre code {
  background-color: transparent !important;
  padding: 0;
  border: none;
  color: inherit; /* Hérite de la couleur de la balise <pre> */
  font-size: inherit; /* Hérite de la taille de la balise <pre> */
}


fieldset {
  /* Style de la bordure */
  border: 1px solid #ccc;
  border-radius: 8px; /* Bords arrondis */
  
  /* Espace intérieur pour que le contenu ne colle pas à la bordure */
  padding: 5px;

  /* Marge extérieure pour l'espacement avec les autres éléments */
  margin-bottom: 10px;

  font-size: 0.75em;
}

legend {
  /* Style du texte du titre */
  /*font-weight: bold;*/
  color: #333;

  /* Petit espacement pour que la bordure ne touche pas le texte */
  padding: 0 5px;
  
  /* Décale un peu le titre du bord gauche */
  margin-left: 10px;
}


.prevent-selection {
  -webkit-user-select: none; /* Safari */
  -moz-user-select: none;    /* Firefox */
  -ms-user-select: none;     /* IE/Edge */
  user-select: none;         /* Standard */
}

/* AJOUT POUR LE BOUTON DÉSACTIVÉ SI CGU NON ACCEPTÉES */
.send-btn-inner.disabled-cgu {
  opacity: 0.4;             /* Rend l'icône plus transparente */
  cursor: not-allowed;      /* Affiche un curseur d'interdiction au survol */
  filter: grayscale(100%);  /* Met l'icône en noir et blanc */
}

/* ======================================================= */
/* == AJOUTS POUR LE BOUTON DE COPIE DE CONVERSATION    == */
/* ======================================================= */

.copy-conversation-container {
  display: flex;
  justify-content: flex-end; /* Modifié pour aligner à droite */
  padding: 10px 0;
  margin-bottom: 10px;
}

.copy-conversation-btn {
  background-color: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 20px;
  padding: 3px 8px; /* Réduit le padding pour un bouton plus compact */
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8em;
  transition: background-color 0.2s;
}

/* Style de l'icône à l'intérieur du bouton de copie de conversation */
.copy-conversation-btn img {
  width: 20px; /* Même largeur que les boutons d'action individuels */
  height: 20px; /* Même hauteur que les boutons d'action individuels */
}

.copy-conversation-btn:hover {
  background-color: #e0e0e0;
}

/* ======================================================= */
/* == AJOUTS POUR LES BOUTONS DE SCROLL HAUT/BAS        == */
/* ======================================================= */

#scroll-buttons-container {
  position: fixed;
  bottom: 100px; /* A ajuster pour être au-dessus de la zone de saisie */
  right: 25px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  z-index: 999; /* Pour être au-dessus du contenu mais sous les modales */
}

.scroll-btn {
  width: 44px;
  height: 44px;
  background-color: rgba(33, 52, 103, 0.8); /* Bleu CIVA semi-transparent */
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  transition: background-color 0.2s, transform 0.2s;
}

.scroll-btn:hover {
  background-color: #213467; /* Bleu CIVA plein */
  transform: scale(1.1);
}


/* ======================================================= */
/* == AJOUTS POUR LA RESPONSIVITÉ (SMARTPHONES) == */
/* ======================================================= */

/* On applique ces styles sur les écrans de 768px de large ou moins */
@media (max-width: 768px) {

  /* 1. On cache l'adresse email et le séparateur pour gagner de la place */
  /* 2. On réduit la taille du logo pour qu'il s'intègre mieux */
  .macif-civa-logo-center-float img {
    width: 150px; /* Taille réduite (ajustez à 150px ou 200px si besoin) */
    /* La hauteur s'ajustera automatiquement grâce à height: auto; déjà présent */
  }

  .menu-lien {
    left: 15px; /* On ajoute un petit espace à gauche pour la symétrie */
  }
  
  /* 4. Optionnel : Réduire la taille du titre principal si nécessaire */
  .header-title {
    font-size: 1em; /* Un peu plus petit pour mieux s'adapter */
  }

  /* 5. On déplace les boutons de scroll pour ne pas gêner sur mobile */
  #scroll-buttons-container {
    bottom: 85px;
    right: 15px;
  }
  .scroll-btn {
    width: 40px;
    height: 40px;
  }
}

/* --- NOUVEAU : Styles pour l'animation de chargement dans le bouton (carré rouge qui tourne) --- */

/* 1. Définition de l'animation de rotation */
@keyframes civa-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* 2. Style de l'icône "stop" qui sera animée */
.stop-btn-inner .stop-icon-animated {
  display: block; /* Nécessaire pour que la transformation s'applique */
  color: #dc3545; /* Un rouge "danger" standard */
  animation: civa-spin 1.5s linear infinite;
}

/* 3. Au survol, on arrête l'animation et on change l'apparence pour un feedback clair */
.stop-btn-inner:hover .stop-icon-animated {
  animation: none; /* Arrête l'animation */
  color: #ffffff; /* L'icône devient blanche pour un meilleur contraste */
  transform: scale(1.1); /* On grossit un peu l'icône pour indiquer qu'elle est cliquable */
}

/* NOUVEAU : Ajout d'un fond rouge au survol du bouton stop pour le rendre plus visible */
.stop-btn-inner:hover {
    background-color: #dc3545; /* Fond rouge "danger" */
    border-radius: 50%; /* Pour faire un cercle autour de l'icône */
}
/* --- Styles pour l'historique dans le menu de gauche --- */

.history-separator {
  border: none;
  border-top: 1px solid #e0e0e0;
  margin: 20px 0;
}

.sidebar-button {
    width: 100%;
    padding: 10px 15px;
    margin-bottom: 20px;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    font-size: 0.95em;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background-color 0.2s;
}

.sidebar-button:hover {
    background-color: #f0f0f0;
}

.sidebar-button .icon {
    font-size: 1.2em;
    font-weight: bold;
}

.history-title {
    font-size: 0.8em;
    font-weight: 600;
    color: #666;
    text-transform: uppercase;
    margin: 0 0 10px 5px;
}

#history-list {
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-y: auto; /* Ajoute une barre de défilement si la liste est longue */
    max-height: 40vh; /* Limite la hauteur pour ne pas pousser le reste hors de l'écran */
}

.history-item {
    padding: 10px;
    border-radius: 5px;
    cursor: pointer;
    margin-bottom: 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.9em;
    transition: background-color 0.2s;
}

.history-item:hover, .history-item.active {
    background-color: #e9e9e9;
}

.history-item span {
    flex-grow: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

.delete-history-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1em;
    color: #888;
    padding: 0 5px;
    opacity: 0; /* Caché par défaut */
    transition: opacity 0.2s;
    flex-shrink: 0; /* Empêche le bouton de rétrécir */
}

.history-item:hover .delete-history-btn {
    opacity: 1; /* Apparaît au survol de l'item */
}

.delete-history-btn:hover {
    color: #d9534f; /* Rouge au survol du bouton */
}

/* NOUVEAU : Conteneurs du menu latéral pour le positionnement du menu utilisateur */
.leftsection-overlay, .leftsection-container {
    height: 100%;
}
.leftsection-content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* ======================================================= */
/* == STYLES POUR LES ICÔNES (MATERIAL SYMBOLS)         == */
/* ======================================================= */

/* Style de base pour toutes les icônes de l'en-tête */
.menu-lien .material-symbols-outlined,
.logout-link .material-symbols-outlined {
  font-size: 28px;
  color: #333;
  vertical-align: middle;
  transition: color 0.2s;
}

.menu-lien:hover .material-symbols-outlined,
.logout-link a:hover .material-symbols-outlined {
  color: #007bff;
}

.menu-lien {
  left: 15px;
  cursor: pointer; /* AJOUT : Le curseur pointeur est maintenant sur toute la zone cliquable */
}
.back-link {
  left: 15px;
}

/* Style pour les icônes dans la zone de saisie */
.textarea-container .send-btn-inner,
.textarea-container .stop-btn-inner {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  z-index: 10;
}

.textarea-container .send-btn-inner {
  right: 5px;
}

.textarea-container .stop-btn-inner {
  right: 5px; /* Même position, car ils s'affichent alternativement */
}

.textarea-container .material-symbols-outlined {
  font-size: 28px;
  color: #213467;
  transition: color 0.2s;
}

.scroll-btn .material-symbols-outlined {
  font-size: 24px;
  color: white;
}

.textarea-container button:hover .material-symbols-outlined {
  color: #3a528a;
}

/* ======================================================= */
/* == AJOUTS POUR LE MENU UTILISATEUR DÉROULANT (RESPONSIVE) == */
/* ======================================================= */

/* --- Styles pour la version HEADER (Desktop par défaut) --- */
.header-top-line .user-menu-container {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    text-align: right;
}
.header-top-line .user-menu-dropdown {
    top: 100%;
    right: 0;
    min-width: 160px;
}
.header-top-line .user-menu-container:hover .user-email-display {
    background-color: #f0f0f0;
}

/* --- Styles pour la version SIDEBAR (Mobile) --- */
#user-menu-placeholder {
    margin-top: auto; /* Pousse le placeholder (et son futur contenu) en bas */
}
#user-menu-placeholder .user-menu-container {
    position: relative;
    /* Reset des styles de la version header */
    top: auto;
    right: auto;
    transform: none;
    /* Nouveaux styles pour l'intégration en bas du menu */
    background-color: #f8f9fa;
    border-top: 1px solid #e9ecef;
    margin: 0 -40px -40px -40px; /* Compense le padding du parent */
    padding: 15px 40px;
    text-align: left;
}
#user-menu-placeholder .user-menu-dropdown {
    top: auto; /* Reset */
    right: auto; /* Reset */
    bottom: 100%; /* S'ouvre vers le haut */
    left: 0;
    right: 0;
    min-width: 100%;
    margin-bottom: 5px;
}

/* NOUVEAU : Style pour le texte de l'email en mode mobile */
#user-menu-placeholder .user-email-text {
    font-weight: bold;
}

/* --- Styles COMMUNS aux deux versions --- */
.user-menu-container {
  font-size: 0.9em;
  color: #333;
  cursor: pointer;
}

/* NOUVEAU : Style pour l'icône utilisateur dans le menu */
.user-menu-icon {
    font-size: 22px; /* Légèrement plus petit pour s'intégrer */
    color: #213467; /* Bleu CIVA pour être cohérent */
}

.user-menu-container .user-email-display {
  display: flex;
  align-items: center;
  gap: 8px; /* Espace entre l'icône et le texte */
  padding: 8px 12px;
  border-radius: 5px;
  transition: background-color 0.2s;
}
.user-menu-dropdown {
  display: none;
  position: absolute;
  background-color: white;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  font-size: 0.80em;
  padding: 10px;
  z-index: 1001;
  text-align: left;
}
.user-menu-container:hover .user-menu-dropdown {
  display: block;
}

/* Style pour les informations de profil */
.user-profile-info {
  padding: 8px;
  font-size: 0.95em;
  color: #555;
}
.user-profile-info span {
  font-weight: bold;
  color: #213467;
}

/* Style pour la checkbox d'historisation DANS le menu */
.user-menu-dropdown .save-history-container {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  margin-left: 0; /* On annule la marge qui n'est plus nécessaire */
  font-size: 1em;
  border-radius: 5px;
  transition: background-color 0.2s;
}
.user-menu-dropdown .save-history-container:hover {
  background-color: #f0f0f0;
}

/* Séparateur dans le menu */
.user-menu-separator {
  border: none;
  border-top: 1px solid #e9ecef;
  margin: 5px 0;
}

/* Lien de déconnexion dans le menu */
.logout-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  color: #dc3545; /* Rouge pour la déconnexion */
  text-decoration: none;
  font-weight: bold;
  border-radius: 5px;
  transition: background-color 0.2s;
}
.logout-menu-item:hover {
  background-color: #f8d7da;
}
.logout-menu-item .material-symbols-outlined {
  color: #dc3545;
}

/* ======================================================= */
/* == STYLES POUR LA RÉVÉLATION DE MOT DE PASSE       == */
/* ======================================================= */

.password-container {
    position: relative;
    width: 100%;
}

.password-container input {
    width: 100%;
    padding-right: 45px !important; /* Espace pour l'icône */
    box-sizing: border-box;
}

.toggle-password-btn {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    display: flex;
    color: #888;
}

.toggle-password-btn:hover {
    color: #333;
}
.logout-menu-item .material-symbols-outlined {
  color: #dc3545;
}

/* ======================================================= */
/* == STYLES POUR LES MESSAGES FLASH (ALERTES)        == */
/* ======================================================= */

.flash-message {
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    border-radius: 4px;
}
.flash-message.success { color: #155724; background-color: #d4edda; border-color: #c3e6cb; }
.flash-message.danger { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; }
.flash-message.warning { color: #856404; background-color: #fff3cd; border-color: #ffeeba; }
.flash-message.info { color: #0c5460; background-color: #d1ecf1; border-color: #bee5eb; }

/* ======================================================= */
/* == AJOUTS POUR LA CHECKBOX CGU DANS LE CHAT          == */
/* ======================================================= */

.cgu-container {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  margin-bottom: 15px;
  padding: 12px 15px;
  background-color: #fff3cd; /* Jaune d'avertissement */
  border: 1px solid #ffeeba;
  border-radius: 8px;
  font-size: 0.9em;
  color: #856404;
}

.cgu-container input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0; /* Empêche la checkbox de rétrécir */
}

.cgu-container label a {
  color: #0056b3;
  font-weight: bold;
  text-decoration: underline;
}

/* Animation pour attirer l'attention si l'utilisateur oublie de cocher */
@keyframes shake {
  10%, 90% { transform: translateX(-1px); }
  20%, 80% { transform: translateX(2px); }
  30%, 50%, 70% { transform: translateX(-4px); }
  40%, 60% { transform: translateX(4px); }
}

/* ======================================================= */
/* == AJOUTS POUR RENOMMER/SUPPRIMER CONVERSATION       == */
/* ======================================================= */

.history-item {
    gap: 5px; /* Espace entre le titre et les boutons */
}

.history-item .rename-history-btn,
.history-item .delete-history-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    padding: 0 3px;
    opacity: 0; /* Caché par défaut */
    transition: opacity 0.2s, color 0.2s;
    flex-shrink: 0; /* Empêche les boutons de rétrécir */
    font-size: 20px; /* Taille de l'icône */
    font-family: 'Material Symbols Outlined' !important;
    line-height: 1;
}

.history-item:hover .rename-history-btn,
.history-item:hover .delete-history-btn {
    opacity: 0.7; /* Apparaît au survol de l'item */
}

.history-item .rename-history-btn:hover {
    opacity: 1;
    color: #007bff; /* Bleu au survol */
}

.history-item .delete-history-btn:hover {
    opacity: 1;
    color: #dc3545; /* Rouge au survol */
}

.history-rename-input {
    width: calc(100% - 60px); /* Prend la largeur moins l'espace pour les boutons */
    padding: 5px;
    border: 1px solid #007bff;
    border-radius: 4px;
    font-size: 0.9em;
}

/* ======================================================= */
/* == MODALE DE CONFIRMATION GÉNÉRIQUE                  == */
/* ======================================================= */

.confirm-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(0,0,0,0.6);
    display: flex; align-items: center; justify-content: center;
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}
.confirm-modal-overlay.visible { opacity: 1; visibility: visible; }
.confirm-modal-content {
    background-color: white; padding: 25px 30px; border-radius: 8px;
    text-align: center; max-width: 450px; width: 90%;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    transform: scale(0.9);
    transition: transform 0.3s;
}
.confirm-modal-overlay.visible .confirm-modal-content { transform: scale(1); }
.confirm-modal-content h3 { margin-top: 0; margin-bottom: 15px; color: #333; }
.confirm-modal-content p { margin-bottom: 25px; color: #555; }
.confirm-modal-buttons { display: flex; justify-content: center; gap: 15px; }
.confirm-modal-buttons .btn { border: none; padding: 10px 25px; border-radius: 5px; font-size: 1em; font-weight: bold; cursor: pointer; transition: background-color 0.2s; }
.confirm-modal-buttons .btn-danger { background-color: #dc3545; color: white; }
.confirm-modal-buttons .btn-danger:hover { background-color: #c82333; }
.confirm-modal-buttons .btn-secondary { background-color: #6c757d; color: white; }
.confirm-modal-buttons .btn-secondary:hover { background-color: #5a6268; }

/* --- Styles pour l'historique dans le menu de gauche --- */
/* --- Règles pour améliorer la responsivité du texte et la typographie --- */

/* Appliquer ces règles aux éléments de texte principaux */
#content-messages p,
.question-box p,
.message p,
.disclaimer,
.alias-bubble,
.example-bubble,
.user-profile-info span {
  /* Empêche les mots longs de déborder et permet la césure */
  word-wrap: break-word; /* Pour une compatibilité plus large */
  overflow-wrap: break-word; /* La propriété standard moderne */
  hyphens: auto; /* Active la césure automatique pour une meilleure répartition */
  
  /* Expérimental : peut améliorer la répartition des mots sur les lignes */
  /* text-wrap: balance; */ 
  /* Décommentez cette ligne si vous souhaitez tester cette propriété,
     mais gardez à l'esprit qu'elle n'est pas encore universellement supportée. */
}

/* Assurer que les titres s'adaptent aussi */
.header-title {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
  /* text-wrap: balance; */
}

/* Pour les guillemets isolés, la meilleure pratique est d'utiliser
   des espaces insécables (&nbsp; ou &#8239;) directement dans le contenu HTML.
   Les règles ci-dessus améliorent la fluidité générale du texte,
   ce qui peut réduire l'occurrence de guillemets isolés,
   mais ne les élimine pas complètement sans modification du contenu. */

   /* NOUVEAU : Styles pour centrer la modale d'impact */
#impact-modal-container {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
   /* NOUVEAU : Styles pour le contenu de la modale d'impact */
#impact-modal-content h3 {
  color: #213467;
  margin-top: 0;
  margin-bottom: 20px;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Suppression des marges et bordures inutiles */
.impact-modal-section h4 { display: none; }



.impact-metric-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}
.impact-metric-row:last-child {
  border-bottom: none;
}

.impact-metric-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: bold;
}

.impact-metric-row .material-symbols-outlined {
  color: #28a745; /* Icones en vert */
}

.impact-metric-row .impact-metric-value {
  font-family: monospace;
  font-size: 1.1em;
  font-weight: bold;
  color: #28a745; /* Label en vert */
}

.impact-equivalences-row {
  display: flex;
  justify-content: space-around;
  margin-top: 20px;
  gap: 20px;
}

.impact-equivalence-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  padding: 15px;
  background-color: #f8f9fa;
  border-radius: 8px;
  flex: 1;
  transition: transform 0.2s, box-shadow 0.2s;
}

.impact-equivalence-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.08);
}

.impact-equivalence-item .material-symbols-outlined {
  font-size: 36px;
  color: #0056b3;
}

.impact-equivalence-value {
  font-family: monospace;
  font-size: 1.2em;
  font-weight: bold;
}

/* ============================================= */
/* == STYLES POUR L'AFFICHAGE DE CODE (<code>) == */
/* NOUVEAU : Styles pour centrer la modale d'impact */

.impact-modal-section {
  background-color: #f0f0f0; /* Fond légèrement grisé */
  padding: 10px;
  margin-bottom: 10px;
}
#impact-modal-container {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
/* NOUVEAU : Styles pour le contenu de la modale d'impact */
#impact-modal-content h3 {
  color: #213467;
  margin-top: 0;
  margin-bottom: 20px;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Suppression des marges et bordures inutiles */
.impact-modal-section h4 { display: none; }


.impact-metric-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}
.impact-metric-row:last-child {
  border-bottom: none;
}

.impact-metric-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: bold;
}

.impact-metric-label .material-symbols-outlined {
  color: #0056b3;
}

.impact-metric-value {
  font-family: monospace;
}
/* ============================================= */
