/* Compléments propres au site. styles.css et enhancements.css restent
   identiques à ceux de mecaflu pour que les deux sites se ressemblent :
   tout ajout spécifique va ici. */

select{min-width:0;width:100%;padding:11px;border:0;outline:0;background:#fff;font:inherit;color:inherit;cursor:pointer}

.notions{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.notions li{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;font-size:14px}
.notions li:before{content:"·";margin-right:8px;color:var(--cyan);font-weight:900}

table.resultats{width:100%;margin-top:16px;border-collapse:collapse;font-size:14px}
table.resultats th{padding:9px 8px;border-bottom:2px solid var(--line);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;text-align:left}
table.resultats td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.resultats td.q{font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;color:var(--blue)}
table.resultats td.motif{color:var(--muted);font-size:13px}
table.resultats tr.ecarte td{color:var(--muted)}
table.resultats tr.ecarte td.q{color:#94a3b8;font-weight:700}
table.resultats small{display:block;color:var(--muted);font-weight:600}

.planche{margin:22px 0}
.planche img{display:block;width:100%;max-width:520px;margin:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
.planche figcaption{margin-top:9px;color:var(--muted);font-size:13px;text-align:center}

.chapitre-sommaire{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.chapitre-sommaire a{display:block;padding:11px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);text-decoration:none;font-weight:700}
.chapitre-sommaire a:hover{border-color:#22d3ee}
.chapitre-sommaire small{display:block;color:var(--muted);font-weight:500}

.en-preparation{padding:14px 16px;border-left:4px solid #fcd34d;border-radius:0 10px 10px 0;background:#fffbeb;color:#854d0e}

@media(max-width:560px){.notions{grid-template-columns:1fr}}

a.brand{text-decoration:none}
a.brand strong,a.brand small{text-decoration:none}

.calc{margin:20px 0;padding:18px;border:1px solid #bae6fd;border-radius:14px;background:#f0f9ff}
.calc h3{margin:0 0 12px;font-size:16px;color:#075985}
.calc .data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.calc .final-result{margin:14px 0 0;font-size:16px}
.calc .final-result small{color:var(--muted);font-weight:600}

.exo-modes{display:flex;gap:5px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#fff;width:max-content;max-width:100%;margin-bottom:16px}
.exo-modes button{padding:9px 14px;border:0;border-radius:10px;background:none;color:var(--muted);font-weight:800;cursor:pointer}
.exo-modes button.active{background:var(--blue);color:#fff}
.exo-question{padding:16px 0;border-top:1px solid var(--line)}
.exo-question:first-of-type{border-top:0}
.exo-choix{display:grid;gap:7px;margin-top:10px}
.exo-choix label{display:flex;align-items:center;gap:11px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;text-align:left}
/* la feuille commune impose input{width:100%} : les boutons radio doivent y échapper */
.exo-choix input[type="radio"]{flex:0 0 auto;width:auto;min-width:0;margin:0;accent-color:var(--blue)}
.exo-choix label:hover{border-color:#67e8f9}
.exo-choix label.juste{border-color:#86efac;background:#f0fdf4}
.exo-choix label.faux{border-color:#fca5a5;background:#fef2f2}
.exo-explication{margin:10px 0 0;padding:12px 14px;border-left:4px solid var(--cyan);border-radius:0 10px 10px 0;background:#ecfeff;font-size:14px}
.exo-score{margin-top:18px;padding:15px;border-radius:12px;background:#f0fdf4;color:#166534;font-weight:900}
.exo-score.faible{background:#fef2f2;color:#991b1b}
@media(max-width:560px){.calc .data-grid{grid-template-columns:1fr}}

table.abaque{margin-top:6px}
table.abaque td.retenue{background:#cffafe;border-radius:6px;box-shadow:inset 0 0 0 2px var(--cyan)}

/* ── Sommaire du cours : colonne latérale qui suit la lecture ───────────── */
/* La barre supérieure est collante : le sommaire se cale dessous, et se donne
   son propre défilement pour ne jamais dépasser la fenêtre, même à 8 chapitres. */
.workspace.cours-layout{grid-template-columns:minmax(0,1fr) minmax(230px,280px)}
.cours-aside{position:sticky;top:78px;align-self:start}
.cours-aside .card{padding:16px;max-height:calc(100vh - 100px);display:flex;flex-direction:column}
.cours-aside h2{font-size:15px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.cours-aside .chapitre-sommaire{overflow:auto;gap:4px;scroll-behavior:smooth}
.cours-aside .chapitre-sommaire a{padding:8px 11px;border-radius:9px;font-size:14px;font-weight:700;border-color:transparent;background:transparent}
.cours-aside .chapitre-sommaire a:hover{background:#f0f9ff;border-color:#bae6fd}
.cours-aside .chapitre-sommaire small{font-size:11px}
.cours-aside .chapitre-sommaire a.actif{background:#e0f2fe;border-color:#7dd3fc;color:#075985;box-shadow:inset 3px 0 0 var(--cyan)}
/* Le titre visé ne doit pas se glisser sous la barre collante. */
.cours-layout section[id]{scroll-margin-top:86px}
@media(max-width:850px){
  .workspace.cours-layout{grid-template-columns:minmax(0,1fr)}
  /* Sur une colonne, le sommaire passe devant le cours plutôt que derrière. */
  .cours-aside{position:static;order:-1}
  .cours-aside .card{max-height:none}
  .cours-aside .chapitre-sommaire{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}
}
@media(max-width:560px){.cours-aside .chapitre-sommaire{grid-template-columns:1fr}}
