/* Modern SaaS Design with Sidebar Layout and Bootstrap Icons */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  /* Modern Color Palette - Light Mode */
  --primary: #3b82f6;
  --accent-primary: #3b82f6;
  --primary-dark: #2563eb;
  --primary-light: #60a5fa;
  --secondary: #64748b;
  --success: #10b981;
  --warning: #f59e0b;
  --danger: #ef4444;
  --info: #06b6d4;
  
  /* Background colors - Light Mode */
  --bg-primary: #ffffff;
  --bg-secondary: #f8fafc;
  --bg-tertiary: #f1f5f9;
  --bg-card: #ffffff;
  --bg-sidebar: #ffffff;
  --bg-sidebar-hover: #f8fafc;
  
  /* Text colors - Light Mode */
  --text-primary: #0f172a;
  --text-secondary: #475569;
  --text-muted: #94a3b8;
  --text-inverse: #ffffff;
  
  /* Border colors - Light Mode */
  --border-light: #e2e8f0;
  --border-medium: #cbd5e1;
  --border-dark: #94a3b8;
  
  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  
  /* Layout dimensions */
  --sidebar-width: 64px;
  --mobile-header-height: 60px;
  --border-radius: 6px;
  --border-radius-lg: 12px;
  --border-radius-xl: 16px;
}

/* Dark Mode Colors */
[data-theme="dark"] {
  --bg-primary: #0f172a;
  --bg-secondary: #1e293b;
  --bg-tertiary: #334155;
  --bg-card: #1e293b;
  --bg-sidebar: #0f172a;
  --bg-sidebar-hover: #1e293b;
  
  --text-primary: #f8fafc;
  --text-secondary: #cbd5e1;
  --text-muted: #94a3b8;
  --text-inverse: #0f172a;
  
  --border-light: #334155;
  --border-medium: #475569;
  --border-dark: #64748b;
  
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
  --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.4);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.4);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.4);
}

/* Auto detect system preference */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --bg-card: #1e293b;
    --bg-sidebar: #0f172a;
    --bg-sidebar-hover: #1e293b;
    
    --text-primary: #f8fafc;
    --text-secondary: #cbd5e1;
    --text-muted: #94a3b8;
    --text-inverse: #0f172a;
    
    --border-light: #334155;
    --border-medium: #475569;
    --border-dark: #64748b;
    
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
    --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.4);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.4);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.4), 0 8px 10px -6px rgb(0 0 0 / 0.4);
  }
}

/* Reset and base styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', roboto, sans-serif;
  background-color: var(--bg-secondary);
  color: var(--text-primary);
  line-height: 1.6;
  transition: background-color 0.2s ease, color 0.2s ease;
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
  font-variation-settings: normal;
  overflow-x: hidden; /* Prevenir scroll horizontal global */
}

html {
  overflow-x: hidden; /* Prevenir scroll horizontal en el root */
}

/* =========================
   SIDEBAR LAYOUT (DESKTOP)
   ========================= */

.app-layout {
  display: flex;
  min-height: 100vh;
}

.app-sidebar {
  position: fixed;
  left: 0;
  top: 0;
  width: var(--sidebar-width);
  height: 100vh;
  background-color: var(--bg-sidebar);
  border-right: 1px solid var(--border-light);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 0;
  z-index: 1000;
  transition: all 0.2s ease;
}

.sidebar-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-decoration: none;
  margin-bottom: 24px;
  font-size: 20px;
  transition: all 0.2s ease;
}

.sidebar-brand:hover {
  transform: scale(1.05);
  color: white;
}

.sidebar-logo {
  width: 40px;
  object-fit: contain;
  background: transparent;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 8px;
  flex: 1;
  padding: 0 12px;
}

.sidebar-nav-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--border-radius);
  color: var(--text-muted);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 18px;
}

.sidebar-nav-item:hover {
  background-color: var(--bg-sidebar-hover);
  color: var(--text-primary);
}

.sidebar-nav-item.active {
  background-color: var(--primary);
  color: white;
}

.sidebar-nav-item.active:hover {
  background-color: var(--primary-dark);
  color: white;
}

/* Tooltip for sidebar items */
.sidebar-nav-item[data-tooltip]:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 56px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--text-primary);
  color: var(--text-inverse);
  padding: 6px 12px;
  border-radius: var(--border-radius);
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  z-index: 1001;
  opacity: 0;
  animation: tooltipFadeIn 0.2s ease forwards;
  box-shadow: var(--shadow-md);
}

@keyframes tooltipFadeIn {
  from { opacity: 0; transform: translateY(-50%) translateX(-8px); }
  to { opacity: 1; transform: translateY(-50%) translateX(0); }
}

.sidebar-footer {
  margin-top: auto;
  padding: 0 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Main content area */
.app-main {
  margin-left: var(--sidebar-width);
  flex: 1;
  min-height: 100vh;
  background-color: var(--bg-secondary);
  transition: margin-left 0.2s ease;
}

/* =========================
   MOBILE HEADER
   ========================= */

.mobile-header {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--mobile-header-height);
  background-color: var(--bg-sidebar);
  border-bottom: 1px solid var(--border-light);
  z-index: 1000;
  padding: 0 16px;
  align-items: center;
  justify-content: space-between;
}

.mobile-header-brand {
  display: flex;
  align-items: center;
  color: var(--success);
  font-size: 24px;
  text-decoration: none;
}

.mobile-header-logo {
  height: 32px;
  width: auto;
  object-fit: contain;
  background: transparent;
}

/* =========================
   MOBILE HAMBURGER MENU
   ========================= */

/* Mobile Header con Hamburguesa */
.mobile-menu-toggle {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
  border-radius: var(--border-radius);
}

.mobile-menu-toggle:hover {
  background-color: var(--bg-tertiary);
}

.mobile-menu-toggle i {
  font-size: 20px;
  color: var(--text-primary);
  transition: all 0.3s ease;
}

/* Mostrar/ocultar íconos según estado del menú */
.mobile-menu-toggle.active #menuIcon {
  display: none !important;
}

.mobile-menu-toggle.active #closeIcon {
  display: block !important;
}

/* Overlay del Menu Móvil */
.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1098;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* Sidebar del Menu Móvil */
.mobile-menu-sidebar {
  position: fixed;
  top: 0;
  right: -350px;
  width: 320px;
  height: 100%;
  background-color: var(--bg-card);
  border-left: 1px solid var(--border-light);
  box-shadow: var(--shadow-xl);
  z-index: 1099;
  transition: all 0.3s ease;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.mobile-menu-sidebar.active {
  right: 0;
}

/* Header del Menu Móvil */
.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border-bottom: 1px solid var(--border-light);
  background-color: var(--bg-secondary);
}

.mobile-menu-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.mobile-menu-logo {
  width: 32px;
  height: 32px;
  border-radius: var(--border-radius);
}

.mobile-menu-title {
  font-weight: 600;
  font-size: 16px;
  color: var(--text-primary);
}

.mobile-menu-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--border-radius);
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 18px;
}

.mobile-menu-close:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Contenido del Menu */
.mobile-menu-content {
  flex: 1;
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.mobile-menu-section {
  padding: 0 20px;
}

.mobile-menu-section-title {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  margin-bottom: 12px;
  padding-left: 12px;
}

.mobile-menu-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  padding: 12px;
  border-radius: var(--border-radius-lg);
  color: var(--text-secondary);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 15px;
  font-weight: 500;
  width: 100%;
  margin-bottom: 4px;
  text-align: left;
}

.mobile-menu-item:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
  text-decoration: none;
}

.mobile-menu-item.active {
  background-color: var(--primary);
  color: white;
}

.mobile-menu-item i {
  font-size: 18px;
  width: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-menu-item span {
  flex: 1;
  text-align: left;
}

/* Modo oscuro para menu hamburguesa */
[data-theme="dark"] .mobile-menu-sidebar {
  background-color: var(--bg-card);
  border-left-color: var(--border-light);
}

[data-theme="dark"] .mobile-menu-header {
  background-color: var(--bg-secondary);
  border-bottom-color: var(--border-light);
}

[data-theme="dark"] .mobile-menu-overlay {
  background-color: rgba(0, 0, 0, 0.7);
}

/* Auto detect dark mode para menu hamburguesa */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .mobile-menu-sidebar {
    background-color: var(--bg-card);
    border-left-color: var(--border-light);
  }
  
  :root:not([data-theme="light"]) .mobile-menu-header {
    background-color: var(--bg-secondary);
    border-bottom-color: var(--border-light);
  }
  
  :root:not([data-theme="light"]) .mobile-menu-overlay {
    background-color: rgba(0, 0, 0, 0.7);
  }
}



/* Responsividad para pantallas más pequeñas */
@media (max-width: 480px) {
  .mobile-menu-sidebar {
    width: 280px;
    right: -300px;
  }
  
  .mobile-menu-content {
    gap: 20px;
  }
  
  .mobile-menu-header {
    padding: 16px;
  }
}

/* =========================
   RESPONSIVE DESIGN
   ========================= */

/* Ocultar menu móvil en desktop */
.mobile-header,
.mobile-menu-overlay,
.mobile-menu-sidebar {
  display: none;
}

@media (max-width: 768px) {
  .app-sidebar {
    display: none;
  }
  
  .mobile-header,
  .mobile-menu-overlay,
  .mobile-menu-sidebar {
    display: flex;
  }
  
  .mobile-menu-overlay,
  .mobile-menu-sidebar {
    display: block;
  }
  
  .app-main {
    margin-left: 0;
    padding-top: var(--mobile-header-height);
  }
}

/* =========================
   MAIN CONTENT STYLES
   ========================= */

.main-content {
  padding: 24px;
  min-height: 100vh;
}

