/*
 * nlm-mindmap-radial.css — Vue radiale (cercles concentriques) de la carte
 * mentale, vue ALTERNATIVE à la vue linéaire Markmap (nlm-common.css,
 * section ".nlm-mindmap .mmk-*", INCHANGÉE). Namespace ".mmkr-*" dédié,
 * fichier neuf et indépendant (voir CLAUDE.md §5 Mindmap / §10.2).
 */

/* En-tête : titre à gauche, bascule de vue à droite (mmk-head passe en flex,
   propriétés additives — ne redéfinit aucune valeur déjà posée par
   nlm-common.css sur ce même sélecteur). */
.nlm-mindmap .mmk-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
/* Bascule de vue — UN SEUL bouton icône (v0.29.0, remplace la pile à 2
   segments "Vue linéaire"/"Vue radiale") : l'icône affichée et l'infobulle
   décrivent toujours la vue CIBLE (celle qu'on obtient en cliquant), jamais
   la vue affichée — demande explicite. Couleurs/forme génériques
   .mmk-icon-btn/.mmk-c-blue (nlm-common.css). */
/* z-index (v0.29.3, corrige une régression du correctif v0.29.2) : promeut
   UNIQUEMENT .mmk-vt-btn (pas tout .mmk-head, essayé en v0.29.2 puis retiré)
   dans son propre contexte d'empilement, au-dessus du contenu de .mmk-view
   (son frère, resté à z-index:auto) — nécessaire pour que son infobulle
   (ancrée EN DESSOUS du bouton, ci-dessous) ne passe pas derrière les
   boutons de .mmk-btns/.mmkr-btns juste en dessous. Promouvoir .mmk-head EN
   ENTIER (v0.29.2) réglait ce cas mais créait la régression inverse : le
   fond opaque de TOUT .mmk-head passait alors devant les infobulles de
   .mmk-btns (qui pointent vers le haut, empiétant sur .mmk-head) — un
   contexte d'empilement peint comme un bloc scellé, en entier, au-dessus ou
   en dessous de son frère, quel que soit le z-index interne de ses propres
   descendants. En élevant seulement .mmk-vt-btn (pas .mmk-head), les deux
   sens restent corrects : .mmk-head lui-même reste plat (ne bloque plus
   .mmk-btns), et .mmk-vt-btn s'échappe individuellement au-dessus. */
.nlm-mindmap .mmk-vt-btn { margin-left: auto; position: relative; z-index: 5; }

/* Bouton plein écran — un par vue, DERNIER bouton de .mmk-btns/.mmkr-btns
   (après Zoom −), séparé du groupe zoom par un léger décalage plutôt que
   poussé à l'extrémité de la ligne (v0.29.0, retour utilisateur explicite —
   avant : margin-left:auto). Couleur/forme génériques .mmk-icon-btn/.mmk-c-gold
   (nlm-common.css) ; l'état actif (plein écran en cours) est déjà géré par
   la règle générique .mmk-icon-btn.is-active, rien à redéfinir ici. */
.nlm-mindmap .mmk-fs-btn { margin-left: 1.4em; }

/* Plein écran : bascule via l'API Fullscreen native (Échap pour quitter est un
   comportement NATIF du navigateur, rien à coder côté clavier — voir
   nlm-mindmap.js). Le widget entier passe en colonne flex plein viewport ; la
   vue ACTIVE (linéaire ou radiale, l'autre reste [hidden]) et son SVG
   grandissent pour occuper tout l'espace sous l'en-tête/la barre d'outils —
   sans ça, les hauteurs fixes (.mmk-svg/.mmkr-svg : 600px) laisseraient un
   grand vide en plein écran. Préfixe -webkit- pour Safari/iOS < 16.4 — règles
   dupliquées (pas groupées avec une virgule) : un sélecteur pseudo-classe non
   supporté dans un groupe invalide parfois TOUTE la règle sur les moteurs
   anciens, la duplication évite ce risque. */
