/* Print Stylesheet for Warhammer 40K Datasheets */
/* Based on Blazor WebAssembly best practices for printing */

/* Hide print content by default */
.print-datasheet {
    display: none;
}

@media print {
    /* Page setup */
    @page {
        size: A4;
        margin: 15mm;
    }

    /* Reset body */
    body {
        background: white !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Hide all app content */
    #app > * {
        display: none !important;
    }

    /* Show only the print datasheet */
    .print-datasheet {
        display: block !important;
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        visibility: visible !important;
        width: 100% !important;
        background: white !important;
        color: black !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Ensure all children are visible */
    .print-datasheet,
    .print-datasheet * {
        visibility: visible !important;
        color: black !important;
    }

    /* Title */
    .print-title {
        font-size: 24pt;
        font-weight: bold;
        text-transform: uppercase;
        border-bottom: 3px solid #000;
        padding-bottom: 8pt;
        margin-bottom: 12pt;
        page-break-after: avoid;
    }

    /* Faction info */
    .print-faction-info {
        margin-bottom: 15pt;
        font-size: 11pt;
        page-break-after: avoid;
    }

    .print-badge {
        display: inline-block;
        padding: 4pt 10pt;
        margin-right: 8pt;
        border: 2px solid #000;
        font-weight: bold;
        background: #f0f0f0 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Section titles */
    .print-section-title {
        font-size: 14pt;
        font-weight: bold;
        text-transform: uppercase;
        border-left: 4pt solid #000;
        padding-left: 10pt;
        margin: 15pt 0 10pt 0;
        page-break-after: avoid;
    }

    /* Description box */
    .print-description {
        background: #f5f5f5 !important;
        border: 2px solid #000;
        padding: 10pt;
        margin-bottom: 15pt;
        font-size: 10pt;
        line-height: 1.4;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        page-break-inside: avoid;
    }

    .print-description strong {
        font-weight: bold;
    }

    /* Stats table */
    .print-stats-table {
        width: 100%;
        border-collapse: collapse;
        margin-bottom: 15pt;
        font-size: 10pt;
        page-break-inside: avoid;
    }

    .print-stats-table th {
        background: #000 !important;
        color: white !important;
        padding: 8pt;
        text-align: center;
        font-weight: bold;
        border: 1px solid #000;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .print-stats-table td {
        padding: 8pt;
        text-align: center;
        border: 1px solid #000;
    }

    .print-stats-table tr:nth-child(even) {
        background: #f0f0f0 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Weapons table */
    .print-weapons-table {
        width: 100%;
        border-collapse: collapse;
        margin-bottom: 15pt;
        font-size: 9pt;
        page-break-inside: avoid;
    }

    .print-weapons-table th {
        background: #000 !important;
        color: white !important;
        padding: 6pt;
        text-align: left;
        font-weight: bold;
        border: 1px solid #000;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .print-weapons-table td {
        padding: 6pt;
        border: 1px solid #000;
    }

    .print-weapons-table tr:nth-child(even) {
        background: #f0f0f0 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Ability boxes */
    .print-ability-box {
        background: #f5f5f5 !important;
        border: 2px solid #000;
        padding: 10pt;
        margin-bottom: 10pt;
        page-break-inside: avoid;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .print-ability-name {
        font-weight: bold;
        font-size: 11pt;
        margin-bottom: 5pt;
    }

    .print-ability-text {
        font-size: 10pt;
        line-height: 1.4;
    }

    /* Keywords */
    .print-keywords {
        margin-top: 15pt;
        page-break-inside: avoid;
    }

    .print-keyword-badge {
        display: inline-block;
        padding: 4pt 8pt;
        margin: 2pt;
        border: 1px solid #000;
        font-size: 9pt;
        background: #f0f0f0 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* Remove any effects that don't print well */
    * {
        box-shadow: none !important;
        text-shadow: none !important;
    }

    /* Prevent orphans and widows */
    p, h1, h2, h3, h4, h5, h6 {
        orphans: 3;
        widows: 3;
    }

    /* Keep related content together */
    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
    }

    table {
        page-break-inside: avoid;
    }
}
