/* Interface « Synthèse » : coque (rail flottant, barre du haut, fond et halos, barre de lecture, tiroir mobile, rangée de tuiles).
   Aucune structure HTML n'est refaite : le menu, la barre du haut et les droits viennent de index.html et de core.js ; synthese.js n'ajoute que
   des attributs, des icônes de famille et trois calques décoratifs. Règles en var(--…) uniquement ; couches sous --z-panneau. */

/* ── Fond, halos, barre de lecture ───────────────────────── */
:root[data-interface="synthese"] .v5-halos {
  position: fixed;
  inset: 0;
  z-index: var(--v5-z-fond);
  pointer-events: none;
  overflow: hidden;
  transition: opacity var(--v5-d-long);
}
:root[data-interface="synthese"] .v5-halos::before,
:root[data-interface="synthese"] .v5-halos::after {
  content: "";
  position: absolute;
  width: var(--v5-halo-taille);
  height: var(--v5-halo-taille);
  border-radius: 50%;
  will-change: transform;
}
:root[data-interface="synthese"] .v5-halos::before {
  left: var(--v5-halo-x1);
  top: var(--v5-halo-y1);
  background: radial-gradient(circle, var(--v5-halo), transparent 65%);
  animation: v5-derive-1 var(--v5-d-halo-1) ease-in-out infinite alternate;
}
:root[data-interface="synthese"] .v5-halos::after {
  right: var(--v5-halo-x2);
  bottom: var(--v5-halo-y2);
  background: radial-gradient(circle, var(--v5-halo2), transparent 65%);
  animation: v5-derive-2 var(--v5-d-halo-2) ease-in-out infinite alternate;
}
@keyframes v5-derive-1 { to { transform: translate3d(18vmax, 12vmax, 0) scale(1.15); } }
@keyframes v5-derive-2 { to { transform: translate3d(-16vmax, -10vmax, 0) scale(1.1); } }
:root[data-interface="synthese"][data-halos="off"] .v5-halos { opacity: 0; }

:root[data-interface="synthese"] .v5-lecture {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  height: var(--v5-trait-h);
  z-index: var(--v5-z-lecture);
  background: var(--v5-deco);
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}

:root[data-interface="synthese"] #app {
  position: relative;
  z-index: var(--v5-z-coque);
  background: transparent;
}
:root[data-interface="synthese"] #content {
  background: transparent;
  margin-left: calc(var(--v5-rail-l-ouvert) + var(--v5-rail-marge) + var(--v5-rail-gouttiere));
  transition: margin-left var(--v5-d-long) var(--v5-ease), transform var(--v5-d-moyen) var(--v5-ease);
}
:root[data-interface="synthese"] #sidebar.collapsed ~ #content {
  margin-left: calc(var(--v5-rail-l) + var(--v5-rail-marge) + var(--v5-rail-gouttiere));
}
/* fenêtre ouverte : le fond recule (l'overlay classique garde son flou) */
:root[data-interface="synthese"] body.v5-fenetre #content { transform: scale(var(--v5-recul)); }

