
/* Classynt public result portal — responsive UI + A4 report sheet */
:root{
  --classynt-blue:#2563eb;
  --classynt-navy:#12233f;
  --classynt-muted:#667085;
  --classynt-border:#e3e8ef;
  --classynt-bg:#f5f7fb;
  --classynt-report-accent:#9A5368;
  --classynt-report-text:#2E2E2E;
}
.classynt-portal{max-width:1180px;margin:0 auto;padding:34px 18px;color:#172033;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
/* Scoped defensive reset — see the identical rule and explanation in
 * assets/css/teacher-portal.css. Not every theme sets box-sizing:
 * border-box globally; without it, width:100% + padding/border on our
 * own elements can compute wider than the theme's content column.
 * Scoped to our own wrapper only. */
.classynt-portal,.classynt-portal *,.classynt-portal *::before,.classynt-portal *::after{box-sizing:border-box}
.classynt-portal-card{background:#fff;border:1px solid #e5eaf1;border-radius:22px;box-shadow:0 18px 60px rgba(15,23,42,.08)}
.classynt-login-card{max-width:480px;margin:30px auto;padding:42px;text-align:center}
.classynt-login-brand{height:76px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.classynt-login-brand img{max-height:72px;max-width:180px;object-fit:contain}
.classynt-login-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#f59e0b);color:#fff;font-weight:900;font-size:24px}
.classynt-portal-kicker{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:850;color:#7d8ba0;margin-bottom:7px}
.classynt-login-card h2,.classynt-fee-card h2{margin:4px 0 10px;color:#14213d;font-size:28px}
.classynt-login-card>p{color:#667085;font-size:14px;line-height:1.65}
.classynt-login-card form{display:grid;gap:15px;margin-top:24px;text-align:left}
.classynt-login-card label{display:grid;gap:7px;font-size:12px;font-weight:750;color:#344054}
.classynt-login-card input{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:11px;padding:12px 13px;font-size:15px;background:#fff}
.classynt-login-card input:focus{outline:none;border-color:#84aaf8;box-shadow:0 0 0 4px rgba(37,99,235,.1)}
.classynt-login-card button,.classynt-support-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:11px;padding:13px 18px;background:#12233f;color:#fff;font-weight:800;text-decoration:none;cursor:pointer}
.classynt-login-card button:hover,.classynt-support-button:hover{background:#2563eb;color:#fff}
.classynt-login-card small{display:block;margin-top:18px;color:#98a2b3;line-height:1.5}
.classynt-portal-alert{padding:12px 14px;border-radius:10px;font-size:13px;margin-top:16px;text-align:left}
.classynt-portal-alert.error{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
.classynt-portal-alert.info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.classynt-fee-card{max-width:560px;margin:50px auto;padding:42px;text-align:center}
.classynt-fee-card .classynt-login-brand{margin-bottom:18px}
.classynt-fee-icon{width:60px;height:60px;border-radius:20px;background:#fff4e5;color:#b54708;display:grid;place-items:center;font-size:27px;font-weight:900;margin:8px auto 20px}
.classynt-fee-card p{color:#667085;line-height:1.7}
.classynt-support-button{margin:12px auto;background:#12233f}
.classynt-text-link{display:block;color:#2563eb;margin-top:14px;text-decoration:none;font-size:13px;font-weight:700}

/* Toolbar */
.classynt-result-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}
.classynt-result-toolbar strong{display:block;font-size:21px;color:#14213d}
.classynt-toolbar-actions{display:flex;align-items:center;gap:9px}
.classynt-toolbar-actions form{display:flex;gap:8px}
.classynt-toolbar-actions label{font-size:11px;font-weight:750;color:#667085;display:flex;align-items:center;gap:6px}
.classynt-toolbar-actions select{border:1px solid #d0d5dd;border-radius:9px;padding:8px 10px;background:#fff;color:#344054}
.classynt-preview-readonly-note{font-size:11px;font-weight:700;color:#667085;background:#f2f4f7;border-radius:999px;padding:6px 12px}
.classynt-print-button,.classynt-logout-button{border:1px solid #d0d5dd;border-radius:9px;background:#fff;color:#344054;padding:9px 13px;font-weight:750;text-decoration:none;cursor:pointer}
.classynt-print-button{background:#12233f;border-color:#12233f;color:#fff}
.classynt-print-button:hover{background:#2563eb;border-color:#2563eb;color:#fff}
.classynt-logout-button:hover{border-color:#98a2b3;color:#12233f}

/* Printable report */
.classynt-report-sheet{background:#fff;color:var(--classynt-report-text);border:1px solid #d9d9d9;box-shadow:0 18px 50px rgba(16,24,40,.10);padding:30px 34px 24px;max-width:1050px;margin:0 auto}
.classynt-report-header{display:flex;align-items:center;justify-content:center;gap:24px;min-height:94px;border-bottom:0}
.classynt-report-logo{width:115px;flex:0 0 115px;text-align:center}
.classynt-report-logo img{max-width:105px;max-height:90px;object-fit:contain}
.classynt-report-school{text-align:center;flex:1}
.classynt-report-school h1{font-family:Georgia,"Times New Roman",serif;margin:0;color:var(--classynt-report-accent);font-size:29px;line-height:1.08;letter-spacing:.01em;font-weight:800;text-transform:uppercase}
.classynt-report-motto{font-size:12px;margin-top:5px;font-style:italic}
.classynt-report-contact{font-size:11px;margin-top:7px;line-height:1.55}
.classynt-report-title{margin:10px 0 18px;text-align:center;color:var(--classynt-report-accent);font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:800;letter-spacing:.02em}
.classynt-report-meta{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border-top:1px solid #bdbdbd;border-bottom:1px solid #bdbdbd}
.classynt-report-meta>div{padding:8px 10px;border-right:1px solid #bdbdbd;min-height:32px}
.classynt-report-meta>div:last-child{border-right:0}
.classynt-report-meta span,.classynt-attendance-strip span,.classynt-report-summary span,.classynt-report-bottom>div>span,.classynt-comment-grid>div>span{font-size:10px;font-weight:700;display:block}
.classynt-report-meta strong{display:block;margin-top:4px;font-size:12px}
.classynt-attendance-strip{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #bdbdbd}
.classynt-attendance-strip>div{padding:7px 10px;border-right:1px solid #bdbdbd}
.classynt-attendance-strip>div:last-child{border-right:0}
.classynt-attendance-strip strong{display:block;margin-top:3px;font-size:12px}
.classynt-report-section{margin-top:14px}
.classynt-report-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}
.classynt-report-table th,.classynt-report-table td{border:1px solid #9e9e9e;padding:5px 5px;text-align:center;vertical-align:middle}
.classynt-report-table thead th{background:#f5f5f5;font-weight:800;line-height:1.2}
.classynt-report-table thead th small{font-size:8px;font-weight:600}
.classynt-subject-table th:first-child,.classynt-subject-table td:first-child{width:19%;text-align:left}
.classynt-subject-table th:nth-last-child(2){width:7%}
.classynt-subject-table th:last-child{width:14%}
.classynt-subject-table .subject-name{font-weight:650}
.classynt-subject-table .total-cell{font-weight:800}
.classynt-subject-table .grade-cell{font-weight:900;color:var(--classynt-report-accent)}
.classynt-report-table .total-row td{font-weight:900;background:#fafafa}
.classynt-report-dual{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}
.classynt-rating-box h3{font-family:Georgia,"Times New Roman",serif;color:var(--classynt-report-accent);font-size:13px;margin:0 0 5px;text-transform:uppercase}
.classynt-rating-report{width:100%;border-collapse:collapse;font-size:9px}
.classynt-rating-report th,.classynt-rating-report td{border:1px solid #9e9e9e;padding:4px 4px;text-align:center;height:17px}
.classynt-rating-report th:first-child,.classynt-rating-report td:first-child{width:50%;text-align:left}
.classynt-rating-check{font-size:13px;font-weight:900;color:var(--classynt-report-accent)}
.classynt-report-scale{display:flex;align-items:center;gap:11px;flex-wrap:wrap;border-bottom:1px solid #bdbdbd;padding:8px 0;font-size:9px}
.classynt-report-scale strong{background:#333;color:#fff;padding:2px 5px;font-size:8px}
.classynt-report-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:8px 0;border-bottom:1px solid #bdbdbd}
.classynt-report-summary>div{display:flex;gap:10px;align-items:baseline}
.classynt-report-summary strong{font-size:14px}
.classynt-report-bottom{padding-top:10px;font-size:9px}
.classynt-report-activity{border-bottom:1px solid #bdbdbd;padding-bottom:8px}
.classynt-report-activity>div{min-height:28px;margin-top:5px}
.classynt-comment-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:9px}
.classynt-comment-grid>div{border-bottom:1px solid #bdbdbd;min-height:55px;padding-bottom:6px}
.classynt-comment-grid>div>div{margin-top:5px;min-height:28px;line-height:1.45}
.classynt-comment-grid small{font-size:8px;color:#555}
.classynt-resumption{display:flex;justify-content:flex-start;gap:10px;margin-top:9px}
.classynt-report-footer{display:flex;justify-content:space-between;margin-top:15px;padding-top:8px;border-top:1px solid #bdbdbd;font-size:8px;color:#666}

/* Responsive */
@media screen and (max-width:850px){
  .classynt-result-toolbar{align-items:flex-start;flex-direction:column}
  .classynt-toolbar-actions{width:100%;flex-wrap:wrap}
  .classynt-toolbar-actions form{width:100%;flex-wrap:wrap}
  .classynt-report-sheet{padding:20px 15px;overflow-x:auto}
  .classynt-report-meta{grid-template-columns:1fr 1fr}
  .classynt-report-meta>div:nth-child(2){border-right:0}
  .classynt-report-dual{grid-template-columns:1fr}
}
@media screen and (max-width:600px){
  .classynt-portal{padding:15px 8px}
  .classynt-login-card,.classynt-fee-card{padding:28px 20px}
  .classynt-report-header{gap:8px}
  .classynt-report-logo{width:75px;flex-basis:75px}
  .classynt-report-logo img{max-width:70px}
  .classynt-report-school h1{font-size:20px}
}

/* Print */
@media print{
  @page{size:A4 portrait;margin:9mm}
  /* Hide theme chrome so the print preview shows the report, not a blank page. */
  body.classynt-printing *{visibility:hidden!important}
  body.classynt-printing .classynt-report-portal,
  body.classynt-printing .classynt-report-portal *{visibility:visible!important}
  body.classynt-printing .classynt-report-portal{position:absolute!important;left:0;top:0;width:100%!important}
  html,body{height:auto!important;overflow:visible!important}
  #page,#content,.site-content,.entry-content,.wp-site-blocks,main{overflow:visible!important;max-width:none!important;width:auto!important}
  html,body{background:#fff!important}
  body{margin:0!important}
  .classynt-portal{max-width:none;padding:0;margin:0}
  .no-print{display:none!important}
  .classynt-report-sheet{max-width:none;border:0;box-shadow:none;padding:0;margin:0}
  .classynt-report-header{break-inside:avoid}
  .classynt-report-table,.classynt-rating-box{break-inside:avoid}
  .classynt-report-table th{background:#f5f5f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Head teacher sign-off */
.classynt-signoff-display{margin-top:6px;min-height:22px;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.classynt-head-signature{display:block;max-width:150px;max-height:42px;width:auto;height:auto;object-fit:contain}
.classynt-signoff-display small{font-size:8px;color:#555}

/* Mobile report safety: preserve the approved table structure without page overflow. */
@media screen and (max-width:600px){
  .classynt-report-sheet{width:100%;box-sizing:border-box;padding:13px 8px;overflow:visible}
  .classynt-report-header{min-height:74px;gap:5px}
  .classynt-report-logo{width:58px;flex-basis:58px}
  .classynt-report-logo img{max-width:54px;max-height:60px}
  .classynt-report-school h1{font-size:16px;line-height:1.05}
  .classynt-report-motto{font-size:9px}
  .classynt-report-contact{font-size:8px;line-height:1.35}
  .classynt-report-title{font-size:14px;margin:7px 0 10px}
  .classynt-report-meta{grid-template-columns:1fr 1fr}
  .classynt-report-meta>div{padding:5px 6px;min-height:25px}
  .classynt-report-meta span,.classynt-attendance-strip span,.classynt-report-summary span,.classynt-report-bottom>div>span,.classynt-comment-grid>div>span{font-size:7px}
  .classynt-report-meta strong{font-size:8px;margin-top:2px;overflow-wrap:anywhere}
  .classynt-attendance-strip{grid-template-columns:1fr 1fr 1fr}
  .classynt-attendance-strip>div{padding:5px 5px}
  .classynt-attendance-strip strong{font-size:8px}
  .classynt-report-section{margin-top:8px}
  .classynt-report-table{font-size:7px;line-height:1.05}
  .classynt-report-table th,.classynt-report-table td{padding:3px 2px;word-break:normal;overflow-wrap:anywhere}
  .classynt-report-table thead th small{font-size:6px}
  .classynt-subject-table th:first-child,.classynt-subject-table td:first-child{width:23%}
  .classynt-subject-table th:last-child{width:13%}
  .classynt-report-dual{gap:7px;margin-top:8px}
  .classynt-rating-box h3{font-size:9px;margin-bottom:3px}
  .classynt-rating-report{font-size:6.5px}
  .classynt-rating-report th,.classynt-rating-report td{padding:2px;height:13px}
  .classynt-rating-check{font-size:9px}
  .classynt-report-scale{gap:5px;font-size:6.5px;padding:5px 0}
  .classynt-report-scale strong{font-size:6px}
  .classynt-report-summary{gap:7px;padding:5px 0}
  .classynt-report-summary strong{font-size:10px}
  .classynt-report-bottom{font-size:7px;padding-top:6px}
  .classynt-comment-grid{gap:7px;margin-top:6px}
  .classynt-comment-grid>div{min-height:45px}
  .classynt-comment-grid>div>div{margin-top:3px;min-height:22px;line-height:1.3}
  .classynt-comment-grid small{font-size:6.5px}
  .classynt-head-signature{max-width:105px;max-height:30px}
  .classynt-report-footer{font-size:6px;margin-top:8px;padding-top:5px}
}

/* Print / browser PDF preview hardening */
@media print{
  .classynt-report-sheet{overflow:visible!important;width:auto!important}
  .classynt-report-table{overflow:visible!important}
  .classynt-report-table th,.classynt-report-table td{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .classynt-head-signature{max-width:150px;max-height:42px}
}


/* Global result-template library (Phase 3). */
.classynt-global-report{--classynt-template-accent:var(--classynt-report-accent,#9A5368);background:#fff;border:1px solid #dfe7ef;border-radius:18px;box-shadow:0 18px 50px rgba(16,42,67,.10);padding:28px;box-sizing:border-box;overflow:hidden}
.classynt-global-header{display:flex;gap:18px;align-items:center;padding-bottom:20px;border-bottom:2px solid var(--classynt-template-accent)}
.classynt-global-logo{width:76px;height:76px;border:1px solid #e5e7eb;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#f8fafc;overflow:hidden;flex:0 0 76px}
.classynt-global-logo img{max-width:68px;max-height:68px;object-fit:contain}
.classynt-global-kicker{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--classynt-template-accent)}
.classynt-global-header h1{margin:4px 0;font-size:28px;color:#102a43}.classynt-global-header p{margin:0;color:#64748b}
.classynt-global-student{display:grid;grid-template-columns:2fr 1fr 1fr;gap:0;margin:20px 0;background:#f8fafc;border:1px solid #e5eaf0;border-radius:12px;overflow:hidden}
.classynt-global-student>div{padding:12px 14px;border-right:1px solid #e5eaf0}.classynt-global-student>div:last-child{border-right:0}.classynt-global-student span,.classynt-global-summary span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.classynt-global-student strong{display:block;margin-top:3px;color:#102a43}
.classynt-global-callout{display:flex;justify-content:space-between;gap:16px;padding:13px 15px;margin:0 0 18px;border-left:4px solid var(--classynt-template-accent);background:#f8fbff;border-radius:10px;color:#334155}.classynt-global-callout strong{color:#102a43}.classynt-global-section h2{font-size:18px;color:#102a43;margin:0 0 10px}.classynt-global-table-wrap{overflow:auto}.classynt-global-table{width:100%;border-collapse:collapse;min-width:680px;font-size:12px}.classynt-global-table th,.classynt-global-table td{padding:10px 9px;border:1px solid #dfe7ef;text-align:left;vertical-align:middle}.classynt-global-table th{background:#f1f5f9;text-transform:uppercase;font-size:10px;letter-spacing:.04em;color:#475569}.classynt-global-table td:nth-last-child(3),.classynt-global-table td:nth-last-child(2){text-align:center}.classynt-global-grade{font-weight:900;color:var(--classynt-template-accent)!important;text-align:center!important}.classynt-global-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.classynt-global-summary>div{padding:14px;border:1px solid #e5eaf0;border-radius:12px;background:#fff}.classynt-global-summary strong{display:block;margin-top:4px;font-size:20px;color:#102a43}.classynt-global-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.classynt-global-panels>div{padding:16px;border:1px solid #e5eaf0;border-radius:12px;background:#fbfdff}.classynt-global-panels h3{margin:0 0 7px;color:var(--classynt-template-accent);font-size:13px;text-transform:uppercase}.classynt-global-panels p{margin:0;line-height:1.6;color:#475569}.classynt-global-panels .classynt-rating-box{background:transparent}.classynt-global-footer{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:10px;border-top:1px solid #e5eaf0;color:#64748b;font-size:10px}
.classynt-global-academic .classynt-global-header{background:linear-gradient(135deg,#f8fbff,#fff);margin:-28px -28px 0;padding:28px}.classynt-global-comprehensive .classynt-global-callout{background:#fff7fb}.classynt-global-transcript .classynt-global-table th{background:#eef2ff}.classynt-global-progress .classynt-global-callout{background:#f0fdf4;border-left-color:#16805b}.classynt-global-competency .classynt-global-callout{background:#f5f3ff;border-left-color:#6d4aff}
@media screen and (max-width:700px){.classynt-global-report{padding:16px;border-radius:12px}.classynt-global-academic .classynt-global-header{margin:-16px -16px 0;padding:16px}.classynt-global-header h1{font-size:21px}.classynt-global-student{grid-template-columns:1fr}.classynt-global-student>div{border-right:0;border-bottom:1px solid #e5eaf0}.classynt-global-summary{grid-template-columns:1fr}.classynt-global-panels{grid-template-columns:1fr}.classynt-global-footer{flex-direction:column}.classynt-global-callout{flex-direction:column;gap:5px}}
@media print{.classynt-global-report{border:0;box-shadow:none;padding:0;border-radius:0}.classynt-global-academic .classynt-global-header{margin:0;padding:0}.classynt-global-table th{background:#f1f5f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Comprehensive template — its own fixed palette, independent of the
   school's chosen primary/secondary colors. The !important here is
   intentional: it overrides the inline --classynt-report-accent set on
   the portal wrapper from School Setup, so every element that already
   reads that variable (the reused .classynt-report-sheet / rating-table
   helpers below) picks up this template's own accent automatically. */
.classynt-template-comprehensive{--classynt-report-accent:#7A2048!important;--classynt-report-text:#2B2320!important}
.classynt-comp-sheet{padding:36px 40px 28px;border-radius:2px}
.classynt-comp-header{display:flex;gap:22px;align-items:flex-start;padding-bottom:20px;border-bottom:3px double #d8c3ca}
.classynt-comp-logo{width:84px;height:84px;flex:0 0 84px;border:1px solid #ecdfe3;border-radius:6px;display:flex;align-items:center;justify-content:center;background:#fbf7f5;overflow:hidden}
.classynt-comp-logo img{max-width:76px;max-height:76px;object-fit:contain}
.classynt-comp-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--classynt-report-accent)}
.classynt-comp-heading h1{font-family:Georgia,"Times New Roman",serif;margin:5px 0 0;font-size:26px;color:#2B2320;letter-spacing:.01em}
.classynt-comp-motto{margin:4px 0 0;font-size:12px;font-style:italic;color:#6b5b60}
.classynt-comp-period{margin:6px 0 0;font-size:12px;color:#8a7a7f;text-transform:uppercase;letter-spacing:.04em}
.classynt-comp-student{display:grid;grid-template-columns:repeat(4,1fr);margin:22px 0;background:#fbf7f5;border:1px solid #ecdfe3}
.classynt-comp-student>div{padding:12px 14px;border-right:1px solid #ecdfe3}
.classynt-comp-student>div:last-child{border-right:0}
.classynt-comp-student span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8a7a7f}
.classynt-comp-student strong{display:block;margin-top:4px;color:#2B2320;font-size:13px}
.classynt-comp-section{margin-top:28px}
.classynt-comp-section-head{display:flex;gap:14px;align-items:center;padding-bottom:10px;border-bottom:1px solid #ecdfe3;margin-bottom:14px}
.classynt-comp-number{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--classynt-report-accent);color:#fff;font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.classynt-comp-section-head h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:17px;color:#2B2320}
.classynt-comp-section-head p{margin:2px 0 0;font-size:11px;color:#8a7a7f}
.classynt-comp-table-wrap{overflow:auto}
.classynt-comp-table{width:100%;border-collapse:collapse;min-width:640px;font-size:11.5px}
.classynt-comp-table th,.classynt-comp-table td{border:1px solid #ecdfe3;padding:8px 8px;text-align:center;vertical-align:middle}
.classynt-comp-table thead th{background:#fbf7f5;font-weight:800;font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:#6b5b60}
.classynt-comp-subject{text-align:left!important;font-weight:650}
.classynt-comp-total{font-weight:800}
.classynt-comp-grade{font-weight:900;color:var(--classynt-report-accent)}
.classynt-comp-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.classynt-comp-summary>div{padding:12px 14px;border:1px solid #ecdfe3;background:#fbf7f5}
.classynt-comp-summary span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8a7a7f}
.classynt-comp-summary strong{display:block;margin-top:4px;font-size:18px;color:#2B2320}
.classynt-comp-attendance{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.classynt-comp-attendance>div{padding:12px 14px;border:1px solid #ecdfe3;background:#fbf7f5;text-align:center}
.classynt-comp-attendance span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#8a7a7f}
.classynt-comp-attendance strong{display:block;margin-top:4px;font-size:16px;color:#2B2320}
.classynt-comp-dual{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.classynt-comp-dual .classynt-rating-box{border:1px solid #ecdfe3;padding:12px 14px;background:#fff}
.classynt-comp-activities{padding:14px;border:1px solid #ecdfe3;background:#fbf7f5;margin-bottom:16px}
.classynt-comp-activities span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#8a7a7f}
.classynt-comp-activities p{margin:6px 0 0;line-height:1.6;color:#2B2320}
.classynt-comp-signoffs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.classynt-comp-signoff-box{border:1px solid #ecdfe3;padding:14px;background:#fff;min-height:120px;display:flex;flex-direction:column}
.classynt-comp-signoff-title{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:12px;color:var(--classynt-report-accent);text-transform:uppercase;letter-spacing:.04em}
.classynt-comp-signoff-box p{flex:1;margin:8px 0;line-height:1.6;color:#2B2320;font-size:12px}
.classynt-comp-signoff-line{border-top:1px dashed #ecdfe3;padding-top:8px;margin-top:auto;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.classynt-comp-signoff-line small{font-size:10px;color:#6b5b60}
.classynt-comp-signature{max-width:150px;max-height:42px;object-fit:contain}
.classynt-comp-resumption{display:flex;gap:10px;align-items:baseline;margin-top:14px;padding-top:12px;border-top:1px solid #ecdfe3}
.classynt-comp-resumption span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#8a7a7f}
.classynt-comp-resumption strong{font-size:13px;color:#2B2320}
.classynt-comp-footer{display:flex;justify-content:space-between;gap:12px;margin-top:26px;padding-top:12px;border-top:3px double #d8c3ca;color:#8a7a7f;font-size:10px}
@media screen and (max-width:700px){
  .classynt-comp-sheet{padding:18px 16px}
  .classynt-comp-header{flex-direction:column;align-items:flex-start;gap:10px}
  .classynt-comp-heading h1{font-size:20px}
  .classynt-comp-student{grid-template-columns:1fr 1fr}
  .classynt-comp-student>div:nth-child(2){border-right:0}
  .classynt-comp-attendance{grid-template-columns:1fr 1fr}
  .classynt-comp-summary,.classynt-comp-dual,.classynt-comp-signoffs{grid-template-columns:1fr}
  .classynt-comp-footer{flex-direction:column}
}
@media print{
  .classynt-comp-section{break-inside:avoid}
  .classynt-comp-signoff-box{break-inside:avoid}
  .classynt-comp-table thead th{background:#fbf7f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-comp-number{background:var(--classynt-report-accent)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-comp-student,.classynt-comp-summary>div,.classynt-comp-attendance>div,.classynt-comp-activities{background:#fbf7f5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Academic template — its own fixed navy/gold palette, independent of
   the school's chosen primary/secondary colors (same !important-override
   technique as Comprehensive, for the same reason). Built as a compact,
   every-term report card — global result-card conventions (CBSE / West
   African style) rank each subject and the student's overall class
   position every term, not just at session end. */
.classynt-template-academic{--classynt-report-accent:#14396B!important;--classynt-report-text:#1B2733!important}
.classynt-ac-highlight{color:#B8862E}
.classynt-ac-sheet{padding:0;border-radius:4px;overflow:hidden}
.classynt-ac-header{display:flex;gap:18px;align-items:center;padding:26px 30px;background:linear-gradient(135deg,#14396B,#1D4E89)}
.classynt-ac-logo{width:64px;height:64px;flex:0 0 64px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;border:3px solid #B8862E}
.classynt-ac-logo img{max-width:56px;max-height:56px;object-fit:contain}
.classynt-ac-logo span{font-family:Georgia,"Times New Roman",serif;font-weight:800;font-size:26px;color:#14396B}
.classynt-ac-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#B8862E}
.classynt-ac-heading h1{margin:4px 0 0;font-size:22px;color:#fff;font-weight:800}
.classynt-ac-heading p{margin:3px 0 0;font-size:12px;color:#cdd9ea}
.classynt-ac-student{display:grid;grid-template-columns:2fr 1fr 1fr;background:#f4f7fb;border-bottom:1px solid #dbe3ee}
.classynt-ac-student>div{padding:12px 30px;border-right:1px solid #dbe3ee}
.classynt-ac-student>div:last-child{border-right:0}
.classynt-ac-student span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#5b6b82}
.classynt-ac-student strong{display:block;margin-top:3px;color:#1B2733;font-size:13px}
.classynt-ac-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dbe3ee;margin:0 0 4px}
.classynt-ac-stats>div{background:#fff;padding:14px 12px;text-align:center}
.classynt-ac-stats span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#5b6b82}
.classynt-ac-stats strong{display:block;margin-top:5px;font-size:17px;color:#14396B}
.classynt-ac-section{padding:18px 30px 0}
.classynt-ac-section h2{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:#14396B;border-left:4px solid #B8862E;padding-left:9px}
.classynt-ac-table-wrap{overflow:auto}
.classynt-ac-table{width:100%;border-collapse:collapse;min-width:700px;font-size:11.5px}
.classynt-ac-table th,.classynt-ac-table td{border:1px solid #dbe3ee;padding:7px 7px;text-align:center;vertical-align:middle}
.classynt-ac-table thead th{background:#f4f7fb;font-weight:800;font-size:9.5px;text-transform:uppercase;letter-spacing:.02em;color:#5b6b82}
.classynt-ac-subject{text-align:left!important;font-weight:650}
.classynt-ac-total{font-weight:800}
.classynt-ac-grade{font-weight:900;color:#14396B}
.classynt-ac-dots-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:6px}
.classynt-ac-dots-title{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#14396B;margin-bottom:6px}
.classynt-ac-dot-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0;font-size:11.5px;color:#1B2733}
.classynt-ac-dots{display:flex;gap:4px}
.classynt-ac-dot{width:9px;height:9px;border-radius:50%;background:#dbe3ee;display:inline-block}
.classynt-ac-dot.is-filled{background:#B8862E}
.classynt-ac-comments{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:18px;border-top:1px solid #dbe3ee}
.classynt-ac-comments>div{padding:14px 30px;border-right:1px solid #dbe3ee}
.classynt-ac-comments>div:last-child{border-right:0}
.classynt-ac-comments span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#14396B}
.classynt-ac-comments p{margin:6px 0;line-height:1.55;font-size:12px;color:#1B2733}
.classynt-ac-comments small{font-size:10px;color:#5b6b82}
.classynt-ac-signature{max-width:140px;max-height:38px;object-fit:contain}
.classynt-ac-footer{display:flex;justify-content:space-between;gap:12px;padding:12px 30px;background:#f4f7fb;border-top:1px solid #dbe3ee;color:#5b6b82;font-size:10px}
@media screen and (max-width:700px){
  .classynt-ac-header{padding:18px}
  .classynt-ac-heading h1{font-size:18px}
  .classynt-ac-student{grid-template-columns:1fr}
  .classynt-ac-student>div{border-right:0;border-bottom:1px solid #dbe3ee}
  .classynt-ac-stats{grid-template-columns:1fr 1fr}
  .classynt-ac-section{padding:14px 16px 0}
  .classynt-ac-dots-grid{grid-template-columns:1fr;gap:14px}
  .classynt-ac-comments{grid-template-columns:1fr}
  .classynt-ac-comments>div{border-right:0;border-bottom:1px solid #dbe3ee;padding:12px 16px}
  .classynt-ac-footer{flex-direction:column;padding:12px 16px}
}
@media print{
  .classynt-ac-header{background:linear-gradient(135deg,#14396B,#1D4E89)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-ac-section{break-inside:avoid}
  .classynt-ac-stats>div,.classynt-ac-student,.classynt-ac-footer{background:#f4f7fb!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-ac-table thead th{background:#f4f7fb!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-ac-dot.is-filled{background:#B8862E!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Progress template — its own teal/mint palette, independent of the
   school's chosen colors (same !important-override approach as the
   other templates). Deliberately light on tables: one hero ring for the
   term average, a couple of stat chips, and width-based bars per
   subject instead of a dense grid — built for a parent skimming on a
   phone, not a formal printed ledger. */
.classynt-template-progress{--classynt-report-accent:#0E7C66!important;--classynt-report-text:#173A34!important}
.classynt-pg-sheet{padding:28px 30px}
.classynt-pg-header{display:flex;gap:16px;align-items:center;padding-bottom:16px;border-bottom:1px solid #d9ece7}
.classynt-pg-logo{width:56px;height:56px;flex:0 0 56px;border-radius:14px;background:#e8f6f2;display:flex;align-items:center;justify-content:center;overflow:hidden}
.classynt-pg-logo img{max-width:48px;max-height:48px;object-fit:contain}
.classynt-pg-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#0E7C66}
.classynt-pg-header h1{margin:3px 0 0;font-size:19px;color:#173A34}
.classynt-pg-header p{margin:2px 0 0;font-size:12px;color:#5c766f}
.classynt-pg-period{font-size:11px!important;color:#8ba49d!important}
.classynt-pg-hero{display:flex;align-items:center;gap:28px;padding:26px 6px;flex-wrap:wrap}
.classynt-pg-ring{--pg-pct:0;width:118px;height:118px;border-radius:50%;flex:0 0 118px;background:conic-gradient(#0E7C66 calc(var(--pg-pct)*1%),#e0f2ee 0);display:flex;align-items:center;justify-content:center;position:relative}
.classynt-pg-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}
.classynt-pg-ring span{position:relative;font-size:24px;font-weight:800;color:#0E7C66}
.classynt-pg-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;flex:1;min-width:260px}
.classynt-pg-hero-stats>div{background:#f2faf8;border-radius:10px;padding:12px;text-align:center}
.classynt-pg-hero-stats span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#5c766f}
.classynt-pg-hero-stats strong{display:block;margin-top:5px;font-size:15px;color:#173A34}
.classynt-pg-section h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#0E7C66}
.classynt-pg-bars{display:flex;flex-direction:column;gap:10px}
.classynt-pg-bar-row{display:grid;grid-template-columns:130px 1fr 90px;align-items:center;gap:10px}
.classynt-pg-bar-label{font-size:12px;color:#173A34;font-weight:600}
.classynt-pg-bar-track{height:10px;border-radius:6px;background:#e0f2ee;overflow:hidden}
.classynt-pg-bar-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#0E7C66,#37B999)}
.classynt-pg-bar-value{font-size:11px;color:#5c766f;text-align:right}
.classynt-pg-note{margin-top:22px;background:#f2faf8;border-radius:12px;padding:18px 20px;border-left:4px solid #0E7C66}
.classynt-pg-note-kicker{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#0E7C66;margin-bottom:6px}
.classynt-pg-note p{margin:0;font-size:13px;line-height:1.6;color:#173A34;font-style:italic}
.classynt-pg-note-foot{display:flex;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}
.classynt-pg-note-foot small{font-size:10px;color:#5c766f}
.classynt-pg-signature{max-width:120px;max-height:34px;object-fit:contain}
.classynt-pg-footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:12px;border-top:1px solid #d9ece7;color:#8ba49d;font-size:10px}
@media screen and (max-width:700px){
  .classynt-pg-sheet{padding:18px 16px}
  .classynt-pg-hero{flex-direction:column;align-items:flex-start}
  .classynt-pg-hero-stats{grid-template-columns:1fr 1fr}
  .classynt-pg-bar-row{grid-template-columns:100px 1fr 70px}
  .classynt-pg-footer{flex-direction:column}
}
@media print{
  .classynt-pg-section{break-inside:avoid}
  .classynt-pg-note{break-inside:avoid;background:#f2faf8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-pg-hero-stats>div{background:#f2faf8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-pg-ring{background:conic-gradient(#0E7C66 calc(var(--pg-pct)*1%),#e0f2ee 0)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-pg-bar-fill{background:#0E7C66!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* Transcript template — near-monochrome, registrar-document palette:
   ink black text, a single bronze accent line, no colour blocks. Built
   around a multi-term ledger table rather than a single term's card. */
.classynt-template-transcript{--classynt-report-accent:#6B5B2E!important;--classynt-report-text:#1A1A1A!important}
.classynt-tr-sheet{padding:32px 34px;font-family:Georgia,"Times New Roman",serif}
.classynt-tr-header{display:flex;align-items:center;gap:16px;padding-bottom:14px;border-bottom:2px solid #1A1A1A}
.classynt-tr-logo{width:50px;height:50px;flex:0 0 50px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.classynt-tr-logo img{max-width:50px;max-height:50px;object-fit:contain}
.classynt-tr-heading{flex:1}
.classynt-tr-heading h1{margin:0;font-size:20px;letter-spacing:.01em}
.classynt-tr-kicker{display:block;margin-top:2px;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#6B5B2E}
.classynt-tr-issued{text-align:right;font-family:Arial,sans-serif}
.classynt-tr-issued span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#6b6459}
.classynt-tr-issued strong{display:block;margin-top:2px;font-size:12px}
.classynt-tr-student{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:18px 0;font-family:Arial,sans-serif;border-top:1px solid #d8d2c4;border-bottom:1px solid #d8d2c4}
.classynt-tr-student>div{padding:10px 4px}
.classynt-tr-student span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#6b6459}
.classynt-tr-student strong{display:block;margin-top:3px;font-size:12.5px}
.classynt-tr-table-wrap{overflow:auto}
.classynt-tr-table{width:100%;border-collapse:collapse;min-width:500px;font-family:Arial,sans-serif;font-size:12px}
.classynt-tr-table th,.classynt-tr-table td{border:1px solid #d8d2c4;padding:8px 9px;text-align:center}
.classynt-tr-table thead th{background:#faf8f2;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.classynt-tr-subject{text-align:left!important;font-weight:700}
.classynt-tr-table tfoot td{font-weight:800;background:#faf8f2}
.classynt-tr-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;font-family:Arial,sans-serif}
.classynt-tr-summary>div{border:1px solid #d8d2c4;padding:12px 14px;text-align:center}
.classynt-tr-summary span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#6b6459}
.classynt-tr-summary strong{display:block;margin-top:5px;font-size:19px;color:#1A1A1A}
.classynt-tr-signoff{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-top:22px;align-items:end;font-family:Arial,sans-serif}
.classynt-tr-signoff>div:first-child span{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6B5B2E}
.classynt-tr-signoff p{margin:6px 0 0;font-size:12px;line-height:1.6;color:#1A1A1A}
.classynt-tr-sign{text-align:center;border-top:1px solid #1A1A1A;padding-top:6px}
.classynt-tr-sign-name{display:block;font-size:12px;font-weight:700}
.classynt-tr-sign small{font-size:9.5px;color:#6b6459;text-transform:uppercase;letter-spacing:.05em}
.classynt-tr-signature{max-width:140px;max-height:38px;object-fit:contain;margin-bottom:4px}
.classynt-tr-footer{margin-top:22px;padding-top:12px;border-top:1px solid #d8d2c4;font-family:Arial,sans-serif;font-size:9.5px;color:#6b6459;font-style:italic}
@media screen and (max-width:700px){
  .classynt-tr-sheet{padding:18px 16px}
  .classynt-tr-header{flex-wrap:wrap}
  .classynt-tr-issued{text-align:left;width:100%}
  .classynt-tr-student{grid-template-columns:1fr 1fr}
  .classynt-tr-summary{grid-template-columns:1fr}
  .classynt-tr-signoff{grid-template-columns:1fr}
}
@media print{
  .classynt-tr-table thead th,.classynt-tr-table tfoot td{background:#faf8f2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-tr-summary,.classynt-tr-signoff{break-inside:avoid}
}

/* Competency template — warm terracotta palette; rating bands and grade
   remarks carry the visual weight, raw numbers are secondary. Subject
   grouping by competency area is intentionally not included here — it
   needs a new subjects.category column, deferred as a separate feature. */
.classynt-template-competency{--classynt-report-accent:#C2542D!important;--classynt-report-text:#3A2A22!important}
.classynt-cm-sheet{padding:28px 30px}
.classynt-cm-header{display:flex;gap:16px;align-items:center;padding-bottom:16px;border-bottom:1px solid #f0ddd2}
.classynt-cm-logo{width:56px;height:56px;flex:0 0 56px;border-radius:12px;background:#fdf1ea;display:flex;align-items:center;justify-content:center;overflow:hidden}
.classynt-cm-logo img{max-width:48px;max-height:48px;object-fit:contain}
.classynt-cm-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#C2542D}
.classynt-cm-header h1{margin:3px 0 0;font-size:19px;color:#3A2A22}
.classynt-cm-header p{margin:2px 0 0;font-size:12px;color:#8a6f60}
.classynt-cm-section{margin-top:20px}
.classynt-cm-section h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#C2542D}
.classynt-cm-subjects{display:flex;flex-direction:column;gap:8px}
.classynt-cm-subject-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fdf1ea;border-radius:8px}
.classynt-cm-subject-name{flex:1;font-size:12.5px;font-weight:650;color:#3A2A22}
.classynt-cm-subject-pct{font-size:11px;color:#a3897a;min-width:48px;text-align:right}
.classynt-cm-band-pill{display:inline-block;padding:3px 11px;border-radius:999px;font-size:10.5px;font-weight:700;background:#C2542D;color:#fff;white-space:nowrap}
.classynt-cm-band-5{background:#1E8E5A}.classynt-cm-band-4{background:#2E86C1}.classynt-cm-band-3{background:#C2542D}.classynt-cm-band-2{background:#B7791F}.classynt-cm-band-1{background:#B33A3A}.classynt-cm-band-0{background:#9a8f88}
.classynt-cm-traits-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.classynt-cm-traits-title{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#C2542D;margin-bottom:8px}
.classynt-cm-trait-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;font-size:11.5px;color:#3A2A22}
.classynt-cm-comments{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.classynt-cm-comments>div{padding:14px;border-radius:10px;background:#fdf1ea}
.classynt-cm-comments span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#C2542D}
.classynt-cm-comments p{margin:6px 0 0;font-size:12px;line-height:1.55;color:#3A2A22}
.classynt-cm-signature{max-width:130px;max-height:36px;object-fit:contain;margin-top:6px}
.classynt-cm-footer{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:12px;border-top:1px solid #f0ddd2;color:#a3897a;font-size:10px}
@media screen and (max-width:700px){
  .classynt-cm-sheet{padding:18px 16px}
  .classynt-cm-traits-grid{grid-template-columns:1fr;gap:14px}
  .classynt-cm-comments{grid-template-columns:1fr}
  .classynt-cm-subject-row{flex-wrap:wrap}
}
@media print{
  .classynt-cm-section{break-inside:avoid}
  .classynt-cm-subject-row,.classynt-cm-comments>div{background:#fdf1ea!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-cm-band-pill{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .classynt-cm-band-5{background:#1E8E5A!important}.classynt-cm-band-4{background:#2E86C1!important}.classynt-cm-band-3{background:#C2542D!important}.classynt-cm-band-2{background:#B7791F!important}.classynt-cm-band-1{background:#B33A3A!important}
}
