/* =============================================================
   atlas-edn · Item 207 (Opacités et masses intra-thoraciques)
   Matière Pneumologie (.mat-pneumo — palette posée par 203/204/205/209)
   Variables CSS uniquement — pas de couleurs en dur.
   ============================================================= */

/* ---------- Mindmap : couleurs des familles (6 axes) ---------- */
.fam-sem .node-accent     { fill: var(--accent, var(--spe-pneumo)); }            /* sémio */
.fam-rxt .node-accent     { fill: var(--accent-blue, var(--spe-cardio)); }       /* lecture RXT */
.fam-paren .node-accent   { fill: var(--accent-green-strong, var(--spe-pneumo)); } /* parenchyme */
.fam-plev .node-accent    { fill: var(--accent-orange, var(--spe-orl)); }        /* plèvre */
.fam-med .node-accent     { fill: var(--alert-red); }                            /* médiastin (hot spot) */
.fam-ped .node-accent     { fill: var(--spe-neuro); }                            /* pédiatrie & démarche */

/* Médiastin = hot spot, glow visuel + bordure plus épaisse */
.node-card.is-hot .node-bg {
  stroke: var(--alert-red);
  stroke-width: 2.5;
  filter: drop-shadow(0 0 6px color-mix(in oklab, var(--alert-red) 40%, transparent));
}

.node-sat.sat-danger .sat-bg {
  fill: var(--alert-red-soft);
  stroke: var(--alert-red);
  stroke-width: 1.5;
}
.node-sat.sat-danger .sat-title { fill: var(--alert-red); font-weight: 600; }

/* ---------- Vignette + Keypoints + Définitions ---------- */
.kp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
  margin-top: 12px;
}
.kp-card {
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-left: 4px solid var(--accent, var(--spe-pneumo));
  border-radius: var(--radius-md);
  padding: 14px 16px;
  position: relative;
}
.kp-card .kp-num {
  position: absolute;
  top: 10px; right: 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-muted);
  letter-spacing: 0.08em;
}
.kp-card h3 {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 500;
  color: var(--accent-strong, var(--spe-pneumo));
  margin: 0 0 6px;
  padding-right: 24px;
}
.kp-card p, .kp-card ul { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink); }
.kp-card ul { padding-left: 18px; }
.kp-card li { margin-bottom: 4px; }

.def-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.def-card-mini {
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  padding: 12px 14px;
}
.def-card-mini h4 {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 500;
  color: var(--accent-strong, var(--spe-pneumo));
  margin: 0 0 6px;
}
.def-card-mini p { margin: 0; font-size: 12.5px; line-height: 1.5; }

/* ---------- Profil-cards génériques ---------- */
.profil-card {
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.profil-card-title {
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 500;
  color: var(--accent-strong, var(--spe-pneumo));
  margin: 0 0 4px;
  padding-bottom: 8px;
  border-bottom: 1px dashed var(--accent-dash);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.rang-mini {
  font-family: var(--font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-muted);
  font-weight: normal;
}
.profil-card .ludic-block { margin: 0; }
.profil-card .ludic-block b {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
  margin-bottom: 2px;
}
.profil-card .ludic-block p,
.profil-card .ludic-block ul {
  margin: 2px 0 0;
  font-size: 13px;
  line-height: 1.5;
}
.profil-card .ludic-block ul { padding-left: 18px; }
.profil-card .ludic-block li { margin-bottom: 3px; }
.profil-card .ludic-block.point-cle {
  background: var(--accent-soft, var(--bg-card));
  border-left: 3px solid var(--accent-strong, var(--spe-pneumo));
  padding: 8px 12px;
  border-radius: var(--radius-sm);
}
.profil-card .ludic-block.point-cle b {
  color: var(--accent-strong, var(--spe-pneumo));
}

/* ---------- Vignette ---------- */
.vg-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-strong, var(--spe-pneumo));
  background: var(--accent-soft, var(--bg-card));
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
}
.vignette {
  background: var(--accent-soft, var(--bg-card));
  border-left: 4px solid var(--accent, var(--spe-pneumo));
  border-radius: var(--radius-md);
  padding: 14px 18px;
  margin: 12px 0 16px;
  font-size: 13.5px;
  line-height: 1.55;
}
.vignette p { margin: 0; }

