/* ============================================================
   Skill Nova — Feuille de style des leçons
   Encadrés pédagogiques, formules LaTeX, figures, exercices.
   S'appuie sur les variables de assets/css/style.css.
   ============================================================ */

.lecon{
  --l-primary:#5B3DF5;
  --l-primary-soft:#EEEAFE;
  --l-ink:#14163A;
  --l-muted:#6A719A;
  --l-line:#E4E7F2;
  --l-surface:#FFFFFF;
  --l-def:#5B3DF5;   --l-def-bg:#F2EFFE;
  --l-prop:#0E9F6E;  --l-prop-bg:#E8F7F1;
  --l-theo:#7B1F2F;  --l-theo-bg:#FBEFF1;
  --l-meth:#DD7A33;  --l-meth-bg:#FFF4E8;
  --l-ex:#2DA9D8;    --l-ex-bg:#EAF6FC;
  --l-warn:#C8202E;  --l-warn-bg:#FDEDEC;
  --l-hist:#C73E6C;  --l-hist-bg:#FDEDF3;
  --l-note-bg:#F6F7FB;
  font-size:1.02rem;
  line-height:1.75;
  color:var(--l-ink);
}
html[data-theme="dark"] .lecon{
  --l-primary:#9C87FF;
  --l-primary-soft:#241E4A;
  --l-ink:#E8EAF6;
  --l-muted:#A2A8C8;
  --l-line:#2C2F52;
  --l-surface:#161831;
  --l-def:#9C87FF;   --l-def-bg:#1E1B3C;
  --l-prop:#34D399;
  --l-theo:#F08A9B;
  --l-meth:#F0A868;
  --l-ex:#5BC5EE;
  --l-warn:#F87171;
  --l-hist:#F27CA6;
  --l-prop-bg:#12291F;
  --l-theo-bg:#2E1418;
  --l-meth-bg:#2C1D0F;
  --l-ex-bg:#0F2530;
  --l-warn-bg:#2E1315;
  --l-hist-bg:#2C1220;
  --l-note-bg:#1A1C36;
}

/* ---------- Structure ---------- */
.lecon{max-width:none}
.lecon__grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:2.5rem;align-items:start}
@media (max-width:1040px){.lecon__grid{grid-template-columns:1fr}}

.lecon h2{
  font-size:1.6rem;line-height:1.25;margin:3rem 0 .35rem;
  padding-bottom:.5rem;border-bottom:3px solid var(--l-primary);
  display:flex;align-items:baseline;gap:.7rem;
}
.lecon h2 .num{
  font-size:.9rem;font-weight:700;letter-spacing:.06em;
  background:var(--l-primary);color:#fff;border-radius:.5rem;
  padding:.18rem .55rem;flex:none;
}
.lecon h3{font-size:1.18rem;margin:2.1rem 0 .5rem;color:var(--l-primary)}
.lecon h4{font-size:1.02rem;margin:1.4rem 0 .35rem;letter-spacing:.02em;text-transform:uppercase;color:var(--l-muted)}
.lecon p{margin:.75rem 0}
.lecon ul,.lecon ol{margin:.7rem 0 .7rem 1.2rem;padding-left:.6rem}
.lecon li{margin:.35rem 0}
.lecon strong{font-weight:700;color:var(--l-ink)}
.lecon a{color:var(--l-primary)}

/* ---------- Encadrés ---------- */
.box{
  position:relative;margin:1.5rem 0;padding:1.05rem 1.2rem 1.1rem;
  border:1px solid var(--l-line);border-left:5px solid var(--bx,var(--l-primary));
  border-radius:.85rem;background:var(--bx-bg,var(--l-surface));
}
.box__t{
  display:inline-flex;align-items:center;gap:.45rem;
  font-weight:800;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--bx,var(--l-primary));margin-bottom:.5rem;
}
.box__t::before{content:"";width:.5rem;height:.5rem;border-radius:2px;background:currentColor;flex:none}
.box>*:last-child{margin-bottom:0}

.box--def{--bx:var(--l-def);--bx-bg:var(--l-def-bg)}
.box--prop{--bx:var(--l-prop);--bx-bg:var(--l-prop-bg)}
.box--theo{--bx:var(--l-theo);--bx-bg:var(--l-theo-bg)}
.box--meth{--bx:var(--l-meth);--bx-bg:var(--l-meth-bg)}
.box--ex{--bx:var(--l-ex);--bx-bg:var(--l-ex-bg)}
.box--warn{--bx:var(--l-warn);--bx-bg:var(--l-warn-bg)}
.box--hist{--bx:var(--l-hist);--bx-bg:var(--l-hist-bg)}
.box--demo{--bx:var(--l-muted);--bx-bg:transparent;border-left-style:dashed}

