@charset "UTF-8";
/* Common Light Theme - ONLY COLORS */

/* Variables de color para tema claro basado en shades del azul principal #72afe4 */
:root[data-bs-theme="light"] {
  /* ===== TEMA CLARO - NUEVA PALETA PROFESIONAL ===== */
  /* Base colors */
  --clr-dark-a0: #000000;
  --clr-light-a0: #ffffff;
  
  /* Theme primary colors */
  --clr-primary-a0: #323975;
  --clr-primary-a10: #3c4076;
  --clr-primary-a20: #464878;
  --clr-primary-a30: #4f4f79;
  --clr-primary-a40: #57577b;
  --clr-primary-a50: #605f7c;
  
  /* Theme surface colors */
  --clr-surface-a0: #c2d9ed;
  --clr-surface-a10: #bbcfe0;
  --clr-surface-a20: #b3c5d4;
  --clr-surface-a30: #acbac7;
  --clr-surface-a40: #a4b0bb;
  --clr-surface-a50: #9da6af;
  
  /* Theme tonal surface colors */
  --clr-surface-tonal-a0: #b3c8e1;
  --clr-surface-tonal-a10: #adc0d6;
  --clr-surface-tonal-a20: #a8b8cb;
  --clr-surface-tonal-a30: #a2afc0;
  --clr-surface-tonal-a40: #9ca7b5;
  --clr-surface-tonal-a50: #979faa;
  
  /* Mapeo a variables Bootstrap compatibles */
  --bg-primary: var(--clr-light-a0);
  --bg-secondary: var(--clr-surface-a0);
  --bg-tertiary: var(--clr-surface-a10);
  --text-primary: var(--clr-dark-a0);
  --text-secondary: var(--clr-primary-a30);
  --text-muted: var(--clr-surface-a40);
  --border-color: var(--clr-surface-a20);
  --border-light: var(--clr-surface-a10);
  
  /* Colores semánticos mantenidos */
  --color-success: #198754;
  --color-success-hover: #157347;
  --color-info: var(--clr-primary-a10);
  --color-info-hover: var(--clr-primary-a0);
  --color-warning: #fd7e14;
  --color-warning-hover: #fd9843;
  --color-danger: #dc3545;
  --color-danger-hover: #bb2d3b;
  --color-cyan: #20c997;
  --color-cyan-hover: #0f5132;
  
  /* Colores de marca actualizados */
  --color-brand-50: var(--clr-surface-a0);
  --color-brand-100: var(--clr-surface-a10);
  --color-brand-200: var(--clr-surface-a20);
  --color-brand-300: var(--clr-surface-a30);
  --color-brand-400: var(--clr-primary-a50);
  --color-brand-500: var(--clr-primary-a40);
  --color-brand-600: var(--clr-primary-a20);
  --color-brand-700: var(--clr-primary-a10);
  --color-brand-800: var(--clr-primary-a0);
  --color-brand-900: var(--clr-primary-a0);
  
  /* Paleta de verdes - del más claro al más oscuro */
  --green-100: #f0fdf4;   /* Casi blanco con tinte verde */
  --green-200: #dcfce7;  /* Muy pálido */
  --green-300: #bbf7d0;  /* Pálido */
  --green-400: #86efac;  /* Claro */
  --green-500: #4ade80;  /* Medio claro */
  --green-600: #22c55e;  /* Principal */
  --green-700: #15803d;  /* Oscuro */
  --green-800: #166534;  /* Muy oscuro */
  --green-900: #14532d;  /* Más oscuro */

  /* Paleta de amarillos - del más claro al más oscuro */
  --yellow-100: #fefce8;  /* Casi blanco con tinte amarillo */
  --yellow-200: #fef3c7; /* Muy pálido */
  --yellow-300: #fde68a; /* Pálido */
  --yellow-400: #fcd34d; /* Claro */
  --yellow-500: #fbbf24; /* Medio claro */
  --yellow-600: #f59e0b; /* Principal */
  --yellow-700: #d97706; /* Medio oscuro */
  --yellow-800: #b45309; /* Oscuro */
  --yellow-900: #92400e; /* Muy oscuro */

  /* Paleta de rojos - del más claro al más oscuro */
  --red-100: #fef2f2;     /* Casi blanco con tinte rojo */
  --red-200: #fee2e2;    /* Muy pálido */
  --red-300: #fecaca;    /* Pálido */
  --red-400: #fca5a5;    /* Claro */
  --red-500: #f87171;    /* Medio claro */
  --red-600: #ef4444;    /* Principal */
  --red-700: #dc2626;    /* Medio oscuro */
  --red-800: #b91c1c;    /* Oscuro */
  --red-900: #991b1b;    /* Muy oscuro */
  
  /* Grises oscuros con tinte azul para fondos */
  --gray-900: #0a0e12;  /* Fondo principal muy oscuro */
  --gray-850: #111720;  /* Intermedio */
  --gray-800: #1a2332;  /* Superficie principal */
  --gray-750: #243042;  /* Superficie elevada */
  --gray-700: #2e3d52;  /* Cards y elementos */
  --gray-600: #384a62;  /* Bordes */
  --gray-500: #425772;  /* Texto deshabilitado */
  --gray-400: #4f637a;  /* Texto deshabilitado */
  --gray-300: #5e7997;  /* Texto deshabilitado */
  --gray-200: #718096;  /* Texto deshabilitado */
  --gray-100: #9ca3af;  /* Texto deshabilitado */
  
  /* Colores principales Bootstrap */
  --bs-primary: var(--clr-primary-a0);
  --bs-secondary: var(--clr-surface-a30);
  --bs-body-bg: var(--clr-surface-a0);        /* Fondo general azul suave */
  --bs-body-color: var(--clr-dark-a0);     /* Texto principal negro */
  
  --bs-surface-bg: var(--clr-surface-a0);     /* Superficie con tinte azul pálido */
  --bs-card-bg: var(--clr-surface-a0);        /* Cards con fondo azul muy pálido */
  --bs-card-border-color: var(--clr-surface-a20); /* Bordes sutiles */
  
  /* Textos */
  --bs-text-muted: var(--clr-surface-a40);     /* Texto secundario */
  --bs-text-dark: var(--clr-dark-a0);      /* Texto oscuro */
  
  /* Bordes */
  --bs-border-color: var(--clr-surface-a20);
  
  /* Colores semánticos */
  --bs-success: #198754;
  --bs-info: var(--clr-primary-a10);
  --bs-warning: #ffc107;
  --bs-danger: #dc3545;
  
  /* Navbar - tema claro con colores correctos */
  --bs-navbar-bg: var(--clr-primary-a0);
  --bs-navbar-color: var(--clr-light-a0);
  --bs-navbar-brand-color: var(--clr-light-a0);
  --bs-navbar-nav-link-color: rgba(255, 255, 255, 0.85);
  --bs-navbar-nav-link-hover-color: var(--clr-light-a0);
  --shadow-lg: 0 10px 15px -3px rgb(59 130 246 / 0.1), 0 4px 6px -4px rgb(59 130 246 / 0.1);

  /* Definición de colores */
  --color-success: #198754;
  --color-warning: #ffc107;
  --color-danger: #dc3545;
  --color-info: var(--clr-primary-a10);
  
  --color-primary: var(--clr-primary-a0);
  --color-secondary: var(--clr-surface-a10);
  --color-tertiary: var(--clr-surface-a0);
  --color-quaternary: var(--clr-surface-a20);
  --color-quinary: var(--clr-primary-a30);

}

