/**
 * Fælles designsystem for træningsprogram-sider (5k, 10k, halv, marathon).
 * Side-specifik accent via body.program-page--*
 */

:root {
    --primary-color: #2c3e50;
    --tempo-color: #e74c3c;
    --interval-color: #f39c12;
    --longrun-color: #27ae60;
    --rest-color: #3498db;
    --light-color: #ecf0f1;
    --border-radius: 8px;
    --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    --program-accent: #3498db;
    --program-accent-border: #2980b9;
    --program-header-end: var(--program-accent);
}

body.program-page--5k {
    --program-accent: #27ae60;
    --program-accent-border: #e67e22;
    --program-header-end: #27ae60;
    --5k-color: #27ae60;
    --secondary-color: #f39c12;
    --accent-color: #e67e22;
}

body.program-page--10k {
    --program-accent: #e74c3c;
    --program-accent-border: #c0392b;
    --program-header-end: #e74c3c;
    --10k-color: #e74c3c;
    --secondary-color: #e74c3c;
    --accent-color: #c0392b;
}

body.program-page--half {
    --program-accent: #e67e22;
    --program-accent-border: #f39c12;
    --program-header-end: #e67e22;
    --halv-color: #e67e22;
    --secondary-color: #e67e22;
    --accent-color: #f39c12;
}

body.program-page--marathon-skema,
body.program-page--marathon-sub4 {
    --program-accent: #9b59b6;
    --program-accent-border: #8e44ad;
    --program-header-end: #9b59b6;
    --mara-color: #9b59b6;
    --marathon-color: #9b59b6;
    --secondary-color: #9b59b6;
    --accent-color: #8e44ad;
}

body.program-page--marathon-sub4 {
    --secondary-color: #3498db;
}

body.program-page,
body.program-page * {
    box-sizing: border-box;
}

body.program-page {
    margin: 0;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f8f9fa;
    color: #333;
    line-height: 1.6;
    padding-bottom: 40px;
}

body.program-page header {
    background: linear-gradient(to right, var(--primary-color), var(--program-header-end));
    color: white;
    padding: 1.5rem 1rem;
    padding-top: max(1.5rem, calc(0.65rem + env(safe-area-inset-top)));
    padding-right: max(1rem, calc(0.65rem + env(safe-area-inset-right)));
    text-align: center;
    border-bottom: 5px solid var(--program-accent-border);
    margin-bottom: 1.5rem;
}

body.program-page header:has(.theme-toggle--header) .container {
    padding-right: 5.25rem;
}

body.program-page h1 {
    font-size: 1.8rem;
    margin-bottom: 0.5rem;
}

body.program-page h2 {
    font-size: 1.5rem;
    margin: 1.5rem 0 1rem;
    color: var(--primary-color);
    border-bottom: 2px solid var(--program-accent);
    padding-bottom: 0.5rem;
}

body.program-page h3 {
    font-size: 1.3rem;
    margin: 1rem 0;
    color: var(--primary-color);
}

body.program-page .subtitle {
    font-size: 1rem;
    opacity: 0.9;
    margin-bottom: 0.5rem;
}

body.program-page .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
    box-sizing: border-box;
    min-width: 0;
}

body.program-page .program-overview {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
}

body.program-page .program-overview > :is(h2, p, div) {
    max-width: 100%;
    min-width: 0;
}

body.program-page .program-overview .pace-overview-intro {
    overflow-wrap: anywhere;
}

body.program-page #paceOverview {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (min-width: 900px) {
    body.program-page .program-overview {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(220px, 260px);
        column-gap: 1.25rem;
        row-gap: 0.75rem;
        align-items: start;
    }

    body.program-page .program-overview > :is(h2, .pace-overview-intro, p, .legend) {
        grid-column: 1 / -1;
    }

    body.program-page .program-overview #paceOverview {
        grid-column: 1;
    }

    body.program-page .program-overview:has(#paceOverview) > .quick-nav {
        grid-column: 2;
        margin: 0;
        flex-direction: column;
        align-self: stretch;
        position: sticky;
        top: 0.75rem;
    }

    body.program-page .program-overview:has(#paceOverview) .phase-btn {
        flex: 1 1 auto;
        width: 100%;
        min-width: 0;
    }

    body.program-page .program-overview:not(:has(#paceOverview)) > .quick-nav {
        grid-column: 1 / -1;
        flex-direction: row;
    }

    body.program-page .program-overview:not(:has(#paceOverview)) .phase-btn {
        flex: 1 1 0;
        min-width: 0;
    }

    body.program-page .program-overview .legend {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.75rem;
    }

    body.program-page .program-overview .legend-item {
        flex: unset;
    }

    body.program-page .program-overview .pace-overview-table {
        max-width: none;
        width: 100%;
        margin: 0;
    }
}

body.program-page .legend {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 1.5rem 0;
    padding: 1rem;
    background-color: #f8f9fa;
    border-radius: var(--border-radius);
    max-width: 100%;
    box-sizing: border-box;
}

body.program-page .legend-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    flex: 1 1 12rem;
    min-width: 0;
    max-width: 100%;
}

