@page { size: A4 landscape; margin: 6mm; }
@media print {
    html, body { height: auto !important; overflow: visible !important; background: white !important; color: #111 !important; }
    body { font-size: 10pt; }
    [data-app-nav], dialog, button, [data-no-print] { display: none !important; }
    dialog::backdrop { display: none !important; }
    main { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
    main > section { margin-top: 5mm !important; }
    .overflow-x-auto, .overflow-hidden, .overflow-auto { overflow: visible !important; }
    .shadow-sm, .shadow, .shadow-2xl { box-shadow: none !important; }
    article { break-inside: avoid; }
    table { width: 100% !important; min-width: 0 !important; border-collapse: collapse; font-size: 9pt; }
    thead { display: table-header-group; }
    tr, li { break-inside: avoid; }
    th, td { padding: 2mm !important; overflow-wrap: anywhere; }
    h1, h2, h3 { break-after: avoid; }
    p { orphans: 3; widows: 3; }
    a { color: inherit !important; text-decoration: none !important; }
    #vat-adjustment { font-size: 12pt !important; }
    * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* Overview: keep the five totals, two detail panels and notes on one sheet. */
@media print {
    body[data-report="overview"] { font-size: 9pt; line-height: 1.3; }
    body[data-report="overview"] [data-page-heading] { margin-bottom: 3mm !important; }
    body[data-report="overview"] h1 { font-size: 18pt !important; }
    body[data-report="overview"] h2 { font-size: 11pt !important; }
    body[data-report="overview"] p { font-size: 9pt; line-height: 1.35 !important; }
    body[data-report="overview"] .overview-kpis {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 3mm !important;
        margin-top: 0 !important;
        break-inside: avoid;
    }
    body[data-report="overview"] .overview-kpis article { padding: 3mm !important; min-width: 0; }
    body[data-report="overview"] .overview-kpis article > p:nth-child(2) { font-size: 15pt !important; margin-top: 2mm !important; }
    body[data-report="overview"] .overview-kpis article > p:nth-child(3) { font-size: 8pt !important; margin-top: 2mm !important; }
    body[data-report="overview"] .overview-kpis a { display: none !important; }
    body[data-report="overview"] .overview-details {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4mm !important;
        margin-top: 4mm !important;
        break-inside: avoid;
    }
    body[data-report="overview"] .overview-details article { padding: 4mm !important; min-width: 0; }
    body[data-report="overview"] #monthly,
    body[data-report="overview"] #types { margin-top: 3mm !important; }
    body[data-report="overview"] #monthly > div + div { margin-top: 3mm !important; }
    body[data-report="overview"] #monthly .h-2\.5 { height: 2mm !important; }
    body[data-report="overview"] #types > div { padding-bottom: 2mm !important; margin-top: 2mm !important; font-size: 9pt !important; }
    body[data-report="overview"] .overview-notes { margin-top: 4mm !important; padding: 3mm !important; break-inside: avoid; }
    body[data-report="overview"] .overview-notes p { margin-top: 1mm !important; }
}

/* Financial Health retains the page's normal spacing and document order. */
@media print {
    body[data-report="financial-health"] [data-page-heading] { margin-bottom: 1.5rem !important; }
    body[data-report="financial-health"] main > section { margin-top: 1.5rem !important; }
    body[data-report="financial-health"] .financial-kpis {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 1rem !important;
        margin-top: 0 !important;
        margin-bottom: 1.5rem !important;
    }
    body[data-report="financial-health"] .financial-kpis article,
    body[data-report="financial-health"] .financial-monthly > div:first-child { padding: 1.25rem !important; }
    body[data-report="financial-health"] .financial-reconciliation,
    body[data-report="financial-health"] .financial-vat,
    body[data-report="financial-health"] .financial-notes article { padding: 1.5rem !important; }
    body[data-report="financial-health"] .financial-monthly { margin-top: 0 !important; }
    body[data-report="financial-health"] .financial-monthly th,
    body[data-report="financial-health"] .financial-monthly td { padding: 1rem !important; }
    body[data-report="financial-health"] .financial-vat th,
    body[data-report="financial-health"] .financial-vat td { padding: .5rem !important; }
    body[data-report="financial-health"] .financial-notes { display: block !important; }
    body[data-report="financial-health"] .financial-notes > article + article { margin-top: 1.5rem !important; }
}

@media print {
    body[data-plan-page="growth"] .growth-evidence {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    body[data-plan-page="growth"] .growth-summary-cards {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
    body[data-plan-page="growth"] .growth-evidence > *,
    body[data-plan-page="growth"] .growth-summary-cards > * { min-width: 0; }
}

@media print {
    body[data-plan-page="growth"] .growth-summary-cards {
        break-inside: avoid;
        break-after: avoid;
        page-break-after: avoid;
    }
    body[data-plan-page="growth"] .growth-sales-notice {
        break-inside: avoid;
        page-break-inside: avoid;
        break-before: avoid;
        margin-top: 2mm !important;
        padding: 2mm 3mm !important;
    }
    body[data-plan-page="growth"] .growth-evidence th,
    body[data-plan-page="growth"] .growth-evidence td { padding-top: 1mm !important; padding-bottom: 1mm !important; }
    body[data-plan-page="growth"] .growth-evidence .mb-4 { margin-bottom: 2mm !important; }
    body[data-plan-page="growth"] .growth-summary-cards > * { padding-top: 2mm !important; padding-bottom: 2mm !important; }
}

@media print {
    body[data-plan-page="growth"] .community-meal-summary {
        break-before: page;
        page-break-before: always;
    }
}

@media print {
    body[data-plan-page="growth"] .setup-plan-card {
        break-before: page;
        page-break-before: always;
    }
}

@media print {
    body[data-plan-page="forecast"] section[aria-label="Scenario charts"] {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        break-inside: avoid;
    }
    body[data-plan-page="forecast"] section[aria-label="Scenario charts"] > * { min-width: 0; }
}

@media print {
    body[data-plan-page="forecast"] .print-forecast-scenarios {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        break-inside: avoid;
    }
    body[data-plan-page="forecast"] .print-forecast-scenarios > * { min-width: 0; }
}


@media print {
    body[data-plan-page="forecast"] section[aria-label="Community meal scenario"] {
        padding: 3mm !important;
    }
    body[data-plan-page="forecast"] section[aria-label="Community meal scenario"] > * + * {
        margin-top: 2mm !important;
    }
    body[data-plan-page="forecast"] section[aria-label="Community meal scenario"] table {
        font-size: 8pt !important;
        line-height: 1.2;
    }
    body[data-plan-page="forecast"] section[aria-label="Community meal scenario"] th,
    body[data-plan-page="forecast"] section[aria-label="Community meal scenario"] td {
        padding: 1mm 2mm !important;
    }
}

@media print {
    body[data-plan-page="forecast"] .forecast-case-comparison {
        break-before: page;
        page-break-before: always;
    }
}

@media print {
    body[data-plan-page="forecast"] aside[aria-labelledby="forecast-estimates-title"] {
        display: none !important;
    }
}

@media print {
    body[data-plan-page="action"] .print-action-phases {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    body[data-plan-page="action"] .print-action-phases > * { min-width: 0; }
}

@media print {
    body[data-plan-page="action"] .action-point-text,
    body[data-plan-page="action"] .action-point-labels { display: inline !important; }
    body[data-plan-page="action"] .action-point-labels { margin-top: 0 !important; margin-left: 1mm; }
    body[data-plan-page="action"] .action-point-labels > span { display: inline-block; margin-right: 1mm; margin-bottom: .5mm; }
}

@media print {
    body[data-plan-page="action"] #plan-root ul.space-y-3 > li + li {
        margin-top: 6px !important;
    }
}

@media print {
    html.sim-overlay-mode body[data-plan-page="simulator"],
    body[data-plan-page="simulator"] .sim-workspace {
        height: auto !important; min-height: 0 !important; overflow: visible !important; display: block !important;
    }
    body[data-plan-page="simulator"] #sim-controls { display: none !important; }
    html.sim-overlay-mode .sim-workspace > [data-page-heading] { display: block !important; }
    body[data-plan-page="simulator"] #sim-content { display: block !important; height: auto !important; }
    body[data-plan-page="simulator"] #sim-content > .sim-metrics {
        display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 3mm !important;
    }
    body[data-plan-page="simulator"] #sim-content > .sim-visuals {
        display: grid !important; grid-template-columns: 1.4fr 1fr !important; gap: 3mm !important; margin: 3mm 0 !important;
    }
    body[data-plan-page="simulator"] #sim-content > .sim-visuals > article {
        grid-column: auto !important; grid-row: auto !important; height: auto !important; padding: 3mm !important;
    }
    body[data-plan-page="simulator"] .sim-monthly-panel,
    body[data-plan-page="simulator"] .sim-panel-body,
    body[data-plan-page="simulator"] .sim-comparison-scroll,
    body[data-plan-page="simulator"] .sim-assumptions {
        display: block !important; height: auto !important; max-height: none !important; overflow: visible !important;
    }
    body[data-plan-page="simulator"] .sim-inactive-month { opacity: 1 !important; }
    body[data-plan-page="simulator"] th,
    body[data-plan-page="simulator"] td { position: static !important; white-space: normal !important; font-size: 8pt !important; }
    body[data-plan-page="simulator"] svg { max-width: 100% !important; height: auto !important; }
}

.print-confidential, .print-powered-by { display: none; }
@media print {
    .print-confidential {
        display: block !important;
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-28deg);
        color: rgba(220, 38, 38, .065);
        font: bold 82pt/1 Arial, sans-serif;
        letter-spacing: 5pt;
        white-space: nowrap;
        pointer-events: none;
        z-index: 10;
    }
    body > main { position: relative; z-index: 1; padding-right:15px !important }
    .print-powered-by {
        display: block !important;
        position: fixed !important;
        top: 100mm;
        right: 1mm !important;
        bottom: auto;
        transform: translateY(-50%) rotate(90deg);
        transform-origin: right center;
        white-space: nowrap;
        color: #b98080;
        font: 8pt/1 Arial, sans-serif;
        pointer-events: none;
        z-index: 20;
    }
}

@media print {
    body[data-report="dish-costs"] main > section.grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    body[data-report="dish-costs"] main > section ol.grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    body[data-report="dish-costs"] main > section.grid > *,
    body[data-report="dish-costs"] main > section ol.grid > * { min-width: 0; }
}

@media print {
    body[data-report="dish-costs"] main > section,
    body[data-report="dish-costs"] main > section.grid > article { padding: 4mm !important; }
    body[data-report="dish-costs"] main > section.grid { padding: 0 !important; gap: 3mm !important; }
    body[data-report="dish-costs"] main > section ol.grid > li { padding: 3mm !important; }
}