@media (max-width: 768px) {
  .main-content {
    padding: 16px;
    min-height: calc(100vh - var(--mobile-header-height));
    overflow-x: hidden;
    width: 100%;
    max-width: calc(100vw - 32px); /* Usar viewport width para asegurar límites */
    box-sizing: border-box;
  }
  
  .main-content .row {
    margin: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .main-content .col-12,
  .main-content .col-lg-8,
  .main-content .col-lg-4 {
    padding: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  
  /* Asegurar que todas las cards no excedan el ancho */
  .main-content .modern-card {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
    margin: 0;
  }
  
  /* Forzar que NINGÚN elemento hijo cause overflow */
  .main-content * {
    max-width: 100%;
    box-sizing: border-box;
  }
  
  /* Excepción solo para el contenido de la tabla que debe hacer scroll */
  .main-content .modern-table table {
    max-width: none;
  }
}

/* =========================
   MODERN COMPONENTS
   ========================= */

/* Cards */
.modern-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow);
  padding: 24px;
  transition: all 0.2s ease;
}

.modern-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--border-medium);
}

.modern-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-light);
}

.modern-card-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Stats Grid */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-bottom: 32px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.stats-card {
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: white;
  border-radius: var(--border-radius-lg);
  padding: 24px;
  box-shadow: var(--shadow-lg);
  transition: transform 0.2s ease;
}

.stats-card:hover {
  transform: translateY(-2px);
}

.stats-card.success {
  background: linear-gradient(135deg, var(--success), #059669);
}

.stats-card.warning {
  background: linear-gradient(135deg, var(--warning), #d97706);
}

.stats-card.danger {
  background: linear-gradient(135deg, var(--danger), #dc2626);
}

.stats-card-content {
  display: flex;
  align-items: center;
  gap: 16px;
}

.stats-card-icon {
  font-size: 32px;
  opacity: 0.9;
}

.stats-card-info h3 {
  font-size: 28px;
  font-weight: 700;
  margin: 0 0 4px 0;
}

.stats-card-info p {
  margin: 0;
  opacity: 0.9;
  font-size: 14px;
  font-weight: 500;
}

/* Responsive Stats Grid */
@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
    padding: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .stats-card {
    padding: 20px;
  }
  
  .stats-card-content {
    gap: 12px;
  }
  
  .stats-card-icon {
    font-size: 28px;
  }
  
  .stats-card-info h3 {
    font-size: 24px;
  }
}

@media (max-width: 576px) {
  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 20px;
    padding: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .stats-card {
    padding: 16px;
  }
  
  .stats-card-content {
    gap: 10px;
    flex-direction: column;
    text-align: center;
  }
  
  .stats-card-icon {
    font-size: 24px;
  }
  
  .stats-card-info h3 {
    font-size: 20px;
    margin-bottom: 2px;
  }
  
  .stats-card-info p {
    font-size: 12px;
  }
}

@media (max-width: 480px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    padding: 0;
    margin-bottom: 16px;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .stats-card {
    padding: 12px;
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .stats-card-content {
    gap: 8px;
  }
  
  .stats-card-icon {
    font-size: 20px;
  }
  
  .stats-card-info h3 {
    font-size: 18px;
    margin-bottom: 0;
  }
  
  .stats-card-info p {
    font-size: 11px;
    margin: 0;
  }
}

/* Responsive Page Headers */
@media (max-width: 768px) {
  .d-flex.justify-content-between.align-items-center {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px;
  }
  
  .d-flex.justify-content-between.align-items-center h1 {
    font-size: 24px !important;
    margin-bottom: 0 !important;
  }
  
  .d-flex.justify-content-between.align-items-center .btn-modern {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 576px) {
  .d-flex.justify-content-between.align-items-center h1 {
    font-size: 20px !important;
  }
  
  .d-flex.justify-content-between.align-items-center h1 i {
    font-size: 18px !important;
  }
  
  .main-content .h3 {
    font-size: 20px !important;
  }
}

/* Responsive Filter Buttons */
@media (max-width: 768px) {
  .modern-card-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }
  
  .modern-card-header > div[style*="display: flex"] {
    width: 100%;
    max-width: 100%;
    flex-wrap: wrap;
    gap: 6px !important;
    overflow-x: hidden;
  }
  
  .filter-btn {
    flex: 1;
    min-width: 70px;
    max-width: calc(25% - 5px);
    justify-content: center;
    padding: 6px 8px;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (max-width: 576px) {
  .modern-card-header > div[style*="display: flex"] {
    flex-direction: row;
    gap: 4px !important;
    justify-content: space-between;
  }
  
  .filter-btn {
    flex: 1;
    max-width: none;
    width: auto;
    padding: 6px 4px;
    font-size: 11px;
    min-width: 60px;
  }
  
  .modern-card-title {
    font-size: 16px !important;
  }
}

/* Responsive Tables - Con Scroll Horizontal SOLO en la tabla */
@media (max-width: 768px) {
  .modern-table {
    overflow: auto;
    width: 100%;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    /* Contener el scroll dentro del contenedor */
    display: block;
    white-space: nowrap;
  }
  
  .modern-table table {
    min-width: 650px; /* Reducido para evitar overflow excesivo */
    width: auto;
    table-layout: auto;
    margin: 0;
  }
  
  .modern-table th,
  .modern-table td {
    padding: 8px 12px;
    font-size: 13px;
    white-space: nowrap;
    min-width: fit-content;
  }
  
  /* Anchos específicos más controlados */
  .leads-table th:nth-child(1), .leads-table td:nth-child(1) { min-width: 140px; max-width: 200px; } /* Nombre */
  .leads-table th:nth-child(2), .leads-table td:nth-child(2) { min-width: 110px; max-width: 140px; } /* Teléfono */
  .leads-table th:nth-child(3), .leads-table td:nth-child(3) { min-width: 90px; max-width: 120px; } /* Estado */
  .leads-table th:nth-child(4), .leads-table td:nth-child(4) { min-width: 100px; max-width: 130px; } /* Fecha */
  .leads-table th:nth-child(5), .leads-table td:nth-child(5) { min-width: 180px; max-width: 220px; } /* Acciones */
}

@media (max-width: 576px) {
  .modern-table th,
  .modern-table td {
    padding: 6px 8px;
    font-size: 12px;
  }
  
  .modern-table table {
    min-width: 550px; /* Reducido para móviles */
  }
  
  /* Anchos más compactos para móviles */
  .leads-table th:nth-child(1), .leads-table td:nth-child(1) { min-width: 120px; max-width: 160px; }
  .leads-table th:nth-child(2), .leads-table td:nth-child(2) { min-width: 100px; max-width: 120px; }
  .leads-table th:nth-child(3), .leads-table td:nth-child(3) { min-width: 80px; max-width: 100px; }
  .leads-table th:nth-child(4), .leads-table td:nth-child(4) { min-width: 90px; max-width: 110px; }
  .leads-table th:nth-child(5), .leads-table td:nth-child(5) { min-width: 150px; max-width: 180px; }
}

/* Responsive Actions in Table - Optimizado para Scroll Horizontal */
@media (max-width: 768px) {
  /* Contenedor de acciones compacto pero horizontal */
  .leads-table td div[style*="display: flex"] {
    flex-wrap: nowrap !important;
    gap: 4px !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }
  
  /* Botones más pequeños pero legibles */
  .leads-table .btn-modern {
    padding: 5px 8px !important;
    font-size: 11px !important;
    min-width: 30px !important;
    height: 30px !important;
    flex-shrink: 0;
  }
  
  /* Selector de estado compacto */
  .leads-table .modern-form-input {
    max-width: 85px !important;
    padding: 4px 6px !important;
    font-size: 11px !important;
    height: 30px !important;
    flex-shrink: 0;
  }
  
  /* Badges compactos */
  .leads-table .badge-modern {
    font-size: 10px !important;
    padding: 2px 6px !important;
    white-space: nowrap;
  }
  
  /* Nombres con mejor wrapping */
  .leads-table .lead-name {
    font-size: 13px !important;
    line-height: 1.3 !important;
    white-space: normal !important;
    word-break: break-word;
  }
  
  .leads-table small {
    font-size: 11px !important;
    white-space: normal !important;
  }
}

@media (max-width: 576px) {
  /* Mantener scroll horizontal también en móviles */
  .leads-table .btn-modern {
    padding: 4px 6px !important;
    font-size: 10px !important;
    min-width: 28px !important;
    height: 28px !important;
  }
  
  .leads-table .modern-form-input {
    max-width: 75px !important;
    padding: 3px 5px !important;
    font-size: 10px !important;
    height: 28px !important;
  }
  
  .leads-table .badge-modern {
    font-size: 9px !important;
    padding: 1px 4px !important;
  }
  
  .leads-table .lead-name {
    font-size: 12px !important;
  }
  
  .leads-table small {
    font-size: 10px !important;
  }
}

/* Contact Section Headers */
.contact-section-header {
  padding: 12px 16px 8px 16px;
  background: var(--bg-tertiary);
  border-bottom: 1px solid var(--border-light);
  position: sticky;
  top: 0;
  z-index: 2;
}

.contact-section-header h6 {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
}

.contact-section-header h6 i {
  color: var(--accent-primary);
  font-size: 14px;
}

/* Separación visual entre secciones */
.contact-section-header:first-child {
  margin-top: 0;
}

.contact-section-header + .contact-item {
  border-top: none;
}

/* Responsive Contact Sections */
@media (max-width: 768px) {
  .contact-section-header {
    padding: 10px 12px 6px 12px;
  }
  
  .contact-section-header h6 {
    font-size: 11px;
  }
  
  .contact-section-header h6 i {
    font-size: 12px;
  }
}

/* Modern Table */
.modern-table {
  background-color: var(--bg-card);
  border-radius: var(--border-radius-lg);
  overflow: auto;
  box-shadow: var(--shadow);
  border: 1px solid var(--border-light);
}

.modern-table table {
  width: 100%;
  border-collapse: collapse;
}

.modern-table th {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
  font-weight: 600;
  text-align: left;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-light);
  font-size: 14px;
}

.modern-table td {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border-light);
  color: var(--text-primary);
  vertical-align: middle;
}

.modern-table tr:hover {
  background-color: var(--bg-tertiary);
}

.modern-table tr:last-child td {
  border-bottom: none;
}

/* Modern Buttons */
.btn-modern {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: none;
  border-radius: var(--border-radius);
  font-weight: 500;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  white-space: nowrap;
  font-family: inherit;
}

.btn-modern-primary {
  background-color: var(--primary);
  color: white;
}

.btn-modern-primary:hover {
  background-color: var(--primary-dark);
  color: white;
}

.btn-modern-secondary {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
  border: 1px solid var(--border-light);
}

.btn-modern-secondary:hover {
  background-color: var(--bg-secondary);
  border-color: var(--border-medium);
  color: var(--text-primary);
}

.btn-modern-success {
  background-color: var(--success);
  color: white;
}

.btn-modern-success:hover {
  background-color: #059669;
  color: white;
}

.btn-modern-danger {
  background-color: var(--danger);
  color: white;
}

.btn-modern-danger:hover {
  background-color: #dc2626;
  color: white;
}

.btn-modern-warning {
  background-color: var(--warning);
  color: white;
}

.btn-modern-warning:hover {
  background-color: #d97706;
  color: white;
}

/* Modern Badges */
.badge-modern {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.badge-nuevo {
  background-color: #dbeafe;
  color: var(--primary);
}

.badge-contactado {
  background-color: #dcfce7;
  color: var(--success);
}



.badge-cliente {
  background-color: #f3e8ff;
  color: #8b5cf6;
}

.badge-test {
  background-color: #fed7aa;
  color: #ea580c;
}

[data-theme="dark"] .badge-nuevo {
  background-color: #1e3a8a;
  color: #93c5fd;
}

[data-theme="dark"] .badge-contactado {
  background-color: #14532d;
  color: #86efac;
}



[data-theme="dark"] .badge-cliente {
  background-color: #581c87;
  color: #c4b5fd;
}

[data-theme="dark"] .badge-test {
  background-color: #9a3412;
  color: #fdba74;
}

/* Modern Form Elements */
.modern-form-group {
  margin-bottom: 20px;
}

.modern-form-label {
  display: block;
  margin-bottom: 6px;
  font-weight: 500;
  color: var(--text-primary);
  font-size: 14px;
}

.modern-form-input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius);
  background-color: var(--bg-card);
  color: var(--text-primary);
  font-size: 14px;
  transition: all 0.2s ease;
  font-family: inherit;
}

.modern-form-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgb(59 130 246 / 0.1);
}

.modern-form-input::placeholder {
  color: var(--text-muted);
}

/* =========================
   CHAT PAGE LAYOUT
   ========================= */

body.chat-page .app-main {
  margin-left: var(--sidebar-width);
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
}
body.chat-page .container-fluid {
  padding-inline: 0;
}

@media (min-width: 769px) {
  body.chat-page .container-fluid {
    padding-left: 0;
  }
}

@media (max-width: 768px) {
  body.chat-page .app-main {
    margin-left: 0;
    padding-top: var(--mobile-header-height);
    height: calc(100vh - var(--mobile-header-height));
  }
}

.chat-container {
  display: grid;
  grid-template-columns: 320px 1fr;
  height: 100vh;
  overflow: hidden;
}

@media (max-width: 768px) {
  .chat-container {
    grid-template-columns: 1fr;
    height: calc(100vh - var(--mobile-header-height));
  }
}

/* =========================
   CHAT SIDEBAR (CONTACTOS)
   ========================= */

.chat-sidebar {
  background-color: var(--bg-card);
  border-right: 1px solid var(--border-light);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}

@media (max-width: 768px) {
  .chat-sidebar {
    position: fixed;
    top: var(--mobile-header-height);
    left: -320px;
    width: 320px;
    height: calc(100vh - var(--mobile-header-height));
    z-index: 1000;
    transition: left 0.3s ease;
    box-shadow: var(--shadow-xl);
  }
  
  .chat-sidebar.mobile-open {
    left: 0;
  }
}

/* Header del Sidebar de Contactos */
.contacts-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border-bottom: 1px solid var(--border-light);
  background-color: var(--bg-card);
  flex-shrink: 0;
}

