/* Menu ownership and viewport bounds are shared across all header hosts. */
.nav-drawer {
  box-sizing: border-box;
  height: 100dvh;
  max-height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  /* Keep the last control above the top shell's fixed 32px copyright bar. */
  padding-bottom: calc(50px + env(safe-area-inset-bottom));
}
:root[data-lang="jp"] .vfp-global-menu [data-menu-lang="en"],
:root[data-lang="en"] .vfp-global-menu [data-menu-lang="jp"] { display: none !important; }
.notes-shell-nav.vfp-global-menu { box-sizing: border-box; overscroll-behavior: contain; }
.notes-shell-nav.vfp-global-menu .first-prep-trigger-icon,
.notes-shell-nav.vfp-global-menu .first-prep-trigger-label small,
.notes-shell-nav.vfp-global-menu .vfp-site-icon-guide-plus { display: none; }
.notes-shell-nav.vfp-global-menu strong { font: inherit; }
.notes-shell-nav.vfp-global-menu .is-current { color: #5bc3f5; }

/* Grouped menu: each purpose is a separated block with a clear accent heading. */
.vfp-global-menu .vfp-menu-group + .vfp-menu-group {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
:root[data-theme="light"] .vfp-global-menu .vfp-menu-group + .vfp-menu-group { border-top-color: rgba(0, 0, 0, .1); }
.vfp-global-menu .vfp-menu-heading {
  margin: 0 0 4px;
  padding: 0 14px;
  text-align: left;
  color: #5bc3f5;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
}
:root[data-theme="light"] .vfp-global-menu .vfp-menu-heading { color: #1b87b8; }
.nav-drawer .vfp-global-menu .vfp-link,
.nav-drawer.vfp-global-menu .vfp-link {
  padding: 7px 14px 7px 22px !important;
  margin-bottom: 0;
}
.nav-drawer .vfp-global-menu .vfp-link strong,
.nav-drawer.vfp-global-menu .vfp-link strong { font-size: 15px; margin: 0; }
.vfp-global-menu .vfp-link.is-current { color: #5bc3f5; }
.nav-drawer .vfp-global-menu #first-prep-trigger,
.nav-drawer.vfp-global-menu #first-prep-trigger { margin: 2px 0 2px 8px; width: calc(100% - 8px); padding-left: 14px !important; }
.notes-shell-nav.vfp-global-menu .vfp-menu-heading { padding: 0 12px; }
.notes-shell-nav.vfp-global-menu .vfp-link { padding: 8px 12px 8px 20px; }

/* Desktop: keep the five groups and Close inside the usable screen height. */
@media (min-width: 900px) and (min-height: 520px) {
  .nav-drawer,
  .notes-shell-nav.vfp-global-menu {
    --vfp-menu-row-padding: clamp(1px, calc((100dvh - 560px) / 20), 10px);
  }
  .nav-drawer {
    padding-top: 12px;
  }
  .nav-drawer .vfp-global-menu .vfp-link,
  .notes-shell-nav.vfp-global-menu .vfp-link {
    padding-block: var(--vfp-menu-row-padding) !important;
    line-height: 1.25;
  }
  .nav-drawer .vfp-global-menu .vfp-link strong {
    font-size: 15px;
    line-height: 1.25;
  }
  .nav-drawer .vfp-menu-group + .vfp-menu-group,
  .notes-shell-nav.vfp-global-menu .vfp-menu-group + .vfp-menu-group {
    margin-top: 3px;
    padding-top: 3px;
  }
  .nav-drawer .vfp-menu-heading,
  .notes-shell-nav.vfp-global-menu .vfp-menu-heading {
    margin-bottom: 2px;
    line-height: 1.25;
  }
  .nav-drawer .drawer-actions { margin-top: 4px; }
  .nav-drawer .drawer-actions .vfp-btn {
    min-height: 28px;
    padding: 4px 12px;
    line-height: 20px;
  }
}