/* ── Rail flottant ───────────────────────────────────────── */
:root[data-interface="synthese"] #sidebar {
  position: fixed !important;
  left: var(--v5-rail-marge);
  top: var(--v5-rail-marge);
  bottom: var(--v5-rail-marge);
  z-index: var(--v5-z-rail);
  width: var(--v5-rail-l-ouvert) !important;
  min-width: 0 !important;
  padding: var(--s-3) var(--s-2);
  gap: var(--s-1);
  border: 1px solid var(--border) !important;
  border-radius: var(--r-lg);
  background: color-mix(in oklab, var(--surface) 86%, transparent) !important;
  -webkit-backdrop-filter: blur(var(--v5-flou));
  backdrop-filter: blur(var(--v5-flou));
  box-shadow: var(--e-3);
  overflow: hidden !important;
  transition: width var(--v5-d-long) var(--v5-ease), transform var(--v5-d-long) var(--v5-ease);
}
:root[data-interface="synthese"] #sidebar.collapsed { width: var(--v5-rail-l) !important; min-width: 0 !important; }
:root[data-interface="synthese"] #sidebar::after { content: none; }
:root[data-interface="synthese"] #sidebar .sb-brand {
  height: var(--v5-ctl-h);
  padding: 0 var(--s-2);
  border: 0;
  margin-bottom: var(--s-1);
}
:root[data-interface="synthese"] #sidebar .sb-brand .logo { padding: 0 !important; }
:root[data-interface="synthese"] #sidebar.collapsed .sb-brand { display: none; }
:root[data-interface="synthese"] #sidebar .sb-account { padding: 0; border: 0; margin-bottom: var(--s-1); }
:root[data-interface="synthese"] #sidebar.collapsed .sb-account { height: auto; padding: 0; justify-content: center; }
:root[data-interface="synthese"] #sidebar .sb-foot-user { border-radius: var(--v5-r-ctl); padding: var(--s-2); }
:root[data-interface="synthese"] #sidebar .sb-foot-name { font-size: var(--v5-t-corps); font-weight: var(--v5-poids-moyen); }
:root[data-interface="synthese"] #sidebar .sb-foot-role { font-size: var(--v5-t-xs); }
:root[data-interface="synthese"] #sidebar .sb-foot-avatar { width: var(--v5-ico-l); height: var(--v5-ico-l); font-size: var(--v5-t-xs); }
:root[data-interface="synthese"] #sidebar .sb-nav {
  padding: 0 var(--s-1);
  gap: var(--s-1);
  scrollbar-width: none;
}
:root[data-interface="synthese"] #sidebar.collapsed .sb-nav { padding: 0; }

/* entrées de menu */
:root[data-interface="synthese"] #sidebar .nav-btn {
  position: relative;
  height: var(--v5-ctl-h) !important;
  min-height: var(--v5-ctl-h);
  gap: var(--s-3) !important;
  padding: 0 var(--s-3) !important;
  border-radius: var(--v5-r-ctl) !important;
  font-size: var(--v5-t-corps) !important;
  font-weight: var(--v5-poids-moyen) !important;
  color: var(--muted) !important;
  transition: background var(--v5-d-court), color var(--v5-d-court) !important;
}
:root[data-interface="synthese"] #sidebar .nav-btn:hover { background: color-mix(in oklab, var(--fg) 8%, transparent) !important; color: var(--fg) !important; }
:root[data-interface="synthese"] #sidebar .nav-btn.active { background: var(--v5-deco-doux) !important; color: var(--v5-deco) !important; font-weight: var(--v5-poids-moyen) !important; }
:root[data-interface="synthese"] #sidebar .nav-btn.active::before { content: none; }
:root[data-interface="synthese"] #sidebar .nav-btn.active .nav-icon { color: var(--v5-deco); }
:root[data-interface="synthese"] #sidebar .nav-icon { width: var(--v5-ico); height: var(--v5-ico); opacity: 1; }
:root[data-interface="synthese"] #sidebar.collapsed .nav-btn { justify-content: center !important; padding: 0 !important; }
:root[data-interface="synthese"] #sidebar.collapsed .nav-btn::after { content: none; }

