@font-face {
  font-family: "TH Sarabun Report";
  font-style: normal;
  font-weight: 400;
  src: local("TH Sarabun New"), local("THSarabunNew"), local("TH SarabunPSK"), local("THSarabunPSK"), local("TH SarabunPSK Regular");
}

@font-face {
  font-family: "TH Sarabun Report";
  font-style: normal;
  font-weight: 700;
  src: local("TH Sarabun New Bold"), local("THSarabunNew Bold"), local("TH SarabunPSK Bold"), local("THSarabunPSK Bold"), local("TH SarabunPSK");
}

:root {
  --thai-report-font: "TH Sarabun Report", "TH Sarabun New", "TH SarabunPSK", "Sarabun", "Noto Sans Thai", Tahoma, sans-serif;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, sans-serif;
}

.brand-link .brand-image {
  width: 34px;
  height: 34px;
  color: #fff;
  margin-left: .4rem;
  margin-right: .55rem;
  opacity: .9;
}

.content-wrapper {
  background: #f4f6f9;
}

.class-login-page {
  background: #eef2f7;
}

.login-logo {
  font-weight: 600;
}

.module-disabled .nav-link {
  color: #8c98a4;
  cursor: default;
}

.small-box-footer {
  min-height: 38px;
}

.table th {
  white-space: nowrap;
}

.dashboard-classroom-name,
.dashboard-date {
  font-size: 1.65rem;
  line-height: 1.15;
  min-height: 37px;
}

.dashboard-action {
  align-items: center;
  border: 1px solid #dee2e6;
  border-radius: 6px;
  color: #2b3035;
  display: flex;
  gap: .85rem;
  min-height: 82px;
  margin-bottom: 1rem;
  padding: .85rem;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.dashboard-action:hover {
  border-color: #9fb3c8;
  box-shadow: 0 6px 16px rgba(31, 45, 61, .08);
  color: #1f2d3d;
  text-decoration: none;
  transform: translateY(-1px);
}

.dashboard-action-icon {
  align-items: center;
  border-radius: 6px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 46px;
  font-size: 1.25rem;
  height: 46px;
  justify-content: center;
  width: 46px;
}

.dashboard-action strong,
.dashboard-action small {
  display: block;
}

.dashboard-action strong {
  font-size: 1rem;
}

.dashboard-action small {
  color: #6c757d;
  line-height: 1.35;
}

.teacher-dashboard-summary .small-box {
  min-height: 132px;
  overflow: hidden;
}

.teacher-dashboard-summary .small-box .inner {
  min-height: 94px;
  padding-right: 86px;
}

.teacher-dashboard-summary .small-box .icon {
  top: 16px;
}

.teacher-dashboard-summary .small-box h3 {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

.teacher-classroom-name {
  font-size: 1.34rem !important;
  line-height: 1.28;
  min-height: 0;
}

.teacher-dashboard-summary .dashboard-date {
  font-size: 1.55rem !important;
  line-height: 1.2;
}

.teacher-dashboard-summary .dashboard-saving-total {
  font-size: 1.85rem !important;
  line-height: 1.15;
}

.teacher-dashboard-summary .small-box p {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 0;
}

.teacher-dashboard-summary .small-box-footer {
  font-size: 1.02rem;
  font-weight: 600;
}

.teacher-dashboard .card-title {
  font-size: 1.15rem;
  font-weight: 700;
}

.teacher-dashboard .dashboard-action {
  min-height: 88px;
  padding: .95rem;
}

.teacher-dashboard .dashboard-action strong {
  font-size: 1.08rem;
}

.teacher-dashboard .dashboard-action small {
  font-size: .92rem;
}

@media (max-width: 575.98px) {
  .teacher-classroom-name {
    font-size: 1.22rem !important;
  }

  .teacher-dashboard-summary .small-box .inner {
    padding-right: 64px;
  }
}

.attendance-table th,
.attendance-table td {
  vertical-align: middle;
}

.attendance-status-cell {
  min-width: 86px;
}

.attendance-radio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-width: 62px;
  margin: 0;
  cursor: pointer;
}

.attendance-radio input {
  margin: 0;
}

.attendance-radio span {
  font-weight: 500;
}

.growth-table th,
.growth-table td {
  vertical-align: middle;
}

.growth-input {
  min-width: 110px;
}

.growth-age-input {
  min-width: 88px;
}

.health-table th,
.health-table td {
  vertical-align: middle;
}

.health-select {
  min-width: 96px;
}

.daily-activity-table th,
.daily-activity-table td {
  vertical-align: middle;
}

.activity-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-width: 76px;
  margin: 0;
  cursor: pointer;
}

.activity-check input {
  margin: 0;
}

.activity-check span {
  font-weight: 500;
}

.activity-summary-number {
  display: block;
  font-weight: 600;
}

.activity-report-scroll {
  overflow-x: auto;
}

