/*
 * Phase 71J.33 — Universal page navigation
 * Shared browser-style Back / Forward / Refresh / Home controls.
 */

:root {
  --imms-page-nav-height: 54px;
}

#immsGlobalNavigation {
  --imms-nav-bg: rgba(248, 250, 252, 0.94);
  --imms-nav-surface: rgba(255, 255, 255, 0.92);
  --imms-nav-border: rgba(148, 163, 184, 0.34);
  --imms-nav-icon: #334155;
  --imms-nav-icon-hover: #0f172a;
  --imms-nav-disabled: #cbd5e1;
  --imms-nav-focus: rgba(37, 99, 235, 0.30);
  --imms-nav-accent: #2563eb;
  box-sizing: border-box !important;
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 2147483000 !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: var(--imms-page-nav-height) !important;
  margin: 0 !important;
  padding: 6px max(10px, env(safe-area-inset-left)) !important;
  display: flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  align-self: stretch !important;
  grid-column: 1 / -1 !important;
  color: var(--imms-nav-icon) !important;
  background: var(--imms-nav-bg) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--imms-nav-border) !important;
  box-shadow: 0 5px 18px rgba(15, 23, 42, 0.08) !important;
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  backdrop-filter: blur(16px) saturate(150%);
  isolation: isolate;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  line-height: 1 !important;
}

#immsGlobalNavigation .imms-page-nav__controls {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 3px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 3px !important;
  border: 1px solid var(--imms-nav-border) !important;
  border-radius: 14px !important;
  background: var(--imms-nav-surface) !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06) !important;
}

#immsGlobalNavigation .imms-page-nav__button {
  appearance: none !important;
  -webkit-appearance: none !important;
  box-sizing: border-box !important;
  position: relative !important;
  width: 38px !important;
  min-width: 38px !important;
  height: 38px !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 38px !important;
  border: 1px solid transparent !important;
  border-radius: 11px !important;
  background: transparent !important;
  color: var(--imms-nav-icon) !important;
  box-shadow: none !important;
  font: inherit !important;
  line-height: 1 !important;
  cursor: pointer !important;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, transform 120ms ease, box-shadow 150ms ease !important;
}

#immsGlobalNavigation .imms-page-nav__button svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  overflow: visible !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.9 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  pointer-events: none !important;
}

#immsGlobalNavigation .imms-page-nav__button:hover:not(:disabled) {
  color: var(--imms-nav-icon-hover) !important;
  background: rgba(148, 163, 184, 0.14) !important;
  border-color: rgba(148, 163, 184, 0.20) !important;
}

#immsGlobalNavigation .imms-page-nav__button:active:not(:disabled) {
  transform: scale(0.93) !important;
  background: rgba(148, 163, 184, 0.22) !important;
}

#immsGlobalNavigation .imms-page-nav__button:focus-visible {
  outline: 0 !important;
  border-color: var(--imms-nav-accent) !important;
  box-shadow: 0 0 0 3px var(--imms-nav-focus) !important;
}

#immsGlobalNavigation .imms-page-nav__button:disabled,
#immsGlobalNavigation .imms-page-nav__button[aria-disabled="true"] {
  color: var(--imms-nav-disabled) !important;
  background: transparent !important;
  border-color: transparent !important;
  opacity: 1 !important;
  filter: none !important;
  cursor: default !important;
  pointer-events: none !important;
  transform: none !important;
}

#immsGlobalNavigation .imms-page-nav__button--home {
  margin-left: 3px !important;
}

#immsGlobalNavigation .imms-page-nav__button--home::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--imms-nav-border);
}

#immsGlobalNavigation .imms-page-nav__button--home:hover:not(:disabled) {
  color: var(--imms-nav-accent) !important;
  background: rgba(37, 99, 235, 0.10) !important;
  border-color: rgba(37, 99, 235, 0.18) !important;
}

#immsGlobalNavigation .imms-page-nav__button.is-busy svg {
  animation: imms-page-nav-spin 700ms linear infinite;
}

#immsGlobalNavigation[data-tone="dark"] {
  --imms-nav-bg: rgba(7, 15, 28, 0.94);
  --imms-nav-surface: rgba(17, 28, 48, 0.92);
  --imms-nav-border: rgba(148, 163, 184, 0.22);
  --imms-nav-icon: #d7e0ec;
  --imms-nav-icon-hover: #ffffff;
  --imms-nav-disabled: #56657a;
  --imms-nav-focus: rgba(56, 189, 248, 0.30);
  --imms-nav-accent: #7dd3fc;
  box-shadow: 0 7px 22px rgba(0, 0, 0, 0.28) !important;
}

