/* =============================================
   ACMS — Charte graphique officielle
   Amicale des Cadres Musulmans du Sénégal
   Couleurs extraites du logo officiel
   ============================================= */

:root {
    /* Vert — cercle et vague du logo */
    --acms-vert-fonce:   #1a5c2a;
    --acms-vert-moyen:   #2e7d32;
    --acms-vert-clair:   #4caf50;
    --acms-vert-pale:    #e8f5e9;
    --acms-vert-pale2:   #f4faf4;

    /* Bleu — texte "ACMS" et sous-titre du logo */
    --acms-bleu:         #2979b9;
    --acms-bleu-fonce:   #1a5a8a;
    --acms-bleu-pale:    #e3f0fb;

    /* Neutres */
    --acms-gris-clair:   #f8f9fa;
    --acms-ombre:        rgba(26, 92, 42, 0.12);

    --bs-primary:        #1a5c2a;
    --bs-primary-rgb:    26, 92, 42;
}

/* ---- Bootstrap overrides ---- */
.btn-primary          { background-color: var(--acms-vert-moyen) !important; border-color: var(--acms-vert-fonce) !important; }
.btn-primary:hover    { background-color: var(--acms-vert-fonce) !important; border-color: var(--acms-vert-fonce) !important; }
.btn-outline-primary  { color: var(--acms-vert-moyen) !important; border-color: var(--acms-vert-moyen) !important; }
.btn-outline-primary:hover { background-color: var(--acms-vert-moyen) !important; color: #fff !important; }
.text-primary         { color: var(--acms-vert-moyen) !important; }
.bg-primary           { background-color: var(--acms-vert-fonce) !important; }
.border-primary       { border-color: var(--acms-vert-moyen) !important; }
.form-control:focus, .form-select:focus {
    border-color: var(--acms-vert-clair);
    box-shadow: 0 0 0 0.2rem rgba(41, 121, 185, 0.2);
}
.progress-bar.bg-success { background-color: var(--acms-vert-moyen) !important; }

/* ---- Navbar ---- */
.navbar.bg-primary {
    background: linear-gradient(135deg, var(--acms-vert-fonce) 0%, #245c2e 60%, #1a5278 100%) !important;
    border-bottom: 3px solid var(--acms-bleu);
    box-shadow: 0 2px 12px var(--acms-ombre);
}
.navbar-dark .navbar-nav .nav-link.active {
    background: rgba(255,255,255,0.18);
    border-radius: 6px;
}
.navbar-dark .navbar-nav .nav-link:hover {
    background: rgba(255,255,255,0.1);
    border-radius: 6px;
}
.navbar-brand {
    font-weight: 700;
    letter-spacing: 0.3px;
}
.navbar-brand img.logo-nav {
    height: 38px;
    width: 38px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    margin-right: 8px;
}

/* ---- Body ---- */
body {
    background-color: var(--acms-vert-pale2);
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: #212529;
}

/* ---- Cards ---- */
.card {
    border-radius: 10px;
    border: 1px solid #e2ede4;
    box-shadow: 0 2px 8px var(--acms-ombre);
}
.card-header {
    border-radius: 10px 10px 0 0 !important;
    font-weight: 600;
}

/* Card KPI couleurs */
.kpi-vert   { border-left: 4px solid var(--acms-vert-moyen) !important; }
.kpi-bleu   { border-left: 4px solid var(--acms-bleu) !important; }
.kpi-orange { border-left: 4px solid #f57c00 !important; }
.kpi-rouge  { border-left: 4px solid #c62828 !important; }

/* ---- Tables ---- */
.table th {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #6c757d;
    background-color: var(--acms-vert-pale);
}
.table td { font-size: 0.88rem; }
.table-hover tbody tr:hover { background-color: var(--acms-bleu-pale) !important; }
.table-light { background-color: var(--acms-vert-pale) !important; }

/* ---- Badges ---- */
.badge { font-weight: 500; font-size: 0.72rem; }

/* ---- Buttons xs ---- */
.btn-xs { font-size: 0.75rem; padding: 0.15rem 0.4rem; }

/* ---- Progress ---- */
.progress { border-radius: 10px; }

/* ---- Nav tabs ---- */
.nav-tabs .nav-link          { color: #6c757d; font-weight: 500; }
.nav-tabs .nav-link.active   { color: var(--acms-bleu); font-weight: 700; border-bottom: 2px solid var(--acms-bleu); }
.nav-tabs .nav-link:hover    { color: var(--acms-vert-fonce); }

/* ---- Dropdown ---- */
.dropdown-menu {
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    border: none;
    border-radius: 8px;
    border-top: 3px solid var(--acms-vert-moyen);
}
.dropdown-item:hover { background-color: var(--acms-vert-pale); color: var(--acms-vert-fonce); }

/* ---- Alerts ---- */
.alert { border-radius: 8px; }
.alert-info    { background-color: var(--acms-bleu-pale);  border-color: var(--acms-bleu); }
.alert-success { background-color: var(--acms-vert-pale);  border-color: var(--acms-vert-clair); }
.alert-warning { background-color: #fff8e1; border-color: #f9a825; }

/* ---- Page de connexion ---- */
.login-bg {
    min-height: 100vh;
    background: linear-gradient(160deg, var(--acms-vert-fonce) 0%, #1e6b30 40%, var(--acms-bleu-fonce) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.login-card {
    width: 420px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.35);
    border: none;
}
.login-header {
    background: linear-gradient(135deg, var(--acms-vert-fonce) 0%, #245c2e 50%, var(--acms-bleu-fonce) 100%);
    padding: 2.5rem 2rem 1.5rem;
    text-align: center;
    border-bottom: 3px solid var(--acms-bleu);
}
.login-header img.logo-login {
    height: 100px;
    object-fit: contain;
    filter: drop-shadow(0 2px 10px rgba(0,0,0,0.4));
    margin-bottom: 0.75rem;
}
.login-header h5 {
    color: rgba(255,255,255,0.9);
    font-weight: 300;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
    margin: 0;
}

/* ---- Footer ---- */
footer {
    background: linear-gradient(90deg, var(--acms-vert-pale) 0%, var(--acms-bleu-pale) 100%) !important;
    border-top: 1px solid #c8dde8 !important;
}

/* ---- Misc ---- */
.font-monospace { font-size: 0.85rem; }
.pagination .page-link {
    font-size: 0.85rem;
    padding: 0.3rem 0.65rem;
    color: var(--acms-vert-moyen);
}
.pagination .page-item.active .page-link {
    background-color: var(--acms-vert-moyen);
    border-color: var(--acms-vert-fonce);
}
pre { font-family: 'Consolas', monospace; }
.min-vh-100 { min-height: 100vh; }

/* ---- Section titres ---- */
h1, h2, h3, h4 { color: var(--acms-vert-fonce); }
.text-acms-bleu { color: var(--acms-bleu) !important; }

/* ---- Print ---- */
@media print {
    .navbar, .btn, form { display: none !important; }
    .card { border: 1px solid #dee2e6 !important; box-shadow: none !important; }
}
