/* =========================================================================
   GrainFlow OS v22 - Comprehensive Master A4 Print & PDF Stylesheet
   Strict A4 Dimensions (210mm x 297mm) • Multi-Page Table & Document Breaks
   ========================================================================= */

@page {
  size: A4 portrait;
  margin: 10mm 12mm 15mm 12mm;
}

@media print {
  *, *::before, *::after {
    box-sizing: border-box !important;
  }

  html, body {
    background-color: #ffffff !important;
    color: #0f172a !important;
    font-size: 11pt !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  #sidebar, #topbar, #mobile-bottom-nav, .toolbar-container, .btn, .modal-overlay, #toast-container, .no-print, .modal-header, .modal-footer, .theme-switcher-container {
    display: none !important;
  }

  #main-wrapper, #main-content, .modal-body, #modal-document-render-wrap {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .card {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
  }

  /* Unconstrain preview wrapper for true multi-page A4 printing */
  .a4-paper-preview,
  .a4-page,
  .printable-page,
  .printable-invoice-page {
    box-shadow: none !important;
    margin: 0 auto !important;
    padding: 0 0 10mm 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    transform: none !important;
    transform-origin: unset !important;
    overflow: visible !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  /* Multi-page break rules: force clean break to page 2, 3, etc. */
  .page-break,
  .page-break-after,
  .printable-invoice-page,
  .a4-page-break {
    page-break-after: always !important;
    break-after: page !important;
    display: block !important;
    clear: both !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .page-break-before {
    page-break-before: always !important;
    break-before: page !important;
    display: block !important;
    clear: both !important;
  }

  /* Table Multi-Page Pagination: repeat header, avoid cutting rows */
  table, .doc-table {
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  thead {
    display: table-header-group !important;
  }

  tfoot {
    display: table-footer-group !important;
  }

  tr, .doc-table tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    page-break-after: auto !important;
    break-after: auto !important;
  }

  td, th {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* Prevent awkward splits inside crucial blocks */
  .doc-header-block,
  .doc-info-grid,
  .doc-totals-box,
  .doc-signature-block,
  .kpi-row,
  .summary-box,
  .no-break {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
}
