body.pos {
  color-scheme: dark;
  --ex-ground: #0E0B14;
  --ex-surface: #16111F;
  --ex-raised: #1E1730;
  --ex-line: #2C2340;
  --ex-line-soft: #221B33;
  --ex-ink: #EFEAF7;
  --ex-ink-2: #B9AFD0;
  --ex-ink-3: #7E7396;
  --ex-marca: #8B4DFF;
  --ex-marca-hi: #A97CFF;
  --ex-marca-soft: rgba(139, 77, 255, .14);
  --ex-marca-line: rgba(139, 77, 255, .40);
  --ex-on-marca: #FFFFFF;
  --ex-ok: #3DD68C;
  --ex-warn: #F2B035;
  --ex-danger: #F4525E;
  --ex-info: #4CC2F1;
  --ex-scrim: rgba(7, 5, 12, .74);
  --ex-sombra: rgba(0, 0, 0, .5);
}

@media (prefers-color-scheme: light) {
  body.pos:not([data-theme="dark"]) {
    color-scheme: light;
    --ex-ground: #F5F3F9;
    --ex-surface: #FFFFFF;
    --ex-raised: #EEEAF5;
    --ex-line: #D9D2E6;
    --ex-line-soft: #E7E2EF;
    --ex-ink: #17121F;
    --ex-ink-2: #4B4360;
    --ex-ink-3: #756B8C;
    --ex-marca-hi: color-mix(in srgb, var(--ex-marca) 78%, #000);
    --ex-ok: #178A55;
    --ex-warn: #A86A12;
    --ex-danger: #C7303E;
    --ex-info: #1479A8;
    --ex-scrim: rgba(23, 18, 31, .46);
    --ex-sombra: rgba(23, 18, 31, .22);
  }
}
body.pos[data-theme="light"], body.pos:has(#vista-venta[data-tema="Claro"]), body.pos .nav-desplegable {
  color-scheme: light;
  --ex-ground: #F5F3F9;
  --ex-surface: #FFFFFF;
  --ex-raised: #EEEAF5;
  --ex-line: #D9D2E6;
  --ex-line-soft: #E7E2EF;
  --ex-ink: #17121F;
  --ex-ink-2: #4B4360;
  --ex-ink-3: #756B8C;
  --ex-marca-hi: color-mix(in srgb, var(--ex-marca) 78%, #000);
  --ex-ok: #178A55;
  --ex-warn: #A86A12;
  --ex-danger: #C7303E;
  --ex-info: #1479A8;
  --ex-scrim: rgba(23, 18, 31, .46);
  --ex-sombra: rgba(23, 18, 31, .22);
}

body.pos {
  --ex-ok-soft: color-mix(in srgb, var(--ex-ok) 14%, transparent);
  --ex-ok-line: color-mix(in srgb, var(--ex-ok) 40%, transparent);
  --ex-warn-soft: color-mix(in srgb, var(--ex-warn) 14%, transparent);
  --ex-warn-line: color-mix(in srgb, var(--ex-warn) 40%, transparent);
  --ex-danger-soft: color-mix(in srgb, var(--ex-danger) 14%, transparent);
  --ex-danger-line: color-mix(in srgb, var(--ex-danger) 42%, transparent);
  --ex-info-soft: color-mix(in srgb, var(--ex-info) 14%, transparent);
  --ex-info-line: color-mix(in srgb, var(--ex-info) 40%, transparent);

  --ex-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --ex-mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;

  --ex-r-sm: 6px;
  --ex-r-btn: 8px;
  --ex-r-md: 12px;
  --ex-r-card: 16px;
  --ex-r-input: 22px;
  --ex-r-hoja: 22px;
  --ex-r-chip: 999px;

  --tap: 56px;
  --btn-h: 44px;
  --ex-h-lg: 56px;
  --ex-h-item: 48px;

  --ex-fs-2xs: .62rem;
  --ex-fs-xs: .72rem;
  --ex-fs-sm: .8rem;
  --ex-fs-md: .9rem;
  --ex-fs-base: 1rem;
  --ex-fs-lg: 1.1rem;
  --ex-fs-xl: 1.2rem;
  --ex-fs-2xl: 1.4rem;
  --ex-fs-3xl: 1.6rem;
  --ex-fs-4xl: 1.8rem;
  --ex-fs-5xl: 2rem;
  --ex-fs-6xl: 2.4rem;
  --ex-fs-fw: .8125rem;

  --ex-sp-2: 2px;
  --ex-sp-4: 4px;
  --ex-sp-6: 6px;
  --ex-sp-8: 8px;
  --ex-sp-10: 10px;
  --ex-sp-12: 12px;
  --ex-sp-14: 14px;
  --ex-sp-16: 16px;
  --ex-card-py: 14px;
  --ex-card-px: 16px;
  --ex-safe-l: max(16px, env(safe-area-inset-left, 0px));
  --ex-safe-r: max(16px, env(safe-area-inset-right, 0px));

  --ex-bd: 1px solid var(--ex-line);
  --ex-bd-soft: 1px solid var(--ex-line-soft);
  --ex-sh-flotante: 0 16px 40px var(--ex-sombra);
  --ex-sel-aro: inset 0 0 0 2px var(--ex-marca);
  --ex-sel-lado: inset 3px 0 0 var(--ex-marca);

  --barra-fondo: #2A3042;
  --barra-alto: 56px;
  --barra-ink: #FFFFFF;
  --barra-ink-2: rgba(255, 255, 255, .72);
  --barra-hover: rgba(255, 255, 255, .08);
  --barra-activa: rgba(255, 255, 255, .14);

  --bs-body-bg: var(--ex-ground);
  --bs-body-color: var(--ex-ink);
  --bs-border-color: var(--ex-line);
  --bs-primary: var(--ex-marca);
  --bs-primary-rgb: 139, 77, 255;
  --tk-marca: var(--ex-marca);
  --tk-marca-hi: var(--ex-marca-hi);
}
@media (max-width: 699px) {
  body.pos { --tap: 48px; }
}

html:has(body.pos), body.pos { height: 100%; margin: 0; }
body.pos {
  background: var(--ex-ground);
  color: var(--ex-ink);
  font-family: var(--ex-sans);
  font-size: var(--ex-fs-base);
  line-height: 1.3;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}
body.pos *, body.pos *::before, body.pos *::after { box-sizing: border-box; }
body.pos [hidden] { display: none !important; }
body.pos h1, body.pos h2, body.pos h3, body.pos p, body.pos ul { margin: 0; color: inherit; }
body.pos button { cursor: pointer; touch-action: manipulation; }
body.pos button:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)) { font: inherit; }
body.pos button:disabled { cursor: not-allowed; }
body.pos svg { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
body.pos svg.ex-qr-svg { stroke: none; stroke-width: 0; }
body.pos :focus-visible { outline: 3px solid var(--ex-marca-hi); outline-offset: 2px; }
body.pos .imp { font-family: var(--ex-mono); font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
body.pos .etq { font-family: var(--ex-mono); font-size: var(--ex-fs-xs); letter-spacing: .14em; text-transform: uppercase; color: var(--ex-ink-3); }
body.pos small:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)) { color: var(--ex-ink-2); font-size: var(--ex-fs-sm); }
body.pos .vacio { color: var(--ex-ink-3); text-align: center; padding: 18px var(--ex-sp-8); }

