/* A2-qua — FRISE IMBRIQUÉE (icicle) nage × corps × intensité × matériel.
   OUTIL PARTAGÉ : même CSS/JS (recap-cross.js, window.RecapCross) pour le récap séance ET le suivi
   quantitatif. Chaque axe subdivise le précédent ; lignes empilées & alignées sur le volume total. */

.recap-cross{padding:16px 20px 8px}
.rxhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:10px}
.rxhead__lab{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.rxseg{display:inline-flex;gap:0;padding:3px;background:rgba(148,163,184,.16);border-radius:10px}
.rxseg button{appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;padding:5px 10px;border-radius:7px;cursor:pointer}
.rxseg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px rgba(15,23,42,.08)}

.rxrows{display:flex;flex-direction:column;gap:8px}
.rxrow{display:grid;grid-template-columns:106px minmax(0,1fr);align-items:center;gap:10px}
.rxrow__lab{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.rxrow__name{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:right;line-height:1.1}
.rxrow__mv{display:flex;flex-direction:column;gap:2px;flex:0 0 auto}
.rxrow__mv button{appearance:none;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;font-size:8px;line-height:1;width:18px;height:13px;border-radius:4px;display:grid;place-items:center;padding:0}
.rxrow__mv button:hover:not(:disabled){color:var(--primary);border-color:var(--primary)}
.rxrow__mv button:disabled{opacity:.32;cursor:default}

.rxtrack{display:flex;height:40px;border-radius:10px;background:var(--card);box-shadow:0 2px 6px rgba(15,23,42,.08),inset 0 0 0 1px rgba(15,23,42,.05)}
.rxc{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;color:#fff;line-height:1.05;white-space:nowrap;overflow:hidden;cursor:default;text-shadow:0 1px 2px rgba(0,0,0,.28)}
.rxc:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}
.rxc:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}
.rxc.light{color:#0f172a;text-shadow:none}
.rxc__l{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis;opacity:.96}
.rxc__m{font-size:11px;font-weight:900;font-variant-numeric:tabular-nums}
.rxc.bd2{box-shadow:inset 1px 0 0 rgba(15,23,42,.18)}
.rxc.bd1{box-shadow:inset 3px 0 0 var(--card)}
.rxc.bd0{box-shadow:inset 5px 0 0 var(--card)}

/* bulle au survol — élément FIXE ajouté au body (jamais rognée par les conteneurs en overflow) */
.rx-tip{position:fixed;z-index:9999;max-width:300px;background:var(--text,#0f172a);color:var(--card,#fff);padding:6px 10px;border-radius:8px;font-size:12px;font-weight:700;line-height:1.35;white-space:pre-line;pointer-events:none;box-shadow:0 6px 18px rgba(15,23,42,.22);opacity:0;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease}
.rx-tip b{display:block;font-weight:600;opacity:.85;font-size:11px;margin-top:2px}
.rx-tip.on{opacity:1;transform:translateY(0)}

@media(max-width:620px){.rxrow{grid-template-columns:88px minmax(0,1fr);gap:8px}}

/* A4-bis (Famille I) — zoom de la frise 4D : drill-down (case cliquable) + zoom visuel (wrapper
   à défilement horizontal + boutons). N'altère pas le rendu par défaut (zoom 100% = largeur 100%). */
.rxc{cursor:pointer}
.rxzoom{overflow-x:auto;overflow-y:hidden}
.rxzoomctl{display:inline-flex;align-items:center;gap:4px}
.rxzoomctl button{appearance:none;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;width:24px;height:22px;border-radius:6px;font-weight:800;line-height:1;display:grid;place-items:center;padding:0}
.rxzoomctl button:hover{color:var(--primary);border-color:var(--primary)}
.rxzoomctl__v{font-size:11px;font-weight:800;color:var(--muted);min-width:40px;text-align:center}
.rxcrumb{margin-right:auto;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.rxcrumb__all{appearance:none;border:1px solid var(--primary);background:var(--card);color:var(--primary);cursor:pointer;font:inherit;font-size:11px;font-weight:700;padding:3px 9px;border-radius:8px}
.rxcrumb__all:hover{background:var(--primary);color:var(--card)}
.rxcrumb__path{font-size:11px;font-weight:800;color:var(--text);text-transform:uppercase;letter-spacing:.03em}
