/* COMPTE RENDU PDF — mise en page d’impression A4, indépendante du design de l’écran.
   Le contenu est généré par prepareReport() dans js/app.js. */

#report-print { display:none; }

.cr {
  --cr-ink:#1e2a26; --cr-ink-2:#3b4a44; --cr-mute:#6b7a73; --cr-line:#dfe7e2; --cr-soft:#f4f8f5;
  --cr-accent:#2f7a64; --cr-accent-dark:#1d4a3d; --cr-accent-soft:#e6f1eb;
  color:var(--cr-ink); font:9pt/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
.cr b { font-weight:650; }

/* En-tête */
.cr-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:4mm; border-bottom:1.5pt solid var(--cr-accent); }
.cr-brand { display:flex; align-items:center; gap:9px; }
.cr-logo { width:34px; height:24px; }
.cr-brand-name { font-size:12pt; font-weight:750; letter-spacing:-.03em; color:var(--cr-accent-dark); }
.cr-brand-sub { font-size:7.5pt; color:var(--cr-mute); }
.cr-head-right { text-align:right; font-size:8pt; color:var(--cr-mute); }
.cr-doc-type { font-size:7pt; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--cr-accent); margin-bottom:1px; }
.cr-title { margin:7mm 0 5mm; font-size:21pt; font-weight:750; letter-spacing:-.035em; line-height:1.1; color:var(--cr-ink); }

/* Identification */
.cr-ident { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--cr-line); border-radius:6px; }
.cr-ident > div { padding:3mm 3.5mm; min-width:0; }
.cr-ident > div + div { border-left:1px solid var(--cr-line); }
.cr-ident span, .cr-sign span { display:block; margin-bottom:1mm; font-size:6.8pt; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cr-mute); }
.cr-ident b { display:block; font-size:9pt; overflow-wrap:anywhere; }

/* Chiffres clés */
.cr-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3mm; margin:5mm 0 2mm; }
.cr-kpis > div { padding:3.5mm 4mm; border-radius:6px; background:var(--cr-soft); border-left:2.5pt solid var(--cr-accent); }
.cr-kpis b { display:block; font-size:16pt; font-weight:750; letter-spacing:-.03em; line-height:1.1; color:var(--cr-accent-dark); }
.cr-kpis span { display:block; margin-top:1mm; font-size:7.5pt; color:var(--cr-mute); }

/* Titres de partie */
.cr-h2 { display:flex; align-items:center; gap:3mm; margin:8mm 0 3mm; font-size:12pt; font-weight:750; letter-spacing:-.02em; color:var(--cr-ink); break-after:avoid; }
.cr-h2::after { content:""; flex:1; height:1px; background:var(--cr-line); }
.cr-note { margin:2mm 0 0; font-size:7.3pt; color:var(--cr-mute); }

/* Tableaux */
.cr-table { width:100%; border-collapse:collapse; font-size:8pt; line-height:1.35; }
.cr-table th { padding:2mm 2mm; text-align:left; font-size:6.8pt; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--cr-mute); background:var(--cr-soft); border-bottom:1px solid var(--cr-line); }
.cr-table td { padding:2.2mm 2mm; vertical-align:top; border-bottom:1px solid var(--cr-line); }
.cr-table .cr-num { text-align:right; white-space:nowrap; }
.cr-synth tbody tr:nth-child(even) td { background:#fafcfb; }
.cr-c-n { width:9mm; color:var(--cr-mute); font-weight:650; }
.cr-c-date { width:31mm; white-space:nowrap; }
.cr-c-dur { width:17mm; white-space:nowrap; }
.cr-val { font-weight:650; color:var(--cr-ink); }
.cr-row { break-inside:avoid; }
.cr-row:has(.cr-sub) > tr:first-child td { border-bottom:0; padding-bottom:1mm; }
.cr-sub td { padding-top:0; color:var(--cr-ink-2); font-size:7.3pt; }
.cr-sub div + div { margin-top:.8mm; }
.cr-sub span { display:inline-block; min-width:17mm; margin-right:2mm; font-size:6.6pt; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--cr-mute); }

