Returns the accumulated report as a Markdown String.
Useful for console output, logging, or test assertions without creating a file:
val md = MarkdownReportRenderer(ctx).also { doc.accept(it) }.output()