/* ======================
   Print Styles
   ====================== */

@page {
    size: a3;
    margin: 2cm;
}

/* Base print styles */
@media print {
    *,
    *::before,
    *::after {
        text-shadow: none !important;
        box-shadow: none !important;
    }
    
    /* Typography */
    body {
        min-width: 992px !important;
        font-size: 12pt;
        line-height: 1.5;
        color: #000;
        background: #fff;
    }
    
    /* Links */
    a:not(.btn) {
        text-decoration: underline;
        color: var(--color-primary);
    }
    
    /* Page breaks */
    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
    }
    
    /* Images */
    img {
        max-width: 100% !important;
        page-break-inside: avoid;
    }
    
    /* Tables */
    table {
        page-break-inside: auto;
    }
    
    tr {
        page-break-inside: avoid;
        page-break-after: auto;
    }
    
    /* Code blocks */
    pre,
    code,
    pre code {
        white-space: pre-wrap !important;
        word-wrap: break-word;
        page-break-inside: avoid;
    }
    
    /* Avoid breaking inside these elements */
    p, h2, h3, blockquote, ul, ol, dl, figure, pre, table, fieldset, .no-break {
        page-break-inside: avoid;
    }
    
    /* Page margins */
    @page :first {
        margin-top: 2cm;
    }
    
    @page :left {
        margin: 2cm 1.5cm 2cm 2cm;
    }
    
    @page :right {
        margin: 2cm 2cm 2cm 1.5cm;
    }
    
    /* Print utilities */
    .print-only {
        display: block !important;
    }
    
    .no-print {
        display: none !important;
    }
    
    .page-break-before {
        page-break-before: always;
    }
    
    .page-break-after {
        page-break-after: always;
    }
    
    .keep-together {
        page-break-inside: avoid;
    }
    
    .break-before {
        page-break-before: always;
    }
    
    .break-after {
        page-break-after: always;
    }
}
