@media print {
    /* ── Page setup ─────────────────────────────────────────────────── */
    @page {
        margin: 1.5cm;
    }

    /* ── Reset dark theme ───────────────────────────────────────────── */
    *,
    *::before,
    *::after {
        background: white !important;
        color: black !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    body {
        font-family: Georgia, serif;
        font-size: 11pt;
        line-height: 1.5;
    }

    /* ── Hide chrome ────────────────────────────────────────────────── */
    #sidebar,
    .block-rules-tabs,
    .block-rules-heading,      /* orphaned h3 when no ASN ranges (no content below) */
    .rules-col,                /* download-only column: useless in print */
    #report-filter,            /* interactive filter UI: irrelevant in print */
    .report-email-notice,      /* save/sent email callout: not relevant in print */
    .community-intel-banner,   /* consent/opted-in/thank-you callouts: not relevant in print */
    .button,
    #share-link-btn,
    hr,                        /* footer separator: hides solo since following content is hidden */
    hr + p,                    /* share link paragraph */
    hr ~ p                     /* expiry + view-all paragraphs */
    {
        display: none !important;
    }

    /* ── Layout ─────────────────────────────────────────────────────── */
    #wrapper {
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    section#report,
    section#report .inner,
    .wrapper,
    .wrapper.style4 {
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* ── Typography ─────────────────────────────────────────────────── */
    h2 {
        font-size: 18pt;
        margin-bottom: 0.2em;
    }

    h3 {
        font-size: 13pt;
        margin-top: 1.4em;
        margin-bottom: 0.3em;
        page-break-after: avoid;
    }

    p {
        margin: 0.4em 0;
    }

    /* ── Verdict badge ──────────────────────────────────────────────── */
    .asn-verdict {
        display: inline-block !important;
        border: 2px solid black !important;
        padding: 3px 14px !important;
        font-weight: bold !important;
        font-size: 13pt !important;
        letter-spacing: 0.05em;
    }

    /* Category pills */
    .asn-category {
        background: transparent !important;
        border: 1px solid #888 !important;
        padding: 1px 6px;
        font-size: 9pt;
    }

    /* ── Table ──────────────────────────────────────────────────────── */
    .table-wrapper {
        overflow: visible !important;
    }

    .report-table {
        border-collapse: collapse !important;
        width: 100% !important;
        font-size: 9pt;
        page-break-inside: auto;
    }

    .report-table th,
    .report-table td {
        border: 1px solid #bbb !important;
        padding: 3px 7px !important;
        text-align: left;
    }

    .report-table thead {
        display: table-header-group; /* repeat header on page breaks */
    }

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

    /* ── Pre / CIDR blocks ──────────────────────────────────────────── */
    pre {
        background: #f4f4f4 !important;
        border: 1px solid #ccc !important;
        padding: 6px 10px !important;
        font-size: 8pt !important;
        white-space: pre-wrap !important;
        word-break: break-all;
        page-break-inside: avoid;
        line-height: 1.5 !important;
    }

    /* ASN range groups */
    div[style*="margin-bottom:1.2em"] {
        page-break-inside: avoid;
    }

    /* ── Links — print the URL for external links only ─────────────── */
    /* Relative paths (like "/") are useless in print — skip them */
    a[href^="http"]::after {
        content: " (" attr(href) ")";
        font-size: 8pt;
        opacity: 0.6;
    }

    /* Suppress URL printing for button-styled links */
    .button::after {
        content: none !important;
    }

    /* ── Ranges grid: full-width when rules col is hidden ───────────── */
    .ranges-rules-grid {
        display: block !important;
    }
    .ranges-col {
        width: 100% !important;
    }

    /* Report header rows — reset flex to block for clean print layout */
    .report-header-row {
        display: block !important;
        margin-bottom: 0.2em !important;
    }
    .report-header-stats {
        font-size: 10pt;
        opacity: 0.7;
    }
    .abuseipdb-callout {
        color: #444 !important;
        font-style: italic;
        font-size: 10pt;
    }
    .next-steps {
        background: #f6f6f6 !important;
        border: 1px solid #ddd !important;
        border-radius: 4px !important;
        padding: 6px 10px !important;
        margin: 0.8em 0 !important;
    }

    /* Demo banner */
    div[style*="border-left:3px solid #e0a85a"] {
        border-left: 3px solid #888 !important;
        background: #f9f6ee !important;
        padding: 6px 10px !important;
        font-size: 9pt;
    }
}