/* ---------- Tableau natif ---------- */
.natif-table {
  width: 100%;
  border-collapse: collapse;
  margin: 6px 0 18px;
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  font-size: 13px;
}
.natif-table thead {
  background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 12%, var(--bg-card));
}
.natif-table th {
  text-align: left;
  padding: 10px 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent-strong, var(--spe-pneumo));
  border-bottom: 1px solid var(--accent-border);
}
.natif-table td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--accent-border);
  vertical-align: top;
  line-height: 1.5;
}
.natif-table tr:last-child td { border-bottom: none; }
.natif-table tr:hover td {
  background: color-mix(in oklab, var(--accent-soft, var(--bg-cream)) 30%, var(--bg-card));
}

/* ---------- Bloc soft (notes, cadres) ---------- */
.bg-soft {
  background: var(--accent-soft, var(--bg-card));
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  margin: 14px 0;
}
.bg-soft h4 {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 6px;
  color: var(--accent-strong, var(--spe-pneumo));
}
.bg-soft p { margin: 0; font-size: 13px; line-height: 1.55; }
.bg-soft ul { margin: 4px 0 0; padding-left: 18px; font-size: 13px; line-height: 1.5; }
.bg-soft li { margin-bottom: 3px; }

.note-box {
  background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 6%, var(--bg-card));
  border-left: 3px solid var(--accent-dash);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  margin: 8px 0 14px;
  font-size: 12.5px;
  line-height: 1.55;
  font-style: italic;
}

/* ---------- Alerte rouge ---------- */
.alerte-rouge {
  background: var(--alert-red-soft);
  border-left: 4px solid var(--danger, var(--alert-red));
  border-radius: var(--radius-md);
  padding: 14px 16px;
  margin: 14px 0;
}
.alerte-rouge h4 {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 500;
  margin: 0 0 6px;
  color: var(--danger, var(--alert-red));
}
.alerte-rouge p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink);
}

/* ---------- Onglet 03 : ABCDE thorax ---------- */
.abcde-wrap { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; }
.abcde-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-left: 4px solid var(--accent-strong, var(--spe-pneumo));
  border-radius: var(--radius-md);
  padding: 14px 16px;
  align-items: center;
}
.abcde-letter {
  font-family: var(--font-serif);
  font-size: 48px;
  font-weight: 500;
  color: var(--accent-strong, var(--spe-pneumo));
  text-align: center;
  line-height: 1;
}
.abcde-content h4 {
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 500;
  margin: 0 0 6px;
  color: var(--ink);
}
.abcde-content p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
}

/* ---------- Onglet 04 : étiologies parenchymateuses ---------- */
.etio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  margin-top: 12px;
}
.etio-card {
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  padding: 14px 16px;
}
.etio-card h4 {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 8px;
  color: var(--accent-strong, var(--spe-pneumo));
}
.etio-card ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.5; }
.etio-card li { margin-bottom: 5px; }
.etio-danger { border-left: 4px solid var(--alert-red); }
.etio-ok     { border-left: 4px solid var(--accent-green-strong, var(--spe-pneumo)); }
.etio-warn   { border-left: 4px solid var(--accent-orange, var(--spe-orl)); }

/* ---------- Onglet 05 : 3 syndromes radiologiques (cards comparatives side-by-side) ---------- */
.syndromes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 14px;
  margin-top: 12px;
}
.syndrome-card.tone-syndrome-a  { border-top: 4px solid var(--accent-blue, var(--spe-cardio)); }
.syndrome-card.tone-syndrome-i  { border-top: 4px solid var(--alert-red); }
.syndrome-card.tone-syndrome-at { border-top: 4px solid var(--accent-orange, var(--spe-orl)); }

/* ---------- Onglet 06 : épanchements pleuraux (2 cards) ---------- */
.plevre-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 14px;
  margin-top: 12px;
}
.plev-card.tone-rang-a  { border-left: 4px solid var(--accent, var(--spe-pneumo)); }
.plev-card.tone-danger  { border-left: 4px solid var(--alert-red); }

