@media print {

    @page {
        size: Letter portrait;
        margin: 10mm;
    }

    html,
    body {
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    /*
     * Hide the normal site while preserving the scanner report.
     */
    body * {
        visibility: hidden !important;
    }

    #wolfyx-tlsc-results,
    #wolfyx-tlsc-results * {
        visibility: visible !important;
    }

    /*
     * Reposition report as the printable document.
     */
    #wolfyx-tlsc-results {
        display: block !important;
        visibility: visible !important;

        position: absolute !important;
        top: 0 !important;
        left: 0 !important;

        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #fff !important;
    }

    /*
     * Prevent screen-only scanner controls from consuming space.
     */
    .wolfyx-tlsc-hero,
    .wolfyx-tlsc-panel {
        display: none !important;
    }

    /*
     * Report header
     */
    .wolfyx-tlsc-report-header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        margin: 0 0 5mm !important;
        padding: 0 0 4mm !important;

        border-bottom: 1px solid #dfe3e8 !important;

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

    .wolfyx-tlsc-report-brand {
        display: flex !important;
        align-items: center !important;
        gap: 5mm !important;
    }

    /*
     * Logo is hidden on screen but displayed in report.
     */
    .wolfyx-tlsc-report-logo {
        display: block !important;

        width: 42mm !important;
        height: auto !important;
    }

    .wolfyx-tlsc-report-header h2 {
        margin: 0 0 1mm !important;

        font-size: 17pt !important;
        line-height: 1.1 !important;
    }

    .wolfyx-tlsc-report-header p {
        margin: 0 !important;

        font-size: 8pt !important;
    }

    .wolfyx-tlsc-badge {
        min-height: 0 !important;

        padding: 1.5mm 3mm !important;

        font-size: 7pt !important;

        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }

    /*
     * Report metadata
     */
    .wolfyx-tlsc-report-meta {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 2.5mm !important;

        margin: 0 0 4mm !important;
    }

    .wolfyx-tlsc-report-meta > div {
        padding: 3mm !important;

        border: 1px solid #dfe3e8 !important;
        border-radius: 2mm !important;

        background: #fafafa !important;

        break-inside: avoid;
        page-break-inside: avoid;

        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }

    .wolfyx-tlsc-report-meta span {
        margin-bottom: 1mm !important;

        font-size: 6.5pt !important;
    }

    .wolfyx-tlsc-report-meta strong {
        font-size: 7.5pt !important;
    }

    /*
     * Preserve current card distribution:
     *
     * Overall | Protocols
     * TLS 1.2 | TLS 1.3
     * Full-width cipher/findings sections
     */
    .wolfyx-tlsc-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3mm !important;
    }

    .wolfyx-tlsc-card {
        padding: 4mm !important;

        border: 1px solid #dfe3e8 !important;
        border-radius: 3mm !important;

        box-shadow: none !important;

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

    .wolfyx-tlsc-card-full {
        grid-column: 1 / -1 !important;
    }

    .wolfyx-tlsc-card h3 {
        margin: 0 0 3mm !important;

        font-size: 10pt !important;
        line-height: 1.2 !important;
    }

    /*
     * Result rows
     */
    .wolfyx-tlsc-row {
        display: grid !important;
        grid-template-columns: .9fr 1.1fr !important;
        gap: 3mm !important;

        min-height: 0 !important;

        padding: 2mm 0 !important;
    }

    .wolfyx-tlsc-key,
    .wolfyx-tlsc-value {
        font-size: 7.5pt !important;
    }

    /*
     * Protocol support
     */
    .wolfyx-tlsc-protocols {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2mm !important;
    }

    .wolfyx-tlsc-protocol {
        min-height: 0 !important;

        padding: 2.5mm !important;

        border: 1px solid #dfe3e8 !important;
        border-radius: 2mm !important;

        background: #fafafa !important;

        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }

    .wolfyx-tlsc-protocol span {
        margin-bottom: 1.5mm !important;

        font-size: 7pt !important;
    }

    /*
     * Cipher tables
     */
    .wolfyx-tlsc-table-wrap {
        overflow: visible !important;

        border: 1px solid #e2e5e9 !important;
        border-radius: 2mm !important;
    }

    .wolfyx-tlsc-table {
        width: 100% !important;
        min-width: 0 !important;

        table-layout: auto !important;

        font-size: 6.5pt !important;
    }

    .wolfyx-tlsc-table th {
        padding: 2mm !important;

        font-size: 6pt !important;

        white-space: normal !important;

        background: #fafafa !important;

        print-color-adjust: exact !important;
        -webkit-print-color-adjust: exact !important;
    }

    .wolfyx-tlsc-table td {
        padding: 2mm !important;

        font-size: 6.5pt !important;

        overflow-wrap: anywhere !important;
    }

    .wolfyx-tlsc-table td:first-child {
        font-size: 6pt !important;
    }

    /*
     * Allow long cipher tables to continue naturally.
     */
    .wolfyx-tlsc-card-full:has(.wolfyx-tlsc-table) {
        break-inside: auto !important;
        page-break-inside: auto !important;
    }

    .wolfyx-tlsc-table thead {
        display: table-header-group !important;
    }

    .wolfyx-tlsc-table tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /*
     * Findings
     */
    .wolfyx-tlsc-finding {
        margin: 0 0 2mm !important;
        padding: 3mm !important;

        border: 1px solid #e2e5e9 !important;
        border-radius: 2mm !important;

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

    .wolfyx-tlsc-finding-title {
        margin-bottom: 1.5mm !important;

        font-size: 8pt !important;
    }

    .wolfyx-tlsc-finding p {
        margin: 1mm 0 0 !important;

        font-size: 7pt !important;
        line-height: 1.4 !important;
    }

    /*
     * Report note
     */
    .wolfyx-tlsc-footer-note {
        max-width: none !important;

        margin: 4mm 0 0 !important;

        font-size: 6.5pt !important;
        line-height: 1.4 !important;
    }
}
