.markdown { min-width: 0; overflow-wrap: anywhere; color: var(--color-text-secondary); }
.markdown h1, .markdown h2, .markdown h3, .markdown h4 { color: var(--color-text); line-height: 1.3; margin-block: 1.4em .6em; scroll-margin-top: 24px; }
.markdown h1 { font-size: clamp(28px, 5vw, 42px); margin-top: 0; }
.markdown h2 { font-size: 1.7rem; }
.markdown h3 { font-size: 1.25rem; }
.markdown p { margin-block: 1em; }
.markdown img { max-width: 100%; height: auto; display: block; margin-block: 24px; }
.markdown img.small { width: 75%; }
.markdown img.xsmall { width: 50%; }
.markdown table { display: block; max-width: 100%; width: max-content; overflow-x: auto; border-collapse: collapse; margin-block: 24px; }
.markdown th, .markdown td { border: 1px solid var(--color-border); padding: 10px 14px; }
.markdown th { background: var(--color-surface); color: var(--color-text); }
.markdown blockquote { margin-inline: 0; border-left: 3px solid var(--color-accent); padding-left: 20px; }
.markdown hr { border: 0; border-top: 1px solid var(--color-border); margin-block: 32px; }
.markdown :not(pre) > code { padding: .15em .35em; border-radius: 4px; color: var(--color-text); background: var(--color-surface); }
.markdown code { font: .9em/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; }
.markdown pre { margin: 0; overflow-x: auto; padding: 18px; white-space: pre; tab-size: 4; }
.code-block { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface); margin-block: 24px; overflow: hidden; }
.code-block__toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 14px; border-bottom: 1px solid var(--color-border); font-size: .75rem; color: var(--color-muted); }
.copy-code { border: 1px solid var(--color-border); border-radius: 4px; background: transparent; color: var(--color-accent); font: inherit; padding: 3px 9px; cursor: pointer; }
.copy-code:disabled { color: var(--color-muted); cursor: not-allowed; }
.code-control { color: #fbd38d; border: 1px dotted currentColor; padding: 0 2px; }
.code-block__warning { margin: 0; padding: 10px 14px; border-top: 1px solid var(--color-border); color: #fbd38d; font-size: .8rem; }
.diagram__frame { display: block; width: 100%; height: 320px; border: 0; }
.diagram { margin: 24px 0; padding: 18px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 8px; }
.diagram__render { overflow-x: auto; text-align: center; }
.diagram__render svg { max-width: 100%; height: auto; }
.diagram__source { font-size: .85rem; }
.diagram__source summary { color: var(--color-muted); cursor: pointer; }
.diagram__status:empty { display: none; }
.diagram__status { color: var(--color-muted); font-size: .85rem; }
.task-list-item { list-style: none; }
.task-list-item-checkbox { margin-right: .5em; }

/* Report headings and quotations add archival cues without altering content. */
.report-body { counter-reset: report-section; }
.report-body > h1:first-child {
  margin: 8px 0 36px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--color-border);
  font: 400 clamp(34px, 4.8vw, 52px)/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
  color: var(--color-text);
}
.report-body > h2 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 48px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-border);
  font: 700 1.05rem/1.5 var(--font-record);
  letter-spacing: .025em;
}
.report-body > h2::before {
  counter-increment: report-section;
  content: counter(report-section, decimal-leading-zero) " /";
  flex: 0 0 auto;
  color: var(--color-accent);
  font-size: .75rem;
}
.report-body > h3 { margin-top: 32px; font-size: 1.1rem; }
.report-body > blockquote {
  margin-block: 28px;
  padding: 22px 24px;
  border-left: 2px solid var(--color-accent);
  background: #68d39107;
  color: var(--color-text-secondary);
  font-size: .95em;
  line-height: 1.85;
}
.report-body > blockquote::before {
  content: "EXTRAIT DU DOSSIER";
  display: block;
  margin-bottom: 14px;
  color: var(--color-accent);
  font: 700 .65rem/1.5 var(--font-record);
  letter-spacing: .13em;
}
.report-body > blockquote > :first-child { margin-top: 0; }
.report-body > blockquote > :last-child { margin-bottom: 0; }
.report-body .code-block { border-radius: 3px; }
@media (max-width: 640px) {
  .report-body > blockquote { padding: 18px 16px; }
  .report-body > h2 { gap: 9px; font-size: 1rem; }
}