.contacts-title {
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: 600;
  color: var(--text-primary);
}

.contacts-title i {
  color: var(--primary);
  font-size: 20px;
}

.contacts-count .badge-modern {
  font-size: 11px;
  padding: 4px 8px;
}

/* Lista de Contactos */
.contacts-list {
  flex: 1;
  overflow-y: auto;
}

.empty-contacts {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
  color: var(--text-muted);
  height: 100%;
}

.empty-contacts i {
  font-size: 3rem;
  margin-bottom: 16px;
  opacity: 0.5;
}

.empty-contacts p {
  font-weight: 500;
  margin-bottom: 4px;
  color: var(--text-secondary);
}

.empty-contacts small {
  font-size: 12px;
}

/* Items de Contacto */
.contact-item {
  display: flex;
  align-items: center;
  padding: 12px 20px;
  cursor: pointer;
  transition: all 0.2s ease;
  border-bottom: 1px solid transparent;
  position: relative;
}

.contact-item:hover {
  background-color: var(--bg-tertiary);
}

.contact-item.active {
  background-color: var(--primary);
  color: white;
}

.contact-item.active .contact-name,
.contact-item.active .contact-phone {
  color: white;
}

/* Estilos específicos para status-badge en contacto activo en modo claro */


.contact-item.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background-color: var(--primary-light);
}

.contact-avatar {
  margin-right: 12px;
  flex-shrink: 0;
}

.contact-avatar i {
  font-size: 36px;
  color: var(--text-muted);
}

.contact-item.active .contact-avatar i {
  color: rgba(255, 255, 255, 0.9);
}

.contact-info {
  flex: 1;
  min-width: 0;
}

.contact-name {
  font-weight: 600;
  font-size: 15px;
  color: var(--text-primary);
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.contact-phone {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.contact-status {
  margin-top: 4px;
}

.status-badge {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 10px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
}

.contact-unread {
  margin-left: 8px;
  flex-shrink: 0;
}

.unread-count {
  background-color: var(--success);
  color: white;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 7px;
  border-radius: 10px;
  min-width: 18px;
  text-align: center;
  display: inline-block;
}

/* =========================
   CHAT MAIN AREA
   ========================= */

.chat-main {
  display: flex;
  flex-direction: column;
  background-color: var(--bg-primary);
  height: 100vh;
  overflow: hidden;
}

@media (max-width: 768px) {
  .chat-main {
    height: calc(100vh - var(--mobile-header-height));
  }
}

/* Header Principal del Chat */
.chat-main-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border-light);
  background-color: var(--bg-card);
  flex-shrink: 0;
  min-height: 72px;
  max-height: 72px;
}

.chat-contact-info {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0; /* Permite que los elementos hijos se encojan */
  overflow: hidden; /* Previene overflow del contenedor */
}

@media (max-width: 768px) {
  .chat-contact-info {
    gap: 0;
  }
}

@media (min-width: 769px) {
  .chat-contact-info {
    gap: 12px;
  }
}

@media (max-width: 768px) {
  .chat-contact-avatar {
    margin-right: 8px;
  }
}

.chat-contact-avatar i {
  font-size: 40px;
  color: var(--text-muted);
}

.chat-contact-details {
  display: flex;
  align-items: end;
  gap: 8px;
}

.chat-contact-details h4 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text-primary);
}

.chat-contact-details small {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.2;
  display: block;
}

.chat-actions {
  display: flex;
  gap: 8px;
}

.chat-action-btn {
  width: 40px;
  height: 40px;
  border: none;
  background: none;
  border-radius: var(--border-radius);
  color: var(--text-muted);
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat-action-btn:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Responsive para móviles - Botones del header más compactos */
@media (max-width: 768px) {
  .chat-actions {
    gap: 4px; /* Reducir gap entre botones */
  }
  
  .chat-action-btn {
    width: 36px; /* Reducir ancho */
    height: 36px; /* Reducir alto */
    font-size: 16px; /* Ajustar tamaño de icono */
    padding: 0; /* Eliminar padding interno */
  }
  
  /* Asegurar que dropdowns se ajusten */
  .chat-actions .dropdown-menu {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .chat-actions {
    gap: 2px; /* Aún más compacto en pantallas muy pequeñas */
  }
  
  .chat-action-btn {
    width: 32px;
    height: 32px;
    font-size: 14px;
  }
}

/* Área de Mensajes */
.chat-messages-area {
  flex: 1;
  padding: 20px;
  overflow-y: auto;
  background-color: var(--bg-secondary);
  background-image: url('img/chat-bg-light.jpg');
  background-size: 475px;
  background-position: center;
  background-repeat: repeat;
  background-attachment: fixed;
  min-height: 0;
  max-height: calc(100vh - 140px);
  position: relative;
}

@media (max-width: 768px) {
  .chat-messages-area {
    max-height: calc(100vh - var(--mobile-header-height) - 124px);
  }
}

[data-theme="dark"] .chat-messages-area {
  background-image: url('img/chat-bg-dark.jpg');
}

/* Estado Sin Chat Seleccionado */
.no-chat-selected {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  text-align: center;
  color: var(--text-muted);
  padding: 40px 20px;
}

.no-chat-icon {
  margin-bottom: 24px;
}

.no-chat-icon i {
  font-size: 4rem;
  opacity: 0.3;
  color: var(--primary);
}

.no-chat-selected h3 {
  color: var(--text-primary);
  font-weight: 600;
  margin-bottom: 8px;
  font-size: 24px;
}

.no-chat-selected p {
  font-size: 16px;
  margin-bottom: 32px;
  max-width: 400px;
}

.welcome-features {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-wrap: wrap;
}

.feature-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px;
  min-width: 120px;
}

.feature-item i {
  font-size: 24px;
  color: var(--primary);
  margin-bottom: 4px;
}

.feature-item span {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
}

/* =========================
   CHAT INPUT AREA
   ========================= */

.chat-input-container {
  display: flex;
  align-items: flex-end;
  padding: 12px 16px;
  border-top: 1px solid var(--border-light);
  background-color: var(--bg-card);
  flex-shrink: 0;
  gap: 8px;
  min-height: 68px;
  transition: min-height 0.2s ease; /* Transición suave cuando cambia la altura */
}

/* Menú de herramientas con botón + */
.chat-tools-menu {
  position: relative;
  flex-shrink: 0;
  margin-bottom: 2px; /* Pequeño margen para alineación visual */
}

.tools-toggle-btn {
  width: 40px;
  height: 40px;
  border: none;
  background: var(--bg-tertiary);
  border-radius: 50%;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.tools-toggle-btn:hover {
  background-color: var(--primary);
  color: white;
  transform: rotate(45deg);
}

.tools-toggle-btn.active {
  background-color: var(--primary);
  color: white;
  transform: rotate(45deg);
}

/* Dropdown de herramientas */
.tools-dropdown {
  position: absolute;
  bottom: 50px;
  left: 0;
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-lg);
  padding: 8px;
  min-width: 160px;
  display: none;
  z-index: 1000;
  animation: fadeInUp 0.2s ease;
}

.tools-dropdown.show {
  display: block;
}

@keyframes fadeInUp {
  from { 
    opacity: 0; 
    transform: translateY(10px); 
  }
  to { 
    opacity: 1; 
    transform: translateY(0); 
  }
}

.tool-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 8px 12px;
  border: none;
  background: none;
  color: var(--text-primary);
  border-radius: var(--border-radius);
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 14px;
  text-align: left;
  margin-bottom: 4px;
}

