/* ============================================================
   Dental ERP — Print Stylesheet
   A4 Invoice + Thermal 80mm + Labels
   ============================================================ */

@media print {
  html, body {
    margin: 0; padding: 0;
    background: white !important;
    color: black !important;
    font-family: 'Cairo', 'Tajawal', sans-serif;
  }

  /* اخفِ كل شيء عدا منطقة الطباعة */
  body > *:not(.print-area) { display: none !important; }
  .print-area { display: block !important; }

  /* لا تطبع روابط، أزرار، عناصر تحكم */
  .no-print, button, .btn, nav, header,
  #topbar, #sidebar, #bottomNav, #toastContainer, #loadingOverlay,
  .page-actions { display: none !important; }

  a { color: black; text-decoration: none; }

  /* صفحة جديدة عند الحاجة */
  .page-break { page-break-before: always; }
  .no-break   { page-break-inside: avoid; }
}

/* ═══ A4 Invoice ═══ */
@page invoice-a4 {
  size: A4;
  margin: 12mm;
}

.print-invoice-a4 {
  font-family: 'Cairo', 'Tajawal', sans-serif;
  direction: rtl;
  color: #000;
  width: 100%;
  font-size: 12pt;
}
.print-invoice-a4 .inv-head {
  display: flex; justify-content: space-between;
  align-items: start;
  border-bottom: 2px solid #000;
  padding-bottom: 12px; margin-bottom: 18px;
}
.print-invoice-a4 .inv-co {
  font-size: 11pt; line-height: 1.7;
}
.print-invoice-a4 .inv-co strong {
  font-size: 16pt; display: block; margin-bottom: 4px;
}
.print-invoice-a4 .inv-meta {
  text-align: left; font-size: 11pt;
}
.print-invoice-a4 .inv-meta strong {
  font-size: 18pt; display: block;
  border: 2px solid #000; padding: 6px 12px;
  margin-bottom: 8px;
}
.print-invoice-a4 .inv-client {
  background: #f5f5f5;
  padding: 12px 14px;
  border-radius: 4px;
  margin-bottom: 18px;
  border: 1px solid #ddd;
}
.print-invoice-a4 .inv-client h3 {
  margin: 0 0 6px; font-size: 13pt;
}
.print-invoice-a4 table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 16px;
  font-size: 11pt;
}
.print-invoice-a4 th, .print-invoice-a4 td {
  border: 1px solid #000;
  padding: 8px 6px;
  text-align: right;
}
.print-invoice-a4 th {
  background: #e5e5e5;
  font-weight: 700;
}
.print-invoice-a4 td.num,
.print-invoice-a4 th.num { text-align: center; }
.print-invoice-a4 .inv-totals {
  margin-right: auto;
  width: 280px;
  font-size: 11pt;
}
.print-invoice-a4 .inv-totals table {
  margin: 0;
}
.print-invoice-a4 .inv-totals td {
  padding: 6px 10px;
}
.print-invoice-a4 .inv-totals .grand {
  background: #000; color: #fff;
  font-size: 14pt; font-weight: 800;
}
.print-invoice-a4 .inv-foot {
  margin-top: 24px;
  font-size: 10pt;
  text-align: center;
  padding-top: 12px;
  border-top: 1px solid #000;
}
.print-invoice-a4 .inv-stamp {
  margin-top: 30px;
  display: flex; justify-content: space-between;
}
.print-invoice-a4 .inv-stamp > div {
  width: 200px; height: 80px;
  border-bottom: 1px solid #000;
  font-size: 10pt; padding-top: 60px;
  text-align: center;
}

/* ═══ Thermal 80mm Receipt ═══ */
@page receipt-80mm {
  size: 80mm auto;
  margin: 0;
}

.print-receipt-80 {
  width: 76mm;
  margin: 0 auto;
  font-family: 'Cairo', monospace;
  direction: rtl;
  color: #000;
  font-size: 9pt;
  line-height: 1.4;
  padding: 2mm 1mm;
}
.print-receipt-80 .rec-head { text-align: center; margin-bottom: 6px; }
.print-receipt-80 .rec-head .name { font-size: 13pt; font-weight: 800; }
.print-receipt-80 .rec-head .meta { font-size: 8pt; line-height: 1.5; }
.print-receipt-80 .rec-num {
  text-align: center;
  border: 1px dashed #000;
  padding: 3px;
  margin: 6px 0;
  font-weight: 700;
}
.print-receipt-80 hr {
  border: none;
  border-top: 1px dashed #000;
  margin: 4px 0;
}
.print-receipt-80 table {
  width: 100%; border-collapse: collapse;
  font-size: 8pt;
}
.print-receipt-80 td { padding: 2px 1px; vertical-align: top; }
.print-receipt-80 .col-name { width: 60%; }
.print-receipt-80 .col-qty,
.print-receipt-80 .col-price,
.print-receipt-80 .col-total { text-align: center; }
.print-receipt-80 .totals td {
  font-size: 9pt; padding: 2px 1px;
}
.print-receipt-80 .totals .grand {
  font-size: 12pt; font-weight: 800;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 4px 1px;
}
.print-receipt-80 .rec-foot {
  text-align: center;
  font-size: 8pt;
  margin-top: 8px;
}

/* ═══ Labels Sheet ═══ */
.print-labels {
  display: flex; flex-wrap: wrap;
  gap: 0;
  font-family: 'Cairo', sans-serif;
  direction: rtl;
}
.print-label {
  border: 1px dashed #ccc;
  padding: 1mm 2mm;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: center;
  page-break-inside: avoid;
  box-sizing: border-box;
}
.print-label .lbl-name {
  font-size: 8pt;
  font-weight: 700;
  margin: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.print-label .lbl-price {
  font-size: 10pt;
  font-weight: 800;
}
.print-label svg.barcode {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

@media print {
  .print-label { border: none; }
  @page labels-sheet {
    size: A4;
    margin: 5mm;
  }
}
