/* =========================================================
   UFY — ESCANEO DE CAMISA
   Pase firmado y pantalla de transición
   ========================================================= */

:root {
  --ufy-scan-violet:
    #7442ed;

  --ufy-scan-violet-dark:
    #5130bb;

  --ufy-scan-ink:
    #17112d;

  --ufy-scan-muted:
    #675e7e;

  --ufy-scan-light:
    rgba(247, 243, 255, 0.94);
}


/* =========================================================
   RUTA /scan — TRANSICIÓN
   ========================================================= */

body.ufy-scan-route {
  min-height: 100vh;
  min-height: 100dvh;

  margin: 0;

  display: grid;
  place-items: center;

  overflow: hidden;

  color:
    rgba(255, 255, 255, 0.96);

  background:
    radial-gradient(
      circle at 50% -10%,
      rgba(121, 74, 206, 0.52),
      transparent 48%
    ),
    linear-gradient(
      180deg,
      #17102b 0%,
      #080611 58%,
      #030207 100%
    );

  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}


.ufy-scan-loading {
  width:
    min(
      calc(100% - 40px),
      420px
    );

  padding:
    32px
    26px;

  box-sizing:
    border-box;

  border:
    1px solid
    rgba(222, 205, 255, 0.24);

  border-radius:
    28px;

  text-align:
    center;

  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, 0.13),
      rgba(255, 255, 255, 0.055)
    );

  box-shadow:
    0 26px 70px
    rgba(0, 0, 0, 0.48);

  backdrop-filter:
    blur(16px);

  -webkit-backdrop-filter:
    blur(16px);
}


.ufy-scan-loading-mark {
  width:
    74px;

  height:
    74px;

  margin:
    0
    auto
    20px;

  display:
    grid;

  place-items:
    center;

  border:
    1px solid
    rgba(214, 191, 255, 0.52);

  border-radius:
    23px;

  color:
    #e7d9ff;

  font-size:
    23px;

  font-weight:
    780;

  letter-spacing:
    1.5px;

  background:
    linear-gradient(
      145deg,
      rgba(143, 83, 241, 0.34),
      rgba(63, 35, 117, 0.22)
    );

  box-shadow:
    0 0 24px
    rgba(126, 72, 221, 0.34);
}


.ufy-scan-loading h1 {
  margin:
    0;

  font-size:
    23px;

  font-weight:
    720;

  line-height:
    1.2;
}


.ufy-scan-loading p {
  margin:
    11px
    0
    0;

  color:
    rgba(235, 228, 248, 0.74);

  font-size:
    14px;

  line-height:
    1.45;
}


/* =========================================================
   PASE SOBRE EL PERFIL
   ========================================================= */

body.ufy-scan-pass-open {
  overflow:
    hidden;
}


.ufy-scan-pass-overlay {
  position:
    fixed;

  inset:
    0;

  z-index:
    30000;

  display:
    grid;

  place-items:
    center;

  overflow-y:
    auto;

  overscroll-behavior:
    contain;

  padding:
    max(
      20px,
      env(safe-area-inset-top)
    )
    18px
    max(
      24px,
      env(safe-area-inset-bottom)
    );

  box-sizing:
    border-box;

  background:
    linear-gradient(
      180deg,
      rgba(8, 6, 27, 0.69),
      rgba(14, 10, 35, 0.78)
    );

  backdrop-filter:
    blur(9px)
    saturate(0.76);

  -webkit-backdrop-filter:
    blur(9px)
    saturate(0.76);
}


.ufy-scan-pass-stage {
  width:
    min(
      100%,
      690px
    );

  margin:
    auto;

  display:
    flex;

  flex-direction:
    column;

  align-items:
    center;
}


.ufy-scan-pass {
  position:
    relative;

  width:
    100%;

  overflow:
    hidden;

  box-sizing:
    border-box;

  border:
    1px solid
    rgba(255, 255, 255, 0.9);

  border-radius:
    42px;

  color:
    var(--ufy-scan-ink);

  background:
    radial-gradient(
      circle at 14% 4%,
      rgba(255, 255, 255, 0.98),
      transparent 36%
    ),
    radial-gradient(
      circle at 88% 94%,
      rgba(213, 196, 255, 0.54),
      transparent 42%
    ),
    linear-gradient(
      145deg,
      rgba(250, 247, 255, 0.96),
      rgba(226, 216, 247, 0.91)
    );

  box-shadow:
    0 0 0 1px
    rgba(190, 160, 255, 0.24),
    0 0 28px
    rgba(132, 76, 237, 0.46),
    0 32px 85px
    rgba(0, 0, 0, 0.48);

  isolation:
    isolate;
}


.ufy-scan-pass::before {
  content:
    "";

  position:
    absolute;

  inset:
    0;

  z-index:
    -1;

  pointer-events:
    none;

  opacity:
    0.38;

  background:
    repeating-linear-gradient(
      112deg,
      transparent 0,
      transparent 18px,
      rgba(111, 77, 168, 0.04) 19px,
      transparent 20px
    );
}


.ufy-scan-pass-header {
  padding:
    42px
    34px
    24px;

  text-align:
    center;
}


.ufy-scan-pass-kicker {
  margin:
    0;

  color:
    #6842d7;

  font-size:
    14px;

  font-weight:
    780;

  line-height:
    1;

  letter-spacing:
    3.4px;
}


.ufy-scan-pass-header h1 {
  margin:
    25px
    0
    0;

  color:
    #171136;

  font-size:
    clamp(
      29px,
      4.8vw,
      40px
    );

  font-weight:
    760;

  line-height:
    1.12;

  letter-spacing:
    -0.8px;
}