/* Aplicar colores a elementos base */
body {
  background-color: var(--bs-body-bg) !important;
  color: var(--bs-body-color) !important;
}

/* Cards y contenedores*/
.card {
  background-color: var(--bs-card-bg) !important;
  border-color: var(--bs-card-border-color) !important;
  box-shadow: 0 2px 4px rgba(114, 175, 228, 0.1);
}

.card-header {
  background-color: var(--clr-surface-a10) !important;
  border-color: var(--clr-surface-a20) !important;
  color: var(--clr-dark-a0) !important;
}

.card-body {
  background-color: var(--clr-surface-a30) !important;
  color: var(--clr-dark-a0) !important;
}

.card-footer {
  background-color: var(--clr-surface-a10) !important;
  border-top-color: var(--clr-surface-a20) !important;
  color: var(--clr-primary-a30) !important;
}

.page-title {
  color: var(--clr-primary-a0) !important;
}

/* Navbar - usando la nueva paleta azul */
.navbar-dark {
  background: var(--clr-primary-a0) !important;
  border-bottom: 1px solid var(--clr-primary-a10) !important;
}

.navbar-dark .navbar-brand {
  color: var(--bs-navbar-brand-color) !important;
}

.navbar-dark .navbar-brand:hover {
  color: var(--clr-surface-a0) !important;
}

