/* Source worksheet geometry; the exported printer plugin has no recoverable
   settings. The 10mm A4/900px fit is a local adaptation measured against the
   user's reference PDF, not a claim about that plugin's implementation. */
.work-sheet {
  width: 1080px;
  font:
    16px/1.4 Inter,
    Arial,
    sans-serif;
}
.work-sheet > h1 {
  width: 346px;
  height: 60px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  font:
    700 36px/1.4 Inter,
    Arial,
    sans-serif;
}
.work-sheet .source-sheet-group {
  display: block;
  position: relative;
  width: 900px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  overflow: visible;
  break-inside: avoid;
  page-break-inside: avoid;
}
.work-sheet .sheet-head {
  height: 265px;
  min-height: 265px;
}
.work-sheet .sheet-operation {
  height: 325px;
  min-height: 325px;
}
/* Only measured one-line code overflow may use 17px of the empty QR gutter.
   Unchanged content retains its exact source width; expanded flow is excluded. */
.work-sheet .sheet-operation:not(.sheet-expanded) [data-source-id="bTHxW"] {
  width: var(--sheet-code-width, var(--w));
}
.work-sheet .sheet-divider {
  width: 1080px;
  height: 4px;
  background: #525252;
}
.work-sheet .sheet-operations {
  width: 1040px;
  margin: 0 auto;
}
.work-sheet .sheet-operation + .sheet-operation {
  margin-top: 2px;
}
.work-sheet .sheet-operation + .sheet-operation::before {
  content: "";
  position: absolute;
  left: -70px;
  top: -2px;
  width: 1040px;
  border-top: 2px solid #1a1a1a;
}
.work-sheet .sheet-cell,
.work-sheet .sheet-shape {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--w);
  min-height: var(--h);
  margin: 0;
  padding: 0;
  display: block;
  overflow: visible;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.work-sheet .sheet-cell {
  line-height: 1.4;
}
.work-sheet .sheet-text,
.work-sheet .sheet-field {
  padding-top: 4.8px;
}
.work-sheet .sheet-vendor {
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  color: #a6a6a6;
}
.work-sheet .sheet-shape {
  height: var(--h);
  border: 1px solid #6b6b6b;
}
.work-sheet .sheet-shape.dashed {
  border-width: 2px;
  border-style: dashed;
}
.work-sheet .sheet-field .write-box {
  position: absolute;
  left: var(--box-left);
  top: 0;
  width: var(--box-width);
  min-width: 0;
  min-height: 32px;
  border: 2px solid #c7c7c7;
  border-radius: 4px;
  padding: 3px 5px;
  font:
    16px/22px "Roboto Condensed",
    sans-serif;
  text-align: right;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.work-sheet .sheet-field {
  text-align: left;
  padding-right: 0;
}
.work-sheet .sheet-label {
  display: inline-block;
  width: var(--label-width);
  text-align: right;
  white-space: nowrap;
}
.work-sheet [data-source-id="bTHkC"] .sheet-label {
  text-align: left;
}
.work-sheet [data-source-id="bTHxo"] .write-box,
.work-sheet [data-source-id="bTITB"] .write-box {
  text-align: center;
}
.work-sheet [data-source-id="bTHxc"] .write-box,
.work-sheet [data-source-id="bTHjq"] .write-box,
.work-sheet [data-source-id="bTHkC"] .write-box {
  text-align: left;
}
.work-sheet [data-source-id="bTKAx"] {
  font-size: 14px;
  text-align: right;
}
.work-sheet [data-source-id="bTIAi"] {
  text-align: right;
}
.work-sheet .sheet-docs {
  line-height: 1;
}
.work-sheet .sheet-logo img {
  display: block;
  width: 120px;
  height: 120px;
  object-fit: contain;
  border-radius: 4px;
}
.work-sheet .local-qr {
  width: 120px;
  max-width: 120px;
  margin: 0;
  font:
    16px/28px Inter,
    Arial,
    sans-serif;
}
.work-sheet .local-qr img {
  width: 120px;
  height: 120px;
  border-radius: 4px;
}
.work-sheet .local-qr figcaption {
  margin: 0;
  height: 28px;
  line-height: 28px;
}
.work-sheet .sheet-operation-qr .local-qr figcaption {
  display: none;
}
.work-sheet .sheet-trace a {
  color: inherit;
  text-decoration: none;
}
/* Only exceptional content leaves the fixed layout. No value is truncated or
   hidden. This block flow can fragment even when one field exceeds a page. */
.work-sheet .source-sheet-group.sheet-expanded {
  height: auto;
  min-height: 0;
  padding: 12px 0;
}
.work-sheet .sheet-expanded .sheet-cell {
  position: static;
  width: auto;
  min-height: var(--h);
  margin: 0 0 8px;
  padding: 0;
}
.work-sheet .sheet-expanded .sheet-field {
  padding-right: 0;
  text-align: left;
}
.work-sheet .sheet-expanded .sheet-label {
  display: block;
  width: 100%;
  text-align: left;
  white-space: normal;
}
.work-sheet .sheet-expanded .sheet-field .write-box {
  position: static;
  display: block;
  width: auto;
  min-width: var(--box-width);
  max-width: 100%;
  vertical-align: top;
}
.work-sheet .sheet-expanded .sheet-shape {
  position: static;
  display: inline-block;
  vertical-align: top;
  margin: 4px;
}
.work-sheet .sheet-expanded .sheet-logo,
.work-sheet .sheet-expanded .sheet-operation-qr,
.work-sheet .sheet-expanded .sheet-trace {
  width: 120px;
  break-inside: avoid;
  page-break-inside: avoid;
}
.work-sheet .sheet-oversized {
  break-inside: auto;
  page-break-inside: auto;
}
@media print {
  @page {
    size: A4 portrait;
    margin: 10mm;
  }
  html,
  body,
  #app {
    margin: 0;
    padding: 0;
    min-width: 0;
    background: #fff;
  }
  .print-controls,
  .print-warning,
  .footer,
  .float-chat,
  .notices,
  #modal-root,
  #account-root,
  #chat-root,
  #notification-root,
  #toast-root {
    display: none !important;
  }
  .print-page,
  .work-sheet {
    width: 900px;
    max-width: none;
    margin: 0;
    zoom: 0.7979002624671916;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .work-sheet .sheet-operations,
  .work-sheet .sheet-divider {
    width: 900px;
  }
  .work-sheet .sheet-operation + .sheet-operation::before {
    left: 0;
    /* Keep the rule inside the following intact operation at a page break.
       Its 2px gap and all 325px operation/field coordinates stay unchanged. */
    top: 0;
    width: 900px;
  }
  .work-sheet > h1 {
    break-after: avoid;
    page-break-after: avoid;
  }
  .work-sheet .sheet-head {
    break-after: avoid;
    page-break-after: avoid;
  }
  .work-sheet .sheet-divider {
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-page {
    display: block;
    box-sizing: border-box;
    min-height: 0;
    border: 2px solid #777;
  }
  .print-page .print-header {
    height: auto;
    min-height: 280px;
    padding: 20px 58px;
    break-inside: avoid;
    page-break-inside: avoid;
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-page .print-header.quotation {
    height: auto;
    min-height: 370px;
  }
  .print-page .print-header.shipping {
    height: auto;
    min-height: 250px;
  }
  .print-page .print-header.bom-header {
    height: auto;
    min-height: var(--print-header-min-height, 149px);
  }
  .print-page .print-addresses {
    overflow-wrap: anywhere;
  }
  .print-page .print-doc-title {
    overflow-wrap: anywhere;
  }
  .print-page .print-table {
    width: 100%;
    table-layout: fixed;
    break-inside: auto;
  }
  .print-page .print-table th,
  .print-page .print-table td {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .print-page .print-table thead {
    display: table-header-group;
  }
  .print-page .print-table tbody {
    break-inside: auto;
  }
  .print-page .print-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-page .print-blank {
    min-height: 0;
    height: 20px;
  }
  .print-page .print-end {
    break-inside: avoid;
    page-break-inside: avoid;
    break-after: avoid;
    page-break-after: avoid;
  }
  .print-page .signatures,
  .print-page .conformance,
  .print-page .print-thanks {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-page .print-end > * {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}
@media print {
  .print-page {
    font:
      14px/1.4 Inter,
      Arial,
      sans-serif;
  }
  .print-page .print-addresses {
    margin-top: var(--print-address-margin, 64px);
  }
  .print-page .print-header.quotation .print-addresses {
    margin-top: var(--print-address-margin, 68px);
  }
  .print-page .print-oversized {
    break-inside: auto;
    page-break-inside: auto;
  }
  .print-page .print-header.print-oversized .print-addresses {
    display: block;
  }
  .print-page .print-header.print-oversized .print-addresses > div {
    margin-bottom: 20px;
  }
}
@media print {
  .print-page .print-vendor {
    max-width: 325px;
    overflow-wrap: anywhere;
  }
  .print-page .print-doc-title span {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media print {
  /* A table cell taller than a page cannot rely on table-row fragmentation in
     every print engine. Only such tables use labeled, fully splittable fields. */
  .print-page .print-flow-table,
  .print-page .print-flow-table tbody,
  .print-page .print-flow-table tr,
  .print-page .print-flow-table td {
    display: block;
    width: auto;
  }
  .print-page .print-flow-table colgroup,
  .print-page .print-flow-table thead {
    display: none;
  }
  .print-page .print-flow-table td {
    text-align: left;
    break-inside: auto;
    page-break-inside: auto;
  }
  .print-page .print-flow-table td::before {
    content: attr(data-print-column);
    display: block;
    font-weight: 700;
  }
  .print-page .print-flow-table tr {
    margin: 0 0 20px;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .print-page .print-flow-table tr.print-oversized {
    break-inside: auto;
    page-break-inside: auto;
  }
}
@media print {
  .print-page .print-header.print-oversized {
    min-height: 0;
  }
  .print-page .print-header.print-oversized .print-vendor {
    max-width: none;
    margin-left: 0;
  }
  .print-page .print-header.print-oversized .print-doc-title {
    position: static;
    width: auto;
    margin: 20px 0;
  }
  .print-page .print-header.print-oversized .print-doc-title div,
  .print-page .print-header.print-oversized .print-doc-title span {
    display: block;
  }
  .print-page .print-header.print-oversized .print-addresses {
    margin-top: 0;
  }
  .print-page .print-end.print-oversized {
    display: block;
  }
  .print-page .print-end.print-oversized .conformance {
    break-inside: auto;
    page-break-inside: auto;
  }
}

@media print {
  .print-page .print-table th:first-child {
    padding-left: 1px;
    padding-right: 1px;
    white-space: nowrap;
  }
}

/* The ordinary BOM coordinates remain unchanged. These variables only grow
   after measured title/subtitle overflow, including the screen preview. */
.print-page .bom-header {
  min-height: var(--print-header-min-height, 149px);
}
.bom-header .print-doc-title h2 {
  top: var(--print-subtitle-top, 69px);
}
@media print {
  .print-page .print-header.print-oversized .print-doc-title h2 {
    position: static;
    width: auto;
    white-space: normal;
  }
}
@media print {
  .print-page .print-table th {
    height: 32px;
    padding: 4px 1px;
    white-space: nowrap;
  }
}

/* Commercial source Images bTPlV/bTQCG/bTQHV: x9 y7 w180 h120.
   Absolute placement uses the existing empty header slot, so line/table/footer
   pagination and the existing A4 scale are unchanged. */
.commercial-print-page .commercial-vendor-logo {
  position: absolute;
  left: 9px;
  top: 7px;
  width: 180px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.commercial-print-page .commercial-vendor-logo img {
  width: 180px;
  height: 120px;
  object-fit: contain;
  display: block;
}
.commercial-print-page .commercial-vendor-logo [hidden] {
  display: none;
}
.commercial-print-page .commercial-logo-fallback {
  padding: 8px;
  color: #555;
  font: 12px/1.4 Arial, sans-serif;
  text-align: center;
  overflow-wrap: anywhere;
}
@media print {
  /* Exceptional oversized headers already switch to splittable block flow. */
  .commercial-print-page .print-header.print-oversized .commercial-vendor-logo {
    position: static;
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* Commercial numeric readability is measured at the unchanged font and A4
   scale. The source colgroup is the baseline; only necessary widths grow. */
.commercial-print-page .print-table {
  table-layout: fixed;
}
.commercial-print-page .commercial-print-number {
  display: inline-block;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
.commercial-print-page .print-measuring-numbers .commercial-print-number {
  max-width: none;
  white-space: nowrap;
}
.commercial-print-page .print-end strong {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}
/* Exceptionally wide numbers share the existing over-page row fallback, also
   visible in preview. Every field keeps its heading and complete source text. */
.commercial-print-page .print-table.print-flow-table,
.commercial-print-page .print-flow-table tbody,
.commercial-print-page .print-flow-table tr,
.commercial-print-page .print-table.print-flow-table td {
  display: block;
  width: auto;
}
.commercial-print-page .print-flow-table colgroup,
.commercial-print-page .print-flow-table thead {
  display: none;
}
.commercial-print-page .print-table.print-flow-table td {
  text-align: left;
  break-inside: auto;
  page-break-inside: auto;
}
.commercial-print-page .print-flow-table td::before {
  content: attr(data-print-column);
  display: block;
  font-weight: 700;
}
.commercial-print-page .print-flow-table tr {
  margin: 0 0 20px;
}

.commercial-print-page .print-flow-table .commercial-print-number {
  display: inline;
}
