@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

/* ============================================================
   Student Profile / Admission Details — minimal CSS overrides
   Applies the same clean design to BOTH pages:
     • Admin view (1st page) -> root .printheader        (student_details.rs)
     • Print preview page    -> root .printStudent_details (studentprint.rs)
   HTML / JS / backend / IDs / classes / print logic untouched.
   ============================================================ */

/* Poppins + light preview background */
.printheader,
.printStudent_details,
.printheader *,
.printStudent_details * {
    box-sizing: border-box;
    color: #1e293b;
}
main:has(.printheader),
.print-document-body:has(.printStudent_details) {
    background: #f5f7fb;
}

/* The paper / card: subtle shadow + 6px radius, less whitespace */
.printheader,
.printStudent_details .print_stud > .row {
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
    padding: 26px;
    --bs-gutter-x: 0;
}
.printheader {
    margin: 24px auto;
    max-width: 900px;
}
.details_section:has(.printheader) .container-fluid {
    max-width: 900px;
    margin-inline: auto;
}
.printStudent_details .details_section {
    margin: 0;
    padding: 0;
}
.printStudent_details .print_stud {
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
}
.printStudent_details .print_stud > .row {
    margin: 0;
}

/* Academic year + divider (admin page only) */
.printheader > h6.text-center {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.82rem;
    font-weight: 600;
    color: #64748b;
    margin: 0 0 10px;
}
.printheader > hr.m-0 {
    border: 0 !important;
    border-top: 1px solid #e2e8f0 !important;
    margin: 0 0 16px !important;
}

/* Header: logo on the left, school name + address centred in the column
   beside it. The <table>/<tbody>/<tr> are flattened with display:contents so
   the two <td>s become flex items of the table (logo cell pulled left). */
.printheader > table:first-of-type,
.printStudent_details .print_stud > .row > table:first-of-type {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    border: 0 !important;
    margin: 0 0 14px !important;
}
.printheader > table:first-of-type tbody,
.printStudent_details .print_stud > .row > table:first-of-type tbody,
.printheader > table:first-of-type tr,
.printStudent_details .print_stud > .row > table:first-of-type tr {
    display: contents !important;
}
.printheader > table:first-of-type td,
.printStudent_details .print_stud > .row > table:first-of-type td {
    border: 0 !important;
    padding: 0 !important;
}
/* Logo cell on the left (it is 2nd in the DOM, so pull it to the front) */
.printheader > table:first-of-type td.col-md-1,
.printStudent_details .print_stud > .row > table:first-of-type td.col-md-1 {
    order: -1;
    flex: 0 0 auto;
    width: 72px !important;
    text-align: left !important;
}
.printheader > table:first-of-type td.col-8,
.printStudent_details .print_stud > .row > table:first-of-type td.col-8 {
    flex: 1 1 auto !important;
    width: auto !important;
    text-align: center !important;
}
.printheader > table:first-of-type h3.mx-green,
.printStudent_details .print_stud > .row > table:first-of-type h3.mx-green {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    letter-spacing: 0.02em;
}
.printheader > table:first-of-type img,
.printStudent_details .print_stud > .row > table:first-of-type img {
    width: 60px;
    height: 60px;
    object-fit: contain;
    margin: 0;
}
/* Thin divider below header (print page has no <hr>) */
.printStudent_details .print_stud > .row > table:first-of-type {
    border-bottom: 1px solid #e2e8f0 !important;
}

/* School address line below the name */
.printheader .sp-school-address,
.printStudent_details .sp-school-address {
    font-size: 0.85rem;
    font-weight: 500;
    color: #64748b;
    text-align: center;
    margin: 2px 0 0;
}

/* Student details: tighter spacing, bold labels, aligned values */
.printheader .row:has(.stu_img_det),
.printStudent_details .row:has(.stu_img_det) {
    align-items: center;
    margin: 0 0 14px;
}
.printheader .stu_img_det,
.printStudent_details .stu_img_det {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    margin: 0 auto;
    display: block;
}
.printheader .row:has(.stu_img_det) .table,
.printStudent_details .row:has(.stu_img_det) .table {
    margin: 0;
}
.printheader .row:has(.stu_img_det) .table td,
.printStudent_details .row:has(.stu_img_det) .table td {
    border: 0;
    padding: 6px 4px;
    vertical-align: middle;
}
.printheader .row:has(.stu_img_det) .table td strong,
.printStudent_details .row:has(.stu_img_det) .table td strong {
    display: block;
    font-weight: 600;
    color: #64748b;
    font-size: 0.85rem;
}
.printheader .row:has(.stu_img_det) .table td:not(:first-child),
.printStudent_details .row:has(.stu_img_det) .table td:not(:first-child) {
    font-weight: 500;
    color: #1e293b;
}

/* Parent / address table: clean spacing, bold labels */
.printheader > table:nth-of-type(2),
.printStudent_details .print_stud > .row > table.table-bordered:nth-of-type(2) {
    border: 1px solid #e2e8f0 !important;
}
.printheader > table:nth-of-type(2) td,
.printStudent_details
    .print_stud
    > .row
    > table.table-bordered:nth-of-type(2)
    td {
    padding: 9px 12px;
    vertical-align: middle;
}
.printheader > table:nth-of-type(2) td strong,
.printStudent_details
    .print_stud
    > .row
    > table.table-bordered:nth-of-type(2)
    td
    strong {
    font-weight: 600;
    color: #64748b;
}

/* Section title */
.printheader h5,
.printStudent_details h5 {
    font-weight: 600;
    color: #1e293b;
    margin: 0 0 10px;
}

/* Fee + discount tables: full width, branded header, zebra, balance highlight */
.printheader .mt-3,
.printStudent_details .mt-3 {
    margin-top: 14px !important;
}
.printheader .mt-3 .table,
.printStudent_details .mt-3 .table,
.printheader .table-responsive .table {
    width: 100%;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
}
.printheader .mt-3 .table thead th,
.printStudent_details .mt-3 .table thead th,
.printheader .table-responsive .table thead th {
    background: #4f46e5;
    color: #fff;
    border: 0;
    padding: 10px 12px;
    font-weight: 600;
    text-align: left;
}
.printheader .mt-3 .table tbody td,
.printStudent_details .mt-3 .table tbody td,
.printheader .table-responsive .table tbody td {
    border: 0;
    border-top: 1px solid #eef2f7;
    padding: 10px 12px;
}
.printheader .mt-3 .table tbody tr:nth-child(even),
.printStudent_details .mt-3 .table tbody tr:nth-child(even),
.printheader .table-responsive .table tbody tr:nth-child(even) {
    background: #f8fafc;
}
.printheader .mt-3 .table tbody tr.table-secondary,
.printStudent_details .mt-3 .table tbody tr.table-secondary {
    background: #eef2ff !important;
    font-weight: 700;
}
.printheader .mt-3 .table tbody tr.table-secondary td,
.printStudent_details .mt-3 .table tbody tr.table-secondary td {
    color: #4338ca;
}

/* Print: A4 portrait, large readable text, aligned */
@page studentProfile {
    size: A4 portrait;
    margin: 10mm;
}
/* Apply the named page to <body> (scoped) so the whole document uses it
   from page 1 — avoids a forced break that leaves the first page blank. */
body:has(.printheader),
body:has(.printStudent_details) {
    page: studentProfile;
}

