/* ════════════════════════════════════════════════════════
   NEXUS · print.css
   Rapport financier / macro — style cabinet de conseil
   A4 · noir & blanc · lignes 0.5pt · zéro coupure
   ════════════════════════════════════════════════════════ */

@media print {

    /* ── Page setup ── */
    @page {
        size: A4 portrait;
        margin: 22mm 20mm 24mm 20mm;
    }
    @page :first {
        margin-top: 28mm;
    }

    /* ── Reset couleurs & fond ── */
    *,
    *::before,
    *::after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    html, body {
        font-family: "Georgia", "Times New Roman", serif;
        font-size: 9.5pt;
        line-height: 1.55;
        background: #fff !important;
        color: #000 !important;
    }

    /* Grain papier désactivé à l'impression */
    body::after { display: none !important; }

    /* ── Éléments UI masqués ── */
    .site-chrome,
    .promo-announce,
    .premium-overlay,
    #premium-panel-root,
    #toast-root,
    .session-restore-overlay,
    .nexus-unlock-overlay,
    .feedback-section,
    .share-section,
    .newsletter-prompt__backdrop,
    #institution-panel,
    .outreach-prompt,
    .info-modal,
    .dev-palette-overlay,
    .result-tabs,
    .result-tab-bar,
    .quiz-nav,
    .btn--honey,
    .btn-ghost,
    .nexus-premium-cta,
    .nexus-report-btn,
    .results-quick-actions,
    .chrome-info-btn,
    .lang-switch,
    .theme-toggle,
    .hesitate-toggle,
    #print-fab { display: none !important; }

    /* ── Conteneur principal ── */
    .app-shell {
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* ── Phases ── */
    .phase {
        min-height: auto !important;
        display: none !important;
    }
    .phase.is-active {
        display: block !important;
    }

    /* ── Grilles → colonnes simples ── */
    .panel-grid,
    .cluster-grid,
    .program-grid,
    .nexus-profile-trio,
    .trajectory-grid--dominant,
    .trajectory-grid--cluster,
    .form-grid,
    .explain-row,
    .profile-grid {
        grid-template-columns: 1fr !important;
    }

    /* ── Onglets résultats : affiche tous les panels ── */
    .result-tab-panel,
    .result-tab-panel.is-active {
        display: block !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* ── Typographie rapport ── */
    .section-title {
        font-family: "Georgia", serif !important;
        font-size: 14pt !important;
        font-weight: 700 !important;
        color: #000 !important;
        border-bottom: 0.5pt solid #000;
        padding-bottom: 3pt;
        margin-bottom: 6pt;
        letter-spacing: -0.01em;
    }
    .section-title--mid {
        font-size: 11pt !important;
        border-bottom: 0.5pt solid #888;
    }
    .section-title--sm {
        font-size: 9.5pt !important;
        font-weight: 700 !important;
        border-bottom: none;
    }
    .section-eyebrow {
        font-family: "Courier New", monospace !important;
        font-size: 7pt !important;
        letter-spacing: 0.18em;
        color: #555 !important;
        text-transform: uppercase;
    }
    .section-copy {
        font-size: 9pt !important;
        color: #333 !important;
        max-width: 100% !important;
    }

    /* ── Cards : bordures fines cabinet de conseil ── */
    .panel-card,
    .traj-card,
    .prog-card,
    .explain-card,
    .section-card,
    .nexus-radar-wrap,
    .nexus-signal-card,
    .nexus-dims-card,
    .ranked-card,
    .institution-card {
        border: 0.5pt solid #bbb !important;
        border-radius: 0 !important;
        padding: 8pt 10pt !important;
        page-break-inside: avoid;
        break-inside: avoid;
        margin-bottom: 6pt;
    }
    .panel-card--ruled {
        border-top: 1pt solid #000 !important;
    }
    .traj-card--primary {
        border-top: 1pt solid #000 !important;
        border-left: 2pt solid #000 !important;
    }

    /* ── Score bars en niveaux de gris ── */
    .score-bar { background: #ddd !important; }
    .score-bar__fill,
    .traj-card--primary .score-bar__fill {
        background: #333 !important;
    }
    .dim-bar { background: #eee !important; }
    .dim-bar__fill { background: #666 !important; }
    .nexus-radar-legend-bar { background: #ddd !important; }
    .nexus-radar-legend-fill { background: #333 !important; }
    .progress-bar { background: #ddd !important; }
    .progress-bar__fill { background: #333 !important; }

    /* ── Tags & pills en gris ── */
    .pill-tag,
    .traj-tag,
    .prog-tag,
    .meta-chip,
    .badge,
    .choice-chip,
    .section-card__tag {
        border: 0.5pt solid #aaa !important;
        background: #f5f5f5 !important;
        color: #333 !important;
        border-radius: 0 !important;
    }
    .traj-tag--ok   { border-color: #555 !important; }
    .traj-tag--warn { border-color: #777 !important; }

    /* ── Tableaux de comparaison ── */
    .cmp-row,
    .cmp-row--dynamic,
    .explain-row {
        border-bottom: 0.5pt solid #ccc !important;
        padding: 4pt 0 !important;
    }
    .cmp-label,
    .cmp-val,
    .explain-row__key,
    .explain-row__val {
        font-size: 8.5pt !important;
        color: #000 !important;
    }
    .cmp-row--head span,
    .section-card__note,
    .section-card__eyebrow {
        font-size: 7pt !important;
        color: #555 !important;
        letter-spacing: 0.12em;
    }

    /* ── Titres de trajectoire ── */
    .traj-title {
        font-size: 11pt !important;
        font-weight: 700 !important;
    }
    .traj-summary {
        font-size: 8.5pt !important;
        -webkit-line-clamp: unset !important;
        display: block !important;
        overflow: visible !important;
    }
    .traj-rank {
        font-size: 7pt !important;
        color: #555 !important;
    }

    /* ── Radar SVG : conservé mais réduit ── */
    .nexus-radar-svg {
        max-width: 240pt !important;
        margin: 0 auto !important;
    }
    .nexus-radar-wrap { max-width: 100% !important; }

    /* ── Sauts de page intelligents ── */
    h1, h2, h3,
    .section-head,
    .traj-card,
    .prog-card,
    .panel-card,
    .section-card,
    .results-container > * {
        page-break-inside: avoid;
        break-inside: avoid;
    }
    .results-container > *:not(:first-child) {
        page-break-before: auto;
    }

    /* ── Liens imprimables ── */
    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 7pt;
        color: #666 !important;
        word-break: break-all;
    }
    a[href^="#"]::after,
    a[href^="javascript"]::after { content: ""; }

    /* ── En-tête de rapport (page 1) ── */
    .phase.is-active::before {
        content: "NEXUS — Rapport d'orientation";
        display: block;
        font-family: "Courier New", monospace;
        font-size: 7pt;
        letter-spacing: 0.20em;
        text-transform: uppercase;
        color: #888 !important;
        border-bottom: 0.5pt solid #ccc;
        padding-bottom: 4pt;
        margin-bottom: 16pt;
    }

    /* ── Pied de page via CSS counter ── */
    @page {
        @bottom-center {
            content: "NEXUS · Rapport d'orientation · " counter(page) " / " counter(pages);
            font-family: "Courier New", monospace;
            font-size: 7pt;
            color: #888;
        }
    }
}
