/* ==========================================================================
   PICKMASTER PRO — GAYA CETAK SLIP (A4 portrait)
   Dimuat lewat <link media="print">. Dipisah dari app.css supaya saat
   menghitung jumlah halaman, aturan ini bisa diaktifkan sesaat lalu
   dimatikan lagi tanpa menggandakan kode.
   ========================================================================== */

@page {
  size: A4 portrait;
  margin: 14mm;
}

/* Kunci color-scheme ke light dan paksa latar putih murni di seluruh kanvas cetak.
   Ini mencegah browser/Chrome merender kanvas gelap atau bingkai hitam pekat
   di sekeliling kertas saat aplikasi dibuka dalam tema gelap (Dark Mode). */
:root, html, body {
  color-scheme: light !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #10151f !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* Tidak ada satu pun garis tepi luar, bayangan, atau outline yang mengelilingi kertas. */
html, body,
.modal, .modal-card, .modal-body, .slip-wrap, .slip,
.slip-page, .slip-page > thead > tr > th, .slip-page > tbody > tr > td {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* Warna latar (band biru header BSS, header tabel) wajib ikut tercetak. */
* {
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

/* Sembunyikan seluruh antarmuka web, navigasi, drawer, dan modal lain */
.app-shell, .topbar, .context-bar, .view-nav, .workspace, .app-foot, .toasts,
.fx-drawer, .fx-drawer-backdrop,
.no-print, #modalEdit, #modalConn, .modal[hidden] {
  display: none !important;
}

/* ----------------------------------------------------------------------------
   ISOLASI CETAK SLIP
   Hanya slip yang tampil di kertas dengan latar belakang putih bersih.
   Wadah modal dan pembungkus slip dijadikan blok datar dengan background putih,
   bukan transparan, sehingga tidak ada warna kanvas gelap yang bocor ke kertas.
   ---------------------------------------------------------------------------- */
.modal, #modalSlip {
  position: static !important;
  display: block !important;
  inset: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  backdrop-filter: none !important;
  overflow: visible !important;
}

.modal-card, #modalSlip .modal-card {
  position: static !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  box-shadow: none !important;
  overflow: visible !important;
  animation: none !important;
}

.modal-body, .slip-wrap, #modalSlip .slip-wrap {
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  overflow: visible !important;
}

.slip, #slipSheet {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  box-shadow: none !important;
  font-size: 9.5pt;
  line-height: 1.32;
}

/* Kepala dokumen berulang otomatis di setiap lembar. */
.slip-page > thead { display: table-header-group; }
.slip-page > tbody { display: table-row-group; }

.slip-doc { margin-bottom: 3.5mm; page-break-inside: avoid; }
.slip-doc td { border: .35mm solid #000; padding: 1mm 2mm; }
.doc-logo { padding: 1.5mm 2mm; }
.doc-logo img { max-width: 22mm; }
.doc-system { font-size: 10.5pt; background: #dbe5f1 !important; }
.doc-kind, .doc-name { font-size: 10pt; }
.doc-label, .doc-value { font-size: 8.5pt; }

.slip-subhead { padding-bottom: 2mm; gap: 8mm; border-bottom-width: .4mm; }
.slip-dept { font-size: 6.5pt; }
.slip-title { font-size: 11pt; margin-top: .8mm; }
.slip-subtitle { font-size: 7.5pt; margin-top: .5mm; }
.slip-meta { font-size: 7.5pt; }
.slip-meta td { padding: .3mm 1.2mm; }

.slip-info { grid-template-columns: repeat(4, 1fr) !important; padding: 2.2mm 0; gap: 2mm; page-break-inside: avoid; }
.slip-block dt { font-size: 6.5pt; }
.slip-block dd { font-size: 8.5pt; margin-top: .5mm; }

/* Tabel item: lebar kolom dikunci, kepala tabel ikut tiap halaman. */
.slip-items { margin-top: 3.5mm; font-size: 8.5pt; table-layout: fixed; }
.slip-items thead { display: table-header-group; }
.slip-items tfoot { display: table-row-group; }
.slip-items tr { page-break-inside: avoid; }
.slip-items th { padding: 1.6mm 1.8mm; font-size: 7.5pt; }
.slip-items td { padding: 1.5mm 1.8mm; }
.slip-item-mono { font-size: 8pt; }
.slip-item-sub { font-size: 6.8pt; }

.slip-notes {
  margin-top: 3.5mm;
  padding: 2mm 2.5mm;
  background: #f8fafc !important;
  border: 1px solid #cbd5e1;
  border-left: 3px solid #5b5bf0;
  border-radius: 2px;
  font-size: 8pt;
  page-break-inside: avoid;
}

.slip-signs { grid-template-columns: repeat(3, 1fr) !important; margin-top: 6mm; gap: 8mm; page-break-inside: avoid; }
.sign-role { font-size: 7.5pt; }
.sign-space { height: 11mm; }
.sign-name { font-size: 9pt; padding-top: 1.5mm; border-top-width: .35mm; }
.sign-note { font-size: 6.8pt; }

.slip-foot { margin-top: 5mm; padding-top: 2mm; font-size: 6.8pt; page-break-inside: avoid; }

/* ==========================================================================
   ATURAN CETAK KHUSUS: MAINTENANCE ORDER (RESMI BSS)
   ========================================================================== */
.mo-order,
.mo-order * {
  font-family: 'Times New Roman', Times, serif !important;
}

.mo-order {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  color: #000000 !important;
  font-size: 8.5pt !important;
  line-height: 1.3 !important;
}

.mo-box, .mo-table, .mo-notes-box, .mo-completion-box, .mo-table-sign, .mo-head-wo-box {
  border: 0.3mm solid #000 !important;
}

.mo-header {
  border-bottom: 0.3mm solid #000 !important;
}

.mo-split-wrap {
  border-top: 0.3mm solid #000 !important;
}

.mo-split-left {
  border-right: 0.3mm solid #000 !important;
}

.mo-table th, .mo-table td, .mo-table-sign th, .mo-table-sign td {
  border: 0.3mm solid #000 !important;
  color: #000 !important;
}

.mo-section-bar {
  background: #e6e6e6 !important;
  border: 0.3mm solid #000 !important;
  border-bottom: none !important;
  color: #000 !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

.mo-table tr {
  page-break-inside: avoid !important;
}

.mo-sign-section, .mo-notes-box, .mo-completion-box {
  page-break-inside: avoid !important;
}

