/** * Presentation layer for the daily digest — React Email components rendered * to HTML (and to the plain-text alternative) inside the Worker. * * This file owns *only* layout and wording. Every number, URL and signature * is computed in digest.ts and handed over as `DigestData`, so the retrieval * rules (review/drill rows carry number + difficulty only — never the topic, * never a solution link) are enforced by what the data model can express: * `DigestRow` has no title and no issue field. * * Dark by design. The theme is hard-coded rather than left to the client's * dark-mode heuristics: `color-scheme: dark` tells Apple Mail and Outlook not * to re-invert it, and the canvas colour is painted by a full-width
* table because Gmail drops styles on . * * Other email constraints that shape the markup: inline styles only (clients * strip