/* ===== Espace élève / admin : composants ajoutés ===== */
body.is-eleve nav#nav, body.is-admin nav#nav { position: static; }
.alert-ok, .alert-error { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; font-size: 14px; margin-bottom: 18px; }
.alert-ok { background: #E7F6EF; color: #0B6B4A; }
.alert-error { background: #FBEAEA; color: #B3261E; }
.alert-ok i, .alert-error i { margin-top: 2px; }

/* Tableau de bord élève */
.elv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.elv-card { background: white; border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
.elv-card h3 { font-size: 18px; margin: 10px 0 6px; }
.elv-card-top { margin-bottom: 4px; }
.elv-meta { font-size: 12.5px; color: var(--ink-soft); margin-bottom: 16px; }
.elv-progress { height: 8px; border-radius: 5px; background: var(--sand); overflow: hidden; margin-bottom: 10px; }
.elv-progress-bar { height: 100%; background: var(--teal); border-radius: 5px; }
.badge-status { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; padding: 4px 10px; border-radius: 50px; }
.badge-active { background: #E7F6EF; color: #0B6B4A; }
.badge-expired { background: #FBEAEA; color: #B3261E; }
.badge-revoked { background: #F1EEE6; color: #6B6153; }

/* Certificat */
.cert-card { display: flex; align-items: center; gap: 20px; background: linear-gradient(135deg, #0B2E38, #14454F); border-radius: 16px; padding: 22px 26px; margin-bottom: 30px; flex-wrap: wrap; }
.cert-card-icon { width: 54px; height: 54px; border-radius: 50%; background: rgba(230,164,0,.18); color: #E6A400; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.cert-card-text { flex: 1; min-width: 220px; }
.cert-card-text h3 { color: #fff; font-size: 17px; margin-bottom: 4px; }
.cert-card-text p { color: rgba(255,255,255,.75); font-size: 13.5px; margin: 0; }
.cert-card .btn-primary { background: #E6A400; box-shadow: none; }
.cert-card .btn-primary:hover { background: #F2B420; transform: translateY(-2px); }

/* Programme (élève) */
.elv-les { color: var(--ink); text-decoration: none; }
.elv-les-off { opacity: .55; cursor: default; }
.elv-les-off i.fa-lock { color: var(--ink-soft); }
.soon-tag { font-size: 10px; font-weight: 800; text-transform: uppercase; color: var(--ink-soft); margin-right: 8px; letter-spacing: .5px; }

/* Lecteur vidéo */
.player-wrap { max-width: 1080px; }
.player-grid { display: grid; grid-template-columns: 1fr 300px; gap: 30px; align-items: start; }
@media (max-width: 900px) { .player-grid { grid-template-columns: 1fr; } }
.video-box { background: #0B1418; border-radius: 16px; overflow: hidden; aspect-ratio: 16/9; }
.video-box video { width: 100%; height: 100%; display: block; background: #0B1418; }
.player-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.player-nav { display: flex; gap: 10px; }
.player-side { border: 1px solid var(--line); border-radius: 16px; padding: 18px; max-height: 600px; overflow-y: auto; }
.side-les { display: flex; gap: 10px; align-items: center; padding: 10px 8px; border-radius: 10px; font-size: 13.5px; text-decoration: none; color: var(--ink); }
.side-les:hover { background: var(--sand); }
.side-les.cur { background: #F3FAF8; color: var(--teal); font-weight: 700; }
.side-les.off { opacity: .5; }
.side-les i { color: var(--teal); width: 16px; text-align: center; flex-shrink: 0; }
.side-les.off i { color: var(--ink-soft); }

/* Admin */
.admin-table { width: 100%; border-collapse: collapse; margin-top: 14px; font-size: 13.5px; }
.admin-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--ink-soft); padding: 8px 10px; border-bottom: 1px solid var(--line); }
.admin-table td { padding: 10px; border-bottom: 1px solid #F0EEE7; vertical-align: middle; }
