/* MARCA: retail_estilo_v78 */
/* v78: tarjeta de acceso del proveedor (datos e imagen para WhatsApp). */
/* v77: Acceso de proveedores: portal del proveedor (menu, tarjetas, grafico de ventas, estados) y su administracion en la tienda. */
/* v76: Góndolas (app del celular y pantalla de la PC) y Promociones (panel, formulario, carteles); promoción en el renglón de la venta. */
/* v75: Operaciones de cambio: comprar / vender moneda y el resultado de la venta. */
/* v70: factura de una recepcion: diferencias con lo recibido. */
/* v69: compra: subtotal editable del renglon y el campo ajustado (costo o descuento). */
/* v68: factura nueva: recepciones sin factura del proveedor elegido; campo con error. */
/* v67: recepcion: vista Todos / Con diferencia / Sin motivo y motivo para todos. */
/* v66: parametro de texto (direccion del sistema para los links que se mandan). */
/* v65: Clientes (recibo de cobro, liquidacion de convenio, venta a credito en el cobro de la caja). */
/* v64: mayor de una cuenta en Contabilidad › Asientos (titulo con el selector de moneda). */
/* v63: posicion de moneda extranjera (orden de pago y tesoreria). */
/* v62: recibo de entrega de valores al cobrador del proveedor (original y copia). */
/* v61: orden de pago con varios medios: «Cómo se paga» en letra grande y el cuadre al armarla. */
/* TIENDA LISTA - estilo general: claro, amable, botones grandes y tactiles */

:root {
  --verde: #0f8a6a;
  --verde-osc: #0b6b52;
  --verde-claro: #e6f4ef;
  --naranja: #f2994a;
  --texto: #1f2a30;
  --texto-suave: #5d6b73;
  --fondo: #f4f6f5;
  --blanco: #ffffff;
  --borde: #dfe5e2;
  --rojo: #c0392b;
  --rojo-claro: #fdecea;
  --azul-claro: #eaf2fb;
  --sombra: 0 4px 18px rgba(20, 40, 35, .08);
  --radio: 14px;
}

* { box-sizing: border-box; }

body.fondo {
  margin: 0;
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  font-size: 16px;
  color: var(--texto);
  background: var(--fondo);
}

a { color: var(--verde-osc); }

/* ---- Barra superior ---- */
.barra {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 20px; background: var(--blanco); box-shadow: var(--sombra);
  position: sticky; top: 0; z-index: 5;
}
.marca { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 18px; color: var(--texto); text-decoration: none; }
.logo {
  display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 11px;
  background: var(--verde); color: #fff; font-weight: 800; letter-spacing: .5px;
}
.barra-der { display: flex; align-items: center; gap: 12px; }
.quien { color: var(--texto-suave); font-size: 14px; }

