@media print {
    @page {
        size: A4 landscape;
        margin: 7mm;
    }
    @page { size: landscape;}

    /* Default: hide everything */
    body * {
        visibility: hidden !important;
        font-size: 11px;
    }

    /* Only show the printing container */
    #printingContainer,
    #printingContainer * {
        visibility: visible !important;
    }

    #printingContainer {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
    }

    /* Make Bootstrap "container" not cap the width during print */
    #printingContainer,
    #printingContainer .container,
    #printingContainer .container-fluid {
        max-width: none !important;
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Reduce wasted space */
    #printingContainer .row {
        --bs-gutter-x: 6mm !important;
        --bs-gutter-y: 4mm !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .no-print {
        display: none !important;
    }

    /* Print-only elements */
    .print-only {
        display: block !important;
    }

    /* Header with logo (print only) */
    .print-header {
        margin-bottom: 3mm;
    }

    .print-header-inner {
        display: flex;
        align-items: center;
        justify-content: end;
        gap: 6mm;
        padding-bottom: 2mm;
    }

    .print-logo {
        height: 13mm;
        width: auto;
        object-fit: contain;
    }

    .print-title {
        font-size: 12pt;
        font-weight: 700;
    }

    /* 2 columns in print */
    .print-grid-item {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Keep Bootstrap col-6 as 50% in print (2 per row) */
    #printingContainer .col-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        width: 50% !important;
    }


    /* Tighten card spacing (print only) */
    #printingContainer .card-header {
        padding: 6px 10px !important;
    }

    /* Card header: remove extra height contributors */
    #printingContainer .card-header {
        padding: 4px 8px !important;
        min-height: 0 !important;
        height: auto !important;
        line-height: 1.1 !important;
    }

    /* Many themes give .card-header extra spacing via flex alignment */
    #printingContainer .card-header,
    #printingContainer .card-header * {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    /* Your title is an <h3 class="card-title">... */
    #printingContainer .card-header .card-title {
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1.1 !important;
        font-size: 11pt !important;
        font-weight: 700 !important;
    }

    /* Headings often have default margins that create the "big header" */
    #printingContainer .card-header h1,
    #printingContainer .card-header h2,
    #printingContainer .card-header h3,
    #printingContainer .card-header h4,
    #printingContainer .card-header h5,
    #printingContainer .card-header h6 {
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1.1 !important;
    }

    /* If icons increase header height, constrain them */
    #printingContainer .card-header i {
        line-height: 1 !important;
    }

    #printingContainer .card-body {
        padding: 8px 10px !important;
    }

    #printingContainer .card-title {
        margin-bottom: 0 !important;
        font-size: 10pt !important;
    }

    /* Tighten tables (print only) */
    #printingContainer table {
        font-size: 9pt;
        margin-bottom: 0 !important;
    }

    #printingContainer .table > :not(caption) > * > * {
        padding: 4px 6px !important; /* affects th + td */
    }

    #printingContainer .table th,
    #printingContainer .table td {
        line-height: 1.15 !important;
        vertical-align: middle !important;
    }

    /* Remove hover/extra visual noise that doesn't help on paper */
    #printingContainer .table-hover > tbody > tr:hover > * {
        background-color: transparent !important;
    }
    /* Make all input groups inside candidate card "small" (like .input-group-sm) */
    #printingContainer .candidate-info-card .input-group > .form-control,
    #printingContainer .candidate-info-card .input-group > .form-select,
    #printingContainer .candidate-info-card .input-group > .input-group-text,
    #printingContainer .candidate-info-card .input-group > .btn {
        padding: 0.25rem 0.5rem !important;
        font-size: 9pt !important;
        line-height: 1.2 !important;
    }

    #printingContainer .candidate-info-card .input-group > .input-group-text {
        padding-top: 0.25rem !important;
        padding-bottom: 0.25rem !important;
    }

}

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