.tool-item:last-child {
  margin-bottom: 0;
}

.tool-item:hover:not(:disabled) {
  background-color: var(--bg-tertiary);
}

.tool-item:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.tool-item i {
  font-size: 16px;
  color: var(--primary);
  width: 16px;
  text-align: center;
}

.tool-item:disabled i {
  color: var(--text-muted);
}

/* Input wrapper */
.chat-input-wrapper {
  flex: 1;
  display: flex;
  align-items: flex-end; /* Alinear al final para que se vea mejor con textarea */
}

.chat-message-input {
  width: 100%;
  padding: 10px 16px;
  border: 1px solid var(--border-light);
  border-radius: 20px;
  background-color: var(--bg-primary);
  color: var(--text-primary);
  font-size: 14px;
  transition: all 0.2s ease;
  outline: none;
  font-family: inherit;
  resize: none;
  line-height: 1.4;
  min-height: 42px;
  max-height: 120px;
  overflow-y: auto;
}

.chat-message-input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgb(59 130 246 / 0.1);
}

.chat-message-input::placeholder {
  color: var(--text-muted);
}

/* Scrollbar personalizado para el textarea */
.chat-message-input::-webkit-scrollbar {
  width: 4px;
}

.chat-message-input::-webkit-scrollbar-track {
  background: transparent;
}

.chat-message-input::-webkit-scrollbar-thumb {
  background: var(--border-light);
  border-radius: 2px;
}

.chat-message-input::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

/* Estilos para mensajes temporales de audio */
.audio-message.sending,
.audio-message.converting {
  background: var(--bg-light);
  border: 1px dashed var(--border-light);
  border-radius: 8px;
  padding: 12px;
  opacity: 0.8;
  color: black;
}

.audio-message.converting {
  border-color: var(--warning);
  background: #fff8e1;
}

.audio-info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}

.sending-indicator {
  margin-left: auto;
}

.message.sent.error {
  opacity: 0.7;
}

.message.sent.error .message-content {
  background: #ffe6e6;
  border-left: 3px solid var(--danger);
}

.retry-send-btn {
  margin-left: 8px;
  padding: 2px 6px;
  font-size: 12px;
}

/* Animación para spinner de envío */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.spinner-border-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.2em;
}

/* Botón dinámico Audio/Enviar */
.chat-action-button {
  flex-shrink: 0;
  margin-bottom: 2px; /* Pequeño margen para alineación visual */
  display: flex;
  align-items: center;
  gap: 8px; /* Espacio entre botones */
}

.chat-audio-btn,
.chat-send-btn,
.chat-cancel-btn {
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  color: white;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat-audio-btn {
  background-color: var(--primary);
  font-size: 18px;
}

.chat-audio-btn:hover:not(:disabled) {
  background-color: var(--primary-dark);
  transform: scale(1.05);
}

.chat-send-btn {
  background-color: var(--success);
  font-size: 16px;
}

.chat-send-btn:hover:not(:disabled) {
  background-color: #059669;
  transform: scale(1.05);
}

.chat-cancel-btn {
  background-color: var(--danger);
  font-size: 16px;
  /* margin-right removido - ahora se usa gap en el contenedor */
}

.chat-cancel-btn:hover:not(:disabled) {
  background-color: #dc2626;
  transform: scale(1.05);
}

/* Estados de grabación */
.chat-audio-btn.recording {
  background-color: var(--danger);
  animation: recording-pulse 1.5s infinite;
}

.chat-audio-btn.ready-to-send {
  background-color: var(--success);
}

@keyframes recording-pulse {
  0%, 100% { 
    opacity: 1;
    transform: scale(1);
  }
  50% { 
    opacity: 0.7;
    transform: scale(1.05);
  }
}

.chat-audio-btn:disabled,
.chat-send-btn:disabled,
.chat-cancel-btn:disabled {
  background-color: var(--text-muted);
  cursor: not-allowed;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .chat-input-container {
    padding: 10px 12px;
    gap: 6px;
    min-height: 64px;
  }
  
  .chat-tools-menu {
    margin-bottom: 1px;
  }
  
  .chat-action-button {
    margin-bottom: 1px;
  }
  
  .tools-toggle-btn {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }
  
  .chat-audio-btn,
  .chat-send-btn {
    width: 40px;
    height: 40px;
  }
  
  .chat-message-input {
    padding: 8px 14px;
    font-size: 13px;
  }
  
  .tools-dropdown {
    min-width: 140px;
    bottom: 46px;
  }
  
  .tool-item {
    padding: 6px 10px;
    font-size: 13px;
  }
}

/* Safari iOS specific fix for keyboard covering input */
@supports (-webkit-touch-callout: none) {
  @media screen and (max-device-width: 812px) and (-webkit-min-device-pixel-ratio: 1) {
    /* Modern browsers with :has() support */
    .chat-input-container:has(input:focus),
    .chat-input-container:has(textarea:focus) {
      padding-bottom: 62px;
      transition: padding-bottom 0.3s ease;
    }
    
    /* Fallback for older Safari versions - JavaScript will add this class */
    .chat-input-container.ios-input-focused {
      padding-bottom: 62px;
      transition: padding-bottom 0.3s ease;
    }
  }
}

/* =========================
   CHAT MESSAGES STYLING
   ========================= */

.message {
  max-width: 70%;
  margin-bottom: 12px;
  padding: 12px 16px;
  border-radius: 18px;
  position: relative;
  animation: fadeIn 0.3s ease;
  width: fit-content;
}

.message.sent {
  background-color: #dcf8c6;
  margin-left: auto;
  border-bottom-right-radius: 4px;
  color: #000;
}

.message.received {
  background-color: var(--bg-card);
  border-bottom-left-radius: 4px;
  border: 1px solid var(--border-light);
  color: var(--text-primary);
}

[data-theme="dark"] .message.sent {
  background-color: #005c4b;
  color: white;
}

[data-theme="dark"] .message.received {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Estilo especial para mensajes de alta enviada */
.message.alta-enviada {
  background-color: rgba(138, 43, 226, 0.15) !important; /* Violeta transparente */
  border: 1px solid rgba(138, 43, 226, 0.3) !important;
}

[data-theme="dark"] .message.alta-enviada {
  background-color: rgba(138, 43, 226, 0.2) !important; /* Violeta transparente más visible en modo oscuro */
  border: 1px solid rgba(138, 43, 226, 0.4) !important;
}

.message p {
  margin: 0;
  word-wrap: break-word;
}

.message small {
  font-size: 0.75rem;
  color: #888;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-top: 4px;
  gap: 4px;
}

/* Message footer container */
.message-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 4px;
  gap: 6px;
}

/* Message action buttons styling */
.message-actions {
  display: flex;
  align-items: center;
  margin-left: 12px;
  gap: 6px;
  flex-grow: 1;
  justify-content: end;
}

.forward-btn, .copy-btn {
  background: none;
  border: none;
  color: #888;
  font-size: 0.75rem;
  padding: 4px 6px;
  border-radius: 4px;
  cursor: pointer;
  opacity: 1;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 20px;
  
  border: 1px solid var(--border-light);
  color: var(--text-secondary);
  font-size: 14px;
  padding: 4px 8px;
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 24px;
  background: transparent;
  border-color: var(--border-medium);
  color: var(--text-secondary);
}

/* Action buttons in received messages */
.message.received .forward-btn,
.message.received .copy-btn {
  color: var(--text-secondary);
}

/* Action buttons in sent messages */
.message.sent .forward-btn,
.message.sent .copy-btn {
  color: #888;
  border-color: #88888891;
}

.forward-btn:hover,
.copy-btn:hover {
  background-color: rgba(0, 0, 0, 0.1);
  color: var(--primary);
}

[data-theme="dark"] .forward-btn:hover,
[data-theme="dark"] .copy-btn:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--primary-light);
}

