/* ================================================================
   FRÉQUENCE LYRA — CHIROMANCIE V4
   Styles modulaires — session forge 2026-06-01
   ================================================================ */

/* ── Variables ── */
:root {
  --fl-noir:    #0d0d1a;
  --fl-mauve:   #7c3aed;
  --fl-or:      #c9a84c;
  --fl-or-clair:#e8d5a3;
  --fl-blanc:   #ffffff;
  --fl-gris:    #f5f5f0;
  --fl-texte:   #1a1a2e;
  --fl-radius:  12px;
  --fl-trans:   all 0.3s ease;
}

/* ── Reset minimal ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Georgia', serif; background: var(--fl-noir); color: var(--fl-blanc); }

/* ── Split-screen ── */
#chiro-container {
  display: flex;
  min-height: 100vh;
  width: 100%;
}

#chiro-left-pane {
  width: 40%;
  background: var(--fl-noir);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  position: sticky;
  top: 0;
  height: 100vh;
}

#chiro-right-pane {
  width: 60%;
  min-height: 100vh;
  background: var(--fl-gris);
  color: var(--fl-texte);
  padding: 3rem 2.5rem;
  transition: opacity 0.3s ease;
  overflow-y: auto;
}

#chiro-right-pane.theme-dark {
  background: var(--fl-noir);
  color: var(--fl-blanc);
}

/* ── Paume d'accueil animée ── */
.chiro-accueil-glowing {
  width: 220px;
  height: 280px;
  background: radial-gradient(ellipse at center, rgba(200,168,76,0.15) 0%, transparent 70%);
  border: 1px solid rgba(200,168,76,0.3);
  border-radius: 50% 50% 45% 45%;
  animation: pulse-or 3s ease-in-out infinite;
}
@keyframes pulse-or {
  0%, 100% { box-shadow: 0 0 20px rgba(200,168,76,0.2); }
  50%       { box-shadow: 0 0 50px rgba(200,168,76,0.5); }
}

/* ── Titres ── */
.chiro-title-gold {
  font-size: 1.8rem;
  color: var(--fl-or);
  margin-bottom: 1.2rem;
  line-height: 1.3;
}
.chiro-step-title {
  font-size: 1.3rem;
  color: var(--fl-mauve);
  margin-bottom: 1rem;
  font-weight: bold;
}

/* ── Info box ── */
.chiro-info-box {
  background: rgba(124,58,237,0.08);
  border-left: 3px solid var(--fl-mauve);
  padding: 0.75rem 1rem;
  border-radius: 6px;
  font-size: 0.9rem;
  margin-bottom: 1.2rem;
  color: var(--fl-texte);
  line-height: 1.6;
}
.theme-dark .chiro-info-box { color: var(--fl-or-clair); }

/* ── Intro container ── */
.chiro-intro-container {
  max-width: 520px;
  margin: 0 auto;
  padding-top: 4rem;
}
.chiro-intro-text {
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 2rem;
  opacity: 0.85;
}

/* ── Carrefour — deux boutons massifs ── */
.chiro-choice-grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.chiro-btn-massive {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(200,168,76,0.4);
  border-radius: var(--fl-radius);
  padding: 1.4rem 1.6rem;
  cursor: pointer;
  transition: var(--fl-trans);
  color: var(--fl-blanc);
  text-align: left;
}
.chiro-btn-massive:hover {
  background: rgba(200,168,76,0.12);
  border-color: var(--fl-or);
}
.chiro-btn-icon { font-size: 1.4rem; color: var(--fl-or); margin-bottom: 0.2rem; }
.chiro-btn-massive strong { font-size: 1rem; }
.chiro-btn-massive small  { font-size: 0.8rem; opacity: 0.65; }

/* ── Image pédagogique ── */
.chiro-pedagogy-wrap { margin-bottom: 1rem; }
.chiro-pedagogy-img-box {
  position: relative;
  display: inline-block;
  background: var(--fl-blanc);
  border-radius: var(--fl-radius);
  padding: 8px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}
