// CHANGE BRAND COLOR HERE (e.g., your company's hex code)
#let brand-color = rgb("#334155")
#set page(paper: "us-letter", margin: 2cm)
#set text(font: "Helvetica", size: 11pt, fill: rgb("#111827"))
// Header: Logo & Document Info
#grid(
columns: (1fr, 1fr),
align(left)[
// INSERT LOGO HERE (You can also use image("url"))
#text(size: 24pt, weight: "bold", fill: brand-color)[PDFDyno] \
#text(size: 10pt, fill: luma(100))[hello\@pdfdyno.com]
],
align(right)[
#text(size: 24pt, weight: "bold")[INVOICE] \
#v(5pt)
*Invoice \#*: #data.invoice_id \
*Date*: #data.date
]
)
#v(2cm)
// Customer Address & Info
#grid(
columns: (1fr, 1fr),
[
#text(weight: "bold")[Bill To:] \
#data.customer.name \
#data.customer.company \
#data.customer.address
],
[]
)
#v(1.5cm)
// Line Items Table
#table(
columns: (1fr, auto, auto),
inset: 12pt,
stroke: (x, y) => if y == 0 { (bottom: 2pt + black) } else { (bottom: 1pt + rgb("#e5e7eb")) },
align: (left, right, right),
[*Description*], [*Qty*], [*Amount*],
..data.items.map(item => (
item.description,
item.qty,
item.amount
)).flatten()
)
#v(1cm)
// Summary Section
#align(right)[
#grid(
columns: (auto, auto),
gutter: 15pt,
align: right,
[Subtotal:], [#data.summary.subtotal],
[Tax (19%):], [#data.summary.tax],
[*Total Due:*], [#block(fill: rgb("#f3f4f6"), inset: 8pt, radius: 4pt)[
*#text(size: 14pt)[#data.summary.total]*
]]
)
]
#v(1fr)
// Footer
#align(center)[
#text(size: 9pt, fill: luma(100))[Thank you for your business. Payment is due within 14 days.]
]