/* Claro / oscuro global */
:root {
  color-scheme: light;
  --app-bg: #f4f6f9;
  --app-surface: #ffffff;
  --app-surface-soft: #f8fafc;
  --app-border: #e5e7eb;
  --app-text: #1f2937;
  --app-muted: #6b7280;
  --app-input-bg: #ffffff;
  --app-input-border: #d1d5db;
  --app-table-hover: rgba(11, 83, 148, 0.05);

  /* EffiTag — Bootstrap + tokens de marca */
  --bs-primary: #0b5394;
  --bs-success: #6bac00;
  --bs-info: #00b6bd;
  --bs-primary-rgb: 11, 83, 148;
  --bs-success-rgb: 107, 172, 0;
  --bs-info-rgb: 0, 182, 189;
  --bs-primary-text-emphasis: #072d52;
  --bs-success-text-emphasis: #3d6600;
  --bs-info-text-emphasis: #006a6f;
  --bs-primary-bg-subtle: #dceaf5;
  --bs-success-bg-subtle: #edf5d9;
  --bs-info-bg-subtle: #d6f5f7;
  --bs-primary-border-subtle: #9fc4e3;
  --bs-success-border-subtle: #c8e08a;
  --bs-info-border-subtle: #8ee9ed;
  --primary: #0b5394;
  --primary-light: rgba(11, 83, 148, 0.12);
  --primary-dark: #083d6e;
  --success: #6bac00;
  --success-light: rgba(107, 172, 0, 0.12);
  --success-dark: #548700;
  --info: #00b6bd;
  --info-light: rgba(0, 182, 189, 0.12);
  --info-dark: #009297;

  /* Barra de filtros / buscador en listados (modo claro) */
  --listado-filtros-bg: #e1f1fa;
  --listado-filtros-border: rgba(0, 182, 189, 0.35);
  --listado-filtros-input-bg: #ffffff;
  --listado-filtros-input-border: #dee2e6;
  --listado-filtros-input-color: #1f2937;
  --listado-filtros-placeholder: #6c757d;
}

