
:root {
  --fm-nav-width: 264px;
  --fm-nav-bg: rgba(8,8,8,.98);
  --fm-nav-line: rgba(255,255,255,.09);
  --fm-nav-red: #ff1717;
}

/* Shared desktop navigation */
body.app-has-sidebar {
  padding-left: var(--fm-nav-width);
}

.fm-shared-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1060;
  width: var(--fm-nav-width);
  padding: 1.25rem 1rem;
  overflow-y: auto;
  background: var(--fm-nav-bg);
  border-right: 1px solid var(--fm-nav-line);
  transition: transform .25s ease;
}

.fm-sidebar-brand {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .35rem .55rem 1.3rem;
  color: white;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 1.55rem;
  font-style: italic;
  font-weight: 900;
  text-decoration: none;
}

.fm-sidebar-brand span span { color: var(--fm-nav-red); }

.fm-sidebar-label {
  padding: .7rem .75rem .45rem;
  color: #5f5f5f;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fm-sidebar-nav {
  display: grid;
  gap: .3rem;
}

.fm-sidebar-link {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 46px;
  padding: .75rem .8rem;
  border-radius: .55rem;
  color: #989898;
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
  transition: .2s ease;
}

.fm-sidebar-link i {
  width: 20px;
  color: #686868;
  text-align: center;
}

.fm-sidebar-link:hover,
.fm-sidebar-link.active {
  color: white;
  background: rgba(255,255,255,.055);
}

.fm-sidebar-link.active {
  background: rgba(255,23,23,.11);
  box-shadow: inset 3px 0 0 var(--fm-nav-red);
}

.fm-sidebar-link.active i { color: var(--fm-nav-red); }

.fm-sidebar-footer {
  margin-top: 1.5rem;
  padding: 1rem;
  border: 1px solid rgba(255,23,23,.24);
  border-radius: .8rem;
  background: linear-gradient(145deg, rgba(255,23,23,.1), rgba(255,255,255,.02));
}

.fm-sidebar-footer strong {
  display: block;
  margin-bottom: .25rem;
}

.fm-sidebar-footer p {
  margin: 0 0 .75rem;
  color: #888;
  font-size: .74rem;
}

/* Desktop page alignment */
body.app-has-sidebar > .app-topbar,
body.app-has-sidebar > .auth-nav {
  left: var(--fm-nav-width);
  width: calc(100% - var(--fm-nav-width));
}

body.app-has-sidebar .app-topbar {
  position: sticky;
}

/* Mobile top controls */
.fm-mobile-nav-button {
  display: none;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--fm-nav-line);
  border-radius: .6rem;
  background: #101010;
  color: white;
  font-size: 1.1rem;
}

.fm-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 1055;
  display: none;
  background: rgba(0,0,0,.68);
  backdrop-filter: blur(3px);
}

.fm-nav-overlay.show { display: block; }

.fm-sidebar-mobile-header {
  display: none;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .5rem;
}

.fm-sidebar-close {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--fm-nav-line);
  border-radius: .5rem;
  background: #111;
  color: white;
}

/* Convert original dashboard sidebar into same mobile drawer */
.dashboard-sidebar .fm-sidebar-mobile-header {
  margin: 0 0 .5rem;
}

@media (max-width: 991.98px) {
  body.app-has-sidebar {
    padding-left: 0;
  }

  body.app-has-sidebar > .app-topbar,
  body.app-has-sidebar > .auth-nav {
    left: 0;
    width: 100%;
  }

  .fm-mobile-nav-button {
    display: grid;
  }

  .fm-shared-sidebar,
  .dashboard-sidebar {
    display: block !important;
    width: min(86vw, 310px) !important;
    transform: translateX(-105%);
    box-shadow: 24px 0 70px rgba(0,0,0,.52);
  }

  .fm-shared-sidebar.open,
  .dashboard-sidebar.open {
    transform: translateX(0);
  }

  .fm-sidebar-mobile-header {
    display: flex;
  }

  .dashboard-sidebar {
    z-index: 1060;
    transition: transform .25s ease;
  }

  .dashboard-main {
    margin-left: 0 !important;
  }

  body.fm-nav-open {
    overflow: hidden;
  }

  /* Make room for the hamburger in top bars */
  .app-topbar .container,
  .dashboard-topbar {
    position: relative;
  }

  .app-topbar .container {
    justify-content: flex-start !important;
  }

  .app-topbar .container > .app-brand {
    margin-right: auto;
  }

  .dashboard-topbar .mobile-brand {
    margin-right: auto;
  }
}

@media (max-width: 575.98px) {
  .fm-shared-sidebar,
  .dashboard-sidebar {
    width: min(90vw, 300px) !important;
  }

  .fm-mobile-nav-button {
    width: 42px;
    height: 42px;
  }
}
