/* ========================================
   GOH MARKET - ESTILOS PRINCIPALES
   ======================================== */

/* Importar fuentes de Google Fonts */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Jost:wght@300;400;500;600;700&display=swap");

/* ========================================
   VARIABLES CSS GLOBALES
   ======================================== */
:root {
  /* Colores principales */
  --color-primary: #7f02a6;
  --color-primary-rgb: 127, 2, 166;
  --color-primary-light: #9a2bc7;
  --color-primary-dark: #6a0288;
  --color-secondary: #dc3545;
  /* Success / acciones positivas */
  --color-success: #28a745;
  --color-success-dark: #218838;
  --color-secondary-light: #e74c3c;
  --color-secondary-dark: #c82333;

  /* Colores de fondo */
  --color-bg-primary: #ffffff;
  --color-bg-secondary: #f5f5f5;
  --color-bg-tertiary: #f8f9fa;
  --color-bg-hover: #f0f0f0;

  /* Colores de texto */
  --color-text-primary: #333333;
  --color-text-secondary: #666666;
  --color-text-muted: #6c757d;
  --color-text-light: #ffffff;

  /* Colores de borde */
  --color-border-primary: #e9ecef;
  --color-border-secondary: rgba(255, 255, 255, 0.1);

  /* Tipografías */
  --font-family-primary: "Montserrat", sans-serif;
  --font-family-headings: "Jost", sans-serif;

  /* Tamaños de fuente */
  --font-size-xs: 11px;
  --font-size-sm: 14px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 24px;
  --font-size-2xl: 32px;

  /* Pesos de fuente */
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Espaciado */
  --spacing-xs: 5px;
  --spacing-sm: 10px;
  --spacing-md: 15px;
  --spacing-lg: 20px;
  --spacing-xl: 30px;
  --spacing-2xl: 40px;

  /* Bordes y sombras */
  --border-radius-sm: 5px;
  --border-radius-md: 8px;
  --border-radius-lg: 12px;
  --border-width: 3px;

  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 2px 10px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 4px 20px rgba(0, 0, 0, 0.15);

  /* Transiciones */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;

  /* Layout */
  --sidebar-width: 16%;
  --sidebar-width-collapsed: 16%;
  --main-content-width: 84%;
  --main-content-width-collapsed: 84%;
  --logo-size: 60px;

  /* Layout Responsive Variables */
  --sidebar-width-desktop: 16%;
  --sidebar-width-laptop-large: 16%;
  --sidebar-width-laptop-medium: 16%;
  --sidebar-width-tablet: 20%;

  --main-content-width-desktop: 84%;
  --main-content-width-laptop-large: 84%;
  --main-content-width-laptop-medium: 84%;
  --main-content-width-tablet: 80%;

  /* Z-index */
  --z-sidebar: 1000;
  --z-sidebar-expanded: 1002;
  --z-sidebar-overlay: 1001;
}

/* ========================================
   RESET Y ESTILOS BASE
   ======================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-family-primary);
  font-weight: var(--font-weight-normal);
  font-size: var(--font-size-base);
  background-color: var(--color-bg-secondary);
  color: var(--color-text-primary);
  line-height: 1.6;
  overflow-x: hidden; /* Eliminar scroll horizontal del body */
  overflow-y: auto; /* Permitir scroll vertical normal */
}

/* ========================================
   TIPOGRAFÍA
   ======================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family-headings);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-md);
}

h1 {
  font-size: var(--font-size-2xl);
}
h2 {
  font-size: var(--font-size-xl);
}
h3 {
  font-size: var(--font-size-lg);
}
h4 {
  font-size: var(--font-size-base);
}

p {
  margin-bottom: var(--spacing-md);
  color: var(--color-text-secondary);
}

/* ========================================
   LAYOUT PRINCIPAL
   ======================================== */
.container {
  display: flex;
  min-height: 100vh;
}

/* ========================================
   SIDEBAR/NAVBAR - INICIALIZADO EN MODO COLAPSADO
   ======================================== */
.sidebar {
  width: var(--sidebar-width-collapsed);
  background-color: var(--color-bg-primary);
  box-shadow: var(--shadow-md);
  position: fixed;
  height: 100vh; /* siempre ocupar 100vh */
  display: flex;
  flex-direction: column;
  z-index: var(--z-sidebar);
  transition: box-shadow var(--transition-normal); /* Solo transición en box-shadow, NO en width */
  overflow: visible; /* Permitir overflow para el botón expandir */
  overflow-x: visible; /* Permitir overflow horizontal para el botón */
}

/* Por defecto, el sidebar está colapsado. En mobile está oculto */
.sidebar:not(.overlay-mode) {
  width: var(--sidebar-width-collapsed);
  overflow: visible; /* Permitir overflow para el botón de expandir */
}

.sidebar:not(.overlay-mode).collapsed {
  width: var(--sidebar-width-collapsed);
  overflow: visible; /* Permitir overflow cuando está colapsado */
}

.sidebar.expanded {
  width: var(--sidebar-width);
  box-shadow: var(--shadow-lg);
  z-index: var(--z-sidebar-expanded);
  overflow: hidden; /* En modo expandido, ocultar overflow */
  transition: width var(--transition-normal),
    box-shadow var(--transition-normal); /* Solo transición cuando se expande */
}

/* Header del sidebar */
.sidebar-header {
  background-color: var(--color-primary);
  color: var(--color-text-light);
  padding: calc(var(--spacing-lg) * 1.15) var(--spacing-lg); /* 15% más alto */
  text-align: center;
  border-bottom: 1px solid var(--color-border-secondary);
  flex: 0 0 auto; /* fijo */
  transition: padding var(--transition-normal);
  min-height: calc(
    var(--logo-size) + calc(var(--spacing-lg) * 2.3)
  ); /* Altura mínima aumentada */
}

.sidebar.collapsed .sidebar-header {
  padding: calc(var(--spacing-sm) * 1.15) var(--spacing-sm); /* Mantener proporción en colapsado */
  min-height: calc(
    30px + calc(var(--spacing-sm) * 2.3)
  ); /* Altura mínima para modo colapsado */
}

.logo {
  width: var(--logo-size);
  height: var(--logo-size);
  margin: 0 auto var(--spacing-sm) auto;
  display: block;
  transition: all var(--transition-normal);
}

.sidebar.collapsed .logo {
  width: 30px;
  height: 30px;
  margin-bottom: 0;
}

.logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.welcome-message {
  font-size: var(--font-size-sm);
  opacity: 0.9;
  transition: opacity var(--transition-normal);
}

.sidebar.collapsed .welcome-message {
  opacity: 0;
  height: 0;
  overflow: hidden;
}

.user-info {
  margin-top: var(--spacing-sm);
  text-align: center;
  font-size: var(--font-size-xs);
  color: var(--color-text-light);
  opacity: 0.8;
}

.user-info .user-email {
  display: block;
  margin-bottom: 2px;
  font-weight: var(--font-weight-medium);
}

.user-info .user-type {
  display: block;
  opacity: 0.7;
  font-weight: var(--font-weight-light);
}

/* Navegación */
.nav-menu {
  padding: var(--spacing-lg) 0;
}

.nav-section {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  padding-bottom: var(--spacing-md);
}

.nav-section + .nav-section {
  margin-top: calc(var(--spacing-md) + 2px);
  padding-top: calc(var(--spacing-md) + 2px);
  border-top: 1px solid rgba(148, 163, 184, 0.32);
}

.nav-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 var(--spacing-lg);
  font-size: 11px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.nav-section-title::before,
.nav-section-title::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: rgba(148, 163, 184, 0.38);
}

.nav-section .nav-menu {
  padding-top: var(--spacing-xs);
}

.sidebar-content {
  flex: 1 1 auto;
  overflow-y: auto; /* solo esta zona hace scroll */
  overflow-x: hidden; /* Sin scroll horizontal */
}

/* En modo expandido, ocultar overflow horizontal del contenido */
.sidebar.expanded .sidebar-content {
  overflow-x: hidden;
}

.sidebar.expanded .nav-menu {
  overflow-x: hidden;
}

.nav-item {
  padding: var(--spacing-md) var(--spacing-lg);
  display: flex;
  align-items: center;
  color: var(--color-text-primary);
  text-decoration: none;
  transition: all var(--transition-normal);
  border-left: var(--border-width) solid transparent;
  position: relative;
}

.sidebar.collapsed .nav-item {
  padding: var(--spacing-md) var(--spacing-sm);
  justify-content: center;
}

.nav-item:hover {
  background-color: var(--color-bg-hover);
  border-left-color: var(--color-primary);
  color: var(--color-primary);
}

.nav-item.active {
  background-color: var(--color-bg-hover);
  border-left-color: var(--color-primary);
  color: var(--color-primary);
}

.nav-icon {
  margin-right: var(--spacing-md);
  width: 20px;
  text-align: center;
  font-size: var(--font-size-base);
  transition: margin var(--transition-normal);
}

