
:root{--ink:#10223d;--blue:#1455d9;--soft:#f4f7fb;--line:#dce4ef;--green:#16784a;--red:#b42318}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff}
header{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);padding:14px 5%;display:flex;justify-content:space-between;gap:20px;align-items:center}
.brand{display:grid}.brand b{font-size:27px;color:var(--blue)}.brand span{font-weight:700}.brand small{color:#667085}
nav{display:flex;gap:7px;flex-wrap:wrap}button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 13px;cursor:pointer;font-weight:700}
button:hover{border-color:var(--blue)}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.danger{color:var(--red)}
main{max-width:1180px;margin:auto;padding:38px 22px 70px}.hero{padding:64px 5%;border-radius:24px;background:linear-gradient(135deg,#eef4ff,#fff8e6);margin-bottom:32px}
.hero h1{font-size:46px;max-width:760px;margin:12px 0}.hero p{font-size:18px;max-width:760px;line-height:1.6}
.badge{display:inline-block;background:#e9f0ff;color:#174ea6;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:18px}.two{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}
.card,.panel{border:1px solid var(--line);border-radius:16px;padding:20px;background:#fff;box-shadow:0 5px 20px rgba(16,34,61,.05)}
.card h3{min-height:48px}.price{font-size:25px;font-weight:800;color:var(--blue)}.muted{color:#667085}.row{display:flex;gap:12px;align-items:center}.space{justify-content:space-between}
label{display:block;font-weight:700;margin:14px 0 6px}input,select,textarea{width:100%;padding:12px;border:1px solid #cfd8e5;border-radius:9px;font:inherit}
.notice{background:#fff7dc;border:1px solid #f0d56b;padding:12px;border-radius:9px;margin:12px 0}.success{background:#eaf8f0;border:1px solid #9ed5b7;padding:12px;border-radius:9px}
.lesson{padding:12px 0;border-bottom:1px solid #edf1f6}.progress{height:9px;background:#e8edf4;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--blue)}
table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid #edf1f6;text-align:left}th{font-size:12px;color:#667085;text-transform:uppercase}
.metric{font-size:30px;font-weight:800;margin-top:8px}.status{font-weight:800;color:var(--green)}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
footer{text-align:center;background:var(--ink);color:#fff;padding:24px}.course-top{height:120px;border-radius:12px;background:linear-gradient(135deg,#164baf,#59a0ff);margin-bottom:15px}
.receipt{max-width:700px;margin:auto}.receipt .line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #d8dee8}
@media(max-width:760px){header{align-items:flex-start;flex-direction:column}.two{grid-template-columns:1fr}.hero h1{font-size:34px}.row.space{align-items:flex-start;flex-direction:column}}

.certificate-sheet{max-width:1000px;margin:10px auto 20px;padding:65px 70px;text-align:center;border:10px double #1455d9;background:#fff;min-height:650px}
.cert-brand{font-size:42px;font-weight:900;color:#1455d9;letter-spacing:3px}.cert-institute{font-size:22px;font-weight:800;margin-top:5px}.cert-tagline{color:#667085;margin-top:6px}
.cert-rule{height:2px;background:#dce4ef;margin:28px auto;width:70%}.certificate-sheet h1{font-size:42px;margin:18px 0}.cert-student{font-size:34px;text-decoration:underline;text-underline-offset:8px}
.cert-meta{display:flex;justify-content:space-between;gap:20px;margin:45px 0 35px;text-align:left}.cert-sign{display:flex;justify-content:center;margin-top:35px}.signature-line{width:240px;border-top:1px solid #10223d;margin:35px auto 8px}
.cert-footer{margin-top:45px;color:#667085;font-size:13px}.cert-actions{text-align:center;margin:20px auto 50px}
@media print{header,footer,.cert-actions{display:none!important}body{background:#fff}.certificate-sheet{margin:0;max-width:none;min-height:0;box-shadow:none}main{padding:0;max-width:none}}

.header-logo{display:block;width:230px;max-width:42vw;height:auto}
.hero-logo{width:320px;max-width:80%;height:auto;margin:0 0 18px}
.certificate-logo{width:300px;max-width:70%;height:auto;margin:0 auto 14px;display:block}
@media(max-width:760px){.header-logo{width:190px;max-width:75vw}.hero-logo{width:250px}.certificate-logo{width:240px}}
@media print{.certificate-logo{width:260px!important;display:block!important}}

/* V7 visual upgrade based on the approved TPI platform concept */
.tpi-home-hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:500px;border-radius:22px;overflow:hidden;background:linear-gradient(120deg,#f8fbff 0%,#eef8ff 55%,#cce8fa 100%);margin-bottom:18px}
.hero-copy{padding:38px 42px}.hero-copy .hero-logo{width:230px;margin-bottom:18px}.hero-copy h1{font-size:54px;line-height:.96;margin:20px 0 12px;color:#062b71}.hero-copy h1 em{font-style:normal;color:#168b36}
.hero-sub{font-size:18px;font-weight:700}.hero-benefits{display:flex;gap:28px;margin:30px 0}.hero-benefits div{display:flex;gap:8px;align-items:center;font-size:13px}.hero-benefits b{font-size:28px}.hero-cta{background:#119a46;border-color:#119a46;font-size:16px}
.hero-visual{min-height:500px;background:linear-gradient(#b9dcf2,#fff0c7);position:relative}.construction-scene{height:100%;position:relative;overflow:hidden}.skyline{position:absolute;bottom:40px;left:20px;font-size:75px;opacity:.65;white-space:nowrap}.engineer{position:absolute;bottom:0;right:70px;font-size:220px;filter:drop-shadow(0 8px 8px rgba(0,0,0,.15))}
.construction-scene blockquote{position:absolute;right:18px;bottom:25px;background:rgba(3,42,91,.88);color:#fff;padding:18px 22px;font-size:20px;line-height:1.4;border-radius:8px}
.benefit-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 30px}.benefit-strip div{background:#eef6fd;padding:20px;border-radius:10px;text-align:center;font-size:15px}.benefit-strip div:first-letter{font-size:25px}
.course-card .course-top{background:linear-gradient(135deg,#0b58b5,#1f9b54);height:105px}.stats-strip{margin:34px -22px -70px;background:#062f61;color:white;padding:28px 5%;display:grid;grid-template-columns:repeat(5,1fr);gap:20px;text-align:center}
.stats-strip div{border-right:1px solid rgba(255,255,255,.3)}.stats-strip div:last-child{border:0}.stats-strip b,.stats-strip span{display:block}.stats-strip b{font-size:22px}.stats-strip span{font-size:13px;margin-top:5px}
.certificate-sheet{position:relative;overflow:hidden;border:8px double #d5a91c!important}.certificate-sheet:before,.certificate-sheet:after{content:"";position:absolute;width:240px;height:55px;background:linear-gradient(135deg,#063c78,#0b8a43);transform:rotate(-35deg);z-index:0}.certificate-sheet:before{left:-70px;top:30px}.certificate-sheet:after{right:-70px;bottom:30px}.certificate-sheet>*{position:relative;z-index:1}.certificate-sheet .certificate-logo{width:260px}
@media(max-width:850px){.tpi-home-hero{grid-template-columns:1fr}.hero-visual{min-height:330px}.hero-copy h1{font-size:42px}.benefit-strip,.stats-strip{grid-template-columns:1fr 1fr}.engineer{font-size:150px}.hero-benefits{flex-direction:column}}

.admin-login{border-top:5px solid #1455d9}.admin-login h1{margin-bottom:8px}
#adminBtn{background:#10223d;color:white;border-color:#10223d}

.completion-banner{max-width:1000px;margin:0 auto 18px;text-align:center;font-size:16px}

.auth-card{max-width:580px;margin:auto;border-top:5px solid #1455d9}
.auth-card h1{margin-bottom:8px}.auth-switch{margin-top:22px;padding-top:18px;border-top:1px solid #edf1f6}
#registerBtn{background:#168b36;border-color:#168b36;color:#fff}

.owner-builder{max-width:1180px;margin:auto}.builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.builder-grid .panel{align-self:start}.course-status{display:inline-block;margin-top:5px;padding:3px 8px;border-radius:999px;background:#eef4ff;color:#174ea6;font-size:11px;font-weight:800}
@media(max-width:850px){.builder-grid{grid-template-columns:1fr}}

.assignment-panel{max-width:820px;margin:auto}.assignment-instructions{padding:16px;margin:15px 0;background:#f5f8fc;border-left:4px solid #1455d9}.assignment-status{margin-top:20px;padding:16px;border-radius:10px}.status-submitted{background:#fff7e6}.status-passed{background:#eaf8ee}.status-revision-required{background:#fff0f0}.table-wrap{overflow-x:auto}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:12px;border-bottom:1px solid #e6eaf0;text-align:left;vertical-align:top}.table-wrap textarea{min-width:210px}

.transcript-sheet{max-width:900px;margin:20px auto;background:#fff;padding:46px;border:10px double #173d77;box-shadow:0 8px 30px rgba(0,0,0,.08)}.transcript-head{display:flex;align-items:center;gap:24px}.transcript-logo{width:150px;max-height:90px;object-fit:contain}.transcript-head h2{margin:0}.transcript-rule{height:4px;background:linear-gradient(90deg,#1455d9,#169447,#c8a64b);margin:22px 0}.transcript-sheet>h1{text-align:center;letter-spacing:2px}.transcript-details{display:grid;grid-template-columns:1fr 1fr;gap:2px 30px;margin:25px 0}.transcript-table{width:100%;border-collapse:collapse;margin:12px 0 28px}.transcript-table th,.transcript-table td{border:1px solid #cfd6df;padding:10px;text-align:left}.transcript-table th{background:#f4f7fb}.transcript-sign{display:flex;justify-content:flex-end;text-align:center;margin-top:45px}.cert-actions{text-align:center;margin:20px auto 40px}
@media print{body *{visibility:hidden!important}#certificateArea,#certificateArea *,#transcriptArea,#transcriptArea *{visibility:visible!important}#certificateArea,#transcriptArea{position:absolute;left:0;top:0;width:100%;box-shadow:none;margin:0}.cert-actions,.completion-banner,header,footer,nav{display:none!important}}
@media(max-width:700px){.transcript-details{grid-template-columns:1fr}.transcript-sheet{padding:22px}.transcript-head{flex-direction:column;text-align:center}}

.catalogue-page{max-width:1180px;margin:auto}.catalogue-hero{text-align:center;padding:26px 10px 18px}.catalogue-hero h1{font-size:38px;margin:8px 0}.course-search-panel{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:12px;align-items:end;background:#fff;padding:20px;border-radius:14px;box-shadow:0 5px 24px rgba(0,0,0,.07);margin:15px 0 20px}.course-search-panel label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.course-search-panel input,.course-search-panel select{margin:0}.catalogue-summary{margin:10px 2px 18px}.course-card-top{display:flex;justify-content:space-between;gap:8px}.level-pill{font-size:11px;font-weight:800;background:#edf8f0;color:#16733a;padding:5px 9px;border-radius:999px}.empty-results{grid-column:1/-1;text-align:center;padding:45px}@media(max-width:950px){.course-search-panel{grid-template-columns:1fr 1fr}.search-main{grid-column:1/-1}}@media(max-width:600px){.course-search-panel{grid-template-columns:1fr}.search-main{grid-column:auto}}

.lesson-editor{padding:16px;border:1px solid #dfe5ec;border-radius:12px;margin:12px 0;background:#fbfcfe}.course-player{display:grid;grid-template-columns:320px 1fr;min-height:75vh;background:#fff;border-radius:14px;overflow:hidden}.lesson-sidebar{background:#13243a;color:#fff;padding:22px}.lesson-sidebar h2{font-size:19px}.lesson-sidebar .progress{background:#3a485a}.lesson-nav{margin-top:18px}.lesson-nav button{width:100%;display:flex;gap:10px;text-align:left;padding:13px 10px;background:transparent;color:#fff;border:0;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0}.lesson-nav button.active{background:rgba(255,255,255,.12)}.lesson-main{min-width:0}.video-wrap{position:relative;padding-top:56.25%;background:#000}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.lesson-video{width:100%;max-height:600px;background:#000}.video-placeholder{min-height:420px;background:#111b28;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.play-icon{font-size:54px}.lesson-content{padding:30px}.player-actions{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.resource-button{display:inline-block;padding:10px 14px;border-radius:8px;background:#eef4ff;text-decoration:none;font-weight:800}@media(max-width:850px){.course-player{grid-template-columns:1fr}.lesson-sidebar{max-height:none}.video-placeholder{min-height:260px}}

.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:12px;border-bottom:1px solid #e6e9ee;vertical-align:top}.admin-table th{background:#f6f8fb}.table-wrap{overflow-x:auto}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.status-pill.active{background:#e9f8ee;color:#17733b}.status-pill.suspended{background:#fff0f0;color:#a52222}.admin-student-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.danger{background:#fff0f0;color:#9b2020;border-color:#e6b8b8}@media(max-width:800px){.admin-student-grid{grid-template-columns:1fr}}

.status-pill{background:#eef2f7;color:#27364a}.award-control-note{padding:12px;background:#fff8e7;border-radius:8px}

@media print{.certificate-actions,.no-print,button{display:none!important}}

.certificate-sheet{max-width:950px;margin:24px auto;background:#fff;border:10px double #183c63;padding:55px;text-align:center;min-height:580px;box-sizing:border-box;position:relative}.certificate-sheet .cert-brand img{max-width:190px;max-height:100px}.certificate-sheet h1{font-size:42px;margin:15px}.certificate-sheet h2{font-size:34px;margin:22px;border-bottom:1px solid #bbb;display:inline-block;padding:0 30px 8px}.certificate-sheet h3{font-size:24px}.cert-kicker{font-weight:900;letter-spacing:2px}.cert-meta{display:flex;justify-content:space-between;gap:20px;margin-top:55px;text-align:left}.preview-watermark:after{content:"ADMIN PREVIEW";position:absolute;inset:45% 0 auto;transform:rotate(-25deg);font-size:70px;font-weight:900;opacity:.055;pointer-events:none}.submission-preview{white-space:pre-wrap;padding:16px;background:#f7f8fa;border:1px solid #e0e4e8;border-radius:8px}@media(max-width:700px){.certificate-sheet{padding:25px}.certificate-sheet h1{font-size:30px}.certificate-sheet h2{font-size:25px}.cert-meta{flex-direction:column}.preview-watermark:after{font-size:42px}}

.contact-page{max-width:1100px;margin:auto}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px}.contact-item{display:flex;flex-direction:column;gap:4px;padding:15px 0;border-bottom:1px solid #e7e9ed}.contact-item a{font-weight:800;text-decoration:none}.settings-form{max-width:760px}.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:50;background:#1f8f4e;color:white;text-decoration:none;font-weight:900;padding:13px 18px;border-radius:999px;box-shadow:0 6px 22px rgba(0,0,0,.2)}@media(max-width:750px){.contact-grid{grid-template-columns:1fr}}

.doc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.doc-actions button:disabled{opacity:.45;cursor:not-allowed}.document-sheet{max-width:850px;margin:20px auto;background:white;border:1px solid #dfe3e8;padding:50px;min-height:650px}.document-sheet .cert-brand img{max-width:180px}.document-sheet h1{text-align:center;margin:25px 0 40px}@media print{.no-print,header,.whatsapp-float{display:none!important}.document-sheet{border:0;margin:0;padding:25px}}

.assignment-question{padding:18px;border-left:4px solid #234f7d;background:#f4f7fa;border-radius:6px;margin:12px 0 20px;font-weight:700;line-height:1.6}.submission-preview{white-space:pre-wrap;line-height:1.65;padding:18px;background:#f8f9fb;border:1px solid #e0e4e8;border-radius:8px;margin:12px 0}textarea#assignmentAnswer{min-height:320px}
/* Stage 10D credential isolation: visually mask admin password without exposing a password-manager target. */
.tpi-password-mask { -webkit-text-security: disc; }

/* Stage 10J — released certificate print layout */
@media print {
  @page { size: A4 landscape; margin: 8mm; }
  html, body { width: 100%; height: auto; background: #fff !important; }
  body * { visibility: hidden !important; }
  .certificate-sheet, .certificate-sheet * { visibility: visible !important; }
  .certificate-sheet {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 185mm !important;
    margin: 0 !important;
    padding: 18mm 20mm !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    page-break-inside: avoid !important;
  }
  .no-print, header, footer, nav, button, .whatsapp-float { display: none !important; }
}
\n\n/* Stage 10N.1 — one-sheet A4 landscape certificate + official TPI stamp */
.certificate-stamp{width:112px;height:112px;margin:18px auto 8px;border:4px double #164b93;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#164b93;font-weight:800;line-height:1.05;box-sizing:border-box;transform:rotate(-5deg);background:#fff;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 5px #164b93}
.certificate-stamp strong{font-size:30px;letter-spacing:2px;margin:5px 0}.certificate-stamp span{font-size:8px;letter-spacing:.8px;text-align:center;max-width:92px}.certificate-stamp .stamp-bottom{font-size:7px}
@media print {
  @page { size: A4 landscape; margin: 5mm; }
  html,body{width:297mm!important;height:210mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
  body *{visibility:hidden!important}
  .certificate-sheet,.certificate-sheet *{visibility:visible!important}
  .certificate-sheet{position:fixed!important;left:5mm!important;top:5mm!important;width:287mm!important;height:200mm!important;max-width:none!important;min-height:0!important;margin:0!important;padding:10mm 14mm!important;box-sizing:border-box!important;overflow:hidden!important;page-break-before:avoid!important;page-break-after:avoid!important;page-break-inside:avoid!important;break-inside:avoid-page!important}
  .certificate-sheet .certificate-logo{width:52mm!important;max-height:27mm!important;object-fit:contain!important}
  .certificate-sheet .cert-institute{font-size:14pt!important}.certificate-sheet .cert-tagline{font-size:9pt!important}.certificate-sheet .cert-rule{margin:3mm auto!important}
  .certificate-sheet h1{font-size:27pt!important;margin:3mm 0!important}.certificate-sheet h2{font-size:21pt!important;margin:3mm 0!important;padding-bottom:1.5mm!important}.certificate-sheet p{margin:2mm 0!important;font-size:11pt!important}
  .certificate-sheet .cert-meta{margin-top:5mm!important;font-size:10pt!important}.certificate-stamp{width:25mm!important;height:25mm!important;margin:3mm auto 1mm!important;border-width:1mm!important}.certificate-stamp strong{font-size:17pt!important}.certificate-stamp span{font-size:5pt!important}.certificate-stamp .stamp-bottom{font-size:4.5pt!important}.cert-footer{font-size:8pt!important;margin-top:1mm!important}
  .no-print,header,footer,nav,button,.whatsapp-float{display:none!important}
}

/* Stage 10N.2 — approved TPI certificate artwork */
.approved-certificate{width:min(1120px,calc(100vw - 40px));aspect-ratio:297/210;min-height:0!important;padding:34px 62px 24px!important;border:12px double #d7a400!important;box-sizing:border-box!important;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;color:#0e294f;background:#fff;overflow:hidden;position:relative}
.approved-certificate:before,.approved-certificate:after{display:none!important}.approved-certificate .certificate-logo{width:250px!important;max-height:135px;object-fit:contain;margin:0 auto 6px}.approved-certificate h1{font-family:Georgia,'Times New Roman',serif;font-size:48px!important;letter-spacing:1px;margin:2px 0 4px!important;color:#0b2a59}.cert-ornament{width:52%;font-size:28px;line-height:20px;color:#d7a400;border-top:2px solid #d7a400;text-align:center;margin:5px 0 8px}.cert-intro,.cert-completion{font-family:Georgia,'Times New Roman',serif;font-size:20px!important;margin:4px 0!important}.approved-certificate .cert-student{font-size:36px!important;margin:7px 0!important;padding:0 22px 5px!important;border-bottom:1px solid #d7a400!important}.approved-certificate .cert-course{font-size:34px!important;margin:8px 0 5px!important;padding:0 28px 6px!important;border-bottom:2px solid #d7a400!important}.cert-result{font-family:Georgia,'Times New Roman',serif;font-size:20px!important;margin:6px 0 4px!important}.cert-lower{width:100%;display:grid;grid-template-columns:1fr 160px 1fr;align-items:center;margin-top:auto;gap:18px;font-family:Georgia,'Times New Roman',serif;font-size:17px}.cert-issue{text-align:left}.cert-number{text-align:right}.certificate-stamp{width:125px;height:125px;margin:0 auto;border:4px double #174fa3;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#174fa3;font-weight:800;line-height:1.05;box-sizing:border-box;transform:rotate(-4deg);background:#fff;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 5px #174fa3}.certificate-stamp strong{font-size:31px;letter-spacing:2px;margin:7px 0}.certificate-stamp span{font-size:7px;letter-spacing:.55px;text-align:center;max-width:100px}.cert-signature{position:absolute;right:17%;bottom:50px;display:flex;flex-direction:column;align-items:center;font-family:Georgia,'Times New Roman',serif;font-size:14px}.cert-signature .signature-line{width:170px;border-top:2px solid #d7a400;margin-bottom:5px}.cert-signature span{font-size:12px;margin-top:2px}.approved-certificate .cert-footer{font-size:13px!important;color:#6c7890;margin:8px 0 0!important}.cert-corner{position:absolute!important;z-index:0!important;width:170px;height:170px;background:linear-gradient(135deg,#073e78 0 38%,#d7a400 38% 43%,#0c7a48 43% 68%,transparent 68%)}.cert-corner-tl{left:-4px;top:-4px}.cert-corner-br{right:-4px;bottom:-4px;transform:rotate(180deg)}.approved-certificate>*:not(.cert-corner){z-index:1}
@media(max-width:800px){.approved-certificate{padding:24px 28px 18px!important}.approved-certificate h1{font-size:30px!important}.approved-certificate .certificate-logo{width:170px!important}.approved-certificate .cert-student,.approved-certificate .cert-course{font-size:25px!important}.cert-lower{grid-template-columns:1fr 90px 1fr;font-size:11px}.certificate-stamp{width:82px;height:82px}.certificate-stamp strong{font-size:21px}.cert-signature{display:none}}
@media print{
 @page{size:A4 landscape;margin:0}
 html,body{width:297mm!important;height:210mm!important;margin:0!important;padding:0!important;overflow:hidden!important}
 body *{visibility:hidden!important}
 .approved-certificate,.approved-certificate *{visibility:visible!important}
 .approved-certificate{position:fixed!important;left:4mm!important;top:4mm!important;width:289mm!important;height:202mm!important;max-width:none!important;min-height:0!important;aspect-ratio:auto!important;margin:0!important;padding:8mm 14mm 6mm!important;border-width:3mm!important;page-break-inside:avoid!important;break-inside:avoid!important}
 .approved-certificate .certificate-logo{width:50mm!important;max-height:27mm!important;margin-bottom:1mm!important}.approved-certificate h1{font-size:25pt!important;margin:1mm 0!important}.cert-ornament{font-size:15pt!important;line-height:4mm!important;margin:1mm 0!important}.cert-intro,.cert-completion{font-size:11pt!important;margin:1mm 0!important}.approved-certificate .cert-student{font-size:21pt!important;margin:1.5mm 0!important;padding-bottom:1mm!important}.approved-certificate .cert-course{font-size:20pt!important;margin:1.5mm 0!important;padding-bottom:1mm!important}.cert-result{font-size:12pt!important;margin:1.5mm 0!important}.cert-lower{grid-template-columns:1fr 31mm 1fr!important;gap:4mm!important;font-size:10pt!important}.certificate-stamp{width:29mm!important;height:29mm!important;margin:0!important;border-width:1mm!important}.certificate-stamp strong{font-size:18pt!important;margin:1mm 0!important}.certificate-stamp span{font-size:4.5pt!important}.cert-signature{right:17%!important;bottom:13mm!important;font-size:8pt!important}.cert-signature .signature-line{width:38mm!important}.cert-signature span{font-size:7pt!important}.approved-certificate .cert-footer{font-size:7pt!important;margin-top:1mm!important}.cert-corner{width:35mm!important;height:35mm!important}
 .no-print,header,footer,nav,button,.whatsapp-float{display:none!important}
}

/* Stage 10N.3 — full-page A4 landscape certificate print correction */
@media print {
  @page { size: 297mm 210mm; margin: 0; }
  html, body { width: 297mm !important; height: 210mm !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; background: #fff !important; }
  body * { visibility: hidden !important; }
  .approved-certificate, .approved-certificate * { visibility: visible !important; }
  header, footer, nav, .whatsapp-float, .cert-actions, .certificate-actions, .no-print, button { display: none !important; }
  main, #app, .container, .page, .content { margin: 0 !important; padding: 0 !important; max-width: none !important; width: auto !important; }
  .approved-certificate {
    position: fixed !important;
    inset: 0 !important;
    width: 297mm !important;
    height: 210mm !important;
    max-width: 297mm !important;
    max-height: 210mm !important;
    margin: 0 !important;
    padding: 9mm 15mm 7mm !important;
    border: 3mm double #d7a400 !important;
    box-sizing: border-box !important;
    transform: none !important;
    zoom: 1 !important;
    overflow: hidden !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
  }
  .approved-certificate .certificate-logo { width: 57mm !important; max-height: 31mm !important; margin: 0 auto 1mm !important; }
  .approved-certificate h1 { font-size: 30pt !important; margin: 1mm 0 1.5mm !important; line-height: 1.05 !important; }
  .cert-ornament { width: 53% !important; font-size: 17pt !important; line-height: 4mm !important; margin: 1mm 0 1.5mm !important; }
  .cert-intro, .cert-completion { font-size: 12pt !important; margin: 1mm 0 !important; }
  .approved-certificate .cert-student { font-size: 24pt !important; margin: 1.5mm 0 !important; padding: 0 8mm 1mm !important; }
  .approved-certificate .cert-course { font-size: 23pt !important; margin: 1.5mm 0 !important; padding: 0 10mm 1.2mm !important; }
  .cert-result { font-size: 13pt !important; margin: 1.5mm 0 1mm !important; }
  .cert-lower { width: 100% !important; grid-template-columns: 1fr 34mm 1fr !important; gap: 5mm !important; font-size: 11pt !important; margin-top: auto !important; padding: 0 4mm !important; box-sizing: border-box !important; }
  .certificate-stamp { width: 32mm !important; height: 32mm !important; margin: 0 auto !important; border-width: 1mm !important; }
  .certificate-stamp strong { font-size: 20pt !important; margin: 1mm 0 !important; }
  .certificate-stamp span { font-size: 5pt !important; max-width: 25mm !important; }
  .certificate-stamp .stamp-bottom { font-size: 4.5pt !important; }
  .cert-signature { right: 16% !important; bottom: 13mm !important; font-size: 9pt !important; }
  .cert-signature .signature-line { width: 42mm !important; }
  .cert-signature span { font-size: 8pt !important; }
  .approved-certificate .cert-footer { font-size: 8pt !important; margin-top: 1.5mm !important; }
  .cert-corner { width: 43mm !important; height: 43mm !important; }
}

/* Stage 10N.4 — browser print viewport fill (final override) */
@media print {
  @page { size: A4 landscape; margin: 0 !important; }
  html, body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    background: #fff !important;
  }
  body > * { visibility: hidden !important; }
  #app, #app * { visibility: visible !important; }
  #app {
    position: fixed !important;
    inset: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    overflow: hidden !important;
  }
  #app > .owner-wrap {
    position: fixed !important;
    inset: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
  }
  .approved-certificate {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 7mm 13mm 6mm !important;
    border: 2.5mm double #d7a400 !important;
    box-sizing: border-box !important;
    aspect-ratio: auto !important;
    transform: none !important;
    zoom: 1 !important;
    overflow: hidden !important;
  }
  .approved-certificate .certificate-logo { width: 62mm !important; max-height: 34mm !important; }
  .approved-certificate h1 { font-size: 33pt !important; }
  .approved-certificate .cert-student { font-size: 26pt !important; }
  .approved-certificate .cert-course { font-size: 25pt !important; }
  .cert-result { font-size: 14pt !important; }
  .cert-lower { font-size: 11.5pt !important; grid-template-columns: 1fr 36mm 1fr !important; }
  .certificate-stamp { width: 34mm !important; height: 34mm !important; }
  .cert-signature { bottom: 11mm !important; }
  header, footer, nav, button, .whatsapp-float, .no-print, .cert-actions, .certificate-actions { display: none !important; }
}

/* Stage 10N.5 — exact A4 landscape with protected 5 mm blank perimeter */
@media print {
  @page { size: A4 landscape; margin: 0 !important; }
  html, body { width:297mm!important; height:210mm!important; margin:0!important; padding:0!important; overflow:hidden!important; background:#fff!important; }
  body > * { visibility:hidden!important; }
  #app, #app * { visibility:visible!important; }
  #app, #app > .owner-wrap { position:fixed!important; left:0!important; top:0!important; width:297mm!important; height:210mm!important; margin:0!important; padding:0!important; max-width:none!important; overflow:hidden!important; background:#fff!important; }
  header, footer, nav, .whatsapp-float, .cert-actions, .certificate-actions, .no-print, button { display:none!important; }
  .approved-certificate {
    position:absolute!important;
    left:5mm!important; top:5mm!important; right:auto!important; bottom:auto!important;
    width:287mm!important; height:200mm!important;
    max-width:287mm!important; max-height:200mm!important;
    min-width:0!important; min-height:0!important;
    margin:0!important;
    padding:7mm 13mm 6mm!important;
    border:2.5mm double #d7a400!important;
    box-sizing:border-box!important;
    aspect-ratio:auto!important;
    transform:none!important; zoom:1!important;
    overflow:hidden!important;
    page-break-inside:avoid!important; break-inside:avoid-page!important;
  }
  .approved-certificate:before, .approved-certificate:after, .cert-corner { overflow:hidden!important; }
}
