/* Printable A4 document. On screen it's a sheet; on print only the sheet is output,
   with the letterhead and footer repeated on every page. */

.paper {
  --navy: #1d2a5e;
  --teal: #1ea3c4;
  --ink: #16182f;
  --muted: #5f6385;
  --line: #d6d9e8;
  --band: #eef1f8;
  --head-h: 31mm;
  --foot-h: 19mm;
  --side: 13mm;
  position: relative;
  width: 210mm; min-height: 297mm; margin: 0 auto; padding: 0 var(--side);
  background: #fff; color: var(--ink); font: 9.5pt/1.45 var(--display);
  box-shadow: 0 2px 6px rgba(21, 22, 58, .06), 0 18px 50px rgba(21, 22, 58, .1);
  border-radius: 4px;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.paper .pre { white-space: pre-line; }
.paper .num { text-align: right; font-variant-numeric: tabular-nums; }
.paper .muted { color: var(--muted); }
.paper .strong { font-weight: 600; }

/* ---------- frame: thead/tfoot reserve room for the repeating letterhead + footer ---------- */
.paper__frame { width: 100%; border-collapse: collapse; }
.paper__frame > thead > tr > td, .paper__frame > tfoot > tr > td, .paper__frame > tbody > tr > td { padding: 0; }
.paper__head-space { height: var(--head-h); }
.paper__foot-space { height: calc(var(--foot-h) + 6mm); }

/* ---------- letterhead ---------- */
.paper__head {
  position: absolute; top: 5mm; left: var(--side); right: var(--side); height: calc(var(--head-h) - 9mm);
  display: flex; align-items: center; justify-content: space-between; gap: 10mm;
  border-bottom: 2px solid var(--navy);
}
.paper__head::after {
  content: ""; position: absolute; right: 0; bottom: -2px; width: 46mm; height: 2px; background: var(--teal);
}
.lh__mark { display: flex; flex-direction: column; align-items: center; gap: .8mm; padding-bottom: 1.5mm; }
.lh__mark img { width: 17mm; height: 17mm; }
.lh__slogan { font: italic 400 8.5pt/1 "Instrument Serif", Georgia, serif; color: var(--navy); letter-spacing: .02em; }
.lh__word { text-align: right; }
.lh__en { font-size: 17pt; line-height: 1; letter-spacing: .09em; white-space: nowrap; }
.lh__en b { font-weight: 800; color: var(--navy); }
.lh__en span { font-weight: 400; color: var(--teal); }
.lh__ar { font: 600 15pt/1.3 var(--arabic); color: var(--navy); margin-top: 1.5mm; letter-spacing: .02em; }

/* ---------- footer ---------- */
.paper__footer {
  position: absolute; bottom: 7mm; left: var(--side); right: var(--side); height: var(--foot-h);
  display: flex; justify-content: space-between; align-items: flex-start; gap: 8mm;
  padding-top: 2.5mm; border-top: 2px solid var(--navy); font-size: 7.6pt; line-height: 1.45;
}
.pf__services { max-width: 58%; color: var(--navy); font-weight: 600; }
.pf__services em { display: block; font-style: normal; color: var(--teal); letter-spacing: .1em; margin-top: 1mm; font-weight: 700; }
.pf__contact { text-align: right; color: var(--muted); }

/* ---------- title & parties ---------- */
.paper__titlebar { display: flex; align-items: baseline; justify-content: space-between; gap: 6mm; margin: 4mm 0 5mm; }
.paper__titlebar h1 {
  font: 400 23pt/1 "Instrument Serif", Georgia, serif; color: var(--navy); letter-spacing: 0;
}
.paper__trn { font-weight: 700; font-size: 9pt; color: var(--navy); white-space: nowrap; }

.paper__parties { display: grid; grid-template-columns: 1fr auto; gap: 8mm; align-items: start; margin-bottom: 5mm; }
.paper__to { display: flex; gap: 3mm; }
.paper__to-label { color: var(--teal); font-weight: 700; min-width: 7mm; }
.paper__party-name { font-weight: 700; font-size: 10.5pt; }
.paper__party-trn { color: var(--navy); font-weight: 700; margin-top: 1mm; }
.paper__deliver { margin-top: 1.5mm; }
.paper__meta { display: grid; grid-template-columns: auto auto; gap: .6mm 3mm; margin: 0; }
.paper__meta dt { text-align: right; color: var(--navy); font-weight: 700; white-space: nowrap; }
.paper__meta dd { margin: 0; max-width: 62mm; }
.paper__subject { margin: 0 0 4mm; }
.paper__subject em { font-weight: 600; }

/* ---------- line items ---------- */
.paper__group { margin-bottom: 4mm; }
.paper__section-row td { padding: 0 !important; border: 0 !important; background: none !important; }
.paper__section {
  display: inline-block; min-width: 45%; background: var(--teal); color: #fff; font-weight: 700;
  padding: 1.6mm 3mm; font-size: 9.5pt;
}
.paper__lines { width: 100%; border-collapse: collapse; table-layout: fixed; }
.paper__lines thead th {
  background: var(--navy); color: #fff; font-size: 7.8pt; font-weight: 600; line-height: 1.25;
  padding: 2mm 1.8mm; text-align: left; vertical-align: middle;
}
.paper__lines thead th.num { text-align: right; }
.paper__lines tbody td { padding: 1.4mm 1.8mm; border-bottom: 1px solid var(--line); vertical-align: top; }
.paper__lines tbody tr { break-inside: avoid; }
.paper__lines .c-no { color: var(--muted); }
.paper__lines col.c-no { width: 7mm; }
.paper__lines col.c-unit { width: 11mm; }
.paper__lines col.c-qty { width: 10mm; }
.paper__lines col.c-price { width: 19mm; }
.paper__lines col.c-disc { width: 11mm; }
.paper__lines col.c-tax { width: 21mm; }
.paper__lines col.c-vatp { width: 10mm; }
.paper__lines col.c-vat { width: 17mm; }
.paper__lines col.c-net { width: 23mm; }
.paper__lines col.c-serial { width: 44mm; }
.paper--delivery .paper__lines col.c-unit { width: 14mm; }
.paper--delivery .paper__lines col.c-qty { width: 12mm; }
.paper__lines .c-serial { text-align: right; }
.paper__lines td.c-serial { font-family: var(--mono); font-size: 8pt; }
.paper--delivery .paper__lines .c-unit { width: 14mm; }
.paper--delivery .paper__lines .c-qty { width: 12mm; }
.paper__lines td.num { white-space: nowrap; }
.paper__lines .c-desc { overflow-wrap: anywhere; }
.paper__code { display: block; font-family: var(--mono); font-size: 7.2pt; color: var(--muted); }
.paper__lines tr.is-sub td, .paper__lines tr.is-grand td { padding: 1.8mm; font-weight: 700; white-space: nowrap; border-bottom: 0; }
.paper__lines tr.is-sub td { border-top: 1.5px solid var(--ink); }
.paper__lines tr.is-grand td { background: var(--band); color: var(--navy); font-size: 10pt; border-top: 1.5px solid var(--navy); border-bottom: 2px solid var(--navy); }
.paper--delivery .paper__lines tbody td { padding-top: 2.2mm; padding-bottom: 2.2mm; }

.paper__sum { margin: 0 0 4mm auto; border-collapse: collapse; min-width: 75mm; }
.paper__sum th, .paper__sum td { padding: 1.4mm 2mm; text-align: right; }
.paper__sum th { color: var(--muted); font-weight: 600; text-align: left; }
.paper__sum tr.is-grand th, .paper__sum tr.is-grand td { background: var(--band); color: var(--navy); font-weight: 700; font-size: 10pt; border-top: 1.5px solid var(--navy); }

/* ---------- invoice VAT block ---------- */
.paper__vat { display: grid; grid-template-columns: 1fr 72mm; gap: 6mm; margin: 2mm 0 5mm; break-inside: avoid; }
.paper__words { display: flex; flex-direction: column; gap: .8mm; }
.paper__words .paper__label:not(:first-child) { margin-top: 2mm; }
.paper__vat-table { border-collapse: collapse; width: 100%; font-size: 8.5pt; }
.paper__vat-table th { background: var(--band); color: var(--navy); font-weight: 700; padding: 1.4mm 2mm; text-align: left; }
.paper__vat-table th.num { text-align: right; }
.paper__vat-table td { padding: 1.4mm 2mm; border-bottom: 1px solid var(--line); }
.paper__vat-table tfoot td { font-weight: 700; border-bottom: 0; border-top: 1.5px solid var(--navy); }
.paper__label { font-size: 7.4pt; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.paper__inwords { margin: 0 0 4mm; }
.paper__inwords .paper__label { margin-right: 2mm; }

/* ---------- text blocks ---------- */
.paper__block, .paper__bank { margin-bottom: 4mm; }
.paper__block .paper__label, .paper__bank .paper__label { margin-bottom: 1.2mm; }
.paper__para { margin: 0 0 3.5mm; }
.terms__kv { display: grid; grid-template-columns: auto 1fr; gap: .5mm 6mm; margin: 0 0 3mm; }
.terms__kv dt { font-weight: 600; }
.terms__kv dd { margin: 0; }
.terms p { margin: 0 0 1.2mm; break-inside: avoid; }
.terms p strong { color: var(--navy); }
.paper__bank .terms__kv { gap: .2mm 4mm; font-size: 9pt; }
.paper__closing { font-size: 8.6pt; color: #33364f; margin: 4mm 0; }
.paper__closing p { margin: 0 0 2mm; text-align: justify; }
.paper__end { break-inside: avoid; }
.paper__regards { margin-top: 5mm; }
.paper__regards-space { height: 14mm; }

.paper__received { margin: 6mm 0 0; }
.paper__thanks { text-align: center; color: var(--navy); font-weight: 600; margin: 4mm 0 0; }
.paper__signs { display: flex; justify-content: space-between; gap: 12mm; margin-top: 16mm; break-inside: avoid; }
.sign { min-width: 58mm; color: var(--muted); }
.sign--right { margin-left: auto; text-align: center; }
.sign__for { color: var(--ink); margin-bottom: 14mm; }
.sign:not(.sign--right) .sign__line { margin-top: calc(14mm + 1.45em); }
.sign__line { border-top: 1px solid var(--ink); margin-bottom: 1.5mm; }
.sign__sub { font-size: 7.5pt; margin-top: .5mm; }
.paper__fine { font-size: 7.5pt; color: var(--muted); text-align: center; margin: 6mm 0 0; }

/* shrink the A4 sheet to fit narrow screens (screen only; print is always full size) */
@media screen and (max-width: 1000px) { .paper-scroll .paper { zoom: .9; } }
@media screen and (max-width: 860px) { .paper-scroll .paper { zoom: .75; } }
@media screen and (max-width: 700px) { .paper-scroll .paper { zoom: .58; } }
@media screen and (max-width: 560px) { .paper-scroll .paper { zoom: .5; } }
@media screen and (max-width: 440px) { .paper-scroll .paper { zoom: .42; } }
@media screen and (max-width: 360px) { .paper-scroll .paper { zoom: .37; } }

@page { size: A4; margin: 0; }
@media print {
  html, body { background: #fff !important; }
  .sidebar, .topbar, .scrim, .page-head, .view-side, .toasts, .modal-backdrop { display: none !important; }
  .main { margin: 0 !important; }
  .page, .paper-scroll, .view-grid { padding: 0 !important; margin: 0 !important; max-width: none !important; overflow: visible !important; display: block !important; }
  .paper { margin: 0; box-shadow: none; border-radius: 0; min-height: 0; }
  /* fixed elements repeat on every printed page */
  .paper__head, .paper__footer { position: fixed; }
  .paper__head { top: 5mm; }
  .paper__footer { bottom: 7mm; }
}
