/* =========================================================================
 * SOMMAIRE
 * =========================================================================
 *  1. Hover — animations
 *  2. Pages légales (CGV / mentions légales)
 *  3. Accessibilité — focus & formulaires / touch targets / mouvement réduit
 *  4. Couleurs & fonds (variables :root, backgrounds, bordures)
 *  5. Utilitaires (spacing, tailles, largeurs)
 *  6. Animation — rotation 360°
 *  7. Effet soulignement au survol
 *  8. HTMX — indicateur de chargement
 *  9. Rotations statiques (décoration)
 * 10. Boutons — centrage icônes Material Symbols
 * 11. Images de profil
 * 12. Liste des membres
 * 13. Profil membre individuel
 * 14. Badge score IA — photo de profil
 * 15. Gestion profil utilisateur
 * 16. Centrage icônes (générique) / autocomplétion / admin
 * 17. Bouton upload image personnalisé
 * 18. Badges — états chat / demandes
 * 19. Demandes et chat
 * 20. Icônes Lucide — infos utilisateurs
 * 21. Page d'accueil
 * ========================================================================= */

/* =========================================================================
 * HOVER — ANIMATIONS
 * ========================================================================= */

.hovered-zoom:hover {
  -ms-transform: scale(1.1);
  /* IE 9 */
  -webkit-transform: scale(1.1);
  /* Safari 3-8 */
  transform: scale(1.1);
}

.hovered-zoom2:hover {
  -ms-transform: scale(1.7);
  /* IE 9 */
  -webkit-transform: scale(1.7);
  /* Safari 3-8 */
  transform: scale(1.7);
}

.hovered-style {
  /* Bordure transparente permanente : évite le décalage de layout (jump) au hover */
  border-bottom: 4px solid transparent;
  max-width: max-content;
}

.hovered-style:hover {
  color: rgb(235, 185, 223) !important;
  border-bottom-color: rgb(235, 185, 223);
}

.animation-rotation-hovered:hover {
  animation-name: rotate;
  animation-duration: 0.7s;
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(8deg);
  }

  0% {
    transform: rotate(0deg);
  }
}

.background-image1 {
  position: relative;
  background-size: cover;
  background-position: 50%;
}

.background-image1::after {
  content: "";
  background-image: url(../../assets/img/image_fond_acceuil1.webp);
  opacity: 0.3;
  /* Définis l'opacité entre 0 et 1 */
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  position: absolute;
  z-index: -1;
  background-size: cover;
  background-position: 50%;
}

.background-image2 {
  position: relative;
  background-size: cover;
  background-position: 50%;
}

.background-image2::after {
  content: "";
  background-image: url(../../assets/img/image_fond_acceuil2.webp);
  opacity: 0.4;
  /* Définis l'opacité entre 0 et 1 */
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  position: absolute;
  z-index: -1;
  background-size: cover;
  background-position: 50%;
}

.background-image3 {
  position: relative;
  background-size: cover;
  background-position: 50%;
}

.background-image3::after {
  content: "";
  background-image: url(../../assets/img/background_erreur404.webp);
  opacity: 0.5;
  /* Définis l'opacité entre 0 et 1 */
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  position: absolute;
  z-index: -1;
  background-size: cover;
  background-position: 50%;
}

/* ======================================================================= */
/* FIN HOVER — ANIMATIONS                                                */
/* ======================================================================= */

/* ===================================================================== */
/* SECTION : PAGES LÉGALES (CGV / mentions légales)                      */
/* ===================================================================== */

/* Override Grandstander pour le texte de corps : polices système pour meilleure lisibilité */
.cgv-body-text,
.legal-content p {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 1rem;
  line-height: 1.6;
  color: #212529; /* High contrast body ink */
  max-width: 75ch; /* Limit line length for readability */
  margin-bottom: 1rem;
}

/* Encart légal : information critique (restrictions d'âge, remboursements, etc.) */
.legal-callout {
  background-color: #f7edf7; /* purple-panel-light from DESIGN.md */
  border-left: 4px solid #8c204e; /* bordeaux accent */
  padding: 1rem 1.25rem;
  margin: 1.5rem 0;
  border-radius: 0.375rem; /* md radius */
}

.legal-callout strong {
  color: #8c204e; /* Bordeaux heading */
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 700;
}

.legal-callout p {
  margin: 0.5rem 0;
  color: #212529;
}

/* Séparateur visuel entre articles majeurs */
.article-section-break {
  margin: 2.5rem 0 1.5rem 0;
  border-top: 1px solid #dee2e6; /* gray-border from DESIGN.md */
  padding-top: 1.5rem;
}

.article-section-break:first-of-type {
  margin-top: 1.5rem;
}

/* Titre h2 (groupes majeurs) : hiérarchie améliorée */
.cgv-content h2 {
  font-family: Grandstander, sans-serif;
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1.2;
  color: #8c204e; /* bordeaux-heading */
  margin-top: 2rem;
  margin-bottom: 1rem;
  letter-spacing: -0.02em; /* Tighter but not cramped */
}