/* familles repliables : le titre devient une entrée (icône, libellé, chevron) */
:root[data-interface="synthese"] #sidebar .sb-section {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  height: var(--v5-ctl-h);
  padding: 0 var(--s-3) !important;
  border-radius: var(--v5-r-ctl);
  font-family: var(--font-body);
  font-size: var(--v5-t-corps);
  font-weight: var(--v5-poids-moyen);
  letter-spacing: 0;
  text-transform: none;
  color: var(--fg) !important;
  opacity: 1 !important;
  cursor: pointer;
  user-select: none;
  transition: background var(--v5-d-court);
}
:root[data-interface="synthese"] #sidebar .sb-section:hover { background: color-mix(in oklab, var(--fg) 8%, transparent) !important; }
:root[data-interface="synthese"] #sidebar .sb-section .v5-fam-ico { display: grid; place-items: center; flex: none; width: var(--v5-ico); height: var(--v5-ico); color: var(--v5-fam-couleur); }
:root[data-interface="synthese"] #sidebar .sb-section .v5-lbl { flex: 1; min-width: 0; white-space: nowrap; }
:root[data-interface="synthese"] #sidebar .sb-section .v5-chev { flex: none; width: var(--v5-ico-s); height: var(--v5-ico-s); transition: transform var(--v5-d-moyen) var(--v5-ease); }
:root[data-interface="synthese"] #sidebar .sb-section[aria-expanded="true"] .v5-chev { transform: rotate(90deg); }
:root[data-interface="synthese"] #sidebar .sb-section.v5-fam-actuelle { color: var(--fg) !important; }
:root[data-interface="synthese"] #sidebar.collapsed .sb-section { display: flex !important; justify-content: center; padding: 0 !important; }
:root[data-interface="synthese"] #sidebar.collapsed .sb-section .v5-lbl,
:root[data-interface="synthese"] #sidebar.collapsed .sb-section .v5-chev { display: none; }
:root[data-interface="synthese"] #sidebar.collapsed .sb-section.v5-fam-actuelle { background: var(--v5-deco-doux); }
:root[data-interface="synthese"] #sidebar .sb-section[data-fam="patrimoine"] { --v5-fam-couleur: var(--v5-fam-patrimoine); }
:root[data-interface="synthese"] #sidebar .sb-section[data-fam="projet"] { --v5-fam-couleur: var(--v5-fam-projet); }
:root[data-interface="synthese"] #sidebar .sb-section[data-fam="inventaire"] { --v5-fam-couleur: var(--v5-fam-inventaire); }
:root[data-interface="synthese"] #sidebar .sb-section[data-fam="apres-vente"] { --v5-fam-couleur: var(--v5-fam-apres-vente); }
:root[data-interface="synthese"] #sidebar .sb-section[data-fam="savoirs"] { --v5-fam-couleur: var(--v5-fam-savoirs); }
/* entrées d'une famille : fermées (masquées) ou ouvertes (légèrement en retrait, apparition douce) */
:root[data-interface="synthese"] #sidebar .nav-btn.v5-fam-fermee { display: none !important; }
:root[data-interface="synthese"] #sidebar.collapsed .nav-btn[data-fam] { display: none !important; }
:root[data-interface="synthese"] #sidebar .nav-btn[data-fam] { margin-left: var(--s-3) !important; width: calc(100% - var(--s-3)) !important; height: var(--v5-ctl-h-s) !important; min-height: 0; }
:root[data-interface="synthese"] #sidebar .nav-btn.v5-fam-entree { animation: v5-entree var(--v5-d-moyen) var(--v5-ease) backwards; animation-delay: calc(var(--v5-rang, 0) * var(--v5-ecart)); }
@keyframes v5-entree { from { opacity: 0; transform: translateX(calc(var(--s-2) * -1)); } }
/* bas du rail */
:root[data-interface="synthese"] #sidebar .sb-bottom { padding: var(--s-2) var(--s-1) 0; border-top: 1px solid var(--border); margin-top: var(--s-1); }
:root[data-interface="synthese"] #sidebar .sb-bottom .nav-btn { font-size: var(--v5-t-corps) !important; font-weight: var(--v5-poids-moyen) !important; opacity: 1; padding: 0 var(--s-3) !important; }
:root[data-interface="synthese"] #sidebar.collapsed .sb-bottom { padding: var(--s-2) 0 0; }
:root[data-interface="synthese"] #sidebar .nav-badge {
  margin-left: auto;
  min-width: var(--s-5);
  height: var(--s-5);
  border-radius: var(--v5-r-rond);
  font-size: var(--v5-t-xs);
  font-weight: var(--v5-poids-fort);
  background: var(--accent);
  color: var(--v5-sur-accent);
}
:root[data-interface="synthese"] #sidebar.collapsed .nav-badge {
  position: absolute;
  right: var(--s-1);
  top: var(--s-1);
  min-width: var(--v5-pastille);
  width: var(--v5-pastille);
  height: var(--v5-pastille);
  padding: 0;
  font-size: 0;
}

