/* /Layout/MainLayout.razor.rz.scp.css */
.footer[b-et6fepf2nn] {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.justify-end[b-et6fepf2nn] {
  justify-content: flex-end;
}

.layout-root[b-et6fepf2nn] {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* MudLayout is a component; use ::deep to reach its rendered root element. */
.layout-root[b-et6fepf2nn]  .layout-main {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.layout-root[b-et6fepf2nn]  .mudblazor-main-content {
  display: flex;
  flex-direction: column;
  /*
    MudAppBar is Fixed, so page content would otherwise render underneath it.
    Use padding-top to offset content while keeping the footer aligned to the viewport bottom.
  */
  box-sizing: border-box;
  /*
    Give the main content the viewport height so the footer (margin-top: auto) sits at the
    bottom of short pages. border-box keeps the app bar padding inside that height.
    MudDrawerContainer renders a plain div without a class, so the height must live here.
  */
  min-height: 100vh;
  padding-top: var(--mud-appbar-height, 64px);
}

/* MudDrawer also needs an offset when the app bar is fixed (otherwise it sits under the header). */
.layout-root[b-et6fepf2nn]  .mud-drawer {
  /*
    MudDrawer is configured as Fixed in MainLayout.
    Avoid margin-based offsets (they can create a visible bottom gap).
    Use explicit top/bottom sizing against the viewport.
  */
  top: var(--mud-appbar-height, 64px);
  bottom: 0;
  height: auto;
  margin-top: 0;
}

/*
  When MudDrawer is Fixed, MudBlazor renders it with fixed positioning.
  Using margin-top can reduce the effective height and create a visible bottom gap.
  Prefer explicit top/height sizing against the viewport.
*/
.layout-root[b-et6fepf2nn]  .mud-drawer.mud-drawer-fixed {
  top: var(--mud-appbar-height, 64px);
  bottom: 0;
  height: auto;
  margin-top: 0;
}

.layout-root[b-et6fepf2nn]  .mud-drawer .mud-drawer-content {
  height: 100%;
}

.layout-body[b-et6fepf2nn] {
  flex: 1 1 auto;
  min-height: 0;
}

.layout-root[b-et6fepf2nn]  .layout-footer {
  width: 100%;
  background-color: var(--mud-palette-background);
  z-index: 10;
  border-top: 1px solid var(--mud-palette-lines-default);
  padding-bottom: env(safe-area-inset-bottom);
  margin-top: auto;
}
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-z7n8kjtjbt] {
  background-color: rgba(255, 255, 255, 0.1);
}

.top-row[b-z7n8kjtjbt] {
  min-height: 3.5rem;
  background-color: rgba(0, 0, 0, 0.4);
}

.navbar-brand[b-z7n8kjtjbt] {
  font-size: 1.1rem;
}

.bi[b-z7n8kjtjbt] {
  display: inline-block;
  position: relative;
  width: 1.25rem;
  height: 1.25rem;
  margin-right: 0.75rem;
  top: -1px;
  background-size: cover;
}

.bi-house-door-fill-nav-menu[b-z7n8kjtjbt] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-z7n8kjtjbt] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-z7n8kjtjbt] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-z7n8kjtjbt] {
  font-size: 0.9rem;
  padding-bottom: 0.5rem;
}

.nav-item:first-of-type[b-z7n8kjtjbt] {
  padding-top: 1rem;
}

.nav-item:last-of-type[b-z7n8kjtjbt] {
  padding-bottom: 1rem;
}

.nav-item[b-z7n8kjtjbt]  a {
  color: #d7d7d7;
  border-radius: 4px;
  height: 3rem;
  display: flex;
  align-items: center;
  line-height: 3rem;
}

.nav-item[b-z7n8kjtjbt]  a.active {
  background-color: rgba(255, 255, 255, 0.37);
  color: white;
}

.nav-item[b-z7n8kjtjbt]  a:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: white;
}

@media (min-width: 641px) {
  .navbar-toggler[b-z7n8kjtjbt] {
    display: none;
  }

  .collapse[b-z7n8kjtjbt] {
    /* Never collapse the sidebar for wide screens */
    display: block;
  }

  .nav-scrollable[b-z7n8kjtjbt] {
    /* Allow sidebar to scroll for tall menus */
    height: calc(100vh - 3.5rem);
    overflow-y: auto;
  }
}

/* MudBlazor NavMenu styling (active/hover state). */
[b-z7n8kjtjbt] a.mud-nav-link {
  border-radius: 4px;
  min-height: 3rem;
  display: flex;
  align-items: center;
  line-height: 3rem;
  /* Fill available row width (minus outer margin) so active/hover bg is uniform. */
  width: calc(100% - 16px);
  box-sizing: border-box;
  margin: 4px 8px;
  white-space: nowrap;
  overflow: hidden;
}

/* Ensure text itself doesn't wrap; truncate with ellipsis. */
[b-z7n8kjtjbt] a.mud-nav-link .mud-nav-link-text {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

[b-z7n8kjtjbt] a.mud-nav-link:hover {
  background-color: var(
    --mud-palette-action-default-hover,
    rgba(0, 0, 0, 0.06)
  );
}

/* "Selected" grey highlight */
[b-z7n8kjtjbt] a.mud-nav-link.mud-nav-link-active,
[b-z7n8kjtjbt] a.mud-nav-link-active,
[b-z7n8kjtjbt] a.mud-nav-link.active {
  background-color: var(--mud-palette-action-default, rgba(0, 0, 0, 0.12));
}
