/*
  CodideX Print Foundation
  A4-ready defaults for reports, receipts, ID cards, lists, and formal documents.
*/

@page {
  size: A4 portrait;
  margin: 14mm;
}

@page cdx-landscape {
  size: A4 landscape;
  margin: 12mm;
}

@page cdx-result-portrait {
  size: A4 portrait;
  margin: 10mm;
}

@page cdx-result-landscape {
  size: A4 landscape;
  margin: 9mm;
}

@page cdx-card-sheet {
  size: A4 portrait;
  margin: 8mm;
}

@page cdx-finance-portrait {
  size: A4 portrait;
  margin: 9mm;
}

@page cdx-finance-landscape {
  size: A4 landscape;
  margin: 8mm;
}

.print-landscape {
  page: cdx-landscape;
}

.cdx-result-print-page,
.cdx-a4-page {
  page: cdx-result-portrait;
}

.cdx-a4-landscape {
  page: cdx-result-landscape;
}

.cdx-card-print-page {
  page: cdx-card-sheet;
}

.cdx-finance-print-page,
.cdx-finance-a4-page {
  page: cdx-finance-portrait;
}

.cdx-finance-a4-landscape {
  page: cdx-finance-landscape;
}

@media print {
  html,
  body {
    width: 210mm;
    min-height: 297mm;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 11pt;
  }

  body {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .cdx-sidebar,
  .cdx-topbar,
  .cdx-footer,
  .cdx-sidebar-backdrop,
  .no-print,
  .btn,
  [data-print-hidden="true"] {
    display: none !important;
  }

  .cdx-shell,
  .cdx-main,
  .cdx-content {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .cdx-card,
  .cdx-surface {
    border: 1px solid #d1d5db !important;
    box-shadow: none !important;
    break-inside: avoid;
  }

  .badge,
  .cdx-status,
  .cdx-trend,
  .cdx-page-eyebrow {
    border: 1px solid #9ca3af !important;
    background: #ffffff !important;
    color: #111827 !important;
  }

  .table {
    border-collapse: collapse !important;
  }

  .table-responsive {
    overflow: visible !important;
  }

  .table th,
  .table td {
    padding: 6pt 7pt !important;
    border: 1px solid #d1d5db !important;
  }

  a {
    color: #111827 !important;
    text-decoration: none !important;
  }

  .print-page-break {
    page-break-before: always;
  }

  .print-avoid-break {
    break-inside: avoid;
  }

  .print-page-end {
    page-break-after: always;
  }

  .cdx-page-header,
  .cdx-student-metrics,
  .cdx-table-toolbar,
  .cdx-tabs,
  .cdx-result-metrics,
  .cdx-academic-metrics {
    break-after: avoid;
  }

  .cdx-print-preview {
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
  }

  .cdx-a4-page {
    width: 190mm !important;
    min-height: 277mm !important;
    margin: 0 auto !important;
  }

  .cdx-a4-landscape {
    width: 279mm !important;
    min-height: 192mm !important;
  }

  .cdx-print-document {
    width: 100% !important;
    min-height: inherit !important;
    padding: 8mm !important;
    border: 0.35mm solid #111827 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: #111827 !important;
    box-shadow: none !important;
    break-inside: avoid !important;
  }

  .cdx-print-document::before {
    inset: 5mm !important;
    border-color: #d1d5db !important;
  }

  .cdx-print-document,
  .cdx-print-document * {
    color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .cdx-finance-print-preview {
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
  }

  .cdx-finance-a4-page {
    width: 192mm !important;
    min-height: 279mm !important;
    margin: 0 auto !important;
  }

  .cdx-finance-a4-landscape {
    width: 281mm !important;
    min-height: 194mm !important;
  }

  .cdx-finance-print-document {
    width: 100% !important;
    min-height: inherit !important;
    padding: 7mm !important;
    border: 0.3mm solid #111827 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 8pt !important;
    box-shadow: none !important;
    break-inside: avoid !important;
  }

  .cdx-finance-print-document::before {
    inset: 4.5mm !important;
    border-color: #d1d5db !important;
  }

  .cdx-finance-print-document::after {
    color: rgba(17, 24, 39, 0.025) !important;
  }

  .cdx-finance-print-document,
  .cdx-finance-print-document * {
    color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .cdx-finance-print-document p,
  .cdx-finance-print-document span,
  .cdx-finance-print-document strong,
  .cdx-finance-print-document td,
  .cdx-finance-print-document th,
  .cdx-finance-print-document h1,
  .cdx-finance-print-document h2,
  .cdx-finance-print-document h3 {
    color: #111827 !important;
  }

  .cdx-finance-document-meta span,
  .cdx-finance-small-label,
  .cdx-finance-total-item span {
    color: #374151 !important;
  }

  .cdx-finance-print-grid,
  .cdx-finance-print-grid.is-balanced {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(58mm, 0.85fr) !important;
    gap: 4mm !important;
  }

  .cdx-finance-print-grid.is-balanced {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .cdx-finance-print-panel {
    padding: 2.4mm !important;
    border: 0.25mm solid #9ca3af !important;
    background: #ffffff !important;
    break-inside: avoid !important;
  }

  .cdx-finance-print-panel.is-muted,
  .cdx-finance-total-item,
  .cdx-salary-net-card {
    background: #f8fafc !important;
  }

  .cdx-finance-print-panel-title {
    margin-bottom: 1.8mm !important;
    font-size: 7.2pt !important;
  }

  .cdx-finance-print-table {
    border-collapse: collapse !important;
    font-size: 7.4pt !important;
    page-break-inside: auto !important;
  }

  .cdx-finance-print-table tr {
    page-break-inside: avoid !important;
    page-break-after: auto !important;
  }

  .cdx-finance-print-table th,
  .cdx-finance-print-table td {
    padding: 1.55mm 1.8mm !important;
    border: 0.25mm solid #9ca3af !important;
  }

  .cdx-finance-print-table th,
  .cdx-finance-print-table tfoot td {
    background: #eef2f7 !important;
  }

  .cdx-finance-print-table .cdx-amount,
  .cdx-amount {
    font-variant-numeric: tabular-nums !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  .cdx-finance-total-band {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 3mm !important;
    margin-top: 4mm !important;
    break-inside: avoid !important;
  }

  .cdx-finance-total-item {
    padding: 2.2mm !important;
    border: 0.25mm solid #9ca3af !important;
  }

  .cdx-finance-total-item strong {
    font-size: 9pt !important;
  }

  .cdx-finance-total-item.is-grand {
    border-color: #111827 !important;
    background: #111827 !important;
  }

  .cdx-finance-total-item.is-grand span,
  .cdx-finance-total-item.is-grand strong {
    color: #ffffff !important;
  }

  .cdx-finance-status,
  .cdx-finance-status.is-paid,
  .cdx-finance-status.is-pending,
  .cdx-finance-status.is-partial,
  .cdx-finance-status.is-overdue {
    border: 0.25mm solid #111827 !important;
    background: #ffffff !important;
    color: #111827 !important;
    font-size: 6.4pt !important;
  }

  .cdx-finance-code-row {
    display: grid !important;
    grid-template-columns: 22mm minmax(0, 1fr) !important;
    gap: 4mm !important;
  }

  .cdx-finance-qr-box {
    width: 21mm !important;
    height: 21mm !important;
  }

  .cdx-finance-barcode-box {
    height: 10mm !important;
    border-color: #111827 !important;
  }

  .cdx-finance-terms {
    min-height: 16mm !important;
    padding: 2.2mm !important;
    border: 0.25mm dashed #9ca3af !important;
    background: #ffffff !important;
    color: #374151 !important;
    font-size: 7pt !important;
  }

  .cdx-finance-signatures {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8mm !important;
    margin-top: 11mm !important;
    break-inside: avoid !important;
  }

  .cdx-finance-signature {
    min-height: 12mm !important;
    padding-top: 6mm !important;
    border-top: 0.25mm solid #111827 !important;
    font-size: 6.8pt !important;
  }

  .cdx-finance-stamp {
    width: 24mm !important;
    height: 24mm !important;
    border: 0.45mm solid #111827 !important;
    font-size: 6pt !important;
  }

  .cdx-salary-net-card {
    padding: 3mm !important;
    border: 0.45mm solid #111827 !important;
    break-inside: avoid !important;
  }

  .cdx-salary-net-card strong {
    font-size: 13pt !important;
  }

  .cdx-print-document p,
  .cdx-print-document span,
  .cdx-print-document strong,
  .cdx-print-document td,
  .cdx-print-document th,
  .cdx-print-document h1,
  .cdx-print-document h2,
  .cdx-print-document h3 {
    color: #111827 !important;
  }

  .cdx-print-title {
    font-size: 15pt !important;
    letter-spacing: 0.04em !important;
  }

  .cdx-print-subtitle,
  .cdx-print-info-item span,
  .cdx-result-summary-card span,
  .cdx-sheet-meta {
    color: #374151 !important;
  }

  .cdx-print-header {
    grid-template-columns: 20mm 1fr 29mm !important;
    gap: 5mm !important;
    padding-bottom: 4mm !important;
    border-bottom: 0.55mm solid #111827 !important;
  }

  .cdx-print-logo {
    width: 18mm !important;
    height: 18mm !important;
    border-radius: 2mm !important;
  }

  .cdx-print-qr,
  .cdx-print-seal {
    width: 22mm !important;
    height: 22mm !important;
  }

  .cdx-print-barcode {
    height: 10mm !important;
    border-color: #111827 !important;
  }

  .cdx-document-ribbon {
    min-width: 27mm !important;
    padding: 1.5mm 2mm !important;
    border-color: #111827 !important;
    font-size: 7.5pt !important;
  }

  .cdx-print-section {
    margin-top: 4mm !important;
    break-inside: avoid !important;
  }

  .cdx-print-section-title {
    margin-bottom: 2.5mm !important;
    padding: 1.7mm 2mm !important;
    border-color: #9ca3af !important;
    background: #f3f4f6 !important;
    color: #111827 !important;
    font-size: 8.5pt !important;
  }

  .cdx-print-info-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    border-color: #9ca3af !important;
  }

  .cdx-print-info-item {
    min-height: 13mm !important;
    padding: 2mm !important;
    border-color: #cbd5e1 !important;
  }

  .cdx-print-info-item:nth-child(4n) {
    border-right: 0 !important;
  }

  .cdx-print-info-item span {
    font-size: 6.8pt !important;
  }

  .cdx-print-info-item strong {
    font-size: 8.7pt !important;
  }

  .cdx-marksheet-table,
  .cdx-result-sheet-table,
  .cdx-grade-scale-table {
    border-collapse: collapse !important;
    color: #111827 !important;
    font-size: 8.2pt !important;
    page-break-inside: auto !important;
  }

  .cdx-marksheet-table tr,
  .cdx-result-sheet-table tr,
  .cdx-grade-scale-table tr {
    page-break-inside: avoid !important;
    page-break-after: auto !important;
  }

  .cdx-marksheet-table th,
  .cdx-marksheet-table td,
  .cdx-result-sheet-table th,
  .cdx-result-sheet-table td,
  .cdx-grade-scale-table th,
  .cdx-grade-scale-table td {
    padding: 2mm !important;
    border: 0.25mm solid #9ca3af !important;
  }

  .cdx-marksheet-table th,
  .cdx-result-sheet-table th,
  .cdx-grade-scale-table th {
    background: #eef2f7 !important;
    color: #111827 !important;
  }

  .cdx-result-sheet-table {
    font-size: 7pt !important;
  }

  .cdx-result-sheet-table th,
  .cdx-result-sheet-table td {
    padding: 1.25mm 1.4mm !important;
  }

  .cdx-result-summary-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 3mm !important;
  }

  .cdx-result-summary-card {
    padding: 2.5mm !important;
    border: 0.25mm solid #9ca3af !important;
    background: #f9fafb !important;
    break-inside: avoid !important;
  }

  .cdx-result-summary-card strong {
    font-size: 13pt !important;
  }

  .cdx-remarks-box {
    min-height: 18mm !important;
    padding: 2.5mm !important;
    border: 0.25mm solid #9ca3af !important;
    background: #ffffff !important;
  }

  .cdx-signature-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10mm !important;
    margin-top: 13mm !important;
    break-inside: avoid !important;
  }

  .cdx-signature-line {
    padding-top: 6mm !important;
    border-top: 0.25mm solid #111827 !important;
    font-size: 7.5pt !important;
  }

  .cdx-report-profile,
  .cdx-result-widget,
  .cdx-assessment-item,
  .cdx-trend-card,
  .cdx-grade-card,
  .cdx-topper-card,
  .cdx-exam-date-card,
  .cdx-subject-card,
  .cdx-class-card,
  .cdx-syllabus-card {
    background: #ffffff !important;
    border-color: #d1d5db !important;
    break-inside: avoid !important;
  }

  .cdx-chart-placeholder {
    min-height: 58mm !important;
    border-color: #d1d5db !important;
    background:
      repeating-linear-gradient(0deg, transparent 0 13mm, #e5e7eb 13.2mm),
      repeating-linear-gradient(90deg, transparent 0 18mm, #eef2f7 18.2mm),
      #ffffff !important;
  }

  .cdx-grade-pill,
  .cdx-rank-pill,
  .cdx-status,
  .cdx-label,
  .cdx-achievement-badge {
    border: 0.25mm solid #9ca3af !important;
    background: #ffffff !important;
    color: #111827 !important;
  }

  .cdx-print-card-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8mm !important;
    align-items: start !important;
  }

  .cdx-print-card-grid > *,
  .cdx-card-body {
    break-inside: avoid !important;
  }

  .cdx-id-card,
  .cdx-print-id-card {
    width: 54mm !important;
    max-width: 54mm !important;
    min-height: 86mm !important;
    border: 0.35mm solid #d1d5db !important;
    border-radius: 3mm !important;
    background: #ffffff !important;
    color: #111827 !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  .cdx-id-card.is-landscape,
  .cdx-print-id-card.is-landscape {
    width: 86mm !important;
    max-width: 86mm !important;
    min-height: 54mm !important;
  }

  .cdx-id-card-band,
  .cdx-gradient-card,
  .cdx-rfid-card {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .cdx-card-photo {
    width: 24mm !important;
    height: 28mm !important;
    border-width: 1mm !important;
  }

  .cdx-code-placeholder {
    height: 10mm !important;
    border: 0.25mm solid #111827 !important;
  }

  .cdx-qr-placeholder {
    width: 20mm !important;
    height: 20mm !important;
    border: 0.25mm solid #111827 !important;
  }

  .cdx-rfid-card,
  .cdx-print-rfid-card {
    width: 86mm !important;
    min-height: 54mm !important;
    padding: 6mm !important;
    border-radius: 3mm !important;
    box-shadow: none !important;
    break-inside: avoid !important;
  }

  .cdx-rfid-chip {
    width: 16mm !important;
    height: 12mm !important;
  }

  .cdx-page-header,
  .cdx-student-metrics,
  .cdx-table-toolbar,
  .cdx-tabs {
    break-after: avoid;
  }
}
