* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--color-fondo);
  color: var(--color-texto);
  font: var(--tipo-tamano-base) / 1.6 var(--tipo-familia-base);
}
header,
main,
footer {
  max-width: 1040px;
  margin: auto;
  padding: var(--espacio-6);
}
header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-4);
}
.marca {
  display: flex;
  align-items: center;
  gap: var(--espacio-3);
  font-weight: 600;
  text-decoration: none;
  color: var(--color-primario);
}
.marca span {
  font-weight: 400;
  color: var(--color-texto-2);
}
h1 {
  font-size: clamp(28px, 5vw, 44px);
  line-height: 1.15;
  max-width: 760px;
  margin: var(--espacio-4) 0;
}
h2 {
  font-size: var(--tipo-tamano-titulo);
  margin-top: 0;
}
.etiqueta {
  color: var(--color-primario);
  font-weight: 600;
}
.modo-sin-cuenta {
  background: var(--color-info-suave);
  border: 1px solid var(--color-info);
  border-radius: var(--radio-grande);
  padding: var(--espacio-4) var(--espacio-6);
  margin: var(--espacio-4) 0;
  max-width: 900px;
}
.modo-sin-cuenta h2 {
  font-size: var(--tipo-tamano-medio);
  color: var(--color-info);
  margin-bottom: var(--espacio-2);
}
.modo-sin-cuenta p,
.oferta-cuenta p {
  margin: var(--espacio-2) 0;
}
.oferta-cuenta {
  border-top: 1px solid var(--color-borde);
  margin-top: var(--espacio-6);
  padding-top: var(--espacio-4);
}
.proximamente {
  color: var(--color-texto-2);
}
.intro {
  color: var(--color-texto-2);
  max-width: 720px;
  font-size: var(--tipo-tamano-medio);
}
.tarjeta {
  background: var(--color-superficie);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-grande);
  padding: var(--espacio-6);
  margin: var(--espacio-6) 0;
}
button,
input::file-selector-button {
  min-height: 44px;
  border: 1px solid var(--color-borde-control);
  border-radius: var(--radio-chico);
  padding: var(--espacio-2) var(--espacio-4);
  font: inherit;
  background: var(--color-superficie);
  color: var(--color-texto);
  cursor: pointer;
}
button:disabled {
  cursor: default;
  color: var(--color-texto-3);
}
input {
  display: block;
  max-width: 100%;
  font: inherit;
  margin: var(--espacio-3) 0;
}
label {
  font-weight: 600;
}
.ayuda,
footer {
  color: var(--color-texto-2);
  font-size: var(--tipo-tamano-chico);
}
:focus-visible {
  outline: 3px solid var(--color-foco);
  outline-offset: 4px;
}
.tabla {
  overflow: auto;
}
.tabla th,
.tabla td {
  min-width: 9rem;
}
.tabla-estadistica th,
.tabla-estadistica td {
  min-width: 0;
  overflow-wrap: anywhere;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
th,
td {
  text-align: left;
  padding: var(--espacio-3);
  border-bottom: 1px solid var(--color-linea);
}
td:last-child,
th:last-child {
  text-align: right;
}
dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--espacio-4);
}
dt {
  color: var(--color-texto-2);
}
dd {
  margin: 0;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.acciones {
  display: flex;
  gap: var(--espacio-3);
}
[hidden] {
  display: none !important;
}
.error {
  color: var(--color-error);
}
@media (max-width: 480px) {
  header,
  main,
  footer {
    padding: var(--espacio-4);
  }
  .tarjeta {
    padding: var(--espacio-4);
  }
  header {
    align-items: flex-start;
  }
  .marca {
    flex-wrap: wrap;
    gap: var(--espacio-2);
  }
  .marca span {
    width: 100%;
    padding-left: 48px;
  }
  dl {
    grid-template-columns: 1fr;
  }
}

.marca {
  min-height: 44px;
}
.selector {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: var(--espacio-2) var(--espacio-4);
  border: 1px solid var(--color-borde-control);
  border-radius: var(--radio-chico);
  cursor: pointer;
}
.selector input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.selector:focus-within {
  outline: 3px solid var(--color-foco);
  outline-offset: 4px;
}

select,
input:not([type="file"]):not([type="checkbox"]) {
  min-height: 44px;
  padding: var(--espacio-2) var(--espacio-3);
  max-width: 100%;
  border: 1px solid var(--color-borde-control);
  border-radius: var(--radio-chico);
  background: var(--color-superficie);
  color: var(--color-texto);
  font: inherit;
}
select {
  display: block;
  margin: var(--espacio-3) 0;
}
.rejilla {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--espacio-4);
}
.compacta {
  margin: 0;
  padding: var(--espacio-4);
}
.rejilla + .rejilla {
  margin-top: var(--espacio-4);
}
.casilla {
  display: flex;
  align-items: flex-start;
  gap: var(--espacio-3);
  margin: var(--espacio-4) 0;
}
.casilla input {
  flex: none;
  min-width: 24px;
  min-height: 24px;
  margin-top: 4px;
}
.filtros {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espacio-4);
}
.lista-archivos {
  padding-left: 0;
  list-style: none;
}
.lista-archivos li {
  margin: var(--espacio-2) 0;
}
.lista-archivos button {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-align: left;
}
summary {
  cursor: pointer;
  min-height: 44px;
  font-weight: 600;
}
td {
  overflow-wrap: anywhere;
}
#movimientos-filas td:nth-child(3) {
  min-width: 160px;
}
#observaciones {
  color: var(--color-texto-2);
}