/* Cabeceras table-dark: fondo primary, texto blanco */
.table-dark {
  --bs-table-color: #fff;
  --bs-table-bg: var(--primary, #0b5394);
  --bs-table-border-color: rgba(255, 255, 255, 0.25);
  --bs-table-striped-bg: rgba(255, 255, 255, 0.08);
  --bs-table-striped-color: #fff;
  --bs-table-active-bg: var(--primary-dark, #083d6e);
  --bs-table-active-color: #fff;
  --bs-table-hover-bg: var(--primary-dark, #083d6e);
  --bs-table-hover-color: #fff;
  color: #fff;
  background-color: var(--primary, #0b5394);
  border-color: rgba(255, 255, 255, 0.25);
}

.table-dark th,
.table-dark td,
.table thead.table-dark th,
thead.table-dark th {
  color: #fff !important;
  background-color: var(--primary, #0b5394) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --app-bg: #0d1117;
  --app-surface: #161b22;
  --app-surface-soft: #21262d;
  --app-surface-muted: #30363d;
  --app-border: #30363d;
  --app-text: #e6edf3;
  --app-muted: #8b949e;
  --app-input-bg: #0d1117;
  --app-input-border: #484f58;
  --app-table-hover: rgba(0, 182, 189, 0.1);
  --app-accent: #00b6bd;
  --app-accent-soft: #0b5394;
  --app-on-accent: #ffffff;

  /* Tokens semánticos usados por modales / listados */
  --dark: #e6edf3;
  --darker: #0d1117;
  --secondary: #8b949e;
  --secondary-light: rgba(139, 148, 158, 0.12);
  --light-bg: #21262d;
  --border: #30363d;

  --sidebar-primary: #0d1117;
  --sidebar-secondary: #161b22;
  --sidebar-accent: #00b6bd;
  --sidebar-text-primary: #e6edf3;
  --sidebar-text-secondary: #8b949e;
  --sidebar-hover-bg: rgba(11, 83, 148, 0.45);
  --sidebar-active-bg: rgba(11, 83, 148, 0.55);
  --sidebar-border: rgba(139, 148, 158, 0.28);

  /* Barra de filtros / buscador en listados */
  --listado-filtros-bg: #1a2332;
  --listado-filtros-border: rgba(0, 182, 189, 0.28);
  --listado-filtros-input-bg: #0d1117;
  --listado-filtros-input-border: #484f58;
  --listado-filtros-input-color: #e6edf3;
  --listado-filtros-placeholder: #8b949e;
}

:root[data-theme="dark"] body {
  background: var(--app-bg) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .container-scroller,
:root[data-theme="dark"] .page-body-wrapper,
:root[data-theme="dark"] .main-panel,
:root[data-theme="dark"] .content-wrapper,
:root[data-theme="dark"] .container-fluid {
  background: var(--app-bg) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .navbar,
:root[data-theme="dark"] .navbar .navbar-brand-wrapper,
:root[data-theme="dark"] .navbar .navbar-menu-wrapper {
  background: var(--app-surface) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .sidebar .nav,
:root[data-theme="dark"] .sidebar .nav.sub-menu,
:root[data-theme="dark"] .sidebar .nav:not(.sub-menu),
:root[data-theme="dark"] .sidebar .collapse,
:root[data-theme="dark"] .sidebar .collapsing {
  background: var(--sidebar-primary) !important;
  color: var(--sidebar-text-primary) !important;
}

:root[data-theme="dark"] .sidebar .nav .nav-item,
:root[data-theme="dark"] .sidebar .nav.sub-menu .nav-item,
:root[data-theme="dark"] .sidebar .nav .nav-item .collapse {
  background: transparent !important;
}

:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link,
:root[data-theme="dark"] .sidebar .nav.sub-menu .nav-item .nav-link {
  background: transparent !important;
  color: var(--sidebar-text-primary) !important;
}

:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link:hover,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link[aria-expanded="true"],
:root[data-theme="dark"] .sidebar .nav .nav-item.active > .nav-link,
:root[data-theme="dark"] .sidebar .nav:not(.sub-menu) > .nav-item:hover > .nav-link,
:root[data-theme="dark"] .sidebar .nav:not(.sub-menu) > .nav-item:hover[aria-expanded="true"],
:root[data-theme="dark"] .sidebar .nav:not(.sub-menu) > .nav-item > .nav-link[aria-expanded="true"] {
  background: var(--sidebar-hover-bg) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #ffffff !important;
}

:root[data-theme="dark"] .sidebar .nav .nav-item.active > .nav-link,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link[aria-expanded="true"] {
  background: var(--sidebar-active-bg) !important;
}

:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link:hover .menu-title,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link:hover i.menu-icon,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link:hover i.menu-arrow,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link[aria-expanded="true"] .menu-title,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link[aria-expanded="true"] i.menu-icon,
:root[data-theme="dark"] .sidebar .nav .nav-item .nav-link[aria-expanded="true"] i.menu-arrow,
:root[data-theme="dark"] .sidebar .nav .nav-item.active > .nav-link .menu-title,
:root[data-theme="dark"] .sidebar .nav .nav-item.active > .nav-link i.menu-icon,
:root[data-theme="dark"] .sidebar .nav .nav-item.active > .nav-link i.menu-arrow {
  color: #ffffff !important;
  opacity: 1;
}

:root[data-theme="dark"] .sidebar .nav .nav-item.nav-category {
  color: var(--info, #00b6bd) !important;
}

:root[data-theme="dark"] .nav-item.nav-category:not(:first-of-type) {
  border-top-color: rgba(0, 182, 189, 0.35) !important;
}

:root[data-theme="dark"] .sidebar .nav .nav-item.nav-category::after {
  background: var(--info, #00b6bd) !important;
}

:root[data-theme="dark"] .sidebar .nav.sub-menu .nav-item .nav-link {
  color: var(--sidebar-text-secondary) !important;
}

:root[data-theme="dark"] .sidebar .nav.sub-menu .nav-item .nav-link:hover {
  background: var(--sidebar-hover-bg) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #ffffff !important;
}

:root[data-theme="dark"] .sidebar .nav.sub-menu .nav-item .nav-link:hover .menu-title {
  color: #ffffff !important;
}

:root[data-theme="dark"] .welcome-text,
:root[data-theme="dark"] .text-black,
:root[data-theme="dark"] .fw-bold,
:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] h4,
:root[data-theme="dark"] h5,
:root[data-theme="dark"] h6 {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .text-muted,
:root[data-theme="dark"] .fw-light {
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .card,
:root[data-theme="dark"] .modal-content,
:root[data-theme="dark"] .modal-body,
:root[data-theme="dark"] .dropdown-menu,
:root[data-theme="dark"] .list-group-item,
:root[data-theme="dark"] .table-wrapper,
:root[data-theme="dark"] .accordion-item,
:root[data-theme="dark"] .offcanvas,
:root[data-theme="dark"] .bg-white,
:root[data-theme="dark"] .card-body form,
:root[data-theme="dark"] .tab-content,
:root[data-theme="dark"] .tab-pane,
:root[data-theme="dark"] .modal-tabs,
:root[data-theme="dark"] .modal-tabs .tab-content,
:root[data-theme="dark"] .modal-tabs .tab-pane {
  background: var(--app-surface) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

/* Accordion: headers sin fondo blanco en modo oscuro */
:root[data-theme="dark"] .accordion {
  --bs-accordion-bg: var(--app-surface);
  --bs-accordion-color: var(--app-text);
  --bs-accordion-border-color: var(--app-border);
  --bs-accordion-btn-color: var(--app-text);
  --bs-accordion-btn-bg: var(--app-surface-soft);
  --bs-accordion-active-color: var(--app-text);
  --bs-accordion-active-bg: var(--app-surface-muted);
  --bs-accordion-btn-focus-border-color: var(--app-border);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(11, 83, 148, 0.35);
}

:root[data-theme="dark"] .accordion-button,
:root[data-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
  box-shadow: none !important;
}

:root[data-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: var(--app-surface-muted) !important;
}

:root[data-theme="dark"] .accordion-button::after {
  filter: invert(1) brightness(1.6);
  opacity: 0.75;
}

:root[data-theme="dark"] .accordion-button:focus {
  border-color: var(--app-border) !important;
  box-shadow: 0 0 0 0.2rem rgba(11, 83, 148, 0.35) !important;
}

:root[data-theme="dark"] .accordion-button strong {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .accordion-body {
  background: var(--app-surface) !important;
  color: var(--app-text) !important;
}

/* Las tarjetas KPI con clases Bootstrap conservan color en modo oscuro */
:root[data-theme="dark"] .card.bg-primary,
:root[data-theme="dark"] .card-header.bg-primary,
:root[data-theme="dark"] .bg-primary {
  background: #0b5394 !important;
  color: #ffffff !important;
}

:root[data-theme="dark"] .card.bg-success,
:root[data-theme="dark"] .card-header.bg-success,
:root[data-theme="dark"] .bg-success {
  background: #548700 !important;
  color: #ffffff !important;
}

:root[data-theme="dark"] .card.bg-info,
:root[data-theme="dark"] .card-header.bg-info,
:root[data-theme="dark"] .bg-info {
  background: #009297 !important;
  color: #ffffff !important;
}

:root[data-theme="dark"] .card.bg-warning,
:root[data-theme="dark"] .card-header.bg-warning,
:root[data-theme="dark"] .bg-warning {
  background: #b45309 !important;
  color: #ffffff !important;
}

:root[data-theme="dark"] .card.bg-danger,
:root[data-theme="dark"] .card-header.bg-danger,
:root[data-theme="dark"] .bg-danger {
  background: #b91c1c !important;
  color: #ffffff !important;
}

:root[data-theme="dark"] .card.bg-secondary,
:root[data-theme="dark"] .card-header.bg-secondary,
:root[data-theme="dark"] .bg-secondary {
  background: #484f58 !important;
  color: #ffffff !important;
}

:root[data-theme="dark"] .card.bg-dark,
:root[data-theme="dark"] .card-header.bg-dark,
:root[data-theme="dark"] .bg-dark {
  background: #161b22 !important;
  color: #e6edf3 !important;
}

:root[data-theme="dark"] .card-header,
:root[data-theme="dark"] .card-footer,
:root[data-theme="dark"] .modal-header,
:root[data-theme="dark"] .modal-footer {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .modal-body .bg-white,
:root[data-theme="dark"] .modal-body .bg-light,
:root[data-theme="dark"] .modal-body .border,
:root[data-theme="dark"] .modal-body .rounded,
:root[data-theme="dark"] .modal-body .shadow,
:root[data-theme="dark"] .modal-body .shadow-sm {
  background-color: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .modal-body hr {
  border-color: var(--app-border) !important;
  opacity: 1;
}

/* Modales de detalle con CSS propio (recepción, producción, ajustes, mermas) */
:root[data-theme="dark"] .modal-content .card-body strong,
:root[data-theme="dark"] .modal-content strong:not(.text-primary):not(.text-info):not(.text-success):not(.text-warning):not(.text-danger) {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .modal-content small.text-muted {
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .modal-content .card:has(.fa-archive) .card-body strong,
:root[data-theme="dark"] .modal-content .card:has(.fa-building) .card-body p {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .modal-content .modal-footer {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .dropdown-item {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .dropdown-item:hover,
:root[data-theme="dark"] .dropdown-item:focus {
  background: var(--app-surface-soft) !important;
}

:root[data-theme="dark"] .table,
:root[data-theme="dark"] table.table {
  --bs-table-color: var(--app-text);
  --bs-table-bg: var(--app-surface);
  --bs-table-border-color: var(--app-border);
  --bs-table-striped-color: var(--app-text);
  --bs-table-striped-bg: var(--app-surface-soft);
  --bs-table-hover-color: var(--app-text);
  --bs-table-hover-bg: var(--app-table-hover);
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] table.table > :not(caption) > * > * {
  background-color: var(--bs-table-bg) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

/* Modal de perfil del navbar */
.user-profile-modal .modal-content {
  border: 0;
  border-radius: 24px;
  box-shadow: 0 20px 60px rgba(15, 23, 42, 0.22);
  overflow: hidden;
}

.user-profile-modal .user-profile-modal__header {
  background: linear-gradient(135deg, #0b5394 0%, #083d6e 100%) !important;
  border: 0;
  padding: 1.25rem 1.5rem;
}

.user-profile-modal .modal-title {
  font-weight: 700;
}

.user-profile-modal .user-profile-modal__hero {
  background: linear-gradient(180deg, rgba(11, 83, 148, 0.08) 0%, rgba(255, 255, 255, 0) 100%);
  padding: 2rem 1.5rem 1.25rem;
}

.user-profile-modal .user-profile-modal__avatar {
  width: 92px;
  height: 92px;
  align-items: center;
  border: 4px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
  display: inline-flex;
  font-size: 2.75rem;
  justify-content: center;
  object-fit: cover;
}

.user-profile-modal .user-profile-modal__avatar-placeholder {
  background: linear-gradient(135deg, #e0edff 0%, #f4f7ff 100%);
  color: #0b5394;
}

.user-profile-modal .user-profile-modal__details {
  display: grid;
  gap: 0.85rem;
  padding: 0 1.5rem 1.5rem;
}

.user-profile-modal .user-profile-modal__item {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  display: flex;
  gap: 0.9rem;
  padding: 0.9rem 1rem;
}

.user-profile-modal .user-profile-modal__icon {
  align-items: center;
  border-radius: 14px;
  display: inline-flex;
  flex: 0 0 42px;
  font-size: 1.25rem;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.user-profile-modal .user-profile-modal__item small {
  color: var(--app-muted, #6b7280);
  display: block;
  font-size: 0.75rem;
  margin-bottom: 0.15rem;
}

.user-profile-modal .user-profile-modal__item strong {
  color: var(--app-text, #1f2937);
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
}

:root[data-theme="dark"] .user-profile-modal .user-profile-modal__hero {
  background: linear-gradient(180deg, rgba(11, 83, 148, 0.18) 0%, rgba(13, 17, 23, 0) 100%);
}

:root[data-theme="dark"] .user-profile-modal .user-profile-modal__item {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .table thead th {
  background: var(--app-surface-muted) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .table-dark,
:root[data-theme="dark"] .table-dark th,
:root[data-theme="dark"] .table-dark td,
:root[data-theme="dark"] thead.table-dark th {
  --bs-table-color: #fff;
  --bs-table-bg: var(--primary, #0b5394);
  color: #fff !important;
  background-color: var(--primary, #0b5394) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
}

:root[data-theme="dark"] .table-light,
:root[data-theme="dark"] .table-light th,
:root[data-theme="dark"] .table-light td,
:root[data-theme="dark"] tr.table-light,
:root[data-theme="dark"] tr.table-light > th,
:root[data-theme="dark"] tr.table-light > td {
  --bs-table-color: var(--app-text);
  --bs-table-bg: var(--app-surface-soft);
  --bs-table-striped-bg: var(--app-surface-muted);
  --bs-table-striped-color: var(--app-text);
  --bs-table-hover-bg: var(--app-surface-muted);
  --bs-table-hover-color: var(--app-text);
  background-color: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] table.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-bg: var(--app-surface-soft);
  background-color: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] table.table-striped > tbody > tr:nth-of-type(even) > * {
  --bs-table-bg: var(--app-surface);
  background-color: var(--app-surface) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] table.table-striped > tbody > tr.table-light > * {
  --bs-table-bg: var(--app-surface-soft);
  background-color: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
}

/* Pestañas Elaboraciones (Platos / Salsas / Guarniciones) */
:root[data-theme="dark"] .nav-tabs-single-row {
  background: var(--app-surface-soft) !important;
  border-bottom: 1px solid var(--app-border) !important;
}

:root[data-theme="dark"] .nav-tabs-single-row .nav-link {
  background: var(--app-surface-soft) !important;
  color: var(--app-muted) !important;
  border-bottom: 3px solid transparent !important;
}

:root[data-theme="dark"] .nav-tabs-single-row .nav-link:hover:not(.active) {
  background: var(--app-surface-muted) !important;
  color: var(--app-text) !important;
  border-bottom-color: rgba(0, 182, 189, 0.35) !important;
}

:root[data-theme="dark"] .nav-tabs-single-row .nav-link.active,
:root[data-theme="dark"] .nav-tabs-single-row .nav-link.active:hover {
  background: var(--app-accent-soft, #0b5394) !important;
  color: #ffffff !important;
  border-bottom-color: var(--app-accent, #00b6bd) !important;
}

/* Tablas de listados: más contraste respecto al fondo de página */
:root[data-theme="dark"] .listado-page .table-responsive,
:root[data-theme="dark"] .listado-page .table-wrapper {
  background: var(--app-surface-soft) !important;
  border: 1px solid var(--app-border);
  border-radius: 0.5rem;
  overflow: hidden;
}

:root[data-theme="dark"] .listado-page table.table {
  --bs-table-bg: var(--app-surface-soft);
  --bs-table-striped-bg: var(--app-surface-muted);
  margin-bottom: 0;
}

:root[data-theme="dark"] .listado-page table.table > tbody > tr > * {
  background-color: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .listado-page table.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: var(--app-surface-muted) !important;
}

:root[data-theme="dark"] .listado-page table.table-striped > tbody > tr:nth-of-type(even) > *,
:root[data-theme="dark"] .listado-page table.table > tbody > tr.table-light > * {
  background-color: var(--app-surface-soft) !important;
}

:root[data-theme="dark"] .listado-page table.table-hover > tbody > tr:hover > * {
  background-color: rgba(0, 182, 189, 0.12) !important;
}

/* Cards internas de detalle de plato / elaboraciones / formularios */
:root[data-theme="dark"] .info-card {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .form-card {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .form-card .form-label,
:root[data-theme="dark"] .form-card .form-text,
:root[data-theme="dark"] .form-card .card-title,
:root[data-theme="dark"] .info-card li,
:root[data-theme="dark"] .info-card .card-title {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .form-card .text-primary,
:root[data-theme="dark"] .form-card h5.text-primary {
  color: #7ec8ff !important;
}

:root[data-theme="dark"] .info-card .text-success,
:root[data-theme="dark"] .info-card h5.text-success {
  color: #8fd14a !important;
}

:root[data-theme="dark"] #formset-table tbody td,
:root[data-theme="dark"] #formset-table tbody tr > * {
  background-color: var(--app-surface) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] #formset-table tbody tr:hover > *,
:root[data-theme="dark"] #formset-table tbody tr:hover td {
  background-color: var(--app-table-hover) !important;
}

:root[data-theme="dark"] .info-table th {
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .info-table td {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .alergeno-item {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .form-control,
:root[data-theme="dark"] .form-select,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] input,
:root[data-theme="dark"] select {
  background-color: var(--app-input-bg) !important;
  border-color: var(--app-input-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .form-select,
:root[data-theme="dark"] select.form-select {
  --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238b949e' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: var(--bs-form-select-bg-img) !important;
  background-repeat: no-repeat !important;
  background-position: right 0.75rem center !important;
  background-size: 16px 12px !important;
}

:root[data-theme="dark"] .form-control::placeholder,
:root[data-theme="dark"] input::placeholder {
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .input-group-text {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-input-border) !important;
  color: var(--app-text) !important;
}

/* Filtros de listados: fondo suave, sin halo claro, inputs del tema */
:root[data-theme="dark"] .listado-page .card.bg-inverse-info,
:root[data-theme="dark"] .listado-filtros-bar .card.bg-inverse-info,
:root[data-theme="dark"] .card.bg-inverse-info:has(.listado-filtros-form),
:root[data-theme="dark"] .listado-page .card.shadow-lg > .card-body > form.listado-filtros-form:first-child {
  background: var(--listado-filtros-bg) !important;
  border-color: var(--listado-filtros-border) !important;
  box-shadow: none !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .listado-page .listado-filtros-form .form-control,
:root[data-theme="dark"] .listado-page .listado-filtros-form .form-select,
:root[data-theme="dark"] .listado-filtros-form .form-control,
:root[data-theme="dark"] .listado-filtros-form .form-select {
  background-color: var(--listado-filtros-input-bg) !important;
  border-color: var(--listado-filtros-input-border) !important;
  color: var(--listado-filtros-input-color) !important;
}

:root[data-theme="dark"] .listado-page .listado-filtros-form .form-control::placeholder,
:root[data-theme="dark"] .listado-filtros-form .form-control::placeholder {
  color: var(--listado-filtros-placeholder) !important;
}

:root[data-theme="dark"] .listado-page .listado-filtros-form .input-group-text,
:root[data-theme="dark"] .listado-page .listado-filtros-form .input-group-text.bg-white,
:root[data-theme="dark"] .listado-filtros-form .input-group-text,
:root[data-theme="dark"] .listado-filtros-form .input-group-text.bg-white {
  background: var(--listado-filtros-input-bg) !important;
  border-color: var(--listado-filtros-input-border) !important;
  color: var(--listado-filtros-placeholder) !important;
}

:root[data-theme="dark"] .listado-page .listado-filtros-form .btn-outline-primary {
  color: #7ec8ff !important;
  border-color: rgba(126, 200, 255, 0.45) !important;
  background: transparent !important;
}

:root[data-theme="dark"] .listado-page .listado-filtros-form .btn-outline-primary:hover,
:root[data-theme="dark"] .listado-page .listado-filtros-form .btn-outline-primary.active {
  color: #ffffff !important;
  background: var(--primary, #0b5394) !important;
  border-color: var(--primary, #0b5394) !important;
}

/* Paginación: sin fondos blancos de Bootstrap en modo oscuro */
:root[data-theme="dark"] .pagination {
  --bs-pagination-color: var(--app-muted);
  --bs-pagination-bg: var(--app-surface-soft);
  --bs-pagination-border-color: var(--app-border);
  --bs-pagination-hover-color: #e6edf3;
  --bs-pagination-hover-bg: var(--app-surface-muted);
  --bs-pagination-hover-border-color: var(--primary, #0b5394);
  --bs-pagination-focus-color: #e6edf3;
  --bs-pagination-focus-bg: var(--app-surface-muted);
  --bs-pagination-focus-box-shadow: 0 0 0 0.2rem rgba(11, 83, 148, 0.35);
  --bs-pagination-active-color: #fff;
  --bs-pagination-active-bg: var(--primary, #0b5394);
  --bs-pagination-active-border-color: var(--primary, #0b5394);
  --bs-pagination-disabled-color: var(--app-muted);
  --bs-pagination-disabled-bg: var(--app-surface);
  --bs-pagination-disabled-border-color: var(--app-border);
}

:root[data-theme="dark"] .pagination .page-link,
:root[data-theme="dark"] .page-link {
  background-color: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .pagination .page-link:hover,
:root[data-theme="dark"] .page-link:hover {
  background-color: var(--app-surface-muted) !important;
  border-color: var(--primary, #0b5394) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .pagination .page-item.active .page-link,
:root[data-theme="dark"] .pagination .page-link.active,
:root[data-theme="dark"] .page-item.active .page-link,
:root[data-theme="dark"] .page-link.active {
  background-color: var(--primary, #0b5394) !important;
  border-color: var(--primary, #0b5394) !important;
  color: #fff !important;
}

:root[data-theme="dark"] .pagination .page-item.disabled .page-link,
:root[data-theme="dark"] .pagination .page-link.disabled,
:root[data-theme="dark"] .page-item.disabled .page-link,
:root[data-theme="dark"] .page-link.disabled {
  background-color: var(--app-surface) !important;
  border-color: var(--app-border) !important;
  color: var(--app-muted) !important;
  opacity: 0.55;
}

:root[data-theme="dark"] .nav-tabs,
:root[data-theme="dark"] .nav-tabs .nav-link,
:root[data-theme="dark"] .nav-pills .nav-link {
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .nav-tabs .nav-link:not(.active) {
  background: var(--app-surface) !important;
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .nav-tabs .nav-link.active,
:root[data-theme="dark"] .nav-pills .nav-link.active {
  background: var(--app-accent-soft) !important;
  color: #ffffff !important;
  border-color: var(--app-accent-soft) !important;
}

:root[data-theme="dark"] .nav-tabs .nav-link:hover:not(.active) {
  background: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

/* Tabs tipo botón (crear/editar alimento y similares) */
:root[data-theme="dark"] .nav-link-tab,
:root[data-theme="dark"] #consulta .nav-link-tab {
  color: var(--app-muted) !important;
  background: var(--app-surface-soft) !important;
  border: 1px solid var(--app-border) !important;
}

:root[data-theme="dark"] .nav-link-tab:hover,
:root[data-theme="dark"] #consulta .nav-link-tab:hover {
  color: var(--app-text) !important;
  background: var(--app-surface-muted) !important;
  border-color: rgba(0, 182, 189, 0.35) !important;
}

:root[data-theme="dark"] .nav-link-tab.active,
:root[data-theme="dark"] #consulta .nav-link-tab.active {
  color: #ffffff !important;
  background: var(--app-accent-soft) !important;
  border-color: var(--app-accent-soft) !important;
}

:root[data-theme="dark"] .nav-tabs-wrapper,
:root[data-theme="dark"] #consulta .nav-tabs-wrapper {
  border-bottom-color: var(--app-border) !important;
}

/* Contenido interno de modales de alimento (detalle / edición) */
:root[data-theme="dark"] .modal-tabs .tab-content,
:root[data-theme="dark"] .modal-tabs .table-wrapper,
:root[data-theme="dark"] .modal-tabs .nutrition-table,
:root[data-theme="dark"] .modal-tabs .nutrition-table td,
:root[data-theme="dark"] .modal-tabs .nutrition-table th,
:root[data-theme="dark"] .modal-tabs .descongelacion-table,
:root[data-theme="dark"] .modal-tabs .descongelacion-table td,
:root[data-theme="dark"] .modal-tabs .descongelacion-table th,
:root[data-theme="dark"] .table-wrapper,
:root[data-theme="dark"] .nutrition-table,
:root[data-theme="dark"] .nutrition-table td,
:root[data-theme="dark"] .nutrition-table th,
:root[data-theme="dark"] .descongelacion-table,
:root[data-theme="dark"] .descongelacion-table td,
:root[data-theme="dark"] .descongelacion-table th {
  background: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .nutrition-table,
:root[data-theme="dark"] .descongelacion-table,
:root[data-theme="dark"] .modal-tabs .nutrition-table,
:root[data-theme="dark"] .modal-tabs .descongelacion-table {
  background: var(--app-surface) !important;
  border: 1px solid var(--app-border) !important;
}

:root[data-theme="dark"] .nutrition-table th,
:root[data-theme="dark"] .descongelacion-table th,
:root[data-theme="dark"] .modal-tabs .nutrition-table th,
:root[data-theme="dark"] .modal-tabs .descongelacion-table th {
  background: var(--app-surface-muted) !important;
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .alert-light,
:root[data-theme="dark"] .modal-tabs .alert-light {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .section-title,
:root[data-theme="dark"] .modal-tabs .section-title {
  color: var(--app-text) !important;
  border-bottom-color: var(--app-border) !important;
}

:root[data-theme="dark"] .observaciones-text,
:root[data-theme="dark"] .table.table-borderless td,
:root[data-theme="dark"] .table.table-borderless th {
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .table.table-borderless th {
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] .img-container {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] .allergen-img {
  border-color: var(--app-surface-soft) !important;
}

:root[data-theme="dark"] .alert-info {
  background: rgba(0, 182, 189, 0.1) !important;
  border-left-color: var(--info, #00b6bd) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .alert-info .alert-heading,
:root[data-theme="dark"] .alert-info ul {
  color: var(--app-muted) !important;
}

/* Modal de edición/creación cargado en #consulta */
:root[data-theme="dark"] #consulta .modal-body,
:root[data-theme="dark"] #consulta .tab-content {
  background: var(--app-surface) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] #consulta .form-control,
:root[data-theme="dark"] #consulta .form-select,
:root[data-theme="dark"] #consulta input[type="text"],
:root[data-theme="dark"] #consulta input[type="email"],
:root[data-theme="dark"] #consulta input[type="url"],
:root[data-theme="dark"] #consulta input[type="tel"],
:root[data-theme="dark"] #consulta input[type="number"],
:root[data-theme="dark"] #consulta input[type="file"],
:root[data-theme="dark"] #consulta textarea {
  background-color: var(--app-input-bg) !important;
  border: 1px solid var(--app-input-border) !important;
  color: var(--app-text) !important;
  box-shadow: none !important;
}

:root[data-theme="dark"] #consulta .form-select {
  --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238b949e' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: var(--bs-form-select-bg-img) !important;
  background-repeat: no-repeat !important;
  background-position: right 0.75rem center !important;
  background-size: 16px 12px !important;
  padding-right: 2.25rem !important;
}

:root[data-theme="dark"] #consulta .form-label,
:root[data-theme="dark"] #consulta .form-text {
  color: var(--app-muted) !important;
}

:root[data-theme="dark"] #consulta .alergeno-checkbox {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
}

:root[data-theme="dark"] #consulta .alergeno-checkbox:hover {
  background: rgba(11, 83, 148, 0.25) !important;
  border-color: rgba(0, 182, 189, 0.45) !important;
}

:root[data-theme="dark"] #consulta .alergeno-checkbox:has(input:checked) {
  border-color: #8fd14a !important;
  background: rgba(107, 172, 0, 0.28) !important;
  box-shadow: 0 0 0 3px rgba(143, 209, 74, 0.35) !important;
}

:root[data-theme="dark"] #consulta .alergeno-checkbox:has(input:checked) img,
:root[data-theme="dark"] #consulta .alergeno-checkbox:has(input:checked) .no-image-placeholder {
  border-color: #8fd14a !important;
  box-shadow: 0 0 0 2px rgba(143, 209, 74, 0.4) !important;
}

:root[data-theme="dark"] #consulta .alergeno-checkbox:has(input:checked) span {
  color: #b6e87a !important;
}

:root[data-theme="dark"] #consulta .alergeno-checkbox span,
:root[data-theme="dark"] #consulta .form-check.config-modal-estado .form-check-label {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] #consulta .modal-delete-resumen {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] #consulta .modal-footer {
  border-top-color: var(--app-border) !important;
}

:root[data-theme="dark"] .alert-info {
  background: rgba(0, 182, 189, 0.12) !important;
  border-color: rgba(0, 182, 189, 0.35) !important;
  border-left-color: var(--info, #00b6bd) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .alert-warning,
:root[data-theme="dark"] .alert-secondary {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .btn-light,
:root[data-theme="dark"] .btn-outline-secondary,
:root[data-theme="dark"] .btn-inverse-secondary,
:root[data-theme="dark"] .btn-inverse-light {
  background: var(--app-surface-soft) !important;
  border-color: var(--app-input-border) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .btn-light:hover,
:root[data-theme="dark"] .btn-outline-secondary:hover,
:root[data-theme="dark"] .btn-inverse-secondary:hover,
:root[data-theme="dark"] .btn-inverse-light:hover {
  background: var(--app-surface-muted) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .btn-inverse-primary,
:root[data-theme="dark"] .btn-inverse-primary:not(.btn-inverse-light) {
  background: rgba(126, 200, 255, 0.16) !important;
  border-color: rgba(126, 200, 255, 0.35) !important;
  color: #7ec8ff !important;
}

:root[data-theme="dark"] .btn-inverse-primary:hover,
:root[data-theme="dark"] .btn-inverse-primary:focus {
  background: rgba(126, 200, 255, 0.28) !important;
  border-color: rgba(126, 200, 255, 0.5) !important;
  color: #a8dbff !important;
}

:root[data-theme="dark"] .bg-light,
:root[data-theme="dark"] .badge.bg-light {
  background-color: var(--app-surface-soft) !important;
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .text-dark,
:root[data-theme="dark"] .text-black,
:root[data-theme="dark"] .text-body {
  color: var(--app-text) !important;
}

:root[data-theme="dark"] .bg-white .text-dark,
:root[data-theme="dark"] .bg-white .text-black,
:root[data-theme="dark"] .bg-light .text-dark,
:root[data-theme="dark"] .bg-light .text-black {
  color: var(--app-text) !important;
}

.theme-toggle-btn {
  width: 36px;
  height: 36px;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 50% !important;
  line-height: 1 !important;
  margin: 0 !important;
  vertical-align: middle;
  flex-shrink: 0;
}

.theme-toggle-btn i {
  line-height: 1 !important;
  font-size: 1.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.theme-toggle-btn .theme-icon-dark {
  display: none;
}

:root[data-theme="dark"] .theme-toggle-btn .theme-icon-light {
  display: none;
}

:root[data-theme="dark"] .theme-toggle-btn .theme-icon-dark {
  display: inline-flex;
}

/* Botones Bootstrap — colores EffiTag */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #0b5394;
  --bs-btn-border-color: #0b5394;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #094a82;
  --bs-btn-hover-border-color: #084678;
  --bs-btn-focus-shadow-rgb: 11, 83, 148;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #083d6e;
  --bs-btn-active-border-color: #073a68;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #0b5394;
  --bs-btn-disabled-border-color: #0b5394;
}

.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: #6bac00;
  --bs-btn-border-color: #6bac00;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #5f9900;
  --bs-btn-hover-border-color: #599000;
  --bs-btn-focus-shadow-rgb: 107, 172, 0;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #548700;
  --bs-btn-active-border-color: #4f7f00;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #6bac00;
  --bs-btn-disabled-border-color: #6bac00;
}

.btn-info {
  --bs-btn-color: #fff;
  --bs-btn-bg: #00b6bd;
  --bs-btn-border-color: #00b6bd;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #00a3aa;
  --bs-btn-hover-border-color: #009ba1;
  --bs-btn-focus-shadow-rgb: 0, 182, 189;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #009297;
  --bs-btn-active-border-color: #008a90;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #00b6bd;
  --bs-btn-disabled-border-color: #00b6bd;
}

.btn-outline-primary {
  --bs-btn-color: #0b5394;
  --bs-btn-border-color: #0b5394;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #0b5394;
  --bs-btn-hover-border-color: #0b5394;
  --bs-btn-focus-shadow-rgb: 11, 83, 148;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #0b5394;
  --bs-btn-active-border-color: #0b5394;
  --bs-btn-disabled-color: #0b5394;
  --bs-btn-disabled-border-color: #0b5394;
}

.btn-outline-success {
  --bs-btn-color: #6bac00;
  --bs-btn-border-color: #6bac00;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #6bac00;
  --bs-btn-hover-border-color: #6bac00;
  --bs-btn-focus-shadow-rgb: 107, 172, 0;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #6bac00;
  --bs-btn-active-border-color: #6bac00;
  --bs-btn-disabled-color: #6bac00;
  --bs-btn-disabled-border-color: #6bac00;
}

.btn-outline-info {
  --bs-btn-color: #00b6bd;
  --bs-btn-border-color: #00b6bd;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #00b6bd;
  --bs-btn-hover-border-color: #00b6bd;
  --bs-btn-focus-shadow-rgb: 0, 182, 189;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #00b6bd;
  --bs-btn-active-border-color: #00b6bd;
  --bs-btn-disabled-color: #00b6bd;
  --bs-btn-disabled-border-color: #00b6bd;
}

.btn-inverse-primary {
  background-color: rgba(11, 83, 148, 0.2);
  border-color: rgba(11, 83, 148, 0);
}
.btn-inverse-primary:not(.btn-inverse-light) {
  color: #0b5394;
}
.btn-inverse-primary.focus,
.btn-inverse-primary:focus {
  box-shadow: 0 0 0 3px rgba(11, 83, 148, 0.5);
}
.btn-inverse-primary.disabled,
.btn-inverse-primary:disabled {
  color: #0b5394;
}
.btn-inverse-primary.active,
.btn-inverse-primary:active,
.show > .btn-inverse-primary.dropdown-toggle {
  color: #fff;
  background-color: #0b5394;
  border-color: #0b5394;
}

.btn-inverse-success {
  background-color: rgba(107, 172, 0, 0.2);
  border-color: rgba(107, 172, 0, 0);
}
.btn-inverse-success:not(.btn-inverse-light) {
  color: #6bac00;
}
.btn-inverse-success.focus,
.btn-inverse-success:focus {
  box-shadow: 0 0 0 3px rgba(107, 172, 0, 0.5);
}
.btn-inverse-success.disabled,
.btn-inverse-success:disabled {
  color: #6bac00;
}
.btn-inverse-success.active,
.btn-inverse-success:active,
.show > .btn-inverse-success.dropdown-toggle {
  color: #fff;
  background-color: #6bac00;
  border-color: #6bac00;
}

.btn-inverse-info {
  background-color: rgba(0, 182, 189, 0.2);
  border-color: rgba(0, 182, 189, 0);
}
.btn-inverse-info:not(.btn-inverse-light) {
  color: #00b6bd;
}
.btn-inverse-info.focus,
.btn-inverse-info:focus {
  box-shadow: 0 0 0 3px rgba(0, 182, 189, 0.5);
}
.btn-inverse-info.disabled,
.btn-inverse-info:disabled {
  color: #00b6bd;
}
.btn-inverse-info.active,
.btn-inverse-info:active,
.show > .btn-inverse-info.dropdown-toggle {
  color: #fff;
  background-color: #00b6bd;
  border-color: #00b6bd;
}
