/* Mobile shell — aligné Portail / écosystème Vallon */
@media (max-width: 900px) {
  html, body { max-width: 100vw; overflow-x: hidden; }
  .side, aside.side, .sidebar, .vp-sidebar {
    position: fixed; left: 0; top: 0; bottom: 0; z-index: 400;
    transform: translateX(-105%); transition: transform .2s ease;
    width: min(280px, 86vw) !important; max-width: 86vw;
  }
  body.nav-open .side,
  body.nav-open aside.side,
  body.nav-open .sidebar,
  body.nav-open .vp-sidebar,
  html.nav-open .side { transform: translateX(0); }
  .main, main.main, .vp-workspace, .shell-main { padding: 12px !important; width: 100% !important; }
  .brand, .shell-header, .vc-nav, .vp-topbar {
    flex-wrap: wrap; gap: 8px;
  }
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .btn, button.btn { min-height: 42px; }
  input, select, textarea { font-size: 16px !important; } /* évite zoom iOS */
}
