543:  function bindAttExtra() {
544-    const box = $("#attExtra");
545-    if (!box) return;
546-    const mode = C.attach_mode;
547-    if (mode === "none") { box.innerHTML = ""; return; }
548-    if (mode === "pdf") {
549-      C.attach_pdf = true;
550-      box.innerHTML = `<label class="lab mt-2">PDF source template (rendered per recipient)</label>` +
551-        pickList("templates", C.attach_pdf_template_id, t => ({ v: t.id, main: t.name, sub: "" }), "attach_pdf_template_id", true);
552-      bindPick("attach_pdf_template_id", true);
553-    } else {
554-      box.innerHTML = `<label class="lab mt-2">Stored attachment</label>` +
555-        pickList("attachments", C.attachment_id, a => ({ v: a.id, main: a.name + " (" + a.kind + ")", sub: a.filename }), "attachment_id", true);
556-      bindPick("attachment_id", true);
557-    }
---REVIEW---
          <dl class="wsum">
            <dt>Campaign name</dt><dd>${esc(C.name) || "—"}</dd>
            <dt>Recipient list</dt><dd>${list ? esc(list.name) + ` (${list.valid_count} valid of ${list.row_count})` : "—"}</dd>
            <dt>Subjects</dt><dd>${subCount} selected · ${esc(C.subject_rotation)}</dd>
            <dt>Templates</dt><dd>${tpls.length ? tpls.map(t => esc(t.name)).join(", ") : "—"} · ${esc(C.template_sequence_mode)}</dd>
            <dt>Message type</dt><dd>${esc(C.message_type)}</dd>
            <dt>Attachments</dt><dd>${C.attach_mode === "none" ? "none" : esc(C.attach_mode) +