/* ── Barre du haut ───────────────────────────────────────── */
:root[data-interface="synthese"] .topbar {
  z-index: var(--v5-z-barre);
  height: var(--v5-barre-h);
  padding: 0 var(--s-7);
  gap: var(--s-2);
  border-bottom: 0;
  background: color-mix(in oklab, var(--bg) 92%, transparent);
}
:root[data-interface="synthese"] .tb-crumb {
  flex: 1;
  min-width: 0;
  font-family: var(--font-body);
  font-size: var(--v5-t-corps);
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
}
:root[data-interface="synthese"] .tb-crumb-cur { color: var(--fg); font-weight: var(--v5-poids-moyen); }
:root[data-interface="synthese"] .tb-crumb .crumb-link { color: var(--muted); font-family: var(--font-body); }
:root[data-interface="synthese"] .tb-crumb .crumb-link:hover { color: var(--fg); }
:root[data-interface="synthese"] .topbar .tb-theme,
:root[data-interface="synthese"] .topbar .tb-sidebar-toggle,
:root[data-interface="synthese"] .topbar .tb-help,
:root[data-interface="synthese"] .topbar .tb-search {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  min-width: var(--v5-ctl-h);
  height: var(--v5-ctl-h);
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--v5-r-ctl);
  background: color-mix(in oklab, var(--surface) 70%, transparent);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: var(--v5-t-corps);
  transition: background var(--v5-d-court), transform var(--v5-d-court);
}
:root[data-interface="synthese"] .topbar .tb-search { padding: 0 var(--s-3); min-width: 0; color: var(--muted); }
:root[data-interface="synthese"] .topbar .tb-theme:hover,
:root[data-interface="synthese"] .topbar .tb-sidebar-toggle:hover,
:root[data-interface="synthese"] .topbar .tb-help:hover,
:root[data-interface="synthese"] .topbar .tb-search:hover { background: var(--v5-fenetre); color: var(--fg); }
:root[data-interface="synthese"] .topbar .tb-theme:active,
:root[data-interface="synthese"] .topbar .tb-search:active { transform: scale(var(--v5-appui)); }
:root[data-interface="synthese"] .topbar kbd {
  font-family: var(--font-body);
  font-size: var(--v5-t-xs);
  font-weight: var(--v5-poids-fort);
  padding: 0 var(--s-2);
  border: 1px solid var(--v5-trait);
  border-radius: var(--v5-r-sm);
  color: var(--muted);
  background: color-mix(in oklab, var(--fg) 5%, transparent);
}
:root[data-interface="synthese"] #sidebar.collapsed ~ #content .tb-sidebar-toggle { color: var(--accent); }

/* page : gouttière de droite alignée sur la barre */
:root[data-interface="synthese"] .page { padding: var(--s-2) var(--s-7) var(--s-7) var(--s-7); }
/* Entrée d'un écran : l'écran reste invisible (v5-attente) jusqu'à l'arrivée de son premier contenu, puis un fondu court sans déplacement ; aucun saut de hauteur. */
:root[data-interface="synthese"] #view.page { animation: none; }      /* l'entrée de la Classique (pageIn) ne doit pas se rejouer quand v5-entree est retirée à la fin de la nôtre */
@media (prefers-reduced-motion: no-preference) {
  :root[data-interface="synthese"]:not([data-mouvement="reduit"]) #view.page.v5-attente { opacity: 0; }
  :root[data-interface="synthese"]:not([data-mouvement="reduit"]) #view.page.v5-entree { animation: v5-vue-entree var(--v5-d-entree) var(--v5-ease-entree) backwards; }
}
@keyframes v5-vue-entree { from { opacity: 0; } }