[data-theme="dark"] .message.received .forward-btn,
[data-theme="dark"] .message.received .copy-btn {
  color: var(--text-muted);
}

[data-theme="dark"] .message.sent .forward-btn,
[data-theme="dark"] .message.sent .copy-btn {
  color: var(--text-muted);
}

/* Reaction system styling */
.reaction-container {
  position: relative;
  display: inline-block;
}

.reaction-toggle-btn {
  background: var(--bg-secondary);
  border: 1px solid var(--border-light);
  color: var(--text-secondary);
  font-size: 14px;
  padding: 4px 8px;
  border-radius: 16px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 24px;
}

.reaction-toggle-btn:hover {
  background: var(--bg-tertiary);
  border-color: var(--border-medium);
  color: var(--primary);
}

.reaction-picker {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg-primary);
  border: 1px solid var(--border-light);
  border-radius: 20px;
  padding: 4px;
  display: none;
  gap: 2px;
  box-shadow: var(--shadow-lg);
  z-index: 1000;
  margin-bottom: 4px;
}

.reaction-option {
  background: transparent;
  border: none;
  font-size: 18px;
  padding: 6px 8px;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  line-height: 1;
  user-select: none;
}

.reaction-option:hover {
  background: var(--bg-secondary);
  transform: scale(1.1);
}

.reaction-option:active {
  transform: scale(0.9);
}

/* Floating reactions */
.floating-reaction {
  position: absolute;
  bottom: -8px;
  right: -8px;
  background: var(--bg-primary);
  border: 2px solid var(--primary);
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  box-shadow: var(--shadow);
  z-index: 10;
  animation: reactionPop 0.3s ease-out;
}

/* Reacciones del cliente (en nuestros mensajes) */
.floating-reaction.client-reaction {
  border-color: var(--success);
  background: var(--bg-primary);
}

/* Nuestras reacciones (en mensajes recibidos) */
.floating-reaction.our-reaction {
  border-color: var(--primary);
  background: var(--primary);
  color: white;
  bottom: -8px;
  left: -8px;
  right: auto;
}

/* Dark theme styles */
[data-theme="dark"] .reaction-toggle-btn {
  background: var(--bg-tertiary);
  border-color: var(--border-medium);
  color: var(--text-secondary);
}

[data-theme="dark"] .reaction-toggle-btn:hover {
  background: var(--bg-secondary);
  color: var(--primary-light);
}

[data-theme="dark"] .reaction-picker {
  background: var(--bg-secondary);
  border-color: var(--border-medium);
}

[data-theme="dark"] .reaction-option:hover {
  background: var(--bg-tertiary);
}

[data-theme="dark"] .floating-reaction {
  background: var(--bg-secondary);
  border-color: var(--primary-light);
}

[data-theme="dark"] .floating-reaction.client-reaction {
  border-color: var(--success);
  background: var(--bg-secondary);
}

[data-theme="dark"] .floating-reaction.our-reaction {
  border-color: var(--primary-light);
  background: var(--primary-light);
  color: var(--text-primary);
}

/* Animation for floating reactions */
@keyframes reactionPop {
  0% { 
    opacity: 0; 
    transform: scale(0.3) rotate(-10deg); 
  }
  50% { 
    opacity: 1; 
    transform: scale(1.1) rotate(5deg); 
  }
  100% { 
    opacity: 1; 
    transform: scale(1) rotate(0deg); 
  }
}

/* Reaction message styling */
.reaction-message {
  padding: 8px 12px;
  border-radius: 12px;
  background: linear-gradient(135deg, #f3f4f6, #e5e7eb);
  border: 1px solid var(--border-light);
  max-width: 200px;
}

.reaction-content {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: var(--text-primary);
  font-weight: 500;
}

[data-theme="dark"] .reaction-message {
  background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-secondary));
  border-color: var(--border-medium);
}

/* Animation for reaction feedback */
@keyframes fadeInOut {
  0% { opacity: 0; transform: translateY(-10px); }
  20% { opacity: 1; transform: translateY(0); }
  80% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(-10px); }
}

/* Forward Modal Styling */
.message-preview {
  border-radius: 8px;
  max-height: 150px;
  overflow-y: auto;
  color: var(--text-primary);
}


.contacts-list-forward {
  max-height: 250px;
  overflow-y: auto;
  border: 1px solid var(--border-light);
  border-radius: 6px;
}

.contact-item-forward {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-light);
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact-item-forward:last-child {
  border-bottom: none;
}

.contact-item-forward:hover {
  background-color: var(--bg-tertiary);
}

.contact-item-forward.selected {
  background-color: var(--primary);
  color: white;
}

.contact-item-forward.selected .contact-phone {
  color: rgba(255, 255, 255, 0.8);
}

.contact-info .contact-name {
  font-weight: 500;
  margin-bottom: 2px;
}

.contact-info .contact-phone {
  font-size: 0.875rem;
  color: var(--text-secondary);
}

/* Dark mode adaptations for forward modal */
[data-theme="dark"] .contacts-list-forward {
  background-color: var(--bg-secondary);
  border-color: var(--border-medium);
}

[data-theme="dark"] .contact-item-forward {
  border-color: var(--border-light);
  color: var(--text-primary);
}

[data-theme="dark"] .contact-item-forward:hover {
  background-color: var(--bg-tertiary);
}

[data-theme="dark"] .contact-item-forward .contact-phone {
  color: var(--text-secondary);
}

/* Form controls for dark mode */
[data-theme="dark"] #forward-search {
  background-color: var(--bg-tertiary);
  border-color: var(--border-medium);
  color: var(--text-primary);
}

[data-theme="dark"] #forward-search::placeholder {
  color: var(--text-muted);
}

[data-theme="dark"] #forward-search:focus {
  background-color: var(--bg-secondary);
  border-color: var(--primary);
  box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
}

/* Auto detect system preference for forward modal */
@media (prefers-color-scheme: dark) {
  
  :root:not([data-theme="light"]) .contacts-list-forward {
    background-color: var(--bg-secondary);
    border-color: var(--border-medium);
  }
  
  :root:not([data-theme="light"]) .contact-item-forward {
    border-color: var(--border-light);
    color: var(--text-primary);
  }
  
  :root:not([data-theme="light"]) .contact-item-forward:hover {
    background-color: var(--bg-tertiary);
  }
  
  :root:not([data-theme="light"]) .contact-item-forward .contact-phone {
    color: var(--text-secondary);
  }
  
  :root:not([data-theme="light"]) #forward-search {
    background-color: var(--bg-tertiary);
    border-color: var(--border-medium);
    color: var(--text-primary);
  }
  
  :root:not([data-theme="light"]) #forward-search::placeholder {
    color: var(--text-muted);
  }
  
  :root:not([data-theme="light"]) #forward-search:focus {
    background-color: var(--bg-secondary);
    border-color: var(--primary);
    box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25);
  }
  
  :root:not([data-theme="light"]) .message.received .forward-btn,
  :root:not([data-theme="light"]) .message.received .copy-btn {
    color: var(--text-muted);
  }
  
  :root:not([data-theme="light"]) .message.sent .forward-btn,
  :root:not([data-theme="light"]) .message.sent .copy-btn {
    color: var(--text-muted);
  }
}

/* =========================
   SELECCIÓN MÚLTIPLE DE MENSAJES
   ========================= */