body.pos .btn:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *), :not([class*="btn-"])) {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--ex-sp-8);
  min-height: var(--btn-h); max-height: var(--btn-h); min-width: 0; padding: 0 var(--ex-sp-16); font-size: var(--ex-fs-md); line-height: 1.15;
  border-radius: var(--ex-r-btn); border: var(--ex-bd);
  background: var(--ex-raised); color: var(--ex-ink); font-weight: 700; text-align: center;
  transition: background .15s, border-color .15s, transform .1s;
}
body.pos .btn:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *), :not([class*="btn-"])):hover:not(:disabled) { border-color: var(--ex-marca-line); background: var(--ex-marca-soft); color: var(--ex-ink); }
body.pos .btn:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *), :not([class*="btn-"])):active:not(:disabled) { transform: scale(.98); }
body.pos .btn:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *), :not([class*="btn-"])):disabled { background: var(--ex-surface); color: var(--ex-ink-3); border-color: var(--ex-line-soft); }
body.pos .btn.primario { background: var(--ex-marca); border-color: var(--ex-marca); color: var(--ex-on-marca); }
body.pos .btn.primario:hover:not(:disabled) { background: var(--ex-marca-hi); border-color: var(--ex-marca-hi); color: var(--ex-on-marca); }
body.pos .btn.primario:disabled { background: var(--ex-raised); color: var(--ex-ink-3); border-color: var(--ex-line); }
body.pos .btn.op { background: var(--ex-marca-soft); border-color: var(--ex-marca-line); color: var(--ex-marca-hi); }
body.pos .btn.peligro { --tono: var(--ex-danger); --tono-soft: var(--ex-danger-soft); --tono-line: var(--ex-danger-line); }
body.pos .btn.info { --tono: var(--ex-info); --tono-soft: var(--ex-info-soft); --tono-line: var(--ex-info-line); }
body.pos .btn.exito { --tono: var(--ex-ok); --tono-soft: var(--ex-ok-soft); --tono-line: var(--ex-ok-line); }
body.pos .btn:is(.peligro, .info, .exito) { background: var(--tono-soft); border-color: var(--tono-line); color: var(--tono); }
body.pos .btn:is(.peligro, .info, .exito):hover:not(:disabled) { background: var(--tono-soft); border-color: var(--tono); color: var(--tono); }
body.pos .btn:is(.peligro, .info, .exito):disabled { opacity: .55; }

