/* =====================================================================
   RA EduTech Certificate — premium document layer (v2026.10)
   Loaded after ra-platform.css. Applies to every template: colours come
   from the template variables (--navy, --brass, --brass-light, --paper).
   Elements prefixed .rp- are injected by ra-platform.js (premiumize).
   ===================================================================== */

/* ---------- shared ---------- */
.rp .cert-border-inner { z-index: 0; overflow: hidden; }
.rp .cert-border-inner > * { position: relative; z-index: 1; }
.rp .cert-border-inner > .cert-corner,
.rp .cert-border-inner > .cert-seal,
.rp .cert-border-inner > .cert-footer,
.rp .cert-border-inner > .rp-photo,
.rp .cert-border-inner > .ra-doc-watermark,
.rp .cert-border-inner > .ra-powered,
.rp .cert-border-inner > .rp-micro { position: absolute; }

/* institute logo watermark */
.rp .rp-watermark {
    position: absolute !important; inset: 0; z-index: 0 !important;
    display: flex; align-items: center; justify-content: center; pointer-events: none;
}
.rp .rp-watermark img { width: 92mm; max-height: 92mm; object-fit: contain; opacity: .055; }
.rp .rp-watermark span {
    font-family: var(--title-font) !important; font-size: 150px !important; font-weight: 700;
    letter-spacing: 8px; color: var(--navy); opacity: .045; line-height: 1;
}
.rp-marksheet .rp-watermark img { width: 110mm; max-height: 110mm; opacity: .05; }
.rp-marksheet .rp-watermark { top: 22%; bottom: auto; height: 120mm; }

/* security microtext along the inner frame */
.rp .rp-micro {
    z-index: 2 !important; white-space: nowrap; overflow: hidden; pointer-events: none;
    font-family: var(--mono-font) !important; font-size: 4.3px !important; line-height: 1;
    letter-spacing: .55px; color: var(--brass); opacity: .9; text-transform: uppercase;
}
.rp .rp-micro-top    { top: 5px;    left: 62px; right: 62px; }
.rp .rp-micro-bottom { bottom: 5px; left: 62px; right: 62px; }
.rp .rp-micro-left, .rp .rp-micro-right { top: 62px; bottom: 62px; width: 6px; writing-mode: vertical-rl; }
.rp .rp-micro-left  { left: 4px; transform: rotate(180deg); }
.rp .rp-micro-right { right: 4px; }

/* rosette seal (replaces the plain gold disc) */
.rp .cert-seal.rp-seal {
    background: none !important; box-shadow: none !important; border-radius: 0 !important;
    width: 88px; height: 112px; top: 10px; right: 20px; display: block; color: inherit;
}
.rp .cert-seal.rp-seal::before { display: none !important; }
.rp .rp-rosette { width: 100%; height: 100%; display: block; filter: drop-shadow(0 2px 2px rgba(0,0,0,.18)); }
.rp .cert-border-inner > .d-flex.justify-content-between { padding-right: 104px !important; }