.tarjeta {
  overflow-wrap: anywhere;
}

.estructura {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  max-width: 1480px;
  margin: auto;
}
.estructura main {
  width: 100%;
  max-width: 1200px;
  min-width: 0;
}
.navegacion {
  padding: var(--espacio-6) var(--espacio-4);
  position: sticky;
  top: 0;
  align-self: start;
  max-height: 100vh;
  overflow-y: auto;
}
.navegacion nav {
  display: grid;
  gap: var(--espacio-2);
}
.navegacion button {
  border-color: transparent;
  text-align: left;
  background: transparent;
}
.navegacion button[aria-current="page"] {
  background: var(--color-primario-suave);
  color: var(--color-primario);
  font-weight: 600;
}
header {
  max-width: 1480px;
  border-bottom: 1px solid var(--color-linea);
}
.kpis .valor-kpi {
  display: block;
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
  color: var(--color-primario);
}
.kpis .ayuda {
  margin: var(--espacio-2) 0;
}
.formulario {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espacio-4);
  align-items: end;
  margin: var(--espacio-4) 0;
}
.formulario label {
  display: block;
  max-width: 100%;
  flex: 1 1 180px;
}
.formulario input,
.formulario select {
  width: 100%;
  margin-bottom: 0;
}
.formulario button {
  flex: none;
}
[data-nuevo-plan-cuotas] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  align-items: start;
}
[data-nuevo-plan-cuotas] > div,
[data-nuevo-plan-cuotas] > p,
[data-nuevo-plan-cuotas] > label:has(textarea),
[data-nuevo-plan-cuotas] > label:has(input[type="checkbox"]) {
  grid-column: 1 / -1;
}
[data-nuevo-plan-cuotas] textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: var(--espacio-2);
  resize: vertical;
  padding: var(--espacio-3);
  font: inherit;
  color: var(--color-texto);
  background: var(--color-superficie);
  border: 1px solid var(--color-borde-control);
  border-radius: 8px;
}
[data-nuevo-plan-cuotas] label:has(input[type="checkbox"]) {
  display: flex;
  gap: var(--espacio-2);
  align-items: start;
  margin-bottom: var(--espacio-3);
}
[data-nuevo-plan-cuotas] input[type="checkbox"] {
  width: auto;
  flex: none;
  margin-top: 0.3rem;
}
.grafico {
  margin: var(--espacio-4) 0;
}
.grafico svg {
  width: 100%;
  height: auto;
  min-height: 140px;
  overflow: visible;
}
.grafico figcaption {
  font-weight: 600;
}
.grafico .eje {
  stroke: var(--color-borde-control);
  stroke-width: 1;
}
.grafico .texto-grafico {
  fill: var(--color-texto-2);
  font-size: 12px;
}
.grafico .serie-0 {
  fill: var(--color-primario);
  stroke: var(--color-primario);
}
.grafico .serie-1 {
  fill: var(--color-info);
  stroke: var(--color-info);
}
.grafico .serie-2 {
  fill: var(--color-aviso);
  stroke: var(--color-aviso);
}
.grafico .serie-3 {
  fill: var(--color-error);
  stroke: var(--color-error);
}
.grafico .serie-4 {
  fill: var(--color-exito);
  stroke: var(--color-exito);
}
.grafico .serie-5 {
  fill: var(--color-texto-2);
  stroke: var(--color-texto-2);
}
.grafico .linea {
  fill: none;
  stroke-width: 3;
}
.leyenda {
  display: flex;
  flex-wrap: wrap;
  gap: var(--espacio-4);
  font-size: var(--tipo-tamano-chico);
}
.leyenda span::before {
  content: "■ ";
}
.leyenda-0 {
  color: var(--color-primario);
}
.leyenda-1 {
  color: var(--color-info);
}
.leyenda-2 {
  color: var(--color-aviso);
}
.leyenda-3 {
  color: var(--color-error);
}
.leyenda-4 {
  color: var(--color-exito);
}
.leyenda-5 {
  color: var(--color-texto-2);
}
progress {
  display: block;
  width: 100%;
  height: 14px;
  accent-color: var(--color-primario);
}
#producto-movimientos td:nth-child(4) {
  min-width: 180px;
}
#producto-movimientos details {
  min-width: 200px;
}
#producto-movimientos details[open] {
  min-width: 300px;
}
.privacidad .valor-kpi,
.privacidad .grafico svg,
.privacidad td:nth-last-child(2),
.privacidad dd {
  filter: blur(7px);
  user-select: none;
}
.privacidad .grafico details {
  visibility: hidden;
}
.privacidad .producto-financiero {
  filter: blur(7px);
}
@media (max-width: 850px) {
  .estructura {
    display: block;
  }
  .navegacion {
    position: static;
    max-height: none;
    padding: var(--espacio-3) var(--espacio-4);
  }
  .navegacion nav {
    display: flex;
    overflow-x: auto;
    gap: var(--espacio-2);
  }
  .navegacion nav button {
    white-space: nowrap;
    flex: none;
  }
  .navegacion > .etiqueta,
  .navegacion > .ayuda {
    display: none;
  }
  .navegacion > .casilla {
    font-size: var(--tipo-tamano-chico);
    margin: var(--espacio-2) 0;
  }
  .grafico svg {
    min-height: 180px;
  }
  #titulo-producto {
    font-size: 32px;
  }
  .acciones {
    flex-wrap: wrap;
  }
  .formulario {
    display: grid;
    grid-template-columns: 1fr;
  }
  .formulario label {
    min-width: 0;
  }
}