body.pos .icono {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--tap); height: var(--tap); border-radius: 50%;
  border: var(--ex-bd); background: var(--ex-raised); color: var(--ex-ink);
  font-weight: 800; font-size: var(--ex-fs-xl); padding: 0;
}
body.pos .icono:hover { border-color: var(--ex-marca-line); background: var(--ex-marca-soft); }

body.pos :is(.medio-p, .medio, .acceso):hover:not(:disabled) { border-color: var(--ex-marca-line); background: var(--ex-marca-soft); color: var(--ex-ink); }
body.pos :is(.medio-p, .medio, .acceso):active:not(:disabled) { transform: scale(.98); }
body.pos :is(.medio-p, .medio, .acceso):is(:disabled, .apagado) { opacity: .55; background: var(--ex-surface); }
body.pos .pos-tarjeta:hover:not(:disabled) { background: var(--ex-marca-soft); }
body.pos .pos-tarjeta[aria-pressed="true"] { border-color: var(--ex-marca); background: var(--ex-marca-soft); box-shadow: var(--ex-sel-aro); }
body.pos :is(.prod, .pos-tarjeta):active:not(:disabled) { transform: scale(.98); }

body.pos .tecla-inline, body.pos .medio-p .tecla-m {
  font-family: var(--ex-mono); font-weight: 700; color: var(--ex-marca-hi); border: 1px solid var(--ex-marca-line); background: var(--ex-marca-soft);
  border-radius: var(--ex-r-sm); line-height: 1;
}

body.pos .pildora {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--ex-mono); font-size: var(--ex-fs-xs); letter-spacing: .09em; text-transform: uppercase; font-weight: 600;
  padding: var(--ex-sp-6) 11px; border-radius: var(--ex-r-chip); border: 1px solid; white-space: nowrap;
}
body.pos .pildora i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
body.pos .p-ok { color: var(--ex-ok); border-color: var(--ex-ok-line); background: var(--ex-ok-soft); }
body.pos .p-warn { color: var(--ex-warn); border-color: var(--ex-warn-line); background: var(--ex-warn-soft); }
body.pos .p-info { color: var(--ex-info); border-color: var(--ex-info-line); background: var(--ex-info-soft); }

body.pos .card:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *), .pos-detalle) { min-width: 0; padding: var(--ex-card-py) var(--ex-card-px); border-radius: var(--ex-r-card); border: var(--ex-bd); background: var(--ex-surface); color: var(--ex-ink); }