.franja { padding: 10px 20px; font-weight: 600; text-align: center; }
.franja-alerta { background: #fff4e5; color: #8a4b08; }
.franja-info { background: var(--azul-claro); color: #1d4f7a; }

/* ---- Contenedores ---- */
.contenido { max-width: 1100px; margin: 0 auto; padding: 24px 16px 48px; }
.centro { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; }
.tarjeta {
  width: 100%; max-width: 440px; background: var(--blanco); border-radius: var(--radio);
  box-shadow: var(--sombra); padding: 28px;
}
.tarjeta-ancha { max-width: 720px; }
.titulo-tarjeta { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.titulo-tarjeta h1 { margin: 0; font-size: 22px; }
.titulo-tarjeta p { margin: 2px 0 0; color: var(--texto-suave); font-size: 14px; }

h1 { font-size: 26px; margin: 0 0 6px; }
h2 { font-size: 18px; margin: 24px 0 10px; color: var(--verde-osc); }
.subtitulo { color: var(--texto-suave); margin: 0 0 20px; }

/* ---- Formularios ---- */
.campo { margin-bottom: 14px; }
.campo label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 15px; }
.campo input, .campo select, .tabla-codisap input, .tabla-codisap select, .tabla-codigos input:not([type=checkbox]):not([type=radio]), .tabla-codigos select {
  width: 100%; padding: 13px 14px; font-size: 16px; border: 1.5px solid var(--borde);
  border-radius: 10px; background: #fbfcfc; color: var(--texto); outline: none;
}
.campo input:focus, .campo select:focus, .tabla-codisap input:focus, .tabla-codisap select:focus, .tabla-codigos input:focus, .tabla-codigos select:focus { border-color: var(--verde); background: #fff; box-shadow: 0 0 0 3px var(--verde-claro); }
.campo .ayuda-campo { font-size: 13px; color: var(--texto-suave); margin-top: 4px; }
.fila-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
@media (max-width: 600px) { .fila-campos { grid-template-columns: 1fr; } }

/* ---- Botones ---- */
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 22px; font-size: 16px; font-weight: 700; border-radius: 11px; border: 0;
  background: var(--verde); color: #fff; cursor: pointer; text-decoration: none; min-height: 48px;
}
.boton:hover { background: var(--verde-osc); }
.boton-ancho { width: 100%; }
.boton-claro { background: var(--verde-claro); color: var(--verde-osc); min-height: 40px; padding: 8px 16px; font-size: 15px; }
.boton-claro:hover { background: #d3ece3; }

/* ---- Mensajes: quedan hasta que se cierran ---- */
.aviso { position: relative; padding: 14px 44px 14px 16px; border-radius: 11px; margin-bottom: 16px; line-height: 1.45; }
.aviso p { margin: 6px 0 0; }
.aviso-error { background: var(--rojo-claro); color: #7d1f15; border-left: 5px solid var(--rojo); }
.aviso-ok { background: var(--verde-claro); color: var(--verde-osc); border-left: 5px solid var(--verde); }
.aviso-info { background: var(--azul-claro); color: #1d4f7a; border-left: 5px solid #3c7fc4; }
.aviso .cerrar {
  position: absolute; top: 8px; right: 10px; border: 0; background: transparent; font-size: 22px;
  line-height: 1; cursor: pointer; color: inherit; opacity: .7;
}
.nota { font-size: 13px; color: var(--texto-suave); }

/* ---- Panel ¿Como funciona? ---- */
.ayuda { margin-top: 20px; background: var(--azul-claro); border-radius: 11px; padding: 0 16px; }
.ayuda summary { cursor: pointer; padding: 12px 0; font-weight: 700; color: #1d4f7a; }
.ayuda-cuerpo { padding-bottom: 14px; color: #24435f; font-size: 15px; line-height: 1.5; }
.ayuda-cuerpo ul, .ayuda-cuerpo ol { margin: 6px 0; padding-left: 20px; }

/* ---- Inicio: mosaico de modulos ---- */
.saludo { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.datos-sesion { display: flex; gap: 10px; flex-wrap: wrap; }
.chip { background: var(--blanco); border: 1px solid var(--borde); border-radius: 999px; padding: 6px 14px; font-size: 14px; color: var(--texto-suave); }
.chip strong { color: var(--texto); }
.mosaico { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.modulo {
  position: relative; display: flex; flex-direction: column; gap: 6px; padding: 20px; min-height: 130px;
  background: var(--blanco); border-radius: var(--radio); box-shadow: var(--sombra);
  text-decoration: none; color: var(--texto); border: 2px solid transparent;
}
a.modulo:hover { border-color: var(--verde); }
.modulo .icono { font-size: 30px; }
.modulo .nombre { font-weight: 700; font-size: 17px; }
.modulo .desc { font-size: 14px; color: var(--texto-suave); }
.modulo.pronto { opacity: .6; cursor: default; }
.etiqueta { position: absolute; top: 12px; right: 12px; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: #fff1e3; color: #9a5a17; }

/* ---- Resumen de instalacion ---- */
.resumen { width: 100%; border-collapse: collapse; margin: 10px 0 18px; }
.resumen td { padding: 8px 4px; border-bottom: 1px solid var(--borde); }
.resumen td:first-child { color: var(--texto-suave); width: 45%; }

/* ===================== v02: pantallas de configuracion ===================== */
.migas { font-size: 14px; color: var(--texto-suave); margin-bottom: 12px; display: flex; align-items: center; flex-wrap: wrap; gap: 0 2px; }
.migas-volver { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-right: 10px; border-radius: 50%; background: var(--verde-claro); color: var(--verde-osc); font-size: 20px; font-weight: 700; text-decoration: none; flex: none; }
.migas-volver:hover { background: var(--verde); color: #fff; }
@media print { .migas-volver { display: none !important; } }
.migas a { text-decoration: none; }
.migas .sep { margin: 0 4px; }

.panel { background: var(--blanco); border-radius: var(--radio); box-shadow: var(--sombra); padding: 22px; margin-bottom: 18px; }
.panel h2 { margin-top: 0; }
.cabecera { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.cabecera h1 { margin: 0; }
.acciones { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }

.boton-sec { background: var(--blanco); color: var(--verde-osc); border: 1.5px solid var(--verde); }
.boton-sec:hover { background: var(--verde-claro); }
.boton-chico { min-height: 36px; padding: 6px 12px; font-size: 14px; }
.boton-peligro { background: var(--rojo); }
.boton-peligro:hover { background: #a03024; }

/* Tablas */
.tabla-scroll { overflow-x: auto; }
.tabla { width: 100%; border-collapse: collapse; font-size: 15px; }
.tabla th { text-align: left; font-size: 13px; text-transform: uppercase; letter-spacing: .3px; color: var(--texto-suave); padding: 10px 8px; border-bottom: 2px solid var(--borde); }
.tabla td { padding: 10px 8px; border-bottom: 1px solid var(--borde); vertical-align: middle; }
.tabla tr:hover td { background: #fafcfb; }
.tabla .centro-celda { text-align: center; }
.tabla .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabla input[type=text], .tabla select { padding: 8px 10px; border: 1.5px solid var(--borde); border-radius: 8px; font-size: 15px; width: 100%; min-width: 120px; }

/* Casillas grandes y tactiles */
input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--verde); cursor: pointer; vertical-align: middle; }
input[type=checkbox]:disabled { cursor: not-allowed; opacity: .45; }
.check { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-weight: 600; cursor: pointer; }
.checks-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 18px; }

/* Numeros: sin flechitas y alineados a la derecha (convencion del sistema) */
input[type=number] { text-align: right; -moz-appearance: textfield; }
input[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Estados */
.estado { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.estado-ok { background: var(--verde-claro); color: var(--verde-osc); }
.estado-no { background: #eef1f0; color: var(--texto-suave); }
.estado-alerta { background: #fff1e3; color: #9a5a17; }

/* Filtro de listas: filtra desde la segunda letra por "contiene" */
.filtro { max-width: 360px; margin-bottom: 12px; }
.filtro input { width: 100%; padding: 11px 14px; border: 1.5px solid var(--borde); border-radius: 10px; font-size: 16px; }

/* Clave especial */
.clave-especial { background: #fff8ee; border: 1.5px dashed var(--naranja); border-radius: 12px; padding: 14px 16px 2px; margin: 16px 0; }
.clave-titulo { font-weight: 700; margin-bottom: 4px; }
.clave-evento { font-size: 14px; color: #7a4a14; margin-bottom: 10px; }

/* Enlaces */
.enlace { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 0; border-bottom: 1px solid var(--borde); }
.enlace:last-child { border-bottom: 0; }
.enlace .url { font-family: Consolas, monospace; font-size: 14px; color: var(--texto-suave); word-break: break-all; }
.mosaico a.modulo { cursor: pointer; }

/* ===================== v03: productos ===================== */
.pestanas { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 16px; }
.pestanas a { padding: 9px 16px; border-radius: 999px; background: var(--blanco); border: 1.5px solid var(--borde); text-decoration: none; color: var(--texto); font-weight: 600; font-size: 15px; }
.pestanas a.activa { background: var(--verde); border-color: var(--verde); color: #fff; }

.fila-filtros { display: grid; grid-template-columns: 2fr repeat(5, 1fr) auto; gap: 0 12px; align-items: end; }
.fila-filtros .campo { margin-bottom: 0; }
@media (max-width: 1000px) { .fila-filtros { grid-template-columns: 1fr 1fr; gap: 10px 12px; } }

.campo textarea { width: 100%; padding: 12px 14px; font-size: 16px; border: 1.5px solid var(--borde); border-radius: 10px; background: #fbfcfc; font-family: inherit; resize: vertical; }
.campo textarea:focus { border-color: var(--verde); outline: none; box-shadow: 0 0 0 3px var(--verde-claro); }
.campo input[readonly] { background: #eef1f0; color: var(--texto-suave); }

.miniatura { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; display: inline-grid; place-items: center; background: #eef1f0; }
.sin-foto { font-size: 18px; opacity: .6; }
.texto-rojo { color: var(--rojo); font-weight: 700; }
.texto-verde { color: var(--verde-osc); font-weight: 700; }

.grilla-ficha { display: grid; grid-template-columns: 1.3fr 1fr; gap: 18px; }
@media (max-width: 900px) { .grilla-ficha { grid-template-columns: 1fr; } }
.resumen-precio { background: var(--fondo); border-radius: 10px; padding: 12px 14px; font-size: 15px; line-height: 1.6; margin-top: 8px; }
.foto-producto { display: grid; place-items: center; min-height: 180px; background: var(--fondo); border-radius: 12px; margin-bottom: 12px; overflow: hidden; }
.foto-producto img { max-width: 100%; max-height: 260px; display: block; }
.sin-foto-grande { font-size: 54px; opacity: .4; }
.checks-chicos { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
.subtitulo-seccion { font-size: 16px; margin: 18px 0 6px; }
.barra-guardar { position: sticky; bottom: 0; background: var(--fondo); padding: 12px 0; z-index: 3; }

/* v04: ficha de producto con campos configurables */
.fila-campos.fila-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .fila-campos.fila-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .fila-campos.fila-3 { grid-template-columns: 1fr; } }
.campo-con-unidad { display: flex; gap: 8px; }
.campo-con-unidad input { flex: 1; min-width: 0; }
.campo-con-unidad select { width: 90px; flex: none; }
.tabla-campos td { vertical-align: middle; }
.tabla-campos input[type=checkbox] { width: 20px; height: 20px; }
.tabla-codisap td { padding-top: 6px; padding-bottom: 6px; }

/* v05: pantallas anchas y ficha de producto compacta en paneles a lo ancho */
.contenido-ancho { max-width: 1560px; }
.aviso-alerta { background: #fff6e0; color: #7a5200; border-left: 5px solid #e0a000; }
.grilla-6 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 14px; }
.grilla-6 .span-2 { grid-column: span 2; }
.grilla-6 .span-3 { grid-column: span 3; }
.grilla-6 .span-4 { grid-column: span 4; }
@media (max-width: 1100px) {
  .grilla-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grilla-6 .span-3, .grilla-6 .span-4 { grid-column: span 3; }
}
@media (max-width: 600px) {
  .grilla-6 { grid-template-columns: 1fr; }
  .grilla-6 .span-2, .grilla-6 .span-3, .grilla-6 .span-4 { grid-column: auto; }
}
.titulo-ficha { display: flex; align-items: baseline; gap: 6px 18px; flex-wrap: wrap; }
.ficha-compacta .panel { padding: 16px 20px 8px; margin-bottom: 14px; }
.ficha-compacta .panel h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 12px; }
.ficha-compacta .campo { margin-bottom: 10px; }
.ficha-compacta .campo label { font-size: 13px; margin-bottom: 4px; }
.ficha-compacta .campo input, .ficha-compacta .campo select, .ficha-compacta .campo textarea,
.ficha-compacta .tabla-codisap input, .ficha-compacta .tabla-codisap select,
.ficha-compacta .tabla-codigos input:not([type=checkbox]):not([type=radio]), .ficha-compacta .tabla-codigos select { padding: 9px 12px; font-size: 15px; }
.ficha-compacta .campo textarea { width: 100%; border: 1.5px solid var(--borde); border-radius: 10px; background: #fbfcfc; font-family: inherit; resize: vertical; }
.ficha-compacta .ayuda-campo { font-size: 12px; }
.campo label.check { display: flex; font-size: 15px; }
.campo-check { display: flex; align-items: flex-end; }
.check-arriba { padding: 0 0 6px; margin-bottom: 4px; }
.ficha-compacta .resumen-precio { margin-top: 0; padding: 8px 12px; font-size: 14px; line-height: 1.5; }
.fila-checks { display: flex; gap: 4px 28px; flex-wrap: wrap; padding-bottom: 8px; }
.ficha-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 0 14px; align-items: start; }
@media (max-width: 1400px) { .ficha-cuerpo { grid-template-columns: minmax(0, 1fr); } .ficha-lateral { display: grid; grid-template-columns: 2fr 1fr; gap: 0 14px; align-items: start; } }
@media (max-width: 900px) { .ficha-lateral { grid-template-columns: 1fr; } }
.ficha-lateral .tabla th, .ficha-lateral .tabla td { padding-left: 4px; padding-right: 4px; }
.panel-foto .foto-producto { min-height: 110px; }
.panel-foto .foto-producto img { max-height: 170px; }
.panel-foto .sin-foto-grande { font-size: 40px; }
.con-boton { display: flex; gap: 6px; align-items: stretch; }
.con-boton select { flex: 1; min-width: 0; }
.boton-icono { flex: none; min-width: 40px; border: 1.5px solid var(--borde); border-radius: 10px; background: var(--verde-claro); color: var(--verde-osc);
  font-size: 18px; line-height: 1; cursor: pointer; padding: 6px 10px; }
.boton-icono:hover { background: #d3ece3; }
.dialogo { border: none; border-radius: var(--radio); box-shadow: 0 20px 60px rgba(0,0,0,.25); padding: 20px 22px; width: min(560px, calc(100vw - 32px)); }
.dialogo::backdrop { background: rgba(20, 40, 35, .45); }
.dialogo-cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.dialogo-cab h2 { margin: 0; }
.dialogo #dlg-buscar { width: 100%; padding: 9px 12px; font-size: 15px; border: 1.5px solid var(--borde); border-radius: 10px; }
.dlg-lista { max-height: 220px; overflow: auto; border: 1px solid var(--borde); border-radius: 10px; margin-top: 8px; }
.dlg-item { display: block; width: 100%; text-align: left; background: none; border: none; border-bottom: 1px solid var(--borde); padding: 9px 12px; font-size: 15px; cursor: pointer; }
.dlg-item:hover { background: var(--verde-claro); }
.grilla-dlg { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.grilla-dlg .span-2 { grid-column: span 2; }
.grilla-dlg .campo input { padding: 9px 12px; font-size: 15px; }
@media (max-width: 600px) { .grilla-dlg { grid-template-columns: 1fr; } .grilla-dlg .span-2 { grid-column: auto; } }
.dlg-producto { margin: -4px 0 12px; font-size: 15px; }
.dlg-producto strong { font-size: 17px; color: var(--texto); }
.dlg-lista-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 8px; min-height: 30px; }
[hidden] { display: none !important; }

/* v08: confirmaciones y mensajes de validacion propios del sistema (nunca los del navegador) */
.dialogo-confirmar { width: min(460px, calc(100vw - 32px)); padding: 24px; }
.conf-cuerpo { display: flex; gap: 16px; align-items: flex-start; }
.conf-cuerpo h2 { margin: 2px 0 6px; font-size: 19px; color: var(--texto); }
.conf-cuerpo p { margin: 0; color: var(--texto-suave); line-height: 1.5; }
.conf-icono { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 22px;
  background: var(--verde-claro); color: var(--verde-osc); }
.conf-icono-peligro { background: var(--rojo-claro); color: var(--rojo); }
.conf-acciones { justify-content: flex-end; margin-top: 22px; }
.campo-invalido, .campo .campo-invalido { border-color: var(--rojo) !important; box-shadow: 0 0 0 3px var(--rojo-claro) !important; }
.error-campo { color: var(--rojo); font-size: 13px; font-weight: 600; margin-top: 4px; }
.error-campo::before { content: "⚠ "; }

/* v09: personas y roles */
.fila-roles { display: flex; gap: 14px; flex-wrap: wrap; padding-bottom: 10px; }
.tarjeta-rol { border: 1.5px solid var(--borde); border-radius: 12px; padding: 12px 16px; display: flex; align-items: center; gap: 10px; min-width: 250px; }
.tarjeta-rol.rol-si { border-color: var(--verde); background: var(--verde-claro); }
.aviso-persona { color: #7a5200; font-weight: 600; }
.fila-inactiva td { opacity: .55; }

/* v10: ficha de producto en tablero para PC */
.ficha-pc { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); margin-bottom: 14px; }
.ficha-pc > .panel { margin-bottom: 0; }
@media (min-width: 1400px) {
  .ficha-pc { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr) 360px; align-items: start;
    grid-template-areas: "ident ident foto" "clasif precio foto" "mas mas mas"; }
  .area-ident { grid-area: ident; } .area-clasif { grid-area: clasif; } .area-precio { grid-area: precio; }
  .area-foto { grid-area: foto; } .area-mas { grid-area: mas; } .area-codisap { grid-area: codisap; }
}
.grilla-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 14px; }
.grilla-4 .span-2 { grid-column: span 2; }
.grilla-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
@media (max-width: 900px) { .grilla-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .grilla-4, .grilla-2 { grid-template-columns: 1fr; } .grilla-4 .span-2 { grid-column: auto; } }
.panel-precio { border-top: 4px solid var(--verde); }
.margen-grande { display: flex; justify-content: space-between; align-items: baseline; background: var(--fondo); border-radius: 10px; padding: 8px 14px; margin: 2px 0 8px; }
.margen-grande strong { font-size: 26px; }
.tecla { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 5px; background: rgba(255,255,255,.25); margin-left: 6px; vertical-align: middle; }
.solo-pc { align-self: center; }
@media (max-width: 900px) { .solo-pc, .tecla { display: none; } }
.grilla-4 .span-4 { grid-column: 1 / -1; }

/* v11: listas con busqueda */
.combo { position: relative; flex: 1; min-width: 0; }
.con-boton .combo { flex: 1; }
.combo-select { position: absolute !important; left: 0; bottom: 0; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; padding: 0 !important; border: 0 !important; }
.combo-input { width: 100%; padding: 13px 34px 13px 14px; font-size: 16px; border: 1.5px solid var(--borde); border-radius: 10px; background: #fbfcfc; color: var(--texto); outline: none; text-overflow: ellipsis; }
.ficha-compacta .combo-input, .tabla-codisap .combo-input { padding: 9px 30px 9px 12px; font-size: 15px; }
.combo-input:focus { border-color: var(--verde); background: #fff; box-shadow: 0 0 0 3px var(--verde-claro); }
.combo-input:disabled { background: #eef1f0; color: var(--texto-suave); }
.combo-flecha { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: var(--texto-suave); font-size: 14px; cursor: pointer; user-select: none; }
.combo-lista { position: fixed; z-index: 60; background: #fff; border: 1.5px solid var(--borde); border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0,0,0,.14); max-height: 280px; overflow: auto; padding: 4px 0; min-width: 220px; }
.combo-item { padding: 8px 12px; cursor: pointer; font-size: 15px; line-height: 1.35; }
.combo-item mark { background: #fff1b8; color: inherit; padding: 0; border-radius: 2px; }
.combo-activo { background: var(--verde-claro); }
.combo-elegido { font-weight: 700; }
.combo-vacio { color: var(--texto-suave); font-style: italic; }
.combo-grupo { padding: 8px 12px 4px; font-size: 12px; font-weight: 700; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .03em; }
.combo-nada { padding: 8px 12px; font-size: 13px; color: var(--texto-suave); }

/* v12: proveedor y Codisap dentro de Identificacion */
.bloque-codisap > label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 13px; }
.bloque-codisap .tabla-codisap th { padding-top: 2px; padding-bottom: 4px; font-size: 11px; }
.bloque-codisap .tabla-codisap td { padding-top: 3px; padding-bottom: 3px; }
.bloque-codisap .acciones { margin-top: 4px; align-items: center; }
.bloque-codisap .nota { margin: 2px 0 0; font-size: 12px; }

/* v13: grilla de codigos de barras (unidad y envases) */
.bloque-codigos > label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 13px; }
.tabla-codigos th { padding-top: 2px; padding-bottom: 4px; font-size: 11px; }
.tabla-codigos td { padding-top: 3px; padding-bottom: 3px; vertical-align: middle; }
.tabla-codigos td:first-child { position: relative; }
.tabla-codigos input[type=checkbox], .tabla-codigos input[type=radio] { width: 18px; height: 18px; accent-color: var(--verde); }
.tabla-codigos .cb-codigo { font-family: ui-monospace, Consolas, monospace; }
.tabla-codigos .cb-codigo.es-interno { padding-right: 70px !important; }
.tabla-codigos th, .tabla-codigos td { padding-left: 4px; padding-right: 4px; }
.tabla-codigos .cb-cantidad[readonly] { background: #eef1f0; color: var(--texto-suave); }
.tabla-codigos.sin-envases .col-envase { display: none; }
.tabla-codigos .fila-inactiva .cb-codigo { text-decoration: line-through; color: var(--texto-suave); }
.tabla-codigos .etiqueta-interno { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 10px; text-transform: uppercase;
  letter-spacing: .04em; background: var(--verde-claro); color: var(--verde); padding: 2px 6px; border-radius: 6px; pointer-events: none; }
.tabla-codigos .cb-quitar { min-width: 30px; width: 30px; height: 30px; font-size: 18px; line-height: 1; }
.bloque-codigos .acciones { margin-top: 4px; align-items: center; gap: 10px; }
.bloque-codigos .nota { margin: 0; font-size: 12px; }
.bloque-codigos, .bloque-codisap { min-width: 0; }
.tabla-codigos { min-width: 420px; }
.tabla-codigos.sin-envases { min-width: 0; }

/* v14: ficha de la persona en pantalla propia (tablero en la PC) y lista que abre con un clic */
/* v15: roles con sus datos en la misma ficha: columna izquierda datos y roles, derecha roles y cambios */
.ficha-persona { display: flex; flex-direction: column; gap: 14px; margin-bottom: 14px; }
.ficha-persona .panel { margin-bottom: 0; }
.ficha-persona .col-izq, .ficha-persona .col-der { display: contents; }
.ficha-persona .area-datos { order: 1; } .ficha-persona .area-roles { order: 2; } .ficha-persona .panel-rol { order: 3; } .ficha-persona .area-historial { order: 4; }
@media (min-width: 1200px) {
  .ficha-persona { display: grid; grid-template-columns: minmax(0, 1fr) 420px; align-items: start; }
  .ficha-persona .col-izq, .ficha-persona .col-der { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
}
.panel-rol { border-left: 4px solid var(--verde); }
.panel-rol .campo { margin-bottom: 8px; }
.fila-dias { display: flex; flex-wrap: wrap; gap: 4px 14px; padding-top: 6px; }
.fila-dias .check { font-size: 14px; }
label.tarjeta-rol { cursor: pointer; }
.tarjeta-rol input.chk-rol { width: 20px; height: 20px; accent-color: var(--verde); flex: none; }
.tarjeta-rol input.chk-rol:disabled + strong { color: var(--texto-suave); }
.lista-roles { display: flex; flex-direction: column; gap: 8px; }
.lista-roles .tarjeta-rol { min-width: 0; padding: 8px 12px; }
.lista-roles .tarjeta-rol strong { flex: 1; }
.historial { list-style: none; margin: 0; padding: 0; max-height: 340px; overflow: auto; }
.historial li { padding: 8px 0; border-bottom: 1px solid var(--borde); }
.historial li:last-child { border-bottom: 0; }
.historial-cab { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; color: var(--texto-suave); font-weight: 600; }
.historial-det { font-size: 13px; margin-top: 2px; overflow-wrap: anywhere; }
tr.fila-abrir { cursor: pointer; }
tr.fila-abrir:hover td { background: var(--verde-claro); }
.grilla-6 .span-6 { grid-column: 1 / -1; }
.fila-activa { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.fila-activa .check { margin: 0; }
.panel-rol h2 { margin-bottom: 8px; }
.fila-dias .check input { width: 18px; height: 18px; }

/* v16: convenios (ficha, talonarios, clientes, aviso de WhatsApp, hoja de vales) y resumen del funcionario */
.fila-alta { display: flex; flex-wrap: wrap; gap: 0 12px; align-items: flex-end; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--borde); }
.fila-alta .campo { margin-bottom: 8px; min-width: 120px; flex: 1; }
.fila-alta .campo.span-ancho { flex: 3; min-width: 200px; }
.fila-alta .campo:last-child { flex: none; }
.acciones-fila { white-space: nowrap; text-align: right; }
.acciones-fila .boton { margin-left: 4px; }
.alta-cliente { margin-bottom: 4px; }
.alta-cliente .combo { flex: 1; }
.lista-clientes { list-style: none; margin: 8px 0 0; padding: 0; max-height: 360px; overflow: auto; }
.lista-clientes li { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; padding: 7px 0; border-bottom: 1px solid var(--borde); }
.lista-clientes li a { flex: 1; min-width: 0; color: var(--texto); }
.lista-clientes li .nota { flex-basis: 100%; order: 3; margin: 0; }
.lista-clientes .cb-quitar { min-width: 30px; width: 30px; height: 30px; font-size: 18px; line-height: 1; }
.burbuja-wa { background: #e7fbd8; border-radius: 10px 10px 10px 2px; padding: 10px 12px; font-size: 13px; line-height: 1.5; margin: 6px 0; box-shadow: 0 1px 1px rgba(0,0,0,.08); }
.fila-datos-ro { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 14px; }
.dato-ro { display: flex; flex-direction: column; font-size: 14px; }
.dato-ro span { font-size: 12px; color: var(--texto-suave); font-weight: 600; }
@media (max-width: 600px) { .fila-datos-ro { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hoja-vales { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vale { border: 1.5px dashed #555; border-radius: 8px; padding: 12px 14px; break-inside: avoid; background: #fff; font-size: 13px; }
.vale-cab { display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid #999; padding-bottom: 6px; margin-bottom: 6px; }
.vale-fila { margin: 3px 0; }
.vale-linea { border-bottom: 1px solid #777; padding-top: 20px; font-size: 11px; color: #555; }
.vale-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media print {
  .no-imprimir, .barra, header, .ayuda { display: none !important; }
  body { background: #fff; }
  .hoja-vales { gap: 6mm; }
  .vale { page-break-inside: avoid; }
}
/* v17: funcionario editable en la ficha (cargo de la lista o nuevo) */
.enlace-boton { background: none; border: 0; padding: 4px 0 0; color: var(--verde); font-size: 12px; font-weight: 600; cursor: pointer; text-decoration: underline; }
.dato-fijo { padding: 9px 12px; border: 1.5px dashed var(--borde); border-radius: 10px; font-size: 14px; background: #f6f8f7; min-height: 40px; }
/* v18: ficha de la persona a todo el ancho: roles en la linea de «Persona activa» y ultimos cambios en ventana */
.ficha-persona.una-columna { display: flex; flex-direction: column; align-items: stretch; }
.fila-activa { margin-top: 4px; }
.roles-en-linea { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.roles-titulo { font-weight: 700; font-size: 13px; color: var(--texto-suave); }
.roles-en-linea .tarjeta-rol { min-width: 0; padding: 6px 12px; gap: 8px; border-radius: 999px; }
.roles-en-linea .tarjeta-rol strong { font-size: 14px; }
.roles-en-linea .tarjeta-rol .estado { font-size: 11px; padding: 1px 8px; }
.dialogo-historial { width: min(620px, calc(100vw - 32px)); }
.dialogo-historial .historial { max-height: 60vh; }
@media (max-width: 700px) { .roles-en-linea { margin-left: 0; } }
/* v19: campos a la medida (sistema.js 6): la grilla pasa a fila que se acomoda sola */
.grilla-a-medida { display: flex !important; flex-wrap: wrap; gap: 0 14px; align-items: flex-start; }
.grilla-a-medida > .campo { min-width: 70px; max-width: 100%; }
.grilla-a-medida > .campo > label { white-space: nowrap; }
@media (min-width: 601px) { .grilla-a-medida .fila-dias { flex-wrap: nowrap; } }
@media (max-width: 600px) { .grilla-a-medida > .campo { flex: 1 1 100% !important; width: auto !important; } }
/* v20: listas de precios y precios */
.filtros-precios { display: flex; flex-wrap: wrap; gap: 0 12px; align-items: flex-end; }
.filtros-precios .campo { margin-bottom: 10px; min-width: 120px; }
.filtros-precios .campo-buscar { flex: 1 1 260px; }
.filtros-precios .campo-checks { display: flex; gap: 12px; align-items: center; padding-bottom: 8px; }
.fila-tabla-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 6px; }
.tabla-precios td { vertical-align: top; padding-top: 6px; padding-bottom: 6px; }
.tabla-precios input { width: 108px; padding: 7px 9px; font-size: 15px; text-align: right; border: 1.5px solid var(--borde); border-radius: 8px; background: #fbfcfc; }
.tabla-precios input.in-cant { width: 74px; }
.tabla-precios input:focus { border-color: var(--verde); background: #fff; box-shadow: 0 0 0 3px var(--verde-claro); outline: none; }
.tabla-precios input::placeholder { color: #9aa5a1; }
.tabla-precios .margen-celda { display: block; font-size: 11px; font-weight: 700; min-height: 14px; margin-top: 2px; }
.tabla-precios tr.fila-cambiada td { background: #fff8e1; }
.tabla-precios tr.usa-ref td:nth-child(2) strong { color: var(--texto-suave); }
.lista-sucursales .campo { margin-bottom: 10px; }
.enlace-precios { margin: 4px 0 0; }
.hoja-precios h1 { font-size: 22px; margin-bottom: 2px; }
.hoja-precios h3 { margin: 16px 0 4px; font-size: 14px; color: var(--verde); }
.tabla-precios-imp td, .tabla-precios-imp th { padding: 4px 8px; font-size: 12px; }
@media print { .hoja-precios h3 { break-after: avoid; } .tabla-precios-imp tr { break-inside: avoid; } }
.revision-import .tabla td { vertical-align: top; }
.revision-import tr.fila-alerta td { background: #fdecea; }
.pasos-import { padding-left: 20px; margin: 6px 0 12px; font-size: 14px; line-height: 1.5; }

/* v22: Compras (pedido y compra en una pantalla), cotizaciones */
.panel-compra-cab { padding-bottom: 8px; }
.carga-renglon { display: flex; align-items: flex-end; gap: 10px 16px; flex-wrap: wrap; margin-bottom: 12px; }
.carga-renglon .campo-cargar { position: relative; flex: 1 1 420px; max-width: 640px; margin-bottom: 0; }
.carga-renglon #cargar { font-size: 17px; padding: 12px 14px; border-color: var(--verde); }
.carga-renglon .nota { padding-bottom: 10px; }
.resultados-busqueda { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; background: #fff; border: 1.5px solid var(--borde); border-radius: 10px;
  box-shadow: var(--sombra); max-height: 320px; overflow: auto; margin-top: 4px; }
.res-item { display: block; width: 100%; text-align: left; padding: 9px 12px; border: none; background: none; font: inherit; cursor: pointer; border-bottom: 1px solid #eef1f0; }
.res-item:hover, .res-item.activo { background: var(--verde-claro); }
.chip-variante { display: inline-block; font-size: 12px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: var(--azul-claro); color: #23507a; }
.tabla-renglones td { vertical-align: middle; }
.tabla-renglones input { width: 104px; padding: 7px 9px; font-size: 15px; text-align: right; border: 1.5px solid var(--borde); border-radius: 8px; background: #fbfcfc; }
.tabla-renglones input.in-cant, .tabla-renglones input.in-rec { width: 78px; }
.tabla-renglones input.in-desc { width: 64px; }
.tabla-renglones input:focus, .tabla-grilla input:focus { border-color: var(--verde); background: #fff; box-shadow: 0 0 0 3px var(--verde-claro); outline: none; }
.tabla-renglones tr.fila-diferencia td { background: #fff4e5; }
.nota-dif { font-size: 12px; font-weight: 700; }
.totales-compra { display: flex; flex-direction: column; align-items: flex-end; margin-top: 12px; }
.tabla-totales { width: auto; min-width: 360px; }
.tabla-totales td { padding: 5px 12px; border: none; }
.tabla-totales tr.fila-total td { font-size: 18px; font-weight: 800; border-top: 2px solid var(--borde); }
.tabla-totales tr.fila-total td.nota { font-size: 13px; font-weight: 400; }
.aviso-recepcion { background: var(--azul-claro); padding: 14px 22px; }
.dialogo-grilla { width: min(900px, calc(100vw - 32px)); }
.tabla-grilla th, .tabla-grilla td { padding: 6px 8px; text-align: center; }
.tabla-grilla input { width: 64px; padding: 7px; text-align: right; border: 1.5px solid var(--borde); border-radius: 8px; font-size: 15px; }
.panel-revisar-precios .in-precio-nuevo { width: 120px; padding: 7px 9px; text-align: right; border: 1.5px solid var(--borde); border-radius: 8px; font-size: 15px; }
.panel-revisar-precios .margen-celda, .tabla-renglones .margen-celda { display: block; font-size: 11px; font-weight: 700; min-height: 14px; }
.filtros-compras { grid-template-columns: 2fr 1.2fr 2fr 1fr 1fr auto; }
.tabla-cotiz { width: auto; }
.tabla-cotiz input { width: 150px; padding: 8px 10px; text-align: right; border: 1.5px solid var(--borde); border-radius: 8px; font-size: 16px; }
.hoja-compra h1 { font-size: 22px; margin-bottom: 4px; }
.hoja-compra .tabla td, .hoja-compra .tabla th { padding: 5px 8px; font-size: 13px; }
@media (max-width: 1000px) { .filtros-compras { grid-template-columns: 1fr 1fr; } .tabla-totales { min-width: 0; width: 100%; } }
@media (max-width: 600px) { .filtros-compras { grid-template-columns: 1fr; } .tabla-cotiz input { width: 104px; } .carga-renglon .campo-cargar { flex-basis: 100%; } }
@media (max-width: 600px) { .barra { padding: 10px 12px; } .barra-der { gap: 6px; } .barra-der .boton { padding-left: 10px; padding-right: 10px; } .quien { display: none; } }
/* Pedido sugerido */
.filtros-pedido { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-bottom: 10px; }
.filtros-pedido select, .filtros-pedido input:not([type=checkbox]) { padding: 8px 10px; border: 1.5px solid var(--borde); border-radius: 8px; font-size: 14px; background: #fbfcfc; }
.filtros-pedido #f-txt { flex: 1 1 240px; max-width: 360px; }
.filtros-pedido #cont-pedido { margin-left: auto; }
.chip-cont { display: inline-block; min-width: 26px; text-align: center; padding: 1px 8px; border-radius: 999px; background: var(--verde); color: #fff; font-weight: 700; }
#tabla-renglones .mono { font-family: Consolas, monospace; font-size: 12px; }
.tabla-renglones .col-subtotal { background: #eef7f3; font-weight: 700; }
.tabla-renglones .col-sug { background: #fff8e1; }
.tabla-renglones tr.con-pedido td { background-image: linear-gradient(#f6fbf9, #f6fbf9); }
.tabla-renglones input.in-cajas, .tabla-renglones input.in-uni { width: 64px; }
.tabla-renglones input.in-pacord { width: 96px; }
.tabla-renglones .tot-u { font-size: 11px; min-height: 13px; }
.tabla-renglones td.col-producto { min-width: 220px; }
.tabla-pedido th, .tabla-pedido td { padding: 8px 6px; font-size: 14px; }
.tabla-pedido th { font-size: 11px; }
.tabla-pedido input.in-pacord { width: 84px; }
.tabla-pedido input { padding: 6px 7px; font-size: 14px; }
.campo-sin-venta { font-size: 13px; color: var(--texto-suave); display: inline-flex; align-items: center; gap: 6px; }
.campo-sin-venta input { width: 56px; padding: 6px 8px; border: 1.5px solid var(--borde); border-radius: 8px; text-align: right; font-size: 14px; }
.col-sug .tentativo { font-size: 10px; font-style: italic; }

/* v25: Recepcion de mercaderia en el celular y parametros del sistema */
.rec { max-width: 760px; margin: 0 auto; }
.rec h1 { font-size: 22px; margin: 4px 0; }
.rec-titulo { font-size: 15px; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-suave); margin: 18px 0 8px; }
.rec-tarjeta { display: flex; flex-direction: column; gap: 4px; background: var(--blanco); border-radius: var(--radio); box-shadow: var(--sombra); padding: 14px 16px; margin-bottom: 10px; text-decoration: none; color: var(--texto); position: relative; }
.rec-tarjeta .boton { margin-top: 6px; align-self: flex-start; }
.rec-tarjeta .rec-ir { position: absolute; right: 16px; top: 14px; color: var(--verde-osc); font-weight: 700; }
.rec-hecha { opacity: .8; }
.rec-sin-pedido .campo { margin-bottom: 8px; }
.rec-cab { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.rec-cab > div { flex: 1; }
.rec-volver { font-size: 30px; line-height: 1; text-decoration: none; color: var(--verde-osc); padding: 0 6px; }
.rec-modos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 10px; }
.rec-modo { padding: 12px; border-radius: 12px; border: 1.5px solid var(--borde); background: var(--blanco); font: inherit; font-weight: 700; cursor: pointer; }
.rec-modo.activo { background: var(--verde); border-color: var(--verde); color: #fff; }
.rec-lector { display: flex; gap: 8px; }
.rec-lector input, .rec-filtro { flex: 1; width: 100%; font-size: 18px; padding: 13px 14px; border: 2px solid var(--verde); border-radius: 12px; }
.rec-video { position: relative; margin-top: 10px; border-radius: 12px; overflow: hidden; background: #000; }
.rec-video video { width: 100%; max-height: 46vh; object-fit: cover; display: block; }
.rec-mira { position: absolute; left: 12%; right: 12%; top: 42%; height: 16%; border: 3px solid rgba(255,255,255,.85); border-radius: 10px; pointer-events: none; }
.rec-video .boton { position: absolute; right: 8px; bottom: 8px; }
.rec-ultimo { margin: 10px 0; padding: 10px 12px; border-radius: 10px; background: var(--azul-claro); font-size: 15px; }
.rec-ultimo.rec-bien { background: var(--verde-claro); }
.rec-ultimo.rec-mal { background: var(--rojo-claro); }
.rec-resultados { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.rec-res { text-align: left; padding: 10px 12px; border: 1.5px solid var(--borde); border-radius: 10px; background: #fff; font: inherit; }
.rec-items { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.rec-item { display: flex; align-items: center; gap: 10px; background: var(--blanco); border-radius: 12px; box-shadow: var(--sombra); padding: 10px 12px; }
.rec-item.con-cantidad { border-left: 4px solid var(--verde); }
.rec-item-nom { flex: 1; min-width: 0; }
.rec-cant { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; justify-content: flex-end; max-width: 170px; }
.rec-cant button { min-width: 40px; height: 40px; border-radius: 10px; border: 1.5px solid var(--borde); background: #fff; font-size: 20px; font-weight: 700; }
.rec-cant .rec-igual { font-size: 13px; padding: 0 8px; color: var(--verde-osc); }
.rec-in { width: 64px; height: 40px; text-align: center; font-size: 18px; border: 1.5px solid var(--borde); border-radius: 10px; }
.rec-cant-ro { font-size: 18px; }
.rec-resumen { margin: 12px 0; font-size: 15px; }
.rec-pie { position: sticky; bottom: 0; background: var(--fondo); padding: 10px 0; display: flex; flex-direction: column; gap: 8px; z-index: 3; }
.rec-pie-botones { display: flex; gap: 8px; }
.rec-pie-botones .boton:first-child { flex: 1; }
.lista-parametros h2 { font-size: 15px; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-suave); margin: 18px 0 8px; }
.lista-parametros h2:first-of-type { margin-top: 0; }
.parametro { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid #eef1f0; cursor: pointer; }
.parametro > span, .parametro label { display: flex; flex-direction: column; gap: 3px; }
.parametro input[type=checkbox] { margin-top: 3px; flex: none; }
.parametro-numero input { width: 80px; padding: 8px; border: 1.5px solid var(--borde); border-radius: 8px; text-align: right; flex: none; }
.chip-sin-pedido { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: #fff1e3; color: #9a5a17; }
.total-completo { margin-top: 4px; }

/* v26: recepcion contra la factura (facturado, recibido, rechazado y motivo) */
.rec-factura { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-end; background: var(--blanco); border-radius: 12px; box-shadow: var(--sombra); padding: 10px 12px; margin-bottom: 10px; }
.rec-factura .campo { flex: 1 1 140px; margin: 0; }
.rec-factura .nota { flex-basis: 100%; word-break: break-all; }
.rec-masivo { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rec-item3 { flex-wrap: wrap; }
.rec-item3 .rec-item-nom { flex-basis: 100%; }
.rec-item.falta-motivo { border-left: 4px solid var(--rojo); }
.rec-cant3 { display: flex; gap: 10px; align-items: flex-end; width: 100%; }
.rec-col { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--texto-suave); font-weight: 600; }
.rec-col-ancha { flex: 1 1 100%; }
.rec-col select, .rec-col input:not(.rec-in) { height: 40px; font-size: 16px; padding: 0 8px; border: 1.5px solid var(--borde); border-radius: 10px; background: #fff; width: 100%; box-sizing: border-box; }
.rec-fac, .rec-rch { max-width: 90px; text-align: center; }
.rec-cant3 .rec-cant { max-width: none; justify-content: flex-start; flex-wrap: nowrap; }
.rec-motivo { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; padding-top: 6px; border-top: 1px dashed var(--borde); }
.rec-motivo[hidden], .rec-nuevo-motivo[hidden] { display: none; }
.rec-nuevo-motivo { display: flex; gap: 6px; width: 100%; }
.rec-nuevo-motivo input { flex: 1; height: 40px; font-size: 16px; padding: 0 8px; border: 1.5px solid var(--borde); border-radius: 10px; }
.rec-mira-qr { left: 22%; right: 22%; top: 18%; height: 64%; }
.rec-vto { min-width: 140px; }
.tabla-aprobar td { vertical-align: middle; }
/* compra v08: carga de productos bloqueada hasta completar el encabezado */
.cabecera-incompleta #cargar { background: var(--fondo); cursor: not-allowed; }
.ref-internet { margin-top: 14px; border-top: 1px solid var(--borde); padding-top: 10px; }
.ref-internet h3 { font-size: 15px; margin: 0 0 8px; }
.tabla-cotiz tr.fila-copiada td { background: var(--verde-claro); transition: background .3s; }
.parametro-lista { display: flex; gap: 12px; align-items: flex-start; }
.parametro-lista select { min-width: 220px; height: 40px; }
.parametro-lista label { display: flex; flex-direction: column; }
.cotiz-arriba { align-items: flex-end; flex-wrap: wrap; }
.cotiz-traer { display: flex; flex-direction: column; gap: 4px; justify-content: flex-end; }
.cotiz-traer .boton { align-self: flex-start; }
.tabla-cotiz .col-ref { color: var(--texto-suave); white-space: nowrap; font-size: 14px; }
.ref-internet tr.ref-elegida td { background: var(--verde-claro); }
/* compra v09: timbrados del proveedor */
.grilla-6 .span-6 { grid-column: 1 / -1; }
.bloque-tim-nuevo { background: #fff8e1; border-radius: 10px; padding: 8px 12px 2px; margin: 4px 0 10px; }
.bloque-tim-nuevo .nota { margin: 0 0 6px; }
.fila-tim { display: flex; flex-wrap: wrap; gap: 0 14px; }
.fila-tim .campo { min-width: 160px; }
.dialogo-ancho { max-width: min(1100px, 96vw); width: 96vw; }
.tabla-timbrados input, .tabla-timbrados select { width: 100%; min-width: 0; padding: 6px; border: 1.5px solid var(--borde); border-radius: 8px; font-size: 14px; box-sizing: border-box; }
.tabla-timbrados .t-tim { min-width: 96px; } .tabla-timbrados .t-est, .tabla-timbrados .t-pto { width: 56px; } .tabla-timbrados .t-nd, .tabla-timbrados .t-nh { width: 84px; }
.tabla-timbrados input[type=checkbox] { width: auto; }
.tabla-timbrados .acc-tim { white-space: nowrap; }
.tabla-timbrados tr.tim-nuevo td { background: var(--fondo); }
.label-con-boton { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; }
.label-con-boton .enlace-boton { padding: 0; font-size: 12px; }
#tim-info { font-size: 12px; line-height: 1.3; }
.tabla-timbrados .t-tipo { min-width: 130px; }
/* compra v10: linea de carga */
.carga-renglon .l-campo { margin-bottom: 0; width: 120px; }
.carga-renglon .l-campo input { font-size: 17px; padding: 12px 10px; text-align: right; width: 100%; box-sizing: border-box; }
.carga-renglon .l-sub { width: 150px; }
.carga-renglon .l-sub input { font-weight: 700; border-color: var(--verde); }
.carga-renglon .l-campo input:disabled { background: var(--fondo); }
.l-prod { font-size: 13px; min-height: 18px; margin-top: 4px; }
@media (max-width: 900px) { .carga-renglon .l-campo { width: calc(50% - 8px); } }
#timbrado { padding-right: 6px; letter-spacing: -.2px; }
/* compras v04: cerrar desde la lista */
.acc-lista { white-space: nowrap; }
.form-en-linea { display: inline; margin: 0 0 0 6px; }
/* contabilidad y cuentas a pagar */
.asiento { border: 1px solid var(--borde); border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; background: #fff; }
.asiento-cab { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; margin-bottom: 6px; }
.asiento-elegido { border-color: var(--verde); box-shadow: 0 0 0 2px var(--verde-claro); }
.asiento-anulado { opacity: .65; }
.tabla-asiento td, .tabla-asiento th { padding: 5px 8px; }
.tabla-plan .cuenta-grupo td { font-weight: 700; }
.tabla-plan .cuenta-inactiva td { opacity: .5; }
.tabla-plan input[name=nombre] { width: 100%; min-width: 260px; padding: 5px 8px; border: 1px solid var(--borde); border-radius: 6px; font: inherit; }
.tabla-relaciones select { min-width: 320px; }
.resumen-cxp { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
.tarjeta-cxp { display: flex; flex-direction: column; gap: 2px; background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); padding: 12px 18px; min-width: 220px; }
.tarjeta-cxp strong { font-size: 22px; }
#tabla-cxp tr.fila-vencida td { background: var(--rojo-claro); }
.filtros-fechas .campo { flex: 0 0 190px; }
.tabla-asiento .cod-cuenta { display: inline-block; min-width: 96px; margin-right: 8px; }
.tabla-asiento .cuenta-haber { padding-left: 36px; }
.filtros-fechas { display: flex; flex-wrap: wrap; gap: 0 14px; }
.filtros-cxp { display: flex; flex-wrap: wrap; gap: 0 14px; align-items: flex-end; }
.filtros-cxp .campo { flex: 0 1 260px; }
.filtros-cxp .campo:first-child { flex-basis: 380px; }

/* v33: pagos y notas de credito de proveedores, principales acreedores */
.fila-anulada td { color: var(--texto-suave, #888); text-decoration: line-through; }
.fila-anulada td:last-child, .fila-anulada td .estado { text-decoration: none; }
.cabecera-panel { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.cabecera-panel h2 { margin: 0; }
#tabla-pagar .pg-monto { width: 9em; text-align: right; }
#tabla-pagar td:first-child { width: 2em; }
.acc-lista { white-space: nowrap; }
.acc-lista .boton + .boton { margin-left: 4px; }
@media (max-width: 640px) { .acc-lista { white-space: normal; } .acc-lista .boton { margin: 2px 0; } }
@media print {
  .pestanas, .migas, .cabecera .acciones { display: none !important; }
  #panel-acreedores { border: 0; box-shadow: none; padding: 0; }
  #tabla-acreedores { font-size: 11px; }
  #tabla-acreedores a { color: inherit; text-decoration: none; }
}

/* v34: codigos de cuenta largos (2.1.1.03.001) separados del nombre; kardex */
#tabla-kardex .mov-salida td:nth-child(2) { color: var(--rojo); }

/* v35: extracto del kardex */
#tabla-kardex .fila-saldo td { background: var(--azul-claro); }
@media print { #panel-kardex { border: 0; box-shadow: none; padding: 0; } #tabla-kardex { font-size: 11px; } #tabla-kardex a { color: inherit; text-decoration: none; } }

/* v36: tipo de asiento y filtro por numero */
.chip-tipo-asiento { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--azul-claro); color: #1f4f7a; }
.filtros-fechas .campo.campo-numero { flex: 0 0 130px; }

/* v37: punto de venta, cobro y caja */
.pos-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.pos-cab h1 { margin: 0; }
.pos { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.pos > * { min-width: 0; }
.pos-carga { display: flex; gap: 10px; align-items: flex-end; }
.pos-cant { flex: 0 0 80px; } .pos-cant input { text-align: right; font-size: 18px; }
.pos-codigo { flex: 1; position: relative; } .pos-codigo input { font-size: 18px; }
.pos-lista { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; background: var(--blanco); border: 1px solid var(--borde); border-radius: 10px; box-shadow: var(--sombra); max-height: 320px; overflow: auto; }
.pos-op { display: block; width: 100%; text-align: left; padding: 8px 12px; border: 0; background: none; cursor: pointer; border-bottom: 1px solid var(--borde); font: inherit; color: inherit; }
.pos-op:hover, .pos-op.activa { background: var(--verde-claro); }
.pos-op-precio { float: right; font-weight: 700; margin-left: 10px; }
.pos-lista-fija { max-height: 220px; overflow: auto; border: 1px solid var(--borde); border-radius: 10px; margin-bottom: 10px; }
.pos-lista-fija:empty { display: none; }
.pos-aviso { min-height: 22px; margin: 8px 0; font-size: 14px; color: var(--verde-osc); }
.pos-aviso-error { color: var(--rojo); font-weight: 600; }
.pos-tabla .in-cant { width: 72px; text-align: right; }
.pos-der { position: sticky; top: 12px; display: flex; flex-direction: column; gap: 10px; }
.pos-total-cab { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-suave); }
.pos-total { font-size: 40px; font-weight: 800; line-height: 1.1; color: var(--verde-osc); }
.pos-cliente { border-top: 1px solid var(--borde); padding-top: 10px; }
.pos-comp { margin: 6px 0; font-size: 13px; font-weight: 600; color: #1f4f7a; }
.pos-cobrar { font-size: 20px; padding: 14px; }
.pos-variantes { display: flex; flex-wrap: wrap; gap: 8px; }
.pos-iframe { position: absolute; width: 0; height: 0; border: 0; visibility: hidden; }
.dialogo.dialogo-ancho { width: min(760px, calc(100vw - 32px)); }
.cobro-total { font-size: 22px; margin-bottom: 10px; }
.cobro-fila { display: grid; grid-template-columns: 1.2fr .9fr 1.1fr minmax(130px, .9fr) auto; gap: 8px; margin-bottom: 10px; align-items: center; padding-bottom: 8px; border-bottom: 1px dashed var(--borde); }
.cobro-fila input, .cobro-fila select { width: 100%; padding: 8px 10px; border: 1.5px solid var(--borde); border-radius: 10px; font: inherit; }
.cobro-fila .co-monto { text-align: right; font-size: 18px; font-weight: 700; }
.cobro-resumen { display: flex; gap: 22px; flex-wrap: wrap; margin: 12px 0 4px; font-size: 18px; }
.cobro-vuelto { font-size: 30px; margin: 6px 0 10px; }
#co-vuelto-caja strong, .cobro-vuelto strong { color: var(--verde-osc); }
#co-falta-caja strong { color: var(--rojo); }
/* v42: montos del arqueo (cierre de caja y recepcion de tesoreria) con el mismo cuadro que los demas formularios */
.in-contado { width: 170px; max-width: 100%; padding: 10px 12px; font-size: 16px; text-align: right; border: 1.5px solid var(--borde); border-radius: 10px; background: #fbfcfc; color: var(--texto); outline: none; }
.in-contado:focus { border-color: var(--verde); background: #fff; box-shadow: 0 0 0 3px var(--verde-claro); }
.in-contado::placeholder { color: #9aa5a1; }
@media (max-width: 900px) {
  .pos { grid-template-columns: 1fr; }
  .pos-der { position: static; }
  .cobro-fila { grid-template-columns: 1fr 1fr; }
  .cobro-extra > * { flex-basis: 100% !important; }
}
@media print { #panel-informe { border: 0; box-shadow: none; padding: 0; } }

/* v38: borrar todo y autorizacion de la supervisora en la venta */
.boton-peligro-claro { background: var(--rojo-claro); color: var(--rojo); }
.boton-peligro-claro:hover { background: #f8d7d3; }
.boton-peligro-claro:disabled { opacity: .45; cursor: not-allowed; }
.pos-tabla .quitar { color: var(--rojo); }

/* v39: datos del cobro (cuenta, cheque, vale) y cuentas bancarias */
.cobro-extra { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cobro-extra[hidden] { display: none; }
.cobro-extra > input, .cobro-extra > select { flex: 1 1 160px; width: auto; }
.cobro-extra .co-libr { flex: 2 1 220px; }
.cobro-extra .co-fecha { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texto-suave); flex: 1 1 190px; }
.cobro-extra .co-fecha input { flex: 1; }
.cobro-extra .nota, .cobro-extra .texto-rojo { flex-basis: 100%; font-size: 13px; }
.firma-vale { margin-top: 18px; }

/* v40: detalle de cada renglon del arqueo (desglose y cobros digitados) */
.fila-detalle > td { padding-top: 0; border-top: 0; }
.arqueo-detalle summary { cursor: pointer; color: var(--verde-osc); font-size: 13px; font-weight: 600; padding: 2px 0 6px; }
.arqueo-detalle .tabla { font-size: 13px; margin: 4px 0 10px; background: var(--fondo); }
.arqueo-detalle .tabla-desglose { max-width: 420px; }
/* v41: fondos fijos (tesoreria y cierre de caja) */
.acciones-fondo form { margin: 0 0 6px; gap: 6px; flex-wrap: wrap; }
.acciones-fondo select { max-width: 180px; }
.ff-retirar summary { cursor: pointer; color: var(--rojo); font-size: 13px; font-weight: 600; }
.ff-retirar .campo { margin: 6px 0; }
.fondo-cierre { border: 1.5px solid var(--borde); border-radius: 10px; padding: 10px 14px; margin: 12px 0; }
.fondo-cierre legend { font-weight: 700; padding: 0 6px; }
.fondo-cierre .check { display: block; margin: 4px 0; }
.campo-ff p { margin: 22px 0 0; }
.detalle-cuenta summary { cursor: pointer; color: var(--verde-osc); font-size: 13px; font-weight: 600; }
/* v43: timbrados de la empresa (cajas y documentos que habilita) */
.tabla tr.fila-grupo td { background: var(--verde-claro); color: var(--verde-osc); font-weight: 700; font-size: 13px; }
.tabla input.in-num { width: 92px; padding: 7px 9px; font-size: 15px; text-align: right; border: 1.5px solid var(--borde); border-radius: 8px; background: #fbfcfc; }
.tabla input.in-num:focus { border-color: var(--verde); background: #fff; box-shadow: 0 0 0 3px var(--verde-claro); outline: none; }
.tabla input.in-num[readonly] { background: #eef1f0; color: var(--texto-suave); }
#tabla-cajas-timbrado input[type=checkbox] { width: 20px; height: 20px; }
/* v44: efectivo alto en las cajas abiertas (tesoreria) */
.tarjeta-cxp.tarjeta-alerta { border: 1.5px solid var(--rojo); }
.tarjeta-cxp a.nota { display: block; }
.form-tope { margin-top: 12px; }
.form-tope .campo { max-width: 360px; }
/* v45: comprobante dentro de Ver caja (tesoreria) */
.comp-iframe { width: min(360px, calc(100vw - 64px)); height: min(640px, 70vh); border: 1px solid var(--borde); border-radius: 8px; background: #fff; display: block; margin: 0 auto; }
/* v46: RRHH (panel, estructura, organigrama, manual de funciones y reglamento interno) */
.rrhh-pendientes { border-left: 5px solid var(--naranja); }
.rrhh-pendientes h2 { margin: 0 0 6px; font-size: 18px; }
.rrhh-pendientes ul { margin: 0; padding-left: 20px; }
.rrhh-pendientes li { margin: 4px 0; }
.rrhh-grupo { margin: 26px 0 10px; font-size: 18px; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .04em; }
.rrhh-tipo ul { padding-left: 20px; }
.rrhh-tipo li { margin: 4px 0; }
.tabla tr.fila-depto td { background: var(--verde-claro); color: var(--verde-osc); font-weight: 700; font-size: 13px; letter-spacing: .03em; }
.tabla tr.fila-total td { border-top: 2px solid var(--borde); }
.tabla tr.fila-alerta td { background: #fff8f0; }
.tabla input.in-num.in-monto { width: 130px; }
.campo input.num { text-align: right; }
.rrhh-suc { max-width: 420px; }
/* Organigrama: arbol de arriba hacia abajo con lineas */
.org-scroll { overflow-x: auto; padding: 10px 0 20px; }
.org, .org ul { display: flex; justify-content: center; padding: 18px 0 0; margin: 0; position: relative; list-style: none; }
.org { padding-top: 0; min-width: max-content; }
.org li { position: relative; padding: 18px 6px 0; display: flex; flex-direction: column; align-items: center; }
.org li::before, .org li::after { content: ''; position: absolute; top: 0; right: 50%; width: 50%; height: 18px; border-top: 2px solid #b9c7c1; }
.org li::after { right: auto; left: 50%; border-left: 2px solid #b9c7c1; }
.org li:only-child::before, .org li:only-child::after { display: none; }
.org li:only-child { padding-top: 0; }
.org li:first-child::before, .org li:last-child::after { border: 0 none; }
.org li:last-child::before { border-right: 2px solid #b9c7c1; border-radius: 0 6px 0 0; }
.org li:first-child::after { border-radius: 6px 0 0 0; }
.org ul ul::before, .org > li > ul::before { content: ''; position: absolute; top: 0; left: 50%; height: 18px; border-left: 2px solid #b9c7c1; }
.org-nodo { background: #fff; border: 2px solid var(--verde); border-radius: 10px; padding: 8px 10px; min-width: 150px; max-width: 200px; text-align: center; font-size: 12px; box-shadow: var(--sombra); }
.org-raiz { background: var(--verde); color: #fff; }
.org-cargo { font-weight: 800; font-size: 13px; }
.org-depto { color: var(--texto-suave); font-size: 11px; margin-top: 2px; }
.org-raiz .org-depto { color: #e6f4ef; }
.org-cuenta { margin-top: 4px; font-weight: 600; }
.org-nombres { margin-top: 4px; padding-top: 4px; border-top: 1px dashed var(--borde); color: var(--texto); }
.org-vac { margin-top: 4px; font-weight: 700; color: #9a5a17; }
.org-vacante { border-color: var(--naranja); background: #fffaf4; }
.org-excedido { border-color: var(--rojo); }
.org-fuera { border-style: dashed; border-color: #8aa39a; background: #f6f8f7; }
.org-ref span { display: inline-block; width: 14px; height: 10px; border-radius: 3px; vertical-align: middle; margin-left: 8px; }
.org-ref-vac { border: 2px solid var(--naranja); background: #fffaf4; }
.org-ref-fuera { border: 2px dashed #8aa39a; }
/* Documentos impresos de RRHH (manual, reglamento, constancias, organigrama) */
.doc-barra { margin: 10px 0 14px; }
.doc { background: #fff; max-width: 820px; margin: 0 auto; padding: 28px 34px; border-radius: var(--radio); box-shadow: var(--sombra); font-size: 14px; line-height: 1.5; }
.doc-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 2px solid var(--texto); padding-bottom: 10px; margin-bottom: 16px; }
.doc-titulo { text-align: right; }
.doc-titulo h1 { margin: 0; font-size: 20px; }
.org-panel .doc-cab { border-bottom-width: 1px; }
.doc h2 { font-size: 17px; margin: 18px 0 8px; }
.doc h3 { font-size: 14px; margin: 14px 0 4px; text-transform: uppercase; letter-spacing: .03em; color: var(--verde-osc); }
.doc-datos th { text-align: left; padding: 3px 14px 3px 0; color: var(--texto-suave); font-weight: 600; }
.doc-datos td { padding: 3px 0; }
.doc-capitulo { text-align: center; margin-top: 22px !important; }
.doc-art { text-align: justify; margin: 6px 0; }
.doc-firmas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 46px; }
.doc-firmas-dos { grid-template-columns: repeat(2, 1fr); }
.doc-firmas div { border-top: 1px solid #333; padding-top: 4px; text-align: center; font-size: 12px; color: var(--texto-suave); }
.doc-constancia p { text-align: justify; font-size: 15px; margin: 18px 0; }
.reg-capitulo { margin: 22px 0 8px; color: var(--verde-osc); font-size: 15px; }
.reg-art { padding: 4px 0 8px; border-bottom: 1px solid #eef1f0; }
.reg-art p { margin: 4px 0; text-align: justify; }
.reg-acc { display: flex; gap: 6px; flex-wrap: wrap; }
@media print {
  .doc-barra, .pestanas, .migas { display: none !important; }
  .doc { box-shadow: none; border-radius: 0; padding: 0; max-width: none; }
  .doc-salto { break-before: page; }
  .contenido, .contenido-ancho { padding: 0 !important; margin: 0 !important; max-width: none !important; }
  .org-panel { box-shadow: none; border: 0; padding: 0; }
  .org-scroll { overflow: visible; }
  .org-nodo { box-shadow: none; }
}
/* v47: RRHH personal (candidatos, legajo, foja, documentos) */
.tabla tr.fila-inactiva td { color: var(--texto-suave); }
.chips-legajo { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.doc-firmas-uno { grid-template-columns: minmax(0, 340px); justify-content: center; }
.doc-borrador, .doc-anulado { position: relative; }
.doc-borrador::before, .doc-anulado::before { content: 'BORRADOR'; position: absolute; top: 40%; left: 0; right: 0; text-align: center; font-size: 90px; font-weight: 800; color: rgba(192, 57, 43, .10); transform: rotate(-20deg); pointer-events: none; }
.doc-anulado::before { content: 'ANULADO'; }
.doc-vista { box-shadow: none; padding: 8px 0; max-width: none; }
textarea.texto-doc { font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 1.5; }
.grilla-plantilla { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; }
.campos-plantilla { display: flex; flex-wrap: wrap; gap: 4px; align-content: flex-start; max-height: 560px; overflow: auto; }
.campos-plantilla > strong, .campos-plantilla > p { flex-basis: 100%; margin: 0 0 4px; }
.campo-plantilla { border: 1px solid var(--borde); background: var(--verde-claro); color: var(--verde-osc); border-radius: 6px; padding: 3px 7px; font-family: Consolas, monospace; font-size: 12px; cursor: pointer; }
.panel-anular { margin-top: 18px; padding-top: 12px; border-top: 1px dashed var(--borde); }
@media (max-width: 800px) { .grilla-plantilla { grid-template-columns: 1fr; } }
/* v48: RRHH movimientos (vacaciones, anticipos, preavisos, desvinculaciones, liquidacion final) */
.resumen-vac { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.recibo-monto { text-align: right; font-size: 22px; font-weight: 800; margin: 6px 0 4px; }
.dos-claves { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 800px) { .dos-claves { grid-template-columns: 1fr; } }
.tabla-liq td input:not(.in-num) { width: 100%; }
.form-agregar { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--borde); align-items: end; }
.form-agregar .check { padding: 0 0 6px; }
.links-legajo { display: flex; gap: 6px; flex-wrap: wrap; margin: -6px 0 12px; }
/* v49: RRHH sueldos (planilla editable, recibos de salario) */
.tabla-planilla td, .tabla-planilla th { white-space: nowrap; }
.tabla-planilla input.in-num { width: 110px; }
.tabla-planilla input.in-num.in-dias { width: 64px; }
.tabla-planilla td input:not(.in-num) { width: 170px; padding: 7px 9px; border: 1.5px solid var(--borde); border-radius: 8px; }
.doc-recibo-sueldo .tabla-liq { margin: 10px 0 14px; }
@media print { .doc-recibo-sueldo { min-height: 46vh; } }
/* v50: los cuadros de texto dentro de las tablas (sin tipo) con el mismo recuadro que las listas, en todas las pantallas */
.tabla :where(input:not([type]):not(.in-num), input[type=text]:not(.in-num), input[type=date], input[type=email], input[type=tel], textarea),
.tabla :where(select) { padding: 8px 10px; border: 1.5px solid var(--borde); border-radius: 8px; font: inherit; font-size: 15px; width: 100%; min-width: 120px; min-height: 40px; box-sizing: border-box; background: #fff; color: var(--texto); }
.tabla :where(input:not([type]):not(.in-num), input[type=text]:not(.in-num), input[type=date], input[type=email], input[type=tel], textarea, select):focus { border-color: var(--verde); box-shadow: 0 0 0 3px var(--verde-claro); outline: none; }
.tabla :where(input, textarea, select):disabled { background: #eef1f0; color: var(--texto-suave); }
/* v51: renglon que se esta editando (tablas de solo lectura con boton Editar) */
.tabla tr.fila-editando td { background: var(--verde-claro); }
/* v52: reportes (informes contables y de ventas) */
.informe-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; border-bottom: 2px solid var(--borde); padding-bottom: 10px; margin-bottom: 8px; }
.informe-tit { text-align: center; flex: 1; }
.informe-tit h2 { margin: 0 0 2px; }
.informe-acc { white-space: nowrap; }
.tabla-informe .cuenta-grupo td { font-weight: 700; }
.tabla-informe .nivel-1 td { font-size: 16px; }
.tabla-informe .cod-cuenta { width: 110px; white-space: nowrap; }
.tabla-informe td.num, .tabla-mayor td.num { white-space: nowrap; }
.tabla-resumen-inf { max-width: 560px; margin: 16px 0 0 auto; }
.tabla-mayor .fila-saldo td { background: var(--azul-claro); }
.campo-ancho { flex: 2 1 340px; }
.graf-barras { display: flex; align-items: flex-end; gap: 4px; height: 160px; padding: 8px 0; border-bottom: 1px solid var(--borde); overflow-x: auto; }
.graf-barras .barra-v { flex: 1 0 18px; background: var(--verde); border-radius: 4px 4px 0 0; min-height: 2px; position: relative; }
.graf-barras .barra-v:hover { background: var(--verde-osc); }
.graf-etq { display: flex; gap: 4px; font-size: 11px; color: var(--texto-suave); overflow-x: auto; }
.graf-etq span { flex: 1 0 18px; text-align: center; }
.barra-h { height: 10px; background: var(--verde-claro); border-radius: 5px; overflow: hidden; min-width: 80px; }
.barra-h > span { display: block; height: 100%; background: var(--verde); }
@media print {
  .informe-contable { box-shadow: none; border: 0; padding: 0; }
  .tabla-informe, .tabla-mayor, .tabla-reporte { font-size: 11px; }
  .tabla-informe a, .tabla-mayor a, .tabla-reporte a { color: inherit; text-decoration: none; }
}
/* v53: gastos y presupuesto */
.tabla-presupuesto td, .tabla-presupuesto th { padding-left: 4px; padding-right: 4px; white-space: nowrap; }
.tabla-presupuesto input.in-num { width: 96px; font-size: 14px; padding: 6px 7px; }
.tabla-presupuesto input.in-mensual { background: var(--verde-claro); border-style: dashed; }
.barra-h.barra-pasada > span { background: var(--rojo); }
/* v54: gastos (bandeja de comprobantes, factura de gasto) y autorizaciones */
.comp-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.comp-tarjeta { display: flex; gap: 12px; background: var(--blanco); border: 1px solid var(--borde); border-radius: 14px; padding: 10px; }
.comp-mini, .comp-mini-elegir { flex: none; width: 96px; height: 120px; border-radius: 10px; overflow: hidden; background: #f1f3f2; display: flex; align-items: center; justify-content: center; border: 1px solid var(--borde); text-decoration: none; color: var(--texto-suave); font-weight: 700; }
.comp-mini img, .comp-mini-elegir img { width: 100%; height: 100%; object-fit: cover; }
.comp-datos { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.comp-previa { max-width: 260px; max-height: 260px; border-radius: 10px; border: 1px solid var(--borde); margin: 6px 0; }
.comp-mas { margin: 8px 0; }
.comp-mas summary { cursor: pointer; color: var(--verde-osc); font-weight: 600; }
.comp-visor img { width: 100%; border-radius: 10px; border: 1px solid var(--borde); }
.comp-visor iframe { width: 100%; height: 520px; border: 1px solid var(--borde); border-radius: 10px; }
.comp-elegir { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.comp-mini-elegir { width: 76px; height: 96px; position: relative; flex-direction: column; }
.comp-mini-elegir small { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,.55); color: #fff; font-size: 10px; text-align: center; padding: 1px; }
.comp-mini-elegir.elegido { outline: 3px solid var(--verde); }
.gasto-layout, .aut-layout { display: grid; grid-template-columns: minmax(260px, 1fr) 2fr; gap: 16px; align-items: start; }
.gasto-comp { position: sticky; top: 76px; }
.tabla-gasto select, .tabla-gasto input:not(.in-num) { width: 100%; }
.tabla-gasto td:first-child { min-width: 220px; }
.pestanas-chicas { margin: 0 0 12px; }
.pestanas-chicas label { padding: 7px 14px; border-radius: 999px; border: 1.5px solid var(--borde); cursor: pointer; font-weight: 600; font-size: 14px; }
.pestanas-chicas label.activa { background: var(--verde); border-color: var(--verde); color: #fff; }
.pestanas-chicas input { display: none; }
.panel-interno { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--borde); }
.doc-nota .doc-firmas { margin-top: 70px; }
.contador { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 7px; border-radius: 999px; background: var(--rojo); color: #fff; font-size: 14px; font-weight: 800; vertical-align: middle; }
.contador.contador-cero { background: var(--borde); color: var(--texto-suave); }
.modulo { position: relative; }
.modulo .contador { position: absolute; top: 10px; right: 10px; }
.aut-lista { display: flex; flex-direction: column; gap: 8px; }
.aut-item { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1.5px solid var(--borde); border-radius: 12px; text-decoration: none; color: var(--texto); }
.aut-item.elegido { border-color: var(--verde); background: var(--verde-claro); }
.aut-monto { font-weight: 800; }
.aut-cuerpo { display: grid; grid-template-columns: minmax(200px, 1fr) 2fr; gap: 14px; align-items: start; }
.aut-pres-pasa { border-left: 5px solid var(--rojo); }
.aut-anio th.mes-actual { color: var(--verde-osc); text-decoration: underline; }
.aut-acciones { display: flex; flex-wrap: wrap; gap: 18px; align-items: flex-end; justify-content: space-between; }
.aut-acciones .boton { font-size: 17px; }
.enlace-comprobante { text-decoration: none; }
@media (max-width: 900px) { .gasto-layout, .aut-layout, .aut-cuerpo { grid-template-columns: 1fr; } .gasto-comp { position: static; } }
/* v55: ordenes de pago, cheques, autorizaciones en el celular, camara para el QR */
.aut-grupo { margin: 10px 0 2px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-suave); }
.aut-nuevo { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 50; box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.aut-nuevo[hidden] { display: none; }
@media (max-width: 600px) {
  .aut-acciones { flex-direction: column; align-items: stretch; }
  .aut-acciones .boton { width: 100%; }
  .aut-item { padding: 12px; }
}
@media (display-mode: standalone) { .barra .quien { display: none; } }
.camara { position: relative; max-width: 520px; border-radius: 12px; overflow: hidden; background: #000; margin: 8px 0; }
.camara video { display: block; width: 100%; height: auto; }
.camara .camara-marco { position: absolute; inset: 18%; border: 3px solid rgba(255,255,255,.85); border-radius: 14px; pointer-events: none; }
.camara-estado { font-weight: 700; }
.cheque-dif td:first-child { font-weight: 700; }
.en-linea { display: inline-flex; gap: 6px; align-items: center; margin: 0; flex-wrap: wrap; }
/* v56: caja chica */
.mosaico-cc { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.cc-tarjeta { display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--texto); margin: 0; }
.cc-tarjeta:hover { border-color: var(--verde); }
.etiqueta-cc { display: inline-block; padding: 1px 8px; border-radius: 999px; background: var(--verde-claro); color: var(--verde-osc); font-size: 11px; font-weight: 700; vertical-align: middle; }
.parametro-pronto { opacity: .7; }
#tabla-aut-planilla .pl-dec { min-width: 220px; }
#tabla-aut-planilla .pl-mot { margin-top: 6px; width: 100%; }
/* v57: stock (transferencias, nota de remision, ajustes) */
.lista-resultados { border: 1.5px solid var(--borde); border-radius: 10px; background: #fff; margin: 6px 0 12px; max-height: 320px; overflow: auto; }
.lista-resultados[hidden] { display: none; }
.lista-resultados > .nota { padding: 8px 12px; }
.pasos-tr { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 10px 0 16px; }
.pasos-tr .paso { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1.5px solid var(--borde); color: var(--texto-suave); }
.pasos-tr .paso.hecho { border-color: var(--verde); background: var(--verde-claro); color: var(--verde-osc); }
@media (max-width: 800px) { .pasos-tr { grid-template-columns: 1fr 1fr; } }
a.tarjeta-cxp { text-decoration: none; color: var(--texto); }
.doc-remision .remision-caja { border: 2px solid #333; border-radius: 8px; padding: 8px 14px; text-align: center; min-width: 240px; }
.doc-remision .remision-caja h2 { margin: 6px 0 2px; }
.doc-remision .remision-num { font-size: 18px; font-weight: 800; }
.doc-remision .doc-datos th { width: 16%; }
.remision-copias { margin-top: 18px; text-align: center; }
/* v58: inventarios (PC y app de conteo) */
.inv-checks { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.inv-checks .chip, .inv-radios .chip { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.inv-checks .chip[hidden], .inv-checks label[hidden] { display: none; }
.inv-radios { display: flex; flex-wrap: wrap; gap: 6px; }
.inv-provs { max-height: 180px; overflow: auto; }
.inv-horas { margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: var(--azul-claro); font-size: 14px; }
.inv-barras { display: flex; align-items: flex-end; gap: 4px; margin: 8px 0 4px; min-height: 80px; }
.inv-barra { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.inv-barra span { display: block; width: 18px; background: #9fb3c8; border-radius: 4px 4px 0 0; }
.inv-barra.baja span { background: var(--verde); }
.inv-barra small { font-size: 10px; color: var(--texto-suave); }
#tabla-informe td, #tabla-cierre td { vertical-align: top; }
#tabla-informe tr.inv-grande td, #tabla-cierre tr.inv-grande td { background: #fff7ec; }
.inv-det > td { background: #f6f8f7; }
.inv-detalle .tabla { margin-top: 6px; font-size: 13px; }
.inv-anulado, .inv-anulado td { text-decoration: line-through; opacity: .6; }
.inv-pend { margin: 0; padding-left: 18px; }
.inv-asignar { margin-top: 8px; }
.inv-asignar > summary { list-style: none; display: inline-block; }
.panel-sub { border-top: 1px solid var(--borde); margin-top: 14px; padding-top: 10px; }
.tabla-chica { font-size: 14px; }
.inv-url { font-family: Consolas, monospace; font-size: 14px; color: var(--texto-suave); word-break: break-all; margin: 6px 0; }
.solo-imprimir { display: none; }
@media print { .solo-imprimir { display: block; } .no-imprimir, .inv-det { display: none !important; } #tabla-informe, #tabla-cierre { font-size: 11px; } #tabla-informe a { color: inherit; text-decoration: none; } }
.inv-app .inv-banner { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--verde); color: #fff; border-radius: 12px; padding: 10px 14px; margin-bottom: 10px; }
.inv-app .inv-banner strong { display: block; font-size: 20px; }
.inv-app .inv-banner .nota { color: rgba(255,255,255,.85); }
.inv-app .inv-dep { width: 100%; text-align: left; border: 0; font: inherit; cursor: pointer; }
.inv-app .inv-dep .estado { align-self: flex-start; }
.inv-ficha { background: var(--blanco); border-radius: 12px; box-shadow: var(--sombra); border-left: 4px solid var(--verde); padding: 12px 14px; margin: 10px 0; }
.inv-ficha[hidden] { display: none; }
.inv-ficha-nom strong { font-size: 18px; }
.inv-sis { margin-top: 6px; padding: 6px 10px; border-radius: 8px; background: var(--azul-claro); font-size: 14px; }
.inv-campos { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.inv-campos .campo { flex: 1 1 120px; margin: 0; }
.inv-campos .campo[hidden] { display: none; }
.inv-in { width: 100%; height: 48px; font-size: 22px; text-align: center; border: 2px solid var(--borde); border-radius: 10px; }
.inv-in[type=date] { font-size: 17px; }
.inv-botones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.inv-botones .boton:first-child { flex: 1 1 100%; font-size: 18px; padding: 14px; }
.inv-app .inv-rec { width: 100%; text-align: left; border: 0; font: inherit; cursor: pointer; }
.inv-checks input, .inv-radios input { width: auto; flex: 0 0 auto; margin: 0; }
.inv-radios .chip, .inv-checks .chip { white-space: nowrap; }
.inv-numeros { display: flex; flex-wrap: wrap; gap: 0 14px; align-items: flex-end; }
.inv-numeros .campo { flex: 0 0 170px; }
.inv-numeros .campo.inv-nota { flex: 1 1 260px; }
.inv-como { display: flex; flex-wrap: wrap; gap: 0 24px; }
.inv-como .campo { flex: 0 1 auto; }
.inv-numeros[hidden], .inv-horas[hidden] { display: none; }
/* v59: link de conteo del inventarista (conteo.php) */
body.conteo-link main { padding: 12px 12px 40px; }
.inv-banner .inv-quien { font-weight: 700; text-align: right; font-size: 14px; max-width: 40%; }
.conteo-ingreso { margin-top: 12px; }
.conteo-ingreso h1 { font-size: 22px; margin: 0 0 6px; }
.conteo-ingreso input { font-size: 20px; padding: 13px 14px; }
.conteo-entrar { width: 100%; font-size: 18px; padding: 14px; margin: 6px 0 10px; }
.inv-link { display: flex; gap: 4px; flex-wrap: wrap; }
/* v60: ajustes de inventario: el motivo dice si sale o entra */
.aj-sentido { margin-top: 6px; padding: 6px 10px; border-radius: 8px; font-size: 14px; font-weight: 700; }
.aj-sentido[hidden] { display: none; }
.aj-sale { background: var(--rojo-claro); color: var(--rojo); }
.aj-entra { background: var(--verde-claro); color: var(--verde-osc); }
#a-error[hidden] { display: none; }

/* Orden de pago: como se paga (letra grande) y armado de los medios */
.op-medios { margin: 14px 0 18px; padding: 14px 18px; border: 2px solid var(--verde); border-radius: var(--radio); background: var(--verde-claro); }
.op-medios h3 { margin: 0 0 8px; font-size: 18px; }
.op-medios-tabla { width: 100%; border-collapse: collapse; font-size: 18px; }
.op-medios-tabla td { padding: 7px 4px; border-bottom: 1px solid rgba(0,0,0,.08); vertical-align: top; }
.op-medios-tabla td.num { white-space: nowrap; text-align: right; }
.op-medios-tabla td.num strong { font-size: 21px; }
.op-medio-tipo { font-weight: 600; }
.op-medio-menos { color: var(--rojo); font-weight: 700; }
.op-medio-menos::before { content: '− '; }
.op-medios-total td { font-weight: 700; border-bottom: 0; border-top: 2px solid var(--verde); }
.op-medios-dinero td { color: var(--texto-suave); font-size: 16px; border-bottom: 0; }
.op-medios-armar { margin: 16px 0; padding: 14px 16px; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--blanco); }
.op-medios-armar h3 { margin-top: 0; }
.op-ret { margin: 10px 0; }
.op-dinero-fila { display: grid; grid-template-columns: 1.1fr 1.6fr 1fr 1fr auto; gap: 10px; align-items: end; padding: 8px 0; border-bottom: 1px dashed var(--borde); }
.op-dinero-fila .campo { margin: 0; min-width: 0; }
.op-dinero-fila .op-oculto { visibility: hidden; }
@media (max-width: 760px) { .op-dinero-fila { grid-template-columns: 1fr 1fr; } .op-dinero-fila .op-oculto { display: none; } }
.op-cuadre { margin-top: 12px; padding: 10px 14px; border-radius: var(--radio); font-size: 16px; }
.op-cuadre-ok { background: var(--verde-claro); color: var(--verde-osc); }
.op-cuadre-mal { background: #fff1e3; color: #9a5a17; }
@media print { .op-medios { border-color: #000; background: none; } }
@media (max-width: 640px) { .op-medios-tabla { font-size: 16px; } .op-medios-tabla td.num strong { font-size: 18px; } }

/* Recibo de entrega de valores (original y copia en la misma hoja) */
.doc-entrega .entrega-texto { font-size: 15px; line-height: 1.6; }
.doc-corte { max-width: 820px; margin: 18px auto; border-top: 2px dashed var(--borde); }
.op-cobrador { margin: 8px 0 14px; }
@media print { .doc-entrega { page-break-inside: avoid; } .doc-corte { border-color: #999; margin: 14px 0; } }

/* Moneda extranjera: posicion en la orden de pago y en tesoreria */
.op-posicion { margin: 10px 0 14px; padding: 12px 14px; border-radius: var(--radio); background: var(--verde-claro); font-size: 15px; }
.op-posicion-falta { background: #fdecea; }
.op-posicion .boton { margin-top: 8px; }
.cm-ref { padding: 10px 14px; border-radius: var(--radio); margin: 8px 0; font-size: 15px; }
.cm-ref-ok { background: var(--verde-claro); } .cm-ref-aviso { background: #fff1e3; color: #9a5a17; } .cm-ref-clave { background: #fdecea; color: var(--rojo); }
.cm-oper { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.cm-oper a { padding: 9px 18px; border-radius: 999px; border: 1.5px solid var(--borde); font-weight: 700; text-decoration: none; color: inherit; background: #fff; }
.cm-oper a.activa { background: var(--verde); border-color: var(--verde); color: #fff; }
.cm-resultado { padding: 10px 14px; border-radius: var(--radio); margin: 4px 0 12px; font-weight: 600; }
.cm-gana { background: var(--verde-claro); } .cm-pierde { background: #fdecea; color: var(--rojo); }
.cm-fila-venta td:first-child { border-left: 4px solid #d98a2b; } .cm-fila-compra td:first-child { border-left: 4px solid var(--verde); }
#tabla-compras-moneda td:first-child strong, #tabla-compras-moneda td:nth-child(3), #tabla-compras-moneda td:nth-child(6), #tabla-compras-moneda td:nth-child(9) { white-space: nowrap; }

/* Contabilidad: mayor de una cuenta con selector de moneda */
.mayor-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.mayor-cab h2 { margin: 0; }
.mayor-cab .pestanas { margin: 0; }

/* Clientes: recibo, liquidacion de convenio y credito en la caja */
.recibo-texto { font-size: 15px; line-height: 1.7; margin: 14px 0; }
.fila-subtotal td { background: #f6f8f7; border-top: 1px dashed #d5dcd9; }
.cobro-extra .co-clave { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; }
.cobro-extra .co-clave[hidden] { display: none; }
.cobro-extra .co-clave input { width: 130px; }

/* Parametros: campo de texto (direccion del sistema) */
.parametro-texto { display: flex; flex-direction: column; gap: 6px; }
.parametro-texto label { display: flex; flex-direction: column; }
.parametro-texto input { width: 100%; max-width: 520px; padding: 9px 10px; border: 1.5px solid var(--borde); border-radius: 8px; }

/* Recepcion: que productos ver y motivo para todos */
.rec-vista { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rec-vista-b { border: 1.5px solid var(--borde); background: #fff; border-radius: 999px; padding: 7px 12px; font-size: 14px; font-weight: 600; color: var(--texto); cursor: pointer; }
.rec-vista-b.activo { background: var(--verde); border-color: var(--verde); color: #fff; }
.rec-vista-b.rec-vista-alerta:not(.activo) { border-color: var(--rojo); color: var(--rojo); }
.rec-motivo-todos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; padding: 8px 10px; background: #fff4f2; border-radius: 10px; font-size: 14px; }
.rec-motivo-todos[hidden] { display: none; }
.rec-motivo-todos select { flex: 1; min-width: 150px; padding: 7px; border: 1.5px solid var(--borde); border-radius: 8px; }
.rec-item.falta-motivo .rec-mot { border: 2px solid var(--rojo); }
.rec-listo { padding: 14px 4px; }

/* Factura nueva: recepciones sin factura del proveedor elegido */
#panel-rec-sin-factura.panel-aviso { border: 2px solid var(--verde); }
input.campo-error { border-color: var(--rojo) !important; box-shadow: 0 0 0 3px rgba(192, 57, 43, .15); }

/* Compra: subtotal editable y el campo que se ajusto */
#tabla-renglones input.in-sub { width: 120px; text-align: right; font-weight: 700; }
#tabla-renglones input.ajustado { background: #fff7d6; transition: background .3s; }

/* Factura de una recepcion: diferencias con lo recibido */
.panel-diferencias { margin-top: 16px; padding: 12px 14px; border: 1.5px solid #f0c6bf; background: #fff8f6; border-radius: 10px; }
.panel-diferencias h3 { margin: 0 0 4px; font-size: 15px; color: var(--rojo); }
.rec-col-dif .nota-dif { font-size: 11.5px; white-space: nowrap; }

/* ===== Verificar compra: documento adjunto y productos lado a lado (v71) ===== */
main.centro:has(.verif-embebido) { display: block; padding: 0; max-width: none; width: 100%; min-height: 0; }
.verif { width: 100%; }
.verif-grilla { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.verif-embebido { padding: 10px 12px; }
.verif-embebido .verif-grilla { height: calc(100vh - 20px); }
.verif-doc, .verif-datos { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.verif-datos { padding: 12px 14px; overflow: auto; }
.verif-datos h3 { margin: 4px 0 8px; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--texto-suave); }
.verif-barra { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--borde); }
.verif-barra .chip { padding: 3px 11px; font-size: 13px; cursor: pointer; text-decoration: none; }
.verif-barra .chip.activo { background: var(--verde); border-color: var(--verde); color: #fff; }
.verif-tit { font-size: 13px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--texto-suave); margin-right: auto; }
.verif-zoom { display: inline-flex; gap: 4px; }
.verif-visor { flex: 1; min-height: 360px; min-width: 0; display: flex; background: #e9edf0; }
.verif-pane { flex: 1; min-height: 0; min-width: 0; display: flex; }
.verif-pane[hidden] { display: none; }
.verif-img { flex: 1; min-width: 0; overflow: auto; padding: 2px; cursor: grab; text-align: center; }
.verif-img.arrastrando { cursor: grabbing; user-select: none; }
.verif-img img { display: inline-block; max-width: none; box-shadow: 0 2px 10px rgba(0,0,0,.18); background: #fff; transform-origin: center center; }
.verif-pdf { flex: 1; border: 0; width: 100%; min-height: 360px; background: #fff; }
.verif-kude { overflow: auto; background: #fff; padding: 12px; display: block; }
.verif-vacio { margin: auto; text-align: center; padding: 30px; color: var(--texto-suave); }
.verif-vacio > div { font-size: 46px; }
.verif-tabla-datos { width: 100%; border-collapse: collapse; margin-bottom: 12px; font-size: 14px; }
.verif-tabla-datos th { text-align: left; width: 120px; color: var(--texto-suave); font-weight: 600; padding: 6px 8px; vertical-align: top; }
.verif-tabla-datos td { padding: 6px 8px; }
.verif-tabla-datos tr:nth-child(odd) { background: #f6f8f9; }
.verif-cdc { font-size: 12px; word-break: break-all; }
.mono { font-family: ui-monospace, Consolas, "Courier New", monospace; }
.verif-prod { flex: 1; min-height: 120px; }
.verif-prod table { font-size: 13px; }
.verif-prod td, .verif-prod th { padding: 5px 7px; }
.verif-prod thead th { position: sticky; top: 0; background: #eef3f1; z-index: 1; }
.verif-dev td { background: #fff4f2; }
.verif-totales { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--verde-osc, #0b4d3a); color: #e6f2ed; font-size: 13px; }
.verif-totales strong { color: #fff; }
.verif-stdev { background: #ffd8a8; color: #7a3d00; padding: 2px 8px; border-radius: 6px; }
.verif-stdev strong { color: #7a3d00; }
.verif-total { margin-left: auto; font-size: 15px; }
.dialogo-verif { width: min(1500px, calc(100vw - 24px)); height: calc(100vh - 24px); max-height: none; padding: 0; overflow: hidden; display: none; }
.dialogo-verif[open] { display: flex; flex-direction: column; }
.verif-cab { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: var(--verde-osc, #0b4d3a); color: #fff; font-weight: 700; }
.dialogo-verif iframe { flex: 1; border: 0; width: 100%; background: var(--fondo, #f3f5f4); }
.boton-verificar { white-space: nowrap; }
/* KuDE dibujado desde el XML */
.kude { font-size: 12px; color: #111; max-width: 820px; margin: 0 auto; }
.kude-caja { border: 1px solid #333; padding: 8px 10px; margin-bottom: 6px; }
.kude-cab { display: flex; justify-content: space-between; gap: 12px; }
.kude-emisor { font-size: 15px; font-weight: 700; }
.kude-der { text-align: right; }
.kude-tipo { font-size: 14px; font-weight: 800; margin-top: 8px; }
.kude-num { font-size: 14px; font-weight: 800; }
.kude-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kude-items { width: 100%; border-collapse: collapse; margin-bottom: 6px; }
.kude-items th, .kude-items td { border: 1px solid #555; padding: 3px 5px; }
.kude-items th { background: #f0f0f0; }
.kude-sub td { font-weight: 600; }
.kude-cdc { font-size: 13px; margin: 6px 0; }
@media (max-width: 900px) {
  .verif-grilla { grid-template-columns: 1fr; }
  .verif-embebido .verif-grilla { height: auto; }
  .verif-visor { min-height: 60vh; }
  .kude-cab, .kude-dos { display: block; }
  .kude-der { text-align: left; margin-top: 6px; }
  .verif-total { margin-left: 0; }
}

/* Cobro en otra moneda: equivalencia en la moneda base y lo que falta en la moneda elegida (v72) */
.co-equiv { font-size: 15px; color: var(--texto-suave); text-align: right; white-space: nowrap; }
.co-equiv strong { color: var(--texto); }
.co-equiv:empty { visibility: hidden; }
.co-otras { font-size: .8em; color: var(--texto-suave); margin-left: 6px; }
.co-otras strong { color: var(--verde-osc); }
#co-falta-otras strong { color: var(--rojo); }
@media (max-width: 900px) { .co-equiv { grid-column: 1 / -1; text-align: left; } }

/* Tesoreria: depositos preparados (falta la boleta) y cierre del dia (v73) */
.dep-preparado { border: 1px solid var(--borde); border-left: 4px solid #d97706; border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; background: #fffbf3; }
.dep-cab { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; }
.dep-total { font-size: 18px; white-space: nowrap; }
.dep-det summary { cursor: pointer; color: var(--verde-osc); font-size: 14px; margin: 6px 0; }
.dep-preparado .acciones { margin: 6px 0; }
.form-boleta { border-top: 1px dashed var(--borde); margin-top: 8px; padding-top: 6px; }
.form-boleta h3 { margin: 4px 0 6px; font-size: 15px; }
.chip-vence { display: inline-block; font-size: 12px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: #fff1e3; color: #9a5a17; }
.fila-plazo td { background: #fffaf2; }
.cierre-cab { margin: 6px 0 10px; }
.cierre-cab h2 { margin: 4px 0; }
.cierre-moneda { margin-bottom: 18px; page-break-inside: avoid; }
.cierre-tabla { width: 100%; }
.cierre-tabla .hora { width: 4.5em; color: var(--texto-suave); white-space: nowrap; }
.cierre-tabla .cierre-tit th { background: #eef3f1; text-align: left; letter-spacing: .05em; }
.cierre-tabla .fila-saldo td { background: #f6f8f9; }
.cierre-tabla .fila-saldo.final td { background: var(--verde-claro); font-size: 16px; }
.cierre-control { margin-top: 6px; }
.cierre-firmas { display: none; }
@media print {
  .cierre-firmas { display: flex; justify-content: space-around; margin-top: 50px; }
  .cierre-firmas div { border-top: 1px solid #000; padding-top: 4px; width: 35%; text-align: center; }
  #panel-cierre-dia { border: 0; box-shadow: none; padding: 0; }
  .cierre-tabla { font-size: 11px; }
}

/* Góndolas y promociones (v76) */
.contador-chico { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--rojo); color: #fff; font-size: 12px; font-weight: 800; margin-left: 4px; }
.filtros { display: flex; flex-wrap: wrap; gap: 0 12px; align-items: flex-end; }
.filtros .campo { margin-bottom: 10px; min-width: 140px; }
.filtros > .boton { margin-bottom: 10px; }
.nowrap { white-space: nowrap; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.in-cant-chica { width: 90px; max-width: 100%; }
.promo-renglon { display: inline-block; margin-top: 3px; background: #fff1d6; color: #8a4b00; border-radius: 6px; padding: 1px 7px; font-size: 13px; font-weight: 700; }
.promo-falta { color: #8a6d3b; }
.chip-promo { display: inline-block; margin-top: 4px; padding: 2px 9px; font-size: 13px; font-weight: 800; background: #fff1d6; border-color: #f2c98a; color: #8a4b00; }
.estado-promo { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #eee; color: #555; white-space: nowrap; }
.estado-verde { background: var(--verde-claro); color: var(--verde-osc); } .estado-naranja { background: #fff1e3; color: #9a5a17; } .estado-rojo { background: #fdecea; color: var(--rojo); } .estado-azul { background: var(--azul-claro); color: #1d4f7a; }
.promo-prods { max-width: 260px; }
.acciones-promo { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.acciones-promo .boton-icono { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; height: 36px; }
.dialogo-promo, .dialogo-ancho { width: min(880px, calc(100vw - 24px)); padding: 0; }
.dialogo-ancho { padding: 18px 20px; }
.dialogo-promo form { display: flex; flex-direction: column; max-height: calc(100vh - 40px); }
.promo-cab { display: flex; justify-content: space-between; align-items: center; background: var(--verde-osc); color: #fff; padding: 12px 18px; }
.promo-cab h2 { margin: 0; color: #fff; font-size: 18px; }
.promo-cab .boton-icono { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; height: 34px; }
.promo-cuerpo { padding: 14px 18px; overflow: auto; }
.promo-pie { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--borde); }
.promo-sucs { border: 1px solid var(--borde); border-radius: 10px; padding: 6px 12px; display: flex; flex-wrap: wrap; gap: 0 18px; margin: 0 0 8px; }
.promo-sucs legend { font-weight: 700; font-size: 14px; padding: 0 4px; }
.promo-checks { display: flex; flex-wrap: wrap; gap: 0 22px; margin-bottom: 8px; }
.promo-sec { border: 1px solid var(--borde); border-radius: 12px; padding: 4px 14px 10px; margin: 10px 0; }
.promo-sec h3 { margin: 10px 0 4px; font-size: 14px; text-transform: uppercase; letter-spacing: .4px; color: var(--verde-osc); }
.promo-buscar { position: relative; margin-top: 8px; }
.promo-buscar input { width: 100%; padding: 9px 12px; border: 1.5px solid var(--borde); border-radius: 10px; font-size: 15px; }
.promo-sug { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: #fff; border: 1px solid var(--borde); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); max-height: 260px; overflow: auto; }
.promo-sug button { display: block; width: 100%; text-align: left; padding: 8px 12px; border: 0; background: none; cursor: pointer; font-size: 15px; }
.promo-sug button:hover { background: var(--verde-claro); }
.gon-app { max-width: 640px; margin: 0 auto; }
.gon-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.gon-cab h1 { margin: 0; }
.gon-lector label { font-weight: 700; display: block; margin: 10px 0 4px; }
.gon-fila { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.gon-fila input, .gon-fila select { flex: 1 1 160px; min-width: 0; padding: 12px; font-size: 18px; border: 1.5px solid var(--borde); border-radius: 10px; }
.gon-ficha { background: #fff; border-radius: 14px; border: 2px solid var(--borde); padding: 14px 16px; margin: 12px 0; }
.gon-ficha-ok { border-color: var(--verde); } .gon-ficha-cambio { border-color: var(--naranja); } .gon-ficha-nueva { border-color: #3c7fc4; }
.gon-nom { font-size: 19px; font-weight: 800; line-height: 1.2; }
.gon-precio { font-size: 46px; font-weight: 900; line-height: 1.1; margin: 8px 0; letter-spacing: -1px; }
.gon-promo { background: #fff1d6; color: #8a4b00; border-radius: 8px; padding: 6px 10px; margin: 6px 0; font-size: 15px; }
.gon-est { border-radius: 8px; padding: 8px 10px; margin: 8px 0; font-size: 15px; }
.gon-est-ok { background: var(--verde-claro); color: var(--verde-osc); } .gon-est-cambio { background: #fff1e3; color: #9a5a17; } .gon-est-nueva { background: var(--azul-claro); color: #1d4f7a; }
.gon-botones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.gon-botones .boton { padding: 14px 8px; font-size: 17px; }
.gon-bien { background: var(--verde); } .gon-mal { background: var(--rojo); border-color: var(--rojo); }
.gon-cant { margin-top: 10px; } .gon-cant label { font-size: 14px; } .gon-cant input { flex: 0 0 90px; font-size: 16px; padding: 8px; }
.gon-hoy { margin: 8px 0; color: var(--texto-suave); }
.gon-lista { list-style: none; padding: 0; margin: 0; }
.gon-lista li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--borde); }
.gon-imprimir { margin-top: 10px; } .gon-imprimir select { font-size: 15px; padding: 10px; }
.gon-acciones { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; justify-content: space-between; margin-top: 12px; }
.gon-acc { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.gon-acc select { padding: 9px 10px; border: 1.5px solid var(--borde); border-radius: 10px; max-width: 100%; }
.gon-suc-pc { display: inline-flex; gap: 6px; align-items: center; }
.gon-suc-pc select { padding: 8px 10px; border: 1.5px solid var(--borde); border-radius: 10px; }
@media (max-width: 600px) { .gon-precio { font-size: 40px; } .dialogo-promo form { max-height: calc(100vh - 16px); } }

/* ---- v77: Acceso de proveedores ---- */
.portal-barra { background: #183b56; }
.portal-barra, .portal-barra .marca, .portal-barra .marca span, .portal-barra .quien { color: #fff; }
.portal-sub { font-weight: 500; opacity: .8; font-size: 14px; }
.portal-menu { position: sticky; top: 0; z-index: 5; background: var(--fondo, #f4f6f5); padding: 6px 0; overflow-x: auto; flex-wrap: nowrap; }
.portal-menu a { white-space: nowrap; }
.portal-tarjetas > * { flex: 1 1 180px; }
.portal-grafico { display: flex; align-items: flex-end; gap: 6px; height: 200px; padding: 8px 4px 0; border-bottom: 1px solid var(--borde); overflow-x: auto; }
.pg-col { flex: 1 0 34px; display: flex; flex-direction: column; align-items: center; height: 100%; }
.pg-barras { flex: 1; width: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.pg-venta, .pg-costo { display: block; width: 42%; min-height: 1px; border-radius: 3px 3px 0 0; }
.pg-venta, .ley-venta { background: var(--verde); color: var(--verde); }
.pg-costo, .ley-costo { background: #8aa4b8; color: #8aa4b8; }
.ley-venta, .ley-costo { background: none; }
.pg-mes { font-size: 12px; color: var(--texto-suave); padding: 4px 0; }
.estado-stock, .estado-sug { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; white-space: nowrap; background: #eef1f0; color: #555; }
.estado-stock-quiebre { background: var(--rojo-claro); color: #7d1f15; }
.estado-stock-bajo, .estado-stock-exceso { background: #fff1e3; color: #9a5a17; }
.estado-stock-sin_movimiento { background: #f1ecf8; color: #5b3d86; }
.estado-stock-ok { background: var(--verde-claro); color: var(--verde-osc); }
.estado-sug-nueva { background: #e3effb; color: #1b4f80; }
.estado-sug-en_revision { background: #fff1e3; color: #9a5a17; }
.estado-sug-aceptada { background: var(--verde-claro); color: var(--verde-osc); }
.estado-sug-rechazada { background: var(--rojo-claro); color: #7d1f15; }
.clave-nueva { border: 2px solid var(--verde); background: var(--verde-claro); }
.clave-grande { font-family: ui-monospace, Consolas, monospace; font-size: 22px; letter-spacing: 1px; background: #fff; padding: 2px 10px; border-radius: 6px; }
.form-cargo { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.form-cargo select, .form-cargo input { min-height: 34px; padding: 4px 8px; font-size: 14px; max-width: 160px; }
@media (max-width: 640px) { .portal-grafico { height: 150px; } .clave-grande { font-size: 18px; } }
.recupero { margin-top: 4px; font-size: 13px; }
.tarjeta-acceso { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 10px 0; }
.tarjeta-acceso dt { color: var(--texto-suave); font-size: 14px; padding-top: 3px; }
.tarjeta-acceso dd { margin: 0; overflow-wrap: anywhere; }
.tarjeta-acceso-img { display: block; width: 100%; max-width: 450px; border: 1px solid var(--borde); border-radius: 10px; margin: 8px 0; }
@media (max-width: 640px) { .tarjeta-acceso { grid-template-columns: 1fr; gap: 0 0; } .tarjeta-acceso dd { margin-bottom: 8px; } }
