/* ============================================================
   CONAFOR V2 – Feuille de style principale
   Couleurs AEEECI : Vert forêt · Orange · Or · Blanc
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&family=Oswald:wght@500;600;700&display=swap');

:root {
  /* Palette AEEECI */
  --vert-fonce:   #1a4d18;
  --vert-moyen:   #2d6a27;
  --vert-clair:   #3d8a35;
  --vert-pale:    #e8f5e6;
  --orange:       #e07b1a;
  --orange-clair: #f5a030;
  --or:           #c8a020;
  --blanc:        #ffffff;
  --gris-clair:   #f2f5f2;
  --gris-mid:     #d0dbd0;
  --gris-texte:   #4a5a48;
  --texte:        #1e2e1c;
  --danger:       #c0392b;
  --info:         #2471a3;
  --success:      #1e8449;
  --warning:      #d68910;

  /* Layout */
  --sidebar-w:  260px;
  --topbar-h:   64px;
  --radius:     12px;
  --radius-sm:  8px;
  --shadow:     0 4px 24px rgba(0,0,0,.10);
  --shadow-sm:  0 2px 8px rgba(0,0,0,.07);
  --transition: all .2s cubic-bezier(.4,0,.2,1);
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:'Nunito',sans-serif;background:var(--gris-clair);color:var(--texte);min-height:100vh;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%}
button{font-family:'Nunito',sans-serif}

/* ══════════════════════════════════════════
   LOGIN
══════════════════════════════════════════ */
.login-page{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,var(--vert-fonce) 0%,var(--vert-moyen) 55%,var(--orange) 100%);
  position:relative;overflow:hidden;
}
.login-page::before{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M50 50v-5h-5v5h-5v5h5v5h5v-5h5v-5h-5zM50 20V15h-5v5h-5v5h5v5h5v-5h5v-5h-5zM20 50v-5h-5v5H10v5h5v5h5v-5h5v-5h-5zM20 20V15h-5v5H10v5h5v5h5v-5h5v-5h-5z'/%3E%3C/g%3E%3C/svg%3E");
}
.login-box{
  background:var(--blanc);border-radius:20px;padding:48px 42px;
  width:100%;max-width:430px;box-shadow:0 30px 70px rgba(0,0,0,.3);
  position:relative;z-index:1;animation:slideUp .45s ease;
}
.login-logo{text-align:center;margin-bottom:24px}
.login-logo img{width:100px;height:100px;border-radius:50%;object-fit:cover;border:4px solid var(--vert-moyen);box-shadow:0 4px 16px rgba(45,106,39,.3)}
.login-title{font-family:'Oswald',sans-serif;font-size:1.9rem;color:var(--vert-fonce);text-align:center;letter-spacing:1px}
.login-sub{text-align:center;color:var(--gris-texte);font-size:.82rem;margin:6px 0 28px;line-height:1.5}
@keyframes slideUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}

/* ══════════════════════════════════════════
   LAYOUT PRINCIPAL
══════════════════════════════════════════ */
.app-layout{display:flex;min-height:100vh}

/* ── Sidebar ── */
.sidebar{
  width:var(--sidebar-w);background:var(--vert-fonce);
  min-height:100vh;position:fixed;top:0;left:0;
  display:flex;flex-direction:column;z-index:100;
  transition:var(--transition);box-shadow:4px 0 20px rgba(0,0,0,.18);
}
.sidebar-header{
  padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;gap:12px;flex-shrink:0;
}
.sidebar-header img{width:46px;height:46px;border-radius:50%;border:2px solid var(--orange);object-fit:cover;flex-shrink:0}
.brand-name{font-family:'Oswald',sans-serif;font-size:1.2rem;letter-spacing:1px;color:var(--orange-clair)}
.brand-sub{font-size:.67rem;opacity:.65;line-height:1.3;color:#fff;margin-top:1px}

.sidebar-nav{flex:1;overflow-y:auto;padding:10px 0}
.sidebar-nav::-webkit-scrollbar{width:4px}
.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}

