

.sidebar {
    position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  max-width: 280px;
  height: 100vh;
  z-index: calc(var(--z-fixed) + 10);
  
    background: var(--glass-bg-light);
  backdrop-filter: var(--glass-blur-lg) var(--glass-saturate);
  -webkit-backdrop-filter: var(--glass-blur-lg) var(--glass-saturate);
  border-right: var(--glass-border-medium);
  box-shadow: var(--glass-shadow-lg);
  
    will-change: transform;
  transform: translateX(-100%) translateZ(0);
  transition: transform var(--transition-base);
  
    overflow-y: auto;
  overscroll-behavior: contain;
  
    outline: none;
}

@supports not (backdrop-filter: blur(1px)) {
  .sidebar {
    background: var(--glass-bg-strong);
  }
}

.sidebar.sidebar--open {
  transform: translateX(0) translateZ(0);
}

.sidebar-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(31, 41, 55, 0.35);
  backdrop-filter: var(--glass-blur-sm) saturate(110%);
  -webkit-backdrop-filter: var(--glass-blur-sm) saturate(110%);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
  z-index: calc(var(--z-fixed) + 9);
}

@supports not (backdrop-filter: blur(1px)) {
  .sidebar-backdrop {
    background-color: rgba(31, 41, 55, 0.5);
  }
}

.sidebar-backdrop.sidebar-backdrop--active {
  opacity: 1;
  pointer-events: auto;
}

.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) var(--space-4);
  border-bottom: var(--glass-border-light);
  gap: var(--space-3);
  
  position: sticky;
  top: 0;
  z-index: 10;
  
    background: transparent;
  
    box-shadow: 0 2px 12px rgba(124, 58, 237, 0.06);
}

.sidebar-logo {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  text-decoration: none;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
}

.sidebar-logo__spotted {
  color: var(--color-violet-pastel);
  font-family: var(--font-pacifico);
  font-size: 1.15em;
  font-weight: 400;
  font-style: normal;
  transform: skewX(-10deg);
  display: inline-block;
}

.sidebar-logo__galvani {
  color: var(--color-dark-gray);
  font-family: var(--font-great-vibes);
  font-size: 1.2em;
  font-weight: 400;
}

.sidebar-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  border-radius: var(--radius-md);
  cursor: pointer;
  color: var(--text-secondary);
  transition: all var(--transition-base);
  flex-shrink: 0;
}

.sidebar-close-btn:hover {
  background: rgba(124, 58, 237, 0.12);
  color: var(--color-violet);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.sidebar-close-btn:active {
  transform: scale(0.95);
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  padding: var(--space-3) 0;
  gap: var(--space-1);
}

.sidebar-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: 0 var(--space-3);
}

.sidebar-divider {
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    rgba(124, 58, 237, 0.15) 50%,
    transparent
  );
  margin: var(--space-2) 0;
}

.sidebar-section-title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0 var(--space-3) var(--space-2);
  margin-top: var(--space-1);
}

.sidebar-link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
  text-decoration: none;
  cursor: pointer;
  background: transparent;
  border: none;
  transition: all var(--transition-base);
  white-space: nowrap;
  min-width: 0;
}

