/* SPDX-License-Identifier: LicenseRef-CMSD-1.0
   Copyright (c) 2026 CyberMind — Gérald Kerma <devel@cybermind.fr>
   Source-Disclosed License — All rights reserved except as expressly granted.
   See LICENCE-CMSD-1.0.md for terms.

   Hall — coque de la vue maître (#2996) : topbar, sidebar 220 px, zone principale, barre d'onglets.
   Toute règle est scopée sous [data-hall="v2"] ; l'ancien Hall n'en lit aucune. */
[data-hall="v2"] body{background:var(--sbx-fond);display:flex;flex-direction:column;min-height:100dvh}
[data-hall="v2"] .sbx-ico{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* ── Topbar : la barre existante, restylée et complétée ───────────────────── */
[data-hall="v2"] .mast{background:var(--sbx-surface-2);border-bottom:1px solid var(--sbx-bordure-2);box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}
[data-hall="v2"] .mast-main{max-width:none;padding:0 var(--sbx-e-4);min-height:var(--sbx-top);gap:var(--sbx-e-3);flex-wrap:nowrap}
/* UNE SEULE NAVIGATION, LA SIDEBAR (décision du 2026-10-21) : la topbar ne porte que des outils. Les menus
   Services ▾ / Système ▾ et le menu déroulant du service embarqué sont masqués en v2 — leurs accès rapides
   (⚙ admin, ⧉ onglet) et la sous-navigation du module vivent dans la sidebar et sur les tuiles. */
[data-hall="v2"] .mnav{display:none}
/* Le menu DYNAMIQUE du service embarqué (titre ▾ → ses rubriques) reste dans la topbar : il est contextuel, pas un doublon. */
[data-hall="v2"] #mnav-ctx{height:40px;border:1px solid var(--sbx-bordure-2);border-radius:var(--sbx-rayon-s);background:var(--sbx-surface);color:var(--sbx-texte)}
[data-hall="v2"] #mnav-ctx.no-menu{border-color:transparent;background:none}
[data-hall="v2"] .megamenu{top:calc(var(--mast-h,56px) + 6px);border-color:var(--sbx-bordure);background:var(--sbx-surface);box-shadow:var(--sbx-ombre)}
.sbx-actions{display:inline-flex;gap:2px;flex:none}
.sbx-actions button{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid transparent;border-radius:8px;background:none;color:var(--sbx-texte-attenue);cursor:pointer;padding:0}
.sbx-actions button:hover{background:var(--sbx-surface-2);color:var(--sbx-texte);border-color:var(--sbx-bordure-2)}
.sbx-actions button:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
.sbx-actions .sbx-ico{width:15px;height:15px}
[data-hall="v2"] .logo img.medaille,[data-hall="v2"] .medaillon,[data-hall="v2"] .medaillon .mface{width:36px;height:36px}
[data-hall="v2"] .logo-notif{left:24px}
[data-hall="v2"] .logo sbx-dice{display:inline-block;line-height:0;filter:drop-shadow(var(--sbx-dice-ombre))}
[data-hall="v2"] .logo sbx-dice canvas{display:block}
[data-hall="v2"] .mast .drop{flex:1 1 160px;max-width:560px;min-width:0;background:var(--sbx-surface);border:1px solid var(--sbx-bordure-2);
  border-radius:var(--sbx-rayon-s)}
[data-hall="v2"] .mast .drop:focus-within{border-color:var(--sbx-accent);box-shadow:var(--sbx-halo-focus)}
[data-hall="v2"] .mast-actions{margin-left:auto;gap:var(--sbx-e-2)}
[data-hall="v2"] .mast .ibtn,[data-hall="v2"] .sbx-ibtn{width:40px;height:40px;border-radius:var(--sbx-rayon-s);border:1px solid var(--sbx-bordure-2);
  background:var(--sbx-surface);color:var(--sbx-texte);display:inline-grid;place-items:center;position:relative;padding:0;font:inherit;cursor:pointer}
@media(hover:hover){[data-hall="v2"] .mast .ibtn:hover,[data-hall="v2"] .sbx-ibtn:hover{border-color:var(--sbx-bordure);color:var(--sbx-accent-2)}}
[data-hall="v2"] .mast .ibtn:focus-visible,[data-hall="v2"] .sbx-ibtn:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
[data-hall="v2"] .sbx-ibtn[aria-pressed="true"]{background:var(--sbx-info-fond);color:var(--sbx-accent-2);border-color:var(--sbx-bordure)}
.sbx-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--sbx-off);
  color:#2A0A0A;font:700 .66rem/18px var(--sbx-mono);text-align:center}
