@font-face {
  font-family: "Source Han Serif CN";
  src: url("../fonts/source-han-serif-cn-vf.woff2") format("woff2");
  font-style: normal;
  font-weight: 250 900;
  font-display: swap;
}

@page { size: A4 portrait; margin: 0; }
.fs-page, .fs-page *, body.fs-print-root, body.fs-print-root * { box-sizing: border-box; }
body.fs-print-root { margin: 0; padding: 12px 0; background: #eee9e7; color: #171316; font-family: "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.fs-page,
.fs-page *,
body.fs-print-root {
  font-family: "Source Han Serif CN", "Source Han Serif SC", "思源宋体 CN", "思源宋体", SimSun, serif !important;
}
.fs-page { width: 210mm; height: 297mm; margin: 0 auto 12px; padding: 6mm 11.5mm 4.5mm; background: #fff; border-top: 2.2mm solid #992747; display: flex; flex-direction: column; overflow: hidden; break-after: page; page-break-after: always; }
.fs-page.has-watermark { position: relative; }
.fs-page.has-watermark::before { content: "九叶鸟 · AI-BOS"; position: absolute; inset: 49% auto auto 50%; transform: translate(-50%,-50%) rotate(-28deg); color: rgba(153,39,71,.055); font: 700 29pt/1 "Microsoft YaHei",sans-serif; letter-spacing: 3pt; white-space: nowrap; pointer-events: none; }
.fs-page > * { position: relative; z-index: 1; }
.fs-page:last-child { break-after: auto; page-break-after: auto; }
.fs-head { height: 25mm; border-bottom: .28mm solid #c9aab3; display: grid; grid-template-columns: 59mm 1fr 45mm; align-items: center; position: relative; flex: 0 0 auto; }
.fs-head > img { width: 54mm; height: 8.6mm; object-fit: contain; object-position: left center; display: block; }
.fs-title { text-align: center; align-self: center; }
.fs-title h1 { margin: 0; font: 700 24pt/1.05 "Microsoft YaHei", sans-serif; letter-spacing: 2.2pt; color: #111820; }
.fs-title span { display: block; margin-top: 2.2mm; font: 600 6.2pt/1 Arial, sans-serif; letter-spacing: 1.3pt; color: #a05267; }
.fs-code { height: 22mm; padding-top: .3mm; text-align: right; display: grid; grid-template-columns: 1fr; justify-items: end; align-content: start; position: relative; transform: translateY(-1.6mm); }
.fs-code small { font-size: 5.6pt; color: #8e6d77; }
.fs-code svg { width: 38mm; height: 10.2mm; margin-top: .4mm; fill: #151112; display: block; }
.fs-code b { margin-top: 1.2mm; font: 600 6.5pt/1 Arial, sans-serif; color: #9c2949; }
.fs-code em { margin-top: 1.1mm; font: normal 5.4pt/1 Arial, sans-serif; color: #886b73; }
.fs-code.fs-code-disabled { align-content: center; }
.fs-code.fs-code-disabled b { margin-top: 3mm; }
.fs-meta { margin-top: 2.5mm; border: .25mm solid #d8bdc5; display: grid; grid-template-columns: 1.1fr .9fr; flex: 0 0 auto; }
.fs-meta > div { min-height: 8.2mm; padding: 1.25mm 1.8mm; border-right: .2mm solid #e5d5da; border-bottom: .2mm solid #e5d5da; display: flex; align-items: center; gap: 1.5mm; font-size: 7pt; }
.fs-meta > div:nth-child(even) { border-right: 0; }
.fs-meta > div:nth-child(3), .fs-meta > div:nth-child(4) { border-bottom: .2mm solid #e5d5da; }
.fs-meta > div.wide { grid-column: 1 / -1; border: 0; min-height: 7.2mm; }
.fs-meta span { color: #8f6f79; white-space: nowrap; }
.fs-meta strong { font-size: 7.5pt; color: #191317; }
.fs-meta em { margin-left: 4mm; font: normal 6.5pt/1.2 "Microsoft YaHei", sans-serif; color: #8b2744; }
.fs-summary { height: 12.8mm; border: .25mm solid #d8bdc5; border-top: 0; display: grid; grid-template-columns: repeat(4, 1fr); flex: 0 0 auto; }
.fs-summary div { padding: 1.4mm 1.8mm; border-right: .2mm solid #e5d5da; display: flex; flex-direction: column; justify-content: center; }
.fs-summary div:last-child { border-right: 0; background: #fff8f8; }
.fs-summary span { font-size: 6.3pt; color: #987984; }
.fs-summary b { margin-top: 1mm; font: 700 8.2pt/1 Arial, sans-serif; color: #17202a; }
.fs-summary div:last-child b { color: #9b2446; }
.fs-table { width: 100%; min-width: 0 !important; max-width: 100%; margin-top: 2.2mm; border-collapse: collapse; table-layout: fixed; flex: 0 0 auto; font-size: 6.6pt; }
.fs-table th, .fs-table td { border: .2mm solid #e1cbd2; padding: 1.05mm .75mm; vertical-align: middle; text-align: center; word-break: break-word; }
.fs-table thead th { height: 7.4mm; padding: .8mm .45mm; color: #fff; background: #972646; font-size: 7.2pt; font-weight: 700; line-height: 1.15; white-space: nowrap; }
.fs-table thead th:nth-child(1) { width: 8%; }
.fs-table thead th:nth-child(2) { width: 15%; }
.fs-table thead th:nth-child(3) { width: 14%; }
.fs-table thead th:nth-child(4) { width: 24%; }
.fs-table thead th:nth-child(5) { width: 9%; }
.fs-table thead th:nth-child(6), .fs-table thead th:nth-child(7), .fs-table thead th:nth-child(8) { width: 10%; }
.fs-table tbody tr { height: 8.45mm; }
.fs-page.is-template-preview .fs-meta strong { min-width: 28mm; min-height: 3.2mm; border-bottom: .2mm solid #d8bdc5; }
.fs-page.is-template-preview .fs-summary b { min-height: 3.3mm; border-bottom: .2mm solid #d8bdc5; }
.fs-page.is-template-preview .fs-detail-row-empty td { background: #fff; }
.fs-table td small { display: block; color: #9a7c85; font-size: 5.2pt; line-height: 1.15; }
.fs-table td b { display: block; margin-top: .6mm; color: #9c2446; font-size: 6pt; line-height: 1.2; }
.fs-table td.number { text-align: center; font-family: Arial, sans-serif; white-space: nowrap; }
.fs-table td.strong { font-weight: 700; }
.fs-table tfoot th, .fs-table tfoot td { height: 7mm; background: #fff8f8; font-weight: 700; text-align: right; color: #8e1f40; }
.fs-table tfoot th { text-align: left; }
.fs-page-spacer { flex: 1 1 auto; min-height: 2mm; }
.fs-confirm { height: 38mm; border-top: .25mm solid #d7b9c2; display: grid; grid-template-columns: 1fr 27mm; grid-template-rows: 13mm 1fr; column-gap: 3mm; flex: 0 0 auto; position: relative; }
.fs-confirm > p { grid-column: 1 / -1; margin: 2mm 0 0; padding: 1.5mm 2mm; border: .2mm solid #e3cfd5; font-size: 5.5pt; line-height: 1.55; color: #6e5059; }
.fs-sign { display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 4mm; }
.fs-sign span { text-align: center; font-size: 5.6pt; color: #90727b; }
.fs-sign b { display: block; min-height: 8mm; padding-top: 4.5mm; border-bottom: .2mm solid #a7848e; color: #1b1517; font-size: 6.2pt; }
.fs-qr { width: 24mm; height: 23mm; align-self: end; justify-self: end; border: .25mm solid #d8adb9; border-radius: 1mm; display: grid; grid-template-rows: 4mm 15mm 3mm; place-items: center; overflow: hidden; }
.fs-qr strong { color: #8c1e3d; font-size: 5.4pt; }
.fs-qr svg { width: 15mm; height: 15mm; }
.fs-qr small { font-size: 4.7pt; color: #765760; }
.fs-qr-unavailable { font-size: 5pt; color: #9b2446; }
.fs-qr-placeholder span { width: 15mm; height: 15mm; border: .25mm dashed #c79ba8; display: grid; place-items: center; text-align: center; color: #9a7882; font-size: 4.5pt; line-height: 1.35; }
.fs-page > footer { height: 8mm; margin-top: 2mm; border-top: .7mm solid #9a2747; display: flex; align-items: end; justify-content: space-between; padding-bottom: .5mm; color: #a27f89; font-size: 5.3pt; flex: 0 0 auto; }
@media print {
  body.fs-print-root { background: #fff; padding: 0; }
  .fs-page { margin: 0; box-shadow: none; }
}