/* Section-specific nav icon colors */
.nav-inicio .nav-icon {
  color: #007bff;
} /* Azul para Inicio */
.nav-lista-precios .nav-icon {
  color: #00bcd4;
} /* Cian para Lista de Precios */
.nav-clientes .nav-icon {
  color: #17a2b8;
} /* Azul claro para Clientes */
.nav-ventas .nav-icon {
  color: #28a745;
} /* Verde para Ventas */
.nav-cobranzas .nav-icon {
  color: #007bff;
} /* Azul para Cobranzas (igual que Inicio) */
.nav-historial-ventas .nav-icon {
  color: #228b22;
} /* Verde para Historial de Ventas */
.nav-facturacion .nav-icon {
  color: #6c757d;
} /* Gris para Facturación */
.nav-compras .nav-icon {
  color: #fd7e14;
} /* Naranja para Compras */
.nav-proveedores .nav-icon {
  color: #8d6e63;
} /* Marrón para Proveedores */
.nav-pedidos .nav-icon {
  color: #ffc107;
} /* Amarillo para Pedidos */
.nav-precios .nav-icon {
  color: #dc3545;
} /* Rojo para Precios */
.nav-configuracion .nav-icon {
  color: #007bff;
} /* Azul para Configuración (igual que Inicio) */

.sidebar.collapsed .nav-icon {
  margin-right: 0;
}

.nav-text {
  font-size: 13px; /* reducido para ocupar menos espacio */
  font-weight: var(--font-weight-medium);
  line-height: 1; /* compactar la altura de línea */
  white-space: nowrap; /* evitar salto de línea */
  overflow: hidden; /* ocultar el overflow */
  text-overflow: ellipsis; /* mostrar '...' si es necesario */
  display: inline-block; /* asegurar que text-overflow funcione */
  max-width: calc(100% - 36px); /* dejar espacio para el icono y padding */
  transition: opacity var(--transition-normal);
}

.sidebar.collapsed .nav-text {
  opacity: 0;
  width: 0;
  overflow: hidden;
}

.sidebar.collapsed .nav-section-title {
  display: none;
}

.nav-item-disabled {
  cursor: not-allowed;
  color: #94a3b8;
  background: #f8fafc;
  border-left-color: transparent;
  pointer-events: none;
  box-shadow: none;
}

.nav-item-disabled:hover {
  background: #f8fafc;
  border-left-color: transparent;
  color: #94a3b8;
  transform: none;
}

.nav-item-disabled .nav-icon {
  opacity: 1;
  color: #94a3b8;
}

.nav-section-disabled .nav-menu {
  gap: 8px;
}

.nav-section-disabled .nav-item {
  min-height: 70px;
  padding: 10px 8px;
  gap: 5px;
  border-color: #e2e8f0;
  background: linear-gradient(180deg, #fafbfc, #f8fafc);
}

.nav-section-disabled .nav-text {
  font-size: 11px;
  font-weight: var(--font-weight-medium);
  color: #64748b;
}

.nav-section-disabled .nav-badge {
  margin-top: 2px;
  padding: 3px 7px;
  background: #edf2f7;
  color: #64748b;
  font-size: 8px;
}

.nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: 9px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Tooltip para modo colapsado: posicionadas a la derecha de cada botón */
.nav-item,
.logout-item {
  position: relative; /* Contenedor para el tooltip absoluto */
}

.nav-item .nav-tooltip,
.logout-item .nav-tooltip {
  position: absolute; /* Posicionado relativo al nav-item */
  left: 100%; /* Justo a la derecha del botón */
  top: 50%;
  transform: translateY(-50%); /* centrar verticalmente sin animación */
  background: var(--color-primary);
  color: var(--color-text-light);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-xs);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: none; /* sin animaciones */
  pointer-events: none;
  z-index: calc(
    var(--z-sidebar-expanded) + 50
  ); /* Asegurar por encima del sidebar */
  box-shadow: var(--shadow-md);
  font-weight: var(--font-weight-medium);
  margin-left: 0;
}

/* Tooltips que están fuera del DOM del sidebar y flotan sobre el contenido
   (estas se añaden al <body> por JavaScript para evitar ser recortadas) */
.nav-tooltip.floating {
  position: fixed;
  left: 0;
  top: 0;
  transform: translateY(-50%);
  background: var(--color-primary);
  color: var(--color-text-light);
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-xs);
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-fast);
  pointer-events: none;
  z-index: calc(var(--z-sidebar-expanded) + 100);
  box-shadow: var(--shadow-md);
  font-weight: var(--font-weight-medium);
}

.nav-tooltip.floating::before {
  content: "";
  position: absolute;
  left: -10px; /* colocada fuera a la izquierda del tooltip */
  top: 50%;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-right-color: var(--color-primary);
}

/* Evitar duplicado: ocultar el tooltip embebido en el markup para el logout
   porque usamos un tooltip flotante reutilizable en el <body> */
.logout-item .nav-tooltip:not(.floating) {
  display: none !important;
}

/* Estilos especiales para tooltip de cerrar sesión */
.nav-tooltip.floating.logout-mode {
  background: #d9534f; /* rojo (bootstrap danger) */
  color: #fff;
}

.nav-tooltip.floating.logout-mode::before {
  border-right-color: #d9534f;
}

/* Flecha del tooltip */
.nav-item .nav-tooltip::before,
.logout-item .nav-tooltip::before {
  content: "";
  position: absolute;
  left: -10px; /* colocada fuera a la izquierda del tooltip */
  top: 50%;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-right-color: var(
    --color-primary
  ); /* flecha apuntando hacia la izquierda */
}

/* Mostrar tooltips solo cuando sidebar está colapsado y en hover */
.sidebar.collapsed .nav-item:hover .nav-tooltip,
.sidebar.collapsed .logout-item:hover .nav-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%); /* Sin animación */
}

/* Script para posicionar tooltips dinámicamente */

/* Ocultar tooltips cuando sidebar está expandido */
.sidebar.expanded .nav-tooltip {
  opacity: 0 !important;
  visibility: hidden !important;
}

/* Botón de cerrar sesión */
.sidebar-footer,
.logout-section {
  background-color: var(--color-bg-primary);
  border-top: 1px solid var(--color-border-primary);
  flex: 0 0 auto; /* fijo */
}

.version-info {
  padding: var(--spacing-sm) var(--spacing-lg);
  text-align: center;
  color: var(--color-text-muted);
  font-size: var(--font-size-xs);
  border-bottom: 1px solid var(--color-border-primary);
  background-color: var(--color-bg-tertiary);
  transition: padding var(--transition-normal);
}

.sidebar.collapsed .version-info {
  padding: var(--spacing-xs);
  font-size: 10px;
}

.logout-item {
  padding: var(--spacing-md) var(--spacing-lg);
  display: flex;
  align-items: center;
  color: var(--color-secondary);
  text-decoration: none;
  transition: all var(--transition-normal);
  border-left: var(--border-width) solid transparent;
  position: relative;
}

.sidebar.collapsed .logout-item {
  padding: var(--spacing-md) var(--spacing-sm);
  justify-content: center;
}

.logout-item:hover {
  background-color: #fff5f5;
  border-left-color: var(--color-secondary);
  color: var(--color-secondary);
}

.logout-icon {
  margin-right: var(--spacing-md);
  width: 20px;
  text-align: center;
  font-size: var(--font-size-base);
  transition: margin var(--transition-normal);
}

.sidebar.collapsed .logout-icon {
  margin-right: 0;
}

.sidebar.collapsed .logout-item .nav-text {
  opacity: 0;
  width: 0;
  overflow: hidden;
}

/* Botón expandir sidebar */
.sidebar-expand-btn {
  position: absolute;
  top: 50%;
  right: -15px;
  transform: translateY(-50%);
  background: var(--color-primary);
  color: var(--color-text-light);
  border: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--transition-normal);
  z-index: calc(var(--z-sidebar) + 10); /* Z-index más alto que el sidebar */
  box-shadow: var(--shadow-md);
  overflow: visible; /* Asegurar que no se corte */
}

/* Contenedor del sidebar debe permitir overflow para el botón */
.sidebar:not(.expanded) {
  overflow: visible; /* Permitir overflow solo para el botón de expandir */
}

.sidebar:not(.expanded) .sidebar-content {
  overflow-y: auto;
  overflow-x: hidden;
}

.sidebar:not(.expanded) .sidebar-header {
  overflow: hidden; /* Mantener contenido sin overflow horizontal */
}

.sidebar:not(.expanded) .sidebar-footer {
  overflow: visible; /* Permitir overflow horizontal para tooltip de logout */
}

.sidebar.expanded .sidebar-expand-btn {
  opacity: 0;
  visibility: hidden;
}

.sidebar-expand-btn:hover {
  background: var(--color-primary-dark);
  transform: translateY(-50%) scale(1.1);
}

/* Overlay para modo expandido */
.sidebar-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: var(--z-sidebar-overlay);
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-normal);
}

.sidebar-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* ========================================
   CONTENIDO PRINCIPAL
   ======================================== */
.main-content {
  width: var(--main-content-width-collapsed);
  margin-left: var(--sidebar-width-collapsed);
  padding: 0 var(--spacing-lg) var(--spacing-lg) 0;
  min-height: 100vh;
  /* Eliminar transición para evitar animaciones molestas */
}

.sidebar.expanded ~ .main-content {
  width: var(--main-content-width);
  margin-left: var(--sidebar-width);
}

