.mobile-menu-toggle,.mobile-menu-overlay,.mobile-sidebar-head,.mobile-menu-rail-close{display:none}
@media(max-width:800px){
  :root{--mobile-sidebar-width:min(88vw,360px)}
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-menu-open{overflow:hidden;touch-action:none}
  .app-shell{display:block!important;min-width:0!important;width:100%!important}
  .app-shell.hidden{display:none!important}
  .mobile-menu-toggle{display:flex;position:fixed;z-index:132;left:14px;top:max(14px,env(safe-area-inset-top));width:46px;height:46px;border:0;border-radius:14px;background:linear-gradient(135deg,#0b6b4f,#0f8a65);box-shadow:0 12px 28px rgba(4,56,42,.3);align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .18s ease,transform .18s ease}
  .mobile-menu-toggle span{display:block;width:22px;height:2px;border-radius:3px;background:#fff}
  body.mobile-menu-open .mobile-menu-toggle{opacity:0;pointer-events:none;transform:translateX(-12px)}
  .mobile-menu-overlay{display:block;position:fixed;z-index:120;inset:0;background:rgba(2,18,14,.62);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  body.mobile-menu-open .mobile-menu-overlay{opacity:1;visibility:visible;pointer-events:auto}
  #portalSidebar.sidebar{display:flex!important;position:fixed!important;z-index:125!important;top:0!important;right:auto!important;bottom:0!important;left:0!important;width:var(--mobile-sidebar-width)!important;max-width:none!important;min-width:0!important;height:100dvh!important;margin:0!important;padding:calc(12px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom))!important;gap:12px!important;flex-direction:column!important;align-items:stretch!important;transform:translate3d(-102%,0,0)!important;visibility:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1),visibility 0s linear .25s!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;touch-action:pan-y;background:linear-gradient(165deg,#073f31,#0a5a43)!important;box-shadow:20px 0 55px rgba(0,0,0,.3)!important;-webkit-overflow-scrolling:touch}
  body.mobile-menu-open #portalSidebar.sidebar{transform:translate3d(0,0,0)!important;visibility:visible;transition-delay:0s!important}
  #portalSidebar>*{max-width:100%!important}
  .mobile-sidebar-head{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:0 2px 5px;color:#fff;position:sticky;top:0;z-index:5;background:linear-gradient(165deg,#073f31 70%,rgba(7,63,49,.92))}
  .mobile-sidebar-head strong{font-size:18px;line-height:1.2}
  .mobile-sidebar-head button{width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.09);color:#fff;font-size:28px;line-height:1;cursor:pointer}
  .mobile-menu-rail-close{display:flex;position:fixed;z-index:130;top:50%;left:var(--mobile-sidebar-width);width:38px;height:68px;padding:0;border:0;border-radius:0 18px 18px 0;background:#0b7758;color:#fff;align-items:center;justify-content:center;font-size:32px;box-shadow:8px 5px 22px rgba(0,0,0,.24);transform:translate(-110%,-50%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .25s ease,opacity .18s ease,visibility .18s ease;cursor:pointer}
  body.mobile-menu-open .mobile-menu-rail-close{transform:translate(0,-50%);opacity:1;visibility:visible;pointer-events:auto}
  #portalSidebar .brand{display:flex!important;width:100%!important;min-width:0!important;padding:2px 4px 12px!important;gap:12px!important;align-items:center!important}
  #portalSidebar .brand>div:last-child{display:block!important;min-width:0!important;overflow:hidden!important}
  #portalSidebar .brand strong,#portalSidebar .brand span{display:block!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #portalSidebar nav.nav-groups{display:flex!important;width:100%!important;min-width:0!important;overflow:visible!important;gap:8px!important;flex:0 0 auto!important;flex-direction:column!important}
  #portalSidebar nav.nav-groups details{display:block!important;width:100%!important;min-width:0!important;margin:0!important;overflow:hidden!important}
  #portalSidebar nav.nav-groups summary{display:block!important;width:100%!important;min-width:0!important;padding:11px 12px!important;white-space:normal!important}
  #portalSidebar nav.nav-groups details>div{display:grid!important;width:100%!important;min-width:0!important}
  #portalSidebar nav.nav-groups button{display:flex!important;align-items:center!important;gap:11px!important;min-width:0!important;width:calc(100% - 14px)!important;max-width:calc(100% - 14px)!important;margin:3px 7px!important;text-align:left!important;padding:12px!important;font-size:14px!important;white-space:normal!important;overflow:hidden!important}
  #portalSidebar nav.nav-groups button b{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 24px!important;width:24px!important;font-size:20px!important}
  #portalSidebar nav.nav-groups button span{display:block!important;min-width:0!important;font-size:14px!important;line-height:1.35!important;margin:0!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #portalSidebar>#installPwa{display:flex!important;width:100%!important;flex:0 0 auto!important;font-size:14px!important}
  #portalSidebar>#installPwa.hidden{display:none!important}
  #portalSidebar>#logoutBtn{display:flex!important;position:sticky;bottom:0;z-index:4;width:100%!important;min-height:48px!important;margin-top:8px!important;flex:0 0 auto!important;justify-content:center!important;gap:9px!important;border-color:rgba(255,255,255,.25)!important;background:#7f2f2b!important;color:#fff!important;font-size:15px!important;box-shadow:0 -12px 24px rgba(7,63,49,.42)!important}
  #portalSidebar>#logoutBtn:before{content:"↪"!important;font-size:19px!important;line-height:1!important}
  main{display:block!important;width:100%!important;min-width:0!important;margin:0!important;padding:0 13px 32px!important}
  .topbar{min-height:78px!important;padding:8px 0 8px 58px!important;position:relative;z-index:1}
  .topbar h2{font-size:21px!important}
  .topbar p{font-size:11px!important;max-width:48vw}
  .preview-btn{padding:9px 10px!important;font-size:11px!important;white-space:nowrap}
}
@media(max-width:420px){
  :root{--mobile-sidebar-width:calc(100vw - 48px)}
  .topbar{padding-left:56px!important;gap:8px!important}
  .topbar p{display:none}
}
@media(min-width:801px){
  body.mobile-menu-open{overflow:auto}
  #portalSidebar.sidebar{transform:none!important;visibility:visible!important}
}
@media(prefers-reduced-motion:reduce){
  #portalSidebar.sidebar,.mobile-menu-overlay,.mobile-menu-toggle,.mobile-menu-rail-close{transition:none!important}
}
