static/js/pages/saved-templates.js:76:      (d.unknown_variables || []).length || (d.missing_variables || []).length || (d.warnings || []).length ?
static/js/pages/saved-templates.js:79:          [].concat(d.missing_variables || []).map(v => `Missing data: <b>${esc(v)}</b>`).join("<br>") +
=====PHONE_RE usages=====
app/api/routers/campaigns.py:755:            errors.append("Invalid phone selection mode")
app/api/routers/phones.py:19:PHONE_RE = re.compile(r"^\+?[0-9][0-9 ()\-.]{4,30}$")
app/api/routers/phones.py:30:        if not PHONE_RE.match(v):
app/api/routers/phones.py:31:            raise ValueError("Invalid phone number format")
app/api/routers/phones.py:129:            if PHONE_RE.match(phone):
app/api/routers/phones.py:138:            if PHONE_RE.match(phone):
=====phones.html=====
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Company Phones — Bulk Mailer</title>
<link rel="stylesheet" href="/static/css/app.css">
</head>
<body>
<div id="layout"></div>
<main id="content">
  <div class="page-head">
    <div>
      <h1>Company Phone Numbers</h1>
      <p class="sub">Phone numbers feed the %CompanyPhone% variable. Add manually or import 10+ numbers at once from CSV/TXT; selection is round-robin or random per campaign.</p>
    </div>
    <div class="btns">
      <button class="btn" id="btnAdd">Add Phone</button>
      <button class="btn secondary" id="btnImport">Import CSV/TXT</button>
      <button class="btn danger-o" id="btnClear">Clear All</button>
    </div>
  </div>

  <div class="card">
    <div class="card-hd">
      <h2>Numbers <span class="badge b-gray" id="count">0</span></h2>
      <div class="btns">
        <label class="mut" style="align-self:center;font-size:.85rem"><input type="checkbox" id="activeOnly"> active only</label>
        <input type="text" class="inp" id="search" placeholder="Search phone/label…" style="width:220px">
      </div>
    </div>
    <div class="card-bd">
      <table class="tbl">
        <thead><tr><th>Phone</th><th>Label</th><th>Active</th><th>Used</th><th>Created</th><th></th></tr></thead>
        <tbody id="body"></tbody>
      </table>
      <div id="empty" class="empty" style="display:none"><div class="empty-t">No phone numbers yet</div><p>Add numbers manually or import a CSV/TXT with 10+ numbers.</p></div>
      <div class="btns" id="pager" style="margin-top:10px"></div>
    </div>
  </div>
</main>
<script src="/static/js/app.js"></script>
<script src="/static/js/pages/phones.js"></script>
</body>
</html>
