/* Victoria V41 — couche de stabilité PWA/scroll/navigation. */
:root{--vx41-transition:190ms}
html,body{width:100%;max-width:100%;min-height:100%;box-sizing:border-box}
html{overflow-x:clip!important;overflow-y:auto!important;overscroll-behavior-x:none}
body{margin:0;overflow-x:clip!important;overflow-y:auto!important;overscroll-behavior-y:auto}
*,*::before,*::after{box-sizing:border-box}
img,video,canvas,svg,iframe{max-width:100%}
main,section,article,.container,.container-fluid,.row,.col,.v5-shell,.v5-page,.v5-desktop-nav,.v5-mobile-header,.v5-mobile-bottom{min-width:0}
/* Un seul verrou de scroll, activé uniquement lorsqu'un overlay réel est ouvert. */
html.vx41-overlay-open{overflow:hidden!important}
body.vx41-scroll-locked{overflow:hidden!important;overscroll-behavior:contain!important}
/* Nettoyage de secours si Bootstrap ou un ancien module a laissé modal-open. */
body:not(.vx41-scroll-locked).modal-open,body:not(.vx41-scroll-locked).v36-drawer-open,body:not(.vx41-scroll-locked).vx-modal-open,body:not(.vx41-scroll-locked).v37-install-open{overflow-y:auto!important;overflow-x:clip!important}
/* Transitions de page sans intercepter la navigation native. */
body.vx41-page-enter{animation:vx41PageIn var(--vx41-transition) ease both}
body.vx41-page-leave{animation:vx41PageOut 150ms ease both}
@keyframes vx41PageIn{from{opacity:.82;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes vx41PageOut{from{opacity:1}to{opacity:.86}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.vx41-page-enter,body.vx41-page-leave{animation:none!important}}
/* Les rails restent les seuls composants pouvant imposer un scroll horizontal. */
.vx41-horizontal-scroll,.v5-story-row,.vx22-carousel,.v31-topic-rail,.v31-feed-shortcuts,.vx-search-shortcuts{max-width:100%;min-width:0}
.vx41-horizontal-scroll{overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
h1,h2,h3,h4,h5,h6,p,span,a,button,label,small,strong,td,th{overflow-wrap:anywhere}
pre,code{max-width:100%;white-space:pre-wrap;word-break:break-word}
.v5-page{overflow:visible!important}
.v7-mobile-menu,.v7-mobile-menu-scroll,.v36-drawer-panel,.vx-safe-modal__dialog,.v37-install-dialog,.modal-dialog,.offcanvas{max-width:100%;-webkit-overflow-scrolling:touch}
@media(max-width:991.98px){
  .v7-mobile-menu{max-height:calc(100dvh - 82px)!important;overflow:auto!important}
  .v7-mobile-menu-scroll{max-height:calc(100dvh - 125px);overflow:auto!important}
  .v5-mobile-header{width:100%;max-width:100%;min-width:0}
}
@media(display-mode:standalone){.v5-page{padding-bottom:calc(114px + env(safe-area-inset-bottom,0px))!important}}
