/* ============================================================
   student-report-card.css
   Official RMS-MIS Student Report Card — monochrome edition.
   Black + grayscale theme modelled on the Rukara Model School
   reference structure. A4 portrait, print-ready.
   ============================================================ */

.src-sheet {
  font-family: Arial, Helvetica, sans-serif;
  color: #111;
  background: #fff;
  font-size: 11px;
  line-height: 1.35;
}
.src-compact-term-table { width: 100% !important; min-width: 0 !important; table-layout: fixed !important; }

/* ---------- Header ---------- */
.src-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 6px;
}
.src-head-left, .src-head-right {
  width: 22%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2px;
}
.src-head-center {
  flex: 1;
  text-align: center;
}
.src-logo {
  height: 74px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}
.src-logo-caption {
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 0.3px;
  color: #0d47a1;
  line-height: 1.3;
}
.src-motto {
  font-size: 8px;
  font-style: italic;
  color: #1565c0;
}
.src-school-line { font-weight: 800; color: #0d47a1; }
.src-school-line.small { font-size: 10px; }
.src-school-line.mid { font-size: 11.5px; }
.src-school-line.big { font-size: 16px; letter-spacing: 0.4px; }
.src-school-meta { font-size: 9px; color: #1565c0; font-weight: 500; }
.src-head-rule {
  border: none;
  border-top: 3px solid #0d47a1;
  margin: 4px 0 8px 0;
}

/* ---------- Title bands ---------- */
.src-title-main {
  background: #0d47a1;
  color: #fff;
  text-align: center;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: 1px;
  padding: 6px 8px;
  border-radius: 6px 6px 0 0;
}
.src-title-sub {
  background: #e3f2fd;
  border: 1.5px solid #1976d2;
  border-top: none;
  color: #0d47a1;
  text-align: center;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1px;
  padding: 4px 8px;
  border-radius: 0 0 6px 6px;
  margin-bottom: 8px;
}

/* ---------- Student info panel ---------- */
.src-info {
  display: flex;
  flex-direction: row;
  border: 1.5px solid #1976d2;
  border-radius: 6px;
  background: #f0f7ff;
  margin-bottom: 8px;
  overflow: hidden;
}
.src-info-col { flex: 1; width: 50%; box-sizing: border-box; padding: 6px 10px; }
.src-info-col + .src-info-col { border-left: 1.5px solid #1976d2; }
.src-info-row { display: flex; gap: 6px; padding: 1.5px 0; font-size: 10.5px; }
.src-info-lbl { font-weight: 700; color: #0d47a1; min-width: 108px; }
.src-info-sep { color: #1976d2; font-weight: 700; }
.src-info-val { font-weight: 600; color: #1e293b; }

/* ---------- Marks table ---------- */
.src-table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 10px;
  margin-bottom: 8px;
}
.src-table th:first-child,
.src-table td:first-child { width: 30%; }
.src-col-subject { width: 30%; }
.src-col-comp { width: auto; }
.src-col-total { width: 9%; }
.src-col-pct { width: 11%; }
.src-col-grade { width: 8%; }
.src-table th, .src-table td {
  border: 1px solid #64b5f6;
  padding: 4px 6px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  vertical-align: middle;
}
.src-table tbody td.src-subject { text-align: left; font-weight: 500; padding-left: 7px; }
.src-table thead th {
  background: #1565c0;
  color: #fff;
  font-weight: 700;
  text-align: center;
}
.src-table thead tr:first-child th {
  font-size: 10.5px;
}
.src-table tbody tr:nth-child(even) {
  background: #f8fafc;
}
.src-table tbody td { text-align: center; color: #1e293b; }
.src-table tbody td.src-subject { text-align: left; font-weight: 500; }
.src-table tfoot td {
  background: #e3f2fd;
  color: #0d47a1;
  font-weight: 800;
}
.src-table tfoot td.src-subject { text-align: left; }
.src-section-title {
  background: #0d47a1;
  border-radius: 4px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .5px;
  margin: 0 0 5px;
  padding: 5px 8px;
}
.src-overall-title { margin-top: 8px; }
.src-term-results { margin: 0 0 8px; }
.src-term-section {
  border: 1px solid #90caf9;
  border-radius: 5px;
  margin: 0 0 7px;
  overflow: hidden;
}
.src-term-title {
  background: #e3f2fd;
  border-bottom: 1px solid #90caf9;
  color: #0d47a1;
  font-size: 10px;
  font-weight: 800;
  padding: 4px 7px;
}
.src-term-table-wrap { overflow-x: auto; }
.src-term-table {
  margin: 0;
  min-width: 100%;
}
.src-term-table thead tr:first-child th { font-size: 9px; }
.src-term-table thead tr:nth-child(2) th { font-size: 8px; }
.src-term-column-meta { font-size: 7px; font-weight: 500; }
.src-term-table th,
.src-term-table td { padding: 3px 4px; }
.src-term-table .src-subject-heading { text-align: left; }
.src-term-table tbody td.src-subject,
.src-term-table tfoot td.src-subject { white-space: nowrap; }
.src-term-table thead { display: table-header-group; }
.src-term-table tbody tr,
.src-term-table tfoot tr { page-break-inside: avoid; break-inside: avoid; }
.src-multi-term-wrap {
  width: 100%;
  margin: 8px 0 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.src-multi-term-table {
  width: 100%;
  min-width: 900px;
  table-layout: auto;
  font-size: 9px;
  margin-bottom: 0;
}
.src-multi-term-table th,
.src-multi-term-table td {
  padding: 4px 5px;
  text-align: center;
  white-space: nowrap;
}
.src-multi-term-table .src-subject-heading,
.src-multi-term-table td.src-subject,
.src-multi-term-table .src-multi-term-weight th:first-child {
  text-align: left;
}
.src-multi-term-table td.src-subject { min-width: 180px; }
.src-multi-term-table .src-maximum-cell { font-weight: 800; }
.src-multi-term-table .src-multi-term-subhead th,
.src-multi-term-table .src-multi-term-weight th { background: #e3f2fd; color: #0d47a1; }
.src-multi-term-table .src-multi-term-weight th { font-size: 8px; }
.src-multi-term-table .src-all-subjects-row td {
  background: #d1d5db;
  color: #111827;
  font-weight: 800;
  text-align: left;
}
.src-multi-term-table tfoot td {
  background: #f1f1f1;
  color: #0d47a1;
  font-weight: 800;
}
.src-multi-term-table tfoot { border-top: 12px solid #fff; }
.src-compact-term-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  font-size: 8px;
  line-height: 1.15;
}
.src-compact-term-table th:first-child,
.src-compact-term-table td:first-child { width: 27%; }
.src-compact-term-table th:not(:first-child),
.src-compact-term-table td:not(:first-child) { width: auto; }
.src-compact-term-table td.src-term-detail-cell { text-align: left; }
.src-assessment-marks {
  display: flex;
  flex-wrap: wrap;
  gap: 1px 4px;
}
.src-assessment-mark { white-space: nowrap; }
.src-term-summary,
.src-overall-cell { font-weight: 700; }
.src-term-summary { display: block; margin-top: 2px; }
.src-no-mark { color: #555; font-style: italic; }
.src-below-half {
  text-decoration: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.rms-student-card-page {
  position: relative !important;
  width: calc(210mm * var(--src-view-scale, 1)) !important;
  height: calc(297mm * var(--src-view-scale, 1)) !important;
  min-height: calc(297mm * var(--src-view-scale, 1)) !important;
  max-height: calc(297mm * var(--src-view-scale, 1)) !important;
  max-width: calc(210mm * var(--src-view-scale, 1)) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  break-inside: avoid !important;
  page-break-inside: avoid !important;
}
.rms-student-card-page > .src-sheet {
  position: absolute !important;
  top: calc(5mm * var(--src-view-scale, 1)) !important;
  left: calc(5mm * var(--src-view-scale, 1)) !important;
  width: calc(200mm / var(--src-fit-scale, 1)) !important;
  min-height: 0 !important;
  transform: scale(calc(var(--src-fit-scale, 1) * var(--src-view-scale, 1))) !important;
  transform-origin: top left !important;
}
/* ---------- Summary + performance ---------- */
.src-panels {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}
.src-panel {
  border: 1.5px solid #1976d2;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}
.src-panel-title {
  background: #1565c0;
  color: #fff;
  font-weight: 800;
  font-size: 11px;
  padding: 4px 8px;
}
.src-panel-body { padding: 5px 6px; }
.src-summary { flex: 0 0 28%; }
.src-performance { flex: 1; }
.src-kv { display: flex; justify-content: space-between; padding: 2px 0; border-bottom: 1px dotted #90caf9; font-size: 10px; color: #1e293b; }
.src-kv:last-child { border-bottom: none; }
.src-kv b { font-weight: 800; color: #0d47a1; }
.src-charts { display: flex; gap: 6px; align-items: stretch; }
.src-chart-box {
  flex: 1;
  border: 1px solid #90caf9;
  border-radius: 4px;
  padding: 3px 3px 2px;
  text-align: center;
  min-width: 0;
  page-break-inside: avoid;
  break-inside: avoid;
}
.src-chart-box svg { display: block; margin: 0 auto; max-height: 78px; }
.src-panels { page-break-inside: avoid; break-inside: avoid; }
.src-signatures { page-break-inside: avoid; break-inside: avoid; margin-top: 14px; }
.src-footer { page-break-inside: avoid; break-inside: avoid; }
.src-chart-title { font-size: 9px; font-weight: 800; color: #0d47a1; margin-bottom: 1px; }
.src-legend { font-size: 8.5px; display: flex; gap: 8px; justify-content: center; margin-top: 1px; }
.src-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 2px; vertical-align: baseline; }

/* ---------- Comments ---------- */
.src-comments {
  display: flex;
  border: 1.5px solid #1976d2;
  border-radius: 6px;
  background: #f0f7ff;
  margin-bottom: 8px;
  overflow: hidden;
  page-break-inside: avoid;
  break-inside: avoid;
}
.src-comment { flex: 1; padding: 6px 10px; font-size: 10px; }
.src-comment + .src-comment { border-left: 1.5px solid #1976d2; }
.src-comment h5 { font-size: 10.5px; font-weight: 800; color: #0d47a1; margin-bottom: 3px; }
.src-comment p { margin: 0; color: #334155; }

/* ---------- Signatures ---------- */
.src-signatures {
  display: flex;
  border: 1.5px solid #1976d2;
  border-radius: 6px;
  margin-bottom: 8px;
  overflow: hidden;
}
.src-sig { flex: 1; padding: 6px 10px; font-size: 10px; }
.src-sig + .src-sig { border-left: 1.5px solid #1976d2; }
.src-sig h5 { font-size: 10.5px; font-weight: 800; color: #0d47a1; }
.src-sig .sig-name { font-weight: 700; color: #1e293b; margin: 2px 0; }
.src-sig .sig-line { margin-top: 14px; border-top: 1px solid #1976d2; padding-top: 2px; color: #475569; }

/* ---------- Footer ---------- */
.src-footer {
  border-top: 2px solid #0d47a1;
  padding-top: 4px;
  font-size: 8.5px;
  color: #1e293b;
}
.src-footer-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.src-footer-motto {
  text-align: center;
  font-style: italic;
  font-weight: 700;
  color: #0d47a1;
  margin: 2px 0;
}
.src-wave {
  height: 14px;
  border-radius: 0 0 4px 4px;
  background: linear-gradient(100deg, #10b981 0%, #06b6d4 35%, #0284c7 65%, #0d47a1 100%);
  margin-top: 4px;
}
.src-badge {
  display: inline-block;
  border: 1px solid #1976d2;
  border-radius: 4px;
  padding: 1px 6px;
  font-size: 9px;
  font-weight: 700;
  background: #fff;
  color: #0d47a1;
}
.src-badge.solid { background: #0d47a1; color: #fff; }

/* ---------- Print ---------- */
@media print {
  .src-sheet { font-size: 10px; }
  .src-header {
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }
  .src-head-left, .src-head-right {
    width: 22% !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 2px !important;
  }
  .src-head-center {
    flex: 1 !important;
    text-align: center !important;
  }
  .src-logo { height: 68px; }
  .src-table thead th {
    background: #111 !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .src-title-main {
    background: #111 !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .src-panel-title {
    background: #111 !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .src-table { page-break-inside: auto; }
  .src-table thead { display: table-header-group; }
  .src-table tr { page-break-inside: avoid; break-inside: avoid; }
  .src-multi-term-wrap { overflow: visible !important; width: 100% !important; }
  .src-multi-term-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    font-size: 6.5px !important;
  }
  .src-multi-term-table th,
  .src-multi-term-table td {
    padding: 2px 1px !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    line-height: 1.1;
  }
  .src-multi-term-table td.src-subject { min-width: 0; }
  .src-multi-term-table .src-all-subjects-row td { text-align: left; }
  .src-compact-term-table { display: table; width: 100%; min-width: 0; }
  .src-compact-term-table th,
  .src-compact-term-table td { padding: 2px 3px; white-space: normal; }
  .src-panels, .src-comments, .src-signatures { page-break-inside: avoid; break-inside: avoid; }
}

/* Responsive adjustments for small screens */
@media (max-width: 900px) {
  .src-sheet { font-size: 13px; padding: 8px; }
  .src-header { flex-direction: column; align-items: center; gap: 8px; }
  .src-head-left, .src-head-right { width: auto; flex-direction: row; gap: 8px; }
  .src-head-left .src-logo, .src-head-right .src-logo { height: 56px; }
  .src-head-center { text-align: center; }
  .src-info { flex-direction: column; }
  .src-info-col { width: 100%; padding: 8px; border-left: none; }
  .src-info-row { flex-wrap: wrap; }
  .src-info-lbl { min-width: 92px; }
  .src-info-val { min-width: 0; overflow-wrap: anywhere; }
  .src-table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .src-table table, .src-table thead, .src-table tbody, .src-table tfoot, .src-table tr, .src-table th, .src-table td { white-space: nowrap; }
  .src-table th, .src-table td { padding: 6px 8px; }
  .src-term-table { display: table; width: max-content; min-width: 100%; }
  .src-term-table th, .src-term-table td { padding: 4px 6px; }
  .src-multi-term-table { display: table; width: max-content; min-width: 1100px; }
  .src-multi-term-table th, .src-multi-term-table td { padding: 4px 5px; }
  .src-panels { flex-direction: column; }
  .src-panel { width: 100%; }
  .src-charts { flex-direction: column; }
  .src-signatures { flex-direction: column; }
  .src-comment { padding: 8px; }
}

@media screen and (max-width: 900px) {
  .pmp-report-preview .src-sheet,
  .rms-full-report-preview .src-sheet { font-size: 11px; padding: 0; }
  .pmp-report-preview .src-header,
  .rms-full-report-preview .src-header { flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 10px; }
  .pmp-report-preview .src-head-left,
  .pmp-report-preview .src-head-right,
  .rms-full-report-preview .src-head-left,
  .rms-full-report-preview .src-head-right { width: 22%; flex-direction: column; align-items: center; gap: 2px; }
  .pmp-report-preview .src-head-left .src-logo,
  .pmp-report-preview .src-head-right .src-logo,
  .rms-full-report-preview .src-head-left .src-logo,
  .rms-full-report-preview .src-head-right .src-logo { height: 74px; }
  .pmp-report-preview .src-head-center,
  .rms-full-report-preview .src-head-center { flex: 1; text-align: center; }
  .pmp-report-preview .src-info,
  .rms-full-report-preview .src-info { flex-direction: row; }
  .pmp-report-preview .src-info-col,
  .rms-full-report-preview .src-info-col { width: 50%; padding: 6px 10px; }
  .pmp-report-preview .src-info-col + .src-info-col { border-left: 1.5px solid #1976d2; border-top: none; }
  .rms-full-report-preview .src-info-col + .src-info-col { border-left: 1.5px solid #1976d2; border-top: none; }
  .pmp-report-preview .src-info-row,
  .rms-full-report-preview .src-info-row { flex-wrap: nowrap; }
  .pmp-report-preview .src-info-lbl,
  .rms-full-report-preview .src-info-lbl { min-width: 108px; }
  .pmp-report-preview .src-info-val,
  .rms-full-report-preview .src-info-val { min-width: auto; overflow-wrap: normal; }
  .pmp-report-preview .src-table,
  .rms-full-report-preview .src-table { display: table; width: 100%; min-width: 0; overflow: visible; }
  .pmp-report-preview .src-multi-term-wrap,
  .rms-full-report-preview .src-multi-term-wrap { overflow-x: auto; max-width: 100%; }
  .pmp-report-preview .src-multi-term-table,
  .rms-full-report-preview .src-multi-term-table { display: table; width: max-content; min-width: 1100px; table-layout: auto; }
  .pmp-report-preview .src-compact-term-table,
  .rms-full-report-preview .src-compact-term-table { display: table; width: 100%; min-width: 0; table-layout: fixed; }
  .pmp-report-preview .src-table th,
  .pmp-report-preview .src-table td,
  .rms-full-report-preview .src-table th,
  .rms-full-report-preview .src-table td { padding: 4px 6px; white-space: normal; }
  .pmp-report-preview .src-multi-term-table th,
  .pmp-report-preview .src-multi-term-table td,
  .rms-full-report-preview .src-multi-term-table th,
  .rms-full-report-preview .src-multi-term-table td { padding: 4px 5px; white-space: nowrap; }
  .pmp-report-preview .src-compact-term-table th,
  .pmp-report-preview .src-compact-term-table td,
  .rms-full-report-preview .src-compact-term-table th,
  .rms-full-report-preview .src-compact-term-table td { padding: 2px 3px; white-space: normal; }
  .pmp-report-preview .src-panels,
  .rms-full-report-preview .src-panels { flex-direction: row; }
  .pmp-report-preview .src-panel,
  .rms-full-report-preview .src-panel { width: auto; }
  .pmp-report-preview .src-summary,
  .rms-full-report-preview .src-summary { flex: 0 0 28%; }
  .pmp-report-preview .src-performance,
  .rms-full-report-preview .src-performance { flex: 1; }
  .pmp-report-preview .src-charts,
  .rms-full-report-preview .src-charts { flex-direction: row; }
  .pmp-report-preview .src-signatures,
  .pmp-report-preview .src-comments,
  .rms-full-report-preview .src-signatures,
  .rms-full-report-preview .src-comments { flex-direction: row; }
  .pmp-report-preview .src-comment,
  .pmp-report-preview .src-sig,
  .rms-full-report-preview .src-comment,
  .rms-full-report-preview .src-sig { width: auto; }
  .pmp-report-preview .src-comment,
  .rms-full-report-preview .src-comment { padding: 6px 10px; }
}

@media screen and (max-width: 900px) {
  .pmp-report-preview,
  .rms-full-report-preview,
  .rw-preview-area {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }
  .rms-student-card-page {
    flex: 0 0 auto;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .src-report-card-fixed {
    font-size: 11px !important;
    padding: 0 !important;
  }
  .src-report-card-fixed .src-header {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
  }
  .src-report-card-fixed .src-head-left,
  .src-report-card-fixed .src-head-right {
    width: 22%;
    flex-direction: column;
    align-items: center;
    gap: 2px;
  }
  .src-report-card-fixed .src-head-left .src-logo,
  .src-report-card-fixed .src-head-right .src-logo { height: 74px; }
  .src-report-card-fixed .src-head-center { flex: 1; text-align: center; }
  .src-report-card-fixed .src-info { flex-direction: row; }
  .src-report-card-fixed .src-info-col { width: 50%; padding: 6px 10px; }
  .src-report-card-fixed .src-info-col + .src-info-col {
    border-left: 1.5px solid #1976d2;
    border-top: none;
  }
  .src-report-card-fixed .src-info-row { flex-wrap: nowrap; }
  .src-report-card-fixed .src-info-lbl { min-width: 108px; }
  .src-report-card-fixed .src-info-val { min-width: auto; overflow-wrap: normal; }
  .src-report-card-fixed .src-table {
    display: table;
    width: 100%;
    overflow: visible;
  }
  .src-report-card-fixed .src-multi-term-table {
    width: 100%;
    min-width: 900px;
    table-layout: auto;
  }
  .src-report-card-fixed .src-compact-term-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }
  .src-report-card-fixed .src-panels,
  .src-report-card-fixed .src-charts,
  .src-report-card-fixed .src-signatures,
  .src-report-card-fixed .src-comments { flex-direction: row; }
  .src-report-card-fixed .src-panel { width: auto; }
  .src-report-card-fixed .src-comment,
  .src-report-card-fixed .src-sig { width: auto; }
  .src-report-card-fixed .src-comment { padding: 6px 10px; }
}

@media print {
  .src-info { flex-direction: row !important; }
  .src-info-col {
    width: 50% !important;
    padding: 6px 10px !important;
  }
  .src-info-col + .src-info-col {
    border-left: 1.5px solid #1976d2 !important;
    border-top: none !important;
  }
  .src-panels {
    flex-direction: row !important;
    gap: 8px !important;
  }
  .src-summary {
    flex: 0 0 30% !important;
    width: auto !important;
  }
  .src-performance {
    flex: 1 !important;
    width: auto !important;
  }
  .src-charts {
    flex-direction: row !important;
    gap: 8px !important;
  }
  .src-chart-box {
    flex: 1 !important;
    width: auto !important;
  }
  .src-comments,
  .src-signatures {
    flex-direction: row !important;
  }
  .src-comment,
  .src-sig {
    width: 33.333% !important;
  }
}

/* Student report monochrome theme */
.src-sheet .src-logo-caption,
.src-sheet .src-school-line,
.src-sheet .src-school-meta,
.src-sheet .src-info-lbl,
.src-sheet .src-info-sep,
.src-sheet .src-kv b,
.src-sheet .src-chart-title,
.src-sheet .src-comment h5,
.src-sheet .src-sig h5,
.src-sheet .src-footer-motto,
.src-sheet .src-badge {
  color: #111 !important;
}
.src-sheet .src-head-rule,
.src-sheet .src-info,
.src-sheet .src-info-col + .src-info-col,
.src-sheet .src-title-sub,
.src-sheet .src-table th,
.src-sheet .src-table td,
.src-sheet .src-panel,
.src-sheet .src-chart-box,
.src-sheet .src-comments,
.src-sheet .src-comment + .src-comment,
.src-sheet .src-signatures,
.src-sheet .src-sig + .src-sig,
.src-sheet .src-sig .sig-line,
.src-sheet .src-badge {
  border-color: #111 !important;
}
.src-sheet .src-title-main,
.src-sheet .src-table thead th,
.src-sheet .src-panel-title,
.src-sheet .src-badge.solid {
  background: #111 !important;
  color: #fff !important;
}
.src-sheet .src-title-sub,
.src-sheet .src-info,
.src-sheet .src-table tfoot td,
.src-sheet .src-comments {
  background: #f1f1f1 !important;
}
.src-sheet .src-wave { background: #111 !important; }

.src-sheet .src-multi-term-wrap {
  max-width: 100% !important;
  overflow-x: hidden !important;
}
.src-sheet .src-multi-term-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  border: 1.5px solid #111 !important;
}
.src-sheet .src-multi-term-table th,
.src-sheet .src-multi-term-table td {
  border: 1.5px solid #111 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}

.src-sheet .src-reference-matrix-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}
.src-reference-matrix {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  border: 1px solid #64748b !important;
  border-radius: 4px;
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  color: #172033;
  font-size: 8px;
}
.src-sheet .src-multi-term-table.src-reference-matrix {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}
.src-reference-matrix th,
.src-reference-matrix td {
  padding: 4px 2px;
  line-height: 1.2;
  vertical-align: middle;
  overflow-wrap: anywhere;
  white-space: normal !important;
  text-align: center;
}
.src-sheet .src-multi-term-table.src-reference-matrix th,
.src-sheet .src-multi-term-table.src-reference-matrix td {
  border: 1px solid #cbd5e1 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix tr > :first-child {
  border-left: 2px solid #172033 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix tr > :last-child {
  border-right: 2px solid #172033 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix thead tr:first-child > :first-child,
.src-sheet .src-multi-term-table.src-reference-matrix thead tr:first-child > :last-child {
  border-top: 2px solid #172033 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix tfoot tr:last-child > * {
  border-bottom: 2px solid #172033 !important;
}
.src-sheet .src-reference-matrix .src-subject-heading,
.src-sheet .src-reference-matrix tbody tr:not(.src-all-subjects-row) td:first-child,
.src-sheet .src-reference-matrix tfoot td:first-child {
  width: 22%;
  min-width: 0;
}
.src-reference-matrix .src-subject-heading,
.src-reference-matrix tbody td.src-subject,
.src-reference-matrix .src-multi-term-weight th:first-child {
  text-align: left;
}
.src-reference-matrix tbody td.src-subject {
  color: #172033;
  font-weight: 600;
  padding-left: 6px;
}
.src-sheet .src-reference-matrix thead th {
  background: #f8fafc !important;
  color: #334155 !important;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .03em;
  padding: 5px 2px;
}
.src-sheet .src-reference-matrix thead .src-group-heading {
  background: #17365d !important;
  color: #fff !important;
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.src-sheet .src-reference-matrix thead .src-maximum-group {
  background: #334155 !important;
}
.src-sheet .src-reference-matrix thead .src-overall-group {
  background: #0f4c5c !important;
}
.src-sheet .src-reference-matrix thead .src-multi-term-subhead th,
.src-sheet .src-reference-matrix thead .src-multi-term-weight th {
  background: #eaf0f7 !important;
  color: #1e3a5f !important;
}
.src-sheet .src-reference-matrix thead .src-multi-term-subhead th {
  white-space: nowrap !important;
  overflow-wrap: normal;
  padding-left: 1px;
  padding-right: 1px;
}
.src-sheet .src-reference-matrix .src-multi-term-weight th {
  background: #f1f5f9 !important;
  color: #475569 !important;
  font-size: 7.5px;
  font-weight: 600;
}
.src-reference-matrix .src-subtotal-heading,
.src-reference-matrix .src-term-total {
  background: #f1f5f9 !important;
  color: #17365d !important;
  font-weight: 700;
}
.src-reference-matrix .src-term-start {
  border-left: 2px solid #94a3b8 !important;
}
.src-reference-matrix .src-all-subjects-row td {
  background: #e2e8f0 !important;
  color: #17365d !important;
  text-align: left !important;
  font-weight: 700;
  font-size: 9px;
  letter-spacing: .04em;
  padding: 6px 7px !important;
}
.src-reference-matrix tbody tr:not(.src-all-subjects-row) td {
  background: #fff !important;
}
.src-reference-matrix tbody tr:nth-child(even):not(.src-all-subjects-row) td {
  background: #f8fafc !important;
}
.src-reference-matrix .src-maximum-cell,
.src-reference-matrix .src-term-total,
.src-reference-matrix tfoot td {
  font-weight: 700;
}
.src-sheet .src-reference-matrix tbody tr:last-child:not(.src-all-subjects-row) td {
  border-bottom: 2px solid #64748b !important;
}
.src-reference-matrix tfoot {
  border-top: 0 !important;
}
.src-sheet .src-reference-matrix tfoot .src-total-row td {
  border-top: 2px solid #111 !important;
}
.src-sheet .src-reference-matrix tfoot td {
  background: #eaf0f7 !important;
  color: #17365d !important;
  border-top: 1px solid #94a3b8 !important;
}
.src-reference-matrix .src-total-row td:first-child {
  text-align: left;
  font-weight: 700;
}

@media print {
  .src-sheet .src-reference-matrix-wrap {
    overflow: visible !important;
  }
  .src-reference-matrix {
    min-width: 0 !important;
    font-size: 6.2px;
    table-layout: fixed !important;
    border-radius: 0;
  }
  .src-reference-matrix th,
  .src-reference-matrix td {
    padding: 2px 1px;
    overflow-wrap: anywhere;
  }
  .src-sheet .src-reference-matrix .src-subject-heading,
  .src-sheet .src-reference-matrix tbody tr:not(.src-all-subjects-row) td:first-child,
  .src-sheet .src-reference-matrix tfoot td:first-child {
    min-width: 0;
  }
  .src-sheet .src-reference-matrix thead .src-group-heading,
  .src-sheet .src-reference-matrix thead .src-multi-term-subhead th,
  .src-sheet .src-reference-matrix thead .src-multi-term-weight th {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .src-sheet .src-reference-matrix thead .src-multi-term-subhead th {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  .src-reference-matrix tfoot {
    border-top-width: 8px;
  }
}

/* Dense cards stay on one A4 page when many subjects/components are present. */
.src-sheet-compact { font-size: 9.5px; }
.src-sheet-compact .src-logo { height: 62px; }
.src-sheet-compact .src-school-line.small { font-size: 8.5px; }
.src-sheet-compact .src-school-line.mid { font-size: 10px; }
.src-sheet-compact .src-school-line.big { font-size: 14px; }
.src-sheet-compact .src-info-row { font-size: 9px; padding: 1px 0; }
.src-sheet-compact .src-info-lbl { min-width: 92px; }
.src-sheet-compact .src-table { font-size: 8.5px; margin-bottom: 5px; }
.src-sheet-compact .src-table th,
.src-sheet-compact .src-table td { padding: 2px 3px; }
.src-sheet-compact .src-panel-title,
.src-sheet-compact .src-comment h5,
.src-sheet-compact .src-sig h5 { font-size: 9px; }
.src-sheet-compact .src-panel-body,
.src-sheet-compact .src-comment,
.src-sheet-compact .src-sig { padding: 4px 6px; }
.src-sheet-compact .src-kv { font-size: 8.5px; padding: 2px 0; }
.src-sheet-compact .src-chart-box { padding: 2px; }
.src-sheet-compact .src-footer { font-size: 7.5px; }

.src-sheet-ultra { font-size: 8.5px; }
.src-sheet-ultra .src-logo { height: 52px; }
.src-sheet-ultra .src-school-line.small { font-size: 7px; }
.src-sheet-ultra .src-school-line.mid { font-size: 8px; }
.src-sheet-ultra .src-school-line.big { font-size: 12px; }
.src-sheet-ultra .src-head-rule { margin: 2px 0 4px; }
.src-sheet-ultra .src-title-main { font-size: 12px; padding: 3px 5px; }
.src-sheet-ultra .src-title-sub { font-size: 9px; padding: 2px 5px; margin-bottom: 4px; }
.src-sheet-ultra .src-info { margin-bottom: 4px; }
.src-sheet-ultra .src-info-col { padding: 3px 6px; }
.src-sheet-ultra .src-info-row { font-size: 7.5px; padding: 0; }
.src-sheet-ultra .src-info-lbl { min-width: 76px; }
.src-sheet-ultra .src-table { font-size: 7px; margin-bottom: 4px; }
.src-sheet-ultra .src-table th,
.src-sheet-ultra .src-table td { padding: 1px 2px; }
.src-sheet-ultra .src-panels { gap: 4px; margin-bottom: 4px; }
.src-sheet-ultra .src-panel-title { font-size: 8px; padding: 2px 4px; }
.src-sheet-ultra .src-panel-body,
.src-sheet-ultra .src-comment,
.src-sheet-ultra .src-sig { padding: 3px 4px; }
.src-sheet-ultra .src-kv { font-size: 7px; padding: 1px 0; }
.src-sheet-ultra .src-chart-title,
.src-sheet-ultra .src-comment h5,
.src-sheet-ultra .src-sig h5 { font-size: 7.5px; }
.src-sheet-ultra .src-comments { margin-bottom: 4px; }
.src-sheet-ultra .src-footer { font-size: 6.5px; }

/* Keep the official report card strictly black and grayscale in preview and print. */
.src-sheet .src-logo-caption,
.src-sheet .src-motto,
.src-sheet .src-school-line,
.src-sheet .src-school-meta,
.src-sheet .src-info-lbl,
.src-sheet .src-info-sep,
.src-sheet .src-info-val,
.src-sheet .src-table tbody td,
.src-sheet .src-table tfoot td,
.src-sheet .src-kv,
.src-sheet .src-kv b,
.src-sheet .src-chart-title,
.src-sheet .src-comment h5,
.src-sheet .src-comment p,
.src-sheet .src-sig h5,
.src-sheet .src-sig .sig-name,
.src-sheet .src-sig .sig-line,
.src-sheet .src-footer,
.src-sheet .src-badge,
.src-sheet .src-reference-matrix,
.src-sheet .src-reference-matrix tbody td.src-subject,
.src-sheet .src-reference-matrix .src-subtotal-heading,
.src-sheet .src-reference-matrix .src-term-total,
.src-sheet .src-reference-matrix tfoot td {
  color: #111 !important;
}
.src-sheet .src-head-rule,
.src-sheet .src-info,
.src-sheet .src-info-col + .src-info-col,
.src-sheet .src-title-sub,
.src-sheet .src-table th,
.src-sheet .src-table td,
.src-sheet .src-panel,
.src-sheet .src-chart-box,
.src-sheet .src-comments,
.src-sheet .src-comment + .src-comment,
.src-sheet .src-signatures,
.src-sheet .src-sig + .src-sig,
.src-sheet .src-sig .sig-line,
.src-sheet .src-badge,
.src-sheet .src-reference-matrix,
.src-sheet .src-reference-matrix th,
.src-sheet .src-reference-matrix td,
.src-sheet .src-reference-matrix .src-term-start {
  border-color: #333 !important;
}
.src-sheet .src-title-main,
.src-sheet .src-section-title,
.src-sheet .src-table thead th,
.src-sheet .src-panel-title,
.src-sheet .src-badge.solid,
.src-sheet .src-reference-matrix thead .src-group-heading,
.src-sheet .src-reference-matrix thead .src-maximum-group,
.src-sheet .src-reference-matrix thead .src-overall-group {
  background: #111 !important;
  color: #fff !important;
}
.src-sheet .src-title-sub,
.src-sheet .src-info,
.src-sheet .src-table tbody tr:nth-child(even),
.src-sheet .src-table tfoot td,
.src-sheet .src-comments,
.src-sheet .src-reference-matrix thead th,
.src-sheet .src-reference-matrix thead .src-multi-term-subhead th,
.src-sheet .src-reference-matrix thead .src-multi-term-weight th,
.src-sheet .src-reference-matrix .src-subtotal-heading,
.src-sheet .src-reference-matrix .src-term-total,
.src-sheet .src-reference-matrix .src-all-subjects-row td,
.src-sheet .src-reference-matrix tfoot td {
  background: #eee !important;
  color: #111 !important;
}
.src-sheet .src-reference-matrix tbody tr:not(.src-all-subjects-row) td {
  background: #fff !important;
}
.src-sheet .src-reference-matrix tbody tr:nth-child(even):not(.src-all-subjects-row) td {
  background: #f5f5f5 !important;
}
.src-sheet .src-reference-matrix tfoot,
.src-sheet .src-multi-term-table tfoot {
  border-top-color: #fff !important;
}
.src-sheet .src-sig [style*="color:"] { color: #111 !important; }

/* Keep every report-card edge legible on screen and on paper. */
.src-sheet .src-info,
.src-sheet .src-title-sub,
.src-sheet .src-term-section,
.src-sheet .src-panel,
.src-sheet .src-chart-box,
.src-sheet .src-comments,
.src-sheet .src-signatures,
.src-sheet .src-badge,
.src-sheet .src-head-rule,
.src-sheet .src-footer {
  border-color: #111 !important;
}
.src-sheet .src-info-col + .src-info-col,
.src-sheet .src-comment + .src-comment,
.src-sheet .src-sig + .src-sig,
.src-sheet .src-sig .sig-line,
.src-sheet .src-term-title,
.src-sheet .src-kv {
  border-color: #111 !important;
}
.src-sheet .src-table,
.src-sheet .src-reference-matrix {
  border: 1.5px solid #111 !important;
  border-collapse: collapse !important;
}
.src-sheet .src-table th,
.src-sheet .src-table td,
.src-sheet .src-reference-matrix th,
.src-sheet .src-reference-matrix td,
.src-sheet .src-multi-term-table.src-reference-matrix th,
.src-sheet .src-multi-term-table.src-reference-matrix td {
  border: 1px solid #111 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix tfoot {
  border-top: 0 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix tfoot .src-total-row td {
  border-top: 2px solid #111 !important;
}
.src-sheet .src-reference-matrix tr > :first-child,
.src-sheet .src-reference-matrix tr > :last-child {
  border-color: #111 !important;
}
.src-sheet .src-reference-matrix thead tr:first-child > *,
.src-sheet .src-reference-matrix tbody tr:last-child > *,
.src-sheet .src-reference-matrix tfoot tr:first-child > * {
  border-color: #111 !important;
}
.src-sheet .src-reference-matrix .src-term-start,
.src-sheet .src-reference-matrix .src-total-row td {
  border-color: #111 !important;
}
.src-sheet .src-reference-matrix tbody > tr:last-child:not(.src-all-subjects-row) > *,
.src-sheet .src-reference-matrix tfoot > tr:last-child > * {
  border-bottom: 1.5px solid #111 !important;
}

.src-sheet .src-multi-term-table.src-reference-matrix {
  border: 1.5px solid #111 !important;
}
.src-sheet .src-multi-term-table.src-reference-matrix th,
.src-sheet .src-multi-term-table.src-reference-matrix td {
  border: 1px solid #111 !important;
}
