:root {
    --bs-purple: #6f42c1;       /* violet Bootstrap officiel */
    --bs-purple-dark: #59339d;
    --bs-purple-light: #e8ddfb;
}
/* Background */
.bg-purple {
    background-color: var(--bs-purple) !important;
}
/* Texte */
.text-purple, .link-purple {
    color: var(--bs-purple) !important;
    text-decoration: none !important;
}
/* Bordures */
.border-purple {
    border-color: var(--bs-purple) !important;
}
/* Boutons */
.btn-purple {
    color: #fff;
    background-color: var(--bs-purple);
    border-color: var(--bs-purple);
}
.btn-purple:hover {
    color: #A9A5BA;
    background-color: var(--bs-purple-dark);
    border-color: var(--bs-purple-dark);
}
/* Alert violet personnalisée */
.alert-purple {
    color: var(--bs-purple-dark);
    background-color: var(--bs-purple-light);
    border: 1px solid var(--bs-purple);
}
.alert-purple hr {
    border-top-color: var(--bs-purple);
}

.alert-purple .alert-link {
    color: var(--bs-purple-dark);
    font-weight: 600;
}
.btn-outline-purple {
    color: var(--bs-purple);
    border-color: var(--bs-purple);
}

.btn-outline-purple:hover {
    color: #fff;
    background-color: var(--bs-purple);
    border-color: var(--bs-purple);
}

/* Accordéons – Purple light */
.accordion-purple {
    background-color: #f3e8ff;   /* violet très clair */
    color: #4b2a75;              /* violet foncé lisible */
    font-weight: 600;
}

.accordion-purple:not(.collapsed) {
    background-color: #e9d5ff;   /* un peu plus soutenu ouvert */
    color: #3b0764;
}

.accordion-purple::after {
    filter: hue-rotate(230deg);  /* flèche Bootstrap teintée */
}

/* ============================
   Sidebar admin – thème purple
============================ */

/* Lien normal */
.sidebar .nav-link {
    color: #555;
    border-radius: .5rem;
}

/* Hover */
.sidebar .nav-link:hover {
    background-color: var(--bs-purple-light);
    color: var(--bs-purple);
}

/* Actif (équivalent nav-pills primary) */
.sidebar .nav-pills .nav-link.active,
.sidebar .nav-pills .show > .nav-link {
    color: #fff;
    background-color: var(--bs-purple);
}

/* Icônes */
.sidebar .nav-link i {
    width: 1.25rem;
    text-align: center;
}

/* Actif + icône */
.sidebar .nav-pills .nav-link.active i {
    color: #fff;
}

/* Focus clavier (accessibilité) */
.sidebar .nav-link:focus-visible {
    outline: 2px solid var(--bs-purple);
    outline-offset: 2px;
}
body.sidebar-collapsed .sidebar .nav-link.active {
    background-color: var(--bs-purple);
}
#menu_admin li {
    margin-bottom: 3px;
}

.sprite-btn {
    width: 28px !important;               /* diamètre du bouton */
    height: 28px !important;
    display: block;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    background-image: url('../img/bullets.png'); /* ton PNG */
    background-repeat: no-repeat;
    background-size: 125%;  /* adapter la hauteur totale */
} 

/* Positions verticales centrées pour chaque cercle */
.acti { background-position: center -1px; }         
.susp { background-position: center -33px; }    
.modi { background-position: center -64px; }
.clot { background-position: center -96px; }

/* Hover optionnel */
.sprite-btn:hover {
    transform: scale(1.05);
    transition: transform 0.2s;
}

.rounded-pill {
  font-family: 'Roboto', sans-serif;
  font-size: 12px !important;
  font-weight: 300 !important;
 }

.caveat-400 {
  font-family: "Caveat", cursive;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}
.caveat-500, .card-head {
  font-family: "Caveat", cursive !important;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}
.caveat-600, .card h3, .card h4, label {
  font-family: "Caveat", cursive !important;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}
