@media print {
    /* Hide interface elements */
    #controls,
    #floating-index,
    #banner,
    [copyright] {
        display: none !important;
    }

    /* Reset body styles for printing */
    body {
        margin: 0 !important;
        padding: 0 !important;
        max-width: none !important;
        color: black !important;
        background-color: white !important;
        font-size: 11pt !important;
        line-height: 1.4 !important;
    }

    /* Page break controls */
    .page-break {
        break-before: page !important;
        page-break-before: always !important; /* For older browsers */
    }

    .avoid-break {
        break-inside: avoid !important;
        page-break-inside: avoid !important; /* For older browsers */
    }

    /* Additional break controls for headings */
    h1, h2, h3 {
        break-after: avoid-page !important;
        page-break-after: avoid !important; /* For older browsers */
    }

    /* Remove page URLs */
    @page {
        size: auto;
        margin: 2cm;
    }
    
    @page :first {
        margin: 2cm;
        margin-top: 2cm !important;
    }
    
    @page :left {
        margin: 2cm;
    }
    
    @page :right {
        margin: 2cm;
    }

    /* Target all possible wrapper elements */
    body > *:first-child,
    #cv-content,
    #cv-content > *:first-child {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    /* Basic content styling for print */
    h1 {
        font-size: 18pt !important;
        margin: 0 !important;
        padding: 0 !important;
        margin-bottom: 0.5em !important;
        color: black !important;
    }

    h2 {
        font-size: 14pt !important;
        margin-top: 1em !important;
        margin-bottom: 0.5em !important;
        color: black !important;
    }

    h3 {
        font-size: 12pt !important;
        margin-top: 1em !important;
        margin-bottom: 0.5em !important;
        color: black !important;
    }

    /* Style links for printing */
    a {
        text-decoration: none !important;
        border-bottom: none !important;
        color: black !important;
    }

    /* Add URL after links - but only for external links */
    a[href^="http"]:after,
    a[href^="mailto:"]:after {
        content: " (" attr(href) ")";
        font-size: 9pt;
        font-style: italic;
    }

    /* Basic spacing improvements */
    blockquote {
        margin: 1em 0 !important;
        font-size: 10pt !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    ul, ol {
        margin: 0.5em 0 !important;
        font-size: 11pt !important;
    }

    /* Keep list items together */
    li {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    /* Spacing for contact info */
    p {
        margin: 0.5em 0 !important;
    }

    /* Job experience sections */
    .job-title {
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    /* Keep date with job title */
    .date {
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    /* Dark mode overrides for printing */
    body.dark-mode {
        --text-color: black;
        --heading-color: black;
        --job-title-color: black;
        --date-color: #666;
        --link-color: black;
        background-color: white !important;
    }

    /* Ensure images don't break across pages */
    img {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    /* Table improvements for print */
    table {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    /* Remove any background colors or images */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
}