/* DzSmartEduc — charte « moderne et rassurante » (validée le 01/10/2026).
   Chargée APRÈS Bootstrap, modern-ui.css et main_v2.css : elle redéfinit les couleurs et les polices de toute la
   plateforme. Une marque (encre + ambre) et quatre univers (Apprendre, Échanger, S'équiper, Créer). */

:root {
    --dz-ink: #14213D;
    --dz-blue: #2148C0;
    --dz-blue-dark: #1B3A9A;
    --dz-blue-soft: #E8EEFC;
    --dz-amber: #F59E3B;
    --dz-amber-text: #8A4B0A;
    --dz-amber-soft: #FDEBD3;
    --dz-success: #15803D;
    --dz-muted: #4A5468;
    --dz-border: #E2E6EF;
    --dz-bg: #F6F7FB;
    --dz-surface: #FFFFFF;

    /* Les quatre univers : couleur, fond doux, texte sur fond doux */
    --dz-learn: #2148C0;   --dz-learn-soft: #E8EEFC;  --dz-learn-text: #1B3A9A;
    --dz-share: #0F766E;   --dz-share-soft: #D9F2EE;  --dz-share-text: #0B5C55;
    --dz-equip: #B45309;   --dz-equip-soft: #FDEBD3;  --dz-equip-text: #8A4B0A;
    --dz-create: #6D28D9;  --dz-create-soft: #EDE6FC; --dz-create-text: #5321A8;

    --dz-font-body: 'IBM Plex Sans Arabic', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --dz-font-display: 'Readex Pro', 'IBM Plex Sans Arabic', system-ui, sans-serif;

    /* Bootstrap */
    --bs-primary: var(--dz-blue);
    --bs-primary-rgb: 33, 72, 192;
    --bs-link-color: var(--dz-blue);
    --bs-link-color-rgb: 33, 72, 192;
    --bs-link-hover-color: var(--dz-ink);
    --bs-link-hover-color-rgb: 20, 33, 61;
    --bs-body-font-family: var(--dz-font-body);
    --bs-body-bg: var(--dz-bg);
    --bs-body-color: var(--dz-ink);
    --bs-secondary-color: var(--dz-muted);
    --bs-border-color: var(--dz-border);
    --bs-primary-bg-subtle: var(--dz-blue-soft);
    --bs-primary-text-emphasis: var(--dz-blue-dark);

    /* modern-ui.css */
    --font-ui: var(--dz-font-body);
    --text-main: var(--dz-ink);
    --text-muted: var(--dz-muted);
    --bg-body: var(--dz-bg);
    --bg-surface: var(--dz-surface);
    --border-color: var(--dz-border);
    --primary-gradient: linear-gradient(135deg, var(--dz-blue) 0%, var(--dz-blue-dark) 100%);
}

[data-bs-theme="dark"] {
    --dz-blue-soft: rgba(124, 156, 240, 0.14);
    --dz-muted: #AAB3C5;
    --dz-border: rgba(255, 255, 255, 0.1);
    --dz-bg: #0E1424;
    --dz-surface: #172036;
    --dz-learn-soft: rgba(124, 156, 240, 0.16);  --dz-learn-text: #A9BDF5;
    --dz-share-soft: rgba(45, 212, 191, 0.14);   --dz-share-text: #7FDCCF;
    --dz-equip-soft: rgba(245, 158, 59, 0.16);   --dz-equip-text: #F8C68C;
    --dz-create-soft: rgba(167, 139, 250, 0.16); --dz-create-text: #C9B6FB;

    --bs-link-color: #8FA9F2;
    --bs-link-color-rgb: 143, 169, 242;
    --bs-link-hover-color: #C9D6FA;
    --bs-link-hover-color-rgb: 201, 214, 250;
    --bs-body-bg: var(--dz-bg);
    --bs-body-color: #E6EAF3;
    --text-main: #E6EAF3;
    --text-muted: var(--dz-muted);
    --bg-body: var(--dz-bg);
    --bg-surface: var(--dz-surface);
}