/* ---------- Onglet 07 : MÉDIASTIN — schéma SVG 9 loges (PIÈCE MAÎTRESSE) ---------- */
.four-t-badge {
  background: color-mix(in oklab, var(--alert-red) 8%, var(--bg-card));
  border: 1px solid var(--alert-red);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  margin: 14px 0;
}
.four-t-badge h4 {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--alert-red);
}
.four-t-badge p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
}

.med-fig {
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  padding: 16px;
  margin: 16px 0;
}
.med-fig figcaption {
  font-size: 12px;
  color: var(--ink-muted);
  font-style: italic;
  margin-top: 12px;
  line-height: 1.5;
  text-align: center;
}
.med-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 18px;
  align-items: start;
}
@media (max-width: 768px) {
  .med-grid { grid-template-columns: 1fr; }
}

.med-svg-wrap {
  background: color-mix(in oklab, var(--bg-cream) 60%, var(--bg-card));
  border-radius: var(--radius-sm);
  padding: 8px;
}
.med-svg {
  width: 100%;
  height: auto;
  max-width: 600px;
  display: block;
  margin: 0 auto;
}

/* Silhouettes thorax (fond) */
.med-thorax .med-lung {
  fill: color-mix(in oklab, var(--ink) 4%, var(--bg-cream));
  stroke: color-mix(in oklab, var(--ink) 18%, transparent);
  stroke-width: 1.5;
}
.med-thorax .med-heart {
  fill: color-mix(in oklab, var(--alert-red) 10%, var(--bg-cream));
  stroke: color-mix(in oklab, var(--alert-red) 35%, transparent);
  stroke-width: 1.2;
}
.med-thorax .med-trachee {
  stroke: color-mix(in oklab, var(--ink) 50%, transparent);
  stroke-width: 8;
  stroke-linecap: round;
  opacity: 0.5;
}
.med-thorax .med-aorte {
  stroke: color-mix(in oklab, var(--alert-red) 50%, transparent);
  stroke-width: 6;
  stroke-linecap: round;
  opacity: 0.5;
}
.med-thorax .med-diaphragme {
  stroke: color-mix(in oklab, var(--ink) 35%, transparent);
  stroke-width: 2;
  opacity: 0.6;
}

/* Lignes de partage */
.med-grid-lines line {
  stroke: var(--ink);
  stroke-width: 1.2;
  stroke-dasharray: 4 3;
  opacity: 0.4;
}

/* 9 zones cliquables */
.med-loge { cursor: pointer; }
.med-zone {
  fill: color-mix(in oklab, var(--accent-orange, var(--spe-orl)) 18%, transparent);
  stroke: var(--ink);
  stroke-width: 1.5;
  transition: fill 0.18s ease, stroke-width 0.18s ease;
}
.med-loge:hover .med-zone {
  fill: color-mix(in oklab, var(--accent-orange, var(--spe-orl)) 45%, transparent);
}
.med-loge.is-active .med-zone {
  fill: color-mix(in oklab, var(--alert-red) 28%, transparent);
  stroke: var(--alert-red);
  stroke-width: 2.5;
}
.med-zone-label {
  font-family: var(--font-mono);
  font-size: 11px;
  fill: var(--ink);
  pointer-events: none;
  font-weight: 600;
}

/* Compartiments différents (couleur de fond légèrement différente au repos pour visibilité) */
.med-loge[data-comp="ant"] .med-zone {
  fill: color-mix(in oklab, var(--accent-orange, var(--spe-orl)) 14%, transparent);
}
.med-loge[data-comp="moy"] .med-zone {
  fill: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 14%, transparent);
}
.med-loge[data-comp="pos"] .med-zone {
  fill: color-mix(in oklab, var(--spe-neuro) 12%, transparent);
}

/* Détail latéral */
.med-detail {
  background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 6%, var(--bg-card));
  border: 1px solid var(--accent-border);
  border-left: 4px solid var(--accent-strong, var(--spe-pneumo));
  border-radius: var(--radius-md);
  padding: 14px 16px;
  min-height: 200px;
}
.med-detail h4 {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 500;
  margin: 0 0 8px;
  color: var(--accent-strong, var(--spe-pneumo));
}
.med-detail p { margin: 0 0 10px; font-size: 12.5px; line-height: 1.5; color: var(--ink-muted); }
.med-detail-list { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.55; }
.med-detail-list li { margin-bottom: 8px; }

