/* Shared viewport layout. Loaded by all seven member destinations.
   Route markup, active state and the existing mobile palette remain shared. */
html:root body .member-nav{
 position:fixed;left:0;right:0;bottom:0;transform:none;width:100%;margin:0;
}
html:root body .member-nav-page-content{padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
html:root body .miv9 main{padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
html:root body .app.member-nav-page-content{padding-bottom:0}
@media (min-width:600px) and (max-width:959px){
 html:root body .stage,html:root body :is(.mrv11,.miv9) .stage{padding:0}
 html:root body .app,html:root body :is(.mrv11,.miv9) .app{width:100%;height:100dvh;min-height:0;border-radius:0;box-shadow:none}
}
@media (min-width:960px){
 html:has(.member-nav){--member-sidebar-width:216px;--member-nav-height:0px;--oh-nav:0px}
 html:has(.member-nav) body{padding:0 0 0 var(--member-sidebar-width);min-height:100dvh;box-sizing:border-box}
 html:root body .member-nav{
  left:0;right:auto;top:0;bottom:0;width:var(--member-sidebar-width);height:100dvh;
  padding:16px 12px;display:flex;border-top:0;border-right:1px solid #E9E1D7;align-items:stretch;
 }
 html:root body .member-nav-arrow{display:none}
 html:root body .member-nav-viewport{display:flex;flex-direction:column;gap:8px;overflow-x:hidden;overflow-y:auto;width:100%;cursor:default;touch-action:pan-y}
 html:root body .member-nav-link{flex:0 0 auto;min-width:0;min-height:52px;width:100%;padding:12px;gap:12px;flex-direction:row;justify-content:flex-start;font-size:14px;touch-action:manipulation}
 html:root body .member-nav-label{min-height:0;text-align:left;justify-content:flex-start;overflow-wrap:anywhere}
 /* Officer labels match My Hub; keep the shared phone navigation unchanged. */
 html:root body:has(.oh-main)>.member-nav .member-nav-label{font-size:16px;font-weight:500}
 html:root body .member-nav-link[aria-current="page"]:after{width:3px;height:24px;left:3px;bottom:auto}
 html:root body .stage,html:root body :is(.mrv11,.miv9) .stage{padding:0;min-height:100dvh}
 html:root body .app,html:root body :is(.mrv11,.miv9) .app{width:100%;max-width:1200px;height:100dvh;min-height:0;border-radius:0;box-shadow:none;--member-nav-height:0px}
 html:root body .corner-actions{bottom:24px}
 html:root body .app-frame{max-width:1200px;border:0;border-radius:0}
 html:root body :is(.mrv11,.miv9){--member-nav-height:0px;width:100%;max-width:none;margin:0;padding:0}
 html:root body .app[data-nav-host="hub"]>main{height:calc(100% - 76px);padding:24px 24px 96px;overflow-y:auto}
 html:root body .app[data-nav-host="roles"]>main{height:calc(100% - 64px);padding:24px;overflow-y:auto}
 html:root body #timerApp>main{height:calc(100% - 67px);padding:16px 24px}
 html:root body .miv9 main{padding:16px 24px 24px}
 html:root body .member-nav-page-content{padding-bottom:24px}
 html:root body main#app:not(.mrv11):not(.miv9){max-width:1200px}
 html:root body :is(.upcoming-shell,.video-library-shell){max-width:1200px}
 html:root body .oh-main{padding-bottom:30px}
 html:root body .save-bar{left:var(--member-sidebar-width);right:0;transform:none;width:auto;bottom:0}
 html:root body .video-player{left:var(--member-sidebar-width);right:0;transform:none;width:auto;max-width:1200px;bottom:0}
 html:root body .miv9 .agenda-row{grid-template-columns:60px minmax(0,1fr) minmax(160px,25%) 26px}
 html:root body .miv9 .agenda-body{overflow-x:auto}
}