@media print {
    /* Black body text; allow the branded header / zebra / balance to print */
    .printheader,
    .printStudent_details,
    .printheader *,
    .printStudent_details * {
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Sheet: fill the printable width, no chrome, no gutter offsets.
       Overrides print.css .print_stud { width:210mm } and the inline 842px. */
    .printheader,
    .printStudent_details .print_stud,
    .printStudent_details .print_stud > .row {
        box-shadow: none !important;
        border: 0 !important;
        border-radius: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
    }
    .details_section:has(.printheader) .container-fluid,
    .printStudent_details .details_section {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    /* Reset the theme .section_space_md (100px) padding on the admin section
       and print.css fixed mm widths on .print-container so nothing overflows. */
    .details_section:has(.printheader),
    .print-document-body:has(.printStudent_details),
    .print-container:has(.printStudent_details) {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* (Portrait = vertical stack. The 2-column grid for landscape lives in its
       own @media print and (orientation: landscape) block below.) */

    /* Header: logo on the left, school name + address centred beside it */
    .printheader > table:first-of-type,
    .printStudent_details .print_stud > .row > table:first-of-type {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        margin: 0 0 8px !important;
        border: 0 !important;
    }
    .printheader > table:first-of-type td.col-md-1,
    .printStudent_details .print_stud > .row > table:first-of-type td.col-md-1 {
        order: -1;
        flex: 0 0 auto;
        width: 60px !important;
        text-align: left !important;
    }
    .printheader > table:first-of-type img,
    .printStudent_details .print_stud > .row > table:first-of-type img {
        width: 50px !important;
        height: 50px !important;
        margin: 0 !important;
    }
    .printheader > table:first-of-type h3.mx-green,
    .printStudent_details .print_stud > .row > table:first-of-type h3.mx-green {
        margin: 0 !important;
        font-size: 22pt !important;
        line-height: 1.25 !important;
    }
    /* School address line below the name (print) */
    .printheader .sp-school-address,
    .printStudent_details .sp-school-address {
        font-size: 12pt !important;
        text-align: center !important;
        margin: 2px 0 0 !important;
    }
    .printheader > hr.m-0 {
        border: 0 !important;
        border-top: 1px solid #000 !important;
        margin: 0 0 8px !important;
    }
    .printStudent_details .print_stud > .row > table:first-of-type {
        border-bottom: 1px solid #000 !important;
    }

    /* Student photo + details: photo fixed top-left, details beside it, large text */
    .printheader .row:has(.stu_img_det),
    .printStudent_details .row:has(.stu_img_det) {
        align-items: flex-start !important;
        margin: 0 !important;
    }
    .printheader .row:has(.stu_img_det) > *,
    .printStudent_details .row:has(.stu_img_det) > * {
        padding: 0 !important;
    }
    .printheader .row:has(.stu_img_det) > *:first-child,
    .printStudent_details .row:has(.stu_img_det) > *:first-child {
        flex: 0 0 auto;
        width: 160px !important;
    }
    .printheader .row:has(.stu_img_det) > *:last-child,
    .printStudent_details .row:has(.stu_img_det) > *:last-child {
        flex: 1 1 auto !important;
        width: auto !important;
    }
    .printheader .stu_img_det,
    .printStudent_details .stu_img_det {
        width: 150px !important;
        height: 150px !important;
        margin: 0 !important;
        border: 1px solid #000 !important;
        border-radius: 0 !important;
        object-fit: cover !important;
    }
    .printheader .row:has(.stu_img_det) .table,
    .printStudent_details .row:has(.stu_img_det) .table {
        width: 100% !important;
        margin: 0 !important;
    }
    .printheader .row:has(.stu_img_det) .table td,
    .printStudent_details .row:has(.stu_img_det) .table td {
        padding: 4px 8px !important;
        border: 0 !important;
        font-size: 15pt !important;
        line-height: 1.3 !important;
    }
    .printheader .row:has(.stu_img_det) .table td strong,
    .printStudent_details .row:has(.stu_img_det) .table td strong {
        font-size: 14pt !important;
    }

    /* Parent / address + fee + discount tables: full width, collapsed black borders */
    .printheader > table:nth-of-type(2),
    .printStudent_details
        .print_stud
        > .row
        > table.table-bordered:nth-of-type(2),
    .printheader .mt-3 .table,
    .printStudent_details .mt-3 .table,
    .printheader .table-responsive .table {
        width: 100% !important;
        border-collapse: collapse !important;
        border-spacing: 0 !important;
        border: 1px solid #000 !important;
        border-radius: 0 !important;
        margin: 0 !important;
    }
    .printheader > table:nth-of-type(2) td,
    .printStudent_details
        .print_stud
        > .row
        > table.table-bordered:nth-of-type(2)
        td,
    .printheader .mt-3 .table tbody td,
    .printStudent_details .mt-3 .table tbody td,
    .printheader .table-responsive .table tbody td {
        border: 1px solid #000 !important;
        padding: 6px 10px !important;
        font-size: 15pt !important;
        line-height: 1.3 !important;
    }
    /* Fee header bar: brand indigo, sticky off (sticky breaks print) */
    .printheader .mt-3 .table thead th,
    .printStudent_details .mt-3 .table thead th,
    .printheader .table-responsive .table thead th {
        position: static !important;
        background: #4f46e5 !important;
        color: #fff !important;
        border: 1px solid #000 !important;
        padding: 6px 10px !important;
        font-size: 14pt !important;
        text-align: left !important;
    }
    /* Zebra + Balance Fee highlight */
    .printheader .mt-3 .table tbody tr:nth-child(even),
    .printStudent_details .mt-3 .table tbody tr:nth-child(even),
    .printheader .table-responsive .table tbody tr:nth-child(even) {
        background: #f8fafc !important;
    }
    /* Section titles + spacing */
    .printheader h5,
    .printStudent_details h5 {
        margin: 8px 0 4px !important;
        font-size: 16pt !important;
        line-height: 1.25 !important;
    }
    .printheader .mt-3,
    .printStudent_details .mt-3 {
        margin-top: 8px !important;
    }

    /* Hide buttons / interactive controls */
    .printheader .stuprint,
    .printheader .btn_primary,
    .printheader a.btn_primary,
    .printheader button.btn_primary,
    .printheader .d-flex.flex-wrap.justify-content-center,
    .printStudent_details .print-no-print,
    .printStudent_details .btn_primary,
    .printStudent_details a.btn_primary,
    .printStudent_details button.btn_primary {
        display: none !important;
    }

    /* Keep each block together to fit one page */
    .printheader .row:has(.stu_img_det),
    .printheader .mt-3,
    .printStudent_details .row:has(.stu_img_det),
    .printStudent_details .mt-3 {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}

/* =====================================
   Cumulative Report Card (Marks_Card)
   ===================================== */

@page cumRc { size: A4 portrait; margin: 8mm; }
body:has(.cumrc-a4-shell) { page: cumRc; }

/* 1. CSS VARIABLES */
:root {
--rc-primary: #243B8F;
--rc-primary-dark: #1c2d6e;
--rc-primary-light: #eef2ff;
--rc-secondary: #F59E0B;
--rc-secondary-light: #fef3c7;
--rc-success: #16A34A;
--rc-success-light: #dcfce7;
--rc-danger: #DC2626;
--rc-danger-light: #fee2e2;
--rc-info: #2563EB;
--rc-info-light: #dbeafe;
--rc-bg: #F8FAFC;
--rc-card: #FFFFFF;
--rc-border: #E5E7EB;
--rc-radius: 12px;
--rc-text: #1e293b;
--rc-muted: #64748b;
--rc-shadow-sm: 0 1px 3px rgba(36,59,143,0.08);
--rc-shadow: 0 4px 14px rgba(36,59,143,0.10);
--rc-shadow-lg: 0 12px 32px rgba(36,59,143,0.16);
--rc-font: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
--rc-white: #ffffff;
--rc-primary-darker: #142461;
--rc-totals-bg: #e0e7ff;
--rc-na-bg: #f1f5f9;
--rc-na-border: #94a3b8;
--rc-label: #475569;
--rc-faint: #ccc;
--rc-photo-icon: #c5cae9;
--rc-photo-cap: #9e9e9e;
--rc-secondary-dark: #b45309;
--rc-grade-ap: #1b5e20;
--rc-grade-a: #2e7d32;
--rc-grade-bp: #0d47a1;
--rc-grade-b: #1565c0;
--rc-grade-c: #e65100;
--rc-grade-d: #bf360c;
--rc-grade-f: #b71c1c;
}

/* 2. RESET (scoped to report) */
.cumrc-a4-shell, .cumrc-a4-shell * { box-sizing: border-box; }

/* 3. GLOBAL (scoped to report body) */
body:has(.cumrc-a4-shell) {
margin: 0;
background: var(--rc-bg);
font-family: var(--rc-font);
color: var(--rc-text);
-webkit-font-smoothing: antialiased;
}

/* 4. REPORT CONTAINER */
.cumrc-a4-shell {
max-width: 820px;
margin: 0 auto;
padding: 18px 12px;
}
.cumrc-page {
background: var(--rc-card);
overflow: hidden;
box-shadow: var(--rc-shadow-lg);
margin: 0 auto 28px;
border: 1px solid var(--rc-border);
border-radius: var(--rc-radius);
-webkit-print-color-adjust: exact !important;
print-color-adjust: exact !important;
min-height: 280mm;
display: flex;
flex-direction: column;
}

/* 4b. PAGE CONTENT — vertical distribution to fill A4 */
.cumrc-page > div:nth-child(2) { display: flex; flex-direction: column; flex: 1; padding: 22px 28px; }
#rcPage2 > div:nth-child(2) { padding-bottom: 14px; }
#rcPage1 > div:nth-child(2) { justify-content: space-between; }
#rcPage1 > div:nth-child(2) > * { margin-top: 0 !important; margin-bottom: 0 !important; }
#rcPage2 .cumrc-sig-row { margin-top: auto !important; }

/* 5. HEADER (Page 1 banner + ribbon) */
.cumrc-banner { display: flex; flex-direction: column; border-bottom: 1px solid var(--rc-border); }
.cumrc-banner::before { content: ""; display: block; height: 5px; background: linear-gradient(90deg, var(--rc-primary), var(--rc-info) 50%, var(--rc-secondary)); }
.cumrc-banner-top {
display: flex;
align-items: center;
gap: 24px;
padding: 26px 32px 22px;
background: linear-gradient(135deg, var(--rc-white) 0%, var(--rc-primary-light) 100%);
}
.cumrc-banner-logo, .cumrc-banner-logo-ph {
width: 90px;
height: 90px;
border-radius: 50%;
border: 3px solid var(--rc-white);
box-shadow: 0 0 0 2px var(--rc-primary-light), var(--rc-shadow-sm);
flex-shrink: 0;
}
.cumrc-banner-logo {
background: var(--rc-bg);
object-fit: contain;
padding: 6px;
}
.cumrc-banner-logo-ph {
background: linear-gradient(135deg, var(--rc-primary), var(--rc-info));
display: flex;
align-items: center;
justify-content: center;
color: var(--rc-white);
font-size: 32px;
}
.cumrc-banner-school-name {
font-size: 22px;
font-weight: 800;
color: var(--rc-primary);
letter-spacing: .4px;
line-height: 1.3;
text-transform: uppercase;
}
.cumrc-banner-school-addr { font-size: 12px; color: var(--rc-muted); margin-top: 6px; line-height: 1.4; }
.cumrc-banner-contacts {
font-size: 12px;
color: var(--rc-muted);
margin-top: 8px;
display: flex;
gap: 22px;
justify-content: center;
flex-wrap: wrap;
font-weight: 500;
line-height: 1.4;
}
.cumrc-banner-contacts i { color: var(--rc-secondary); margin-right: 4px; }
.cumrc-banner-ay {
text-align: right;
flex-shrink: 0;
align-self: center;
background: linear-gradient(135deg, var(--rc-primary), var(--rc-info));
border-radius: 10px;
padding: 11px 18px;
box-shadow: var(--rc-shadow-sm);
}
.cumrc-banner-ay-label {
font-size: 10px;
color: rgba(255,255,255,.8);
text-transform: uppercase;
letter-spacing: 1.4px;
font-weight: 600;
}
.cumrc-banner-ay-val {
font-size: 15px;
font-weight: 800;
color: var(--rc-white);
margin-top: 2px;
}
.cumrc-ribbon {
background: linear-gradient(90deg, var(--rc-primary) 0%, var(--rc-info) 50%, var(--rc-primary-dark) 100%);
text-align: center;
padding: 14px 0;
letter-spacing: 5px;
font-size: 16px;
font-weight: 800;
color: var(--rc-white);
text-transform: uppercase;
position: relative;
box-shadow: 0 4px 14px rgba(36,59,143,0.25);
}
.cumrc-ribbon::after {
content: "";
position: absolute;
left: 0; right: 0; bottom: 0;
height: 3px;
background: var(--rc-secondary);
}

/* ── Compact header (page 2) ── */
.cumrc-compact-hdr {
background: linear-gradient(135deg, var(--rc-primary), var(--rc-info));
color: var(--rc-white);
padding: 14px 24px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
}
.cumrc-compact-hdr-logo {
width: 42px;
height: 42px;
border-radius: 50%;
object-fit: contain;
background: rgba(255,255,255,.18);
padding: 4px;
flex-shrink: 0;
border: 2px solid rgba(255,255,255,.4);
}
.cumrc-compact-hdr-school { font-weight: 700; font-size: 16px; }
.cumrc-compact-hdr-sub { font-size: 12px; opacity: .9; margin-top: 3px; line-height: 1.4; }
.cumrc-compact-hdr-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 2px;
background: var(--rc-secondary);
color: var(--rc-white);
padding: 5px 14px;
border-radius: 30px;
text-transform: uppercase;
}

/* ── Section title ── */
.cumrc-sec-title {
font-size: 14px;
font-weight: 700;
color: var(--rc-primary);
text-transform: uppercase;
letter-spacing: 1.2px;
line-height: 1.4;
border-bottom: 2px solid var(--rc-border);
border-left: 4px solid var(--rc-secondary);
padding: 0 0 9px 12px;
margin-bottom: 16px;
display: flex;
align-items: center;
gap: 9px;
}
.cumrc-sec-title i { color: var(--rc-secondary); font-size: 14px; }

/* 5b. MARKS DETAILS HEADER (page 2) */
#rcPage2 .cumrc-sec-title { border-left: none; padding: 8px 16px 10px 14px; font-size: 15px; font-weight: 800; }
#rcPage2 .cumrc-sec-title i { font-size: 15px; }

/* 6. STUDENT DETAILS */
#rcPage1 > div:nth-child(2) > div:first-child { align-items: stretch !important; }
.cumrc-photo-box {
width: 150px;
height: 200px;
min-height: 200px;
border: 1px solid var(--rc-border);
border-radius: 12px;
background: var(--rc-bg);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
overflow: hidden;
position: relative;
color: var(--rc-muted);
font-size: 11px;
flex-shrink: 0;
box-shadow: 0 2px 8px rgba(36,59,143,0.10);
align-self: start;
}
.cumrc-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-items: stretch; }
.cumrc-profile-row {
display: flex;
flex-direction: column;
gap: 4px;
padding: 10px 14px;
background: var(--rc-card);
border: 1px solid var(--rc-border);
border-radius: 8px;
font-size: 12px;
min-height: 56px;
}
.cumrc-profile-row:nth-child(odd) { background: var(--rc-card); }
.cumrc-profile-row:nth-last-child(-n+2) { border: 1px solid var(--rc-border); }
.cumrc-profile-icon { color: var(--rc-secondary); font-size: 13px; width: 16px; flex-shrink: 0; }
.cumrc-profile-lbl { display: flex; align-items: center; gap: 6px; font-family: 'Inter','Roboto','Noto Sans',Arial,sans-serif; font-size: 11px; font-weight: 600; color: #6B7280; line-height: 1.3; }
.cumrc-profile-val { font-family: 'Inter','Roboto','Noto Sans',Arial,sans-serif; font-weight: 600; color: #1F2937; font-size: 15px; line-height: 1.5; letter-spacing: 0.2px; word-break: break-word; overflow-wrap: break-word; padding-left: 22px; }
/* Per-field typography (fields are emitted in a fixed order: Full Name, Admission No., Class & Section, Academic Year, DOB, Parent/Guardian, Contact No., Address) */
.cumrc-profile-grid > .cumrc-profile-row:nth-child(1) .cumrc-profile-val { font-size: 16px; font-weight: 700; color: #111827; }
.cumrc-profile-grid > .cumrc-profile-row:nth-child(6) .cumrc-profile-val { font-size: 15px; font-weight: 600; }
.cumrc-profile-grid > .cumrc-profile-row:nth-child(2) .cumrc-profile-val,
.cumrc-profile-grid > .cumrc-profile-row:nth-child(4) .cumrc-profile-val,
.cumrc-profile-grid > .cumrc-profile-row:nth-child(5) .cumrc-profile-val,
.cumrc-profile-grid > .cumrc-profile-row:nth-child(7) .cumrc-profile-val { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.cumrc-profile-grid > .cumrc-profile-row:nth-child(8) .cumrc-profile-val { white-space: normal; text-align: left; line-height: 1.5; word-break: break-word; overflow-wrap: break-word; }

/* 7. SUMMARY CARDS */
.cumrc-result-bar {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 16px;
}
.cumrc-result-cell {
background: var(--rc-info-light);
border: 1px solid var(--rc-border);
border-top: 5px solid var(--rc-info);
border-radius: 10px;
padding: 22px 10px;
text-align: center;
box-shadow: var(--rc-shadow-sm);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 122px;
}
.cumrc-result-cell:nth-child(2) { background: var(--rc-primary-light); border-top-color: var(--rc-primary); }
.cumrc-result-cell:nth-child(3) { background: var(--rc-primary-light); border-top-color: var(--rc-primary); }
.cumrc-result-cell:nth-child(4) { background: var(--rc-secondary-light); border-top-color: var(--rc-secondary); }
.cumrc-result-cell:nth-child(5) { background: var(--rc-success-light); border-top-color: var(--rc-success); }
.cumrc-result-val {
font-family: 'Inter','Roboto','Noto Sans',Arial,sans-serif;
font-size: 20px;
font-weight: 800;
color: var(--rc-info);
line-height: 1.2;
font-variant-numeric: tabular-nums;
font-feature-settings: "tnum";
}
.cumrc-result-cell:nth-child(2) .cumrc-result-val { color: var(--rc-primary); }
.cumrc-result-cell:nth-child(4) .cumrc-result-val { color: var(--rc-secondary-dark); }
.cumrc-result-cell:nth-child(5) .cumrc-result-val { color: var(--rc-success); }
.cumrc-result-lbl {
font-size: 11px;
color: var(--rc-muted);
text-transform: uppercase;
letter-spacing: .7px;
margin-top: 9px;
font-weight: 600;
line-height: 1.3;
}
.cumrc-rank-sub {
font-size: 9px;
color: var(--rc-muted);
margin-top: 5px;
font-weight: 500;
line-height: 1.2;
letter-spacing: .3px;
text-transform: none;
}

/* Dashboard result/rank conditional states (PASS/FAIL, ranked/N-A) */
.cumrc-result-cell.cumrc-result-pass { background: var(--rc-success-light); border-top-color: var(--rc-success); }
.cumrc-result-cell.cumrc-result-fail { background: var(--rc-danger-light); border-top-color: var(--rc-danger); }
.cumrc-result-pass .cumrc-result-val { color: var(--rc-success); }
.cumrc-result-fail .cumrc-result-val { color: var(--rc-danger); }
.cumrc-result-cell.cumrc-rank-na { background: var(--rc-na-bg); border-top-color: var(--rc-na-border); }
.cumrc-rank-na .cumrc-result-val { color: var(--rc-muted); }

/* Inline-style conversions — layout helpers + per-cell styling */
.cumrc-toolbar-title { color: var(--rc-white); font-weight: 700; font-size: 14px; }
.cumrc-banner-mid { flex: 1; text-align: center; }
.cumrc-photo-row { display: flex; gap: 16px; align-items: flex-start; }
.cumrc-photo-icon { color: #cbd5e1; font-size: 2.5rem; }
.cumrc-photo-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.cumrc-photo-cap { font-size: 11px; color: var(--rc-muted); margin-top: 6px; }
.cumrc-profile-wrap { flex: 1; }
.cumrc-att-row { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.cumrc-att-col { flex: 1; min-width: 240px; }
.cumrc-att-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.cumrc-att-stat:nth-child(1) { border-top-color: var(--rc-success); }
.cumrc-att-stat:nth-child(2) { border-top-color: var(--rc-danger); }
.cumrc-att-stat:nth-child(3) { border-top-color: var(--rc-info); }
.cumrc-att-stat:nth-child(1) .cumrc-att-val { color: var(--rc-success); }
.cumrc-att-stat:nth-child(2) .cumrc-att-val { color: var(--rc-danger); }
.cumrc-att-stat:nth-child(3) .cumrc-att-val { color: var(--rc-info); }
.cumrc-table-wrap { overflow-x: auto; }
.cumrc-marks-table .cumrc-mark-empty { color: var(--rc-faint); }
.cumrc-marks-table .cumrc-cell-total { font-weight: 700; color: #111827; font-size: 15px; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.cumrc-marks-table .cumrc-cell-max { font-weight: 700; color: #111827; font-size: 15px; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.cumrc-marks-table .cumrc-cell-avg { font-weight: 700; color: #111827; font-size: 15px; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.cumrc-marks-totals td:first-child { font-weight: 900; color: var(--rc-primary-dark); }
.cumrc-marks-table .cumrc-totals-max { color: var(--rc-muted); }
.cumrc-legend-chip:nth-child(1) { border-left-color: var(--rc-grade-ap); }
.cumrc-legend-chip:nth-child(2) { border-left-color: var(--rc-grade-a); }
.cumrc-legend-chip:nth-child(3) { border-left-color: var(--rc-grade-bp); }
.cumrc-legend-chip:nth-child(4) { border-left-color: var(--rc-grade-b); }
.cumrc-legend-chip:nth-child(5) { border-left-color: var(--rc-grade-c); }
.cumrc-legend-chip:nth-child(6) { border-left-color: var(--rc-grade-d); }
.cumrc-legend-chip:nth-child(7) { border-left-color: var(--rc-grade-f); }
.cumrc-legend-chip:nth-child(1) strong { color: var(--rc-grade-ap); }
.cumrc-legend-chip:nth-child(2) strong { color: var(--rc-grade-a); }
.cumrc-legend-chip:nth-child(3) strong { color: var(--rc-grade-bp); }
.cumrc-legend-chip:nth-child(4) strong { color: var(--rc-grade-b); }
.cumrc-legend-chip:nth-child(5) strong { color: var(--rc-grade-c); }
.cumrc-legend-chip:nth-child(6) strong { color: var(--rc-grade-d); }
.cumrc-legend-chip:nth-child(7) strong { color: var(--rc-grade-f); }
.cumrc-compact-hdr-left { display: flex; align-items: center; gap: 12px; }
.cumrc-compact-hdr-logo-ph { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--rc-white); }
.cumrc-footer-school { font-weight: 600; color: var(--rc-muted); }

/* 8. ATTENDANCE */
.cumrc-att-stat {
background: var(--rc-card);
border: 1px solid var(--rc-border);
border-top: 4px solid transparent;
border-radius: var(--rc-radius);
padding: 20px 12px;
text-align: center;
box-shadow: var(--rc-shadow-sm);
min-height: 112px;
display: flex;
flex-direction: column;
justify-content: center;
}
.cumrc-att-stat:nth-child(1) { background: var(--rc-success-light); }
.cumrc-att-stat:nth-child(2) { background: var(--rc-danger-light); }
.cumrc-att-stat:nth-child(3) { background: var(--rc-info-light); }
.cumrc-att-val { font-family: 'Inter','Roboto','Noto Sans',Arial,sans-serif; font-size: 20px; font-weight: 800; line-height: 1.2; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.cumrc-att-lbl { font-size: 11px; color: var(--rc-muted); margin-top: 8px; font-weight: 600; text-transform: uppercase; letter-spacing: .6px; line-height: 1.3; }
.cumrc-att-bar-bg { display: none; }
.cumrc-a4-shell svg { width: 180px; height: 180px; flex-shrink: 0; }
.cumrc-a4-shell svg circle:nth-child(1) { stroke: var(--rc-border); }
.cumrc-a4-shell svg circle:nth-child(2) { stroke: var(--rc-success); }
.cumrc-a4-shell svg text:nth-child(3) { fill: var(--rc-text); }
.cumrc-a4-shell svg text:nth-child(4) { fill: var(--rc-muted); }

/* 9. MARKS TABLE */
.cumrc-marks-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
table-layout: fixed;
font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif;
font-size: 13px;
border: 1px solid var(--rc-border);
border-radius: var(--rc-radius);
overflow: hidden;
}
.cumrc-marks-table thead tr th {
background: linear-gradient(135deg, var(--rc-primary), var(--rc-primary-dark));
color: var(--rc-white);
padding: 13px 8px;
border-bottom: 2px solid var(--rc-primary-dark);
text-align: center;
white-space: normal;
word-break: break-word;
font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif;
font-size: 13px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .5px;
line-height: 1.3;
position: sticky;
top: 0;
z-index: 2;
}
.cumrc-marks-table thead tr th:first-child {
text-align: left;
padding-left: 14px;
background: linear-gradient(135deg, var(--rc-primary-dark), var(--rc-primary-darker));
width: 22%;
}
.cumrc-marks-table tbody tr td {
padding: 14px 8px;
border-bottom: 1px solid var(--rc-border);
text-align: center;
vertical-align: middle;
font-size: 14px;
line-height: 1.5;
color: #1F2937;
}
.cumrc-marks-table tbody tr td:first-child {
text-align: left;
padding-left: 14px;
font-weight: 600;
color: #1F2937;
font-size: 14px;
line-height: 1.5;
}
.cumrc-marks-table tbody tr:nth-child(even) td { background: var(--rc-primary-light); }
.cumrc-marks-table tbody tr:hover td { background: var(--rc-info-light); }
.cumrc-marks-totals td {
background: var(--rc-totals-bg) !important;
font-weight: 700;
color: var(--rc-primary);
font-size: 15px;
text-transform: uppercase;
letter-spacing: .4px;
padding: 15px 8px;
border-top: 3px solid var(--rc-primary) !important;
border-bottom: none !important;
font-variant-numeric: tabular-nums;
font-feature-settings: "tnum";
}
.cumrc-mark-cell-main { font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif; font-weight: 700; font-size: 15px; color: #111827; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; line-height: 1.3; }
.cumrc-mark-cell-max { font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif; font-size: 11px; font-weight: 600; color: #6B7280; font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.cumrc-mark-cell-grd { display: none; }

/* ── Pass / fail indicators ── */
.cumrc-pass, .cumrc-fail { display: inline-block; padding: 3px 12px; border-radius: 20px; font-weight: 700; font-size: 13px; letter-spacing: .3px; }
.cumrc-pass { background: var(--rc-success-light); color: var(--rc-success); border: 1px solid var(--rc-success); }
.cumrc-fail { background: var(--rc-danger-light); color: var(--rc-danger); border: 1px solid var(--rc-danger); }
.cumrc-pass i, .cumrc-fail i { display: none; }

/* 10. GRADE LEGEND */
.cumrc-badge {
display: inline-block;
padding: 5px 14px;
border-radius: 30px;
font-weight: 700;
font-size: 13px;
border: 1.5px solid transparent;
line-height: 1.3;
white-space: nowrap;
}
.gb-Ap { background: var(--rc-success-light); color: var(--rc-success); border-color: var(--rc-success); }
.gb-A  { background: var(--rc-success-light); color: var(--rc-grade-a); border-color: var(--rc-grade-a); }
.gb-Bp { background: var(--rc-info-light); color: var(--rc-info); border-color: var(--rc-info); }
.gb-B  { background: var(--rc-info-light); color: var(--rc-grade-b); border-color: var(--rc-grade-b); }
.gb-C  { background: var(--rc-secondary-light); color: var(--rc-grade-c); border-color: var(--rc-grade-c); }
.gb-D  { background: var(--rc-secondary-light); color: var(--rc-grade-d); border-color: var(--rc-grade-d); }
.gb-F  { background: var(--rc-danger-light); color: var(--rc-danger); border-color: var(--rc-danger); }

.cumrc-legend {
display: flex;
flex-wrap: wrap;
gap: 10px;
font-size: 11px;
margin-top: 8px;
padding: 8px 0 4px;
}
.cumrc-legend-chip {
background: var(--rc-bg);
padding: 5px 12px;
border-radius: 30px;
border: 1px solid var(--rc-border);
border-left: 4px solid var(--rc-primary);
font-size: 11px;
font-weight: 500;
color: var(--rc-muted);
display: inline-flex;
align-items: center;
gap: 6px;
line-height: 1.3;
white-space: nowrap;
}
.cumrc-legend-chip strong { font-weight: 800; font-size: 11.5px; }

/* 11. SIGNATURE SECTION */
.cumrc-sig-row {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
gap: 24px;
padding: 20px 10px 10px;
}
.cumrc-sig-box { text-align: center; min-width: 150px; flex: 1 1 0; }
.cumrc-sig-line {
border-bottom: 1.5px solid var(--rc-border);
width: 170px;
max-width: 100%;
margin: 50px auto 8px;
}
.cumrc-sig-lbl { font-size: 12px; font-weight: 600; color: var(--rc-muted); text-transform: uppercase; letter-spacing: .5px; line-height: 1.4; }

/* 12. FOOTER */
.cumrc-footer {
background: linear-gradient(90deg, var(--rc-primary-light), var(--rc-bg));
border-top: 1px solid var(--rc-border);
padding: 12px 28px;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 10px;
color: var(--rc-muted);
margin-top: auto;
font-weight: 500;
line-height: 1.4;
}
.cumrc-footer-page {
background: var(--rc-primary);
color: var(--rc-white);
padding: 4px 14px;
border-radius: 30px;
font-size: 10px;
font-weight: 700;
}

/* ── Print toolbar (screen only) ── */
.cumrc-toolbar {
position: sticky;
top: 0;
z-index: 200;
background: linear-gradient(135deg, var(--rc-primary), var(--rc-info));
border-bottom: 1px solid var(--rc-border);
padding: 10px 20px;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 18px;
box-shadow: var(--rc-shadow);
}
.cumrc-toolbar button {
background: var(--rc-secondary) !important;
color: var(--rc-white) !important;
border: none !important;
padding: 7px 20px !important;
border-radius: 30px !important;
font-size: 13px !important;
font-weight: 700 !important;
cursor: pointer !important;
font-family: var(--rc-font) !important;
box-shadow: 0 2px 8px rgba(245,158,11,.35) !important;
transition: transform .15s ease !important;
}
.cumrc-toolbar button:hover { transform: translateY(-1px) !important; }

/* 13. RESPONSIVE MEDIA QUERIES */
@media (max-width: 1199px) {
.cumrc-a4-shell { max-width: 760px; }
.cumrc-banner-top { padding: 22px 26px 18px; gap: 20px; }
.cumrc-banner-school-name { font-size: 20px; }
.cumrc-result-val, .cumrc-att-val { font-size: 17px; }
}
@media (max-width: 991px) {
.cumrc-a4-shell { max-width: 100%; padding: 14px 10px; }
.cumrc-banner-top { flex-wrap: wrap; justify-content: center; }
.cumrc-banner-ay { align-self: center; }
.cumrc-result-bar { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
.cumrc-a4-shell { padding: 10px 6px; }
.cumrc-page { min-height: auto; border-radius: 10px; }
.cumrc-banner-top { padding: 16px 14px 12px; gap: 12px; flex-direction: column; text-align: center; }
.cumrc-banner-school-name { font-size: 19px; }
.cumrc-banner-contacts { gap: 12px; }
.cumrc-ribbon { letter-spacing: 3px; font-size: 13px; padding: 9px 0; }
.cumrc-result-bar { grid-template-columns: 1fr; }
.cumrc-result-val, .cumrc-att-val { font-size: 15px; }
.cumrc-sig-row { gap: 14px; }
.cumrc-sig-line { margin-top: 32px; }
.cumrc-marks-table { font-size: 10.5px; }
.cumrc-marks-table thead tr th, .cumrc-marks-table tbody tr td { padding: 8px 5px; }
.cumrc-photo-row { flex-direction: column; align-items: center; }
.cumrc-profile-grid { grid-template-columns: 1fr; }
}

/* 14. PRINT STYLES — Professional A4 Cumulative Report Card layout.
   Independent of desktop/mobile styles; only the existing .cumrc-* elements
   are restyled for print. No HTML/Rust changes. */
@media print {

/* ── Page setup ─────────────────────────────────────────────────────── */
@page { size: A4 portrait; margin: 8mm; }

/* ── Document reset (neutralise screen + global print.css interference) ── */
html, body { margin: 0 !important; padding: 0 !important; background: var(--rc-white) !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; visibility: visible !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
body:has(.cumrc-a4-shell) { background: var(--rc-white) !important; margin: 0 !important; padding: 0 !important; height: auto !important; min-height: 0 !important; overflow: visible !important; font-family: 'Inter', 'Segoe UI', Roboto, Arial, sans-serif !important; }
.cumrc-a4-shell, .cumrc-a4-shell * { visibility: visible !important; }
.cumrc-no-print, .cumrc-toolbar { display: none !important; }
.cumrc-a4-shell { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; background: var(--rc-white) !important; font-family: 'Inter', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important; font-size: 13px !important; color: var(--rc-text) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

/* ── Page containers: natural height, no forced breaks except marks ── */
.cumrc-page { box-shadow: none !important; border: none !important; border-radius: 0 !important; margin: 0 !important; overflow: visible !important; height: auto !important; min-height: 0 !important; max-height: none !important; page-break-before: auto !important; page-break-after: auto !important; break-before: auto !important; break-after: auto !important; page-break-inside: auto !important; break-inside: auto !important; width: 100% !important; display: block !important; background: var(--rc-white) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
/* No forced page break — let the Marks Detail flow right after the Attendance
   Summary on page 1 and continue to page 2 only when there isn't enough room.
   This fills the full printable height of page 1 instead of leaving it blank. */
#rcPage2 { page-break-before: auto !important; break-before: auto !important; }
/* The page-2 compact header is redundant on page 1 (the school header is already
   at the top); hide it so the marks table begins immediately after attendance. */
#rcPage2 .cumrc-compact-hdr { display: none !important; }
.cumrc-page:last-child { page-break-after: auto !important; break-after: auto !important; }

/* ── Keep sections together; let only the marks table flow ── */
.cumrc-banner, .cumrc-ribbon, .cumrc-photo-row, .cumrc-profile-grid, .cumrc-result-bar, .cumrc-att-row, .cumrc-compact-hdr, .cumrc-sec-title, .cumrc-legend, .cumrc-sig-row, .cumrc-footer { break-inside: avoid !important; page-break-inside: avoid !important; }
.cumrc-marks-table { page-break-inside: auto !important; break-inside: auto !important; }
.cumrc-marks-table tr { page-break-inside: avoid !important; break-inside: avoid !important; }
.cumrc-marks-table thead { display: table-header-group !important; }
.cumrc-marks-table tfoot { display: table-footer-group !important; }
.cumrc-page * { box-shadow: none !important; }

/* Content column — block flow so the marks table can break across pages
   cleanly (flex items don't paginate reliably). Spacing comes from the section
   margins; no fixed heights, no forced gaps. */
.cumrc-page > div:nth-child(2) { display: block !important; padding: 14px 20px !important; height: auto !important; min-height: 0 !important; }
#rcPage1 > div:nth-child(2) { justify-content: flex-start !important; }
#rcPage2 > div:nth-child(2) { justify-content: flex-start !important; padding-bottom: 8px !important; }
#rcPage2 .cumrc-sig-row { margin-top: 0 !important; }

/* ── School header (page 1) ─────────────────────────────────────────── */
.cumrc-banner::before { height: 4px !important; background: linear-gradient(90deg, var(--rc-primary), var(--rc-info) 50%, var(--rc-secondary)) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-banner-top { display: flex !important; align-items: center !important; gap: 18px !important; padding: 12px 24px !important; min-height: 85px !important; background: linear-gradient(135deg, var(--rc-white) 0%, var(--rc-primary-light) 100%) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-banner-logo, .cumrc-banner-logo-ph { width: 56px !important; height: 56px !important; border-radius: 50% !important; border: 2px solid var(--rc-white) !important; box-shadow: 0 0 0 2px var(--rc-primary-light) !important; flex-shrink: 0 !important; object-fit: contain !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-banner-logo { background: var(--rc-bg) !important; padding: 4px !important; }
.cumrc-banner-logo-ph { background: linear-gradient(135deg, var(--rc-primary), var(--rc-info)) !important; display: flex !important; align-items: center !important; justify-content: center !important; color: var(--rc-white) !important; font-size: 24px !important; }
.cumrc-banner-mid { flex: 1 !important; text-align: center !important; min-width: 0 !important; }
.cumrc-banner-school-name { font-size: 22px !important; font-weight: 800 !important; color: var(--rc-primary) !important; letter-spacing: .4px !important; line-height: 1.2 !important; text-transform: uppercase !important; }
.cumrc-banner-school-addr { font-size: 12.5px !important; color: var(--rc-muted) !important; margin-top: 4px !important; line-height: 1.3 !important; }
.cumrc-banner-contacts { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 14px !important; font-size: 12.5px !important; color: var(--rc-muted) !important; margin-top: 5px !important; font-weight: 500 !important; line-height: 1.3 !important; }
.cumrc-banner-contacts i { color: var(--rc-secondary) !important; margin-right: 4px !important; }
.cumrc-banner-ay { flex-shrink: 0 !important; align-self: center !important; text-align: center !important; background: linear-gradient(135deg, var(--rc-primary), var(--rc-info)) !important; border-radius: 8px !important; padding: 8px 14px !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-banner-ay-label { font-size: 10.5px !important; color: rgba(255,255,255,.85) !important; text-transform: uppercase !important; letter-spacing: 1.2px !important; font-weight: 600 !important; }
.cumrc-banner-ay-val { font-size: 15px !important; font-weight: 800 !important; color: var(--rc-white) !important; margin-top: 2px !important; }

/* ── Report title (ribbon) ──────────────────────────────────────────── */
.cumrc-ribbon { background: linear-gradient(90deg, var(--rc-primary) 0%, var(--rc-info) 50%, var(--rc-primary-dark) 100%) !important; color: var(--rc-white) !important; text-align: center !important; padding: 9px 0 !important; font-size: 16px !important; font-weight: 800 !important; letter-spacing: 4px !important; text-transform: uppercase !important; border-bottom: 4px solid var(--rc-secondary) !important; box-shadow: none !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-ribbon::after { display: none !important; }

/* ── Page-2 compact header ──────────────────────────────────────────── */
.cumrc-compact-hdr { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; padding: 10px 20px !important; background: var(--rc-primary) !important; color: var(--rc-white) !important; border-radius: 0 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-compact-hdr-left { display: flex !important; align-items: center !important; gap: 10px !important; min-width: 0 !important; }
.cumrc-compact-hdr-logo, .cumrc-compact-hdr-logo-ph { width: 36px !important; height: 36px !important; border-radius: 50% !important; flex-shrink: 0 !important; }
.cumrc-compact-hdr-logo { object-fit: contain !important; background: rgba(255,255,255,.18) !important; padding: 3px !important; border: 2px solid rgba(255,255,255,.4) !important; }
.cumrc-compact-hdr-logo-ph { background: rgba(255,255,255,.15) !important; display: flex !important; align-items: center !important; justify-content: center !important; color: var(--rc-white) !important; }
.cumrc-compact-hdr-school { font-weight: 700 !important; font-size: 16px !important; color: var(--rc-white) !important; }
.cumrc-compact-hdr-sub { font-size: 12.5px !important; color: rgba(255,255,255,.9) !important; margin-top: 2px !important; line-height: 1.3 !important; }
.cumrc-compact-hdr-label { font-size: 11.5px !important; font-weight: 700 !important; letter-spacing: 1.5px !important; background: var(--rc-secondary) !important; color: var(--rc-white) !important; padding: 4px 12px !important; border-radius: 20px !important; text-transform: uppercase !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

/* ── Section title ─────────────────────────────────────────────────── */
.cumrc-sec-title { font-size: 15px !important; font-weight: 700 !important; color: var(--rc-primary) !important; text-transform: uppercase !important; letter-spacing: 1px !important; line-height: 1.3 !important; border-bottom: 2px solid var(--rc-border) !important; border-left: 4px solid var(--rc-secondary) !important; padding: 0 0 6px 10px !important; margin: 0 0 10px 0 !important; display: flex !important; align-items: center !important; gap: 8px !important; }
.cumrc-sec-title i { color: var(--rc-secondary) !important; font-size: 15px !important; }
#rcPage2 .cumrc-sec-title { border-left: 4px solid var(--rc-secondary) !important; padding-left: 10px !important; }
/* Breathing room above the Attendance Summary (between KPI cards and attendance). */
#rcPage1 .cumrc-sec-title { margin-top: 18px !important; }

/* ── Student details: photo (left) + 2-column info grid (right) ────── */
.cumrc-photo-row { display: flex !important; gap: 16px !important; align-items: flex-start !important; }
.cumrc-photo-box { width: 150px !important; height: 180px !important; min-height: 180px !important; border: 1px solid var(--rc-border) !important; border-radius: 12px !important; background: var(--rc-bg) !important; overflow: hidden !important; flex-shrink: 0 !important; position: relative !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; box-shadow: none !important; align-self: start !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-photo-img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain !important; padding: 4px !important; background: var(--rc-bg) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-photo-icon { font-size: 2.5rem !important; color: var(--rc-photo-icon) !important; }
.cumrc-photo-cap { font-size: 11px !important; color: var(--rc-photo-cap) !important; margin-top: 4px !important; }
.cumrc-profile-wrap { flex: 1 !important; min-width: 0 !important; }
.cumrc-profile-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; align-items: stretch !important; }
.cumrc-profile-row { display: grid !important; grid-template-columns: 22px 1fr !important; grid-template-rows: auto auto !important; column-gap: 10px !important; row-gap: 2px !important; align-items: center !important; padding: 8px 12px !important; min-height: 52px !important; background: var(--rc-card) !important; border: 1px solid var(--rc-border) !important; border-radius: 8px !important; }
.cumrc-profile-icon { grid-row: 1 / 3 !important; grid-column: 1 !important; font-size: 18px !important; color: var(--rc-secondary) !important; align-self: center !important; }
.cumrc-profile-lbl { grid-row: 1 !important; grid-column: 2 !important; font-family: 'Inter','Roboto','Noto Sans',Arial,sans-serif !important; font-size: 11px !important; font-weight: 600 !important; color: #6B7280 !important; line-height: 1.3 !important; }
.cumrc-profile-val { grid-row: 2 !important; grid-column: 2 !important; font-family: 'Inter','Roboto','Noto Sans',Arial,sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: #1F2937 !important; line-height: 1.5 !important; letter-spacing: 0.2px !important; word-break: break-word !important; overflow-wrap: break-word !important; white-space: normal !important; }
/* Per-field typography (fixed order: Full Name, Admission No., Class, Academic Year, DOB, Parent/Guardian, Contact No., Address) */
.cumrc-profile-grid > .cumrc-profile-row:nth-child(1) .cumrc-profile-val { font-size: 16px !important; font-weight: 700 !important; color: #111827 !important; }
.cumrc-profile-grid > .cumrc-profile-row:nth-child(6) .cumrc-profile-val { font-size: 15px !important; font-weight: 600 !important; }
.cumrc-profile-grid > .cumrc-profile-row:nth-child(2) .cumrc-profile-val,
.cumrc-profile-grid > .cumrc-profile-row:nth-child(4) .cumrc-profile-val,
.cumrc-profile-grid > .cumrc-profile-row:nth-child(5) .cumrc-profile-val,
.cumrc-profile-grid > .cumrc-profile-row:nth-child(7) .cumrc-profile-val { font-variant-numeric: tabular-nums !important; font-feature-settings: "tnum" !important; }
.cumrc-profile-grid > .cumrc-profile-row:nth-child(8) .cumrc-profile-val { white-space: normal !important; text-align: left !important; line-height: 1.5 !important; word-break: break-word !important; overflow-wrap: break-word !important; }

/* ── KPI cards (one row, 5 equal) ──────────────────────────────────── */
/* Breathing room between student details and the KPI dashboard.
   ID-prefixed so it beats the screen rule that zeroes page-1 child margins. */
#rcPage1 > div:nth-child(2) > .cumrc-result-bar { margin-top: 18px !important; }
.cumrc-result-bar { display: grid !important; grid-template-columns: repeat(5, 1fr) !important; gap: 10px !important; margin: 0 !important; }
.cumrc-result-cell { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center !important; min-height: 72px !important; padding: 10px 6px !important; border-radius: 10px !important; border: 1px solid var(--rc-border) !important; border-top: 4px solid var(--rc-info) !important; background: var(--rc-info-light) !important; box-shadow: none !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-result-cell:nth-child(2) { background: var(--rc-primary-light) !important; border-top-color: var(--rc-primary) !important; }
.cumrc-result-cell:nth-child(3) { background: var(--rc-primary-light) !important; border-top-color: var(--rc-primary) !important; }
.cumrc-result-cell:nth-child(4) { background: var(--rc-secondary-light) !important; border-top-color: var(--rc-secondary) !important; }
.cumrc-result-cell:nth-child(5) { background: var(--rc-success-light) !important; border-top-color: var(--rc-success) !important; }
.cumrc-result-cell:nth-child(1) .cumrc-result-val { color: var(--rc-info) !important; }
.cumrc-result-cell:nth-child(2) .cumrc-result-val { color: var(--rc-primary) !important; }
.cumrc-result-cell:nth-child(4) .cumrc-result-val { color: var(--rc-secondary-dark) !important; }
.cumrc-result-cell:nth-child(5) .cumrc-result-val { color: var(--rc-success) !important; }
.cumrc-result-cell.cumrc-result-pass { background: var(--rc-success-light) !important; border-top-color: var(--rc-success) !important; }
.cumrc-result-cell.cumrc-result-fail { background: var(--rc-danger-light) !important; border-top-color: var(--rc-danger) !important; }
.cumrc-result-pass .cumrc-result-val { color: var(--rc-success) !important; }
.cumrc-result-fail .cumrc-result-val { color: var(--rc-danger) !important; }
.cumrc-result-cell.cumrc-rank-na { background: var(--rc-na-bg) !important; border-top-color: var(--rc-na-border) !important; }
.cumrc-rank-na .cumrc-result-val { color: var(--rc-muted) !important; }
.cumrc-result-val { font-size: 22px !important; font-weight: 800 !important; line-height: 1.1 !important; white-space: nowrap !important; font-variant-numeric: tabular-nums !important; }
.cumrc-result-lbl { font-size: 11.5px !important; font-weight: 600 !important; color: var(--rc-muted) !important; text-transform: uppercase !important; letter-spacing: .5px !important; margin-top: 5px !important; white-space: nowrap !important; line-height: 1.2 !important; }
.cumrc-rank-sub { font-size: 10px !important; font-weight: 500 !important; color: var(--rc-muted) !important; margin-top: 2px !important; white-space: nowrap !important; line-height: 1.2 !important; }

/* ── Attendance summary (one row: circular + 3 stats) ──────────────── */
.cumrc-att-row { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 20px !important; flex-wrap: nowrap !important; }
.cumrc-a4-shell svg { width: 120px !important; height: 120px !important; flex-shrink: 0 !important; }
.cumrc-att-col { flex: 1 !important; min-width: 0 !important; }
.cumrc-att-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 10px !important; margin: 0 !important; }
.cumrc-att-stat { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; min-height: 72px !important; padding: 10px 6px !important; border-radius: 10px !important; border: 1px solid var(--rc-border) !important; border-top: 4px solid transparent !important; background: var(--rc-card) !important; box-shadow: none !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-att-stat:nth-child(1) { background: var(--rc-success-light) !important; border-top-color: var(--rc-success) !important; }
.cumrc-att-stat:nth-child(2) { background: var(--rc-danger-light) !important; border-top-color: var(--rc-danger) !important; }
.cumrc-att-stat:nth-child(3) { background: var(--rc-info-light) !important; border-top-color: var(--rc-info) !important; }
.cumrc-att-stat:nth-child(1) .cumrc-att-val { color: var(--rc-success) !important; }
.cumrc-att-stat:nth-child(2) .cumrc-att-val { color: var(--rc-danger) !important; }
.cumrc-att-stat:nth-child(3) .cumrc-att-val { color: var(--rc-info) !important; }
.cumrc-att-val { font-size: 22px !important; font-weight: 800 !important; line-height: 1.1 !important; white-space: nowrap !important; font-variant-numeric: tabular-nums !important; }
.cumrc-att-lbl { font-size: 11.5px !important; font-weight: 600 !important; color: var(--rc-muted) !important; text-transform: uppercase !important; letter-spacing: .5px !important; margin-top: 5px !important; white-space: nowrap !important; line-height: 1.2 !important; }
.cumrc-att-bar-bg { display: none !important; }

/* ── Marks table (full width, fixed, repeating header) ─────────────── */
.cumrc-table-wrap { overflow: visible !important; width: 100% !important; }
.cumrc-marks-table { width: 100% !important; table-layout: fixed !important; border-collapse: collapse !important; border-spacing: 0 !important; font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif !important; font-size: 13px !important; font-variant-numeric: tabular-nums !important; overflow: visible !important; border-radius: 0 !important; border: 1px solid var(--rc-border) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-marks-table thead tr th { position: static !important; background: var(--rc-primary) !important; color: var(--rc-white) !important; font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif !important; font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .5px !important; padding: 8px 5px !important; border: 1px solid var(--rc-primary-dark) !important; text-align: center !important; white-space: normal !important; word-break: break-word !important; line-height: 1.2 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-marks-table thead tr th:first-child { text-align: left !important; padding-left: 10px !important; background: var(--rc-primary-dark) !important; }
.cumrc-marks-table tbody tr td { padding: 8px 5px !important; font-size: 14px !important; font-variant-numeric: tabular-nums !important; border: 1px solid var(--rc-border) !important; text-align: center !important; vertical-align: middle !important; line-height: 1.5 !important; color: #1F2937 !important; background: var(--rc-white) !important; }
.cumrc-marks-table tbody tr td:first-child { text-align: left !important; padding-left: 10px !important; font-weight: 600 !important; color: #1F2937 !important; }
.cumrc-marks-table tbody tr:nth-child(even) td { background: var(--rc-primary-light) !important; }
.cumrc-marks-table tbody tr:hover td { background: var(--rc-white) !important; }
.cumrc-marks-totals td { background: var(--rc-totals-bg) !important; font-weight: 700 !important; color: var(--rc-primary-dark) !important; font-size: 15px !important; font-variant-numeric: tabular-nums !important; text-transform: uppercase !important; letter-spacing: .3px !important; padding: 9px 5px !important; border: 1px solid var(--rc-border) !important; border-top: 3px solid var(--rc-primary) !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-mark-cell-main { font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif !important; font-size: 15px !important; font-weight: 700 !important; color: #111827 !important; font-variant-numeric: tabular-nums !important; line-height: 1.3 !important; }
.cumrc-mark-cell-max { font-family: 'Inter','Noto Sans','Noto Sans Devanagari','Noto Sans Kannada','Roboto','Open Sans',Arial,sans-serif !important; font-size: 11px !important; font-weight: 600 !important; color: #6B7280 !important; font-variant-numeric: tabular-nums !important; }
.cumrc-mark-cell-grd { display: none !important; }
.cumrc-marks-table .cumrc-mark-empty { color: var(--rc-faint) !important; }
.cumrc-marks-table .cumrc-cell-total { font-weight: 700 !important; color: #111827 !important; font-size: 15px !important; font-variant-numeric: tabular-nums !important; font-feature-settings: "tnum" !important; }
.cumrc-marks-table .cumrc-cell-max { font-weight: 700 !important; color: #111827 !important; font-size: 15px !important; font-variant-numeric: tabular-nums !important; font-feature-settings: "tnum" !important; }
.cumrc-marks-table .cumrc-cell-avg { font-weight: 700 !important; color: #111827 !important; font-size: 15px !important; font-variant-numeric: tabular-nums !important; font-feature-settings: "tnum" !important; }
.cumrc-marks-table .cumrc-totals-max { color: var(--rc-muted) !important; }

/* ── Grade legend ───────────────────────────────────────────────────── */
.cumrc-legend { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin: 10px 0 0 0 !important; padding: 6px 0 2px !important; }
.cumrc-legend-chip { background: var(--rc-bg) !important; padding: 4px 10px !important; border-radius: 20px !important; border: 1px solid var(--rc-border) !important; border-left: 4px solid var(--rc-primary) !important; font-size: 12px !important; font-weight: 500 !important; color: var(--rc-muted) !important; display: inline-flex !important; align-items: center !important; gap: 6px !important; line-height: 1.3 !important; white-space: nowrap !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-legend-chip strong { font-weight: 800 !important; font-size: 12.5px !important; }
.cumrc-legend-chip:nth-child(1) { border-left-color: var(--rc-grade-ap) !important; }
.cumrc-legend-chip:nth-child(2) { border-left-color: var(--rc-grade-a) !important; }
.cumrc-legend-chip:nth-child(3) { border-left-color: var(--rc-grade-bp) !important; }
.cumrc-legend-chip:nth-child(4) { border-left-color: var(--rc-grade-b) !important; }
.cumrc-legend-chip:nth-child(5) { border-left-color: var(--rc-grade-c) !important; }
.cumrc-legend-chip:nth-child(6) { border-left-color: var(--rc-grade-d) !important; }
.cumrc-legend-chip:nth-child(7) { border-left-color: var(--rc-grade-f) !important; }
.cumrc-legend-chip:nth-child(1) strong { color: var(--rc-grade-ap) !important; }
.cumrc-legend-chip:nth-child(2) strong { color: var(--rc-grade-a) !important; }
.cumrc-legend-chip:nth-child(3) strong { color: var(--rc-grade-bp) !important; }
.cumrc-legend-chip:nth-child(4) strong { color: var(--rc-grade-b) !important; }
.cumrc-legend-chip:nth-child(5) strong { color: var(--rc-grade-c) !important; }
.cumrc-legend-chip:nth-child(6) strong { color: var(--rc-grade-d) !important; }
.cumrc-legend-chip:nth-child(7) strong { color: var(--rc-grade-f) !important; }

/* ── Signature area ────────────────────────────────────────────────── */
.cumrc-sig-row { display: flex !important; justify-content: space-around !important; flex-wrap: wrap !important; gap: 16px !important; padding: 18px 4px 4px !important; margin-top: 4px !important; }
.cumrc-sig-box { text-align: center !important; min-width: 130px !important; flex: 1 1 0 !important; }
.cumrc-sig-line { border-bottom: 1.5px solid var(--rc-text) !important; width: 150px !important; max-width: 100% !important; margin: 34px auto 6px !important; }
.cumrc-sig-lbl { font-size: 12.5px !important; font-weight: 600 !important; color: var(--rc-muted) !important; text-transform: uppercase !important; letter-spacing: .5px !important; }

/* ── Pass/Fail + grade badges ──────────────────────────────────────── */
.cumrc-pass, .cumrc-fail { display: inline-block !important; padding: 3px 10px !important; border-radius: 12px !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .3px !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-pass { background: var(--rc-success-light) !important; color: var(--rc-success) !important; border: 1px solid var(--rc-success) !important; }
.cumrc-fail { background: var(--rc-danger-light) !important; color: var(--rc-danger) !important; border: 1px solid var(--rc-danger) !important; }
.cumrc-pass i, .cumrc-fail i { display: none !important; }
.cumrc-badge { display: inline-block !important; padding: 3px 10px !important; border-radius: 12px !important; font-size: 13px !important; font-weight: 700 !important; border: 1px solid transparent !important; line-height: 1.3 !important; white-space: nowrap !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.gb-Ap { background: var(--rc-success-light) !important; color: var(--rc-success) !important; border-color: var(--rc-success) !important; }
.gb-A  { background: var(--rc-success-light) !important; color: var(--rc-grade-a) !important; border-color: var(--rc-grade-a) !important; }
.gb-Bp { background: var(--rc-info-light) !important; color: var(--rc-info) !important; border-color: var(--rc-info) !important; }
.gb-B  { background: var(--rc-info-light) !important; color: var(--rc-grade-b) !important; border-color: var(--rc-grade-b) !important; }
.gb-C  { background: var(--rc-secondary-light) !important; color: var(--rc-grade-c) !important; border-color: var(--rc-grade-c) !important; }
.gb-D  { background: var(--rc-secondary-light) !important; color: var(--rc-grade-d) !important; border-color: var(--rc-grade-d) !important; }
.gb-F  { background: var(--rc-danger-light) !important; color: var(--rc-danger) !important; border-color: var(--rc-danger) !important; }

/* ── Footer (page 2 only — appears once, at the end of the report) ── */
#rcPage1 > .cumrc-footer { display: none !important; }
.cumrc-footer { display: flex !important; justify-content: space-between !important; align-items: center !important; gap: 12px !important; margin-top: 14px !important; padding: 10px 20px !important; border-top: 1px solid var(--rc-border) !important; background: var(--rc-bg) !important; font-size: 11.5px !important; color: var(--rc-muted) !important; font-weight: 500 !important; line-height: 1.3 !important; position: static !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
.cumrc-footer-school { font-weight: 700 !important; color: var(--rc-primary) !important; }
.cumrc-footer-page { background: var(--rc-primary) !important; color: var(--rc-white) !important; padding: 3px 12px !important; border-radius: 20px !important; font-size: 11.5px !important; font-weight: 700 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}