html[data-theme="dark"] #immsGlobalNavigation,
html[data-theme="cyber"] #immsGlobalNavigation,
html[data-theme-scope][data-theme="dark"] #immsGlobalNavigation {
  --imms-nav-bg: rgba(7, 15, 28, 0.94);
  --imms-nav-surface: rgba(17, 28, 48, 0.92);
  --imms-nav-border: rgba(148, 163, 184, 0.22);
  --imms-nav-icon: #d7e0ec;
  --imms-nav-icon-hover: #ffffff;
  --imms-nav-disabled: #56657a;
  --imms-nav-focus: rgba(56, 189, 248, 0.30);
  --imms-nav-accent: #7dd3fc;
}

/* Keep existing sticky application headers below the universal utility bar. */
body.imms-page-nav-ready .opm-top,
body.imms-page-nav-ready .supm-topbar,
body.imms-page-nav-ready .supm-entry-top,
body.imms-page-nav-ready .fm-topbar,
body.imms-page-nav-ready .sup-dashboard-topbar,
body.imms-page-nav-ready .topbar {
  top: var(--imms-page-nav-height) !important;
}

body.imms-page-nav-ready .ieo-sidebar,
body.imms-page-nav-ready .fm-sidebar,
body.imms-page-nav-ready .sup-sidebar,
body.imms-page-nav-ready #sidebar,
body.imms-page-nav-ready .md\:sticky.md\:top-0 {
  top: var(--imms-page-nav-height) !important;
  max-height: calc(100vh - var(--imms-page-nav-height)) !important;
}

/* Full-height shells keep their original viewport fit after the utility row is added. */
body.imms-page-nav-ready .app-shell,
body.imms-page-nav-ready .sup-dashboard-shell,
body.imms-page-nav-ready .fm-shell,
body.imms-page-nav-ready .ieo-shell,
body.imms-page-nav-ready .page-shell,
body.imms-page-nav-ready .auth-page,
body.imms-page-nav-ready .fm-auth-page,
body.imms-page-nav-ready .supm-login-shell {
  min-height: calc(100vh - var(--imms-page-nav-height)) !important;
}

@media (orientation: landscape) and (max-height: 620px) and (max-width: 1050px) {
  body.imms-page-nav-ready .app-shell,
  body.imms-page-nav-ready .sup-dashboard-shell,
  body.imms-page-nav-ready .fm-shell {
    height: calc(100vh - var(--imms-page-nav-height)) !important;
    min-height: calc(100vh - var(--imms-page-nav-height)) !important;
    max-height: calc(100vh - var(--imms-page-nav-height)) !important;
  }

  body.imms-page-nav-ready #sidebar,
  body.imms-page-nav-ready .app-shell > div:not(#sidebar),
  body.imms-page-nav-ready .sup-sidebar,
  body.imms-page-nav-ready .sup-dashboard-main,
  body.imms-page-nav-ready .fm-sidebar,
  body.imms-page-nav-ready .fm-main {
    height: calc(100vh - var(--imms-page-nav-height)) !important;
    max-height: calc(100vh - var(--imms-page-nav-height)) !important;
  }
}

/* Login pages that use a grid keep the navigation in a dedicated first row. */
body.ieo-login-body.imms-page-nav-ready {
  grid-template-rows: auto minmax(0, 1fr) !important;
}

body.ieo-login-body.imms-page-nav-ready > #immsGlobalNavigation {
  align-self: start !important;
  justify-self: stretch !important;
}

@keyframes imms-page-nav-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 480px) {
  :root { --imms-page-nav-height: 50px; }

  #immsGlobalNavigation {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  #immsGlobalNavigation .imms-page-nav__controls {
    padding: 2px !important;
    border-radius: 13px !important;
  }

  #immsGlobalNavigation .imms-page-nav__button {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    flex-basis: 36px !important;
    border-radius: 10px !important;
  }

  #immsGlobalNavigation .imms-page-nav__button svg {
    width: 19px !important;
    height: 19px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #immsGlobalNavigation .imms-page-nav__button {
    transition: none !important;
  }
}

@media print {
  #immsGlobalNavigation { display: none !important; }
}
