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