/* ---------- certificate ---------- */
.rp-certificate:not(.ra-tpl-sapphire):not(.ra-tpl-modern):not(.ra-tpl-corporate):not(.ra-tpl-emerald) { background-image: radial-gradient(ellipse at center, rgba(255,255,255,0) 55%, rgba(120, 95, 40, .07) 100%) !important; background-size: 100% 100% !important; background-repeat: no-repeat !important; }
.rp-certificate .cert-title {
    font-size: calc(30px * var(--doc-text)) !important; letter-spacing: 5px !important; margin-top: 20px !important;
    color: var(--navy-deep) !important;
}
.rp-certificate #lblCertAward {
    display: inline-flex !important; align-items: center; gap: 12px; margin-top: 4px !important;
    font-size: calc(9.5px * var(--doc-text)) !important; letter-spacing: 4px !important;
}
.rp-certificate #lblCertAward::before, .rp-certificate #lblCertAward::after {
    content: ""; width: 54px; height: 1px; background: linear-gradient(90deg, transparent, var(--brass));
}
.rp-certificate #lblCertAward::after { background: linear-gradient(90deg, var(--brass), transparent); }
.rp-certificate .cert-body { margin-top: 14px !important; line-height: 1.75 !important; font-size: calc(12.2px * var(--doc-text)) !important; }
.rp-certificate .cert-name {
    border-bottom: 0 !important; padding: 0 30px !important; margin: 4px 0 0 !important;
    font-size: calc(38px * var(--doc-text)) !important; color: var(--navy) !important;
}
.rp-certificate .rp-flourish { display: block; width: 300px; height: 19px; margin: 1px auto 2px; }
.rp-certificate .rp-flourish img { width: 100%; height: 100%; display: block; }
.rp-certificate .rp-flourish + br { display: none; }
.rp-certificate #lblCertCourseName {
    display: table; margin: 8px auto 6px !important; padding: 5px 26px;
    font-size: calc(16px * var(--doc-text)) !important; letter-spacing: 1.4px !important;
    border-top: 1px solid var(--brass-light); border-bottom: 1px solid var(--brass-light);
    background: linear-gradient(90deg, transparent, rgba(217, 192, 138, .14), transparent);
}
.rp-certificate.rp-has-photo .cert-body { max-width: 214mm !important; }

/* candidate photo — left, under the logo */
.rp-certificate .rp-photo {
    z-index: 2 !important; left: 24px; top: 112px; width: 23mm; text-align: center;
}
.rp-certificate .rp-photo img {
    width: 23mm; height: 28.5mm; object-fit: cover; display: block; background: #fff;
    border: 2px solid #fff; outline: 1px solid var(--brass); box-shadow: 0 1px 4px rgba(0,0,0,.18);
}
.rp-certificate .rp-photo span {
    display: block; margin-top: 4px; font-family: var(--mono-font) !important;
    font-size: calc(6.6px * var(--doc-text)) !important; color: #555; letter-spacing: .2px; white-space: nowrap;
}