body.pos .form-control:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)), body.pos .form-select:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)) { min-height: var(--tap); border-radius: var(--ex-r-input); }
body.pos .form-control, body.pos .form-select {
  background-color: var(--ex-surface); color: var(--ex-ink); border: var(--ex-bd);
}
body.pos .form-control:focus, body.pos .form-select:focus { border-color: var(--ex-marca-line); box-shadow: 0 0 0 .2rem var(--ex-marca-soft); background-color: var(--ex-surface); color: var(--ex-ink); }
body.pos .form-control::placeholder { color: var(--ex-ink-3); }
body.pos .form-floating > .form-control::placeholder { color: transparent; }
body.pos .form-control:disabled, body.pos .form-control[readonly] { background-color: var(--ex-raised); color: var(--ex-ink-2); }
body.pos .form-floating > label, body.pos label { color: var(--ex-ink-2); }
body.pos .form-floating > .form-control:focus ~ label,
body.pos .form-floating > .form-control:not(:placeholder-shown) ~ label { color: var(--ex-ink-3); }
body.pos .form-floating > .form-control:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)) { min-height: calc(3.5rem + 2px); }
body.pos .form-floating > label::after { background: transparent !important; }
body.pos .parsley-errors-list { list-style: none; margin: var(--ex-sp-4) 0 0; padding: 0; color: var(--ex-danger); font-size: var(--ex-fs-sm); }
body.pos .form-control.is-invalid, body.pos .form-control.parsley-error { border-color: var(--ex-danger); }
body.pos .text-danger { color: var(--ex-danger) !important; }
body.pos .campo-invalido { outline: 2px solid var(--ex-danger); outline-offset: 4px; border-radius: var(--ex-r-md); }

body.pos .dropdown-menu:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)) { background: var(--ex-surface); border: var(--ex-bd); border-radius: var(--ex-r-card); color: var(--ex-ink); box-shadow: var(--ex-sh-flotante); padding: var(--ex-sp-6); min-width: 220px; }
body.pos .dropdown-item:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)) { color: var(--ex-ink); border-radius: var(--ex-r-md); min-height: var(--ex-h-item); display: flex; align-items: center; }
body.pos .dropdown-item:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)):hover, body.pos .dropdown-item:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)):focus { background: var(--ex-marca-soft); color: var(--ex-ink); }
body.pos .dropdown-item:where(:not(:is(.pos-admin, .list-wrapper > .card-header) *)).active { background: var(--ex-marca-soft); color: var(--ex-marca-hi); }

body.pos :is(.pos-admin, .list-wrapper > .card-header) { font-family: var(--bs-body-font-family); font-size: var(--ex-fs-fw); font-weight: 400; line-height: 1.5; color: var(--ex-ink); }
body.pos > .select2-container, body.pos > .datepicker, body.pos > .tooltip { font-family: var(--bs-body-font-family); font-size: var(--ex-fs-fw); line-height: 1.5; }
body.pos :is(.pos-admin .bg-white, .list-wrapper > .card-header, .list-wrapper > .card-header .bg-white, .list-wrapper > .card-header .btn-white) { background-color: var(--ex-surface) !important; }
body.pos :is(.pos-admin, .list-wrapper > .card-header) .text-dark { color: var(--ex-ink) !important; }
body.pos :is(.pos-admin, .list-wrapper > .card-header) .dropdown-menu { background: var(--ex-surface); border-color: var(--ex-line); color: var(--ex-ink); }
body.pos :is(.pos-admin, .list-wrapper > .card-header) .dropdown-item { color: var(--ex-ink); }
body.pos :is(.pos-admin, .list-wrapper > .card-header) .dropdown-item:hover, body.pos :is(.pos-admin, .list-wrapper > .card-header) .dropdown-item:focus { background: var(--ex-marca-soft); color: var(--ex-ink); }

body.pos :is(.cobro-modal, .medios-pago-modal, .teclado-config-modal) .modal-content { background: var(--ex-surface); color: var(--ex-ink); border: var(--ex-bd); }
body.pos :is(.cobro-modal, .medios-pago-modal, .teclado-config-modal) .modal-header { border-bottom: var(--ex-bd-soft); }
body.pos :is(.cobro-modal, .medios-pago-modal, .teclado-config-modal) .modal-title { color: var(--ex-ink); }
body.pos[data-theme="dark"] :is(.cobro-modal, .medios-pago-modal, .teclado-config-modal) .btn-close { filter: invert(1); }

body.pos .swal2-popup { background: var(--ex-surface); color: var(--ex-ink); border: var(--ex-bd); border-radius: var(--ex-r-hoja); }
body.pos .swal2-title, body.pos .swal2-html-container { color: var(--ex-ink); }
body.pos .swal2-actions .swal2-styled { min-height: var(--tap); border-radius: var(--ex-r-input); font-weight: 700; }
body.pos .swal2-actions .swal2-confirm { background: var(--ex-marca) !important; color: var(--ex-on-marca); }
body.pos .swal2-actions .swal2-cancel { background: var(--ex-raised) !important; color: var(--ex-ink); border: var(--ex-bd); }