body.program-page .legend-item span {
    min-width: 0;
    overflow-wrap: anywhere;
}

body.program-page .legend-color {
    width: 20px;
    height: 20px;
    border-radius: 4px;
}

body.program-page .week-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
}

@media (min-width: 768px) {
    body.program-page .week-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.program-page h1 {
        font-size: 2.5rem;
    }

    body.program-page h2 {
        font-size: 2rem;
    }

    body.program-page h3 {
        font-size: 1.5rem;
    }
}

@media (min-width: 992px) {
    body.program-page .week-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    /* Faser med præcis 5 uger (fx marathon fase 1) — alle på én række på bred skærm */
    body.program-page .week-grid:has(.week-card:nth-child(5):last-child) {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

body.program-page .week-card {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1.25rem;
    border-top: 4px solid var(--program-accent);
    transition: transform 0.3s ease;
}

body.program-page .week-card:hover {
    transform: translateY(-5px);
}

body.program-page .week-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #eee;
}

body.program-page .week-header h3 {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

body.program-page .week-number {
    background-color: var(--program-accent);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 0.9rem;
    flex-shrink: 0;
}

body.program-page .training-day {
    margin-bottom: 1.25rem;
    padding: 1rem;
    border-radius: var(--border-radius);
    background-color: #f8f9fa;
}

body.program-page .training-day.monday {
    border-left: 4px solid var(--tempo-color);
}

body.program-page .training-day.wednesday {
    border-left: 4px solid var(--interval-color);
}

body.program-page .training-day.friday {
    border-left: 4px solid var(--rest-color);
}

body.program-page .training-day.saturday {
    border-left: 4px solid var(--longrun-color);
}

body.program-page .training-day.race-day,
body.program-page .week-card.race-day .training-day.saturday {
    border-left: 4px solid var(--program-accent-border);
    background: #f3e8ff;
}

body.program-page .day-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

body.program-page .day-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 0.8rem;
    color: white;
    background-color: var(--secondary-color, var(--program-accent));
    flex-shrink: 0;
}

body.program-page .day-icon.mon {
    background-color: var(--tempo-color);
}

body.program-page .day-icon.wed {
    background-color: var(--interval-color);
}

body.program-page .day-icon.fri {
    background-color: var(--rest-color);
}

body.program-page .day-icon.sat {
    background-color: var(--longrun-color);
}

body.program-page .training-details {
    margin-top: 0.5rem;
}

body.program-page .training-type {
    font-weight: bold;
    color: var(--primary-color);
    margin-bottom: 0.25rem;
}

body.program-page .training-description {
    font-size: 0.9rem;
    color: #666;
}

body.program-page .intensity-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: bold;
    margin-right: 0.35rem;
    margin-bottom: 0.25rem;
}

body.program-page .badge-T {
    background-color: var(--tempo-color);
    color: white;
}

body.program-page .badge-I {
    background-color: var(--interval-color);
    color: white;
}

body.program-page .badge-5KP,
body.program-page .badge-10KP,
body.program-page .badge-HMP,
body.program-page .badge-MP {
    background-color: var(--program-accent);
    color: white;
}

body.program-page .badge-rest {
    background-color: var(--rest-color);
    color: white;
}

body.program-page .phase-section {
    margin-bottom: 2.5rem;
}

body.program-page .phase-header {
    background-color: var(--light-color);
    padding: 1rem;
    border-radius: var(--border-radius);
    margin-bottom: 1.5rem;
    border-left: 5px solid var(--program-accent);
}

body.program-page .quick-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin: 1.5rem 0;
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1rem;
    max-width: 100%;
    box-sizing: border-box;
}