/* ── Mobile : tiroir ─────────────────────────────────────── */
:root[data-interface="synthese"] .v5-voile { display: none; }
@media (max-width: 899px) {
  :root[data-interface="synthese"] #content,
  :root[data-interface="synthese"] #sidebar.collapsed ~ #content { margin-left: 0; }
  :root[data-interface="synthese"] .topbar { padding: 0 var(--s-4); background: var(--bg); }
  :root[data-interface="synthese"] .page { padding: var(--s-2) var(--s-4) var(--s-7); }
  :root[data-interface="synthese"] #sidebar,
  :root[data-interface="synthese"] #sidebar.collapsed {
    z-index: var(--v5-z-tiroir);
    width: var(--v5-tiroir-l) !important;
    max-width: calc(100vw - var(--s-7));
    transform: translateX(calc(-100% - var(--v5-rail-marge) * 2));
  }
  :root[data-interface="synthese"] #sidebar:not(.collapsed) { transform: none; }
  :root[data-interface="synthese"] #sidebar.collapsed .nav-label { display: inline; }
  :root[data-interface="synthese"] #sidebar.collapsed .sb-brand { display: flex; }
  :root[data-interface="synthese"] #sidebar.collapsed .sb-foot-info { display: flex; }
  :root[data-interface="synthese"] #sidebar.collapsed .nav-btn[data-fam] { display: flex !important; }
  :root[data-interface="synthese"] #sidebar:not(.collapsed) ~ .v5-voile {
    display: block;
    position: fixed;
    inset: 0;
    z-index: var(--v5-z-tiroir-voile);
    background: var(--v5-voile);
  }
  :root[data-interface="synthese"] .topbar .tb-sidebar-toggle { display: inline-flex; }
}

/* ── Mobile étroit : barre sur deux niveaux, titre entier ── */
@media (max-width: 639px) {
  :root[data-interface="synthese"] .topbar {
    flex-wrap: wrap;
    height: auto;
    padding-top: var(--s-2);
    padding-bottom: var(--s-2);
    row-gap: var(--s-2);
  }
  :root[data-interface="synthese"] .tb-crumb {
    order: 10;
    flex: 1 0 100%;
    display: flex;
    align-items: flex-start;
    gap: var(--s-2);
    font-size: var(--v5-t-l);
    overflow-wrap: anywhere;
  }
  :root[data-interface="synthese"] .tb-crumb .tb-crumb-sep,
  :root[data-interface="synthese"] .tb-crumb .crumb-link:not([data-back]) { display: none; }
  :root[data-interface="synthese"] .tb-crumb .crumb-link[data-back] { font-size: 0; flex: none; display: grid; place-items: center; width: var(--v5-ctl-h-s); height: var(--v5-ctl-h-s); }
  :root[data-interface="synthese"] .tb-crumb .crumb-link[data-back] svg { width: var(--v5-ico); height: var(--v5-ico); }
  :root[data-interface="synthese"] .tb-crumb-cur {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    white-space: normal;
    overflow-wrap: anywhere;
    padding-top: var(--s-1);
  }
  :root[data-interface="synthese"] .topbar .tb-search { order: 3; margin-left: auto; }
  :root[data-interface="synthese"] .topbar .tb-search .tb-search-l,
  :root[data-interface="synthese"] .topbar .tb-search kbd { display: none; }
  :root[data-interface="synthese"] .topbar .tb-search { width: var(--v5-ctl-h); padding: 0; }
  :root[data-interface="synthese"] .topbar .nt-wrap { order: 4; }
  :root[data-interface="synthese"] .topbar #btn-theme,
  :root[data-interface="synthese"] .topbar #btn-signaler { display: none; }
  :root[data-interface="synthese"] .topbar .tb-help { order: 3; }      /* le manuel reste à un toucher, même sur téléphone */
  :root[data-interface="synthese"] .page { padding-left: var(--s-4); padding-right: var(--s-4); }
}

/* ── Rangée de tuiles (les écrans de la famille courante) ──
   Collante sous la barre du haut, toujours en grandes tuiles (icône en haut à gauche, libellé dessous). L'élément est de hauteur nulle : la place est
   réservée par sa marge basse, que le contenu de la page suit en douceur ; la piste, positionnée en absolu, ne déplace jamais la page. */
