:root{--ink:#172133;--muted:#667085;--line:#e4dbe5;--paper:#fff;--bg:#f7f5f8;--purple:#a62b78;--purple-dark:#70205d;--green:#4aab35;--orange:#ed961f;--danger:#b42318;--shadow:0 10px 30px rgba(31,18,41,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--purple-dark);text-decoration:none}a:hover{text-decoration:underline}.topbar{min-height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px clamp(16px,4vw,56px);gap:18px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--ink);white-space:nowrap}.brand img{width:165px;height:42px;object-fit:contain;object-position:left center}.brand span{display:flex;flex-direction:column;line-height:1.1}.brand span small{font-size:10px;font-weight:500;color:var(--muted);margin-top:3px}.topbar nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px}.topbar nav a{color:var(--ink)}.container{width:min(1180px,calc(100% - 32px));margin:30px auto 70px}.container.narrow{width:min(820px,calc(100% - 28px))}.hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px;border-radius:20px;background:linear-gradient(120deg,#fff 0%,#fff 58%,#f4e6f1 100%);box-shadow:var(--shadow);border:1px solid var(--line)}h1,h2{line-height:1.15;margin:0 0 10px}h1{font-size:clamp(26px,4vw,40px)}h2{font-size:20px;margin-top:22px}.eyebrow{color:var(--purple);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:12px;margin:0 0 8px}.hero p{margin:0;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #cdb9ca;background:#fff;color:var(--purple-dark);border-radius:9px;padding:9px 14px;cursor:pointer;font:inherit;font-weight:650;text-decoration:none}.button:hover{text-decoration:none;background:#fbf4f9}.button.primary{background:var(--purple);border-color:var(--purple);color:#fff}.button.primary:hover{background:var(--purple-dark)}.button.large{padding:14px 22px}.button.small{font-size:12px;padding:5px 9px}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:24px 0}.action-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 14px rgba(31,18,41,.04)}.action-card:hover{border-color:var(--purple);text-decoration:none;transform:translateY(-1px)}.action-card .icon{font-size:26px;color:var(--purple)}.action-card b{font-size:17px}.action-card small,.muted{color:var(--muted)}.stat-grid{display:flex;gap:14px;flex-wrap:wrap}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 22px;min-width:140px}.stat small,.stat strong{display:block}.stat strong{font-size:26px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-heading p{margin:0;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 4px 14px rgba(31,18,41,.035);margin:16px 0}.grid{display:grid;gap:15px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid label,.panel>label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:13px}input,select,textarea{width:100%;border:1px solid #cfc5d1;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:inherit;font-weight:400}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #f1d7eb;border-color:var(--purple)}label.checkbox{display:flex;flex-direction:row;align-items:center;gap:9px;margin:17px 0;font-weight:500}label.checkbox input{width:auto}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.filter-bar,.search-bar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.filter-bar label{min-width:155px;flex:1;display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700}.search-bar input{max-width:420px}.table-wrap{overflow:auto}.table-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.table-heading b,.table-heading small{display:block}.table-heading small{color:var(--muted);font-size:12px;margin-top:3px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}thead th{background:#f9f2f7;color:var(--purple-dark);font-size:12px;text-transform:uppercase;letter-spacing:.03em}tbody tr:hover{background:#fffafd}.marks-table th,.marks-table td{text-align:center}.marks-table th:first-child,.marks-table td:first-child,.marks-table th:nth-child(2),.marks-table td:nth-child(2){text-align:left}.marks-table thead small{display:block;font-size:11px;font-weight:500;color:var(--muted)}.mark-input{min-width:78px;text-align:center;padding:8px}.total-cell{font-weight:800;color:var(--purple-dark);min-width:70px}.marks-form{border-color:#dfc3da}.marks-form:has(.mark-input:focus){border-color:var(--purple)}.dirty{border-color:var(--orange)!important;box-shadow:0 0 0 3px #fff3dc}.empty{text-align:center;color:var(--muted);padding:28px}.flash{border-radius:10px;padding:12px 15px;margin:0 0 14px;border:1px solid #b7dcca;background:#effaf3;color:#17613a}.flash.error{border-color:#f2b8b5;background:#fff4f2;color:var(--danger)}.flash ul{margin:0;padding-left:20px}.error-text{color:var(--danger)}.tag{display:inline-block;background:#eaf7ec;color:#1c7132;border-radius:99px;padding:3px 8px;font-size:12px;font-weight:700}.tag.warning{background:#fff4db;color:#9a5810}.student-summary{display:flex;gap:18px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.student-summary h2{margin:0}.student-summary p{margin:4px 0;color:var(--muted)}.photo-box{width:128px;height:150px;border:2px solid var(--purple);border-radius:8px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:#f3f1f4;color:#777;font-size:12px;font-weight:800;flex:none}.photo-box img{width:100%;height:100%;object-fit:cover}.grade-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grade-list label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#faf7fa;border:1px solid var(--line);border-radius:8px;font-weight:600}.grade-list input{max-width:130px}.setup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px}.setup-grid .panel{margin:0 0 16px}.setup-grid .span-2{grid-column:span 2}.auth-card{width:min(430px,100%);margin:8vh auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:34px}.auth-card img,.brand-panel img{width:100%;max-height:120px;object-fit:contain}.auth-card form{display:grid;gap:14px}.auth-card label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:13px}.brand-panel{text-align:center;margin-bottom:18px}.brand-panel h1{font-size:28px;margin:4px 0}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check{display:grid;grid-template-columns:24px 1fr;align-items:center;padding:10px;border-radius:8px;background:#f7faf8;border:1px solid #d5eadd}.check.bad{background:#fff7f5;border-color:#f2cbc6}.check span{grid-row:span 2;font-size:19px;color:var(--green)}.check.bad span{color:var(--danger)}.check small{color:var(--muted)}.center{text-align:center}.footer{text-align:center;color:var(--muted);font-size:12px;padding:18px}.print-actions{display:flex;gap:9px;justify-content:flex-end;margin-bottom:12px}.marksheet{background:#fff;border:1px solid #d3c4d1;padding:24px;max-width:1000px;margin:auto}.sheet-header{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;border-bottom:2px solid var(--purple);padding-bottom:12px}.sheet-header img{width:160px;height:130px;object-fit:contain}.sheet-header h1{color:var(--purple);font-size:25px;margin:0}.sheet-header p{margin:3px 0;font-size:12px}.session-pill{display:inline-block;background:var(--purple);color:#fff;border-radius:20px;padding:4px 25px;font-weight:800;margin-top:6px}.student-box{display:flex;justify-content:space-between;gap:20px;border:1px solid var(--purple);border-radius:10px;margin:14px 0;padding:13px 18px}.student-box p{margin:4px 0}.student-box p b{display:inline-block;min-width:170px;border-bottom:1px solid #9d9d9d;font-weight:500}.student-box .photo-box{width:112px;height:128px}.ribbon{background:var(--purple);color:#fff;display:inline-block;border-radius:16px 16px 0 0;padding:7px 20px;font-size:15px;margin:6px 0 0}.sheet-table{border:1px solid var(--purple);font-size:12px}.sheet-table th,.sheet-table td{text-align:center;border:1px solid #cbb4c9;padding:6px 5px}.sheet-table th:first-child,.sheet-table td:first-child{text-align:left}.sheet-table thead th{background:#a62b78;color:#fff;text-transform:none}.sheet-table thead tr+tr th{background:#f3f7ed;color:var(--ink)}.total-row{background:#f9ecf6}.formula{font-size:12px;margin:5px 0 12px}.co-table{margin-bottom:14px}.bottom-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}.remark-box,.grade-key{border:1px solid #bfc9ba;border-radius:8px;padding:12px;font-size:12px}.remark-box p{margin:5px 0}.signatures{display:flex;justify-content:space-between;gap:10px;margin-top:45px;padding-top:0}.grade-key>b{display:block;background:var(--green);color:#fff;text-align:center;padding:5px;margin:-12px -12px 7px}.grade-key table{font-size:11px}.grade-key td,.grade-key th{padding:3px;text-align:center}.grade-key th{background:#eef5e9;color:var(--ink)}
@media(max-width:800px){.topbar{align-items:flex-start;flex-direction:column}.topbar nav{gap:10px}.hero,.page-heading{flex-direction:column}.grid.two,.grid.three,.setup-grid,.grade-list{grid-template-columns:1fr}.setup-grid .span-2{grid-column:auto}.checks{grid-template-columns:1fr}.filter-bar label{min-width:130px}.student-box{flex-direction:column}.bottom-grid{grid-template-columns:1fr}.sheet-header{flex-direction:column}.sheet-header img{width:280px}.marksheet{padding:12px}.sheet-table{font-size:10px}}
@media print{body{background:#fff}.topbar,.footer,.print-actions{display:none!important}.container{width:100%;margin:0}.marksheet{border:0;padding:0;max-width:none}.sheet-header img{width:270px;height:75px}.sheet-table{font-size:10px}.ribbon{break-after:avoid}}
/* Compact emblem-only branding: school text stays editable HTML. */
.brand img{width:56px;height:56px;object-fit:contain;object-position:center}.sheet-header img{width:120px;height:110px;object-fit:contain}.auth-card img,.brand-panel img{width:120px;height:120px;max-height:none;object-fit:contain}@media(max-width:800px){.brand img{width:44px;height:44px}.sheet-header img{width:110px;height:100px}}@media print{.sheet-header img{width:120px;height:105px}}
/* A4 portrait print layout: keep the complete report on one sheet at 100%. */
@page{size:A4 portrait;margin:8mm}
@media print{html,body{width:190mm;min-height:0;margin:0;padding:0;background:#fff;overflow:visible;-webkit-print-color-adjust:exact;print-color-adjust:exact}.container{width:190mm;margin:0}.marksheet{width:190mm;max-width:none;min-height:0;margin:0;padding:3mm;border:0;box-shadow:none;font-size:8px;line-height:1.1}.sheet-header{gap:6px;padding-bottom:3px;break-inside:avoid;page-break-inside:avoid}.sheet-header img{width:23mm;height:19mm}.sheet-header h1{font-size:15px;line-height:1.05}.sheet-header p{margin:1px 0;font-size:8px}.session-pill{padding:2px 10px;margin-top:2px;font-size:8px}.student-box{display:grid;grid-template-columns:1fr 25mm;align-items:start;gap:5px;margin:3px 0;padding:4px 6px;break-inside:avoid;page-break-inside:avoid}.student-box p{margin:1px 0}.student-box p b{min-width:95px}.student-box .photo-box{width:22mm;height:26mm}.ribbon{padding:3px 9px;margin:2px 0 0;font-size:9px;line-height:1.05;break-after:avoid}.sheet-table{font-size:7px;line-height:1.02;table-layout:fixed;break-inside:avoid;page-break-inside:avoid}.sheet-table th,.sheet-table td{padding:2px 2px;line-height:1.02}.sheet-table th:first-child,.sheet-table td:first-child{width:25%}.formula{font-size:7px;margin:2px 0 3px}.co-table{margin-bottom:3px}.bottom-grid{gap:5px;break-inside:avoid;page-break-inside:avoid}.remark-box,.grade-key{padding:5px;font-size:7px;line-height:1.05;break-inside:avoid;page-break-inside:avoid}.remark-box p{margin:2px 0}.signatures{margin-top:13px;padding-top:2px}.grade-key>b{padding:2px;margin:-5px -5px 3px}.grade-key table{font-size:7px}.grade-key td,.grade-key th{padding:1px}.sheet-header,.student-box,.sheet-table,.co-table,.bottom-grid{page-break-inside:avoid}}
.inline-status{display:inline-flex;align-items:center;gap:5px;margin-left:6px}.inline-status select{width:auto;padding:5px;font-size:12px}@media(max-width:800px){.inline-status{margin:6px 0 0;display:flex}}
.marksheet-brand{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center}.marksheet-brand>img{width:74px;height:74px;object-fit:contain}.marksheet-wordmark{display:flex;flex-direction:column;align-items:center;line-height:1}.marksheet-school-name{font:700 32px/1 Georgia,"Times New Roman",serif;letter-spacing:.07em;color:#b01875}.marksheet-school-subtitle{font:700 15px/1.15 Georgia,"Times New Roman",serif;letter-spacing:.13em;color:#172b54}.marksheet-tagline{display:flex;align-items:center;gap:7px;margin:5px 0 3px;font:italic 12px/1 Georgia,"Times New Roman",serif;color:#667085}.marksheet-tagline .rule{display:inline-block;width:26px;height:2px}.rule-orange{background:var(--orange)}.rule-green{background:var(--green)}.marksheet-address{font:11px/1.25 Georgia,"Times New Roman",serif;color:#172133}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:5px 0}.summary-card{border:1px solid #bfc9ba;border-radius:7px;padding:6px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;font-size:11px}.summary-card>b{grid-column:1/-1;text-align:center;color:var(--purple-dark);font-size:10px}.summary-card span{display:flex;flex-direction:column;gap:1px;text-align:center}.summary-card strong{font-size:13px;color:var(--ink)}.signature-line{display:flex;flex:1;min-width:0;justify-content:center;align-items:flex-end;position:relative;border-top:1px solid #777;padding-top:4px;text-align:center}.principal-signature{display:block;max-width:42mm;height:11mm;object-fit:contain;position:absolute;bottom:100%;left:50%;transform:translateX(-50%)}.signature-preview{max-width:240px;max-height:100px;object-fit:contain;border:1px solid var(--line);padding:5px}.signature-line.principal-signature-line{padding-top:4px}@media(max-width:800px){.marksheet-brand>img{width:56px;height:56px}.marksheet-school-name{font-size:25px}.marksheet-school-subtitle{font-size:12px}.marksheet-address{font-size:9px}.summary-grid{grid-template-columns:1fr}.summary-card{font-size:10px}}@media print{.marksheet-brand{gap:4px}.marksheet-brand>img{width:18mm;height:17mm}.marksheet-school-name{font-size:18px}.marksheet-school-subtitle{font-size:9px}.marksheet-tagline{font-size:8px;margin:2px 0;gap:4px}.marksheet-tagline .rule{width:16px;height:1px}.marksheet-address{font-size:7px}.summary-grid{gap:3px;margin:2px 0}.summary-card{padding:3px;font-size:7px;line-height:1}.summary-card>b{font-size:7px}.summary-card strong{font-size:8px}.signature-line{padding-top:2px;font-size:7px}.principal-signature{height:7mm;max-width:30mm}}
.signatures{border-top:0!important;padding-top:0;align-items:flex-end}
/* Final marksheet layout contract. These high-specificity rules intentionally
   override the original screen/report defaults so the printable report has a
   stable lockup, metric strip, and three independent signature columns. */
.marksheet .sheet-header{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;text-align:center!important;padding:5px 0 6px!important}
.marksheet .marksheet-brand{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:12px!important;width:100%!important}
.marksheet .marksheet-brand>img{width:100px!important;height:100px!important;object-fit:contain!important;flex:0 0 100px!important}
.marksheet .marksheet-wordmark{width:min(620px,calc(100% - 120px))!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.marksheet .marksheet-school-name{font:700 34px/1.02 Georgia,"Times New Roman",serif!important;color:#b01875!important;letter-spacing:.08em!important}
.marksheet .marksheet-school-subtitle{font:700 16px/1.15 Georgia,"Times New Roman",serif!important;color:#172b54!important;letter-spacing:.14em!important}
.marksheet .marksheet-tagline{justify-content:center!important}
.marksheet .session-pill{margin-top:0!important;align-self:center!important}
.marksheet .summary-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:8px 0!important;width:100%!important}
.marksheet .summary-card{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:center!important;gap:8px!important;padding:8px 10px!important;min-height:54px!important;line-height:1.25!important}
.marksheet .summary-card>b{display:block!important;grid-column:1/-1!important;margin-bottom:2px!important;line-height:1.15!important}
.marksheet .summary-card span{display:flex!important;flex-direction:column!important;gap:3px!important;white-space:nowrap!important}
.marksheet .summary-card strong{display:block!important;line-height:1.1!important}
.marksheet .signatures{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;width:100%!important;margin-top:32px!important;padding-top:0!important;border-top:0!important;align-items:end!important}
.marksheet .signature-line{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-end!important;gap:3px!important;width:100%!important;min-height:28px!important;padding:7px 2px 0!important;border-top:0!important;white-space:nowrap!important}
.marksheet .signature-line::before{content:""!important;display:block!important;width:100%!important;border-top:1px solid #777!important;order:-2!important}
.marksheet .signature-label{display:block!important;font-weight:700!important;line-height:1.1!important}
.marksheet .signature-value{display:block!important;line-height:1.1!important}
.marksheet .principal-signature-line{position:relative!important}
.marksheet .principal-signature{position:static!important;transform:none!important;order:-1!important;width:auto!important;max-width:42mm!important;height:11mm!important;margin:0 auto -2px!important}
@media(max-width:800px){.marksheet .marksheet-brand{gap:7px!important}.marksheet .marksheet-brand>img{width:64px!important;height:64px!important;flex-basis:64px!important}.marksheet .marksheet-wordmark{width:calc(100% - 78px)!important}.marksheet .marksheet-school-name{font-size:25px!important}.marksheet .marksheet-school-subtitle{font-size:11px!important}.marksheet .summary-grid{grid-template-columns:1fr!important}.marksheet .signatures{gap:8px!important}}
@media print{.marksheet .sheet-header{flex-direction:column!important;gap:2mm!important;padding:1mm 0 1.5mm!important}.marksheet .marksheet-brand{flex-direction:row!important;gap:3mm!important}.marksheet .marksheet-brand>img{width:25mm!important;height:25mm!important;flex-basis:25mm!important}.marksheet .marksheet-wordmark{width:150mm!important}.marksheet .marksheet-school-name{font-size:25px!important}.marksheet .marksheet-school-subtitle{font-size:11px!important}.marksheet .marksheet-tagline{font-size:8px!important;margin:1mm 0!important}.marksheet .marksheet-address{font-size:7px!important}.marksheet .session-pill{font-size:8px!important;padding:1.5mm 8mm!important}.marksheet .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2mm!important;margin:2mm 0!important}.marksheet .summary-card{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:1.5mm!important;padding:1.5mm!important;min-height:12mm!important;font-size:7px!important}.marksheet .summary-card>b{font-size:7px!important}.marksheet .summary-card strong{font-size:8px!important}.marksheet .signatures{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6mm!important;margin-top:7mm!important;border-top:0!important}.marksheet .signature-line{padding-top:1.5mm!important;font-size:7px!important;min-height:9mm!important}.marksheet .signature-line::before{border-top:1px solid #777!important}.marksheet .principal-signature{height:7mm!important;max-width:30mm!important}}

/* Last-resort print contract: these selectors deliberately include the
 * print-page scope so older report rules cannot turn the active v2 report
 * back into the former stacked/banner layout. */
.print-page .marksheet .sheet-header{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;text-align:center!important}
.print-page .marksheet .marksheet-brand{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.print-page .marksheet .session-pill{display:inline-block!important;align-self:center!important}
.print-page .marksheet .summary-grid{display:grid!important;align-items:stretch!important}
.print-page .marksheet .summary-card{display:grid!important;align-content:center!important}
.print-page .marksheet .signatures{display:grid!important;border-top:0!important}
.print-page .marksheet .signature-line{display:flex!important;border-top:0!important}
.print-page .marksheet .signature-line::before{content:""!important;display:block!important;border-top:1px solid #777!important}
@media print{
  html,body{width:auto!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}
  body.print-page .container{width:190mm!important;margin:0!important;padding:0!important}
  .print-page .marksheet{width:190mm!important;max-width:190mm!important;min-height:0!important;margin:0!important;padding:3mm!important;box-shadow:none!important}
  .print-page .marksheet .sheet-header{gap:2mm!important;padding:1mm 0 1.5mm!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .print-page .marksheet .marksheet-brand{gap:3mm!important;width:100%!important}
  .print-page .marksheet .marksheet-brand>img{width:25mm!important;height:25mm!important;flex:0 0 25mm!important;object-fit:contain!important}
  .print-page .marksheet .marksheet-wordmark{width:150mm!important;max-width:150mm!important}
  .print-page .marksheet .session-pill{margin-top:0!important}
  .print-page .marksheet .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:2mm!important;margin:2mm 0!important}
  .print-page .marksheet .summary-card{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:1.5mm!important;padding:1.5mm!important;min-height:12mm!important;font-size:7px!important;line-height:1.05!important}
  .print-page .marksheet .summary-card span{display:flex!important;flex-direction:column!important;gap:1px!important;white-space:nowrap!important}
  .print-page .marksheet .signatures{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6mm!important;margin-top:7mm!important;padding-top:0!important}
  .print-page .marksheet .signature-line{min-height:9mm!important;padding:1.5mm 1mm 0!important;font-size:7px!important;white-space:nowrap!important}
  .print-page .marksheet .signature-line::before{width:100%!important;order:-2!important}
  .print-page .marksheet .principal-signature{height:7mm!important;max-width:30mm!important}
  .print-page .marksheet .sheet-header,.print-page .marksheet .student-box,.print-page .marksheet .sheet-table,.print-page .marksheet .co-table,.print-page .marksheet .bottom-grid{break-inside:avoid!important;page-break-inside:avoid!important}
}


/* Identity details are typography, not blank-form fields. The same markup is
 * used for screen preview and print, so these rules only improve hierarchy. */
.marksheet .student-box{position:relative;isolation:isolate}
.marksheet .student-details{flex:1;min-width:0}
.marksheet .student-details p{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px}
.marksheet .student-details p span{font-weight:650;color:var(--muted);white-space:nowrap}
.marksheet .student-details p b{border-bottom:0!important;min-width:0!important;font-weight:700;color:var(--ink)}
.marksheet .student-box::after{content:"";position:absolute;inset:0;background:url("../assets/hilltop-emblem.png") center/72mm auto no-repeat;opacity:.035;pointer-events:none;z-index:-1}
.marksheet .student-details,.marksheet .student-box>.photo-box{position:relative;z-index:1}
@media print{
  .print-page .marksheet{position:relative;isolation:isolate;font-size:10px!important;line-height:1.22!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .print-page .marksheet::before{content:"";position:absolute;inset:34mm 20mm 38mm;background:url("../assets/hilltop-emblem.png") center/76mm auto no-repeat;opacity:.055;pointer-events:none;z-index:0}
  .print-page .marksheet>*{position:relative;z-index:1}
  .print-page .marksheet .student-box::after{opacity:.025}
  .print-page .marksheet .student-details p{gap:0 5px;margin:2px 0!important;line-height:1.25!important}
  .print-page .marksheet .student-details p span{font-size:9px!important}
  .print-page .marksheet .student-details p b{font-size:10px!important}
  .print-page .marksheet .sheet-table{font-size:9px!important;line-height:1.1!important}
  .print-page .marksheet .sheet-table th,.print-page .marksheet .sheet-table td{padding:2.5px 3px!important;line-height:1.1!important}
  .print-page .marksheet .ribbon{font-size:10px!important;padding:3px 10px!important}
  .print-page .marksheet .formula{font-size:8px!important;margin:3px 0 5px!important}
  .print-page .marksheet .remark-box,.print-page .marksheet .grade-key{font-size:8px!important;line-height:1.15!important}
  .print-page .marksheet .grade-key table{font-size:8px!important}
  .print-page .marksheet .grade-key td,.print-page .marksheet .grade-key th{padding:2px!important}
}
/* v1.0.3 readability pass: use the available A4 height without a scale or
 * zoom transform. This is the final print rule block so legacy compact rules
 * cannot shrink the live report back into the top half of the page. */
@media print{
  .print-page .marksheet{font-size:10.5px!important;line-height:1.28!important}
  .print-page .marksheet .sheet-header{padding:2mm 0 2.5mm!important;gap:2.5mm!important}
  .print-page .marksheet .marksheet-brand>img{width:26mm!important;height:26mm!important}
  .print-page .marksheet .marksheet-school-name{font-size:26px!important}
  .print-page .marksheet .marksheet-school-subtitle{font-size:12px!important}
  .print-page .marksheet .marksheet-address{font-size:8px!important}
  .print-page .marksheet .session-pill{font-size:9px!important;padding:1.8mm 9mm!important}
  .print-page .marksheet .student-box{margin:4mm 0!important;padding:5px 7px!important;gap:6px!important}
  .print-page .marksheet .student-details p{margin:2.5px 0!important}
  .print-page .marksheet .sheet-table{font-size:9.5px!important;line-height:1.18!important}
  .print-page .marksheet .sheet-table th,.print-page .marksheet .sheet-table td{padding:3px 3.5px!important;line-height:1.18!important}
  .print-page .marksheet .ribbon{font-size:10.5px!important;padding:4px 11px!important;margin-top:3px!important}
  .print-page .marksheet .formula{font-size:8.5px!important;margin:4px 0 6px!important}
  .print-page .marksheet .summary-grid{gap:2.5mm!important;margin:3mm 0!important}
  .print-page .marksheet .summary-card{font-size:9px!important;line-height:1.18!important;min-height:15mm!important;padding:2mm!important;gap:2mm!important}
  .print-page .marksheet .summary-card>b{font-size:9px!important}
  .print-page .marksheet .summary-card strong{font-size:10px!important}
  .print-page .marksheet .bottom-grid{gap:6mm!important}
  .print-page .marksheet .remark-box,.print-page .marksheet .grade-key{font-size:8.5px!important;line-height:1.2!important;padding:6px!important}
  .print-page .marksheet .grade-key table{font-size:8.5px!important}
  .print-page .marksheet .signatures{margin-top:9mm!important;gap:7mm!important}
  .print-page .marksheet .signature-line{font-size:8.5px!important;min-height:11mm!important;padding-top:2mm!important}
}

/* Final v1.0.5 overrides. Keep these last so the active preview and print
 * contract wins over older compatibility rules above. */
.mark-entry{display:flex;align-items:stretch;justify-content:center;gap:4px;min-width:132px}
.mark-entry .mark-input{min-width:76px;flex:1}
.absent-button{border:1px solid #d9a8c9;background:#fff5fb;color:var(--purple-dark);border-radius:7px;padding:0 8px;cursor:pointer;font:700 12px/1 inherit}
.absent-button:hover,.absent-button:focus{background:#f5d8ed;border-color:var(--purple);outline:2px solid #f1d7eb;outline-offset:1px}
.bulk-marksheets{width:100%}
.bulk-sheet{break-after:page;page-break-after:always}
.bulk-sheet:last-child{break-after:auto;page-break-after:auto}
@page{size:A4 portrait;margin:7mm}
@media print{
  body.print-page .container{width:196mm!important;margin:0 auto!important}
  body.print-page .marksheet{width:196mm!important;max-width:196mm!important;min-height:0!important;margin:0!important;padding:3mm!important;overflow:hidden!important}
  .print-page .marksheet::before{inset:40mm 34mm 44mm!important;background-size:58mm auto!important;background-repeat:no-repeat!important;background-position:center!important}
  .print-page .marksheet .sheet-header{padding:2mm 0 2.5mm!important}
  .print-page .marksheet .marksheet-brand{width:100%!important;justify-content:center!important}
  .print-page .marksheet .marksheet-brand>img{width:25mm!important;height:25mm!important;flex-basis:25mm!important}
  .print-page .marksheet .marksheet-school-name{font-size:25px!important}
  .print-page .marksheet .marksheet-school-subtitle{font-size:11px!important}
  .print-page .marksheet .marksheet-address{font-size:8px!important}
  .print-page .marksheet .student-box{margin:3mm 0!important;padding:4px 6px!important}
  .print-page .marksheet .sheet-table{font-size:9px!important;line-height:1.12!important}
  .print-page .marksheet .sheet-table th,.print-page .marksheet .sheet-table td{padding:2.5px 3px!important;line-height:1.12!important}
  .print-page .marksheet .summary-grid{gap:2mm!important;margin:2mm 0!important}
  .print-page .marksheet .summary-card{min-height:13mm!important;padding:1.5mm!important;font-size:8px!important}
  .print-page .marksheet .summary-card>b{font-size:8px!important}
  .print-page .marksheet .summary-card strong{font-size:9px!important}
  .print-page .marksheet .bottom-grid{gap:4mm!important}
  .print-page .marksheet .remark-box,.print-page .marksheet .grade-key{font-size:8px!important;line-height:1.12!important;padding:5px!important}
  .print-page .marksheet .grade-key table{font-size:8px!important}
  .print-page .marksheet .signatures{margin-top:6mm!important;gap:5mm!important}
  .print-page .marksheet .signature-line{font-size:8px!important;min-height:9mm!important;padding-top:1.5mm!important}
  .print-page .bulk-sheet{break-after:page!important;page-break-after:always!important}
  .print-page .bulk-sheet:last-child{break-after:auto!important;page-break-after:auto!important}
}

/* Final v1.0.6 print polish: center the wordmark itself while the emblem is
 * anchored independently, and retain the readable preview card proportions. */
@media print{
  .print-page .marksheet .sheet-header{gap:2mm!important;padding:2mm 0 2.5mm!important}
  .print-page .marksheet .marksheet-brand{display:block!important;position:relative!important;width:100%!important;height:31mm!important;text-align:center!important}
  .print-page .marksheet .marksheet-brand>img{position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:28mm!important;height:28mm!important;flex:none!important}
  .print-page .marksheet .marksheet-wordmark{display:flex!important;position:relative!important;width:100%!important;height:100%!important;margin:0 auto!important;align-items:center!important;justify-content:center!important;text-align:center!important}
  .print-page .marksheet .marksheet-school-name{font-size:29px!important;line-height:1.05!important;letter-spacing:.09em!important}
  .print-page .marksheet .marksheet-school-subtitle{font-size:14px!important;line-height:1.15!important;letter-spacing:.15em!important}
  .print-page .marksheet .marksheet-tagline{font-size:10px!important;margin:2mm 0 1mm!important}
  .print-page .marksheet .marksheet-address{font-size:9px!important}
  .print-page .marksheet .session-pill{font-size:9px!important;padding:1.8mm 9mm!important;margin-top:0!important}
  .print-page .marksheet .bottom-grid{display:grid!important;grid-template-columns:1.5fr 1fr!important;align-items:stretch!important;gap:5mm!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .print-page .marksheet .remark-box,.print-page .marksheet .grade-key{font-size:9.5px!important;line-height:1.25!important;padding:8px!important;min-width:0!important}
  .print-page .marksheet .remark-box p{margin:4px 0!important}
  .print-page .marksheet .grade-key>b{padding:4px!important;margin:-8px -8px 6px!important;font-size:10px!important}
  .print-page .marksheet .grade-key table{width:100%!important;font-size:9px!important;line-height:1.2!important}
  .print-page .marksheet .grade-key td,.print-page .marksheet .grade-key th{padding:3px!important}
  .print-page .marksheet .signatures{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5mm!important;margin-top:7mm!important}
  .print-page .marksheet .signature-line{font-size:8.5px!important;min-height:10mm!important;padding-top:2mm!important;white-space:nowrap!important}
  .print-page .marksheet .principal-signature{height:7mm!important;max-width:30mm!important}
}

/* Final v1.0.7 print polish: improve header legibility and make the contained
 * watermark visible without competing with report content. */
@media print{
  .print-page .marksheet::before{opacity:.10!important}
  .print-page .marksheet .sheet-header{padding:2mm 0 2mm!important}
  .print-page .marksheet .marksheet-brand{height:32mm!important}
  .print-page .marksheet .marksheet-school-name{font-size:32px!important;line-height:1.03!important}
  .print-page .marksheet .marksheet-school-subtitle{font-size:15px!important;line-height:1.12!important}
  .print-page .marksheet .marksheet-tagline{font-size:10.5px!important;margin:1.5mm 0 1mm!important}
  .print-page .marksheet .marksheet-address{font-size:9.5px!important;line-height:1.2!important}
  .print-page .marksheet .session-pill{font-size:10px!important;padding:1.6mm 9mm!important}
}