/* ─── Typographie ─── */
body {
    font-family: var(--dz-font-body) !important;
}
h1, h2, h3, .h1, .h2, .h3, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.navbar-brand, .dz-display {
    font-family: var(--dz-font-display);
    letter-spacing: -0.01em;
}
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3 { letter-spacing: 0; }

/* ─── Boutons ─── */
.btn { border-radius: 10px; font-weight: 600; }
.btn-primary {
    --bs-btn-bg: var(--dz-blue);
    --bs-btn-border-color: var(--dz-blue);
    --bs-btn-hover-bg: var(--dz-blue-dark);
    --bs-btn-hover-border-color: var(--dz-blue-dark);
    --bs-btn-active-bg: var(--dz-ink);
    --bs-btn-active-border-color: var(--dz-ink);
    --bs-btn-disabled-bg: var(--dz-blue);
    --bs-btn-disabled-border-color: var(--dz-blue);
}
.btn-outline-primary {
    --bs-btn-color: var(--dz-blue);
    --bs-btn-border-color: var(--dz-blue);
    --bs-btn-hover-bg: var(--dz-blue);
    --bs-btn-hover-border-color: var(--dz-blue);
    --bs-btn-active-bg: var(--dz-blue-dark);
    --bs-btn-active-border-color: var(--dz-blue-dark);
}
/* L'appel principal d'un écran : ambre, texte encre (jamais blanc sur ambre) */
.btn-dz-accent {
    --bs-btn-color: var(--dz-ink);
    --bs-btn-bg: var(--dz-amber);
    --bs-btn-border-color: var(--dz-amber);
    --bs-btn-hover-color: var(--dz-ink);
    --bs-btn-hover-bg: #F2A956;
    --bs-btn-hover-border-color: #F2A956;
    --bs-btn-active-color: var(--dz-ink);
    --bs-btn-active-bg: #E08A22;
    --bs-btn-active-border-color: #E08A22;
}

/* ─── Menu « Écosystème » : quatre univers ─── */
/* Centré sur l'écran (le bouton est au milieu de la barre : aligné sur lui, le panneau sortait de l'écran) */
.dz-eco-menu.show {
    position: fixed !important;
    top: 66px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
}
@media (max-width: 991.98px) {
    .dz-eco-menu.show { top: calc(112px + env(safe-area-inset-top)) !important; max-height: calc(100vh - 128px); }
}
.dz-eco-menu {
    width: min(780px, calc(100vw - 24px));
    border-radius: 18px !important;
    border: 1px solid var(--dz-border) !important;
    padding: 20px !important;
}
.dz-eco-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
@media (max-width: 767.98px) {
    .dz-eco-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
.dz-eco-head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--dz-font-display);
    font-weight: 700;
    font-size: 0.98rem;
    margin-bottom: 6px;
    color: var(--text-main);
}
.dz-eco-icon {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}
.dz-eco-link {
    display: block;
    padding: 7px 10px;
    border-radius: 10px;
    color: var(--text-main);
    text-decoration: none;
    line-height: 1.3;
}
.dz-eco-link:hover, .dz-eco-link:focus { background: var(--dz-bg); color: var(--text-main); }
.dz-eco-link strong { display: block; font-size: 0.92rem; }
.dz-eco-link small { color: var(--dz-muted); font-size: 0.78rem; }
.dz-eco-link.is-soon { cursor: default; opacity: 0.75; }

.dz-u-learn  .dz-eco-icon, .dz-u-learn.dz-eco-icon   { background: var(--dz-learn-soft);  color: var(--dz-learn); }
.dz-u-share  .dz-eco-icon, .dz-u-share.dz-eco-icon   { background: var(--dz-share-soft);  color: var(--dz-share); }
.dz-u-equip  .dz-eco-icon, .dz-u-equip.dz-eco-icon   { background: var(--dz-equip-soft);  color: var(--dz-equip); }
.dz-u-create .dz-eco-icon, .dz-u-create.dz-eco-icon  { background: var(--dz-create-soft); color: var(--dz-create); }
[data-bs-theme="dark"] .dz-u-learn .dz-eco-icon  { color: var(--dz-learn-text); }
[data-bs-theme="dark"] .dz-u-share .dz-eco-icon  { color: var(--dz-share-text); }
[data-bs-theme="dark"] .dz-u-equip .dz-eco-icon  { color: var(--dz-equip-text); }
[data-bs-theme="dark"] .dz-u-create .dz-eco-icon { color: var(--dz-create-text); }

