/* =========================================================
   Forma Print Engine output styles
   The print document is self-contained: include this file plus
   print-engine.js in the host ERP page.
   ========================================================= */

.forma-print-document {
  --pd-font-sans: "Inter", "SF Pro Display", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  --pd-font-mono: "SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;
}

.forma-print-document .pd-page {
  position: relative;
  box-sizing: border-box;
  overflow: hidden;
  background: #fff;
  color: #172033;
  font-family: var(--pd-font-sans);
  font-variant-numeric: tabular-nums;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}.forma-print-document .pd-page *,
.forma-print-document .pd-page *::before,
.forma-print-document .pd-page *::after { box-sizing: border-box; }.forma-print-document .pd-object {
  position: absolute;
  z-index: 5;
  box-sizing: border-box;
}.forma-print-document .pd-inner {
  width: 100%;
  height: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  white-space: pre-wrap;
  word-break: break-word;
  overflow: hidden;
}.forma-print-document .pd-field-value { display: inline; }.forma-print-document .pd-line { min-height: 1px; }.forma-print-document .pd-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}.forma-print-document .pd-image-placeholder {
  width: 100%;
  height: 100%;
  border: .25mm dashed #cbd5e1;
  border-radius: .8mm;
  background: #f8fafc;
  color: #9aa6b6;
  font-size: 5.5pt;
  display: grid;
  place-items: center;
}/* Logo block is intentionally reproduced in the print stylesheet so the
   engine can render without the designer application CSS. */
