/* Tema oscuro: ajustes de los componentes propios y de librerías que AdminLTE no cubre.
   Se activa con body.dark-mode (ver static/js/theme.js). Paleta: superficie #343a40, página #454d55,
   bordes #4b545c, texto #dee2e6, apagado #adb5bd, campos #3f474e. */

/* ---- Estructura ---- */
.dark-mode .main-header { background-color: #343a40; border-bottom-color: #4b545c; }
.dark-mode .main-header .nav-link { color: rgba(255, 255, 255, .8); }
.dark-mode .main-header .nav-link:hover { color: #fff; }
.dark-mode .breadcrumb { background-color: #343a40 !important; border: 1px solid #4b545c; }
.dark-mode .breadcrumb a, .dark-mode .breadcrumb .text-muted { color: #adb5bd !important; }
.dark-mode .breadcrumb-item.active, .dark-mode .breadcrumb-item + .breadcrumb-item::before { color: #adb5bd; }
.dark-mode .main-footer { background-color: #343a40; border-top-color: #4b545c; color: #adb5bd; }
.dark-mode .bg-light { background-color: #3a4047 !important; color: #f8f9fa !important; }
.dark-mode .bg-white { background-color: #343a40 !important; }
.dark-mode .text-dark { color: #dee2e6 !important; }
.dark-mode .text-muted, .dark-mode small.text-muted { color: #adb5bd !important; }
.dark-mode .border, .dark-mode .border-top, .dark-mode .border-bottom { border-color: #4b545c !important; }
.dark-mode hr { border-color: #4b545c; }

/* ---- Formularios ---- */
.dark-mode .form-control, .dark-mode .form-select, .dark-mode .input-group-text {
    background-color: #3f474e; border-color: #6c757d; color: #f8f9fa;
}
.dark-mode .form-control:focus, .dark-mode .form-select:focus { background-color: #454d55; border-color: #17a2b8; color: #fff; }
.dark-mode .form-control::placeholder { color: #8f98a1; }
.dark-mode .form-control:disabled, .dark-mode .form-control[readonly], .dark-mode .form-select:disabled {
    background-color: #343a40; color: #adb5bd;
}
.dark-mode .form-check-input { background-color: #3f474e; border-color: #8f98a1; }
.dark-mode .form-check-input:checked { background-color: #0d6efd; border-color: #0d6efd; }

/* ---- Select2 (tema bootstrap4) ---- */
.dark-mode .select2-container--bootstrap4 .select2-selection,
.dark-mode .select2-container--default .select2-selection--single,
.dark-mode .select2-container--default .select2-selection--multiple {
    background-color: #3f474e; border-color: #6c757d; color: #f8f9fa;
}
.dark-mode .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered,
.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered { color: #f8f9fa; }
.dark-mode .select2-container--bootstrap4 .select2-dropdown,
.dark-mode .select2-container--default .select2-dropdown { background-color: #343a40; border-color: #6c757d; color: #f8f9fa; }
.dark-mode .select2-container--bootstrap4 .select2-results__option,
.dark-mode .select2-container--default .select2-results__option { color: #f8f9fa; }
.dark-mode .select2-container--bootstrap4 .select2-results__option--highlighted,
.dark-mode .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #17a2b8; color: #fff; }
.dark-mode .select2-container--bootstrap4 .select2-results__option[aria-selected="true"] { background-color: #4b545c; }
.dark-mode .select2-container--bootstrap4 .select2-results__group,
.dark-mode .select2-container--default .select2-results__group { color: #adb5bd; }
.dark-mode .select2-search--dropdown .select2-search__field { background-color: #3f474e; border-color: #6c757d; color: #f8f9fa; }

/* ---- Tablas y DataTables ---- */
.dark-mode .table { --bs-table-color: #dee2e6; --bs-table-bg: transparent; --bs-table-border-color: #4b545c; color: #dee2e6; }
.dark-mode .table > :not(caption) > * > * { border-color: #4b545c; }
.dark-mode table.dataTable thead th, .dark-mode #data thead th { background-color: #3a4047 !important; color: #dee2e6; border-color: #4b545c; }
.dark-mode table.dataTable tbody tr { background-color: transparent; }
.dark-mode .page-link { background-color: #343a40; border-color: #4b545c; color: #dee2e6; }
.dark-mode .page-item.active .page-link { background-color: #0d6efd; border-color: #0d6efd; color: #fff; }
.dark-mode .page-item.disabled .page-link { background-color: #2f353a; color: #6c757d; }
.dark-mode .dataTables_wrapper .dataTables_info, .dark-mode .dataTables_wrapper label { color: #dee2e6; }

/* ---- Reportes ---- */
.dark-mode .rpt-filters { background: #2f353a; border-color: #4b545c; }
.dark-mode .rpt-filters label.f-label { color: #adb5bd; }
.dark-mode .kpi-card { background: #343a40; border-color: #4b545c; border-left-color: #17a2b8; color: #f8f9fa; }
.dark-mode .kpi-card .kpi-label { color: #adb5bd; }
.dark-mode .kpi-card .kpi-value { color: #fff; }
.dark-mode .kpi-card.kpi-neg { border-left-color: #dc3545; }
.dark-mode #tblReport thead th { background: #3a4047; color: #ced4da; border-bottom-color: #6c757d; }
.dark-mode #tblReport tbody tr.has-detail:hover { background: #3a4047; }
.dark-mode #tblReport .cell-sub, .dark-mode #tblReport .cell-small { color: #adb5bd; }
.dark-mode #tblReport .cell-neg { color: #ff6b6b; }
.dark-mode .row-detail { background: #2f353a; }
.dark-mode .row-detail .dl { color: #adb5bd; }
.dark-mode .pbar { background: #454d55; }
.dark-mode .pbar > span { background: #2a7a8f; }
.dark-mode .pbar > b { color: #fff; }
.dark-mode .alert-light { background: #3a4047; border-color: #4b545c !important; color: #dee2e6; }

/* ---- Roles y permisos ---- */
.dark-mode .perm-section { border-color: #4b545c; }
.dark-mode .perm-matrix thead th { background: #3a4047; color: #ced4da; }
.dark-mode .perm-matrix th, .dark-mode .perm-matrix td { border-top-color: #4b545c; }
.dark-mode .perm-matrix tbody tr:hover { background: #3a4047; }
.dark-mode .perm-matrix .none { color: #6c757d; }

/* ---- Producto: tipo de presentaciones y miniaturas ---- */
.dark-mode .mode-option { background: #343a40; border-color: #4b545c; }
.dark-mode .mode-option.active { background: #1f4a52; border-color: #17a2b8; }
.dark-mode .product-thumb { background: #3a4047 !important; }
.dark-mode .product-thumb-icon { color: #8f98a1 !important; }
.dark-mode .card-no-stock { background-color: #4a2f33; border-color: #7a3b3b; }
.dark-mode .card-no-stock .card-title, .dark-mode .card-no-stock .card-text { color: #ffb3b3; }
.dark-mode #presentations_card { background: #343a40; }

/* ---- Menú de vista previa de roles y tablas pequeñas ---- */
.dark-mode .preview-menu { color: #dee2e6; }

/* ---- Ventanas y avisos: jquery-confirm, SweetAlert2, jQuery UI, calendarios ---- */
.dark-mode .jconfirm .jconfirm-box { background: #343a40; color: #dee2e6; }
.dark-mode .jconfirm .jconfirm-box .jconfirm-title-c .jconfirm-title,
.dark-mode .jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content { color: #dee2e6; }
.dark-mode .jconfirm.jconfirm-modern .jconfirm-box { background: #343a40; }
.dark-mode .swal2-popup { background: #343a40; color: #dee2e6; }
.dark-mode .swal2-title, .dark-mode .swal2-html-container { color: #dee2e6; }
.dark-mode .ui-widget-content, .dark-mode .ui-menu { background: #343a40; border-color: #6c757d; color: #f8f9fa; }
.dark-mode .ui-menu-item-wrapper.ui-state-active, .dark-mode .ui-state-active { background: #17a2b8; border-color: #17a2b8; color: #fff; }
.dark-mode .daterangepicker { background: #343a40; border-color: #6c757d; color: #dee2e6; }
.dark-mode .daterangepicker:before, .dark-mode .daterangepicker:after { border-bottom-color: #343a40; }
.dark-mode .daterangepicker .calendar-table { background: #343a40; border-color: #343a40; }
.dark-mode .daterangepicker td.off, .dark-mode .daterangepicker td.off.in-range, .dark-mode .daterangepicker td.off.start-date, .dark-mode .daterangepicker td.off.end-date { background: #343a40; color: #6c757d; }
.dark-mode .daterangepicker td.available:hover, .dark-mode .daterangepicker th.available:hover { background: #4b545c; color: #fff; }
.dark-mode .daterangepicker td.in-range { background: #3a4a52; color: #dee2e6; }
.dark-mode .daterangepicker td.active, .dark-mode .daterangepicker td.active:hover { background: #17a2b8; color: #fff; }
.dark-mode .daterangepicker .ranges li { background: #3f474e; color: #dee2e6; border-color: #4b545c; }
.dark-mode .daterangepicker .ranges li:hover { background: #4b545c; }
.dark-mode .daterangepicker .ranges li.active { background: #17a2b8; color: #fff; }
.dark-mode .daterangepicker select.monthselect, .dark-mode .daterangepicker select.yearselect { background: #3f474e; color: #f8f9fa; border-color: #6c757d; }
.dark-mode .bootstrap-datetimepicker-widget { background: #343a40; color: #dee2e6; }
.dark-mode .bootstrap-datetimepicker-widget table td, .dark-mode .bootstrap-datetimepicker-widget table th { color: #dee2e6; }
.dark-mode .bootstrap-datetimepicker-widget table td.day:hover { background: #4b545c; }
.dark-mode .toast, .dark-mode #toast-container > div { opacity: .95; }

/* ---- Icono del tema en la barra superior ---- */
#themeToggle i { font-size: 1.05rem; }

.dark-mode .rpt-filters .rpt-date { background: #3f474e; color: #f8f9fa; }

/* ---- Reglas globales de style.css que fijan colores claros ---- */
.dark-mode .table thead tr { background-color: #3a4047 !important; color: #ced4da !important; }
.dark-mode .table thead th { color: #ced4da; }
.dark-mode #tblProductsBarra tbody tr:hover { background: #3a4047; }
.dark-mode .table-card { background: #343a40; border-color: #4b545c !important; }
.dark-mode .table-card:hover { box-shadow: 0 12px 20px rgba(0, 0, 0, .45) !important; }
.dark-mode .monitor-wrapper { background: #3a4047; }
.dark-mode .price-text { color: #f8f9fa; }
.dark-mode .status-dot { border-color: #343a40; }
.dark-mode .products-scroll::-webkit-scrollbar-thumb { background: #6c757d; }

/* ---- Botones y colores de texto con contraste suficiente sobre fondo oscuro ---- */
.dark-mode .btn-success { background-color: #198754; border-color: #198754; color: #fff; }
.dark-mode .btn-success:hover, .dark-mode .btn-success:focus { background-color: #157347; border-color: #146c43; color: #fff; }
.dark-mode .btn-outline-danger { color: #ff6b6b; border-color: #ff6b6b; }
.dark-mode .btn-outline-danger:hover { background-color: #dc3545; border-color: #dc3545; color: #fff; }
.dark-mode .btn-outline-secondary { color: #adb5bd; border-color: #6c757d; }
.dark-mode .btn-outline-secondary:hover { background-color: #6c757d; color: #fff; }
.dark-mode .btn-outline-primary { color: #6ea8fe; border-color: #6ea8fe; }
.dark-mode .btn-outline-primary:hover { background-color: #0d6efd; border-color: #0d6efd; color: #fff; }
.dark-mode .btn-light { background-color: #3a4047; border-color: #4b545c; color: #dee2e6; }
.dark-mode .btn-light:hover { background-color: #454d55; color: #fff; }
.dark-mode .text-primary { color: #6ea8fe !important; }
.dark-mode .text-danger { color: #ff6b6b !important; }
.dark-mode .text-success { color: #5fd39a !important; }
.dark-mode .bg-warning, .dark-mode .btn-warning, .dark-mode .badge.bg-warning { color: #212529 !important; }
.dark-mode .small-box.bg-warning .inner.text-white { color: #212529 !important; }
.dark-mode .toolbar-hint { color: #adb5bd; }
.dark-mode .table-header-pos th { color: #fff !important; }
.dark-mode .page-item.disabled .page-link { color: #9aa3ab; }
.dark-mode a.author, .dark-mode .footer-author a { color: #6ea8fe; }

/* ---- Select2: texto, marcador y estado deshabilitado ---- */
.dark-mode .select2-container .select2-selection span, .dark-mode .select2-container .select2-selection__rendered { color: #f8f9fa; }
.dark-mode .select2-container .select2-selection__placeholder { color: #adb5bd !important; }
.dark-mode .select2-container--disabled .select2-selection,
.dark-mode .select2-container--bootstrap4.select2-container--disabled .select2-selection { background-color: #343a40 !important; }
.dark-mode .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow b { border-top-color: #adb5bd; }

/* ---- Facturas electrónicas y notas crédito (formularios con estilos propios) ---- */
.dark-mode .form-section-title, .dark-mode .label-dark, .dark-mode h6.text-dark { color: #dee2e6 !important; }
.dark-mode .card-custom { border-color: #4b545c; box-shadow: 0 4px 18px rgba(0, 0, 0, .35) !important; }
.dark-mode .invoice-summary-container { background: #343a40; border-color: #4b545c; box-shadow: none; }
.dark-mode .summary-divider { border-color: #4b545c; }
.dark-mode .summary-label { color: #ced4da; }
.dark-mode .summary-item input { color: #f8f9fa !important; }
.dark-mode .summary-item-total .summary-label, .dark-mode .summary-item-total input { color: #5fd39a !important; }

/* ---- Listados con menú de acciones (facturas, notas crédito) ---- */
.dark-mode .btn-actions-dots { background-color: #3a4047; border-color: #4b545c; color: #adb5bd; }
.dark-mode .btn-actions-dots:hover, .dark-mode .btn-actions-dots:focus { background-color: #454d55; color: #fff; border-color: #6c757d; }
.dark-mode .actions-dropdown-menu { background-color: #343a40; border: 1px solid #4b545c; box-shadow: 0 8px 24px rgba(0, 0, 0, .5); }
.dark-mode .actions-dropdown-menu .dropdown-item { color: #dee2e6; }
.dark-mode .actions-dropdown-menu .dropdown-item:hover, .dark-mode .actions-dropdown-menu .dropdown-item:focus { background-color: #3f474e; color: #fff; }
.dark-mode .status-chip { background-color: #343a40; }
.dark-mode .dropdown-menu { background-color: #343a40; border-color: #4b545c; }
.dark-mode .dropdown-item { color: #dee2e6; }
.dark-mode .dropdown-item:hover, .dark-mode .dropdown-item:focus { background-color: #3f474e; color: #fff; }

/* ---- Tablero de cocina ---- */
.dark-mode .kitchen-card { background: #343a40; box-shadow: 0 6px 18px rgba(0, 0, 0, .45); }
.dark-mode .kitchen-card.warning { background: #3d3327; }
.dark-mode .kitchen-card.danger { background: #432a2e; }
.dark-mode .kitchen-card .product { color: #dee2e6; }
.dark-mode .kitchen-card .qty { background: #5a2a2f; color: #ffb3b8; }
.dark-mode .kitchen-note { background: #4a4326; color: #f1e6b0; }
.dark-mode .kitchen-note-label { color: #e0c565; }

/* ---- Cierre de caja ---- */
.dark-mode .cash-row { border-bottom-color: #4b545c; }
.dark-mode .cash-row span { color: #dee2e6; }

/* ---- Pie de página ---- */
.dark-mode .app-footer { color: #adb5bd; }
.dark-mode .app-footer b { color: #dee2e6; }
.dark-mode .app-footer-logo { opacity: .85; }
.dark-mode .kitchen-card .table-name { color: #f8f9fa; }
.dark-mode .kitchen-note-text { color: #f1e6b0; }
.dark-mode .kitchen-item { border-bottom-color: #4b545c; }
