/* Shared MenuGo bottom navigation contract. Load after page-specific CSS. */
:root{--menugo-nav-height:74px;--menugo-nav-surface:#f4faf8}
[data-theme="dark"]{--menugo-nav-surface:#0b1210}
html.menugo-is-loading,html.menugo-is-loading body{cursor:progress!important}
.menugo-route-loader{
  position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:20px;
  background:color-mix(in srgb,var(--menugo-nav-surface) 72%,transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s ease
}
.menugo-route-loader.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.menugo-route-loader__card{
  min-width:min(280px,82vw);padding:14px 16px;border:1px solid var(--line,var(--mg-line,rgba(20,52,37,.11)));
  border-radius:16px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;
  color:var(--ink,var(--mg-ink,#17231e));background:var(--menugo-nav-surface);box-shadow:0 14px 34px rgba(9,28,20,.12)
}
[data-theme="dark"] .menugo-route-loader__card{color:#f3f7f5;box-shadow:0 14px 34px rgba(0,0,0,.3)}
.menugo-route-loader__spinner{
  width:38px;height:38px;border:3px solid color-mix(in srgb,var(--brand,var(--mg-accent,#21b89a)) 20%,transparent);
  border-top-color:var(--brand,var(--mg-accent,#21b89a));border-radius:50%;animation:menugo-route-spin .72s linear infinite
}
.menugo-route-loader__copy{min-width:0;display:grid;gap:3px}
.menugo-route-loader__copy b{font-size:.78rem;line-height:1.6}
.menugo-route-loader__copy small{color:var(--muted,var(--mg-muted,#6c7973));font-size:.62rem;line-height:1.6}
@keyframes menugo-route-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.menugo-route-loader,.menugo-route-loader__spinner{transition:none;animation-duration:1.4s}}
body>.mm-nav{
  --mm-nav-height:var(--menugo-nav-height)!important;position:fixed!important;inset:auto 0 0 0!important;z-index:90!important;
  width:100%!important;max-width:none!important;height:var(--menugo-nav-height)!important;
  min-height:var(--menugo-nav-height)!important;max-height:var(--menugo-nav-height)!important;
  margin:0!important;padding:4px max(8px,env(safe-area-inset-right,0px)) 4px max(8px,env(safe-area-inset-left,0px))!important;
  border:0!important;border-top:1px solid var(--line,var(--mg-line,rgba(20,52,37,.11)))!important;border-radius:0!important;
  box-sizing:border-box!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;
  align-items:stretch!important;gap:0!important;background:var(--menugo-nav-surface)!important;
  box-shadow:none!important;transform:none!important
}
body>.mm-nav>button{
  position:relative!important;width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
  display:grid!important;place-items:center!important;align-content:center!important;
  color:var(--muted,var(--mg-muted,#6c7973))!important;background:transparent!important;
  box-shadow:none!important;filter:none!important;-webkit-appearance:none!important;appearance:none!important
}
body>.mm-nav>button>i{
  width:48px!important;height:48px!important;margin:0!important;display:grid!important;place-items:center!important;
  color:inherit!important;font-size:1.7rem!important;line-height:1!important;filter:none!important;transform:none!important
}
body>.mm-nav>button>span{display:none!important}
body>.mm-nav>button.active,body>.mm-nav>button.active>i{color:var(--brand,var(--mg-accent,#21b89a))!important}
body>.mm-nav>button:active{transform:scale(.96)!important}
@media(max-width:759px){
  :root{--nav:var(--menugo-nav-height)!important}
  html:not(.menugo-ios) body>.mm-nav{
    bottom:15px!important;
    padding:4px max(8px,env(safe-area-inset-right,0px)) 4px max(8px,env(safe-area-inset-left,0px))!important
  }
  html:not(.menugo-ios) body>.mm-nav::after{
    content:"";position:absolute;top:100%;right:0;left:0;height:15px;
    background:var(--menugo-nav-surface);pointer-events:none
  }
  html:not(.menugo-ios) .mm-main,
  html:not(.menugo-ios) .mg-entry-main{
    bottom:calc(var(--menugo-nav-height) + 15px)!important
  }
}
@supports (-webkit-touch-callout:none){
  @media(max-width:759px){
    html.menugo-ios{--safe-bottom:0px!important}
    html.menugo-ios body>.mm-nav{
      inset:auto 0 0 0!important;height:var(--menugo-nav-height)!important;
      min-height:var(--menugo-nav-height)!important;max-height:var(--menugo-nav-height)!important;
      padding:4px max(8px,env(safe-area-inset-right,0px)) 4px max(8px,env(safe-area-inset-left,0px))!important
    }
  }
}
