/* ==========================================================================
   COMPRAS — la factura del proveedor
   Reusa la maquetación de Bodega (panel-productos + panel-carrito); acá va
   solo lo propio del formulario de factura.
   ========================================================================== */

.factura__bloque {
  padding: var(--s-3) var(--s-4);
  border-bottom: 1px solid var(--hairline);
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}
.factura__bloque:last-child { border-bottom: 0; }

.factura__titulo {
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Serie y número caben en una sola línea; en el celular se apilan. */
.factura__fila2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
@media (max-width: 480px) { .factura__fila2 { grid-template-columns: 1fr; } }

.factura__check {
  display: flex; align-items: center; gap: var(--s-2);
  font-size: var(--text-sm);
  cursor: pointer;
  /* 44px de alto: el mínimo para que se pueda tocar sin pelearse con el dedo. */
  min-height: 44px;
}
.factura__check input { width: 18px; height: 18px; accent-color: var(--brand); }

/* --------------------------------------------------------------------------
   Cada línea de la factura
   -------------------------------------------------------------------------- */
.factura__linea {
  border: 1px solid var(--hairline);
  border-radius: var(--r-md);
  padding: var(--s-3);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.factura__linea-nombre {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-2);
  font-size: var(--text-sm);
}

.factura__linea-campos {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: var(--s-2);
  align-items: end;
}
.factura__linea-campos label { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.factura__linea-campos small { font-size: var(--text-xs); color: var(--text-muted); }

.factura__linea-sub {
  font-weight: 800;
  font-size: var(--text-sm);
  white-space: nowrap;
  padding-bottom: var(--s-2);
}

.input--mini { min-height: 38px; padding: 0 var(--s-2); font-size: var(--text-sm); }

.icon-btn--mini { width: 30px; height: 30px; flex: none; }
.icon-btn--mini svg { width: 15px; height: 15px; }

/* --------------------------------------------------------------------------
   Totales del pie
   -------------------------------------------------------------------------- */
.totales { display: flex; flex-direction: column; gap: 2px; width: 100%; }
.totales__fila { display: flex; justify-content: space-between; font-size: var(--text-sm); }
.totales__fila--tenue  { color: var(--text-muted); font-size: var(--text-xs); }
.totales__fila--fuerte { font-weight: 800; font-size: var(--text-md); }

/* El insumo que ya está en la factura se marca, para no agregarlo dos veces. */
.insumo--puesto { opacity: .55; }
.chip--ok { color: var(--success); }

/* --------------------------------------------------------------------------
   Rejilla: Compras no tiene columna de filtros
   --------------------------------------------------------------------------
   .workspace reparte TRES columnas (productos · filtros · carrito). Acá solo
   hay dos paneles, así que la factura caía en la columna del medio —212px— y
   los campos no cabían: serie y número quedaban cortados y el botón de
   registrar se salía. Dos columnas, y la factura más ancha porque es un
   formulario, no una lista.
   -------------------------------------------------------------------------- */
#vistaCompras.workspace { grid-template-columns: 1fr minmax(340px, 30%); }
body[data-layout="carrito-izquierda"] #vistaCompras.workspace {
  grid-template-columns: minmax(340px, 30%) 1fr;
}
body[data-layout="carrito-izquierda"] #vistaCompras .panel-carrito   { order: 1; }
body[data-layout="carrito-izquierda"] #vistaCompras .panel-productos { order: 2; }

/* En el celular se apilan, con la factura primero: el que teclea facturas
   viene de la izquierda a la derecha, no al revés. */
@media (max-width: 900px) {
  #vistaCompras.workspace,
  body[data-layout="carrito-izquierda"] #vistaCompras.workspace {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }
}