body.program-page .program-overview .quick-nav {
    margin: 1rem 0 0;
    background-color: #f8f9fa;
    box-shadow: none;
    border: 1px solid #e9ecef;
    padding: 0.75rem;
}

body.program-page .phase-btn {
    padding: 8px 16px;
    background-color: var(--light-color);
    border: 2px solid #ddd;
    border-radius: var(--border-radius);
    cursor: pointer;
    font-weight: bold;
    font-size: 0.9rem;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    text-align: center;
    line-height: 1.3;
}

body.program-page .phase-btn:hover {
    background-color: var(--secondary-color, var(--program-accent));
    color: white;
    border-color: var(--secondary-color, var(--program-accent));
}

body.program-page .phase-btn.active {
    background-color: var(--program-accent);
    color: white;
    border-color: var(--program-accent);
}

body.program-page .goal-selector {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1.5rem;
    margin-bottom: 2rem;
    text-align: center;
}

body.program-page .program-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

@media (min-width: 900px) {
    body.program-page .program-toolbar {
        grid-template-columns: repeat(3, 1fr);
        align-items: start;
    }

    body.program-page .program-toolbar--no-goal {
        grid-template-columns: repeat(2, 1fr);
    }
}

body.program-page .program-toolbar-card {
    background: #fff;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1rem 1.1rem;
    border: 1px solid #e2e8f0;
    height: 100%;
}

body.program-page .program-toolbar-title {
    font-size: 1rem;
    margin: 0 0 0.85rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--program-accent);
    color: var(--primary-color);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

body.program-page .program-toolbar-body {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

body.program-page .program-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed #e2e8f0;
}

body.program-page .program-toolbar-card .goal-selector {
    background: none;
    box-shadow: none;
    padding: 0;
    margin: 0;
    text-align: left;
}

body.program-page .program-toolbar-card .goal-selector label {
    display: block;
    margin-bottom: 0.5rem;
}

body.program-page .program-toolbar-card .goal-selector select {
    margin-left: 0;
    width: 100%;
    max-width: 100%;
}

body.program-page .program-info-panel {
    margin-bottom: 1.5rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: var(--border-radius);
    padding: 0.25rem 1rem;
}

body.program-page .program-info-panel summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--primary-color);
    padding: 0.75rem 0;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

body.program-page .program-info-panel summary::-webkit-details-marker {
    display: none;
}

body.program-page .program-info-panel-body {
    padding-bottom: 0.5rem;
}

body.program-page .program-info-panel-body > .zone-guide-note {
    margin-top: 0;
}

