@import url('https://fonts.googleapis.com/css2?family=Prompt:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');

/* ==========================================================================
   OFFICIAL THAI ACCOUNTING & TAX DOCUMENT PRINT ENGINE
   Universal Isolated Print Stylesheet for Multi-Company ERP Platform (FlowAccount Standard)
   ========================================================================== */

@media print {
  /* 1. Page Setup & Universal Color Adjustments */
  @page {
    size: A4 portrait;
    margin: 10mm 12mm 10mm 12mm;
  }

  @page print-compact {
    size: A4 portrait;
    margin: 8mm 10mm 10mm 10mm;
  }

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

  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    box-sizing: border-box !important;
    text-shadow: none !important;
    font-family: 'Prompt', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  }

  html, body {
    background: #FFFFFF !important;
    color: #0F172A !important;
    font-family: 'Prompt', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    font-size: 10pt;
    line-height: 1.45;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    overflow: visible !important;
  }

  /* Strict Tabular Numbers for Printed Financial Figures */
  table th, table td, .num-col, .col-amount, .text-right, [class*="num-col"], .amount-cell {
    font-variant-numeric: tabular-nums !important;
    font-feature-settings: "tnum" 1 !important;
  }

  /* Accounting Parentheses and Decimal Alignment for Print/PDF */
  .acc-paren-pad {
    display: inline-block !important;
    visibility: hidden !important;
    width: auto !important;
  }

  /* 2. Strict UI Element Suppression (No Web Chrome in Print) */
  #sidebar,
  .sidebar,
  #navbar,
  .navbar,
  .app-header,
  .main-header,
  .header-actions,
  .filter-bar,
  .filter-panel,
  .btn,
  .btn-icon,
  .btn-icon-sm,
  .btn-icon-secondary,
  .btn-icon-primary,
  .modal-footer,
  .modal-close,
  .modal-header .btn-close,
  #toast-container,
  .toast,
  .no-print,
  .print-hidden,
  nav,
  header,
  footer:not(.printable-footer),
  .app-breadcrumbs,
  .pagination-container,
  .pagination,
  .tabs-container,
  .tab-nav,
  .pv-theme-picker,
  .a4-control-toolbar,
  .btn-pv-sheet-tab,
  .filter-pills-row,
  .kpi-cards-grid,
  .search-bar,
  .table-actions,
  .action-column,
  th:last-child.action-header,
  td:last-child.action-cell,
  .page-break-divider {
    display: none !important;
  }

  /* 3. Layout Normalization & Background Isolation */
  #app-container,
  #main-wrapper,
  #content-viewport,
  .main-content,
  .app-content {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    overflow: visible !important;
  }

  /* 4. Modal Container Flattening for Zero-Backdrop Printing */
  .modal-overlay,
  .modal,
  .modal-backdrop,
  .modal-dialog,
  #modal-universal-a4-viewer,
  #modal-pv-cover-sheet-viewer,
  #modal-view-pv-package,
  #modal-print-sales-doc,
  #modal-container {
    position: static !important;
    display: block !important;
    background: transparent !important;
    background-color: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    z-index: auto !important;
  }

  .modal-content,
  .pv-cover-modal-content,
  .modal-body {
    position: static !important;
    display: block !important;
    background: transparent !important;
    background-color: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    border: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    overflow: visible !important;
  }

  .modal-header {
    display: none !important;
  }

  /* 5. Standardized A4 Printable Document Sheets (PV, 50 Tawi, Payslip, Invoice) */
  .pv-a4-sheet,
  #printable-a4-sheet,
  .a4-sheet-container,
  .a4-sheet-page,
  .pv-cover-print-sheet,
  .bch2-print-sheet,
  .printable-a4-sheet,
  .doc-50tawi-sheet,
  .modern-invoice-sheet,
  .formal-accounting-sheet,
  .modern-borderless-invoice,
  .printable-document,
  .payroll-slip-card {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    position: relative !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    max-width: 194mm !important;
    margin: 0 auto !important;
    padding: 14px 18px !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    page-break-after: always !important;
    break-after: page !important;
    box-sizing: border-box !important;
  }

  /* Dynamic Landscape & Portrait Print Width Overrides */
  body[data-print-orientation="landscape"] .printable-a4-sheet,
  body[data-print-orientation="landscape"] .a4-sheet-container,
  body[data-print-orientation="landscape"] .a4-sheet-page,
  body[data-print-orientation="landscape"] .gl-report-wrapper,
  body[data-print-orientation="landscape"] #printable-a4-sheet,
  .printable-a4-sheet.orientation-landscape,
  .a4-sheet-container.orientation-landscape,
  .gl-report-wrapper.orientation-landscape {
    max-width: 280mm !important;
    width: 100% !important;
    min-height: 195mm !important;
    padding: 8mm 12mm !important;
  }

  body[data-print-orientation="portrait"] .printable-a4-sheet,
  body[data-print-orientation="portrait"] .a4-sheet-container,
  body[data-print-orientation="portrait"] .a4-sheet-page,
  body[data-print-orientation="portrait"] .gl-report-wrapper,
  .printable-a4-sheet.orientation-portrait,
  .a4-sheet-container.orientation-portrait,
  .gl-report-wrapper.orientation-portrait {
    max-width: 194mm !important;
    width: 100% !important;
    min-height: 275mm !important;
    padding: 14px 18px !important;
  }

  /* Last page does not force break */
  .pv-a4-sheet:last-child,
  .pv-cover-print-sheet:last-child,
  .bch2-print-sheet:last-child,
  .a4-sheet-page:last-child,
  .printable-a4-sheet:last-child,
  .doc-50tawi-sheet:last-child,
  .modern-invoice-sheet:last-child,
  .payroll-slip-card:last-child {
    page-break-after: auto !important;
    break-after: auto !important;
    margin-bottom: 0 !important;
  }

  /* 6. Multi-Page Accounting Reports (GL, TB, Journals, Fixed Assets) */
  .gl-report-wrapper .printable-a4-sheet,
  .printable-a4-sheet.allow-multi-page {
    display: block !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
    height: auto !important;
    min-height: 275mm !important;
  }

  .report-official-header {
    text-align: center !important;
    border-bottom: 2px solid #0F172A !important;
    padding-bottom: 8px !important;
    margin-bottom: 12px !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .report-official-header h2 {
    font-size: 15pt !important;
    font-weight: 800 !important;
    color: #0F172A !important;
    margin: 0 0 2px 0 !important;
  }

  .report-official-header .company-meta {
    font-size: 9pt !important;
    color: #475569 !important;
  }

  .report-official-header .report-title-pill {
    font-size: 11pt !important;
    font-weight: 700 !important;
    color: #0F172A !important;
    margin-top: 4px !important;
  }

  /* Accounting Tables */
  table.data-table,
  table.table-ledger,
  table.table-tb,
  table.table-journal,
  table.print-table,
  table.voucher-table,
  table.classic-accounting-table,
  table.a4-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 12px !important;
    font-size: 8.5pt !important;
  }

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

  tbody {
    display: table-row-group !important;
  }

  tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  table.data-table th,
  table.table-ledger th,
  table.table-tb th,
  table.table-journal th,
  table.print-table th,
  table.classic-accounting-table th,
  table.a4-table th {
    background-color: #F1F5F9 !important;
    color: #0F172A !important;
    font-weight: 700 !important;
    border-top: 1.5px solid #0F172A !important;
    border-bottom: 1.5px solid #0F172A !important;
    border-left: none !important;
    border-right: none !important;
    padding: 5px 6px !important;
    text-align: left !important;
    vertical-align: middle !important;
  }

  table.data-table td,
  table.table-ledger td,
  table.table-tb td,
  table.table-journal td,
  table.print-table td,
  table.classic-accounting-table td,
  table.a4-table td {
    border-top: none !important;
    border-bottom: 1px solid #E2E8F0 !important;
    border-left: none !important;
    border-right: none !important;
    padding: 4px 6px !important;
    color: #1E293B !important;
    vertical-align: middle !important;
  }

  table.data-table tfoot td,
  table.table-ledger tfoot td,
  table.table-tb tfoot td,
  table.table-journal tfoot td {
    font-weight: 800 !important;
    border-top: 2px solid #0F172A !important;
    border-bottom: 3px double #0F172A !important;
    background-color: #F8FAFC !important;
    padding: 6px 6px !important;
  }

  /* Right-aligned Numeric Columns */
  .num-col,
  .text-right,
  td.text-right,
  th.text-right,
  .col-amount,
  .col-debit,
  .col-credit,
  .col-balance {
    text-align: right !important;
    font-variant-numeric: tabular-nums !important;
  }

  .nowrap-col {
    white-space: nowrap !important;
  }

  /* Signature Blocks */
  .signature-section,
  .signature-grid,
  .signature-row {
    display: flex !important;
    justify-content: space-between !important;
    margin-top: 20px !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .sig-box,
  .signature-card {
    width: 28% !important;
    text-align: center !important;
    border-top: 1px dotted #0F172A !important;
    padding-top: 6px !important;
    font-size: 8.5pt !important;
    page-break-inside: avoid !important;
  }

  /* Badges in Print */
  .badge {
    display: inline-block !important;
    padding: 1px 6px !important;
    border-radius: 4px !important;
    font-size: 8pt !important;
    font-weight: 700 !important;
    border: 1px solid #CBD5E1 !important;
    background: transparent !important;
    color: #0F172A !important;
  }

  /* Accounting Numbers & Parentheses Print Alignment */
  .acc-num-cell {
    font-family: var(--font-num, monospace) !important;
    font-variant-numeric: tabular-nums !important;
    text-align: right !important;
    white-space: nowrap !important;
    display: inline-block !important;
  }

  .acc-paren-pad {
    display: inline-block !important;
    width: 0.65ch !important;
    margin-left: 1px !important;
    visibility: hidden !important;
  }

  .acc-neg, .is-neg {
    color: #000000 !important;
  }
}


