/* Shared touch scrolling; preserve two-axis gestures and browser zoom. */

@media screen {
 html {height:auto;min-height:100%;overflow-y:auto;}
 body:not(.modal-open) {height:auto;min-height:100dvh;overflow-y:visible;}
 /* POS previously occupied a fixed viewport with nested vertical scrollers. */
 .pos-shell {position:relative;inset:auto;min-height:100dvh;overflow:visible;}
 .pos-cart-side .pos-panel {max-height:none;overflow:visible;}
 .pos-catalog {max-height:none;overflow:visible;}
 .sidebar,.contributor-sidebar {overflow-y:auto;overscroll-behavior-y:auto;}
 /* Preserve equal-width cards in a horizontal comparison strip on every screen. */
 .row:has(> .col-lg-4 input[name="plan_id"]),
 .row:has(> .col-lg-6 > form input[name="trial_days"]) {
   display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;
   gap:1rem;margin-left:0;margin-right:0;padding:0.75rem 0 1rem;
   scroll-snap-type:x proximity;scrollbar-width:auto;
   -webkit-overflow-scrolling:touch;
 }
 .row:has(> .col-lg-4 input[name="plan_id"]) > .col-lg-4,
 .row:has(> .col-lg-6 > form input[name="trial_days"]) > .col-lg-6 {
   flex:0 0 320px;width:320px;max-width:none;padding:0;margin-top:0;
   scroll-snap-align:start;
 }
 @media(min-width:1200px) {
  .row:has(> .col-lg-4 input[name="plan_id"]) > .col-lg-4,
  .row:has(> .col-lg-6 > form input[name="trial_days"]) > .col-lg-6 {
    flex-basis:calc((100% - 2rem)/3);width:calc((100% - 2rem)/3);min-width:280px;
  }
 }
 @media(max-width:575px) {
  .row:has(> .col-lg-4 input[name="plan_id"]) > .col-lg-4,
  .row:has(> .col-lg-6 > form input[name="trial_days"]) > .col-lg-6 {
   flex-basis:85%;width:85%;min-width:240px;
  }
 }
}

@media screen {
 html,body {touch-action:pan-x pan-y pinch-zoom;}
 body {overscroll-behavior-y:auto;}
 .table-responsive,.approved-nav-inner,.pos-mobile-nav,
 .row:has(input[name="plan_id"]),.pos-shell,.pos-panel {
   touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:auto;
 }
 .dashboard-shell .admin-globalbar {height:54px;padding:6px 14px;gap:10px;overflow:visible;}
 .admin-globalbar .admin-logo {min-width:0;font-size:1rem;white-space:nowrap;}
 .admin-globalbar .dropdown {position:relative;}
 .admin-globalbar .admin-account-menu {max-height:calc(100dvh - 70px);overflow-y:auto;}
 .dashboard-shell .sidebar {overflow-y:auto;overscroll-behavior:auto;height:calc(100dvh - 54px)!important;}
 .dashboard-shell .sidebar nav.admin-flat-nav {display:grid!important;overflow:visible!important;gap:5px;padding-bottom:12px;}
 .admin-nav-group {min-width:0;border-bottom:1px solid #edf0ed;padding:4px 0;}
 .admin-nav-group summary {cursor:pointer;padding:12px 8px;font-weight:600;color:#24452e;min-height:44px;}
 .admin-nav-group summary:focus-visible {outline:2px solid #147539;outline-offset:2px;}
 .admin-nav-group-links {display:grid;padding-left:8px;}
 .dashboard-shell .sidebar .admin-nav-group-links a {white-space:normal;}
 .admin-mobile-menu {display:none!important;}
 .admin-navigation-backdrop {position:fixed;inset:54px 0 0;background:#0005;z-index:1070;border:0;}
 .admin-navigation-backdrop[hidden] {display:none!important;}
 @media(max-width:991.98px) {
  .dashboard-shell {padding-top:54px;}
  .dashboard-shell .admin-globalbar {height:54px;}
  .admin-mobile-menu {display:inline-flex!important;align-items:center;justify-content:center;position:static!important;min-width:40px;min-height:40px;}
  .dashboard-shell .sidebar {position:fixed!important;top:54px!important;left:0!important;width:min(280px,85vw)!important;height:calc(100dvh - 54px)!important;transform:translateX(-105%)!important;}
  .dashboard-shell .sidebar.mobile-open {transform:translateX(0)!important;}
  .dashboard-shell .dash-main {margin-left:0!important;width:100%!important;}
 }
}

/* 2026-10-05c: one document scroller; keep sidebar links flat. */
@media screen {
 html {height:auto!important;max-height:none!important;overflow-y:auto!important;overflow-x:clip!important;}
 body:not(.modal-open) {height:auto!important;max-height:none!important;overflow-y:visible!important;overflow-x:clip!important;}
 .dashboard-shell .dash-main {height:auto!important;max-height:none!important;overflow:visible!important;min-width:0;}
 .dashboard-shell .admin-globalbar {box-sizing:border-box;width:100%;min-width:0;}
 .dashboard-shell .admin-globalbar .admin-logo {flex:1 1 auto;min-width:0;}
 .dashboard-shell .admin-globalbar .admin-logo img {flex:0 0 32px;}
 .dashboard-shell .admin-globalbar .admin-logo span {font-size:1rem;line-height:1.2;white-space:nowrap;}
 .dashboard-shell .admin-globalbar>.dropdown {flex:0 0 auto;}
 .dashboard-shell .admin-globalbar .dropdown-toggle {white-space:nowrap;font-size:.9rem;}
 .dashboard-shell .sidebar nav.admin-flat-nav {display:grid!important;grid-template-columns:minmax(0,1fr);overflow:visible!important;}
 .dashboard-shell .sidebar nav.admin-flat-nav>a {display:block!important;white-space:normal!important;min-height:44px;}
 @media(max-width:575.98px) {
  .dashboard-shell .admin-globalbar {padding:5px 8px;gap:6px;}
  .dashboard-shell .admin-globalbar .admin-logo img {width:26px;height:26px;flex-basis:26px;}
  .dashboard-shell .admin-globalbar .admin-logo span {font-size:.88rem;}
 }
}