/* Sidebar fija de escritorio: 1/5 del ancho y accesos en tarjetas con icono arriba */
.sidebar,
.sidebar:not(.overlay-mode),
.sidebar:not(.overlay-mode).collapsed,
.sidebar.expanded {
  width: var(--sidebar-width);
  overflow: hidden;
  transition: box-shadow var(--transition-normal);
}

.sidebar-header {
  padding: 16px 14px;
  min-height: auto;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.sidebar-brand-mark,
.sidebar-company-mark {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sidebar-brand-mark {
  background: rgba(255, 255, 255, 0.18);
}

.sidebar-company-mark {
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.22);
}

.sidebar-brand-mark img,
.sidebar-company-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sidebar-company-initial {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: var(--font-weight-bold);
  color: var(--color-text-light);
}

.welcome-message {
  opacity: 1;
  height: auto;
  overflow: visible;
  font-size: 11px;
  line-height: 1.25;
  text-align: center;
  margin: 0;
}

.nav-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 14px 10px;
}

.nav-item,
.logout-item {
  min-height: 84px;
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  border-left: 0;
  border-radius: 14px;
  border: 1px solid rgba(var(--color-primary-rgb), 0.08);
  background: #fff;
}

.nav-item:hover,
.nav-item.active {
  border-left-color: transparent;
  border-color: rgba(var(--color-primary-rgb), 0.22);
  background: linear-gradient(180deg, rgba(var(--color-primary-rgb), 0.08), rgba(var(--color-primary-rgb), 0.02));
  transform: translateY(-1px);
}

.nav-icon,
.logout-icon {
  margin-right: 0;
  width: auto;
  font-size: 25px;
  line-height: 1;
}

.material-symbols-outlined.nav-icon,
.material-symbols-outlined.logout-icon,
.version-info .material-symbols-outlined {
  font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;
}

.nav-text {
  max-width: none;
  white-space: normal;
  overflow: visible;
  text-overflow: initial;
  font-size: 11px;
  line-height: 1.2;
}

.sidebar-footer {
  padding: 10px 10px 12px;
}

.version-info {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 10px;
  margin-bottom: 10px;
  border-bottom: 0;
  border-radius: 12px;
}

.logout-item {
  min-height: 44px;
  flex-direction: row;
  justify-content: center;
  gap: 6px;
  padding: 8px 10px;
  border-color: rgba(220, 53, 69, 0.14);
}

.logout-icon {
  font-size: 18px;
}

.sidebar-footer .logout-item .nav-text {
  font-size: 11px;
  line-height: 1;
}

.sidebar-expand-btn,
.nav-tooltip,
.nav-tooltip.floating {
  display: none !important;
}

.main-content,
.sidebar.expanded ~ .main-content {
  width: var(--main-content-width);
  margin-left: var(--sidebar-width);
}

.content-section {
  background-color: var(--color-bg-primary);
  border-radius: var(--border-radius-md);
  padding: var(--spacing-xl);
  box-shadow: var(--shadow-md);
}

.section-title {
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-lg);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
}

/* ========================================
   COMPONENTES REUTILIZABLES
   ======================================== */
.card {
  background: var(--color-bg-tertiary);
  padding: var(--spacing-lg);
  border-radius: var(--border-radius-md);
  border-left: 4px solid var(--color-primary);
  margin-bottom: var(--spacing-lg);
}

.card h4 {
  color: var(--color-text-primary);
  margin-bottom: var(--spacing-sm);
}

.card p {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
}

.table-entity {
  display: flex;
  align-items: center;
  min-width: 0;
}

.table-entity-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.table-entity-primary {
  color: var(--color-text-primary);
  font-weight: var(--font-weight-semibold);
  line-height: 1.25;
}

.table-entity-secondary {
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.25;
  margin-top: 2px;
}

.actions-cell {
  width: 1%;
  white-space: nowrap;
  text-align: center;
}

.table-actions {
  position: relative;
  display: inline-flex;
  justify-content: flex-end;
}

.table-actions-trigger {
  width: 36px;
  height: 36px;
  border: 1px solid var(--color-border-primary);
  border-radius: 10px;
  background: var(--color-bg-primary);
  color: var(--color-text-secondary);
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast),
    border-color var(--transition-fast), box-shadow var(--transition-fast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
}

.table-actions-trigger:hover,
.table-actions.open .table-actions-trigger {
  background: var(--color-bg-hover);
  color: var(--color-primary);
  border-color: rgba(var(--color-primary-rgb), 0.2);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.table-actions-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 168px;
  padding: 8px;
  border-radius: 14px;
  border: 1px solid var(--color-border-primary);
  background: var(--color-bg-primary);
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.14);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity var(--transition-fast), visibility var(--transition-fast),
    transform var(--transition-fast);
  z-index: 20;
}

.table-actions.open .table-actions-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.table-actions-item {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--color-text-primary);
  font: inherit;
  border-radius: 10px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  text-align: left;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.table-actions-item + .table-actions-item {
  margin-top: 4px;
}

.table-actions-item i {
  width: 16px;
  text-align: center;
  color: inherit;
}

.table-actions-item:hover {
  background: var(--color-bg-hover);
}

.table-actions-item[data-action="edit"]:hover {
  color: #17a2b8;
}

.table-actions-item[data-action="view"]:hover {
  color: #a16207;
}

.table-actions-item[data-action="delete"]:hover {
  color: #dc3545;
}

/* Estilos para page header reutilizable */
.page-header {
  background: linear-gradient(
    90deg,
    rgba(127, 2, 166, 0.05),
    rgba(127, 2, 166, 0.02)
  );
  padding: var(--spacing-md) var(--spacing-lg);
  margin-bottom: var(--spacing-lg);
  border-radius: var(--border-radius-sm);
}
.page-header .header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-md);
}
.page-header .header-title {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
}
.page-header .header-icon i {
  font-size: 28px;
  color: var(--color-primary-dark);
}
.page-header .header-text h1 {
  font-size: var(--font-size-xl);
  margin: 0;
}
.page-header .header-actions {
  display: flex;
  gap: var(--spacing-sm);
  align-items: center;
}
.page-header .header-actions .btn i {
  margin-right: 8px;
}
.page-header .header-actions .btn .btn-text {
  display: inline-block;
  vertical-align: middle;
}

/* ========================================
   PAGE HEADER RESPONSIVE
   ======================================== */

/* Mobile: Reorganizar layout completamente */
@media (max-width: 768px) {
  .page-header {
    padding: var(--spacing-md) var(--spacing-sm) var(--spacing-lg)
      var(--spacing-sm) !important; /* Más padding bottom para acompañar botones */
    margin-bottom: var(--spacing-md);
    min-height: auto !important; /* Sobrescribir restricciones de pages.css */
    height: auto !important; /* Altura automática basada en contenido */
    max-height: none !important; /* Eliminar altura máxima */
    overflow: visible !important; /* Permitir que el contenido sea visible */
  }

  .page-header .header-content {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important; /* Cambiar a flex-start para evitar centrado que cause overflow */
    text-align: center !important;
    gap: var(--spacing-md) !important;
    min-height: auto !important; /* Eliminar restricciones de altura */
    height: auto !important; /* Altura automática */
  }

  /* Título e icono centrados */
  .page-header .header-title {
    justify-content: center !important;
    flex-direction: row !important; /* Cambiar a row para icono a la izquierda del texto */
    gap: var(
      --spacing-sm
    ) !important; /* Reducir gap para mejor composición horizontal */
    width: 100% !important;
    margin-bottom: var(--spacing-sm) !important;
    flex-shrink: 0 !important; /* No comprimir */
    align-items: center !important;
  }

  .page-header .header-icon {
    width: 50px !important;
    height: 50px !important;
    font-size: var(--font-size-xl) !important;
    margin-bottom: 0 !important; /* Sin margen bottom */
    margin-right: 0 !important; /* Sin margen derecho, usar gap del contenedor */
    flex-shrink: 0 !important; /* Evitar que el icono se comprima */
  }

  .page-header .header-icon i {
    font-size: 32px !important;
    color: var(--color-primary) !important;
    margin-bottom: 0 !important; /* Sin margen bottom */
  }

  .page-header .header-text h1 {
    font-size: var(--font-size-lg) !important;
    margin: 0 !important;
    text-align: center !important;
    line-height: 1.2 !important;
    color: var(--color-text-light) !important;
    flex: 1 !important; /* El texto ocupa el espacio restante */
  }

  .page-header .header-text p {
    font-size: var(--font-size-sm) !important;
    margin: 0 !important;
    text-align: center !important;
    color: rgba(255, 255, 255, 0.9) !important;
  }

  /* Grid de botones en mobile */
  .page-header .header-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: var(--spacing-sm) !important;
    width: 100% !important;
    align-items: stretch !important; /* Todos los botones misma altura */
    flex-shrink: 0 !important; /* No comprimir los botones */
    margin-top: var(--spacing-sm) !important; /* Separación adicional */
    flex-direction: unset !important; /* Resetear flex-direction que viene de pages.css */
  }

  /* Si hay un solo botón, que ocupe toda la fila */
  .page-header .header-actions .btn:only-child {
    grid-column: 1 / -1 !important; /* Ocupa todas las columnas disponibles */
  }

  /* Botones en mobile con altura uniforme */
  .page-header .header-actions .btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: var(--spacing-sm) !important;
    font-size: var(--font-size-sm) !important;
    min-height: 50px !important; /* Altura más generosa para touch targets */
    white-space: nowrap !important;
    flex-direction: row !important; /* Cambiar a row para iconos a la izquierda */
    gap: 6px !important; /* Espacio entre icono y texto */
    box-sizing: border-box !important; /* Incluir padding en el cálculo de altura */
    width: 100% !important; /* Asegurar que ocupen todo el ancho de la grilla */
  }

  /* Iconos más pequeños en mobile */
  .page-header .header-actions .btn i {
    margin-right: 0 !important;
    margin-bottom: 0 !important; /* Sin margen bottom */
    font-size: var(--font-size-sm) !important;
    flex-shrink: 0 !important; /* Evitar que el icono se comprima */
  }

  /* Texto del botón en mobile */
  .page-header .header-actions .btn .btn-text {
    display: block !important;
    font-size: 11px !important;
    line-height: 1.1 !important;
    text-align: center !important;
    flex: 1 !important; /* El texto ocupa el espacio restante */
  }
}

