.print-document {
  --print-ink: #111;
  color: var(--print-ink);
  background: #e7ebed;
  font-family: "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-size: 10pt;
  line-height: 1.45;
}

.print-prescription-document { line-height: 1.35; }
.print-prescription-document .print-page { position: relative; }
.print-prescription-document .print-block { margin-bottom: 1.8mm; }
.print-prescription-document .print-page-content > .print-block:last-child { margin-bottom: 0; }
.print-block-prescriptionHeader { position: relative; text-align: center; }
.print-block-prescriptionHeader > .print-clinic-name { margin-bottom: .8mm; }
.print-block-prescriptionHeader > .print-block-title { margin-top: 0; font-size: 16pt; }
.print-prescription-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1mm 3mm; text-align: left; border-bottom: .3mm solid #111; padding: 2mm 0; }
.print-prescription-facts > div { min-width: 0; overflow-wrap: anywhere; }
.print-processing-badge { position: absolute; left: 0; top: 0; border: .3mm solid #111; padding: 1mm 2mm; font-weight: bold; }
.print-block-blankBoundary { text-align: center; margin-top: 0; }
.print-block-processing { margin-bottom: 1mm; }
.print-prescription-page-number { position: absolute; bottom: 4mm; left: 10mm; right: 10mm; text-align: right; font-size: 8pt; }
.print-prescription-document .print-page-content { display: flow-root; }
.print-prescription-document .print-prescription-tail { display: flow-root; }
.print-prescription-document .print-prescription-signature { white-space: normal; flex-wrap: wrap; }
.print-external-item { padding: 2mm 0; border-bottom: .2mm solid #777; break-inside: avoid; }

.print-page,
.print-receipt {
  box-sizing: border-box;
  margin: 8mm auto;
  color: var(--print-ink);
  background: #fff;
  box-shadow: 0 2mm 8mm rgba(0, 0, 0, .13);
}

.print-page-content,
.print-receipt-content {
  box-sizing: border-box;
}

.print-block {
  box-sizing: border-box;
  margin: 0 0 3.2mm;
  break-inside: avoid;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.print-block-header {
  margin-bottom: 5mm;
  text-align: center;
}

.print-clinic-name {
  font-size: 13pt;
  font-weight: 700;
  letter-spacing: .08em;
}

.print-block-title {
  margin: 1.2mm 0 1.4mm;
  font-size: 10.5pt;
  line-height: 1.35;
}

.print-block-header .print-block-title {
  margin-top: 1.8mm;
  font-size: 16pt;
  letter-spacing: .12em;
}

.print-block-notice {
  padding: 1.5mm 2mm;
  border: .35mm solid #111;
  text-align: center;
  font-weight: 700;
}

.print-block-notice .print-block-title {
  display: inline;
  margin-right: 2mm;
}

.print-notice-text {
  display: inline;
}

.print-block-facts {
  display: grid;
  gap: 1mm;
  padding: 2mm 0;
  border-top: .25mm solid #333;
  border-bottom: .25mm solid #333;
}

.print-prescription-clinical {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1mm 2mm;
  margin: 0;
  padding: 2mm 0;
  border-bottom: .2mm dashed #777;
}

.print-prescription-clinical dt,
.print-prescription-clinical dd {
  margin: 0;
}

.print-prescription-clinical dt {
  font-weight: 700;
}

.print-block-infusionGroup {
  padding: 2mm 0 2mm 2.5mm;
  border-left: .8mm solid #2459c4;
  background: #f8fbff;
}

.print-block-infusionGroup > .print-block-title {
  color: #164ba7;
}

.print-infusion-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30mm;
  gap: 2.5mm;
}

.print-infusion-item,
.print-western-item {
  padding: 1.2mm 0;
  border-bottom: .18mm dotted #aaa;
  break-inside: avoid;
}

.print-infusion-item:last-child,
.print-western-item:last-child {
  border-bottom: 0;
}

.print-infusion-prescription-document .print-block {
  margin-bottom: 1mm;
}

.print-infusion-prescription-document .print-block-infusionGroup {
  padding: 1mm 0 1mm 2.5mm;
}

.print-infusion-prescription-document .print-prescription-facts {
  gap: .4mm 3mm;
  padding: .8mm 0;
}

.print-infusion-prescription-document .print-prescription-clinical {
  gap: .4mm 2mm;
  padding: .8mm 0;
}

.print-infusion-prescription-document .print-infusion-item {
  padding: .6mm 0;
}

.print-infusion-prescription-document .print-block-prescriptionFooter {
  margin-top: 1.5mm;
  padding-top: 1mm;
}

.print-infusion-main,
.print-western-main,
.print-herbal-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2mm;
  align-items: start;
}

.print-western-main {
  grid-template-columns: minmax(0, 1fr) minmax(24mm, auto) auto;
}

.print-medicine-name,
.print-medicine-specification,
.print-medicine-detail,
.print-medicine-usage {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.print-medicine-detail,
.print-medicine-usage {
  margin-top: .5mm;
  color: #444;
  font-size: 8.5pt;
  white-space: pre-wrap;
}

.print-infusion-shared {
  display: flex;
  align-items: center;
  padding-left: 2mm;
  border-left: .25mm solid #555;
  white-space: pre-wrap;
}

.print-western-list {
  border-top: .25mm solid #555;
}

.print-herbal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.8mm 4mm;
}

.print-herbal-item {
  min-width: 0;
  break-inside: avoid;
}

.print-herbal-instruction {
  display: inline-block;
  margin-top: .7mm;
  padding: .2mm 1mm;
  border: .2mm solid #777;
  border-radius: .8mm;
  color: #444;
  font-size: 8pt;
}

.print-herbal-summary {
  margin-top: 3mm;
  padding: 2mm 0;
  border-top: .2mm dashed #777;
  border-bottom: .2mm dashed #777;
  white-space: pre-wrap;
}

.print-block-prescriptionFooter {
  margin-top: 4mm;
  padding-top: 2mm;
  border-top: .3mm solid #333;
  font-size: 8.5pt;
}

.print-prescription-signatures {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3mm;
}

.print-prescription-signature {
  display: flex;
  align-items: end;
  min-width: 0;
  white-space: nowrap;
}

.print-signature-line {
  flex: 1;
  min-width: 10mm;
  height: 4.5mm;
  border-bottom: .2mm solid #555;
}

.print-prescription-amount {
  margin-top: 1.5mm;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.print-prescription-notice {
  margin-top: 1.5mm;
  padding-top: 1.2mm;
  border-top: .2mm dashed #999;
  white-space: pre-wrap;
}

.print-prescription-meta {
  margin-top: 1mm;
  color: #555;
  font-size: 7.5pt;
}

.print-section-text,
.print-footer-text {
  white-space: pre-wrap;
}

.print-table {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.print-table thead {
  display: table-header-group;
}

.print-table th,
.print-table td {
  padding: 1.2mm 1mm;
  border: .2mm solid #666;
  vertical-align: top;
  overflow-wrap: anywhere;
  word-break: break-word;
  white-space: pre-wrap;
}

.print-table th {
  background: #f2f2f2;
  font-weight: 700;
}

.print-table th:first-child,
.print-table td:first-child {
  width: 34%;
}

.print-key-values {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1mm 4mm;
  margin: 0;
}

.print-key-values dt,
.print-key-values dd {
  margin: 0;
}

.print-key-values dd {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.print-key-values-emphasized {
  padding-top: 2mm;
  border-top: .35mm double #111;
  font-weight: 700;
}

.print-block-footer {
  margin-top: 5mm;
  padding-top: 2mm;
  border-top: .2mm solid #777;
  font-size: 8.5pt;
}

.print-copy-separator {
  width: 100%;
  padding: 3mm 0;
  border-top: .3mm dashed #555;
  border-bottom: .3mm dashed #555;
  text-align: center;
}

.print-receipt {
  margin-block: 5mm;
  font-size: 8.5pt;
  line-height: 1.35;
}

.print-receipt .print-block {
  margin-bottom: 2.2mm;
}

.print-receipt .print-clinic-name {
  font-size: 11pt;
}

.print-receipt .print-block-header .print-block-title {
  font-size: 13pt;
}

.print-receipt .print-table th,
.print-receipt .print-table td {
  padding: 1mm .6mm;
  border-right: 0;
  border-left: 0;
}

.print-receipt .print-table th,
.print-receipt .print-table td {
  color: #000;
  background: #fff;
  font-size: 11pt;
  font-weight: 700;
  line-height: 1.4;
  border-top-color: #000;
  border-bottom-color: #000;
}

.print-layout-error {
  outline: .4mm solid #c00;
}

.print-execution-document { font-size: 8pt; line-height: 1.25; }
.print-execution-document .print-page { position: relative; }
.print-execution-document .print-block { margin-bottom: 1.5mm; }
.print-execution-header { border-bottom: .3mm solid #111; padding-bottom: 1mm; }
.print-execution-header .print-block-title { font-size: 10pt; margin: 0 0 1mm; }
.print-execution-details { font-size: 7pt; overflow-wrap: anywhere; }
.print-execution-columns { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); border: .2mm solid #111; }
.print-execution-medicines, .print-execution-slots { min-width: 0; }
.print-execution-slots { border-left: .2mm solid #111; }
.print-execution-item, .print-execution-slot { padding: 1mm; break-inside: avoid; overflow-wrap: anywhere; word-break: normal; border-bottom: .2mm solid #777; }
.print-execution-item:last-child, .print-execution-slot:last-child { border-bottom: 0; }
.print-execution-slot { min-height: 18mm; box-sizing: border-box; }
.print-execution-write { min-height: 3mm; border-bottom: .15mm dotted #aaa; }
.print-execution-wide .print-execution-slot { min-height: 24mm; padding: 1.5mm 2mm; }
.print-execution-wide .print-execution-write { min-height: 4mm; }
.print-execution-usage { margin-bottom: 1mm; }
.print-execution-page-number { position: absolute; bottom: 2mm; left: 5mm; right: 5mm; text-align: right; font-size: 7pt; }
.print-calibration-ruler { position: relative; height: 8mm; margin: 4mm 0; border-top: .2mm solid #111; }
.print-calibration-mark { position: absolute; border-left: .2mm solid #111; padding-top: 3mm; font-size: 6pt; }

@page print-a5-portrait { size: 148mm 210mm; margin: 0; }
@page print-a5-landscape { size: 210mm 148mm; margin: 0; }
@page print-a4-portrait { size: 210mm 297mm; margin: 0; }
@page print-a4-landscape { size: 297mm 210mm; margin: 0; }
@page print-58mm { size: 58mm auto; margin: 0; }
@page print-80mm { size: 80mm auto; margin: 0; }

.print-paper-a5.print-portrait { page: print-a5-portrait; }
.print-paper-a5.print-landscape { page: print-a5-landscape; }
.print-paper-a4.print-portrait { page: print-a4-portrait; }
.print-paper-a4.print-landscape { page: print-a4-landscape; }
.print-paper-58mm { page: print-58mm; }
.print-paper-80mm { page: print-80mm; }

@media print {
  html,
  body {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body.printing-active > :not(.print-document-active) {
    display: none !important;
  }

  .print-document,
  .print-page,
  .print-receipt {
    margin: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  .print-page {
    break-after: page;
  }

  .print-page:last-child,
  .print-receipt:last-child {
    break-after: auto;
  }

  .print-copy-separator {
    break-before: page;
  }
}