/* Checkboxes para selección de mensajes */
.message-select-checkbox {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 20px;
  height: 20px;
  cursor: pointer;
  z-index: 10;
  accent-color: var(--primary);
  border-radius: 4px;
  border: 2px solid var(--border-medium);
  background-color: var(--bg-card);
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.message-select-checkbox:hover {
  border-color: var(--primary);
  transform: scale(1.05);
  box-shadow: 0 3px 6px rgba(59, 130, 246, 0.3);
}

/* Estilo para mensajes en modo selección múltiple */
.multi-select-mode .message {
  position: relative;
  padding-right: 35px; /* Espacio para el checkbox */
  transition: all 0.2s ease;
}

.multi-select-mode .message:hover {
  transform: translateX(2px);
  box-shadow: var(--shadow-md);
}

.multi-select-mode .message-select-checkbox:checked + * {
  opacity: 0.8;
}

/* Indicador visual para mensajes seleccionados */
.message-select-checkbox:checked {
  transform: scale(1.1);
  border-color: var(--primary);
  background-color: var(--primary);
  box-shadow: 0 3px 8px rgba(59, 130, 246, 0.4);
}

/* Estilo del check mark dentro del checkbox */
.message-select-checkbox:checked::after {
  content: '✓';
  position: absolute;
  color: white;
  font-size: 14px;
  font-weight: bold;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

/* Modo oscuro para checkboxes */
[data-theme="dark"] .message-select-checkbox {
  border-color: var(--border-medium);
  background-color: var(--bg-tertiary);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .message-select-checkbox:hover {
  border-color: var(--primary-light);
  box-shadow: 0 3px 6px rgba(96, 165, 250, 0.4);
}

[data-theme="dark"] .message-select-checkbox:checked {
  background-color: var(--primary-light);
  border-color: var(--primary-light);
  box-shadow: 0 3px 8px rgba(96, 165, 250, 0.5);
}

.message:has(.message-select-checkbox:checked) {
  background-color: rgba(59, 130, 246, 0.1) !important;
  border: 1px solid var(--primary) !important;
}

/* Fallback para navegadores sin soporte :has() */
.multi-select-mode .message.selected {
  background-color: rgba(59, 130, 246, 0.1) !important;
  border: 1px solid var(--primary) !important;
}

/* Dark mode para selección múltiple */
[data-theme="dark"] .message:has(.message-select-checkbox:checked),
[data-theme="dark"] .multi-select-mode .message.selected {
  background-color: rgba(59, 130, 246, 0.2) !important;
  border: 1px solid var(--primary-light) !important;
}

/* Auto detect dark mode para selección múltiple */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .message-select-checkbox {
    border-color: var(--border-medium);
    background-color: var(--bg-tertiary);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  }
  
  :root:not([data-theme="light"]) .message-select-checkbox:hover {
    border-color: var(--primary-light);
    box-shadow: 0 3px 6px rgba(96, 165, 250, 0.4);
  }
  
  :root:not([data-theme="light"]) .message-select-checkbox:checked {
    background-color: var(--primary-light);
    border-color: var(--primary-light);
    box-shadow: 0 3px 8px rgba(96, 165, 250, 0.5);
  }
  
  :root:not([data-theme="light"]) .message:has(.message-select-checkbox:checked),
  :root:not([data-theme="light"]) .multi-select-mode .message.selected {
    background-color: rgba(59, 130, 246, 0.2) !important;
    border: 1px solid var(--primary-light) !important;
  }
}

/* Responsive para móviles */
@media (max-width: 768px) {
  .multi-select-mode .message {
    padding-right: 32px;
  }
  
  .message-select-checkbox {
    width: 18px;
    height: 18px;
    top: 5px;
    right: 5px;
  }
}

/* Message status indicators */
.message-status {
  display: inline-flex;
  align-items: center;
  margin-left: 5px;
  font-size: 0.75rem;
  vertical-align: middle;
}

.message-status.sent {
  color: #999;
}

.message-status.delivered {
  color: #999;
}

.message-status.read {
  color: #4fc3f7;
}

.message-status.failed {
  color: #f44336;
}

.checkmark {
  display: inline-block;
  line-height: 1;
  font-family: Arial, sans-serif;
  position: relative;
  white-space: nowrap;
}

.checkmark.single::before {
  content: "✓";
  font-weight: bold;
  font-size: 12px;
}

.checkmark.double::before {
  content: "✓✓";
  font-weight: bold;
  font-size: 12px;
  letter-spacing: -4px;
  position: relative;
}

.checkmark.failed::before {
  content: "✗";
  font-weight: bold;
  font-size: 12px;
  color: #f44336;
  display: inline-block;
  min-width: 12px;
  text-align: center;
  line-height: 12px;
}

/* Efecto hover para checkmarks failed con cursor help */
.checkmark.failed[style*="cursor: help"]:hover::before {
  color: #d32f2f;
  text-shadow: 0 0 2px rgba(244, 67, 54, 0.5);
  transform: scale(1.1);
  transition: all 0.2s ease;
}

/* Indicador visual de que hay información adicional */
.checkmark.failed[title]:after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  width: 4px;
  height: 4px;
  background: #f44336;
  border-radius: 50%;
  font-size: 8px;
  opacity: 0.7;
}

/* =========================
   ALERTS & NOTIFICATIONS
   ========================= */

.alert {
  border: none;
  border-radius: var(--border-radius);
  padding: 16px 20px;
  margin-bottom: 20px;
  border-left: 4px solid;
}

.alert-success {
  background-color: #f0fdf4;
  color: #166534;
  border-left-color: var(--success);
}

.alert-danger {
  background-color: #fef2f2;
  color: #991b1b;
  border-left-color: var(--danger);
}

.alert-info {
  background-color: #f0f9ff;
  color: #0c4a6e;
  border-left-color: var(--info);
}

.alert-warning {
  background-color: #fffbeb;
  color: #92400e;
  border-left-color: var(--warning);
}

[data-theme="dark"] .alert-success {
  background-color: #14532d;
  color: #dcfce7;
}

[data-theme="dark"] .alert-danger {
  background-color: #991b1b;
  color: #fecaca;
}

[data-theme="dark"] .alert-info {
  background-color: #0c4a6e !important;
  color: #f8fafc !important;
}

[data-theme="dark"] .alert-warning {
  background-color: #92400e !important;
  color: #f8fafc !important;
}

/* =========================
   MODAL IMPROVEMENTS
   ========================= */

.modal-content {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-xl);
}

.modal-header {
  border-bottom: 1px solid var(--border-light);
  background-color: var(--bg-card);
  color: var(--text-primary);
}

.modal-footer {
  border-top: 1px solid var(--border-light);
  background-color: var(--bg-card);
}

.modal-title {
  color: var(--text-primary);
}

.btn-close {
  filter: var(--text-primary);
}

[data-theme="dark"] .btn-close {
  filter: invert(1);
}

/* =========================
   DROPDOWN IMPROVEMENTS
   ========================= */

.dropdown-menu {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-lg);
}

.dropdown-item {
  color: var(--text-primary);
  padding: 8px 16px;
  transition: all 0.2s ease;
}

.dropdown-item:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

/* =========================
   SCROLLBAR STYLES
   ========================= */

::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: var(--bg-tertiary);
}

::-webkit-scrollbar-thumb {
  background: var(--border-medium);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--border-dark);
}

/* Firefox scrollbar */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--border-medium) var(--bg-tertiary);
}

/* =========================
   LOGIN PAGE
   ========================= */

.login-container {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.login-card {
  background: var(--bg-card);
  border-radius: var(--border-radius-xl);
  box-shadow: var(--shadow-xl);
  border: 1px solid var(--border-light);
  overflow: hidden;
  width: 100%;
  max-width: 400px;
}

.login-header {
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: white;
  padding: 2rem;
  text-align: center;
}

/* =========================
   MEDIA COMPONENTS
   ========================= */

.sticker-message {
  display: inline-block;
  margin: 4px 0;
}

.sticker-image {
  max-width: 120px;
  max-height: 120px;
  border-radius: 8px;
  display: block;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.sticker-image:hover {
  transform: scale(1.05);
}

.image-message {
  margin: 4px 0;
  position: relative;
}

.image-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  color: var(--text-secondary);
  font-size: 0.875rem;
}

.media-fallback {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background-color: var(--bg-tertiary);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 0.875rem;
  max-width: 200px;
}

.message-image {
  max-width: 250px;
  max-height: 250px;
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
  cursor: pointer;
  transition: transform 0.2s ease;
  object-fit: cover;
}

/* Responsive images for mobile */
@media (max-width: 768px) {
  .message-image {
    max-width: 200px;
    max-height: 200px;
  }
}

@media (max-width: 480px) {
  .message-image {
    max-width: 150px;
    max-height: 150px;
  }
}

/* Specific fixes for iOS Safari */
@supports (-webkit-appearance: none) {
  .message-image {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
  
  .image-message {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }
}

.message-image:hover {
  transform: scale(1.02);
}

/* Estilos para enlaces de imagen */
.image-link-container {
  display: flex;
  align-items: center;
  padding: 12px 16px;
  background: var(--bg-tertiary);
  border-radius: 8px;
  border: 1px solid var(--border-primary);
  transition: all 0.2s;
  max-width: 250px;
}

.image-link-container:hover {
  background: var(--hover-bg);
  border-color: var(--border-secondary);
}

.image-link {
  color: var(--primary);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}

.image-link:hover {
  color: var(--primary);
  text-decoration: underline;
}

/* Responsive para móvil */
@media (max-width: 768px) {
  .image-link-container {
    padding: 10px 12px;
    font-size: 0.9em;
    max-width: 200px;
  }
}

@media (max-width: 480px) {
  .image-link-container {
    max-width: 150px;
  }
}

/* Estilos para caption de imagen */
.image-caption {
  margin-top: 8px;
  padding: 8px;
  background: var(--bg-tertiary);
  border-radius: 6px;
  font-size: 0.9em;
  color: var(--text-primary);
  max-width: 250px;
}

@media (max-width: 768px) {
  .image-caption {
    max-width: 200px;
    font-size: 0.85em;
  }
}

@media (max-width: 480px) {
  .image-caption {
    max-width: 150px;
  }
}

/* Estilo para error de imagen */
.image-error {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  background: var(--bg-tertiary);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 0.9em;
  max-width: 200px;
}

/* Estilos para enlaces en mensajes */
.message-link {
  color: var(--primary);
  text-decoration: underline;
  transition: color 0.2s ease;
  word-break: break-all;
}

.message-link:hover {
  color: var(--primary);
  text-decoration: underline;
  opacity: 0.8;
}

/* En mensajes enviados, usar color diferente para mejor contraste */
.message.sent .message-link {
  color: #ffffff;
  text-decoration: underline;
}

.message.sent .message-link:hover {
  color: #ffffff;
  opacity: 0.8;
}

/* FORZAR estilos para modo claro - MÁXIMA PRIORIDAD */
body:not([data-theme="dark"]) .message.received .message-link,
html:not([data-theme="dark"]) .message.received .message-link,
.message.received .message-link {
  color: var(--text-primary) !important;
  font-weight: 600 !important;
}

body:not([data-theme="dark"]) .message.received .message-link:hover,
html:not([data-theme="dark"]) .message.received .message-link:hover {
  color: var(--primary) !important;
}

/* Estilos específicos para diferentes tipos de enlaces */
.message-link[href^="mailto:"] {
  color: #2ea043;
}

.message.sent .message-link[href^="mailto:"] {
  color: #7ce88a;
}

.message-link[href^="tel:"] {
  color: #0969da;
}

.message.sent .message-link[href^="tel:"] {
  color: #79c0ff;
}

/* Iconos para diferentes tipos de enlaces */
.message-link[href^="mailto:"]:before {
  content: "📧 ";
  font-size: 0.8em;
}

.message-link[href^="tel:"]:before {
  content: "📞 ";
  font-size: 0.8em;
}

.message-link[href^="http"]:before,
.message-link[href^="https"]:before {
  content: "🔗 ";
  font-size: 0.8em;
}

/* Estilos específicos para enlaces en modo claro - SOLO mensajes recibidos */
[data-theme="light"] .message.received .message-link,
:root:not([data-theme="dark"]):not([data-theme]) .message.received .message-link {
  color: var(--text-primary) !important;
  font-weight: 500;
}

[data-theme="light"] .message.received .message-link:hover,
:root:not([data-theme="dark"]):not([data-theme]) .message.received .message-link:hover {
  color: var(--primary) !important;
  opacity: 1;
}

/* Mantener estilos para mensajes enviados (blanco) */
[data-theme="light"] .message.sent .message-link,
:root:not([data-theme="dark"]):not([data-theme]) .message.sent .message-link {
  color: #000 !important;
}

[data-theme="light"] .message.sent .message-link:hover,
:root:not([data-theme="dark"]):not([data-theme]) .message.sent .message-link:hover {
  color: #000 !important;
  opacity: 0.8;
}

/* Enlaces específicos en mensajes recibidos en modo claro */
[data-theme="light"] .message.received .message-link[href^="mailto:"],
:root:not([data-theme="dark"]):not([data-theme]) .message.received .message-link[href^="mailto:"] {
  color: var(--success) !important;
  font-weight: 500;
}

[data-theme="light"] .message.received .message-link[href^="tel:"],
:root:not([data-theme="dark"]):not([data-theme]) .message.received .message-link[href^="tel:"] {
  color: var(--primary) !important;
  font-weight: 500;
}

[data-theme="light"] .message.received .message-link[href^="http"],
[data-theme="light"] .message.received .message-link[href^="https"],
:root:not([data-theme="dark"]):not([data-theme]) .message.received .message-link[href^="http"],
:root:not([data-theme="dark"]):not([data-theme]) .message.received .message-link[href^="https"] {
  color: var(--text-primary) !important;
  font-weight: 500;
}

/* Responsive para móviles */
@media (max-width: 768px) {
  .message-link {
    font-size: 0.9em;
  }
  
  /* En móvil, hacer los enlaces más grandes para facilitar el toque */
  .message-link {
    padding: 2px 0;
    display: inline-block;
  }
}

/* Estilos para tarjetas de contacto */
.contact-message {
  max-width: 280px;
  margin: 5px 0;
}

.contact-card {
  display: block;
  padding: 12px 16px;
  background: #40536d;
  border-radius: 12px;
  border: 1px solid var(--border-primary);
  transition: all 0.2s ease;
}

/* Modo claro: tarjeta clara como el fondo */
[data-theme="light"] .contact-card,
:root:not([data-theme="dark"]):not([data-theme]) .contact-card {
  background: transparent;
  border-color: var(--border-light);
}

[data-theme="light"] .message.sent .contact-card,
:root:not([data-theme="dark"]):not([data-theme]) .message.sent .contact-card {
  background: transparent;
  border-color: rgba(0, 0, 0, 0.08);
}

.contact-card:hover {
  border-color: var(--border-secondary);
}

.contact-icon {
  font-size: 2.5em;
  color: var(--primary);
  flex-shrink: 0;
}

/* Nuevo layout estilo WhatsApp */
.contact-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.contact-avatar {
  flex-shrink: 0;
}

.contact-card-info {
  display: flex;
  flex-direction: column;
}

.contact-card-name {
  font-weight: 600;
  color: var(--text-primary);
}

.contact-card-phone {
  color: var(--text-muted);
  font-size: 0.9rem;
}

.contact-card-divider {
  height: 1px;
  background: var(--border-light);
  margin: 10px 0;
}

.contact-card-cta {
  text-align: center;
  color: var(--primary);
  font-weight: 600;
}

.contact-action {
  font-size: 1.2em;
  color: var(--primary);
  opacity: 0.7;
}

/* Contactos clickeables */
.contact-clickable {
  cursor: pointer;
  transition: all 0.2s ease;
}

/* Modal de crear lead */
.contact-avatar-large {
  font-size: 4rem;
  color: var(--primary);
}

.lead-creation-info {
  background: var(--bg-tertiary);
  padding: 1rem;
  border-radius: var(--border-radius);
  border: 1px solid var(--border-light);
}

.lead-creation-info .row {
  margin-bottom: 0.5rem;
}

.lead-creation-info .row:last-child {
  margin-bottom: 0;
}

#create-lead-modal .modal-content {
  border: none;
  box-shadow: var(--shadow-xl);
}

#create-lead-modal .modal-header {
  border-bottom: 1px solid var(--border-light);
  background: var(--bg-secondary);
}

