══════════ فرم دستی (ساخت فرم از ترکیب بسته‌ها و فیلدها) ══════════

مسیر:  admin.html ← تب «📋 فرم‌ها» ← کارت بالای صفحه «✍️ فرم دستی من»

ساخت فرم
  ۱) نام فرم را بنویسید (مثلاً «ثبت‌نام خودرو — مدارک»).
  ۲) هر بسته را باز کنید و آیتم‌های دلخواه را تیک بزنید؛ یا تیک کنار نام بسته = همهٔ فیلدهای آن بسته.
     (اگر گزینهٔ «عنوان بخش» روشن باشد، با تیک کل بسته، نام بسته به‌صورت عنوان بخش بالای فیلدها می‌آید.)
     می‌توانید از چند بسته ترکیب کنید؛ شناسهٔ تکراری (مثلاً موبایل در دو بسته) خودکار جدا می‌شود.
  ۳) یا فیلد تکی اضافه کنید (متن، لیست انتخابی، فایل، عنوان بخش …).
  ۴) در بخش «فرم شما»: ترتیب ▲▼، ویرایش عنوان هر فیلد، اجباری بودن، نوشتن گزینه‌های لیست
     (با ویرگول جدا کنید)، حذف ✕.
  ۵) «ذخیرهٔ فرم».

ویرایش / حذف / پیش‌نمایش
  فرم‌های ذخیره‌شده بالای کارت لیست می‌شوند: 👁 پیش‌نمایش، ✏️ ویرایش (تیک‌ها همان‌طور که بود برمی‌گردد)، 🗑 حذف.
  حذف فرم، پیام‌هایی که قبلاً برای مشتری فرستاده‌اید را تغییر نمی‌دهد.

استفاده در چت
  فرم ذخیره‌شده بلافاصله در ردیف «فرم‌ها» بالای هر گفتگو می‌نشیند (با ✍️ و اول لیست)؛
  کلیک = ارسال برای مشتری، یا بکشید روی چت. دکمهٔ «📋 فرم» در نوار ابزار هم همین را در لیست دارد.
  همچنین در ساخت/ویرایش خدمت، کنار بسته‌های آماده دکمهٔ «+ نام فرم» می‌آید.

فایل‌های تغییرکرده
  api.php      مسیر admin/custom-forms (خواندن/ذخیره)، ادغام فرم‌های دستی در form-packs و send-form
  admin.html   کارت «فرم دستی من» در تب فرم‌ها + چیپ‌ها در چت

داده: data/c3-custom-forms.json  (پوشهٔ data/ را موقع آپدیت پاک نکنید)

تست‌شده: ذخیره/ویرایش/حذف و ارسال فرم دستی روی PHP 8.3 (سرور داخلی)، و منطق رابط با jsdom.
در مرورگر واقعی و روی هاست خودتان یک بار تست کنید:
  تب فرم‌ها ← ساخت یک فرم ← ذخیره ← باز کردن یک گفتگو ← دیدن چیپ ✍️ ← ارسال ← دیدن فرم در chat.html.