.sbx-badge[hidden]{display:none}
.sbx-version{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--sbx-bordure);
  background:var(--sbx-ok-fond);color:var(--sbx-ok);font:600 .7rem var(--sbx-mono);white-space:nowrap}
.sbx-version .led{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 25%,transparent)}
.sbx-version[data-etat="off"]{background:var(--sbx-off-fond);color:var(--sbx-off)}
.sbx-version[data-etat="attente"]{background:var(--sbx-surface);color:var(--sbx-texte-attenue)}
[data-hall="v2"] .mast .who{padding:3px;gap:0;border-radius:50%;border:1px solid var(--sbx-bordure-2);background:var(--sbx-surface)}
[data-hall="v2"] .mast .who > span:not(.av){display:none}
[data-hall="v2"] .mast .who .av{width:32px;height:32px;display:grid;place-items:center;color:var(--sbx-accent-2)}
[data-hall="v2"] .lexie-bouton{height:40px;padding:0 12px;border-radius:var(--sbx-rayon-s);border-color:var(--sbx-bordure-2);background:var(--sbx-surface);color:var(--sbx-texte)}

/* ── Corps : sidebar + zone principale ───────────────────────────────────── */
.sbx-corps{display:flex;flex:1;min-height:0;width:100%;align-items:flex-start}
[data-hall="v2"] .shell{flex:999 1 560px;min-width:0;max-width:none;margin:0}
[data-hall="v2"] .main{padding:var(--sbx-e-4) var(--sbx-e-4) calc(60px + var(--dock-h,0px))}
.sbx-side{flex:0 0 var(--sbx-side);width:var(--sbx-side);position:sticky;top:var(--mast-h,var(--sbx-top));
  height:calc(100dvh - var(--mast-h,var(--sbx-top)) - var(--sb-h,30px));overflow:auto;display:flex;flex-direction:column;gap:var(--sbx-e-3);
  padding:var(--sbx-e-3);background:var(--sbx-surface-2);border-right:1px solid var(--sbx-bordure-2);scrollbar-width:thin}
.sbx-side nav{display:flex;flex-direction:column;gap:2px}
.sbx-rub{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 10px;border:1px solid transparent;border-radius:var(--sbx-rayon-s);
  background:none;color:var(--sbx-texte-attenue);font:500 .88rem var(--sbx-police);text-align:left;cursor:pointer;white-space:nowrap}