#create-lead-modal .modal-footer {
  border-top: 1px solid var(--border-light);
  background: var(--bg-secondary);
}

.contact-clickable:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.contact-clickable:active {
  transform: translateY(0);
}

.contact-clickable .contact-action {
  opacity: 1;
}

.contact-clickable:hover .contact-action {
  color: var(--primary);
  animation: pulse 1s infinite;
}

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.6; }
  100% { opacity: 1; }
}

/* En mensajes enviados, ajustar colores para mejor contraste */
.message.sent .contact-card {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}

.message.sent .contact-icon {
  color: #ffffff;
}

.message.sent .contact-text {
  color: #ffffff;
}

/* Modo claro para texto de contactos en mensajes enviados */
[data-theme="light"] .message.sent .contact-text,
:root:not([data-theme="dark"]):not([data-theme]) .message.sent .contact-text {
  color: #000000;
}

/* Responsive para móviles */
@media (max-width: 768px) {
  .contact-message {
    max-width: 250px;
  }
  
  .contact-card {
    padding: 10px 12px;
    gap: 10px;
  }
  
  .contact-icon {
    font-size: 2em;
  }
}

.media-message {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background-color: var(--bg-tertiary);
  border-radius: 8px;
  margin: 4px 0;
}

.media-message i {
  font-size: 18px;
  color: var(--primary);
}

.document-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--bg-tertiary);
  border-radius: 12px;
  text-decoration: none;
  color: var(--text-primary);
  transition: background-color 0.2s ease;
  max-width: 280px;
}

.document-link:hover {
  background: var(--bg-secondary);
  color: var(--text-primary);
  text-decoration: none;
}

/* =========================
   AUDIO RECORDER
   ========================= */

.audio-recorder {
  padding: 20px;
}

.record-button-container {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}

.record-button {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: none;
  background: var(--primary);
  color: white;
  font-size: 24px;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-lg);
}

.record-button:hover {
  transform: scale(1.05);
  box-shadow: var(--shadow-xl);
}

.record-button.recording {
  background: var(--danger);
  animation: recordPulse 1.5s infinite;
}

@keyframes recordPulse {
  0% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7); }
  70% { box-shadow: 0 0 0 10px rgba(220, 53, 69, 0); }
  100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0); }
}

/* =========================
   LIGHTBOX
   ========================= */

.lightbox {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  transition: background 0.2s ease;
  opacity: 0;
}

.lightbox.active {
  background: rgba(0, 0, 0, 0.9);
  opacity: 1;
}

.lightbox.active .lightbox-content {
  transform: scale(1);
  opacity: 1;
}

.lightbox-content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  transform: scale(0.8);
  opacity: 0;
  transition: all 0.2s ease;
}

.lightbox-close {
  position: absolute;
  top: -40px;
  right: 0;
  color: white;
  font-size: 30px;
  font-weight: bold;
  cursor: pointer;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}

.lightbox-close:hover {
  background: rgba(255, 255, 255, 0.2);
}

#lightbox-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--border-radius-lg);
}

/* =========================
   ANIMATIONS
   ========================= */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes lightboxFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.animate-fade-in {
  animation: fadeIn 0.3s ease;
}

/* =========================
   UTILITY CLASSES
   ========================= */

.text-muted {
  color: var(--text-muted) !important;
}

.text-secondary {
  color: var(--text-secondary) !important;
}

.bg-primary {
  background-color: var(--primary) !important;
}

.bg-success {
  background-color: var(--success) !important;
}

.border-0 {
  border: none !important;
}

.rounded {
  border-radius: var(--border-radius) !important;
}

.rounded-lg {
  border-radius: var(--border-radius-lg) !important;
}

.shadow {
  box-shadow: var(--shadow) !important;
}

.shadow-lg {
  box-shadow: var(--shadow-lg) !important;
} 

/* Mobile chat controls */
.mobile-sidebar-btn {
  display: none;
  width: 40px;
  height: 40px;
  border: none;
  background: var(--bg-tertiary);
  border-radius: var(--border-radius);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s ease;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
  font-size: 18px;
  flex-shrink: 0;
}

.mobile-sidebar-btn:hover {
  background-color: var(--primary);
  color: white;
}

@media (max-width: 768px) {
  .mobile-sidebar-btn {
    display: flex;
  }
}

.chat-mobile-overlay {
  display: none;
  position: fixed;
  top: var(--mobile-header-height);
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 999;
}

@media (max-width: 768px) {
  .chat-mobile-overlay.active {
    display: block;
  }
}

/* =========================
   MODAL IMPROVEMENTS FOR CHAT
   ========================= */

/* Template Grid */
.template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  max-height: 60vh;
  overflow-y: auto;
  padding: 8px;
}

/* Template Card Responsive Layout */
@media (max-width: 768px) {
  .template-card div[style*="display: flex"][style*="justify-content: space-between"] {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }
  
  .template-card div[style*="display: flex"][style*="gap: 8px"] {
    width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }
  
  .template-card .btn-modern {
    flex: 1;
    min-width: 80px;
    justify-content: center;
  }
}

@media (max-width: 576px) {
  .template-card div[style*="display: flex"][style*="gap: 8px"] {
    flex-direction: column !important;
    gap: 8px !important;
  }
  
  .template-card .btn-modern {
    width: 100% !important;
    flex: none;
  }
}

.template-card {
  background-color: var(--bg-card);
  border: 1px solid var(--border-light);
  border-radius: var(--border-radius-lg);
  padding: 16px;
  transition: all 0.2s ease;
  cursor: pointer;
}

.template-card:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-md);
}