/* ========================================================= */
/* BUG-INV-STOCKCARD-PRINT-ISOLATION-01                      */
/* STOCK CARD ISOLATED PRINTING (A4 FORMAT)                  */
/* ========================================================= */
@media print {
  /* Hide EVERYTHING else when printing Stock Card */
  body.print-stockcard-active #app-container,
  body.print-stockcard-active .sidebar,
  body.print-stockcard-active .navbar,
  body.print-stockcard-active #toast-container,
  body.print-stockcard-active .modal-overlay:not(#modal-print-stockcard) {
    display: none !important;
  }

  body.print-stockcard-active {
    background: #FFFFFF !important;
  }

  /* Make the modal take over the entire page */
  body.print-stockcard-active #modal-print-stockcard {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    background: #FFFFFF !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.print-stockcard-active #modal-print-stockcard .modal-content {
    box-shadow: none !important;
    border: none !important;
    width: 100% !important;
    max-width: 194mm !important; /* A4 Portrait width */
    margin: 0 auto !important;
    padding: 12mm 15mm !important; /* 12-15mm margin */
    border-radius: 0 !important;
    background: transparent !important;
  }

  /* Hide the modal header (title & X button) and the footer buttons */
  body.print-stockcard-active #modal-print-stockcard .modal-header,
  body.print-stockcard-active #modal-print-stockcard #btn-cancel-print-stockcard,
  body.print-stockcard-active #modal-print-stockcard #btn-trigger-browser-print {
    display: none !important;
  }
  
  body.print-stockcard-active #modal-print-stockcard .modal-content > div:last-child {
    border: none !important; /* Remove the top border of the footer */
  }

  /* A4 Table formatting & aesthetics */
  body.print-stockcard-active #printable-stockcard-area {
    width: 100% !important;
  }

  body.print-stockcard-active #printable-stockcard-area table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 8.5pt !important;
    border: 1px solid #475569 !important; /* Thin, sharp border */
  }
  
  body.print-stockcard-active #printable-stockcard-area th {
    background-color: #F8FAFC !important;
    color: #0F172A !important;
    font-weight: 700 !important;
    border: 1px solid #475569 !important;
    padding: 5px 6px !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body.print-stockcard-active #printable-stockcard-area td {
    border: 1px solid #94A3B8 !important; /* Thin gray borders for rows */
    padding: 5px 6px !important;
    color: #0F172A !important;
  }
  
  /* Prevent page breaks inside table rows */
  body.print-stockcard-active #printable-stockcard-area tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  
  /* Ensure thead repeats on every page */
  body.print-stockcard-active #printable-stockcard-area thead {
    display: table-header-group !important;
  }

  body.print-stockcard-active #printable-stockcard-area tbody {
    display: table-row-group !important;
  }

  /* Right-aligned Numeric Columns for Stock Card */
  body.print-stockcard-active #printable-stockcard-area td:nth-child(3),
  body.print-stockcard-active #printable-stockcard-area td:nth-child(4),
  body.print-stockcard-active #printable-stockcard-area td:nth-child(5),
  body.print-stockcard-active #printable-stockcard-area td:nth-child(6),
  body.print-stockcard-active #printable-stockcard-area td:nth-child(7) {
    text-align: right !important;
    font-family: var(--font-num, monospace) !important;
  }
}

  body.print-stockcard-active #modal-print-stockcard,
  body.print-stockcard-active #modal-print-stockcard .modal-content,
  body.print-stockcard-active #printable-stockcard-area {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    position: static !important;
  }

