.sidebar-overlay {
  position: fixed;
  
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  
  opacity: 0;
  visibility: hidden;

  z-index: 998;
  background-color: rgba(0, 0, 0, 0.5);
  transition: all 0.3s ease;
}

.sidebar-overlay.active {
  opacity: 1;
  visibility: visible;
}

.sidebar {
  position: fixed;

  top: 0;
  left: -27.625rem;
  width: 27.625rem;
  height: 100%;

  z-index: 999;

  display: flex;
  flex-direction: column;
  justify-content: space-between;

  /* overflow-y: scroll !important;
  overscroll-behavior: contain; */
  background-color: var(--bg-secondary-white);
  box-shadow: 4px 0 20px rgba(0, 0, 0, 0.1);
  transition: left 0.3s ease;
}

.sidebar.active {
  left: 0;
}

.sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 1.5rem;
  border-bottom: 1px solid var(--border-color);
  
  background: linear-gradient(135deg, var(--bg-tertiary));
  color: var(--text-color-white);
}

.user-info {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.user-avatar {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 50px;
  height: 50px;

  border-radius: 50%;
  border: 1px solid var(--border-color-white);
  background-color: rgba(255, 255, 255, 0.2);
}

.user-avatar i {
  font-size: 1.5rem;
}

.user-details {
  flex: 1;
  min-width: 0;
}

.user-details h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
}

.user-details p {
  font-size: 0.9rem;
  opacity: 0.9;
}

.user-details p > a:hover {
  color: var(--text-color-gray-100);
}

.email-address {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  max-width: 180px;
}

.sidebar-close {
  background: none;
  border: none;
  color: var(--bg-secondary-white);
  padding: 0.5rem;
  border-radius: 50%;
  transition: background-color 0.3s ease;
}

.sidebar-close:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.sidebar-close i {
  font-size: 1.25rem;
}

.sidebar-nav {
  padding: 1.5rem 0;
  overflow-y: scroll !important;
  overscroll-behavior: contain;
  flex: 1;
  touch-action: pan-y;
}

.nav-section {
  margin-bottom: 2rem;
}

.nav-section h4 {
  padding: 0 1.5rem 0.75rem;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #666;
}

.nav-section ul {
  list-style: none;
}

.nav-section li {
  margin-bottom: 0.25rem;
}

.nav-section a {
  display: flex;
  align-items: center;

  gap: 1rem;
  padding: 0.75rem 1.5rem;

  text-decoration: none;
  color: var(--text-color-gray);
  
  border-left: 3px solid transparent;
  transition: all 0.3s ease;
}

.nav-section a:hover {
  background-color: rgba(214, 126, 191, 0.1);
  border-left-color: var(--primary-color);
  color: var(--primary-color);
}

.nav-section a i {
  font-size: 1.1rem;
  width: 20px;
}

@media screen and (max-width: 768px) {
  .sidebar {
    width: 300px;
    left: -300px;
  }
  
  .user-details h3 {
    max-width: 150px;
    font-size: 1rem;
  }
  
  .email-address {
    max-width: 150px;
    font-size: 0.85rem;
  }
}

@media screen and (max-width: 480px) {
  .sidebar {
    width: 280px;
    left: -280px;
  }
  
  .sidebar-header {
    padding: 1rem;
  }
  
  .user-avatar {
    width: 40px;
    height: 40px;
  }
  
  .user-details h3 {
    max-width: 120px;
    font-size: 0.95rem;
  }
  
  .email-address {
    max-width: 120px;
    font-size: 0.8rem;
  }
}