label {
    font-size: 120%;
    margin-left: 4px;
}
.caveat-700 {
  font-family: "Caveat", cursive;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.dashboard-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
}
.bloc {
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 1rem;
  background-color: #f9f9f9;
}
.bloc h2 {
  margin-top: 0;
}
.main-menu {
    background-color: #2c3e50;
    padding: 0.5rem;
}
.main-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1rem;
}
.main-menu li {
    display: inline-block;
}
.main-menu a {
    color: #fff;
    text-decoration: none;
    font-weight: bold;
}
.main-menu a:hover {
    text-decoration: underline;
}
.border {
    border: 1px solid #ff0000;
}

.nav-link .nav-admin {
    color: #dc3545 !important; /* Bootstrap danger */
    font-weight: 600;
}

.navbar .nav-link.active  {
    /* color : white; */
    font-weight: 600;
    text-shadow: 1px 1px 1px white;
    border-bottom: 2px solid white;
}
/* icône plus marquée */
.navbar .nav-link.active i {
    transform: scale(1.1);
}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
/* optionnel : hover cohérent */
.navbar .nav-link:hover {
    text-shadow: 0 0 4px red;
    
}
.division {
    display: block;
    height: 20px;
    margin: 20px 0;
    box-shadow: inset 5px 5px 8px lightgray;
    border: 1px solid rgb(234, 234, 234);
    /* border-style: none; */
}
.badgeAV-dan, 
.badgeAV-suc, 
.badgeAV-inf  {
    min-width: 40px;
    font-weight: 700;
    border-width: 1px;
    border-radius: 8px;
    border-style: solid;
  }
.badgeAV-dan {
    color: #b02a37;
    border-color:  #dc3545 #b02a37 #b02a37 #dc3545 ;  
    background-color: rgb(255, 242, 242);

  }
.badgeAV-suc {
    color: #157347;
    border-color:  #198754 #146c43 #146c43 #198754;  
    background-color: #d1e7dd;
  }

.badgeAV-inf  {
    color: #1991a9;
    border-color:  #18bbdc #25cff2 #25cff2 #18bbdc;  
    background-color: #e3f6fa;
 }
/* Sidebar */
.sidebar {
    width: 220px;
    min-height: 100vh;
    transition: width 0.25s ease;
}

/* Repli */
body.sidebar-collapsed .sidebar {
    width: 70px;
}


/* Texte masqué */
body.sidebar-collapsed .sidebar .sidebar-text {
    display: none;
}

body.sidebar-collapsed .sidebar .nav-link span {
    display: none;
}

/* Icônes centrées */
body.sidebar-collapsed .sidebar .nav-link {
    text-align: center;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

/* ============================
   Annuaire des membres
============================ */


.member-card {
    transition: all 0.3s ease;
    cursor: pointer;
    border: none;
    border-top: 4px solid var(--bs-purple, #6f42c1);
}

.member-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.15) !important;
}

.member-number {
    background: var(--bs-purple, #6f42c1);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    display: inline-block;
}

.badge-status {
    font-size: 0.85rem;
    padding: 0.35rem 0.75rem;
}

/* Supprime toutes les bordures par défaut dans thead */
.custom-thead th {
    border: none !important;
}
/* Ajoute une seule bordure en bas sur le tr */
.custom-thead tr {
    display: table-row;           /* s'assure que le tr se comporte comme un tr normal */
    border-bottom: 2px solid #000; /* la seule bordure visible */
}

/* Catégories */
.cat-label {
    font-size: 14px;       /* taille police 12 */
    line-height: 1.2;      /* resserrer les lignes */
    margin: 5px 10px 2px 0;   /* moins d'espace autour */
    padding: 4px;
    background-color: #f8f9fa; /* bg-light Bootstrap équivalent */
    display: block;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05); /* léger ombrage */
}
/* Rubriques */
.rub-label {
    font-size: 13px;
    line-height: 1.2;
    margin: 2px 10px 2px 7px;
    /* padding-left: 15px; */
    padding: 3px 7px;
   
    font-weight: normal;
    border-left: 1px solid #eee;
}
/* Liste des propositions */
.proposition-list {
    margin-left: 30px;
    margin-bottom: 8px;
    padding-left: 6px;
    list-style-type: none;
}

.proposition-list li {
    font-size: 12px;
    line-height: 1.1;
    margin-bottom: 1px;
}

.proposition-list li em {
    margin-left: 4px; /* espace entre texte et date */
}
#table_adresses {
    white-space: nowrap;
    min-width: max-content; /* force la table à prendre sa vraie largeur */
}