/* ============================================================================
   Impression « Résumé de contrat » — document client (façon Rapport 1).

   Stratégie : on N'IMPRIME PAS un fichier généré ; on imprime le DOM RÉEL de
   l'onglet « Résumé de contrat » via window.print(). Avantage : on conserve EXACTEMENT
   les couleurs/boîtes de l'écran et l'état d'éclatement courant (les sections dépliées
   à l'écran s'impriment dépliées, les autres restent repliées — c'est le DOM tel quel).

   Tout est gâché sur body.pm-print-resume : la classe n'est posée QUE le temps de
   l'impression déclenchée par le bouton (voir window.pmPrint dans App.razor). Ainsi un
   Ctrl+P depuis un autre onglet garde un comportement normal.

   Convention couleurs : on réutilise les tokens d'app.css (var(--accent), etc.). Aucune
   nouvelle dépendance, aucun moteur PDF serveur.
   ============================================================================ */

/* En-tête document : caché à l'écran, révélé seulement à l'impression. */
.print-doc-header { display: none; }

@media print {
    /* Orientation paysage : la grille du Résumé de contrat est large (10 colonnes). */
    @page {
        size: landscape;
        margin: 12mm 10mm 14mm;
    }

    /* Le mode est armé par le bouton (pmPrint) — sinon impression « brute » normale. */
    body.pm-print-resume {
        background: #fff !important;
    }

    /* ---- 1. Masquer tout le chrome de l'application ---- */
    body.pm-print-resume .appbar,
    body.pm-print-resume .footer,
    body.pm-print-resume .breadcrumbs,
    body.pm-print-resume .page-header,
    body.pm-print-resume .tabs,
    body.pm-print-resume .tab-toolbar,
    body.pm-print-resume .search-field,
    body.pm-print-resume .filter-bar,
    body.pm-print-resume #blazor-error-ui {
        display: none !important;
    }

    /* ---- 2. Libérer les conteneurs qui clipperaient l'impression à un écran ---- */
    body.pm-print-resume .app-shell { display: block !important; min-height: 0 !important; }
    body.pm-print-resume .app-main {
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    body.pm-print-resume .page { padding: 0 !important; margin: 0 !important; }
    body.pm-print-resume .data-scroll,
    body.pm-print-resume .data-scroll.tall {
        max-height: none !important;
        overflow: visible !important;
        border: none !important;
        border-radius: 0 !important;
    }

    /* Forcer le rendu des fonds/couleurs (sinon le navigateur les supprime à l'impression). */
    body.pm-print-resume .suivi-resume,
    body.pm-print-resume .suivi-resume *,
    body.pm-print-resume .print-doc-header,
    body.pm-print-resume .print-doc-header * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    /* ---- 3. En-tête document (logo + projet + date), façon Rapport 1 ---- */
    body.pm-print-resume .print-doc-header {
        display: flex !important;
        align-items: flex-end;
        justify-content: space-between;
        gap: 24px;
        padding: 0 2px 12px;
        margin-bottom: 14px;
        border-bottom: 2px solid var(--accent);
    }
    .print-doc-header .pdh-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
    /* Logo officiel (wordmark « Construction Bertrand Dionne », recoloré en vert de marque). */
    .print-doc-header .pdh-logo { height: 32px; width: auto; max-width: 320px; display: block; }
    .print-doc-header .pdh-org { display: flex; align-items: baseline; gap: 12px; line-height: 1.2; }
    .print-doc-header .pdh-doc-type {
        font-size: 19px; font-weight: 700; letter-spacing: -0.01em; color: var(--accent);
    }
    .print-doc-header .pdh-rbq {
        font-size: 11px; font-weight: 600; letter-spacing: 0.03em; color: var(--text-secondary);
    }
    .print-doc-header .pdh-meta {
        display: grid; grid-template-columns: max-content max-content; gap: 3px 12px;
        margin: 0; font-size: 11px; text-align: right;
    }
    .print-doc-header .pdh-meta dt {
        color: var(--text-muted); font-weight: 600; text-transform: uppercase;
        letter-spacing: 0.04em; font-size: 9px; align-self: center; text-align: right;
    }
    .print-doc-header .pdh-meta dd { margin: 0; color: var(--text-primary); font-weight: 500; text-align: right; }

    /* ---- 4. Compacter la grille pour tenir en paysage (Lettre/A4) ---- */
    body.pm-print-resume .suivi-cards { min-width: 0 !important; }
    body.pm-print-resume .suivi-resume { min-width: 0 !important; }
    body.pm-print-resume .suivi-resume .suivi-grid {
        /* Colonnes resserrées : Code · Activité(1fr) · Budget · Engagé · Facturé · Ajust. ·
           Total · Écart · % · (fichier=0). Somme fixe ≈ 740 px ⇒ tient sur Lettre paysage. */
        grid-template-columns: 54px minmax(80px, 1fr) 92px 92px 92px 84px 92px 92px 50px 0 !important;
        gap: 6px !important;
        font-size: 10px !important;
    }
    body.pm-print-resume .suivi-chead {
        position: static !important;
        background: var(--bg-tertiary) !important;
        font-size: 9px !important;
    }
    body.pm-print-resume .sc-head { padding: 7px 9px !important; }
    body.pm-print-resume .sc-subrow { padding: 4px 9px !important; }
    body.pm-print-resume .sc-body { padding: 4px 9px 8px !important; }

    /* L'activité dépliée garde son bandeau vert (accent-soft) — déjà géré par .is-open ;
       on s'assure juste qu'il s'imprime (color-adjust ci-dessus). */

    /* ---- 5. Neutraliser les éléments interactifs (look « document ») ---- */
    /* Ajustement : l'input devient du texte simple aligné à droite. */
    body.pm-print-resume .sc-adjust .input {
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        -webkit-appearance: none !important;
        appearance: none !important;
        color: var(--text-primary) !important;
    }
    body.pm-print-resume .sc-adjust .input::-webkit-inner-spin-button,
    body.pm-print-resume .sc-adjust .input::-webkit-outer-spin-button { display: none !important; }

    /* Carets d'éclatement : on garde la place (alignement) mais on les cache. */
    body.pm-print-resume .expand-caret { visibility: hidden !important; }
    /* Boutons « déplier les commandes » et liens fichiers : retirés du document. */
    body.pm-print-resume .sc-cmd > *,
    body.pm-print-resume .sc-file { display: none !important; }

    /* ---- 6. Sauts de page : éviter de couper une carte d'activité ---- */
    body.pm-print-resume .suivi-card { break-inside: avoid; page-break-inside: avoid; }
    body.pm-print-resume .sc-order { break-inside: avoid; page-break-inside: avoid; }
    body.pm-print-resume .suivi-foot { break-inside: avoid; page-break-inside: avoid; }
}
