/* Print Styles
 * ============================================================
 * Optimizes output for paper: hides UI chrome, forces readable
 * colors, manages page breaks, and expands links.
 *
 * Critical for EHR context — clinicians print:
 *   - Patient summaries
 *   - Lab results
 *   - Medication lists
 *   - Discharge papers
 *   - Clinical notes
 *
 * Load via: <link rel="stylesheet" href="css/print.css" media="print">
 * Or include in main bundle — all rules are @media print scoped.
 * ============================================================ */

@media print {

    /* ── Reset for paper ────────────────────────────── */
    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    body {
        font-size: 12pt;
        line-height: 1.5;
        font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
    }

    /* ── Hide non-content UI ────────────────────────── */
    nav,
    .sidebar,
    .nav-sidebar,
    .theme-toggle,
    .skip-to-content,
    .code-panel,
    .code-panel-toggle,
    .toast,
    .tooltip,
    button:not(.print-visible),
    [role="navigation"],
    [role="banner"],
    [aria-hidden="true"] {
        display: none !important;
    }

    /* ── Content layout — full width ────────────────── */
    .main-content,
    .content-area,
    .container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* ── Typography adjustments ─────────────────────── */
    h1 { font-size: 18pt; }
    h2 { font-size: 15pt; }
    h3 { font-size: 13pt; }
    h4, h5, h6 { font-size: 12pt; }

    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
        break-after: avoid;
    }

    p, li {
        orphans: 3;
        widows: 3;
    }

    /* ── Links — show URL for external links ────────── */
    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 0.8em;
        font-weight: normal;
        color: #555 !important;
    }

    /* Don't expand internal/anchor/JS links */
    a[href^="#"]::after,
    a[href^="javascript:"]::after,
    a[href^="mailto:"]::after {
        content: "";
    }

    /* ── Tables — keep together, add borders ────────── */
    table {
        border-collapse: collapse;
        width: 100%;
    }

    th, td {
        border: 1px solid #ccc !important;
        padding: 6px 8px;
        text-align: left;
    }

    thead {
        display: table-header-group;
    }

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

    /* ── Images — prevent overflow, allow break ─────── */
    img {
        max-width: 100% !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* ── Page break utilities ───────────────────────── */
    .print-break-before {
        page-break-before: always;
        break-before: page;
    }

    .print-break-after {
        page-break-after: always;
        break-after: page;
    }

    .print-avoid-break {
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* ── Show/hide utilities for print ──────────────── */
    .print-hidden {
        display: none !important;
    }

    .print-only {
        display: block !important;
    }

    /* Site unification — never print the floating TOC rail */
    .toc-sidebar {
        display: none;
    }

    /* ── Page margins ───────────────────────────────── */
    @page {
        margin: 1.5cm 2cm;
    }

    @page :first {
        margin-top: 2.5cm;
    }
}

/* Screen-only: hide print-only elements */
.print-only {
    display: none;
}