.grupo-navegacion {
  font-size: 0.75rem;
  font-weight: 700;
  margin: 1.2rem 0.7rem 0.35rem;
  color: var(--color-texto-2);
}
@media (max-width: 760px) {
  .grupo-navegacion {
    display: none;
  }
}
#producto-carrito a,
#producto-carrito a:visited {
  color: var(--color-primario);
  overflow-wrap: anywhere;
}
#producto-carrito details {
  margin-block: var(--espacio-3);
}
.lista-precios-movil {
  display: none;
}
.resumen-publico-kpis {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}
@media (max-width: 760px) {
  .resumen-publico-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resumen-publico-kpis .kpi { padding: var(--espacio-3); }
  .resumen-publico-kpis .valor-kpi { font-size: 1.5rem; }
}
.selector-optimizador {
  display: grid;
  gap: var(--espacio-3);
  flex: 1 1 15rem;
  min-width: 0;
  border: 1px solid var(--color-linea);
  border-radius: 12px;
  padding: var(--espacio-4);
}
.selector-optimizador legend { font-weight: 600; }
.selector-optimizador input[type="checkbox"] { width: auto; }
.form-optimizador {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  align-items: start;
}
.form-optimizador > label,
.form-optimizador > button { grid-column: 1 / -1; }
.form-optimizador > label { display: flex; align-items: start; gap: .75rem; }
.form-optimizador > label input[type="checkbox"] { width: auto; flex: none; }
.form-optimizador > button { justify-self: start; }
@media (max-width: 760px) {
  .lista-precios-tabla { display: none; }
  .lista-precios-movil { display: grid; gap: var(--espacio-3); }
  .lista-precios-movil dt { font-weight: 600; }
  .lista-precios-movil dd { margin: 0 0 var(--espacio-3); }
}
#producto-carrito [role="region"]:focus-visible {
  outline: 2px solid var(--color-foco);
  outline-offset: 2px;
}
#mantenimiento a {
  color: var(--color-primario);
}
#mantenimiento textarea,
#ocr-texto {
  width: 100%;
  background: var(--color-superficie);
  color: var(--color-texto);
  border: 1px solid var(--color-borde-control);
  padding: var(--espacio-3);
  border-radius: var(--radio-chico);
  font: inherit;
}
#ocr-texto {
  display: block;
  margin-block: var(--espacio-3);
  resize: vertical;
  line-height: 1.5;
}
#ocr-lineas label:not(.casilla) {
  display: grid;
  gap: var(--espacio-2);
  margin-block: var(--espacio-3);
}
#ocr-lineas label:not(.casilla) input { width: 100%; }
#mantenimiento details {
  margin-block: var(--espacio-3);
}
#mantenimiento [role="region"]:focus-visible {
  outline: 2px solid var(--color-foco);
  outline-offset: 2px;
}