/* Section d’un exercice */
.cr-ex { margin:0 0 7mm; padding-top:1mm; }
.cr-ex-keep { break-inside:avoid; }
.cr-ex-head { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; padding-bottom:2mm; border-bottom:1px solid var(--cr-line); }
.cr-domain { font-size:6.8pt; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--cr-accent); }
.cr-ex-head h3 { margin:.5mm 0 0; font-size:13pt; font-weight:750; letter-spacing:-.025em; color:var(--cr-ink); }
.cr-ex-meta { font-size:8pt; color:var(--cr-mute); white-space:nowrap; }
.cr-obj { margin:2.5mm 0 3mm; font-size:8.3pt; color:var(--cr-ink-2); }
.cr-obj span { display:inline-block; margin-right:2mm; padding:.4mm 2mm; border-radius:999px; background:var(--cr-accent-soft); color:var(--cr-accent-dark); font-size:6.6pt; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.cr-ex-body { display:grid; grid-template-columns:52mm minmax(0,1fr); gap:5mm; align-items:stretch; margin-bottom:3mm; }
.cr-kpis-mini { display:grid; grid-template-columns:1fr 1fr; gap:2mm; align-content:start; }
.cr-kpis-title { grid-column:1/-1; font-size:6.8pt; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cr-mute); }
.cr-mini { padding:2.2mm 2.8mm; border:1px solid var(--cr-line); border-radius:5px; }
.cr-mini span { display:block; font-size:6.8pt; color:var(--cr-mute); }
.cr-mini b { display:block; font-size:12pt; font-weight:750; letter-spacing:-.02em; color:var(--cr-accent-dark); }
.cr-fig { margin:0; padding:2mm 3mm 1.5mm; border:1px solid var(--cr-line); border-radius:5px; }
.cr-fig figcaption { font-size:6.8pt; color:var(--cr-mute); text-align:center; }
.cr-chart { display:block; width:100%; height:auto; }
.cr-fig-empty { display:flex; align-items:center; justify-content:center; padding:4mm; text-align:center; font-size:7.5pt; color:var(--cr-mute); background:var(--cr-soft); border-style:dashed; }

/* Observations, signature, pied de page */
.cr-notes { min-height:22mm; padding:3.5mm 4mm; border:1px solid var(--cr-line); border-radius:6px; font-size:8.8pt; white-space:normal; break-inside:avoid; }
.cr-lines { display:block; height:18mm; background:repeating-linear-gradient(transparent 0 5.6mm, var(--cr-line) 5.6mm 5.8mm); }
.cr-sign { display:grid; grid-template-columns:45mm 1fr; gap:5mm; margin-top:5mm; break-inside:avoid; }
.cr-sign > div { padding:3mm 3.5mm; border:1px solid var(--cr-line); border-radius:6px; }
.cr-sign-box { min-height:24mm; }
.cr-foot { margin-top:6mm; padding-top:3mm; border-top:1px solid var(--cr-line); font-size:7pt; line-height:1.45; color:var(--cr-mute); break-inside:avoid; }

/* Fiche patient « exercice à domicile » (bouton « Imprimer la fiche patient » de la page QR code) */
.fiche { page:fiche; }
.fiche-domaine { margin-top:9mm; font-size:7.5pt; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--cr-accent); }
.fiche-titre { margin:1.5mm 0 4mm; font-size:24pt; }
.fiche-consigne { margin:0 0 7mm; padding:4mm 5mm; border-left:2.5pt solid var(--cr-accent); border-radius:0 6px 6px 0; background:var(--cr-soft); font-size:13pt; line-height:1.45; color:var(--cr-ink); }
.fiche-corps { display:grid; grid-template-columns:68mm minmax(0,1fr); gap:8mm; align-items:center; }
.fiche-qr { padding:3mm; border:1px solid var(--cr-line); border-radius:8px; }
.fiche-qr svg { display:block; width:100%; height:auto; }
.fiche-corps h2 { margin:0 0 3mm; font-size:12pt; font-weight:750; }
.fiche-etapes { margin:0; padding-left:5mm; font-size:11pt; line-height:1.55; }
.fiche-etapes li + li { margin-top:2mm; }
.fiche-lien { margin:5mm 0 0; font-size:7.5pt; color:var(--cr-mute); overflow-wrap:anywhere; }
.fiche-cases { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3mm; margin:9mm 0 4mm; }
.fiche-cases > div { padding:3.5mm 4mm; border:1px solid var(--cr-line); border-radius:6px; }
.fiche-cases span, .fiche-bloc span { display:block; margin-bottom:1.5mm; font-size:6.8pt; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cr-mute); }
.fiche-cases b { font-size:11pt; font-weight:600; color:var(--cr-ink-2); }
.fiche-bloc { margin-top:4mm; padding:3.5mm 4mm; border:1px solid var(--cr-line); border-radius:6px; font-size:8.5pt; color:var(--cr-ink-2); }
.fiche-conseils .cr-lines { height:24mm; }

