/* ==========================================================================
   FANTOMTV 60FPS HARDWARE-ACCELERATED SIDEBAR (Subtle Soft Ambient Glow & Ultra-Smooth)
   ========================================================================== */

.sidebar-hover-expand {
  will-change: width;
  /* Tactile snap collapse with a physical overshoot/settle curve */
  transition: width 260ms cubic-bezier(0.25, 1, 0.3, 1.08);
  transform: translateZ(0);
  backface-visibility: hidden;
}

.sidebar-hover-expand:hover {
  /* Ultra-smooth expansive glide when opening */
  transition: width 340ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* Nav Item Button Hardware-Accelerated Animation */
.nav-item-btn {
  will-change: transform, color, text-shadow;
  transition: color 200ms ease, transform 200ms cubic-bezier(0.16, 1, 0.3, 1), text-shadow 200ms ease;
}

/* Labels hardware acceleration and spring animation */
.nav-item-label {
  opacity: 0;
  transform: translateX(-14px) scale(0.92);
  will-change: opacity, transform;
  /* Snappy fade/slide out on collapse */
  transition: opacity 200ms cubic-bezier(0.25, 1, 0.5, 1), transform 200ms cubic-bezier(0.25, 1, 0.5, 1);
}

/* On hover, fade and spring out the labels */
.sidebar-hover-expand:hover .nav-item-label {
  opacity: 1;
  transform: translateX(0) scale(1);
  transition: opacity 350ms cubic-bezier(0.34, 1.56, 0.64, 1), transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Individual button hover: slide text slightly right with smooth spring animation */
.sidebar-hover-expand:hover .nav-item-btn:hover .nav-item-label {
  transform: translateX(6px) scale(1.02);
  transition: transform 300ms cubic-bezier(0.34, 1.75, 0.64, 1), color 200ms ease;
}

/* Stagger delays when hover starts for sequential slide-out */
.sidebar-hover-expand:hover nav button:nth-child(1) .nav-item-label { transition-delay: 20ms; }
.sidebar-hover-expand:hover nav button:nth-child(2) .nav-item-label { transition-delay: 45ms; }
.sidebar-hover-expand:hover nav button:nth-child(3) .nav-item-label { transition-delay: 70ms; }
.sidebar-hover-expand:hover nav button:nth-child(4) .nav-item-label { transition-delay: 95ms; }
.sidebar-hover-expand:hover nav button:nth-child(5) .nav-item-label { transition-delay: 120ms; }
.sidebar-hover-expand:hover nav button:nth-child(6) .nav-item-label { transition-delay: 145ms; }
.sidebar-hover-expand:hover nav button:nth-child(7) .nav-item-label { transition-delay: 170ms; }
.sidebar-hover-expand:hover #desktop-settings-btn .nav-item-label { transition-delay: 195ms; }

/* Icon bounds consistency - original 20px size */
.nav-icon-box {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Active Highlight - Subtle soft ambient theme-specific glow with wide blur spread */
.nav-item-btn.active {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--theme-accent) !important;
  filter: drop-shadow(0 0 20px var(--theme-glow));
}

.nav-item-btn.active .nav-icon-box i,
.nav-item-btn.active .nav-item-label {
  color: var(--theme-accent) !important;
  font-weight: 700 !important;
  text-shadow: 0 0 24px var(--theme-glow);
}

/* Fill SVG shapes on hover and active states for a premium, bold feel */
.nav-icon-box i svg,
.nav-trigger i svg {
  fill: transparent;
  transition: fill 250ms cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-item-btn:hover .nav-icon-box i svg,
.nav-item-btn.active .nav-icon-box i svg,
.nav-trigger:hover i svg,
.active-mobile i svg {
  fill: currentColor;
}