footer a,
footer a:visited {
  color: var(--color-primario);
}

#tabla-configurar { min-width: 0; }
#tabla-configurar .tabla-scroll { overflow-x: auto; max-width: 100%; }
#tabla-configurar td { max-width: 18rem; overflow-wrap: anywhere; }

.opcion-ocr { display: flex; align-items: center; gap: .65rem; }
.opcion-ocr input { width: auto; flex: 0 0 auto; margin: 0; }
#tabla-configurar .formulario { grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }

#tabla-configurar .tabla-exclusiones { grid-column: 1 / -1; }
#tabla-configurar .tabla-exclusiones label { display: flex; align-items: flex-start; gap: .75rem; }
#tabla-configurar .tabla-exclusiones input { width: auto; flex: none; margin-top: .3rem; }

#pagos-corregir-panel label { display: flex; align-items: flex-start; gap: .75rem; margin-block: 1rem; overflow-wrap: anywhere; }
#pagos-corregir-panel input { flex: none; margin-top: .3rem; }

.editor-equivalencias.formulario {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}
.editor-equivalencias > h3,
.editor-equivalencias > p,
.editor-equivalencias > label,
.editor-equivalencias > button,
.editor-equivalencias > .equivalencias-datos { grid-column: 1 / -1; }
.equivalencias-datos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--espacio-4);
  align-items: end;
}
.editor-equivalencias fieldset {
  min-width: 0;
  display: grid;
  gap: var(--espacio-3);
  padding: var(--espacio-4);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-medio);
}
.editor-equivalencias label { min-width: 0; }
.editor-equivalencias label.casilla { display: flex; }
.editor-equivalencias .casilla input { width: auto; }
.editor-equivalencias button { justify-self: start; }
@media (max-width: 767px) {
  .editor-equivalencias.formulario,
  .equivalencias-datos { grid-template-columns: minmax(0, 1fr); }
}

