Dynamic intake → automated estimate → contract → invoice
Turn blocks on/off, drag the handle to reorder, and tap a block to edit it. Placeholders like [[panels]], [[brand]] and [[total_due]] fill in from the estimate automatically — the "Reads as" line shows the final text.
Auto-calculated from the estimate. Edit any amount — the project total updates to match the sum of these lines.