#let input(k, default: "") = sys.inputs.at(k, default: default)
#let j(k) = json(bytes(input(k, default: "[]")))
#set page(paper: "a4", margin: 22mm, footer: context [#set text(size: 8.5pt, fill: luma(110)); #input("meeting") #h(1fr) #counter(page).display()])
#set text(font: "Noto Sans", size: 10pt, fill: rgb("1a1917"))
#text(size: 20pt, weight: 700)[Minutes]
#v(1mm)
#text(size: 12pt)[#input("meeting")]
#v(1mm)
#text(fill: luma(110))[#input("date") · #input("location")]
#v(6mm)
#grid(columns: (1fr, 1fr), gutter: 10mm,
  [#text(size: 8pt, fill: luma(110), tracking: 1pt)[ATTENDEES] \ #j("attendees").join(", ")],
  [#text(size: 8pt, fill: luma(110), tracking: 1pt)[ABSENT] \ #if j("absent").len() == 0 [none] else [#j("absent").join(", ")]])
#v(8mm)
#for (i, it) in j("items").enumerate() [
  #block(below: 6mm)[
    #text(weight: 700)[#(i + 1). #it.title]
    #v(1.5mm)
    #it.notes
    #v(1.5mm)
    #block(fill: rgb("f3efe6"), inset: 8pt, width: 100%, radius: 2pt)[#text(size: 9.5pt)[*Decision:* #it.decision]]
  ]
]
#text(size: 8pt, fill: luma(110), tracking: 1pt)[ACTIONS]
#v(2mm)
#table(columns: (1fr, auto, auto), inset: 7pt, stroke: (x, y) => if y == 0 { (bottom: 0.8pt) } else { (bottom: 0.3pt + luma(200)) },
  [*What*], [*Who*], [*Due*],
  ..j("actions").map(a => (a.what, a.who, a.due)).flatten())
#v(8mm)
#text(fill: luma(110))[Next meeting: #input("next")]
