/* print-doc.css — กฎสำหรับ "เอกสารที่ถูกพิมพ์ออกมาจริง" (สร้าง 2026-08-21)
 *
 * ทำไมต้องมีไฟล์นี้
 *   เอกสารในเว็บนี้ไม่ได้จบที่หน้าจอ — ใบเสนอราคาถูกพิมพ์ส่งลูกค้า
 *   สัญญาถูกพิมพ์ออกมาเซ็น รายงานตรวจงานถูกพิมพ์แนบแฟ้ม
 *   สิ่งที่ออกมาจากเครื่องพิมพ์คือของจริงที่มีผลผูกพัน
 *
 *   ตรวจแล้วเมื่อ 2026-08-21 พบว่าเอกสารทั้ง 5 แบบมี @media print อยู่บ้าง
 *   แต่ขาดเรื่องเดียวกันหมด 3 เรื่อง:
 *     1. ไม่ได้บังคับพิมพ์สีพื้นหลัง → หัวตารางที่เป็นแถบสีกลายเป็นขาวเปล่า
 *     2. ไม่ได้ตั้งขนาด/ขอบกระดาษ → ใช้ค่าเริ่มต้นของเบราว์เซอร์ซึ่งต่างกันทุกเครื่อง
 *     3. ไม่ได้คุมการขึ้นหน้าใหม่ → แถวในตารางถูกตัดครึ่ง และแถวรวมหลุดไปอยู่หน้าถัดไปลำพัง
 *   และ 4 ใน 5 แบบ ปุ่มบนหน้าจอติดไปในกระดาษด้วย
 *
 * ไฟล์นี้โหลดด้วย media="print" เท่านั้น จึงไม่มีทางกระทบหน้าตาบนจอ
 */

@media print {

  /* ── 1. กระดาษ A4 ขอบ 15 มม. ────────────────────────────────────
   * ค่าเริ่มต้นของเบราว์เซอร์ต่างกันทุกตัว (Chrome ≠ Safari ≠ Edge)
   * ลูกค้าที่พิมพ์เอกสารเดียวกันจากคนละเครื่องจะได้กระดาษหน้าตาไม่เหมือนกัน
   */
  @page {
    size: A4;
    margin: 15mm;
  }

  /* ── 2. บังคับให้พิมพ์สีพื้นหลังตามที่ออกแบบไว้ ─────────────────
   * เบราว์เซอร์ไม่พิมพ์สีพื้นหลังตามค่าเริ่มต้น (เพื่อประหยัดหมึก)
   * หัวตารางที่เป็นแถบสีจึงกลายเป็นขาว และป้ายสถานะที่พึ่งสีพื้นหลัง
   * เพื่อสื่อความหมายจะอ่านไม่ออกเลย
   */
  html, body, * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── 3. ของบนหน้าจอที่ไม่ควรติดไปในกระดาษ ──────────────────────
   * ลูกค้าที่ได้ใบเสนอราคาเป็นกระดาษ ไม่ได้กดปุ่ม "ยอมรับใบเสนอราคานี้"
   * บนกระดาษได้ ปุ่มนั้นจึงเป็นแค่หมึกที่เสียไปและทำให้เอกสารดูไม่เรียบร้อย
   */
  .actions, .no-print, nav, header nav, footer,
  button, .btn, .toast, .modal, #chat, .chat-widget,
  .help-fab, .back-to-top, .cookie-bar {
    display: none !important;
  }

  /* ── 4. ห้ามตัดกลางแถว และห้ามแถวรวมหลุดไปหน้าถัดไปลำพัง ────────
   * ใบเสนอราคาที่มีรายการยาว ถ้าตัดกลางแถวแล้วตัวเลขจำนวนเงิน
   * ไปอยู่คนละหน้ากับชื่อรายการ = อ่านไม่รู้เรื่องและเถียงกันได้
   */
  tr, .item-row, .row, li {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  thead {
    display: table-header-group;   /* หัวตารางซ้ำทุกหน้า */
  }
  tfoot, .totals, .total-row, .sum-row, .signature, .sign-box {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  h1, h2, h3 {
    page-break-after: avoid;
    break-after: avoid;
  }

  /* ── 5. เอาเงาและมุมมนออก ────────────────────────────────────── */
  .sheet, .card, .paper {
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  body {
    background: #fff !important;
  }
}