body.program-page .program-plan-tools {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

body.program-page .program-plan-tools select,
body.program-page .program-plan-tools input[type='date'] {
    width: 100%;
    max-width: 100%;
}

body.program-page .program-tools-actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

body.program-page .program-tools-actions .program-print-hint {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.4;
}

body.program-page .program-toolbar .program-race-row {
    flex-direction: column;
    align-items: stretch;
}

body.program-page .program-toolbar .program-calendar-row {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

body.program-page .week-print-btn--icon {
    padding: 0.35rem 0.5rem;
    min-width: 36px;
    justify-content: center;
}

body.program-page .goal-selector select {
    padding: 10px 20px;
    font-size: 1.1rem;
    border: 2px solid var(--program-accent);
    border-radius: var(--border-radius);
    background-color: white;
    cursor: pointer;
    font-weight: bold;
    color: var(--primary-color);
    margin-left: 0.5rem;
    max-width: 100%;
}

body.program-page .distance-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
    background: white;
    border-radius: var(--border-radius);
    overflow: hidden;
    box-shadow: var(--box-shadow);
}

body.program-page .distance-table th {
    background-color: var(--program-accent);
    color: white;
    padding: 0.75rem;
    text-align: left;
}

body.program-page .distance-table td {
    padding: 0.75rem;
    border-bottom: 1px solid #eee;
}

body.program-page .tips {
    background-color: #fff9e6;
    border-left: 4px solid #f39c12;
    padding: 0.75rem 1rem;
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
    border-radius: 0 6px 6px 0;
}

body.program-page .footer {
    text-align: center;
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid #ddd;
    color: #777;
    font-size: 0.9rem;
}

/* Badges & feature-bokse */
body.program-page .k-badge,
body.program-page .halv-badge,
body.program-page .mara-badge,
body.program-page .marathon-badge {
    display: inline-block;
    background-color: var(--program-accent);
    color: white;
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: bold;
    margin-left: 0.35rem;
}

body.program-page .k-features,
body.program-page .halv-features,
body.program-page .mara-features {
    background-color: #f8f9fa;
    border-left: 4px solid var(--program-accent);
    padding: 1rem;
    margin: 1.5rem 0;
    border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

body.program-page--5k .k-features {
    background-color: #fff3e0;
}

body.program-page--10k .k-features {
    background-color: #ffe6e6;
}

body.program-page--half .halv-features {
    background-color: #fff1e6;
}

body.program-page--marathon-skema .mara-features {
    background-color: #f3e8ff;
}

body.program-page .alt-program {
    margin: 1.5rem 0;
    padding: 1rem;
    background: #fff;
    border-radius: var(--border-radius);
    border: 1px dashed #ccc;
    text-align: center;
}

body.program-page .alt-program a {
    color: var(--program-accent);
    font-weight: bold;
}

body.program-page .section-divider {
    height: 3px;
    background: linear-gradient(to right, var(--program-accent), var(--secondary-color, var(--program-accent)));
    margin: 2.5rem 0;
    border-radius: 3px;
}

body.program-page .intensity-guide {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1.5rem;
    margin-top: 2rem;
}

body.program-page .intensity-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eee;
}

body.program-page .intensity-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

body.program-page .intensity-color {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    flex-shrink: 0;
}

body.program-page .highlight {
    background-color: #e8f4fc;
    border-left: 4px solid var(--rest-color);
    padding: 1rem;
    margin: 1rem 0;
    border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

body.program-page .marathon-day {
    background-color: #f9f0ff;
    border-left: 4px solid var(--program-accent);
}

body.program-page .download-section {
    text-align: center;
    margin: 2rem 0;
    padding: 1.5rem;
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
}

body.program-page .download-btn {
    display: inline-block;
    background-color: var(--program-accent);
    color: white;
    padding: 12px 24px;
    border-radius: var(--border-radius);
    text-decoration: none;
    font-weight: bold;
    margin-top: 1rem;
    transition: background-color 0.2s ease;
}

body.program-page .download-btn:hover {
    background-color: var(--program-accent-border);
    color: white;
}

body.program-page .pace-table,
body.program-page .live-paces,
body.program-page .five-paces {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin: 1rem 0;
}

body.program-page .pace-item,
body.program-page .five-pace-card {
    text-align: center;
    padding: 0.5rem 1rem;
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    min-width: 120px;
}

body.program-page .pace-value,
body.program-page .five-pace-card .value {
    font-size: 1.2rem;
    color: var(--program-accent);
    font-weight: bold;
}

body.program-page .zone-guide {
    background-color: white;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    padding: 1.5rem;
    margin: 2rem 0;
}

body.program-page .zone-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 1rem;
}

@media (min-width: 768px) {
    body.program-page .zone-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

body.program-page .zone-card {
    background-color: #f8f9fa;
    border-radius: var(--border-radius);
    padding: 1rem;
    border-left: 4px solid;
    box-shadow: var(--box-shadow);
}

body.program-page .zone-card.zone-2 {
    border-left-color: var(--longrun-color);
}

body.program-page .zone-card.zone-3 {
    border-left-color: var(--interval-color);
}

body.program-page .zone-card.zone-4 {
    border-left-color: var(--tempo-color);
}

/* Udskriv / PDF */
body.program-page .program-print-hint {
    font-size: 0.85rem;
    color: #64748b;
}

body.program-page .week-print-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    flex-shrink: 0;
}

body.program-page .week-print-btn,
body.program-page .program-print-all-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #fff;
    color: var(--primary-color);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

body.program-page .week-print-btn:hover,
body.program-page .program-print-all-btn:hover {
    background: #f1f5f9;
    border-color: var(--program-accent);
}

body.program-page .program-print-all-btn {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    border-color: var(--program-accent);
    color: var(--program-accent);
}

.program-print-banner {
    display: none;
}

/* Husk mål / del link */
body.program-page .program-toolbar-actions .program-goal-hint {
    flex: 1 1 100%;
    margin: 0;
    text-align: left;
}

body.program-page .program-share-btn,
body.program-page .program-pace-band-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.85rem;
    min-height: 44px;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}

body.program-page .program-share-btn {
    border: 1px solid var(--program-accent);
    background: #fff;
    color: var(--program-accent);
}

