body.pos .cobro-modal .modal-content { margin: 0; max-height: calc(100vh - 3.5rem); max-height: calc(100dvh - 3.5rem); }
body.pos .cobro-modal .modal-title { min-width: 0; overflow-wrap: anywhere; }
body.pos #cb-cuerpo h3 { font-size: var(--ex-fs-base); margin-bottom: var(--ex-sp-4); }
body.pos .cb-vista { display: flex; flex-direction: column; gap: var(--ex-sp-12); min-width: 0; }
body.pos .cb-sub { font-size: var(--ex-fs-md); margin: var(--ex-sp-6) 0 0; color: var(--ex-ink-2); }
body.pos #cb-cifras { margin-bottom: var(--ex-sp-12); }
body.pos #cb-cifras:empty { display: none; }
body.pos .cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: var(--ex-sp-8); }
body.pos .cifras.dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.pos .cifra { display: flex; flex-direction: column; gap: var(--ex-sp-2); min-width: 0; padding: var(--ex-sp-10) var(--ex-sp-12); border-radius: var(--ex-r-card); border: var(--ex-bd); background: var(--ex-raised); }
body.pos .cifra .imp { font-size: var(--ex-fs-xl); }
body.pos .cifra.falta { background: var(--ex-marca-soft); border-color: var(--ex-marca-line); }
body.pos .cifra.falta .imp { font-size: var(--ex-fs-4xl); }
body.pos .cifra.grande .imp { font-size: var(--ex-fs-5xl); }
body.pos .cifra.ok { background: var(--ex-ok-soft); border-color: var(--ex-ok-line); }
body.pos .cifra.ok .imp { color: var(--ex-ok); }
body.pos .cifra.aviso-c { background: var(--ex-warn-soft); border-color: var(--ex-warn-line); }
body.pos .cifra.aviso-c .imp { color: var(--ex-warn); }
body.pos .imp-fila { display: flex; align-items: flex-start; gap: var(--ex-sp-8); flex-wrap: wrap; }
body.pos .imp-fila .campo { flex: 1 1 180px; min-width: 0; }
body.pos .imp-fila .btn { flex: 0 1 auto; }
body.pos .medios-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--ex-sp-8); }
body.pos .medios-grid > .vacio { grid-column: 1 / -1; }
body.pos .medio { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--ex-sp-4); min-height: 92px; min-width: 0; padding: var(--ex-sp-8) var(--ex-sp-6); text-align: center; border-radius: var(--ex-r-card); border: var(--ex-bd); background: var(--ex-raised); color: var(--ex-ink); font-weight: 700; overflow-wrap: anywhere; }
body.pos .medio .mdi { font-size: var(--ex-fs-4xl); line-height: 1; }
body.pos .medio .m-sub { font-size: var(--ex-fs-xs); font-weight: 500; color: var(--ex-ink-2); line-height: 1.15; }
body.pos .pagos { list-style: none; padding: 0; margin: var(--ex-sp-4) 0 0; display: grid; gap: var(--ex-sp-6); }
body.pos .pagos li { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ex-sp-10); padding: var(--ex-sp-8) var(--ex-sp-12); border-radius: var(--ex-r-md); background: var(--ex-raised); border: var(--ex-bd-soft); }
body.pos .pg-med { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
body.pos .atajos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr)); gap: var(--ex-sp-8); }
body.pos .fila-btns { display: flex; flex-wrap: wrap; gap: var(--ex-sp-10); }
body.pos .fila-btns .btn { flex: 1 1 170px; }
body.pos .p-qr { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--ex-sp-14); align-items: center; }
body.pos .qr-caja { width: min(100%, 360px, max(240px, calc(100dvh - 20rem))); aspect-ratio: 1 / 1; margin: 0 auto; padding: 0; border-radius: var(--ex-r-btn); background: #fff; overflow: hidden; }
body.pos .qr-caja svg { display: block; width: 100%; height: 100%; stroke: none; stroke-width: 0; }
body.pos .espera-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ex-sp-8); }
body.pos .espera-nom { display: inline-flex; align-items: center; gap: var(--ex-sp-8); min-width: 0; }
body.pos .espera-nom .m-logo { width: 28px; height: 28px; object-fit: contain; flex: none; }
body.pos .demo-tag { display: inline-block; flex: none; padding: 1px var(--ex-sp-6); border-radius: 6px; background: #f5c518; color: #1f1f1f; font-size: var(--ex-fs-2xs); font-weight: 700; line-height: 1.3; letter-spacing: .02em; }
body.pos :is(.medio, .medio-p) .demo-tag { position: absolute; top: 6px; right: 6px; }
body.pos .medio { position: relative; }
body.pos .medio-p .m-sub { max-width: 100%; font-size: var(--ex-fs-xs); font-weight: 500; line-height: 1.15; color: var(--ex-ink-2); overflow-wrap: anywhere; }
body.pos .p-info-col { display: flex; flex-direction: column; gap: var(--ex-sp-12); min-width: 0; }
body.pos .espera { display: flex; align-items: center; gap: var(--ex-sp-10); color: var(--ex-ink-2); }
body.pos .espera.mal { color: var(--ex-warn); }
body.pos .spin { width: 18px; height: 18px; border-radius: 50%; border: 3px solid var(--ex-line); border-top-color: var(--ex-marca); animation: pos-gira .9s linear infinite; flex: none; }
body.pos .fin { display: flex; flex-direction: column; align-items: center; gap: var(--ex-sp-10); text-align: center; padding: var(--ex-sp-6) 0; }
body.pos .fin-ok { width: 72px; height: 72px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ex-ok-soft); border: 2px solid var(--ex-ok-line); color: var(--ex-ok); font-size: var(--ex-fs-6xl); }
body.pos .fin-total { font-size: var(--ex-fs-6xl); }
body.pos .fin .pagos, body.pos .fin .cifra { width: min(100%, 420px); text-align: left; }
@media (max-width: 699px) {
  body.pos .modal-dialog.cobro-modal { max-width: none; width: auto; height: 100%; min-height: 100%; margin: 0; padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px); padding-block: env(safe-area-inset-top, 0px) env(safe-area-inset-bottom, 0px); }
  body.pos .cobro-modal .modal-content { max-width: none; height: 100%; max-height: none; border-radius: 0 !important; }
  body.pos .fila-btns .btn { flex: 1 1 100%; }
  body.pos .medios-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.pos .cifras { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); }
  body.pos .caja-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.pos .cifra .imp { font-size: var(--ex-fs-base); }
  body.pos .cifra.falta .imp { font-size: var(--ex-fs-2xl); }
  body.pos .imp-fila .campo { flex: 1 1 100%; }
  body.pos .imp-fila .btn { flex: 1 1 0; }
}
body.pos #vista-caja { display: flex; flex-direction: column; gap: var(--ex-sp-14); min-width: 0; }
body.pos .caja-cifras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ex-sp-8); }
body.pos .caja-cifras .cifra { padding: var(--ex-sp-8) var(--ex-sp-10); }
body.pos .caja-cifras .cifra .imp { font-size: var(--ex-fs-base); }
body.pos .caja-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: var(--ex-sp-14); align-items: start; }
body.pos .caja-bloque { display: flex; flex-direction: column; gap: var(--ex-sp-10); min-width: 0; padding: var(--ex-sp-14); border-radius: var(--ex-r-card); border: var(--ex-bd); background: var(--ex-surface); }
body.pos .caja-bloque h3 { font-size: var(--ex-fs-base); margin: 0; }
body.pos .caja-bloque .esperado { display: flex; flex-direction: column; gap: var(--ex-sp-2); margin-top: var(--ex-sp-4); padding: var(--ex-sp-12); border-radius: var(--ex-r-md); background: var(--ex-marca-soft); border: 1px solid var(--ex-marca-line); }
body.pos .caja-bloque .esperado .imp { font-size: var(--ex-fs-4xl); }
body.pos .caja-bloque .esperado small { color: var(--ex-ink-2); overflow-wrap: anywhere; }
body.pos .caja-bloque .pagos li { align-items: center; }
body.pos .caja-bloque .pagos li .btn { flex: none; }
body.pos #fin-pagos, body.pos #fin-vuelto { width: min(100%, 420px); }
body.pos .lector-visor { position: relative; width: 100%; aspect-ratio: 4 / 3; max-height: 46vh; border-radius: var(--ex-r-card); overflow: hidden; background: #000; border: var(--ex-bd); }
body.pos .lector-visor video { width: 100%; height: 100%; object-fit: cover; display: block; }
body.pos .lector-visor .scan-region-highlight-svg { stroke: var(--ex-marca-hi) !important; }
body.pos .lector-visor .scan-region-highlight { border-radius: var(--ex-r-md); }
body.pos #caja-acciones .btn { width: 100%; white-space: nowrap; }
body.pos .caja-bloque .ncgdrawtable { width: 100%; }
@media (max-width: 767px) { body.pos .caja-cols { grid-template-columns: minmax(0, 1fr); } }
body.pos #cb-medios.medios-pago-grilla { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: var(--ex-sp-8); }
body.pos #cb-medios .medio-p { aspect-ratio: auto; min-height: 96px; padding: var(--ex-sp-14) var(--ex-sp-4) var(--ex-sp-8); gap: var(--ex-sp-4); }
body.pos #cb-medios .medio-p .mdi { font-size: var(--ex-fs-4xl); }
body.pos #cb-medios .medio-p .m-logo { width: 32px; height: 32px; }
body.pos #cb-medios .medio-p .m-nom { font-size: var(--ex-fs-md); }
body.pos .medio-p[aria-pressed="true"] { border-color: var(--ex-marca); background: var(--ex-marca-soft); box-shadow: var(--ex-sel-aro); }
body.pos #cb-formas .medio { border-radius: var(--ex-r-btn); min-height: 110px; padding-top: var(--ex-sp-14); }
body.pos #cb-formas .medio .m-sub { max-width: 100%; }
body.pos #cb-cupon-alias:empty { display: none; }
body.pos #cb-cupon-alias { margin-bottom: var(--ex-sp-8); }
body.pos #cb-cupon-alias .imp { white-space: normal; overflow-wrap: anywhere; }