.dz-badge-soon {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--dz-bg);
    color: var(--dz-muted);
    border: 1px solid var(--dz-border);
}

/* ─── Pied de page ─── */
footer.dz-footer { background: var(--dz-ink) !important; color: #C8D0E2; }
footer.dz-footer h5 { color: #FFFFFF; font-family: var(--dz-font-display); font-size: 0.98rem; text-transform: none; }
footer.dz-footer .dz-footer-univers { display: inline-flex; align-items: center; gap: 8px; }
footer.dz-footer .dz-footer-dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* ─── École (DzVirtual School) : bandeau, portes des niveaux, blocs ─── */
.dz-hero { background: var(--dz-ink); color: #FFFFFF; margin-top: -1px; }
.dz-hero .dz-hero-inner { padding-top: 56px; padding-bottom: 56px; }
.dz-hero h1 { font-size: clamp(1.9rem, 4vw, 2.9rem); font-weight: 700; line-height: 1.12; color: #FFFFFF; }
.dz-hero p.lead-text { font-size: 1.08rem; line-height: 1.7; color: #C8D0E2; max-width: 640px; }
.dz-hero-tag { display: inline-block; font-size: 0.8rem; font-weight: 600; padding: 6px 12px; border-radius: 999px;
    background: rgba(245, 158, 59, 0.16); color: #FBC27E; }
.dz-hero .btn-outline-light { border-width: 1.5px; }
.dz-hero-point { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 18px;
    padding: 16px 18px; display: flex; gap: 14px; align-items: center; }
.dz-hero-point .dz-hero-point-icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(245, 158, 59, 0.18);
    color: var(--dz-amber); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }
.dz-hero-point strong { display: block; color: #FFFFFF; }
.dz-hero-point span { font-size: 0.9rem; color: #C8D0E2; }

.dz-section-title { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.dz-section-title h2 { margin: 0; font-size: 1.45rem; font-weight: 600; }
.dz-section-title span { color: var(--dz-muted); }

.dz-doors { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 991.98px) { .dz-doors { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .dz-doors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.dz-door { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; padding: 20px 12px;
    border-radius: 18px; background: var(--dz-surface); border: 1px solid var(--dz-border); color: var(--text-main);
    text-decoration: none; box-shadow: 0 6px 18px rgba(20, 33, 61, 0.07); transition: transform .15s, box-shadow .15s, border-color .15s; }
a.dz-door:hover, a.dz-door:focus { transform: translateY(-3px); color: var(--text-main); border-color: var(--dz-blue);
    box-shadow: 0 12px 26px rgba(33, 72, 192, 0.14); }
.dz-door.is-exam { border: 1.5px solid var(--dz-blue); box-shadow: 0 10px 24px rgba(33, 72, 192, 0.14); }
.dz-door.is-soon { background: transparent; border: 1.5px dashed #C9CFDC; box-shadow: none; color: #8790A3; }
[data-bs-theme="dark"] .dz-door.is-soon { border-color: rgba(255, 255, 255, 0.18); color: #8D97AB; }
.dz-door-code { font-family: var(--dz-font-display); font-size: 1.65rem; font-weight: 700; line-height: 1.1; }
.dz-door-name { font-size: 0.84rem; color: var(--dz-muted); }
.dz-door.is-soon .dz-door-name { color: inherit; }
.dz-pill { display: inline-block; font-size: 0.76rem; font-weight: 600; padding: 4px 10px; border-radius: 999px;
    background: var(--dz-blue-soft); color: var(--dz-learn-text); }
.dz-pill.is-exam { background: var(--dz-amber-soft); color: var(--dz-amber-text); }
.dz-pill.is-soon { background: rgba(135, 144, 163, 0.14); color: var(--dz-muted); }
[data-bs-theme="dark"] .dz-pill.is-exam { color: var(--dz-equip-text); }

.dz-panel { background: var(--dz-surface); border: 1px solid var(--dz-border); border-radius: 20px; padding: 26px; height: 100%; }
.dz-panel.is-soft { background: var(--dz-blue-soft); border-color: rgba(33, 72, 192, 0.18); }
.dz-panel h3 { font-size: 1.2rem; font-weight: 600; }
.dz-panel p { color: var(--dz-muted); line-height: 1.65; }
.dz-panel.is-soft p { color: var(--text-main); }

/* ─── Pages intérieures de l'école : bandeau clair, matières, programme ─── */
.dz-page-head { background: var(--dz-surface); border-bottom: 1px solid var(--dz-border); margin-top: -1px; }
.dz-page-head .dz-page-head-inner { padding-top: 28px; padding-bottom: 28px; }
.dz-crumbs { font-size: 0.88rem; color: var(--dz-muted); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 14px; }
.dz-crumbs a { text-decoration: none; font-weight: 600; }
.dz-page-title { display: flex; align-items: center; gap: 16px; }
.dz-page-title h1 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; }
.dz-page-title .dz-sub { color: var(--dz-muted); margin-top: 2px; }
.dz-tile { width: 56px; height: 56px; border-radius: 16px; display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; flex-shrink: 0; background: var(--dz-blue-soft); color: var(--dz-blue); }
.dz-tile.is-amber { background: var(--dz-amber-soft); color: var(--dz-equip); }
[data-bs-theme="dark"] .dz-tile { color: var(--dz-learn-text); }
[data-bs-theme="dark"] .dz-tile.is-amber { color: var(--dz-equip-text); }

.dz-subjects { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 991.98px) { .dz-subjects { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .dz-subjects { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.dz-subject { display: flex; flex-direction: column; gap: 8px; padding: 20px; border-radius: 18px; background: var(--dz-surface);
    border: 1px solid var(--dz-border); color: var(--text-main); text-decoration: none; box-shadow: 0 6px 18px rgba(20, 33, 61, 0.07);
    transition: transform .15s, border-color .15s, box-shadow .15s; }
.dz-subject:hover, .dz-subject:focus { transform: translateY(-3px); border-color: var(--dz-blue); color: var(--text-main);
    box-shadow: 0 12px 26px rgba(33, 72, 192, 0.14); }
.dz-subject .dz-tile { width: 46px; height: 46px; font-size: 1.2rem; border-radius: 14px; }
.dz-subject-name { font-family: var(--dz-font-display); font-size: 1.12rem; font-weight: 600; line-height: 1.25; }
.dz-subject-meta { font-size: 0.86rem; color: var(--dz-muted); }

.dz-program { display: flex; flex-direction: column; gap: 10px; }
.dz-program-item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; background: var(--dz-surface);
    border: 1px solid var(--dz-border); color: var(--text-main); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.dz-program-item:hover, .dz-program-item:focus { border-color: var(--dz-blue); color: var(--text-main); box-shadow: 0 8px 20px rgba(33, 72, 192, 0.1); }
.dz-program-num { width: 36px; height: 36px; border-radius: 11px; background: var(--dz-blue-soft); color: var(--dz-learn-text);
    font-family: var(--dz-font-display); font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dz-program-title { flex-grow: 1; font-weight: 600; line-height: 1.4; }
.dz-program-lessons { font-size: 0.82rem; white-space: nowrap; color: var(--dz-success); font-weight: 600; }
.dz-program-lessons.is-partial { color: var(--dz-amber-text); }
[data-bs-theme="dark"] .dz-program-lessons { color: #6EE7A0; }
[data-bs-theme="dark"] .dz-program-lessons.is-partial { color: var(--dz-equip-text); }
.dz-class-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--dz-border); }
.dz-class-row:last-child { border-bottom: 0; }

/* ─── Toutes les pages de l'école (<main class="dz-school">) : composants Bootstrap aux couleurs de la charte ─── */
main.dz-school h1 { font-weight: 700; color: var(--text-main); }
main.dz-school h2.h5, main.dz-school h2.h6 { font-family: var(--dz-font-display); font-weight: 600; }
/* Lien de retour en haut de page → pastille */
main.dz-school > .container > nav.small:first-child a {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px;
    background: var(--dz-surface); border: 1px solid var(--dz-border); text-decoration: none; font-weight: 600; }
main.dz-school > .container > nav.small:first-child a:hover { border-color: var(--dz-blue); }
/* Cartes */
main.dz-school .card { border-radius: 18px; border: 1px solid var(--dz-border) !important; background: var(--dz-surface);
    box-shadow: 0 6px 18px rgba(20, 33, 61, 0.06) !important; }
main.dz-school .card.bg-light { background: var(--dz-surface) !important; }
main.dz-school .card.border-primary, main.dz-school .card.border-warning { border: 1.5px solid var(--dz-blue) !important; }
main.dz-school .card-header { background: transparent; border-bottom: 1px solid var(--dz-border); font-weight: 600; }
main.dz-school .card .card-body h2, main.dz-school .card .card-body .h6 { font-family: var(--dz-font-display); }
/* Listes */
main.dz-school .list-group { border-radius: 16px; overflow: hidden; }
main.dz-school .list-group-item { border-color: var(--dz-border); background: var(--dz-surface); color: var(--text-main); }
main.dz-school .list-group-item-action:hover { background: var(--dz-bg); }
/* Tableaux */
main.dz-school .table { --bs-table-bg: var(--dz-surface); --bs-table-border-color: var(--dz-border); }
main.dz-school .table > thead th { font-size: 0.82rem; text-transform: none; color: var(--dz-muted); font-weight: 600; background: var(--dz-bg); }
main.dz-school .table-responsive { border-radius: 14px; }
/* Alertes */
main.dz-school .alert { border-radius: 14px; border-width: 1px; }
main.dz-school .alert-light { background: var(--dz-surface); border-color: var(--dz-border); }
/* Formulaires */
main.dz-school .form-control, main.dz-school .form-select { border-radius: 10px; border-color: #C9D3EA; }
main.dz-school .form-control:focus, main.dz-school .form-select:focus { border-color: var(--dz-blue); box-shadow: 0 0 0 0.2rem rgba(33, 72, 192, 0.16); }
[data-bs-theme="dark"] main.dz-school .form-control, [data-bs-theme="dark"] main.dz-school .form-select { border-color: var(--dz-border); }
/* Étiquettes */
main.dz-school .badge { border-radius: 999px; font-weight: 600; padding: 0.42em 0.75em; }
main.dz-school .badge.bg-primary { background: var(--dz-blue-soft) !important; color: var(--dz-learn-text) !important; }
main.dz-school .badge.bg-warning { background: var(--dz-amber-soft) !important; color: var(--dz-amber-text) !important; }
main.dz-school .badge.bg-success { background: #DCF3E4 !important; color: #11612F !important; }
main.dz-school .badge.bg-info { background: var(--dz-amber-soft) !important; color: var(--dz-amber-text) !important; }
main.dz-school .badge.bg-secondary { background: #EEF0F4 !important; color: var(--dz-muted) !important; }
main.dz-school .badge.bg-light { background: var(--dz-bg) !important; border-color: var(--dz-border) !important; }
[data-bs-theme="dark"] main.dz-school .badge.bg-success { background: rgba(34, 197, 94, 0.16) !important; color: #86EFAC !important; }
[data-bs-theme="dark"] main.dz-school .badge.bg-secondary { background: rgba(255, 255, 255, 0.08) !important; }
/* Progression, onglets */
main.dz-school .progress { border-radius: 999px; background: var(--dz-blue-soft); }
main.dz-school .progress-bar { background: var(--dz-blue); }
main.dz-school .nav-pills .nav-link.active { background: var(--dz-blue); }
main.dz-school .alert-info { background: var(--dz-blue-soft); border-color: rgba(33, 72, 192, 0.2); color: var(--text-main); }
main.dz-school .alert-info .alert-link { color: var(--dz-blue); }
main.dz-school .alert-warning { background: var(--dz-amber-soft); border-color: rgba(180, 83, 9, 0.25); color: var(--dz-amber-text); }
[data-bs-theme="dark"] main.dz-school .alert-warning { color: var(--dz-equip-text); }

/* ─── Accueil de l'écosystème ─── */
.dz-univers-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.dz-univers-tile { display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: 18px; text-decoration: none;
    color: #FFFFFF; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); transition: background .15s, transform .15s; }
.dz-univers-tile:hover, .dz-univers-tile:focus { color: #FFFFFF; background: rgba(255, 255, 255, 0.11); transform: translateY(-2px); }
.dz-univers-tile .dz-ut-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: #FFFFFF; }
.dz-univers-tile strong { font-family: var(--dz-font-display); font-size: 1.15rem; }
.dz-univers-tile span.small { color: #C8D0E2; }
.dz-bg-learn { background: var(--dz-learn); } .dz-bg-share { background: var(--dz-share); }
.dz-bg-equip { background: var(--dz-equip); } .dz-bg-create { background: var(--dz-create); }

.dz-profiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 991.98px) { .dz-profiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dz-profile { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: 16px; background: var(--dz-surface);
    border: 1px solid var(--dz-border); color: var(--text-main); text-decoration: none; transition: border-color .15s, transform .15s; }
.dz-profile:hover, .dz-profile:focus { border-color: var(--dz-blue); color: var(--text-main); transform: translateY(-2px); }
.dz-profile strong { font-size: 1.02rem; }
.dz-profile span { font-size: 0.88rem; color: var(--dz-muted); }

.dz-u-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.dz-u-head h2 { margin: 0; font-size: 1.6rem; font-weight: 600; flex-grow: 1; }
.dz-u-head .dz-eco-icon { width: 42px; height: 42px; border-radius: 12px; font-size: 1.15rem; }
.dz-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 20px; background: var(--dz-surface);
    border: 1px solid var(--dz-border); color: var(--text-main); height: 100%; }
a.dz-card { text-decoration: none; transition: border-color .15s, transform .15s; }
a.dz-card:hover, a.dz-card:focus { color: var(--text-main); border-color: var(--dz-blue); transform: translateY(-2px); }
.dz-card .dz-card-kicker { font-size: 0.78rem; font-weight: 600; }
.dz-card h3 { font-size: 1.22rem; font-weight: 600; margin: 0; }
.dz-card p { color: var(--dz-muted); line-height: 1.65; margin: 0; }
.dz-card .dz-card-cta { font-weight: 600; margin-top: auto; padding-top: 6px; }
.dz-card.is-dark { background: var(--dz-ink); border-color: var(--dz-ink); color: #FFFFFF; }
.dz-card.is-dark p { color: #C8D0E2; }
.dz-card.is-soon { background: transparent; border: 1.5px dashed #C9CFDC; }
.dz-kicker-learn { color: var(--dz-learn-text); } .dz-kicker-share { color: var(--dz-share-text); }
.dz-kicker-equip { color: var(--dz-equip-text); } .dz-kicker-create { color: var(--dz-create-text); }
.dz-cta-share { color: var(--dz-share); } .dz-cta-equip { color: var(--dz-equip); } .dz-cta-create { color: var(--dz-create); }
[data-bs-theme="dark"] .dz-cta-share { color: var(--dz-share-text); } [data-bs-theme="dark"] .dz-cta-equip { color: var(--dz-equip-text); }
[data-bs-theme="dark"] .dz-cta-create { color: var(--dz-create-text); }
.dz-mini-list { list-style: none; padding: 0; margin: 4px 0 0; display: flex; flex-direction: column; gap: 6px; }
.dz-mini-list a { color: var(--text-main); text-decoration: none; font-size: 0.92rem; display: block; line-height: 1.4; }
.dz-mini-list a:hover { color: var(--dz-blue); }
.dz-search { display: flex; gap: 8px; }
.dz-search input { flex-grow: 1; height: 48px; border-radius: 12px; border: 1.5px solid #C9D3EA; padding: 0 14px; background: var(--dz-surface); color: var(--text-main); }
.dz-search input:focus { outline: none; border-color: var(--dz-blue); box-shadow: 0 0 0 0.2rem rgba(33, 72, 192, 0.16); }
/* Le bandeau reste en blanc sur bleu nuit, même dans <main class="dz-school"> (sinon titre bleu nuit sur bleu nuit) */
main.dz-school .dz-hero h1, .dz-hero h1 { color: #FFFFFF; }
.dz-search input { min-width: 0; width: 100%; }

/* ─── En-tête propre d'un module : liseré et étiquette de son univers ─── */
.dz-module-header { border-top: 3px solid var(--dz-blue); }
.dz-module-header.dz-mod-learn  { border-top-color: var(--dz-learn); }
.dz-module-header.dz-mod-share  { border-top-color: var(--dz-share); }
.dz-module-header.dz-mod-equip  { border-top-color: var(--dz-equip); }
.dz-module-header.dz-mod-create { border-top-color: var(--dz-create); }
.dz-module-univers { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 2px; }
.dz-mod-learn .dz-module-univers { color: var(--dz-learn-text); }
.dz-mod-share .dz-module-univers { color: var(--dz-share-text); }
.dz-mod-equip .dz-module-univers { color: var(--dz-equip-text); }
.dz-mod-create .dz-module-univers { color: var(--dz-create-text); }

/* ─── DzCommunity : carte « À la une » de saison, bandeau d'onboarding compact ─── */
.dz-feature-card { background: var(--dz-share-soft); border: 1px solid rgba(15, 118, 110, 0.22); border-radius: 18px; padding: 18px 20px;
    display: flex; flex-direction: column; gap: 6px; }
.dz-feature-kicker { font-size: 0.78rem; font-weight: 700; color: var(--dz-share-text); display: inline-flex; align-items: center; gap: 6px; }
.dz-feature-title { font-family: var(--dz-font-display); font-size: 1.15rem; font-weight: 600; margin: 0; color: var(--text-main); }
.dz-feature-card p { margin: 0 0 4px; color: var(--dz-muted); font-size: 0.93rem; line-height: 1.6; }
.dz-btn-share { --bs-btn-color: #FFFFFF; --bs-btn-bg: var(--dz-share); --bs-btn-border-color: var(--dz-share);
    --bs-btn-hover-color: #FFFFFF; --bs-btn-hover-bg: #0B5C55; --bs-btn-hover-border-color: #0B5C55;
    --bs-btn-active-bg: #094A44; --bs-btn-active-border-color: #094A44; border-radius: 999px; padding-inline: 14px; }
.dz-feature-card .btn-outline-secondary { border-radius: 999px; padding-inline: 14px; }
.dz-onboarding-strip { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px;
    background: var(--dz-surface); border: 1px dashed rgba(33, 72, 192, 0.35); color: var(--text-main); text-decoration: none; font-size: 0.9rem; }
.dz-onboarding-strip:hover { color: var(--text-main); border-style: solid; }
.dz-onboarding-strip i { color: var(--dz-blue); font-size: 1.1rem; }
.dz-onboarding-strip span.fw-semibold { color: var(--dz-blue); white-space: nowrap; }
@media (max-width: 575.98px) {
    /* En-tête DzCommunity sur téléphone : place à la recherche (le filtre wilaya reste dans la recherche avancée) */
    .dz-community-header .wilaya-select, .dz-community-header form .bi-geo-alt { display: none; }
}
/* Titres posés sur un fond sombre (zones « text-white ») : ils restent blancs dans les pages de l'école et des cours */
main.dz-school .text-white h1, main.dz-school .text-white h2, main.dz-school .text-white h3,
main.dz-school h1.text-white, main.dz-school h2.text-white, main.dz-school .text-white .h1 { color: #FFFFFF; }

/* ─── Connexion / inscription : panneau de l'écosystème ─── */
.dz-auth-side { background: var(--dz-ink); }
.dz-auth-title { font-family: var(--dz-font-display); font-size: clamp(1.8rem, 2.6vw, 2.4rem); font-weight: 700; line-height: 1.15; color: #FFFFFF; }
.dz-auth-lead { color: #C8D0E2; font-size: 1.02rem; line-height: 1.65; }
.dz-auth-side .dz-univers-tile { cursor: default; }
.dz-auth-side .dz-univers-tile:hover { transform: none; background: rgba(255, 255, 255, 0.06); }