/* Tablet Portrait: Layout intermedio */
@media (min-width: 769px) and (max-width: 1023px) {
  .page-header {
    padding: var(--spacing-md);
  }

  .page-header .header-content {
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-md);
  }

  .page-header .header-title {
    justify-content: center;
    margin-bottom: var(--spacing-xs);
  }

  .page-header .header-icon i {
    font-size: 30px;
  }

  .page-header .header-text h1 {
    font-size: var(--font-size-lg);
    text-align: center;
  }

  .page-header .header-actions {
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
  }

  .page-header .header-actions .btn {
    min-height: 40px;
  }
}

/* Tablet Landscape: Mantener layout horizontal pero más compacto */
@media (min-width: 1024px) and (max-width: 1365px) {
  .page-header {
    padding: var(--spacing-sm) var(--spacing-md);
  }

  .page-header .header-icon i {
    font-size: 24px;
  }

  .page-header .header-text h1 {
    font-size: var(--font-size-base);
  }

  .page-header .header-actions .btn {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--font-size-sm);
  }

  .page-header .header-actions .btn i {
    margin-right: 6px;
  }
}

/* Botón success (Agregar Producto principal) */
.btn-success {
  background-color: var(--color-success);
  color: var(--color-text-light);
}
.btn-success:hover {
  background-color: var(--color-success-dark);
}

/* Tamaño pequeño para botones secundarios en headers */
.btn-sm {
  padding: calc(var(--spacing-xs)) calc(var(--spacing-sm));
  font-size: 13px;
}

.btn {
  display: inline-block;
  padding: var(--spacing-sm) var(--spacing-lg);
  border: none;
  border-radius: var(--border-radius-sm);
  font-family: var(--font-family-primary);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
  cursor: pointer;
  transition: all var(--transition-normal);
  font-size: var(--font-size-base);
}

.btn-primary {
  background-color: var(--color-primary);
  color: var(--color-text-light);
}

.btn-primary:hover {
  background-color: var(--color-primary-dark);
}

.btn-secondary {
  background-color: var(--color-secondary);
  color: var(--color-text-light);
}

.btn-secondary:hover {
  background-color: var(--color-secondary-dark);
}

/* Botón de peligro/rojo usando la variable --color-secondary-light (solicitado) */
.btn-danger {
  background-color: var(--color-secondary-light);
  color: var(--color-text-light);
}

.btn-danger:hover {
  background-color: var(--color-secondary-dark);
}

.btn-outline {
  background-color: transparent;
  color: var(--color-primary-light);
  border: 2px solid var(--color-primary-dark);
}

.btn-outline:hover {
  background-color: var(--color-primary);
  color: var(--color-text-light);
}

.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.btn:disabled:hover {
  background-color: inherit;
  color: inherit;
}

/* ========================================
   RESPONSIVE
   ======================================== */

/* ========================================
   RESPONSIVE DESKTOP LARGE (≥1920px)
   ======================================== */
@media (min-width: 1920px) {
  .sidebar:not(.expanded) {
    width: var(--sidebar-width-collapsed);
  }

  .sidebar.expanded {
    width: var(--sidebar-width-desktop);
  }

  .main-content {
    width: var(--main-content-width-collapsed);
    margin-left: var(--sidebar-width-collapsed);
  }

  .sidebar.expanded ~ .main-content {
    width: var(--main-content-width-desktop);
    margin-left: var(--sidebar-width-desktop);
  }
}

/* ========================================
   RESPONSIVE DESKTOP STANDARD (1441px - 1919px)
   ======================================== */
@media (min-width: 1441px) and (max-width: 1919px) {
  .sidebar:not(.expanded) {
    width: var(--sidebar-width-collapsed);
  }

  .sidebar.expanded {
    width: var(--sidebar-width-desktop);
  }

  .main-content {
    width: var(--main-content-width-collapsed);
    margin-left: var(--sidebar-width-collapsed);
    padding: 0 var(--spacing-lg) var(--spacing-lg) 0;
  }

  .sidebar.expanded ~ .main-content {
    width: var(--main-content-width-desktop);
    margin-left: var(--sidebar-width-desktop);
  }

  .content-section {
    padding: var(--spacing-xl);
  }
}

/* ========================================
   RESPONSIVE LAPTOP GRANDE (1366px - 1440px)
   ======================================== */
@media (min-width: 1366px) and (max-width: 1440px) {
  .sidebar:not(.expanded) {
    width: var(--sidebar-width-collapsed);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary-light) var(--color-bg-secondary);
  }

  .sidebar.expanded {
    width: var(--sidebar-width-laptop-large);
  }

  .sidebar::-webkit-scrollbar {
    width: 6px;
  }

  .sidebar::-webkit-scrollbar-track {
    background: var(--color-bg-secondary);
  }

  .sidebar::-webkit-scrollbar-thumb {
    background: var(--color-primary-light);
    border-radius: 3px;
  }

  .main-content {
    width: var(--main-content-width-collapsed);
    margin-left: var(--sidebar-width-collapsed);
    padding: 0 var(--spacing-lg) var(--spacing-md) 0;
  }

  .sidebar.expanded ~ .main-content {
    width: var(--main-content-width-laptop-large);
    margin-left: var(--sidebar-width-laptop-large);
  }

  .content-section {
    padding: var(--spacing-lg) var(--spacing-xl);
  }

  .nav-item {
    padding: 12px var(--spacing-md);
  }

  .sidebar.collapsed .nav-item {
    padding: 12px var(--spacing-xs);
  }

  .nav-text {
    font-size: 13px;
  }

  .nav-icon {
    width: 18px;
    font-size: 14px;
  }

  .logo {
    width: 50px;
    height: 50px;
  }

  .sidebar.collapsed .logo {
    width: 25px;
    height: 25px;
  }

  .sidebar-header {
    padding: calc(var(--spacing-md) * 1.15);
    min-height: calc(50px + calc(var(--spacing-md) * 2.3));
  }

  .sidebar.collapsed .sidebar-header {
    padding: calc(var(--spacing-xs) * 1.15);
    min-height: calc(25px + calc(var(--spacing-xs) * 2.3));
  }

  .welcome-message {
    font-size: 12px;
  }
}

/* ========================================
   RESPONSIVE LAPTOP MEDIANA (1024px - 1365px)
   ======================================== */
@media (min-width: 1024px) and (max-width: 1365px) {
  .sidebar:not(.expanded) {
    width: var(--sidebar-width-collapsed);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary-light) var(--color-bg-secondary);
  }

  .sidebar.expanded {
    width: var(--sidebar-width-laptop-medium);
  }

  .sidebar::-webkit-scrollbar {
    width: 6px;
  }

  .sidebar::-webkit-scrollbar-track {
    background: var(--color-bg-secondary);
  }

  .sidebar::-webkit-scrollbar-thumb {
    background: var(--color-primary-light);
    border-radius: 3px;
  }

  .main-content {
    width: var(--main-content-width-collapsed);
    margin-left: var(--sidebar-width-collapsed);
    padding: 0 var(--spacing-md) var(--spacing-md) 0;
  }

  .sidebar.expanded ~ .main-content {
    width: var(--main-content-width-laptop-medium);
    margin-left: var(--sidebar-width-laptop-medium);
  }

  .content-section {
    padding: var(--spacing-md) var(--spacing-lg);
  }

  .nav-item {
    padding: 10px var(--spacing-sm);
  }

  .sidebar.collapsed .nav-item {
    padding: 10px var(--spacing-xs);
  }

  .nav-text {
    font-size: 12px;
  }

  .nav-icon {
    width: 16px;
    font-size: 13px;
    margin-right: var(--spacing-sm);
  }

  .sidebar.collapsed .nav-icon {
    margin-right: 0;
  }

  .logo {
    width: 45px;
    height: 45px;
  }

  .sidebar.collapsed .logo {
    width: 22px;
    height: 22px;
  }

  .sidebar-header {
    padding: calc(var(--spacing-sm) * 1.15);
    min-height: calc(45px + calc(var(--spacing-sm) * 2.3));
  }

  .sidebar.collapsed .sidebar-header {
    padding: calc(var(--spacing-xs) * 1.15);
    min-height: calc(22px + calc(var(--spacing-xs) * 2.3));
  }

  .welcome-message {
    font-size: 11px;
  }

  .version-info {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: 10px;
  }

  .sidebar.collapsed .version-info {
    padding: var(--spacing-xs);
    font-size: 9px;
  }

  .logout-item {
    padding: var(--spacing-sm);
  }

  .sidebar.collapsed .logout-item {
    padding: var(--spacing-sm) var(--spacing-xs);
  }
}

