diff --git a/app/index.html b/app/index.html
index 41948ba..82c2023 100644
--- a/app/index.html
+++ b/app/index.html
@@ -564,20 +564,24 @@ async function generatePDF() {
addPage(true);
// Logo + title
- let headerBlockH = szLg;
+ const mm10 = 10 * 2.83465; // 10 mm in points
if (logoImage) {
const maxW = (CFG['logo-maxwidth'] || 4) * 28.3465;
const scale = Math.min(maxW / logoImage.width, 50 / logoImage.height, 1);
const lw = logoImage.width * scale, lhh = logoImage.height * scale;
- pg.drawImage(logoImage, { x: M.left, y: y - lhh, width: lw, height: lhh });
- headerBlockH = Math.max(lhh, szLg);
+ // Absolute position: 10 mm from top-left, above all other content
+ const logoTop = pageH - mm10;
+ pg.drawImage(logoImage, { x: mm10, y: logoTop - lhh, width: lw, height: lhh });
+ // Push cursor below logo with a small gap before remaining header elements
+ y = Math.min(y, logoTop - lhh - 8);
} else if (CFG.organization) {
pg.drawText(CFG.organization, { x: M.left, y, size: szLg, font: fontBold, color: accent });
+ y -= szLg + 8;
}
const titleStr = 'REIMBURSEMENT FORM';
const tw = fontBold.widthOfTextAtSize(titleStr, szLg);
- pg.drawText(titleStr, { x: M.left + W - tw, y: y - szLg, size: szLg, font: fontBold, color: accent });
- y -= headerBlockH + 8;
+ pg.drawText(titleStr, { x: M.left + W - tw, y, size: szLg, font: fontBold, color: accent });
+ y -= szLg + 8;
// Intro text
if (CFG.intro) {