/* ═══ FUTUR 2030 — Champ d'intention · spatial 2.5D · Pulse continuum ═══
   Warm palette ONLY. No cold blue/green. Liquid glass as material, not Settings clone. */

:root {
  --feu: #E85D2A;
  --bordeaux: #8B2E4A;
  --coral: #E07A5F;
  --copper: #C47A4A;
  --plum: #5C2A4A;
  --prune: #3A1830;
  --champ-glow: rgba(240, 160, 120, 0.35);
}

/* —— Champ d'intention —— */
.champ-intention {
  position: relative;
  min-height: calc(100dvh - env(safe-area-inset-bottom));
  margin: calc(env(safe-area-inset-top) * -1 - 4px) calc(var(--marge, 18px) * -1) 0;
  padding: calc(env(safe-area-inset-top) + 28px) var(--marge, 18px) 120px;
  overflow: hidden;
  background: linear-gradient(165deg, var(--feu) 0%, var(--bordeaux) 42%, var(--prune) 100%);
  color: #F8E8D8;
  display: flex; align-items: flex-end;
}
.champ-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 0;
}
.champ-veil {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse 50% 40% at 50% 45%, rgba(240,160,120,.22), transparent 70%),
    linear-gradient(to top, rgba(30,10,25,.72) 0%, transparent 55%);
}
.champ-corps { position: relative; z-index: 2; width: 100%; max-width: 520px; margin: 0 auto; }
.champ-kicker {
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(240,200,160,.75); margin: 0 0 8px; font-weight: 700;
}
.champ-titre {
  font-family: var(--titre, Georgia, serif);
  font-size: clamp(28px, 7vw, 40px); font-weight: 900; margin: 0;
  line-height: 1.1; text-shadow: 0 4px 28px rgba(0,0,0,.45);
}
.champ-sous { margin: 10px 0 22px; font-size: 16px; color: rgba(248,232,216,.82); line-height: 1.45; }
.champ-chips {
  display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px;
}
.champ-chip {
  min-height: 44px; min-width: 44px; padding: 10px 18px;
  border-radius: 999px; border: 1px solid rgba(240,160,120,.45);
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  color: #F8E8D8; font: 700 14px/1.2 inherit; cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 8px 24px rgba(0,0,0,.2);
  transition: transform .2s cubic-bezier(.34,1.4,.64,1), background .2s, border-color .2s;
}
.champ-chip:hover, .champ-chip:focus-visible {
  background: rgba(224,122,95,.35); border-color: #F0A090; outline: none;
}
.champ-chip:active { transform: scale(.96); }
.champ-hint { font-size: 13px; color: rgba(248,232,216,.65); margin: 0 0 10px; min-height: 1.2em; }
.champ-drag-zone {
  height: 120px; border-radius: 24px;
  border: 1px dashed rgba(240,160,120,.35);
  background: rgba(0,0,0,.12);
  touch-action: none; cursor: crosshair;
  position: relative;
}
.champ-drag-zone:focus-visible {
  outline: 2px solid #F0A090; outline-offset: 3px;
}
.champ-drag-zone[data-hover="fatigue"] { box-shadow: inset 0 0 40px rgba(232,93,42,.25); }
.champ-drag-zone[data-hover="pret"] { box-shadow: inset 0 0 40px rgba(240,160,120,.3); }
.champ-drag-zone[data-hover="combat"] { box-shadow: inset 0 0 40px rgba(139,46,74,.4); }
.champ-drag-zone[data-hover="nourrir"] { box-shadow: inset 0 0 40px rgba(224,122,95,.3); }
.champ-drag-zone[data-hover="voir"] { box-shadow: inset 0 0 40px rgba(92,42,74,.45); }
.champ-intention.champ-leaving { opacity: 0; transform: scale(1.03); transition: opacity .35s, transform .45s cubic-bezier(.22,1,.36,1); }

