@page {
    size: a4 portrait;
    margin: 10mm;
    background-color: white;
}

/* Targets all even-numbered pages */
@page:left {
    @bottom-left {
        content: "Page " counter(page) " of " counter(pages) !important;
    }
}

/* Targets all odd-numbered pages */
@page:right {
    @bottom-right {
        content: "Page " counter(page) " of " counter(pages) !important;
    }
}

@media print {
    /* Hide unnecessary elements */
    header, .betterheadercontainer, .hideInPrint, footer, .cv_pdf_button, .sidebar, aside, nav, .toc-container, #thesis-toc, .sidenav, .js-toc {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    html {
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
    }

    body {
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: 100%;
        font-family: 'Times New Roman', Times, serif;
        font-size: 12pt;
        line-height: 1.6;
        color: #000;
        background: white;
        text-align: left;
        word-spacing: normal;
        overflow: visible;
    }

    #contentcontainer {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        overflow: hidden;
    }

    .row {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden;
    }

    .col-xl-8, .col-lg-9, .col-md-12, [class*="col-"] {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        flex: none !important;
    }

    .content {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        color: #000;
        font-size: inherit;
        text-align: left;
        word-spacing: normal;
        letter-spacing: normal;
        overflow: hidden;
    }

    p {
        color: #000 !important;
        widows: 3;
        orphans: 3;
        text-align: left;
        word-spacing: normal;
        margin: 0.5em 0;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        word-break: break-word;
        hyphens: auto;
    }

    li {
        color: #000 !important;
        text-align: left;
        word-spacing: normal;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        word-break: break-word;
    }

    span, td, th, div, a, strong, em, b, i {
        color: #000 !important;
        text-align: left;
        word-spacing: normal;
    }

    h1, h2, h3, h4, h5, h6 {
        color: #000 !important;
        page-break-after: avoid;
        margin: 1em 0 0.5em 0;
        font-weight: bold;
        text-align: left;
        word-spacing: normal;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        word-break: break-word;
    }

    h1 {
        font-size: 28pt;
        text-align: center;
        page-break-before: always;
        page-break-after: 1em;
    }

    h2 {
        font-size: 18pt;
        page-break-after: 0.5em;
    }

    h3, h4 {
        font-size: 14pt;
    }

    img, svg {
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
        page-break-inside: avoid;
        display: block;
    }

    figure {
        page-break-inside: avoid;
        max-width: 100%;
        width: 100%;
        margin: 1em 0;
        overflow: hidden;
    }

    figcaption {
        font-size: 11pt;
        color: #000;
        margin-top: 0.5em;
        text-align: center;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        word-break: break-word;
    }

    table {
        page-break-inside: avoid;
        width: 100%;
        max-width: 100%;
        border-collapse: collapse;
        overflow: hidden;
    }

    td, th {
        border: 1px solid #000;
        padding: 0.5em;
        text-align: left;
        word-spacing: normal;
        word-break: break-word;
        max-width: 100%;
        overflow: hidden;
    }

    pre, code {
        background: #f5f5f5;
        padding: 1em;
        page-break-inside: avoid;
        white-space: pre-wrap;
        word-wrap: break-word;
        font-size: 10pt;
        font-family: 'Courier New', monospace;
        color: #000;
        word-spacing: normal;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    blockquote {
        margin: 1em 0;
        padding-left: 1em;
        border-left: 3px solid #000;
        color: #000;
        text-align: left;
        word-spacing: normal;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        word-break: break-word;
    }

    a {
        color: #000;
        text-decoration: underline;
        word-break: break-all;
        overflow: hidden;
    }

    .d-appendix {
        page-break-before: always;
    }

    /* Force display block on common elements */
    section, article {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden;
    }

    /* Constraint all elements */
    * {
        max-width: 100% !important;
    }
}