:root[data-interface="synthese"] .v5-rangee {
  position: sticky;
  top: var(--topbar-h, var(--v5-barre-h));
  z-index: var(--v5-z-rangee);
  flex: none;
  height: 0;
  margin-bottom: calc(var(--v5-tuile-h) + var(--s-3) + var(--s-4));
  transition: margin-bottom var(--v5-d-descente) var(--v5-ease), opacity var(--v5-d-entree) var(--v5-ease-entree);
}
:root[data-interface="synthese"] .v5-rangee[data-etat="cache"] { margin-bottom: 0; opacity: 0; visibility: hidden; transition: margin-bottom var(--v5-d-descente) var(--v5-ease), opacity var(--v5-d-court) ease-in, visibility 0s linear var(--v5-d-court); }
:root[data-interface="synthese"] .v5-rangee-piste {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  display: flex;
  align-items: stretch;
  gap: var(--s-2);
  padding: var(--s-3) var(--s-7) var(--s-4);
  border-bottom: 1px solid transparent;
  background: transparent;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-backdrop-filter: blur(var(--v5-flou));
  backdrop-filter: blur(var(--v5-flou));
  transition: background-color var(--v5-d-moyen) ease-out, border-color var(--v5-d-moyen) ease-out;
}
:root[data-interface="synthese"] .v5-rangee.defile .v5-rangee-piste { background: color-mix(in oklab, var(--bg) 84%, transparent); border-bottom-color: var(--border); }
:root[data-interface="synthese"] .v5-tuile {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: 1fr auto;
  align-items: start;
  row-gap: var(--s-3);
  flex: 0 0 auto;
  box-sizing: border-box;
  min-width: var(--v5-tuile-l);
  height: var(--v5-tuile-h);
  padding: var(--s-4);
  border: 1px solid var(--border);
  border-radius: var(--v5-r-ctl);
  background: color-mix(in oklab, var(--surface) 72%, transparent);
  color: var(--muted);
  font: inherit;
  text-align: left;
  overflow: hidden;
  cursor: pointer;
  transition: transform var(--v5-d-long) var(--v5-ease), background var(--v5-d-moyen), color var(--v5-d-moyen), box-shadow var(--v5-d-long), border-color var(--v5-d-moyen);
}
:root[data-interface="synthese"] .v5-tuile:hover,
:root[data-interface="synthese"] .v5-tuile:focus-visible {
  transform: perspective(var(--v5-persp)) translateY(calc(var(--v5-decal-s) * -1)) rotateX(var(--v5-incl)) scale(1.04);
  background: var(--surface2);
  color: var(--fg);
  box-shadow: var(--e-3);
}
:root[data-interface="synthese"] .v5-tuile.on { background: var(--v5-deco-doux); color: var(--v5-deco); border-color: color-mix(in oklab, var(--v5-deco) 45%, transparent); }
:root[data-interface="synthese"] .v5-tuile-ico { grid-column: 1; grid-row: 1; display: grid; place-items: center; justify-items: start; color: var(--v5-fam-couleur, currentColor); }
:root[data-interface="synthese"] .v5-tuile.on .v5-tuile-ico { color: currentColor; }
:root[data-interface="synthese"] .v5-tuile-ico svg { width: var(--v5-ico-l); height: var(--v5-ico-l); }
:root[data-interface="synthese"] .v5-tuile-nom { grid-column: 1 / -1; grid-row: 2; align-self: end; white-space: nowrap; font-size: var(--v5-t-l); font-weight: var(--v5-poids-fin); }
:root[data-interface="synthese"] .v5-tuile-pastille {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  place-items: center;
  min-width: var(--s-5);
  height: var(--s-5);
  padding: 0 var(--s-2);
  border-radius: var(--v5-r-rond);
  background: var(--accent);
  color: var(--v5-sur-accent);
  font-size: var(--v5-t-xs);
  font-weight: var(--v5-poids-fort);
}
/* apparition de la rangée (ouverture d'une famille) : les tuiles entrent une à une, de gauche à droite, en perspective, façon menu de console */
@media (prefers-reduced-motion: no-preference) {
  :root[data-interface="synthese"]:not([data-mouvement="reduit"]) .v5-rangee-piste.entre .v5-tuile {
    animation: v5-tuile-entree var(--v5-d-tuile) var(--v5-ease-entree) backwards;
    animation-delay: calc(var(--v5-attente-tuile) + var(--i, 0) * var(--v5-ecart-tuile));      /* la page a déjà fait de la place */
  }
}
@keyframes v5-tuile-entree {
  from { opacity: 0; transform: perspective(var(--v5-persp)) translate3d(0, var(--v5-decal), calc(var(--v5-profondeur) * -1)) rotateX(var(--v5-incl-entree)) rotateY(var(--v5-incl-entree)) scale(.92); }
}
@media (max-width: 899px) {
  :root[data-interface="synthese"] .v5-rangee-piste { padding-left: var(--s-4); padding-right: var(--s-4); }
}
@media (max-width: 639px) {
  :root[data-interface="synthese"] .v5-rangee { --v5-tuile-h: var(--v5-tuile-h-m); --v5-tuile-l: var(--v5-tuile-l-m); position: relative; top: auto; }      /* téléphone : la rangée défile avec la page au lieu de couvrir 200 px de l'écran */
  :root[data-interface="synthese"] .v5-tuile { padding: var(--s-3); row-gap: var(--s-2); }
  :root[data-interface="synthese"] .v5-tuile-nom { font-size: var(--v5-t-m); }
}

