/* JSV 2.0.87: one mobile page frame; desktop dimensions remain authoritative.
 * These variables also feed the more-specific late dimension stylesheets.
 * Only outer page surfaces receive gutters: drawers, cards and app internals do not. */
@media screen and (max-width:900px) {
 html body {
  --jsv-frame-total-gutter:0px;
  --jsv-frame-side-gutter:0px;
  --jsv-frame-column-gap:12px;
  --jsv-frame-section-padding:14px;
 }
 html body:not(:has(#jsf-activity-page,.jsf-activity-stage)) > :is(main,[role="main"],.shell,.page-wrap,.jsf-saved-page,.jsf-friends-page,.jsf-profile-target,.jsf-exact-profile-hub,.jsf-gm-page,.jsf-group-suite-shell,.jsgl-page,.jsm-marketplace-hub,.jsm-marketplace-workspace,.jsm-account-dashboard,.jsf-cc,.jsst-suite,#jsf-directory-market,#jsf-directory-page,#jsf-events-alive,.js-events-home-shell,.jsf-market-live-shell,.woocommerce,.jsf-newsroom,.jsf-groups-suite,.jsf-marketplace,.jsm-marketplace-rewards-workspace,.jsf-service-requests,.jsf-context-shell,.jsf-network-shell,.business-view-layout,.business-owner-layout,.jsf-business-owner-layout,.jsf-niagara-auth,.jsf-account-choice,.jsf-account-shell,.jsf-event-detail-page-shell,.jsf-event-detail-mockup,.jsf-event-detail,.jsf-home-v2,.jsf-home-page,.jsf-join-page,.jsw-shell,.jsw-centre-layout,.jsf-directory-home,.jsf-command-center-page,.jsv-th-lobby):not([role="dialog"]):not([hidden]) {
  box-sizing:border-box!important;
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin-left:0!important;margin-right:0!important;
 }
 /* Match the late frame guard, so plugin and neutral wrappers get the same gutter.
    Full-screen chat/message surfaces retain their own edge-to-edge padding. */
 html body.jsv-uniform-dimensions-ready[data-jsv-page-layout-bound="1"]:not(.jsf-activity-page):not(.jsf-activity-stage):not(#jsf-activity-page):not(:has(#jsf-activity-page,.jsf-activity-stage)):not(.jsf-group-chat-mobile-mode) > [data-jsv-page-dimensions="flow"]:not(:has(.jsg-chat-centered-home,.jsf-gm-page.jsf-gm-chat,.jsf-ng-game-v2,.jsf-ng-game)):not(.jsf-gm-chat):not(.jsf-message-page):not(.jsf-bmsg-page):not(.jsf-ng-game-v2):not(.jsf-ng-game) {
  padding-left:max(10px,env(safe-area-inset-left))!important;
  padding-right:max(10px,env(safe-area-inset-right))!important;
 }
 html body.jsv-uniform-dimensions-ready[data-jsv-page-layout-bound="1"]:not(.jsf-activity-page):not(.jsf-activity-stage):not(#jsf-activity-page):not(:has(#jsf-activity-page,.jsf-activity-stage)) > [data-jsv-page-dimensions] > :is(.jsf-context-main,.jsf-network-page,.jsf-network-center,.jsf-groups-main,.jsf-business-owner-main,.jsf-events-main,.jsf-directory-main,.jsw-centre-content,.jsw-main,.jsgl-layout,.jsf-saved-wrap,.jsf-friends-wrap,.jsv-th-lobby-inner) {
  min-width:0!important;max-width:100%!important;box-sizing:border-box!important;
 }
 /* Complete nested page wrappers should not add another external margin.
    Their own cards keep normal content padding. */
 html body:not(:has(#jsf-activity-page,.jsf-activity-stage)) :is(.jsf-context-main,.jsf-network-center,.jsf-groups-main,.jsf-business-owner-main) > :is(.jsm-marketplace-hub,.jsm-marketplace-workspace,.jsm-account-dashboard,.js-events-home-shell,.business-view-layout,.business-owner-layout,.jsf-business-owner-layout,.jsf-account-shell,.jsf-service-requests,.jsw-shell) {
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;
 }
 /* The outer frame can resize maps and chats horizontally without changing
    their viewport height, internal scroll ownership or docked composers. */
 html body.jsv-uniform-dimensions-ready[data-jsv-page-layout-bound="1"]:not(:has(#jsf-activity-page,.jsf-activity-stage)) > [data-jsv-page-dimensions="positioned"] {
  box-sizing:border-box!important;min-width:0!important;
 }
}
