@page {
    size: A4;
    margin: 2cm;
    margin-top: 0cm;
}

/* Strong print overrides */
@media print {
    /* Override Observable's built-in styles */
    body, main, article, div, svg, g {
        max-width: none !important;
        width: auto !important;
        margin: 0 !important;
        height: 100% !important;
    }

    /*more observable overrides */
    #observablehq-toc ~ #observablehq-main {
        padding-right: 0;
    }
    
    /* Force color rendering */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }
    
    #observablehq-center {
        padding-right: 30px !important;
    }

    /* Hide interface elements */
    aside#observablehq-toc,
    footer#observablehq-footer,
    .observablehq-interface,
    .bb-button,
    .bb-tooltip-container {
        display: none !important;
    }
    
    /* Ensure SVGs print properly but carve out for arrow SVGs*/
    svg {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
    }

    svg.definition {
        display: none !important;
    }

    svg.arrow {
        display: inline !important;
        width: auto !important;
        height: auto !important;
        overflow: visible !important;
    }
    
    /* START GRIDS */

    .header-container {
        display: grid;
        grid-template-columns: auto auto;
        gap: 10px;
        align-items: center;
    }

    .grid.top-grid {
        display: grid !important;
        grid-template-columns: 4.1in 4.1in !important;
        grid-template-rows: 5in !important;
        gap: 20px !important;
        /* padding: 20px !important; */
        padding-bottom: 0px !important;
        padding-top: 30px !important;
        margin-bottom: 30px !important;
    }

    #horizontal-bars-per-funnel-stage {
        width: 4.1in !important;
        height: 100%;
    }

    #funnel {
        max-width: 4.1in !important;
        height: 100%;
        min-height: 5in;
    }

    .channel-spend-grid {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 2fr;
        grid-template-rows: .5in 3.6in 3.6in !important;
        gap: 40px;
        column-gap: .2in !important;
        align-items: stretch;
        margin-top: .5in;
    }

    .spend-bar-graph {
        grid-column: 4 / 5;
        grid-row: 2 / 4;
    }

    #funnel-channel-reports {
        grid-column: 1 / 4;
        grid-row: 1;
        /* border-bottom: 2px solid black !important; */
        padding-bottom: 0px !important;
        display: inline-block !important;
    }

    .source-graph {
        height: 100%;
        margin-left: 2% !important;
        margin-right: 2% !important;
        max-width: 225px !important;
    }

    #marketing-spend-title {
        grid-column: 4 / 5;
        grid-row: 1;
        /* border-bottom: 2px solid black !important; */
        padding-bottom: 0px !important;
        display: inline-block !important;
    }

    .spend-bar-graph {
        grid-column: 4 / 5;
        grid-row: 2 / 4 !important;
        min-height: 100% !important;
    }

    .grid.app-pacing-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr .25fr 1fr !important;
        grid-template-rows: .5fr auto auto !important;
        gap: .5cm !important;
        width: 100% !important;
    }

    #pacing-report-title {
        grid-column: 1 / 5 !important;
        grid-row: 1 !important;
        display: block !important;
        width: 100% !important;
    }

    #pacing-explanation {
        grid-column: 1 / 5;
        width: 100% !important;
    }

    .admit-rate-box {
        grid-column: 1 / span 2;
        font-size: 1.3em !important;
        width: 45% !important;
        margin-left: 40% !important;
        text-align: center !important;
    }

    .yield-rate-box {
        grid-column: 3 / 5;
        width: 70% !important;
        font-size: 1.3em !important;
        margin-left: -10% !important;
        margin-right: 50% !important;
        text-align: center !important;
    }
    
    .pacing-line-graph {
        grid-column: 1 / 3;
    }

    .pacing-table {
        grid-column: 4 / 5;
    }

    .table-section-title {
        height: min-content !important;
    }
    
   .grid.student-makeup-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        grid-template-rows: 1fr !important;
        gap: .5cm !important;
        margin-top: .5in !important;
    }

    .student-makeup-bar-chart {
        height: 100% !important;
        max-width: 100px !important;
    }
    
    #international-student-funnel {
        grid-column: 1 !important;
        grid-row: 1 !important;
        max-width: 100px !important;
    }
    
    #transfer-student-funnel {
        grid-column: 2 !important;
        grid-row: 1 !important;
        max-width: 100px !important;
    }

    /* header formatting for print */
    #pacing-report-title>a, #funnel-channel-reports>a, #marketing-spend-title>a {
        text-decoration-line: none;
    }

    .source-graph-row {
        margin-bottom: 20px !important;
    }

    .pdf-button-container {
        display: none;
    }
    
    /* Debug outlines */
    
    /* svg {
        border: 2px solid blue !important;
    } */

    /* Tabulator print styles: make print match screen */
    .tabulator, .tabulator-print-table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-family: inherit !important;
        font-size: 12pt !important;
        background: white !important;
        color: black !important;
    }
    .tabulator-print-table {
        min-height: 1.5in;
    }
    .tabulator .tabulator-header, .tabulator-print-table thead {
        background: #e6e6e6 !important;
        color: #222 !important;
        border-bottom: 2px solid #aaa !important;
    }
    .tabulator .tabulator-row, .tabulator-print-table tbody tr {
        background: white !important;
        color: black !important;
        border-bottom: 1px solid #eee !important;
    }
    .tabulator .tabulator-row.tabulator-row-even, .tabulator-print-table tbody tr:nth-child(even) {
        background: #f5f5f5 !important;
    }
    .tabulator .tabulator-cell, .tabulator-print-table td {
        border: 1px solid #ddd !important;
        padding: 4px 8px !important;
        font-size: 12pt !important;
        vertical-align: middle !important;
        color: black !important;
        background: inherit !important;
    }
    .tabulator .tabulator-col, .tabulator-print-table th {
        border: 1px solid #aaa !important;
        padding: 4px 8px !important;
        font-weight: bold !important;
        background: #e6e6e6 !important;
        color: #222 !important;
    }
    /* Remove box shadows and extra effects */
    .tabulator, .tabulator * {
        box-shadow: none !important;
        text-shadow: none !important;
    }
    /* Hide Tabulator controls, pagination, and toolbars in print */
    .tabulator .tabulator-footer,
    .tabulator .tabulator-paginator,
    .tabulator .tabulator-header-filter-row,
    .tabulator .tabulator-col-resize-handle,
    .tabulator .tabulator-col-sorter {
        display: none !important;
    }
    /* Ensure print color accuracy */
    .tabulator, .tabulator * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }
}