Why we replaced brittle HTML-to-PDF templates with a fluent C# document pipeline using QuestPDF—example, observability, migration checklist.