/* tiendas.css — estilos de la herramienta tiendas (42.6). Cada tarea escribe solo en su archivo.
   Usa los colores, la letra y los botones de app.css; solo agrega lo que la ficha necesita. */

/* La lista */
.tn-cab-acc { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.tn-barra { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 14px; }
.tn-barra input[type="search"] {
  font-size: 13px; padding: 8px 12px; min-height: 38px; min-width: 200px;
  border: 1.5px solid var(--line-strong); border-radius: var(--radius-sm); background: var(--card); color: var(--ink);
}
.tn-barra input[type="search"]:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(13, 79, 90, 0.08); }
#tiendas-tipos { max-width: 100%; overflow-x: auto; }
/* N3-01: las pestañas de tipo miden 30 px (tira de 32) junto a Buscar de 38. Con botones de 36 px y el borde de 1 px de la tira, la tira mide 38. */
#tiendas-tipos button { min-height: 36px; }
#tiendas-tipos .cuenta { opacity: 0.7; font-variant-numeric: tabular-nums; }
html[data-theme="dark"] #tiendas-tipos .cuenta { opacity: 1; }   /* N5-03: igual que en Reportes */
/* La lista entra entera en el ancho disponible: nombre, tipo y dirección se parten en vez de empujar los botones. */
#tiendas-tabla th, #tiendas-tabla td { padding-left: 8px; padding-right: 8px; }
#tiendas-tabla td.tn-aj { white-space: normal; min-width: 72px; }
.tn-acciones { white-space: nowrap; }
.tn-acciones .btn + .btn { margin-left: 6px; }
/* N5-05: a 1280 px (hoja de 934 px) la lista con sus nueve columnas medía 978 px y «Eliminar» de la primera fila terminaba pasada la hoja, cortado hasta
   desplazar de lado. De 1121 a 1400 px: relleno lateral de 5 px (eran 8; 54 px menos), columnas que se parten desde 56 px (eran 72) y 4 px entre botones (eran 6;
   4 px menos). Medido en Chromium con la letra tan ancha como la real (978 px a 1280 px): la tabla queda en unos 900 px. A 1440 px la tabla ya cabía y de 1120 px
   hacia abajo se esconden iPad y Sistema: ahí no cambia nada. */
@media (min-width: 1121px) and (max-width: 1400px) {
  #tiendas-tabla th, #tiendas-tabla td { padding-left: 5px; padding-right: 5px; }
  #tiendas-tabla td.tn-aj { min-width: 56px; }
  .tn-acciones .btn + .btn { margin-left: 4px; }
}
.tn-punto { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; background: var(--line-strong); vertical-align: 0; }
.tn-punto.on { background: var(--ok); }
#tiendas-sin-tienda .tn-cuentas { margin-top: 16px; }

/* La ficha */
.modal-ficha { max-width: 920px; padding: 22px 24px; }   /* la tabla de Cuentas con sus tres botones mide 845 px */
.ficha-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.ficha-cab h3 { margin: 0; }
.ficha-pestanas { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 16px; overflow-x: auto; scrollbar-width: none; }
.ficha-pestanas::-webkit-scrollbar { display: none; }
.ficha-pestanas:empty { display: none; }
.tn-pest {
  border: none; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--muted);
  padding: 9px 14px; cursor: pointer; white-space: nowrap; border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: color 0.13s, border-color 0.13s;
}
.tn-pest:hover { color: var(--ink); }
.tn-pest.activa { color: var(--brand); border-bottom-color: var(--brand-2); font-weight: 700; }
.tn-pest:focus-visible { outline: 2px solid var(--brand-2); outline-offset: -2px; border-radius: 6px; }