/* Comparador público: entrada y lectura de precios sin abrir cada oferta. */
.carrito-portada { border-top: 4px solid var(--color-primario); }
.pasos-compra, .publicaciones-visibles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: var(--espacio-4);
}
.paso-compra { padding: var(--espacio-3); background: var(--color-superficie-2); border-radius: 12px; }
.paso-compra button { width: 100%; text-align: left; }
.oferta-publica h4 { margin-top: 0; overflow-wrap: anywhere; }
.compra-publica-form label.casilla { display: flex; align-items: flex-start; gap: .65rem; }
.compra-publica-form .casilla input { width: auto; flex: none; margin-top: .25rem; }
.estado-oferta { color: var(--color-texto-2); font-weight: 600; }
.precio-destacado { display: block; font-size: 1.8rem; }
.precios-tiendas { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--espacio-3); }
.precios-tiendas dt { font-weight: 700; }
.precios-tiendas dd { margin: 0; min-width: 0; }
.precios-tiendas p { margin-block: var(--espacio-1); }
.busqueda-publica > label:first-child { flex-basis: 100%; }
@media (max-width: 760px) {
  .pasos-compra { grid-template-columns: 1fr; }
  [data-comparador-publico] > .tabla { display: none; }
}

.alternativas-compra { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: var(--espacio-4); }
@media (max-width: 760px) {
  .tabla-movimientos { overflow: visible; }
  .tabla-movimientos table, .tabla-movimientos tbody { display: block; width: 100%; }
  .tabla-movimientos thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tabla-movimientos tbody tr { display: block; margin-block: var(--espacio-4); border: 1px solid var(--color-linea); border-radius: var(--radio-medio); }
  .tabla-movimientos td { display: block; min-width: 0; text-align: left; overflow-wrap: anywhere; }
  .tabla-movimientos td::before { content: attr(data-campo); display: block; font-weight: 700; margin-block-end: var(--espacio-2); }
  #producto-movimientos .tabla-movimientos td,
  #producto-movimientos .tabla-movimientos details,
  #producto-movimientos .tabla-movimientos details[open] { min-width: 0; max-width: 100%; }
}
[data-decision-compra] { border-inline-start: 4px solid var(--color-primario); }

.comparacion-producto { border-inline-start: 4px solid var(--color-primario); }
.comparacion-producto .titular-comparacion { font-size: 1.35rem; font-weight: 700; }
.escenario-producto { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); align-items: end; }
.escenario-producto button { grid-column: 1 / -1; justify-self: start; }
.ranking-precios { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,16rem),1fr)); gap: var(--espacio-3); }
.precio-comparado { border: 1px solid var(--color-borde); border-radius: var(--radio-medio); padding: var(--espacio-3); min-width: 0; }
.precio-comparado-titulo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--espacio-3); }
.precio-comparado meter { display: block; width: 100%; height: 1rem; }
.insight-precio { padding: var(--espacio-3); background: var(--color-superficie-2); border-radius: var(--radio-medio); }
@media (max-width: 600px) { .escenario-producto { grid-template-columns: minmax(0,1fr); } }

.precio-comparado meter::-webkit-meter-optimum-value { background: var(--color-primario); }

.grupos-canasta { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap: var(--espacio-4); }
.productos-canasta { list-style: none; padding: 0; }
.productos-canasta li { padding-block: var(--espacio-3); border-bottom: 1px solid var(--color-borde); overflow-wrap: anywhere; }
.productos-canasta li:last-child { border-bottom: 0; }
.desglose-canasta > section > button { display: block; margin-block: var(--espacio-3); text-align: left; }

@media (max-width: 650px) {
  :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) { overflow: visible; }
  :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) table, :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) tbody { display: block; width: 100%; }
  :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) tbody tr { display: block; margin-block: var(--espacio-4); border: 1px solid var(--color-linea); border-radius: var(--radio-medio); }
  :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) td { display: block; min-width: 0; text-align: left; overflow-wrap: anywhere; }
  :is(.tabla-resumen-deuda, .tabla-historial-comercios, .tabla-evolucion-deuda, .tabla-bancos-mensuales, .tabla-bancos-periodo, .tabla-compras-pequenas, .tabla-compras-descripcion, .tabla-copia-presupuesto, .tabla-presupuestos, .tabla-sugerencias, .tabla-estado-cobertura, .tabla-documento-filas, .tabla-conciliacion-extractos, .tabla-escenarios, .tabla-escenario-movimientos, .tabla-caja-totales, .tabla-caja-cuenta) td::before { content: attr(data-campo); display: block; font-weight: 700; }
}