.chiro-pedagogy-img {
  max-width: 100%;
  max-height: 320px;
  display: block;
  border-radius: 6px;
}
.chiro-loupe-btn {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background: var(--fl-mauve);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  cursor: pointer;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── Options radio ── */
.chiro-options-list { display: flex; flex-direction: column; gap: 0.7rem; margin-bottom: 1.5rem; }
.chiro-option-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--fl-blanc);
  border: 2px solid transparent;
  border-radius: var(--fl-radius);
  padding: 0.9rem 1rem;
  cursor: pointer;
  transition: var(--fl-trans);
}
.chiro-option-card:hover { border-color: var(--fl-mauve); }
.chiro-option-card input[type="radio"] { accent-color: var(--fl-mauve); width: 18px; height: 18px; flex-shrink: 0; }
.chiro-option-card:has(input:checked) { border-color: var(--fl-mauve); background: rgba(124,58,237,0.05); }
.chiro-option-content { display: flex; flex-direction: column; gap: 0.2rem; }
.chiro-option-content strong { font-size: 0.95rem; color: var(--fl-texte); }
.chiro-option-content span   { font-size: 0.82rem; color: #666; }

/* ── Grille morphologie 6 types ── */
.chiro-morph-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.chiro-morph-card {
  background: var(--fl-blanc);
  border: 2px solid transparent;
  border-radius: var(--fl-radius);
  padding: 0.6rem;
  cursor: pointer;
  transition: var(--fl-trans);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.chiro-morph-card:hover { border-color: var(--fl-mauve); }
.chiro-morph-card:has(input:checked) { border-color: var(--fl-mauve); background: rgba(124,58,237,0.04); }
.chiro-morph-card input[type="radio"] { display: none; }
.chiro-morph-img-wrap { position: relative; }
.chiro-morph-img { width: 100%; border-radius: 6px; display: block; }
.chiro-zoom-btn {
  position: absolute;
  top: 6px; right: 6px;
  background: var(--fl-mauve);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 24px; height: 24px;
  font-size: 0.7rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.chiro-morph-label { text-align: center; }
.chiro-morph-label strong { font-size: 0.82rem; color: var(--fl-texte); display: block; }
.chiro-morph-label span   { font-size: 0.72rem; color: #777; }

/* ── Pane gauche — image sélectionnée ── */
.chiro-left-img-wrap { width: 100%; display: flex; align-items: center; justify-content: center; }
.chiro-left-img { max-width: 80%; max-height: 70vh; border-radius: var(--fl-radius); background: #fff; padding: 8px; }

/* ── Boutons ── */
.chiro-btn-primary {
  background: var(--fl-mauve);
  color: #fff;
  border: none;
  border-radius: var(--fl-radius);
  padding: 0.85rem 2rem;
  font-size: 1rem;
  cursor: pointer;
  transition: var(--fl-trans);
  display: block;
  width: 100%;
}
.chiro-btn-primary:hover { background: #6d28d9; }
.chiro-btn-secondary {
  background: transparent;
  color: var(--fl-or);
  border: 1px solid var(--fl-or);
  border-radius: var(--fl-radius);
  padding: 0.7rem 1.5rem;
  font-size: 0.9rem;
  cursor: pointer;
  transition: var(--fl-trans);
  margin-top: 1rem;
}
.chiro-btn-secondary:hover { background: rgba(200,168,76,0.1); }

/* ── Écran de transition ── */
.chiro-transition-screen { max-width: 480px; margin: 4rem auto; text-align: center; }
.chiro-transition-screen p { margin-bottom: 1rem; line-height: 1.7; }

/* ── Responsive ── */
@media (max-width: 768px) {
  #chiro-container { flex-direction: column; }
  #chiro-left-pane { width: 100%; height: auto; position: static; padding: 1.5rem; }
  #chiro-right-pane { width: 100%; padding: 1.5rem; }
  .chiro-morph-grid { grid-template-columns: repeat(2, 1fr); }
}


/* ── BLOC DÉFINITION (apparaît après sélection d'une option) ─────────────── */
.chiro-definition-box {
  background: rgba(155, 111, 200, 0.08);
  border: 1px solid rgba(155, 111, 200, 0.35);
  border-left: 3px solid #9b6fc8;
  border-radius: 8px;
  padding: 14px 18px;
  margin: 12px 0 8px 0;
  animation: chiro-def-fadein 0.3s ease;
}

@keyframes chiro-def-fadein {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.chiro-def-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9b6fc8;
  margin-bottom: 6px;
}

.chiro-def-text {
  margin: 0;
  font-size: 0.95rem;
  color: #6a3d8f;
  line-height: 1.55;
}

/* ── BOUTON RETOUR ──────────────────────────────────────────────────────── */
.chiro-btn-back {
  display: inline-block;
  margin-top: 10px;
  padding: 8px 18px;
  background: transparent;
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 6px;
  color: #a89060;
  font-size: 0.85rem;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.chiro-btn-back:hover {
  border-color: #d4af37;
  color: #d4af37;
}

/* ── EXPANSION ALTAÏR (texte long dans bloc définition) ─────────────────── */
.chiro-def-expansion {
  font-size: 0.92rem;
  color: #4a2570;
  line-height: 1.6;
}
.chiro-def-expansion strong {
  display: block;
  margin-bottom: 6px;
  color: #6a3d8f;
  font-size: 0.95rem;
}
.chiro-def-expansion em {
  display: block;
  margin-top: 10px;
  color: #7b52a0;
  font-style: italic;
  font-size: 0.88rem;
  border-top: 1px solid rgba(155,111,200,0.2);
  padding-top: 8px;
}

/* ── GRILLE MATRICIELLE 3×3 PHALANGES ───────────────────────────────────── */
.chiro-matrix-wrap {
  overflow-x: auto;
  margin: 16px 0;
}

.chiro-matrix-table {
  width: 100%;
  border-collapse: collapse;
  background: rgba(255,255,255,0.03);
  border-radius: 10px;
  overflow: hidden;
}

.chiro-matrix-table thead th {
  padding: 10px 14px;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9b6fc8;
  background: rgba(155, 111, 200, 0.08);
  border-bottom: 1px solid rgba(155, 111, 200, 0.2);
}

.chiro-matrix-table thead th:first-child {
  text-align: left;
  width: 38%;
}

.chiro-matrix-table tbody tr {
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: background 0.15s;
}

.chiro-matrix-table tbody tr:last-child {
  border-bottom: none;
}

.chiro-matrix-table tbody tr:hover {
  background: rgba(155, 111, 200, 0.05);
}

.chiro-matrix-row-label {
  padding: 12px 14px;
  vertical-align: middle;
}

.chiro-matrix-row-label strong {
  display: block;
  font-size: 0.88rem;
  color: #e8dcc8;
}

.chiro-matrix-row-label span {
  font-size: 0.76rem;
  color: #7a6a5a;
}

.chiro-matrix-cell {
  text-align: center;
  vertical-align: middle;
  padding: 10px 8px;
}

/* Radio personnalisé */
.chiro-matrix-radio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.chiro-matrix-radio input[type="radio"] {
  display: none;
}

.chiro-matrix-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid rgba(155, 111, 200, 0.4);
  background: transparent;
  transition: all 0.2s;
  display: block;
}

.chiro-matrix-radio input[type="radio"]:checked + .chiro-matrix-dot {
  background: #9b6fc8;
  border-color: #9b6fc8;
  box-shadow: 0 0 8px rgba(155, 111, 200, 0.5);
}

/* Preview résultat dynamique */
.chiro-matrix-preview {
  background: rgba(155, 111, 200, 0.07);
  border: 1px solid rgba(155, 111, 200, 0.25);
  border-left: 3px solid #9b6fc8;
  border-radius: 8px;
  padding: 16px 18px;
  margin: 12px 0 8px 0;
  animation: chiro-def-fadein 0.3s ease;
}

.chiro-matrix-accroche {
  font-size: 0.9rem;
  font-weight: 600;
  color: #9b6fc8;
  margin: 0 0 10px 0;
  font-style: italic;
}

.chiro-matrix-result {
  margin: 0 0 8px 0;
  padding-left: 16px;
  list-style: none;
}

.chiro-matrix-result li {
  font-size: 0.88rem;
  color: #4a2570;
  line-height: 1.55;
  margin-bottom: 6px;
  padding-left: 8px;
  border-left: 2px solid rgba(155,111,200,0.3);
}

.chiro-matrix-result li strong {
  color: #6a3d8f;
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.chiro-matrix-nuance {
  margin: 10px 0 0 0;
  font-size: 0.85rem;
  color: #7b52a0;
  font-style: italic;
  border-top: 1px solid rgba(155,111,200,0.2);
  padding-top: 8px;
}

/* ================================================
   CHIROLOGIE — Classes Phase 2 (fl-chiro-chirologie.js)
   ================================================ */

/* --- En-tête de ligne --- */
.chiro-ligne-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.chiro-ligne-progression {
  font-size: 0.78rem;
  color: #9b6fc8;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.8;
}

.chiro-ligne-essence {
  font-size: 0.85rem;
  color: #6a3d8f;
  font-style: italic;
  margin-bottom: 12px;
  padding: 6px 10px;
  background: rgba(155,111,200,0.08);
  border-radius: 6px;
  border-left: 3px solid rgba(155,111,200,0.4);
}

/* --- Sous-titre section --- */
.chiro-sub-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9b6fc8;
  margin: 18px 0 8px 0;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(155,111,200,0.2);
}

/* --- Groupe A/B/C --- */
.chiro-ligne-groupe {
  margin-bottom: 14px;
}

.chiro-groupe-titre {
  font-size: 0.72rem;
  font-weight: 700;
  color: #7b52a0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}

.chiro-groupe-hint {
  font-size: 0.75rem;
  color: #9b6fc8;
  font-style: italic;
  margin-bottom: 8px;
}

/* --- Cards à cocher (check-card) --- */
.chiro-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}

.chiro-check-grid--accidents {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.chiro-check-card {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  background: rgba(255,255,255,0.05);
  border: 1.5px solid rgba(155,111,200,0.25);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.18s ease;
  user-select: none;
}

.chiro-check-card:hover {
  border-color: rgba(155,111,200,0.6);
  background: rgba(155,111,200,0.1);
}

.chiro-check-card--selected {
  border-color: #9b6fc8;
  background: rgba(155,111,200,0.2);
}

.chiro-check-icon {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  border: 2px solid rgba(155,111,200,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 12px;
  color: #9b6fc8;
  background: transparent;
  transition: all 0.15s ease;
}

.chiro-check-card--selected .chiro-check-icon {
  background: #9b6fc8;
  border-color: #9b6fc8;
  color: #fff;
}

.chiro-check-label {
  font-size: 0.8rem;
  color: #d4b8f0;
  line-height: 1.3;
}

/* --- Radio inline --- */
.chiro-radio-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.chiro-radio-inline label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: #c8a8e8;
  cursor: pointer;
  padding: 4px 10px;
  border: 1.5px solid rgba(155,111,200,0.25);
  border-radius: 20px;
  transition: all 0.15s ease;
}

.chiro-radio-inline label:hover {
  border-color: rgba(155,111,200,0.6);
  background: rgba(155,111,200,0.08);
}

.chiro-radio-inline input[type="radio"]:checked + span,
.chiro-radio-inline input[type="radio"] {
  accent-color: #9b6fc8;
}

/* --- Détail / explication contextuelle --- */
.chiro-detail-box {
  background: rgba(155,111,200,0.1);
  border: 1px solid rgba(155,111,200,0.3);
  border-radius: 8px;
  padding: 10px 14px;
  margin-top: 10px;
  font-size: 0.82rem;
  color: #c8a8e8;
  line-height: 1.55;
}

/* --- Curseur temporel --- */
.chiro-curseurs-section {
  margin-top: 16px;
  padding: 12px;
  background: rgba(155,111,200,0.06);
  border-radius: 8px;
  border: 1px dashed rgba(155,111,200,0.3);
}

.chiro-curseur-bloc {
  margin-bottom: 14px;
}

.chiro-curseur-label {
  font-size: 0.78rem;
  color: #9b6fc8;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 6px;
  display: block;
}

.chiro-curseur-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.chiro-curseur-extreme {
  font-size: 0.72rem;
  color: #7b52a0;
  min-width: 30px;
  text-align: center;
}

.chiro-curseur-slider {
  flex: 1;
  -webkit-appearance: none;
  height: 4px;
  border-radius: 2px;
  background: linear-gradient(to right, #6a3d8f, #c8a8e8);
  outline: none;
  cursor: pointer;
}

.chiro-curseur-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #9b6fc8;
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

.chiro-curseur-slider::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #9b6fc8;
  cursor: pointer;
  border: 2px solid #fff;
}

.chiro-curseur-badge {
  display: inline-block;
  margin-top: 6px;
  padding: 3px 10px;
  background: rgba(155,111,200,0.2);
  border-radius: 12px;
  font-size: 0.75rem;
  color: #d4b8f0;
  font-weight: 600;
}

.chiro-curseur-value {
  font-size: 0.78rem;
  color: #c8a8e8;
  min-width: 60px;
  text-align: center;
}

/* --- Rascettes --- */
.chiro-rascettes-wrap {
  display: flex;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.chiro-rascette-btn {
  padding: 8px 18px;
  border-radius: 20px;
  border: 1.5px solid rgba(155,111,200,0.35);
  background: rgba(255,255,255,0.04);
  color: #c8a8e8;
  font-size: 0.84rem;
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: inherit;
}

.chiro-rascette-btn:hover {
  border-color: rgba(155,111,200,0.7);
  background: rgba(155,111,200,0.12);
}

.chiro-rascette-btn--selected {
  background: rgba(155,111,200,0.25);
  border-color: #9b6fc8;
  color: #fff;
  font-weight: 600;
}

/* --- Section anneaux --- */
.chiro-anneaux-section {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(155,111,200,0.2);
}

/* ================================================
   RESTITUTION V4 — fl-chiro-restitution-v4.js
   ================================================ */

/* --- Loader --- */
.chiro-restitution-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  gap: 18px;
}
.chiro-restitution-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(155,111,200,0.2);
  border-top-color: #9b6fc8;
  border-radius: 50%;
  animation: fl-spin 0.9s linear infinite;
}
@keyframes fl-spin { to { transform: rotate(360deg); } }
.chiro-restitution-loader-txt {
  font-size: 0.9rem;
  color: #9b6fc8;
  letter-spacing: 0.05em;
}

/* --- Navigation onglets --- */
.fl-rapport-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(155,111,200,0.2);
  flex-wrap: wrap;
}
.fl-rapport-tab {
  padding: 7px 18px;
  border-radius: 20px;
  border: 1.5px solid rgba(155,111,200,0.3);
  background: transparent;
  color: #c8a8e8;
  font-size: 0.84rem;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s ease;
}
.fl-rapport-tab:hover { border-color: #9b6fc8; background: rgba(155,111,200,0.1); }
.fl-rapport-tab--active {
  background: rgba(155,111,200,0.25);
  border-color: #9b6fc8;
  color: #fff;
  font-weight: 600;
}
.fl-rapport-print-btn {
  margin-left: auto;
  padding: 7px 16px;
  border-radius: 20px;
  border: 1.5px solid rgba(201,168,76,0.4);
  background: rgba(201,168,76,0.08);
  color: #C9A84C;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s ease;
}
.fl-rapport-print-btn:hover { background: rgba(201,168,76,0.18); border-color: #C9A84C; }

/* --- Vue rapport --- */
.fl-rapport-view { padding-bottom: 20px; }
.fl-rapport-footer { margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(155,111,200,0.15); }

/* --- En-tête interne --- */
.fl-rapport-header-inner { margin-bottom: 20px; }
.fl-rapport-h2 {
  font-size: 1.2rem;
  font-weight: 700;
  color: #d4b8f0;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.fl-rapport-subtitle {
  font-size: 0.78rem;
  color: #7b52a0;
  letter-spacing: 0.05em;
}

/* --- Blocs --- */
.fl-rapport-bloc {
  margin-bottom: 20px;
  padding: 14px 16px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(155,111,200,0.15);
  border-radius: 8px;
}
.fl-rapport-h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.88rem;
  font-weight: 700;
  color: #c8a8e8;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}
.fl-rapport-bloc-lettre {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(155,111,200,0.25);
  font-size: 0.75rem;
  font-weight: 700;
  color: #d4b8f0;
  flex-shrink: 0;
}

/* --- Listes --- */
.fl-rapport-liste {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.fl-rapport-liste li {
  font-size: 0.83rem;
  color: #c8a8e8;
  line-height: 1.55;
  padding-left: 10px;
  border-left: 2px solid rgba(155,111,200,0.25);
}
.fl-rapport-liste--absentes li {
  border-left-color: rgba(155,111,200,0.12);
  color: #7b52a0;
  font-style: italic;
}
.fl-rapport-section-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9b6fc8;
  margin: 14px 0 6px 0;
}
.fl-rapport-section-label--absentes { color: #5a3a70; }
.fl-rapport-no-data {
  font-size: 0.82rem;
  color: #5a3a70;
  font-style: italic;
}

/* --- Piliers analyse croisée --- */
.fl-rapport-pilier { border-left: 3px solid rgba(155,111,200,0.4); }
.fl-rapport-pilier-titre { color: #d4b8f0; }
.fl-rapport-pilier-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(155,111,200,0.3);
  font-size: 0.72rem;
  font-weight: 700;
  color: #d4b8f0;
  flex-shrink: 0;
}
.fl-rapport-pilier-hint {
  font-size: 0.75rem;
  color: #7b52a0;
  font-style: italic;
  margin-bottom: 12px;
}

/* --- Blocs croisement --- */
.fl-rapport-croisement {
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.fl-rapport-croisement--amplif {
  background: rgba(201,168,76,0.07);
  border: 1px solid rgba(201,168,76,0.25);
}
.fl-rapport-croisement--paradoxe {
  background: rgba(255,140,105,0.06);
  border: 1px solid rgba(255,140,105,0.2);
}
.fl-rapport-croisement--neutre {
  background: rgba(155,111,200,0.05);
  border: 1px solid rgba(155,111,200,0.15);
}
.fl-rapport-cr-badge {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
  margin-bottom: 6px;
}
.fl-rapport-cr-badge--amplif  { color: #C9A84C; }
.fl-rapport-cr-badge--paradoxe { color: #FF8C69; }
.fl-rapport-cr-titre {
  display: block;
  font-size: 0.88rem;
  color: #d4b8f0;
  margin-bottom: 6px;
}
.fl-rapport-cr-texte {
  font-size: 0.83rem;
  color: #c8a8e8;
  line-height: 1.65;
  margin: 0;
}

/* --- CTA Formation Praticien --- */
.fl-cta-praticien-chiro {
  margin-top: 28px;
  padding: 24px 20px;
  background: linear-gradient(135deg, rgba(155,111,200,0.08), rgba(201,168,76,0.06));
  border: 1px solid rgba(201,168,76,0.25);
  border-radius: 10px;
  text-align: center;
}
.fl-cta-eyebrow {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(201,168,76,0.6);
  margin-bottom: 8px;
}
.fl-cta-titre {
  font-size: 1.1rem;
  font-weight: 700;
  color: #d4b8f0;
  margin-bottom: 10px;
}
.fl-cta-texte {
  font-size: 0.84rem;
  color: rgba(200,168,232,0.75);
  line-height: 1.65;
  margin-bottom: 18px;
}
.fl-cta-btn {
  display: inline-block;
  padding: 11px 24px;
  background: linear-gradient(135deg, rgba(201,168,76,0.15), rgba(155,111,200,0.12));
  border: 1.5px solid rgba(201,168,76,0.4);
  border-radius: 8px;
  color: #C9A84C;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: all 0.2s ease;
}
.fl-cta-btn:hover {
  background: linear-gradient(135deg, rgba(201,168,76,0.25), rgba(155,111,200,0.2));
  border-color: #C9A84C;
  color: #fff;
}

/* ================================================
   @media print — rapport V4 (veto jsPDF Altaïr)
   ================================================ */


/* ══════════════════════════════════════════════════════════════
   @MEDIA PRINT — VETO jsPDF (Altaïr Veritas)
   Seule la zone de restitution est imprimée.
   ══════════════════════════════════════════════════════════════ */
@media print {
  /* Masquer tout sauf la restitution */
  body > *:not(#chiro-app-conteneur),
  #chiro-left-pane,
  #chiro-sas-view,
  .chiro-btn-primary,
  .chiro-btn-secondary,
  .chiro-btn-back,
  .chiro-btn-massive,
  .chiro-loupe-btn,
  nav, header, footer,
  .app-tab-btn,
  #chiro-palette-signes,
  #chiro-labo-statut,
  #btn-labo-terminer,
  #btn-labo-back {
    display: none !important;
  }

  /* Zone de restitution : pleine largeur */
  #fl-rapport-view-p1,
  #fl-rapport-view-p2 {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 10mm !important;
    box-shadow: none !important;
    background: #fff !important;
    color: #000 !important;
  }

  /* Saut de page entre P1 et P2 */
  #fl-rapport-view-p2 {
    page-break-before: always !important;
  }

  /* Éviter les coupures de titres et paragraphes */
  h1, h2, h3,
  .fl-rapport-h2,
  .fl-rapport-h3,
  .fl-rapport-bloc-titre {
    page-break-after: avoid !important;
  }

  .fl-rapport-para,
  .fl-rapport-liste li {
    page-break-inside: avoid !important;
  }

  /* Supprimer les ombres et effets visuels */
  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  /* Forcer les couleurs sombres sur fond blanc */
  .fl-rapport-view {
    background: #fff !important;
    color: #111 !important;
  }

  .fl-rapport-h2,
  .fl-rapport-h3,
  .fl-rapport-bloc-lettre {
    color: #2a1a4a !important;
  }
}


  /* Forcer couleurs */
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

  /* Afficher les deux vues */
  .fl-rapport-view { display: block !important; }

  /* Fond blanc, texte lisible */
  body { background: white !important; }
  .fl-rapport-view, .fl-rapport-brut, .fl-analyse-croisee {
    color: #1a0a2e !important;
    max-width: 100%;
    padding: 0 12mm;
  }

  /* Blocs sans coupure */
  .fl-rapport-bloc, .fl-rapport-croisement {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    margin-bottom: 12pt;
    border: 0.5pt solid rgba(155,111,200,0.3) !important;
  }

  .fl-rapport-h2 { color: #6a3d8f !important; }
  .fl-rapport-h3 { color: #4a2570 !important; }
  .fl-rapport-liste li { color: #2a1a3e !important; border-left-color: rgba(155,111,200,0.4) !important; }
  .fl-rapport-cr-texte { color: #2a1a3e !important; }

  /* CTA visible à l'impression */
  .fl-cta-praticien-chiro {
    border: 1pt solid rgba(201,168,76,0.5) !important;
    page-break-inside: avoid !important;
  }
  .fl-cta-btn { color: #7a5a00 !important; border-color: rgba(201,168,76,0.6) !important; }
}