.nav-section{
  padding:10px 16px 4px;font-size:.65rem;text-transform:uppercase;
  letter-spacing:1.8px;color:rgba(255,255,255,.38);font-weight:700;
}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:11px 16px;
  color:rgba(255,255,255,.72);font-size:.87rem;font-weight:600;
  cursor:pointer;transition:var(--transition);
  border-left:3px solid transparent;margin:1px 0;
}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff;border-left-color:var(--orange)}
.nav-item.active{background:rgba(255,255,255,.13);color:#fff;border-left-color:var(--orange)}
.nav-icon{width:20px;text-align:center;font-size:.95rem;flex-shrink:0}

.sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}
.user-info-sidebar{display:flex;align-items:center;gap:10px;color:#fff;margin-bottom:10px}
.user-info-sidebar .avatar{
  width:36px;height:36px;background:var(--orange);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:.9rem;flex-shrink:0;
}
.u-name{font-weight:700;font-size:.84rem;line-height:1.2}
.u-role{font-size:.67rem;opacity:.65;display:block;margin-top:1px}
.btn-logout{
  width:100%;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.78);padding:8px 12px;border-radius:8px;
  font-size:.8rem;cursor:pointer;transition:var(--transition);
  display:flex;align-items:center;justify-content:center;gap:6px;font-weight:600;
}
.btn-logout:hover{background:rgba(192,57,43,.55);color:#fff;border-color:transparent}

/* ── Main Content ── */
.main-content{margin-left:var(--sidebar-w);flex:1;display:flex;flex-direction:column;min-height:100vh}

.topbar{
  height:var(--topbar-h);background:var(--blanc);
  border-bottom:1px solid var(--gris-mid);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 28px;position:sticky;top:0;z-index:90;box-shadow:var(--shadow-sm);
}
.topbar-left{display:flex;align-items:center;gap:14px}
.topbar-title{font-family:'Oswald',sans-serif;font-size:1.15rem;color:var(--vert-fonce);letter-spacing:.3px}
.topbar-right{display:flex;align-items:center;gap:10px}
.topbar-btn{
  width:38px;height:38px;border-radius:50%;border:none;
  background:var(--gris-clair);color:var(--gris-texte);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:.95rem;transition:var(--transition);
}
.topbar-btn:hover{background:var(--vert-moyen);color:#fff}

.page-content{flex:1;padding:28px}

/* ══════════════════════════════════════════
   COMPOSANTS UI
══════════════════════════════════════════ */

/* ── Page header ── */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.page-header-left h1{font-family:'Oswald',sans-serif;font-size:1.55rem;color:var(--vert-fonce)}
.page-header-left p{color:var(--gris-texte);font-size:.83rem;margin-top:3px}
.page-header-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ── Stats grid ── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:28px}
.stat-card{
  background:var(--blanc);border-radius:var(--radius);padding:20px;
  display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm);
  transition:var(--transition);border-left:4px solid transparent;
}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.stat-card.green  {border-left-color:var(--vert-moyen)}
.stat-card.orange {border-left-color:var(--orange)}
.stat-card.blue   {border-left-color:var(--info)}
.stat-card.gold   {border-left-color:var(--or)}
.stat-card.red    {border-left-color:var(--danger)}
.stat-card.purple {border-left-color:#7d3c98}

.stat-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.stat-card.green  .stat-icon{background:rgba(45,106,39,.12); color:var(--vert-moyen)}
.stat-card.orange .stat-icon{background:rgba(224,123,26,.12);color:var(--orange)}
.stat-card.blue   .stat-icon{background:rgba(36,113,163,.12);color:var(--info)}
.stat-card.gold   .stat-icon{background:rgba(200,160,32,.12);color:var(--or)}
.stat-card.red    .stat-icon{background:rgba(192,57,43,.12); color:var(--danger)}
.stat-card.purple .stat-icon{background:rgba(125,60,152,.12);color:#7d3c98}

.stat-value{font-family:'Oswald',sans-serif;font-size:1.85rem;color:var(--texte);line-height:1}
.stat-label{font-size:.74rem;color:var(--gris-texte);margin-top:4px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}

/* ── Cards ── */
.card{background:var(--blanc);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.card-header{
  padding:15px 20px;border-bottom:1px solid var(--gris-mid);
  display:flex;align-items:center;justify-content:space-between;background:var(--blanc);
}
.card-header h3{font-family:'Oswald',sans-serif;font-size:.98rem;color:var(--vert-fonce);letter-spacing:.3px}
.card-body{padding:20px}

/* ── Tableaux ── */
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:.855rem}
.table thead th{
  background:var(--vert-fonce);color:#fff;
  padding:11px 14px;font-family:'Oswald',sans-serif;font-weight:500;
  font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;
  white-space:nowrap;position:sticky;top:0;
}
.table tbody tr{border-bottom:1px solid var(--gris-clair);transition:var(--transition)}
.table tbody tr:hover{background:rgba(45,106,39,.04)}
.table tbody td{padding:10px 14px;vertical-align:middle}

/* ── Formulaires ── */
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:.78rem;font-weight:700;color:var(--gris-texte);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.form-control{
  width:100%;padding:9px 13px;border:1.5px solid var(--gris-mid);
  border-radius:var(--radius-sm);font-family:'Nunito',sans-serif;
  font-size:.9rem;color:var(--texte);background:var(--blanc);transition:var(--transition);
}
.form-control:focus{outline:none;border-color:var(--vert-moyen);box-shadow:0 0 0 3px rgba(45,106,39,.11)}
select.form-control{cursor:pointer}
textarea.form-control{resize:vertical;min-height:90px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}

/* ── Boutons ── */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 17px;border-radius:var(--radius-sm);border:none;
  font-family:'Nunito',sans-serif;font-size:.87rem;font-weight:700;
  cursor:pointer;transition:var(--transition);text-decoration:none;white-space:nowrap;
}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn:active{transform:translateY(0);filter:brightness(.96)}
.btn-primary   {background:var(--vert-moyen);color:#fff}
.btn-secondary {background:var(--gris-mid);color:var(--texte)}
.btn-orange    {background:var(--orange);color:#fff}
.btn-danger    {background:var(--danger);color:#fff}
.btn-info      {background:var(--info);color:#fff}
.btn-success   {background:var(--success);color:#fff}
.btn-outline   {background:transparent;color:var(--vert-moyen);border:1.5px solid var(--vert-moyen)}
.btn-outline:hover{background:var(--vert-moyen);color:#fff}
.btn-white     {background:#fff;color:var(--vert-fonce);border:1px solid var(--gris-mid)}
.btn-sm{padding:6px 13px;font-size:.8rem}
.btn-xs{padding:4px 9px;font-size:.74rem;border-radius:6px}
.btn-icon{padding:7px 10px}

/* ── Badges ── */
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:.71rem;font-weight:700;letter-spacing:.3px;line-height:1.4}
.badge-success  {background:rgba(30,132,73,.13); color:#1a7a40}
.badge-danger   {background:rgba(192,57,43,.13); color:#a93226}
.badge-warning  {background:rgba(214,137,16,.13);color:#b7770d}
.badge-info     {background:rgba(36,113,163,.13);color:#1a6fa0}
.badge-secondary{background:var(--gris-clair);   color:var(--gris-texte)}
.badge-orange   {background:rgba(224,123,26,.13);color:#b85a00}
.badge-green    {background:rgba(45,106,39,.13); color:var(--vert-moyen)}
.badge-gold     {background:rgba(200,160,32,.13);color:#8a6900}

/* ── Modals ── */
.modal-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:200;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:var(--transition);padding:16px;
}
.modal-backdrop.active{opacity:1;visibility:visible}
.modal{
  background:#fff;border-radius:16px;width:100%;max-width:600px;
  max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.28);
  transform:scale(.94) translateY(18px);transition:var(--transition);
}
.modal-backdrop.active .modal{transform:scale(1) translateY(0)}
.modal-lg{max-width:860px}
.modal-sm{max-width:440px}
.modal-header{
  padding:18px 24px;border-bottom:1px solid var(--gris-mid);
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(135deg,var(--vert-fonce),var(--vert-moyen));
  border-radius:16px 16px 0 0;color:#fff;position:sticky;top:0;z-index:1;
}
.modal-header h4{font-family:'Oswald',sans-serif;font-size:1.08rem;letter-spacing:.4px}
.modal-close{background:none;border:none;color:rgba(255,255,255,.7);font-size:1.2rem;cursor:pointer;padding:4px;transition:var(--transition);border-radius:4px}
.modal-close:hover{color:#fff;background:rgba(255,255,255,.15)}
.modal-body{padding:24px}
.modal-footer{padding:16px 24px;border-top:1px solid var(--gris-mid);display:flex;gap:8px;justify-content:flex-end}

/* ── Search bar ── */
.search-bar{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  background:#fff;border-radius:var(--radius);padding:14px 18px;
  box-shadow:var(--shadow-sm);margin-bottom:20px;
}
.search-input-wrap{flex:1;min-width:200px;position:relative}
.search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--gris-texte);font-size:.85rem;pointer-events:none}
.search-input-wrap .form-control{padding-left:34px!important}

/* ── Progress bar ── */
.progress{height:8px;background:var(--gris-clair);border-radius:4px;overflow:hidden}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--vert-moyen),var(--orange));border-radius:4px;transition:width .6s ease}
.progress-bar.danger {background:var(--danger)}
.progress-bar.warning{background:var(--warning)}

/* ── Tabs ── */
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--gris-mid);margin-bottom:20px;flex-wrap:wrap}
.tab-btn{
  padding:9px 16px;border:none;background:none;cursor:pointer;
  font-family:'Nunito',sans-serif;font-size:.84rem;font-weight:700;
  color:var(--gris-texte);border-bottom:2px solid transparent;margin-bottom:-2px;transition:var(--transition);
}
.tab-btn:hover{color:var(--vert-moyen)}
.tab-btn.active{color:var(--vert-moyen);border-bottom-color:var(--vert-moyen)}
.tab-content{display:none}
.tab-content.active{display:block}

/* ── Territoire ── */
.territoire-nav{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#fff;border-radius:var(--radius);padding:11px 18px;
  box-shadow:var(--shadow-sm);margin-bottom:20px;font-size:.84rem;
}
.territoire-nav a{color:var(--vert-moyen);font-weight:700}
.territoire-nav a:hover{text-decoration:underline}
.territoire-nav .sep{color:var(--gris-mid);margin:0 2px}

.territoire-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.territoire-card{
  background:#fff;border-radius:var(--radius);padding:20px;
  box-shadow:var(--shadow-sm);transition:var(--transition);cursor:pointer;
  border:2px solid transparent;text-decoration:none;display:block;color:var(--texte);
}
.territoire-card:hover{border-color:var(--vert-moyen);transform:translateY(-2px);box-shadow:var(--shadow)}
.territoire-card-icon{font-size:2rem;margin-bottom:10px}
.territoire-card-name{font-family:'Oswald',sans-serif;font-size:1.05rem;color:var(--vert-fonce)}

/* ── Activité card ── */
.activite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-bottom:24px}
.activite-card{
  background:#fff;border-radius:var(--radius);padding:20px;
  box-shadow:var(--shadow-sm);border-top:4px solid var(--vert-moyen);
  transition:var(--transition);display:flex;flex-direction:column;
}
.activite-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.activite-card.type-camp    {border-top-color:var(--orange)}
.activite-card.type-reunion {border-top-color:var(--info)}
.activite-card.type-autre   {border-top-color:var(--or)}
.activite-title{font-family:'Oswald',sans-serif;font-size:1.08rem;color:var(--vert-fonce);margin:8px 0 6px}
.activite-meta{font-size:.78rem;color:var(--gris-texte);display:flex;align-items:center;gap:5px;margin-bottom:4px}
.activite-footer{margin-top:auto;padding-top:14px;display:flex;gap:8px;flex-wrap:wrap}

/* ── Dossier membre ── */
.membre-dossier{display:grid;grid-template-columns:280px 1fr;gap:24px}
.membre-photo-card{background:#fff;border-radius:var(--radius);padding:28px 20px;text-align:center;box-shadow:var(--shadow-sm)}
.membre-photo{width:140px;height:140px;border-radius:50%;object-fit:cover;border:4px solid var(--vert-moyen);margin:0 auto 14px;display:block}
.membre-photo-placeholder{
  width:140px;height:140px;border-radius:50%;background:var(--gris-mid);
  border:4px solid var(--vert-moyen);margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;font-size:2.8rem;color:var(--gris-texte);
}
.membre-nom{font-family:'Oswald',sans-serif;font-size:1.2rem;color:var(--vert-fonce);margin-bottom:4px}
.membre-matricule{font-size:.78rem;color:var(--gris-texte);background:var(--gris-clair);padding:3px 10px;border-radius:20px;display:inline-block;margin:5px 0 10px}

/* ── Info row dans dossier ── */
.info-row{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-bottom:1px solid var(--gris-clair);font-size:.83rem}
.info-row:last-child{border-bottom:none}
.info-row .info-icon{color:var(--vert-moyen);width:16px;flex-shrink:0;margin-top:1px}
.info-row .info-label{font-size:.7rem;color:var(--gris-texte);text-transform:uppercase;letter-spacing:.4px;font-weight:700;line-height:1.2}
.info-row .info-val{font-weight:700;color:var(--texte);line-height:1.3}

/* ── Progression timeline ── */
.prog-item{
  display:flex;align-items:center;gap:14px;
  background:var(--gris-clair);border-radius:10px;padding:14px 16px;
  margin-bottom:10px;border-left:4px solid var(--gris-mid);transition:var(--transition);
}
.prog-item.actif{background:rgba(45,106,39,.07);border-left-color:var(--vert-moyen)}
.prog-badge{
  width:46px;height:46px;border-radius:50%;background:var(--gris-mid);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:'Oswald',sans-serif;font-size:.83rem;flex-shrink:0;
}
.prog-item.actif .prog-badge{background:var(--vert-moyen)}

/* ── Toast ── */
.toast-container{position:fixed;top:18px;right:18px;z-index:999;display:flex;flex-direction:column;gap:8px}
.toast{
  background:#fff;border-radius:10px;padding:13px 18px;
  box-shadow:0 8px 32px rgba(0,0,0,.14);min-width:280px;max-width:380px;
  display:flex;align-items:center;gap:12px;animation:toastIn .28s ease;
  border-left:4px solid var(--vert-moyen);font-size:.86rem;font-weight:600;
}
.toast.error  {border-left-color:var(--danger)}
.toast.warning{border-left-color:var(--warning)}
.toast.info   {border-left-color:var(--info)}
@keyframes toastIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}

/* ── Pagination ── */
.pagination{display:flex;gap:4px;list-style:none;flex-wrap:wrap;align-items:center}
.page-item .page-link{
  padding:6px 12px;border-radius:6px;border:1.5px solid var(--gris-mid);
  color:var(--gris-texte);font-size:.82rem;font-weight:700;transition:var(--transition);display:block;
}
.page-item .page-link:hover{border-color:var(--vert-moyen);color:var(--vert-moyen)}
.page-item.active .page-link{background:var(--vert-moyen);border-color:var(--vert-moyen);color:#fff}

/* ── Chart container ── */
.chart-container{position:relative;height:260px}

/* ── Empty state ── */
.empty-state{text-align:center;padding:56px 20px;color:var(--gris-texte)}
.empty-state .empty-icon{font-size:2.8rem;margin-bottom:14px;opacity:.4}
.empty-state h3{font-family:'Oswald',sans-serif;color:var(--vert-fonce);margin-bottom:8px;font-size:1.1rem}
.empty-state p{font-size:.85rem}

/* ── Utils ── */
.mt-8 {margin-top:8px}  .mt-12{margin-top:12px} .mt-16{margin-top:16px} .mt-24{margin-top:24px}
.mb-8 {margin-bottom:8px} .mb-16{margin-bottom:16px} .mb-24{margin-bottom:24px}
.d-flex{display:flex} .align-center{align-items:center} .justify-between{justify-content:space-between}
.gap-8{gap:8px} .gap-12{gap:12px} .gap-16{gap:16px}
.fw-700{font-weight:700} .fw-800{font-weight:800}
.text-center{text-align:center} .text-right{text-align:right}
.color-green {color:var(--vert-moyen)} .color-orange{color:var(--orange)}
.color-danger{color:var(--danger)}     .color-gris  {color:var(--gris-texte)}
.color-or    {color:var(--or)}
.w-100{width:100%}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--gris-clair)}
::-webkit-scrollbar-thumb{background:var(--gris-mid);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--vert-moyen)}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:992px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .main-content{margin-left:0}
  .membre-dossier{grid-template-columns:1fr}
  .form-row,.form-row-3{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .activite-grid{grid-template-columns:1fr}
}
@media(max-width:576px){
  .page-content{padding:16px}
  .stats-grid{grid-template-columns:1fr}
  .search-bar{flex-direction:column;align-items:stretch}
  .login-box{padding:32px 24px}
}

/* ══════════════════════════════════════════
   PRINT
══════════════════════════════════════════ */
@media print{
  .sidebar,.topbar,.btn,.search-bar,.modal-backdrop,
  .page-header-right,.topbar-btn{display:none!important}
  .main-content{margin-left:0!important}
  .page-content{padding:0}
  .card{box-shadow:none!important;border:1px solid #ccc}
  .table thead th{background:#2d6a27!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
