/* ============================================
   PDF Export PRO - Rivaria Capital
   Optimisé pour html2pdf/html2canvas + print
   Scope strict sur #pdfReport
   ============================================ */

@media print {
  @page { size: A4; margin: 15mm 12mm; }
}

#pdfReport,
#pdfReport * { box-sizing: border-box; }

#pdfReport.report-container{
  --premium-navy:#023A68;
  --premium-blue:#1870EF;
  --premium-gold:#1870EF;
  --premium-silver:#8B9DC3;
  --premium-success:#2D7A4F;
  --premium-warning:#D97706;
  --premium-error:#B91C1C;

  --bg-primary:#FFFFFF;
  --bg-secondary:#F7F7F7;
  --bg-elevated:#FCFCFD;

  --text-primary:#0A1628;
  --text-secondary:#4B5563;
  --text-tertiary:#9CA3AF;
  --text-inverse:#FFFFFF;

  --border-light:#E5E7EB;
  --border-medium:#D1D5DB;
  --border-dark:#9CA3AF;

  --shadow-xs:0 1px 2px 0 rgba(10,22,40,.05);
  --shadow-sm:0 2px 4px -1px rgba(10,22,40,.06),0 2px 2px -1px rgba(10,22,40,.04);
  --shadow-md:0 4px 6px -1px rgba(10,22,40,.08),0 2px 4px -2px rgba(10,22,40,.05);
  --shadow-lg:0 10px 15px -3px rgba(10,22,40,.10),0 4px 6px -4px rgba(10,22,40,.06);

  --space-xs:.25rem;
  --space-sm:.5rem;
  --space-md:1rem;
  --space-lg:1.5rem;
  --space-xl:2rem;
  --space-2xl:2.5rem;
  --space-3xl:3rem;

  --radius-sm:.375rem;
  --radius-md:.5rem;
  --radius-lg:.75rem;
  --radius-xl:1rem;

  --font-sans:'Instrument Sans',-apple-system,sans-serif;
  --font-serif:'Instrument Sans',-apple-system,sans-serif;

  --font-normal:400;
  --font-medium:500;
  --font-semibold:600;
  --font-bold:700;

  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-base:1rem;
  --text-lg:1.125rem;
  --text-xl:1.25rem;
  --text-2xl:1.5rem;
  --text-3xl:1.875rem;
  --text-4xl:2.25rem;
}

/* ==================
   BASE
   ================== */

#pdfReport.report-container{
  display:none;
  font-family:var(--font-sans);
  font-size:var(--text-base);
  line-height:1.5;
  color:var(--text-primary);
  background:var(--bg-primary);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

#pdfReport .report{ background:var(--bg-primary); }

#pdfReport.pdf-exporting{ display:block !important; }

#pdfReport.pdf-exporting *{
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
  color-adjust:exact;
}

@media print {
  #pdfReport *{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
    color-adjust:exact;
  }
}

/* ==================
   PAGE DE GARDE HERO (comme simulateur)
   ================== */

#pdfReport .report-header{
  background:linear-gradient(135deg,var(--premium-navy) 0%,var(--premium-blue) 100%);
  color:var(--text-inverse);
  overflow:hidden;
  position:relative;

  height:267mm;
  min-height:267mm;

  border-radius:18px;
  box-shadow:var(--shadow-lg);

  page-break-after:always;

  display:flex;
  align-items:stretch;
  justify-content:center;
}

/* en print, éviter que les coins se fassent rogner selon viewer */
@media print{
  #pdfReport .report-header{
    border-radius:14px;
  }
}

#pdfReport .report-header::before{
  content:'';
  position:absolute;
  top:0;
  right:-10%;
  width:60%;
  height:100%;
  background:linear-gradient(90deg,transparent 0%,rgba(184,134,11,.06) 100%);
  pointer-events:none;
}

