/* ============================================================
   MAINUNIT — Print / PDF Stylesheet
   Triggered by window.print() or Ctrl+P
   Formats content as A4 portrait for clean PDF output
   ============================================================ */

@media print {

  /* ── Page setup ──────────────────────────────────────── */
  @page {
    size: A4 portrait;
    margin: 15mm 12mm 15mm 12mm;
  }

  @page :first {
    margin-top: 10mm;
  }

  /* ── Hide everything that isn't content ──────────────── */
  .sidebar,
  .sidebar-backdrop,
  .app-topbar,
  .nav-group,
  .page-header-actions,
  .filters-bar,
  .filters-form,
  .ts-actions,
  .week-selector,
  .mode-toggle,
  .btn,
  .btn-primary,
  .btn-outline,
  .btn-danger,
  .btn-success,
  .btn-sm,
  .notif-trigger,
  .sidebar-footer,
  form,
  button,
  input[type="submit"],
  input[type="button"],
  a.btn,
  #ts-messages,
  #sidebar-backdrop,
  #hamburger,
  .flash-wrap,
  .week-nav-btn,
  .toggle-btn,
  .empty-state .btn,
  nav {
    display: none !important;
  }

  /* ── Reset app shell for print ───────────────────────── */
  html, body {
    width: 210mm;
    background: #fff !important;
    color: #000 !important;
    font-family: 'Inter', Arial, sans-serif;
    font-size: 10pt;
    line-height: 1.4;
  }

  .app-shell {
    display: block !important;
  }

  .app-main {
    margin-left: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  .main-content {
    padding: 0 !important;
    max-width: 100% !important;
  }

  /* ── Print header — logo + title ─────────────────────── */
  .print-header {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid #081A3D;
    padding-bottom: 6mm;
    margin-bottom: 6mm;
  }

  .print-header-logo {
    font-size: 18pt;
    font-weight: 700;
    color: #081A3D;
    letter-spacing: -0.02em;
  }

  .print-header-meta {
    text-align: right;
    font-size: 8pt;
    color: #64748b;
    line-height: 1.6;
  }

  /* ── Page header ─────────────────────────────────────── */
  .page-header {
    margin-bottom: 5mm !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
  }

  .page-header h1 {
    font-size: 16pt !important;
    color: #081A3D !important;
    margin: 0 0 2mm 0 !important;
  }

  .page-header .meta-text {
    font-size: 9pt !important;
    color: #64748b !important;
  }

  /* ── Cards — flatten for print ───────────────────────── */
  .card {
    border: 1px solid #e2e8f0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    margin-bottom: 5mm !important;
    break-inside: avoid;
  }

  .card-header {
    background: #081A3D !important;
    color: #fff !important;
    padding: 3mm 4mm !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .card-header h2,
  .card-header h3 {
    color: #fff !important;
    font-size: 10pt !important;
    margin: 0 !important;
  }

  .card-body {
    padding: 4mm !important;
  }

  /* ── Stat cards ──────────────────────────────────────── */
  .stats-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 3mm !important;
    margin-bottom: 5mm !important;
  }

  .stat-card {
    border: 1px solid #e2e8f0 !important;
    padding: 3mm 4mm !important;
    text-align: center;
    break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .stat-value {
    font-size: 14pt !important;
    font-weight: 700 !important;
    color: #081A3D !important;
  }

  .stat-label {
    font-size: 7pt !important;
    color: #64748b !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

  /* ── Tables ──────────────────────────────────────────── */
  .data-table,
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 8.5pt !important;
    margin-bottom: 4mm !important;
  }

  .data-table thead tr,
  table thead tr {
    background: #081A3D !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .data-table th,
  table th {
    padding: 2mm 3mm !important;
    font-weight: 600 !important;
    font-size: 8pt !important;
    text-align: left;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .data-table td,
  table td {
    padding: 2mm 3mm !important;
    border-bottom: 0.5pt solid #e2e8f0 !important;
    vertical-align: top;
  }

  .data-table tbody tr:nth-child(even),
  table tbody tr:nth-child(even) {
    background: #f8fafc !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .data-table tfoot tr,
  table tfoot tr {
    background: #f1f5f9 !important;
    font-weight: 700 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ── Badges ──────────────────────────────────────────── */
  .badge {
    font-size: 7pt !important;
    padding: 1mm 2mm !important;
    border-radius: 2pt !important;
    border: 0.5pt solid currentColor;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .badge-approved  { background: #dcfce7 !important; color: #15803d !important; }
  .badge-submitted { background: #dbeafe !important; color: #1d4ed8 !important; }
  .badge-draft     { background: #f1f5f9 !important; color: #475569 !important; }
  .badge-rejected  { background: #fee2e2 !important; color: #b91c1c !important; }

  /* ── Typography ──────────────────────────────────────── */
  h1 { font-size: 16pt !important; }
  h2 { font-size: 13pt !important; }
  h3 { font-size: 11pt !important; }

  .meta-text {
    font-size: 8pt !important;
    color: #64748b !important;
  }

  code {
    font-size: 8pt !important;
    background: #f1f5f9 !important;
    padding: 0 2pt !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ── Page breaks ─────────────────────────────────────── */
  .card         { break-inside: avoid; }
  .stat-card    { break-inside: avoid; }
  tr            { break-inside: avoid; }
  thead         { display: table-header-group; } /* repeat header on each page */
  tfoot         { display: table-footer-group; }

  .page-break-before { break-before: page; }
  .page-break-after  { break-after: page; }
  .no-break          { break-inside: avoid; }

  /* ── Print footer (page numbers via CSS) ─────────────── */
  .print-footer {
    display: block !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    font-size: 7pt;
    color: #94a3b8;
    text-align: center;
    padding-top: 2mm;
    border-top: 0.5pt solid #e2e8f0;
  }
}

/* ── Screen: hide print-only elements ────────────────── */
@media screen {
  .print-header,
  .print-footer {
    display: none;
  }
}