body.pos #app {
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  gap: var(--ex-sp-8);
  min-width: 0;
  padding: 0 0 calc(var(--ex-sp-6) + env(safe-area-inset-bottom, 0px));
}
body.pos #principal { flex: 1; min-height: 0; min-width: 0; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; padding-left: var(--ex-safe-l); padding-right: var(--ex-safe-r); }
body.pos #barra { display: flex; flex-direction: column; gap: var(--ex-sp-8); flex: none; min-width: 0; }
body.pos .id-linea { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 0 var(--ex-sp-14); min-width: 0; }
body.pos .marca { color: var(--ex-ink); text-decoration: none; display: inline-flex; align-items: center; gap: var(--ex-sp-8); font-weight: 800; letter-spacing: .16em; font-size: var(--ex-fs-xl); }
body.pos .marca-logo { height: 32px; max-width: 120px; object-fit: contain; border-radius: var(--ex-r-sm); }
body.pos .marca-comercio { font-size: var(--ex-fs-lg); letter-spacing: .04em; overflow-wrap: anywhere; }
body.pos .meta { display: inline-flex; align-items: center; gap: var(--ex-sp-6); color: var(--ex-ink-2); font-size: var(--ex-fs-md); min-width: 0; }
body.pos .espaciador { flex: 1 1 0; min-width: 0; }
body.pos #pie { flex: none; padding-left: var(--ex-safe-l); padding-right: var(--ex-safe-r); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ex-sp-2) var(--ex-sp-12); color: var(--ex-ink-3); font-size: var(--ex-fs-xs); }

body.pos .pos-logo { height: 30px; width: auto; display: block; }
body.pos .pos-logo-claro { display: none; }
body.pos[data-theme="light"] .pos-logo-claro { display: block; }
body.pos[data-theme="light"] .pos-logo-oscuro { display: none; }
@media (prefers-color-scheme: light) {
  body.pos:not([data-theme="dark"]) .pos-logo-claro { display: block; }
  body.pos:not([data-theme="dark"]) .pos-logo-oscuro { display: none; }
}
body.pos .pos-logo-centro { display: flex; justify-content: center; padding: var(--ex-sp-8) 0 var(--ex-sp-4); }
body.pos .pos-logo-centro .pos-logo { height: 44px; }

body.pos .pos-pasos { width: 100%; max-width: 1040px; margin: 0 auto; display: flex; flex-direction: column; gap: var(--ex-sp-16); padding-bottom: var(--ex-sp-12); }
body.pos .pos-paso { display: flex; flex-direction: column; gap: var(--ex-sp-10); min-width: 0; }
body.pos .pos-paso-cab { display: flex; align-items: center; gap: var(--ex-sp-10); min-width: 0; }
body.pos .pos-paso-cab h2 { font-size: var(--ex-fs-lg); min-width: 0; overflow-wrap: anywhere; }
body.pos .pos-paso-n {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--ex-marca); color: var(--ex-on-marca); font-family: var(--ex-mono); font-weight: 800;
}
body.pos .pos-paso.hecho .pos-paso-n { background: var(--ex-ok); }
body.pos .pos-paso.centrado .pos-paso-cab { justify-content: center; text-align: center; }
body.pos .pos-tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: var(--ex-sp-12); }
body.pos .pos-tarjetas.centradas { display: flex; flex-wrap: wrap; justify-content: center; }
body.pos .pos-tarjetas.centradas .pos-tarjeta { flex: 0 1 230px; }
body.pos .pos-tarjeta {
  position: relative; min-width: 0; min-height: 96px; padding: var(--ex-sp-12) var(--ex-sp-14);
  display: flex; flex-direction: column; justify-content: space-between; gap: var(--ex-sp-6); text-align: left;
  border-radius: var(--ex-r-card); border: var(--ex-bd); border-left: 6px solid var(--ex-marca);
  background: var(--ex-raised); color: var(--ex-ink);
}
body.pos .pos-tarjeta[disabled] { opacity: .72; border-left-color: var(--ex-warn); }
body.pos .pos-tarjeta strong { font-size: var(--ex-fs-base); line-height: 1.15; overflow-wrap: anywhere; }
body.pos .pos-tarjeta .pos-tarjeta-pie { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ex-sp-4) var(--ex-sp-8); color: var(--ex-ink-2); font-size: var(--ex-fs-md); }
body.pos .pos-fondo { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--ex-sp-12); }
body.pos .pos-fondo .btn { flex: 1 1 240px; max-width: 420px; align-self: stretch; }
body.pos .pos-aviso { padding: var(--ex-sp-12) var(--ex-sp-14); border-radius: var(--ex-r-md); background: var(--ex-info-soft); border: 1px solid var(--ex-info-line); color: var(--ex-ink); }
body.pos .pos-aviso.warn { background: var(--ex-warn-soft); border-color: var(--ex-warn-line); }
body.pos .pos-cargando { display: inline-block; width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--ex-line); border-top-color: var(--ex-marca); animation: pos-gira .8s linear infinite; }
@keyframes pos-gira { to { transform: rotate(360deg); } }
body.pos .pop { animation: pos-pop .24s ease-out; }
@keyframes pos-pop { 0% { transform: scale(1); } 40% { transform: scale(.92); } 100% { transform: scale(1); } }