body.program-page .program-share-btn:hover {
    background: #f0f7ff;
}

body.program-page .program-pace-band-btn {
    border: 1px solid #64748b;
    background: #f8fafc;
    color: var(--primary-color);
}

body.program-page .program-pace-band-btn:hover {
    background: #eef9f0;
    border-color: var(--program-accent);
}

body.program-page .program-goal-hint {
    flex: 1 1 100%;
    font-size: 0.8rem;
    color: #64748b;
    text-align: center;
}

body.program-page .program-calendar-tools {
    display: none;
}

body.program-page .program-plan-tools label,
body.program-page .program-calendar-tools label {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--primary-color);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

body.program-page .program-plan-tools select,
body.program-page .program-calendar-tools select {
    min-height: 44px;
    padding: 0.45rem 0.75rem;
    font-size: 16px;
    border: 2px solid var(--program-accent);
    border-radius: var(--border-radius);
    background: #fff;
    color: var(--primary-color);
    font-weight: 600;
    min-width: 140px;
}

body.program-page .program-race-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    width: 100%;
}

body.program-page .program-race-row input[type='date'] {
    min-height: 44px;
    padding: 0.45rem 0.65rem;
    font-size: 16px;
    border: 2px solid #cbd5e1;
    border-radius: var(--border-radius);
}

body.program-page .program-race-plan-result {
    width: 100%;
    margin-top: 0.25rem;
    padding: 0.75rem 0.9rem;
    background: #eef9f0;
    border-left: 4px solid var(--program-accent);
    border-radius: 0 var(--border-radius) var(--border-radius) 0;
    font-size: 0.9rem;
    line-height: 1.5;
    text-align: left;
}

body.program-page .program-race-plan-result p {
    margin: 0 0 0.35rem;
}

body.program-page .program-race-plan-result p:last-child {
    margin-bottom: 0;
}

body.program-page .program-go-to-week-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.85rem;
    min-height: 44px;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid var(--primary-color);
    background: #fff;
    color: var(--primary-color);
}

body.program-page .program-go-to-week-btn:hover {
    background: #f1f5f9;
}

body.program-page .week-card.program-current-week-highlight {
    box-shadow: 0 0 0 3px var(--program-accent), var(--box-shadow);
}

body.program-page .program-calendar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
    width: 100%;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed #e2e8f0;
}

body.program-page .program-calendar-row label {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--primary-color);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

body.program-page .program-calendar-row input[type='date'] {
    min-height: 44px;
    padding: 0.45rem 0.65rem;
    font-size: 16px;
    border: 2px solid #cbd5e1;
    border-radius: var(--border-radius);
}

body.program-page .program-calendar-btn,
body.program-page .program-race-checklist-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.85rem;
    min-height: 44px;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    border: 1px solid var(--program-accent);
    background: #eef9f0;
    color: var(--primary-color);
}

body.program-page .program-calendar-btn:hover,
body.program-page .program-race-checklist-btn:hover {
    background: #d4f5dc;
}

body.program-page .program-print-bar .program-race-checklist-btn {
    border-color: #64748b;
    background: #f8fafc;
}

/* —— Liste-udskrift (halvmarathon m.fl.) —— */
body.program-page .program-print-list {
    display: none;
}

body.program-page .program-print-list-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid #94a3b8;
    border-radius: var(--border-radius);
    background: #fff;
    color: var(--primary-color);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
}

body.program-page .program-print-list-btn:hover {
    background: #f1f5f9;
}

body.program-page .program-print-list-btn--primary {
    border-color: var(--program-accent);
    background: var(--program-accent);
    color: #fff;
}

body.program-page .program-print-list-btn--primary:hover {
    filter: brightness(1.05);
}

