/* ==========================================================================
   Nava — print stylesheet
   A4 output for letters (کارتابل) and invoices. Direction-agnostic: totals
   align to the inline end and letterheads mirror with the document.
   ========================================================================== */

@page {
  size: A4;
  margin: 18mm;
}

@media print {
  html,
  body {
    background: #FFFFFF !important;
    color: #111111 !important;
    font-size: 11.5pt;
    line-height: 1.7;
  }

  /* chrome and anything interactive disappears */
  .sidebar,
  .topbar,
  .sidebar-scrim,
  .toolbar,
  .tabs,
  .btn,
  .btn-icon,
  .toast-stack,
  .palette-ovl,
  .install-card,
  .shell-banner,
  .no-print,
  [data-print="hide"],
  [aria-hidden="true"].decorative {
    display: none !important;
  }

  .app,
  .shell-main,
  .content {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    width: auto !important;
  }

  a {
    color: #111111 !important;
    text-decoration: none !important;
  }

  img,
  svg {
    max-width: 100%;
  }

  /* ---------- printable document surface ---------- */

  .print-sheet {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    background: #FFFFFF !important;
    color: #111111 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    break-inside: avoid;
    font-size: 11.5pt;
    line-height: 1.8;
  }

  .print-sheet * {
    color: #111111 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .print-sheet h1,
  .print-sheet h2,
  .print-sheet h3 {
    color: #000000 !important;
    break-after: avoid;
  }

  .print-sheet p,
  .print-sheet li,
  .print-sheet td,
  .print-sheet th,
  .print-sheet dd {
    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: break-word;
  }

  .print-sheet .print-body {
    white-space: pre-wrap !important;
    orphans: 3;
    widows: 3;
  }

  /* ---------- letterhead ---------- */

  .print-letterhead {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24pt;
    padding-block-end: 10pt;
    margin-block-end: 14pt;
    border-block-end: 1px solid #999999 !important;
  }
  .print-letterhead-start {
    display: flex;
    flex-direction: column;
    gap: 2pt;
  }
  .print-org {
    font-size: 14pt;
    font-weight: 700;
    color: #000000 !important;
  }
  .print-org-sub {
    font-size: 9.5pt;
    color: #444444 !important;
  }
  .print-letterhead-end {
    text-align: end;
    font-size: 9.5pt;
    color: #333333 !important;
    line-height: 1.9;
  }
  .print-logo {
    height: 22pt;
    width: auto;
    margin-block-end: 4pt;
  }

  /* ---------- registers / metadata ---------- */

  .print-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2pt 18pt;
    margin-block-end: 12pt;
    font-size: 10pt;
    color: #222222 !important;
  }
  .print-meta-row {
    display: flex;
    gap: 4pt;
    break-inside: avoid;
  }
  .print-meta-key {
    color: #555555 !important;
    min-width: 72pt;
  }
  .print-meta-val {
    color: #000000 !important;
    font-weight: 500;
  }

  .print-number {
    font-family: ui-monospace, "Cascadia Mono", Menlo, monospace;
    font-size: 10pt;
    direction: ltr;
    unicode-bidi: isolate;
  }

  /* ---------- tables ---------- */

  .print-table,
  .print-sheet table {
    width: 100%;
    border-collapse: collapse;
    font-size: 10pt;
    margin-block: 10pt;
  }
  .print-table thead {
    display: table-header-group;
  }
  .print-table tfoot {
    display: table-footer-group;
  }
  .print-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-table th {
    text-align: start;
    padding: 5pt 6pt;
    border-block-end: 1px solid #888888 !important;
    background: #F2F2F2 !important;
    font-weight: 600;
    font-size: 9.5pt;
  }
  .print-table td {
    padding: 5pt 6pt;
    border-block-end: 1px solid #DDDDDD !important;
    vertical-align: top;
  }
  .print-table .num,
  .print-table th[data-align="end"],
  .print-table td[data-align="end"] {
    text-align: end;
    font-variant-numeric: tabular-nums;
  }

  .print-totals {
    margin-inline-start: auto;
    width: 58%;
    margin-block-start: 8pt;
    break-inside: avoid;
  }
  .print-totals-row {
    display: flex;
    justify-content: space-between;
    gap: 12pt;
    padding-block: 3pt;
    border-block-end: 1px solid #DDDDDD !important;
    font-size: 10.5pt;
  }
  .print-totals-row--grand {
    border-block-end: 0 !important;
    border-block-start: 1.5pt solid #333333 !important;
    font-weight: 700;
    font-size: 12pt;
    padding-block-start: 5pt;
  }

  /* ---------- signature & footer ---------- */

  .print-signature {
    display: flex;
    justify-content: flex-end;
    gap: 48pt;
    margin-block-start: 28pt;
    break-inside: avoid;
  }
  .print-signature-block {
    min-width: 120pt;
    text-align: center;
    font-size: 9.5pt;
    color: #333333 !important;
  }
  .print-signature-rule {
    margin-block-start: 24pt;
    border-block-start: 1px solid #999999 !important;
    padding-block-start: 4pt;
  }

  .print-footer {
    margin-block-start: 16pt;
    padding-block-start: 6pt;
    border-block-start: 1px solid #CCCCCC !important;
    font-size: 8.5pt;
    color: #666666 !important;
    display: flex;
    justify-content: space-between;
    gap: 12pt;
  }

  /* page-break helpers usable by modules */
  .print-break-before { break-before: page; }
  .print-break-after { break-after: page; }
  .print-avoid-break { break-inside: avoid; }
  .print-page-break { break-after: page; }
}

/* On screen, a print preview surface keeps the paper metaphor. */
@media screen {
  .print-sheet {
    background: #FFFFFF;
    color: #111111;
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    padding: 28px 32px;
    max-width: 210mm;
    margin-inline: auto;
    box-shadow: var(--shadow-1);
  }
}
