/* Cobro en efectivo (carrito y mesas) y caja por turno. Solo tokens de tokens.css; sin animaciones nuevas. */
.cash-payment { grid-column: 1 / -1; display: grid; gap: var(--space-3); min-width: 0; }
.cash-received { display: grid; gap: var(--space-2); }
.cash-received[hidden], .cash-received-row[hidden] { display: none; }
.cash-received > label { font-weight: var(--weight-semibold); }
.cash-received-row { display: flex; gap: var(--space-2); align-items: stretch; }
.cash-received-row input { flex: 1 1 auto; min-width: 0; font-size: max(16px, var(--text-lg)); font-variant-numeric: tabular-nums; }
.cash-received-row .button { flex: none; min-height: var(--touch); white-space: nowrap; }
.cash-change { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); margin: 0; min-height: var(--touch); padding: var(--space-2) var(--space-3); border-radius: var(--radius-medium); background: var(--surface-inset); color: var(--text-secondary); font-size: var(--text-sm); }
.cash-change strong { font-size: var(--text-xl); font-variant-numeric: tabular-nums; color: var(--text); }
.cash-change[data-state="ok"] { background: var(--success-soft); color: var(--text); }
.cash-change[data-state="ok"] strong { color: var(--success); }
.cash-change[data-state="short"], .cash-change[data-state="invalid"] { background: var(--danger-soft); color: var(--text); }
.cash-change[data-state="short"] strong { color: var(--danger); }

.cash-drawer { display: grid; gap: var(--space-4); }
.cash-drawer .section-head { margin: 0; }
.cash-expected { display: grid; gap: var(--space-1); padding: var(--space-4); border-radius: var(--radius-large); background: var(--accent-soft); }
.cash-expected span { color: var(--text-secondary); font-size: var(--text-sm); }
.cash-expected strong { font-size: var(--text-2xl); font-weight: var(--weight-bold); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.cash-expected small { color: var(--muted); font-size: var(--text-xs); }
.cash-lines { display: grid; gap: 0; margin: 0; }
.cash-line { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) 0; border-bottom: 1px solid var(--border); }
.cash-line:last-child { border-bottom: 0; }
.cash-line dt { display: grid; gap: 2px; min-width: 0; }
.cash-line dt small { color: var(--muted); font-size: var(--text-xs); }
.cash-line dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cash-digital { display: flex; gap: var(--space-2); align-items: flex-start; margin: 0; color: var(--text-secondary); font-size: var(--text-sm); }
.cash-digital > svg { flex: none; width: 20px; height: 20px; }
.cash-digital small { display: block; color: var(--muted); font-size: var(--text-xs); }
.cash-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); justify-content: flex-start; margin: 0; }
.cash-actions .button { min-height: var(--touch); }
.cash-actions .button.primary { margin-left: auto; }
.cash-open { display: grid; gap: var(--space-2); margin: 0; }
.cash-open .helper { margin: 0; }
.cash-open-row { display: flex; gap: var(--space-2); align-items: flex-end; flex-wrap: wrap; }
.cash-open-row label { flex: 1 1 160px; display: grid; gap: var(--space-1); }
.cash-open-row input { font-size: max(16px, var(--text-base, 1rem)); font-variant-numeric: tabular-nums; }
.cash-open-row .button { min-height: var(--touch); }
.cash-last { margin: 0; color: var(--text-secondary); font-size: var(--text-sm); display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
.cash-movements summary { cursor: pointer; min-height: var(--touch); display: flex; align-items: center; gap: var(--space-2); }
.cash-movements ul { list-style: none; margin: 0; padding: 0; display: grid; }
.cash-movements li { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) 0; border-top: 1px solid var(--border); }
.cash-movements li span { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.cash-movements li small { color: var(--muted); font-size: var(--text-xs); }
.cash-movements li strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.cash-close-result { grid-column: 1 / -1; margin: 0; min-height: 1.5em; font-weight: var(--weight-semibold); }
.cash-close-result[data-state="match"] { color: var(--success); }
.cash-close-result[data-state="short"] { color: var(--danger); }
.cash-close-result[data-state="over"] { color: var(--warning); }
/* Restaurante: la caja va arriba de las cuentas por cobrar. */
.cash-drawer + .helper { margin-top: var(--gap); }
@media (max-width: 560px) {
  .cash-actions .button { flex: 1 1 calc(50% - var(--space-2)); justify-content: center; }
  .cash-actions .button.primary { flex-basis: 100%; margin-left: 0; order: -1; }
  .cash-received-row .button { padding-inline: var(--space-3); }
}
.cash-dialog-total { grid-column: 1 / -1; margin: 0; }
.cash-dialog-total { padding: var(--space-3); border-radius: var(--radius-medium); background: var(--surface-inset); font-size: var(--text-lg); }
.cash-dialog-total strong { font-size: var(--text-xl); font-variant-numeric: tabular-nums; }
/* «Por resolver» en Ventas: pendientes de cobro y devoluciones, fuera de la tabla ancha. */
.to-resolve { display: grid; gap: var(--space-2); }
.to-resolve .subhead { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-2) 0 0; }
.to-resolve .helper { margin: 0; }
.resolve-list { list-style: none; margin: 0; padding: 0; display: grid; }
.resolve-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) 0; border-top: 1px solid var(--border); }
.resolve-row > span { display: grid; gap: 2px; min-width: 0; }
.resolve-row strong { font-variant-numeric: tabular-nums; font-size: var(--text-lg); }
.resolve-row small { color: var(--text-secondary); font-size: var(--text-xs); overflow-wrap: anywhere; }
.resolve-row .button { flex: none; min-height: var(--touch); }
.cash-closing small { display: block; }
.cash-closing .status-pill { flex: none; align-self: center; }
.cash-pending .link-button { margin-left: var(--space-1); text-decoration: underline; }
.report-money { margin-bottom: var(--space-3); }
@media (max-width: 420px) { .resolve-row { flex-wrap: wrap; } .resolve-row .button { flex: 1 1 100%; justify-content: center; } }
/* El campo de fondo inicial usa el mismo estilo que los demás campos de la app. */
.cash-open-row input { width: 100%; min-width: 0; min-height: var(--touch); padding: 0 var(--space-3); border: 0; border-radius: var(--radius-medium); background: var(--surface-inset); color: var(--text); box-shadow: inset 0 0 0 1px var(--border-strong); }
.cash-open-row label { color: var(--text-secondary); font-size: var(--text-sm); }
.cash-pending.business-feedback:not(:empty) { display: block; }
.cash-pending.business-feedback:not(:empty)::before { display: inline-block; margin-right: var(--space-2); vertical-align: middle; }
.cash-pending .link-button { white-space: nowrap; }
