.reader-resource { display:flex; gap:14px; padding:18px; border:1px solid var(--lecture-line, #dce8eb); border-radius:14px; background:var(--white, #fff); color:var(--dark, #173947); text-decoration:none; }
.reader-resource:hover { border-color:#428a91; }
.reader-resource:focus-visible { outline:3px solid #428a91; outline-offset:3px; }
.reader-resource__icon { width:24px; height:24px; flex-shrink:0; color:#3f868b; }
.reader-resource__body { min-width:0; }
.reader-resource__title { display:block; font-weight:750; line-height:1.4; }
.reader-resource__meta { display:block; margin:4px 0; font-size:.8rem; opacity:.75; }
.reader-resource__description { display:block; margin-top:6px; font-size:.9rem; line-height:1.55; }
.reader-resource__state { margin:0; padding:16px; color:var(--gray, #547181); line-height:1.5; }
.reader-resource__state a { color:inherit; text-underline-offset:3px; }
.reader-resource__retry { display:block; margin-top:10px; padding:9px 14px; border:1px solid #428a91; border-radius:8px; font:inherit; color:inherit; background:transparent; cursor:pointer; }
[data-theme="dark"] .reader-resource { background:#123442; color:#e2f2ef; border-color:#315460; }
.module-end-card--review { border:1px solid #c8dddc; border-radius:16px; padding:24px; background:#eef6f3; color:#173947; }
.module-end-card--review #moduleCompletionTitle { margin:0 0 8px; font-size:1.2rem; line-height:1.4; color:inherit; }
[data-theme="dark"] .module-end-card--review { background:#153542; border-color:#365964; color:#e2f2ef; }

/* Centre de ressources (#ressources) : grille, cartes, favoris, ateliers. */
.resource-hero { background:linear-gradient(135deg, #1A365D 0%, #0D1B2A 100%); }
.resource-hero__back { margin-bottom:12px; }
.resource-hero__back a { color:rgba(255,255,255,.75); text-decoration:none; font-size:.9rem; }
.resource-hero__back a:hover, .resource-hero__back a:focus-visible { color:#fff; text-decoration:underline; }
.resource-center { max-width:1100px; margin:0 auto; padding:24px; }
.resource-center__search { margin-bottom:20px; }
.resource-center__search input { width:100%; padding:10px 16px; border:1px solid var(--gray-light, #dce8eb); background:var(--white, #fff); color:var(--dark, #173947); font-size:.9rem; }
.resource-center__tabs { margin-bottom:20px; display:flex; flex-wrap:wrap; gap:8px; }
.resource-tab { font-size:.8rem !important; }
.resource-tab--active { background:var(--primary) !important; color:#fff !important; border-color:var(--primary) !important; }
.resource-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:16px; }
.resource-card { position:relative; border:1px solid var(--gray-light, #dce8eb); background:var(--white, #fff); transition:box-shadow .2s, transform .2s; }
.resource-card:hover { box-shadow:0 4px 12px rgba(0,0,0,.1); transform:translateY(-2px); }
.resource-card__link { display:block; padding:16px 48px 16px 16px; color:inherit; text-decoration:none; }
.resource-card__link:focus-visible { outline:3px solid #428a91; outline-offset:-3px; }
.resource-card__badge { display:inline-block; font-size:.7rem; color:#fff; padding:2px 8px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
.resource-card__title { display:block; font-weight:700; font-size:.95rem; margin-bottom:4px; color:var(--dark, #173947); }
.resource-card__desc { display:block; font-size:.85rem; color:var(--text-light, #5b6b73); line-height:1.5; }
.resource-card__star { position:absolute; top:8px; right:8px; width:36px; height:36px; border:0; border-radius:50%; background:transparent; color:#b08a1c; font-size:1.4rem; line-height:1; cursor:pointer; }
.resource-card__star:hover, .resource-card__star:focus-visible { background:rgba(201,162,39,.16); outline:none; }
.resource-card__star--on { color:#C9A227; }
.resource-empty { padding:40px; text-align:center; color:var(--text-light, #5b6b73); grid-column:1 / -1; }
.resource-ateliers { margin-top:8px; }
.resource-ateliers__title { margin:0 0 6px; font-size:1.25rem; }
.resource-ateliers__hint { margin:0 0 16px; color:var(--text-light, #5b6b73); font-size:.9rem; }
.resource-course-card, .resource-atelier-card { text-decoration:none; color:inherit; }
.resource-atelier-card__icon { font-size:1.6rem; display:block; margin-bottom:6px; }
.resource-atelier-card__meta { display:block; margin-top:8px; font-size:.8rem; color:var(--text-light, #5b6b73); }
.resource-atelier-hero__meta { font-size:.85rem; opacity:.85; }
.resource-atelier .lms-content__inner { max-width:900px; margin:0 auto; padding:24px; }
@media (max-width:768px) { .resource-grid { grid-template-columns:1fr; } }

/* Bibliographie de fin de module, commune aux deux parcours. */
.module-sources{box-sizing:border-box;width:100%;max-width:100%;margin:24px 0;padding:22px;border:1px solid #bdd5d7;border-radius:18px;background:#edf5f4;color:#173e50;text-align:left;line-height:1.55;overflow-wrap:anywhere}
.module-sources h3{margin:0 0 8px;font-family:inherit;font-weight:700;font-size:1.2rem;line-height:1.3;color:inherit}
.module-sources p{margin:0 0 14px;font-size:.95rem;color:inherit}
.module-sources summary{min-height:44px;display:list-item;align-content:center;font-weight:700;cursor:pointer}
.module-sources ul{margin:8px 0 0;padding-left:22px}
.module-sources li{padding:7px 0}
.module-sources a{display:inline-block;padding:5px 0;color:inherit;text-decoration:underline;text-underline-offset:3px;max-width:100%}
.module-sources__context{display:block;font-size:.85rem;opacity:.85}
.module-sources :is(a,summary):focus-visible{outline:3px solid #31818b;outline-offset:4px;border-radius:3px}
[data-theme=dark] .module-sources,body.dark .module-sources{background:#173744;border-color:#446970;color:#e5f2f1}
@media(max-width:600px){.module-sources{padding:18px 16px}.module-sources li{padding:9px 0}}
