══════════ سبد فرم (اضافه دستی به فرم) ══════════

هدف
  مدیری که هنوز نمی‌داند برای یک سرویس چه اطلاعاتی لازم است، فرم‌ها را یکی‌یکی برای مشتری می‌فرستد،
  هرکدام به کارش آمد را در «سبد» جمع می‌کند و در پایان از همه یک فرم دستی با اسم دلخواه می‌سازد.

چطور استفاده کنید
  ۱) در یک گفتگو، از «ابزارهای گفتگو ← 📋 فرم» (یا جستجو، مثلاً «شبا» یا «کد ملی») یک فرم برای مشتری بفرستید.
     جستجو روی نام فرم و عنوان فیلدهای داخلش کار می‌کند؛ کلیک = ارسال.
  ۲) زیر کارت «📋 فرم ارسال‌شده» دکمهٔ «➕ اضافه دستی به فرم» را بزنید (فرم تکراری دوباره اضافه نمی‌شود).
  ۳) تب «🧺 سبد فرم» در همان ابزارهای گفتگو، فرم‌های جمع‌شده برای همین گفتگو را نشان می‌دهد
     (ترتیب ▲▼ ، حذف ✕ ، خالی کردن سبد).
  ۴) یک نام بنویسید و «ذخیره به‌عنوان فرم دستی» را بزنید.
     - فیلدهای همهٔ فرم‌ها یکی می‌شوند؛ فیلد تکراری (مثلاً موبایل در دو فرم) فقط یک بار می‌آید.
     - گزینهٔ «عنوان بخش از نام هر فرم» نام هر فرم را به‌صورت تیتر بخش بالای فیلدهایش می‌گذارد.
     - نام تکراری با فرم دستی قبلی پذیرفته نمی‌شود.
  ۵) فرم ساخته‌شده با ✍️ اول لیست فرم‌ها و در جستجو هست و در گفتگوهای بعدی با یک کلیک ارسال می‌شود.
     در تب «📋 فرم‌ها ← فرم دستی من» هم می‌شود ویرایشش کرد.

نکته‌ها
  - سبد هر گفتگو جداست و در مرورگر خود مدیر (localStorage) نگه داشته می‌شود، پس روی دستگاه دیگر دیده نمی‌شود.
  - پوشهٔ data/ را موقع آپدیت پاک نکنید (فرم‌های دستی در data/c3-custom-forms.json هستند).
  - api.php تغییری نکرده؛ ذخیره از همان مسیر admin/custom-forms انجام می‌شود.

فایل‌های تغییرکرده
  chat3-ui.js ، chat3.css ، panel-aaf2d6f1b2e7.html ، sw.js (کش v50) ، README-سبد-فرم.txt
  بعد از جایگزینی، یک‌بار صفحه را تازه‌سازی کنید.

تست‌شده: بررسی نحو جاوااسکریپت. روی مرورگر و هاست خودتان یک بار تست کنید:
  ارسال یک فرم ← زدن «اضافه دستی» ← تب سبد ← نام‌گذاری و ذخیره ← دیدن فرم ✍️ در لیست.

──────── به‌روزرسانی v59: حفظ خط‌های جدید در پیام‌ها ────────
  مشکل: متنی که از جایی کپی می‌شد و چند خط داشت، در چت یک‌خطی و پشت‌سرهم نمایش داده می‌شد
        (سرور در تابع deliver همهٔ Enterها را به فاصله تبدیل می‌کرد).
  رفع: همهٔ پیام‌های چت، هم مدیر هم مشتری، خط‌های جدید را نگه می‌دارند (نمایش pre-wrap از قبل بود).
       سه خط خالی پشت‌سرهم به دو خط کاهش می‌یابد و سقف طول همان ۲۰۰۰ نویسه است.
  فایل تغییرکرده: api.php
  توجه: پیام‌هایی که قبلاً فرستاده شده‌اند در دیتابیس یک‌خطی ذخیره شده‌اند و درست نمی‌شوند؛ فقط پیام‌های جدید.

──────── به‌روزرسانی v60: دیده شدن انتخاب متن در چت ────────
  مشکل: رنگ انتخاب متن (::selection در theme.css) هم‌رنگ حباب‌های مدیر بود؛ پس روی آن‌ها هیچ‌چیز
        مشخص نمی‌شد که از کجا تا کجا انتخاب شده است.
  رفع: داخل چت (هم پنل مدیر هم چت مشتری) انتخاب با زمینهٔ زرد و متن تیره نشان داده می‌شود،
       روی حباب‌های مدیر، مشتری و کارت‌ها، در تم روز و شب.
  فایل‌های تغییرکرده: chat3.css ، chat.html (نسخهٔ css ← v=44) ، sw.js (کش v51)
  بعد از جایگزینی، یک‌بار صفحه را تازه‌سازی کنید (اگر قدیمی ماند، یک بار دیگر).

──────── v61: فیلد تکی در جستجو + زیپ تجمیعی ────────
  • در جستجوی ابزارهای گفتگو (و تب جدید «🔹 فیلد تکی») هر آیتم داخل فرم‌ها جدا هم می‌آید
    (مثلاً «شماره شبا»، «موبایل»، «کد ملی» با نام فرمی که از آن آمده). کلیک = فقط همان یک فیلد
    به‌صورت یک فرم تک‌سؤالی برای مشتری فرستاده می‌شود و دکمهٔ «➕ اضافه دستی به فرم» هم زیرش هست.
    در سبد، فرم‌های تک‌فیلدی بدون عنوان بخش ادغام می‌شوند.
  • نسخهٔ css/js در chat.html و پنل به v=45 رسید تا کش هاست/مرورگر نسخهٔ قدیمی نگه ندارد.
  فایل‌های لازم (همهٔ تغییرات از v56 تا v61 با هم — همین ۶ فایل را حتماً با هم جایگزین کنید):
    api.php ، chat3-ui.js ، chat3.css ، chat.html ، panel-aaf2d6f1b2e7.html ، sw.js
  اگر فقط بعضی را جایگزین کنید، فقط همان بخش‌ها کار می‌کند (مثلاً دکمهٔ سبد به chat3-ui.js و پنل نیاز دارد؛
  حفظ Enter به api.php).

──────── v62: چسباندن عکس / اسکرین‌شات در چت ────────
  قبلاً فقط متن با Ctrl+V در کادر پیام می‌آمد. حالا اگر عکس یا اسکرین‌شات کپی کرده باشید
  (Win+Shift+S ، Print Screen ، «Copy image» مرورگر) و داخل کادر پیام Ctrl+V بزنید، همان لحظه
  مثل انتخاب فایل برای طرف مقابل ارسال می‌شود؛ اگر متنی در کادر نوشته باشید زیرنویس عکس می‌شود.
  هم در چت مشتری (chat.html) و هم در پنل مدیر. سقف حجم ۲۵ مگابایت مثل انتخاب فایل.
  اگر کپی هم متن دارد و هم عکس (مثلاً از اکسل)، همان متن چسبانده می‌شود.
  فایل‌های تغییرکرده: chat.html ، panel-aaf2d6f1b2e7.html ، sw.js (کش v53)
  زیپ تجمیعی v62 همهٔ ۶ فایل لازم از v56 تا اینجا را دارد.
