feat(offers): professional offer letter and company settings

Replaces the placeholder offer PDF with a plain-English offer letter for
England and Wales, rendered by dompdf in Sora (TTFs in resources/fonts,
cache in storage/fonts, config/dompdf.php published). The letter follows
the agreed structure: letterhead with logo, date and "Reference / Offer
vN", addressee block by capacity (executors, joint owners, attorneys),
subject, opening with the visit clause, the offer table with the figure
in words (tested AmountInWords), basis bullets, the approved revision
wording, numbered next steps, the fixed subject-to-contract paragraph,
signature block by signatory mode, cc line and a footer on every page
with "Page X of Y". The internal valuation never reaches the letter or
the email.

New Settings > Company & offer settings page (settings.manage) stores the
company details, letter defaults, policy texts (recorded with who
approved them and when, and logged), links and signatory. Missing
required settings print yellow "[TO BE CONFIRMED]" markers outside
production and disable Send in production.

Offers gain the letter's terms (reversible migration), prefilled from the
enquiry and settings. Send is blocked for expired or near-expiry offers,
closed enquiries, zero amounts, completion dates in the wrong order,
Scottish and Northern Irish postcodes and commercial, land or development
property (previews are watermarked NOT FOR USE). Revise offer drafts
letter v+1 pointing at the offer it supersedes, which is marked
Superseded and keeps its letter and document. Three sample letters with
fake data are in docs/samples (offers:letter-samples).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