.sbx-rub .sbx-ico{width:18px;height:18px}
.sbx-rub.on{background:var(--sbx-info-fond);color:var(--sbx-accent-2);border-color:var(--sbx-bordure)}
@media(hover:hover){.sbx-rub:hover:not(.on){background:var(--sbx-surface);color:var(--sbx-texte)}}
.sbx-rub:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
/* Rubriques dépliables : ligne = rubrique + chevron ; sous-liste = modules, puis sous-navigation du module embarqué. */
.sbx-ligne{display:flex;align-items:center;gap:2px}
.sbx-ligne .sbx-rub{flex:1 1 auto;min-width:0}
.sbx-plier{flex:none;width:28px;height:36px;display:inline-grid;place-items:center;border:0;background:none;color:var(--sbx-texte-attenue);border-radius:var(--sbx-rayon-s);cursor:pointer;padding:0}
.sbx-plier .sbx-ico{width:14px;height:14px;transition:transform .15s}
.sbx-plier[aria-expanded="true"] .sbx-ico{transform:rotate(90deg)}
.sbx-plier:hover{background:var(--sbx-surface);color:var(--sbx-texte)}
.sbx-plier:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
.sbx-sous{display:flex;flex-direction:column;gap:1px;margin:0 0 4px 22px;padding-left:8px;border-left:1px solid var(--sbx-bordure-2)}
.sbx-sous[hidden]{display:none}
.sbx-sous-item,.sbx-sous-tout{min-height:32px;font-size:.8rem;gap:8px;padding:0 8px}
.sbx-sous-item .sbx-led{width:6px;height:6px}
.sbx-sous-item[data-status="offline"],.sbx-sous-item[data-status="nosource"]{opacity:.6}
.sbx-sous-tout{color:var(--sbx-accent-2)}
.sbx-ctx-liste{display:flex;flex-direction:column;gap:1px;margin:0 0 4px 14px;padding-left:8px;border-left:1px dashed var(--sbx-bordure-2)}
.sbx-ctx{min-height:28px;font-size:.76rem;padding:0 8px;text-decoration:none}
.sbx-ctx small{margin-left:auto;color:var(--sbx-texte-attenue);font-size:.66rem}
.sbx-ctx.on{color:var(--sbx-accent-2)}
/* Service embarqué : la sidebar se replie en rail d'icônes et rend sa largeur au cadre. */
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side{--sbx-side:64px;padding:var(--sbx-e-2) 6px}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-rub span,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-titre,
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-favoris,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-usager-liens,
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-plier,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-sous,
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-usager .tx{display:none}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-rub{justify-content:center;padding:0;width:40px;min-height:40px;margin:0 auto}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side .sbx-usager{padding:4px;border:0;background:none;justify-content:center}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:hover,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:focus-within{--sbx-side:220px;padding:var(--sbx-e-3)}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:hover .sbx-rub span,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:focus-within .sbx-rub span,
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:hover .sbx-plier,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:focus-within .sbx-plier{display:inline-grid}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:hover .sbx-rub span{display:inline}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:hover .sbx-sous:not([hidden]),[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:focus-within .sbx-sous:not([hidden]){display:flex}
[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:hover .sbx-rub,[data-hall="v2"] body:has(#view-embed:not(.hidden)) .sbx-side:focus-within .sbx-rub{justify-content:flex-start;padding:0 10px;width:100%;margin:0}
.sbx-titre{margin:0;padding:var(--sbx-e-2) 10px 2px;font:600 .64rem var(--sbx-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sbx-texte-attenue)}
.sbx-sous .sbx-vide{margin:0;padding:6px 8px;font-size:.74rem;color:var(--sbx-texte-attenue)}
.sbx-usager{margin-top:auto;display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--sbx-bordure-2);border-radius:var(--sbx-rayon-m);
  background:var(--sbx-surface);color:var(--sbx-texte);text-align:left;cursor:pointer;font-family:inherit}
.sbx-usager:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
.sbx-usager .av{width:32px;height:32px;flex:none;border-radius:50%;background:var(--sbx-info-fond);color:var(--sbx-accent-2);display:grid;place-items:center;
  font:700 .78rem var(--sbx-mono)}
.sbx-usager .av img{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block}
[data-hall="v2"] .mast .who .av img{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block}
.sbx-usager-liens{display:flex;flex-direction:column;gap:2px}
.sbx-usager-liens[hidden]{display:none}
.sbx-usager-liens .sbx-rub{min-height:36px;font-size:.8rem;text-decoration:none}
.sbx-usager .tx{min-width:0}
.sbx-usager b{display:block;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-usager i{display:block;font-style:normal;font-size:.7rem;color:var(--sbx-texte-attenue);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Grilles : 4 colonnes au large ───────────────────────────────────────── */
[data-hall="v2"] .grid.feat{columns:4;column-gap:var(--sbx-e-4)}
[data-hall="v2"] .grid.feat > .fcard{margin:0 0 var(--sbx-e-4)}
[data-hall="v2"] .tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sbx-e-4)}
[data-hall="v2"] .fcard{box-shadow:none;border-color:var(--sbx-bordure-2)}
[data-hall="v2"] .fcard:hover{transform:none;border-color:var(--sbx-bordure);box-shadow:var(--sbx-ombre)}
[data-hall="v2"][data-densite="compact"] .grid.feat{column-gap:var(--sbx-e-2)}
[data-hall="v2"][data-densite="compact"] .grid.feat > .fcard{margin-bottom:var(--sbx-e-2)}
[data-hall="v2"][data-densite="compact"] .tiles{gap:var(--sbx-e-2)}
[data-hall="v2"][data-densite="compact"] .main{padding-left:var(--sbx-e-2);padding-right:var(--sbx-e-2)}
[data-hall="v2"] .statusbar{background:var(--sbx-surface-2);border-top:1px solid var(--sbx-bordure-2)}

/* ── Statut typé des cartes (phase 3) : pastille, opacité et pied découlent de data-status ── */
.sbx-fcard-pied{margin-top:auto;padding:6px 10px 0;font:500 .66rem var(--sbx-mono);color:var(--sbx-texte-attenue);border-top:1px solid var(--sbx-bordure-2)}
[data-hall="v2"] .fcard-apercu .sbx-fcard-pied{padding:6px 10px}
[data-hall="v2"] .fcard[data-perime="1"] .sbx-fcard-pied,[data-hall="v2"] .fcard[data-status="stale"] .sbx-fcard-pied{color:var(--sbx-warn)}
[data-hall="v2"] .fcard[data-status="idle"]{opacity:.85}
[data-hall="v2"] .fcard[data-status="offline"]{opacity:.6}
[data-hall="v2"] .fcard[data-status="stale"] .led{background:var(--sbx-warn);box-shadow:0 0 0 3px var(--sbx-warn-fond)}
[data-hall="v2"] .fcard[data-status="nosource"]{opacity:.6;border-style:dashed}
[data-hall="v2"] .fcard .ap-vue{position:relative}
/* ── Phase 4 : cartes habillées en Card (MIGREES de hall-v2.js) — l'en-tête garde sa largeur pour le titre ; les commandes
   ⠿ ★ ? descendent dans la bande du pied, à droite du relevé ── */
[data-hall="v2"] .fcard.sbx-card{display:flex;flex-direction:column;padding:0;overflow:hidden}
.fcard.sbx-card .sbx-card-tete .sbx-pill{flex:none}
.fcard.sbx-card .sbx-card-pied{padding-right:84px}
.fcard.sbx-card .sbx-card-pied .sbx-releve{white-space:nowrap}
.fcard.sbx-card > .cl-grip,.fcard.sbx-card > .cl-vedette,.fcard.sbx-card > .cl-aide{top:auto;bottom:5px}
.fcard.sbx-card .sbx-card-corps{padding:0;position:relative;min-height:0}
.fcard.sbx-card .sbx-card-corps iframe{display:block}
.fcard.sbx-card .sbx-card-pied .sbx-source{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:720px){.fcard.sbx-card .sbx-card-action{width:44px;height:44px}}
/* Accès rapide : Card native sous le Hero, tuiles auto-fill 104 px (composants.css), libellé sur une ligne */
[data-hall="v2"] .sbx-acces{margin:0 0 var(--sbx-e-4)}
.sbx-acces .sbx-tile{position:relative;font:500 .78rem var(--sbx-police);color:var(--sbx-texte)}
.sbx-acces .sbx-tile span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Applications Streamlit : mêmes tuiles que les sites, pastille d'état, bouton (console) ou lien (domaine) */
.sbx-atuile{position:relative}
.sbx-atuile .sbx-led{position:absolute;top:8px;right:8px}
button.sbx-atuile{font:inherit;color:inherit;text-align:left;cursor:pointer}
.sbx-atuile[data-status="idle"] .vig{opacity:.7}
/* Flux d'actualités : Card native, NewsItem (composants.css) en trois colonnes au large, une au téléphone */
[data-hall="v2"] .sbx-flux{margin:0 0 var(--sbx-e-4)}
.sbx-flux-liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--sbx-e-4)}
.sbx-flux-liste .sbx-news{min-width:0}
.sbx-flux .sbx-vide{margin:0;font-size:.8rem;color:var(--sbx-texte-attenue)}
@media (max-width:1180px){.sbx-flux-liste{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.sbx-flux-liste{grid-template-columns:minmax(0,1fr)}}
.sbx-veille{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:12px;text-align:center;font:.76rem var(--sbx-police);color:var(--sbx-texte-attenue);background:var(--sbx-surface-2)}

/* ── Mosaïque des modules et des sites ───────────────────────────────────── */
#view-mosaique.hidden{display:none}
.sbx-mosaique-tete{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sbx-e-3);margin:0 0 var(--sbx-e-4)}
.sbx-mosaique-titre{margin:0;font:700 1.25rem var(--sbx-police)}
.sbx-mosaique-compte{font-size:.72rem;color:var(--sbx-texte-attenue)}
.sbx-mosaique{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sbx-e-3)}
.sbx-mosaique[data-vue="sites"]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.sbx-mtuile,.sbx-stuile{position:relative;display:flex;flex-direction:column;gap:8px;min-height:92px;padding:12px;border:1px solid var(--sbx-bordure-2);border-radius:var(--sbx-rayon-m);
  background:var(--sbx-surface);color:var(--sbx-texte);text-align:left;text-decoration:none;cursor:pointer;font:inherit;min-width:0}
