/**
 * Alex's Running App - Print Stylesheet (print.css)
 * Professional print formatting for Ultra Race Fueling & Splits Planner and 7-Day Training Calendar
 */
@media print {
    /* 1. Page Geometry & Base Colors */
    @page {
        margin: 0.6cm 0.6cm;
        size: auto;
    }

    *,
    *::before,
    *::after {
        box-shadow: none !important;
        text-shadow: none !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    html, body {
        background: #ffffff !important;
        color: #111111 !important;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
        font-size: 9pt !important;
        line-height: 1.35 !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    /* 2. Hide Non-Print Elements */
    header,
    footer,
    nav,
    .navbar,
    #sub-nav,
    #main-nav,
    .running-sub-nav,
    .sub-nav,
    .btn,
    button,
    .d-print-none,
    .admin-only-section,
    .admin-only,
    .skip-link,
    .alert-dismissible .btn-close,
    input[type="submit"],
    input[type="button"],
    select {
        display: none !important;
    }

    /* 3. Container & Main Reset */
    .container,
    .container-fluid,
    .running-app-container,
    main,
    #main-content {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        display: block !important;
    }

    /* 4. Headings & Typography */
    h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
        break-after: avoid;
        color: #000000 !important;
        font-weight: 700 !important;
    }

    h1 {
        font-size: 15pt !important;
        margin-bottom: 5pt !important;
        border-bottom: 1.5pt solid #000000 !important;
        padding-bottom: 3pt !important;
    }

    h2 {
        font-size: 12pt !important;
        margin-top: 8pt !important;
        margin-bottom: 4pt !important;
        border-bottom: 1pt solid #444444 !important;
        padding-bottom: 2pt !important;
    }

    h3 { font-size: 11pt !important; margin-bottom: 3pt !important; }
    h4, h5, h6 { font-size: 9.5pt !important; }

    /* 5. High-Specificity Text & Contrast Overrides (Prevents White-on-White text) */
    .text-white,
    .text-white-50,
    .text-light,
    .text-light-50,
    .text-white.text-opacity-75,
    .text-white.text-opacity-50,
    [class*="text-white"],
    [class*="text-light"] {
        color: #111111 !important;
        --bs-text-opacity: 1 !important;
    }

    /* Status colors tuned for high contrast on white paper */
    .text-primary, a.text-primary { color: #1e40af !important; }
    .text-success, a.text-success { color: #166534 !important; }
    .text-danger, a.text-danger { color: #991b1b !important; }
    .text-warning, a.text-warning { color: #854d0e !important; }
    .text-info, a.text-info { color: #075985 !important; }
    .text-muted { color: #475569 !important; }
    .text-dark { color: #0f172a !important; }

    /* 6. Neutralize Dark Container Backgrounds in Print */
    .bg-dark,
    .bg-secondary,
    .target-race-banner,
    .card[style*="linear-gradient"] {
        background: #f8f9fa !important;
        background-color: #f8f9fa !important;
        border: 1pt solid #444444 !important;
        color: #111111 !important;
    }

    .bg-dark *,
    .bg-secondary *,
    .target-race-banner *,
    .card[style*="linear-gradient"] * {
        color: #111111 !important;
        --bs-text-opacity: 1 !important;
    }

    /* 7. Cards & Containers */
    .card {
        border: 0.75pt solid #94a3b8 !important;
        border-radius: 3pt !important;
        margin-bottom: 8pt !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        background: #ffffff !important;
        color: #111111 !important;
    }

    .card-header {
        background-color: #f1f5f9 !important;
        border-bottom: 0.75pt solid #cbd5e1 !important;
        padding: 4pt 6pt !important;
        font-weight: 700 !important;
        color: #0f172a !important;
    }

    .card-body {
        padding: 6pt 6pt !important;
    }

    /* 8. Badges & Tags */
    .badge,
    span.badge,
    .badge.text-white,
    .badge[class*="bg-"] {
        background-color: #f1f5f9 !important;
        color: #0f172a !important;
        border: 0.75pt solid #64748b !important;
        font-size: 7pt !important;
        font-weight: 600 !important;
        padding: 1pt 3pt !important;
        border-radius: 2pt !important;
        display: inline-block !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .badge.bg-success,
    .badge.bg-success-subtle {
        background-color: #f0fdf4 !important;
        color: #166534 !important;
        border-color: #16a34a !important;
    }

    .badge.bg-danger,
    .badge.bg-danger-subtle {
        background-color: #fef2f2 !important;
        color: #991b1b !important;
        border-color: #dc2626 !important;
    }

    .badge.bg-warning,
    .badge.bg-warning-subtle {
        background-color: #fefce8 !important;
        color: #854d0e !important;
        border-color: #ca8a04 !important;
    }

    .badge.bg-primary,
    .badge.bg-primary-subtle {
        background-color: #eff6ff !important;
        color: #1e40af !important;
        border-color: #2563eb !important;
    }

    .badge.bg-secondary,
    .badge.bg-secondary-subtle {
        background-color: #f8fafc !important;
        color: #334155 !important;
        border-color: #94a3b8 !important;
    }

    /* 9. Checkpoint Tables & Data Grids */
    .table-responsive {
        overflow: visible !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    table,
    .table {
        border-collapse: collapse !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 8pt !important;
        font-size: 7.5pt !important;
    }

    th, td {
        border: 0.5pt solid #94a3b8 !important;
        padding: 2.5pt 3pt !important;
        text-align: left !important;
        min-width: 0 !important;
        max-width: none !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        white-space: normal !important;
        vertical-align: middle !important;
    }

    thead th {
        background-color: #f1f5f9 !important;
        color: #0f172a !important;
        font-weight: 700 !important;
        border-bottom: 1.25pt solid #334155 !important;
        font-size: 7pt !important;
    }

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

    /* 10. Ultra Race Planner Checkpoint Split Table Specifics */
    .ultra-race-planner-page table,
    .ultra-race-planner-page .table {
        table-layout: fixed !important;
        width: 100% !important;
        max-width: 100% !important;
        font-size: 7pt !important;
    }

    /* 10-column distribution totaling 100% */
    .ultra-race-planner-page th:nth-child(1),
    .ultra-race-planner-page td:nth-child(1) { width: 17% !important; } /* Checkpoint */

    .ultra-race-planner-page th:nth-child(2),
    .ultra-race-planner-page td:nth-child(2) { width: 5.5% !important; } /* Mile */

    .ultra-race-planner-page th:nth-child(3),
    .ultra-race-planner-page td:nth-child(3) { width: 5.5% !important; } /* Leg Dist */

    .ultra-race-planner-page th:nth-child(4),
    .ultra-race-planner-page td:nth-child(4) { width: 7.5% !important; } /* Pace */

    .ultra-race-planner-page th:nth-child(5),
    .ultra-race-planner-page td:nth-child(5) { width: 7% !important; } /* Leg Time */

    .ultra-race-planner-page th:nth-child(6),
    .ultra-race-planner-page td:nth-child(6) { width: 7.5% !important; } /* Elapsed */

    .ultra-race-planner-page th:nth-child(7),
    .ultra-race-planner-page td:nth-child(7) { width: 8.5% !important; } /* Arrival */

    .ultra-race-planner-page th:nth-child(8),
    .ultra-race-planner-page td:nth-child(8) { width: 7.5% !important; } /* Cutoff */

    .ultra-race-planner-page th:nth-child(9),
    .ultra-race-planner-page td:nth-child(9) { width: 8% !important; } /* Buffer */

    .ultra-race-planner-page th:nth-child(10),
    .ultra-race-planner-page td:nth-child(10) { width: 26% !important; } /* Strategy & Fuel Notes */

    .ultra-race-planner-page td strong {
        font-size: 7.5pt !important;
        color: #0f172a !important;
    }

    .ultra-race-planner-page td .badge {
        font-size: 6pt !important;
        padding: 0.5pt 2pt !important;
        margin: 0 0.5pt !important;
    }

    /* 11. Ultra Race Planner Layout Grids */
    .ultra-race-planner-page {
        padding-bottom: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .ultra-race-planner-page .target-race-banner .col-lg-7,
    .ultra-race-planner-page .card[style*="linear-gradient"] .col-lg-7 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .ultra-race-planner-page .fitness-benchmarks-row,
    .ultra-race-planner-page .row-cols-xl-5 {
        display: flex !important;
        flex-wrap: nowrap !important;
    }

    .ultra-race-planner-page .fitness-benchmarks-row > .col,
    .ultra-race-planner-page .row-cols-xl-5 > .col {
        flex: 0 0 20% !important;
        width: 20% !important;
        max-width: 20% !important;
        padding: 2pt !important;
    }

    .ultra-race-planner-page .fitness-benchmarks-row .p-3,
    .ultra-race-planner-page .row-cols-xl-5 .p-3 {
        padding: 4pt 3pt !important;
    }

    .ultra-race-planner-page .fitness-benchmarks-row .fs-4,
    .ultra-race-planner-page .row-cols-xl-5 .fs-4 {
        font-size: 11pt !important;
    }

    .ultra-race-planner-page .pacing-goals-row > .col-md-4,
    .ultra-race-planner-page .col-md-4 {
        flex: 0 0 33.333% !important;
        width: 33.333% !important;
        max-width: 33.333% !important;
        padding: 2pt !important;
    }

    .ultra-race-planner-page .pacing-goals-row .card {
        padding: 4pt 6pt !important;
    }

    .ultra-race-planner-page .drop-bag-grid {
        display: flex !important;
        flex-wrap: wrap !important;
    }

    .ultra-race-planner-page .drop-bag-grid > .col {
        flex: 0 0 25% !important;
        width: 25% !important;
        max-width: 25% !important;
        padding: 2.5pt !important;
    }

    .ultra-race-planner-page .drop-bag-grid.drop-bags-3 > .col {
        flex: 0 0 33.333% !important;
        width: 33.333% !important;
        max-width: 33.333% !important;
    }

    .ultra-race-planner-page .drop-bag-grid.drop-bags-2 > .col {
        flex: 0 0 50% !important;
        width: 50% !important;
        max-width: 50% !important;
    }

    .ultra-race-planner-page .drop-bag-card {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        border: 0.75pt solid #64748b !important;
        padding: 4pt 5pt !important;
    }

    .ultra-race-planner-page .nutrition-section .col-lg-5,
    .ultra-race-planner-page .pacer-guide-section .col-lg-5 {
        width: 40% !important;
        flex: 0 0 40% !important;
        max-width: 40% !important;
    }

    .ultra-race-planner-page .nutrition-section .col-lg-7,
    .ultra-race-planner-page .pacer-guide-section .col-lg-7 {
        width: 60% !important;
        flex: 0 0 60% !important;
        max-width: 60% !important;
    }

    /* 12. 7-Day Training Plan Print Formatting */
    .training-day-card {
        border: 1pt solid #94a3b8 !important;
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        margin-bottom: 6pt !important;
        background: #ffffff !important;
        padding: 5pt 7pt !important;
    }

    .training-specs-ribbon {
        border-bottom: 0.75pt dashed #cbd5e1 !important;
        padding-bottom: 2pt !important;
        margin-bottom: 3pt !important;
        font-size: 7.5pt !important;
    }

    .print-completion-box {
        display: inline-block !important;
        width: 10pt !important;
        height: 10pt !important;
        border: 1.25pt solid #000000 !important;
        margin-right: 3pt !important;
        vertical-align: middle !important;
    }

    .training-suggestions-page .col-lg-7 {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    /* 13. General Flex Rows */
    .row {
        display: flex !important;
        flex-wrap: wrap !important;
    }

    .col-md-6,
    .col-xl-6 {
        width: 50% !important;
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }

    /* 14. Links & Clean Headers */
    a[href]::after {
        content: none !important;
    }

    .print-header {
        display: block !important;
        margin-bottom: 6pt !important;
        border-bottom: 1.5pt solid #000000 !important;
        padding-bottom: 3pt !important;
    }
}
