/* Print styles */
@media print {
    /* Hide elements not needed in print */
    .no-print,
    .no-print * {
        display: none !important;
    }

    /* Control page breaks - allow breaks within cards but not after each ticket */
    .card {
        page-break-inside: auto;
        break-inside: auto;
        margin-bottom: 1rem;
    }
    
    /* Prevent page breaks inside ticket tables */
    table {
        page-break-inside: auto;
    }
    
    /* Only force page breaks between personnel groups */
    .personnel-group {
        page-break-after: always;
    }
    
    .personnel-group:last-child {
        page-break-after: auto;
    }

    /* Adjust spacing for print */
    body {
        padding: 0;
        margin: 0;
        font-size: 12pt;
        line-height: 1.3;
    }

    .container-xxl {
        max-width: 100%;
        padding: 0 10px;
    }

    /* Improve table layout */
    table {
        width: 100%;
        border-collapse: collapse;
        font-size: 10pt;
    }

    th, td {
        padding: 4px 8px;
        border: 1px solid #dee2e6;
    }

    th {
        background-color: #f8f9fa !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Card header styling */
    .card-header {
        background-color: #f8f9fa !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        border-bottom: 1px solid #dee2e6;
    }

    /* Hide badges in print */
    .badge {
        border: 1px solid #000;
        background-color: #fff !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Ensure proper page margins */
    @page {
        size: auto;
        margin: 1cm;
    }

    /* Print URL after links */
    a[href]:after {
        content: " (" attr(href) ")";
        font-size: 80%;
        color: #6c757d;
    }

    /* Don't break inside important elements */
    tr, td, th, .card-header, .card-body {
        page-break-inside: avoid;
    }

    /* Remove forced page breaks between cards */
    .card + .card {
        margin-top: 15px;
        page-break-before: auto;
    }

    /* Ensure tables don't break across pages */
    table {
        page-break-inside: auto;
    }
    
    tr {
        page-break-inside: avoid;
        page-break-after: auto;
    }
    
    thead {
        display: table-header-group;
    }
    
    tfoot {
        display: table-footer-group;
    }

    /* Remove background colors for better print contrast */
    .table-light,
    .table-light > th,
    .table-light > td {
        background-color: #f8f9fa !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Ensure text is black for better readability */
    body, h1, h2, h3, h4, h5, h6, p, td, th, div {
        color: #000 !important;
    }
}