body.pos .pos-ingreso { align-items: stretch; }
body.pos .pos-ingreso-cab { display: flex; flex-direction: column; align-items: center; gap: var(--ex-sp-6); text-align: center; padding: var(--ex-sp-8) 0; }
body.pos .pos-ingreso-cab img { max-height: 96px; max-width: min(100%, 260px); object-fit: contain; }
body.pos .pos-ingreso-cab h1 { font-size: var(--ex-fs-3xl); margin: 0; overflow-wrap: anywhere; }
body.pos .pos-ingreso-cab p { margin: 0; color: var(--ex-ink-2); }
body.pos .pos-ingreso-enlace { text-align: center; }
body.pos .pos-ingreso-enlace a { color: var(--ex-marca-hi); }
body.pos .pos-ingreso-banner { width: 100%; max-height: 160px; object-fit: cover; border-radius: var(--ex-r-card); }

body.pos .pos-pin { display: flex; flex-direction: column; align-items: center; gap: var(--ex-sp-14); width: 100%; max-width: 360px; margin: 0 auto; }
body.pos .pos-pin-puntos { display: flex; gap: var(--ex-sp-12); min-height: 22px; }
body.pos .pos-pin-puntos i { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--ex-line); background: transparent; }
body.pos .pos-pin-puntos i.lleno { background: var(--ex-marca); border-color: var(--ex-marca); }
body.pos .pos-pin-teclas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ex-sp-10); width: 100%; }
body.pos .pos-pin-teclas .btn { padding: 0; }

body.pos .cajeros-tabla { display: flex; flex-direction: column; overflow-x: auto; }
body.pos .cajeros-fila { display: grid; grid-template-columns: minmax(140px, 2fr) repeat(5, minmax(86px, 1fr)); gap: var(--ex-sp-10); align-items: baseline; padding: var(--ex-sp-10) 0; border-bottom: var(--ex-bd-soft); min-width: 640px; }
body.pos .cajeros-fila:last-child { border-bottom: 0; }
body.pos .cajeros-fila.cab { padding-top: 0; }
body.pos .cajeros-fila .imp { text-align: right; }
body.pos .cajero-recibis { display: flex; flex-direction: column; gap: var(--ex-sp-2); padding: var(--ex-sp-12); border-radius: var(--ex-r-md); background: var(--ex-marca-soft); border: 1px solid var(--ex-marca-line); text-align: center; }
body.pos .cajero-recibis .imp { font-size: var(--ex-fs-4xl); }
body.pos .pos-pin.pin-error .pos-pin-puntos { outline: 2px solid var(--ex-danger, #dc3545); outline-offset: 4px; border-radius: var(--ex-r-md); }
body.pos .cajero-pregunta { font-size: var(--ex-fs-base); margin: 0; text-align: center; }

@media (max-width: 699px) {
  body.pos #app { gap: var(--ex-sp-6); }
  body.pos #barra { gap: var(--ex-sp-6); }
  body.pos .id-linea { gap: 0 var(--ex-sp-6); }
  body.pos .id-linea #meta-cajero { display: none; }
  body.pos .pos-tarjetas { grid-template-columns: minmax(0, 1fr); }
  body.pos .pos-fondo .btn { max-width: none; }
  body.pos #leyenda-legal { font-size: var(--ex-fs-xs); }
}
@media (prefers-reduced-motion: reduce) {
  body.pos *, body.pos *::before, body.pos *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
