/* A4 文件（處方籤、回饋單）：螢幕預覽與列印共用 */
.print-root { display: none; }
.paper {
  width: 210mm; min-height: 297mm; padding: 14mm 15mm 12mm; background: #fff; color: #111;
  font-family: "Noto Sans TC", "Microsoft JhengHei", "PingFang TC", sans-serif; font-size: 11.2pt; line-height: 1.55;
  box-shadow: 0 10px 40px -20px rgba(0,0,0,.35); position: relative; font-feature-settings: normal;
}
.paper .cb { display: inline-grid; place-items: center; width: 4.2mm; height: 4.2mm; border: .3mm solid #333; vertical-align: -0.7mm; margin-right: 1.2mm; color: #111; }
.paper .cb svg { width: 3.6mm; height: 3.6mm; }
.paper .fill { font-weight: 600; color: #000; margin-left: 1mm; }
.paper .uline { display: inline-block; border-bottom: .25mm solid #333; min-height: 5mm; padding: 0 1.5mm; vertical-align: bottom; font-weight: 600; }
.paper .uline.w60 { min-width: 62mm; }
.paper .uline.w24 { min-width: 24mm; text-align: center; }

/* ── 處方籤（對照原表單） ── */
.rx .rx-no { position: absolute; right: 26mm; top: 9mm; font-size: 9pt; }
.rx .rx-title { text-align: center; font-size: 22pt; font-weight: 500; letter-spacing: .12em; margin: 2mm 0 2mm; font-family: "Fira Sans", "Noto Sans TC", sans-serif; }
.rx .rx-row1 { display: flex; justify-content: space-between; align-items: flex-start; }
.rx .rx-scope { border: .3mm solid #333; padding: 1.2mm 3mm; font-size: 10.5pt; }
.rx .rx-date { padding-right: 4mm; font-size: 10.5pt; min-width: 58mm; }
.rx .rx-hr { border: 0; border-top: .3mm solid #888; margin: 3mm 0 3mm; }
.rx .rx-hr.blue { border-top-color: #8aa8d2; }
.rx .rx-id { display: grid; grid-template-columns: 1.15fr 1fr .8fr; row-gap: 1mm; font-size: 10.5pt; padding: 0 0 0 0; }
.rx .rx-check { display: grid; grid-template-columns: minmax(0, 1fr) 54mm; gap: 6mm; align-items: start; }
.rx .ln { margin: .8mm 0; }
.rx .ln.b { font-size: 11.5pt; }
.rx .ln.sub { padding-left: 8mm; }
.rx .ln.sub2 { padding-left: 13mm; font-size: 10pt; }
.rx .ln.sub3 { padding-left: 17mm; }
.rx .ln.two { display: grid; grid-template-columns: 1.2fr 1fr; }
.rx .rx-note { font-size: 9.5pt; font-weight: 600; }
.rx .ln.dm { padding-left: 13mm; font-size: 10.5pt; }
.rx .rx-box { border: .3mm solid #333; min-height: 40mm; padding: 2mm 3mm; display: flex; flex-direction: column; }
.rx .rx-box-h { border-bottom: .25mm solid #333; padding-bottom: .8mm; margin-bottom: 2mm; font-size: 10.5pt; }
.rx .rx-box-b { font-weight: 600; white-space: pre-wrap; }
.rx .rx-box.tall { min-height: 78mm; }
.rx .rx-doc-h { margin: 1mm 0 2mm 2mm; font-size: 11.5pt; }
.rx .rx-doc { display: grid; grid-template-columns: minmax(0, 1fr) 40mm; gap: 3mm; }
.rx .rx-doc-l { border: .3mm solid #333; padding: 2mm 4mm; font-size: 10.5pt; }
.rx .rx-doc-l .dash { border-top: .3mm dashed #777; margin: 1.5mm 0 2mm 5mm; width: 78%; }
.rx .rx-dec { margin: 4mm 0 0 2mm; font-size: 10.5pt; }
.rx .rx-sign { display: grid; justify-content: end; padding-right: 30mm; gap: 1mm; margin: 6mm 0 3mm; font-size: 11pt; }
.rx .rx-sign.pt { display: flex; justify-content: space-between; align-items: flex-start; padding: 0 30mm 0 2mm; margin-top: 3mm; }
.rx .rx-sign.pt mark { background: #fff34d; padding: 0 1mm; }
.rx .rx-sign .who { display: grid; gap: 1mm; }

/* ── 個人化回饋單 ── */
.fb { padding: 12mm 14mm 12mm; font-family: "Fira Sans", "Noto Sans TC", sans-serif; font-size: 10.6pt; color: #12322c; display: flex; flex-direction: column; gap: 4.5mm; }
.fb h2 { font-size: 12pt; margin: 0 0 2mm; color: #18735c; }
.fb-head { display: flex; align-items: center; gap: 4mm; padding: 4mm 5mm; border-radius: 4mm; background: linear-gradient(120deg, #effaf6, #f3f1fd); }
.fb-mark img { width: 13mm; height: 13mm; display: block; }
.fb-title h1 { margin: 0; font-size: 18pt; line-height: 1.2; }
.fb-title { flex: 1; }
.fb-title p { margin: .5mm 0 0; color: #44605a; }
.fb-brand { display: grid; justify-items: end; text-align: right; }
.fb-brand b { font-size: 12pt; letter-spacing: .08em; color: #18735c; }
.fb-brand span { font-size: 8.8pt; color: #6f8781; }
.fb strong { color: #b2561b; }
.fb-sec { break-inside: avoid; }
.fb-plan { display: grid; grid-template-columns: 42mm minmax(0, 1fr); gap: 6mm; align-items: center; }
.fb-dial svg { width: 42mm; height: 42mm; }
.fb-line { display: flex; gap: 3mm; align-items: stretch; margin: 2mm 0; }
.fb-line i { width: 1.6mm; border-radius: 1mm; }
.fb-line.red i { background: #e0675a; }
.fb-line.blue i { background: #3b74d6; }
.fb-line b { display: block; font-size: 12pt; }
.fb-line span { color: #44605a; }
.fb-next { margin: 2mm 0 0; color: #44605a; }
.fb-weeks { display: grid; gap: 2mm; }
.fb-wrow { display: grid; grid-template-columns: 32mm minmax(0, 1fr); gap: 3mm; align-items: start; }
.fb-wrow > b { font-size: 10.6pt; padding: 1mm 0 0 2.4mm; border-left: 1.2mm solid #ccc; }
.fb-wrow.red > b { border-left-color: #e0675a; }
.fb-wrow.blue > b { border-left-color: #3b74d6; }
.fb-wrow > div { display: flex; flex-wrap: wrap; gap: 1.5mm; }
.fb-wrow span { padding: 1mm 2.2mm; border-radius: 1.6mm; border: .25mm solid #d5e2df; font-size: 9.8pt; white-space: nowrap; }
.fb-pen { margin: 0 0 1.5mm; font-size: 11.5pt; }
.fb-rv .fb-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2mm; margin-bottom: 2mm; }
.fb-rv .fb-stats div { border: .25mm solid #d5e2df; border-radius: 2mm; padding: 1.5mm 2.5mm; display: grid; }
.fb-rv .fb-stats span { font-size: 8.8pt; color: #6f8781; }
.fb-rv .fb-stats b { font-size: 11pt; }
.fb-rv p { margin: 0 0 1mm; }
.fb-small { color: #44605a; font-size: 9.8pt; }
.fb-chosen { margin: 0 0 1.5mm; }
.fb-old-weeks { display: flex; flex-wrap: wrap; gap: 1.5mm; }
.fb-old-weeks span { display: inline-flex; gap: 1.5mm; align-items: baseline; padding: 1mm 2.2mm; border-radius: 1.6mm; border: .25mm solid #d5e2df; font-size: 9.6pt; }
.fb-old-weeks span.red { border-left: 1.2mm solid #e0675a; }
.fb-old-weeks span.blue { border-left: 1.2mm solid #3b74d6; }
.fb-old-weeks b { font-weight: 600; }
.fb-list { margin: 0; padding-left: 5mm; display: grid; gap: 1.2mm; }
.fb-list.plain { color: #44605a; }
.fb-sub-row { display: flex; gap: 8mm; flex-wrap: wrap; }
.fb-sub p { margin: 1.5mm 0 0; color: #44605a; }
/* QR code 平均分散：寬度切成 n 等分，每個 QR 放在自己那一格的正中間（1 個置中、2 個在 1/4 與 3/4），彼此離得夠遠，相機好掃 */
.fb-qrs { position: relative; height: 42mm; margin-top: auto; padding-top: 3mm; border-top: .25mm dashed #b9d3cc; }
.fb-qrs figure { position: absolute; top: 3mm; transform: translateX(-50%); margin: 0; display: grid; gap: 1.5mm; justify-items: center; width: 34mm; }
.fb-qrs svg { width: 26mm; height: 26mm; }
.fb-qrs figcaption { font-size: 9pt; text-align: center; }
.qr-ph { width: 26mm; height: 26mm; border: .35mm dashed #8fb3aa; border-radius: 2mm; display: grid; place-items: center; text-align: center; font-size: 8.5pt; color: #6f8781; }
.fb-foot { font-size: 8.8pt; color: #6f8781; border-top: .25mm solid #e1ebe8; padding-top: 2mm; }