/* ---------- Calculs : une étape par ligne ---------- */
.calc{
  margin:1rem 0;padding:.85rem 1rem;border-radius:.7rem;
  background:var(--l-note-bg);border:1px solid var(--l-line);
  overflow-x:auto;
}
.calc ol{list-style:none;margin:0;padding:0}
.calc li{
  display:grid;grid-template-columns:2.3rem minmax(0,1fr);
  gap:.6rem;align-items:baseline;margin:.28rem 0;
}
.calc li .op{
  text-align:right;color:var(--l-primary);font-weight:700;
  font-size:1.02em;white-space:nowrap;
}
.calc li .why{display:block;font-size:.86em;color:var(--l-muted);font-style:italic;margin-top:.1rem}
.calc--plain li{grid-template-columns:1fr}

/* ---------- Notes latérales ---------- */
.aside{
  margin:1.2rem 0;padding:.7rem .9rem;border-radius:.6rem;
  background:var(--l-note-bg);border:1px dashed var(--l-line);
  font-size:.92rem;color:var(--l-muted);font-style:italic;
}
.aside b{color:var(--l-primary);font-style:normal}
@media (min-width:1041px){
  .lecon__side .aside{margin:0 0 1rem;position:sticky;top:5rem}
}

/* ---------- Figures ---------- */
.fig{margin:1.6rem auto;text-align:center;max-width:640px}
.fig svg,.fig img{max-width:100%;height:auto;border-radius:.6rem}
.fig figcaption{
  margin-top:.55rem;font-size:.87rem;color:var(--l-muted);
}
.fig figcaption b{color:var(--l-primary);font-weight:700}
html[data-theme="dark"] .fig svg{filter:none}

/* ---------- Tableaux ---------- */
.lecon .tbl{width:100%;overflow-x:auto;margin:1.3rem 0}
.lecon table{border-collapse:collapse;width:100%;font-size:.95rem}
.lecon th,.lecon td{border:1px solid var(--l-line);padding:.55rem .7rem;text-align:left;vertical-align:top}
.lecon thead th{background:var(--l-primary-soft);color:var(--l-primary);font-weight:800;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase}

/* ---------- Exercices ---------- */
.exos{margin:2rem 0}
.exos__lvl{
  display:flex;align-items:center;gap:.6rem;margin:2rem 0 .8rem;
  font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--l-primary);
}
.exos__lvl::after{content:"";flex:1;height:2px;background:var(--l-line);border-radius:2px}
.exo{border:1px solid var(--l-line);border-radius:.8rem;margin:.9rem 0;background:var(--l-surface);overflow:hidden}
.exo__h{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem}
.exo__n{
  flex:none;width:1.9rem;height:1.9rem;border-radius:50%;
  background:var(--l-primary);color:#fff;font-weight:800;font-size:.85rem;
  display:grid;place-items:center;
}
.exo__b{flex:1;min-width:0}
.exo__b>*:first-child{margin-top:0}
.exo details{border-top:1px dashed var(--l-line);background:var(--l-note-bg)}
.exo summary{
  cursor:pointer;padding:.6rem 1rem;font-weight:700;font-size:.85rem;
  color:var(--l-primary);letter-spacing:.04em;list-style:none;
}
.exo summary::-webkit-details-marker{display:none}
.exo summary::before{content:"▸ ";display:inline-block;transition:transform .15s}
.exo details[open] summary::before{content:"▾ "}
.exo details>div{padding:0 1rem 1rem}

/* ---------- Fiche mémo ---------- */
.memo{border:2px solid var(--l-primary);border-radius:1rem;padding:1.2rem 1.3rem;margin:2rem 0;background:var(--l-primary-soft)}
.memo h3{margin-top:0;color:var(--l-primary)}
.memo ul{margin-left:1rem}

/* ---------- Sommaire de la leçon ---------- */
.toc{border:1px solid var(--l-line);border-radius:.8rem;padding:1rem 1.1rem;background:var(--l-note-bg);margin:1.5rem 0}
.toc__t{font-weight:800;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--l-muted);margin-bottom:.5rem}
.toc ol{margin:0 0 0 1.1rem;padding:0}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}

/* ---------- KaTeX ---------- */
.lecon .katex{font-size:1.06em}
.lecon .katex-display{margin:1rem 0;padding:.2rem 0;overflow-x:auto;overflow-y:hidden}
.lecon .katex-display>.katex{white-space:normal}
@media (max-width:560px){.lecon .katex{font-size:1em}}

/* Impression : le cours doit sortir proprement sur papier */
@media print{
  .header,.footer,.exo details,.lecon__side{display:none!important}
  .lecon{font-size:11pt}
  .box{break-inside:avoid}
  .fig{break-inside:avoid}
}

/* Sécurité anti-débordement sur mobile : la colonne de la leçon ne doit
   jamais forcer la largeur de la page. */
.split>*{min-width:0}
.lecon{overflow-wrap:break-word}