.sidebar-link:hover:not(.sidebar-logout-btn),
.sidebar-link:hover:not(.sidebar-login-btn) {
  background: rgba(124, 58, 237, 0.08);
  color: var(--color-violet);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.sidebar-link i {
  flex-shrink: 0;
  color: currentColor;
}

.sidebar-link span {
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
}

.sidebar-link.sidebar-link--active {
  background: rgba(196, 181, 253, 0.25);
  color: var(--color-violet);
  font-weight: var(--font-weight-bold);
  border-left: none;
  padding-left: var(--space-3);
  backdrop-filter: blur(8px) saturate(150%);
  -webkit-backdrop-filter: blur(8px) saturate(150%);
  box-shadow: 
    0 2px 8px rgba(124, 58, 237, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.sidebar-link.sidebar-link--active i {
  color: var(--color-violet);
}

.sidebar-logout-btn,
.sidebar-login-btn {
  color: var(--text-secondary);
}

.sidebar-logout-btn:hover,
.sidebar-login-btn:hover {
  background: rgba(220, 38, 38, 0.08);
  color: var(--color-error);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.sidebar-install-link {
  color: var(--color-violet);
  background: rgba(124, 58, 237, 0.08);
}

.sidebar-install-link:hover {
  background: rgba(124, 58, 237, 0.15);
  color: var(--color-violet);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.sidebar-install-link i {
  color: var(--color-violet);
}

.sidebar-toggle {
  position: fixed;
  top: var(--space-3);
  left: var(--space-3);
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  
    background: var(--glass-bg-medium);
  backdrop-filter: var(--glass-blur-md) var(--glass-saturate);
  -webkit-backdrop-filter: var(--glass-blur-md) var(--glass-saturate);
  border: var(--glass-border-medium);
  box-shadow: var(--glass-shadow-md);
  
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-violet);
  z-index: var(--z-sticky);
  transition: all var(--transition-base);
  padding: 0;
  min-width: unset;
  min-height: unset;
}

@supports not (backdrop-filter: blur(1px)) {
  .sidebar-toggle {
    background: var(--glass-bg-strong);
  }
}

.sidebar-toggle:hover {
  background: rgba(124, 58, 237, 0.15);
  transform: scale(1.05);
  box-shadow: var(--glass-shadow-lg);
  backdrop-filter: var(--glass-blur-lg) var(--glass-saturate-high);
  -webkit-backdrop-filter: var(--glass-blur-lg) var(--glass-saturate-high);
}

.sidebar-toggle:active {
  transform: scale(0.95);
}


.topbar {
  display: none;
}

.topbar-spacer {
  display: none;
}


@media (min-width: 768px) {
    .sidebar,
  .sidebar-backdrop,
  .sidebar-toggle {
    display: none !important;
  }

    .topbar {
    display: block;
    position: fixed;
    top: var(--space-4);
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - var(--space-8));
    max-width: 1200px;
    height: var(--navbar-height);
    
        background: var(--glass-bg-medium);
    backdrop-filter: var(--glass-blur-lg) var(--glass-saturate);
    -webkit-backdrop-filter: var(--glass-blur-lg) var(--glass-saturate);
    border-radius: var(--radius-full);
    border: var(--glass-border-light);
    box-shadow: var(--glass-shadow-lg);
    
    z-index: var(--z-fixed);
    padding: 0 var(--space-6);
  }
  
  @supports not (backdrop-filter: blur(1px)) {
    .topbar {
      background: var(--glass-bg-strong);
    }
  }

  .topbar-spacer {
    display: block;
    height: calc(var(--navbar-height) + var(--space-8));
  }

  .topbar-container {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    max-width: 100%;
    padding: 0;
  }

  .topbar-logo {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    text-decoration: none;
    white-space: nowrap;
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
  }

  .topbar-logo__spotted {
    color: var(--color-violet-pastel);
    font-family: var(--font-pacifico);
    font-size: 1.2em;
    font-weight: 400;
    font-style: normal;
    transform: skewX(-10deg);
    display: inline-block;
  }

  .topbar-logo__galvani {
    color: var(--color-dark-gray);
    font-family: var(--font-great-vibes);
    font-size: 1.25em;
    font-weight: 400;
  }

  .topbar-nav {
    display: flex;
    align-items: center;
    gap: var(--space-4);
  }

  .topbar-link {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--text-primary);
    text-decoration: none;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    transition: all var(--transition-base);
    cursor: pointer;
    background: transparent;
    border: none;
    position: relative;
  }

  .topbar-link:hover {
    color: var(--color-violet);
    background: rgba(124, 58, 237, 0.08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .topbar-link.topbar-link--active {
    color: var(--color-violet);
    font-weight: var(--font-weight-bold);
  }

  .topbar-link.topbar-link--active::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: var(--space-3);
    right: var(--space-3);
    height: 2px;
    background-color: var(--color-violet);
    border-radius: 1px;
  }

  .topbar-divider {
    width: 1px;
    height: 24px;
    background-color: rgba(124, 58, 237, 0.2);
  }

  #admin-links {
    display: flex !important;
  }
}


.sidebar::-webkit-scrollbar {
  width: 6px;
}

.sidebar::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar::-webkit-scrollbar-thumb {
  background: rgba(124, 58, 237, 0.2);
  border-radius: 3px;
}

.sidebar::-webkit-scrollbar-thumb:hover {
  background: rgba(124, 58, 237, 0.4);
}


.sidebar-link i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.sidebar-open {
  overflow: hidden;
}