/* Titre h3 (sous-articles) : style cohérent */
.cgv-content h3 {
  font-family: Grandstander, sans-serif;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.2;
  color: #8c204e; /* bordeaux-heading */
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
}

/* Listes dans le contenu légal */
.legal-content li {
  margin-bottom: 0.75rem;
  color: #212529;
}

/* États focus pour navigation clavier */
.legal-content a:focus {
  outline: 2px solid #8c204e;
  outline-offset: 2px;
  border-radius: 2px;
}

.legal-content a {
  color: #7e1b6a; /* link-violet from DESIGN.md */
  text-decoration: none;
  border-bottom: 1px solid #7e1b6a;
  transition: color 0.15s ease-out, border-color 0.15s ease-out;
}

.legal-content a:hover {
  color: #d56bbe; /* link-violet-hover */
  border-bottom-color: #d56bbe;
}
/* FIN SECTION PAGES LÉGALES */

.border-decoration {
  border-color: #8c203e;
  border-style: solid;
  border-width: 3px;
}

.border-decoration-black {
  border-color: #000000;
  border-style: solid;
  border-width: 2px;
}

.border-decoration-pink {
  border-color: #6e1861;
  border-style: solid;
  border-width: 3px;
  border-radius: 4px;
}

.rose-background1 {
  background-color: #f2d7ee;
}

:root {
  --color-bg-primary: #f0ebf0;
  --color-bg-secondary: #f7edf7;
  --color-accent: #d187c6;
  --color-accent-dark: #b8698f;
  --color-text-secondary: #4a4a4a;
  --color-text-muted: #7b809a;
  --color-bg-grey: #bdafbd;
  --color-border: #e91e63;
  --focus-outline: #e91e63;
}

.rose-background2 {
  background-color: var(--color-accent);
}

.purple-background1 {
  background-color: var(--color-bg-primary);
}

.purple-background2 {
  background-color: var(--color-bg-secondary);
}

.grey-background1 {
  background-color: var(--color-bg-grey);
}

/* ======================================================================= */
/* ACCESSIBILITÉ — FOCUS & FORMULAIRES                                   */
/* ======================================================================= */
.form-control::placeholder,
.form-select::placeholder {
  color: var(--color-text-secondary);
  opacity: 1;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
button:focus-visible,
.btn:focus-visible,
a:focus-visible {
  outline: 3px solid var(--focus-outline);
  outline-offset: 2px;
}

.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"] {
  color: var(--color-text-secondary);
}

.text-secondary {
  color: var(--color-text-secondary) !important;
}

/* ======================================================================= */
/* ACCESSIBILITÉ — TAILLE MINIMALE DES ZONES TACTILES                    */
/* ======================================================================= */
.btn,
button,
input[type="submit"],
.form-control,
.form-select {
  min-width: 44px;
}

.btn-sm,
input[type="submit"][class*="btn-sm"] {
  min-height: 44px;
  padding: 0.75rem 1rem;
}

/* ======================================================================= */
/* CARTES PHOTO                                                          */
/* ======================================================================= */
.photo-card {
  border: none;
}