.navbar-dark .navbar-nav .nav-link {
  color: var(--bs-navbar-nav-link-color) !important;
}

.navbar-dark .navbar-nav .nav-link:hover {
  color: var(--bs-navbar-nav-link-hover-color) !important;
  background-color: rgba(255, 255, 255, 0.1) !important;
}

.navbar-dark .navbar-nav .nav-link.active {
  color: var(--clr-light-a0) !important;
  background-color: rgba(255, 255, 255, 0.15) !important;
}

.navbar-dark .navbar-toggler {
  color: var(--bs-navbar-toggler-color) !important;
}

.navbar-dark .navbar-toggler-icon { 
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28114, 175, 228, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

.navbar-dark .dropdown-menu {
  background-color: var(--clr-primary-a10) !important;
  border-color: var(--clr-primary-a20) !important; 
}  

.navbar-dark .dropdown-menu .dropdown-item {
  color: var(--clr-light-a0) !important;
}

.navbar-dark .dropdown-menu .dropdown-item:hover {
  background-color: var(--clr-primary-a20) !important;
  color: var(--clr-light-a0) !important;
}

.navbar-dark .dropdown-menu .dropdown-divider {
  border-color: var(--clr-primary-a30) !important;
}

/* Utilidades Bootstrap - Light Theme */
.text-muted {
  color: var(--bs-text-muted) !important;
}

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

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

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

/* Utilidades de fondo */
.bg-light {
  background-color: var(--blue-100) !important;
}

.bg-dark {
  background-color: var(--gray-800) !important;
}

.bg-white {
  background-color: var(--clr-light-a0) !important;
}

/* Utilidades de borde */
.border {
  border-color: var(--bs-border-color) !important;
}

.border-bottom {
  border-bottom-color: var(--bs-border-color) !important;
}

.border-top {
  border-top-color: var(--bs-border-color) !important;
}

.border-start {
  border-left-color: var(--bs-border-color) !important;
}

.border-end {
  border-right-color: var(--bs-border-color) !important;
}

/* BOTONES */
.btn-primary {
    background-color: var(--clr-primary-a0) !important;
    border-color: var(--clr-primary-a0) !important;
    color: white !important;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background-color: var(--clr-primary-a10) !important;
    border-color: var(--clr-primary-a10) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(50, 57, 117, 0.3) !important;
}

.btn-secondary {
    background-color: var(--clr-surface-a10) !important;
    border-color: var(--clr-surface-a20) !important;
    color: var(--clr-dark-a0) !important;
}

.btn-secondary:hover {
    background-color: var(--clr-surface-a20) !important;
    border-color: var(--clr-surface-a30) !important;
    color: var(--clr-dark-a0) !important;
}

.btn-outline-secondary {
  color: var(--blue-700);
  border-color: var(--blue-300);
}

.btn-outline-secondary:hover {
  background-color: var(--blue-200);
  border-color: var(--blue-400);
  color: var(--blue-800);
}

.btn-success {
  background-color: var(--color-success) !important;
  border-color: var(--color-success) !important;
  color: white !important;
}

.btn-warning {
  background-color: var(--color-warning) !important;
  border-color: var(--color-warning) !important;
  color: white !important;
}

.btn-danger {
  background-color: var(--color-danger) !important;
  border-color: var(--color-danger) !important;
  color: white !important;
}

.btn-info {
  background-color: var(--color-info) !important;
  border-color: var(--color-info) !important;
  color: white !important;
}


.btn-outline-primary {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

.btn-outline-primary:hover {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: white !important;
}

/* Formularios */
.form-control {
  background-color: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.form-control:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25) !important;
}

.form-control::placeholder {
  color: var(--text-primary) !important;
}

.form-select {
  background-color: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.form-select:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25) !important;
}

