/* ==========================================================================
   Print Stylesheet
   Provides clean, black/white-friendly print output with header/footer support.
   ========================================================================== */

/* CSS variables that can be overridden by PrintSettings via inline style */
:root {
    --sa-print-primary: #0d6efd;
    --sa-print-font-size: 12pt;
    --sa-print-font-family: "Segoe UI", Tahoma, Arial, sans-serif;
}

/* --------------------------------------------------------------------------
   Screen rules: hide print-only elements on screen
   -------------------------------------------------------------------------- */
@media screen {
    .print-only,
    .print-header,
    .print-footer,
    .print-watermark {
        display: none !important;
    }
}

/* --------------------------------------------------------------------------
   Print rules
   -------------------------------------------------------------------------- */
@media print {
    /* Page setup */
    @page {
        margin: 2cm;
    }

    /* Use the print font settings */
    html, body {
        font-family: var(--sa-print-font-family) !important;
        font-size: var(--sa-print-font-size) !important;
        color: #000 !important;
        background: #fff !important;
        margin: 0 !important;
        padding: 0 !important;
        height: auto !important;
        overflow: visible !important;
    }

    /* Hide everything that should not be printed */
    .no-print,
    .sa-sidebar,
    .sa-sidebar-backdrop,
    .sa-topbar,
    .sa-footer,
    .sa-header,
    .navbar,
    .breadcrumb,
    .btn,
    button,
    .modal,
    .modal-backdrop,
    .alert,
    .dropdown-menu,
    .card-header,
    .sa-topbar-actions,
    .sa-topbar-menu,
    .sa-topbar-title,
    nav[aria-label] {
        display: none !important;
    }

    /* Show only the main content area */
    .sa-app-shell {
        display: block !important;
    }

    .sa-main {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    .sa-content {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    /* Remove card styling for print */
    .card {
        border: none !important;
        box-shadow: none !important;
        margin: 0 !important;
    }

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

    /* Print-only elements become visible */
    .print-only {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .print-header {
        display: block !important;
        margin-bottom: 0.5rem;
    }

    .print-footer {
        display: block !important;
        margin-top: 0.5rem;
        border-top: 1px solid #ccc;
        padding-top: 4px;
    }

    /* Empty print-only wrapper must not create extra blank space/pages */
    .print-only:empty,
    .print-footer:empty,
    .print-header:empty {
        display: none !important;
        margin: 0 !important;
        height: 0 !important;
    }

    /* Print logo */
    .print-logo {
        max-height: 80px;
        max-width: 200px;
        margin-bottom: 0.5rem;
    }

    /* Print header/footer tables */
    .print-header-table,
    .print-footer-table {
        width: 100%;
        border-collapse: collapse;
        border: none;
    }

    .print-header-table td,
    .print-footer-table td {
        border: none;
        padding: 2px 4px;
        font-size: var(--sa-print-font-size);
        color: #000 !important;
    }

    /* Table styling: borders, proper spacing, no hover effects */
    table {
        width: 100% !important;
        border-collapse: collapse !important;
        page-break-inside: auto;
        font-size: var(--sa-print-font-size) !important;
    }

    thead {
        display: table-header-group;
    }

    tr {
        page-break-inside: avoid;
        page-break-after: auto;
    }

    th, td {
        border: 1px solid #000 !important;
        padding: 4px 6px !important;
        color: #000 !important;
        background: transparent !important;
    }

    /* Table header row: keep a light background for readability */
    thead th {
        background: #e9ecef !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        font-weight: bold !important;
    }

    /* Striped rows for readability (kept via print-color-adjust) */
    .table-striped > tbody > tr:nth-of-type(odd) > * {
        background: #f8f9fa !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Remove hover effects */
    .table-hover > tbody > tr:hover > * {
        background: transparent !important;
    }

    /* Keep badges colored (print-color-adjust ensures they render) */
    .badge {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        color: #fff !important;
        padding: 2px 6px !important;
        border-radius: 4px !important;
        font-size: 0.85em !important;
    }

    .badge.bg-success { background-color: #198754 !important; }
    .badge.bg-danger { background-color: #dc3545 !important; }
    .badge.bg-warning { background-color: #ffc107 !important; color: #000 !important; }
    .badge.bg-info { background-color: #0dcaf0 !important; color: #000 !important; }
    .badge.bg-primary { background-color: var(--sa-print-primary) !important; }
    .badge.bg-secondary { background-color: #6c757d !important; }
    .badge.bg-light { background-color: #f8f9fa !important; color: #000 !important; }

    /* Links: remove color and underline for print */
    a {
        color: #000 !important;
        text-decoration: none !important;
    }

    /* Headings */
    h1, h2, h3, h4, h5, h6 {
        color: #000 !important;
        page-break-after: avoid;
    }

    /* Watermark: absolute positioned, rotated, semi-transparent */
    .print-watermark {
        display: block !important;
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
        font-size: 72pt;
        font-weight: bold;
        color: rgba(0, 0, 0, 0.08) !important;
        z-index: 0;
        pointer-events: none;
        white-space: nowrap;
        text-align: center;
    }

    /* Ensure content sits above watermark */
    .sa-content, .card, table {
        position: relative;
        z-index: 1;
    }

    /* Hide the action column (identified by .no-print on th/td) */
    th.no-print, td.no-print {
        display: none !important;
    }

    /* Avoid breaking inside images */
    img {
        page-break-inside: avoid;
    }
}