.photo-action-btn {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ======================================================================= */
/* ACCESSIBILITÉ — PRÉFÉRENCE MOUVEMENT RÉDUIT                           */
/* ======================================================================= */
@media (prefers-reduced-motion: reduce) {
  .htmx-indicator {
    animation: none !important;
    opacity: 1 !important;
  }
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.grey-background2 {
  background-color: #dfd8df;
}

.green-background1 {
  background-color: #113813;
}

.green-background2 {
  background-color: #e4f0df;
}

.green-background3 {
  background-color: #438e49;
}

.red-background1 {
  background-color: #781a1a;
}

.red-background2 {
  background-color: #ffd8d8;
}

.no-padding {
  padding: unset !important;
}

.no-margin {
  margin: unset !important;
}

.no-padding-left-right {
  padding-left: unset !important;
  padding-right: unset !important;
}

.no-padding-top-bottom {
  padding-top: unset !important;
  padding-bottom: unset !important;
}

.max-width-height-image {
  max-width: 230px;
  max-height: 230px;
}

.width-image-230 {
  width: 230px;
  height: auto;
}

.button-fixed-width {
  width: 150px;
}

/* ======================================================================= */
/* ANIMATION — ROTATION 360°                                             */
/* ======================================================================= */
@keyframes rotation360 {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.anim-rotation {
  animation: rotation360 2s linear infinite;
}

/* ======================================================================= */
/* FIN ANIMATION — ROTATION 360°                                         */
/* ======================================================================= */


/* ======================================================================= */
/* EFFET SOULIGNEMENT AU SURVOL                                          */
/* ======================================================================= */
.soulignement-effet {
  position: relative;
  text-decoration: none;
  margin-top: 8px;
}

/* Ajoute un pseudo-élément après l'élément pour créer le soulignement */
.soulignement-effet::after {
  content: '';
  position: absolute;
  width: 0;
  height: 4px;
  /* Épaisseur du soulignement */
  bottom: 0;
  left: 0;
  background-color: rgb(101, 7, 48);
  /* Couleur du soulignement */
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  margin-top: 8px;
}

/* Styles pour l'animation du soulignement au survol */
.soulignement-effet:hover::after {
  visibility: visible;
  width: 100%;
  transition: width 0.5s ease-in-out;
  /* Durée de l'animation */
  margin-top: 8px;
}

.height-maxcontent {
  height: max-content;
}

.width-maxcontent {
  width: max-content;
}

.font-30px {
  font-size: 30px;
}

/* ======================================================================= */
/* HTMX — INDICATEUR DE CHARGEMENT                                       */
/* ======================================================================= */

.htmx-indicator {
  display: none;
}

.htmx-request .htmx-indicator {
  display: inline;
}

.htmx-request.htmx-indicator {
  display: inline;
}

.blur-image {
  filter: blur(3px);
}

/* ======================================================================= */
/* ROTATIONS STATIQUES (DÉCORATION)                                      */
/* ======================================================================= */

.rotate-right-5deg {
  transform: rotate(5deg);
}

.rotate-left-5deg {
  transform: rotate(-5deg);
}

.rotate-left-2deg {
  transform: rotate(-2deg);
}

input {
  text-align: center;
}

select {
  text-align: center;
}

/* ======================================================================= */
/* BOUTONS — CENTRAGE ICÔNES MATERIAL SYMBOLS                            */
/* ======================================================================= */

.btn>.material-symbols-outlined {
  line-height: unset;
}

/* ======================================================================= */
/* IMAGES DE PROFIL                                                      */
/* ======================================================================= */

.image-profil-recherche {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
}

.image-profil-recherche img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Permet de couvrir toute la div en conservant les proportions */
}

.image-profil {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  overflow: hidden;
}

.image-profil img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Permet de couvrir toute la div en conservant les proportions */
}

.image-profil-grand {
  width: 220px;
  height: 220px;
  border-radius: 50%;
  overflow: hidden;
}

.image-profil-grand img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Permet de couvrir toute la div en conservant les proportions */
}

.image-profil-chat {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  overflow: hidden;
}

.image-profil-chat img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.curseur-pointeur {
  cursor: pointer;
}

/* ======================================================================= */
/* FIN IMAGES DE PROFIL                                                  */
/* ======================================================================= */

/* ======================================================================= */
/* LISTE DES MEMBRES                                                     */
/* ======================================================================= */
.membres-page {
  color: #212529;
}

.membres-hero {
  padding-top: 0.5rem;
}

.membres-hero-icon {
  width: 76px;
  height: 76px;
  object-fit: cover;
  border: 3px solid #f2d7ee;
  box-shadow: 0 2px 8px rgba(140, 32, 78, 0.12);
}

.membres-kicker {
  margin: 1rem 0 0.25rem;
  color: #8c204e;
  font-weight: 700;
}

.membres-hero h1 {
  margin-bottom: 0.35rem;
  color: #212529;
  text-wrap: balance;
}

.membres-hero h2 {
  margin-bottom: 0.75rem;
  color: #6c757d;
  font-size: 1.35rem;
}

.membres-hero h2 span {
  color: #8c204e;
}

.membres-intro {
  max-width: 760px;
  margin-bottom: 0.75rem;
  color: #3f3440;
  font-size: 1.1rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.membres-note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 720px;
  margin-bottom: 0;
  padding: 0.55rem 0.9rem;
  color: #5c1b59;
  background-color: #f7edf7;
  border: 1px solid #f2d7ee;
  border-radius: 0.75rem;
  line-height: 1.35;
}

.membres-search-panel {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  border: 1px solid #f2d7ee;
  border-radius: 0.75rem;
}

.membres-search-panel .form-control {
  min-height: 44px;
  color: #212529;
  background-color: #fff;
}

.membres-search-panel .form-control:focus {
  border-color: #8c204e;
  box-shadow: 0 0 0 0.2rem rgba(140, 32, 78, 0.12);
}

.membres-result-heading h3 {
  width: 100%;
  margin: 0;
  color: #5c1b59;
  font-size: 1.25rem;
}

.membres-profile-grid {
  padding-inline: 0.25rem;
}

.membres-profile-col {
  display: flex;
}

