/* INVENTAIRE — registre-terminal. Palette données validée (dark #0b0d0c) : #15a869 / #5b7fd0. */
:root{
  --bg:#0b0d0c; --bg2:#101413; --panel:#0e1210;
  --ink:#dde3de; --dim:#96a09a; --faint:#5c655f;
  --acc:#2fe08c; --acc-deep:#15a869; --data2:#5b7fd0;
  --rule:#1c2420; --rule2:#27312c;
  --mono:"Berkeley Mono",ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --serif:"Iowan Old Style",Palatino,"Palatino Linotype",Georgia,serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;color:var(--ink);font:1.05rem/1.78 var(--serif);
  background:radial-gradient(1200px 600px at 50% -10%,#0f1512 0%,var(--bg) 60%);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--acc);color:#04140c}

/* ─ progression ─ */
#bar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--acc);z-index:9;box-shadow:0 0 8px #2fe08c66}

/* ─ en-tête ─ */
header.site{max-width:44rem;margin:0 auto;padding:2.2rem 1.25rem 0}
.brand{font:700 .95rem/1 var(--mono);letter-spacing:.42em;color:var(--ink);text-decoration:none;text-transform:uppercase}
.brand .c{display:inline-block;width:.55em;height:1em;background:var(--acc);vertical-align:-.15em;margin-left:.2em;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
nav.site{margin-top:1rem;padding:.55rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  font:.72rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;display:flex;gap:1.6rem;flex-wrap:wrap}
nav.site a{color:var(--dim);text-decoration:none}
nav.site a:hover,nav.site a[aria-current]{color:var(--acc)}

/* ─ fil d'Ariane ─ */
nav.fil{max-width:44rem;margin:1.5rem auto -1.2rem;padding:0 1.25rem;
  font:.68rem/1.6 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
nav.fil a{color:var(--dim);text-decoration:none}
nav.fil a:hover{color:var(--acc)}
nav.fil .sep{margin:0 .55rem;color:var(--rule2)}
nav.fil [aria-current]{color:var(--acc-deep)}

/* ─ page ─ */
main{max-width:44rem;margin:0 auto;padding:2.5rem 1.25rem 4rem}
.modcode{font:.72rem/1 var(--mono);letter-spacing:.3em;color:var(--acc-deep);text-transform:uppercase}
h1{font:400 1.9rem/1.25 var(--serif);letter-spacing:.01em;margin:.5rem 0 .4rem}
h1+.lectures,h1~p:first-of-type{margin-top:1rem}
h2{font:600 .82rem/1.4 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);
  margin:2.8rem 0 1rem;padding-top:1.2rem;border-top:1px solid var(--rule)}
h2::before{content:"§ ";color:var(--acc-deep)}
h3{font:600 .78rem/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:2rem 0 .8rem}
p{margin:0 0 1.15rem}
strong{color:#fff;font-weight:600}
em{font-style:italic}
a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:#2fe08c66}
a:hover{text-decoration-color:var(--acc)}
hr{border:0;border-top:1px solid var(--rule);margin:2.4rem 0}
blockquote{margin:1.4rem 0;padding:.2rem 0 .2rem 1.2rem;border-left:2px solid var(--acc-deep);color:var(--ink)}
blockquote p{margin-bottom:.6rem}
ul,ol{padding-left:1.4rem;margin:0 0 1.15rem}
li{margin:.35rem 0}
sup{font-size:.7em}
code{font:.88em var(--mono);background:var(--panel);border:1px solid var(--rule);padding:.08em .35em;border-radius:3px;color:var(--acc)}
pre{background:var(--panel);border:1px solid var(--rule);padding:1rem;overflow-x:auto;border-radius:4px}
pre code{border:0;background:none}

/* ─ bloc lectures (début de module) ─ */
.lectures{border:1px solid var(--rule);border-left:2px solid var(--acc-deep);background:var(--panel);
  padding:.9rem 1.1rem;margin:1.4rem 0;font-size:.92rem}
.lectures p{margin:.25rem 0}
.lectures strong{font:600 .68rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--acc)}

/* ─ registre (sommaire) ─ */
.registre{list-style:none;padding:0;margin:1.5rem 0;border-top:1px solid var(--rule)}
.registre li{margin:0;border-bottom:1px solid var(--rule)}
.registre a{display:flex;align-items:baseline;gap:.9rem;padding:.72rem .2rem;text-decoration:none;color:var(--ink)}
.registre a:hover{background:var(--panel)}
.registre .n{font:600 .72rem/1 var(--mono);letter-spacing:.12em;color:var(--acc-deep);min-width:4.2em}
.registre a:hover .n{color:var(--acc)}
.registre .t{font-size:1.02rem}
.registre .dots{flex:1;border-bottom:1px dotted var(--rule2);transform:translateY(-4px)}
.registre .au{font:600 .62rem/1 var(--mono);letter-spacing:.14em;color:var(--acc);text-transform:uppercase;white-space:nowrap}
.registre .len{font:.68rem/1 var(--mono);color:var(--faint);letter-spacing:.1em}
.mvt{font:600 .68rem/1 var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--faint);margin:2.2rem 0 .6rem}

/* ─ liste des cours ─ */
.registre.cours{border-top:0;margin:2.2rem 0}
.registre.cours li{border:1px solid var(--rule2);border-left:2px solid var(--acc);background:var(--panel);
  padding:1.3rem 1.4rem 1.4rem;margin-bottom:1.2rem;border-radius:2px;transition:border-color .2s,background .2s}
.registre.cours li:hover{border-color:var(--acc-deep);border-left-color:var(--acc);background:#111614}
.registre.cours a{display:block;padding:0;text-decoration:none}
.registre.cours a:hover{background:none}
.registre.cours .n{display:block;min-width:auto;font:400 1.55rem/1.2 var(--serif);letter-spacing:.01em;
  color:var(--ink);text-transform:none;margin-bottom:.15rem}
.registre.cours li:hover .n{color:var(--acc)}
.registre.cours .t{display:block;font:.9rem/1.5 var(--serif);font-style:italic;color:var(--dim)}
.registre.cours .dots{display:none}
.registre.cours .len{display:block;margin-top:.7rem;font:.66rem/1 var(--mono);letter-spacing:.2em;
  text-transform:uppercase;color:var(--acc-deep)}
.registre.cours .resume{display:block;margin:.9rem 0 0;font-size:.95rem;line-height:1.72;color:var(--dim);max-width:40rem}
.registre.cours .entrer{display:inline-block;margin-top:1rem;
  font:600 .68rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--acc)}
.registre.cours li:hover .entrer{text-decoration:underline;text-underline-offset:4px}

/* ─ manifeste (accueil) ─ */
.manifeste{font-size:1.35rem;line-height:1.55;margin:2rem 0 1rem}
.manifeste em{color:var(--acc);font-style:normal}
.sceau{font:.72rem/1.9 var(--mono);color:var(--faint);letter-spacing:.14em;text-transform:uppercase}

/* ─ figures & diagrammes ─ */
figure.diagram{margin:2rem 0;border:1px solid var(--rule);background:var(--panel);padding:1.1rem 1.1rem .9rem;border-radius:2px}
figure.diagram figcaption{font:.7rem/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:.7rem}
figure.diagram figcaption b{color:var(--acc);font-weight:600}
figure.diagram svg{display:block;width:100%;height:auto}
figure.diagram text{font-family:var(--mono)}
.dg-controls{display:flex;align-items:center;gap:.8rem;font:.72rem/1 var(--mono);color:var(--dim);margin-top:.6rem;letter-spacing:.08em}
input[type=range]{-webkit-appearance:none;appearance:none;flex:1;height:2px;background:var(--rule2);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--acc);border-radius:50%;cursor:pointer;box-shadow:0 0 8px #2fe08c88}
input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--acc);border:0;border-radius:50%;cursor:pointer}

