/**
 * Authoritative sidebar layout — loads last among sidebar stylesheets.
 * Uses CSS grid so nav items fill the middle and footer stays pinned at the bottom.
 */

html body aside#navigation-sidebar.nav-sidebar {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  grid-template-columns: 1fr !important;
  overflow: hidden !important;
  height: 100vh !important;
  max-height: 100vh !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
}

html body aside#navigation-sidebar .logo-container {
  grid-row: 1 !important;
  flex: none !important;
  padding: 0.625rem 0.75rem !important;
  margin-bottom: 0 !important;
  min-height: 48px !important;
}

html body aside#navigation-sidebar .nav-main {
  grid-row: 2 !important;
  flex: none !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: none !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Neutralise legacy nav height hacks */
html body aside#navigation-sidebar > nav,
html body aside#navigation-sidebar > .nav-main {
  height: 100% !important;
  margin-bottom: 0 !important;
}

html body aside#navigation-sidebar .nav-list {
  display: grid !important;
  grid-template-rows: repeat(6, minmax(0, 1fr)) !important;
  flex: none !important;
  height: 100% !important;
  min-height: 0 !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-content: stretch !important;
}

html body aside#navigation-sidebar .nav-list-item {
  display: flex !important;
  flex: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  height: 100% !important;
}

html body aside#navigation-sidebar .nav-list-item > a {
  display: flex !important;
  flex: 1 1 auto !important;
  height: 100% !important;
  min-height: 0 !important;
  width: 100% !important;
}

html body aside#navigation-sidebar .nav-list-item .nav-item {
  flex: 1 1 auto !important;
  width: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  display: flex !important;
  align-items: center !important;
}

html body aside#navigation-sidebar .nav-sidebar-footer {
  grid-row: 3 !important;
  display: block !important;
  flex: none !important;
  flex-shrink: 0 !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 20 !important;
  padding: 0.5rem 0.375rem !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

html body aside#navigation-sidebar .nav-footer-profile,
html body aside#navigation-sidebar .nav-footer-logout {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: visible !important;
}

html body aside#navigation-sidebar .nav-footer-logout {
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  border: 1px solid transparent !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  justify-content: flex-start !important;
}

html body aside#navigation-sidebar.collapsed .nav-footer-logout,
html body aside#navigation-sidebar.collapsed .nav-footer-profile-inner {
  justify-content: center !important;
}

/* Footer and logo must not be clipped by legacy overflow rules */
html body aside#navigation-sidebar > .logo-container,
html body aside#navigation-sidebar > .nav-sidebar-footer {
  overflow: visible !important;
  max-height: none !important;
}