/* Comparación local: unidades y presentaciones en columnas legibles. */
.canasta-resumen { border-inline-start: 3px solid var(--color-linea); padding-inline-start: 1rem; margin-block: 1rem; }
.canasta-ofertas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem; }
.canasta-oferta { border: 1px solid var(--color-linea); border-radius: .5rem; padding: 1rem; min-width: 0; }
.canasta-oferta h5 { font-size: 1rem; margin-block: 0 .75rem; }
.canasta-oferta dl { display: block; margin: 0; }
.canasta-oferta dt { font-size: .875rem; margin-block-start: .75rem; }
.canasta-oferta dd { margin: .25rem 0; overflow-wrap: anywhere; font-weight: normal; }
.canasta-oferta dt:first-child + dd { font-weight: 700; font-size: 1.2rem; }
[data-comparacion-canasta-local] .acciones button[aria-pressed="true"] { outline: 2px solid currentColor; outline-offset: 2px; }

[data-compra-canasta] h6 { font-size: 1rem; margin-block: .75rem; }

.formulario label.tabla-hora-consentimiento:not([hidden]) { display: flex; flex: 1 1 100%; flex-direction: row; align-items: flex-start; gap: .65rem; }
.tabla-hora-consentimiento input { width: auto; flex: none; margin-top: .25rem; }