/* Dentro de las pestañas */
.tn-sec { margin-bottom: 22px; }
.tn-sec h4, .tn-sistema h4, .tn-cuentas h4 { margin: 14px 0 8px; font-size: 13.5px; font-weight: 800; letter-spacing: -0.01em; }
.tn-sec:first-child h4 { margin-top: 0; }
.tn-form { gap: 12px; max-width: 520px; margin: 10px 0; }
.tn-form input[type="date"], .tn-form select { font-size: 14px; padding: 9px 12px; }
.tn-linea { flex-direction: row !important; align-items: center; justify-content: space-between; gap: 12px; }
.tn-botones { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 8px 0; }
.tn-barra-sec { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.tn-form .tn-botones .btn, .tn-botones .btn { margin-top: 0; padding: 5px 11px; font-size: 11.5px; }
.tn-filas { display: grid; gap: 6px; margin: 6px 0 12px; }
.tn-fila { display: flex; gap: 12px; align-items: baseline; }
.tn-k { color: var(--muted); font-size: 12.5px; font-weight: 700; min-width: 150px; }
.tn-v { font-variant-numeric: tabular-nums; }
.tn-sufijo { display: flex; align-items: center; gap: 6px; font-weight: 500; color: var(--muted); }
.tn-sufijo input { flex: 1; min-width: 0; }
.tn-radios { display: flex; gap: 18px; }
.tn-radios label, .tn-check { flex-direction: row !important; align-items: center; gap: 6px; font-weight: 600; font-size: 13px; }
.tn-check { display: flex; margin: 6px 0; }
.tn-modulo { flex-direction: row !important; align-items: center; justify-content: space-between; gap: 12px; }
.tn-modulo select { min-width: 190px; }
.tn-modulo-nombre { display: flex; flex-direction: column; gap: 2px; font-weight: 600; font-size: 13px; }
.tn-modulo-prog { font-size: 11.5px; font-weight: 500; }
.tn-modulo-der { display: inline-flex; align-items: center; gap: 10px; }
.tn-avisos { margin: 8px 0; padding: 10px 14px 10px 30px; border-radius: var(--radius-sm); font-size: 13px; line-height: 1.45; }
.tn-avisos.warn { background: var(--warn-light); color: var(--warn); }
.tn-avisos.error { background: var(--err-light); color: var(--err); }
.tn-previa { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 16px; margin: 12px 0; background: var(--bg); }
.tn-previa h4 { margin-top: 0; }
.tn-de-a { margin: 4px 0 8px; font-weight: 700; font-variant-numeric: tabular-nums; }
.tn-lista { margin: 6px 0 8px; padding-left: 20px; font-size: 13px; }
.tn-compro { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 4px; font-size: 13px; }
.tn-compro li { display: flex; gap: 8px; align-items: baseline; }
.tn-compro .marca { width: 16px; font-weight: 800; }
.tn-compro .bien .marca { color: var(--ok); }
.tn-compro .mal .marca { color: var(--err); }
.tn-clave-box {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0 12px; padding: 12px 14px;
  border: 1.5px solid var(--brand-2); border-radius: var(--radius); background: var(--brand-light);
}
.tn-clave-box code { font-size: 17px; font-weight: 800; letter-spacing: 0.02em; color: var(--brand); user-select: all; }
.tn-cuentas .table-wrap table .clave-cell { font-family: ui-monospace, Menlo, monospace; font-weight: 700; }
.tn-form[data-form="nueva"], .tn-cuentas .tn-form { max-width: 420px; }
.tn-clave { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }

/* N-EQ-05: en tableta (641 a 1120 px) la tabla no cabe: medía 978 px en 698 y Editar, Ocultar y Eliminar quedaban fuera de la pantalla. iPad y
   Sistema (con su título) se esconden, están en la ficha, las celdas se aprietan un poco y los botones se parten en vez de ir en una sola
   línea. */
@media (min-width: 641px) and (max-width: 1120px) {
  #tiendas-tabla [data-col="sistema"], #tiendas-tabla [data-col="ipad"] { display: none; }
  #tiendas-tabla th, #tiendas-tabla td { padding-left: 6px; padding-right: 6px; }
  #tiendas-tabla td.tn-aj { min-width: 56px; }
  #tiendas-tabla .tn-acciones { white-space: normal; }
  #tiendas-tabla .tn-acciones .btn { margin: 2px 6px 2px 0; }
  #tiendas-tabla .tn-acciones .btn + .btn { margin-left: 0; }
}

@media (max-width: 640px) {
  .modal-ficha { padding: 16px 14px; }
  .tn-fila { flex-direction: column; gap: 2px; }
  .tn-modulo { flex-direction: row !important; align-items: center; flex-wrap: wrap; }
  .tn-modulo-der { flex: 1 1 auto; justify-content: space-between; }
  .tn-modulo select { min-width: 0; flex: 1 1 140px; }

  /* La lista en celular: cada tienda es una tarjeta (código, nombre y estado arriba; los botones debajo) y se toca para abrir su ficha.
     Tipo, dirección, caja chica, sistema y iPad se esconden: están en la ficha. Nada obliga a deslizar la tabla de lado. */
  #tiendas-tabla thead { display: none; }
  #tiendas-tabla table, #tiendas-tabla tbody { display: block; }
  #tiendas-tabla tr[data-id] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 10px 4px; border-bottom: 1px solid var(--line); cursor: pointer; }
  #tiendas-tabla tr[data-id] > td { display: block; padding: 0; border: 0; white-space: normal; min-width: 0; background: transparent; }
  #tiendas-tabla tr[data-id] > td[data-col="codigo"] { order: 1; color: var(--muted); }
  #tiendas-tabla tr[data-id] > td[data-col="nombre"] { order: 2; flex: 1 1 120px; font-weight: 700; }
  #tiendas-tabla tr[data-id] > td[data-col="estado"] { order: 3; }
  #tiendas-tabla tr[data-id] > td.tn-acciones { order: 4; flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: 6px; white-space: normal; cursor: default; }
  #tiendas-tabla .tn-acciones .btn + .btn { margin-left: 0; }
  #tiendas-tabla tr[data-id] > td[data-col="tipo"], #tiendas-tabla tr[data-id] > td[data-col="direccion"], #tiendas-tabla tr[data-id] > td[data-col="caja"],
  #tiendas-tabla tr[data-id] > td[data-col="sistema"], #tiendas-tabla tr[data-id] > td[data-col="ipad"] { display: none; }
}
.tn-previa:empty { display: none; }