/* grille unique: contenu gauche, logo droite */
#pdfReport .report-cover{
  position:relative;
  z-index:1;

  width:100%;
  max-width:186mm;
  margin:0 auto;

  height:100%;
  padding:20mm 18mm;

  display:grid;
  grid-template-columns:1fr 74mm;
  column-gap:16mm;
  align-items:start;
}

/* forcer la colonne droite à ressembler au bloc logo du hero */
#pdfReport .report-cover-logo{
  justify-self:end;
  align-self:start;

  width:74mm;
  padding:16mm 10mm;

  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  border-radius:18px;

  box-shadow:0 18px 40px rgba(0,0,0,.14);
}

#pdfReport .report-cover-logo .logo{
  display:block;
  width:100%;
  height:auto;
  opacity:1;
  filter:brightness(0) invert(1);
  -webkit-filter:brightness(0) invert(1);
}

/* colonne gauche alignée: titre, sous-titre, bloc infos en bas */
#pdfReport .report-cover-content{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
}

#pdfReport .report-cover-title{
  font-family:var(--font-serif);
  font-size:2.65rem;
  font-weight:var(--font-bold);
  line-height:1.08;
  letter-spacing:-0.025em;
  margin:0;
  color:var(--text-inverse);

  /* si tu mets un retour ligne dans le HTML, ça le respecte */
  white-space:pre-line;
}

#pdfReport .report-cover-subtitle{
  margin:10mm 0 0 0;
  font-size:1.15rem;
  font-weight:var(--font-medium);
  color:rgba(255,255,255,.92);
  line-height:1.45;
}

/* bloc infos unifié */
#pdfReport .report-cover-client{
  margin-top:auto;

  width:72mm;
  max-width:72mm;

  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.26);
  border-bottom:none;
  border-radius:16px 16px 0 0;

  padding:12px 14px;
}

#pdfReport .report-cover-footer{
  width:72mm;
  max-width:72mm;

  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.26);
  border-top:none;
  border-radius:0 0 16px 16px;

  padding:0;
  overflow:hidden;

  display:block;
  margin-top:0;
}

/* "cartes" internes deviennent des lignes du même bloc */
#pdfReport .report-cover-date,
#pdfReport .report-cover-advisor{
  background:transparent;
  border:none;
  border-radius:0;
  padding:12px 14px;
  min-width:0;
}

#pdfReport .report-cover-advisor{
  border-top:1px solid rgba(255,255,255,.18);
}

#pdfReport .report-cover-label{
  display:block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(255,255,255,.74);
  margin-bottom:6px;
}

#pdfReport .report-cover-value{
  display:block;
  font-size:1.02rem;
  font-weight:700;
  color:rgba(255,255,255,.98);
  line-height:1.25;

  overflow-wrap:anywhere;
}

#pdfReport .report-cover-advisor .report-cover-value{
  white-space:nowrap;
}

/* si clientNames vide, on masque le cadre pour éviter le placeholder */
#pdfReport .report-cover-client .report-cover-value:where(:empty),
#pdfReport .report-cover-client .report-cover-value:where([data-empty="true"]){
  display:none;
}

/* filigrane PER discret */
#pdfReport .report-header::after{
  content:'PER';
  position:absolute;
  left:16mm;
  bottom:14mm;
  font-family:var(--font-serif);
  font-size:64px;
  letter-spacing:.06em;
  color:rgba(255,255,255,.05);
  pointer-events:none;
}

/* ==================
   SYNTHÈSE KPI
   ================== */

#pdfReport .report-synthesis{
  background:var(--bg-secondary);
  padding:var(--space-3xl) var(--space-2xl);
  min-height:267mm;
  page-break-after:always;
}

#pdfReport .report-synthesis h2{
  font-family:var(--font-serif);
  font-size:var(--text-3xl);
  font-weight:var(--font-bold);
  color:var(--premium-navy);
  margin:0 0 var(--space-3xl);
  letter-spacing:-0.025em;
}

#pdfReport .report-kpi-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-xl);
}