/* ========================================
   RESPONSIVE TABLET LANDSCAPE (768px - 1023px)
   ======================================== */
@media (min-width: 769px) and (max-width: 1023px) {
  .sidebar:not(.expanded) {
    width: var(--sidebar-width-collapsed);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary-light) var(--color-bg-secondary);
  }

  .sidebar.expanded {
    width: var(--sidebar-width-tablet);
  }

  .sidebar::-webkit-scrollbar {
    width: 4px;
  }

  .sidebar::-webkit-scrollbar-track {
    background: var(--color-bg-secondary);
  }

  .sidebar::-webkit-scrollbar-thumb {
    background: var(--color-primary-light);
    border-radius: 2px;
  }

  .main-content {
    width: var(--main-content-width-collapsed);
    margin-left: var(--sidebar-width-collapsed);
    padding: 0 var(--spacing-md) var(--spacing-sm) 0;
  }

  .sidebar.expanded ~ .main-content {
    width: var(--main-content-width-tablet);
    margin-left: var(--sidebar-width-tablet);
  }

  .content-section {
    padding: var(--spacing-sm) var(--spacing-md);
  }

  .nav-item {
    padding: 8px var(--spacing-xs);
  }

  .sidebar.collapsed .nav-item {
    padding: 8px 4px;
  }

  .nav-text {
    font-size: 11px;
  }

  .nav-icon {
    width: 14px;
    font-size: 12px;
    margin-right: 8px;
  }

  .sidebar.collapsed .nav-icon {
    margin-right: 0;
  }

  .logo {
    width: 40px;
    height: 40px;
  }

  .sidebar.collapsed .logo {
    width: 20px;
    height: 20px;
  }

  .sidebar-header {
    padding: calc(var(--spacing-xs) * 1.15);
    min-height: calc(40px + calc(var(--spacing-xs) * 2.3));
  }

  .sidebar.collapsed .sidebar-header {
    padding: calc(4px * 1.15);
    min-height: calc(20px + calc(4px * 2.3));
  }

  .welcome-message {
    font-size: 10px;
  }

  .version-info {
    padding: 4px var(--spacing-xs);
    font-size: 9px;
  }

  .sidebar.collapsed .version-info {
    padding: 2px;
    font-size: 8px;
  }

  .logout-item {
    padding: var(--spacing-xs);
  }

  .sidebar.collapsed .logout-item {
    padding: var(--spacing-xs) 4px;
  }

  .section-title {
    font-size: var(--font-size-lg);
  }
}

@media (min-width: 769px) {
  .sidebar,
  .sidebar:not(.overlay-mode),
  .sidebar:not(.overlay-mode).collapsed,
  .sidebar.expanded {
    width: 16% !important;
  }

  .main-content,
  .sidebar.expanded ~ .main-content {
    width: 84% !important;
    margin-left: 16% !important;
  }

  .nav-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 14px 10px;
  }

  .nav-section {
    gap: 0;
    padding-bottom: 14px;
  }

  .nav-section-title {
    padding: 0 12px;
    font-size: 10px;
  }

  .nav-section .nav-menu {
    padding-top: 10px;
  }

  .nav-item {
    min-height: 84px;
    padding: 12px 8px;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    border-left: 0;
    border-radius: 14px;
  }

  .nav-icon,
  .logout-icon {
    margin-right: 0;
    font-size: 25px;
  }

  .nav-text {
    width: auto !important;
    opacity: 1 !important;
    max-width: none;
    white-space: normal;
    overflow: visible;
    text-overflow: initial;
    text-align: center;
  }

  .nav-item-disabled {
    border-style: dashed;
  }

  .nav-section-disabled .nav-item {
    min-height: 62px;
    padding: 9px 6px;
    gap: 4px;
  }

  .nav-section-disabled .nav-text {
    font-size: 10px;
    line-height: 1.15;
  }

  .nav-item-disabled .nav-badge {
    margin-top: 2px;
  }

  .sidebar-footer .logout-item {
    min-height: 44px;
    padding: 8px 10px;
    flex-direction: row;
    gap: 6px;
  }

  .sidebar-footer .logout-item .logout-icon {
    font-size: 18px;
  }

  .sidebar-header,
  .welcome-message,
  .version-info {
    opacity: 1 !important;
    height: auto !important;
    overflow: visible !important;
  }
}

/* ========================================
   RESPONSIVE MOBILE (≤768px) - SIN SIDEBAR
   ======================================== */
