/* EPI e-Learning — styles frontaux (charte EPI-NIGER) */
:root{
  --epi-bleu:#12629F; --epi-marine:#1B3A6B; --epi-rouge:#A21D2B; --epi-or:#C8972B; --epi-or2:#E8C55A;
  --epi-vert:#0A5C30; --epi-fond:#F4F7FB; --epi-bord:#DDE4EE; --epi-texte:#1A1A2E; --epi-muted:#5B6575;
  --epi-radius:10px; --epi-shadow:0 6px 20px rgba(27,58,107,.08);
}
.epi-wrap,.epi-catalogue,.epi-espace,.epi-paiement{max-width:1140px;margin:0 auto;padding:24px 16px;color:var(--epi-texte);font-size:16px;line-height:1.6}
.epi-wrap h1{color:var(--epi-marine);font-size:2rem;line-height:1.2;margin:0 0 .6rem}
.epi-wrap h2,.epi-espace h2,.epi-espace h3,.epi-catalogue h3{color:var(--epi-marine)}
.epi-muted{color:var(--epi-muted)} .epi-small{font-size:.9em} .epi-vide{padding:20px;background:var(--epi-fond);border-radius:var(--epi-radius);color:var(--epi-muted)}

/* Boutons */
.epi-btn{display:inline-block;padding:12px 22px;border-radius:8px;font-weight:600;text-decoration:none!important;border:2px solid transparent;cursor:pointer;line-height:1.2;transition:.15s;font-size:1rem}
.epi-btn-primary{background:var(--epi-bleu);color:#fff!important;border-color:var(--epi-bleu)} .epi-btn-primary:hover{background:var(--epi-marine);border-color:var(--epi-marine)}
.epi-btn-or{background:var(--epi-or);color:#fff!important;border-color:var(--epi-or)} .epi-btn-or:hover{background:#a97d1f}
.epi-btn-ghost{background:#fff;color:var(--epi-marine)!important;border-color:var(--epi-bord)} .epi-btn-ghost:hover{border-color:var(--epi-bleu)}
.epi-btn-small{padding:7px 14px;font-size:.9rem;background:var(--epi-fond);color:var(--epi-marine)!important;border-color:var(--epi-bord)}
.epi-btn + .epi-btn{margin-left:8px}

/* Alertes, cartes */
.epi-alert{padding:14px 18px;border-radius:8px;margin:0 0 18px;border-left:5px solid}
.epi-alert-success{background:#EAF6EE;border-color:var(--epi-vert);color:#0A3F22}
.epi-alert-error{background:#FBECEE;border-color:var(--epi-rouge);color:#6B1019}
.epi-alert-info{background:#EDF3FA;border-color:var(--epi-bleu);color:var(--epi-marine)}
.epi-card{background:#fff;border:1px solid var(--epi-bord);border-radius:var(--epi-radius);padding:22px;box-shadow:var(--epi-shadow);margin-bottom:20px}
.epi-card h3{margin-top:0}

/* Catalogue */
.epi-filtres{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.epi-filtres input,.epi-filtres select{padding:10px 12px;border:1px solid var(--epi-bord);border-radius:8px;min-width:180px;flex:1}
.epi-grid-cours{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.epi-carte{background:#fff;border:1px solid var(--epi-bord);border-radius:var(--epi-radius);overflow:hidden;box-shadow:var(--epi-shadow);display:flex;flex-direction:column;transition:.15s}
.epi-carte:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(27,58,107,.14)}
.epi-carte-media{display:block;height:130px;background:linear-gradient(135deg,var(--epi-marine),var(--epi-bleu));background-size:cover;background-position:center;position:relative}
.epi-carte-code{position:absolute;left:16px;bottom:12px;color:#fff;font-weight:800;font-size:1.6rem;letter-spacing:1px;opacity:.9}
.epi-badge{display:inline-block;padding:4px 10px;border-radius:99px;font-size:.78rem;font-weight:700;color:#fff}
.epi-carte-media .epi-badge{position:absolute;top:12px;right:12px}
.epi-badge.bleu{background:var(--epi-bleu)} .epi-badge.or{background:var(--epi-or)} .epi-badge.vert{background:var(--epi-vert)} .epi-badge.mini{padding:2px 7px;font-size:.7rem}
.epi-carte.est-inscrit .epi-carte-media .epi-badge{background:var(--epi-vert)}
.epi-carte-corps{padding:16px 18px 18px;flex:1;display:flex;flex-direction:column}
.epi-carte-meta{font-size:.8rem;color:var(--epi-or);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.epi-carte h3{font-size:1.1rem;margin:6px 0 8px;line-height:1.35} .epi-carte h3 a{color:var(--epi-marine);text-decoration:none}
.epi-carte-ens{margin:0 0 8px;font-size:.92rem;color:var(--epi-muted)} .epi-carte-pied{margin-top:auto;font-size:.85rem;color:var(--epi-muted)}
.epi-pagination{margin-top:24px;text-align:center} .epi-pagination .page-numbers{display:inline-block;padding:8px 13px;margin:2px;border:1px solid var(--epi-bord);border-radius:6px;text-decoration:none;color:var(--epi-marine)}
.epi-pagination .current{background:var(--epi-bleu);color:#fff;border-color:var(--epi-bleu)}

/* Page cours */
.epi-fil{color:var(--epi-or);font-weight:700;text-transform:uppercase;font-size:.8rem;letter-spacing:.5px;margin:0 0 6px}
.epi-hero{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:start;margin-bottom:28px;padding:28px;background:linear-gradient(135deg,#F7FAFE,#EDF3FA);border-radius:14px;border:1px solid var(--epi-bord)}
.epi-hero-meta span{display:inline-block;margin:6px 14px 0 0;color:var(--epi-muted);font-size:.92rem}
.epi-hero-ens{margin-top:10px}
.epi-hero-cta{margin:0} .epi-hero-img img{width:100%;border-radius:8px;margin-bottom:14px}
.epi-hero-cta .epi-btn{display:block;text-align:center;margin:8px 0 0}
.epi-cols{display:grid;grid-template-columns:2fr 1fr;gap:28px} .epi-cols-lecon{grid-template-columns:2.2fr 1fr}
.epi-side .epi-card{position:sticky;top:20px}
.epi-programme-front{list-style:none;padding:0;margin:0;counter-reset:l}
.epi-programme-front li{padding:11px 12px;border-bottom:1px solid var(--epi-bord);display:flex;gap:8px;align-items:center}
.epi-programme-front li.courant{background:var(--epi-fond);border-left:4px solid var(--epi-bleu)} .epi-programme-front li.fait a{color:var(--epi-vert)}
.epi-programme-front a{color:var(--epi-marine);text-decoration:none;font-weight:500} .epi-programme-front a:hover{color:var(--epi-bleu)}
.epi-progress{height:10px;background:#E5EBF3;border-radius:99px;overflow:hidden;margin:6px 0}
.epi-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--epi-bleu),var(--epi-or));border-radius:99px;transition:width .4s}
.epi-visio{border-left:5px solid var(--epi-or)} .epi-prof{border-left:5px solid var(--epi-rouge)}
.epi-visio-salle{margin:0 -16px} .epi-visio-header{display:flex;justify-content:space-between;align-items:center;background:var(--epi-marine);color:#fff;padding:12px 18px} .epi-visio-header .epi-btn{padding:8px 14px}
#epi-jitsi{min-height:640px;background:#111}
.epi-breadcrumb{font-size:.9rem;color:var(--epi-muted);margin-bottom:12px} .epi-breadcrumb a{color:var(--epi-bleu);text-decoration:none}

/* Leçon */
.epi-video{position:relative;margin:0 0 22px;border-radius:12px;overflow:hidden;background:#000}
.epi-video iframe,.epi-video video{width:100%;aspect-ratio:16/9;display:block;border:0}
.epi-contenu{font-size:1.05rem} .epi-contenu img{max-width:100%;height:auto;border-radius:8px}
.epi-supports ul{list-style:none;padding:0;margin:0} .epi-supports li{padding:10px 0;border-bottom:1px solid var(--epi-bord)} .epi-supports a{font-weight:600;color:var(--epi-bleu);text-decoration:none}
.epi-nav-lecon{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px;padding-top:20px;border-top:2px solid var(--epi-bord);flex-wrap:wrap}

/* Quiz */
.epi-consignes{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;background:var(--epi-fond)}
.epi-timer{margin-left:auto;font-weight:800;color:var(--epi-rouge);font-size:1.1rem;font-variant-numeric:tabular-nums} .epi-timer.urgent{animation:epi-blink 1s infinite}
@keyframes epi-blink{50%{opacity:.4}}
.epi-question{border:1px solid var(--epi-bord);border-radius:var(--epi-radius);padding:18px 20px;margin:0 0 16px;background:#fff}
.epi-question legend{font-weight:700;color:var(--epi-marine);padding:0 6px;font-size:1.05rem}
.epi-num{display:inline-block;background:var(--epi-bleu);color:#fff;border-radius:6px;padding:2px 9px;margin-right:6px;font-size:.9rem}
.epi-option{display:block;padding:10px 12px;margin:6px 0;border:1px solid var(--epi-bord);border-radius:8px;cursor:pointer} .epi-option:hover{background:var(--epi-fond)} .epi-option input{margin-right:8px}
.epi-resultat{display:flex;gap:26px;align-items:center;padding:26px;border-radius:14px;margin-bottom:24px;border:2px solid}
.epi-resultat.ok{background:#EAF6EE;border-color:var(--epi-vert)} .epi-resultat.ko{background:#FBECEE;border-color:var(--epi-rouge)}
.epi-resultat h2{margin:0 0 6px}
.epi-score{font-size:3rem;font-weight:900;min-width:140px;text-align:center;border-radius:12px;padding:14px;background:#fff;color:var(--epi-marine)}
.epi-correction{padding-left:0;list-style:none} .epi-correction>li{padding:14px 18px;margin-bottom:12px;border-radius:10px;border-left:5px solid;background:#fff;border:1px solid var(--epi-bord)}
.epi-correction>li.ok{border-left-color:var(--epi-vert)} .epi-correction>li.ko{border-left-color:var(--epi-rouge)}
.epi-correction .epi-q{font-weight:700;margin:0 0 8px} .epi-correction ul{list-style:none;padding:0;margin:0}
.epi-correction li.bonne{color:var(--epi-vert);font-weight:600} .epi-correction li.choisie:not(.bonne){color:var(--epi-rouge);text-decoration:line-through}
.epi-explication{margin:8px 0 0;padding:8px 12px;background:var(--epi-fond);border-radius:6px;font-size:.95rem}

/* Espace étudiant */
.epi-espace-entete{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-bottom:16px;border-bottom:3px solid var(--epi-or);margin-bottom:22px}
.epi-espace-entete h2{margin:0}
.epi-liste-cours{display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.epi-ligne-cours{display:grid;grid-template-columns:1fr 200px 56px auto;gap:14px;align-items:center;padding:14px 18px;background:#fff;border:1px solid var(--epi-bord);border-radius:10px}
.epi-ligne-info a{color:var(--epi-marine);text-decoration:none} .epi-ligne-info span{display:block;font-size:.85rem}
.epi-pct{font-weight:700;color:var(--epi-marine)}
.epi-liste-simple{list-style:none;padding:0} .epi-liste-simple li{padding:12px 0;border-bottom:1px solid var(--epi-bord)}
.epi-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--epi-bord);border-radius:10px;overflow:hidden;font-size:.95rem}
.epi-table th{background:var(--epi-marine);color:#fff;text-align:left;padding:10px 12px} .epi-table td{padding:10px 12px;border-top:1px solid var(--epi-bord)}
.epi-statut{padding:3px 10px;border-radius:99px;font-size:.8rem;font-weight:700;color:#fff;background:var(--epi-muted)}
.epi-statut.epi_payee{background:var(--epi-vert)} .epi-statut.epi_en_attente{background:var(--epi-or)} .epi-statut.epi_rejetee{background:var(--epi-rouge)}

/* Formulaires */
.epi-form label{display:block;margin:0 0 14px;font-weight:600;color:var(--epi-marine)}
.epi-form input:not([type=checkbox]):not([type=radio]),.epi-form select{display:block;width:100%;padding:11px 13px;border:1px solid var(--epi-bord);border-radius:8px;font-size:1rem;margin-top:5px;font-weight:400;box-sizing:border-box}
.epi-form input:focus,.epi-form select:focus{outline:2px solid var(--epi-bleu);border-color:var(--epi-bleu)}
.epi-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.epi-check{font-weight:400!important} .epi-check input{margin-right:8px}
.epi-form .login-username label,.epi-form .login-password label{display:block}
.epi-form .login-username input,.epi-form .login-password input{width:100%;padding:11px 13px;border:1px solid var(--epi-bord);border-radius:8px;font-size:1rem}
.epi-form .login-submit input{background:var(--epi-bleu);color:#fff;border:0;padding:12px 22px;border-radius:8px;font-weight:600;cursor:pointer}
.epi-recap .epi-prix{font-size:2rem;font-weight:900;color:var(--epi-or);margin:0}
.epi-etapes li{margin-bottom:10px} .epi-numeros{margin:8px 0 0;padding-left:18px} .epi-numeros li{margin:3px 0}

@media (max-width:900px){
  .epi-hero,.epi-cols,.epi-cols-lecon{grid-template-columns:1fr}
  .epi-side .epi-card{position:static}
  .epi-ligne-cours{grid-template-columns:1fr 1fr;} .epi-ligne-cours .epi-btn{grid-column:1/-1;text-align:center}
  .epi-2col{grid-template-columns:1fr}
  .epi-resultat{flex-direction:column;text-align:center}
}
