@page{size:A4 portrait;margin:18mm 16mm 16mm}.print-shell{min-height:100vh;background:#f1f5f9;display:flex;flex-direction:column;align-items:center;padding:24px;color:#0f172a}.print-toolbar{width:210mm;max-width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-family:IBM Plex Sans,system-ui,sans-serif;color:#475569}.print-toolbar button{font-family:inherit;font-size:13px;padding:6px 14px;border-radius:6px;cursor:pointer;border:1px solid #cbd5e1;background:#fff}.print-toolbar .primary{background:#0f172a;color:#fff;border-color:#0f172a}.print-page{width:210mm;min-height:297mm;background:#fff;box-shadow:0 6px 30px #00000014;padding:18mm 16mm;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:11pt;line-height:1.45;color:#0f172a;box-sizing:border-box}.km{font-family:Hanuman,Noto Sans Khmer,sans-serif}.km-display{font-family:Moul,Hanuman,Noto Sans Khmer,sans-serif;letter-spacing:.02em}.national-header{text-align:center;margin-bottom:8px}.national-header .kingdom{font-family:Moul,Hanuman,sans-serif;font-size:14pt;letter-spacing:.04em}.national-header .motto{font-family:Moul,Hanuman,sans-serif;font-size:11pt;margin-top:2px}.national-header .ornament{margin:8px auto 0;width:56px;border:none;border-top:1px solid #475569;position:relative}.national-header .ornament:after{content:"❋";position:absolute;top:-10px;left:50%;transform:translate(-50%);background:#fff;padding:0 6px;color:#475569;font-size:12pt}.ministry-block{text-align:center;margin-top:4px;margin-bottom:10px}.ministry-block .row{font-size:11pt}.ministry-block .row.km{font-family:Hanuman,sans-serif}.ministry-block .row.en{font-style:italic;color:#334155}.doc-title{text-align:center;margin:14px 0 10px}.doc-title .km{font-family:Moul,Hanuman,sans-serif;font-size:16pt;letter-spacing:.04em}.doc-title .en{font-size:11pt;text-transform:uppercase;letter-spacing:.18em;color:#334155;margin-top:4px}.doc-meta{display:flex;justify-content:space-between;font-size:9.5pt;color:#475569;margin-bottom:16px}.identity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 16px;border:1px solid #cbd5e1;border-radius:6px;padding:12px 16px;margin-bottom:18px;font-size:10pt}.identity-grid dt{color:#475569;font-size:9.5pt}.identity-grid dd{margin:0 0 6px;font-weight:500}.tx-table{width:100%;border-collapse:collapse;font-size:10pt;margin-bottom:14px}.tx-table th{background:#f1f5f9;text-align:left;font-weight:600;padding:8px 10px;border:1px solid #cbd5e1}.tx-table td{padding:8px 10px;border:1px solid #e2e8f0;vertical-align:top}.tx-table .num{text-align:right;font-variant-numeric:tabular-nums}.tx-table .center{text-align:center}.tx-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border:1px solid #0f172a;padding:12px 16px;margin-bottom:22px}.tx-totals .label{font-size:9.5pt;color:#475569;text-transform:uppercase;letter-spacing:.08em}.tx-totals .value{font-size:16pt;font-weight:600;font-variant-numeric:tabular-nums}@page certificate{size:A4 landscape;margin:0}.cert-page{page:certificate;position:relative;background-image:var(--cert-frame, none);background-size:100% 100%;background-repeat:no-repeat;background-position:center center;border:none;padding:68mm 36mm 32mm;box-sizing:border-box;width:297mm;min-height:210mm;aspect-ratio:297 / 210}.cert-recipient{text-align:center;margin:10px 0}.cert-recipient .name-km{font-family:Moul,Hanuman,sans-serif;font-size:24pt;margin-bottom:4px}.cert-recipient .name-en{font-size:16pt;font-weight:500;color:#1e293b;letter-spacing:.04em}.cert-body{text-align:center;font-size:11pt;line-height:1.4;margin:6px 0}.cert-body .programme{display:block;font-family:Moul,Hanuman,sans-serif;font-size:14pt;margin:8px 0 2px}.cert-body .programme-en{display:block;font-style:italic;color:#334155;font-size:11pt;margin-top:2px}.cert-footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:16px;font-size:9pt}.cert-footer .signature{text-align:center}.cert-footer .signature .line{border-top:1px solid #0f172a;margin-bottom:4px;height:36px}.cert-footer .signature .role{color:#475569;font-size:9pt}.cert-footer .signature .role.km{font-family:Hanuman,sans-serif}.verify-block{display:flex;align-items:center;gap:12px;border-top:1px dashed #94a3b8;padding-top:10px;margin-top:14px;font-size:8.5pt;color:#475569}.verify-block img{width:22mm;height:22mm;object-fit:contain;border:1px solid #e2e8f0}.verify-block .token{font-family:IBM Plex Mono,monospace;font-size:8pt;word-break:break-all}.cert-no{font-family:IBM Plex Mono,monospace;font-size:11pt;text-align:center;margin-bottom:6px;color:#1e293b}@media print{html,body{background:#fff!important;margin:0!important;padding:0!important;width:auto!important;height:auto!important;min-height:0!important}.print-shell,.print-shell *,.print-page,.print-page *{visibility:visible!important}.print-shell{display:contents!important}.print-toolbar,.no-print{display:none!important}.print-page{width:auto!important;min-height:0!important;box-shadow:none!important;padding:10mm 14mm!important;margin:0!important}.print-page .verify-block{margin-top:8px!important;padding-top:6px!important;gap:10px!important;font-size:8pt!important}.print-page .verify-block img{width:22mm!important;height:22mm!important}.cert-page{padding:68mm 36mm 32mm!important;width:100vw!important;height:100vh!important;min-height:0!important;max-height:100vh!important;box-sizing:border-box!important;overflow:hidden!important;page-break-after:avoid!important}.cert-page .name-km{font-size:22pt}.cert-page .name-en{font-size:16pt}.cert-body,.cert-recipient{margin:4px 0!important}.cert-footer{margin-top:6px!important}.verify-block{margin-top:4px!important;padding-top:4px!important}.tx-table tr,.verify-block{page-break-inside:avoid}}