/* —— Onsdagsstruktur (klub) —— */
body.program-page .program-wednesday-guide {
    background-color: #f0f7ff;
    border-left: 4px solid var(--program-accent);
    padding: 1rem 1.1rem;
    margin: 1.25rem 0 1.5rem;
    border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

body.program-page .program-wednesday-guide h4 {
    margin: 0 0 0.5rem;
    color: var(--primary-color);
}

body.program-page .program-wednesday-guide h5 {
    margin: 0.75rem 0 0.4rem;
    font-size: 0.95rem;
}

body.program-page .program-wednesday-steps {
    margin: 0.5rem 0 0.75rem;
    padding-left: 1.25rem;
}

body.program-page .program-wednesday-steps li {
    margin-bottom: 0.35rem;
}

body.program-page .program-wednesday-table {
    margin: 0.35rem 0 0;
}

body.program-page .program-wednesday-taper {
    margin: 0.75rem 0 0;
    font-size: 0.9rem;
    color: #555;
}

body.program-page .program-wednesday-ref {
    margin: 0.5rem 0 0;
    padding: 0.4rem 0.55rem;
    font-size: 0.78rem;
    line-height: 1.4;
    background: rgba(255, 255, 255, 0.65);
    border-radius: 4px;
    color: #444;
}

body.program-page .program-wednesday-ref a {
    font-weight: 600;
}

/* —— Min uge på skærmen (listevisning) —— */
body.program-page .program-week-list {
    margin: 0 0 1.5rem;
    padding: 1rem 1.1rem;
    background: #fff;
    border: 1px solid #d8dee6;
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
}

body.program-page .program-week-list-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 0.85rem;
}

body.program-page .program-week-list-head h2 {
    margin: 0;
    font-size: 1.1rem;
    color: var(--primary-color);
}

body.program-page .program-week-list-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
}

body.program-page .program-week-list-controls label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #555;
}

body.program-page .program-week-list-controls select {
    padding: 0.4rem 0.55rem;
    border: 1px solid #cbd5e1;
    border-radius: var(--border-radius);
    background: #fff;
    font-size: 0.9rem;
}

body.program-page .program-week-list-meta {
    margin-bottom: 0.65rem;
}

body.program-page .program-week-list-meta p {
    margin: 0.15rem 0;
    font-size: 0.9rem;
    color: #444;
}

body.program-page .program-week-list-now {
    display: inline-block;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--program-accent);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    font-style: normal;
}

