/* =====================================================================
   print.css — dokumen bisnis multi-ukuran (master plan C3)
   Ukuran kertas & output_mode datang dari profil bis_settings `doc_print`
   per jenis dokumen — PHP men-set kelas di <body>:
     <body class="doc-page paper-f4-half mode-carrier-letter no-kop">
   mpdf memakai format dari profil ['size_mm'] — JANGAN hardcode ukuran.
   Layout dokumen pakai satuan mm (tinggi) dan % (lebar kolom) supaya
   satu template dasar jalan di semua ukuran.
   Offset kalibrasi NCR (offset_mm) di-emit inline sebagai --offset-x/--offset-y
   (nilai dinamis dari settings — boleh inline).
   ===================================================================== */

/* == @PAGE PER UKURAN ================================================= */
/* Global: margin nol untuk doc-page (invoice/kwitansi — .doc atur padding sendiri) */
@page{margin:0}
/* Named page untuk halaman app (reports.php, cashbank, dll — window.print, body.app).
   body.app di @media print meng-assign page:rpt sehingga margin 15×18mm berlaku.    */
@page rpt         {size:A4;margin:15mm 18mm}
@page a4          {size:210mm 297mm}
@page f4          {size:215mm 330mm}
@page f4-half     {size:215mm 165mm}  /* nota/kwitansi/surat jalan UMKM */
@page letter      {size:216mm 279mm}  /* dot matrix continuous 9,5"×11" */
@page letter-half {size:216mm 140mm}  /* continuous form 5,5" */
@page a5          {size:148mm 210mm}
@page thermal-80  {size:80mm 297mm}   /* struk POS — modul kasir nanti */

.paper-a4          {page:a4;          width:210mm}
.paper-f4          {page:f4;          width:215mm}
.paper-f4-half     {page:f4-half;     width:215mm}
.paper-letter      {page:letter;      width:216mm}
.paper-letter-half {page:letter-half; width:216mm}
.paper-a5          {page:a5;          width:148mm}
.paper-thermal-80  {page:thermal-80;  width:80mm}

/* == OUTPUT MODE ====================================================== */
/* native: PDF persis seukuran dokumen — tanpa perlakuan khusus.         */
/* carrier-letter: konten 1/2 Folio ditaruh di atas halaman Letter,
   bawah dibiarkan kosong — workaround driver dot matrix yang tidak
   kenal ukuran custom (pengalaman Hexagraphia).                         */
.mode-carrier-letter{page:letter;width:216mm;min-height:279mm}
.mode-carrier-letter .doc{height:165mm;overflow:hidden}
/* 2up-f4: 2 nota per lembar F4 (330mm = 2×165mm persis), potong setelah
   cetak — untuk lembaran/NCR sheet, nol kertas terbuang.                */