.forma-print-document .pd-company-logo {
  width: 100%;
  height: 100%;
  border-radius: 1.6mm;
  background:
    radial-gradient(circle at 78% 20%, rgba(255, 255, 255, .23), transparent 28%),
    linear-gradient(145deg, #416cff 0%, #2c50e2 55%, #1c37a8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 0 0 .2mm rgba(255, 255, 255, .12);
}.forma-print-document .pd-company-logo::before {
  content: "";
  position: absolute;
  width: 70%;
  height: 150%;
  left: 42%;
  top: -24%;
  border-left: .26mm solid rgba(255, 255, 255, .28);
  transform: rotate(23deg);
}.forma-print-document .pd-company-logo::after {
  content: "";
  position: absolute;
  width: 32%;
  height: 125%;
  left: 61%;
  top: -12%;
  background: rgba(255, 255, 255, .1);
  transform: rotate(23deg);
}.forma-print-document .pd-company-logo span {
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: 3.4mm;
  font-weight: 760;
  letter-spacing: -.04em;
}/* Live QR code */
.forma-print-document .pd-qr {
  background: #fff;
  border: .2mm solid #e7ebf2;
  border-radius: .5mm;
  padding: .8mm;
}.forma-print-document .pd-qr-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}.forma-print-document .pd-qr-inner canvas,
.forma-print-document .pd-qr-inner img {
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: contain;
}.forma-print-document .pd-qr-fallback {
  width: 100%;
  height: 100%;
  background: repeating-conic-gradient(#111827 0 25%, #fff 0 50%) 0 0 / 2mm 2mm;
  display: grid;
  place-items: center;
  color: #fff;
  font: 700 7pt var(--pd-font-mono);
}/* Live Code128 / SVG barcode */
.forma-print-document .pd-barcode-graphic {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}.forma-print-document .pd-barcode-fallback {
  width: 100%;
  height: 100%;
  border: .2mm solid #dbe2ec;
  background: repeating-linear-gradient(90deg, #111827 0 .32mm, transparent .32mm .55mm, #111827 .55mm .68mm, transparent .68mm 1mm);
  color: transparent;
  font-size: 0;
}.forma-print-document .pd-stamp {
  width: 100%;
  height: 100%;
  border: .45mm solid rgba(201, 59, 52, .68);
  border-radius: 50%;
  color: rgba(193, 53, 47, .82);
  display: grid;
  place-items: center;
  text-align: center;
  transform: rotate(-11deg);
  font-size: 7.5pt;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.35;
  background: rgba(255, 255, 255, .16);
}.forma-print-document .pd-table-head-fill {
  position: absolute;
  z-index: 1;
}.forma-print-document .pd-row-strip {
  position: absolute;
  z-index: 0;
  background: transparent;
  border-bottom: .2mm solid #e8edf4;
}.forma-print-document .pd-row-strip.is-alt { background: #f8fafd; }.forma-print-document .pd-vrule {
  position: absolute;
  width: .2mm;
  background: #e8edf4;
  z-index: 1;
}.forma-print-document .pd-rule {
  position: absolute;
  z-index: 1;
}.forma-print-document .pd-deco-fill {
  position: absolute;
  z-index: 0;
}.forma-print-document .pd-continuation {
  position: absolute;
  left: 18mm;
  right: 18mm;
  top: 265mm;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3mm;
  color: #98a3b3;
  font-size: 6pt;
  letter-spacing: .08em;
}.forma-print-document .pd-continuation span {
  height: .2mm;
  flex: 1;
  background: linear-gradient(to right, transparent, #dfe6ef);
}.forma-print-document .pd-continuation span:last-child {
  background: linear-gradient(to left, transparent, #dfe6ef);
}.forma-print-document .pd-table-widget {
  width: 100%;
  height: 100%;
  border: .2mm solid #dfe6ef;
  border-radius: .8mm;
  overflow: hidden;
  background: #fff;
  font-size: 6.3pt;
}.forma-print-document .pd-table-row {
  display: grid;
  grid-template-columns: 1fr 13mm 22mm;
  border-bottom: .2mm solid #e9eef5;
}.forma-print-document .pd-table-row:last-child { border-bottom: 0; }.forma-print-document .pd-table-row span {
  padding: 1.3mm 1.5mm;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}.forma-print-document .pd-table-row span:nth-child(2),
.forma-print-document .pd-table-row span:nth-child(3) {
  text-align: right;
  font-family: var(--pd-font-mono);
}.forma-print-document .pd-table-row.is-head {
  background: #172033;
  color: #fff;
  font-weight: 600;
}/* Preview mounting */
.forma-print-document .preview-page-scale .pd-page {
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: top left;
  box-shadow: none;
}


@media print {
  .forma-print-document .pd-page {
    break-after: page;
    page-break-after: always;
    margin: 0 !important;
    box-shadow: none !important;
  }
  .forma-print-document .pd-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }
  .forma-print-document canvas { image-rendering: auto; }
}

/* Detail table component output */
.forma-print-document .pd-detail-table-wrap {
  position: absolute;
  z-index: 6;
  overflow: hidden;
  border: .2mm solid var(--pd-table-border, #e8edf4);
  border-radius: 1mm;
  background: var(--pd-table-row-bg, #fff);
}.forma-print-document .pd-detail-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-variant-numeric: tabular-nums;
}.forma-print-document .pd-detail-table th,
.forma-print-document .pd-detail-table td {
  box-sizing: border-box;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}.forma-print-document .pd-detail-table th {
  background: var(--pd-table-head-bg, #172033);
  color: var(--pd-table-head-color, #fff);
  font-weight: 590;
  text-align: left;
  border-bottom: .2mm solid rgba(255, 255, 255, .08);
}.forma-print-document .pd-detail-table th:not(:last-child) { border-right: .2mm solid rgba(255, 255, 255, .13); }.forma-print-document .pd-detail-table td {
  background: var(--pd-table-row-bg, #fff);
  border-bottom: .2mm solid var(--pd-table-border, #e8edf4);
}.forma-print-document .pd-detail-table td:not(:last-child) { border-right: .2mm solid var(--pd-table-border, #e8edf4); }.forma-print-document .pd-detail-table tbody tr:nth-child(even) td { background: var(--pd-table-stripe, #f8fafd); }.forma-print-document .pd-detail-table tbody tr:last-child td { border-bottom: 0; }
.forma-print-document .pd-detail-table tbody tr.is-continuation td { background: #f7f9ff; }
.forma-print-document .pd-detail-table tbody tr.is-capped td { border-bottom-style: dashed; }
.forma-print-document .pd-cell-content { display: block; min-width: 0; overflow: hidden; }
.forma-print-document .pd-continue-mark {
  display: inline-flex;
  align-items: center;
  height: 3.2mm;
  margin-right: 1mm;
  padding: 0 1mm;
  border-radius: .8mm;
  background: #e7eeff;
  color: #3155c8;
  font-family: var(--font-sans);
  font-size: 5.8pt;
  font-weight: 650;
  vertical-align: middle;
}/* Per-page electronic riding seal */
.forma-print-document .pd-ridge-seal {
  position: absolute;
  z-index: 20;
  overflow: hidden;
  pointer-events: none;
}.forma-print-document .pd-ridge-seal img { display: block; max-width: none; }.forma-print-document .pd-ridge-seal-empty {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  border: .25mm dashed #d98f8f;
  color: #c15b5b;
  font-size: 5.5pt;
  background: #fffafa;
}
