            |button class="btn xs" data-mon="1">Monitor|/button>
            |button class="btn xs secondary" data-prev="1">Preview|/button>
            |button class="btn xs danger-o" data-del="1">Delete|/button>
          <td class="center">${c.total_recipients ?? 0}</td>
          <td class="center" style="color:var(--green);font-weight:600">${c.sent_count ?? 0}</td>
          <td class="center" style="color:var(--red);font-weight:600">${c.failed_count ?? 0}</td>
          <td class="center">${c.suppressed_count ?? 0}</td>
          <td class="center">${c.skipped_count ?? 0}</td>
          <td class="nowrap small">${fmtDT(c.started_at)}</td>
          <td class="nowrap">
            <button class="btn xs" data-mon="${c.id}">Monitor</button>
            ${["draft", "paused"].includes(c.status) ? `<button class="btn xs secondary" data-edit="${c.id}">Edit</button>` : ""}
            <button class="btn xs secondary" data-prev="${c.id}">Preview</button>
            <button class="btn xs danger-o" data-del="${c.id}">Delete</button>
          </td></tr>`).join("")}</tbody></table></div>`
        : `<div class="empty-state"><div class="e-ico">✦</div><p>No campaigns yet. Use the wizard to create your first campaign.</p></div>`;
      const pages = Math.max(1, Math.ceil(d.total / 20));
      $("#campPager").innerHTML = pages > 1 ?
        `<button class="btn sm secondary" ${lst.page <= 1 ? "disabled" : ""} data-pg="${lst.page - 1}">‹ Prev</button>
