62:            <button class="btn xs" data-mon="${c.id}">Monitor</button>
63:            ${["draft", "paused"].includes(c.status) ? `<button class="btn xs secondary" data-edit="${c.id}">Edit</button>` : ""}
74:      $$("#campTable [data-mon]").forEach(b => b.onclick = () => openMonitor(+b.dataset.mon));
75:      $$("#campTable [data-edit]").forEach(b => b.onclick = () => openWizard(+b.dataset.edit));
86:  function openMonitor(cid) {
96:    if (m === "monitor" && MON.id) { refreshMonSel(); startMonitor(); }
104:    $("#monSel").onchange = () => { MON.id = +$("#monSel").value; startMonitor(); };
110:  async function startMonitor() {
179:      if (c.status === "draft") mk("Start", "", async () => { await POST(`/campaigns/${MON.id}/start`); toast("Campaign started", "ok"); startMonitor(); });
180:      if (c.status === "running") mk("Pause", "secondary", async () => { await POST(`/campaigns/${MON.id}/pause`); toast("Campaign paused", "ok"); startMonitor(); });
---
static/campaigns.html:82:    <div id="monBody"><div class="empty-state"><div class="e-ico">◍</div><p>Select a campaign to monitor.</p></div></div>