.nlm-widget.nlm-mindmap:fullscreen { max-width: none; width: 100vw; height: 100vh; margin: 0; background: var(--nlm-bg, #fff); }
.nlm-widget.nlm-mindmap:-webkit-full-screen { max-width: none; width: 100vw; height: 100vh; margin: 0; background: var(--nlm-bg, #fff); }
.nlm-widget.nlm-mindmap:fullscreen .nlm-mount { display: flex; flex-direction: column; height: 100%; }
.nlm-widget.nlm-mindmap:-webkit-full-screen .nlm-mount { display: flex; flex-direction: column; height: 100%; }
.nlm-widget.nlm-mindmap:fullscreen .mmk-view { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.nlm-widget.nlm-mindmap:-webkit-full-screen .mmk-view { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.nlm-widget.nlm-mindmap:fullscreen .mmk-svg { flex: 1 1 auto; min-height: 0; height: auto; }
.nlm-widget.nlm-mindmap:-webkit-full-screen .mmk-svg { flex: 1 1 auto; min-height: 0; height: auto; }
.nlm-widget.nlm-mindmap:fullscreen .mmkr-wrap { flex: 1 1 auto; min-height: 0; }
.nlm-widget.nlm-mindmap:-webkit-full-screen .mmkr-wrap { flex: 1 1 auto; min-height: 0; }
.nlm-widget.nlm-mindmap:fullscreen .mmkr-svg { height: 100%; }
.nlm-widget.nlm-mindmap:-webkit-full-screen .mmkr-svg { height: 100%; }

/* Infobulle (nlm-common.css, règle générale ".nlm-mindmap [data-tip]") : par
   défaut affichée AU-DESSUS et centrée sur le bouton — coupée ici car ce
   bouton est tout en haut du widget (rien au-dessus) et collé à droite
   (.mmk-vt-btn, margin-left:auto). Override plus spécifique : EN DESSOUS,
   ancrée à droite du bouton plutôt que centrée (flèche retournée en
   conséquence). */
.nlm-mindmap .mmk-vt-btn[data-tip]:hover::after {
	bottom: auto; top: calc(100% + 6px);
	left: auto; right: 0; transform: none;
}
.nlm-mindmap .mmk-vt-btn[data-tip]:hover::before {
	bottom: auto; top: 100%;
	left: auto; right: 10px; transform: none;
	border-top-color: transparent; border-bottom-color: #1a365d;
}

/* Piège CSS [hidden] récurrent dans ce projet (voir CLAUDE.md, plusieurs
   récidives documentées) : une règle d'auteur avec display explicite bat
   toujours [hidden]{display:none} à spécificité égale. .mmk-view n'a pas de
   display explicite ailleurs, mais on blinde quand même par prudence — même
   principe que .nlm-tabs-panel[hidden] et .nlm-thm-modal[hidden]. */
.nlm-mindmap .mmk-view[hidden] { display: none !important; }

.nlm-mindmap .mmkr-btns { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 12px; background: #fbfcfe; }
/* Astuce : classe .mmk-hint PARTAGÉE avec la vue linéaire (nlm-common.css,
   texte identique posé par nlm-mindmap-radial.js) — pas de règle .mmkr-hint
   séparée (v0.29.1, voir nlm-mindmap-radial.js pour la justification). */
.nlm-mindmap .mmkr-wrap { position: relative; border-top: 1px solid #e6e9ef; overflow: hidden; }
.nlm-mindmap .mmkr-svg { width: 100%; height: 600px; display: block; cursor: grab; -webkit-user-select: none; -moz-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
.nlm-mindmap .mmkr-svg:active { cursor: grabbing; }
.nlm-mindmap .mmkr-msg { padding: 18px; color: #c05621; font-size: 14px; }

.nlm-mindmap .mmkr-node circle { stroke-width: 2px; }
.nlm-mindmap .mmkr-node.mmkr-has-children { cursor: pointer; }
.nlm-mindmap .mmkr-link { fill: none; stroke-width: 1.5px; opacity: .55; }

.nlm-mindmap .mmkr-label,
.nlm-mindmap .mmkr-measure {
	display: inline-block; width: max-content; max-width: 200px;
	white-space: normal; word-wrap: break-word; overflow-wrap: break-word;
	font-size: 13px; line-height: 1.3; color: #2d3748;
	background: #fff; border: 1px solid #dfe3ea; border-radius: 8px;
	padding: 4px 6px; box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
/* Même piège que documenté pour la vue linéaire (CLAUDE.md §4.6) : dans un
   conteneur white-space:normal, une formule KaTeX se coupe en plein milieu
   sans cette règle. */
.nlm-mindmap .mmkr-label .katex { white-space: nowrap; }
.nlm-mindmap .mmkr-measure { position: absolute; top: -9999px; left: -9999px; visibility: hidden; pointer-events: none; }