#pdfReport .report-kpi{
  background:var(--bg-primary);
  border:1px solid var(--border-light);
  border-left:4px solid var(--premium-navy);
  border-radius:var(--radius-lg);
  padding:var(--space-2xl);
  box-shadow:var(--shadow-md);
  page-break-inside:avoid;
  break-inside:avoid;
  min-width:0;
}

#pdfReport .report-kpi-label{
  font-size:var(--text-sm);
  font-weight:var(--font-semibold);
  color:var(--text-secondary);
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:var(--space-lg);
}

#pdfReport .report-kpi-value{
  font-family:var(--font-serif);
  font-size:1.85rem;
  font-weight:var(--font-bold);
  color:var(--premium-navy);
  font-variant-numeric:tabular-nums;
  line-height:1.15;
  overflow-wrap:anywhere;
}

/* ==================
   SECTIONS
   ================== */

#pdfReport .report-section{
  background:var(--bg-primary);
  padding:var(--space-2xl) var(--space-xl);
  page-break-inside:avoid;
  break-inside:avoid;
}

#pdfReport .report-section h2{
  font-family:var(--font-serif);
  font-size:var(--text-2xl);
  font-weight:var(--font-bold);
  color:var(--premium-navy);
  margin:0 0 var(--space-xl);
  padding-bottom:var(--space-md);
  border-bottom:2px solid var(--premium-blue);
  letter-spacing:-0.025em;
  page-break-after:avoid;
}

#pdfReport .report-section h3{
  font-family:var(--font-sans);
  font-size:var(--text-lg);
  font-weight:var(--font-semibold);
  color:var(--premium-blue);
  margin:var(--space-xl) 0 var(--space-md);
  page-break-after:avoid;
}

/* ==================
   GRILLES
   ================== */

#pdfReport .report-grid-2{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-lg);
  margin-bottom:var(--space-xl);
}

#pdfReport .report-card{
  background:var(--bg-elevated);
  border:1px solid var(--border-light);
  border-radius:var(--radius-md);
  padding:var(--space-lg);
  box-shadow:var(--shadow-sm);
  page-break-inside:avoid;
  break-inside:avoid;
  min-width:0;
}

#pdfReport .report-card strong{
  font-weight:var(--font-semibold);
  color:var(--premium-navy);
  display:block;
  margin-bottom:var(--space-md);
  font-size:var(--text-base);
}

#pdfReport .report-card .badge-recommended{
  display:inline-block;
  padding:var(--space-xs) var(--space-sm);
  background:linear-gradient(135deg,var(--premium-gold) 0%,#D4AF37 100%);
  color:var(--text-inverse);
  font-size:var(--text-xs);
  font-weight:var(--font-bold);
  text-transform:uppercase;
  letter-spacing:.05em;
  border-radius:var(--radius-sm);
  margin-left:var(--space-sm);
}

/* ==================
   TABLEAUX
   ================== */

#pdfReport table{ border-collapse:collapse; }

#pdfReport .report-table{
  width:100%;
  table-layout:fixed;
  font-size:var(--text-sm);
  background:var(--bg-primary);
  margin-bottom:var(--space-lg);
}

#pdfReport .report-table th{
  background:linear-gradient(135deg,var(--premium-navy) 0%,var(--premium-blue) 100%);
  color:var(--text-inverse);
  font-weight:var(--font-semibold);
  text-align:left;
  padding:var(--space-md) var(--space-lg);
  font-size:var(--text-sm);
  text-transform:uppercase;
  letter-spacing:.05em;
}

#pdfReport .report-table td{
  padding:var(--space-sm) var(--space-lg);
  border-bottom:1px solid var(--border-light);
  color:var(--text-primary);
  overflow-wrap:anywhere;
}

#pdfReport .report-table tr:last-child td{ border-bottom:none; }
#pdfReport .report-table tr:nth-child(even){ background:var(--bg-secondary); }

#pdfReport .report-table td:first-child{
  font-weight:var(--font-medium);
  color:var(--text-secondary);
}

