/* ===================================================================
   VIETEAM SMART INVOICE - A4 PRINT ENGINE STYLES
   Ensures 100% Vector PDF, Exact Margins, True Colors, Anti-Page Break
=================================================================== */

@page {
  size: A4 portrait;
  margin: 0; /* Let sheet padding handle internal margins */
}

@media print {
  html, body {
    width: 210mm;
    height: 297mm;
    background: #ffffff !important;
    color: #1e2026 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Hide entire web application chrome */
  .app-header,
  .form-panel,
  .preview-toolbar,
  .preview-status,
  .preview-controls,
  .btn,
  .panel-tabs,
  .modal-overlay {
    display: none !important;
  }

  .app-container {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }

  .preview-panel {
    background: transparent !important;
    overflow: visible !important;
  }

  .preview-viewport {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    display: block !important;
  }

  /* Physical Sheet */
  .a4-sheet {
    box-shadow: none !important;
    border: none !important;
    transform: none !important;
    width: 210mm !important;
    min-height: 297mm !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 13mm 14mm 14mm 16mm !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: visible !important;
  }

  /* 1. Running vertical brand text at outer left edge (repeats on every page via position: fixed) */
  .a4-left-vertical-brand {
    display: flex !important;
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 1.5mm !important;
    width: 4.5mm !important;
    height: 100% !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    z-index: 100 !important;
  }

  /* 2. Left accent purple line after the text (repeats on every page via position: fixed) */
  .a4-left-accent-bar {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: 6.8mm !important;
    width: 1.2mm !important;
    height: 100% !important;
    background: #482169 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    z-index: 101 !important;
  }

  /* Watermark Logo (Very faint watermark, 100% readable text & data) */
  .a4-watermark {
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 155mm !important;
    max-width: 82% !important;
    opacity: 0.045 !important;
    mix-blend-mode: multiply !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }

  .a4-sheet > .a4-watermark {
    top: 96mm !important;
  }

  /* Table multi-page pagination & repeated header */
  .doc-table-wrapper {
    position: relative !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  .doc-table {
    position: relative !important;
    z-index: 1 !important;
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  .doc-table thead {
    display: table-header-group !important; /* Table header automatically repeats at top of each split page */
  }

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

  /* Elements protection against bad page breaking */
  .doc-header,
  .doc-title-section,
  .doc-parties-grid,
  .doc-calculation-section,
  .doc-notes-under-words,
  .doc-closing-section,
  .payment-notes-card,
  .closing-split-row,
  .qr-horizontal-card,
  .signature-col,
  .doc-legal-footer,
  .totals-wrapper,
  .words-box,
  .signature-area {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .doc-table th {
    background: #482169 !important;
    color: #ffffff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .badge-code {
    background: #f4effa !important;
    color: #482169 !important;
    border: 1px solid #dccae9 !important;
    -webkit-print-color-adjust: exact !important;
  }

  .party-box,
  .party-box-supplier,
  .party-box-client,
  .doc-parties-grid,
  .payment-notes-card,
  .words-box {
    background-color: #faf8fc !important;
    -webkit-print-color-adjust: exact !important;
  }

  .qr-horizontal-card {
    background-color: #ffffff !important;
    border: 1px solid #dccae9 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .qr-img {
    max-width: 80px !important;
    height: auto !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