.form-select::placeholder {
  color: var(--text-primary) !important;
}

.form-label {
  color: var(--blue-300) !important;
}

/* Tablas - MEJORADO CONTRASTE */
.table {
  color: var(--text-primary) !important;
}

.table th {
  background-color: #6581bc !important; /* Azul oscuro para mejor contraste */
  color: #ffffff !important; /* Texto blanco */
  border-color: #2d4373 !important;
}

.table td {
  border-color: var(--border-color) !important;
}

/* Flechas de ordenación DataTables - VISIBLES en fondo azul */
.table thead .sorting:before,
.table thead .sorting_asc:before,
.table thead .sorting_desc:before,
.table thead .sorting:after,
.table thead .sorting_asc:after,
.table thead .sorting_desc:after,
.dataTable thead .sorting:before,
.dataTable thead .sorting_asc:before,
.dataTable thead .sorting_desc:before,
.dataTable thead .sorting:after,
.dataTable thead .sorting_asc:after,
.dataTable thead .sorting_desc:after {
  color: rgba(255, 255, 255, 0.5) !important;
  opacity: 1 !important;
}

.table thead .sorting_asc:before,
.table thead .sorting_desc:after,
.dataTable thead .sorting_asc:before,
.dataTable thead .sorting_desc:after {
  color: #ffffff !important;
  opacity: 1 !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > td {
  background-color: var(--bg-secondary) !important;
}

/* ===== AGRUPADORES DATATABLES - TEMA CLARO ===== */
/* Cabecera usa #3b5998 (azul), agrupadores usan #475569 (gris oscuro) */
/* DataTables RowGroup usa TH dentro de TR.dtrg-group */
html body .dtrg-group,
html body .dtrg-group td,
html body .dtrg-group th,
html body tr.dtrg-group,
html body tr.dtrg-group td,
html body tr.dtrg-group th,
html body table.dataTable tr.dtrg-group th,
html body table.dataTable tbody tr.dtrg-group th,
table.dataTable tr.dtrg-group th,
table.dataTable tbody tr.dtrg-group th {
  background-color: #475569 !important; /* Gris oscuro - diferente del azul #3b5998 de cabecera */
  color: #ffffff !important;
  border-color: #334155 !important;
}

.table-hover > tbody > tr:hover > td {
  background-color: var(--color-brand-100) !important;
}

/* Badges */
.badge.bg-primary,
.badge.text-bg-primary {
  background-color: var(--color-primary) !important;
  color: white !important;
}

.badge.bg-secondary,
.badge.text-bg-secondary {
  background-color: var(--bg-tertiary) !important;
  color: var(--text-primary) !important;
}

.badge.bg-success,
.badge.text-bg-success {
  background-color: var(--color-success) !important;
  color: white !important;
}

.badge.bg-warning,
.badge.text-bg-warning {
  background-color: var(--color-warning) !important;
  color: white !important;
}

.badge.bg-danger,
.badge.text-bg-danger {
  background-color: var(--color-danger) !important;
  color: white !important;
}

.badge.bg-info,
.badge.text-bg-info {
  background-color: var(--color-info) !important;
  color: white !important;
}

/* Alertas */
.alert-primary {
  background-color: var(--color-technical-light) !important;
  border-color: var(--color-primary) !important;
  color: var(--color-technical-dark) !important;
}

.alert-success {
  background-color: var(--color-economic-light) !important;
  border-color: var(--color-success) !important;
  color: var(--color-economic-dark) !important;
}

.alert-warning {
  background-color: var(--color-warning-light) !important;
  border-color: var(--color-warning) !important;
  color: var(--color-warning-dark) !important;
}

.alert-danger {
  background-color: var(--color-danger-light) !important;
  border-color: var(--color-danger) !important;
  color: var(--color-danger-dark) !important;
}

.alert-info {
  background-color: var(--color-info-light) !important;
  border-color: var(--color-info) !important;
  color: var(--color-info-dark) !important;
}

/* ===== SWEETALERT2 MODALES - TEMA CLARO - MEJORADO CONTRASTE ===== */
/* Aumentamos especificidad para sobrescribir estilos por defecto */
body .swal2-popup,
.swal2-container .swal2-popup {
  background-color: #ffffff !important;
  color: #1e293b !important;
  border: 1px solid #cbd5e1 !important;
}

.swal2-title {
  color: #1e293b !important;
}

.swal2-content {
  color: #1e293b !important;
}

.swal2-html-container {
  color: #1e293b !important;
  background-color: #f8fafc !important;
  padding: 1rem !important;
  border-radius: 0.375rem !important;
  margin: 0.5rem 0 !important;
}

/* Contenedor interno del modal - MEJORADO */
.swal2-popup .swal2-content,
.swal2-popup .swal2-actions {
  background-color: transparent !important;
}

/* HTML container con fondo visible */
.swal2-popup .swal2-html-container {
  background-color: #f8fafc !important;
  padding: 1rem !important;
  border-radius: 0.375rem !important;
}

/* Comentarios dentro de SweetAlert2 */
.swal2-popup .comment-container,
.swal2-popup .comments-list {
  background-color: #f8fafc !important;
}

.swal2-popup .comment-item,
.swal2-popup .comment-box {
  background-color: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 0.5rem !important;
  padding: 0.75rem !important;
  margin-bottom: 0.5rem !important;
  color: #1e293b !important;
}

.swal2-popup .comment-date,
.swal2-popup .comment-author,
.swal2-popup .text-muted {
  color: #64748b !important;
}

.swal2-popup .comment-text,
.swal2-popup .comment-content {
  color: #1e293b !important;
}

/* Input de nuevo comentario */
.swal2-popup textarea,
.swal2-popup input[type="text"] {
  background-color: #ffffff !important;
  border: 1px solid #94a3b8 !important;
  color: #1e293b !important;
  border-radius: 0.375rem !important;
}

.swal2-popup textarea:focus,
.swal2-popup input[type="text"]:focus {
  border-color: #3b5998 !important;
  box-shadow: 0 0 0 0.2rem rgba(59, 89, 152, 0.25) !important;
  outline: none !important;
}

.swal2-popup textarea::placeholder,
.swal2-popup input[type="text"]::placeholder {
  color: #94a3b8 !important;
}

/* Divs y contenedores dentro del modal */
.swal2-popup div:not(.swal2-icon),
.swal2-popup .row,
.swal2-popup .col,
.swal2-popup .col-md-6,
.swal2-popup .col-12 {
  background-color: transparent !important;
}

/* Excepciones para inputs y botones que necesitan su propio fondo */
body .swal2-popup .form-control,
body .swal2-popup .form-select,
body .swal2-popup .swal2-input,
body .swal2-popup .swal2-textarea,
body .swal2-popup .swal2-select {
  background-color: var(--clr-light-a0) !important;
  border: 1px solid var(--clr-surface-a30) !important;
}

body .swal2-popup .swal2-confirm {
  background-color: var(--clr-primary-a0) !important;
}

body .swal2-popup .swal2-cancel {
  background-color: var(--clr-surface-a10) !important;
}

/* Inputs dentro de SweetAlert2 - MEJORADO CONTRASTE */
.swal2-input,
.swal2-textarea,
.swal2-select {
  background-color: #ffffff !important;
  border: 1px solid #94a3b8 !important; /* Borde más visible */
  color: #1e293b !important;
}

.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus {
  border-color: #3b5998 !important;
  box-shadow: 0 0 0 0.2rem rgba(59, 89, 152, 0.25) !important;
}

.swal2-input::placeholder,
.swal2-textarea::placeholder {
  color: #64748b !important;
}

/* Botones de SweetAlert2 */
.swal2-confirm {
  background-color: var(--clr-primary-a0) !important;
  border-color: var(--clr-primary-a0) !important;
  color: white !important;
}

.swal2-confirm:hover {
  background-color: var(--clr-primary-a10) !important;
  border-color: var(--clr-primary-a10) !important;
}

.swal2-cancel {
  background-color: var(--clr-surface-a10) !important;
  border-color: var(--clr-surface-a20) !important;
  color: var(--clr-dark-a0) !important;
}

.swal2-cancel:hover {
  background-color: var(--clr-surface-a20) !important;
  border-color: var(--clr-surface-a30) !important;
}

/* Botón Deny de SweetAlert2 */
.swal2-deny {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
  color: white !important;
}

.swal2-deny:hover {
  background-color: #bb2d3b !important;
  border-color: #b02a37 !important;
}

/* Overlay de SweetAlert2 */
.swal2-backdrop-show {
  background-color: rgba(0, 0, 0, 0.4) !important;
}

/* Labels dentro de SweetAlert2 */
.swal2-popup .form-label {
  color: var(--clr-dark-a0) !important;
}

/* Form controls dentro de SweetAlert2 */
.swal2-popup .form-control {
  background-color: var(--clr-light-a0) !important;
  border: 1px solid var(--clr-surface-a20) !important;
  color: var(--clr-dark-a0) !important;
}

.swal2-popup .form-control:focus {
  background-color: var(--clr-light-a0) !important;
  border-color: var(--clr-primary-a0) !important;
  box-shadow: 0 0 0 0.2rem rgba(50, 57, 117, 0.25) !important;
}

.swal2-popup .form-control::placeholder {
  color: var(--clr-surface-a40) !important;
}

/* Form selects dentro de SweetAlert2 */
.swal2-popup .form-select {
  background-color: var(--clr-light-a0) !important;
  border: 1px solid var(--clr-surface-a20) !important;
  color: var(--clr-dark-a0) !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23000000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
  max-width: 300px !important;
  width: 300px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Controlar el ancho del dropdown desplegado */
.swal2-popup .form-select[size],
.swal2-popup .form-select[multiple] {
  max-width: 300px !important;
  width: 300px !important;
}

.swal2-popup .form-select:focus {
  background-color: var(--clr-light-a0) !important;
  border-color: var(--clr-primary-a0) !important;
  box-shadow: 0 0 0 0.2rem rgba(50, 57, 117, 0.25) !important;
}

/* Estilos más agresivos para controlar el dropdown */
.swal2-popup select,
.swal2-popup .form-select {
  max-width: 100% !important;
  width: 100% !important;
  overflow: hidden !important;
}

.swal2-popup select option,
.swal2-popup .form-select option {
  background-color: var(--clr-light-a0) !important;
  color: var(--clr-dark-a0) !important;
  max-width: 280px !important;
  width: 280px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  padding: 6px 8px !important;
}

/* Validation message de SweetAlert2 */
.swal2-validation-message {
  background-color: var(--color-danger) !important;
  color: white !important;
}

/* SweetAlert2 Success Icon - Mejorar visibilidad */
.swal2-icon.swal2-success {
  border-color: #28a745 !important;
  color: #28a745 !important;
}

/* .swal2-icon.swal2-success .swal2-success-circular-line-left,
.swal2-icon.swal2-success .swal2-success-circular-line-right {
  background-color: var(--bs-body-bg, #fff) !important;
} */

.swal2-icon.swal2-success .swal2-success-ring {
  border-color: rgba(40, 167, 69, 0.3) !important;
}

.swal2-icon.swal2-success [class^='swal2-success-line'] {
  background-color: #28a745 !important;
}

.swal2-icon.swal2-success .swal2-success-line-tip,
.swal2-icon.swal2-success .swal2-success-line-long {
  background-color: #28a745 !important;
  z-index: 2;
}

/* .swal2-icon.swal2-success .swal2-success-fix {
  background-color: var(--bs-body-bg, #fff) !important;
} */

/* SweetAlert2 Error Icon */
.swal2-icon.swal2-error {
  border-color: #dc3545 !important;
  color: #dc3545 !important;
}

.swal2-icon.swal2-error .swal2-x-mark-line-left,
.swal2-icon.swal2-error .swal2-x-mark-line-right {
  background-color: #dc3545 !important;
}

/* SweetAlert2 Warning Icon */
.swal2-icon.swal2-warning {
  border-color: #ffc107 !important;
  color: #856404 !important;
}

/* SweetAlert2 Info Icon */
.swal2-icon.swal2-info {
  border-color: #17a2b8 !important;
  color: #17a2b8 !important;
}

/* Modales - MEJORADO CONTRASTE */
.modal-content {
  background-color: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
}

.modal-header {
  background-color: #3b5998 !important; /* Azul oscuro como cabecera */
  border-bottom: 1px solid #2d4373 !important;
  color: #ffffff !important;
}

.modal-header .modal-title {
  color: #ffffff !important;
}

.modal-header .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.modal-body {
  background-color: #f8fafc !important;
  color: #1e293b !important;
}

.modal-footer {
  background-color: #f1f5f9 !important;
  border-top: 1px solid #e2e8f0 !important;
}

/* Links */
a {
  color: var(--color-primary) !important;
}

a:hover {
  color: var(--color-brand-600) !important;
}

/* Text utilities */
.text-primary {
  color: var(--color-primary) !important;
}

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

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

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

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

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

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

/* Headers */
h1, h2, h3, h4, h5, h6 {
  color: var(--blue-800) !important;
}

/* Links */
a {
  color: var(--blue-400) !important;
}

a:hover {
  color: var(--blue-300) !important;
}

/* Iconos FontAwesome */
.fa, .fas, .far, .fal, .fab {
  color: inherit !important;
}

.theme-toggle {
  color: #6366f1 !important;
  text-decoration: none !important;
  border: none !important;
  box-shadow: none !important;
}

.theme-toggle:hover {
  color: #4f46e5 !important;
}

.theme-toggle:focus {
  box-shadow: none !important;
}

/* Footer específico */
.footer-sticky {
  background-color: var(--blue-700) !important; /* Footer realmente oscuro */
  color: var(--blue-100) !important; /* Texto claro para contraste */
}

.footer-sticky .text-muted {
  color: var(--blue-200) !important; /* Texto secundario en footer */
}

.card.login-card{
  background-color: #79a3cd !important;
}

/* DataTables Search Input - Tema Claro */
.dataTables_wrapper .dataTables_filter input {
  background-color: var(--clr-light-a0) !important;
  border: 1px solid var(--clr-surface-a20) !important;
  color: var(--clr-dark-a0) !important;
  border-radius: var(--border-radius, 0.375rem);
  padding: 0.375rem 0.75rem;
}

.dataTables_wrapper .dataTables_filter input:focus {
  background-color: var(--clr-light-a0) !important;
  border-color: var(--clr-primary-a0) !important;
  box-shadow: 0 0 0 0.2rem rgba(50, 57, 117, 0.25) !important;
  outline: none;
}

.dataTables_wrapper .dataTables_filter input::placeholder {
  color: var(--clr-surface-a40) !important;
}

/* DataTables Buttons - Tema Claro - Fondo azul oscuro con letras blancas */
.dt-buttons .btn {
  background-color: var(--clr-primary-a0) !important;
  border-color: var(--clr-primary-a10) !important;
  color: var(--clr-light-a0) !important;
}

.dt-buttons .btn:hover {
  background-color: var(--clr-primary-a10) !important;
  border-color: var(--clr-primary-a20) !important;
  color: var(--clr-light-a0) !important;
  box-shadow: 0 4px 8px rgba(50, 57, 117, 0.3);
}

.dt-buttons .btn:focus {
  background-color: var(--clr-primary-a10) !important;
  border-color: var(--clr-primary-a20) !important;
  color: var(--clr-light-a0) !important;
  box-shadow: 0 0 0 0.2rem rgba(50, 57, 117, 0.25) !important;
}

/* TomSelect - Tema Claro */
.ts-dropdown {
  background-color: var(--clr-light-a0) !important;
  border-color: var(--clr-surface-a20) !important;
}

.ts-dropdown .optgroup-header {
  background-color: var(--clr-primary-a0) !important;
  color: #ffffff !important;
}

.ts-dropdown .option {
  color: var(--clr-dark-a0) !important;
}

.ts-dropdown .option:hover,
.ts-dropdown .option.active {
  background-color: var(--clr-surface-a50) !important;
  color: var(--clr-dark-a0) !important;
}

.ts-control {
  background-color: var(--clr-light-a0) !important;
  border-color: var(--clr-surface-a20) !important;
  color: var(--clr-dark-a0) !important;
}

.ts-control input {
  color: var(--clr-dark-a0) !important;
}

.ts-control input::placeholder {
  color: var(--clr-surface-a40) !important;
}