#pdfReport .report-table td:last-child{
  text-align:right;
  font-weight:var(--font-semibold);
  color:var(--premium-navy);
  font-variant-numeric:tabular-nums;
}

#pdfReport .report-table tr.is-total{
  background:var(--bg-elevated);
  border-top:2px solid var(--premium-navy);
  border-bottom:2px solid var(--premium-navy);
}

#pdfReport .report-table tr.is-total td{
  padding:var(--space-md) var(--space-lg);
  font-weight:var(--font-bold);
  color:var(--premium-navy);
  font-size:var(--text-base);
}

@media print{
  #pdfReport .report-table thead{ display:table-header-group; }
}

#pdfReport .report-table tr{
  page-break-inside:avoid;
  break-inside:avoid;
}

/* ==================
   GRAPHIQUES
   ================== */

#pdfReport .report-chart-img{
  max-width:100%;
  height:auto;
  display:block;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  margin:var(--space-md) 0;
  background:var(--bg-primary);
  padding:var(--space-md);
  border:1px solid var(--border-light);
  page-break-inside:avoid;
  break-inside:avoid;
}

#pdfReport .report-graphics-section{ page-break-before:always; }
#pdfReport .report-graphics-section .report-card{ margin-bottom:var(--space-xl); }

/* ==================
   FOOTER
   ================== */

#pdfReport .report-footer{
  background:transparent;
  border-top:1px solid var(--border-light);
  padding:var(--space-md) 0;
  margin-top:var(--space-lg);
  font-size:var(--text-xs);
  color:var(--text-tertiary);
  line-height:1.5;
  page-break-inside:avoid;
  break-inside:avoid;
}

#pdfReport .report-footer strong{
  color:var(--text-secondary);
  font-weight:var(--font-semibold);
}

/* ==================
   PAGINATION helpers
   ================== */

#pdfReport .page-break{ page-break-after:always; }
#pdfReport .page-break-before{ page-break-before:always; }
#pdfReport .avoid-break{ page-break-inside:avoid; break-inside:avoid; }

/* évite une page blanche si un .page-break se retrouve en dernier */
#pdfReport .page-break:last-child{ page-break-after:auto !important; }

/* ==================
   TUNING: moins de pages
   ================== */

/* Projection annuelle sur une page */
#repProjectionReal .report-table-projection{
  margin-bottom:0;
  font-size:.68rem;
}

#repProjectionReal .report-table-projection th{
  padding:4px 6px;
  font-size:.62rem;
}

#repProjectionReal .report-table-projection td{
  padding:3px 6px;
  line-height:1.15;
}

#repProjectionReal .report-table-projection td:last-child{ white-space:nowrap; }

/* Glossaire sur une page */
#pdfReport .report-glossary .report-grid-2{
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}

#pdfReport .report-glossary .report-card{ padding:10px; }

#pdfReport .report-glossary .report-card strong{
  margin-bottom:6px;
  font-size:.85rem;
}

#pdfReport .report-glossary .report-card div{
  font-size:.72rem;
  line-height:1.25;
}

/* ==================
   UTILITAIRES
   ================== */

#pdfReport .text-center{ text-align:center; }
#pdfReport .text-right{ text-align:right; }
#pdfReport .font-bold{ font-weight:var(--font-bold); }
#pdfReport .font-semibold{ font-weight:var(--font-semibold); }
#pdfReport .text-primary{ color:var(--text-primary); }
#pdfReport .text-secondary{ color:var(--text-secondary); }
#pdfReport .text-navy{ color:var(--premium-navy); }
#pdfReport .text-gold{ color:var(--premium-gold); }
#pdfReport .mb-sm{ margin-bottom:var(--space-sm); }
#pdfReport .mb-md{ margin-bottom:var(--space-md); }
#pdfReport .mb-lg{ margin-bottom:var(--space-lg); }
#pdfReport .mb-xl{ margin-bottom:var(--space-xl); }

#pdfReport .value-missing::after{
  content:'•';
  color:var(--text-tertiary);
}
