/* Demo de "Nueva venta" · réplica de la interfaz de Suite Comercial con datos de ejemplo */
.pos{position:relative;width:100%;overflow:hidden;border-radius:16px;isolation:isolate}
.pos-lienzo{--pr:#285CBA;--pr-osc:#17334E;--pr-suave:#E6EEFB;
  position:absolute;left:0;top:0;width:1120px;height:700px;transform-origin:0 0;display:grid;grid-template-columns:200px minmax(0,1fr) 300px;
  background:#F3F6FA;color:#1B2735;font-family:"Archivo",system-ui,sans-serif;font-size:13px;line-height:1.35;text-align:left}
.pos-lienzo[data-rubro="verduleria"]{--pr:#257348;--pr-osc:#153C2D;--pr-suave:#E3F1E9}
.pos-lienzo[data-rubro="carniceria"]{--pr:#AD3F3D;--pr-osc:#382A2B;--pr-suave:#F6E5E4}
.pos-lienzo[data-rubro="ferreteria"]{--pr:#B85214;--pr-osc:#25313B;--pr-suave:#F7E9DF}
.pos-lienzo *{box-sizing:border-box}
.pos-lienzo button{font:inherit;cursor:pointer}
.pos-producto,.pos-metodos button{color:inherit}
/* Lateral */
.pos-lateral{background:var(--pr-osc);color:#D9E2EC;padding:16px 12px;display:flex;flex-direction:column;gap:4px;transition:background-color .5s}
.pos-marca{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.pos-marca img{width:34px;height:34px;border-radius:9px}
.pos-marca b{color:#fff;font-size:14.5px}
.pos-lateral small{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(217,226,236,.55);margin:10px 6px 4px}
.pos-lateral ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.pos-lateral li{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;font-size:12.5px}
.pos-lateral li svg{width:16px;height:16px;flex:none;opacity:.85}
.pos-lateral li.activo{background:var(--pr);color:#fff;font-weight:600;transition:background-color .5s}
.pos-lateral kbd{margin-left:auto;font:600 10px/1 "Archivo",sans-serif;background:rgba(255,255,255,.16);padding:3px 5px;border-radius:5px}
.pos-usuario{margin-top:auto;display:flex;align-items:center;gap:9px;padding:8px;border-radius:10px;background:rgba(255,255,255,.07)}
.pos-avatar{width:30px;height:30px;border-radius:50%;background:var(--pr);display:grid;place-items:center;color:#fff;font-weight:700;font-size:11px}
.pos-usuario b{display:block;color:#fff;font-size:12px}
.pos-usuario i{display:block;font-style:normal;font-size:10.5px;color:rgba(217,226,236,.7)}
/* Centro */
.pos-centro{padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.pos-cabecera{display:flex;justify-content:space-between;align-items:flex-end}
.pos-cabecera small{color:#6B7A8C;font-size:10.5px;text-transform:capitalize}
.pos-cabecera h4{margin:2px 0 0;font-size:21px;font-weight:750;letter-spacing:-.01em;color:#132131}
.pos-caja{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#1E7A4C;background:#E4F4EB;padding:5px 10px;border-radius:999px}
.pos-caja i{width:7px;height:7px;border-radius:50%;background:#1FA463}
.pos-buscador{position:relative;display:flex;align-items:center;gap:10px;height:42px;padding:0 12px;border-radius:10px;background:#fff;border:1.5px solid #DCE3EC;color:#7A8899;overflow:hidden;transition:border-color .2s}
.pos-buscador svg{width:17px;height:17px;flex:none}
.pos-buscador span{flex:1;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums}
.pos-buscador em{font-style:normal;font-size:10px;font-weight:600;background:#EEF2F6;padding:3px 6px;border-radius:5px}
.pos-buscador.escaneando{border-color:var(--pr);color:#132131}
.pos-buscador.escaneando span{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:600;letter-spacing:.06em}
.pos-laser{position:absolute;left:0;right:0;top:50%;height:2px;background:#E5484D;box-shadow:0 0 10px 2px rgba(229,72,77,.55);opacity:0}
.pos-buscador.escaneando .pos-laser{animation:laser .8s ease-in-out 2}
@keyframes laser{0%,100%{opacity:0;transform:translateX(-30%)}50%{opacity:1;transform:translateX(30%)}}
.pos-lectura{position:absolute;right:50px;font-size:11px;color:#fff;background:var(--pr);padding:4px 9px;border-radius:999px;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.pos-lectura.visible{opacity:1;transform:none}
.pos-filtros{display:flex;gap:10px}
.pos-filtros span{font-size:11.5px;color:#4E5D6E;background:#fff;border:1px solid #DCE3EC;border-radius:8px;padding:6px 10px}
.pos-filtros b{color:var(--pr)}
.pos-grilla{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-content:start}
.pos-producto{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px;border-radius:12px;background:#fff;border:1.5px solid #E2E8F0;text-align:left;transition:border-color .2s,transform .2s,box-shadow .2s;min-width:0}
.pos-producto:hover{border-color:var(--pr)}
.pos-producto.presionado{transform:scale(.96);border-color:var(--pr);box-shadow:0 0 0 4px var(--pr-suave)}
.pos-producto.leido{border-color:var(--pr);box-shadow:0 0 0 4px var(--pr-suave)}
.pos-foto{width:100%;height:78px;border-radius:9px;background:#F5F7FA;display:grid;place-items:center;margin-bottom:4px}
.pos-foto img{width:62px;height:62px;object-fit:contain}
.pos-producto b{font-size:12px;font-weight:650;color:#132131;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pos-chip{font-style:normal;font-size:9.5px;font-weight:600;color:var(--pr);background:var(--pr-suave);padding:2px 6px;border-radius:5px}
.pos-producto strong{font-size:14px;color:var(--pr);font-weight:750;font-variant-numeric:tabular-nums}
.pos-producto strong small{font-size:10px;color:#6B7A8C;font-weight:500}
.pos-stock{font-size:10px;color:#7A8899}
/* Venta actual */
.pos-venta{background:#fff;border-left:1px solid #E2E8F0;padding:16px 14px 14px;display:flex;flex-direction:column;gap:10px;min-height:0}
.pos-venta header{display:flex;justify-content:space-between;align-items:center}
.pos-venta header b{font-size:16px;color:#132131}
.pos-cant{min-width:24px;height:24px;border-radius:999px;background:var(--pr);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;padding:0 7px}
.pos-cliente{font-size:11px;color:#6B7A8C;display:flex;gap:8px;align-items:center}
.pos-cliente span{flex:1;background:#F3F6FA;border:1px solid #E2E8F0;border-radius:7px;padding:5px 8px;color:#132131}
.pos-items{list-style:none;margin:0;padding:0;flex:1;overflow:hidden;display:flex;flex-direction:column;gap:6px;min-height:0}
.pos-items li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px;border-radius:9px;background:#F7F9FC}
.pos-items li.nuevo{animation:entra-item .5s cubic-bezier(.22,.8,.24,1);background:var(--pr-suave)}
@keyframes entra-item{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.pos-items img{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:7px;padding:3px}
.pos-items b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pos-items small{font-size:10.5px;color:#6B7A8C;font-variant-numeric:tabular-nums}
.pos-items strong{font-size:12.5px;font-variant-numeric:tabular-nums}
.pos-items .pos-vacio{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:none;color:#4E5D6E;font-weight:600;padding:40px 10px;gap:4px}
.pos-items .pos-vacio small{font-weight:400}
.pos-totales{border-top:1px dashed #D3DBE4;padding-top:10px;display:flex;flex-direction:column;gap:4px}
.pos-totales div{display:flex;justify-content:space-between;font-size:12px;color:#4E5D6E;font-variant-numeric:tabular-nums}
.pos-total span{font-size:15px;font-weight:700;color:#132131}
.pos-total b{font-size:24px;color:var(--pr);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pos-cobrar,.pos-factura{height:44px;border-radius:10px;border:0;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;gap:10px}
.pos-cobrar{background:var(--pr);color:#fff;transition:filter .2s,transform .2s,background-color .5s}
.pos-cobrar:not(:disabled){animation:latido 2.4s ease-in-out infinite}
@keyframes latido{0%,100%{box-shadow:0 0 0 0 var(--pr-suave)}50%{box-shadow:0 0 0 6px var(--pr-suave)}}
.pos-cobrar.presionado{transform:scale(.97)}
.pos-cobrar:disabled,.pos-factura:disabled{opacity:.45;cursor:default}
.pos-cobrar kbd{font:600 10px/1 "Archivo",sans-serif;background:rgba(255,255,255,.2);padding:3px 5px;border-radius:5px}
.pos-factura{height:36px;background:var(--pr-suave);color:var(--pr);font-size:12.5px}
/* Capas */
.pos-capa{position:absolute;inset:0;background:rgba(10,22,36,.38);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:5;animation:aparece .25s ease}
@keyframes aparece{from{opacity:0}to{opacity:1}}
.pos-dialogo{width:380px;background:#fff;border-radius:16px;padding:18px;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:12px;animation:sube .35s cubic-bezier(.22,.8,.24,1)}
@keyframes sube{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.pos-dialogo header{display:flex;flex-direction:column;gap:2px}
.pos-dialogo header span{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#132131}
.pos-dialogo header svg{width:18px;height:18px;color:var(--pr)}
.pos-dialogo header small{color:#6B7A8C;font-size:11.5px}
.pos-lcd{display:flex;align-items:center;gap:14px;padding:14px;border-radius:12px;background:#0E1B12;color:#7CF2A4}
.pos-lcd img{width:54px;height:54px;background:#fff;border-radius:10px;padding:5px;object-fit:contain}
.pos-lcd small{display:block;color:#9CC8AC;font-size:11px}
.pos-lcd b{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:38px;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(124,242,164,.45)}
.pos-lcd i{font-style:normal;font-size:16px;margin-left:6px}
.pos-lcd-cant{background:#13202E;color:#BFD8FF}
.pos-lcd-cant b{text-shadow:0 0 14px rgba(150,190,255,.4)}
.pos-estado-peso{margin:0;font-size:12px;color:#8A6A00;display:flex;align-items:center;gap:6px}
.pos-estado-peso::before{content:"";width:8px;height:8px;border-radius:50%;background:#E9B949;animation:titila .6s ease-in-out infinite alternate}
.pos-estado-peso.ok{color:#1E7A4C}
.pos-estado-peso.ok::before{background:#1FA463;animation:none}
@keyframes titila{to{opacity:.3}}
.pos-importe{display:flex;justify-content:space-between;font-size:13px;color:#4E5D6E}
.pos-importe b{color:var(--pr);font-size:17px;font-variant-numeric:tabular-nums}
.pos-dialogo footer{display:flex;gap:8px;justify-content:flex-end}
.pos-pri,.pos-sec{height:38px;padding:0 16px;border-radius:9px;font-weight:700;font-size:13px;border:0}
.pos-pri{background:var(--pr);color:#fff}
.pos-pri:disabled{opacity:.45}
.pos-pri.presionado,.pos-sec.presionado{transform:scale(.96)}
.pos-sec{background:#EEF2F6;color:#33414F}
.pos-a-cobrar{font-size:34px;font-weight:800;color:#132131;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pos-metodos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pos-metodos button{height:42px;border-radius:10px;border:1.5px solid #DCE3EC;background:#fff;font-weight:600;font-size:12.5px;transition:all .2s}
.pos-metodos button.activo{border-color:var(--pr);background:var(--pr-suave);color:var(--pr)}
.pos-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pos-kpis div{background:#F5F7FA;border-radius:10px;padding:10px}
.pos-kpis small{display:block;color:#6B7A8C;font-size:10.5px}
.pos-kpis b{font-size:15px;color:#132131;font-variant-numeric:tabular-nums}
.pos-barras{display:flex;align-items:flex-end;gap:5px;height:110px;padding-top:6px}
.pos-barras i{flex:1;height:calc(var(--h)*86%);background:var(--pr);border-radius:4px 4px 0 0;position:relative;transform-origin:bottom;animation:crece .7s cubic-bezier(.22,.8,.24,1) both;animation-delay:var(--d)}
.pos-barras span{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font-size:9.5px;color:#7A8899;font-style:normal}
@keyframes crece{from{transform:scaleY(0)}to{transform:scaleY(1)}}
/* Ticket */
.pos-ticket{position:absolute;right:18px;bottom:16px;width:280px;z-index:6;display:flex;flex-direction:column;gap:8px}
.pos-ticket.sale .pos-papel{animation:imprime 1.1s steps(16,end) both}
.pos-ticket.sale .pos-ok{animation:sube .4s cubic-bezier(.22,.8,.24,1) both}
@keyframes imprime{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.pos-ok{display:flex;align-items:center;gap:8px;background:#1E7A4C;color:#fff;font-weight:650;font-size:12.5px;padding:9px 12px;border-radius:10px;box-shadow:0 12px 30px -12px rgba(0,0,0,.5)}
.pos-ok svg{width:18px;height:18px}
.pos-papel{background:#FDFDFB;color:#222;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;line-height:1.5;padding:14px 14px 20px;border-radius:4px 4px 0 0;box-shadow:0 24px 50px -20px rgba(0,0,0,.6);
  -webkit-mask:radial-gradient(circle 5px at 50% 100%,transparent 4.5px,#000 5px) 0 0/10px 100% repeat-x;mask:radial-gradient(circle 5px at 50% 100%,transparent 4.5px,#000 5px) 0 0/10px 100% repeat-x}
.pos-papel-cab{text-align:center;border-bottom:1px dashed #999;padding-bottom:8px;margin-bottom:8px}
.pos-papel-cab b{display:block;font-size:12.5px}
.pos-papel-cab span{font-size:10.5px;color:#666}
.pos-papel .fila{display:flex;justify-content:space-between;gap:8px}
.pos-papel .det{color:#666;font-size:10.5px}
.pos-papel .tot{display:flex;justify-content:space-between;border-top:1px dashed #999;margin-top:6px;padding-top:6px;font-weight:600;font-size:14px}
.pos-papel .gracias{text-align:center;color:#666;font-size:10.5px;margin-top:8px}
/* Cursor de la demo */
.pos-cursor{position:absolute;left:0;top:0;width:26px;height:26px;z-index:9;pointer-events:none;opacity:0;transition:transform .6s cubic-bezier(.45,.05,.25,1),opacity .3s;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.pos-cursor.visible{opacity:1}
.pos-cursor svg{width:26px;height:26px}
.pos-cursor i{position:absolute;left:-12px;top:-12px;width:28px;height:28px;border-radius:50%;border:2px solid var(--pr);opacity:0}
.pos-cursor.clic i{animation:onda .45s ease-out}
@keyframes onda{from{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}
/* Modo celular */
.pos-lienzo.movil{width:400px;height:760px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
.pos-lienzo.movil .pos-lateral{display:none}
.pos-lienzo.movil .pos-centro{padding:14px 14px 8px;gap:10px}
.pos-lienzo.movil .pos-grilla{grid-template-columns:repeat(2,minmax(0,1fr))}
.pos-lienzo.movil .pos-producto:nth-child(n+7){display:none}
.pos-lienzo.movil .pos-filtros span:last-child{display:none}
.pos-lienzo.movil .pos-buscador em{display:none}
.pos-lienzo.movil .pos-venta{border-left:0;border-top:1px solid #E2E8F0;padding:12px 14px;gap:8px;box-shadow:0 -10px 30px -20px rgba(0,0,0,.4)}
.pos-lienzo.movil .pos-cliente,.pos-lienzo.movil .pos-factura,.pos-lienzo.movil .pos-totales div:first-child{display:none}
.pos-lienzo.movil .pos-items{flex:none;height:96px;gap:4px}
.pos-lienzo.movil .pos-items li{padding:4px 6px}
.pos-lienzo.movil .pos-items .pos-vacio{padding:18px 8px}
.pos-lienzo.movil .pos-dialogo{width:350px}
.pos-lienzo.movil .pos-ticket{left:50%;right:auto;transform:translateX(-50%);bottom:auto;top:90px}
/* Control (debajo de la demo) */
.pos-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:14px;color:var(--suave,#A3B7CB);font-size:14.5px}
.pos-control .pos-punto{width:8px;height:8px;border-radius:50%;background:#1FA463;box-shadow:0 0 0 4px rgba(31,164,99,.2);animation:titila .9s ease-in-out infinite alternate}
.pos-control.manual .pos-punto{background:var(--cian,#00B3ED);box-shadow:0 0 0 4px rgba(0,179,237,.2);animation:none}
.pos-control span[data-pos-estado]{flex:1;min-width:0}
.pos-control button{border:1px solid rgba(var(--linea-rgb,235,226,212),.3);border-radius:999px;padding:8px 14px;background:transparent;color:inherit;font:600 14px "Archivo",system-ui,sans-serif;cursor:pointer}
.pos-control button:hover{color:#fff;border-color:#fff}
@media (prefers-reduced-motion:reduce){.pos-cobrar:not(:disabled){animation:none}.pos-cursor{transition:none}.pos-control .pos-punto{animation:none}}
