/* Paquetes / combos y promociones — POS-SAAS-0E.1
   Distintivos discretos (texto + icono, nunca solo color), configurador de
   paquete, desglose en carritos, comprobante y Cocina. Pares de contraste ya
   verificados: texto oscuro sobre primario suave; primario ink / petróleo sobre claro. */

/* ── Distintivos en tarjetas ── */
.promo-badge {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px;
  background: var(--c-primary-soft); color: var(--c-ink); font-size: var(--fs-xs); font-weight: 800; letter-spacing: .04em;
}
.promo-badge .icon { width: 14px; height: 14px; color: var(--c-primary-ink); }
.product { position: relative; }
/* La fila de distintivos no debe tomar el espacio flexible del nombre. */
.product:has(.product__badges) { grid-template-rows: auto auto 1fr auto; }
.product__badges { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px; }
.product__badges .badge, .wprod__badges .badge, .store-item__badges .badge { min-height: 22px; font-size: var(--fs-xs); padding: 2px 8px; }
.product__badges .badge .icon, .wprod__badges .badge .icon, .store-item__badges .badge .icon { width: 14px; height: 14px; }
.wprod__badges, .store-item__badges { display: flex; flex-wrap: wrap; gap: 4px; margin: 2px 0; }
.store-item__desc { font-size: var(--fs-sm); color: var(--c-ink-2); }
.store-item__save { font-size: var(--fs-sm); font-weight: 700; color: var(--c-petrol); }
.store-item__promo { font-size: var(--fs-sm); font-weight: 700; color: var(--c-primary-ink); }

/* ── Líneas: desglose del combo y promoción ── */
.line__components { display: block; }
.line__promo {
  display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-sm); font-weight: 700; color: var(--c-primary-ink);
}
.line__promo .icon { width: 14px; height: 14px; }
.totals__row--promo { color: var(--c-primary-ink); font-weight: 700; }
.totals__promo { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.totals__promo .icon { width: 16px; height: 16px; flex: none; }
.rc__row--promo { font-weight: 700; }

/* ── Configurador de paquete ── */
.bundle-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); margin-bottom: var(--s-3); }
.bundle-save { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; color: var(--c-petrol); }
.bundle-save .icon { width: 16px; height: 16px; }
.bundle-form__body { display: grid; gap: var(--s-4); }
.bundle-sec { display: grid; gap: var(--s-2); }
.bundle-sec__title { font-size: var(--fs-md); font-weight: 800; }
.bundle-fixed { list-style: none; display: grid; gap: var(--s-2); padding: 0; margin: 0; }
.bundle-fixed__item { display: grid; gap: var(--s-2); padding: var(--s-3); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); }
.bundle-fixed__name { display: flex; align-items: center; gap: 6px; font-weight: 700; }
.bundle-fixed__name .icon { width: 16px; height: 16px; color: var(--c-petrol); }
.bundle-mods { display: grid; gap: var(--s-2); }
.mod-group--compact .mod-group__legend { font-size: var(--fs-sm); }
.bundle-counts { display: grid; gap: var(--s-2); }
.bundle-count {
  display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: var(--s-3);
  min-height: var(--touch, 48px); padding: var(--s-2) var(--s-3); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface);
}
.bundle-count.is-disabled { opacity: .72; }
.stepper--sm .stepper__btn { min-width: 44px; min-height: 44px; }

/* ── Cocina: combo desglosado ── */
.kitem--bundle .kitem__name { letter-spacing: .03em; }
.kitem__parts { list-style: none; display: grid; gap: 6px; padding: 0 0 0 var(--s-3); margin: 0; border-left: 3px solid var(--c-line-strong); }
.kpart { display: grid; gap: 4px; }
.kpart__name { font-size: 17px; font-weight: 700; }

/* ── Administración: paquetes y promociones ── */
.bundle-editor__rows { display: grid; gap: var(--s-2); }
.bundle-editor__row { display: grid; grid-template-columns: minmax(0, 1fr) 96px auto; gap: var(--s-2); align-items: end; }
.bundle-editor__group { display: grid; gap: var(--s-3); padding: var(--s-3); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-bg); }
.bundle-editor__group-head { display: grid; grid-template-columns: minmax(0, 1fr) 96px 96px auto; gap: var(--s-2); align-items: end; }
.bundle-editor__opt { display: grid; grid-template-columns: minmax(0, 1fr) 120px auto; gap: var(--s-2); align-items: end; }
.bundle-editor__sum { display: flex; flex-wrap: wrap; gap: var(--s-3); font-size: var(--fs-sm); color: var(--c-ink-2); }
.bundle-editor__sum strong { color: var(--c-ink); }
.promo-form__targets { display: grid; gap: var(--s-2); max-height: 260px; overflow: auto; padding: var(--s-2); border: 1px solid var(--c-line); border-radius: var(--r-md); }
.promo-form__targets fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 4px; }
.promo-form__targets legend { font-size: var(--fs-sm); font-weight: 800; color: var(--c-ink-2); margin-bottom: 4px; }
.promo-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); }
.promo-form__days { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.promo-form__days .mod-option { min-height: 44px; padding: 0 var(--s-3); }
.promo-status { white-space: nowrap; }

@media (max-width: 640px) {
  .bundle-editor__row, .bundle-editor__group-head, .bundle-editor__opt, .promo-form__row { grid-template-columns: 1fr; }
}

/* ── Reportes · Ventas con descuento y promoción (0E.1) ── */
.rep-table .col-folio { white-space: nowrap; }
.rep-table td.col-promotion { white-space: normal; overflow-wrap: anywhere; min-width: 7rem; }
.rep-table td.col-at { min-width: 8.5rem; }