@media (max-width: 768px) {
  /* Ocultar completamente el sidebar en mobile */
  .sidebar {
    display: none !important;
  }

  /* El contenido principal ocupa todo el ancho disponible */
  .main-content {
    width: 100% !important;
    margin-left: 0 !important;
    padding: 0 var(--spacing-sm) var(--spacing-sm);
    position: relative;
  }

  .content-section {
    padding: var(--spacing-sm);
  }

  .nav-item {
    padding: var(--spacing-sm) var(--spacing-md);
  }

  .nav-text {
    font-size: var(--font-size-sm);
  }

  .section-title {
    font-size: var(--font-size-lg);
    margin-bottom: var(--spacing-md);
  }

  /* Small override: ensure dashboard containers take full width on mobile */
  .dashboard-grid,
  .dashboard-layout,
  .dashboard-grid-inicio,
  .dashboard-layout-more,
  .dashboard-layout-extended,
  .dashboard-billing-grid {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* KPI row: mostrar 2 columnas en mobile (2x3) */
  .kpi-row {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  .kpi-card {
    width: 100% !important;
  }
  /* ========================================
   UTILIDADES
   ======================================== */
  .text-center {
    text-align: center;
  }
  .text-left {
    text-align: left;
  }
  .text-right {
    text-align: right;
  }

  .mb-0 {
    margin-bottom: 0;
  }
  .mb-1 {
    margin-bottom: var(--spacing-xs);
  }
  .mb-2 {
    margin-bottom: var(--spacing-sm);
  }
  .mb-3 {
    margin-bottom: var(--spacing-md);
  }
  .mb-4 {
    margin-bottom: var(--spacing-lg);
  }
  .mb-5 {
    margin-bottom: var(--spacing-xl);
  }

  .mt-0 {
    margin-top: 0;
  }
  .mt-1 {
    margin-top: var(--spacing-xs);
  }
  .mt-2 {
    margin-top: var(--spacing-sm);
  }
  .mt-3 {
    margin-top: var(--spacing-md);
  }
  .mt-4 {
    margin-top: var(--spacing-lg);
  }
  .mt-5 {
    margin-top: var(--spacing-xl);
  }

  .p-0 {
    padding: 0;
  }
  .p-1 {
    padding: var(--spacing-xs);
  }
  .p-2 {
    padding: var(--spacing-sm);
  }
  .p-3 {
    padding: var(--spacing-md);
  }
  .p-4 {
    padding: var(--spacing-lg);
  }
  .p-5 {
    padding: var(--spacing-xl);
  }

  /* Utilidades Responsive */
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-auto {
    overflow: auto;
  }
  .overflow-x-auto {
    overflow-x: auto;
  }
  .overflow-y-auto {
    overflow-y: auto;
  }

  .d-none {
    display: none;
  }
  .d-block {
    display: block;
  }
  .d-flex {
    display: flex;
  }
  .d-grid {
    display: grid;
  }

  .flex-column {
    flex-direction: column;
  }
  .flex-row {
    flex-direction: row;
  }
  .justify-center {
    justify-content: center;
  }
  .align-center {
    align-items: center;
  }
  .gap-xs {
    gap: var(--spacing-xs);
  }
  .gap-sm {
    gap: var(--spacing-sm);
  }
  .gap-md {
    gap: var(--spacing-md);
  }

  .w-100 {
    width: 100%;
  }
  .h-100 {
    height: 100%;
  }

  /* Utilidades responsive específicas por breakpoint */
  @media (max-width: 768px) {
    .d-mobile-none {
      display: none !important;
    }
    .d-mobile-block {
      display: block !important;
    }
    .d-mobile-flex {
      display: flex !important;
    }
    .text-mobile-center {
      text-align: center !important;
    }
    .flex-mobile-column {
      flex-direction: column !important;
    }
  }

  @media (min-width: 769px) and (max-width: 1023px) {
    .d-tablet-none {
      display: none !important;
    }
    .d-tablet-block {
      display: block !important;
    }
    .d-tablet-flex {
      display: flex !important;
    }
  }

  @media (min-width: 1024px) and (max-width: 1365px) {
    .d-laptop-none {
      display: none !important;
    }
    .d-laptop-block {
      display: block !important;
    }
    .d-laptop-flex {
      display: flex !important;
    }
  }

  /* ========================================
   SISTEMA DE VERSIONADO Y NOTIFICACIONES
   ======================================== */

  /* Información de versión en el navbar */
  .version-info {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-align: center;
    padding: var(--spacing-xs);
    border-radius: var(--border-radius-sm);
    background: rgba(127, 2, 166, 0.1);
    margin-bottom: var(--spacing-sm);
    position: relative;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    cursor: pointer;
  }

  .version-info i {
    color: #4caf50;
    font-size: var(--font-size-sm);
  }

  .version-info:hover {
    background: rgba(127, 2, 166, 0.2);
    color: var(--color-primary);
    transform: translateY(-1px);
  }

  /* Indicador de actualización disponible */
  .update-indicator {
    position: absolute;
    top: -2px;
    right: -2px;
    color: var(--color-secondary);
    font-size: 10px;
    animation: pulse 2s infinite;
  }

  @keyframes pulse {
    0% {
      opacity: 1;
    }
    50% {
      opacity: 0.5;
    }
    100% {
      opacity: 1;
    }
  }

  /* Overlay para notificación centrada */
  .version-update-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    backdrop-filter: blur(2px);
  }

  /* Notificación de actualización */
  .version-update-notification {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: var(--spacing-lg);
    border-radius: var(--border-radius-lg);
    font-size: var(--font-size-sm);
    box-shadow: var(--shadow-xl);
    animation: modalSlideIn 0.3s ease-out;
    max-width: 400px;
    min-width: 300px;
    text-align: center;
  }

  @keyframes modalSlideIn {
    from {
      opacity: 0;
      transform: scale(0.8) translateY(-20px);
    }
    to {
      opacity: 1;
      transform: scale(1) translateY(0);
    }
  }

  .version-update-notification.success {
    background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
  }

  .version-update-notification.error {
    background: linear-gradient(135deg, #ff416c 0%, #ff4b2b 100%);
  }

  @keyframes slideIn {
    from {
      opacity: 0;
      transform: translateY(-10px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .update-message {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--spacing-md);
    font-size: var(--font-size-md);
  }

  .update-message i {
    margin-right: var(--spacing-sm);
    font-size: var(--font-size-lg);
    color: #ffeb3b;
  }

  .notification-buttons {
    display: flex;
    justify-content: center;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
  }

  .success-message,
  .error-message {
    display: flex;
    align-items: center;
  }

  .success-message i,
  .error-message i {
    margin-right: var(--spacing-xs);
    font-size: var(--font-size-sm);
  }

  /* Botones de la notificación */
  .update-btn,
  .dismiss-btn {
    background: rgba(255, 255, 255, 0.9);
    border: none;
    color: #333;
    padding: var(--spacing-sm) var(--spacing-md);
    margin: 0;
    border-radius: var(--border-radius-md);
    font-size: var(--font-size-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    min-width: 120px;
    justify-content: center;
  }

  .update-btn {
    background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
    color: white;
  }

  .update-btn:hover {
    background: linear-gradient(135deg, #45a049 0%, #3d8b40 100%);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  }

  .dismiss-btn:hover {
    background: rgba(255, 255, 255, 1);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }

  .update-btn i,
  .dismiss-btn i {
    font-size: 8px;
  }

  /* Responsive para notificaciones */
  @media (max-width: 768px) {
    .version-update-notification {
      max-width: 90%;
      min-width: 280px;
      padding: var(--spacing-md);
      font-size: var(--font-size-xs);
    }

    .update-btn,
    .dismiss-btn {
      min-width: 100px;
      font-size: var(--font-size-xs);
      padding: var(--spacing-xs) var(--spacing-sm);
    }

    .notification-buttons {
      flex-direction: column;
      gap: var(--spacing-xs);
    }
  }

  /* ========================================
   MENÚ HAMBURGUESA MOBILE
   ======================================== */

  /* Botón flotante toggle (solo visible en mobile) */
  .mobile-menu-toggle {
    display: none;
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    background: #e5ca10;
    border: none;
    border-radius: 50%;
    width: 56px;
    height: 56px;
    color: #333;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(229, 202, 16, 0.3);
    transition: all 0.3s ease;
    outline: none;
  }

  .mobile-menu-toggle:hover {
    background: #d4b90f;
    transform: scale(1.05);
    box-shadow: 0 6px 16px rgba(229, 202, 16, 0.4);
  }

  .mobile-menu-toggle:active {
    transform: scale(0.95);
  }

  .mobile-menu-toggle:focus {
    box-shadow: 0 0 0 3px rgba(229, 202, 16, 0.3);
  }

  /* Overlay oscuro */
  .mobile-menu-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9998;
    opacity: 0;
    transition: opacity 0.3s ease;
    backdrop-filter: blur(2px);
  }

  .mobile-menu-overlay.open {
    display: block;
    opacity: 1;
  }

  /* Menú hamburguesa */
  .mobile-menu {
    display: none;
    position: fixed;
    top: 0;
    right: -75vw; /* Inicialmente oculto a la derecha */
    width: 75vw;
    max-width: 320px; /* Máximo ancho para pantallas muy grandes */
    height: 100vh;
    background: var(--color-bg-primary);
    z-index: 9999;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
    transition: right 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
  }

  .mobile-menu.open {
    right: 0; /* Se desliza hacia la izquierda */
  }

  /* Header del menú mobile */
  .mobile-menu-header {
    background: linear-gradient(
      135deg,
      var(--color-primary) 0%,
      var(--color-primary-dark) 100%
    );
    color: white;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    min-height: 120px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  }

  .mobile-menu-logo img {
    max-width: 60px;
    height: auto;
    margin-bottom: 10px;
    filter: brightness(1.1);
  }

  .mobile-menu-welcome {
    font-size: var(--font-size-sm);
    font-weight: 500;
    text-align: center;
    margin-bottom: 10px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  }

  .mobile-menu-close {
    position: absolute;
    top: 15px;
    right: 15px;
    background: transparent;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
    outline: none;
  }

  .mobile-menu-close:hover {
    background: rgba(255, 255, 255, 0.15);
  }

  .mobile-menu-close:focus {
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.3);
  }

  /* Contenido del menú */
  .mobile-menu-content {
    flex: 1;
    padding: 10px 0;
    overflow-y: auto;
  }

  .mobile-nav-menu {
    display: flex;
    flex-direction: column;
  }

  .mobile-nav-item {
    display: flex;
    align-items: center;
    padding: 10px 18px;
    color: var(--color-text-primary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    font-weight: 500;
    border-bottom: 1px solid var(--color-border-primary);
    transition: all 0.2s ease;
    position: relative;
    min-height: 42px;
  }

  .mobile-nav-item:hover {
    background: var(--color-bg-hover);
    color: var(--color-primary);
    transform: translateX(4px);
  }

  .mobile-nav-item.active {
    background: rgba(127, 2, 166, 0.08);
    color: var(--color-primary);
    border-left: 4px solid var(--color-primary);
    font-weight: 600;
  }

  .mobile-nav-item.active::before {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 6px;
    background: var(--color-primary);
    border-radius: 50%;
  }

  .mobile-nav-item i {
    font-size: 15px;
    margin-right: 12px;
    width: 18px;
    text-align: center;
    transition: transform 0.2s ease;
  }

  .mobile-nav-item:hover i {
    transform: scale(1.1);
  }

  .mobile-nav-item span {
    flex: 1;
  }

  /* Footer del menú mobile */
  .mobile-menu-footer {
    border-top: 1px solid var(--color-border-primary);
    padding: 15px;
    background: var(--color-bg-secondary);
    margin-top: auto;
  }

  .mobile-version-info {
    display: flex;
    align-items: center;
    padding: 6px 0;
    color: var(--color-text-secondary);
    font-size: 10px;
    cursor: pointer;
    transition: color 0.2s ease;
    border-bottom: 1px solid var(--color-border-primary);
    margin-bottom: 6px;
  }

  .mobile-version-info:hover {
    color: var(--color-primary);
  }

  .mobile-version-info i {
    margin-right: 4px;
    font-size: 10px;
  }

  .mobile-logout-item {
    display: flex;
    align-items: center;
    padding: 8px 0;
    color: var(--color-secondary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    font-weight: 500;
    transition: all 0.2s ease;
  }

  .mobile-logout-item:hover {
    color: var(--color-secondary-dark);
    transform: translateX(4px);
  }

  .mobile-logout-item i {
    margin-right: 10px;
    font-size: 14px;
    transition: transform 0.2s ease;
  }

  .mobile-logout-item:hover i {
    transform: scale(1.1);
  }

  /* Prevenir scroll del body cuando el menú está abierto */
  body.mobile-menu-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
  }

  /* Animación de entrada del botón */
  @keyframes fadeInScale {
    from {
      opacity: 0;
      transform: scale(0.8);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  /* Media queries para mostrar solo en mobile */
  @media (max-width: 768px) {
    .mobile-menu-toggle {
      display: flex;
      align-items: center;
      justify-content: center;
      animation: fadeInScale 0.3s ease;
    }

    .mobile-menu {
      display: flex;
    }

    /* Ajustar ancho en pantallas muy pequeñas */
    @media (max-width: 480px) {
      .mobile-menu {
        width: 85vw;
        right: -85vw;
      }
    }

    /* Ajustar overlay para pantallas pequeñas */
    .mobile-menu.open + .mobile-menu-overlay {
      left: 0;
      width: 25vw;
    }
  }

  /* Asegurar que en desktop no se muestre */
  @media (min-width: 769px) {
    .mobile-menu-toggle,
    .mobile-menu,
    .mobile-menu-overlay {
      display: none !important;
    }
  }
}

/* ========================================
   SIDEBAR STATES OVERRIDES
   ======================================== */
@media (min-width: 769px) {
  :root {
    --sidebar-width-expanded-state: clamp(228px, 16vw, 278px);
    --sidebar-width-collapsed-state: clamp(72px, 5.5vw, 84px);
    --sidebar-accent-lista-precios: #00ced1;
    --sidebar-accent-lista-precios-rgb: 0, 206, 209;
    --sidebar-accent-clientes: #8b5cf6;
    --sidebar-accent-clientes-rgb: 139, 92, 246;
    --sidebar-accent-proveedores: #8b4513;
    --sidebar-accent-proveedores-rgb: 139, 69, 19;
    --sidebar-accent-configuracion: #111111;
    --sidebar-accent-configuracion-rgb: 17, 17, 17;
    --sidebar-accent-facturacion: #6c757d;
    --sidebar-accent-facturacion-rgb: 108, 117, 125;
    --sidebar-accent-pedidos: #ffc107;
    --sidebar-accent-pedidos-rgb: 255, 193, 7;
    --sidebar-accent-ventas: #28a745;
    --sidebar-accent-ventas-rgb: 40, 167, 69;
    --sidebar-accent-cobranzas: #007bff;
    --sidebar-accent-cobranzas-rgb: 0, 123, 255;
    --sidebar-accent-historial: #228b22;
    --sidebar-accent-historial-rgb: 34, 139, 34;
    --sidebar-accent-compras: #fd7e14;
    --sidebar-accent-compras-rgb: 253, 126, 20;
    --sidebar-accent-precios: #dc3545;
    --sidebar-accent-precios-rgb: 220, 53, 69;
  }

  html.sidebar-state-pending #sidebar,
  html.sidebar-state-pending #sidebar ~ .main-content {
    transition: none !important;
  }

  html.sidebar-state-ready #sidebar,
  html.sidebar-state-ready #sidebar:not(.overlay-mode),
  html.sidebar-state-ready #sidebar:not(.overlay-mode).collapsed,
  html.sidebar-state-ready #sidebar.expanded {
    transition: width var(--transition-normal), box-shadow var(--transition-normal) !important;
  }

  html.sidebar-state-ready #sidebar ~ .main-content {
    transition: width var(--transition-normal), margin-left var(--transition-normal) !important;
  }

  html[data-sidebar-state="expanded"] #sidebar,
  #sidebar.expanded {
    width: var(--sidebar-width-expanded-state) !important;
    overflow: hidden !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar,
  #sidebar.collapsed,
  #sidebar:not(.overlay-mode).collapsed {
    width: var(--sidebar-width-collapsed-state) !important;
    overflow: visible !important;
  }

  html[data-sidebar-state="expanded"] #sidebar ~ .main-content,
  #sidebar.expanded ~ .main-content {
    width: calc(100% - var(--sidebar-width-expanded-state)) !important;
    margin-left: var(--sidebar-width-expanded-state) !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar ~ .main-content,
  #sidebar.collapsed ~ .main-content {
    width: calc(100% - var(--sidebar-width-collapsed-state)) !important;
    margin-left: var(--sidebar-width-collapsed-state) !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .sidebar-content,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-footer,
  #sidebar.collapsed .sidebar-content,
  #sidebar.collapsed .sidebar-footer {
    overflow: visible !important;
  }

  #sidebar,
  #sidebar .sidebar-content {
    overflow: hidden !important;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  #sidebar::-webkit-scrollbar,
  #sidebar .sidebar-content::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
  }

  #sidebar .sidebar-brand-mark {
    grid-area: brand;
  }

  #sidebar .welcome-message {
    grid-area: welcome;
  }

  #sidebar .nav-item {
    --nav-item-accent: var(--color-primary);
    --nav-item-accent-rgb: var(--color-primary-rgb, 127, 2, 166);
    --nav-item-tooltip-text: #ffffff;
  }

  #sidebar .nav-lista-precios {
    --nav-item-accent: var(--sidebar-accent-lista-precios);
    --nav-item-accent-rgb: var(--sidebar-accent-lista-precios-rgb);
    --nav-item-tooltip-text: #04383a;
  }

  #sidebar .nav-clientes {
    --nav-item-accent: var(--sidebar-accent-clientes);
    --nav-item-accent-rgb: var(--sidebar-accent-clientes-rgb);
  }

  #sidebar .nav-proveedores {
    --nav-item-accent: var(--sidebar-accent-proveedores);
    --nav-item-accent-rgb: var(--sidebar-accent-proveedores-rgb);
  }

  #sidebar .nav-configuracion {
    --nav-item-accent: var(--sidebar-accent-configuracion);
    --nav-item-accent-rgb: var(--sidebar-accent-configuracion-rgb);
  }

  #sidebar .nav-facturacion {
    --nav-item-accent: var(--sidebar-accent-facturacion);
    --nav-item-accent-rgb: var(--sidebar-accent-facturacion-rgb);
  }

  #sidebar .nav-pedidos {
    --nav-item-accent: var(--sidebar-accent-pedidos);
    --nav-item-accent-rgb: var(--sidebar-accent-pedidos-rgb);
    --nav-item-tooltip-text: #3f3200;
  }

  #sidebar .nav-ventas {
    --nav-item-accent: var(--sidebar-accent-ventas);
    --nav-item-accent-rgb: var(--sidebar-accent-ventas-rgb);
  }

  #sidebar .nav-cobranzas {
    --nav-item-accent: var(--sidebar-accent-cobranzas);
    --nav-item-accent-rgb: var(--sidebar-accent-cobranzas-rgb);
  }

  #sidebar .nav-historial-ventas {
    --nav-item-accent: var(--sidebar-accent-historial);
    --nav-item-accent-rgb: var(--sidebar-accent-historial-rgb);
  }

  #sidebar .nav-compras {
    --nav-item-accent: var(--sidebar-accent-compras);
    --nav-item-accent-rgb: var(--sidebar-accent-compras-rgb);
  }

  #sidebar .nav-precios {
    --nav-item-accent: var(--sidebar-accent-precios);
    --nav-item-accent-rgb: var(--sidebar-accent-precios-rgb);
  }

  #sidebar .nav-item .nav-icon {
    color: var(--nav-item-accent) !important;
  }

  #sidebar .nav-item:not(.nav-item-disabled):hover,
  #sidebar .nav-item.active {
    color: var(--nav-item-accent);
    border-color: rgba(var(--nav-item-accent-rgb), 0.26);
    background: linear-gradient(
      180deg,
      rgba(var(--nav-item-accent-rgb), 0.14),
      rgba(var(--nav-item-accent-rgb), 0.04)
    );
    box-shadow: 0 10px 18px rgba(var(--nav-item-accent-rgb), 0.12);
  }

  #sidebar .nav-item:not(.nav-item-disabled):hover .nav-icon,
  #sidebar .nav-item.active .nav-icon {
    color: var(--nav-item-accent) !important;
  }

  #sidebar .nav-item-disabled {
    pointer-events: auto;
    color: #64748b;
  }

  #sidebar .nav-item-disabled .nav-icon {
    color: var(--nav-item-accent) !important;
    opacity: 0.9;
  }

  #sidebar .nav-section-disabled .nav-item {
    --nav-item-accent: #9ca3af;
    --nav-item-accent-rgb: 156, 163, 175;
    --nav-item-tooltip-text: #111827;
    background: linear-gradient(180deg, #f5f6f8, #eef1f4);
    border-color: #d6dbe1;
    color: #6b7280;
    filter: grayscale(1) saturate(0.15);
    box-shadow: none;
    cursor: not-allowed;
  }

  #sidebar .nav-section-disabled .nav-item .nav-icon {
    color: #9ca3af !important;
    opacity: 1;
  }

  #sidebar .nav-section-disabled .nav-item .nav-text {
    color: #6b7280 !important;
  }

  #sidebar .sidebar-toggle-btn {
    --nav-item-accent: var(--color-primary-dark);
    --nav-item-tooltip-text: #ffffff;
  }

  #sidebar .version-info {
    --nav-item-accent: var(--color-primary);
    --nav-item-tooltip-text: #ffffff;
  }

  #sidebar .logout-item {
    --nav-item-accent: var(--color-secondary);
    --nav-item-tooltip-text: #ffffff;
  }

  #sidebar .sidebar-company-mark {
    grid-area: company;
    justify-self: end;
  }

  #sidebar.expanded .sidebar-header {
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    grid-template-areas: "brand welcome company";
    gap: 10px;
    padding: 14px 12px;
  }

  html[data-sidebar-state="collapsed"] #sidebar .sidebar-header,
  #sidebar.collapsed .sidebar-header {
    grid-template-columns: 1fr;
    grid-template-areas: "brand";
    gap: 0;
    padding: 12px 8px;
    justify-items: center;
    text-align: center;
  }

  html[data-sidebar-state="collapsed"] #sidebar .sidebar-brand-mark,
  #sidebar.collapsed .sidebar-brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 12px;
  }

  html[data-sidebar-state="collapsed"] #sidebar .sidebar-company-mark,
  #sidebar.collapsed .sidebar-company-mark {
    display: none !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .welcome-message,
  #sidebar.collapsed .welcome-message {
    display: none !important;
  }

  #sidebar.expanded .nav-menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 12px 10px !important;
  }

  #sidebar.expanded .nav-item {
    min-height: 78px;
    padding: 10px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-align: center;
    border-left: 0;
    border-radius: 14px;
  }

  #sidebar.expanded .nav-icon {
    width: auto;
    margin-right: 0;
    font-size: 25px;
  }

  #sidebar.expanded .nav-text {
    width: auto !important;
    opacity: 1 !important;
    max-width: none !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-align: center !important;
    line-height: 1.2;
  }

  #sidebar.expanded .nav-item-disabled {
    border-style: dashed;
  }

  #sidebar.expanded .nav-section-disabled .nav-item {
    min-height: 54px;
    padding: 8px 6px;
    gap: 3px;
  }

  #sidebar.expanded .nav-section-disabled .nav-text {
    font-size: 10px;
    line-height: 1.15;
  }

  #sidebar.expanded .nav-item-disabled .nav-badge {
    margin-top: 2px;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section,
  #sidebar.collapsed .nav-section {
    gap: 0;
    padding-bottom: 14px;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section-title,
  #sidebar.collapsed .nav-section-title {
    display: none !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section-disabled .nav-section-title,
  #sidebar.collapsed .nav-section-disabled .nav-section-title {
    display: flex !important;
    justify-content: center;
    padding: 0 4px 6px !important;
    color: #9ca3af !important;
    font-size: 0 !important;
    letter-spacing: 0;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section-disabled .nav-section-title::before,
  html[data-sidebar-state="collapsed"] #sidebar .nav-section-disabled .nav-section-title::after,
  #sidebar.collapsed .nav-section-disabled .nav-section-title::before,
  #sidebar.collapsed .nav-section-disabled .nav-section-title::after {
    display: none !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section-disabled .nav-section-title::after,
  #sidebar.collapsed .nav-section-disabled .nav-section-title::after {
    content: "Proxim...";
    display: inline-block !important;
    font-size: 10px;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.03em;
    text-transform: none;
    color: #9ca3af;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section .nav-menu,
  #sidebar.collapsed .nav-section .nav-menu {
    padding-top: 10px !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-menu,
  #sidebar.collapsed .nav-menu {
    display: flex !important;
    flex-direction: column;
    gap: 8px !important;
    padding: 10px 8px !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-item,
  #sidebar.collapsed .nav-item {
    min-height: 44px;
    padding: 10px 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-left: 0;
    border-radius: 12px;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip],
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip],
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip],
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip],
  #sidebar.collapsed .nav-item[data-sidebar-tooltip],
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip],
  #sidebar.collapsed .version-info[data-sidebar-tooltip],
  #sidebar.collapsed .logout-item[data-sidebar-tooltip] {
    position: relative;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]::after,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]::after,
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip]::after,
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip]::after,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]::before,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]::after,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]::before,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]::after,
  #sidebar.collapsed .version-info[data-sidebar-tooltip]::before,
  #sidebar.collapsed .version-info[data-sidebar-tooltip]::after,
  #sidebar.collapsed .logout-item[data-sidebar-tooltip]::before,
  #sidebar.collapsed .logout-item[data-sidebar-tooltip]::after {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--transition-fast), transform var(--transition-fast),
      visibility var(--transition-fast);
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip]::before,
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip]::before,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]::before,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]::before,
  #sidebar.collapsed .version-info[data-sidebar-tooltip]::before,
  #sidebar.collapsed .logout-item[data-sidebar-tooltip]::before {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(100% + 6px);
    transform: translateY(-50%) translateX(-4px);
    border: 6px solid transparent;
    border-right-color: var(--nav-item-accent);
    z-index: calc(var(--z-sidebar-expanded) + 99);
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]::after,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]::after,
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip]::after,
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip]::after,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]::after,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]::after,
  #sidebar.collapsed .version-info[data-sidebar-tooltip]::after,
  #sidebar.collapsed .logout-item[data-sidebar-tooltip]::after {
    content: attr(data-sidebar-tooltip);
    position: absolute;
    top: 50%;
    left: calc(100% + 12px);
    transform: translateY(-50%) translateX(-4px);
    padding: 8px 12px;
    border-radius: 10px;
    background: var(--nav-item-accent);
    color: var(--nav-item-tooltip-text);
    font-size: 12px;
    font-weight: var(--font-weight-semibold);
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.16);
    z-index: calc(var(--z-sidebar-expanded) + 100);
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]:hover::before,
  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]:hover::after,
  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]:focus-visible::before,
  html[data-sidebar-state="collapsed"] #sidebar .nav-item[data-sidebar-tooltip]:focus-visible::after,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]:hover::before,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]:hover::after,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]:focus-visible::before,
  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn[data-sidebar-tooltip]:focus-visible::after,
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip]:hover::before,
  html[data-sidebar-state="collapsed"] #sidebar .version-info[data-sidebar-tooltip]:hover::after,
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip]:hover::before,
  html[data-sidebar-state="collapsed"] #sidebar .logout-item[data-sidebar-tooltip]:hover::after,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]:hover::before,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]:hover::after,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]:focus-visible::before,
  #sidebar.collapsed .nav-item[data-sidebar-tooltip]:focus-visible::after,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]:hover::before,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]:hover::after,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]:focus-visible::before,
  #sidebar.collapsed .sidebar-toggle-btn[data-sidebar-tooltip]:focus-visible::after,
  #sidebar.collapsed .version-info[data-sidebar-tooltip]:hover::before,
  #sidebar.collapsed .version-info[data-sidebar-tooltip]:hover::after,
  #sidebar.collapsed .logout-item[data-sidebar-tooltip]:hover::before,
  #sidebar.collapsed .logout-item[data-sidebar-tooltip]:hover::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-icon,
  #sidebar.collapsed .nav-icon {
    width: auto;
    margin-right: 0 !important;
    font-size: 22px;
    line-height: 1;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-text,
  #sidebar.collapsed .nav-text {
    display: none !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-badge,
  #sidebar.collapsed .nav-badge {
    display: none !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .nav-section-disabled .nav-item,
  #sidebar.collapsed .nav-section-disabled .nav-item {
    min-height: 44px;
    padding: 10px 0 !important;
    border-style: dashed;
  }

  #sidebar .sidebar-footer {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
  }

  #sidebar .sidebar-toggle-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 10px;
    border: 1px solid rgba(var(--color-primary-rgb), 0.14);
    border-radius: 12px;
    background: rgba(var(--color-primary-rgb), 0.06);
    color: var(--color-primary-dark);
    font: inherit;
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast),
      transform var(--transition-fast), color var(--transition-fast);
  }

  #sidebar .sidebar-toggle-btn:hover {
    background: rgba(var(--color-primary-rgb), 0.12);
    border-color: rgba(var(--color-primary-rgb), 0.24);
    transform: translateY(-1px);
  }

  #sidebar .sidebar-toggle-btn:focus-visible {
    outline: 2px solid rgba(var(--color-primary-rgb), 0.28);
    outline-offset: 2px;
  }

  #sidebar .sidebar-toggle-icon {
    font-size: 20px;
    line-height: 1;
  }

  #sidebar .sidebar-toggle-text {
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
  }

  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-btn,
  #sidebar.collapsed .sidebar-toggle-btn {
    justify-content: center;
  }

  html[data-sidebar-state="collapsed"] #sidebar .sidebar-toggle-text,
  #sidebar.collapsed .sidebar-toggle-text {
    display: none !important;
  }

  #sidebar .version-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-bottom: 0 !important;
    padding: 7px 9px !important;
    border-bottom: 0;
    border-radius: 12px;
  }

  html[data-sidebar-state="collapsed"] #sidebar .version-info,
  #sidebar.collapsed .version-info {
    min-height: 40px;
    padding: 10px 0 !important;
    gap: 0;
    font-size: 0 !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .version-info .material-symbols-outlined,
  #sidebar.collapsed .version-info .material-symbols-outlined {
    font-size: 18px;
  }

  #sidebar .logout-item {
    min-height: 40px;
    padding: 9px 10px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 12px;
    border: 1px solid rgba(220, 53, 69, 0.14);
  }

  #sidebar .logout-icon {
    margin-right: 0 !important;
    font-size: 18px;
  }

  #sidebar .logout-item .nav-text {
    width: auto !important;
    opacity: 1 !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-align: center !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .logout-item,
  #sidebar.collapsed .logout-item {
    justify-content: center;
    padding: 10px 0 !important;
  }

  html[data-sidebar-state="collapsed"] #sidebar .logout-item .nav-text,
  #sidebar.collapsed .logout-item .nav-text {
    display: none !important;
  }
}