body.program-page .program-week-list-body {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.program-page .program-week-table {
    width: 100%;
    min-width: 520px;
    border-collapse: collapse;
    font-size: 0.88rem;
    line-height: 1.4;
}

body.program-page .program-week-table th,
body.program-page .program-week-table td {
    border: 1px solid #d0d7de;
    padding: 0.45rem 0.55rem;
    vertical-align: top;
    text-align: left;
}

body.program-page .program-week-table th {
    background: #eef2f6;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

body.program-page .program-week-table td:nth-child(1) {
    white-space: nowrap;
}

body.program-page .program-week-table td:nth-child(3) {
    text-align: center;
    white-space: nowrap;
    font-weight: 700;
    font-size: 0.82rem;
}

body.program-page .program-week-table td:nth-child(5) {
    white-space: nowrap;
    font-family: ui-monospace, 'Cascadia Code', Consolas, monospace;
    font-size: 0.84rem;
}

body.program-page .program-week-table .print-check {
    width: 2.25rem;
    text-align: center;
}

body.program-page .program-week-table .print-race-row td {
    background: #f3f4f6;
    font-weight: 700;
}

@media (max-width: 640px) {
    body.program-page .program-week-list-head {
        flex-direction: column;
        align-items: stretch;
    }

    body.program-page .program-week-list-controls {
        width: 100%;
    }

    body.program-page .program-week-list-controls select {
        flex: 1;
        min-width: 0;
    }
}

@page {
    margin: 10mm;
}

@media print {
    body.program-page .program-week-list {
        display: none !important;
    }

    body.program-page.is-printing-list {
        background: #fff !important;
        color: #000 !important;
    }

    body.program-page.is-printing-list > *:not(#program-print-list) {
        display: none !important;
    }

    body.program-page.is-printing-list #program-print-list {
        display: block !important;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        background: #fff;
        box-sizing: border-box;
    }

    body.program-page.is-printing-list .program-print-list-banner {
        margin-bottom: 0.75rem;
        padding-bottom: 0.5rem;
        border-bottom: 2px solid #333;
    }

    body.program-page.is-printing-list .program-print-list-banner h1 {
        font-size: 1.15rem;
        margin: 0 0 0.35rem;
    }

    body.program-page.is-printing-list .program-print-list-banner p {
        margin: 0.15rem 0;
        font-size: 0.85rem;
    }

    body.program-page.is-printing-list .program-print-list-meta {
        color: #555;
        font-size: 0.8rem !important;
    }

    body.program-page.is-printing-list .program-print-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 0.78rem;
        line-height: 1.35;
        table-layout: fixed;
    }

    body.program-page.is-printing-list .program-print-table th,
    body.program-page.is-printing-list .program-print-table td {
        border: 1px solid #bbb;
        padding: 0.35rem 0.45rem;
        vertical-align: top;
        text-align: left;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    body.program-page.is-printing-list .program-print-table th {
        background: #e8e8e8;
        font-weight: 700;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.program-page.is-printing-list .program-print-table td:nth-child(1) {
        white-space: nowrap;
        width: 11%;
    }

    body.program-page.is-printing-list .program-print-table td:nth-child(2) {
        width: 16%;
    }

    body.program-page.is-printing-list .program-print-table td:nth-child(3) {
        white-space: nowrap;
        width: 7%;
        text-align: center;
    }

    body.program-page.is-printing-list .program-print-table td:nth-child(4) {
        width: 44%;
    }

    body.program-page.is-printing-list .program-print-table td:nth-child(5) {
        white-space: nowrap;
        width: 14%;
        font-family: ui-monospace, 'Cascadia Code', Consolas, monospace;
    }

    body.program-page.is-printing-list .program-print-check {
        width: 5%;
        text-align: center;
    }

    body.program-page.is-printing-list .program-print-week-divider td {
        background: #d9d9d9;
        font-weight: 700;
        font-size: 0.82rem;
        padding: 0.3rem 0.45rem;
        border-color: #999;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.program-page.is-printing-list .program-print-race-row td {
        font-weight: 700;
        background: #f0f0f0;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

@media print and (orientation: landscape) {
    @page {
        size: A4 landscape;
        margin: 10mm;
    }
}

@media print and (orientation: portrait) {
    body.program-page.is-printing-list .program-print-table {
        font-size: 0.68rem;
    }

    body.program-page.is-printing-list .program-print-list-banner h1 {
        font-size: 1rem;
    }
}

/* —— Udskrift —— */
@media print {
    body.program-page .portal-nav,
    body.program-page .portal-related,
    body.program-page .quick-nav,
    body.program-page .phase-btn,
    body.program-page .goal-selector,
    body.program-page .program-goal-actions,
    body.program-page .program-toolbar,
    body.program-page .program-info-panel,
    body.program-page .program-calendar-tools,
    body.program-page .program-calendar-row,
    body.program-page .program-print-bar,
    body.program-page .week-print-actions,
    body.program-page .alt-program,
    body.program-page .zone-guide-note,
    body.program-page .download-section,
    body.program-page .theme-toggle,
    body.program-page script {
        display: none !important;
    }

    body.program-page:not(.is-printing-list) {
        background: #fff !important;
        color: #000 !important;
        padding: 0 !important;
    }

    body.program-page:not(.is-printing-list) header {
        background: none !important;
        color: #000 !important;
        border-bottom: 2px solid #333 !important;
        margin-bottom: 1rem !important;
        padding: 0 0 0.5rem !important;
    }

    body.program-page:not(.is-printing-list) header .subtitle,
    body.program-page:not(.is-printing-list) header p:not(:first-of-type) {
        color: #333 !important;
    }

    body.program-page:not(.is-printing-list) .program-print-banner {
        display: block !important;
        margin-bottom: 1rem;
        padding-bottom: 0.5rem;
        border-bottom: 1px solid #ccc;
    }

    body.program-page:not(.is-printing-list) .program-print-banner h1 {
        font-size: 1.25rem !important;
        border: none !important;
        margin: 0 0 0.25rem !important;
    }

    body.program-page:not(.is-printing-list) .program-print-banner p {
        margin: 0;
        font-size: 0.95rem;
    }

    body.program-page:not(.is-printing-list).is-printing-week .phase-section:not(.print-phase-active) {
        display: none !important;
    }

    body.program-page:not(.is-printing-list).is-printing-week .week-card:not(.print-target) {
        display: none !important;
    }

    body.program-page:not(.is-printing-list) .week-card {
        break-inside: avoid;
        box-shadow: none !important;
        border: 1px solid #ccc !important;
        transform: none !important;
        page-break-inside: avoid;
    }

    body.program-page:not(.is-printing-list) .week-grid {
        display: block !important;
    }

    body.program-page:not(.is-printing-list) .training-day {
        background: #f5f5f5 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.program-page:not(.is-printing-list) .intensity-badge,
    body.program-page:not(.is-printing-list) .week-number,
    body.program-page:not(.is-printing-list) .day-icon {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body.program-page a[href]::after {
        content: none !important;
    }
}