.membres-profile-card {
  width: 100%;
  min-height: 148px;
  border: 1px solid #dfd8df;
  border-radius: 0.75rem;
  box-shadow: none;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.membres-profile-card:hover,
.membres-profile-card:focus-within {
  border-color: #8c204e;
  box-shadow: 0 4px 8px rgba(140, 32, 78, 0.12);
  transform: translateY(-2px);
}

.membres-profile-card .image-profil-recherche {
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px #dfd8df;
}

.membres-profile-content {
  min-width: 0;
}

.membres-profile-link {
  display: block;
  color: #212529;
  text-decoration: none;
}

.membres-profile-link:hover,
.membres-profile-link:focus-visible {
  color: #7e1b6a;
  outline: none;
}

.membres-profile-link:focus-visible h5 {
  box-shadow: 0 0 0 0.2rem rgba(140, 32, 78, 0.16);
}

.membres-profile-link h5 {
  display: inline-block;
  max-width: 100%;
  padding: 0.15rem 0.25rem;
  border-radius: 0.375rem;
}

.membres-profile-badge {
  margin: 0.65rem 0 0.45rem;
  color: #fff;
}

.membres-profile-badge span.rounded-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.4rem 0.65rem;
  line-height: 1.15;
}

.membres-profile-badge .material-symbols-outlined {
  margin-right: 0;
  font-size: 1.15rem;
}

.membres-profile-date {
  margin-bottom: 0;
  color: #5d5360;
  font-size: 0.95rem;
}

.membres-empty-state {
  max-width: 520px;
  padding: 1rem 1.25rem;
  color: #3f3440;
  background-color: #f7edf7;
  border: 1px solid #f2d7ee;
  border-radius: 0.75rem;
}

.membres-empty-state h5 {
  margin-bottom: 0.35rem;
  color: #5c1b59;
}

.membres-empty-state p {
  margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
  .membres-profile-card {
    transition: none;
  }

  .membres-profile-card:hover,
  .membres-profile-card:focus-within {
    transform: none;
  }
}

@media screen and (max-width: 575px) {
  .membres-hero h1 {
    font-size: 2rem;
  }

  .membres-hero h2 {
    font-size: 1.15rem;
  }

  .membres-intro {
    font-size: 1rem;
  }

  .membres-search-panel {
    border-radius: 0.5rem;
  }

  .membres-profile-card {
    min-height: auto;
  }
}
/* ======================================================================= */
/* FIN LISTE DES MEMBRES                                                 */
/* ======================================================================= */

/* ======================================================================= */
/* PROFIL MEMBRE INDIVIDUEL                                              */
/* ======================================================================= */
.profil-page {
  color: #212529;
}

.profil-header {
  padding-top: 0.5rem;
}

.profil-header h1 {
  margin-bottom: 0.75rem;
  color: #212529;
  text-wrap: balance;
}

.profil-category-badge {
  width: min(100%, 420px);
  margin-bottom: 1rem;
  padding: 0.45rem 1rem;
  border-radius: 0.75rem;
}

.profil-category-badge h3 {
  margin: 0;
  color: #fff;
  font-size: 1.35rem;
}

.profil-main-panel,
.profil-identity-panel {
  border: 1px solid #f2d7ee;
}

.profil-identity-panel {
  gap: 1rem 0;
}

.profil-verifications {
  min-height: 44px;
}

.profil-verifications .material-symbols-outlined > div {
  border: 1px solid #f2d7ee;
}

.profil-page .image-profil-grand {
  border: 4px solid #fff;
  box-shadow: 0 0 0 1px #dfd8df, 0 4px 12px rgba(140, 32, 78, 0.12);
}

.profil-views-badge {
  margin-top: 0.9rem;
}

.profil-views-badge div {
  margin: 0;
  color: #fff;
}

.profil-views-badge div > span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.45rem 0.8rem;
  background-color: #d187c6;
  border-radius: 999px;
}

/* ======================================================================= */
/* BADGE SCORE IA — PHOTO DE PROFIL                                      */
/* ======================================================================= */
.score-ia-badge-wrapper {
  max-width: 90%;
  margin-left: auto;
  margin-right: auto;
}

.score-ia-badge {
  display: inline-block;
  padding: 0.5rem 0.9rem;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  border-radius: 0.75rem;
  white-space: normal;
}

.badge-score-ia-leger {
  background-color: #ffa726;
}

.badge-score-ia-modere {
  background-color: #f4511e;
}

.badge-score-ia-eleve {
  background-color: #c62828;
}

.profil-action-button {
  width: auto;
  min-height: 44px;
}

.profil-action-note {
  display: inline-block;
  max-width: 360px;
  margin-bottom: 0;
  padding: 0.55rem 0.85rem;
  color: #fff;
  border-radius: 0.75rem;
  line-height: 1.35;
}

.profil-moderation-actions .btn {
  min-width: 44px;
  min-height: 44px;
}

.profil-facts-card,
.profil-about-card,
.profil-info-section {
  border-radius: 0.75rem;
}

.profil-facts-card {
  padding: 0.9rem;
}

.profil-facts-card h6 {
  margin-bottom: 0.65rem;
}

.profil-about-card {
  background-color: #fff;
}

.profil-about-card p {
  margin-bottom: 0;
  color: #3f3440;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.profil-details-grid {
  gap: 1rem 0;
}

