/* ============================================================================
   MIZ JUEGOS · MODO OSCURO
   ----------------------------------------------------------------------------
   CRITERIO:
   - Los AZULES quedan EXACTAMENTE como en el modo claro (no se tocan):
       primario #1a56db · navy topbar/header #1a2e44 · sidebar #0f1e2e
       degradés de las tarjetas "emphasis" / "total"  → intactos.
   - Sólo se cambian:
       1) los FONDOS blancos/grises  → negros (tonos exactos de la captura)
       2) algunos COLORES DE TEXTO   → claros (y verde/rojo un poco más vivos
          para que se lean sobre fondo oscuro)
   Todo scopeado bajo [data-theme="dark"] → no afecta el modo claro.
   ============================================================================ */

[data-theme="dark"] {
  /* ── Negros (tonos muestreados de la captura) ── */
  --bg:            #181a1b;   /* fondo de página      (era #f4f5f7 / #f2f2f7) */
  --surface:       #1e2022;   /* tarjetas / paneles   (era #fff)              */
  --surface-2:     #25282a;   /* footers / hovers     (era #fafbfc / #f7f8fa) */
  --surface-input: #1b1d1e;   /* fondo de inputs      (era #f9f9fb)           */

  /* ── Bordes oscuros ── */
  --border:        #2c2f31;   /* bordes tarjeta/filtros (era #e6e8eb/#eef0f4) */
  --border-soft:   #232527;   /* divisores de filas     (era #f2f3f5)         */
  --border-strong: #3a3d40;   /* inputs                 (era #d1d1d6)         */

  /* ── Texto claro ── */
  --text:          #e7eaee;   /* principal  (era #1c1c1e) */
  --text-2:        #c2c8cf;   /* secundario (era #3a3a3c) */
  --text-muted:    #8b929b;   /* labels     (era #8e8e93) */
  --text-faint:    #5a616a;   /* placeholders/disabled (era #c7c7cc) */

  /* ── AZULES = IGUALES AL ORIGINAL (no cambian) ── */
  --primary:       #1a56db;
  --primary-hover: #1648b8;
  --primary-bg:    rgba(26,86,219,.18);   /* tinte azul oscuro donde antes había
                                             un celeste clarito (#f0f6ff/#eef3fb) */
  --primary-bd:    rgba(26,86,219,.45);

  /* ── Verde / rojo: mismos roles, apenas más vivos para leerse en oscuro ── */
  --pos:           #54e08a;   --pos-bg:  rgba(84,224,138,.14);
  --neg:           #f06a5d;   --neg-bg:  rgba(240,106,93,.14);
  --warn:          #e0a13a;   --warn-bg: rgba(224,161,58,.15);
  --purple:        #9b7dff;   --purple-bg: rgba(155,125,255,.14);

  color-scheme: dark;
}

/* ════════════════════════════════════════════════════════════════════════
   BASE
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] body { background: var(--bg); color: var(--text); }

[data-theme="dark"] ::-webkit-scrollbar { width: 12px; height: 12px; }
[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--bg); }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #33383d; border-radius: 7px; border: 3px solid var(--bg); }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: #424850; }

/* ════════════════════════════════════════════════════════════════════════
   SIDEBAR  (sigue siendo el navy #0f1e2e original — NO se toca el azul)
   ════════════════════════════════════════════════════════════════════════ */
/* (sin overrides: la sidebar conserva su color de marca) */

/* ════════════════════════════════════════════════════════════════════════
   TOPBAR  (navy #1a2e44 original — NO se toca)
   Botones azules, pestañas activas, chips activos: TODO queda #1a56db original.
   ════════════════════════════════════════════════════════════════════════ */
/* (sin overrides de color azul) */

/* Estado de guardado (Efectivo) */
[data-theme="dark"] .save-dot { background: var(--pos); }