.template-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.template-header h6 {
  margin: 0;
  font-weight: 600;
  color: var(--text-primary);
  font-size: 14px;
}

.template-status {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 500;
}

.template-body {
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 16px;
  min-height: 40px;
}

.param-count {
  display: inline-block;
  background-color: var(--info);
  color: white;
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 8px;
  margin-left: 8px;
  font-weight: 500;
}

.template-footer {
  display: flex;
  justify-content: flex-end;
}

.template-footer .btn-modern {
  padding: 6px 12px;
  font-size: 12px;
}

/* Image Preview */
.image-preview {
  max-width: 100%;
  max-height: 400px;
  border-radius: var(--border-radius-lg);
  box-shadow: var(--shadow-lg);
  margin-bottom: 16px;
}

/* Audio Components */
.audio-player {
  width: 100%;
  margin: 16px 0;
  border-radius: var(--border-radius);
  position: relative;
}

.audio-player audio {
  max-width: 100%;
  border-radius: var(--border-radius);
}

/* Audio Speed Button */
.audio-speed-btn {
  margin-left: 16px;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  border: none;
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  z-index: 10;
  min-width: 40px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.audio-speed-btn:hover {
  background: rgba(0, 0, 0, 0.9);
  transform: scale(1.05);
}

.audio-speed-btn:active {
  transform: scale(0.95);
}

/* Different speed states */
.audio-speed-btn[data-speed="1"] {
  background: rgba(0, 0, 0, 0.7);
}

.audio-speed-btn[data-speed="1.5"] {
  background: rgba(37, 99, 235, 0.8);
}

.audio-speed-btn[data-speed="2"] {
  background: rgba(16, 185, 129, 0.8);
}

/* Audio Time Display */
.audio-time-display {
  font-size: 12px;
  color: var(--text-muted);
  text-align: center;
  margin-top: 8px;
  font-family: monospace;
}

.current-time {
  color: var(--text-secondary);
  font-weight: 500;
}

.alert-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.alert-header i {
  font-size: 16px;
}

.alert-header .spinner-border {
  width: 16px;
  height: 16px;
}

.conversion-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.conversion-actions .btn-modern {
  padding: 6px 12px;
  font-size: 12px;
} 

/* Image Actions */
.image-actions {
  margin-top: 8px;
  display: flex;
  justify-content: flex-start;
  padding: 0 8px;
}

.image-link {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--primary);
  text-decoration: none;
  border-radius: var(--border-radius);
  font-size: 12px;
  font-weight: 500;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.image-link:hover {
  background-color: var(--primary);
  color: white;
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.image-link i {
  font-size: 11px;
  margin-right: 4px;
}

/* Dark mode adjustments for image links */
@media (prefers-color-scheme: dark) {
  .image-link {
    background-color: rgba(15, 23, 42, 0.9);
    color: var(--primary-light);
    border: 1px solid rgba(148, 163, 184, 0.2);
  }
  
  .image-link:hover {
    background-color: var(--primary);
    color: white;
  }
}

/* Templates Pills */
.templates-pills-container {
  padding: 12px 16px 8px;
  background: var(--bg-card);
  border-top: 1px solid var(--border-light);
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 0;
}

.templates-pills-scroll {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 4px;
}

.templates-pills-scroll::-webkit-scrollbar {
  display: none;
}

.template-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: var(--bg-secondary);
  border: 1px solid var(--border-light);
  border-radius: 20px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
  flex-shrink: 0;
}

.template-pill:hover {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

.template-pill.focused {
  background: var(--primary-light);
  color: white;
  border-color: var(--primary-light);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

.template-pill.sending {
  background: var(--success);
  color: white;
  border-color: var(--success);
  pointer-events: none;
}

.template-pill i {
  font-size: 12px;
  flex-shrink: 0;
}

.template-pill span {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Estilos específicos para modo claro */
[data-theme="light"] .template-pill:hover,
[data-theme="light"] .template-pill:active,
:root:not([data-theme="dark"]):not([data-theme]) .template-pill:hover,
:root:not([data-theme="dark"]):not([data-theme]) .template-pill:active {
  background: var(--primary) !important;
  color: white !important;
  border-color: var(--primary) !important;
}

[data-theme="light"] .template-pill.focused,
:root:not([data-theme="dark"]):not([data-theme]) .template-pill.focused {
  background: var(--primary-light) !important;
  color: white !important;
  border-color: var(--primary-light) !important;
}

/* Dark mode para template pills */
@media (prefers-color-scheme: dark) {
  .templates-pills-container {
    background: var(--bg-card-dark);
    border-color: var(--border-dark);
  }
  
  .template-pill {
    background: var(--bg-tertiary-dark);
    border-color: var(--border-medium);
    color: var(--text-secondary-dark);
  }
  
  .template-pill:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
  }
}

/* Estilos para alerta de lead desconocido en chat - adaptativos para modo oscuro */
.unknown-lead-alert-chat {
  background: linear-gradient(135deg, var(--warning) 0%, #f8de7e 100%) !important;
  border: 1px solid var(--warning) !important;
  color: var(--text-primary) !important;
}

.unknown-lead-icon {
  color: #8b5a00 !important;
}

/* Modo oscuro para alerta de lead desconocido */
[data-theme="dark"] .unknown-lead-alert-chat {
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
  border: 1px solid #f59e0b !important;
  color: #0f172a !important;
}

[data-theme="dark"] .unknown-lead-icon {
  color: #0f172a !important;
}

/* Auto detect dark mode para alerta de lead desconocido */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .unknown-lead-alert-chat {
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
    border: 1px solid #f59e0b !important;
    color: #0f172a !important;
  }
  
  :root:not([data-theme="light"]) .unknown-lead-icon {
    color: #0f172a !important;
  }
}

/* Estilos para alertas de conversión de audio - adaptativos para modo oscuro */

/* Alerta M4A (Warning) */
.m4a-conversion-alert .alert-warning {
  background: linear-gradient(135deg, var(--warning) 0%, #f8de7e 100%) !important;
  border: 1px solid var(--warning) !important;
  color: var(--text-primary) !important;
}

.m4a-conversion-alert .alert-warning .alert-header {
  color: var(--text-primary) !important;
}

.m4a-conversion-alert .alert-warning i {
  color: #8b5a00 !important;
}

/* Progreso de Conversión (Info) */
.conversion-progress .alert-info {
  background: linear-gradient(135deg, var(--info) 0%, #38bdf8 100%) !important;
  border: 1px solid var(--info) !important;
  color: var(--text-primary) !important;
}

.conversion-progress .alert-info .alert-header {
  color: var(--text-primary) !important;
}

/* Resultado de Conversión (Success) */
.conversion-result .alert-success {
  background: linear-gradient(135deg, var(--success) 0%, #34d399 100%) !important;
  border: 1px solid var(--success) !important;
  color: var(--text-primary) !important;
}

.conversion-result .alert-success .alert-header {
  color: var(--text-primary) !important;
}

.conversion-result .alert-success i {
  color: #065f46 !important;
}

/* Modo oscuro para alertas de conversión */
[data-theme="dark"] .m4a-conversion-alert .alert-warning {
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
  border: 1px solid #f59e0b !important;
  color: #0f172a !important;
}

[data-theme="dark"] .m4a-conversion-alert .alert-warning .alert-header {
  color: #0f172a !important;
}

[data-theme="dark"] .m4a-conversion-alert .alert-warning i {
  color: #0f172a !important;
}

[data-theme="dark"] .conversion-progress .alert-info {
  background: linear-gradient(135deg, #0ea5e9 0%, #06b6d4 100%) !important;
  border: 1px solid #06b6d4 !important;
  color: #f8fafc !important;
}

[data-theme="dark"] .conversion-progress .alert-info .alert-header {
  color: #f8fafc !important;
}

[data-theme="dark"] .conversion-result .alert-success {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
  border: 1px solid #059669 !important;
  color: #f8fafc !important;
}

[data-theme="dark"] .conversion-result .alert-success .alert-header {
  color: #f8fafc !important;
}

[data-theme="dark"] .conversion-result .alert-success i {
  color: #f8fafc !important;
}

/* Auto detect dark mode para alertas de conversión */
/* Auto detect dark mode para alertas generales */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .alert-info {
    background-color: #0c4a6e !important;
    color: #f8fafc !important;
  }
  
  :root:not([data-theme="light"]) .alert-warning {
    background-color: #92400e !important;
    color: #f8fafc !important;
  }
  
  :root:not([data-theme="light"]) .m4a-conversion-alert .alert-warning {
    background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%) !important;
    border: 1px solid #f59e0b !important;
    color: #0f172a !important;
  }
  
  :root:not([data-theme="light"]) .m4a-conversion-alert .alert-warning .alert-header {
    color: #0f172a !important;
  }
  
  :root:not([data-theme="light"]) .m4a-conversion-alert .alert-warning i {
    color: #0f172a !important;
  }
  
  :root:not([data-theme="light"]) .conversion-progress .alert-info {
    background: linear-gradient(135deg, #0ea5e9 0%, #06b6d4 100%) !important;
    border: 1px solid #06b6d4 !important;
    color: #f8fafc !important;
  }
  
  :root:not([data-theme="light"]) .conversion-progress .alert-info .alert-header {
    color: #f8fafc !important;
  }
  
  :root:not([data-theme="light"]) .conversion-result .alert-success {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
    border: 1px solid #059669 !important;
    color: #f8fafc !important;
  }
  
  :root:not([data-theme="light"]) .conversion-result .alert-success .alert-header {
    color: #f8fafc !important;
  }
  
  :root:not([data-theme="light"]) .conversion-result .alert-success i {
    color: #f8fafc !important;
  }
} 

.avatar-initials {
  position: relative;
}

.avatar-initials::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(45deg, #ffff0082, transparent);
  border-radius: 50%;
  z-index: 1;
}

#debugLog {
  color: black;
}