/*
 * Tema del panel (Fase 1 y 2): colores base, foco, avisos, tarjetas, insignias, ventanas y login. Modo oscuro: etapa 1 variables, etapa 2 componentes.
 * Solo color/forma menor: no cambia estructura ni funcionamiento. Para desactivarlo, quitar la entrada 'Tema' de config/adminlte.php.
 */
:root {
  --g-acento: #007bff;
  --g-acento-hover: #0069d9;
  --g-acento-enlace-hover: #0056b3;
  --g-foco: #80bdff;
  --g-foco-aro: 0 0 0 0.2rem rgba(0, 123, 255, .25);
  --g-menu: #1e293b;
  --g-menu-texto: #94a3b8;
  --g-menu-hover: #334155;
  --g-menu-borde: #334155;
  --g-fondo: #f1f5f9;
  --g-texto: #1e293b;
  --g-texto-2: #64748b;
  --g-borde: #e2e8f0;
  --g-radio-campo: 6px;
  --g-radio-aviso: 8px;
  --g-acento-suave: rgba(0, 123, 255, .22);
  --g-superficie: #fff;
  --g-superficie-2: #f8fafc;
  --g-rojo-texto: #c9302c;
  --g-ok-fondo: #d4edda; --g-ok-borde: #c3e6cb; --g-ok-texto: #155724;
  --g-error-fondo: #f8d7da; --g-error-borde: #f5c6cb; --g-error-texto: #721c24;
  --g-aviso-fondo: #fff3cd; --g-aviso-borde: #f2d36b; --g-aviso-texto: #7a5b00;
  --g-info-fondo: #d1ecf1; --g-info-borde: #bee5eb; --g-info-texto: #0c5460;
  --g-sombra: rgba(0, 0, 0, .08);
  --g-sombra-ventana: rgba(0, 0, 0, .3);
  --g-sombra-login: rgba(15, 23, 42, .18);
}

/*
 * Modo oscuro (etapa 1: solo las variables). AdminLTE pone la clase dark-mode en <body>; aqui se redefinen los colores propios del tema.
 * Valores de la ficha del bot (sistema comun v2); los marcados «propuesto» no estan en la ficha y son tonos armonicos a revisar.
 * Los colores de estado (verde, rojo, ambar) conservan su significado.
 */
body.dark-mode {
  color-scheme: dark;
  --g-acento: #3d8bfd;
  --g-acento-hover: #2b7af0;
  --g-acento-enlace-hover: #6ea8fe;
  --g-foco: #6ea8fe;
  --g-foco-aro: 0 0 0 0.2rem rgba(61, 139, 253, .35);
  --g-acento-suave: rgba(61, 139, 253, .28);
  --g-menu: #0b1220;
  --g-menu-hover: #1e293b;
  --g-menu-borde: #1e293b;
  --g-fondo: #0f172a;
  --g-texto: #e2e8f0;
  --g-texto-2: #a3b1c6;
  --g-borde: #334155;
  --g-superficie: #1e293b;
  --g-superficie-2: #172033;
  --g-rojo-texto: #fca5a5;
  --g-ok-fondo: #12321f; --g-ok-borde: #1e4d2f; --g-ok-texto: #86efac;            /* borde: propuesto */
  --g-error-fondo: #3b1518; --g-error-borde: #7f1d1d; --g-error-texto: #fca5a5;
  --g-aviso-fondo: #3a2f0b; --g-aviso-borde: #6b5416; --g-aviso-texto: #fbbf24;   /* fondo y borde: propuestos */
  --g-info-fondo: #0e2a4a; --g-info-borde: #1e4a7a; --g-info-texto: #93c5fd;      /* todo propuesto (la ficha usa un azul claro) */
  --g-sombra: rgba(0, 0, 0, .45);
  --g-sombra-ventana: rgba(0, 0, 0, .6);
  --g-sombra-login: rgba(0, 0, 0, .55);
  --g-campo-borde: #475569;
}

/* ---- Base ---- */
body { color: var(--g-texto); }
.content-wrapper, .login-page, .register-page { background-color: var(--g-fondo); }
.text-muted { color: var(--g-texto-2) !important; }
a { color: var(--g-acento); }
a:hover { color: var(--g-acento-enlace-hover); }
.table td, .table th, .small-box h3, .info-box-number, .dataTables_info { font-variant-numeric: tabular-nums; }

