/* Badges */
.badge { display: inline-block; padding: 0.1em 0.6em; border-radius: 0.8em; font-size: 0.72em; font-weight: 700; color: #fff; margin-right: 0.3em; vertical-align: middle; letter-spacing: 0.02em; }
.badge-p1 { background: #c62828; }
.badge-p2 { background: #ef6c00; }
.badge-p3 { background: #607d8b; }
.badge-soon { background: #6a3d9a; text-transform: uppercase; }
.badge-brouillon { background: #9e9e9e; }
.badge-format { background: #2b5c8a; }
.badge-exemple { background: #2e6f57; }
.etoiles { color: #d4a017; letter-spacing: 0.05em; font-size: 0.95em; }
.md-typeset table:not([class]) { font-size: 0.78rem; }
.md-typeset .table-annales, .md-typeset .table-sujets { font-size: 0.74rem; display: table; width: 100%; }
.md-typeset input.filtre { width: 100%; max-width: 32rem; padding: 0.5em 0.8em; border: 1px solid var(--md-default-fg-color--lighter); border-radius: 0.3em; font-size: 0.9rem; background: var(--md-default-bg-color); color: var(--md-default-fg-color); margin-bottom: 0.8em; }

/* Encadrés Soon (afaire) */
.md-typeset .admonition.note:has(> .admonition-title:first-child) {}

/* Entraînement langues */
#exos-app { margin-top: 1rem; }
#exos-app .exos-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 0.8rem; }
#exos-app .exos-serie { border: 1px solid var(--md-default-fg-color--lightest); border-radius: 0.4rem; padding: 0.8rem 1rem; cursor: pointer; background: var(--md-code-bg-color); }
#exos-app .exos-serie:hover { border-color: var(--md-accent-fg-color); }
#exos-app .exos-serie h3 { margin: 0 0 0.3rem; font-size: 1rem; }
#exos-app .exos-serie .exos-meta { font-size: 0.75rem; color: var(--md-default-fg-color--light); }
#exos-app .exos-barre { height: 0.4rem; background: var(--md-default-fg-color--lightest); border-radius: 0.2rem; margin-top: 0.5rem; overflow: hidden; }
#exos-app .exos-barre span { display: block; height: 100%; background: #2e6f57; }
#exos-app .exos-item { border: 1px solid var(--md-default-fg-color--lightest); border-radius: 0.4rem; padding: 1rem 1.2rem; margin: 1rem 0; }
#exos-app .exos-enonce { font-size: 1.1rem; margin-bottom: 0.8rem; }
#exos-app .exos-contexte { font-size: 0.85rem; color: var(--md-default-fg-color--light); margin-bottom: 0.5rem; }
#exos-app button { padding: 0.4em 0.9em; margin: 0.2em 0.3em 0.2em 0; border-radius: 0.3em; border: 1px solid var(--md-primary-fg-color); background: var(--md-primary-fg-color); color: #fff; cursor: pointer; font: inherit; font-size: 0.9rem; }
#exos-app button.secondaire { background: transparent; color: var(--md-primary-fg-color); }
#exos-app button.option { display: block; width: 100%; text-align: left; background: var(--md-code-bg-color); color: var(--md-default-fg-color); border-color: var(--md-default-fg-color--lightest); }
#exos-app button.option.juste { border-color: #2e6f57; background: rgba(46,111,87,0.15); }
#exos-app button.option.faux { border-color: #b03a2e; background: rgba(176,58,46,0.15); }
#exos-app input[type=text], #exos-app textarea { width: 100%; padding: 0.5em 0.7em; font: inherit; font-size: 1rem; border: 1px solid var(--md-default-fg-color--lighter); border-radius: 0.3em; background: var(--md-default-bg-color); color: var(--md-default-fg-color); }
#exos-app textarea { min-height: 4.5em; }
#exos-app .exos-verdict { margin-top: 0.8rem; padding: 0.7rem 1rem; border-radius: 0.3rem; }
#exos-app .exos-verdict.ok { background: rgba(46,111,87,0.12); border-left: 4px solid #2e6f57; }
#exos-app .exos-verdict.ko { background: rgba(176,58,46,0.12); border-left: 4px solid #b03a2e; }
#exos-app .exos-verdict.info { background: rgba(43,92,138,0.12); border-left: 4px solid #2b5c8a; }
#exos-app .exos-pied { display: flex; justify-content: space-between; align-items: center; margin-top: 1rem; font-size: 0.85rem; color: var(--md-default-fg-color--light); }
#exos-app label.exos-case { display: block; padding: 0.3em 0; }

/* ---------- Cartes (accueil, matières, rubriques) ---------- */
:root { --carte-couleur: var(--md-primary-fg-color); }
.m-cg { --carte-couleur: #7a2e4d; }
.m-maths { --carte-couleur: #3f51b5; }
.m-esh { --carte-couleur: #00897b; }
.m-langues { --carte-couleur: #2e6f57; }
.md-typeset .cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(14.5rem, 1fr)); gap: 1rem; margin: 1.4rem 0 1.8rem; }
.md-typeset .cartes > p { margin: 0; display: flex; }
.md-typeset a.carte { display: flex; flex-direction: column; gap: 0.4rem; width: 100%; padding: 1.1rem 1.25rem 1rem;
  border-radius: 0.8rem; border: 1px solid var(--md-default-fg-color--lightest); border-top: 4px solid var(--carte-couleur);
  background: var(--md-default-bg-color); color: var(--md-default-fg-color); box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: transform 0.18s ease, box-shadow 0.18s ease; will-change: transform; }
.md-typeset a.carte:hover, .md-typeset a.carte:focus { transform: scale(1.03); box-shadow: 0 10px 26px rgba(0,0,0,0.13); color: var(--md-default-fg-color); }
.md-typeset .carte-icone { line-height: 1; }
.md-typeset .carte-icone .twemoji, .md-typeset .carte-icone svg { width: 2rem; height: 2rem; max-height: none; }
.md-typeset .carte-icone svg { fill: var(--carte-couleur); }
.md-typeset .carte-titre { font-size: 1.02rem; font-weight: 700; line-height: 1.3; }
.md-typeset .carte-texte { font-size: 0.76rem; line-height: 1.5; color: var(--md-default-fg-color--light); }
.md-typeset .carte-etat { margin-top: auto; padding-top: 0.35rem; font-size: 0.7rem; color: var(--md-default-fg-color--light); }
.md-typeset a.carte.soon { opacity: 0.72; }
.md-typeset a.carte.soon:hover { opacity: 1; }
/* cartes des matières, à l'accueil */
.md-typeset .cartes.matieres { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1.3rem; margin-top: 2rem; }
.md-typeset .cartes.matieres a.carte { min-height: 13.5rem; padding: 1.6rem 1.5rem 1.2rem; border-top-width: 6px; }
.md-typeset .cartes.matieres .carte-icone svg { width: 2.8rem; height: 2.8rem; }
.md-typeset .cartes.matieres .carte-titre { font-size: 1.3rem; }
.md-typeset .cartes.matieres .carte-texte { font-size: 0.8rem; }
/* petites cartes (entrées d'une rubrique) */
.md-typeset .cartes.petites { grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); gap: 0.7rem; margin: 0.8rem 0 1.4rem; }
.md-typeset .cartes.petites a.carte { padding: 0.75rem 0.95rem; border-top-width: 3px; border-radius: 0.6rem; }
.md-typeset .cartes.petites .carte-titre { font-size: 0.86rem; font-weight: 600; }
/* accueil */
.md-typeset .hero { text-align: center; padding: 2.2rem 1rem 0.6rem; }
.md-typeset .hero h1 { font-size: 2.6rem; font-weight: 700; margin: 0 0 0.5rem; color: var(--md-default-fg-color); letter-spacing: -0.01em; }
.md-typeset .hero p { font-size: 1rem; color: var(--md-default-fg-color--light); margin: 0; }
.md-typeset .note-accueil { text-align: center; font-size: 0.78rem; color: var(--md-default-fg-color--light); margin-top: 1.5rem; }
/* blocs de téléchargement */
.md-typeset .telecharger { margin: 0.6rem 0 1.4rem; padding: 0.8rem 1rem 0.3rem; border-radius: 0.6rem; background: var(--md-code-bg-color); }
.md-typeset .telecharger p { margin: 0 0 0.5rem; }
.md-typeset .md-button.bouton-pdf { font-size: 0.74rem; padding: 0.45em 1em; margin: 0 0.4rem 0.4rem 0; }
.md-typeset .md-button .twemoji { vertical-align: -0.2em; }
@media (prefers-reduced-motion: reduce) { .md-typeset a.carte { transition: none; } .md-typeset a.carte:hover { transform: none; } }
.md-typeset .lien-telechargements { margin-top: 2rem; font-size: 0.8rem; color: var(--md-default-fg-color--light); }

/* ---------- Sections dépliables des fichiers longs ---------- */
.md-typeset details.section { border: 1px solid var(--md-default-fg-color--lightest); border-left: 4px solid var(--carte-couleur, var(--md-primary-fg-color)); border-radius: 0.5rem; box-shadow: none; margin: 0.9rem 0; }
.md-typeset details.section > summary { font-size: 1rem; font-weight: 700; padding: 0.7rem 2rem 0.7rem 1rem; background: var(--md-code-bg-color); }
.md-typeset details.section > summary::before { display: none; }
.md-typeset details.section[open] > summary { border-bottom: 1px solid var(--md-default-fg-color--lightest); }
.md-typeset .barre-replier { display: flex; gap: 0.5rem; justify-content: flex-end; margin: 1rem 0 0.4rem; }
.md-typeset .barre-replier button { font: inherit; font-size: 0.72rem; padding: 0.3em 0.9em; border-radius: 1em; border: 1px solid var(--md-default-fg-color--lighter); background: transparent; color: var(--md-default-fg-color--light); cursor: pointer; }
.md-typeset .barre-replier button:hover { border-color: var(--md-accent-fg-color); color: var(--md-accent-fg-color); }
/* ---------- Pages d'exercices ---------- */
.md-typeset a.lien-corrige { font-size: 0.78rem; font-weight: 600; }
.md-typeset h3[id^="ex-"], .md-typeset h3[id^="cor-"] { margin-top: 1.6rem; }
.md-typeset .lien-absent { border-bottom: 1px dotted var(--md-default-fg-color--lighter); cursor: help; }

/* renvois vers les citations */
.md-typeset a.renvoi-citation { font-size: 0.78em; font-family: var(--md-code-font-family); white-space: nowrap; }
/* bloc de téléchargement replié (rubriques avec beaucoup de PDF) */
.md-typeset details.telecharger { border-color: var(--md-primary-fg-color); }
.md-typeset details.telecharger > summary { background: var(--md-code-bg-color); }
.md-typeset details.telecharger > summary::before { background-color: var(--md-primary-fg-color); -webkit-mask-image: var(--md-admonition-icon--abstract); mask-image: var(--md-admonition-icon--abstract); }
.md-typeset details.telecharger ul { columns: 2; column-gap: 2rem; font-size: 0.78rem; }
@media (max-width: 60em) { .md-typeset details.telecharger ul { columns: 1; } }