/* ════════════════════════════════════════════════════════════════════════
   FILTROS / TOOLBAR  → sólo fondos y textos
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .filterbar,
[data-theme="dark"] .sticky-top { background: var(--surface); border-bottom-color: var(--border); }
[data-theme="dark"] .toolbar { background: var(--surface-2); border-bottom-color: var(--border); }
[data-theme="dark"] .kbd-hints { background: var(--surface); border-bottom-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] .kbd-hints b { color: var(--text-2); }
[data-theme="dark"] kbd { background: var(--surface-2); border-color: var(--border-strong); color: var(--text-2); }

[data-theme="dark"] .field-label,
[data-theme="dark"] .tool-label,
[data-theme="dark"] .filter-label,
[data-theme="dark"] .ef > label,
[data-theme="dark"] .field label { color: var(--text-muted); }

[data-theme="dark"] .period-select { background: var(--primary-bg); border-color: var(--primary); color: #7aa6ff; }
[data-theme="dark"] .divider-v { background: var(--border); }
[data-theme="dark"] .group-label { color: var(--text-2); }

/* Inputs */
[data-theme="dark"] .search-input,
[data-theme="dark"] .numero-input,
[data-theme="dark"] .filter-select,
[data-theme="dark"] .ef-input,
[data-theme="dark"] .field input,
[data-theme="dark"] .field select,
[data-theme="dark"] select,
[data-theme="dark"] .detalle-input,
[data-theme="dark"] .ss-input,
[data-theme="dark"] .cell-input,
[data-theme="dark"] .conteo-qty,
[data-theme="dark"] .step-input {
  /* background-color (NO el shorthand): el shorthand resetea background-image/repeat/position
     y rompía el chevron de los <select> (se tileaba el › hacia abajo, duplicado) */
  background-color: var(--surface-input); border-color: var(--border-strong); color: var(--text);
}
[data-theme="dark"] .search-input:focus,
[data-theme="dark"] .numero-input:focus,
[data-theme="dark"] .ef-input:focus,
[data-theme="dark"] .field input:focus,
[data-theme="dark"] .field select:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] .detalle-input:focus,
[data-theme="dark"] .ss-input:focus,
[data-theme="dark"] .cell-input:focus,
[data-theme="dark"] .conteo-qty:focus,
[data-theme="dark"] .step-input:focus { border-color: var(--primary); background-color: #141617; }
[data-theme="dark"] .search-icon { color: var(--text-muted); }
[data-theme="dark"] .search-input::placeholder,
[data-theme="dark"] .ef-input::placeholder,
[data-theme="dark"] .cell-input::placeholder,
[data-theme="dark"] .detalle-input::placeholder { color: var(--text-faint); }
[data-theme="dark"] .search-clear { background: var(--surface-2); color: var(--text-muted); }
[data-theme="dark"] select.filled,
[data-theme="dark"] .ss-input.filled { border-color: var(--pos); }
[data-theme="dark"] .cell-input:hover { border-color: #4a5158; }
[data-theme="dark"] .conteo-qty:disabled { background: #1a1c1e; color: var(--text-muted); border-color: var(--border); }

/* Opciones del dropdown nativo: en oscuro la lista de opciones salía blanca
   (con appearance:none, color-scheme:dark no alcanza en Win/Chrome) → caja origen/destino, conteo, etc. */
[data-theme="dark"] select option { background: var(--surface); color: var(--text); }

/* Selects con chevron (recolorea la flechita gris embebida) */
[data-theme="dark"] select.cell-input,
[data-theme="dark"] select.ef-input,
[data-theme="dark"] .field select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238b929b' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Chips INACTIVOS → fondo oscuro. Los ACTIVOS siguen azul #1a56db (base, no se toca) */
[data-theme="dark"] .chip,
[data-theme="dark"] .estado-chip {
  background: var(--surface-input); border-color: var(--border-strong); color: var(--text-2);
}
[data-theme="dark"] .chip:hover,
[data-theme="dark"] .estado-chip:hover { border-color: #4a5158; }
/* Estados ACTIVOS: restauran el azul/verde/rojo de la plantilla (mi regla .chip
   los pisaría por orden de cascada, así que los re-declaro con + especificidad) */
[data-theme="dark"] .chip.active,
[data-theme="dark"] .estado-chip.active,
[data-theme="dark"] .chip.active-blue { background: var(--primary); border-color: var(--primary); color: #fff; }
[data-theme="dark"] .chip.active-green { background: #34c759; border-color: #34c759; color: #fff; }
[data-theme="dark"] .chip.active-red { background: #ff3b30; border-color: #ff3b30; color: #fff; }

/* Presets / limpiar / paginación / +- / iconos → fondo oscuro, azul al hover */
[data-theme="dark"] .preset-btn,
[data-theme="dark"] .cal-preset,
[data-theme="dark"] .pager-btn,
[data-theme="dark"] .conteo-step,
[data-theme="dark"] .icon-btn {
  background: var(--surface-input); border-color: var(--border-strong); color: var(--text-2);
}
[data-theme="dark"] .preset-btn:hover,
[data-theme="dark"] .cal-preset:hover,
[data-theme="dark"] .pager-btn:hover:not(:disabled),
[data-theme="dark"] .conteo-step:hover,
[data-theme="dark"] .icon-btn:hover { background: var(--primary-bg); border-color: var(--primary); color: #7aa6ff; }
[data-theme="dark"] .preset-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }
[data-theme="dark"] .pager-btn:disabled { color: var(--text-faint); border-color: var(--border); }
[data-theme="dark"] .pager-info,
[data-theme="dark"] .results-meta,
[data-theme="dark"] .grid-foot-info,
[data-theme="dark"] .mov-cards-foot { color: var(--text-muted); }
[data-theme="dark"] .conteo-step.minus { color: var(--neg); }
[data-theme="dark"] .conteo-step.minus:hover { background: var(--neg-bg); border-color: var(--neg); color: var(--neg); }
[data-theme="dark"] .btn-clear { background: none; color: var(--text-muted); }

/* Date range pill (inactivo oscuro · activo azul base) */
[data-theme="dark"] .date-range { background: var(--surface-input); border-color: var(--border-strong); color: var(--text); }
[data-theme="dark"] .date-range:hover { background: var(--surface-2); }
[data-theme="dark"] .date-range.active,
[data-theme="dark"] .date-range.complete { border-color: var(--primary); background: var(--primary-bg); }
[data-theme="dark"] .date-field { background: var(--primary-bg); border-color: var(--primary); }
[data-theme="dark"] .date-display { color: var(--text); }
[data-theme="dark"] .date-range.active .date-display,
[data-theme="dark"] .date-range.complete .date-display { color: #7aa6ff; }
[data-theme="dark"] .date-sep { color: var(--text-muted); }

/* ════════════════════════════════════════════════════════════════════════
   KPIs / TARJETAS DE SALDO  → sólo fondo/borde/texto (degradés azul/rojo intactos)
   ════════════════════════════════════════════════════════════════════════ */
/* :not(.emphasis) → no pisar el degradé de la tarjeta destacada (Pendiente/Saldo Final),
   que el README pide dejar intacto. Sin esto, empata en especificidad y queda gris. */
[data-theme="dark"] .kpi:not(.emphasis),
[data-theme="dark"] .mkpi:not(.emphasis) { background: var(--surface); border-color: var(--border); box-shadow: 0 1px 4px rgba(0,0,0,.4); }
[data-theme="dark"] .kpi-label,
[data-theme="dark"] .mkpi-label { color: var(--text-muted); }
[data-theme="dark"] .kpi-value,
[data-theme="dark"] .mkpi-value { color: var(--text); }
[data-theme="dark"] .kpi.emphasis .kpi-value,
[data-theme="dark"] .kpi.emphasis .kpi-label,
[data-theme="dark"] .mkpi.emphasis .mkpi-value { color: #fff; }
[data-theme="dark"] .kpi-badge { background: var(--surface-2); color: var(--text-muted); }
[data-theme="dark"] .kpi-badge.green { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .kpi-badge.red { background: var(--neg-bg); color: var(--neg); }

/* Saldos por caja (Efectivo) — tarjeta .total mantiene su degradé azul original */
[data-theme="dark"] .saldos-wrap { background: var(--surface); border-bottom-color: var(--border); }
[data-theme="dark"] .saldo-card:not(.total) { background: var(--surface-input); border-color: var(--border); }
[data-theme="dark"] .saldo-card:not(.total):hover { border-color: var(--primary-bd); background: #1c2330; }
[data-theme="dark"] .saldo-card.active { border-color: var(--primary); background: var(--primary-bg); }
[data-theme="dark"] .saldo-name { color: var(--text-muted); }
[data-theme="dark"] .saldo-card.active .saldo-name { color: #7aa6ff; }
[data-theme="dark"] .saldo-value { color: var(--text); }
[data-theme="dark"] .saldo-sub { color: var(--text-muted); }

/* ════════════════════════════════════════════════════════════════════════
   TABLAS  → header navy original. Sólo cambian cuerpo (fondos) y textos.
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .pivot-card,
[data-theme="dark"] .results-card,
[data-theme="dark"] .grid-card { background: var(--surface); border-color: var(--border); box-shadow: 0 1px 4px rgba(0,0,0,.4); }

/* (thead navy #1a2e44 / th-total #13283d: NO se tocan, vienen de la plantilla) */

/* Conciliación: filas de rubro / imputación */
[data-theme="dark"] tr.rubro-row { background: #23262b; }
[data-theme="dark"] tr.rubro-row td.td-label { background: #23262b; color: #d6dde7; }
[data-theme="dark"] tr.rubro-row td.td-total { background: #283041; }
[data-theme="dark"] tr.rubro-row + tr.rubro-row,
[data-theme="dark"] .pivot-card tbody tr.section-sep td,
[data-theme="dark"] tr.total-row td { border-top-color: var(--bg); }
/* el separador entre rubros usa background (no borde): hay que pisarlo o queda blanco */
[data-theme="dark"] .pivot-card tbody tr.section-sep td { background: var(--bg); }
[data-theme="dark"] .rubro-count { color: var(--text-muted); }

[data-theme="dark"] tr.imp-row td { border-bottom-color: var(--border-soft); }
[data-theme="dark"] tr.imp-row td.td-label { background: var(--surface); color: var(--text); }
[data-theme="dark"] tr.imp-row td.td-total { background: #191b1c; }
[data-theme="dark"] tr.imp-row td.clickable:hover { background: var(--primary-bg); }

/* total-row: navy #1a2e44 con texto blanco ya funciona; sólo el separador superior */
[data-theme="dark"] tr.total-row td { background: #1a2e44; }
[data-theme="dark"] tr.total-row td.td-label { background: #1a2e44; }
[data-theme="dark"] tr.total-row td.td-total { background: #0c1929; }

/* result-row (Resultado antes de retiros, P&L): verde tenue que combina con el oscuro */
[data-theme="dark"] tr.result-row td { background: #1e2a22; border-top-color: var(--bg); }
[data-theme="dark"] tr.result-row td.td-label { background: #1e2a22; color: #6fd99a; }
[data-theme="dark"] tr.result-row td.td-total { background: #182420; }
/* columna % (sticky a la derecha del Total): mismo fondo que el td-total de cada fila */
[data-theme="dark"] tr.rubro-row td.td-pct  { background: #283041; color: #9db6dc; }
[data-theme="dark"] tr.imp-row td.td-pct    { background: #191b1c; color: var(--text-faint); }
[data-theme="dark"] tr.total-row td.td-pct  { background: #0c1929; color: #c9d6e6; }
[data-theme="dark"] tr.result-row td.td-pct { background: #182420; color: #6fd99a; }
[data-theme="dark"] .pct-badge { color: var(--text-faint); }
/* result-card (mobile) */
[data-theme="dark"] .result-card .rubro-card-hdr { background: #1e2a22; }
[data-theme="dark"] .result-card .rubro-card-title { color: #6fd99a; }

/* Montos (verde/rojo más vivos para leerse en oscuro) */
[data-theme="dark"] .amt-pos,
[data-theme="dark"] .pos,
[data-theme="dark"] .cell-monto.pos,
[data-theme="dark"] .cell-saldo.pos,
[data-theme="dark"] td.gd-monto.pos,
[data-theme="dark"] .mov-card-monto.pos,
[data-theme="dark"] .mirror-amt.pos,
[data-theme="dark"] .xfer-saldo .pos,
[data-theme="dark"] .pago-monto { color: var(--pos); }
[data-theme="dark"] .amt-neg,
[data-theme="dark"] .neg,
[data-theme="dark"] .pend-pos,
[data-theme="dark"] .cell-monto.neg,
[data-theme="dark"] .cell-saldo.neg,
[data-theme="dark"] td.gd-monto.neg,
[data-theme="dark"] .mov-card-monto.neg,
[data-theme="dark"] .mirror-amt.neg,
[data-theme="dark"] .xfer-saldo .neg,
[data-theme="dark"] .fcard-pend,
[data-theme="dark"] .pago-monto.neg { color: var(--neg); }
[data-theme="dark"] .amt-zero,
[data-theme="dark"] .cell-saldo.zero,
[data-theme="dark"] .ref-empty,
[data-theme="dark"] .imp-empty,
[data-theme="dark"] .gd-empty-cell { color: var(--text-faint); }
[data-theme="dark"] .pivot-legend { color: var(--text-muted); }

/* Facturas / Pagos / Efectivo: celdas y hover */
[data-theme="dark"] tbody td { border-bottom-color: var(--border-soft); }
/* hover de fila completa SOLO en Facturas/Pagos (.results-card); en la pivot de
   Conciliación se resalta solo la celda (igual que el modo claro) vía tr.imp-row td.clickable:hover */
[data-theme="dark"] .results-card tbody tr:hover td { background: #24272b; }
[data-theme="dark"] .results-card tbody tr.has-archivo:hover td { background: #1d2735 !important; }
[data-theme="dark"] .grid-table tbody tr { border-bottom-color: var(--border-soft); }
[data-theme="dark"] .grid-table tbody tr:hover,
[data-theme="dark"] tr.gd-row:hover { background: #24272b; }
[data-theme="dark"] .grid-table td.col-act { background: var(--surface); }
/* al hacer hover la fila, la columna sticky de acciones tenía base #f7faff (clara) → quedaba blanca */
[data-theme="dark"] .grid-table tbody tr.gd-row:hover td.col-act { background: #24272b; }
[data-theme="dark"] .grid-table tbody tr.empty-row { background: #161d27; }
[data-theme="dark"] .grid-table tbody tr.empty-row:hover { background: #18202c; }
[data-theme="dark"] .grid-footer { background: var(--surface-2); border-top-color: var(--border); }
[data-theme="dark"] .col-idx-num { color: var(--text-faint); }
[data-theme="dark"] td.gd-fecha,
[data-theme="dark"] input.cell-fecha { color: var(--text-2); }
[data-theme="dark"] td.gd-concepto,
[data-theme="dark"] .conteo-denom,
[data-theme="dark"] input.cell-concepto { color: var(--text); }

/* Badges de estado (Facturas) */
[data-theme="dark"] .badge-pagada,
[data-theme="dark"] .badge-debitado { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .badge-no_pagada,
[data-theme="dark"] .badge-rechazado { background: var(--neg-bg); color: var(--neg); }
[data-theme="dark"] .badge-parcial { background: var(--warn-bg); color: var(--warn); }
[data-theme="dark"] .badge-nota_credito,
[data-theme="dark"] .nc-tag { background: var(--purple-bg); color: var(--purple); }
[data-theme="dark"] .badge-emitido { background: var(--primary-bg); color: #7aa6ff; }
[data-theme="dark"] .metodo-badge,
[data-theme="dark"] .imp-tag { background: var(--primary-bg); color: #8fb0ee; }
[data-theme="dark"] .ref-cell { color: var(--text-2); }

/* Tipo badges (Efectivo) */
[data-theme="dark"] .tipo-badge.ingreso { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .tipo-badge.egreso { background: var(--neg-bg); color: var(--neg); }
[data-theme="dark"] .tipo-badge.gasto { background: var(--warn-bg); color: var(--warn); }
[data-theme="dark"] .tipo-badge.correccion { background: #2a2d31; color: #9aa2ac; }
[data-theme="dark"] select.tipo-ingreso { color: var(--pos); }
[data-theme="dark"] select.tipo-egreso { color: var(--neg); }
[data-theme="dark"] select.tipo-gasto { color: var(--warn); }
[data-theme="dark"] select.tipo-correccion { color: var(--text-muted); }

/* ════════════════════════════════════════════════════════════════════════
   AUTOCOMPLETE / COMBOS / DROPDOWNS
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .ac-list,
[data-theme="dark"] .ss-list,
[data-theme="dark"] .combo-list,
[data-theme="dark"] .cal-popup { background: #202325; border-color: var(--border-strong); box-shadow: 0 8px 32px rgba(0,0,0,.5); }
[data-theme="dark"] .ac-item { border-bottom-color: var(--border-soft); }
[data-theme="dark"] .ac-item:hover,
[data-theme="dark"] .ac-item.active,
[data-theme="dark"] .ss-option:hover,
[data-theme="dark"] .combo-opt:hover { background: #2a2f36; }
[data-theme="dark"] .ss-option.ss-active,
[data-theme="dark"] .combo-opt.active { background: #2c3340; }
[data-theme="dark"] .ac-avatar { background: var(--surface-2); color: var(--text-2); }
[data-theme="dark"] .ac-meta,
[data-theme="dark"] .combo-empty,
[data-theme="dark"] .combo-caret { color: var(--text-muted); }

/* ════════════════════════════════════════════════════════════════════════
   CALENDARIO
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .cal-nav,
[data-theme="dark"] .cal-title { color: var(--text); }
[data-theme="dark"] .cal-nav:hover { background: var(--surface-2); }
[data-theme="dark"] .cal-weekdays span { color: var(--text-muted); }
[data-theme="dark"] .cal-day { color: var(--text); }
[data-theme="dark"] .cal-day.other-month,
[data-theme="dark"] .cal-day.future,
[data-theme="dark"] .cal-day.disabled,
[data-theme="dark"] .cal-nav.disabled { color: var(--text-faint); }
[data-theme="dark"] .cal-day.in-range { background: #20304a; color: #9fc0ff; }
[data-theme="dark"] .cal-day.sel-start.has-end { background: linear-gradient(90deg, transparent 50%, #20304a 50%); }
[data-theme="dark"] .cal-day.sel-end.has-start { background: linear-gradient(90deg, #20304a 50%, transparent 50%); }
[data-theme="dark"] .cal-day:not(.sel-start):not(.sel-end):not(.in-range):hover { background: var(--surface-2); }
[data-theme="dark"] .cal-actions { border-top-color: var(--border); }
[data-theme="dark"] .cal-btn-clear { color: var(--text-muted); }

/* ════════════════════════════════════════════════════════════════════════
   FORMULARIO DE CARGA + TRANSFERENCIA + CONTEO (Efectivo)
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .entry-card,
[data-theme="dark"] .xfer-card,
[data-theme="dark"] .conteo-card,
[data-theme="dark"] .card { background: var(--surface); border-color: var(--border); box-shadow: 0 1px 4px rgba(0,0,0,.4); }
[data-theme="dark"] .entry-card { border-top-color: var(--primary); }
[data-theme="dark"] .entry-hint { color: var(--text-muted); }
[data-theme="dark"] .entry-hint b,
[data-theme="dark"] .grid-foot-info b { color: var(--text-2); }
[data-theme="dark"] .add-row-btn { background: var(--surface); border-color: var(--primary-bd); color: #7aa6ff; }
[data-theme="dark"] .add-row-btn:hover { background: var(--primary-bg); }

[data-theme="dark"] .xfer-head,
[data-theme="dark"] .xfer-foot { border-color: var(--border); }
[data-theme="dark"] .xfer-head p,
[data-theme="dark"] .xfer-saldo,
[data-theme="dark"] .mirror-text { color: var(--text-muted); }
[data-theme="dark"] .mirror-text b,
[data-theme="dark"] .xfer-head h2 { color: var(--text); }
[data-theme="dark"] .xfer-preview { background: #1d1a2b; border-color: #3a2f5a; }
[data-theme="dark"] .xfer-preview-title { color: var(--purple); }
[data-theme="dark"] .mirror-badge.egreso { background: var(--neg-bg); color: var(--neg); }
[data-theme="dark"] .mirror-badge.ingreso { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .btn-lg-ghost { background: var(--surface-2); color: var(--text-2); }
[data-theme="dark"] .btn-max { background: var(--primary-bg); border-color: var(--primary); color: #7aa6ff; }
[data-theme="dark"] .field label { color: var(--text-2); }

/* Conteo */
[data-theme="dark"] .conteo-table th { color: var(--text-muted); border-bottom-color: var(--border); }
[data-theme="dark"] .conteo-table tbody td { border-bottom-color: var(--border-soft); }
[data-theme="dark"] .conteo-table tbody tr:hover { background: #20242a; }
[data-theme="dark"] .conteo-sub { color: var(--text-2); }
[data-theme="dark"] .conteo-sub.zero { color: var(--text-faint); }
[data-theme="dark"] .conteo-table tfoot td { border-top-color: var(--border); }
[data-theme="dark"] .conteo-table tfoot tr.conteo-total td { color: var(--text); }
[data-theme="dark"] .conteo-table tfoot tr.conteo-sys td,
[data-theme="dark"] .conteo-diff-note,
[data-theme="dark"] .conteo-saved { color: var(--text-muted); }
[data-theme="dark"] .conteo-saved { border-top-color: var(--border); }
[data-theme="dark"] .conteo-saved b { color: var(--text); }
[data-theme="dark"] .conteo-table tfoot tr.conteo-diff td { border-top-color: var(--border-strong); }
[data-theme="dark"] #conteoDiff.conteo-ok { color: var(--pos); }
[data-theme="dark"] #conteoDiff.conteo-pos { color: var(--warn); }
[data-theme="dark"] #conteoDiff.conteo-neg { color: var(--neg); }

/* ════════════════════════════════════════════════════════════════════════
   IMPUTACIONES (cards + progreso)
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .progress-bar { background: #2a2d31; }
[data-theme="dark"] .progress-text,
[data-theme="dark"] .card-meta,
[data-theme="dark"] .no-results,
[data-theme="dark"] .empty { color: var(--text-muted); }
[data-theme="dark"] .card-desc { color: var(--text); }

/* ════════════════════════════════════════════════════════════════════════
   MODALES / DRAWERS / SHEETS / TARJETAS MOBILE
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .drawer,
[data-theme="dark"] .info-fecha-sheet,
[data-theme="dark"] .close-modal,
[data-theme="dark"] .confirm-modal,
[data-theme="dark"] #pdf-panel,
[data-theme="dark"] #pago-panel,
[data-theme="dark"] .rubro-card,
[data-theme="dark"] .factura-card,
[data-theme="dark"] .mov-card,
[data-theme="dark"] .mov-cards-empty,
[data-theme="dark"] .mobile-tabbar { background: var(--surface); border-top-color: var(--border); }
[data-theme="dark"] .rubro-card,
[data-theme="dark"] .factura-card,
[data-theme="dark"] .mov-card,
[data-theme="dark"] .mov-cards-empty { border-color: var(--border); box-shadow: 0 1px 4px rgba(0,0,0,.4); }

[data-theme="dark"] .drawer-header,
[data-theme="dark"] .drawer-footer,
[data-theme="dark"] #pdf-header,
[data-theme="dark"] #pago-header,
[data-theme="dark"] #pago-foot,
[data-theme="dark"] .info-fecha-row,
[data-theme="dark"] .mov-card-bottom,
[data-theme="dark"] .imp-mobile { border-color: var(--border); }
[data-theme="dark"] .rubro-card-hdr { background: #23262b; border-color: var(--border); }
[data-theme="dark"] .rubro-card-title { color: #d6dde7; }
[data-theme="dark"] .drawer-title,
[data-theme="dark"] .close-modal-title,
[data-theme="dark"] .confirm-title,
[data-theme="dark"] #pdf-title,
[data-theme="dark"] #pago-title,
[data-theme="dark"] .info-fecha-title,
[data-theme="dark"] .info-fecha-banco,
[data-theme="dark"] .fcard-nombre,
[data-theme="dark"] .fcard-total,
[data-theme="dark"] .mov-card-concepto,
[data-theme="dark"] .pago-item-num { color: var(--text); }
[data-theme="dark"] .drawer-subtitle,
[data-theme="dark"] .close-modal-sub,
[data-theme="dark"] .confirm-sub,
[data-theme="dark"] #pago-sub,
[data-theme="dark"] .info-fecha-subtitle,
[data-theme="dark"] .info-fecha-date,
[data-theme="dark"] .fcard-meta,
[data-theme="dark"] .mov-card-date,
[data-theme="dark"] .mov-card-saldo,
[data-theme="dark"] .pago-item-meta,
[data-theme="dark"] .pago-list-title,
[data-theme="dark"] .pago-empty { color: var(--text-muted); }
[data-theme="dark"] .info-fecha-subtitle { border-color: var(--border); }
[data-theme="dark"] .confirm-sub b,
[data-theme="dark"] #pago-sub b,
[data-theme="dark"] .mov-cards-foot b,
[data-theme="dark"] .mov-card-saldo b { color: var(--text-2); }

[data-theme="dark"] .drawer-close,
[data-theme="dark"] #pdf-close,
[data-theme="dark"] #pago-close,
[data-theme="dark"] .confirm-close { background: var(--surface-2); color: var(--text-muted); }
[data-theme="dark"] #pdf-close:hover,
[data-theme="dark"] #pago-close:hover,
[data-theme="dark"] .confirm-close:hover { background: #34393f; color: var(--text); }
[data-theme="dark"] .drawer-handle,
[data-theme="dark"] .info-fecha-handle { background: var(--border-strong); }
[data-theme="dark"] .info-fecha-origen-row { background: var(--surface-2); border-color: var(--border-soft); }
[data-theme="dark"] .info-fecha-origen-name { color: var(--text-2); }
[data-theme="dark"] .info-fecha-origen-date { color: var(--text-muted); }

[data-theme="dark"] .ss-wrap .ss-input.changed { border-color: var(--primary); background: var(--primary-bg); }
[data-theme="dark"] .mov-tag { background: var(--surface-2); color: var(--text-2); }
[data-theme="dark"] .mov-tag.loc { background: var(--primary-bg); color: #8fb0ee; }
[data-theme="dark"] .mov-tag.sup { background: var(--warn-bg); color: var(--warn); }
[data-theme="dark"] .mov-tag.cbu { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .mov-tag.det { background: var(--purple-bg); color: var(--purple); }
[data-theme="dark"] .mov-tag.div { background: var(--primary-bg); color: #8fb0ee; }
[data-theme="dark"] .mov-amount.pos { color: var(--pos); }
[data-theme="dark"] .mov-amount.neg { color: var(--neg); }

[data-theme="dark"] .pago-item { border-color: var(--border); }
[data-theme="dark"] .pago-item[onclick]:hover { background: var(--primary-bg); border-color: var(--primary-bd); }
/* el header del visor tiene background:#fff hardcodeado (ID); el grupo de arriba solo
   le pisaba border-color → la barra de arriba quedaba blanca en oscuro */
[data-theme="dark"] #pdf-header { background: var(--surface); }
[data-theme="dark"] #pdf-tabs { background: var(--surface-2); }
[data-theme="dark"] .pdf-seg-btn { color: var(--text-muted); }
[data-theme="dark"] .pdf-seg-btn:hover:not(.active) { color: var(--text); }
[data-theme="dark"] .pdf-seg-btn.active { background: #2c333c; color: #7aa6ff; }
[data-theme="dark"] .btn-ver-comp { background: var(--primary-bg); border-color: var(--primary-bd); color: #7aa6ff; }
[data-theme="dark"] .pdf-loading-txt { color: var(--text-muted); }

[data-theme="dark"] .close-modal-btn.discard { background: var(--neg-bg); color: var(--neg); }
[data-theme="dark"] .close-modal-btn.cancel,
[data-theme="dark"] .confirm-btn.cancel { background: var(--surface-2); color: var(--text-2); }
[data-theme="dark"] .confirm-icon { background: var(--neg-bg); color: var(--neg); }
[data-theme="dark"] .step-preview,
[data-theme="dark"] .step-preview .sp-total { color: var(--text-2); }
[data-theme="dark"] .step-preview .sp-count,
[data-theme="dark"] .step-preview .sp-amt,
[data-theme="dark"] .step-preview .sp-total b { color: var(--text); }

/* Editing row (Efectivo) */
[data-theme="dark"] .grid-table tbody tr.editing-row { background: #2a2616 !important; }
[data-theme="dark"] .grid-table tbody tr.editing-row td.col-act { background: #2a2616 !important; }
[data-theme="dark"] .editing-badge { background: #4a3c10; color: #f0c45a; }
[data-theme="dark"] .btn-save-row { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .btn-del:hover { background: var(--neg-bg); color: var(--neg); }
[data-theme="dark"] .btn-edit:hover { background: var(--primary-bg); }
[data-theme="dark"] .mov-card-actions button { background: var(--surface-input); border-color: var(--border); }
[data-theme="dark"] .mc-del { color: var(--neg); }

/* Loaders / spinners / overlays */
[data-theme="dark"] .page-loader { background: var(--bg); }
[data-theme="dark"] .loader-text,
[data-theme="dark"] .pivot-loading-text,
[data-theme="dark"] .ef-loading,
[data-theme="dark"] .saldos-loading,
[data-theme="dark"] .conteo-loading,
[data-theme="dark"] .empty-state,
[data-theme="dark"] .grid-empty { color: var(--text-muted); }
[data-theme="dark"] .grid-empty b,
[data-theme="dark"] .mov-cards-empty b { color: var(--text-2); }
[data-theme="dark"] .pivot-saving-overlay,
[data-theme="dark"] .conteo-loading { background: rgba(24,26,27,.74); }
[data-theme="dark"] .pivot-saving-text { color: var(--text-2); }

/* Toast */
[data-theme="dark"] .toast { background: #2c3037; }

/* ════════════════════════════════════════════════════════════════════════
   DEUDA  (/deuda)  — hero + stats + tarjetas de proveedor
   ════════════════════════════════════════════════════════════════════════ */
/* Hero "Total adeudado" */
[data-theme="dark"] .hero-wide .total-num { color: var(--text); }
[data-theme="dark"] .hero-wide .meta b { color: var(--text-2); }
[data-theme="dark"] .mega-bar { background: #2a2d31; }
[data-theme="dark"] .mega-legend { color: var(--text-muted); }

/* Widgets de estadística (el degradé/azul/rojo de cada uno se mantiene vivo) */
[data-theme="dark"] .stat.red   .stat-ico { background: var(--neg-bg);  color: var(--neg); }
[data-theme="dark"] .stat.red   .stat-num { color: var(--neg); }
[data-theme="dark"] .stat.ink   .stat-ico { background: #2a2f37;        color: #cdd9ea; }
[data-theme="dark"] .stat.ink   .stat-bar { background: #6b8bb5; }
[data-theme="dark"] .stat.ink   .stat-num { color: var(--text); }
[data-theme="dark"] .stat.amber .stat-ico { background: var(--warn-bg); color: var(--warn); }
[data-theme="dark"] .stat.amber .stat-num { color: var(--warn); }
[data-theme="dark"] .stat.blue  .stat-ico { background: var(--primary-bg); color: #7aa6ff; }
[data-theme="dark"] .stat.blue  .stat-num { color: #7aa6ff; }
[data-theme="dark"] .stat.green  .stat-ico { background: var(--pos-bg); color: var(--pos); }
[data-theme="dark"] .stat.green  .stat-bar { background: var(--pos); }
[data-theme="dark"] .stat.green  .stat-num { color: var(--pos); }
[data-theme="dark"] .stat.violet .stat-ico { background: rgba(124,77,255,.20); color: #b794ff; }
[data-theme="dark"] .stat.violet .stat-bar { background: #9d7bff; }
[data-theme="dark"] .stat.violet .stat-num { color: #b794ff; }
[data-theme="dark"] .stat .stat-lab,
[data-theme="dark"] .stat .stat-sub { color: var(--text-muted); }

[data-theme="dark"] .results-meta b { color: var(--text); }

/* Tarjeta por proveedor */
[data-theme="dark"] .prov { background: var(--surface); border-color: var(--border); border-left-color: #3a3d40; box-shadow: 0 1px 4px rgba(0,0,0,.4); }
[data-theme="dark"] .prov.metodo-transferencia { border-left-color: var(--primary); }
[data-theme="dark"] .prov.metodo-echeq { border-left-color: #f5a623; }
[data-theme="dark"] .prov-head { background: var(--surface-2); border-bottom-color: var(--border); }
[data-theme="dark"] .prov-name { color: var(--text); }
[data-theme="dark"] .prov-tag { color: var(--text-muted); border-color: var(--border-strong); }
[data-theme="dark"] .prov-tag.servicio { color: var(--warn); border-color: #5c4a22; background: var(--warn-bg); }
[data-theme="dark"] .prov-metodo-badge.transferencia { background: var(--primary-bg); color: #7aa6ff; }
[data-theme="dark"] .prov-metodo-badge.echeq { background: var(--warn-bg); color: var(--warn); }
[data-theme="dark"] .prov-total { color: var(--text); }

/* Columnas y divisores internos */
[data-theme="dark"] .prov-body:not(.cols4) .prov-col + .prov-col,
[data-theme="dark"] .prov-body.cols4 .prov-col:nth-child(2n),
[data-theme="dark"] .prov-body.cols4 .prov-col:nth-child(n+3),
[data-theme="dark"] .prov-col-head { border-color: var(--border-soft); }
[data-theme="dark"] .prov-col-head .lab { color: var(--text-muted); }
[data-theme="dark"] .prov-col.v   .prov-col-head .lab { color: var(--neg); }
[data-theme="dark"] .prov-col.n   .prov-col-head .lab { color: #cdd9ea; }
[data-theme="dark"] .prov-col.dbt .prov-col-head .lab { color: var(--warn); }
[data-theme="dark"] .prov-col.emi .prov-col-head .lab { color: #7aa6ff; }
[data-theme="dark"] .prov-col-head .tot { color: var(--text); }

/* Líneas de factura / echeq */
[data-theme="dark"] .fact-line { border-bottom-color: var(--border-soft); }
[data-theme="dark"] .fact-line .ref,
[data-theme="dark"] .fact-line .fecha,
[data-theme="dark"] .prov-col.n .fact-line .fecha { color: var(--text-muted); }
[data-theme="dark"] .fact-line .loc,
[data-theme="dark"] .fact-line .amt { color: var(--text); }
[data-theme="dark"] .fact-line.neg .amt { color: var(--neg); }
[data-theme="dark"] .fact-line.clickable:hover { background: var(--primary-bg); }
[data-theme="dark"] .col-empty { color: var(--text-faint); }

/* Estados / loader del reporte */
[data-theme="dark"] .state { color: var(--text-muted); }
[data-theme="dark"] .report.loading::after { background: rgba(24,26,27,.5); }

/* ════════════════════════════════════════════════════════════════════════
   FIXES DE AUDITORIA — huecos detectados barriendo CSS base vs overrides dark
   ════════════════════════════════════════════════════════════════════════ */

/* — Efectivo — */
[data-theme="dark"] .btn-lg-primary:disabled { background: var(--surface-2); color: var(--text-faint); cursor: not-allowed; }
[data-theme="dark"] .ef-cancel-btn { background: var(--surface-2); border-color: var(--border-strong); color: var(--text-2); }
[data-theme="dark"] .ef-cancel-btn:hover { background: #34393f; color: var(--text); }
/* flash al agregar/editar fila: el @keyframes base arranca en #fff5d6 (claro) */
@keyframes flash-dark { 0% { background: rgba(224,161,58,.20); } 100% { background: transparent; } }
[data-theme="dark"] .grid-table tbody tr.flash { animation: flash-dark 1.1s ease; }

/* — Selector de rango de fechas: badge contextual (facturas + deuda) — */
[data-theme="dark"] .date-range-badge { color: var(--text-muted); }
[data-theme="dark"] .date-range-badge.visible { border-left-color: var(--border); }

/* — Conciliación: drawer de detalle — */
[data-theme="dark"] .drawer-search { border-bottom-color: var(--border); }
[data-theme="dark"] .drawer-search input { background: var(--surface-input); border-color: var(--border-strong); color: var(--text-1); }
[data-theme="dark"] .drawer-search input:focus { border-color: var(--primary); background: var(--surface-2); }
[data-theme="dark"] .drawer-search input::placeholder { color: var(--text-faint); }
[data-theme="dark"] .drawer-search-clear { background: var(--border-strong); color: var(--text-2); }
[data-theme="dark"] .drawer-sort { background: var(--surface-input); border-color: var(--border-strong); color: var(--text-1); }
[data-theme="dark"] .drawer-sort:focus { border-color: var(--primary); }
[data-theme="dark"] .drawer-pagination button { background: var(--surface-input); border-color: var(--border-strong); color: var(--text-2); }
[data-theme="dark"] .drawer-pagination button:hover:not(:disabled) { background: var(--primary-bg); border-color: var(--primary); color: #7aa6ff; }
[data-theme="dark"] .drawer-pagination button:disabled { color: var(--text-faint); border-color: var(--border); }
[data-theme="dark"] .drawer-btn-save { background: var(--surface-2); color: var(--text-muted); }
[data-theme="dark"] .drawer-btn-save.active { background: var(--primary); color: #fff; }
[data-theme="dark"] .drawer-btn-save.active:hover { background: var(--primary-hover); }
/* botón-pill "info de fechas" (mobile) — la base usa selector #id, hay que usar #id */
[data-theme="dark"] #btnInfoFecha { background: var(--primary-bg); border-color: var(--primary-bd); color: #7aa6ff; }
[data-theme="dark"] #btnInfoFecha:active { background: rgba(26,86,219,.30); }

/* — Deuda: botón "Restablecer rango" del calendario — */
[data-theme="dark"] .cal-btn-clear:hover { background: var(--surface-2); color: var(--text); }

/* — Imputador: footer fijo "Guardar" (mobile) + botón disabled + nota solo-lectura — */
[data-theme="dark"] .footer-mobile { background: var(--surface); border-top-color: var(--border); }
[data-theme="dark"] .btn-full-primary:disabled { background: var(--border-strong); color: var(--text-faint); }
[data-theme="dark"] .ro-note { background: var(--surface-input) !important; border-color: var(--border-strong) !important; color: var(--text-muted) !important; }

/* — Modal "Aplicar nota de crédito" (panel con background:#fff inline) — */
[data-theme="dark"] .nc-panel { background: var(--surface) !important; color: var(--text); }

/* — Modal "Cargar factura" (botón +, panel con background:#fff inline) — */
[data-theme="dark"] .up-panel { background: var(--surface) !important; color: var(--text); }
/* El recuadro de arrastre y su preview se fueron a `static/dropzone.css` (spec 049), que es
   autocontenido y trae su propio modo oscuro. Acá el estilo estaba partido en dos -- el claro
   inline en facturas.html y el oscuro en este archivo --, que es la deuda #4 de CLAUDE.md. */

/* — Login: inputs/labels/error/logo son elementos SIN clase, no los cubría ninguna regla — */
[data-theme="dark"] .card input[type=text],
[data-theme="dark"] .card input[type=password] { background-color: var(--surface-input); border-color: var(--border-strong); color: var(--text); }
[data-theme="dark"] .card input[type=text]:focus,
[data-theme="dark"] .card input[type=password]:focus { background-color: #141617; border-color: var(--primary); }
[data-theme="dark"] .card input::placeholder { color: var(--text-faint); }
[data-theme="dark"] .card label { color: var(--text-2); }
[data-theme="dark"] .error { background: var(--neg-bg); border-color: rgba(240,106,93,.45); color: var(--neg); }
[data-theme="dark"] .logo h1 { color: var(--text); }

/* ════════════════════════════════════════════════════════════════════════
   DASHBOARD  (/dashboard, ex /ingresos)  — KPIs, gráfico semanal de columnas,
   barras horizontales por local/banco. Clases propias (.wcol/.wbar-wrap/.hbar/
   .hrow) que NINGÚN selector dark cubría → texto navy ilegible + tracks/hover
   demasiado claros. Los azul/ámbar de las barras (marca) se mantienen.
   ════════════════════════════════════════════════════════════════════════ */
/* Títulos de tarjeta (eran navy #1a2e44) */
[data-theme="dark"] .card h3 { color: var(--text); }
[data-theme="dark"] .card h3 .sub { color: var(--text-muted); }

/* KPIs del dashboard (usa .lab/.num/.meta, no .kpi-label/.kpi-value) */
[data-theme="dark"] .kpi .lab,
[data-theme="dark"] .kpi .meta { color: var(--text-muted); }
[data-theme="dark"] .kpi .num { color: var(--text); }

/* Gráfico semanal de columnas: hover/seleccionado eran casi blancos (#f4f7fc/#eef3fb),
   el track de la barra era gris claro (#f0f1f3) → no se distinguían las barras */
[data-theme="dark"] .wcol:hover { background: var(--surface-2); }
[data-theme="dark"] .wcol.sel { background: var(--primary-bg); box-shadow: inset 0 0 0 1.5px var(--primary); }
[data-theme="dark"] .wcol .amt { color: var(--text); }
[data-theme="dark"] .wbar-wrap { background: #2a2d31; }
[data-theme="dark"] .wcol .dow { color: var(--text-2); }
[data-theme="dark"] .wcol .dnum { color: var(--text-muted); }
[data-theme="dark"] .wcol.today .dow { color: #7aa6ff; }

/* Barras de comparación por local / banco (.cmp-row): el dark de estas clases vive inline
   en ingresos.html, junto al de los KPIs. Las viejas .hrow/.hbar se eliminaron del template. */

/* Leyenda */
[data-theme="dark"] .legend { color: var(--text-muted); }

/* Filtro por local: dropdown + filas clickeables del picker "Por local" + seleccionado.
   Clases nuevas (.ingfilter/.hrow.click/.hrow.sel) que el bloque de arriba no cubría →
   el hover/selected claros (#f4f7fc/#eef3fb) y el <select> blanco rompían en oscuro.
   Espejan EXACTO el idioma de .wcol:hover/.wcol.sel. (.ingfilter .field-label, select option
   y .hrow .hamt .pend ya están cubiertos por reglas genéricas: no se redeclaran.) */
[data-theme="dark"] .ingfilter select {
  /* background-COLOR, no el shorthand: el shorthand resetea la imagen del chevron (gotcha de arriba) */
  background-color: var(--surface-input); border-color: var(--border-strong); color: var(--text);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b929b' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
[data-theme="dark"] .ingfilter select:focus { border-color: var(--primary); }
[data-theme="dark"] .ingfilter .clearf { color: #7aa6ff; }
[data-theme="dark"] .hrow.click:hover { background: var(--surface-2); }
[data-theme="dark"] .hrow.sel { background: var(--primary-bg); box-shadow: inset 0 0 0 1.5px var(--primary); }
[data-theme="dark"] .hrow.sel .hlab { color: #7aa6ff; }

/* ════════════════════════════════════════════════════════════════════════
   TOGGLE EN LA SIDEBAR (lo inyecta modo-oscuro.js, reusa estilos .sidebar-priv)
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .sidebar-priv.theme-on { background: rgba(26,86,219,.22); color: #fff; }
[data-theme="dark"] .sidebar-priv.theme-on .priv-state { background: var(--primary); color: #fff; }

/* ════════════════════════════════════════════════════════════════════════
   MES CERRADO (candado global, spec 019) — lock por fila en Efectivo
   (el badge vive en la topbar navy: mismo estilo en ambos temas, sin override)
   ════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] .row-lock { color: var(--warn); }

/* Modal de confirmacion (Actualizar / Cerrar-Reabrir mes) */
[data-theme="dark"] .mj-modal-card   { background: var(--surface); box-shadow: 0 12px 44px rgba(0,0,0,.55); }
[data-theme="dark"] .mj-modal-title  { color: var(--text); }
[data-theme="dark"] .mj-modal-body   { color: var(--text-2); }
[data-theme="dark"] .mj-modal-cancel { background: transparent; border-color: var(--border-strong); color: var(--text); }
/* .mj-modal-ok (azul #0a6cff) se lee bien en oscuro, no se toca */

/* — Cajas (= puestos de venta) de Conciliación → Ingresos (spec 049) — */
[data-theme="dark"] .caja-sel:hover { border-color: var(--border-strong); background: var(--surface-input); }
[data-theme="dark"] .caja-sel.vacia,
[data-theme="dark"] .caja-vacia { color: var(--text-muted); }
[data-theme="dark"] .caja-sel option { background: var(--surface); color: var(--text); }
[data-theme="dark"] .lote-todos label { color: var(--text-muted); }
[data-theme="dark"] #loteCajaTodos {
  background: var(--surface-input); border-color: var(--border-strong); color: var(--text);
}
[data-theme="dark"] #loteCajaTodos option,
[data-theme="dark"] #loteCajaTodos optgroup { background: var(--surface); color: var(--text); }
[data-theme="dark"] .li-caja { color: #7aa6ff; }