/* ---- Menu lateral ---- */
.main-sidebar.sidebar-dark-primary { background-color: var(--g-menu); }
.sidebar-dark-primary .brand-link { border-bottom-color: var(--g-menu-borde); color: #fff; }
.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link { color: var(--g-menu-texto); border-radius: 8px; }
.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link:hover,
.sidebar-dark-primary .nav-sidebar > .nav-item.menu-open > .nav-link { background-color: var(--g-menu-hover); color: #fff; }
.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,
.sidebar-dark-primary.elevation-4 .nav-sidebar > .nav-item > .nav-link.active {
  background-color: var(--g-acento); color: #fff; font-weight: 600; box-shadow: none;
}
.sidebar-dark-primary .nav-treeview > .nav-item > .nav-link { color: var(--g-menu-texto); border-radius: 8px; }
.sidebar-dark-primary .nav-treeview > .nav-item > .nav-link:hover { background-color: var(--g-menu-hover); color: #fff; }
.sidebar-dark-primary .nav-treeview > .nav-item > .nav-link.active,
.sidebar-dark-primary .nav-treeview > .nav-item > .nav-link.active:hover {
  background-color: var(--g-acento-suave); color: #fff; font-weight: 600;
}
.sidebar-dark-primary .nav-header, .sidebar-dark-primary .user-panel { border-bottom-color: var(--g-menu-borde); }

/* ---- Barra superior ---- */
.main-header.navbar.navbar-dark { background-color: var(--g-menu); border-bottom-color: var(--g-menu-borde); }

/* ---- Campos y botones ---- */
.form-control, .custom-select, .btn, .input-group-text, .select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple { border-radius: var(--g-radio-campo); }
.input-group > .form-control:not(:last-child), .input-group > .custom-select:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .form-control:not(:first-child), .input-group > .custom-select:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group > .input-group-append > .btn, .input-group > .input-group-append > .input-group-text { border-top-left-radius: 0; border-bottom-left-radius: 0; border-top-right-radius: var(--g-radio-campo); border-bottom-right-radius: var(--g-radio-campo); }
.input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text { border-top-right-radius: 0; border-bottom-right-radius: 0; border-top-left-radius: var(--g-radio-campo); border-bottom-left-radius: var(--g-radio-campo); }
.btn-primary { background-color: var(--g-acento); border-color: var(--g-acento); }
.btn-primary:hover { background-color: var(--g-acento-hover); border-color: var(--g-acento-hover); }
.btn-secondary { background-color: #6c757d; border-color: #6c757d; }
.btn-secondary:hover { background-color: #5a6268; border-color: #545b62; }

/* Foco visible (tambien con teclado) */
.form-control:focus, .custom-select:focus, .select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single { border-color: var(--g-foco); box-shadow: var(--g-foco-aro); }
.btn:focus, .btn.focus { box-shadow: var(--g-foco-aro); }
a:focus-visible, button:focus-visible, .nav-link:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--g-foco); outline-offset: 2px; }

/* ---- Avisos: tonos claros, 8 px ---- */
.alert { border-radius: var(--g-radio-aviso); }
.alert-success { background-color: var(--g-ok-fondo); border-color: var(--g-ok-borde); color: var(--g-ok-texto); }
.alert-danger { background-color: var(--g-error-fondo); border-color: var(--g-error-borde); color: var(--g-error-texto); }
.alert-warning { background-color: var(--g-aviso-fondo); border-color: var(--g-aviso-borde); color: var(--g-aviso-texto); }
.alert-info { background-color: var(--g-info-fondo); border-color: var(--g-info-borde); color: var(--g-info-texto); }
.alert a:not(.btn) { font-weight: 600; }

/* ---- Tablas ---- */
.table thead th { border-bottom: 2px solid var(--g-borde); background-color: var(--g-superficie-2); color: var(--g-texto); }
.table td, .table th { border-top-color: var(--g-borde); }
.table-hover tbody tr:hover { background-color: var(--g-superficie-2); }

/* ---- Login / recuperar clave: tarjeta clara ---- */
.login-box .card, .register-box .card {
  border-radius: var(--g-radio-aviso); border: 0; box-shadow: 0 10px 30px var(--g-sombra-login);
}
.login-box .card.card-outline, .register-box .card.card-outline { border-top: 3px solid var(--g-acento); }
.login-box .card-header, .register-box .card-header { border-bottom-color: var(--g-borde); }
.login-card-body, .register-card-body { color: var(--g-texto); }
.login-box .btn-primary, .register-box .btn-primary { font-weight: 500; }

/* ---- Fase 2: tarjetas, insignias, ventanas (comun a las dos opciones del Dashboard) ---- */
body .card { border: 0; border-radius: 8px; box-shadow: 0 2px 6px var(--g-sombra); margin-bottom: 1.5rem; }
body .card.card-outline { border-top-width: 3px; border-top-style: solid; }
body .card > .card-header:first-child { border-top-left-radius: 8px; border-top-right-radius: 8px; }
body .card > .card-footer:last-child { border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }
.card-header .card-title { font-size: 1.15rem; font-weight: 600; }
@media (min-width: 992px) { body .card-body { padding: 1.5rem 1.75rem; } }

/* Cabeceras de color: se conservan, con rojo armonizado */
body .btn-danger, body .bg-danger, body .badge-danger, body .card-danger:not(.card-outline) > .card-header { background-color: #d9534f !important; border-color: #d9534f; color: #fff; }
body .btn-danger:hover { background-color: #c9302c !important; border-color: #c12e2a; }
.text-danger { color: var(--g-rojo-texto) !important; }

/* Insignias en pildora (la campanita y los contadores del menu conservan el tamano de AdminLTE: solo toman el borde redondeado) */
body .badge:not(.navbar-badge):not(.right) { border-radius: 12px; font-weight: 500; padding: .35em .7em; font-size: 80%; }
body .badge.navbar-badge, body .nav-sidebar .badge.right { border-radius: 12px; font-weight: 500; }

/* Ventanas */
body .modal-content { border: 0; border-radius: 8px; box-shadow: 0 5px 15px var(--g-sombra-ventana); }
.modal-backdrop.show { opacity: .6; }
.swal2-popup { border-radius: 8px !important; }
/* Avisos que se cierran solos (toast): quedan debajo de la barra superior para no tapar la lupa ni la campanita */
body.swal2-toast-shown .swal2-container.swal2-top-end { top: 62px !important; } /* !important: SweetAlert2 inyecta su CSS despues de este archivo */

/* ---- Opcion B: resumen del Dashboard en tarjeta blanca; el color va en un circulo con el icono ---- */
.info-box.bg-success, .info-box.bg-danger, .info-box.bg-info, .info-box.bg-primary, .info-box.bg-warning, .info-box.bg-secondary {
  background-color: var(--g-superficie) !important; color: var(--g-texto) !important; border-radius: 8px; box-shadow: 0 2px 6px var(--g-sombra);
}
.info-box.bg-success .info-box-icon, .info-box.bg-danger .info-box-icon, .info-box.bg-info .info-box-icon,
.info-box.bg-primary .info-box-icon, .info-box.bg-warning .info-box-icon, .info-box.bg-secondary .info-box-icon {
  width: 54px; height: 54px; min-width: 54px; border-radius: 50%; margin: auto 14px auto 4px; font-size: 1.35rem; color: #fff;
}
.info-box.bg-success .info-box-icon { background-color: #28a745; }
.info-box.bg-danger .info-box-icon { background-color: #d9534f; }
.info-box.bg-info .info-box-icon { background-color: #17a2b8; }
.info-box.bg-primary .info-box-icon { background-color: #007bff; }
.info-box.bg-warning .info-box-icon { background-color: #f5b335; color: #1e293b; }
.info-box.bg-secondary .info-box-icon { background-color: #64748b; }
.info-box .info-box-text { color: var(--g-texto-2); }
.info-box .info-box-number { font-size: 1.35rem; color: var(--g-texto); }
.info-box .progress-description { color: var(--g-texto-2); }

/* =====================================================================================================================
 * Modo oscuro, etapa 2: que los componentes de AdminLTE y las hojas que se cargan despues (Bootstrap, DataTables, Select2,
 * SweetAlert2) respeten la paleta. TODAS las reglas empiezan con body.dark-mode: en modo claro no cambia nada. La mayoria
 * necesita la especificidad extra (body.dark-mode) porque AdminLTE trae sus propias reglas .dark-mode con otros colores.
 * ===================================================================================================================== */
body.dark-mode { background-color: var(--g-fondo) !important; color: var(--g-texto); }
body.dark-mode .content-wrapper, body.dark-mode .content-header, body.dark-mode.login-page, body.dark-mode.register-page { background-color: var(--g-fondo); color: var(--g-texto); }
body.dark-mode .main-footer { background-color: var(--g-menu); border-top-color: var(--g-menu-borde); color: var(--g-menu-texto); }
body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4, body.dark-mode h5, body.dark-mode h6 { color: var(--g-texto); }
body.dark-mode .card-header h1, body.dark-mode .card-header h2, body.dark-mode .card-header h3, body.dark-mode .card-header h4, body.dark-mode .card-header h5, body.dark-mode .card-header h6, body.dark-mode .card-header .card-title { color: inherit; }
body.dark-mode .small-box h1, body.dark-mode .small-box h2, body.dark-mode .small-box h3, body.dark-mode .small-box h4, body.dark-mode .small-box p { color: inherit; }
body.dark-mode .info-box { background-color: var(--g-superficie); color: var(--g-texto); }
body.dark-mode .alert-light { background-color: var(--g-superficie-2); border-color: var(--g-borde); color: var(--g-texto-2); }
body.dark-mode hr { border-top-color: var(--g-borde); }
body.dark-mode .text-secondary { color: var(--g-texto-2) !important; }
body.dark-mode .text-dark { color: var(--g-texto) !important; }
body.dark-mode .text-primary { color: var(--g-acento-enlace-hover) !important; }
body.dark-mode .text-success { color: var(--g-ok-texto) !important; }
body.dark-mode .text-warning { color: var(--g-aviso-texto) !important; }
body.dark-mode .text-info { color: var(--g-info-texto) !important; }
body.dark-mode .border, body.dark-mode .border-top, body.dark-mode .border-bottom, body.dark-mode .border-left, body.dark-mode .border-right { border-color: var(--g-borde) !important; }
body.dark-mode .bg-light { background-color: var(--g-superficie-2) !important; color: var(--g-texto) !important; }
body.dark-mode .bg-white { background-color: var(--g-superficie) !important; color: var(--g-texto) !important; }

/* Tarjetas */
body.dark-mode .card { background-color: var(--g-superficie); color: var(--g-texto); }
body.dark-mode .card-header { border-bottom-color: var(--g-borde); }
body.dark-mode .card-footer, body.dark-mode form > .card-footer { background-color: var(--g-superficie-2); border-top-color: var(--g-borde); }
body.dark-mode form > .card-footer { box-shadow: 0 -3px 8px var(--g-sombra); }

/* Colores de estado: se recupera el significado de siempre (el modo oscuro de AdminLTE los cambia a otros tonos) */
body.dark-mode .btn-primary, body.dark-mode .bg-primary:not(.info-box), body.dark-mode .badge-primary, body.dark-mode .card-primary:not(.card-outline) > .card-header { background-color: var(--g-acento) !important; border-color: var(--g-acento); color: #fff; }
body.dark-mode .btn-primary:hover { background-color: var(--g-acento-hover) !important; border-color: var(--g-acento-hover); }
body.dark-mode .btn-success, body.dark-mode .bg-success:not(.info-box), body.dark-mode .badge-success, body.dark-mode .card-success:not(.card-outline) > .card-header { background-color: #28a745 !important; border-color: #28a745; color: #fff; }
body.dark-mode .btn-success:hover { background-color: #218838 !important; border-color: #1e7e34; }
body.dark-mode .btn-info, body.dark-mode .bg-info:not(.info-box), body.dark-mode .badge-info, body.dark-mode .card-info:not(.card-outline) > .card-header { background-color: #17a2b8 !important; border-color: #17a2b8; color: #fff; }
body.dark-mode .btn-warning, body.dark-mode .bg-warning:not(.info-box), body.dark-mode .badge-warning, body.dark-mode .card-warning:not(.card-outline) > .card-header { background-color: #ffc107 !important; border-color: #ffc107; color: #1e293b !important; }
body.dark-mode .btn-secondary, body.dark-mode .bg-secondary:not(.info-box), body.dark-mode .badge-secondary, body.dark-mode .card-secondary:not(.card-outline) > .card-header { background-color: #6c757d !important; border-color: #6c757d; color: #fff; }
body.dark-mode .btn-danger, body.dark-mode .bg-danger:not(.info-box), body.dark-mode .badge-danger, body.dark-mode .card-danger:not(.card-outline) > .card-header { background-color: #d9534f !important; border-color: #d9534f; color: #fff; }
body.dark-mode .btn-default { background-color: var(--g-superficie-2); border-color: var(--g-borde); color: var(--g-texto); }
body.dark-mode .btn-default:hover { background-color: var(--g-menu-hover); color: #fff; }
body.dark-mode .btn-outline-secondary { color: var(--g-texto-2); border-color: var(--g-campo-borde); }
body.dark-mode .btn-outline-secondary:hover { background-color: var(--g-menu-hover); color: #fff; }
body.dark-mode .btn-outline-primary { color: var(--g-acento-enlace-hover); border-color: var(--g-acento); }
body.dark-mode .btn-outline-primary:hover { background-color: var(--g-acento); color: #fff; }

/* Avisos */
body.dark-mode .alert-success { background-color: var(--g-ok-fondo); border-color: var(--g-ok-borde); color: var(--g-ok-texto); }
body.dark-mode .alert-danger { background-color: var(--g-error-fondo); border-color: var(--g-error-borde); color: var(--g-error-texto); }
body.dark-mode .alert-warning { background-color: var(--g-aviso-fondo); border-color: var(--g-aviso-borde); color: var(--g-aviso-texto); }
body.dark-mode .alert-info { background-color: var(--g-info-fondo); border-color: var(--g-info-borde); color: var(--g-info-texto); }
body.dark-mode .alert a:not(.btn) { color: inherit; text-decoration: underline; }
body.dark-mode .alert .close { color: inherit; text-shadow: none; }

/* Tablas, DataTables y paginacion */
body.dark-mode .table { color: var(--g-texto); }
body.dark-mode .table-striped tbody tr:nth-of-type(odd) { background-color: rgba(255, 255, 255, .03); }
body.dark-mode .table-bordered, body.dark-mode .table-bordered td, body.dark-mode .table-bordered th { border-color: var(--g-borde); }
body.dark-mode .table-hover tbody tr:hover { color: var(--g-texto); }
body.dark-mode table.dataTable tbody tr, body.dark-mode table.dataTable > tbody > tr { background-color: transparent; }
body.dark-mode table.dataTable.table-striped > tbody > tr:nth-of-type(odd) { background-color: rgba(255, 255, 255, .03); }
body.dark-mode table.dataTable thead th, body.dark-mode table.dataTable thead td, body.dark-mode table.dataTable tfoot th { border-color: var(--g-borde); }
body.dark-mode .dataTables_wrapper, body.dark-mode .dt-container { color: var(--g-texto); }
body.dark-mode .dataTables_wrapper .dataTables_info, body.dark-mode .dataTables_wrapper .dataTables_length, body.dark-mode .dataTables_wrapper .dataTables_filter,
body.dark-mode .dt-container .dt-info, body.dark-mode .dt-container .dt-length, body.dark-mode .dt-container .dt-search { color: var(--g-texto-2); }
body.dark-mode .page-item .page-link { background-color: var(--g-superficie); border-color: var(--g-borde); color: var(--g-acento-enlace-hover); }
body.dark-mode .page-item:not(.disabled) .page-link:hover { background-color: var(--g-superficie-2); border-color: var(--g-borde); color: #fff; }
body.dark-mode .progress { background-color: var(--g-superficie-2); }
body.dark-mode .page-item.active .page-link { background-color: var(--g-acento); border-color: var(--g-acento); color: #fff; }
body.dark-mode .page-item.disabled .page-link { background-color: var(--g-superficie-2) !important; border-color: var(--g-borde); color: #8091a8; }

/* Formularios */
/* AdminLTE recolorea .form-control con :not(...) (especificidad 0,4,0 y 0,6,0): se repite esa cadena para ganarle */
body.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar), body.dark-mode .custom-select, body.dark-mode .input-group-text { background-color: var(--g-superficie); border-color: var(--g-campo-borde); color: var(--g-texto); }
body.dark-mode .form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus) { background-color: var(--g-superficie); border-color: var(--g-campo-borde); color: var(--g-texto); }
body.dark-mode .form-control:disabled:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus), body.dark-mode .form-control[readonly]:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus), body.dark-mode .custom-select:disabled { background-color: var(--g-superficie-2); color: var(--g-texto-2); }
body.dark-mode select.custom-select, body.dark-mode select.form-control, body.dark-mode .dataTables_wrapper select, body.dark-mode .dt-container select { background-color: var(--g-superficie); border-color: var(--g-campo-borde); color: var(--g-texto); }
body.dark-mode .form-control::placeholder { color: #64748b; }
body.dark-mode .form-control:focus:not(.form-control-navbar):not(.form-control-sidebar), body.dark-mode .custom-select:focus { background-color: var(--g-superficie); color: var(--g-texto); border-color: var(--g-foco); box-shadow: var(--g-foco-aro); }
body.dark-mode .custom-control-label::before { background-color: var(--g-superficie); border-color: var(--g-campo-borde); }
body.dark-mode .custom-control-input:checked ~ .custom-control-label::before { background-color: var(--g-acento); border-color: var(--g-acento); }
body.dark-mode .form-text, body.dark-mode .help-block { color: var(--g-texto-2); }

/* Pestanas, menus desplegables, ventanas y listas */
body.dark-mode .nav-tabs { border-bottom-color: var(--g-borde); }
body.dark-mode .nav-tabs .nav-link { color: var(--g-texto-2); }
body.dark-mode .nav-tabs .nav-link:hover { border-color: var(--g-borde) var(--g-borde) transparent; color: var(--g-texto); }
body.dark-mode .nav-tabs .nav-link.active, body.dark-mode .nav-tabs .nav-item.show .nav-link { background-color: var(--g-superficie); border-color: var(--g-borde) var(--g-borde) var(--g-superficie); color: var(--g-texto); }
body.dark-mode .dropdown-menu { background-color: var(--g-superficie); border-color: var(--g-borde); color: var(--g-texto); }
body.dark-mode .dropdown-item { color: var(--g-texto); }
body.dark-mode .dropdown-item:hover, body.dark-mode .dropdown-item:focus { background-color: var(--g-superficie-2); color: #fff; }
body.dark-mode .dropdown-divider { border-top-color: var(--g-borde); }
body.dark-mode .modal-content { background-color: var(--g-superficie); color: var(--g-texto); }
body.dark-mode .modal-header, body.dark-mode .modal-footer { border-color: var(--g-borde); }
body.dark-mode .close, body.dark-mode .close:hover { color: var(--g-texto); text-shadow: none; }
body.dark-mode .list-group-item { background-color: var(--g-superficie); border-color: var(--g-borde); color: var(--g-texto); }
body.dark-mode .swal2-popup { background: var(--g-superficie); color: var(--g-texto); }
body.dark-mode .swal2-title, body.dark-mode .swal2-html-container { color: var(--g-texto); }
body.dark-mode .swal2-input, body.dark-mode .swal2-textarea, body.dark-mode .swal2-select { background: var(--g-superficie); border-color: var(--g-campo-borde); color: var(--g-texto); }

/* Select2 (tema por defecto de la libreria) */
body.dark-mode .select2-container--default .select2-selection--single, body.dark-mode .select2-container--default .select2-selection--multiple { background-color: var(--g-superficie); border-color: var(--g-campo-borde); }
body.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--g-texto); }
body.dark-mode .select2-container--default .select2-selection--multiple .select2-selection__choice { background-color: var(--g-superficie-2); border-color: var(--g-borde); color: var(--g-texto); }
body.dark-mode .select2-dropdown { background-color: var(--g-superficie); border-color: var(--g-borde); }
body.dark-mode .select2-container--default .select2-results__option { color: var(--g-texto); }
body.dark-mode .select2-container--default .select2-results__option[aria-selected=true] { background-color: var(--g-superficie-2); }
body.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: var(--g-acento); color: #fff; }
body.dark-mode .select2-container--default .select2-search--dropdown .select2-search__field { background-color: var(--g-superficie-2); border-color: var(--g-campo-borde); color: var(--g-texto); }

/* Inicio de sesion */
body.dark-mode .login-box .card, body.dark-mode .register-box .card, body.dark-mode .login-card-body, body.dark-mode .register-card-body { background-color: var(--g-superficie); color: var(--g-texto); }

/* Pantallas con colores propios dentro de la vista (<style> en linea): se redefinen aqui, en un solo sitio */
body.dark-mode .acceso { background: var(--g-superficie); color: var(--g-texto) !important; box-shadow: 0 1px 3px var(--g-sombra); }
body.dark-mode .avisos-cab { background: var(--g-superficie); color: var(--g-texto) !important; box-shadow: 0 1px 3px var(--g-sombra); }
body.dark-mode .chip-cero { background: var(--g-superficie-2); border-color: var(--g-borde); color: var(--g-texto-2) !important; }
body.dark-mode .sec-cab { color: var(--g-texto-2) !important; border-bottom-color: var(--g-borde); }
body.dark-mode .sec-cab .sec-linea { color: var(--g-texto-2); }
body.dark-mode .settings-pane .nota-pestana { background: var(--g-info-fondo); color: var(--g-info-texto); border-left-color: #17a2b8; }
body.dark-mode .settings-pane .nota-pestana.aviso { background: var(--g-aviso-fondo); color: var(--g-aviso-texto); border-color: #f0ad4e; }
body.dark-mode .avw-tab { background: var(--g-superficie); border-color: var(--g-borde); color: var(--g-texto); }
body.dark-mode .avw-tab small, body.dark-mode .avw-sec { color: var(--g-texto-2); }
body.dark-mode .avw-tab.on { background: var(--g-ok-fondo); border-color: #25d366; }
body.dark-mode .avw-tab.on b { color: var(--g-ok-texto); }
body.dark-mode .avw-tab.off { background: var(--g-superficie-2); }
body.dark-mode .avw-chipr { background: var(--g-aviso-fondo); color: var(--g-aviso-texto); }
body.dark-mode #tabla-avisos.avw-nueva tr { background: var(--g-superficie); border-color: var(--g-borde); }
body.dark-mode table.tc-tabla tr.tc-fila { background: var(--g-superficie) !important; box-shadow: 0 1px 3px var(--g-sombra); }
body.dark-mode form > .card-footer { background: var(--g-superficie-2); border-top-color: var(--g-borde); box-shadow: 0 -3px 8px var(--g-sombra); }
body.dark-mode .card-compact .card-header { background: var(--g-superficie-2); }
body.dark-mode #busqueda-panel { background: var(--g-superficie) !important; color: var(--g-texto) !important; box-shadow: 0 6px 24px var(--g-sombra-ventana) !important; }
body.dark-mode #busqueda-panel > div { border-color: var(--g-borde) !important; color: var(--g-texto-2) !important; }
body.dark-mode #busqueda-resultados a { color: var(--g-texto) !important; }
body.dark-mode #busqueda-resultados a > div + div { color: var(--g-texto-2) !important; }
body.dark-mode #busqueda-resultados a[style*="background"] { background: var(--g-acento-suave) !important; }
body.dark-mode .form-seccion, body.dark-mode .lic-seccion { background: var(--g-superficie); border-color: var(--g-borde); }
body.dark-mode .form-seccion > .form-seccion-titulo, body.dark-mode .lic-seccion > .lic-titulo { color: var(--g-texto); }
body.dark-mode .form-seccion > .form-seccion-titulo i, body.dark-mode .lic-seccion > .lic-titulo i, body.dark-mode .form-seccion > .form-seccion-ayuda { color: var(--g-texto-2); }
body.dark-mode .seccion-descarga { background: var(--g-superficie) !important; border-color: var(--g-borde) !important; }
body.dark-mode .perfil-tienda { border-color: var(--g-borde); }
body.dark-mode .perfil-tienda .logo { background: var(--g-superficie-2); }
body.dark-mode .perfil-tienda .logo-letra { color: var(--g-texto-2); }
body.dark-mode .perfil-tienda .precio { color: var(--g-ok-texto); }
body.dark-mode .settings-pane h5.settings-h { color: var(--g-texto-2); border-bottom-color: var(--g-borde); }