/* footer: QR, signatures */
.rp-certificate .cert-footer { bottom: 22px !important; }
.rp .cert-qr-frame { padding: 4px !important; border: 1px solid var(--brass) !important; outline: 3px solid #fff; box-shadow: 0 0 0 4px var(--brass-light) !important; }
.rp .signature-line { border-top: 1px solid var(--navy) !important; width: 168px !important; }
.rp .ra-sig-name { color: var(--navy-deep) !important; letter-spacing: .2px; }
.rp .ra-sig-role { text-transform: uppercase; letter-spacing: .8px; font-size: calc(7px * var(--doc-text)) !important; }

/* ---------- marksheet ---------- */
.rp-marksheet { height: auto !important; min-height: 296.5mm !important; padding: 9mm !important; }
.rp-marksheet .cert-border-outer { height: auto !important; min-height: calc(296.5mm - 18mm); padding: 10px !important; }
.rp-marksheet .cert-border-inner {
    height: auto !important; min-height: calc(296.5mm - 18mm - 24px);
    display: flex; flex-direction: column; padding: 18px 20px 16px !important;
}
.rp-marksheet .cert-seal.rp-seal { width: 70px; height: 89px; top: 8px; right: 14px; }
.rp-marksheet .cert-border-inner > .d-flex.justify-content-between { padding-right: 82px !important; }
.rp-marksheet .ra-brand-logo { max-height: 56px; }

.rp-marksheet .mark-title {
    display: block; margin: 12px -20px 0 !important; padding: 7px 10px; position: relative;
    background: var(--navy); color: #fff !important; -webkit-text-fill-color: #fff;
    font-size: calc(14.5px * var(--doc-text)) !important; letter-spacing: 3.5px !important;
    border-top: 2px solid var(--brass); border-bottom: 2px solid var(--brass);
}
.rp-marksheet #lblMarkExamName { margin-top: 6px !important; font-size: calc(9px * var(--doc-text)) !important; letter-spacing: 2.4px; color: #4b5563 !important; font-weight: 600; }
.rp-marksheet #lblMarkQualLevel { font-size: calc(8.5px * var(--doc-text)) !important; color: var(--brass) !important; letter-spacing: 1.6px !important; }

.rp-marksheet .mark-info-grid {
    position: relative; margin-top: 10px !important; gap: 0 22px !important; padding: 6px 10px !important;
    border: 1px solid var(--brass-light) !important; border-radius: 4px; background: rgba(255,255,255,.72);
    font-size: calc(9.2px * var(--doc-text)) !important;
}
.rp-marksheet .mark-info-grid.rp-with-photo { padding-right: calc(24mm + 18px) !important; min-height: calc(29mm + 14px); }
.rp-marksheet .mark-info-grid .mi-row { padding: 3.5px 0 !important; border-bottom: 1px dotted #d9d1bd !important; gap: 10px; }
.rp-marksheet .mark-info-grid .mi-row * { font-size: calc(9.2px * var(--doc-text)) !important; }
.rp-marksheet .mark-info-grid .mi-label { text-transform: uppercase; letter-spacing: .5px; font-size: calc(7.4px * var(--doc-text)) !important; color: #6b7280 !important; white-space: nowrap; }
.rp-marksheet .rp-mono { font-family: var(--mono-font) !important; }
.rp-marksheet .rp-ms-photo { position: absolute; right: 8px; top: 7px; width: 24mm; text-align: center; }
.rp-marksheet .rp-ms-photo img { width: 24mm; height: 29mm; object-fit: cover; display: block; border: 2px solid #fff; outline: 1px solid var(--brass); box-shadow: 0 1px 4px rgba(0,0,0,.16); background: #fff; }
.rp-marksheet .rp-ms-photo span { display: block; margin-top: 2px; font-size: calc(6.5px * var(--doc-text)) !important; letter-spacing: 1px; text-transform: uppercase; color: #6b7280; }

.rp-marksheet .marks-table { margin-top: 12px !important; border: 1px solid var(--navy); }
.rp-marksheet .marks-table th, .rp-marksheet .marks-table td,
.rp-marksheet .marks-table th *, .rp-marksheet .marks-table td * { font-size: calc(8.4px * var(--doc-text)) !important; line-height: 1.3; }
.rp-marksheet .marks-table th {
    background: var(--navy) !important; color: #fff !important; padding: 6px 4px !important;
    font-size: calc(7px * var(--doc-text)) !important; letter-spacing: .6px !important; vertical-align: middle;
    border-bottom: 2px solid var(--brass);
}
.rp-marksheet .marks-table td { padding: 6px 4px !important; font-variant-numeric: tabular-nums; vertical-align: middle; }
.rp-marksheet .marks-table td:first-child { font-weight: 600; color: var(--navy-deep); padding-left: 7px !important; }
.rp-marksheet .marks-table th:first-child { padding-left: 7px !important; }
.rp-marksheet .marks-table th:nth-child(1) { width: 25% !important; }
.rp-marksheet .marks-table th:nth-child(2) { width: 12% !important; }
.rp-marksheet .marks-table th:nth-child(3), .rp-marksheet .marks-table th:nth-child(4),
.rp-marksheet .marks-table th:nth-child(5), .rp-marksheet .marks-table th:nth-child(7),
.rp-marksheet .marks-table th:nth-child(8) { width: 7.5% !important; }
.rp-marksheet .marks-table th:nth-child(6) { width: 9.5% !important; }
.rp-marksheet .marks-table th:nth-child(9) { width: 15.5% !important; }
.rp-marksheet .marks-table td:nth-child(8) { font-weight: 800; color: var(--navy); }
.rp-marksheet .marks-table tbody tr:nth-child(even) { background: rgba(217, 192, 138, .10) !important; }
.rp-marksheet .marks-table tfoot td { background: rgba(217, 192, 138, .28) !important; border-top: 1.5px solid var(--navy) !important; font-weight: 800; }
.rp-marksheet .credit-status { font-size: calc(7px * var(--doc-text)) !important; padding: 1px 7px; }

.rp-marksheet .mark-result-strip {
    margin-top: 12px !important; padding: 8px 14px !important; border-radius: 6px !important;
    background: linear-gradient(120deg, rgba(255,255,255,.9), rgba(217,192,138,.18)) !important;
    border: 1px solid var(--brass-light) !important; align-items: center !important;
}
.rp-marksheet .mark-result-strip .mr-label { font-size: calc(7px * var(--doc-text)) !important; letter-spacing: .9px !important; }
.rp-marksheet .mark-result-strip .mr-value { font-size: calc(13px * var(--doc-text)) !important; }
.rp-marksheet .mark-result-strip .text-muted { font-size: calc(7px * var(--doc-text)) !important; }
.rp-marksheet .rp-ring-item { display: flex; flex-direction: column; align-items: center; flex: 0 0 auto; min-width: 74px; overflow: visible; }
.rp-marksheet .rp-ring-item .mr-label { order: 2; margin-top: 2px; }
.rp-marksheet .rp-ring { width: 62px; height: 62px; display: block; }
.rp-marksheet .rp-ring-item #lblMarkPercent { display: none; }
.rp-marksheet .grade-pill {
    min-width: 38px !important; height: 26px !important; font-size: calc(14px * var(--doc-text)) !important;
    font-family: var(--title-font) !important; background: var(--navy) !important; color: #fff !important; border: 2px solid var(--brass-light);
}
.rp-marksheet .rp-stamp {
    display: inline-block; padding: 1px 10px; border: 2px solid currentColor; border-radius: 4px;
    letter-spacing: 2px; transform: rotate(-6deg); box-shadow: inset 0 0 0 1px rgba(255,255,255,.6);
    font-family: var(--title-font) !important;
}

.rp-marksheet .rp-legend {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 4px;
    margin-top: 8px; font-size: calc(6.9px * var(--doc-text)) !important; color: #4b5563;
}
.rp-marksheet .rp-legend * { font-size: calc(6.9px * var(--doc-text)) !important; }
.rp-marksheet .rp-legend-title { font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: var(--navy); margin-right: 4px; }
.rp-marksheet .rp-band { border: 1px solid #e3dccb; border-radius: 3px; padding: 1px 5px; background: #fff; white-space: nowrap; }
.rp-marksheet .rp-band b { color: var(--navy); margin-right: 4px; }
.rp-marksheet .rp-band i { font-style: normal; color: #8a8f99; margin-left: 4px; }
.rp-marksheet .rp-band.is-mine { border-color: var(--navy); background: var(--navy); color: #fff; }
.rp-marksheet .rp-band.is-mine b, .rp-marksheet .rp-band.is-mine i { color: #fff; }

.rp-marksheet .mark-result-strip ~ .text-center { margin-top: 10px !important; }
.rp-marksheet .mark-result-strip ~ .text-center * { font-size: calc(7.2px * var(--doc-text)) !important; }
.rp-marksheet .mark-result-strip ~ .text-center > .fw-bold { font-size: calc(8px * var(--doc-text)) !important; color: var(--navy); }
/* signatures pinned to the bottom of the frame, always inside the border */
.rp-marksheet .cert-border-inner > .row.align-items-end { margin-top: auto !important; padding-top: 30px; padding-bottom: 6px; }
.rp-marksheet .signature-line { margin-top: 30px !important; }

@media print {
    .rp .rp-micro, .rp .rp-watermark, .rp .rp-rosette { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .rp-marksheet .mark-title, .rp-marksheet .marks-table th, .rp-marksheet .grade-pill,
    .rp-marksheet .rp-band.is-mine { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* Minimal keeps its deliberately plain look: no rosette */
.ra-tpl-minimal .cert-seal.rp-seal { display: none !important; }
.ra-tpl-minimal .cert-border-inner > .d-flex.justify-content-between { padding-right: 12px !important; }
