/* Web ANLOK 2026 · escanea.css — «Escanea este ticket» (ANLOK TickScan, tras la portada; lo monta escanea.js).
   Prefijo .esc-. Tres partes en fila: el ticket arrugado sobre la mesa, el móvil que lo escanea y «Tus gastos».
   En móvil, la tabla aparece en el hueco que deja el ticket al entrar en el móvil.
   Estados en .esc-escena: esc-arrastrando, esc-dentro, esc-escaneando, esc-con-datos, esc-leido, esc-fin, esc-tu-turno. */

.seccion.esc-sec{
  position:relative;isolation:isolate;background:#000000;--fondo:#000000;
  padding-top:clamp(48px,6.4vw,104px);padding-bottom:clamp(44px,5.6vw,96px);
}
.esc-fondo{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
/* la mesa: una trama de puntos muy fina que se apaga hacia los bordes */
.esc-fondo::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle,rgba(255,255,255,.085) 1px,rgba(255,255,255,0) 1.6px) 50% 0/26px 26px;
  -webkit-mask:radial-gradient(ellipse 58% 46% at 50% 64%,#000000 18%,rgba(0,0,0,0) 76%);
  mask:radial-gradient(ellipse 58% 46% at 50% 64%,#000000 18%,rgba(0,0,0,0) 76%);
}
/* la luz lila detrás del móvil, la misma familia que la portada y «Así se ve» */
.esc-fondo::after{
  content:"";position:absolute;left:50%;top:64%;width:min(1000px,140vw);height:76%;transform:translate(-50%,-50%);
  background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(108,99,255,.26),rgba(108,99,255,0) 70%);
}
.esc-cab{margin-bottom:clamp(28px,3.4vw,52px)}
.esc-sec .esc-h{color:#FFFFFF}
.esc-sec .esc-p{color:rgba(236,234,255,.78)}

/* ---------- La escena ---------- */
.esc-escena{
  --mw:clamp(232px,18.5vw,266px);   /* ancho del móvil: todo lo de dentro se mide con él */
  --pw:clamp(206px,17.6vw,256px);   /* ancho del ticket (con su margen de papel) */
  --gap:clamp(28px,4.6vw,76px);
  --sitio:clamp(80px,9vw,130px);    /* hueco a la derecha del ticket para la pista */
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;
  column-gap:var(--gap);max-width:1180px;margin:0 auto;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
.esc-mesa{position:relative;display:flex;justify-content:center;align-items:center;height:calc(var(--mw) * 2.04);min-width:0;padding-right:var(--sitio)}
.esc-sitio{position:relative;flex:none;width:var(--pw)}

/* La huella que deja el ticket en la mesa cuando entra en el móvil (y «Ticket leído» cuando ya está) */
.esc-huella{
  --raya:rgba(236,234,255,.24);
  position:absolute;left:9%;right:9%;top:5.2%;bottom:5.2%;z-index:0;display:grid;place-items:center;
  background:
    linear-gradient(90deg,var(--raya) 50%,rgba(0,0,0,0) 0) 0 0/12px 1.5px repeat-x,
    linear-gradient(90deg,var(--raya) 50%,rgba(0,0,0,0) 0) 0 100%/12px 1.5px repeat-x,
    linear-gradient(180deg,var(--raya) 50%,rgba(0,0,0,0) 0) 0 0/1.5px 12px repeat-y,
    linear-gradient(180deg,var(--raya) 50%,rgba(0,0,0,0) 0) 100% 0/1.5px 12px repeat-y,
    radial-gradient(closest-side,rgba(108,99,255,.07),rgba(108,99,255,0));
  transform:rotate(-6deg);opacity:0;transition:opacity .4s ease;
}
.esc-dentro .esc-huella{opacity:1;transition-delay:.35s}
.esc-huella__txt{
  display:inline-flex;align-items:center;gap:7px;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:rgba(236,234,255,.6);opacity:0;transform:rotate(6deg) translateY(4px);transition:opacity .4s ease,transform .4s ease;
}
.esc-leido .esc-huella__txt{opacity:1;transform:rotate(6deg)}
.esc-huella__ok{width:18px;height:18px;padding:3px;border-radius:50%;fill:none;stroke:#7FE3B4;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;background:rgba(56,196,120,.16)}

/* El ticket */
.esc-papel{
  position:relative;z-index:5;width:100%;cursor:grab;touch-action:pan-y;transform-origin:50% 50%;will-change:transform;
  -webkit-tap-highlight-color:transparent;
}
.esc-papel.esc-agarrado{cursor:grabbing}
.esc-papel{transition:scale .35s cubic-bezier(.3,1.5,.5,1)}
@media (hover:hover){
  .esc-escena:not(.esc-dentro):not(.esc-ocupado) .esc-papel:not(.esc-agarrado):hover{scale:1.025}
  .esc-escena:not(.esc-dentro):not(.esc-ocupado) .esc-papel:not(.esc-agarrado):hover .esc-lienzo{filter:drop-shadow(0 32px 30px rgba(0,0,0,.66)) drop-shadow(0 4px 6px rgba(0,0,0,.38))}
}
.esc-ocupado .esc-papel,.esc-fin .esc-papel{cursor:default}
.esc-lienzo{
  display:block;width:100%;height:auto;max-width:none;
  filter:drop-shadow(0 22px 24px rgba(0,0,0,.62)) drop-shadow(0 3px 4px rgba(0,0,0,.4));
  transition:filter .35s ease;
}
.esc-agarrado .esc-lienzo{filter:drop-shadow(0 44px 38px rgba(0,0,0,.7)) drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.esc-dentro .esc-lienzo{filter:drop-shadow(0 6px 10px rgba(0,0,0,.55))}
.esc-tu-turno .esc-papel:not(.esc-agarrado) .esc-lienzo{animation:esc-meneo 1.9s ease-in-out infinite}
@keyframes esc-meneo{0%,100%{translate:0 0;rotate:0deg}28%{translate:11px -6px;rotate:2.5deg}58%{translate:-3px 1px;rotate:-1deg}}

.esc-etiqueta{
  display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;white-space:nowrap;
  font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  color:#FFC56E;background:rgba(250,170,47,.14);box-shadow:inset 0 0 0 1px rgba(250,170,47,.4);
}
.esc-papel__etiqueta{position:absolute;left:50%;top:5%;z-index:1;transform:translate(-50%,-100%) rotate(-2deg);transition:opacity .3s}
.esc-dentro .esc-papel__etiqueta,.esc-arrastrando .esc-papel__etiqueta{opacity:0}

/* La pista: flecha discontinua del ticket al móvil */
.esc-pista{
  position:absolute;z-index:6;right:calc(var(--gap) * -.45);top:24%;width:clamp(104px,11vw,150px);margin:0;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  font:500 12px/1.4 var(--mono);letter-spacing:.03em;color:#FFC56E;text-align:center;
  transform:rotate(-4deg);transition:opacity .3s;
}
.esc-pista__flecha{width:112px;height:56px;fill:none;stroke:#FFC56E;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.esc-pista__traza{stroke-dasharray:6 7;animation:esc-hormigas 1s linear infinite}
@keyframes esc-hormigas{to{stroke-dashoffset:-26}}
.esc-dentro .esc-pista,.esc-arrastrando .esc-pista,.esc-ocupado .esc-pista{opacity:0}
.esc-tu-turno .esc-pista{animation:esc-late 1.5s ease-in-out infinite}
@keyframes esc-late{50%{transform:rotate(-4deg) translateX(7px)}}

/* ---------- El móvil (se mide en --mw; el texto de dentro, en em) ---------- */
.esc-movil{
  position:relative;z-index:2;width:var(--mw);height:calc(var(--mw) * 2.04);padding:calc(var(--mw) * .04);
  border-radius:calc(var(--mw) * .19);font-size:calc(var(--mw) * .0595);
  background:linear-gradient(150deg,#2B2B34 0%,#16161B 42%,#1D1D24 100%);
  box-shadow:inset 0 0 0 1.5px #3A3A46,inset 0 0 0 5px #111116,0 0 0 1px rgba(255,255,255,.06),
    0 50px 90px -30px rgba(0,0,0,.9),0 0 120px -14px rgba(108,99,255,.55);
  transition:box-shadow .25s ease;
}
.esc-movil.esc-encima{
  box-shadow:inset 0 0 0 1.5px #8C85FF,inset 0 0 0 5px #111116,0 0 0 3px rgba(140,133,255,.9),
    0 0 70px 8px rgba(108,99,255,.6),0 50px 90px -30px rgba(0,0,0,.9);
}
.esc-isla{position:absolute;z-index:3;top:calc(var(--mw) * .078);left:50%;width:30%;height:calc(var(--mw) * .088);transform:translateX(-50%);border-radius:999px;background:#050507}
.esc-pantalla{
  position:relative;height:100%;overflow:hidden;border-radius:calc(var(--mw) * .152);
  display:flex;flex-direction:column;gap:.7em;padding:3.35em .85em .8em;
  background:radial-gradient(130% 62% at 50% 34%,#1E1C36 0%,#121117 64%);
}
.esc-barra{display:flex;justify-content:space-between;align-items:center;gap:.5em;margin:0;min-height:1.6em;color:#FFFFFF;font-size:1.06em;line-height:1.2}
.esc-barra b{font-weight:700}
.esc-barra__estado{font:500 .58em/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:rgba(236,234,255,.55);white-space:nowrap}
.esc-escaneando .esc-barra__estado{color:#B9B4FF;animation:esc-parpadeo .9s ease-in-out infinite}
@keyframes esc-parpadeo{50%{opacity:.45}}
.esc-leido .esc-barra__estado{
  display:inline-flex;align-items:center;gap:.45em;padding:.45em .7em;border-radius:999px;
  font:700 .66em/1 var(--sans);letter-spacing:0;text-transform:none;color:#7FE3B4;
  background:rgba(56,196,120,.16);box-shadow:inset 0 0 0 1px rgba(56,196,120,.45);
}
.esc-leido .esc-barra__estado::before{content:"";width:.6em;height:.6em;border-radius:50%;background:currentColor;box-shadow:0 0 .6em currentColor}

.esc-visor{position:relative;flex:1 1 auto;border-radius:1.1em;background:rgba(255,255,255,.028);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);transition:background-color .3s}
.esc-movil.esc-encima .esc-visor{background:rgba(108,99,255,.12)}
.esc-esq{position:absolute;width:1.55em;height:1.55em;border:.18em solid rgba(255,255,255,.92);transition:border-color .2s,transform .25s cubic-bezier(.3,1.6,.5,1)}
.esc-esq-1{top:.6em;left:.6em;border-right:0;border-bottom:0;border-radius:.7em 0 0 0}
.esc-esq-2{top:.6em;right:.6em;border-left:0;border-bottom:0;border-radius:0 .7em 0 0}
.esc-esq-3{bottom:.6em;left:.6em;border-right:0;border-top:0;border-radius:0 0 0 .7em}
.esc-esq-4{bottom:.6em;right:.6em;border-left:0;border-top:0;border-radius:0 0 .7em 0}
.esc-movil.esc-encima .esc-esq{border-color:#B9B4FF}
.esc-movil.esc-encima .esc-esq-1{transform:translate(-.22em,-.22em)}
.esc-movil.esc-encima .esc-esq-2{transform:translate(.22em,-.22em)}
.esc-movil.esc-encima .esc-esq-3{transform:translate(-.22em,.22em)}
.esc-movil.esc-encima .esc-esq-4{transform:translate(.22em,.22em)}
.esc-leido .esc-esq{border-color:rgba(127,227,180,.9)}
.esc-visor__txt{
  position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:.8em;
  padding:0 1.4em;text-align:center;font:500 .62em/1.45 var(--mono);letter-spacing:.07em;text-transform:uppercase;
  color:rgba(236,234,255,.55);transition:opacity .3s;
}
.esc-visor__icono{width:3.2em;height:3.2em;fill:none;stroke:rgba(236,234,255,.5);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.esc-dentro .esc-visor__txt{opacity:0}

/* El disparador: el botón de verdad (Escanear / Otra vez) */
.esc-disparo{
  position:relative;z-index:6;align-self:center;display:flex;flex-direction:column;align-items:center;gap:.45em;
  min-width:44px;min-height:44px;margin:0;padding:.15em .8em .1em;border:0;border-radius:1em;background:none;
  color:#FFFFFF;cursor:pointer;font:600 .74em/1 var(--sans);letter-spacing:.01em;-webkit-tap-highlight-color:transparent;
}
.esc-aro{
  position:relative;display:grid;place-items:center;width:calc(var(--mw) * .2);height:calc(var(--mw) * .2);border-radius:50%;
  background:radial-gradient(circle at 50% 32%,#9A93FF 0%,#6C63FF 58%,#5148E0 100%);
  border:calc(var(--mw) * .013) solid #FFFFFF;box-shadow:inset 0 0 0 calc(var(--mw) * .009) #0B0B10,0 0 22px rgba(108,99,255,.6);
  transition:transform .2s ease,box-shadow .2s ease;
}
.esc-aro__otra{width:48%;height:48%;fill:none;stroke:#FFFFFF;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:rotate(-90deg) scale(.6);transition:opacity .3s,transform .4s cubic-bezier(.3,1.5,.5,1)}
.esc-fin .esc-aro__otra{opacity:1;transform:none}
.esc-disparo:hover .esc-aro{transform:scale(1.06);box-shadow:inset 0 0 0 calc(var(--mw) * .009) #0B0B10,0 0 32px rgba(108,99,255,.85)}
.esc-disparo:active .esc-aro{transform:scale(.92)}
.esc-disparo:focus-visible{outline:3px solid #FFFFFF;outline-offset:2px}
.esc-escaneando .esc-aro{animation:esc-pulso .7s ease-in-out infinite}
@keyframes esc-pulso{50%{box-shadow:inset 0 0 0 calc(var(--mw) * .009) #0B0B10,0 0 40px 8px rgba(108,99,255,.9)}}

/* El láser que recorre el ticket */
.esc-laser{
  position:absolute;left:0;top:0;z-index:7;width:200px;height:3px;border-radius:3px;pointer-events:none;opacity:0;transition:opacity .2s;
  background:linear-gradient(90deg,rgba(185,180,255,0),#B9B4FF 12%,#FFFFFF 50%,#B9B4FF 88%,rgba(185,180,255,0));
  box-shadow:0 0 14px 3px rgba(150,140,255,.95),0 0 50px 12px rgba(108,99,255,.5);
}
.esc-laser::before{content:"";position:absolute;left:3%;right:3%;bottom:3px;height:90px;background:linear-gradient(0deg,rgba(108,99,255,.3),rgba(108,99,255,0))}
.esc-escaneando .esc-laser{opacity:1}

/* ---------- Tus gastos ---------- */
.esc-datos{
  position:relative;z-index:1;justify-self:start;width:min(340px,100%);padding:20px 20px 18px;border-radius:22px;container-type:inline-size;
  background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.022));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.11),0 40px 80px -40px rgba(0,0,0,.95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:box-shadow .5s ease;
}
.esc-leido .esc-datos{box-shadow:inset 0 0 0 1px rgba(140,133,255,.38),0 0 60px -18px rgba(108,99,255,.55),0 40px 80px -40px rgba(0,0,0,.95)}
.esc-datos__cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px;color:#FFFFFF;font-size:17px;line-height:1.3}
.esc-datos__cab b{display:inline-flex;align-items:center;gap:9px;font-weight:700}
.esc-datos__icono{width:20px;height:20px;flex:none;fill:none;stroke:#A9A2FF;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.esc-dl{margin:0}
.esc-fila{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:11px 8px;margin:0 -8px;border-top:1px solid rgba(255,255,255,.08);border-radius:8px}
.esc-fila dt{font:500 10.5px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(236,234,255,.56)}
.esc-fila dd{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:22px;margin:0}
.esc-valor{font-size:16px;font-weight:700;line-height:1.3;color:#FFFFFF;font-variant-numeric:tabular-nums;opacity:0;transform:translateY(4px);transition:opacity .3s ease,transform .3s ease}
.esc-lleno .esc-valor{opacity:1;transform:none}
.esc-fila-importe .esc-valor{font-size:18px}
.esc-hueco{display:block;width:58%;height:9px;border-radius:5px;background:rgba(255,255,255,.08)}
.esc-fila-comercio .esc-hueco{width:86%}
.esc-fila-iva .esc-hueco{width:42%}
.esc-lleno .esc-hueco{display:none}
.esc-escaneando .esc-hueco{background:linear-gradient(90deg,rgba(255,255,255,.07) 0%,rgba(185,180,255,.32) 50%,rgba(255,255,255,.07) 100%) 0 0/220% 100%;animation:esc-brillo 1.1s linear infinite}
@keyframes esc-brillo{from{background-position:110% 0}to{background-position:-110% 0}}
.esc-lleno{animation:esc-destello 1s ease-out}
@keyframes esc-destello{0%{background-color:rgba(108,99,255,.45)}100%{background-color:rgba(108,99,255,0)}}
@container (min-width:290px){
  .esc-fila{grid-template-columns:86px minmax(0,1fr);align-items:center;gap:12px}
  .esc-fila dd{justify-content:flex-end;text-align:right}
}
.esc-estado{display:grid;margin:4px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;line-height:1.35;color:rgba(236,234,255,.72)}
.esc-estado__espera,.esc-estado__hecho{grid-area:1 / 1;align-self:center;transition:opacity .4s ease,transform .4s ease}
.esc-estado__espera{display:inline-flex;align-items:center;gap:9px;font:500 11px/1.3 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:rgba(236,234,255,.5)}
.esc-estado__espera::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:rgba(236,234,255,.35)}
.esc-escaneando .esc-estado__espera{color:#B9B4FF}
.esc-escaneando .esc-estado__espera::before{background:#8C85FF;box-shadow:0 0 8px #8C85FF;animation:esc-parpadeo .9s ease-in-out infinite}
.esc-estado__hecho{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;opacity:0;transform:translateY(4px)}
.esc-fin .esc-estado__espera,.esc-con-datos .esc-estado__espera{opacity:0}
.esc-fin .esc-estado__hecho{opacity:1;transform:none;transition-delay:.15s}
.esc-ok{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:6px;font-weight:700;color:#7FE3B4;background:rgba(56,196,120,.14)}
.esc-ok::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}

/* Lo que vuela del ticket a la tabla */
.esc-vuela{
  position:absolute;left:0;top:0;z-index:9;pointer-events:none;white-space:nowrap;
  padding:6px 11px;border-radius:9px;background:#6C63FF;color:#FFFFFF;font:700 15px/1.2 var(--sans);
  box-shadow:0 14px 30px -8px rgba(108,99,255,.95),inset 0 0 0 1px rgba(255,255,255,.3);
}

/* ---------- Tableta: tres columnas más apretadas ---------- */
@media (max-width:1023px){
  .esc-escena{--mw:clamp(200px,24vw,236px);--pw:clamp(176px,21vw,214px);--gap:clamp(18px,3vw,32px)}
  .esc-pista{top:20%;font-size:11px}
  .esc-pista__flecha{width:88px;height:44px}
}

/* ---------- Móvil: el ticket y el móvil lado a lado; la tabla sale en el hueco del ticket ---------- */
/* ---------- Hasta 899 px: el ticket y el móvil lado a lado; la tabla sale en el hueco del ticket ---------- */
@media (max-width:899px){
  .esc-escena{--mw:clamp(140px,44vw,240px);--gap:clamp(12px,3vw,32px);--sitio:0px;grid-template-columns:minmax(0,1fr) auto;max-width:640px}
  .esc-mesa{grid-column:1;grid-row:1;align-items:flex-start;padding-top:calc(var(--mw) * .12)}
  .esc-sitio{width:100%;max-width:calc(var(--mw) * 1.02)}
  .esc-huella{display:none}
  .esc-movil{grid-column:2;grid-row:1}
  .esc-papel{width:100%}
  .esc-pista{left:0;right:0;top:auto;bottom:2px;width:auto;flex-direction:row;justify-content:center;gap:5px;transform:none;font-size:clamp(11px,1.8vw,13px)}
  .esc-pista__flecha{display:none}
  .esc-pista__txt::after{content:" →"}
  @keyframes esc-late{50%{transform:translateX(6px)}}
  .esc-datos{
    grid-column:1;grid-row:1;align-self:center;justify-self:center;width:min(100%,360px);
    opacity:0;transform:translateY(10px) scale(.97);pointer-events:none;transition:opacity .45s ease,transform .45s ease,box-shadow .5s ease;
  }
  .esc-con-datos .esc-datos{opacity:1;transform:none;pointer-events:auto}
}
/* ---------- Móvil: la tabla, compacta ---------- */
@media (max-width:559px){
  .esc-papel__etiqueta{font-size:9.5px;padding:4px 7px}
  .esc-datos{justify-self:stretch;width:auto;padding:13px 12px 12px;border-radius:16px}
  .esc-datos__cab{flex-wrap:wrap;gap:6px;font-size:14px;margin-bottom:4px}
  .esc-datos__cab b{gap:6px}
  .esc-datos__icono{width:16px;height:16px}
  .esc-datos .esc-etiqueta{font-size:9px;padding:4px 6px}
  .esc-fila{padding:7px 6px;margin:0 -6px;gap:2px}
  .esc-fila dt{font-size:9px}
  .esc-fila dd{min-height:18px}
  .esc-valor{font-size:13px}
  .esc-fila-importe .esc-valor{font-size:14.5px}
  .esc-estado{font-size:10.5px;padding-top:9px}
  .esc-estado__hecho{gap:5px 6px}
  .esc-estado__espera{font-size:9px;gap:6px}
  .esc-ok{padding:3px 7px}
  .esc-vuela{font-size:12.5px;padding:5px 8px;border-radius:7px}
}

/* Fuera de pantalla, las animaciones CSS se paran */
.esc-pausa *,.esc-pausa *::before,.esc-pausa *::after{animation-play-state:paused !important}

/* ---------- Movimiento reducido: sin animaciones; los cambios de estado son instantáneos ---------- */
@media (prefers-reduced-motion:reduce){
  .esc-sec *,.esc-sec *::before,.esc-sec *::after{animation:none !important;transition:none !important}
}
