/* Print layout only. The colours are the light theme's: base.html switches to
   it on beforeprint, so this sheet repeats no palette. */
@media print {
    @page { size: A4; margin: 1cm; }

    body { background: #fff; }
    .app { display: block; min-height: 0; }
    .app-main { padding: 0; }
    .page { max-width: none; gap: 12px; }

    /* Screen controls: navigation, buttons, filters, forms that act */
    .app-topbar, .app-sidebar, .auth-theme, .page-actions, .segmented,
    .btn, button, .dropdown, .side-search, .no-print, .alert-dismissible,
    #scanForm, .vpanel-actions, form[action$="/redeem"], form[action$="/settings/api-keys"] {
        display: none !important;
    }
    .print-only { display: block !important; }
    .page-header .eyebrow a { display: none; }
    ::placeholder { color: transparent; }

    .card { box-shadow: none; border: 1px solid #000; break-inside: avoid; }
    .card-table, .table-responsive { overflow: visible; }
    .table > :not(caption) > * > * { border-bottom: 1px solid #999; }
    .table > thead > tr > th { color: #000; }
    tr { break-inside: avoid; }
    h1, h2, h3 { break-after: avoid; }
    .pill { border: 1px solid currentColor; }
    .print-voucher { break-inside: avoid; margin-bottom: 1cm; }

    /* A canvas keeps its screen width until chart-theme.js redraws it for the
       paper; this keeps it inside its card meanwhile. */
    .card canvas { max-width: 100% !important; height: auto !important; }
    .chart-box { height: 260px; }
}