/* ─ audio ─ */
.piste{border:1px solid var(--rule);border-left:2px solid var(--acc);background:linear-gradient(90deg,#0f1a14 0%,var(--panel) 40%);
  padding:.8rem 1rem;margin:1.2rem 0 1.6rem;border-radius:2px}
.piste .lab{font:600 .7rem/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--acc);display:block;margin-bottom:.6rem}
.piste .lab::before{content:"▶ ";font-size:.9em}
.piste audio{width:100%;height:38px;display:block}
.piste .abs{font:.72rem/1.5 var(--mono);color:var(--faint)}

/* ─ emporter ─ */
h2#emporter+ul,h2.emporter+ul{list-style:none;padding:0;border-top:1px solid var(--rule)}
h2#emporter+ul li,h2.emporter+ul li{padding:.55rem 0 .55rem 1.6rem;margin:0;border-bottom:1px solid var(--rule);position:relative;font-size:.98rem}
h2#emporter+ul li::before,h2.emporter+ul li::before{content:"▸";position:absolute;left:.2rem;color:var(--acc-deep);font-family:var(--mono)}

/* ─ navigation bas de page ─ */
nav.pied{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);
  font:.78rem/1.5 var(--mono);letter-spacing:.06em}
nav.pied a{text-decoration:none;color:var(--dim);max-width:46%}
nav.pied a:hover{color:var(--acc)}
nav.pied .k{display:block;font-size:.62rem;letter-spacing:.26em;color:var(--faint);text-transform:uppercase;margin-bottom:.2rem}
footer.site{max-width:44rem;margin:0 auto;padding:1.2rem 1.25rem 2.6rem;border-top:1px solid var(--rule);
  font:.68rem/2 var(--mono);color:var(--faint);letter-spacing:.12em;text-transform:uppercase;display:flex;flex-wrap:wrap;gap:.4rem 1.6rem}
footer.site a{color:var(--dim);text-decoration:none}
footer.site a:hover{color:var(--acc)}

/* ─ apparitions ─ */
.rise{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
.rise.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rise{opacity:1;transform:none;transition:none}
  .brand .c{animation:none}
  html{scroll-behavior:auto}
}
@media print{
  :root{--bg:#fff;--ink:#111;--dim:#444;--faint:#666;--rule:#ccc;--panel:#f6f6f6;--acc:#0a7a4c;--acc-deep:#0a7a4c}
  body{background:#fff;font-size:11pt}
  #bar,nav.site,nav.pied,.piste{display:none}
}
@media (max-width:560px){
  .manifeste{font-size:1.15rem}
  h1{font-size:1.55rem}
  .registre .len{display:none}
}