@media print {
  @page fiche { @bottom-left { content:"Visuelia · Exercice à domicile"; font:7pt Arial,sans-serif; color:#8a9891; } @bottom-right { content:""; } }
  @page {
    size:A4 portrait; margin:14mm 14mm 16mm;
    @bottom-left { content:"Visuelia · Compte rendu d’exercices"; font:7pt Arial,sans-serif; color:#8a9891; }
    @bottom-right { content:"Page " counter(page) " / " counter(pages); font:7pt Arial,sans-serif; color:#8a9891; }
  }
  html, body, main { background:#fff !important; color:#1e2a26 !important; }
  html, body { margin:0 !important; padding:0 !important; }
  body { min-height:0 !important; -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  main { display:block !important; position:static !important; width:auto !important; max-width:none !important; min-height:0 !important; margin:0 !important; padding:0 !important; overflow:visible !important; }
  main > :not(#report-print) { display:none !important; }
  #report-print, #report-print[hidden] { display:block !important; visibility:visible !important; position:static !important; width:100% !important; height:auto !important; margin:0 !important; padding:0 !important; overflow:visible !important; background:#fff !important; }
  .cr-table thead { display:table-header-group; }
  .cr-h2-break { break-before:page; }
  a { color:inherit !important; text-decoration:none !important; }
}
/* Fiche d’un programme à domicile : liste des exercices */
.fiche-prog { margin:1.5mm 0 0; padding-left:5mm; font-size:10.5pt; line-height:1.45; }
.fiche-prog li + li { margin-top:2.2mm; }
.fiche-prog small { display:block; margin-top:.6mm; font-size:8.5pt; color:var(--cr-mute,#5b6b64); }
/* Travail à domicile : calendrier des jours d’entraînement et tableau par exercice (retour-domicile.js) */
.cr-dom { margin:0 0 5mm; padding:4mm; border:1px solid var(--cr-line,#dfe6e2); border-radius:6px; break-inside:avoid; }
.cr-dom-tete { display:flex; align-items:flex-start; justify-content:space-between; gap:6mm; margin-bottom:3mm; }
.cr-dom-tete b { display:block; font-size:11pt; }
.cr-dom-tete span { display:block; margin-top:.5mm; color:var(--cr-mute,#5b6b64); font-size:8.5pt; }
.cr-dom-chiffre { display:flex; align-items:center; gap:2.5mm; text-align:right; }
.cr-dom-chiffre b { color:var(--cr-accent,#2f7a64); font-size:20pt; line-height:1; }
.cr-dom-corps { display:grid; grid-template-columns:42mm minmax(0,1fr); gap:5mm; align-items:start; }
.cr-dom-jours, .cr-dom-cases { display:grid; grid-template-columns:repeat(7,1fr); gap:.8mm; }
.cr-dom-jours span { color:var(--cr-mute,#5b6b64); font-size:6.5pt; font-weight:700; text-align:center; }
.cr-dom-cases { margin-top:.8mm; }
.cr-dom-cases i { display:grid; place-items:center; aspect-ratio:1; border:1px solid var(--cr-line,#dfe6e2); border-radius:2px; color:var(--cr-mute,#5b6b64); font-size:6pt; font-style:normal; }
.cr-dom-cases i.fait { border-color:var(--cr-accent,#2f7a64); background:var(--cr-accent,#2f7a64); color:#fff; font-weight:700; }
.cr-dom-cases i.hors { border-color:transparent; }
.cr-dom-table { margin:0; }