/* ========================================================= */
/* BUG-PAYROLL-PAYSLIP-BUTTON-ACTION-01                      */
/* PAYSLIP ISOLATED PRINTING (A4 / HALF-A4 FORMAT)           */
/* ========================================================= */
@media print {
  /* Hide EVERYTHING else when printing Payslip */
  body.print-payslip-active #app-container,
  body.print-payslip-active .sidebar,
  body.print-payslip-active .navbar,
  body.print-payslip-active #toast-container,
  body.print-payslip-active .modal-overlay:not(#modal-payslip-view),
  body.print-payslip-active .no-print,
  body.print-payslip-active .payslip-action-bar,
  body.print-payslip-active #modal-payslip-view .modal-header,
  body.print-payslip-active #modal-payslip-view .modal-footer,
  body.print-payslip-active #modal-payslip-view #btn-close-payslip,
  body.print-payslip-active #modal-payslip-view #btn-print-payslip,
  body.print-payslip-active #modal-payslip-view #btn-download-payslip-pdf,
  body.print-payslip-active #modal-payslip-view #btn-modal-send-epayslip {
    display: none !important;
  }

  body.print-payslip-active {
    background: #FFFFFF !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Make modal take over the entire print sheet cleanly */
  body.print-payslip-active #modal-payslip-view {
    position: static !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    background: #FFFFFF !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.print-payslip-active #modal-payslip-view .modal-content {
    box-shadow: none !important;
    border: none !important;
    width: 100% !important;
    max-width: 194mm !important;
    margin: 0 auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body.print-payslip-active #printable-payslip {
    width: 100% !important;
    max-width: 194mm !important;
    margin: 0 auto !important;
    box-shadow: none !important;
    border: 1px solid #CBD5E1 !important;
    border-radius: 6px !important;
    padding: 16px 20px !important;
    background: #FFFFFF !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
}

body.print-payslip-active #modal-payslip-view,
body.print-payslip-active #modal-payslip-view .modal-content,
body.print-payslip-active #printable-payslip {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  position: static !important;
}
