/* SNOVA print layouts. All measurements below are independent of the application tables. */
.pr-open {
  overflow: hidden;
}
.print-preview {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: #e9edf3;
  color: #1d2940;
  font-family: "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
}
.pr-toolbar {
  min-height: 78px;
  padding: 16px 28px;
  background: #fff;
  border-bottom: 1px solid #dbe1ea;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.pr-toolbar strong {
  display: block;
  font-size: 18px;
}
.pr-toolbar span {
  display: block;
  color: #67718a;
  font-size: 12px;
  margin-top: 3px;
}
.pr-tools {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.pr-tools label {
  font-size: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.pr-tools select {
  padding: 10px;
  background: #fff;
  border: 1px solid #d3d9e4;
  border-radius: 6px;
}
.pr-tools button {
  padding: 11px 16px;
  background: #fff;
  border: 1px solid #cfd6e0;
  border-radius: 6px;
  color: #25304a;
  font-weight: 600;
}
.pr-tools .primary {
  background: #352061;
  color: #fff;
  border-color: #352061;
}
.pr-preview-note {
  padding: 10px 28px;
  color: #53617a;
  font-size: 12px;
  background: #f5f7fb;
}
.pr-preview-scroll {
  height: calc(100dvh - 126px);
  overflow: auto;
  padding: 28px;
}
.print-preview .print-area {
  display: block;
  margin: 0 auto;
  padding: 0;
  color: #1d2940;
  background: transparent;
  font-size: 11px;
  line-height: 1.6;
}
.pr-documents {
  width: 210mm;
}
.pr-sheet {
  background: #fff;
  padding: 12mm;
  margin: 0 0 24px;
  min-height: 297mm;
  box-shadow: 0 6px 30px #25375914;
}
.print-area .pr-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 4mm;
  border-bottom: 0.6mm solid #352061;
}
.print-area .pr-logo {
  width: 57mm;
  height: auto;
  display: block;
  margin-left: -7mm;
}
.pr-doc-id {
  text-align: right;
  font-size: 9px;
  color: #66728b;
  display: flex;
  flex-direction: column;
  gap: 1mm;
  overflow-wrap: anywhere;
  max-width: 90mm;
}
.pr-doc-id b {
  color: #312254;
  font-size: 10px;
  letter-spacing: 1.2px;
}
.pr-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10mm;
  padding: 5mm 0 4mm;
}
.print-area .pr-kicker {
  font-size: 8px;
  letter-spacing: 1.5px;
  font-weight: 700;
  color: #526885;
  margin: 0 0 2mm;
}
.print-area h1 {
  color: #24193f;
  font-size: 25px;
  line-height: 1.3;
  letter-spacing: -0.8px;
  margin: 0;
}
.pr-rule {
  display: block;
  height: 2px;
  flex: 1;
  background: #dde6f3;
  margin-bottom: 3mm;
}
.print-area h2 {
  color: #2b2340;
  font-size: 13px;
  margin: 0;
  font-weight: 700;
  line-height: 1.5;
}
.pr-subject {
  background: #f4f2fa;
  border-left: 3px solid #6b45bf;
  padding: 3mm 4mm;
  display: flex;
  gap: 3mm;
  align-items: center;
}
.pr-subject > span {
  color: #735da0;
  font-size: 8px;
  letter-spacing: 1px;
}
.pr-subject h2 {
  flex: 1;
  overflow-wrap: anywhere;
}
.pr-status {
  font-size: 10px;
  color: #452677;
  border: 1px solid #d9ceef;
  padding: 1mm 3mm;
  border-radius: 20px;
  white-space: nowrap;
}
.pr-correspondence {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6mm;
  padding: 3mm 0;
  border-bottom: 1px solid #e1e7ef;
}
.pr-correspondence > div {
  display: flex;
  flex-wrap: wrap;
  gap: 1mm 3mm;
  align-items: baseline;
}
.pr-correspondence small {
  color: #68748e;
  letter-spacing: 1px;
  font-size: 8px;
}
.pr-correspondence span {
  font-size: 10px;
  overflow-wrap: anywhere;
}
.pr-section {
  margin-top: 4mm;
}
.pr-section > h2 {
  display: flex;
  align-items: center;
  gap: 2mm;
  margin: 0 0 2mm;
  break-after: avoid;
}
.pr-section > h2 > span {
  color: #47649c;
  font-size: 9px;
  letter-spacing: 1px;
}
.print-area table {
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed;
  font-size: 10px;
  margin: 0;
}
.print-area th,
.print-area td {
  padding: 2mm 2.4mm;
  color: #29344a;
  border-bottom: 1px solid #dde3ed;
  background: #fff;
  font-size: 10px;
  font-weight: 400;
  text-align: left;
  white-space: pre-wrap;
  overflow: visible;
  text-overflow: clip;
  max-width: none;
  overflow-wrap: anywhere;
  line-height: 1.65;
  vertical-align: top;
}
.print-area th {
  background: #f3f6fa;
  color: #586781;
  font-weight: 600;
}
.print-area tr:last-child td {
  border-bottom: 1px solid #dde3ed;
}
.print-area .pr-empty {
  background: #fff;
}
.pr-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  padding: 3mm 3.5mm;
  margin: 2mm 0;
  background: #fafbfe;
  border-left: 2px solid #dae1ee;
  font-size: 11px;
  line-height: 1.8;
  orphans: 3;
  widows: 3;
}
.pr-text-label {
  display: block;
  font-size: 9px;
  color: #68748e;
  margin-bottom: 1mm;
}
.pr-text.pr-result {
  background: #f7f5fc;
  border-color: #a998d0;
}
.pr-files {
  break-after: avoid;
  font-size: 9px;
  padding: 3mm 0;
  margin-top: 3mm;
  border-top: 1px solid #dfe5ef;
}
.pr-files b {
  color: #4b5a76;
}
.pr-files b span {
  color: #7a8296;
  margin-left: 2mm;
}
.pr-files p {
  margin: 1mm 0 0;
  color: #758099;
}
.pr-files ol {
  margin: 1mm 0 0;
  padding-left: 4mm;
}
.pr-files li {
  overflow-wrap: anywhere;
}
.pr-files small {
  color: #7d879a;
  margin-left: 3mm;
}
.pr-footer {
  break-before: avoid;
  display: flex;
  gap: 4mm;
  justify-content: space-between;
  color: #7d879a;
  font-size: 8px;
  border-top: 1px solid #dfe5ef;
  padding-top: 3mm;
  margin-top: 5mm;
  break-inside: avoid;
}
.pr-footer b {
  letter-spacing: 1.5px;
  color: #51456f;
}
.pr-hardware + .pr-hardware {
  margin-top: 6mm;
}
.print-area .pr-detail-table th {
  width: 38%;
}
.print-area .pr-detail-table small,
.print-area .pr-items small {
  display: block;
  color: #748097;
  font-size: 8px;
  margin-top: 1mm;
}
.pr-detail-table thead th,
.pr-items thead th {
  background: #eef1f8;
  color: #3c3558;
}
.pr-no-data {
  border: 1px dashed #d2d9e7;
  padding: 10mm;
  text-align: center;
  color: #6e7990;
}
.pr-delivery-top {
  display: grid;
  grid-template-columns: 1fr 38mm;
  gap: 8mm;
  padding: 3mm 0 5mm;
}
.pr-delivery-top h2 {
  font-size: 18px;
}
.pr-delivery-top p {
  margin: 2mm 0 0;
  overflow-wrap: anywhere;
}
.pr-signature {
  border: 1px solid #b9bfd1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 27mm;
}
.pr-signature b {
  text-align: center;
  background: #f4f2f8;
  border-bottom: 1px solid #d7d9e3;
  padding: 1.5mm;
  font-size: 10px;
}
.pr-signature span {
  color: #8b91a1;
  font-size: 8px;
  padding: 2mm;
}
.pr-delivery-worker {
  font-size: 10px;
  display: flex;
  align-items: center;
  gap: 3mm;
  padding: 3mm 2mm;
  color: #56637b;
}
.pr-delivery-worker span {
  display: inline-block;
  width: 25mm;
  border-bottom: 1px solid #cbd1dc;
  height: 4mm;
}
.pr-item-summary {
  display: flex;
  justify-content: space-between;
  margin-bottom: 2mm;
  font-size: 10px;
  color: #63718b;
}
.pr-item-summary b {
  color: #473363;
}
.print-area .pr-items td,
.print-area .pr-items th {
  font-size: 9px;
  padding: 2.4mm 1.5mm;
}
.print-area .pr-number {
  text-align: right;
  font-weight: 700;
}
.print-area .pr-items thead {
  display: table-header-group;
}
.print-area tr {
  break-inside: avoid;
}
.pr-labels {
  width: fit-content;
}
.pr-label {
  background: #fff;
  color: #171322;
  margin: 0 auto 18px;
  padding: 3mm;
  width: 93.5mm;
  min-height: 68.5mm;
  border: 0.3mm solid #342453;
  box-shadow: 0 6px 24px #25375912;
  break-inside: avoid;
}
.pr-label-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 0.3mm solid #9f8dc3;
  margin-bottom: 1.5mm;
}
.pr-product-label {
  padding: 2.5mm;
}
.pr-label-header .pr-logo {
  width: 35mm;
  margin: -1mm 0 -0.5mm -4mm;
}
.pr-label-header > span {
  font-size: 7px;
  letter-spacing: 1px;
  color: #605075;
}
.pr-label-title {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.pr-barcode {
  margin: 1.5mm 0;
  text-align: center;
}
.pr-barcode > span {
  display: block;
  text-align: left;
  font-size: 8px;
  color: #4e485c;
  margin-bottom: 0.5mm;
}
.pr-barcode svg {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  margin: 0 auto;
}
.pr-barcode b {
  display: block;
  font:
    600 10px/1.2 Consolas,
    monospace;
  letter-spacing: 0.5px;
  overflow-wrap: anywhere;
}
.pr-label-data {
  display: grid;
  grid-template-columns: 24mm 1fr;
  font-size: 10px;
  line-height: 1.5;
  margin: 1mm 0;
}
.pr-label-data dt {
  color: #615570;
  padding: 0.5mm 0;
}
.pr-label-data dd {
  margin: 0;
  font-weight: 600;
  overflow-wrap: anywhere;
  padding: 0.5mm 0;
}
.pr-label-reference {
  font-size: 10px;
  margin: 3mm 0;
  overflow-wrap: anywhere;
}
.pr-out-label {
  min-height: 143.5mm;
}
.pr-out-label .pr-barcode {
  margin: 7mm 0;
}
.pr-out-label .pr-barcode b {
  font-size: 13px;
}
.pr-out-label .pr-label-title {
  margin-top: 7mm;
  font-size: 18px;
}
.pr-label-model {
  font-size: 12px;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.pr-out-label .pr-label-data {
  margin-top: 7mm;
  font-size: 12px;
  grid-template-columns: 30mm 1fr;
}
.pr-fw-label {
  width: 68.5mm;
  min-height: 53.5mm;
}
.pr-fw-label .pr-barcode {
  margin: 4mm 0 3mm;
}
.pr-fw-version {
  display: flex;
  gap: 4mm;
  justify-content: center;
  align-items: center;
  font-size: 11px;
}
.pr-fw-version b {
  font-size: 17px;
  overflow-wrap: anywhere;
}
.pr-unregistered {
  padding: 5mm;
  border: 1px dashed #cbc4d5;
  color: #6f657b;
}
@media (max-width: 700px) {
  .pr-toolbar {
    padding: 12px;
    flex-wrap: wrap;
  }
  .pr-tools {
    width: 100%;
  }
  .pr-toolbar strong {
    font-size: 16px;
  }
  .pr-preview-note {
    padding: 8px 12px;
  }
  .pr-preview-scroll {
    padding: 12px;
    height: calc(100dvh - 190px);
  }
}
@media print {
  html,
  body {
    background: #fff !important;
    color: #1d2940;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }
  body > :not(.print-preview) {
    display: none !important;
  }
  .print-preview {
    position: static;
    background: #fff;
    width: auto;
    height: auto;
    overflow: visible;
  }
  .pr-toolbar,
  .pr-preview-note {
    display: none !important;
  }
  .pr-preview-scroll {
    height: auto;
    overflow: visible;
    padding: 0;
  }
  .print-preview .print-area {
    width: auto;
    margin: 0;
    padding: 0;
    display: block;
  }
  .print-area {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .pr-sheet {
    padding: 0;
    margin: 0;
    min-height: 0;
    width: auto;
    box-shadow: none;
  }
  .pr-new-page {
    break-before: page;
  }
  .pr-header,
  .pr-heading,
  .pr-subject,
  .pr-correspondence,
  .pr-delivery-top {
    break-inside: avoid;
  }
  .pr-heading {
    break-after: avoid;
  }
  .pr-section h2 {
    break-after: avoid;
  }
  .pr-label {
    box-shadow: none;
    margin: 0 auto;
  }
  .pr-label + .pr-label {
    break-before: page;
  }
  .print-preview[data-paper="label"] .pr-label {
    margin: 0;
  }
}
