/* hk-print.css · เทมเพลต PDF ร่วมทุกหน้า (server Chromium render) · ยกจาก mockup /export-preview
 * ใช้: หน้าไหนจะ export ให้โหลดไฟล์นี้ แล้วส่งเอกสารผ่าน /api/export/pdf
 * ⚠️ ห้าม jsPDF/html2pdf (CSP) · ฟอนต์ไทย+จีนพึ่ง browser (Noto Serif Thai/TC)
 */
:root{
  --hkp-gold:#a47f2d; --hkp-gold-deep:#725516; --hkp-ink:#171b24; --hkp-soft:#4f5664;
  --hkp-line:#d8d1c1; --hkp-paper:#fffefa; --hkp-good:#1f6b4f; --hkp-bad:#9f3434; --hkp-warn:#9a6418;
}
/* box-sizing บังคับทั้งเนื้อ PDF — server (export-pdf.ts) inline แค่ไฟล์นี้ ไม่มี reset ของหน้า → ถ้าไม่ตั้ง .hkp-page width:100%+padding = ล้นขอบขวาโดน clip */
.hkp-root,.hkp-root *,.hkp-page,.hkp-page *{box-sizing:border-box;print-color-adjust:exact;-webkit-print-color-adjust:exact}
/* root ที่ inject ตอนสั่งพิมพ์ = ซ่อนบนจอ (กัน flash) โผล่เฉพาะตอน print · mockup ใช้ .hkp-page ตรง ไม่มี .hkp-root จึงไม่โดน */
.hkp-root{display:none}
/* กระดาษ A4 (แสดงบนจอ = การ์ด · พิมพ์ = เต็มหน้า) */
.hkp-page{background:var(--hkp-paper);color:var(--hkp-ink);width:100%;max-width:794px;min-height:500px;
  margin:0 auto 20px;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.4);padding:44px 46px 58px;position:relative;
  overflow:hidden;font-family:"Noto Serif Thai","Noto Serif TC",serif}
.hkp-page.land{max-width:1050px}                 /* A4 แนวนอน (calendar) */
/* header/footer วิ่งทุกหน้า */
.hkp-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--hkp-line);
  padding-bottom:10px;margin-bottom:20px;font-size:11px;color:var(--hkp-soft)}
.hkp-head .lg{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--hkp-gold-deep)}
.hkp-head .lg .seal{width:20px;height:20px;border:1px solid var(--hkp-gold-deep);display:grid;place-items:center;font-size:11px}
.hkp-head-meta{display:flex;align-items:center;gap:10px}
.hkp-report-id{font:700 8.5px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--hkp-gold-deep);letter-spacing:0}
.hkp-foot{position:absolute;left:46px;right:46px;bottom:20px;display:flex;justify-content:space-between;
  font-size:10px;color:#a89e86;border-top:1px solid var(--hkp-line);padding-top:8px}
/* หน้าปก */
.hkp-cover{text-align:center;padding:30px 0}
.hkp-cover .seal-lg{width:64px;height:64px;border:2px solid var(--hkp-gold);display:grid;place-items:center;
  font-size:34px;color:var(--hkp-gold-deep);margin:0 auto 16px}
.hkp-cover .kick{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--hkp-gold-deep)}
.hkp-cover h1{font-size:30px;margin:10px 0 6px;color:var(--hkp-ink);font-weight:700}
.hkp-cover .who{font-size:17px;color:var(--hkp-ink);margin:18px 0 4px;font-weight:600}
.hkp-cover .meta{font-size:13px;color:var(--hkp-soft);line-height:1.9}
.hkp-cover .big{font-size:52px;color:var(--hkp-gold-deep);margin:14px 0 4px;font-family:"Noto Serif TC",serif}
.hkp-cover .badge{display:inline-block;margin-top:14px;font-size:11px;color:var(--hkp-good);
  border:1px solid var(--hkp-good);border-radius:20px;padding:4px 14px}
