11:    name: "", recipient_list_id: null, subject_set_ids: [], template_ids: [],
23:    "Campaign name", "Recipient list", "Subject lines", "Templates", "Attachments",
283:          name: c.name, recipient_list_id: c.recipient_list_id,
331:    $("#wNext").textContent = step === 12 ? (editingId ? "Save changes" : "Create & start later") : "Next ›";
339:    } else if (step === 2) {
340:      b.innerHTML = H("Step 2 — Recipient list") + hint(`Pick the list to send to. Max ${OPT.limits.max_recipients} recipients per campaign; only valid, non-suppressed rows are used.`) +
341:        pickList("lists", C.recipient_list_id, l => ({ v: l.id, main: l.name, sub: `${l.row_count} rows · ${l.valid_count} valid` }), "recipient_list_id", true);
344:        pickList("subjects", C.subject_set_ids, s => ({ v: s.id, main: s.subject, sub: "" }), "subject_set_ids") +
346:         <div class="radio-row">
348:             <label class="chk"><input type="radio" name="subjRot" value="${m}" ${C.subject_rotation === m ? "checked" : ""}>
353:        pickList("templates", C.template_ids, t => ({ v: t.id, main: t.name, sub: "" }), "template_ids") +
355:         <div class="radio-row">
357:             <label class="chk"><input type="radio" name="tplMode" value="${m}" ${C.template_sequence_mode === m ? "checked" : ""}>
363:        `<div class="radio-row">
365:             <label class="chk"><input type="radio" name="attMode" value="${m}" ${am === m ? "checked" : ""}> ${t}</label>`).join("")}
389:        (OPT.accounts.length ? pickList("accounts", C.account_ids, a => ({ v: a.id, main: a.email, sub: `${a.sends_today}/${a.daily_limit} today · ${a.sending_method}` }), "account_ids")
394:        `<div class="radio-row">
395:           <label class="chk"><input type="radio" name="rotStrat" value="sequential" ${strat === "sequential" ? "checked" : ""}> Sequential</label>
396:           <label class="chk"><input type="radio" name="rotStrat" value="weighted" ${strat === "weighted" ? "checked" : ""}> Weighted</label>
415:        (OPT.phones.length ? pickList("phones", C.phone_selection === "fixed" ? (C.variable_config.phone_id ?? null) : null, p => ({ v: p.id, main: p.phone, sub: p.label || "" }), "phone_fixed", true)