/* Hide classic barre when futur dock is live */
/* FIX onglets: dock spatial masqué, barre 5 onglets TOUJOURS visible */
html.futur2030 .barre {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 200 !important;
  position: fixed !important;
  left: 0; right: 0; bottom: 0;
  background: color-mix(in srgb, var(--carte, #1a1210) 92%, #000) !important;
  border-top: 1px solid color-mix(in srgb, var(--copper, #C47A4A) 45%, transparent) !important;
  padding-bottom: env(safe-area-inset-bottom);
  transform: none !important;
}
html.futur2030 .barre[aria-hidden="true"] {
  /* ne jamais cacher la barre pour l’a11y fallback */
  visibility: visible !important;
}
html.futur2030 .dock-radial,
html.futur2030 .dock-accueil,
html.futur2030 .dock-fleche,
html.futur2030 .couche-pastilles,
html.futur2030 .dock-tip,
html.futur2030 .dock-quicklist { display: none !important; }
html.futur2030 #app {
  padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
}
html.scrolled-down .barre {
  transform: none !important; /* ne pas miniaturiser / perdre la barre */
}
html.futur2030 #app { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
html.futur2030[data-couche="champ"] #app { padding-bottom: 0; }

/* —— Dock radial —— */
.dock-radial {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  pointer-events: none;
  padding-bottom: env(safe-area-inset-bottom);
}
.dock-hub {
  pointer-events: auto;
  position: absolute; left: 50%; bottom: calc(12px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: 52px; height: 52px; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--copper) 55%, transparent);
  background: color-mix(in srgb, var(--bordeaux) 55%, rgba(20,8,12,.75));
  backdrop-filter: blur(18px) saturate(1.3);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  color: #FFE4D4; font-size: 22px; cursor: pointer;
  box-shadow: 0 8px 32px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px;
}
.dock-hub:focus-visible { outline: 2px solid #F0A090; outline-offset: 3px; }
.dock-orbs {
  pointer-events: none;
  position: absolute; left: 50%; bottom: calc(72px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  display: flex; gap: 8px; opacity: 0; visibility: hidden;
  transition: opacity .25s, visibility .25s, transform .35s cubic-bezier(.34,1.3,.64,1);
  transform: translateX(-50%) translateY(12px);
}
.dock-radial.is-open .dock-orbs {
  pointer-events: auto; opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.dock-orb {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  min-width: 56px; min-height: 56px; padding: 8px 6px;
  border-radius: 18px; border: 1px solid color-mix(in srgb, var(--coral) 35%, transparent);
  background: color-mix(in srgb, var(--prune) 70%, rgba(20,8,12,.5));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: #F5E6D8; font: 700 11px/1.15 inherit; cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,0,0,.35);
}
.dock-orb .dock-pic { font-size: 18px; line-height: 1; color: var(--coral); }
.dock-orb[aria-current="page"] {
  border-color: var(--coral); color: #F8E8D8;
  box-shadow: 0 0 0 1px var(--coral), 0 0 20px rgba(224,122,95,.35);
}
.dock-orb:focus-visible { outline: 2px solid #F0A090; outline-offset: 2px; }
.dock-edge {
  pointer-events: auto;
  position: absolute; left: 20%; right: 20%; bottom: 0; height: 18px;
}


/* —— Nav UX 2026-09-18 : Accueil, tip, flèches, pastilles, quicklist, WCAG —— */
.dock-hub.is-home {
  background: radial-gradient(circle at 35% 30%, #E85D2A, #8B2E4A 70%);
  border-color: #F0A090;
  color: #FFE4D4;
}
.dock-hub.is-layer {
  background: color-mix(in srgb, var(--bordeaux) 55%, rgba(20,8,12,.75));
  color: #FFE4D4;
}
.dock-hub-ico { line-height: 1; font-size: 22px; }

.dock-tip {
  pointer-events: none;
  position: absolute; left: 50%; bottom: calc(72px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: 60;
  padding: 10px 14px; border-radius: 14px;
  background: #1A0C10; color: #F8E8D8;
  border: 1px solid #E85D2A;
  font: 700 13px/1.3 inherit;
  box-shadow: 0 8px 28px rgba(0,0,0,.45);
  white-space: nowrap;
  max-width: min(92vw, 280px);
}
.dock-tip[hidden] { display: none !important; }

.dock-accueil {
  pointer-events: auto;
  position: fixed; left: 12px; bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 51;
  min-height: 44px; min-width: 44px; padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--copper) 50%, transparent);
  background: color-mix(in srgb, #1A0C10 82%, var(--bordeaux));
  color: #F8E8D8; font: 700 13px/1 inherit; cursor: pointer;
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 6px 20px rgba(0,0,0,.35);
  display: inline-flex; align-items: center; gap: 6px;
}
.dock-accueil:focus-visible { outline: 2px solid #F0A090; outline-offset: 2px; }
.dock-accueil[hidden] { display: none !important; }

.dock-fleche {
  pointer-events: auto;
  position: fixed; top: 50%; z-index: 48;
  transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--coral) 40%, transparent);
  background: color-mix(in srgb, #1A0C10 75%, transparent);
  color: #F0A090; font: 700 28px/1 Georgia, serif; cursor: pointer;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  display: flex; align-items: center; justify-content: center;
  opacity: .85;
}
.dock-fleche:disabled { opacity: .25; cursor: default; }
.dock-fleche-g { left: 4px; }
.dock-fleche-d { right: 4px; }
.dock-fleche[hidden] { display: none !important; }
.dock-fleche:focus-visible { outline: 2px solid #F0A090; outline-offset: 2px; }

.couche-pastilles {
  position: fixed; top: calc(8px + env(safe-area-inset-top)); left: 50%;
  transform: translateX(-50%); z-index: 52;
  display: flex; gap: 8px; padding: 8px 12px; border-radius: 999px;
  background: color-mix(in srgb, #1A0C10 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--copper) 35%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.couche-pastille {
  width: 10px; height: 10px; min-width: 44px; min-height: 44px;
  margin: -17px -10px; padding: 17px 10px;
  border: none; background: transparent; cursor: pointer;
  position: relative;
}
.couche-pastille::after {
  content: ''; position: absolute; left: 50%; top: 50%;
  width: 10px; height: 10px; border-radius: 50%;
  transform: translate(-50%, -50%);
  background: #9A7A68; /* WCAG AA ~5:1 on near-black */
  transition: transform .2s, background .2s;
}
.couche-pastille.is-on::after {
  background: #E85D2A;
  transform: translate(-50%, -50%) scale(1.35);
  box-shadow: 0 0 12px rgba(232,93,42,.55);
}
.couche-pastilles[hidden] { display: none !important; }

.dock-quicklist {
  position: fixed; inset: 0; z-index: 80;
  background: rgba(10,4,8,.55);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  display: flex; align-items: flex-end; justify-content: center;
  padding: 24px 16px calc(24px + env(safe-area-inset-bottom));
}
.dock-quicklist[hidden] { display: none !important; }
.dock-quicklist-inner {
  width: min(100%, 360px); border-radius: 22px; padding: 18px;
  background: #1A0C10; color: #F8E8D8;
  border: 1px solid #E85D2A;
  box-shadow: 0 16px 48px rgba(0,0,0,.5);
}
.dock-quicklist-titre {
  margin: 0 0 12px; font: 800 15px/1.2 inherit; letter-spacing: .08em; text-transform: uppercase; color: #F0A090;
}
.dock-quicklist-ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dock-quicklist-ul button {
  width: 100%; min-height: 48px; text-align: left; padding: 12px 14px;
  border-radius: 14px; border: 1px solid color-mix(in srgb, var(--coral) 35%, transparent);
  background: color-mix(in srgb, var(--prune) 60%, #1A0C10);
  color: #F5E6D8; font: 700 16px/1.2 inherit; cursor: pointer;
  display: flex; align-items: center; gap: 12px;
}
.dock-quicklist-close {
  margin-top: 12px; width: 100%; min-height: 44px;
  border-radius: 14px; border: none; cursor: pointer;
  background: color-mix(in srgb, var(--bordeaux) 50%, #1A0C10);
  color: #F8E8D8; font: 700 15px inherit;
}

@media (prefers-reduced-motion: reduce) {
  .dock-orbs, .couche-pastille::after { transition: none !important; }
}

/* Clair theme: bump feu for AA on cream */
html[data-theme="clair"] .dock-hub.is-home,
html.theme-clair .dock-hub.is-home {
  background: radial-gradient(circle at 35% 30%, #C44A20, #8B2E4A 70%);
}
html[data-theme="clair"] .couche-pastille.is-on::after,
html.theme-clair .couche-pastille.is-on::after { background: #C44A20; }


/* —— Îles verre (not Settings rows) —— */
.ile-verre {
  margin: 14px 0;
  padding: 18px 18px 16px;
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--copper, #C47A4A) 28%, transparent);
  background:
    linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.02)),
    color-mix(in srgb, var(--carte, #1a1210) 88%, var(--bordeaux));
  backdrop-filter: blur(20px) saturate(1.25);
  -webkit-backdrop-filter: blur(20px) saturate(1.25);
  box-shadow:
    0 1px 0 rgba(255,255,255,.08) inset,
    0 12px 40px rgba(0,0,0,.28);
}
.ile-kicker {
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--coral); margin: 0 0 4px; font-weight: 700;
}
.ile-titre {
  font-family: var(--titre); font-size: 20px; font-weight: 800; margin: 0 0 8px;
  color: var(--texte, #F3E6D8);
}
.ile-corps { font-size: 15px; line-height: 1.5; color: var(--texte-doux, #c4b4a4); }

/* Profil Signal — islands, not Settings list */
html.futur2030 .profil-hq .bloc,
html.futur2030 .profil-hq .acces,
html.futur2030 .profil-hq .suivi-reglages {
  border-radius: 22px !important;
  border: 1px solid color-mix(in srgb, var(--copper) 25%, transparent) !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.06), transparent),
    color-mix(in srgb, var(--carte) 90%, var(--plum)) !important;
  backdrop-filter: blur(16px);
  box-shadow: 0 10px 32px rgba(0,0,0,.22);
}
html.futur2030 .profil-hq .profil-meters { gap: 12px; }
html.futur2030 .profil-hq .profil-ring { display: none; } /* pas de mini-anneaux sur le profil */
html.futur2030 .profil-hq .profil-meter {
  flex: 1; padding: 12px; border-radius: 16px;
  background: color-mix(in srgb, var(--coral) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--coral) 25%, transparent);
}
html.futur2030 .profil-hq .profil-meter-txt { display: block; text-align: center; }
html.futur2030 .profil-hq .profil-meter-txt b { display: block; font-size: 22px; color: var(--coral); }

/* Nutrition — spatial islands, not feed wall */
html.futur2030 #nutri-panel-fil,
html.futur2030 .nutri-dash,
html.futur2030 #fil-nutrition {
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--coral) 30%, transparent);
  background: color-mix(in srgb, var(--carte) 88%, var(--bordeaux));
  backdrop-filter: blur(14px);
  padding: 14px;
}
html.futur2030 .rec-feed {
  display: grid; gap: 12px;
  grid-template-columns: 1fr;
}
html.futur2030 .rec-card,
html.futur2030 .rec-feed > * {
  border-radius: 18px !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.2);
}

/* —— Pulse continuum —— */
.pulse-continuum { margin-top: 12px; }
.pulse-ruban {
  position: relative; margin: 12px 0 16px; border-radius: 16px;
  background: linear-gradient(180deg, rgba(139,46,74,.25), rgba(30,12,20,.4));
  border: 1px solid color-mix(in srgb, var(--coral) 30%, transparent);
  padding: 8px 10px 4px; overflow: hidden;
}
.pulse-ruban-score {
  position: absolute; right: 12px; top: 10px;
  font-family: var(--titre); font-weight: 900; font-size: 22px; color: #F0A090;
  text-shadow: 0 0 12px rgba(224,122,95,.5);
}
.pulse-ruban-empty, .pulse-ruban.vide p {
  margin: 12px; font-size: 14px; color: var(--texte-doux); text-align: center;
}
.pulse-pad-wrap { margin: 8px 0 14px; }
.pulse-pad {
  position: relative; height: min(42vw, 220px); min-height: 160px;
  border-radius: 24px; touch-action: none; cursor: grab;
  background:
    radial-gradient(ellipse 80% 70% at 30% 35%, rgba(232,93,42,.35), transparent 55%),
    radial-gradient(ellipse 70% 60% at 75% 70%, rgba(139,46,74,.45), transparent 50%),
    linear-gradient(145deg, #4A2030, #2A1018 60%, #1A0C12);
  border: 1px solid color-mix(in srgb, var(--copper) 40%, transparent);
  box-shadow: inset 0 0 40px rgba(0,0,0,.35), 0 12px 36px rgba(0,0,0,.3);
}
.pulse-pad:active { cursor: grabbing; }
.pulse-pad:focus-visible { outline: 2px solid #F0A090; outline-offset: 3px; }
.pulse-pad-grid { position: absolute; inset: 0; pointer-events: none; }
.pulse-pad-lab {
  position: absolute; font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(248,232,216,.45); font-weight: 700;
}
.pulse-pad-lab.tl { top: 10px; left: 12px; }
.pulse-pad-lab.tr { top: 10px; right: 12px; }
.pulse-pad-lab.bl { bottom: 10px; left: 12px; }
.pulse-pad-lab.br { bottom: 10px; right: 12px; }
.pulse-pad-thumb {
  position: absolute; width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #F0C0A0, var(--coral) 55%, var(--bordeaux));
  border: 2px solid rgba(255,255,255,.45);
  box-shadow: 0 0 24px rgba(224,122,95,.65), 0 4px 12px rgba(0,0,0,.4);
  pointer-events: none;
  transition: box-shadow .2s;
}
.pulse-live-readout {
  margin-top: 10px; text-align: center; font-weight: 700; font-size: 15px;
  color: #F0A090; min-height: 1.4em;
}
.pulse-axes { display: grid; gap: 8px; margin: 12px 0; }
.pulse-axis {
  display: grid; grid-template-columns: 72px 1fr; gap: 10px; align-items: center;
  font-size: 12px; font-weight: 700; color: var(--texte-doux);
}
.pulse-axis i {
  display: block; height: 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--copper) 20%, transparent);
  position: relative; overflow: hidden;
}
.pulse-axis i::after {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: var(--v, 0%);
  border-radius: inherit;
  background: linear-gradient(90deg, var(--copper), var(--coral), var(--feu));
  transition: width .25s cubic-bezier(.34,1.2,.64,1);
}
.pulse-disclaimer { margin-top: 12px; opacity: .75; }
.pulse-disclaimer small { font-size: 12px; color: var(--texte-doux); }

/* Kill old dials if any residual markup */
html.futur2030 .pulse-dials { display: none !important; }

/* Suivi — floating islands instead of card stacks */
html.futur2030 .suivi-hq .suivi-hero,
html.futur2030 button.suivi-carte {
  border-radius: 20px !important;
  backdrop-filter: blur(14px);
  border-color: color-mix(in srgb, var(--copper) 30%, transparent) !important;
}

/* Spring couche transitions */
#app.couche-spring-out {
  animation: coucheOut .42s cubic-bezier(.22,1,.36,1) both;
}
#app.couche-spring-in {
  animation: coucheIn .42s cubic-bezier(.22,1,.36,1) both;
}
@keyframes coucheOut {
  from { opacity: 1; transform: translateX(0) scale(1); }
  to { opacity: .0; transform: translateX(-28px) scale(.985); }
}
@keyframes coucheIn {
  from { opacity: 0; transform: translateX(28px) scale(.985); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

/* Opérationnel / Combat angular feel on spatial layers */
html[data-couche="operation"] .ile-titre,
html[data-couche="combat"] .ile-titre,
html[data-registre="angulaire"] h1 {
  letter-spacing: .04em; text-transform: uppercase;
}

/* Reduced motion / transparency */
@media (prefers-reduced-motion: reduce) {
  .champ-chip, .champ-intention.champ-leaving, .pulse-axis i::after,
  #app.couche-spring-out, #app.couche-spring-in, .dock-orbs {
    transition: none !important; animation: none !important;
  }
  .champ-canvas { display: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .ile-verre, .dock-hub, .dock-orb, .champ-chip,
  html.futur2030 .profil-hq .bloc,
  html.futur2030 #fil-nutrition {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: color-mix(in srgb, var(--carte, #1a1210) 95%, var(--bordeaux)) !important;
  }
}

/* Empty states poetic */
html.futur2030 .attente .grand,
html.futur2030 .suivi-carte-vide {
  color: var(--coral) !important;
  font-style: italic;
}

/* ═══ SILICON / APPLE 2030 — tokens publics approx (HIG + communauté) ═══
   Sources: Adopting Liquid Glass, WWDC25 Meet Liquid Glass, seunghan91 tokens.
   Apple ne publie PAS de blur/radius numériques — valeurs approximées. */

:root {
  /* Semantic labels remapped onto warm TR — NO system blue */
  --label: var(--texte, #F2EEEA);
  --secondaryLabel: var(--texte-doux, #C4B8B0);
  --tertiaryLabel: color-mix(in srgb, var(--texte-doux) 70%, transparent);
  --separator: color-mix(in srgb, var(--cuivre, #C47A4A) 28%, transparent);
  --fill: color-mix(in srgb, var(--bordeaux, #8B2E4A) 18%, transparent);
  --fill-secondary: color-mix(in srgb, var(--prune, #3A1830) 40%, transparent);

  /* Glass Regular (nav / dock / CTA) vs Clear (over Morpho/photos) */
  --glass-regular-bg: color-mix(in srgb, var(--carte, #1a1210) 72%, transparent);
  --glass-regular-blur: 18px;
  --glass-regular-sat: 1.35;
  --glass-clear-bg: color-mix(in srgb, #2a1818 35%, transparent);
  --glass-clear-blur: 28px;
  --glass-clear-dim: rgba(20, 8, 12, 0.45);
  --glass-rim: inset 0 0.5px 0 rgba(255,255,255,.22), inset 0 -0.5px 0 rgba(0,0,0,.25);
  --glass-specular: linear-gradient(135deg, rgba(255,255,255,.18), transparent 42%);

  /* Spring press — duration + bounce (SwiftUI preference), scale 0.96 */
  --spring-press-dur: 0.3s;
  --spring-press-ease: cubic-bezier(0.34, 1.3, 0.64, 1); /* bounce ~0.2 */
  --press-scale: 0.96;
  --tint-glass: 0.55; /* ultraclear 0 → tinted 1 */
}

.glass-regular, .glass-effect-container > .glass-regular,
.bouton.glass-regular, .op-hero-go, .dock-hub, .champ-chip {
  background:
    var(--glass-specular),
    color-mix(in srgb, var(--glass-regular-bg) calc(100% - var(--tint-glass) * 30%), var(--bordeaux, #8B2E4A));
  -webkit-backdrop-filter: blur(var(--glass-regular-blur)) saturate(var(--glass-regular-sat));
  backdrop-filter: blur(var(--glass-regular-blur)) saturate(var(--glass-regular-sat));
  box-shadow: var(--glass-rim), 0 8px 28px rgba(0,0,0,.28);
  border: 1px solid var(--separator);
}

.glass-clear {
  background: var(--glass-clear-bg);
  -webkit-backdrop-filter: blur(var(--glass-clear-blur)) saturate(1.5);
  backdrop-filter: blur(var(--glass-clear-blur)) saturate(1.5);
  box-shadow: var(--glass-rim);
}
.glass-clear-dim::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: var(--glass-clear-dim); border-radius: inherit;
}

/* Morph related glass elements together */
.glass-effect-container { isolation: isolate; }
.glass-effect-container > * {
  transition: transform var(--spring-press-dur) var(--spring-press-ease),
    background var(--spring-press-dur) ease, box-shadow var(--spring-press-dur) ease;
}

/* System-wide press */
.bouton, .acces, .carte, .puce, .champ-chip, .pulse-face, .dock-orb, [data-va],
.op-hero-go, .pulse-pad-thumb {
  transition: transform var(--spring-press-dur) var(--spring-press-ease),
    opacity 0.2s ease, box-shadow var(--spring-press-dur) ease;
}
.bouton:active, .acces:active, .carte:active, .puce:active, .champ-chip:active,
.pulse-face:active, .dock-orb:active, [data-va]:active, .op-hero-go:active,
.tap-press, .is-pressed {
  transform: scale(var(--press-scale)) !important;
}

/* Large title shrink on scroll (approx) */
.large-title, h1.large-title {
  font-size: clamp(1.6rem, 2.2rem + 1vw, 2.4rem);
  font-weight: 800; letter-spacing: -0.02em;
  transition: font-size 0.25s var(--spring-press-ease), opacity 0.2s;
}
html.scrolled-down .large-title, html.scrolled-down h1.large-title {
  font-size: clamp(1.15rem, 1.35rem, 1.5rem);
}
html.scrolled-down .barre, html.scrolled-down .dock-radial {
  transform: scale(0.94); transform-origin: bottom center;
  transition: transform 0.3s var(--spring-press-ease);
}

/* Pulse continuum polish */
.pulse-continuum { padding: 18px 16px 20px; border-radius: 24px; margin: 8px 0 14px; }
.pulse-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.pulse-readiness {
  text-align: center; min-width: 72px; padding: 10px 12px; border-radius: 18px;
  background: color-mix(in srgb, var(--corail, #E07A5F) 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--corail, #E07A5F) 40%, transparent);
}
.pulse-readiness b { display: block; font-size: 28px; line-height: 1; color: var(--corail, #E07A5F); }
.pulse-readiness small { font-size: 11px; color: var(--secondaryLabel); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pulse-faces { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0 12px; }
.pulse-face {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  min-height: 64px; border-radius: 16px; border: 1px solid var(--separator);
  background: var(--fill); color: var(--label); cursor: pointer; font: inherit;
}
.pulse-face span { font-size: 28px; line-height: 1; }
.pulse-face small { font-size: 12px; color: var(--secondaryLabel); font-weight: 600; }
.pulse-face[aria-pressed="true"] {
  border-color: var(--corail, #E07A5F);
  box-shadow: 0 0 0 1px var(--corail, #E07A5F), 0 0 20px rgba(224,122,95,.3);
}
.pulse-pad {
  position: relative; height: 160px; border-radius: 22px; touch-action: none;
  background:
    radial-gradient(ellipse 60% 50% at 50% 50%, rgba(224,122,95,.2), transparent 70%),
    linear-gradient(135deg, #4A2030, #2A1218 60%, #1A0C10);
  border: 1px solid color-mix(in srgb, var(--cuivre, #C47A4A) 40%, transparent);
  cursor: grab;
}
.pulse-pad:active { cursor: grabbing; }
.pulse-pad-grid { position: absolute; inset: 0; pointer-events: none; }
.pulse-pad-lab { position: absolute; font-size: 12px; color: rgba(248,232,216,.55); font-weight: 600; }
.pulse-pad-lab.tl { top: 10px; left: 12px; font-size: 18px; }
.pulse-pad-lab.tr { top: 10px; right: 12px; font-size: 18px; }
.pulse-pad-lab.bl { bottom: 10px; left: 12px; }
.pulse-pad-lab.br { bottom: 10px; right: 12px; }
.pulse-pad-thumb {
  position: absolute; width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #F0C0A0, #E07A5F 55%, #8B2E4A);
  box-shadow: 0 4px 16px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.35);
  pointer-events: none; z-index: 2;
}
.pulse-live-readout { margin: 10px 0 0; font-size: 14px; color: var(--secondaryLabel); text-align: center; }
.pulse-metrics {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0;
}
.pulse-metric {
  text-align: center; padding: 10px 6px; border-radius: 14px;
  background: var(--fill); border: 1px solid var(--separator);
}
.pulse-metric b { display: block; font-size: 22px; color: var(--corail, #E07A5F); }
.pulse-metric small { font-size: 11px; color: var(--secondaryLabel); }
.pulse-ruban { position: relative; margin: 8px 0 12px; }
.pulse-ruban-score {
  position: absolute; right: 8px; top: 6px; font-weight: 800; font-size: 18px; color: #F0A090;
}
.pulse-ruban-score small { margin-left: 4px; font-size: 14px; }
.pulse-ruban.vide, .pulse-ruban-empty { color: var(--secondaryLabel); font-size: 13px; text-align: center; padding: 12px; }

/* Progressive disclosure */
.tr-plus, details.pli {
  border-radius: 16px; border: 1px solid var(--separator);
  background: var(--fill-secondary); padding: 0 12px;
  margin: 12px 0;
}
.tr-plus > summary, details.pli > summary {
  cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px;
  font-weight: 700; color: var(--label); list-style: none;
}
.tr-plus > summary::-webkit-details-marker { display: none; }
.tr-plus > summary small, details.pli > summary small {
  color: var(--secondaryLabel); font-weight: 500; margin-left: auto;
}
.pli-corps, .tr-plus .pli-corps { padding: 0 0 14px; }

.privacy-badge {
  margin: 10px 0 0; font-size: 12px; color: var(--secondaryLabel);
  text-align: center; letter-spacing: .01em;
}

/* Nutrition / Ops heroes */
.nutri-hero .bouton, .op-hero-go {
  min-height: 52px; font-size: 18px; font-weight: 800;
  border-radius: 16px;
}
.rec-card, .rec-feed > * {
  border-color: color-mix(in srgb, var(--corail, #E07A5F) 35%, transparent) !important;
}

/* Tint slider control (Profil Look) */
.glass-tint-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.glass-tint-row input[type="range"] { flex: 1; accent-color: var(--corail, #E07A5F); }

@media (prefers-reduced-motion: reduce) {
  .bouton, .acces, .carte, .puce, .champ-chip, .pulse-face, .dock-orb, [data-va],
  .op-hero-go, .pulse-pad-thumb, .glass-effect-container > * {
    transition: none !important;
  }
  .bouton:active, .acces:active, .tap-press, .is-pressed {
    transform: none !important;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .glass-regular, .glass-clear, .pulse-continuum, .champ-chip, .dock-hub {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background: var(--carte, #1a1210) !important;
  }
}

/* ═══ PULSE TR TOUCHE — feu / bordeaux / corail / cuivre / prune ═══ */
.pulse-forme-score {
  text-align: center; min-width: 76px; padding: 10px 12px; border-radius: 18px;
  background: color-mix(in srgb, #E07A5F 18%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 45%, transparent);
  box-shadow: 0 0 20px rgba(232, 93, 42, 0.18);
}
.pulse-forme-score b {
  display: block; font-size: 28px; line-height: 1; color: #E85D2A;
  font-variant-numeric: tabular-nums;
}
.pulse-forme-score small {
  font-size: 11px; color: var(--secondaryLabel, #C4B8B0);
  font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.pulse-forme-tend { display: block; margin-top: 2px; color: #E0A878; font-weight: 800; }

.pulse-alerte-douce {
  margin: 10px 0 12px; padding: 10px 12px; border-radius: 14px;
  background: color-mix(in srgb, #6B2040 35%, transparent);
  border: 1px solid color-mix(in srgb, #8B2E4A 50%, transparent);
  color: #F0C0A0; font-size: 13px; font-weight: 600; line-height: 1.4;
}

.pulse-anneaux {
  display: flex; gap: 14px; align-items: center; justify-content: center;
  margin: 12px 0 14px; flex-wrap: wrap;
}
.pulse-anneaux-center {
  fill: #F0A090; font-size: 13px; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; font-family: var(--titre, Archivo, system-ui, sans-serif);
}
.pulse-anneaux-sub { fill: rgba(240,160,144,.65); font-size: 10px; }
.pulse-anneaux-legende {
  list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; min-width: 110px;
}
.pulse-anneaux-legende li {
  display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600;
  color: var(--texte-doux, #C4B8B0);
}
.pulse-anneaux-legende i {
  width: 10px; height: 10px; border-radius: 3px; display: inline-block;
}
.pulse-anneaux.is-combat .pulse-anneaux-legende i { border-radius: 1px; }
.pulse-anneau-arc {
  transition: stroke-dashoffset .55s cubic-bezier(.34, 1.3, .64, 1);
}
html[data-registre="angulaire"] .pulse-anneaux-center,
html[data-couche="combat"] .pulse-anneaux-center {
  letter-spacing: .12em;
}

.pulse-forme-jour {
  margin: 8px 0 12px; padding: 10px 12px; border-radius: 14px;
  background: linear-gradient(135deg, rgba(196,122,74,.18), rgba(58,24,48,.35));
  border: 1px solid color-mix(in srgb, #C47A4A 35%, transparent);
}
.pulse-forme-jour-mot { margin: 0; font-size: 15px; color: #F0A090; }
.pulse-disclaimer-mini {
  margin: 4px 0 0; font-size: 11px; color: var(--texte-doux, #C4B8B0); opacity: .85;
}

.pulse-insights {
  margin: 12px 0; padding: 12px 14px; border-radius: 18px;
  background:
    linear-gradient(145deg, rgba(196,122,74,.16), rgba(58,24,48,.4)),
    color-mix(in srgb, var(--carte, #1a1210) 80%, transparent);
  border: 1px solid color-mix(in srgb, #8B2E4A 40%, #C47A4A);
  box-shadow: 0 0 24px rgba(139, 46, 74, 0.2), inset 0 1px 0 rgba(255,255,255,.08);
}
.pulse-insights-head {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
}
.pulse-insights-titre {
  margin: 0; font-size: 15px; font-weight: 800; color: #E0A878;
  letter-spacing: .02em;
}
.pulse-micro-ico {
  display: inline-grid; place-content: center; width: 28px; height: 28px;
  border-radius: 10px;
  background: radial-gradient(circle at 35% 30%, #F0C0A0, #E85D2A 60%, #6B2040);
  box-shadow: 0 0 14px rgba(232, 93, 42, .45);
  font-size: 14px;
  animation: pulseGlow 2.4s ease-in-out infinite;
}
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 10px rgba(232,93,42,.35); }
  50% { box-shadow: 0 0 18px rgba(224,122,95,.65); }
}
.pulse-insights-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pulse-insight-card {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px; border-radius: 12px;
  background: color-mix(in srgb, #3A1830 40%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 22%, transparent);
  font-size: 13px; line-height: 1.45; color: var(--label, #F2EEEA);
}
.pulse-insight-card .pulse-micro-ico { width: 24px; height: 24px; font-size: 12px; flex: 0 0 auto; }

.pulse-tendances { margin: 8px 0 12px; }
.pulse-tend-k {
  margin: 0 0 6px; font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: #E0A878;
}
.pulse-tend-plus {
  margin-top: 8px; border-radius: 12px;
  border: 1px solid color-mix(in srgb, #C47A4A 25%, transparent);
  padding: 0 10px;
}
.pulse-tend-plus > summary {
  cursor: pointer; min-height: 40px; display: flex; align-items: center;
  font-weight: 700; color: #F0A090; list-style: none;
}
.pulse-tend-plus > summary::-webkit-details-marker { display: none; }

.pulse-conseil-jour {
  margin-top: 12px; padding: 12px; border-radius: 16px;
  background: color-mix(in srgb, #8B2E4A 18%, var(--carte, #1a1210));
  border: 1px solid color-mix(in srgb, #E07A5F 30%, transparent);
}
.pulse-conseil-k {
  margin: 0; font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: #C47A4A;
}
.pulse-conseil-mot {
  margin: 6px 0 0; font-size: 14px; font-weight: 600; color: #E0A878; line-height: 1.45;
}

html[data-registre="angulaire"] .pulse-forme-score,
html[data-couche="combat"] .pulse-forme-score {
  border-radius: 10px;
}
html[data-registre="angulaire"] .pulse-insights,
html[data-couche="combat"] .pulse-insights {
  border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
  .pulse-micro-ico { animation: none; }
  .pulse-anneau-arc { transition: none; }
}

/* Aliases Pulse TR (HTML continuum) */
.pulse-forme-score { /* score chip */ }
.pulse-insights-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.pulse-insights-titre { margin:0; font-size:15px; font-weight:800; color:#E0A878; }
.pulse-insights-list { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.pulse-insight-card { display:flex; gap:10px; align-items:flex-start; padding:10px; border-radius:12px;
  background:color-mix(in srgb, #3A1830 40%, transparent); border:1px solid color-mix(in srgb, #C47A4A 22%, transparent);
  font-size:13px; line-height:1.45; }
.pulse-anneaux-legende { list-style:none; margin:0; padding:0; display:grid; gap:8px; min-width:110px; }
.pulse-anneaux.is-combat .pulse-tick { stroke-linecap: square; }
.pulse-tend-k { margin:0 0 6px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#E0A878; }
.pulse-tend-plus { margin-top:8px; border-radius:12px; border:1px solid color-mix(in srgb,#C47A4A 25%,transparent); padding:0 10px; }
.pulse-ruban { position:relative; margin:8px 0 12px; }
.pulse-ruban-score { position:absolute; right:8px; top:6px; font-weight:800; font-size:18px; color:#F0A090; }
.pulse-alerte-douce { margin:10px 0 12px; padding:10px 12px; border-radius:14px;
  background:color-mix(in srgb,#6B2040 35%,transparent); border:1px solid color-mix(in srgb,#8B2E4A 50%,transparent);
  color:#F0C0A0; font-size:13px; font-weight:600; }
.fil-mode { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.fil-mode-btn.on { border-color:#E85D2A; box-shadow:0 0 0 1px #E85D2A; }


/* GO Tonio — disciplines visibles 2 colonnes */
.box-disc-grid .cartes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.box-disc-grid .box-section { margin-top: 18px; }
.box-disc-grid .box-section-title {
  font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--coral, #E07A5F); margin: 0 0 10px;
}
@media (max-width: 360px) {
  .box-disc-grid .cartes { grid-template-columns: 1fr; }
}


/* FIX contraste Nutrition — chemin / profil / filières (AA) */
.nutri-perso {
  background: #1A0C10 !important;
  border-color: #C47A4A !important;
  color: #F8E8D8 !important;
}
.nutri-perso-titre, html[data-section="nutrition"] .nutri-perso b {
  color: #F0A090 !important;
}
.nutri-perso-lib, .nutri-perso-sous, .nutri-perso small {
  color: #E8D0C0 !important;
}
.nutri-perso-cta, html[data-section="nutrition"] .nutri-perso .bouton {
  width: auto !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  color: #1A0C10 !important;
  background: #F0A090 !important;
  border: 1px solid #E85D2A !important;
  border-radius: 12px !important;
}
.nutri-perso-cta:focus-visible {
  outline: 2px solid #F8E8D8;
  outline-offset: 2px;
}
html[data-section="nutrition"] .bouton.sobre {
  border-color: #C47A4A;
  color: #F8E8D8;
  background: #2A1520;
}


/* Filière visible partout */
.filiere-chip {
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--or, #C9A227) 45%, var(--bordure));
  background: color-mix(in srgb, var(--carte) 88%, #2a1a10);
}
.filiere-chip-kicker {
  margin: 0;
  font: 700 11px/1.2 var(--titre);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--or, #C9A227);
}
.filiere-chip-titre {
  margin: 6px 0 0;
  font: 800 20px/1.25 var(--titre);
  color: var(--texte);
}
.filiere-chip-actions { margin: 8px 0 0; font-size: 14px; }
.profil-identite .profil-filiere {
  margin: 0 0 14px;
  color: var(--texte);
  font-size: 16px;
  line-height: 1.4;
}
.profil-filiere-label {
  display: block;
  font: 700 11px/1.2 var(--titre);
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--or, #C9A227);
  margin-bottom: 4px;
}
.profil-identite .profil-filiere b {
  font-size: 18px;
  font-weight: 800;
  color: var(--texte);
}


/* Opérationnel — Prochaine séance (libellé explicite) */
.op-prochaine-kicker {
  margin: 0 0 8px;
  font: 800 13px/1.2 var(--titre);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--or, #C9A227);
}
.op-prochaine-carte {
  border-color: color-mix(in srgb, var(--or, #C9A227) 40%, var(--bordure)) !important;
}


/* Opérationnel — chemin métier (1× visible + select) */
.op-chemin-kicker {
  margin: 0;
  font: 800 11px/1.2 var(--titre);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--or, #C9A227);
}
.op-chemin-titre {
  margin: 6px 0 12px;
  font: 800 20px/1.25 var(--titre);
  color: var(--texte);
}
.op-chemin-select-label {
  display: grid;
  gap: 6px;
  font: 600 13px/1.2 var(--titre);
  color: var(--texte-doux);
}
.op-filiere-select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--bordure);
  background: var(--fond-carte, var(--carte));
  color: var(--texte);
  font: 600 15px/1.3 var(--titre);
}

.op-seance-exos li{margin:0 0 6px}

.rec-bio{color:var(--ok,#2a7a3a);font-weight:700}
.rec-filter-row{margin:8px 0}
.rec-filter-label{display:block;font-size:12px;font-weight:700;margin:0 0 4px;color:var(--texte-doux)}

.rec-browse-hint{margin:0 0 8px;font-size:13px;color:var(--texte-doux);line-height:1.4}
.al-check-list{display:grid;gap:6px;max-height:42vh;overflow:auto;padding:4px 0}
.al-check{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid var(--bordure);background:var(--fond-carte);cursor:pointer}
.al-check.is-on{border-color:var(--or);background:color-mix(in srgb, var(--or) 12%, var(--fond-carte))}
.al-check input{margin-top:3px;width:18px;height:18px;flex-shrink:0}
.al-check-corps{display:grid;gap:2px;min-width:0}
.al-check-corps b{font-size:14px;line-height:1.3}
.al-check-corps small{font-size:12px;color:var(--texte-doux)}
.carnet-rapide .carnet-jour-bar{margin-bottom:8px}

.ux-tip-ouverture{animation:none}
.coach-fil{display:grid;gap:10px;max-height:40vh;overflow:auto}
.coach-bulle{padding:10px 12px;border-radius:12px;border:1px solid var(--bordure)}
.coach-bulle.from-tonio{background:color-mix(in srgb,var(--or) 10%,var(--fond-carte))}
.coach-bulle.from-moi{background:var(--fond-carte)}
.coach-bulle-meta{font-size:11px;font-weight:700;color:var(--texte-doux);margin-bottom:4px}
.coach-stats-grid{display:grid;gap:10px}

/* Avatar Apple/IG : photo seule + badge crayon + lightbox */
.profil-avatar-row{display:flex;justify-content:flex-start;align-items:center;gap:14px;margin:8px 0 14px;flex-wrap:wrap}
.avatar-slot{display:inline-flex;position:relative;margin:0;align-items:center}
.avatar-tap{
  position:relative;padding:0;border:0;background:transparent;cursor:pointer;
  border-radius:50%;-webkit-tap-highlight-color:transparent;line-height:0;
}
.avatar-tap:focus-visible{outline:2px solid var(--or,#c9a24a);outline-offset:3px}
.avatar-preview{
  width:88px;height:88px;border-radius:50%;overflow:hidden;
  background:var(--fond-carte);border:2px solid var(--bordure);
  display:grid;place-items:center;pointer-events:none;
}
.avatar-preview img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-placeholder{font-size:34px;opacity:.7}
.avatar-placeholder-lg{font-size:72px;opacity:.55}
.avatar-badge-edit{
  position:absolute;right:0;bottom:0;width:26px;height:26px;border-radius:50%;
  background:var(--or,#c9a24a);color:#0b0b0d;display:grid;place-items:center;
  border:2px solid var(--fond,#0b0b0d);box-shadow:0 1px 4px rgba(0,0,0,.4);
  pointer-events:none;
}
.avatar-badge-edit svg{display:block}
/* Legacy labels retirés du flux — gardés inertes si HTML ancien en cache */
.avatar-actions,.avatar-titre,.avatar-sous,.avatar-upload-btn{display:none!important}

.avatar-lightbox{
  position:fixed;inset:0;z-index:10050;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:max(16px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));
  animation:avatar-lb-in .22s ease;
}
@keyframes avatar-lb-in{from{opacity:0}to{opacity:1}}
.avatar-lightbox-scrim{position:absolute;inset:0;background:rgba(0,0,0,.88);cursor:pointer}
.avatar-lightbox-close{
  position:absolute;top:max(12px,env(safe-area-inset-top));right:14px;z-index:2;
  width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;
  display:grid;place-items:center;-webkit-tap-highlight-color:transparent;
}
.avatar-lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:2px}
.avatar-lightbox-photo{
  position:relative;z-index:1;width:min(72vw,300px);aspect-ratio:1;border-radius:50%;
  overflow:hidden;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.18);
  display:grid;place-items:center;box-shadow:0 12px 40px rgba(0,0,0,.45);
}
.avatar-lightbox-photo img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-lightbox-actions{
  position:relative;z-index:1;margin-top:28px;display:flex;flex-direction:column;
  gap:10px;width:min(100%,280px);
}
.avatar-lightbox-actions .bouton{width:100%;justify-content:center;text-align:center}
.avatar-lb-danger{color:#ff7a7a!important;border-color:rgba(255,122,122,.4)!important}
@media (prefers-reduced-motion:reduce){.avatar-lightbox{animation:none}}


/* === visuel7-haptique-sons-expert-a11y-2026-09-18 === */

/* Suivi hologramme + Pulse dials */
.suivi-holo-layout{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;margin:8px 0;max-height:none}
.suivi-holo-cercles{display:flex;flex-direction:column;gap:6px;justify-content:center;min-width:72px;flex:0 0 auto}
.suivi-holo-corps{flex:0 0 auto;width:110px;max-width:32vw;position:relative}
.suivi-holo-avatar{position:absolute;inset:10% 20% 14%;object-fit:cover;opacity:.12;border-radius:40%;pointer-events:none;filter:grayscale(.2)}
.suivi-holo-avatar--vide{background:color-mix(in srgb,var(--sec,#C47A4A) 8%,transparent);border-radius:40%}
.suivi-holo-svg{position:relative;z-index:1;width:100%;max-height:28vh;overflow:visible}
.suivi-holo-svg .planche,
.suivi-holo-svg .planche-holo{width:100%!important;height:auto!important;max-height:150px!important;max-width:110px!important;display:block;margin:0 auto}
.suivi-holo-vues .bouton{padding:4px 8px;font-size:12px;min-height:32px}
.suivi-holo-hint{font-size:11px!important;margin-top:2px!important}
.holo-detail{margin-top:6px;flex:1 1 100%;font-size:13px}
.suivi-holo-layout .pulse-dial svg{width:56px;height:56px}
.suivi-holo-corps .planche .m{fill:color-mix(in srgb,var(--sec,#C47A4A) 55%,transparent);stroke:var(--sec,#C47A4A);stroke-width:.6;cursor:pointer;transition:fill .15s,filter .15s}
.suivi-holo-corps .planche .m:hover,.suivi-holo-corps .planche .m.actif{fill:var(--sec,#C47A4A);filter:drop-shadow(0 0 6px var(--sec,#C47A4A))}
.suivi-holo-corps .planche .silhouette{opacity:.25}
.holo-sexe-f .planche{transform:scaleX(.94);transform-origin:center top}
.holo-sexe-f .silhouette{transform-origin:center}
.suivi-holo-vues{display:flex;gap:8px;margin-top:8px;justify-content:center}
.suivi-holo-hint{margin:6px 0 0;font-size:12px;color:var(--texte-doux);text-align:center}
.holo-detail{margin-top:10px;flex:1 1 100%}
.holo-detail-vide{margin:0;color:var(--texte-doux);font-size:14px}
.holo-detail-nom{margin:0 0 4px;font-size:18px}
.holo-detail-evo-lab{margin:0 0 4px;font-size:13px;color:var(--texte-doux);display:flex;justify-content:space-between}
.holo-evo-bar{height:8px;border-radius:999px;background:color-mix(in srgb,var(--sec,#C47A4A) 18%,transparent);overflow:hidden}
.holo-evo-bar>i{display:block;height:100%;border-radius:inherit;background:var(--sec,#C47A4A)}
.holo-detail-conseil{margin:10px 0 6px;font-size:14px;line-height:1.45}
.holo-detail-lien{margin:0;font-size:14px}
.pulse-dial{position:relative;text-align:center}
.pulse-dial-val{position:absolute;inset:0 0 18px;display:grid;place-items:center;font-weight:800;font-size:15px}
.pulse-dial-lab{display:block;font-size:11px;color:var(--texte-doux);margin-top:2px}

/* Mode expert */
.expert-only,[data-expert-only]{display:none!important}
html[data-expert="1"] .expert-only,
html[data-expert="1"] [data-expert-only]{display:revert!important}
html[data-expert="1"] .expert-only.bloc,
html[data-expert="1"] .expert-only.details,
html[data-expert="1"] details.expert-only{display:block!important}
.badge-expert{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;background:color-mix(in srgb,var(--sec,#C47A4A) 22%,transparent);color:var(--sec,#C47A4A);vertical-align:middle}
html[data-expert="1"] .badge-expert-live{display:inline-block}
.badge-expert-live{display:none;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid var(--sec,#C47A4A);color:var(--sec,#C47A4A)}

/* A11y vague 1 */
html[data-font="grand"]{font-size:118%}
html[data-font="tres-grand"]{font-size:135%}
html[data-contrast="fort"]{--texte-doux: color-mix(in srgb, var(--texte) 88%, var(--fond)); --texte-muet: color-mix(in srgb, var(--texte) 72%, var(--fond)); --bordure: color-mix(in srgb, var(--texte) 35%, transparent)}
html[data-contrast="fort"][data-theme="clair"],
html[data-contrast="fort"][data-theme="light"],
html[data-contrast="fort"][data-theme="crystal-glass-light"],
html[data-contrast="fort"][data-theme="crystal-light"],
html[data-contrast="fort"][data-theme="liquid-glass-light"]{--texte:#0E100F; --texte-doux:#3A4340; --texte-muet:#4A534E}
html[data-contrast="fort"][data-theme="sombre"],
html[data-contrast="fort"][data-theme="noir"],
html[data-contrast="fort"][data-theme="crystal-glass"],
html[data-contrast="fort"][data-theme="crystal-dark"],
html[data-contrast="fort"][data-theme="liquid-glass-dark"],
html[data-contrast="fort"][data-theme="dark"]{--texte:#F7F7F7; --texte-doux:#D8D8D8; --texte-muet:#B8B8B8}
html[data-contrast="fort"] body{background:#0a0a0a;color:#f4f4f4}
html[data-contrast="fort"] .ile-verre,
html[data-contrast="fort"] .glass-regular,
html[data-contrast="fort"] .bloc.elevated{
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  background:color-mix(in srgb,#111 92%,var(--sec,#C47A4A))!important;
  border:1.5px solid color-mix(in srgb,#fff 40%,transparent)!important;
}
html[data-motion="reduit"] *,
html[data-motion="reduit"] *::before,
html[data-motion="reduit"] *::after{
  animation-duration:.01ms!important;animation-iteration-count:1!important;
  transition-duration:.01ms!important;scroll-behavior:auto!important;
}
html[data-motion="reduit"] .parallax,
html[data-motion="reduit"] .celeb,
html[data-motion="reduit"] .fx-25d{display:none!important;transform:none!important}

/* expert paliers + a11y v1 */

/* paliers expert progressifs */
[data-expert-min]{display:none!important}
html[data-expert-palier="1"] [data-expert-min="1"],
html[data-expert-palier="2"] [data-expert-min="1"],
html[data-expert-palier="2"] [data-expert-min="2"],
html[data-expert-palier="3"] [data-expert-min="1"],
html[data-expert-palier="3"] [data-expert-min="2"],
html[data-expert-palier="3"] [data-expert-min="3"]{display:revert!important}
html[data-expert-palier="1"] details[data-expert-min="1"],
html[data-expert-palier="2"] details[data-expert-min="1"],
html[data-expert-palier="2"] details[data-expert-min="2"],
html[data-expert-palier="3"] details[data-expert-min="1"],
html[data-expert-palier="3"] details[data-expert-min="2"],
html[data-expert-palier="3"] details[data-expert-min="3"],
html[data-expert-palier="1"] .bloc[data-expert-min="1"],
html[data-expert-palier="2"] .bloc[data-expert-min="1"],
html[data-expert-palier="2"] .bloc[data-expert-min="2"],
html[data-expert-palier="3"] .bloc[data-expert-min="1"],
html[data-expert-palier="3"] .bloc[data-expert-min="2"],
html[data-expert-palier="3"] .bloc[data-expert-min="3"]{display:block!important}
.palier-dots{display:flex;gap:8px;margin:8px 0}
.palier-dot{width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--texte-doux) 35%,transparent);border:1px solid var(--bordure,rgba(255,255,255,.2))}
.palier-dot.on{background:var(--sec,#C47A4A);border-color:var(--sec,#C47A4A)}
.palier-steps{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:12px;color:var(--texte-doux);margin:0 0 8px}
.palier-step.fait{color:var(--texte)}
.palier-step.courant{color:var(--sec,#C47A4A);font-weight:800}
.palier-sep{opacity:.5}
.palier-hint{margin:0 0 10px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--sec,#C47A4A) 12%,transparent);font-size:13px}
.badge-expert{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;background:color-mix(in srgb,var(--sec,#C47A4A) 22%,transparent);color:var(--sec,#C47A4A)}
html[data-font="grand"]{font-size:118%}
html[data-font="tres-grand"]{font-size:135%}
/* contrast fort: see theme-aware rules above */
html[data-contrast="fort"] .ile-verre,html[data-contrast="fort"] .glass-regular{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:1.5px solid color-mix(in srgb,#fff 40%,transparent)!important}
html[data-motion="reduit"] *,html[data-motion="reduit"] *::before,html[data-motion="reduit"] *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}


/* audit-fix-2026-09-18 — couleurs sémantiques Pulse + holo always-on */
.pulse-dial[data-tone="forme"] .pulse-dial-arc { stroke: #4ade80; }
.pulse-dial[data-tone="forme"] .pulse-dial-val { color: #4ade80; }
.pulse-dial[data-tone="recup"] .pulse-dial-arc { stroke: #60a5fa; }
.pulse-dial[data-tone="recup"] .pulse-dial-val { color: #60a5fa; }
.pulse-dial[data-tone="charge"] .pulse-dial-arc { stroke: #f59e0b; }
.pulse-dial[data-tone="charge"] .pulse-dial-val { color: #f59e0b; }
html.futur2030 .suivi-holo-cercles { display: flex !important; }
html.futur2030 .suivi-holo-layout { display: flex !important; opacity: 1 !important; }
html.futur2030 .suivi-holo-layout .pulse-dial { display: block !important; }
.combat-modes .puce.choisie { outline: 2px solid var(--sec, #C47A4A); }

.celeb-burst{position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(circle at 50% 50%, color-mix(in srgb,var(--sec,#C47A4A) 45%,transparent) 0%, transparent 70%);
  animation:celebPop .65s cubic-bezier(.22,1,.36,1) both}
@keyframes celebPop{0%{opacity:0;transform:scale(.6)}40%{opacity:.85;transform:scale(1.08)}100%{opacity:0;transform:scale(1.25)}}

/* holo compact — A 18 sep 23h : mannequin secondaire max ~1/3 */
html.futur2030 .suivi-holo-corps { flex: 0 0 auto !important; width: 110px !important; max-width: 32vw !important; min-width: 0 !important; }
html.futur2030 .suivi-holo-svg .planche,
html.futur2030 .suivi-holo-svg .planche-holo { max-height: 150px !important; max-width: 110px !important; }
/* stamp: holo-compact-2026-09-18 */


/* audit-fix-2026-09-18 — holo mannequin compact (URGENT A) */
.suivi-holo-layout{
  display:flex!important;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px;
  padding:10px;
  margin:10px 0;
}
.suivi-holo-cercles{
  display:flex!important;
  flex-direction:column;
  gap:8px;
  justify-content:flex-start;
  min-width:72px;
  order:0;
  flex:0 0 auto;
}
.suivi-holo-corps{
  flex:1 1 140px;
  min-width:100px;
  max-width:140px;
  position:relative;
  order:1;
}
.suivi-holo-svg,
.suivi-holo-svg .planche,
.suivi-holo-svg .planche-holo,
.suivi-holo-svg svg.planche,
.suivi-holo-corps .planche,
.suivi-holo-corps svg{
  max-height:28vh!important;
  max-height:160px!important;
  max-width:120px!important;
  width:100%!important;
  height:auto!important;
  margin:0 auto;
  display:block;
}
.suivi-holo-avatar,
.suivi-holo-avatar--vide{
  inset:12% 22% 18%!important;
  max-height:120px;
}
.holo-detail{flex:1 1 100%;order:2;font-size:13px}
.suivi-holo-hint{font-size:11px;margin:4px 0 0}
.suivi-holo-vues{margin-top:4px;gap:6px}
.suivi-holo-vues .bouton{padding:4px 10px;font-size:12px}
.suivi-holo-cercles .pulse-dial svg{width:56px!important;height:56px!important}

/* Muscle info « i » bubble — 18 sep */
.holo-detail-nom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.holo-info-btn{
  width:28px;height:28px;border-radius:999px;border:1px solid color-mix(in srgb,var(--sec,#C47A4A) 55%,transparent);
  background:color-mix(in srgb,var(--sec,#C47A4A) 18%,transparent);color:var(--texte,#f5ebe0);
  font:700 13px/1 system-ui,sans-serif;cursor:pointer;padding:0;
}
.holo-info-btn[aria-expanded="true"]{background:var(--sec,#C47A4A);color:#1a120c}
.holo-info-bulle{
  margin:6px 0 10px;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45;
  background:color-mix(in srgb,var(--sec,#C47A4A) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--sec,#C47A4A) 35%,transparent);
}


/* stamp: pulse-plain-fr-2026-09-18 — repères lisibles sans jargon */
.pulse-faces-help {
  margin: -6px 0 10px;
  text-align: center;
  color: var(--secondaryLabel, rgba(248,232,216,.7));
  font-size: 12px;
}
.pulse-metric small.pm-label {
  display: block;
  font-size: 12px;
  color: var(--secondaryLabel);
}
.pulse-metric small.pm-help {
  display: block;
  margin-top: 3px;
  font-size: 10px;
  line-height: 1.25;
  color: var(--secondaryLabel);
  opacity: .82;
}
.pulse-pad-lab,
.pulse-pad-lab.tl,
.pulse-pad-lab.tr,
.pulse-pad-lab.bl,
.pulse-pad-lab.br {
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.2;
  white-space: nowrap;
}

/* stamp: morpho-suivi-compact-2026-09-18 — mannequin secondaire plein corps */
.suivi-holo-corps{
  flex:0 0 auto!important;
  width:140px!important;
  max-width:36vw!important;
  min-width:0!important;
  position:relative;
  overflow:visible!important;
}
.suivi-morpho-frame{
  width:140px;
  height:200px;
  max-height:32vh;
  border:0;
  border-radius:16px;
  background:#050605;
  display:block;
  overflow:visible;
}
.suivi-holo-svg{display:none!important}
.suivi-holo-vues{display:none!important}

/* Suivi split : infos gauche · Morpho droite (imposant mais pas géant) */
.suivi-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(200px,46%);
  gap:12px;
  align-items:start;
  margin:10px 0 14px;
}
.suivi-split-gauche{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.suivi-split-droite{
  position:sticky;
  top:8px;
  justify-self:end;
  width:100%;
  max-width:280px;
}
.suivi-split .suivi-holo-cercles{
  display:flex!important;
  flex-direction:row;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-start;
  padding:10px;
}
.suivi-split .suivi-morpho-frame{
  width:100%!important;
  height:min(52vh,340px)!important;
  min-height:260px!important;
  max-height:360px!important;
  border:0;
  border-radius:18px;
  background:#050605;
  display:block;
  box-shadow:0 8px 28px rgba(0,0,0,.35);
}
.suivi-split .suivi-holo-hint{
  margin:6px 0 0;
  font-size:12px;
  color:var(--texte-doux);
  text-align:center;
}
@media (max-width:520px){
  .suivi-split{
    grid-template-columns:1fr;
  }
  .suivi-split-droite{
    order:-1; /* Morpho visible en haut sur mobile, puis infos */
    max-width:none;
    position:relative;
  }
  .suivi-split .suivi-morpho-frame{
    height:min(42vh,280px)!important;
    min-height:220px!important;
  }
}


/* Morpho = exactement le rectangle .pulse-pad (feuille+smileys remplacé) */
.pulse-morpho-wrap { margin: 8px 0 14px; }
.pulse-pad.pulse-morpho-rect,
iframe.pulse-morpho-rect {
  display: block;
  width: 100%;
  height: min(42vw, 220px) !important;
  min-height: 160px !important;
  max-height: 220px !important;
  border-radius: 24px !important;
  border: 1px solid color-mix(in srgb, var(--copper, #C47A4A) 40%, transparent);
  background: #050605 !important;
  box-shadow: inset 0 0 40px rgba(0,0,0,.35), 0 12px 36px rgba(0,0,0,.3);
  padding: 0;
}
.pulse-pad--ghost { display: none !important; }
.pulse-faces--mini { margin-bottom: 8px; }
.pulse-faces--mini .pulse-face { min-height: 52px; }
.pulse-faces--mini .pulse-face span { font-size: 22px; }

/* Détail muscle — plus de carré blanc / texte invisible */
#holo-detail.holo-detail,
.holo-detail {
  margin-top: 10px;
  padding: 12px 14px !important;
  border-radius: 16px;
  background: color-mix(in srgb, var(--carte, #1a1210) 92%, #000) !important;
  color: var(--texte, #F3E6D8) !important;
  border: 1px solid color-mix(in srgb, var(--sec, #C47A4A) 35%, transparent);
}
.holo-detail-nom b { color: var(--texte, #F3E6D8) !important; }
.holo-detail-vide { color: var(--texte-doux, #c4b4a4) !important; }
.holo-info-bulle {
  background: color-mix(in srgb, var(--sec, #C47A4A) 22%, #1a1210) !important;
  color: var(--texte, #F3E6D8) !important;
}
/* plus de Morpho doublon à droite */
.suivi-split-droite { display: none !important; }
.suivi-split { grid-template-columns: 1fr !important; }


/* Morpho remplit TOUT le bloc rectangle confirmé (Forme / Touche / Oriente / H|F) */
.morpho-rect-bloc{
  position:relative;
  margin:12px 0 16px;
  padding:12px 12px 14px;
  border-radius:24px;
  overflow:hidden;
}
.morpho-rect-chips{
  display:flex;flex-wrap:wrap;gap:6px;
  margin:0 0 8px;
}
.morpho-chip{
  font-size:11px;font-weight:700;letter-spacing:.04em;
  padding:4px 10px;border-radius:999px;
  background:color-mix(in srgb,var(--sec,#C47A4A) 22%,transparent);
  color:var(--texte,#F3E6D8);
  border:1px solid color-mix(in srgb,var(--sec,#C47A4A) 40%,transparent);
}
.morpho-rect-frame-wrap{
  width:100%;
  /* même empreinte visuelle qu’un gros bloc Pulse : large + haut */
  height:min(58vw, 340px);
  min-height:240px;
  max-height:380px;
  border-radius:18px;
  overflow:hidden;
  background:#050605;
  box-shadow:inset 0 0 40px rgba(0,0,0,.4);
}
.morpho-rect-frame{
  width:100%!important;
  height:100%!important;
  border:0;
  display:block;
  background:#050605;
}
.morpho-rect-bloc .holo-detail{
  margin-top:10px;
  padding:12px 14px!important;
  background:color-mix(in srgb,var(--carte,#1a1210) 94%,#000)!important;
  color:var(--texte,#F3E6D8)!important;
  border-radius:14px;
  border:1px solid color-mix(in srgb,var(--sec,#C47A4A) 30%,transparent);
}
.morpho-rect-bloc .suivi-holo-cercles{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;
}
/* désactive l’ancien petit iframe pulse */
iframe.pulse-morpho-rect{display:none!important}


/* Suivi: Morpho EN HAUT À DROITE, Pulse en dessous */
.suivi-top-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(200px,48%);
  gap:12px;
  align-items:start;
  margin:8px 0 12px;
}
.suivi-top-kicker{
  font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--texte-doux);margin:0;
}
.suivi-top-droite{width:100%;}
.suivi-top-droite .morpho-rect-bloc{margin:0;}
.suivi-top-droite .morpho-rect-frame-wrap{
  height:min(52vw,300px)!important;
  min-height:220px!important;
  max-height:320px!important;
}
.suivi-top-droite .suivi-holo-cercles{display:none;} /* dials restent sous Pulse / Plus */
@media (max-width:520px){
  .suivi-top-row{grid-template-columns:1fr;}
  .suivi-top-droite .morpho-rect-frame-wrap{
    height:min(48vw,260px)!important;
    min-height:200px!important;
  }
}


/* Suivi head: photo gauche · Morpho haut droite · Pulse dessous — FIX blank */
.suivi-head-grid{
  display:grid!important;
  grid-template-columns:minmax(120px,.9fr) minmax(180px,1.2fr);
  gap:12px;
  align-items:start;
  margin:10px 0 14px;
  visibility:visible!important;
  opacity:1!important;
}
.suivi-head-right .morpho-rect-bloc{
  margin:0!important;
  display:block!important;
  visibility:visible!important;
}

.suivi-head-right .suivi-holo-cercles{display:none!important}
.suivi-top-row{display:contents!} /* legacy no-op if present */
#pulse-continuum,.pulse-continuum{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
@media (max-width:520px){
  .suivi-head-grid{grid-template-columns:1fr;}
}

/* ANCIEN Morpho fonctionnel dans Suivi — même cadre que #/morpho */
.suivi-morpho-ancien{margin:0;padding:10px;display:block!important;visibility:visible!important}

.suivi-morpho-cadre iframe{
  position:absolute;inset:0;
  width:100%!important;height:100%!important;
  border:0;display:block;background:#050605;
}
.suivi-head-grid{
  display:grid!important;
  grid-template-columns:minmax(100px,.7fr) minmax(200px,1.3fr);
  gap:12px;align-items:start;margin:10px 0 14px;
}
.suivi-head-right .suivi-morpho-ancien{margin:0}


/* Combat palette sobre — A 18 sep */
html[data-section="combat"] .box-disc-card,
html[data-registre="angulaire"] .box-disc-card {
  background: color-mix(in srgb, var(--carte, #1a1210) 92%, transparent);
  border: 1px solid color-mix(in srgb, #fff 12%, transparent);
}
html[data-section="combat"] .box-section-title,
html[data-registre="angulaire"] .box-section-title {
  color: var(--texte, #F3E6D8);
  letter-spacing: 0.02em;
}
html[data-section="combat"] .combat-modes {
  border: 1px solid color-mix(in srgb, var(--sec, #C47A4A) 25%, transparent);
}



/* stamp: morpho-portrait-tall-2026-09-19 */
/* stamp: morpho-xxl-onmuscle-2026-09-18 */
/* Suivi: photo + titre EN HAUT À GAUCHE ; Morpho XXL en dessous (plein largeur) */
.suivi-titre-photo{
  display:flex;
  align-items:center;
  gap:12px;
  margin:8px 0 12px;
}
.suivi-titre-photo-avatar{
  flex:0 0 auto;
}
.suivi-titre-photo-avatar .avatar-preview,
.suivi-titre-photo-avatar .profil-avatar-row .avatar-preview{
  width:56px!important;
  height:56px!important;
}
.suivi-titre-photo-avatar .avatar-slot{margin:0}
.suivi-titre-photo-avatar .avatar-placeholder{font-size:22px}
.suivi-titre-photo-avatar .avatar-badge-edit{width:18px;height:18px;border-width:1.5px}
.suivi-titre-photo-avatar .avatar-badge-edit svg{width:9px;height:9px}
.suivi-titre-photo-avatar .avatar-actions{display:none!important}
.suivi-titre-photo-text{flex:1;min-width:0}
.suivi-morpho-wrap{width:100%;margin:8px 0 16px}
.suivi-morpho-wrap .suivi-morpho-ancien,
.suivi-morpho-wrap .morpho-rect-bloc{
  margin:0!important;
  width:100%!important;
}
.suivi-morpho-wrap .suivi-morpho-cadre,
.suivi-morpho-wrap .morpho-rect-frame-wrap,
.suivi-morpho-cadre{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:3 / 4!important;
  min-height:min(72vh, 560px)!important;
  max-height:none!important;
  border-radius:20px!important;
  overflow:hidden!important;
  background:#050605!important;
}
.suivi-morpho-wrap .suivi-morpho-cadre iframe,
.suivi-morpho-wrap .morpho-rect-frame{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border:0!important;
  display:block!important;
}
/* Tip sur le muscle (dans iframe) — bulle parent cachée */
.suivi-morpho-wrap .holo-detail,
.suivi-morpho-wrap .holo-detail--minimal{
  display:none!important;
}
.suivi-head-grid{display:none!important}
@media (max-width:520px){
  .suivi-morpho-cadre,
  .suivi-morpho-wrap .morpho-rect-frame-wrap{
    width:100%!important;
    height:auto!important;
    aspect-ratio:3 / 4!important;
    min-height:min(68vh, 480px)!important;
    max-height:none!important;
  }
}



/* Suivi ÉPURÉ — photo · Morpho · Pulse · 3 séances */
.suivi-simple{padding-bottom:12px}
.suivi-titre-photo{display:flex;align-items:center;gap:12px;margin:4px 0 14px}
.suivi-titre-photo-avatar .avatar-preview{width:56px!important;height:56px!important}
.suivi-morpho-wrap{width:100%;margin:0 0 18px}
.suivi-morpho-wrap .suivi-morpho-cadre,
.suivi-morpho-wrap .morpho-rect-frame-wrap,
.suivi-morpho-cadre{
  width:100%!important;
  height:auto!important;
  aspect-ratio:3 / 4!important;
  min-height:min(72vh, 560px)!important;
  max-height:none!important;
  border-radius:20px!important;
  overflow:hidden!important;
  background:#050605!important;
  position:relative!important;
}
.suivi-morpho-wrap iframe{
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;border:0!important;
}
.suivi-pulse-wrap{margin:0 0 18px}
.suivi-trois-seances .op-prochaine{margin-top:10px}
/* masquer chips inutiles Morpho dans Suivi épuré */
.suivi-simple .morpho-rect-chips{display:none!important}
.suivi-simple .holo-detail:not(.suivi-muscle-fiche){display:none!important}


/* Morpho pur Suivi — zero chrome hors iframe */
.suivi-morpho-ancien .morpho-rect-chips,
.morpho-rect-chips{display:none!important}
.suivi-morpho-ancien .holo-detail:not(.suivi-muscle-fiche){display:none!important}
#holo-detail:not(.suivi-muscle-fiche){display:none!important}
#holo-detail.suivi-muscle-fiche:not([hidden]){display:block!important;visibility:visible!important}

/* stamp: combat-hero-cover-2026-09-19 */
html[data-section="combat"] .box-hero-img,.box-hero-img{object-fit:cover!important;object-position:center 28%!important}
html[data-section="combat"] .box-hero,.box-hero{aspect-ratio:16/9;max-height:280px;overflow:hidden}

/* stamp: suivi-muscle-fiche-2026-09-19 */
.suivi-muscle-fiche,.holo-detail.suivi-muscle-fiche{
  margin:8px 10px 4px;padding:10px 12px;border-radius:12px;
  background:color-mix(in srgb,var(--carte,#12110f) 92%,#00E5FF 8%);
  border:1px solid color-mix(in srgb,#00E5FF 40%,transparent);
  font-size:12px;line-height:1.35;color:var(--texte,#eee);
}
.suivi-muscle-fiche .holo-detail-nom{margin:0 0 6px;font-size:14px;color:#00E5FF}
.suivi-fiche-dl{margin:0;display:grid;gap:2px}
.suivi-fiche-dl dt{margin:4px 0 0;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,#00E5FF 80%,#888);font-weight:700}
.suivi-fiche-dl dd{margin:0;color:var(--texte,#f2f2f2)}

/* === point7-enrichi-depth-sons-2026-09-19 ===
   Visual depth premium: layered shadows, 3D relief, GPU transitions.
   Respects prefers-reduced-motion, data-motion=reduit, data-fx=leger.
   Limits backdrop-filter stacking (no blur on nested ile-verre). */

:root {
  --depth-relief:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -1px 0 rgba(0,0,0,.22),
    0 2px 4px rgba(0,0,0,.18),
    0 12px 28px rgba(0,0,0,.32),
    0 28px 56px rgba(0,0,0,.22);
  --depth-relief-press:
    inset 0 2px 6px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.06),
    0 2px 8px rgba(0,0,0,.28);
  --depth-nav-lift:
    0 4px 12px rgba(0,0,0,.28),
    0 14px 32px rgba(0,0,0,.35),
    0 0 0 1px color-mix(in srgb, var(--coral, #E07A5F) 22%, transparent);
}

.ile-verre,
.carte.elevated,
.bloc.elevated,
html.futur2030 .profil-hq .bloc,
html.futur2030 .rec-card {
  box-shadow: var(--depth-relief);
  transform: translateZ(0);
  transition: transform 220ms cubic-bezier(.22,.8,.28,1), opacity 220ms ease;
  will-change: transform;
}

/* Nested glass: solid fill only — avoid backdrop-filter stacking */
.ile-verre .ile-verre,
.ile-verre .glass-regular,
.carte .ile-verre {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: color-mix(in srgb, var(--carte, #1a1210) 94%, var(--bordeaux, #4A2030));
}

.ile-verre:active,
.carte:active,
.bloc.elevated:active,
html.futur2030 .rec-card:active {
  transform: scale(0.985) translateZ(0);
  box-shadow: var(--depth-relief-press);
  transition-duration: 90ms;
}

/* Nav lift — dock orbs + barre current */
.dock-orb,
.dock-hub,
.barre button {
  transition: transform 200ms cubic-bezier(.22,.8,.28,1), opacity 200ms ease;
  will-change: transform;
}
@media (hover: hover) and (pointer: fine) {
  .dock-orb:hover,
  .dock-hub:hover,
  .barre button:hover {
    transform: translateY(-3px) scale(1.04);
    box-shadow: var(--depth-nav-lift);
  }
  .ile-verre:hover {
    transform: translateY(-2px) translateZ(0);
  }
}
.dock-orb:active,
.dock-hub:active,
.barre button:active {
  transform: scale(0.94) translateY(0);
  opacity: 0.92;
}
.barre button[aria-current="page"],
.dock-orb[aria-current="page"] {
  transform: translateY(-2px);
  box-shadow: var(--depth-nav-lift);
}

/* FX léger: flatten relief, kill blur extras */
html[data-fx="leger"] .ile-verre,
html[data-fx="leger"] .carte.elevated,
html[data-fx="leger"] .bloc.elevated {
  box-shadow: 0 4px 14px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html[data-fx="leger"] .ile-verre:hover,
html[data-fx="leger"] .dock-orb:hover,
html[data-fx="leger"] .barre button:hover {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .ile-verre, .carte.elevated, .bloc.elevated, .dock-orb, .dock-hub, .barre button,
  html.futur2030 .profil-hq .bloc, html.futur2030 .rec-card {
    transition: none !important;
    transform: none !important;
    will-change: auto !important;
  }
  .ile-verre:active, .carte:active, .dock-orb:active, .barre button:active {
    transform: none !important;
  }
}
html[data-motion="reduit"] .ile-verre,
html[data-motion="reduit"] .carte.elevated,
html[data-motion="reduit"] .dock-orb,
html[data-motion="reduit"] .dock-hub,
html[data-motion="reduit"] .barre button {
  transition: none !important;
  transform: none !important;
  will-change: auto !important;
}


/* === Affichage/langue + typo AA (2026-09-19) === */
html[data-theme="clair"] .pulse-pad-lab,
html[data-theme="light"] .pulse-pad-lab,
html[data-theme="crystal-glass-light"] .pulse-pad-lab,
html[data-theme="crystal-light"] .pulse-pad-lab,
html[data-theme="liquid-glass-light"] .pulse-pad-lab {
  color: var(--texte-doux) !important;
}
html[data-theme="clair"] .pulse-face small,
html[data-theme="light"] .pulse-face small,
html[data-theme="clair"] .pulse-metric small,
html[data-theme="light"] .pulse-metric small {
  color: var(--texte-doux);
}
.btn-al-rapide .btn-al-ico {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0; line-height: 1; font-size: 13px;
}
.btn-al-rapide .btn-al-sun { font-size: 15px; line-height: 1; }
.btn-al-rapide .btn-al-globe { font-size: 10px; line-height: 1; margin-top: -1px; }
.al-row-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.al-row-head b { font-size: 15px; }
.al-ico { font-size: 16px; line-height: 1; }
.al-help { margin: 0 0 8px; font-size: 13px; color: var(--texte-doux); line-height: 1.4; }
/* Body type floor (Apple HIG ~17pt body, Material 16sp) */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { letter-spacing: -0.01em; }
h1, h2, h3, .titre { letter-spacing: -0.02em; }
.puce-vue, .chip, .bouton { letter-spacing: 0; }


/* === Livre bord droit (2026-09-19) === */
.btn-livre-bord {
  z-index: 45;
}
html[data-theme="clair"] .btn-livre-bord,
html[data-theme="light"] .btn-livre-bord,
html[data-theme="crystal-glass-light"] .btn-livre-bord,
html[data-theme="liquid-glass-light"] .btn-livre-bord {
  color: var(--texte);
  background: color-mix(in srgb, var(--carte) 92%, var(--accent, var(--heat)));
}


/* === Nutrition toolbar 2028 — verre, une ligne, pas de pile grise === */
.rec-toolbar-2028 {
  position: sticky; top: 0; z-index: 6;
  margin: 0 0 12px; padding: 10px 12px;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--glass-border, var(--bordure, #333)) 80%, transparent);
  background: color-mix(in srgb, var(--glass-bg, var(--carte, var(--fond-carte, #1a1a1a))) 82%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
  box-shadow: var(--elev-2, 0 8px 24px rgba(0,0,0,.2));
}
.rec-seg {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4px;
  padding: 3px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--texte, #fff) 6%, transparent);
}
.rec-seg-btn {
  appearance: none; border: 0; cursor: pointer;
  min-height: 40px; padding: 8px 6px;
  border-radius: 11px;
  background: transparent;
  color: var(--texte, #eee);
  font: 700 13px/1.2 var(--titre, system-ui);
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  touch-action: manipulation;
  position: relative;
}
.rec-seg-btn .rec-seg-ico { font-size: 14px; line-height: 1; opacity: .9; }
.rec-seg-btn.is-on,
.rec-seg-btn[aria-pressed="true"],
.rec-seg-btn.is-open {
  background: color-mix(in srgb, var(--or, var(--accent, #c9a227)) 28%, var(--carte, #222));
  color: var(--texte, #fff);
  box-shadow: 0 1px 0 color-mix(in srgb, #fff 12%, transparent);
}
.rec-seg-btn.has-active:not(.is-open)::after {
  content: ""; position: absolute; top: 6px; right: 8px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--or, #c9a227);
}
.rec-seg-badge {
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
  font: 800 10px/18px system-ui; background: var(--or, #c9a227); color: #111;
}
.rec-toolbar-panels { margin-top: 8px; }
.rec-toolbar-panel {
  padding: 10px 4px 4px;
  border-top: 1px solid color-mix(in srgb, var(--texte, #fff) 8%, transparent);
  animation: recPanelIn .18s ease;
}
@keyframes recPanelIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}
.rec-cats-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rec-cats-inline.puces, .rec-cats-inline {
  display: flex; flex-wrap: nowrap; gap: 8px; padding-bottom: 4px;
}
.rec-cats-inline .puce { flex: 0 0 auto; }
.rec-cats-autres { margin-top: 8px; }
.rec-filiere-row { margin-top: 8px; }
.rec-filters-glass { display: grid; gap: 12px; }
.rec-glass-section { display: grid; gap: 6px; }
.rec-glass-kicker {
  margin: 0; font: 700 11px/1 var(--titre, system-ui);
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--texte-doux, #999);
}
.rec-chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
.rec-chip {
  appearance: none; cursor: pointer; touch-action: manipulation;
  min-height: 34px; padding: 6px 12px; border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--texte, #fff) 16%, transparent);
  background: color-mix(in srgb, var(--texte, #fff) 5%, transparent);
  color: var(--texte, #eee);
  font: 650 12px/1.2 system-ui, sans-serif;
}
.rec-chip.on, .rec-chip[aria-pressed="true"] {
  border-color: color-mix(in srgb, var(--or, #c9a227) 55%, transparent);
  background: color-mix(in srgb, var(--or, #c9a227) 32%, transparent);
  color: var(--texte, #fff);
  font-weight: 750;
}
.rec-glass-actions { display: flex; justify-content: flex-end; padding-top: 2px; }
/* Contraste thèmes clairs */
html[data-theme="clair"] .rec-toolbar-2028,
html[data-theme="light"] .rec-toolbar-2028,
html[data-theme="crystal-glass-light"] .rec-toolbar-2028,
html[data-theme="liquid-glass-light"] .rec-toolbar-2028 {
  background: color-mix(in srgb, var(--carte, #fff) 88%, transparent);
  border-color: color-mix(in srgb, var(--texte, #111) 12%, transparent);
}
html[data-theme="clair"] .rec-seg,
html[data-theme="light"] .rec-seg,
html[data-theme="crystal-glass-light"] .rec-seg,
html[data-theme="liquid-glass-light"] .rec-seg {
  background: color-mix(in srgb, var(--texte, #111) 6%, transparent);
}
html[data-theme="clair"] .rec-seg-btn.is-on,
html[data-theme="clair"] .rec-seg-btn[aria-pressed="true"],
html[data-theme="clair"] .rec-seg-btn.is-open,
html[data-theme="light"] .rec-seg-btn.is-on,
html[data-theme="light"] .rec-seg-btn[aria-pressed="true"],
html[data-theme="light"] .rec-seg-btn.is-open {
  background: color-mix(in srgb, var(--or, #c9a227) 35%, #fff);
  color: #111;
}
/* Masquer l’ancien hint gris si encore présent */
.rec-browse-hint { display: none !important; }
.rec-filters-compact:not(.rec-toolbar-panel) .rec-filter-label { display: none; }


/* === morpho-final-2026-09-19 — Suivi Morpho FINAL + Profil avatar gauche === */
.profil-avatar-row{
  display:flex!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:14px!important;
  margin:8px 0 14px!important;
  flex-wrap:wrap;
}
.profil-avatar-meta{flex:1 1 auto;min-width:0;text-align:left}
.profil-avatar-meta .profil-kicker{margin:0 0 2px}
.profil-avatar-meta h1{margin:0 0 4px;font-size:26px;line-height:1.15}
.profil-avatar-meta .profil-filiere{margin:0}
.profil-identite .profil-avatar-row .avatar-preview{
  width:72px;height:72px;border-radius:50%;
}
.profil-identite .profil-avatar-row .avatar-tap{display:block}

.suivi-morpho-toolbar{
  display:flex;flex-wrap:wrap;gap:10px 14px;
  align-items:center;justify-content:space-between;
  margin:0 0 8px;padding:0 2px;
}
.suivi-morpho-seg-group{
  display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.suivi-morpho-seg-lab{
  font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;
  color:var(--texte-doux,#a89890);margin-right:2px;
}
.suivi-morpho-seg{
  appearance:none;border:1px solid color-mix(in srgb,#00E5FF 35%,var(--bordure,#444));
  background:color-mix(in srgb,var(--carte,#161412) 88%,#00E5FF 6%);
  color:var(--texte,#F3E6D8);
  font-size:12px;font-weight:700;letter-spacing:.02em;
  padding:6px 11px;border-radius:999px;min-height:36px;min-width:40px;
  cursor:pointer;line-height:1;
}
.suivi-morpho-seg.on,
.suivi-morpho-seg[aria-pressed="true"]{
  background:color-mix(in srgb,#00E5FF 28%,#0a1214);
  border-color:#00E5FF;color:#E8FFFE;
  box-shadow:0 0 16px rgba(0,229,255,.28);
}
.suivi-morpho-seg:focus-visible{
  outline:2px solid #00E5FF;outline-offset:2px;
}
.suivi-morpho-cadre{
  position:relative;width:100%;
  aspect-ratio:1/1;
  max-height:min(72vw,420px);
  border-radius:18px;overflow:hidden;background:#050605;
}
.suivi-muscle-fiche:not([hidden]){
  display:block!important;visibility:visible!important;opacity:1!important;
}

/* morpho-final profil avatar LEFT hard fix */
.profil-hq .profil-avatar-row,
.profil-identite .profil-avatar-row{
  display:flex!important;
  flex-direction:row!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:14px!important;
  text-align:left!important;
}
.profil-hq .profil-avatar-row .avatar-slot,
.profil-identite .profil-avatar-row .avatar-slot{
  flex:0 0 auto!important;
  margin:0!important;
  display:inline-flex!important;
}
.profil-hq .profil-avatar-row .avatar-preview,
.profil-identite .profil-avatar-row .avatar-preview{
  width:72px!important;height:72px!important;border-radius:50%!important;
  display:block!important;
}
.profil-hq .profil-avatar-meta,
.profil-identite .profil-avatar-meta{
  flex:1 1 auto!important;
  min-width:0!important;
  text-align:left!important;
}
.profil-hq .profil-avatar-meta h1,
.profil-identite .profil-avatar-meta h1{margin:0 0 4px!important;text-align:left!important}

/* morpho-final profil ROW nowrap — avatar LEFT, titre à droite */
.profil-hq .profil-avatar-row,
.profil-identite .profil-avatar-row,
.profil-avatar-row{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:14px!important;
}
.profil-hq .profil-avatar-row .avatar-slot,
.profil-identite .profil-avatar-row .avatar-slot{
  flex:0 0 72px!important;
  width:72px!important;
  max-width:72px!important;
}
.profil-hq .profil-avatar-meta,
.profil-identite .profil-avatar-meta,
.profil-avatar-meta{
  flex:1 1 auto!important;
  width:auto!important;
  max-width:calc(100% - 90px)!important;
  min-width:0!important;
}

/* === P2-PASS 2026-09-19 — rest sticky · empty · courbes · a11y === */
.repos-sticky {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  padding: 10px 12px;
  border-radius: 16px;
  border: 1.5px solid color-mix(in srgb, var(--or, #C9A227) 55%, var(--bordure));
  background: color-mix(in srgb, var(--fond-carte, #1a1412) 92%, var(--or, #C9A227));
  box-shadow: 0 8px 28px color-mix(in srgb, #000 45%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.repos-sticky-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 6px 10px;
  align-items: center;
}
.repos-sticky-info {
  grid-column: 1;
  font-size: 15px;
  color: var(--texte);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 4px;
}
.repos-sticky-kicker {
  font: 700 11px/1 var(--titre, system-ui);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--or, #C9A227);
  width: 100%;
}
.repos-sticky-n {
  font: 800 28px/1 var(--titre, system-ui);
  font-variant-numeric: tabular-nums;
  color: var(--texte);
}
.repos-sticky-unit { font-size: 14px; color: var(--texte-doux); }
.repos-sticky-label { font-size: 13px; color: var(--texte-doux); }
.repos-sticky-bar {
  grid-column: 1 / -1;
  width: 100%;
  height: 8px;
  accent-color: var(--or, #C9A227);
}
.repos-sticky-skip {
  grid-column: 2;
  grid-row: 1;
  min-height: 44px;
  min-width: 72px;
  align-self: center;
}
html.repos-sticky-actif #app {
  padding-bottom: calc(160px + env(safe-area-inset-bottom, 0px));
}

.empty-state {
  text-align: left;
}
.empty-state-ico {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  margin-bottom: 10px;
  font-size: 22px;
  background: color-mix(in srgb, var(--or, #C9A227) 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--or, #C9A227) 40%, transparent);
}

.suivi-courbes .suivi-courbe-item {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--bordure);
}
.suivi-courbes .suivi-courbe-item:first-of-type { border-top: 0; padding-top: 0; }
.suivi-courbe-tete {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
  font-size: 14px;
}
.suivi-courbe-tete span { color: var(--texte-doux); font-size: 12px; }

.codebarre-cta input#cb-code:focus-visible {
  outline: 2px solid var(--or, #C9A227);
  outline-offset: 2px;
}

/* a11y contrast leftovers — sous-titres + hit avatar */
.sous-h2 {
  color: color-mix(in srgb, var(--texte-doux) 88%, var(--texte)) !important;
}
.avatar-tap {
  min-width: 44px;
  min-height: 44px;
}
.profil-kicker {
  color: color-mix(in srgb, var(--texte-doux) 70%, var(--or, #C9A227));
}

/* ═══ Morpho APPLE morpho-apple-2026-09-19 — Suivi parent chrome ═══ */
.suivi-morpho-apple.suivi-morpho-ancien,
.suivi-morpho-wrap .suivi-morpho-apple{
  margin:0!important;padding:12px!important;
  border-radius:22px!important;
  background:color-mix(in srgb,var(--carte,#121412) 78%,transparent)!important;
  border:1px solid color-mix(in srgb,#00E5FF 22%,var(--bordure,#333))!important;
  backdrop-filter:blur(22px) saturate(1.35)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.35)!important;
  box-shadow:0 12px 40px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06)!important;
}
.suivi-morpho-apple .suivi-morpho-toolbar,
.suivi-morpho-wrap .suivi-morpho-toolbar{
  display:flex!important;flex-wrap:wrap;gap:12px 16px;
  align-items:center;justify-content:space-between;
  margin:0 0 12px!important;padding:4px 2px!important;
}
.suivi-morpho-apple .suivi-morpho-seg-group{
  display:inline-flex!important;align-items:center;gap:8px;flex-wrap:wrap;
  padding:4px;border-radius:999px;
  background:color-mix(in srgb,#000 28%,transparent);
  border:1px solid color-mix(in srgb,#fff 10%,transparent);
}
.suivi-morpho-apple .suivi-morpho-seg-lab{
  font:700 11px/1 system-ui,-apple-system,sans-serif!important;
  letter-spacing:.1em;text-transform:uppercase;
  color:color-mix(in srgb,var(--texte,#F3E6D8) 55%,transparent)!important;
  padding:0 6px 0 10px;margin:0!important;
}
.suivi-morpho-apple .suivi-morpho-seg,
.suivi-morpho-wrap .suivi-morpho-seg{
  appearance:none!important;
  min-height:44px!important;min-width:44px!important;
  padding:0 16px!important;border-radius:999px!important;
  border:1px solid transparent!important;
  background:transparent!important;
  color:var(--texte,#F3E6D8)!important;
  font:700 14px/1 system-ui,-apple-system,"SF Pro Text",sans-serif!important;
  letter-spacing:.01em;cursor:pointer;
  transition:background .18s ease, box-shadow .18s ease, color .18s ease;
}
.suivi-morpho-apple .suivi-morpho-seg.on,
.suivi-morpho-apple .suivi-morpho-seg[aria-pressed="true"],
.suivi-morpho-wrap .suivi-morpho-seg.on,
.suivi-morpho-wrap .suivi-morpho-seg[aria-pressed="true"]{
  background:color-mix(in srgb,#00E5FF 28%,#0a1214)!important;
  border-color:color-mix(in srgb,#00E5FF 70%,transparent)!important;
  color:#E8FFFE!important;
  box-shadow:0 0 0 1px rgba(0,229,255,.25), 0 0 20px rgba(0,229,255,.22)!important;
}
.suivi-morpho-apple .suivi-morpho-seg:focus-visible{
  outline:2px solid #00E5FF!important;outline-offset:2px!important;
}
.suivi-morpho-wrap .suivi-morpho-cadre,
.suivi-morpho-apple .suivi-morpho-cadre,
.suivi-morpho-cadre{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:3 / 4!important;
  min-height:min(70vh, 520px)!important;
  max-height:none!important;
  border-radius:20px!important;
  overflow:hidden!important;
  background:#050605!important;
  border:1px solid color-mix(in srgb,#00E5FF 18%,transparent)!important;
  box-shadow:inset 0 0 60px rgba(0,229,255,.06)!important;
}
.suivi-morpho-wrap .suivi-morpho-cadre iframe,
.suivi-morpho-apple .suivi-morpho-cadre iframe{
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;
  border:0!important;display:block!important;
  background:#050605!important;
}
/* Parent fiche MUST show — override earlier display:none on .holo-detail */
.suivi-morpho-wrap #holo-detail.suivi-muscle-fiche:not([hidden]),
.suivi-morpho-apple #holo-detail.suivi-muscle-fiche:not([hidden]),
#holo-detail.suivi-muscle-fiche:not([hidden]){
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin-top:12px!important;
  padding:14px 16px!important;
  border-radius:16px!important;
  background:color-mix(in srgb,var(--carte,#121412) 88%,#00E5FF 6%)!important;
  border:1px solid color-mix(in srgb,#00E5FF 35%,transparent)!important;
  color:var(--texte,#F3E6D8)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}
.suivi-morpho-wrap .holo-detail:not(.suivi-muscle-fiche),
.suivi-morpho-wrap .holo-detail--minimal{display:none!important}
/* Kill motion.css square crop that fought 3:4 full-body */
.suivi-morpho-wrap .suivi-morpho-cadre.suivi-morpho-cadre{
  aspect-ratio:3 / 4!important;
  max-height:none!important;
}


/* ═══ FRONT 2 — métier picker + Exercices FAB + no orphan Aa ═══ */
#btn-al-rapide { display: none !important; }

.profil-metier-titre {
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--texte);
}
.profil-metier-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.profil-metier-actions .bouton { min-height: 44px; }
.profil-metier-sheet {
  margin-top: 14px;
  padding: 12px 12px 14px;
  border-radius: 16px;
  border: 1px solid var(--bordure, rgba(255,255,255,.12));
  background: color-mix(in srgb, var(--fond-carte, #1c1c1e) 88%, transparent);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
}
.metier-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: 8px;
}
button.metier-pick {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 76px;
  padding: 10px 8px;
  border-radius: 14px;
  border: 1px solid var(--bordure, rgba(255,255,255,.14));
  background: color-mix(in srgb, var(--fond-carte, #2c2c2e) 70%, transparent);
  color: var(--texte);
  font: inherit;
  cursor: pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
button.metier-pick:active { transform: scale(0.97); }
button.metier-pick.actif,
button.metier-pick.is-selected {
  border-color: var(--coral, #ff6b4a);
  background: color-mix(in srgb, var(--coral, #ff6b4a) 18%, transparent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--coral, #ff6b4a) 35%, transparent);
}
.metier-pick-pic { font-size: 22px; line-height: 1; }
.metier-pick-lab { font-size: 12px; font-weight: 650; text-align: center; line-height: 1.25; }
.profil-metier-search input {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--bordure);
  background: var(--fond-carte);
  color: var(--texte);
  font-size: 16px;
  min-height: 44px;
}
.profil-metier-hint {
  margin: 0;
  color: var(--texte-doux);
  font-size: 13px;
  line-height: 1.45;
}
.profil-filiere-hits .metier-hit {
  width: 100%;
  text-align: left;
  margin-top: 4px;
}
#profil-affichage-langue .puce-vue {
  min-height: 44px;
}
#profil-affichage-langue .puce-vue.actif {
  border-color: var(--coral, #ff6b4a);
}
html[data-theme="clair"] .profil-metier-sheet,
html[data-theme="light"] .profil-metier-sheet,
html[data-theme="crystal-glass-light"] .profil-metier-sheet {
  background: color-mix(in srgb, #fff 82%, transparent);
  border-color: rgba(0,0,0,.08);
}
html[data-theme="clair"] button.metier-pick,
html[data-theme="light"] button.metier-pick {
  background: color-mix(in srgb, #fff 90%, transparent);
}

/* Exercices FAB — alone on right edge, intentional */
.btn-livre-bord .btn-livre-lab {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: none;
}

/* ═══ PULSE MAX — 2026-09-19 · sparklines + plain FR + glass ═══ */
.pulse-continuum {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(155deg, rgba(232,93,42,.12), rgba(58,24,48,.45) 48%, rgba(26,18,16,.7)),
    color-mix(in srgb, var(--carte, #1a1210) 82%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 38%, transparent);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04) inset,
    0 12px 40px rgba(0,0,0,.35),
    0 0 32px rgba(232,93,42,.12);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
}
.pulse-kicker { color: #E85D2A; letter-spacing: .14em; }
.pulse-forme-k {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #E0A878;
  margin-bottom: 2px;
}
.pulse-forme-score[data-tone="repos"] {
  background: color-mix(in srgb, #6B2040 42%, transparent);
  border-color: color-mix(in srgb, #8B2E4A 70%, transparent);
  box-shadow: 0 0 18px rgba(139,46,74,.35);
}
.pulse-forme-score[data-tone="repos"] b { color: #F0A090; }
.pulse-forme-score[data-tone="prudent"] {
  background: color-mix(in srgb, #C47A4A 28%, transparent);
  border-color: color-mix(in srgb, #E07A5F 55%, transparent);
}
.pulse-forme-score[data-tone="prudent"] b { color: #E0A878; }
.pulse-forme-score[data-tone="ok"] {
  background: color-mix(in srgb, #E85D2A 22%, transparent);
  border-color: color-mix(in srgb, #E85D2A 55%, transparent);
}
.pulse-forme-score[data-tone="ok"] b { color: #E85D2A; }
.pulse-forme-score[data-tone="go"] {
  background: linear-gradient(145deg, rgba(232,93,42,.35), rgba(224,122,95,.18));
  border-color: #E85D2A;
  box-shadow: 0 0 22px rgba(232,93,42,.45);
}
.pulse-forme-score[data-tone="go"] b { color: #F0C0A0; }
.pulse-forme-score.is-empty {
  opacity: .72;
  border-style: dashed;
}

.pulse-pad {
  min-height: 168px;
  border-radius: 22px;
  background:
    radial-gradient(120% 90% at 50% 40%, rgba(232,93,42,.16), transparent 55%),
    linear-gradient(180deg, rgba(40,22,28,.9), rgba(20,12,14,.95));
  border: 1px solid color-mix(in srgb, #E07A5F 32%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 24px rgba(0,0,0,.28);
  touch-action: none;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.pulse-pad.is-dragging {
  border-color: color-mix(in srgb, #E85D2A 70%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 28px rgba(232,93,42,.28);
}
.pulse-pad-thumb {
  width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #F0C0A0, #E85D2A 62%, #6B2040);
  box-shadow: 0 0 0 3px rgba(240,160,144,.35), 0 6px 18px rgba(232,93,42,.55);
  transition: width .15s ease, height .15s ease, margin .15s ease, box-shadow .15s ease;
  will-change: left, top;
}
.pulse-pad-thumb.is-dragging {
  width: 52px; height: 52px; margin: -26px 0 0 -26px;
  box-shadow: 0 0 0 4px rgba(240,160,144,.5), 0 8px 22px rgba(232,93,42,.7);
}
.pulse-ctx-tip {
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  color: #F0C0A0;
  background: color-mix(in srgb, #3A1830 45%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 28%, transparent);
}

/* Sparklines lisibles d’un coup d’œil */
.pulse-ruban {
  position: relative;
  margin: 4px 0 10px;
  padding: 10px 10px 6px;
  border-radius: 16px;
  background: color-mix(in srgb, #1a1014 70%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 22%, transparent);
}
.pulse-ruban-head {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  margin-bottom: 4px; padding: 0 2px;
}
.pulse-ruban-k {
  font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: #E0A878;
}
.pulse-ruban-score {
  position: static !important;
  font-weight: 800; font-size: 22px; color: #F0A090;
  font-variant-numeric: tabular-nums;
}
.pulse-ruban-score small { margin-left: 4px; font-size: 14px; color: #E0A878; }
.pulse-ruban-delta {
  margin-left: auto;
  font-size: 12px; font-weight: 700; color: var(--texte-doux, #C4B8B0);
}
.pulse-ruban-delta[data-dir="up"] { color: #E85D2A; }
.pulse-ruban-delta[data-dir="down"] { color: #C47A9A; }
.pulse-ruban-grid {
  stroke: rgba(248,232,216,.08);
  stroke-width: 1;
}
.pulse-ruban-band {
  fill: rgba(232,93,42,.08);
}
.pulse-ruban-ylab {
  fill: rgba(248,232,216,.4);
  font-size: 9px;
  font-weight: 600;
}
.pulse-ruban-xlab {
  fill: rgba(248,232,216,.45);
  font-size: 9px;
  font-weight: 600;
}
.pulse-ruban-dot { fill: rgba(240,160,144,.55); }
.pulse-ruban-dot.is-last {
  fill: #F0C0A0;
  stroke: #E85D2A;
  stroke-width: 2;
  filter: drop-shadow(0 0 4px rgba(232,93,42,.7));
}
.pulse-ruban.vide, .pulse-ruban-empty {
  color: var(--secondaryLabel);
  font-size: 13px;
  text-align: center;
  padding: 14px 12px;
  line-height: 1.4;
}
.pulse-tendances {
  margin: 10px 0 12px;
  padding: 12px;
  border-radius: 18px;
  background: color-mix(in srgb, #2A1418 50%, transparent);
  border: 1px solid color-mix(in srgb, #8B2E4A 28%, transparent);
}
.pulse-tend-k {
  margin: 0 0 8px;
  font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: #E0A878;
}
.pulse-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 12px 0;
}
.pulse-metric {
  padding: 12px 10px;
  border-radius: 16px;
  text-align: center;
  background: color-mix(in srgb, #3A1830 35%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 22%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.pulse-metric .pm-ico { display: block; font-size: 16px; margin-bottom: 2px; }

@media (prefers-reduced-motion: reduce) {
  .pulse-pad-thumb { transition: none; }
  .pulse-pad { transition: none; }
}

.acces-hint-tele {
  color: #8E3F22 !important;
  font-weight: 700 !important;
}

/* ═══ Téléchargements sous Exercices ═══ */
.tele-exos {
  display: block;
  visibility: visible;
  opacity: 1;
  margin: 16px 0 12px;
  padding: 16px 14px 14px;
  border-radius: 20px;
  color: var(--texte, #F2EEEA);
  background:
    linear-gradient(150deg, rgba(196,122,74,.14), rgba(58,24,48,.35)),
    color-mix(in srgb, var(--carte, #1a1210) 85%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 32%, transparent);
  box-shadow: 0 8px 28px rgba(0,0,0,.25);
}
.tele-exos-titre {
  margin: 2px 0 4px;
  font-size: 20px;
  font-weight: 800;
  color: #F0A090;
}
.tele-exos-sous {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--texte-doux, #C4B8B0);
}
.tele-exos-actions { margin-bottom: 14px; }
.tele-exos-actions .bouton { width: 100%; min-height: 48px; }
.tele-exos-hint {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--texte-doux);
  line-height: 1.35;
}
.tele-exos-k {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #E0A878;
}
.tele-exos-suggest-list,
.tele-exos-liste {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: grid;
  gap: 8px;
}
.tele-exos-suggest-list .bouton {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  min-height: 44px;
}
.tele-exos-suggest-list .bouton small,
.tele-seance-btn small {
  opacity: .75;
  font-weight: 600;
  margin-left: 6px;
}
.tele-exos-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  background: color-mix(in srgb, #3A1830 40%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 20%, transparent);
}
.tele-exos-item-corps { flex: 1; min-width: 0; }
.tele-exos-item-corps b {
  display: block;
  font-size: 14px;
  color: var(--label, #F2EEEA);
}
.tele-exos-item-corps small {
  font-size: 12px;
  color: var(--texte-doux);
}
.tele-exos-vide {
  padding: 12px;
  text-align: center;
  font-size: 13px;
  color: var(--texte-doux);
}
.tele-exos-poids {
  margin: 0;
  font-size: 12px;
  color: var(--texte-doux);
  text-align: center;
}
.bouton.gardee {
  border-color: #E85D2A;
  box-shadow: 0 0 0 1px color-mix(in srgb, #E85D2A 40%, transparent);
}

/* Téléchargements : rester lisible quand le Livre est ouvert en thème clair. */
html[data-theme="clair"] .tele-exos,
html[data-theme="light"] .tele-exos,
html[data-theme="crystal-glass-light"] .tele-exos,
html[data-theme="liquid-glass-light"] .tele-exos {
  color: var(--texte, #241b18);
  background:
    linear-gradient(150deg, rgba(196,122,74,.16), rgba(255,255,255,.72)),
    color-mix(in srgb, var(--carte, #fff) 90%, #C47A4A 10%);
  border-color: color-mix(in srgb, #8E3F22 38%, transparent);
}
html[data-theme="clair"] .tele-exos-titre,
html[data-theme="light"] .tele-exos-titre,
html[data-theme="crystal-glass-light"] .tele-exos-titre,
html[data-theme="liquid-glass-light"] .tele-exos-titre {
  color: #8E3F22;
}


/* ═══════════════════════════════════════════════════════════════
   VISUEL-MAX-2026-09-19 — competitor-beating Liquid Glass / 2.5D
   Copper+teal consistency · specular glass · layered depth
   a11y: focus rings kept · contrast fort respected · reduced-motion OK
   Does NOT alter #tele-exos structure or offline packs.
   ═══════════════════════════════════════════════════════════════ */

:root {
  --teal: #2EC4B6;
  --teal-hi: #5EEAD4;
  --copper: #C47A4A;
  --copper-hi: #E0A878;
  --glass-specular-max:
    linear-gradient(125deg,
      rgba(255,255,255,.28) 0%,
      rgba(255,255,255,.08) 28%,
      transparent 52%),
    linear-gradient(320deg,
      rgba(46,196,182,.10) 0%,
      transparent 40%),
    linear-gradient(200deg,
      rgba(196,122,74,.08) 0%,
      transparent 45%);
  --glass-rim-max:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(0,0,0,.32),
    inset 1px 0 0 rgba(255,255,255,.06),
    inset -1px 0 0 rgba(0,0,0,.12);
  --depth-2p5d:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(0,0,0,.26),
    0 1px 2px rgba(0,0,0,.18),
    0 6px 14px rgba(0,0,0,.22),
    0 18px 40px rgba(0,0,0,.28),
    0 36px 72px rgba(0,0,0,.18);
  --depth-nav-max:
    0 6px 18px rgba(0,0,0,.32),
    0 16px 40px rgba(0,0,0,.38),
    0 0 0 1px color-mix(in srgb, var(--copper, #C47A4A) 28%, transparent),
    inset 0 1px 0 rgba(255,255,255,.18);
  --holo-frame-glow:
    0 0 0 1px color-mix(in srgb, var(--teal, #2EC4B6) 45%, transparent),
    0 0 28px rgba(46,196,182,.22),
    0 0 56px rgba(196,122,74,.12),
    0 18px 48px rgba(0,0,0,.45);
}

/* —— Specular Liquid Glass (cards / nav / Pulse) —— */
.glass-regular,
.glass-effect-container > .glass-regular,
.bouton.glass-regular,
.op-hero-go,
.dock-hub,
.champ-chip,
.ile-verre.glass-regular,
.pulse-continuum.ile-verre {
  background:
    var(--glass-specular-max),
    color-mix(in srgb, var(--glass-regular-bg, #1a1210) 74%, var(--bordeaux, #8B2E4A));
  -webkit-backdrop-filter: blur(22px) saturate(1.45);
  backdrop-filter: blur(22px) saturate(1.45);
  box-shadow: var(--glass-rim-max), var(--depth-2p5d);
  border: 1px solid color-mix(in srgb, var(--copper, #C47A4A) 32%, transparent);
}

.glass-clear {
  background:
    linear-gradient(145deg, rgba(255,255,255,.14), transparent 46%),
    var(--glass-clear-bg, color-mix(in srgb, #2a1818 35%, transparent));
  box-shadow: var(--glass-rim-max), 0 12px 36px rgba(0,0,0,.28);
}

/* —— Morpho holographic Liquid Glass frame —— */
.suivi-morpho-cadre,
.suivi-morpho-wrap .suivi-morpho-cadre,
.suivi-morpho-apple .suivi-morpho-cadre,
.morpho-cadre.suivi-morpho-cadre {
  border-radius: 22px !important;
  overflow: hidden !important;
  background:
    radial-gradient(ellipse 80% 60% at 50% 18%, rgba(46,196,182,.10), transparent 55%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(196,122,74,.08), transparent 50%),
    #050605 !important;
  box-shadow: var(--holo-frame-glow), var(--glass-rim-max) !important;
  border: 1px solid color-mix(in srgb, var(--teal-hi, #5EEAD4) 38%, var(--copper, #C47A4A)) !important;
  isolation: isolate;
  transform: translateZ(0);
}
.suivi-morpho-cadre::before,
.suivi-morpho-apple .suivi-morpho-cadre::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 3;
  background:
    linear-gradient(125deg, rgba(255,255,255,.18) 0%, transparent 34%),
    linear-gradient(to bottom, transparent 70%, rgba(5,6,5,.35));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
  mix-blend-mode: soft-light;
  opacity: .85;
}
.suivi-morpho-cadre::after,
.suivi-morpho-apple .suivi-morpho-cadre::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  z-index: 2;
  background: linear-gradient(160deg,
    rgba(94,234,212,.35),
    transparent 35%,
    transparent 65%,
    rgba(196,122,74,.28));
  opacity: .55;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  padding: 1.5px;
}
.suivi-morpho-wrap .suivi-morpho-cadre iframe,
.suivi-morpho-apple .suivi-morpho-cadre iframe {
  z-index: 1;
  position: absolute !important;
}

/* Morpho toolbar — copper/teal glass chips */
.suivi-morpho-apple .suivi-morpho-seg.on,
.suivi-morpho-apple .suivi-morpho-seg[aria-pressed="true"],
.suivi-morpho-seg.on {
  background:
    linear-gradient(145deg, rgba(94,234,212,.22), rgba(196,122,74,.12)),
    color-mix(in srgb, #0a1214 70%, #2EC4B6 30%) !important;
  border-color: color-mix(in srgb, var(--teal-hi, #5EEAD4) 70%, var(--copper)) !important;
  color: #E8FFFE !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.2),
    0 0 18px rgba(46,196,182,.28),
    0 4px 14px rgba(0,0,0,.3) !important;
}
.suivi-morpho-apple .suivi-morpho-toolbar {
  background:
    var(--glass-specular-max),
    color-mix(in srgb, var(--carte, #1a1210) 78%, transparent);
  -webkit-backdrop-filter: blur(16px) saturate(1.35);
  backdrop-filter: blur(16px) saturate(1.35);
  border-radius: 16px;
  padding: 8px 10px;
  box-shadow: var(--glass-rim-max), 0 8px 24px rgba(0,0,0,.28);
  border: 1px solid color-mix(in srgb, var(--copper) 28%, transparent);
  margin-bottom: 10px;
}

/* —— Cards / elevated 2.5D —— */
.ile-verre,
.carte.elevated,
.bloc.elevated,
html.futur2030 .profil-hq .bloc,
html.futur2030 .rec-card,
.box-disc-card {
  box-shadow: var(--depth-2p5d);
  border-color: color-mix(in srgb, var(--copper, #C47A4A) 30%, transparent);
  transform: translateZ(0);
}
.ile-verre:not(.suivi-morpho-ancien):hover,
.carte.elevated:hover,
.rec-card:hover,
.box-disc-card:hover {
  box-shadow:
    var(--depth-2p5d),
    0 0 0 1px color-mix(in srgb, var(--teal, #2EC4B6) 22%, transparent);
}

/* —— Nav / dock —— */
.dock-hub,
nav.dock,
.nav-spatiale,
.bottom-nav,
.tab-bar {
  box-shadow: var(--depth-nav-max) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  backdrop-filter: blur(24px) saturate(1.5);
  border-top-color: color-mix(in srgb, var(--copper) 35%, transparent) !important;
}

/* —— Pulse —— */
.pulse-continuum {
  position: relative;
  overflow: hidden;
}
.pulse-continuum::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 40% at 20% 0%, rgba(196,122,74,.14), transparent 55%),
    radial-gradient(ellipse 50% 35% at 90% 100%, rgba(46,196,182,.10), transparent 50%);
  z-index: 0;
}
.pulse-continuum > * { position: relative; z-index: 1; }
.pulse-pad-lab,
.pulse-face,
.pulse-boule,
.pulse-anneaux {
  filter: drop-shadow(0 4px 12px rgba(0,0,0,.28));
}

/* —— Combat heroes —— */
html[data-section="combat"] .box-hero,
.box-hero {
  box-shadow: var(--depth-2p5d), 0 0 40px rgba(139,46,74,.18);
  border: 1px solid color-mix(in srgb, var(--copper) 35%, transparent);
  border-radius: 18px;
}
html[data-section="combat"] .box-disc-card,
html[data-registre="angulaire"] .box-disc-card {
  background:
    var(--glass-specular-max),
    color-mix(in srgb, var(--carte, #1a1210) 90%, transparent);
  box-shadow: var(--depth-2p5d);
}

/* —— Muscle fiche —— */
.suivi-muscle-fiche,
.holo-detail.suivi-muscle-fiche {
  background:
    linear-gradient(145deg, rgba(46,196,182,.12), transparent 50%),
    color-mix(in srgb, var(--carte, #12110f) 90%, #00E5FF 10%);
  border: 1px solid color-mix(in srgb, var(--teal-hi, #5EEAD4) 48%, transparent);
  box-shadow:
    var(--glass-rim-max),
    0 10px 28px rgba(0,0,0,.35),
    0 0 24px rgba(46,196,182,.15);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
}

/* —— Contrast / a11y guards —— */
html[data-contrast="fort"] .glass-regular,
html[data-contrast="fort"] .ile-verre {
  background: color-mix(in srgb, var(--carte, #1a1210) 94%, #000) !important;
  border-color: color-mix(in srgb, #fff 28%, transparent) !important;
}
html[data-contrast="fort"] .suivi-morpho-cadre::before,
html[data-contrast="fort"] .suivi-morpho-cadre::after {
  opacity: .35;
}
@media (prefers-reduced-motion: reduce) {
  .ile-verre, .carte.elevated, .rec-card, .box-disc-card {
    transition: none !important;
  }
}
html[data-motion="reduit"] .suivi-morpho-cadre::before,
html[data-fx="leger"] .suivi-morpho-cadre::before {
  opacity: .5;
}
html[data-fx="leger"] .glass-regular,
html[data-fx="leger"] .ile-verre.glass-regular {
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  backdrop-filter: blur(12px) saturate(1.2);
}

/* Focus visible — never remove */
.suivi-morpho-seg:focus-visible,
.bouton:focus-visible,
.acces:focus-visible,
.dock-orb:focus-visible {
  outline: 2px solid var(--teal-hi, #5EEAD4);
  outline-offset: 2px;
}

/* tele-exos: polish only shadows — keep structure */
#tele-exos.glass-regular,
.tele-exos.glass-regular {
  box-shadow: var(--glass-rim-max), var(--depth-2p5d);
}

/* ═══════════════════════════════════════════════════════════════
   TELE-YOUTUBE-APPLE-2026-09-19 — Downloads hub + per-item DL
   Offline choose-what · glass rows · offline sheet
   NO Morpho change · NO deploy
   ═══════════════════════════════════════════════════════════════ */

.biblio-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  margin: 10px 0 12px;
  padding: 12px 14px;
  border-radius: 18px;
}
.biblio-action-nom {
  flex: 1 1 140px;
  min-width: 0;
  font: 700 15px/1.3 var(--titre, system-ui);
}
.biblio-action-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex: 1 1 auto;
  justify-content: flex-end;
}
.biblio-action-btns .bouton {
  margin: 0;
  min-height: 44px;
  flex: 0 1 auto;
  font-size: 14px;
  white-space: nowrap;
}

.tele-hub-apple .tele-exos-titre {
  letter-spacing: -0.02em;
}
.tele-glass-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.02)),
    color-mix(in srgb, #3A1830 38%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 28%, rgba(255,255,255,.12));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(0,0,0,.22),
    0 8px 22px rgba(0,0,0,.22);
  -webkit-backdrop-filter: blur(18px) saturate(1.35);
  backdrop-filter: blur(18px) saturate(1.35);
  transition: transform .18s ease, box-shadow .18s ease;
}
.tele-glass-row:active {
  transform: scale(0.985);
}
.tele-row-ico {
  flex: 0 0 28px;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 9px;
  font-size: 12px;
  color: #F0A090;
  background: color-mix(in srgb, #C47A4A 22%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 35%, transparent);
}
.tele-row-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex: 0 0 auto;
}
.tele-row-actions .lien-nu {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #E0A878;
  padding: 4px 2px;
  min-height: 28px;
}
.tele-row-actions .tele-oublier {
  color: color-mix(in srgb, var(--texte-doux, #C4B8B0) 90%, #E85D2A);
  font-weight: 600;
}
.tele-kind {
  display: inline-block;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 10px;
  color: #E0A878;
}
.tele-progress {
  margin-top: 6px;
  height: 4px;
  border-radius: 99px;
  background: color-mix(in srgb, #fff 12%, transparent);
  overflow: hidden;
}
.tele-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #C47A4A, #2EC4B6);
  transition: width .25s ease;
}
.tele-row-progress .tele-progress { display: block; }
.tele-exos-meta {
  list-style: none;
  text-align: center;
  font-size: 12px;
  color: var(--texte-doux);
  padding: 4px 0 0;
}

.tele-empty-apple {
  display: grid;
  gap: 6px;
  justify-items: center;
  text-align: center;
  padding: 28px 18px !important;
  border-radius: 18px;
  background:
    linear-gradient(160deg, rgba(255,255,255,.06), transparent),
    color-mix(in srgb, #3A1830 30%, transparent);
  border: 1px dashed color-mix(in srgb, #C47A4A 35%, transparent);
}
.tele-empty-ico {
  width: 44px; height: 44px;
  border-radius: 14px;
  display: grid; place-items: center;
  font-size: 22px;
  font-weight: 300;
  color: #F0A090;
  background: color-mix(in srgb, #C47A4A 18%, transparent);
  border: 1px solid color-mix(in srgb, #C47A4A 30%, transparent);
  margin-bottom: 4px;
}
.tele-empty-apple b {
  font-size: 15px;
  color: var(--label, #F2EEEA);
}
.tele-empty-apple span {
  font-size: 13px;
  line-height: 1.45;
  color: var(--texte-doux);
  max-width: 28rem;
}

/* Offline sheet — glass sheet */
.tele-offline-sheet {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  align-items: end;
  justify-items: center;
  padding: 12px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom));
  background: rgba(8, 4, 6, .55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.tele-offline-sheet[hidden] { display: none !important; }
.tele-offline-panel {
  width: min(100%, 34rem);
  max-height: min(86vh, 720px);
  overflow: auto;
  border-radius: 22px;
  padding: 16px 16px 20px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.14), rgba(255,255,255,.03)),
    color-mix(in srgb, var(--carte, #1a1210) 88%, #3A1830);
  border: 1px solid color-mix(in srgb, #C47A4A 30%, rgba(255,255,255,.14));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    0 24px 60px rgba(0,0,0,.45);
  animation: tele-sheet-in .28s cubic-bezier(.2,.8,.2,1);
}
@keyframes tele-sheet-in {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .tele-offline-panel { animation: none; }
  .tele-glass-row { transition: none; }
}
.tele-offline-head {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
}
.tele-offline-close {
  justify-self: start;
  font-weight: 700;
  color: #E0A878;
  margin-bottom: 4px;
}
.tele-offline-head h2 {
  margin: 0;
  font-size: 20px;
  letter-spacing: -0.02em;
}
.tele-offline-sous {
  margin: 0;
  font-size: 13px;
  color: var(--texte-doux);
}
.tele-offline-corps .bloc {
  margin: 12px 0;
}
.tele-offline-badge {
  margin: 16px 0 0;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: #2EC4B6;
}

html[data-theme="clair"] .tele-glass-row,
html[data-theme="light"] .tele-glass-row,
html[data-theme="crystal-glass-light"] .tele-glass-row,
html[data-theme="liquid-glass-light"] .tele-glass-row {
  background:
    linear-gradient(145deg, rgba(255,255,255,.72), rgba(255,255,255,.42)),
    color-mix(in srgb, #fff 80%, #C47A4A 8%);
  border-color: color-mix(in srgb, #8E3F22 28%, transparent);
}
html[data-theme="clair"] .tele-empty-apple,
html[data-theme="light"] .tele-empty-apple,
html[data-theme="crystal-glass-light"] .tele-empty-apple,
html[data-theme="liquid-glass-light"] .tele-empty-apple {
  background: color-mix(in srgb, #fff 70%, #C47A4A 6%);
}

/* stamp: morpho-hf-click-fiche-2026-09-19 */
#holo-detail.suivi-muscle-fiche:not([hidden]),
.suivi-morpho-apple #holo-detail.suivi-muscle-fiche:not([hidden]),
.suivi-morpho-wrap #holo-detail.suivi-muscle-fiche:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 9999 !important;
  position: relative !important;
  margin-top: 12px !important;
  padding: 14px 16px !important;
  max-height: none !important;
  overflow: visible !important;
  color: #F3E6D8 !important;
  background: rgba(8, 18, 20, 0.94) !important;
  border: 1px solid rgba(0, 229, 255, 0.45) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,0.45), 0 0 0 1px rgba(0,229,255,0.12) !important;
}
#holo-detail.suivi-muscle-fiche .holo-detail-nom,
#holo-detail.suivi-muscle-fiche .holo-detail-nom b {
  color: #00E5FF !important;
  font-size: 16px !important;
}
#holo-detail.suivi-muscle-fiche .suivi-fiche-dl dt {
  color: rgba(0,229,255,0.85) !important;
}
#holo-detail.suivi-muscle-fiche .suivi-fiche-dl dd {
  color: #F3E6D8 !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}

/* ═══════════════════════════════════════════════════════════════
   stamp: morpho-style-tele-2026-09-19
   Morpho Suivi chrome → Téléchargements look
   Orange exact tele-exos / --feu : #E85D2A (#FF6A00-ish)
   Preserve hologram H/F delim + click · NO tele-exos / Elastic change
   ═══════════════════════════════════════════════════════════════ */

:root {
  --tele-orange: #E85D2A;           /* tele-exos bouton.gardee / --feu */
  --tele-orange-hi: #F0A090;        /* tele-exos-titre */
  --tele-orange-soft: #E0A878;      /* tele-exos-k */
  --tele-card-charcoal: #1a1210;    /* tele-exos --carte */
}

/* Card shell — dark charcoal glass like .tele-exos */
.suivi-morpho-apple.suivi-morpho-ancien,
.suivi-morpho-wrap .suivi-morpho-apple,
section.suivi-morpho-apple {
  margin: 0 !important;
  padding: 16px 14px 14px !important;
  border-radius: 20px !important;
  color: var(--texte, #F2EEEA) !important;
  background:
    linear-gradient(150deg, rgba(232,93,42,.14), rgba(58,24,48,.35)),
    color-mix(in srgb, var(--carte, #1a1210) 85%, transparent) !important;
  border: 1px solid color-mix(in srgb, #E85D2A 32%, transparent) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.25) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
}

/* Toolbar strip */
.suivi-morpho-apple .suivi-morpho-toolbar,
.suivi-morpho-wrap .suivi-morpho-toolbar {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px 14px !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin: 0 0 12px !important;
  padding: 8px 10px !important;
  border-radius: 16px !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
    color-mix(in srgb, #3A1830 38%, transparent) !important;
  border: 1px solid color-mix(in srgb, #E85D2A 28%, rgba(255,255,255,.10)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 8px 22px rgba(0,0,0,.22) !important;
  backdrop-filter: blur(16px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.3) !important;
}

/* Segmented groups — orange pill track */
.suivi-morpho-apple .suivi-morpho-seg-group,
.suivi-morpho-wrap .suivi-morpho-seg-group {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  flex-wrap: wrap !important;
  padding: 4px !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, #000 40%, transparent) !important;
  border: 1px solid color-mix(in srgb, #E85D2A 22%, transparent) !important;
}

.suivi-morpho-apple .suivi-morpho-seg-lab,
.suivi-morpho-wrap .suivi-morpho-seg-lab {
  font: 800 10px/1 system-ui, -apple-system, sans-serif !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: #E0A878 !important;
  padding: 0 6px 0 10px !important;
  margin: 0 !important;
}

/* Segment buttons — tele orange when ON (dark text on bright orange) */
.suivi-morpho-apple .suivi-morpho-seg,
.suivi-morpho-wrap .suivi-morpho-seg,
.suivi-morpho-seg {
  appearance: none !important;
  min-height: 40px !important;
  min-width: 44px !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--texte, #F3E6D8) !important;
  font: 700 13px/1 system-ui, -apple-system, "SF Pro Text", sans-serif !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background .15s ease, color .15s ease, box-shadow .18s ease !important;
}

.suivi-morpho-apple .suivi-morpho-seg.on,
.suivi-morpho-apple .suivi-morpho-seg[aria-pressed="true"],
.suivi-morpho-wrap .suivi-morpho-seg.on,
.suivi-morpho-wrap .suivi-morpho-seg[aria-pressed="true"],
.suivi-morpho-seg.on,
.suivi-morpho-seg[aria-pressed="true"] {
  background: #E85D2A !important;
  border-color: #E85D2A !important;
  color: #1a120c !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    0 0 0 1px color-mix(in srgb, #E85D2A 40%, transparent),
    0 4px 16px rgba(232,93,42,.35) !important;
}

.suivi-morpho-apple .suivi-morpho-seg:focus-visible,
.suivi-morpho-wrap .suivi-morpho-seg:focus-visible,
.suivi-morpho-seg:focus-visible {
  outline: 2px solid #E85D2A !important;
  outline-offset: 2px !important;
}

/* Anatomy frame — warm charcoal rim (no cyan/teal) */
.suivi-morpho-apple .suivi-morpho-cadre,
.suivi-morpho-wrap .suivi-morpho-cadre,
.morpho-cadre.suivi-morpho-cadre {
  border-radius: 18px !important;
  background:
    radial-gradient(ellipse 80% 60% at 50% 18%, rgba(232,93,42,.10), transparent 55%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(196,122,74,.08), transparent 50%),
    #050605 !important;
  border: 1px solid color-mix(in srgb, #E85D2A 38%, transparent) !important;
  box-shadow:
    inset 0 0 40px rgba(0,0,0,.4),
    0 12px 36px rgba(0,0,0,.3),
    0 0 0 1px color-mix(in srgb, #E85D2A 12%, transparent) !important;
}
.suivi-morpho-apple .suivi-morpho-cadre::after,
.suivi-morpho-cadre::after {
  background: linear-gradient(160deg,
    rgba(232,93,42,.40),
    transparent 35%,
    transparent 65%,
    rgba(196,122,74,.28)) !important;
  opacity: .55 !important;
}

/* Muscle fiche — tele card: orange title, dark glass, clear rows */
#holo-detail.suivi-muscle-fiche:not([hidden]),
.suivi-morpho-apple #holo-detail.suivi-muscle-fiche:not([hidden]),
.suivi-morpho-wrap #holo-detail.suivi-muscle-fiche:not([hidden]),
.holo-detail.suivi-muscle-fiche:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 9999 !important;
  position: relative !important;
  margin: 12px 0 0 !important;
  padding: 14px 16px !important;
  max-height: none !important;
  overflow: visible !important;
  border-radius: 16px !important;
  color: #F2EEEA !important;
  background:
    linear-gradient(150deg, rgba(232,93,42,.12), rgba(58,24,48,.30)),
    color-mix(in srgb, #1a1210 88%, transparent) !important;
  border: 1px solid color-mix(in srgb, #E85D2A 35%, transparent) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 28px rgba(0,0,0,.35) !important;
}

#holo-detail.suivi-muscle-fiche .holo-detail-nom,
#holo-detail.suivi-muscle-fiche .holo-detail-nom b,
.suivi-muscle-fiche .holo-detail-nom,
.suivi-muscle-fiche .holo-detail-nom b {
  color: #E85D2A !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  margin: 0 0 8px !important;
}

#holo-detail.suivi-muscle-fiche .suivi-fiche-dl,
.suivi-muscle-fiche .suivi-fiche-dl {
  margin: 0 !important;
  display: grid !important;
  gap: 2px !important;
}

#holo-detail.suivi-muscle-fiche .suivi-fiche-dl dt,
.suivi-muscle-fiche .suivi-fiche-dl dt {
  margin: 6px 0 0 !important;
  font-size: 10px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  color: #E0A878 !important;
}

#holo-detail.suivi-muscle-fiche .suivi-fiche-dl dd,
.suivi-muscle-fiche .suivi-fiche-dl dd {
  margin: 0 !important;
  color: #F2EEEA !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  padding: 4px 0 6px !important;
  border-bottom: 1px solid color-mix(in srgb, #E85D2A 14%, transparent) !important;
}
#holo-detail.suivi-muscle-fiche .suivi-fiche-dl dd:last-child,
.suivi-muscle-fiche .suivi-fiche-dl dd:last-child {
  border-bottom: 0 !important;
}

/* Legacy cyan muscle-fiche block — force orange */
.suivi-muscle-fiche,
.holo-detail.suivi-muscle-fiche {
  background:
    linear-gradient(150deg, rgba(232,93,42,.12), rgba(58,24,48,.28)),
    color-mix(in srgb, var(--carte, #1a1210) 90%, transparent) !important;
  border: 1px solid color-mix(in srgb, #E85D2A 35%, transparent) !important;
  color: var(--texte, #F2EEEA) !important;
}
.suivi-muscle-fiche .holo-detail-nom { color: #E85D2A !important; }
.suivi-fiche-dl dt { color: #E0A878 !important; }


/* ══ LA FIN DE SÉANCE (21/09) — ce qui est tenu, ce qui est constaté, l'accord ══ */
.fin-marque {
  width: 64px; height: 64px; margin: 18px 0 6px; border-radius: 50%;
  display: grid; place-items: center; font: 900 30px/1 var(--titre, inherit);
  color: var(--sur-or, #0c1210); background: var(--or);
}
.fin-marque.fete { animation: fin-fete .6s ease-out 1; }
@keyframes fin-fete { 0% { transform: scale(.7); } 60% { transform: scale(1.12); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .fin-marque.fete { animation: none; } }
.fin-titre { margin: 10px 0 6px; }
.fin-sous { margin: 0 0 18px; color: var(--texte-doux); line-height: 1.5; }
.fin-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 10px; margin: 0 0 14px; }
.fin-chiffres > div { background: var(--carte-haute, var(--carte)); border: 1px solid var(--trait-fin, transparent); border-radius: 14px; padding: 12px; }
.fin-chiffres b { display: block; font-size: 20px; line-height: 1.1; }
.fin-chiffres small { color: var(--texte-doux); font-size: 13px; }
.fin-constat { margin: 0 0 20px; color: var(--texte-doux); font-size: 15px; }
.fin-dit { margin: 14px 0 0; font-weight: 600; }
/* Un seul bouton plein : « Ne pas garder » est un lien, pas un second héros. */
.fin-lien {
  display: block; width: 100%; margin-top: 10px; padding: 13px;
  background: none; border: 0; color: var(--texte-doux); cursor: pointer;
  font: 600 15px/1 inherit; text-decoration: underline; text-underline-offset: 4px;
}
.finir-ici { display: block; width: 100%; margin-top: 10px; }
.carte.reprendre.a-valider { margin-top: 16px; }

/* ══ LE RADAR DE TONIO (21/09) — une ligne par client, le bord dit la famille ══ */
.radar-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.radar-ligne { margin: 0; border-left: 4px solid var(--trait, #2C3038); }
.radar-physique { border-left-color: var(--alerte, #c4a35a); }
.radar-recuperation { border-left-color: var(--or); }
.radar-temps { border-left-color: var(--texte-muet, #8A9490); }
.coach-decision input { width: 100%; padding: 12px; border-radius: 10px; border: 1px solid var(--trait, #2C3038); background: var(--carte); color: var(--texte); font-size: 16px; }
.retour-absence { margin-top: 16px; }

/* ══ LA BIO DE TONIO DANS LE QUESTIONNAIRE (21/09) — après la première réponse ══ */
.ob-bio { display: grid; grid-template-columns: 72px 1fr; gap: 12px; align-items: start;
  margin: 4px 0 16px; padding: 12px; border-radius: 16px;
  background: color-mix(in srgb, var(--or) 10%, var(--carte, #1A1C22)); border: 1px solid color-mix(in srgb, var(--or) 40%, transparent); }
.ob-bio-photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; border: 2px solid var(--or); }
.ob-bio-texte p { margin: 0; line-height: 1.4; }
.ob-bio-nom { font-weight: 800; font-size: 15px; }
.ob-bio-cred { font-size: 13px; color: var(--texte-doux); margin-top: 2px !important; }
.ob-bio-accroche { font-size: 14px; margin-top: 6px !important; }
.ob-bio-lien { font-size: 13px; color: var(--texte-doux); margin-top: 6px !important; }

/* —— 21/09 · La feuille du code (remplace les fenêtres du navigateur) —— */
.feuille-code {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: flex-end; justify-content: center;
  background: rgba(6, 7, 9, .62);
  backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2);
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom));
  animation: feuille-code-fond .2s ease-out;
}
.feuille-code-boite {
  width: 100%; max-width: 420px;
  background: var(--carte-haute, #24262E); color: var(--texte, #E8EEEC);
  border: 1px solid var(--trait, #2C3038); border-radius: var(--rond, 22px);
  padding: 22px 20px 18px; box-shadow: 0 20px 60px rgba(0,0,0,.45);
  animation: feuille-code-monte .26s cubic-bezier(.2,.8,.2,1);
}
.feuille-code-boite h2 { margin: 0 0 6px; font-size: 22px; }
.feuille-code-aide { margin: 0 0 14px; color: var(--texte-doux, #A8B0AB); line-height: 1.5; font-size: 15px; }
.feuille-code-champ {
  width: 100%; box-sizing: border-box; text-align: center;
  font-size: 30px; letter-spacing: .5em; padding: 12px 10px 12px calc(10px + .5em);
  border-radius: var(--rond-bouton, 14px); border: 1px solid var(--trait, #2C3038);
  background: var(--fond, #12141A); color: var(--texte, #E8EEEC);
}
.feuille-code-champ:focus-visible { outline: 2px solid var(--accent, #6BA894); outline-offset: 2px; }
.feuille-code-erreur { min-height: 1.4em; margin: 8px 0 4px; color: var(--alerte, #c4a35a); font-size: 14px; }
.feuille-code-actions { display: flex; gap: 10px; }
.feuille-code-actions .bouton { flex: 1; margin: 0; }
@keyframes feuille-code-fond { from { opacity: 0; } }
@keyframes feuille-code-monte { from { transform: translateY(24px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .feuille-code, .feuille-code-boite { animation: none; } }
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) .feuille-code { background: rgba(20, 20, 20, .38); }
}

/* —— 21/09 · Questionnaire : une barre, « Passer », rien d'autre autour —— */
.ob-haut { display: flex; align-items: center; gap: 14px; margin: 4px 0 18px; }
.ob-haut .ob-progress { flex: 1; }
.ob-passer {
  background: none; border: 0; padding: 8px 2px; min-height: 44px;
  color: var(--texte-doux, #A8B0AB); font: inherit; font-size: 15px; cursor: pointer;
}
.ob-passer:hover, .ob-passer:focus-visible { color: var(--texte, #E8EEEC); }
html.ob-ouvert #barre, html.ob-ouvert .btn-livre-bord,
html:has(#feuille-code) .btn-livre-bord { display: none !important; }

/* —— 21/09 · Simplicité : sur téléphone, la photo laisse l'action principale dans le premier écran —— */
@media (max-width: 700px) {
  .heros { aspect-ratio: auto; min-height: 0; height: clamp(220px, 36vh, 320px); max-height: 36vh; }
}

/* —— 21/09 · Suivi : la forme n'apparaît qu'une fois notée (le geste a une conséquence visible) —— */
.pulse-continuum .pulse-forme-score.is-empty { display: none; }
.pulse-continuum .pulse-faces { margin-top: 16px; }
.pulse-affiner { margin-top: 14px; }