.hkp-cover .qr{width:74px;height:74px;margin:22px auto 0;display:grid;place-items:center}
.hkp-cover .qr svg{width:74px;height:74px;display:block}
/* Quick stays quiet; paid AI reports receive a distinct premium cover without ink-heavy backgrounds. */
.hkp-page.quick-cover .hkp-cover{border-top:1px solid var(--hkp-gold);border-bottom:1px solid var(--hkp-line);padding:42px 24px 48px}
.hkp-page.premium-cover{box-shadow:inset 0 0 0 2px var(--hkp-gold),inset 0 0 0 8px var(--hkp-paper),inset 0 0 0 9px var(--hkp-line)}
.hkp-page.premium-cover .hkp-cover{border:1px solid var(--hkp-gold);padding:52px 32px 58px;margin:18px 8px;background:#fffdf7;min-height:205mm;display:flex;flex-direction:column;justify-content:center}
.hkp-page.premium-cover .seal-lg{background:var(--hkp-ink);color:#d9b65c;border-color:var(--hkp-ink);box-shadow:0 0 0 4px #fffdf7,0 0 0 5px var(--hkp-gold)}
.hkp-page.premium-cover .kick{color:var(--hkp-gold-deep);font-weight:800}
.hkp-page.premium-cover .badge{border-color:var(--hkp-gold-deep);color:var(--hkp-gold-deep);background:#fff}
/* section/ตาราง/การ์ด */
.hkp-page h2.sec{font-size:17px;color:var(--hkp-gold-deep);border-left:3px solid var(--hkp-gold);padding-left:10px;margin:22px 0 12px}
.hkp-page table{width:100%;border-collapse:collapse;font-size:12px;margin:6px 0 14px}
.hkp-page th,.hkp-page td{border:1px solid var(--hkp-line);padding:6px 8px;text-align:center}
.hkp-page th{background:#f5efe0;color:var(--hkp-gold-deep);font-weight:700}
.hkp-page td .zh{font-family:"Noto Serif TC",serif;font-size:15px;color:var(--hkp-ink);display:block}
.hkp-page td .th{font-size:10px;color:var(--hkp-soft)}
.hkp-card{border:1px solid var(--hkp-line);border-radius:9px;padding:12px 14px;margin:0 0 10px;background:#fefcf5;break-inside:avoid}
.hkp-card h3{font-size:13.5px;color:var(--hkp-ink);margin-bottom:6px}
.hkp-card .conf{float:right;font-size:9px;color:#fff;background:var(--hkp-good);border-radius:10px;padding:1px 8px}
.hkp-card p{font-size:12px;color:#3a3730;line-height:1.65;margin:3px 0}
.hkp-card p b{color:var(--hkp-gold-deep)}
.hkp-verdict{background:#f8f3e6;border:1px solid var(--hkp-line);
  border-radius:11px;padding:14px 16px;margin:6px 0 14px}
.hkp-verdict .lab{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--hkp-gold-deep)}
.hkp-verdict p{font-size:13.5px;line-height:1.7;margin-top:6px;color:var(--hkp-ink)}
/* ผัง 9 วัง (qimen) */
.hkp-pal9{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:8px 0 14px}
.hkp-pal9 .c{border:1px solid var(--hkp-line);border-radius:7px;padding:9px 4px;text-align:center;background:#fefcf5;min-height:74px}
.hkp-pal9 .c .g{font-family:"Noto Serif TC";font-size:16px;color:var(--hkp-gold-deep);display:block}
.hkp-pal9 .c.good{border-color:var(--hkp-good);background:rgba(90,138,72,.08)}
/* สรุป grid */
.hkp-sum{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.hkp-sum .x{border:1px solid var(--hkp-line);border-radius:8px;padding:9px 11px;font-size:11.5px;background:#fefcf5}
.hkp-sum .x .l{color:var(--hkp-gold-deep);font-weight:700;font-size:10px;display:block;margin-bottom:2px}
/* PdfDocumentV2 structured blocks */
.hkp-subsec{font-size:14px;color:var(--hkp-ink);margin:16px 0 7px;break-after:avoid;page-break-after:avoid}
.hkp-callout{border:1px solid var(--hkp-line);border-left:4px solid var(--hkp-gold);padding:12px 14px;margin:8px 0 14px;background:#faf8f1;break-inside:avoid}
.hkp-callout .lab{display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:var(--hkp-gold-deep);margin-bottom:4px}
.hkp-callout p{font-size:13px;line-height:1.65;margin:0;color:var(--hkp-ink)}
.hkp-callout.good{border-left-color:var(--hkp-good);background:#f1f8f4}.hkp-callout.good .lab{color:var(--hkp-good)}
.hkp-callout.warning{border-left-color:var(--hkp-warn);background:#fff8eb}.hkp-callout.warning .lab{color:var(--hkp-warn)}
.hkp-callout.danger{border-left-color:var(--hkp-bad);background:#fff3f1}.hkp-callout.danger .lab{color:var(--hkp-bad)}
.hkp-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 14px}
.hkp-facts.cols-1{grid-template-columns:1fr}.hkp-facts.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hkp-facts .x{border:1px solid var(--hkp-line);padding:9px 11px;background:#fff;break-inside:avoid;min-width:0}
.hkp-facts .l{display:block;color:var(--hkp-gold-deep);font-size:9.5px;font-weight:800;margin-bottom:3px}
.hkp-facts .v{display:block;color:var(--hkp-ink);font-size:11.5px;line-height:1.45;overflow-wrap:anywhere}
.hkp-table-wrap{width:100%;margin:7px 0 15px;overflow:visible}
.hkp-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px;break-inside:auto}
.hkp-table.compact{font-size:9.8px}.hkp-table thead{display:table-header-group}.hkp-table tfoot{display:table-footer-group}
.hkp-table tr{break-inside:avoid;page-break-inside:avoid}.hkp-table th,.hkp-table td{overflow-wrap:anywhere;word-break:break-word;vertical-align:top;text-align:left;line-height:1.4}
.hkp-list{font-size:12px;line-height:1.65;margin:6px 0 13px;padding-left:22px}.hkp-list li{margin:3px 0;break-inside:avoid}
.hkp-prose p{font-size:12.5px;line-height:1.72;color:#30343c;margin:5px 0;orphans:3;widows:3}
.hkp-figure{margin:8px auto 15px;text-align:center;break-inside:avoid;page-break-inside:avoid}.hkp-figure svg{max-width:100%;height:auto;display:block;margin:auto}
.hkp-figure figcaption{font-size:9.5px;color:var(--hkp-soft);margin-top:5px}
/* timeline */
.hkp-tl{border-left:2px solid var(--hkp-gold);padding-left:14px;margin:6px 0}
.hkp-tl .it{margin-bottom:9px;font-size:12px}
.hkp-tl .it b{color:var(--hkp-gold-deep)}
/* ── สรุป AI (markdown → html · .hkp-summary) · เนื้อจาก HKPrint.mdSafe ── */
.hkp-summary{font-size:12.5px;line-height:1.7;color:#3a3730;print-color-adjust:exact;-webkit-print-color-adjust:exact;
  overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}
/* ภาษาไทย/จีนเขียนติดกันไม่เว้นวรรค → บังคับตัดคำทุกระดับ กันล้นขอบขวาแล้วโดน clip */
.hkp-summary .md-p,.hkp-summary .md-h,.hkp-summary .md-ul li,.hkp-summary .md-t td,.hkp-summary .md-t th{overflow-wrap:break-word;word-break:break-word}
.hkp-summary .md-h{color:var(--hkp-gold-deep);font-weight:700;margin:14px 0 6px}
.hkp-summary .md-h1{font-size:16px}
.hkp-summary .md-h2{font-size:15px}
.hkp-summary .md-h3{font-size:13.5px;color:var(--hkp-ink)}
.hkp-summary .md-h4{font-size:12.5px;color:var(--hkp-ink)}
.hkp-summary .md-p{margin:4px 0;orphans:3;widows:3}
.hkp-summary .md-sp{height:6px}
.hkp-summary .md-ul{margin:4px 0 8px;padding-left:20px}
.hkp-summary .md-ul li{margin:2px 0;orphans:3;widows:3}
.hkp-summary strong{color:var(--hkp-gold-deep)}
.hkp-summary code{font-family:"Noto Serif TC",monospace;background:#f5efe0;padding:0 4px;border-radius:4px}
.hkp-summary .md-hr{border:0;border-top:1px solid var(--hkp-line);margin:10px 0}
/* ปัญหา 1 · ตารางตัดข้ามหน้า: หัวตารางซ้ำทุกหน้า + แถวไม่ถูกผ่ากลาง (table เองผ่าได้เพื่อพอดีหน้า) */
.hkp-summary .md-tw{overflow-x:auto;margin:6px 0 12px}
.hkp-summary .md-t{width:100%;border-collapse:collapse;font-size:11.5px;break-inside:auto}
.hkp-summary .md-t thead{display:table-header-group}
.hkp-summary .md-t tr,.hkp-summary .md-t td,.hkp-summary .md-t th{break-inside:avoid;page-break-inside:avoid}
.hkp-summary .md-t th,.hkp-summary .md-t td{border:1px solid var(--hkp-line);padding:5px 7px;text-align:center}
.hkp-summary .md-t th{background:#f5efe0;color:var(--hkp-gold-deep);font-weight:700}
/* ปัญหา 3 · หัวข้อกำพร้าท้ายหน้า: หัวข้อห้ามหลุดจากย่อหน้าถัดไป */
.hkp-summary .md-h{break-after:avoid;page-break-after:avoid}
/* ปัญหา 2 · เส้น SVG จาง/หาย: บังคับพิมพ์สีจริง (ไม่บังคับ stroke-width ทับ SVG เดิม — server SVG กำหนด ≥1px + viewBox มาแล้ว) */
.hkp-page .fig svg,.hkp-summary svg{print-color-adjust:exact;-webkit-print-color-adjust:exact;max-width:100%;height:auto;display:block;margin:0 auto}
.hkp-page .fig{margin:8px 0 14px;text-align:center;break-inside:avoid;page-break-inside:avoid}
.hkp-page .fig .cap{font-size:9.5px;color:#a89e86;margin-top:4px}
/* โหมดพิมพ์จริง */
@media print{
  @page{size:A4;margin:12mm}
  @page land{size:A4 landscape}
  body{background:#fff!important}
  .noprint,.hk-topbar,.topbar,.hkp-toolbar{display:none!important}
  /* หน้าที่ inject รายงาน (fusion/palm/qimen/chart...) → ซ่อนเนื้อหาเว็บเดิม เหลือแต่ .hkp-root
     ผูกกับ body.hkp-active (HKPrint.open เติมให้) เท่านั้น → book/หน้าที่พิมพ์ตัวเองไม่โดน */
  body.hkp-active>*:not(.hkp-root){display:none!important}
  .hkp-root{display:block!important}
  .hkp-page{box-shadow:none;margin:0;border-radius:0;max-width:100%;min-height:270mm;page-break-after:always;overflow:visible}
  .hkp-page:last-child{page-break-after:auto}
  .hkp-card{break-inside:avoid}
  .hkp-page table{break-inside:auto}
  .hkp-page thead{display:table-header-group}
  .hkp-page tr{break-inside:avoid;page-break-inside:avoid}
}
