/* Print Styles for Capital Beltway Holding ERP */

@media print {
  /* ===== HIDE NON-PRINTABLE ELEMENTS ===== */
  .no-print,
  nav,
  .sidebar,
  aside,
  .topbar,
  header,
  footer:not(.print-footer),
  button:not(.print-button),
  .mobile-drawer,
  .notification-bell,
  .user-menu,
  .theme-toggle,
  .search-button,
  .modal-overlay,
  .command-palette,
  [role="dialog"],
  .toast,
  .tooltip {
    display: none !important;
  }

  /* ===== RESET FOR PRINT ===== */
  *,
  *::before,
  *::after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  html,
  body {
    height: auto !important;
    overflow: visible !important;
    background: white !important;
    font-size: 11pt !important;
    line-height: 1.4 !important;
  }

  body {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Remove dark mode in print */
  .dark {
    background: white !important;
    color: #000 !important;
  }

  /* ===== PAGE SETUP ===== */
  @page {
    margin: 0.75in;
    size: letter;
  }

  @page :first {
    margin-top: 0.5in;
  }

  /* ===== LAYOUT RESET ===== */
  main {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .print-container {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }

  /* ===== PAGE BREAKS ===== */
  .page-break-before {
    page-break-before: always;
    break-before: page;
  }

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

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

  .break-inside-auto {
    page-break-inside: auto;
    break-inside: auto;
  }

  /* ===== TYPOGRAPHY ===== */
  h1 {
    font-size: 18pt !important;
    font-weight: 700 !important;
    margin-bottom: 8pt !important;
  }

  h2 {
    font-size: 14pt !important;
    font-weight: 600 !important;
    margin-bottom: 6pt !important;
  }

  h3 {
    font-size: 12pt !important;
    font-weight: 600 !important;
    margin-bottom: 4pt !important;
  }

  p {
    font-size: 11pt !important;
    margin-bottom: 6pt !important;
    orphans: 3;
    widows: 3;
  }

  /* ===== TABLES ===== */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto !important;
  }

  thead {
    display: table-header-group !important;
  }

  tfoot {
    display: table-footer-group !important;
  }

  tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  th,
  td {
    border: 1px solid #ccc !important;
    padding: 6pt 8pt !important;
    font-size: 10pt !important;
    text-align: left !important;
  }

  th {
    background: #f0f0f0 !important;
    font-weight: 600 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Zebra striping for tables */
  tbody tr:nth-child(even) {
    background: #f9f9f9 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ===== LINKS ===== */
  a,
  a:visited {
    text-decoration: underline !important;
    color: #000 !important;
  }

  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #666 !important;
  }

  /* Don't show URL for internal links */
  a[href^="#"]::after,
  a[href^="javascript:"]::after {
    content: "";
  }

  /* ===== IMAGES ===== */
  img {
    max-width: 100% !important;
    page-break-inside: avoid !important;
  }

  /* ===== PRINT HEADER/FOOTER ===== */
  .print-header {
    display: block !important;
    border-bottom: 2pt solid #000 !important;
    padding-bottom: 12pt !important;
    margin-bottom: 16pt !important;
  }

  .print-header-logo {
    width: 48px !important;
    height: 48px !important;
  }

  .print-header-title {
    font-size: 16pt !important;
    font-weight: 700 !important;
    margin: 0 !important;
  }

  .print-header-subtitle {
    font-size: 10pt !important;
    color: #666 !important;
    margin: 4pt 0 0 0 !important;
  }

  .print-header-date {
    font-size: 9pt !important;
    color: #666 !important;
  }

  .print-footer {
    display: block !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 8pt !important;
    color: #999 !important;
    border-top: 1pt solid #ccc !important;
    padding-top: 8pt !important;
    margin-top: 16pt !important;
  }

  /* ===== PAGE NUMBERS ===== */
  .print-page-number {
    position: running(pageNumber);
  }

  @page {
    @bottom-right {
      content: "Page " counter(page) " of " counter(pages);
      font-size: 8pt;
      color: #666;
    }
  }

  /* ===== SPECIFIC PRINT LAYOUTS ===== */

  /* Timesheet Print */
  .timesheet-print {
    page-break-after: always;
  }

  .timesheet-print-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    margin-bottom: 16pt !important;
    padding-bottom: 12pt !important;
    border-bottom: 1pt solid #ccc !important;
  }

  .timesheet-employee-info {
    font-size: 10pt !important;
  }

  .timesheet-period {
    font-size: 12pt !important;
    font-weight: 600 !important;
  }

  .timesheet-summary {
    background: #f5f5f5 !important;
    padding: 12pt !important;
    margin: 12pt 0 !important;
    border-radius: 4pt !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .timesheet-totals {
    font-size: 14pt !important;
    font-weight: 700 !important;
  }

  .timesheet-signature-line {
    margin-top: 48pt !important;
    padding-top: 12pt !important;
    border-top: 1pt solid #000 !important;
  }

  /* Expense Report Print */
  .expense-report-print {
    page-break-after: always;
  }

  .expense-category-group {
    margin-bottom: 16pt !important;
    page-break-inside: avoid !important;
  }

  .expense-category-header {
    font-size: 11pt !important;
    font-weight: 600 !important;
    background: #e0e0e0 !important;
    padding: 6pt 8pt !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .expense-subtotal {
    font-weight: 600 !important;
    background: #f0f0f0 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .expense-grand-total {
    font-size: 14pt !important;
    font-weight: 700 !important;
    border-top: 2pt solid #000 !important;
    margin-top: 12pt !important;
    padding-top: 8pt !important;
  }

  .expense-receipt-checklist {
    margin-top: 24pt !important;
    padding-top: 12pt !important;
    border-top: 1pt dashed #ccc !important;
  }

  /* Project Report Print */
  .project-report-print {
    page-break-after: always;
  }

  .project-summary-card {
    background: #f5f5f5 !important;
    padding: 16pt !important;
    margin-bottom: 16pt !important;
    border: 1pt solid #ccc !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .project-progress-bar {
    height: 12pt !important;
    background: #e0e0e0 !important;
    border-radius: 6pt !important;
    overflow: hidden !important;
  }

  .project-progress-fill {
    height: 100% !important;
    background: #4caf50 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .project-milestone-timeline {
    border-left: 2pt solid #ccc !important;
    padding-left: 16pt !important;
    margin-left: 8pt !important;
  }

  .project-milestone-item {
    position: relative !important;
    margin-bottom: 12pt !important;
    page-break-inside: avoid !important;
  }

  .project-milestone-dot {
    position: absolute !important;
    left: -21pt !important;
    width: 10pt !important;
    height: 10pt !important;
    background: #fff !important;
    border: 2pt solid #4caf50 !important;
    border-radius: 50% !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .project-milestone-dot.completed {
    background: #4caf50 !important;
  }

  /* ===== STATUS BADGES ===== */
  .status-badge {
    display: inline-block !important;
    padding: 2pt 6pt !important;
    font-size: 8pt !important;
    font-weight: 600 !important;
    border: 1pt solid #000 !important;
    border-radius: 2pt !important;
  }

  .status-badge-approved,
  .status-badge-completed {
    background: #e8f5e9 !important;
    border-color: #4caf50 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .status-badge-pending,
  .status-badge-in_progress {
    background: #fff3e0 !important;
    border-color: #ff9800 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .status-badge-rejected,
  .status-badge-overdue {
    background: #ffebee !important;
    border-color: #f44336 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ===== UTILITY CLASSES FOR PRINT ===== */
  .print-only {
    display: block !important;
  }

  .screen-only {
    display: none !important;
  }

  .print-text-sm {
    font-size: 9pt !important;
  }

  .print-text-lg {
    font-size: 14pt !important;
  }

  .print-bold {
    font-weight: 700 !important;
  }

  .print-center {
    text-align: center !important;
  }

  .print-right {
    text-align: right !important;
  }

  .print-mt-1 {
    margin-top: 8pt !important;
  }

  .print-mt-2 {
    margin-top: 16pt !important;
  }

  .print-mb-1 {
    margin-bottom: 8pt !important;
  }

  .print-mb-2 {
    margin-bottom: 16pt !important;
  }

  .print-border-b {
    border-bottom: 1pt solid #ccc !important;
    padding-bottom: 8pt !important;
    margin-bottom: 8pt !important;
  }
}

/* Screen-only (hidden in print) */
@media screen {
  .print-only {
    display: none !important;
  }
}