.activity-month-table {
  font-size: .9rem;
  margin-left: auto;
  margin-right: auto;
  min-width: 1060px;
  table-layout: fixed;
  width: 100%;
}

.activity-month-table * {
  box-sizing: border-box;
}

.activity-month-table th,
.activity-month-table td {
  border-color: #1f2933;
  height: 32px;
  line-height: 1.1;
  overflow: hidden;
  padding: 2px 3px;
  text-align: center;
  vertical-align: middle !important;
}

.activity-number-col,
.activity-month-table col.activity-number-col {
  width: 62px;
}

.activity-name-col,
.activity-name-cell,
.activity-month-table col.activity-name-col {
  width: 230px;
  min-width: 230px;
}

.activity-name-cell {
  font-weight: 500;
  overflow: hidden;
  text-align: left !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.activity-month-title {
  background: #bfeefa !important;
  font-size: 1.05rem;
  font-weight: 700;
}

.activity-summary-title,
.activity-summary-cell,
.activity-month-table col.activity-summary-colgroup {
  background: #d7b4ea !important;
}

.activity-day-header,
.activity-day-cell,
.activity-month-table col.activity-day-col {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  text-align: center;
}

.activity-day-header {
  background: #bfeefa !important;
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1;
  padding: 0 !important;
  white-space: nowrap;
}

.activity-empty-header,
.activity-empty-cell {
  background: #d7d7d7 !important;
}

.activity-weekend-header,
.activity-weekend-cell,
.activity-holiday-header,
.activity-holiday-cell {
  background: #ff5b63 !important;
  color: #111;
}

.activity-merged-day-cell {
  font-weight: 700;
  overflow: hidden;
  padding: 0 !important;
  position: relative;
  vertical-align: middle !important;
}

.activity-holiday-label {
  display: block;
  left: 50%;
  line-height: 1.15;
  min-width: max-content;
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center;
  white-space: nowrap;
  width: max-content;
}

.activity-status-completed,
.activity-summary-cell {
  color: #000;
  font-weight: 700;
}

.saving-report-scroll {
  overflow-x: auto;
}

.saving-month-table {
  font-size: .9rem;
  margin-left: auto;
  margin-right: auto;
  min-width: 1120px;
  table-layout: fixed;
  width: 100%;
}

.saving-month-table * {
  box-sizing: border-box;
}

.saving-month-table th,
.saving-month-table td {
  border-color: #1f2933;
  height: 32px;
  line-height: 1.1;
  overflow: hidden;
  padding: 2px 3px;
  text-align: center;
  vertical-align: middle !important;
}

.saving-number-col,
.saving-month-table col.saving-number-col {
  width: 62px;
}

.saving-name-col,
.saving-name-cell,
.saving-month-table col.saving-name-col {
  width: 230px;
  min-width: 230px;
}

.saving-name-cell {
  font-weight: 500;
  overflow: hidden;
  text-align: left !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.saving-month-title {
  background: #bfeefa !important;
  font-size: 1.05rem;
  font-weight: 700;
}

.saving-summary-title {
  background: #d7b4ea !important;
  font-weight: 700;
}

.saving-total-header,
.saving-total-cell,
.saving-month-table col.saving-total-col {
  background: #d9f0d2 !important;
}

.saving-balance-header,
.saving-balance-cell,
.saving-month-table col.saving-balance-col {
  background: #fff1b8 !important;
}

.saving-day-header,
.saving-day-cell,
.saving-month-table col.saving-day-col {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  text-align: center;
}

.saving-day-header {
  background: #bfeefa !important;
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1;
  padding: 0 !important;
  white-space: nowrap;
}

.saving-weekend-header,
.saving-weekend-cell,
.saving-holiday-header,
.saving-holiday-cell {
  background: #ff5b63 !important;
  color: #111;
}

.saving-merged-day-cell {
  font-weight: 700;
  overflow: hidden;
  padding: 0 !important;
  position: relative;
  vertical-align: middle !important;
}

.saving-holiday-label {
  display: block;
  left: 50%;
  line-height: 1.15;
  min-width: max-content;
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center;
  white-space: nowrap;
  width: max-content;
}

.saving-amount-cell,
.saving-summary-cell {
  color: #000;
  font-weight: 700;
}

.saving-table th,
.saving-table td {
  vertical-align: middle;
}

.saving-input {
  min-width: 120px;
}

.report-heading h3,
.report-heading h4 {
  font-weight: 700;
}

.report-page,
.attendance-report,
.report-page .report-table,
.attendance-report .report-table,
.report-page .report-heading,
.attendance-report .report-heading,
.report-page .report-signature,
.attendance-report .report-signature {
  font-family: var(--thai-report-font);
}

.report-table th,
.report-table td {
  vertical-align: middle;
}

.report-table thead th,
.report-table tfoot th {
  background: #f5f7fb;
}

.attendance-report-scroll {
  overflow-x: auto;
}

.attendance-detail-table {
  font-size: .9rem;
  margin-left: auto;
  margin-right: auto;
  min-width: 1060px;
  table-layout: fixed;
  width: 100%;
}

.attendance-detail-table * {
  box-sizing: border-box;
}

.attendance-detail-table th,
.attendance-detail-table td {
  border-color: #1f2933;
  height: 32px;
  line-height: 1.1;
  overflow: hidden;
  padding: 2px 3px;
  text-align: center;
  vertical-align: middle !important;
}

.attendance-detail-table th.attendance-number-col,
.attendance-detail-table .attendance-number-cell,
.attendance-detail-table tfoot th:first-child {
  font-variant-numeric: tabular-nums;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
  white-space: nowrap;
}

.attendance-number-label {
  display: block;
  text-align: center;
  width: 100%;
}

.attendance-detail-table th.attendance-name-col {
  text-align: center !important;
}

.attendance-detail-table thead th {
  font-size: .85rem;
  font-weight: 700;
  text-align: center !important;
  vertical-align: middle !important;
}

.attendance-detail-table tfoot th {
  font-size: .85rem;
}

.attendance-number-col,
.attendance-detail-table col.attendance-number-col {
  width: 62px;
}

.attendance-name-col,
.attendance-name-cell,
.attendance-detail-table col.attendance-name-col {
  width: 230px;
  min-width: 230px;
}

.attendance-name-cell {
  font-weight: 500;
  overflow: hidden;
  text-align: left !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.attendance-month-title {
  background: #bfeefa !important;
  font-size: 1.05rem;
  font-weight: 700;
}

.attendance-summary-title,
.attendance-summary-col {
  background: #d9f0d2 !important;
}

.attendance-day-header,
.attendance-day-cell,
.attendance-detail-table col.attendance-day-col {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  text-align: center;
}

.attendance-day-header {
  background: #bfeefa !important;
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1;
  padding: 0 !important;
  white-space: nowrap;
}

.attendance-detail-table tbody td {
  font-size: .86rem;
}

.attendance-summary-col,
.attendance-detail-table col.attendance-summary-count-col {
  width: 38px;
}

.attendance-detail-table col.attendance-summary-missing-col {
  width: 42px;
}

.attendance-detail-table col.attendance-summary-percent-col {
  width: 50px;
}

.attendance-summary-col {
  font-size: .8rem;
  line-height: 1;
  padding: 1px !important;
  white-space: nowrap;
}

.attendance-percent-cell {
  white-space: nowrap;
}

.attendance-empty-header,
.attendance-empty-cell {
  background: #fff !important;
}

.attendance-weekend-header,
.attendance-weekend-cell {
  background: #ff5b63 !important;
  color: #111;
}

.attendance-holiday-header,
.attendance-holiday-cell {
  background: #ff5b63 !important;
  color: #111;
}

.attendance-merged-day-cell,
.attendance-nonlearning-cell {
  padding: 0 !important;
  font-weight: 700;
  overflow: hidden;
  position: relative;
  vertical-align: middle !important;
}

.attendance-merged-day-cell {
  border-bottom-width: 2px;
  border-top-width: 2px;
}

.attendance-nonlearning-label-cell {
  overflow: visible;
}

.attendance-holiday-label {
  display: block;
  left: 50%;
  line-height: 1.15;
  max-width: none;
  min-width: max-content;
  padding: 0;
  position: absolute;
  text-align: center;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center;
  width: max-content;
  writing-mode: horizontal-tb;
  white-space: nowrap;
  z-index: 2;
}

.attendance-status-present {
  color: #000;
  font-weight: 700;
}

.attendance-status-sick,
.attendance-status-business {
  color: #b77900;
  font-weight: 700;
}

.attendance-status-absent {
  color: #dc3545;
  font-weight: 700;
}

.attendance-status-missing {
  color: #9aa1a9;
}

.attendance-report-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  color: #52616f;
  font-size: .9rem;
}

.report-signature {
  break-inside: avoid;
}

@media print {
  @page {
    size: A4 landscape;
    margin: 4mm;
  }

  html,
  body {
    width: 100%;
    min-height: 200mm;
  }

  body {
    background: #fff;
    color: #000;
    font-family: var(--thai-report-font);
    font-size: 11pt;
    line-height: 1;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .main-header,
  .main-sidebar,
  .main-footer,
  .content-header,
  .no-print {
    display: none !important;
  }

  .content-wrapper {
    margin-left: 0 !important;
    background: #fff;
    min-height: 0 !important;
  }

  .content {
    padding: 0 !important;
  }

  .container-fluid {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
  }

  .attendance-report {
    padding-top: 4mm;
    page-break-inside: avoid;
    width: 289mm;
    margin: 0 auto;
  }

  .card {
    border: 0;
    box-shadow: none;
    margin-bottom: 0;
  }

  .card-header {
    border-bottom: 0;
    padding-left: 0;
  }

  .card-body {
    padding: 0 !important;
  }

  .report-card {
    page-break-after: avoid;
    page-break-inside: avoid;
  }

  .report-table {
    border-collapse: collapse !important;
    font-size: 8.8pt;
  }

  .report-table th,
  .report-table td {
    border: 1px solid #000 !important;
    padding: 0;
  }

  .attendance-report-scroll {
    overflow: visible;
  }

  .attendance-detail-table {
    min-width: 0;
    width: 289mm;
    max-width: 289mm;
    font-size: 8.8pt;
    table-layout: fixed;
  }

  .attendance-detail-table th,
  .attendance-detail-table td {
    height: var(--attendance-print-row-height, 3.8mm);
    line-height: 1;
    padding: .12mm .25mm;
    overflow: hidden;
  }

  .attendance-detail-table,
  .attendance-detail-table th,
  .attendance-detail-table td {
    border-color: #000 !important;
  }

  .attendance-weekend-header,
  .attendance-weekend-cell,
  .attendance-holiday-header,
  .attendance-holiday-cell {
    background: #ff5b63 !important;
    background-color: #ff5b63 !important;
    box-shadow: inset 0 0 0 1000px #ff5b63 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .attendance-month-title {
    background: #bfeefa !important;
    background-color: #bfeefa !important;
    box-shadow: inset 0 0 0 1000px #bfeefa !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .attendance-summary-title,
  .attendance-summary-col {
    background: #d9f0d2 !important;
    background-color: #d9f0d2 !important;
    box-shadow: inset 0 0 0 1000px #d9f0d2 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .attendance-detail-table thead th {
    height: 3.5mm;
  }

  .attendance-month-title,
  .attendance-summary-title {
    height: 3.7mm !important;
  }

  .attendance-number-col,
  .attendance-detail-table col.attendance-number-col {
    width: 9mm;
  }

  .attendance-name-col,
  .attendance-name-cell,
  .attendance-detail-table col.attendance-name-col {
    width: 43mm;
    min-width: 43mm;
  }

  .attendance-day-header,
  .attendance-day-cell,
  .attendance-detail-table col.attendance-day-col {
    width: 4.35mm;
    min-width: 4.35mm;
    max-width: 4.35mm;
  }

  .attendance-summary-col,
  .attendance-detail-table col.attendance-summary-count-col {
    width: 6.6mm;
    white-space: normal;
    word-break: keep-all;
    line-height: 1.05;
  }

  .attendance-detail-table col.attendance-summary-missing-col {
    width: 7.4mm;
  }

  .attendance-detail-table col.attendance-summary-percent-col {
    width: 10mm;
  }

  .attendance-summary-col {
    font-size: 8pt;
    padding: .2mm !important;
    white-space: nowrap;
  }

  .attendance-month-title {
    font-size: 9.8pt;
  }

  .attendance-day-header {
    font-size: 8.3pt;
  }

  .attendance-detail-table tbody td,
  .attendance-detail-table tfoot th {
    font-size: 8.7pt;
  }

  .attendance-name-cell {
    font-size: 8.5pt;
    padding-left: .6mm !important;
  }

  .attendance-percent-cell {
    font-size: 7.8pt;
    white-space: nowrap;
  }

  .attendance-holiday-label {
    font-size: 7.8pt;
    top: 50%;
  }

  .report-heading h3 {
    font-size: 18pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .report-heading h4 {
    font-size: 13pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .report-heading p {
    font-size: 10pt;
    line-height: .95;
  }

  .report-heading {
    margin-bottom: 1mm !important;
  }

  .report-signature {
    display: flex;
    margin-top: 2mm !important;
    font-size: 11pt;
    page-break-before: avoid;
    page-break-inside: avoid;
  }

  .report-signature .col-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .report-signature p {
    line-height: 1;
    margin-bottom: .3mm;
  }

  .health-report {
    padding-top: 4mm;
    width: 289mm;
    margin: 0 auto;
    page-break-inside: auto;
  }

  .health-report .report-heading {
    margin-bottom: 1.5mm !important;
  }

  .health-report .report-heading h3 {
    font-size: 18pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .health-report .report-heading h4 {
    font-size: 13pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .health-report .report-heading p {
    font-size: 10pt;
    line-height: .95;
  }

  .health-report .report-card {
    page-break-after: auto !important;
    page-break-before: auto !important;
    page-break-inside: auto !important;
    break-after: auto !important;
    break-before: auto !important;
    break-inside: auto !important;
  }

  .health-report .card-header {
    border-bottom: 0 !important;
    padding: 0 0 .8mm 0 !important;
  }

  .health-report .card-title {
    font-size: 11pt;
    font-weight: 700;
    line-height: 1;
    margin: 0;
  }

  .health-report-card {
    margin-bottom: 2mm !important;
  }

  .health-summary-card {
    display: inline-block;
    width: 92mm;
    margin-bottom: 0 !important;
    vertical-align: top;
  }

  .health-report-table,
  .health-summary-table {
    border-collapse: collapse !important;
    color: #000;
    font-size: 8.5pt;
    table-layout: fixed;
    width: 100%;
  }

  .health-report-table th,
  .health-report-table td,
  .health-summary-table th,
  .health-summary-table td {
    border: 1px solid #000 !important;
    line-height: 1;
    overflow: hidden;
    padding: .12mm .35mm !important;
    vertical-align: middle !important;
  }

  .health-report-table th,
  .health-summary-table th {
    background: #f2f2f2 !important;
    background-color: #f2f2f2 !important;
    box-shadow: inset 0 0 0 1000px #f2f2f2 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    font-weight: 700;
    print-color-adjust: exact;
    text-align: center !important;
  }

  .health-report-table th {
    height: 3.6mm;
  }

  .health-report-table td {
    height: var(--health-print-row-height, 2.9mm);
  }

  .health-report-table col.health-number-col {
    width: 10mm;
  }

  .health-report-table col.health-name-col {
    width: 73mm;
  }

  .health-report-table col.health-check-col {
    width: 18mm;
  }

  .health-report-table col.health-note-col {
    width: 48mm;
  }

  .health-report-table tbody td:nth-child(2),
  .health-report-table tbody td:last-child {
    text-align: left !important;
  }

  .health-summary-table th,
  .health-summary-table td {
    height: 3.5mm;
  }

  .health-report .report-signature {
    margin-top: 2mm !important;
  }

  .daily-activity-report {
    padding-top: 4mm;
    width: 289mm;
    margin: 0 auto;
    page-break-inside: avoid;
  }

  .daily-activity-report .report-heading {
    margin-bottom: 1mm !important;
  }

  .daily-activity-report .report-heading h3 {
    font-size: 18pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .daily-activity-report .report-heading h4 {
    font-size: 13pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .daily-activity-report .report-heading p {
    font-size: 10pt;
    line-height: .95;
  }

  .activity-month-card {
    margin-bottom: 0 !important;
    page-break-after: avoid;
    page-break-inside: avoid;
  }

  .activity-report-scroll {
    overflow: visible;
  }

  .activity-month-table {
    border-collapse: collapse !important;
    color: #000;
    font-size: 8.8pt;
    max-width: 289mm;
    min-width: 0;
    table-layout: fixed;
    width: 289mm;
  }

  .activity-month-table th,
  .activity-month-table td {
    border: 1px solid #000 !important;
    height: var(--activity-print-row-height, 3.15mm);
    line-height: 1;
    overflow: hidden;
    padding: .12mm .25mm !important;
    vertical-align: middle !important;
  }

  .activity-month-table thead th {
    height: 3.5mm;
  }

  .activity-month-title,
  .activity-summary-title {
    height: 3.7mm !important;
  }

  .activity-month-table col.activity-number-col {
    width: 9mm;
  }

  .activity-month-table col.activity-name-col,
  .activity-name-col,
  .activity-name-cell {
    width: 55mm;
    min-width: 55mm;
  }

  .activity-day-header,
  .activity-day-cell,
  .activity-month-table col.activity-day-col {
    width: 6.3mm;
    min-width: 6.3mm;
    max-width: 6.3mm;
  }

  .activity-month-table col.activity-summary-colgroup {
    width: 29mm;
  }

  .activity-month-title,
  .activity-day-header {
    background: #bfeefa !important;
    background-color: #bfeefa !important;
    box-shadow: inset 0 0 0 1000px #bfeefa !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .activity-summary-title,
  .activity-summary-cell {
    background: #d7b4ea !important;
    background-color: #d7b4ea !important;
    box-shadow: inset 0 0 0 1000px #d7b4ea !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .activity-empty-header,
  .activity-empty-cell {
    background: #d7d7d7 !important;
    background-color: #d7d7d7 !important;
    box-shadow: inset 0 0 0 1000px #d7d7d7 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .activity-weekend-header,
  .activity-weekend-cell,
  .activity-holiday-header,
  .activity-holiday-cell {
    background: #ff5b63 !important;
    background-color: #ff5b63 !important;
    box-shadow: inset 0 0 0 1000px #ff5b63 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .activity-month-title {
    font-size: 9.8pt;
  }

  .activity-day-header {
    font-size: 8.3pt;
  }

  .activity-month-table tbody td,
  .activity-month-table tfoot th {
    font-size: 8.7pt;
  }

  .activity-name-cell {
    font-size: 8.5pt;
    padding-left: .6mm !important;
  }

  .activity-summary-cell,
  .activity-summary-title {
    font-size: 10pt;
    font-weight: 700;
  }

  .activity-holiday-label {
    font-size: 7.8pt;
  }

  .daily-activity-report .report-signature {
    margin-top: 2mm !important;
  }

  .saving-report {
    padding-top: 4mm;
    width: 289mm;
    margin: 0 auto;
    page-break-inside: avoid;
  }

  .saving-report .report-heading {
    margin-bottom: 1mm !important;
  }

  .saving-report .report-heading h3 {
    font-size: 18pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .saving-report .report-heading h4 {
    font-size: 13pt;
    line-height: .95;
    margin-bottom: .4mm !important;
  }

  .saving-report .report-heading p {
    font-size: 10pt;
    line-height: .95;
  }

  .saving-month-card {
    margin-bottom: 0 !important;
    page-break-after: avoid;
    page-break-inside: avoid;
  }

  .saving-report-scroll {
    overflow: visible;
  }

  .saving-month-table {
    border-collapse: collapse !important;
    color: #000;
    font-size: 8.8pt;
    max-width: 289mm;
    min-width: 0;
    table-layout: fixed;
    width: 289mm;
  }

  .saving-month-table th,
  .saving-month-table td {
    border: 1px solid #000 !important;
    height: var(--saving-print-row-height, 3.15mm);
    line-height: 1;
    overflow: hidden;
    padding: .12mm .25mm !important;
    vertical-align: middle !important;
  }

  .saving-month-table thead th {
    height: 3.5mm;
  }

  .saving-month-title,
  .saving-summary-title {
    height: 3.7mm !important;
  }

  .saving-month-table col.saving-number-col {
    width: 9mm;
  }

  .saving-month-table col.saving-name-col,
  .saving-name-col,
  .saving-name-cell {
    width: 55mm;
    min-width: 55mm;
  }

  .saving-day-header,
  .saving-day-cell,
  .saving-month-table col.saving-day-col {
    width: 6.3mm;
    min-width: 6.3mm;
    max-width: 6.3mm;
  }

  .saving-month-table col.saving-total-col,
  .saving-month-table col.saving-balance-col {
    width: 14.5mm;
  }

  .saving-month-title,
  .saving-day-header {
    background: #bfeefa !important;
    background-color: #bfeefa !important;
    box-shadow: inset 0 0 0 1000px #bfeefa !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .saving-summary-title {
    background: #d7b4ea !important;
    background-color: #d7b4ea !important;
    box-shadow: inset 0 0 0 1000px #d7b4ea !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .saving-total-header,
  .saving-total-cell {
    background: #d9f0d2 !important;
    background-color: #d9f0d2 !important;
    box-shadow: inset 0 0 0 1000px #d9f0d2 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .saving-balance-header,
  .saving-balance-cell {
    background: #fff1b8 !important;
    background-color: #fff1b8 !important;
    box-shadow: inset 0 0 0 1000px #fff1b8 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .saving-weekend-header,
  .saving-weekend-cell,
  .saving-holiday-header,
  .saving-holiday-cell {
    background: #ff5b63 !important;
    background-color: #ff5b63 !important;
    box-shadow: inset 0 0 0 1000px #ff5b63 !important;
    -webkit-print-color-adjust: exact;
    color-adjust: exact;
    print-color-adjust: exact;
  }

  .saving-month-title {
    font-size: 9.8pt;
  }

  .saving-day-header {
    font-size: 8.3pt;
  }

  .saving-month-table tbody td,
  .saving-month-table tfoot th {
    font-size: 8.7pt;
  }

  .saving-name-cell {
    font-size: 8.5pt;
    padding-left: .6mm !important;
  }

  .saving-summary-cell,
  .saving-summary-title {
    font-size: 10pt;
    font-weight: 700;
  }

  .saving-holiday-label {
    font-size: 7.8pt;
  }

  .saving-report .report-signature {
    margin-top: 2mm !important;
  }
}

@media screen {
  /* PHP attendance report parity with the Django report screen. */
  .attendance-report .report-card {
    border-radius: 4px;
  }

  .attendance-report .report-card .card-header {
    background: #fff;
    border-bottom: 1px solid #dee2e6;
    padding: .85rem 1rem;
  }

  .attendance-report .report-card .card-title {
    font-size: 1.25rem;
    font-weight: 700;
  }

  .attendance-detail-table {
    border-collapse: collapse !important;
    color: #212529;
    min-width: 1380px;
  }

  .attendance-detail-table th,
  .attendance-detail-table td {
    border: 1px solid #1f2933 !important;
  }

  .attendance-detail-table col.attendance-number-col {
    width: 72px;
  }

  .attendance-detail-table col.attendance-name-col {
    width: 300px;
    min-width: 300px;
  }

  .attendance-detail-table col.attendance-day-col {
    width: 29px;
    min-width: 29px;
    max-width: 29px;
  }

  .attendance-detail-table col.attendance-summary-count-col,
  .attendance-detail-table col.attendance-summary-missing-col {
    width: 48px;
  }

  .attendance-detail-table col.attendance-summary-percent-col {
    width: 58px;
  }

  .attendance-detail-table thead th {
    font-size: 1rem;
    height: 40px;
  }

  .attendance-detail-table tbody td,
  .attendance-detail-table tfoot th {
    font-size: .98rem;
    height: 40px;
  }

  .attendance-detail-table .attendance-number-cell {
    text-align: center !important;
  }

  .attendance-detail-table .attendance-name-cell {
    font-weight: 600;
    padding-left: .65rem !important;
  }

  .attendance-month-title {
    background: #bfeefa !important;
    background-color: #bfeefa !important;
  }

  .attendance-summary-title,
  .attendance-summary-col {
    background: #d9f0d2 !important;
    background-color: #d9f0d2 !important;
  }

  .attendance-weekend-header,
  .attendance-weekend-cell,
  .attendance-holiday-header,
  .attendance-holiday-cell {
    background: #ff5b63 !important;
    background-color: #ff5b63 !important;
    color: #111 !important;
  }

  .attendance-merged-day-cell {
    padding: 0 !important;
  }

  .attendance-merged-day-cell .attendance-holiday-label {
    font-size: .98rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .attendance-report .report-signature {
    font-size: 1rem;
    margin-top: 2.2rem !important;
  }

  .attendance-report .report-signature p {
    margin-bottom: .25rem;
  }

  .saving-report .report-card {
    border-radius: 4px;
  }

  .saving-report .report-card .card-header {
    background: #fff;
    border-bottom: 1px solid #dee2e6;
    padding: .85rem 1rem;
  }

  .saving-report .report-card .card-title {
    font-size: 1.25rem;
    font-weight: 700;
  }

  .saving-month-table {
    border-collapse: collapse !important;
    color: #212529;
    min-width: 1420px;
  }

  .saving-month-table th,
  .saving-month-table td {
    border: 1px solid #1f2933 !important;
  }

  .saving-month-table col.saving-number-col {
    width: 72px;
  }

  .saving-month-table col.saving-name-col {
    width: 300px;
    min-width: 300px;
  }

  .saving-month-table col.saving-day-col {
    width: 29px;
    min-width: 29px;
    max-width: 29px;
  }

  .saving-month-table col.saving-total-col,
  .saving-month-table col.saving-balance-col {
    width: 76px;
  }

  .saving-month-table thead th {
    font-size: 1rem;
    height: 40px;
  }

  .saving-month-table tbody td,
  .saving-month-table tfoot th {
    font-size: .98rem;
    height: 40px;
  }

  .saving-name-cell {
    font-weight: 600;
    padding-left: .65rem !important;
  }

  .saving-summary-col,
  .saving-summary-cell,
  .saving-total-cell,
  .saving-balance-cell {
    overflow: hidden;
    text-overflow: clip;
    white-space: nowrap;
    word-break: normal;
  }

  .saving-month-title,
  .saving-day-header {
    background: #bfeefa !important;
    background-color: #bfeefa !important;
  }

  .saving-summary-title {
    background: #d7b4ea !important;
    background-color: #d7b4ea !important;
  }

  .saving-total-header,
  .saving-total-cell {
    background: #d9f0d2 !important;
    background-color: #d9f0d2 !important;
  }

  .saving-balance-header,
  .saving-balance-cell {
    background: #fff1b8 !important;
    background-color: #fff1b8 !important;
  }

  .saving-weekend-header,
  .saving-weekend-cell,
  .saving-holiday-header,
  .saving-holiday-cell {
    background: #ff5b63 !important;
    background-color: #ff5b63 !important;
    color: #111 !important;
  }

  .saving-merged-day-cell {
    padding: 0 !important;
  }

  .saving-merged-day-cell .saving-holiday-label {
    font-size: .98rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
  }

  .saving-report .report-signature {
    font-size: 1rem;
    margin-top: 2.2rem !important;
  }

  .saving-report .report-signature p {
    margin-bottom: .25rem;
  }
}

@media print {
  .attendance-detail-table {
    min-width: 0;
  }

  .attendance-report .report-card .card-header {
    display: none !important;
  }
}

@media screen {
  .report-page,
  .attendance-report {
    font-size: 1.12rem;
  }

  .report-page .report-heading h3,
  .attendance-report .report-heading h3 {
    font-size: 2.15rem;
    line-height: 1.08;
  }

  .report-page .report-heading h4,
  .attendance-report .report-heading h4 {
    font-size: 1.45rem;
    line-height: 1.1;
  }

  .report-page .report-heading p,
  .attendance-report .report-heading p {
    font-size: 1.08rem;
  }

  .report-page .report-card .card-title,
  .attendance-report .report-card .card-title {
    font-size: 1.38rem;
    font-weight: 700;
  }

  .growth-report-table,
  .health-report-table,
  .health-summary-table,
  .report-page .card-body > .table {
    font-size: 1.08rem;
  }

  .growth-report-table th,
  .growth-report-table td,
  .health-report-table th,
  .health-report-table td,
  .health-summary-table th,
  .health-summary-table td,
  .report-page .card-body > .table th,
  .report-page .card-body > .table td {
    padding: .45rem .5rem;
  }

  .attendance-detail-table {
    min-width: 1500px;
  }

  .attendance-detail-table thead th,
  .saving-month-table thead th,
  .activity-month-table thead th {
    font-size: 1.12rem;
    height: 44px;
  }

  .attendance-detail-table tbody td,
  .attendance-detail-table tfoot th,
  .saving-month-table tbody td,
  .saving-month-table tfoot th,
  .activity-month-table tbody td,
  .activity-month-table tfoot th {
    font-size: 1.08rem;
    height: 44px;
  }

  .attendance-day-header,
  .saving-day-header,
  .activity-day-header {
    font-size: 1.04rem !important;
  }

  .attendance-month-title,
  .saving-month-title,
  .activity-month-title,
  .attendance-summary-title,
  .saving-summary-title,
  .activity-summary-title {
    font-size: 1.18rem !important;
  }

  .attendance-summary-col,
  .saving-summary-col,
  .activity-summary-cell {
    font-size: 1.04rem !important;
  }

  .attendance-merged-day-cell .attendance-holiday-label,
  .saving-merged-day-cell .saving-holiday-label,
  .activity-merged-day-cell .activity-holiday-label {
    font-size: 1.08rem;
  }

  .saving-month-table {
    min-width: 1540px;
  }

  .saving-month-table col.saving-total-col,
  .saving-month-table col.saving-balance-col {
    width: 92px;
  }

  .activity-month-table {
    border-collapse: collapse !important;
    min-width: 1580px;
  }

  .activity-month-table th,
  .activity-month-table td {
    border: 1px solid #1f2933 !important;
  }

  .activity-month-table col.activity-number-col {
    width: 72px;
  }

  .activity-month-table col.activity-name-col {
    width: 300px;
    min-width: 300px;
  }

  .activity-month-table col.activity-day-col {
    width: 29px;
    min-width: 29px;
    max-width: 29px;
  }

  .activity-month-table col.activity-summary-colgroup {
    width: 128px;
  }

  .activity-name-cell {
    font-weight: 600;
    padding-left: .65rem !important;
  }

  .activity-summary-title,
  .activity-summary-cell,
  .activity-month-table tfoot th:last-child {
    overflow: hidden;
    text-align: center !important;
    text-overflow: clip;
    white-space: nowrap;
    word-break: normal;
  }

  .attendance-report .report-signature,
  .saving-report .report-signature,
  .daily-activity-report .report-signature,
  .growth-report .report-signature,
  .health-report .report-signature {
    font-size: 1.12rem;
  }
}

@media print {
  body {
    font-size: 12pt;
  }

  .report-heading h3,
  .health-report .report-heading h3,
  .daily-activity-report .report-heading h3,
  .saving-report .report-heading h3 {
    font-size: 19.5pt !important;
  }

  .report-heading h4,
  .health-report .report-heading h4,
  .daily-activity-report .report-heading h4,
  .saving-report .report-heading h4 {
    font-size: 14pt !important;
  }

  .report-heading p,
  .health-report .report-heading p,
  .daily-activity-report .report-heading p,
  .saving-report .report-heading p {
    font-size: 10.8pt !important;
  }

  .attendance-detail-table,
  .activity-month-table,
  .saving-month-table {
    font-size: 9.2pt !important;
  }

  .attendance-detail-table tbody td,
  .attendance-detail-table tfoot th,
  .activity-month-table tbody td,
  .activity-month-table tfoot th,
  .saving-month-table tbody td,
  .saving-month-table tfoot th {
    font-size: 9.1pt !important;
  }

  .attendance-day-header,
  .activity-day-header,
  .saving-day-header {
    font-size: 8.8pt !important;
  }

  .attendance-month-title,
  .activity-month-title,
  .saving-month-title {
    font-size: 10.4pt !important;
  }

  .attendance-summary-col,
  .attendance-percent-cell,
  .attendance-holiday-label,
  .activity-holiday-label,
  .saving-holiday-label {
    font-size: 8.4pt !important;
  }

  .health-report-table,
  .health-summary-table,
  .growth-report-table {
    font-size: 9.4pt !important;
  }

  .health-report-table th,
  .health-report-table td,
  .health-summary-table th,
  .health-summary-table td,
  .growth-report-table th,
  .growth-report-table td {
    font-size: 9.4pt !important;
  }

  .report-signature {
    font-size: 11.8pt !important;
  }
}
