/* ===================== PRINT STYLES ===================== */

/* Global Print Styles */
@media print {
  /* Reset everything */
  * {
    box-sizing: border-box;
  }
  
  /* Hide app structure */
  #loginPage,
  #mainApp,
  .sidebar,
  .main-content,
  .topbar,
  nav,
  #toastContainer {
    display: none !important;
  }
  
  /* Show and position modal for printing */
  #globalModal {
    display: block !important;
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: white !important;
    width: 100% !important;
    height: auto !important;
    overflow: visible !important;
  }
  
  .modal-overlay {
    display: block !important;
    background: white !important;
    position: relative !important;
    opacity: 1 !important;
  }
  
  .modal-box {
    display: block !important;
    position: relative !important;
    max-width: 100% !important;
    width: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    background: white !important;
    transform: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
  }
  
  /* Hide modal controls */
  .modal-header,
  .modal-footer,
  .no-print,
  button,
  .btn {
    display: none !important;
  }
  
  .modal-body {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    opacity: 1 !important;
  }
  
  /* Ensure all children of modal body are visible */
  .modal-body > *,
  .modal-body > * > *,
  .modal-body > * > * > * {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  /* Hide navigation, sidebar, etc */
  .sidebar,
  .topbar,
  nav,
  button,
  .btn,
  .no-print {
    display: none !important;
  }
  
  /* Force white background */
  body {
    background: white !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* Remove page breaks inside elements */
  * {
    page-break-inside: avoid;
  }
  
  /* === ID CARD PRINT STYLES === */
  .id-card-printable,
  .id-card-printable * {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .id-card-printable {
    position: relative !important;
    page-break-after: avoid;
    width: 100% !important;
    background: white !important;
  }
  
  .id-card-printable span,
  .id-card-printable strong,
  .id-card-printable em,
  .id-card-printable i {
    display: inline !important;
  }
  
  .id-card-header,
  .id-card-body,
  .id-card-footer,
  .id-card-info {
    display: flex !important;
  }
  
  .id-row-2col {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
  }
  
  .id-card-photo {
    display: block !important;
  }
  
  img {
    display: block !important;
    opacity: 1 !important;
  }
  
  .id-card-front,
  .id-card-back {
    width: 8.5cm !important;
    min-height: 5.4cm !important;
    background: white !important;
    border: 2px solid #2d4a22 !important;
    margin: 0.5cm auto !important;
    page-break-inside: avoid !important;
    page-break-after: always;
  }
  
  .id-card-back {
    page-break-after: avoid !important;
  }
  
  .id-card-header {
    background: linear-gradient(135deg, #2d4a22, #1a2d14) !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  
  .id-card-logo img {
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .id-card-org,
  .id-card-dept,
  .id-label,
  .id-value {
    color: black !important;
    print-color-adjust: exact !important;
  }
  
  .id-card-header .id-card-org,
  .id-card-header .id-card-dept {
    color: white !important;
  }
  
  .id-photo-img,
  .id-photo-placeholder {
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  /* === PAYSLIP PRINT STYLES === */
  .payslip,
  .payslip * {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .payslip {
    width: 21cm !important;
    min-height: 29.7cm !important;
    background: white !important;
    padding: 1cm !important;
    margin: 0 auto !important;
    page-break-after: avoid;
  }
  
  .payslip .payslip-row {
    display: flex !important;
    justify-content: space-between !important;
  }
  
  .payslip span,
  .payslip strong,
  .payslip i {
    display: inline !important;
  }
  
  .payslip .detail-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
  }
  
  .payslip img {
    display: block !important;
    opacity: 1 !important;
  }
  
  .payslip-header {
    background: linear-gradient(135deg, #2d4a22, #1a2d14) !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color: white !important;
    padding: 1.5rem !important;
    margin-bottom: 1rem !important;
  }
  
  .payslip-header h2 {
    color: white !important;
  }
  
  .payslip-logo img {
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  .payslip-section-title {
    background: #f0f0f0 !important;
    print-color-adjust: exact !important;
    color: black !important;
    font-weight: bold !important;
  }
  
  .payslip-row {
    border-bottom: 1px solid #ddd !important;
    padding: 0.5rem 1rem !important;
  }
  
  .payslip-total {
    background: #f9f9f9 !important;
    font-weight: bold !important;
    print-color-adjust: exact !important;
  }
  
  .text-success {
    color: #38a169 !important;
    print-color-adjust: exact !important;
  }
  
  .text-danger {
    color: #e53e3e !important;
    print-color-adjust: exact !important;
  }
  
  /* === REPORT PRINT STYLES === */
  .report-container {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    background: white !important;
    padding: 1cm !important;
  }
  
  .report-header {
    text-align: center !important;
    margin-bottom: 2rem !important;
    border-bottom: 2px solid #2d4a22 !important;
    padding-bottom: 1rem !important;
  }
  
  .report-header img {
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  /* Print tables properly */
  table {
    display: table !important;
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  tbody, thead, tfoot {
    display: table-row-group !important;
  }
  
  thead {
    display: table-header-group !important;
    background: #f0f0f0 !important;
    print-color-adjust: exact !important;
  }
  
  tr {
    display: table-row !important;
    page-break-inside: avoid !important;
    page-break-after: auto !important;
  }
  
  td, th {
    display: table-cell !important;
    border: 1px solid #ddd !important;
    padding: 0.5rem !important;
    text-align: left !important;
  }
  
  th {
    background: #2d4a22 !important;
    color: white !important;
    font-weight: bold !important;
    print-color-adjust: exact !important;
  }
  
  /* Charts and visualizations */
  canvas,
  svg {
    max-width: 100% !important;
    height: auto !important;
    print-color-adjust: exact !important;
  }
  
  /* Status badges */
  .badge,
  .status-badge {
    border: 1px solid currentColor !important;
    padding: 0.2rem 0.5rem !important;
    border-radius: 4px !important;
    print-color-adjust: exact !important;
  }
  
  .badge.success,
  .status-badge.status-active {
    background: #38a169 !important;
    color: white !important;
  }
  
  .badge.danger,
  .status-badge.status-rejected {
    background: #e53e3e !important;
    color: white !important;
  }
  
  .badge.warning,
  .status-badge.status-pending {
    background: #dd6b20 !important;
    color: white !important;
  }
  
  .badge.info {
    background: #3182ce !important;
    color: white !important;
  }
  
  /* Ensure colors print */
  .print-colors,
  .print-colors * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  
  /* Page headers and footers */
  @page {
    margin: 1cm;
    size: auto;
  }
  
  @page :first {
    margin-top: 1cm;
  }
  
  /* Prevent orphans and widows */
  p, h1, h2, h3, h4, h5, h6 {
    orphans: 3;
    widows: 3;
  }
  
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
  }
  
  /* Force visibility for specific print content */
  .print-only {
    display: block !important;
    visibility: visible !important;
  }
  
  /* Ensure all content inside modal body is visible */
  .modal-body > * {
    display: block !important;
    visibility: visible !important;
  }
  
  /* Common layout elements */
  div, section, article, main, aside {
    display: block !important;
  }
  
  span, strong, em, b, i {
    display: inline !important;
  }
  
  /* Flex and grid elements */
  .flex, .d-flex, .detail-grid {
    display: flex !important;
  }
  
  .grid {
    display: grid !important;
  }
  
  /* KPI Cards in reports */
  .kpi-card {
    border: 1px solid #ddd !important;
    padding: 1rem !important;
    margin: 0.5rem !important;
    page-break-inside: avoid !important;
  }
  
  /* Progress bars */
  .progress-bar {
    border: 1px solid #ddd !important;
    background: #f0f0f0 !important;
    height: 20px !important;
  }
  
  .progress-fill {
    background: #2d4a22 !important;
    print-color-adjust: exact !important;
  }
  
  /* Detail grids */
  .detail-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 1rem !important;
  }
  
  .detail-item {
    border: 1px solid #ddd !important;
    padding: 0.5rem !important;
  }
  
  /* Ensure images print */
  img {
    display: inline-block !important;
    max-width: 100% !important;
    height: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  /* BMB Logo */
  img[src*="bmb-logo"] {
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  
  /* FORCE DISPLAY - Last resort override for all modal content */
  #globalModal,
  #globalModal .modal-overlay,
  #globalModal .modal-box,
  #globalModal .modal-body,
  #globalModal .modal-body *,
  #globalModal .modal-body * * {
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  /* Ensure white background */
  body,
  html,
  #globalModal {
    background: white !important;
    background-color: white !important;
  }
}

/* Print button helper class */
.no-print {
  /* This class can be added to any element to hide it when printing */
}

/* Print-only content helper class */
.print-only {
  display: none;
}

@media print {
  .print-only {
    display: block !important;
  }
}
