/* JPI HTML Report Generation Service - Print Styles */
/* app/static/css/print.css */

/* ========================================
   Print Media Styles
   ======================================== */

@media print {
    /* Reset page margins */
    @page {
        size: A4;
        margin: 2cm;
    }
    
    @page :first {
        margin-top: 1cm;
    }
    
    /* Basic resets */
    * {
        background: transparent !important;
        color: black !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }
    
    /* Hide non-printable elements */
    .no-print,
    .main-header,
    .side-nav,
    .section-nav,
    .viewer-controls,
    .viewer-3d,
    button,
    .btn,
    video,
    audio,
    iframe,
    .header-info {
        display: none !important;
    }
    
    /* Layout adjustments */
    body {
        font-size: 12pt;
        line-height: 1.5;
        font-family: Georgia, serif;
    }
    
    .main-content {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }
    
    .container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }
    
    /* Section styling */
    .section-card {
        page-break-inside: avoid;
        margin-bottom: 20pt;
        border: 1pt solid #ddd;
        padding: 15pt;
    }
    
    .section-header {
        background: none !important;
        border-bottom: 2pt solid #333;
        padding-bottom: 10pt;
        margin-bottom: 15pt;
    }
    
    .section-title {
        font-size: 18pt;
        font-weight: bold;
        color: #000 !important;
    }
    
    /* Headings */
    h1 { font-size: 24pt; }
    h2 { font-size: 20pt; }
    h3 { font-size: 16pt; }
    h4 { font-size: 14pt; }
    h5 { font-size: 12pt; }
    
    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
        page-break-inside: avoid;
        margin-top: 15pt;
        margin-bottom: 10pt;
    }
    
    /* Tables */
    table {
        width: 100% !important;
        border-collapse: collapse !important;
    }
    
    table, th, td {
        border: 1pt solid #ddd !important;
    }
    
    th, td {
        padding: 8pt !important;
    }
    
    thead {
        display: table-header-group;
    }
    
    tfoot {
        display: table-footer-group;
    }
    
    tr {
        page-break-inside: avoid;
    }
    
    /* Data tables */
    .data-table {
        margin: 10pt 0;
    }
    
    .data-row {
        border-bottom: 1pt solid #ddd;
        padding: 5pt 0;
        display: flex;
    }
    
    .data-label {
        font-weight: bold;
        flex: 0 0 40%;
    }
    
    .data-value {
        flex: 1;
    }
    
    /* Images */
    img {
        max-width: 100% !important;
        page-break-inside: avoid;
    }
    
    .photo-grid {
        display: block !important;
    }
    
    .photo-item {
        display: inline-block;
        width: 45%;
        margin: 5pt;
        page-break-inside: avoid;
    }
    
    /* Status badges */
    .status-badge,
    .badge {
        border: 1pt solid #000 !important;
        padding: 2pt 5pt !important;
        border-radius: 0 !important;
        display: inline-block;
        font-weight: bold;
    }
    
    .status-completed::before {
        content: "✓ ";
    }
    
    .status-pending::before {
        content: "○ ";
    }
    
    .status-failed::before {
        content: "✗ ";
    }
    
    /* Links */
    a {
        text-decoration: underline !important;
        color: #000 !important;
    }
    
    a[href^="http"]:after {
        content: " (" attr(href) ")";
        font-size: 10pt;
    }
    
    /* Page breaks */
    .page-break {
        page-break-before: always;
    }
    
    .avoid-break {
        page-break-inside: avoid;
    }
    
    /* Summary section */
    #summary {
        page-break-before: always;
    }
    
    .overall-score-card {
        border: 2pt solid #000;
        padding: 20pt;
        text-align: center;
        margin: 20pt 0;
    }
    
    .score-value {
        font-size: 36pt !important;
        font-weight: bold;
    }
    
    /* Repair cost table */
    .repair-cost-table {
        width: 100%;
        margin-top: 20pt;
    }
    
    .repair-total-row {
        border-top: 2pt solid #000;
        font-weight: bold;
        font-size: 14pt;
    }
    
    /* Footer */
    footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        text-align: center;
        font-size: 10pt;
        border-top: 1pt solid #ddd;
        padding-top: 10pt;
    }
    
    /* Print header on each page */
    .print-header {
        display: block !important;
        position: running(header);
        font-size: 10pt;
        text-align: center;
    }
    
    @page {
        @top-center {
            content: element(header);
        }
        
        @bottom-center {
            content: "Page " counter(page) " of " counter(pages);
        }
    }
    
    /* Color adjustments for important elements */
    .text-danger,
    .severity-high {
        font-weight: bold !important;
        text-decoration: underline !important;
    }
    
    .text-warning,
    .severity-medium {
        font-style: italic !important;
    }
    
    /* Hide interactive elements */
    .carousel,
    .accordion,
    .tab-content,
    .nav-tabs,
    .pagination {
        display: none !important;
    }
    
    /* Show all content */
    .collapse {
        display: block !important;
        height: auto !important;
    }
    
    /* QR Code or Barcode if present */
    .qr-code,
    .barcode {
        width: 2in !important;
        height: 2in !important;
        margin: 10pt auto;
        display: block;
    }
}