.profil-info-section {
  margin: 0 0.75rem 1rem;
  padding: 1rem;
  background-color: #fff;
  border: 1px solid #8c203e;
}

.profil-info-section h4 {
  color: #5c1b59;
}

.profil-detail-list {
  color: #3f3440;
}

.profil-detail-item {
  margin-bottom: 0.75rem;
  line-height: 1.35;
}

.profil-detail-item .material-symbols-outlined {
  color: #5c1b59;
}

.profil-availability-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

.profil-side-column {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.profil-eye-mark {
  width: min(100%, 180px);
  padding: 0.65rem;
  border-radius: 0.75rem;
}

.profil-eye-mark img {
  width: 96px;
  height: 96px;
  object-fit: cover;
}

.profil-gallery-loader {
  min-height: 3rem;
}

.profil-duration-card {
  margin-top: 1rem;
  margin-right: auto;
  margin-left: auto;
}

.profil-section-title {
  color: #212529;
}

.profil-evaluation-card {
  min-height: 240px;
}

.profil-carousel-inner {
  height: auto;
}

.profil-empty-state {
  max-width: 520px;
  padding: 1rem 1.25rem;
  color: #fff;
  border-radius: 0.75rem;
}

.profil-empty-state h3 {
  margin-bottom: 0;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.35;
}

.profil-modal-textarea {
  max-height: 150px;
}

@media screen and (max-width: 767px) {
  .profil-category-badge h3 {
    font-size: 1.15rem;
  }

  .profil-info-section {
    margin-right: 0;
    margin-left: 0;
  }

  .profil-availability-item {
    justify-content: space-between;
    text-align: left;
  }
}
/* ======================================================================= */
/* FIN PROFIL MEMBRE INDIVIDUEL                                          */
/* ======================================================================= */

/* ======================================================================= */
/* GESTION PROFIL UTILISATEUR                                            */
/* ======================================================================= */
.gestion-profil-page {
  color: #212529;
}

.gestion-profil-page > .container {
  padding-top: 1rem;
  padding-bottom: 1.5rem;
}

.gestion-profil-header {
  max-width: 860px;
  margin: 0 auto 1rem;
}

.gestion-profil-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 0.5rem;
  padding: 0.35rem 0.75rem;
  color: #5c1b59;
  background-color: #f7edf7;
  border: 1px solid #f2d7ee;
  border-radius: 999px;
  line-height: 1.2;
}

.gestion-profil-header h1 {
  margin-bottom: 0.5rem;
  color: #212529;
  font-size: 2.35rem;
  text-wrap: balance;
}

.gestion-profil-welcome {
  margin: 0 auto 0.75rem;
  color: #4f4551;
  font-size: 1.35rem;
  line-height: 1.4;
  text-wrap: balance;
}

.gestion-profil-alert {
  color: #fff;
  line-height: 1.45;
}

.gestion-profil-date {
  color: #3f3440;
  line-height: 1.35;
}

.gestion-profil-date span {
  color: #5d5360;
}

.gestion-profil-section-heading h3 {
  margin-bottom: 0.25rem;
  color: #5c1b59;
}

.gestion-profil-panel {
  border-radius: 0.75rem;
}

.gestion-profil-photo-panel {
  height: 100%;
  background-color: #fff;
}

.gestion-profil-photo-panel .image-profil-grand {
  border: 4px solid #fff;
  box-shadow: 0 0 0 1px #dfd8df, 0 4px 12px rgba(140, 32, 78, 0.12);
}

.gestion-profil-photo-panel p,
.gestion-profil-gallery-panel p {
  color: #4f4551 !important;
  line-height: 1.45;
}

.gestion-profil-gallery-panel {
  border: 1px solid #f2d7ee;
  box-shadow: none;
}

.gestion-profil-upload-zone {
  max-width: 360px;
  background-color: #fff;
  border-color: #8c203e;
  border-radius: 0.75rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.gestion-profil-upload-zone:hover,
.gestion-profil-upload-zone:focus-within {
  border-color: #5c1b59;
  box-shadow: 0 4px 8px rgba(140, 32, 78, 0.12);
}

.gestion-profil-page .form-control {
  min-height: 44px;
  color: #212529;
}

.gestion-profil-page textarea.form-control {
  min-height: 120px;
  text-align: left;
}

.gestion-profil-page .form-control:focus,
.gestion-profil-page .form-check-input:focus,
.gestion-profil-page .btn:focus-visible {
  border-color: #8c204e;
  box-shadow: 0 0 0 0.2rem rgba(140, 32, 78, 0.16);
}

.gestion-profil-warning-icon {
  font-size: 48px;
}

.gestion-profil-danger-actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #dfd8df;
}

.gestion-profil-danger-actions .btn {
  min-height: 44px;
  white-space: normal;
}

@media (prefers-reduced-motion: reduce) {
  .gestion-profil-upload-zone {
    transition: none;
  }
}