.mode-2up-f4{page:f4;width:215mm}
.mode-2up-f4 .doc{height:165mm;overflow:hidden}
.cut-line{height:0;border-top:.2mm dashed #999}

/* == HALAMAN DOKUMEN ================================================== */
body.doc-page{margin:0;background:#fff;color:#1a1a1a;font-family:'Segoe UI',Tahoma,sans-serif;font-size:9.5pt;line-height:1.45;-webkit-print-color-adjust:exact;print-color-adjust:exact}

/* satu blok dokumen — offset NCR via margin (nilai dari settings) */
.doc{padding:8mm 10mm;margin-left:var(--offset-x,0mm);margin-top:var(--offset-y,0mm)}

/* == KOP SURAT ======================================================== */
/* default tampil; print fisik di kertas pre-printed (NCR) → body.no-kop.
   PDF/email SELALU pakai kop — jangan beri no-kop di mode PDF.          */
.doc-kop{display:flex;align-items:center;gap:5mm;padding-bottom:3mm;border-bottom:.5mm solid #1b2a4a;margin-bottom:4mm}
body.no-kop .doc-kop{visibility:hidden} /* tinggi dipertahankan agar posisi isian tetap pas dengan form pre-printed */
.doc-kop .k-logo{width:16mm;height:16mm;object-fit:contain;flex:none}
.doc-kop .k-name{font-size:13pt;font-weight:800;letter-spacing:.2mm}
.doc-kop .k-info{font-size:7.5pt;color:#555;margin-top:1mm;line-height:1.4}

/* == KEPALA DOKUMEN: judul + blok nomor =============================== */
.doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6mm;margin-bottom:4mm}
.doc-title{font-size:13pt;font-weight:800;text-transform:uppercase;letter-spacing:.5mm}
.doc-no{font-size:8.5pt;color:#444;margin-top:1mm}
.doc-meta{font-size:8.5pt}
.doc-meta table{border-collapse:collapse}
.doc-meta td{padding:.5mm 0;vertical-align:top}
.doc-meta td:first-child{color:#666;padding-right:4mm;white-space:nowrap}

/* blok pihak (kepada/dari) */
.doc-party{font-size:8.5pt;margin-bottom:4mm}
.doc-party .p-label{font-size:7pt;color:#666;text-transform:uppercase;letter-spacing:.3mm}
.doc-party .p-name{font-weight:800;font-size:9.5pt;margin-top:.5mm}

/* == TABEL ITEM ======================================================= */
/* lebar kolom dalam % supaya layout tidak rusak saat ganti ukuran kertas */
.doc-table{width:100%;border-collapse:collapse;font-size:8.5pt;margin-bottom:3mm}
.doc-table th{background:#f0efe9;border:.2mm solid #999;padding:1.5mm 2mm;text-align:left;font-size:7.5pt;text-transform:uppercase;letter-spacing:.2mm}
.doc-table td{border:.2mm solid #999;padding:1.5mm 2mm;vertical-align:top}
.doc-table .c-no{width:6%;text-align:center}
.doc-table .c-qty{width:10%;text-align:right}
.doc-table .c-price,.doc-table .c-amount{width:16%;text-align:right}
.doc-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
/* spesifikasi item (label desc_1..5 dari settings item_spec_labels) */
.doc-table .spec{font-size:7.5pt;color:#555;margin-top:.5mm}

/* == TOTAL ============================================================ */
.doc-total{display:flex;justify-content:flex-end}
.doc-total table{border-collapse:collapse;font-size:8.5pt;min-width:38%}
.doc-total td{padding:1mm 2mm}
.doc-total td:first-child{color:#555}
.doc-total td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.doc-total .grand td{font-weight:800;font-size:10pt;border-top:.4mm solid #1a1a1a}

/* terbilang & catatan */
.doc-words{font-size:8pt;font-style:italic;color:#444;margin-top:2mm}
.doc-notes{font-size:7.5pt;color:#555;margin-top:3mm;line-height:1.5}

/* == TANDA TANGAN ===================================================== */
.doc-sign{display:flex;justify-content:space-between;gap:6mm;margin-top:8mm}
.sig{width:30%;text-align:center;font-size:8.5pt}
.sig .s-role{color:#555}
.sig .s-line{margin-top:16mm;border-top:.3mm solid #1a1a1a;padding-top:1mm;font-weight:700}

/* label copy ("Asli"/"Copy" dari profil copies_label) */
.doc-copy{font-size:7pt;color:#888;text-transform:uppercase;letter-spacing:.4mm;text-align:right}

/* == THERMAL 80mm (struk POS — disiapkan untuk modul kasir) =========== */
.paper-thermal-80 .doc{padding:3mm 4mm}
.paper-thermal-80 .doc-table th,.paper-thermal-80 .doc-table td{border:none;border-bottom:.2mm dashed #aaa;padding:1mm .5mm}
.paper-thermal-80 .doc-kop{flex-direction:column;text-align:center;gap:1mm}

/* == SAAT PRINT DARI LAYAR ============================================ */
@media print{
  /* sembunyikan chrome aplikasi — hanya konten yang tercetak */
  .side,.rail,.subside,.fly,.top,.toasts,.modal-overlay,.no-print{display:none !important}
  #shell{display:block}
  body{background:#fff}
  /* body.app: grid → block + assign @page rpt (margin 15×18mm) */
  body.app{display:block;-webkit-print-color-adjust:exact;print-color-adjust:exact;page:rpt}
  body.app .wrap{display:block;width:100%;max-width:none}
  body.app .view{padding:0;gap:12px}
  /* laporan keuangan (reports.php) — cetak rapi dari tampilan layar */
  .tbl-wrap{overflow:visible}
  .rpt,.stat,.stats{box-shadow:none}
  .rpt{border:none;border-radius:0;overflow:visible}
  /* thead berulang di setiap halaman baru (tabel panjang) */
  .rpt-table thead{display:table-header-group}
  /* baris kritis tidak terpotong */
  .rpt-table tr{page-break-inside:avoid}
  .rpt-table tr.grp{page-break-after:avoid}
  .rpt-table tr.sub,.rpt-table tr.tot,.rpt-table tr.grand{page-break-before:avoid}
  /* neraca 2-col & stats aging: pertahankan grid di A4 */
  .rpt-2col{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(4,1fr)}
}

/* preview dokumen di layar (sebelum print/PDF) */
@media screen{
  body.doc-page{background:#e8e6df;padding:24px 0}
  body.doc-page .doc{background:#fff;box-shadow:0 6px 18px rgba(27,42,74,.18);margin:0 auto 16px}
}
