/* ============================================================
   PRINT v2.0 — هماهنگ با طراحی جدید
   - همه قواعد با specificity بالا و !important
   - رنگ‌ها و گرادیان‌ها با print-color-adjust
   - A4 / A5
============================================================ */

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

@media print {
  /* ----------------------------------------------------------
     ریست کلی
  ---------------------------------------------------------- */
  *, *::before, *::after {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  html, body {
    background: #fff !important;
    background-image: none !important;
    background-attachment: scroll !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    font-size: 10pt !important;
    line-height: 1.5 !important;
    color: #1e2745 !important;
    overflow: visible !important;
  }

  /* ----------------------------------------------------------
     مخفی‌سازی UI
  ---------------------------------------------------------- */
  .toolbar,
  .no-print,
  #toast,
  .modal-overlay,
  .viewer-overlay,
  .viewer-bar,
  .row-hint,
  .kbd-hint,
  .qr-lbl,
  .hint,
  .del,
  .c-del,
  .mini-sel,
  .tax-toggle,
  .logo-placeholder,
  #btnUndo,
  #btnRedo {
    display: none !important;
  }

  /* ----------------------------------------------------------
     Wrapper و Page
     مهم: padding حذف می‌شود، @page margin کار می‌کند
  ---------------------------------------------------------- */
  .page-wrap {
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    display: block !important;
  }

  .page {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: #fff !important;
    border: none !important;
    overflow: visible !important;
  }

  /* ----------------------------------------------------------
     سربرگ سه‌ستونه
  ---------------------------------------------------------- */
  .invoice-head {
    display: grid !important;
    grid-template-columns: 130px 1fr 90px !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 8px 10px !important;
    margin: 0 0 8px 0 !important;
    background: #f8faff !important;
    border: 1px solid #ccd2e2 !important;
    border-top: 3px solid #2f3b6b !important;
    border-radius: 6px !important;
    overflow: hidden !important;
  }
  .invoice-head::before,
  .invoice-head::after { display: none !important; }

  .logo-box {
    grid-column: 1 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 2px !important;
    background: transparent !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .logo-box.empty {
    border: 1px dashed #ccd2e2 !important;
    background: #fafbff !important;
    min-height: 60px !important;
  }
  .logo-box img,
  .logo-box svg {
    max-width: 120px !important;
    max-height: 60px !important;
    height: auto !important;
    display: block !important;
  }

  .head-title {
    grid-column: 2 !important;
    text-align: center !important;
    min-width: 0 !important;
  }
  .title-row {
    display: flex !important;
    justify-content: center !important;
    gap: 6px !important;
    margin-bottom: 5px !important;
  }
  .title-ribbon {
    display: inline-block !important;
    width: 3px !important;
    height: 16px !important;
    background: linear-gradient(180deg, #e23b3b, #2f3b6b) !important;
    border-radius: 3px !important;
  }
  .invoice-head h1 {
    font-size: 14pt !important;
    color: #2f3b6b !important;
    font-weight: 800 !important;
    margin: 0 !important;
    letter-spacing: 0 !important;
  }

  .meta {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 6px !important;
  }
  .meta-chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 2px 8px 2px 4px !important;
    background: #fff !important;
    border: 1px solid #ccd2e2 !important;
    border-radius: 14px !important;
    box-shadow: none !important;
  }
  .meta-lbl {
    font-size: 8pt !important;
    color: #7a84a2 !important;
    font-weight: 600 !important;
  }
  .meta-chip .field {
    font-size: 9pt !important;
    font-weight: 700 !important;
    color: #2f3b6b !important;
    padding: 0 !important;
    min-width: 70px !important;
    width: auto !important;
  }
  .w-date  { min-width: 75px !important; }
  .w-serial{ min-width: 110px !important; }

  .qr-box {
    grid-column: 3 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
    padding: 4px !important;
    background: #fff !important;
    border: 1px solid #ccd2e2 !important;
    border-radius: 8px !important;
  }
  .qr-target {
    width: 60px !important;
    height: 60px !important;
    display: block !important;
  }
  .qr-target img,
  .qr-target svg {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    image-rendering: pixelated !important;
  }

  /* ----------------------------------------------------------
     Fields
  ---------------------------------------------------------- */
  .field {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    color: #1e2745 !important;
    font-family: inherit !important;
  }
  .field:hover,
  .field:focus {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
  .field[readonly] { color: #1e2745 !important; }

  /* ----------------------------------------------------------
     کارت‌های فروشنده/خریدار — دو ستون
  ---------------------------------------------------------- */
  .parties-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin: 0 0 8px 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .party {
    display: block !important;
    padding: 6px 10px !important;
    margin: 0 !important;
    background: #f8faff !important;
    border: 1px solid #ccd2e2 !important;
    border-radius: 6px !important;
    position: relative !important;
    overflow: visible !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .party::before { display: none !important; }
  .party h2 {
    display: block !important;
    font-size: 9pt !important;
    color: #2f3b6b !important;
    font-weight: 800 !important;
    margin: 0 0 5px 0 !important;
    padding-bottom: 3px !important;
    border-bottom: 1px solid #e0e5f0 !important;
  }
  .party h2::after { display: none !important; }

  .grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px 8px !important;
  }
  .fld {
    display: flex !important;
    align-items: baseline !important;
    gap: 4px !important;
    min-width: 0 !important;
  }
  .fld.full { grid-column: 1 / -1 !important; }
  .fld > span {
    font-size: 8pt !important;
    color: #5a6484 !important;
    font-weight: 600 !important;
    min-width: 50px !important;
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }
  .fld .field {
    font-size: 9pt !important;
    font-weight: 600 !important;
  }

  /* ----------------------------------------------------------
     جدول اقلام
  ---------------------------------------------------------- */
  .items-wrap {
    margin: 0 0 8px 0 !important;
    page-break-inside: auto !important;
  }

  .items {
    display: table !important;
    width: 100% !important;
    border-collapse: collapse !important;
    border: 1px solid #ccd2e2 !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    font-size: 9pt !important;
    table-layout: fixed !important;
  }
  .items thead {
    display: table-header-group !important;
  }
  .items thead tr { display: table-row !important; }
  .items thead th {
    display: table-cell !important;
    background: #2f3b6b !important;
    color: #fff !important;
    padding: 6px 4px !important;
    font-size: 8pt !important;
    font-weight: 700 !important;
    text-align: center !important;
    border: none !important;
    white-space: nowrap !important;
  }
  .items thead th + th {
    border-inline-start: 1px solid rgba(255,255,255,.12) !important;
  }

  .items tbody { display: table-row-group !important; }
  .items tbody tr {
    display: table-row !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .items tbody td {
    display: table-cell !important;
    padding: 5px 5px !important;
    background: #fff !important;
    border-top: 1px solid #eef1f7 !important;
    text-align: center !important;
    vertical-align: middle !important;
    word-wrap: break-word !important;
  }
  .items tbody tr:nth-child(even) td { background: #fafbff !important; }
  .items tbody tr:hover td,
  .items tbody tr:focus-within td {
    background: #fff !important;
    box-shadow: none !important;
  }
  .items .desc { text-align: right !important; }

  .c-num  { width: 8% !important; }
  .c-sku  { width: 12% !important; }
  .c-qty  { width: 10% !important; }
  .c-price{ width: 20% !important; }

  .row-num {
    color: #5a6484 !important;
    font-weight: 700 !important;
    font-size: 8.5pt !important;
  }

  /* ----------------------------------------------------------
     جمع‌بندی
  ---------------------------------------------------------- */
  .summary {
    display: flex !important;
    justify-content: flex-end !important;
    margin: 0 0 8px 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .sum-box {
    width: 62% !important;
    min-width: 0 !important;
    border: 1px solid #ccd2e2 !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    background: #fff !important;
    overflow: hidden !important;
  }
  .sum-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 5px 10px !important;
    font-size: 9pt !important;
    background: #fff !important;
    border-bottom: 1px dashed #e0e5f0 !important;
  }
  .sum-row > span {
    color: #4a5474 !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
  }
  .num-amt {
    width: 120px !important;
    font-size: 9.5pt !important;
    font-weight: 700 !important;
    text-align: left !important;
    direction: ltr !important;
  }
  .sum-row.grand {
    background: #2f3b6b !important;
    border-bottom: none !important;
    padding: 8px 10px !important;
  }
  .sum-row.grand > span {
    color: #fff !important;
    font-weight: 800 !important;
    font-size: 10pt !important;
  }
  .sum-row.grand .num-amt {
    color: #fff !important;
    font-weight: 800 !important;
    font-size: 11pt !important;
  }

  .disc-wrap, .tax-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
  }
  #taxRateInput {
    width: 30px !important;
    max-width: 30px !important;
    text-align: center !important;
    font-size: 9pt !important;
  }

  .words {
    background: #f5f7fc !important;
    padding: 6px 10px !important;
    font-size: 8.5pt !important;
    line-height: 1.7 !important;
    border-top: 1px solid #ccd2e2 !important;
  }
  .words-lbl { color: #5a6484 !important; font-weight: 600 !important; }
  .words b { color: #2f3b6b !important; font-weight: 700 !important; }

  /* ----------------------------------------------------------
     توضیحات
  ---------------------------------------------------------- */
  .note {
    background: #fcfdff !important;
    border: 1px dashed #ccd2e2 !important;
    border-radius: 6px !important;
    padding: 6px 10px !important;
    margin: 0 0 8px 0 !important;
    font-size: 8.5pt !important;
    line-height: 1.8 !important;
    color: #4a5474 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .note p {
    margin: 0 0 3px 0 !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .note p:last-child { margin-bottom: 0 !important; }
  .ltr-txt {
    direction: ltr !important;
    display: inline-block !important;
    unicode-bidi: embed !important;
    font-weight: 700 !important;
    color: #2f3b6b !important;
  }

  /* ----------------------------------------------------------
     امضاها — دو ستون
  ---------------------------------------------------------- */
  .signs {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin: 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  .sign {
    display: flex !important;
    flex-direction: column !important;
    min-height: 90px !important;
    padding: 6px 8px !important;
    background: #fcfdff !important;
    border: 1px dashed #ccd2e2 !important;
    border-radius: 6px !important;
  }
  .sign-title {
    text-align: center !important;
    font-size: 8.5pt !important;
    color: #5a6484 !important;
    font-weight: 700 !important;
    margin-bottom: 5px !important;
  }
  .stamp-box {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 55px !important;
    background: transparent !important;
  }
  .stamp-box img {
    max-width: 100% !important;
    max-height: 80px !important;
    display: block !important;
  }

  /* ----------------------------------------------------------
     A5 — کوچک‌تر کردن متناسب
  ---------------------------------------------------------- */
  body[data-paper="a5"] { font-size: 8.5pt !important; }

  body[data-paper="a5"] .invoice-head {
    grid-template-columns: 100px 1fr 70px !important;
    padding: 6px 8px !important;
    gap: 8px !important;
  }
  body[data-paper="a5"] .invoice-head h1 { font-size: 12pt !important; }
  body[data-paper="a5"] .logo-box img,
  body[data-paper="a5"] .logo-box svg {
    max-width: 90px !important;
    max-height: 45px !important;
  }
  body[data-paper="a5"] .qr-target { width: 45px !important; height: 45px !important; }

  body[data-paper="a5"] .party { padding: 4px 8px !important; }
  body[data-paper="a5"] .party h2 { font-size: 8pt !important; margin-bottom: 3px !important; }
  body[data-paper="a5"] .fld > span { font-size: 7.5pt !important; min-width: 42px !important; }
  body[data-paper="a5"] .fld .field { font-size: 8pt !important; }

  body[data-paper="a5"] .items { font-size: 8pt !important; }
  body[data-paper="a5"] .items thead th { padding: 4px 3px !important; font-size: 7.5pt !important; }
  body[data-paper="a5"] .items tbody td { padding: 3px 4px !important; }

  body[data-paper="a5"] .sum-row { padding: 4px 8px !important; font-size: 8pt !important; }
  body[data-paper="a5"] .num-amt { font-size: 8pt !important; width: 95px !important; }
  body[data-paper="a5"] .sum-row.grand { padding: 6px 8px !important; }
  body[data-paper="a5"] .sum-row.grand > span,
  body[data-paper="a5"] .sum-row.grand .num-amt { font-size: 9pt !important; }

  body[data-paper="a5"] .words { font-size: 7.5pt !important; padding: 4px 8px !important; }
  body[data-paper="a5"] .note { font-size: 7.5pt !important; padding: 4px 8px !important; }
  body[data-paper="a5"] .sign { min-height: 70px !important; padding: 4px 6px !important; }
  body[data-paper="a5"] .sign-title { font-size: 7.5pt !important; }
  body[data-paper="a5"] .stamp-box { min-height: 45px !important; }
  body[data-paper="a5"] .stamp-box img { max-height: 55px !important; }

  /* ----------------------------------------------------------
     کنترل شکست صفحه
  ---------------------------------------------------------- */
  .invoice-head,
  .parties-grid,
  .party,
  .summary,
  .sum-box,
  .signs,
  .sign,
  .note {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .items thead { page-break-after: auto !important; }
  .items tbody tr { page-break-inside: avoid !important; }
}
/* ============================================================
   FIX v2.1 — حل باگ‌های چاپ
   - حذف pseudo-element های موبایل (data-label)
   - بازنشانی display از موبایل
   - اجبار پس‌زمینه‌ها
============================================================ */

@media print {
  /* ۱. حذف کامل ::before/::after که در موبایل برای label ساخته شده‌اند */
  .items tbody td::before,
  .items tbody td::after,
  .items tbody tr::before,
  .items tbody tr::after,
  .party::before,
  .party::after,
  .invoice-head::before,
  .invoice-head::after,
  .sum-row::before,
  .sum-row::after,
  .note::before,
  .note::after,
  .sign::before,
  .sign::after,
  .fld::before,
  .fld::after,
  .meta::before,
  .meta::after,
  .title-row::before,
  .title-row::after,
  .words::before,
  .words::after {
    content: none !important;
    display: none !important;
  }
  /* استثنا: ribbon که در طراحی ضروری است */
  .title-ribbon { content: '' !important; display: inline-block !important; }

  /* ۲. بازنشانی جدول به حالت واقعی table */
  .items {
    display: table !important;
    table-layout: fixed !important;
    width: 100% !important;
    border-collapse: collapse !important;
  }
  .items thead { display: table-header-group !important; }
  .items tbody { display: table-row-group !important; }
  .items tbody tr {
    display: table-row !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    position: static !important;
    box-shadow: none !important;
  }
  .items tbody td {
    display: table-cell !important;
    width: auto !important;
    margin: 0 !important;
    padding: 5px 5px !important;
    background: #fff !important;
    border-top: 1px solid #eef1f7 !important;
    text-align: center !important;
    vertical-align: middle !important;
    position: static !important;
  }
  .items tbody tr:nth-child(even) td { background: #fafbff !important; }
  .items .desc { text-align: right !important; }
  .items .row-num {
    position: static !important;
    color: #5a6484 !important;
    font-weight: 700 !important;
    font-size: 8.5pt !important;
    padding: 0 !important;
  }
  .items .c-del { display: none !important; }

  /* ۳. اطمینان از اینکه همه input ها با رنگ درست چاپ شوند */
  input,
  input.field,
  .field {
    color: #1e2745 !important;
    background: transparent !important;
    -webkit-text-fill-color: #1e2745 !important;
    opacity: 1 !important;
  }
  input[readonly],
  .field[readonly] {
    color: #1e2745 !important;
    -webkit-text-fill-color: #1e2745 !important;
  }

  /* ۴. حذف کامل اسکرول/overflow که در چاپ مشکو ایجاد می‌کند */
  .page,
  .page-wrap,
  .items-wrap,
  .items,
  .summary,
  .parties-grid,
  .signs {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
  }

  /* ۵. بازنشانی کارت‌های موبایل به حالت دسکتاپ */
  .parties-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
  .grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px 8px !important;
  }
  .fld {
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
  }
  .fld.full { grid-column: 1 / -1 !important; }

  /* ۶. سربرگ */
  .invoice-head {
    display: grid !important;
    grid-template-columns: 120px 1fr 80px !important;
    gap: 10px !important;
  }
  .head-title { grid-column: 2 !important; }
  .logo-box { grid-column: 1 !important; }
  .qr-box { grid-column: 3 !important; }

  /* ۷. امضاها */
  .signs {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  /* ۸. جمع کل */
  .summary {
    display: flex !important;
    justify-content: flex-end !important;
  }
  .sum-box {
    width: 62% !important;
    min-width: 0 !important;
  }
  .sum-row {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
  }
}
@media print {
  .doc-type-select {
    background-image: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    padding: 0 !important;
    font-size: 14pt !important;
    font-weight: 800 !important;
    color: #2f3b6b !important;
    text-align: center !important;
    width: 100% !important;
    pointer-events: none !important;
  }
  .title-ribbon { display: none !important; }
  .pay-status-pill {
    background-image: none !important;
    padding: 2px 10px !important;
    font-size: 8.5pt !important;
    pointer-events: none !important;
  }
  .pay-status-pill select {
    -webkit-appearance: none !important;
    appearance: none !important;
    pointer-events: none !important;
  }
  .prev-wrap .mini-sel { display: none !important; }
  .prev-wrap .num-amt { width: 110px !important; }
  .disc-wrap .mini-sel,
  .tax-toggle,
  .tax-wrap label { display: none !important; }
}