@media screen and (max-width: 767px) {
  .gestion-profil-page > .container {
    padding-top: 0.5rem;
  }

  .gestion-profil-header h1 {
    font-size: 2rem;
  }

  .gestion-profil-welcome {
    font-size: 1.15rem;
  }

  .gestion-profil-photos {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}
/* ======================================================================= */
/* FIN GESTION PROFIL UTILISATEUR                                        */
/* ======================================================================= */
/* ======================================================================= */
/* CENTRAGE ICÔNES (GÉNÉRIQUE)                                           */
/* ======================================================================= */

.centrage-icone {
  vertical-align: middle;
  margin-right: 5px;
}

/* ======================================================================= */
/* BOÎTE D'AUTOCOMPLÉTION                                                */
/* ======================================================================= */

.autocomplete-items {
  position: relative;
  border: 3px solid #403742;
  border-top-width: 3px;
  border-top-style: solid;
  border-top-color: rgb(64, 55, 66);
  z-index: 99;
  top: 5px;
  left: 0;
  right: 0;
  max-height: 250px;
  overflow-y: auto;
}

.autocomplete {
  position: relative;
  display: inline-block;
}

.autocomplete-items div {
  padding: 10px;
  cursor: pointer;
  background-color: #fff;
  border-bottom: 1px solid #d4d4d4;
}

.autocomplete-items div:hover {
  background-color: #e9e9e9;
}

/* ======================================================================= */
/* ADMIN — BOUTONS GESTION ARTICLES                                      */
/* ======================================================================= */
.boutons-gestion-article .btn {
  min-width: 36px;
  min-height: 36px;
  margin-right: 0.35rem;
  margin-left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 0.6em;
  padding-right: 0.6em;
  font-size: 1.1em;
  border-width: 2px;
  background: #fff;
  transition: background 0.15s, color 0.15s;
}

.boutons-gestion-article .btn i {
  font-size: 1.1em;
  vertical-align: middle;
}

.boutons-gestion-article .btn:hover {
  background: #f8f9fa;
  color: #222;
}

.boutons-gestion-article .btn:last-child {
  margin-right: 0;
}

@media (max-width: 600px) {
  .boutons-gestion-article .btn {
    min-width: 32px;
    min-height: 32px;
    font-size: 1em;
    padding-left: 0.3em;
    padding-right: 0.3em;
  }
}

@media screen and (max-width: 500px) {

  .image-profil-grand {
    width: 120px;
    height: 120px;
  }

}

@media screen and (max-width: 450px) {

  .image-profil-chat {
    display: none;
  }

  button,
  input[type="submit"] {
    padding: 8px !important;
  }

  .container {
    padding: 5px !important;
  }

  .mx-3 {
    margin-left: 2px !important;
    margin-right: 2px !important;
  }
}

/* ======================================================================= */
/* BOUTON UPLOAD IMAGE PERSONNALISÉ                                      */
/* ======================================================================= */
.input-upload-image {
  position: relative;
  display: flex;
  align-items: center;
}
.input-upload-image input[type="file"] {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  z-index: 2;
}
.input-upload-image .btn-upload {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  background: linear-gradient(90deg, #d187c6 0%, #8c203e 100%);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 0.6em 1.2em;
  font-size: 1em;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(140,32,62,0.08);
  transition: background 0.2s, box-shadow 0.2s;
  cursor: pointer;
  z-index: 1;
}
.input-upload-image .btn-upload:hover, .input-upload-image .btn-upload:focus {
  background: linear-gradient(90deg, #8c203e 0%, #d187c6 100%);
  box-shadow: 0 4px 16px rgba(140,32,62,0.15);
}
.input-upload-image .icon-upload {
  font-size: 1.2em;
  margin-right: 0.4em;
}
/* ======================================================================= */
/* FIN BOUTON UPLOAD IMAGE PERSONNALISÉ                                  */
/* ======================================================================= */

/* ======================================================================= */
/* BADGES — ÉTATS CHAT / DEMANDES                                        */
/* ======================================================================= */
.status-badge {
  display: inline-block;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-weight: 600;
  border: 2px solid;
  transition: all 0.3s ease;
}

.status-badge:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.status-accepted {
  background-color: #d4edda;
  color: #155724;
  border-color: #28a745;
}

.status-accepted:hover {
  background-color: #c3e6cb;
  box-shadow: 0 4px 12px rgba(40, 167, 69, 0.25);
}

.status-pending {
  background-color: #fff3cd;
  color: #856404;
  border-color: #ffe08a;
}

.status-pending:hover {
  background-color: #ffe8a3;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.25);
}

.status-refused {
  background-color: #f8d7da;
  color: #721c24;
  border-color: #f5c6cb;
}

.status-refused:hover {
  background-color: #f5c6cb;
  box-shadow: 0 4px 12px rgba(220, 53, 69, 0.25);
}

.status-unlocked {
  background-color: #e7d4f5;
  color: #5a189a;
  border-color: #c77dff;
}

.status-unlocked:hover {
  background-color: #d9c9f0;
  box-shadow: 0 4px 12px rgba(199, 125, 255, 0.25);
}

.status-cancelled {
  background-color: #fff3cd;
  color: #856404;
  border-color: #ffeaa7;
}

.status-cancelled:hover {
  background-color: #ffeaa7;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.25);
}

.status-terminated {
  background-color: #d4edda;
  color: #155724;
  border-color: #28a745;
}

.status-terminated:hover {
  background-color: #c3e6cb;
  box-shadow: 0 4px 12px rgba(40, 167, 69, 0.25);
}


.status-unknown {
  background-color: #e9ecef;
  color: #343a40;
  border-color: #ced4da;
}

.status-unknown:hover {
  background-color: #dde2e6;
  box-shadow: 0 4px 12px rgba(108, 117, 125, 0.2);
}
/* ======================================================================= */
/* FIN BADGES — ÉTATS CHAT / DEMANDES                                    */
/* ======================================================================= */

/* ======================================================================= */
/* DEMANDES ET CHAT                                                      */
/* ======================================================================= */
.demandes-page-lead {
  max-width: 760px;
  margin-bottom: 1rem;
  font-size: 1.05rem;
  line-height: 1.55;
}

.demandes-list-title {
  margin-bottom: 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  color: #212529;
}

.demandes-empty-state {
  border-radius: 0.75rem;
}

.demandes-section-heading {
  max-width: 760px;
}

.demandes-chat-layout {
  align-items: stretch;
  border-radius: 8px;
  gap: 1rem 0;
}

.demandes-sidebar,
.demandes-chat-column {
  display: flex;
  flex-direction: column;
}

.demandes-list-card,
.demandes-chat-card {
  min-height: 520px;
  max-height: calc(100vh - 220px);
}

.demandes-chat-column {
  margin-top: 0 !important;
}

.demandes-chat-card {
  display: flex;
  overflow: hidden;
}

.demandes-chat-messages {
  flex: 1 1 auto;
  min-height: 320px;
  overflow-wrap: anywhere;
}

.demandes-chat-footer {
  flex: 0 0 auto;
  background-color: #fff;
  border-top: 1px solid #dfd8df;
}


.discussion {
  width: 100%;
  background: transparent;
  border: 0;
  text-align: inherit;
  color: #212529;
  min-height: 72px;
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.discussion:hover,
.discussion:focus-visible {
  background-color: #f7edf7;
  box-shadow: inset 0 0 0 2px #8c204e;
  outline: none;
}

.discussion.purple-background1 {
  background-color: #f0ebf0;
  box-shadow: inset 0 0 0 2px #8c204e;
}

.discussion-content {
  min-width: 0;
}

.discussion-content h6 {
  overflow-wrap: anywhere;
}

.status-badge {
  line-height: 1.2;
  white-space: normal;
  vertical-align: middle;
}

#indicateur_chat_charg {
  min-height: 2rem;
}

@media screen and (max-width: 991px) {
  .demandes-list-card,
  .demandes-chat-card {
    min-height: auto;
    max-height: none;
  }

  .demandes-list-card {
    max-height: 45vh;
  }

  .demandes-chat-messages {
    min-height: 360px;
    max-height: 58vh;
  }
}

@media screen and (max-width: 450px) {
  .demandes-chat-layout {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0.5rem !important;
  }

  .demandes-intro {
    width: 100%;
  }

  .demandes-chat-messages {
    min-height: 320px;
  }

  .demandes-chat-footer .input-group {
    align-items: stretch;
  }
}
/* ======================================================================= */
/* FIN DEMANDES ET CHAT                                                  */
/* ======================================================================= */

/* ======================================================================= */
/* ICÔNES LUCIDE — INFOS UTILISATEURS                                    */
/* ======================================================================= */
.icon-lucide {
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
}

.icon-yes {
  color: #5c1b59;
}

.icon-no {
  color: #92242f;
}

.icon-empty {
  color: #6c757d;
}

/* Ajuster la couleur selon le contexte */
.text-primary .icon-yes {
  color: #6b1753;
}
/* ======================================================================= */
/* FIN ICÔNES LUCIDE — INFOS UTILISATEURS                                */
/* ======================================================================= */

/* ======================================================================= */
/* PAGE D'ACCUEIL                                                        */
/* ======================================================================= */
.home-page {
  color: #212529;
}

.home-hero {
  padding: 2.5rem 0 3rem;
}

.home-hero-content {
  position: relative;
  z-index: 1;
}

.home-hero-card,
.home-promise-card,
.home-steps-panel {
  border-radius: 0.75rem;
  box-shadow: 0 4px 8px rgba(140, 32, 78, 0.12);
}

.home-hero-card {
  width: min(100%, 1100px);
  padding: clamp(1.1rem, 2.6vw, 2.2rem);
}

.home-trust-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  margin: 0 auto 0.75rem;
  padding: 0.45rem 0.8rem;
  color: #5c1b59;
  background-color: #f7edf7;
  border: 1px solid #f2d7ee;
  border-radius: 999px;
  font-size: 0.95rem;
  line-height: 1.25;
}

.home-hero-card h1,
.home-hero-card h2,
.home-hero-content h3,
.home-main-card h2 {
  text-wrap: balance;
}

.home-hero-card h2 {
  max-width: 720px;
  margin: 0.75rem auto 0;
  color: #4f4551 !important;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.35;
}

.home-hero-visual {
  overflow: hidden;
  border-radius: 0.75rem;
  box-shadow: 0 4px 8px rgba(140, 32, 78, 0.12);
}

.home-intro,
.home-section-intro {
  max-width: 760px;
  margin-right: auto;
  margin-left: auto;
  color: #3f3440;
  line-height: 1.65;
  text-wrap: pretty;
}

.home-promise-card {
  background-color: #fff;
}

.home-promise-card h3 {
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  line-height: 1.35;
}

.home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

.home-hero-actions .btn {
  min-width: 180px;
}

.home-logo-mark {
  width: min(100%, 180px);
}

.home-steps-grid {
  align-items: stretch;
}

.home-steps-panel {
  height: 100%;
  padding: 1.25rem 1.5rem;
}

.home-steps-title {
  margin-bottom: 0.85rem;
  color: #5c1b59;
  font-size: 1.25rem;
  line-height: 1.25;
  text-align: center;
}

.home-steps-list {
  max-width: 100%;
  margin: 0;
  padding: 0 0 0 1.5rem;
  text-align: left;
}

.home-steps-list li {
  margin-bottom: 0.7rem;
  color: #3f3440;
  line-height: 1.5;
}

.home-steps-list li:last-child {
  margin-bottom: 0;
}

.home-main-container {
  margin-top: -1.25rem;
  position: relative;
  z-index: 2;
}

.home-main-card {
  padding: clamp(1rem, 2vw, 1.5rem);
}

.home-features .info {
  height: 100%;
  padding: 1rem;
  border: 1px solid #f2d7ee;
  border-radius: 0.75rem;
  background-color: #fff;
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.home-features .info:hover,
.home-features .info:focus-within {
  border-color: #8c204e;
  box-shadow: 0 4px 8px rgba(140, 32, 78, 0.12);
  transform: translateY(-2px);
}

.home-features .material-symbols-outlined {
  color: #8c204e;
  font-size: 2rem;
}

.home-features .info h5 {
  margin-top: 0.6rem;
  color: #5c1b59;
}

.home-features .info p {
  margin-bottom: 0;
  color: #3f3440;
  line-height: 1.45;
}

.home-stats-section,
.home-latest-section,
.home-signup-section {
  border-radius: 0.75rem;
}

.home-stats-section .stat-item,
.home-latest-section .stat-item {
  height: 100%;
  padding: 1rem;
  background-color: #fff;
  border: 1px solid #dfd8df;
  border-radius: 0.75rem;
  box-shadow: none;
}

.home-stats-section .stat-content h2 {
  margin-bottom: 0.25rem;
  color: #5c1b59;
}

.home-member-badge {
  width: fit-content;
  min-width: 160px;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.home-member-badge h6 {
  margin-bottom: 0;
  line-height: 1.15;
}

.home-latest-col {
  display: flex;
}

.home-latest-col .stat-item {
  width: 100%;
}

.home-signup-section .card-body.border-decoration,
.home-contact-section .card.border-decoration {
  background-color: #fff;
  border-radius: 0.75rem;
}

.home-signup-section .form-control,
.home-contact-section .form-control {
  min-height: 44px;
}

.home-signup-section .form-control:focus,
.home-contact-section .form-control:focus {
  border-color: #8c204e;
  box-shadow: 0 0 0 0.2rem rgba(140, 32, 78, 0.12);
}

.home-contact-section {
  display: flex;
  align-items: center;
}

.home-contact-section .card {
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .home-features .info {
    transition: none;
  }

  .home-features .info:hover,
  .home-features .info:focus-within {
    transform: none;
  }
}

@media screen and (max-width: 767px) {
  .home-hero {
    padding-top: 1.5rem;
  }

  .home-hero-card {
    width: 100%;
  }

  .home-hero-actions {
    justify-content: center;
  }

  .home-hero-visual,
  .home-logo-mark {
    width: 100%;
  }

  .home-steps-panel {
    padding: 1rem;
  }

  .home-steps-list {
    padding-left: 1.25rem;
  }

  .home-main-container {
    margin-top: 0;
  }
}

@media screen and (max-width: 450px) {
  .home-trust-label {
    border-radius: 0.75rem;
  }

  .home-hero-card h1 {
    font-size: 2rem;
  }

  .home-hero-card h2,
  .home-promise-card h3 {
    font-size: 1.15rem;
  }
}
/* ======================================================================= */
/* FIN PAGE D'ACCUEIL                                                    */
/* ======================================================================= */