/* Mercado: búsqueda, catálogo y ofertas con detalle progresivo. */
.mercado { padding: 0; overflow: clip; }
.mercado-hero { padding: 2rem 2rem 1.25rem; background: linear-gradient(125deg,var(--color-primario-suave),var(--color-superficie)); }
.mercado-eyebrow { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .08em; color: var(--color-primario); margin: 0 0 .5rem; }
.mercado-hero h2 { font-size: clamp(1.6rem,3vw,2.2rem); line-height: 1.2; margin: 0 0 .75rem; }
.mercado-intro { margin: 0; color: var(--color-texto-2); }
.mercado-contexto { font-size: .8rem; color: var(--color-texto-2); margin: 1rem 0 0; }
.mercado-filtros { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 1rem; padding: 1.5rem 2rem 1rem; }
.mercado-filtros label { display: flex; flex-direction: column; gap: .5rem; font-size: .8rem; font-weight: 600; min-width: 0; }
.mercado-filtros input,.mercado-filtros select { width: 100%; margin: 0; font-size: .95rem; background: var(--color-superficie); }
.mercado-rubros { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0 2rem; }
.mercado-rubros button { border-radius: var(--radio-pastilla); font-size: .85rem; padding: .35rem .9rem; }
.mercado-rubros button[aria-pressed="true"],.carrito-vistas button[aria-pressed="true"] { background: var(--color-primario); color: var(--color-sobre-primario); border-color: var(--color-primario); }
.mercado-resultados { font-size: .9rem; font-weight: 600; margin: 1.5rem 2rem .75rem; }
.mercado-catalogo { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; padding: 0 2rem 1.5rem; }
.mercado-producto { padding: 1.25rem; border: 1px solid var(--color-borde); border-radius: var(--radio-medio); min-width: 0; display: flex; flex-direction: column; }
.mercado-producto h3 { font-size: 1.12rem; line-height: 1.3; margin: 0; }
.mercado-producto > p { margin: .5rem 0; font-size: .8rem; }
.mercado-muestras { margin-top: .65rem; flex: 1; }
.mercado-muestras > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .25rem .5rem; font-size: .8rem; margin-bottom: .45rem; }
.mercado-producto button { margin-top: .75rem; font-size: .8rem; width: 100%; color: var(--color-primario); font-weight: 600; }
.mercado-producto:hover { border-color: var(--color-primario); background: var(--color-superficie-2); }
.mercado-paginador { display: flex; justify-content: center; align-items: center; gap: 1rem; padding: 0 2rem 1.5rem; font-size: .85rem; }
.mercado-metadatos { border-top: 1px solid var(--color-borde); padding: 1rem 2rem; margin: 0; font-size: .85rem; }
.mercado-cobertura { display: grid; grid-template-columns: 1fr 2fr; gap: .5rem; }
.mercado-cobertura dd { margin: 0; }
.mercado-detalle { padding: 0 2rem 1.5rem; scroll-margin-top: 1rem; }
.mercado-detalle-cabecera { display: flex; justify-content: space-between; align-items: start; gap: 1rem; margin: 1rem 0; }
.mercado-detalle-cabecera h3 { font-size: 1.6rem; margin: 0; }
.mercado-detalle-cabecera .ayuda { margin-top: .5rem; }
.mercado-nota,.mercado-insight { border-radius: var(--radio-chico); padding: .85rem 1rem; background: var(--color-superficie-2); font-size: .85rem; border-inline-start: 3px solid var(--color-borde-control); }
.mercado-insight { background: var(--color-exito-suave); border-color: var(--color-exito); }
.mercado-insight h4 { margin: 0; }
.mercado-oferta { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr) auto; gap: .5rem 1.25rem; border-bottom: 1px solid var(--color-borde); padding: 1.2rem 0; }
.mercado-oferta h4 { font-size: 1rem; margin: 0; }
.mercado-oferta p { margin: .3rem 0; overflow-wrap: anywhere; }
.mercado-nombre { font-size: .85rem; }
.mercado-oferta .ayuda { font-size: .78rem; }
.mercado-oferta-precio,.mercado-oferta-fuente { display: flex; flex-direction: column; gap: .35rem; align-items: start; }
.mercado-oferta-precio strong { font-size: 1.25rem; white-space: nowrap; }
.mercado-oferta-fuente a { font-size: .8rem; min-height: 44px; display: inline-flex; align-items: center; }
.mercado-badge { color: var(--color-exito); font-size: .75rem; font-weight: 600; }
.mercado-oferta-mas { grid-column: 1 / -1; margin: 0; font-size: .8rem; }
.mercado-oferta-mas summary { min-height: 44px; display: flex; align-items: center; }
.mercado-oferta-mas form { display: grid; gap: 1rem; padding: 1rem; }
.mercado-oferta-mas form label { display: flex; flex-direction: column; gap: .5rem; }
.mercado-oferta-mas form input[type=checkbox] { width: auto; align-self: start; }
.mercado-vacio { grid-column: 1 / -1; text-align: center; padding: 2rem; }
.carrito-vistas { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
.carrito-vistas button { border-radius: var(--radio-pastilla); }
.carrito-vistas + .mercado { margin-top: 1rem; }
.mercado [hidden],#producto-carrito > [hidden] { display: none !important; }
@media (max-width: 900px) { .mercado-catalogo { grid-template-columns: repeat(2,minmax(0,1fr)); } .mercado-filtros { grid-template-columns: 1fr 1fr; } .mercado-filtros label:first-child { grid-column: 1 / -1; } }
@media (max-width: 560px) {
 .mercado-hero { padding: 1.5rem 1rem 1rem; }
 .mercado-filtros { padding: 1rem; gap: .75rem; }
 .mercado-rubros { padding: 0 1rem; }
 .mercado-resultados { margin: 1rem 1rem .75rem; }
 .mercado-catalogo { padding: 0 1rem 1rem; gap: .75rem; grid-template-columns: minmax(0,1fr); }
 .mercado-producto { padding: 1rem; }
 .mercado-paginador { padding: 0 1rem 1rem; gap: .5rem; flex-wrap: wrap; }
 .mercado-metadatos,.mercado-detalle { padding: 1rem; }
 .mercado-detalle-cabecera { flex-direction: column; }
 .mercado-oferta { grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
 .mercado-oferta-fuente { grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 1rem; }
 .mercado-oferta-precio strong { font-size: 1.05rem; }
 .mercado-oferta-precio { max-width: 9rem; }
}
.mercado-muestra-presentacion { flex-basis: 100%; color: var(--color-texto-2); line-height: 1.4; }
.mercado-filtros input,.mercado-filtros select { font-weight: 400; }
@media (max-width: 560px) { .mercado-filtros { grid-template-columns: minmax(0,1fr); } }
.mercado-actualizacion { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin-top: .75rem; }
.mercado-actualizacion button { padding: .35rem .75rem; font-size: .8rem; }
.mercado-actualizacion .ayuda { flex: 1 1 12rem; margin: 0; font-size: .8rem; }

.mercado-compra { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem 1rem; margin: 1rem 0; padding: 1rem; border: 1px solid var(--color-borde-control); border-radius: var(--radio-chico); }
.mercado-compra label { display: flex; flex-direction: column; gap: .4rem; font-size: .85rem; font-weight: 600; }
.mercado-compra input { width: 6rem; margin: 0; }
.mercado-compra p { flex-basis: 100%; margin: 0; }

.texto-promocion-privada { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 22rem; overflow-y: auto; }

.promocion-candidatos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: .7rem; }
.promocion-candidatos dd { margin: .5rem 0 0; overflow-wrap: anywhere; font-weight: 650; }

.revision-tendencias-categorias {list-style:none; margin:0; padding:0;}
.revision-tendencias-categorias li {display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:var(--espacio-3); padding:var(--espacio-3) 0; border-bottom:1px solid var(--color-borde);}
.revision-tendencias-categorias strong {overflow-wrap:anywhere;}
@media (max-width:600px) {
  .revision-tendencias-categorias li {grid-template-columns:minmax(0,1fr) auto;}
  .revision-tendencias-categorias button {grid-column:1 / -1; justify-self:stretch;}
}

.demostracion {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
}
.recorrido {
  border-inline-start: 4px solid var(--color-marca-acento);
}
.recorrido .acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* M-19 en el celular: Cobros, Caja con cobros y Tu negocio como tarjetas para usar con una mano. */
.tabla-cobros td[data-campo="Acción"] { min-width: 13rem; }
.tabla-cobros .acciones { flex-direction: column; align-items: stretch; gap: var(--espacio-2); }
.tabla-cobros .acciones button { white-space: normal; word-break: normal; overflow-wrap: normal; }
.tabla-cobros td[data-campo="Monto"] { font-weight: 700; }
@media (max-width: 650px) {
  :is(.tabla-cobros, .tabla-cobros-totales, .tabla-caja-esperada, .tabla-negocio) { overflow: visible; }
  :is(.tabla-cobros, .tabla-cobros-totales, .tabla-caja-esperada, .tabla-negocio) :is(table, tbody) { display: block; width: 100%; }
  :is(.tabla-cobros, .tabla-cobros-totales, .tabla-caja-esperada, .tabla-negocio) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  :is(.tabla-cobros, .tabla-cobros-totales, .tabla-caja-esperada, .tabla-negocio) tbody tr { display: block; margin-block: var(--espacio-4); padding: var(--espacio-2) var(--espacio-3); border: 1px solid var(--color-linea); border-radius: var(--radio-medio); background: var(--color-superficie-2); }
  :is(.tabla-cobros, .tabla-cobros-totales, .tabla-caja-esperada, .tabla-negocio) td { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--espacio-3); align-items: baseline; min-width: 0; padding-inline: 0; text-align: right; overflow-wrap: anywhere; }
  :is(.tabla-cobros, .tabla-cobros-totales, .tabla-caja-esperada, .tabla-negocio) td::before { content: attr(data-campo); font-size: 1rem; font-weight: 600; text-align: left; color: var(--color-texto-2); }
  :is(.tabla-cobros, .tabla-caja-esperada) td:first-child { font-size: 1.1rem; font-weight: 700; }
  .tabla-cobros td[data-campo="Monto"], .tabla-caja-esperada td[data-campo="Saldo hoy"] { font-size: 1.25rem; }
  .tabla-cobros td[data-campo="Acción"] { display: block; min-width: 0; }
  .tabla-cobros td[data-campo="Acción"]::before { display: none; }
  .tabla-cobros .acciones button, #entrar-cuenta-ejemplo, #por-cobrar-ejemplo, #ver-caja-cobros, #cobro-nuevo button[type="submit"] { width: 100%; min-height: 48px; }
  .por-cobrar { flex-direction: column; align-items: stretch; }
}
