.app-shell .sidebar{height:100vh;height:100dvh;overflow:hidden;padding-bottom:max(16px,env(safe-area-inset-bottom))}
.app-shell .sidebar-brand,.app-shell .sidebar-footer{flex:0 0 auto}
.app-shell .sidebar-menu{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:18px;scrollbar-width:thin}
.app-shell .sidebar-footer{margin-top:0;padding-top:12px;background:inherit;position:relative;z-index:1;display:grid;gap:8px}
.app-shell .role-switch{min-height:52px}
.app-shell .role-switch>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.app-shell .sidebar-close{display:none}
@media(max-width:900px){
 .app-shell .sidebar{z-index:70}
 .app-shell .nav-backdrop{z-index:65}
 .app-shell .mobile-menu{
  position:fixed;
  top:max(10px,env(safe-area-inset-top));
  left:12px;
  z-index:80;
 }
 .app-shell .topbar{padding-left:58px}
 .app-shell .sidebar-brand{display:flex;align-items:center;gap:11px;position:relative}
 .app-shell .sidebar-close{
  display:grid;
  place-items:center;
  margin-left:auto;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:22px;
  line-height:1;
 }
}
/* Tab click + pan-left must not auto-scroll the workspace back to the right. */
html:has(.app-shell){scroll-behavior:auto;overflow-x:hidden;overflow-anchor:none}
html:has(.app-shell),html:has(.app-shell) *{scroll-behavior:auto}
body:has(.app-shell){overflow-x:hidden;overflow-anchor:none;overscroll-behavior-x:none}
html:has(.app-shell),body:has(.app-shell){height:100%;overflow:hidden}
.app-shell{height:100dvh;max-height:100dvh;overflow:hidden}
.app-shell,.app-shell .workspace,.app-shell .content{max-width:100%;min-width:0}
.app-shell .workspace{height:100dvh;max-height:100dvh;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.app-shell .topbar{position:relative;flex:0 0 auto;z-index:80;overflow:visible}
.app-shell .content{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;scroll-behavior:auto}
.app-shell .content>*{max-width:100%;min-width:0}
.settings-grid,.settings-nav,.settings-form{min-width:0;max-width:100%}
.settings-form,.settings-status-list{overflow-wrap:anywhere;word-break:break-word}
.page-actions,.view-tabs,.passbook-tabs,.settings-nav,.guest-account-tabs,.reference-balance-tabs,.calendar-wrap,.kanban,.calendar-legend,.toolbar,.cashfree-tabs,.ops-day-tabs,.table-wrap,.property-nav{
 overflow-x:auto;overflow-y:hidden;overflow-anchor:none;overscroll-behavior-x:contain;scroll-behavior:auto;scroll-snap-type:none;-webkit-overflow-scrolling:touch
}
body.overlay-open,body.nav-open{overflow:hidden}
@media print{
 html:has(.app-shell),body:has(.app-shell),.app-shell,.app-shell .workspace,.app-shell .content{
  height:auto!important;max-height:none!important;overflow:visible!important
 }
 .app-shell .topbar,.app-shell .mobile-dock,.app-shell .sidebar-close{display:none!important}
}