/* ---------- Onglet 08 : matrice 3×3 ---------- */
.matrice-3x3 {
  display: grid;
  grid-template-columns: 120px 1fr 1fr 1fr;
  gap: 0;
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  margin: 12px 0 18px;
}
.matrice-corner {
  background: var(--accent-soft, var(--bg-card));
  border-right: 1px solid var(--accent-border);
  border-bottom: 1px solid var(--accent-border);
}
.matrice-h {
  background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 14%, var(--bg-card));
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: var(--accent-strong, var(--spe-pneumo));
  padding: 10px 12px;
  border-bottom: 1px solid var(--accent-border);
}
.matrice-h-ant { background: color-mix(in oklab, var(--accent-orange, var(--spe-orl)) 16%, var(--bg-card)); }
.matrice-h-moy { background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 16%, var(--bg-card)); }
.matrice-h-pos { background: color-mix(in oklab, var(--spe-neuro) 14%, var(--bg-card)); }
.matrice-rh {
  background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 8%, var(--bg-card));
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  color: var(--accent-strong, var(--spe-pneumo));
  padding: 12px;
  border-right: 1px solid var(--accent-border);
  border-bottom: 1px solid var(--accent-border);
}
.matrice-cell {
  padding: 12px 14px;
  font-size: 12.5px;
  line-height: 1.5;
  border-right: 1px solid var(--accent-border);
  border-bottom: 1px solid var(--accent-border);
  background: var(--bg-card);
}
.matrice-cell:last-child { border-right: none; }
.matrice-cell ul { margin: 0; padding-left: 18px; }
.matrice-cell li { margin-bottom: 4px; }
.matrice-cell-ant { background: color-mix(in oklab, var(--accent-orange, var(--spe-orl)) 5%, var(--bg-card)); }
.matrice-cell-moy { background: color-mix(in oklab, var(--accent, var(--spe-pneumo)) 5%, var(--bg-card)); }
.matrice-cell-pos { background: color-mix(in oklab, var(--spe-neuro) 5%, var(--bg-card)); }

@media (max-width: 768px) {
  .matrice-3x3 {
    grid-template-columns: 90px 1fr 1fr 1fr;
    font-size: 11px;
  }
  .matrice-cell { padding: 8px 10px; font-size: 11.5px; }
}

/* ---------- Onglet 08 : profils tumeurs ---------- */
.profils-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 16px;
  margin-top: 12px;
}
.profil-tumeur.tone-profil-tet   { border-left: 4px solid var(--accent, var(--spe-pneumo)); }
.profil-tumeur.tone-profil-lymph { border-left: 4px solid var(--alert-red); }
.profil-tumeur.tone-profil-germ  { border-left: 4px solid var(--accent-orange, var(--spe-orl)); }
.profil-tumeur.tone-profil-neuro { border-left: 4px solid var(--spe-neuro); }
.profil-lien {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--accent-strong, var(--spe-pneumo));
  text-decoration: none;
  border: 1px solid var(--accent-dash);
  padding: 3px 8px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}
.profil-lien:hover {
  background: var(--accent-soft, var(--bg-card));
  border-color: var(--accent-strong, var(--spe-pneumo));
}

/* ---------- Onglet 09 : pédiatrie ---------- */
.ped-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 16px;
  margin-top: 12px;
}
.ped-card.tone-rang-b { border-left: 4px solid var(--accent, var(--spe-pneumo)); }

/* ---------- Onglet 10 : fracture de côte ---------- */
.cote-card { border-left: 4px solid var(--accent-orange, var(--spe-orl)); margin: 12px 0; }

/* ---------- Onglet 13 : pièges EDN ---------- */
.pieges-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  margin-top: 12px;
}
.piege-card {
  background: var(--bg-card);
  border: 1px solid var(--accent-border);
  border-left: 4px solid var(--alert-red);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  position: relative;
}
.piege-card .piege-num {
  position: absolute;
  top: 10px; right: 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--alert-red);
  letter-spacing: 0.05em;
}
.piege-card h4 {
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 500;
  color: var(--alert-red);
  margin: 0 0 6px;
  padding-right: 36px;
}
.piege-card p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink); }