.sbx-mtuile:hover,.sbx-stuile:hover{border-color:var(--sbx-bordure);box-shadow:var(--sbx-ombre)}
.sbx-mtuile:focus-within,.sbx-stuile:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
.sbx-mtuile .ouvre{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-width:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0}
.sbx-mtuile .ouvre:focus-visible{outline:none}
.sbx-mtuile .sbx-actions{position:absolute;right:8px;bottom:8px;opacity:.55}
.sbx-mtuile .vig{display:block;aspect-ratio:16/10;width:calc(100% + 24px);margin:-12px -12px 0;border-radius:var(--sbx-rayon-m) var(--sbx-rayon-m) 0 0;overflow:hidden;background:var(--sbx-surface-2);border-bottom:1px solid var(--sbx-bordure-2)}
.sbx-mtuile .vig img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.sbx-mtuile.avec-vignette .sbx-led{top:12px;right:12px;box-shadow:0 0 0 3px var(--sbx-surface-2)}
.sbx-mtuile:hover .sbx-actions,.sbx-mtuile:focus-within .sbx-actions{opacity:1}
.sbx-sous-ligne{display:flex;align-items:center;gap:2px}
.sbx-sous-ligne .sbx-sous-item{flex:1 1 auto;min-width:0}
.sbx-sous-ligne .sbx-actions{opacity:0}
.sbx-sous-ligne:hover .sbx-actions,.sbx-sous-ligne:focus-within .sbx-actions{opacity:1}
.sbx-sous-ligne .sbx-actions button{width:24px;height:24px}
.sbx-mtuile .sbx-ico{width:26px;height:26px;color:var(--sbx-accent-2)}
.sbx-mtuile .tx,.sbx-stuile .tx{min-width:0}
.sbx-mtuile b,.sbx-stuile b{display:block;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-mtuile small,.sbx-stuile small{display:block;margin-top:2px;font:.68rem var(--sbx-mono);color:var(--sbx-texte-attenue);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-mtuile .sbx-led{position:absolute;top:12px;right:12px}
.sbx-mtuile[data-status="offline"],.sbx-mtuile[data-status="nosource"]{opacity:.65}
.sbx-mtuile[data-status="nosource"]{border-style:dashed}
.sbx-stuile{padding:0;overflow:hidden}
.sbx-stuile .vig{display:block;aspect-ratio:16/10;width:100%;background:var(--sbx-surface-2);border-bottom:1px solid var(--sbx-bordure-2);display:grid;place-items:center}
.sbx-stuile .vig img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.sbx-stuile .vig .sans{font:700 1.6rem var(--sbx-mono);color:var(--sbx-texte-attenue)}
.sbx-stuile .tx{padding:0 12px 12px}
.sbx-mosaique-vide{margin:var(--sbx-e-4) 0;color:var(--sbx-texte-attenue);font-size:.9rem}
.sbx-mosaique-vide[hidden]{display:none}

/* ── Barre d'onglets (téléphone) ─────────────────────────────────────────── */
.sbx-tabbar{display:none}
.sbx-voile{display:none}

/* ── 1180 px : 4 → 2 colonnes ────────────────────────────────────────────── */
@media(max-width:1180px){
  [data-hall="v2"] .grid.feat{columns:2}
  [data-hall="v2"] .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── 980 px : la sidebar devient un rail horizontal, favoris masqués ─────── */
@media(max-width:980px){
  .sbx-corps{flex-direction:column;align-items:stretch}
  [data-hall="v2"] .shell{width:100%}
  .sbx-side{position:sticky;top:var(--mast-h,var(--sbx-top));z-index:50;width:100%;flex:none;height:auto;max-height:none;
    flex-direction:row;align-items:center;gap:var(--sbx-e-2);padding:var(--sbx-e-2) var(--sbx-e-3);
    overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--sbx-bordure-2);scrollbar-width:none}
  .sbx-side::-webkit-scrollbar{display:none}
  .sbx-side nav{flex-direction:row;flex:none}
  .sbx-rub{width:auto}
  .sbx-side .sbx-titre,.sbx-side .sbx-usager-liens,.sbx-side .sbx-plier,.sbx-side .sbx-sous{display:none}
  .sbx-side .sbx-grp,.sbx-side .sbx-ligne{display:contents}
  .sbx-side .sbx-grp.sbx-favoris{display:none}   /* rail : favoris masqués (brief) */
  .sbx-usager{margin:0 0 0 auto;width:auto;padding:4px;border:0;background:none;flex:none}
  .sbx-usager .tx{display:none}
}

/* ── 720 px : une colonne, sidebar en tiroir, barre d'onglets fixe en bas ── */
@media(max-width:720px){
  .sbx-side{display:none}
  [data-hall="v2"] .sbx-side.ouvert{display:flex;position:fixed;left:0;right:0;top:var(--mast-h,var(--sbx-top));bottom:var(--sbx-tabbar);z-index:72;
    flex-direction:column;align-items:stretch;height:auto;overflow:auto;padding:var(--sbx-e-3);border-bottom:0;
    box-shadow:0 24px 48px -12px rgba(0,0,0,.6)}
  [data-hall="v2"] .sbx-side.ouvert nav{flex-direction:column}
  [data-hall="v2"] .sbx-side.ouvert .sbx-grp{display:block} [data-hall="v2"] .sbx-side.ouvert .sbx-ligne{display:flex}
  [data-hall="v2"] .sbx-side.ouvert .sbx-plier{display:inline-grid} [data-hall="v2"] .sbx-side.ouvert .sbx-sous:not([hidden]){display:flex}
  [data-hall="v2"] .sbx-side.ouvert .sbx-rub{width:100%;min-height:44px}
  [data-hall="v2"] .sbx-side.ouvert .sbx-titre{display:block}
  [data-hall="v2"] .sbx-side.ouvert .sbx-grp.sbx-favoris{display:block}
  [data-hall="v2"] .sbx-side.ouvert .sbx-usager-liens:not([hidden]){display:flex}
  [data-hall="v2"] .sbx-side.ouvert .sbx-usager{margin-top:auto;width:100%;padding:10px;border:1px solid var(--sbx-bordure-2);background:var(--sbx-surface)}
  [data-hall="v2"] .sbx-side.ouvert .sbx-usager .tx{display:block}
  [data-hall="v2"] .sbx-voile.ouvert{display:block;position:fixed;inset:0;z-index:71;background:var(--sbx-voile)}
  [data-hall="v2"] .grid.feat{columns:1}
  [data-hall="v2"] .tiles{grid-template-columns:1fr}
  .sbx-mosaique,.sbx-mosaique[data-vue="sites"]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sbx-e-2)}
  [data-hall="v2"] .main{padding:var(--sbx-e-3) var(--sbx-e-3) calc(88px + var(--dock-h,0px))}
  [data-hall="v2"] .mast-main{padding:0 var(--sbx-e-2);gap:var(--sbx-e-2)}
  [data-hall="v2"] .mast .ibtn,[data-hall="v2"] .sbx-ibtn{width:44px;height:44px}
  [data-hall="v2"] #sbx-dispo{display:none}
  [data-hall="v2"] .sbx-version{padding:0 8px}
  [data-hall="v2"] .sbx-version .txt{display:none}
  [data-hall="v2"] .lexie-bouton{width:44px;height:44px;padding:0;justify-content:center;font-size:0}
  [data-hall="v2"] .lexie-bouton .lexie-pastille{width:12px;height:12px}
  [data-hall="v2"] .statusbar{display:none}
  [data-hall="v2"]{--sb-h:var(--sbx-tabbar)}
  [data-hall="v2"] .mediadock{bottom:var(--sbx-tabbar)}
  [data-hall="v2"] .dockmaitre{bottom:calc(var(--dock-b,30px) - 30px + var(--sbx-tabbar))}
  .sbx-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:66;height:var(--sbx-tabbar);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));
    background:var(--sbx-surface-2);border-top:1px solid var(--sbx-bordure-2)}
  .sbx-tabbar button{flex:1 1 0;min-width:44px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    border:0;background:none;color:var(--sbx-texte-attenue);font:500 .62rem var(--sbx-police);border-radius:var(--sbx-rayon-s);cursor:pointer;padding:0}
  .sbx-tabbar button.on{color:var(--sbx-accent-2)}
  .sbx-tabbar button:focus-visible{outline:none;box-shadow:var(--sbx-halo-focus)}
  .sbx-tabbar .sbx-ico{width:22px;height:22px}
}