/* ── Pastilles de famille (rail) ── */
:root[data-interface="synthese"] #sidebar .sb-section { position: relative; }
:root[data-interface="synthese"] #sidebar .sb-section[data-pastille]::after {
  content: attr(data-pastille);
  display: grid;
  place-items: center;
  min-width: var(--s-5);
  height: var(--s-5);
  padding: 0 var(--s-2);
  border-radius: var(--v5-r-rond);
  background: var(--accent);
  color: var(--v5-sur-accent);
  font-size: var(--v5-t-xs);
  font-weight: var(--v5-poids-fort);
}
:root[data-interface="synthese"] #sidebar .sb-section[data-pastille][aria-expanded="true"]::after { display: none; }
:root[data-interface="synthese"] #sidebar.collapsed .sb-section[data-pastille]::after {
  display: block;
  position: absolute;
  right: var(--s-1);
  top: var(--s-1);
  min-width: var(--v5-pastille);
  width: var(--v5-pastille);
  height: var(--v5-pastille);
  padding: 0;
  font-size: 0;
}
:root[data-interface="synthese"] #sidebar.collapsed .sb-section.v5-hub { background: var(--v5-deco-doux); }

/* ── Mouvement réduit ────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  :root[data-interface="synthese"] .v5-halos::before,
  :root[data-interface="synthese"] .v5-halos::after { animation: none; }
}
:root[data-interface="synthese"][data-mouvement="reduit"] .v5-halos::before,
:root[data-interface="synthese"][data-mouvement="reduit"] .v5-halos::after { animation: none; }
:root[data-interface="synthese"][data-mouvement="reduit"],
:root[data-interface="synthese"][data-mouvement="reduit"] *,
:root[data-interface="synthese"][data-mouvement="reduit"] *::before,
:root[data-interface="synthese"][data-mouvement="reduit"] *::after {
  animation-duration: 1ms !important;
  animation-delay: 0s !important;
  transition-duration: 1ms !important;
  transition-delay: 0s !important;
}
@media (prefers-reduced-motion: reduce) {
  :root[data-interface="synthese"],
  :root[data-interface="synthese"] *,
  :root[data-interface="synthese"] *::before,
  :root[data-interface="synthese"] *::after {
    animation-duration: 1ms !important;
    animation-delay: 0s !important;
    transition-duration: 1ms !important;
    transition-delay: 0s !important;
  }
}
