:root {
  --cm3-ink: #183243;
  --cm3-blue: #145878;
  --cm3-pale: #eaf2f7;
  --cm3-border: #cbd8df;
}

body { color: var(--cm3-ink); }
main.content { line-height: 1.64; }
main.content h1, main.content h2, main.content h3 { color: var(--cm3-ink); letter-spacing: -0.015em; }
main.content h2 { margin-top: 2.7rem; border-bottom: 2px solid var(--cm3-border); padding-bottom: .34rem; }
main.content a { color: var(--cm3-blue); }
.schema { margin: 1.7rem 0 2.1rem; background: #fff; }
.schema-viewport { overflow-x: auto; }
.schema-viewport > p { margin: 0; }
.schema-viewport:focus-visible { outline: 2px solid var(--cm3-blue); outline-offset: 2px; }
.schema img { display: block; width: 100%; min-width: 680px; height: auto; }
#fig-performance-historique img { width: 65%; min-width: 0; margin-inline: auto; }
#fig-ecosysteme img { width: 80%; min-width: 0; margin-inline: auto; }
#fig-architecture img { width: 85%; min-width: 0; margin-inline: auto; }
.schema figcaption { padding: .7rem 0; border-top: 1px solid var(--cm3-border); color: #385269; font-size: .92rem; }
.fig-legende { font-size: .8rem; color: #555; }
.schema .scroll-hint { display: none; font-size: .85rem; margin: 0; padding: .4rem 1rem; background: #f5f8fa; }
.historique { border-left: 4px solid var(--cm3-blue); background: #f4f8fa; padding: 1rem 1.2rem; margin: 1.25rem 0; }
.historique p:last-child { margin-bottom: 0; }
.table-wrap { overflow-x: auto; }
@media (max-width: 700px) {
  .schema .scroll-hint { display: block; }
  .table-wrap::before { content: "Faites défiler le tableau horizontalement →"; display: block; color: #496174; font-size: .85rem; padding: .35rem 0; }
  .table-wrap table { min-width: 690px; }
}
