/* =============================================================
   LEFEUR · Mi cuenta y puntos
   Va DESPUÉS de styles.css y usa sus tokens (cacao, crema, dulce de leche,
   Playfair + Inter, pastillas, radios 14–16 px). No define colores nuevos:
   la cuenta tiene que sentirse la misma casa que la carta.
   ============================================================= */

body.cuenta:has(dialog[open]){ overflow:hidden; }
.cuenta-main{ padding-bottom:clamp(3rem, 7vw, 5rem); }

/* --- Avisos --- */
.cuenta-demo{
  margin-top:1rem; padding:.55rem .9rem; border-radius:var(--radio-sm);
  border:1px dashed var(--dulce-3); color:var(--cream-2); font-size:.82rem;
}
.cuenta-aviso{ scroll-margin-top:calc(var(--barra-h) + var(--nav-h) + 16px); }
.cuenta-aviso:focus{ outline:none; }
.cuenta-aviso:not(:empty){
  margin-top:1rem; padding:.9rem 1.1rem; border-radius:var(--radio-sm);
  background:rgba(226,167,86,.1); border:1px solid rgba(226,167,86,.35); color:var(--cream);
}
.cuenta-aviso.error{ background:rgba(201,89,108,.1); border-color:rgba(201,89,108,.45); }
.cuenta-aviso.exito{ background:rgba(169,190,134,.12); border-color:rgba(169,190,134,.45); }

/* --- Controles comunes --- */
.btn-chico{ min-height:44px; padding:0 1.1rem; font-size:.88rem; }
.cuenta-link{
  display:inline-flex; align-items:center; min-height:44px; padding:0;
  color:var(--cream-2); font-size:.88rem; text-align:left;
  text-decoration:underline; text-decoration-color:var(--line-2); text-underline-offset:4px;
  transition:color .2s var(--ease), text-decoration-color .2s var(--ease);
}
.cuenta-link:hover{ color:var(--dulce); text-decoration-color:var(--dulce); }
.cuenta-main a:not(.btn){ text-decoration:underline; text-decoration-color:var(--line-2); text-underline-offset:4px; }
.cuenta-main a:not(.btn):hover{ color:var(--dulce); text-decoration-color:var(--dulce); }
.btn[aria-busy="true"]{ cursor:progress; opacity:.75; }

.cuenta-form{ display:flex; flex-direction:column; gap:.35rem; }
.cuenta-form label:not(.cuenta-check){ font-size:.82rem; color:var(--cream-2); margin-top:.55rem; }
.cuenta-form input:not([type="checkbox"]), .premio select{
  width:100%; min-height:48px; padding:.7rem .9rem; font-size:16px;
  background:var(--bg-2); color:var(--cream);
  border:1.5px solid var(--line-2); border-radius:var(--radio-sm);
  transition:border-color .25s var(--ease), background-color .25s var(--ease);
}
.cuenta-form input:not([type="checkbox"]):focus, .premio select:focus{ outline:none; border-color:var(--dulce); background:var(--panel-2); }
.cuenta-form input[aria-invalid="true"]{ border-color:var(--frambuesa); }
.cuenta-form small{ font-size:.75rem; color:var(--cream-3); }
.cuenta-form .btn{ margin-top:.9rem; width:100%; }
.cuenta-error{ margin:.3rem 0 0; font-size:.86rem; color:#E58A99; }
.cuenta-error:empty{ display:none; }
.cuenta-check{ display:flex; align-items:flex-start; gap:.7rem; margin-top:.7rem; cursor:pointer; font-size:.84rem; color:var(--cream-2); line-height:1.45; }
.cuenta-check input{ width:22px; height:22px; min-width:22px; margin:0; accent-color:var(--dulce); }

/* ============================ SIN SESIÓN ============================ */
/* Primero el ingreso, debajo cómo funcionan los puntos (pedido de Facundo, 22/10/2026). */
.acceso-in{ padding-top:clamp(1.6rem, 4vw, 3rem); }
.acceso-in .acceso-form{ max-width:32rem; margin-inline:auto; }
.acceso-puntos{ margin-top:clamp(2.8rem, 7vw, 4.8rem); }
.acceso-intro{
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  column-gap:clamp(2rem, 6vw, 5.5rem); align-items:end;
}
.acceso-intro > :not(.acceso-regla){ grid-column:1; }
.acceso-intro .acceso-regla{ grid-column:2; max-width:none; }
.acceso-intro .kicker{ grid-row:1; }
.acceso-intro h2{ grid-row:2; font-size:clamp(2.4rem, 5.4vw, 4.2rem); line-height:1.02; margin-bottom:1.1rem; }
.acceso-intro .acceso-bajada{ grid-row:3; }
.acceso-intro .acceso-regla:not(.acceso-regalo){ grid-row:2; align-self:end; }
.acceso-intro .acceso-regalo{ grid-row:3; align-self:start; }
.acceso-intro h2 em{ display:block; }
.acceso-bajada{ max-width:30rem; font-size:clamp(1.02rem, 1.4vw, 1.15rem); color:var(--cream-2); }
.acceso-regla{
  display:flex; align-items:baseline; gap:.9rem; flex-wrap:wrap;
  margin-top:1.8rem; padding-top:1.3rem; border-top:1px solid var(--line); max-width:30rem;
}
.acceso-regla b{ font:500 1.9rem/1 var(--serif); color:var(--dulce); white-space:nowrap; }
.acceso-regla span{ font-size:.86rem; color:var(--cream-3); flex:1 1 14rem; }

.acceso-form{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radio);
  padding:clamp(1.4rem, 3vw, 2.2rem); box-shadow:var(--sombra);
}
.acceso-form h1{ font-size:clamp(1.8rem, 3vw, 2.3rem); line-height:1.1; margin-bottom:1.2rem; }
.cuenta-google{ width:100%; gap:.7rem; }
.cuenta-google svg{ width:20px; height:20px; }
.cuenta-separador{ display:flex; align-items:center; gap:1rem; margin:1.1rem 0 .2rem; color:var(--cream-3); font-size:.78rem; }
.cuenta-separador::before, .cuenta-separador::after{ content:""; flex:1; height:1px; background:var(--line-2); }
.cuenta-alternativas{ display:flex; flex-wrap:wrap; gap:0 1.4rem; margin-top:.3rem; }
.cuenta-cambiar{ margin-top:1rem; padding-top:.8rem; border-top:1px solid var(--line); font-size:.9rem; color:var(--cream-2); display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; }
.cuenta-cambiar .cuenta-link{ color:var(--dulce); text-decoration-color:rgba(226,167,86,.5); font-weight:600; font-size:.9rem; }
/* 27/10/2026: pantalla «Completá tus datos» (cuenta nueva con Google). */
.completar .acceso-form h1{ margin-bottom:.5rem; }
.completar .acceso-form h1:focus{ outline:none; }
.completar-bajada{ color:var(--cream-2); margin-bottom:.6rem; }
.completar .acceso-invitado{ margin-top:1rem; }
.acceso-invitado{ font-size:.86rem; color:var(--cream-3); }
.acceso-invitado a{ display:inline-flex; align-items:center; min-height:44px; }

.pasos{
  counter-reset:paso; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem, 3vw, 2.4rem);
  margin-top:clamp(2.6rem, 6vw, 4.2rem); padding-top:clamp(1.6rem, 3vw, 2.2rem); border-top:1px solid var(--line);
}
.pasos li{ counter-increment:paso; display:grid; grid-template-columns:auto 1fr; column-gap:.9rem; row-gap:.25rem; }
.pasos li::before{
  content:counter(paso); grid-row:span 2; font:italic 500 2.4rem/1 var(--serif); color:var(--dulce);
}
.pasos b{ font-weight:600; color:var(--cream); }
.pasos span{ font-size:.88rem; color:var(--cream-3); }

.acceso-premios{ margin-top:clamp(2.8rem, 7vw, 4.6rem); }
.acceso-premios .zona-cab{ padding-inline:0; margin-bottom:1.3rem; }
.muestra{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px 12px; }
.muestra li{ display:flex; flex-direction:column; }
.muestra img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:14px; background:#2B2018; margin-bottom:.7rem; }
.muestra b{ font-size:.95rem; font-weight:600; }
.muestra span{ font:500 1.05rem var(--serif); color:var(--dulce); white-space:nowrap; }
.muestra-nota{ margin-top:1.2rem; font-size:.86rem; color:var(--cream-3); }

/* ============================ CON SESIÓN ============================ */
.panel-cab{
  display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  padding:clamp(1.8rem, 4vw, 3rem) 0 clamp(1.4rem, 3vw, 2rem);
}
.panel-cab h1{ font-size:clamp(2.4rem, 5vw, 3.8rem); }
.panel-cab h1 em{ font-style:italic; }

/* Saldo arriba de todo (25/10/2026, referencia McDonald's): el número grande y «Movimientos» a la derecha. */
.saldo{
  position:relative; isolation:isolate; overflow:hidden;
  margin-bottom:clamp(1.4rem, 3vw, 2rem); padding:clamp(1.2rem, 3vw, 1.8rem) clamp(1.2rem, 3vw, 2rem);
  border-radius:20px; border:1px solid rgba(226,167,86,.28);
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(226,167,86,.18), transparent 55%),
    linear-gradient(160deg, var(--panel-3), var(--panel) 65%);
  box-shadow:var(--sombra);
}
.saldo-fila{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.saldo-numero{ display:flex; align-items:baseline; gap:.55rem; margin:0; }
.saldo-numero strong{
  font:500 clamp(3.6rem, 8vw, 5rem)/1 var(--serif); color:var(--dulce);
  font-variant-numeric:tabular-nums; letter-spacing:-.03em; min-height:1em;
}
.saldo-numero span{ font:500 1.05rem var(--sans); color:var(--cream-2); }
.cuenta-main a.saldo-movimientos{
  display:inline-flex; align-items:center; gap:.25rem; min-height:44px; padding:0 .2rem;
  color:var(--cream); font-weight:600; font-size:.95rem; text-decoration:none;
}
.cuenta-main a.saldo-movimientos:hover{ color:var(--dulce); }
.saldo-movimientos svg{ width:18px; height:18px; fill:none; stroke:var(--dulce); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s var(--ease); }
.saldo-movimientos:hover svg{ transform:translateX(3px); }
.saldo .progreso{ margin:.9rem 0 0; max-width:34rem; }
.saldo-acciones{ display:flex; align-items:center; gap:.6rem 1.2rem; flex-wrap:wrap; margin-top:1.1rem; }
.saldo-ayuda{ font-size:.82rem; color:var(--cream-2); }
.saldo-vence{ margin-top:1rem; padding-top:.8rem; border-top:1px solid var(--line); font-size:.78rem; color:var(--cream-3); display:flex; flex-wrap:wrap; align-items:center; gap:0 1rem; }
.saldo-vence .cuenta-link{ font-size:.8rem; color:var(--cream-3); }
.progreso{ margin-bottom:1.1rem; }
.progreso p{ font-size:.9rem; color:var(--cream); margin-bottom:.5rem; }
.progreso p b{ color:var(--dulce); font-weight:600; }
.progreso-barra{ height:6px; border-radius:99px; background:rgba(243,234,219,.12); overflow:hidden; }
.progreso-barra span{ display:block; height:100%; width:0; border-radius:inherit; background:var(--dulce); transition:width .9s var(--ease); }

/* Premios por nivel: pestañas fijas (los mismos rieles de la carta) y una fila deslizable por nivel. */
.premios{ margin-top:clamp(1.6rem, 4vw, 2.6rem); }
.premios-cab h2{ font-size:clamp(2rem, 4vw, 2.8rem); margin-bottom:.4rem; }
.premios-cab > p:not(.cuenta-vacio){ color:var(--cream-3); font-size:.92rem; max-width:36rem; }
.niveles{ margin-top:1.1rem; }
.niveles .riel{ text-decoration:none !important; }
.niveles .riel.es-activo{ color:#20170C; }
.nivel{ padding-top:clamp(1.6rem, 4vw, 2.4rem); scroll-margin-top:calc(var(--barra-h) + var(--nav-h) + var(--rieles-h)); }
.nivel-titulo{ font:500 clamp(1.5rem, 3.4vw, 2rem)/1.15 var(--serif); margin-bottom:.9rem; }
.nivel-fila{
  --borde-fila:max(20px, calc((100vw - var(--wrap)) / 2 + 20px));
  display:flex; gap:12px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-padding-inline:var(--borde-fila);
  padding:0 var(--borde-fila) 8px; scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.nivel-fila::-webkit-scrollbar{ display:none; }
.premio{
  flex:0 0 clamp(148px, 40vw, 220px); scroll-snap-align:start; min-width:0;
  display:flex; flex-direction:column; align-items:flex-start; gap:.4rem;
  padding:0; text-align:left; color:var(--cream); background:none; border:0; cursor:pointer;
  border-radius:16px;
}
.premio:focus-visible{ outline:3px solid var(--dulce); outline-offset:3px; }
.premio-foto{ position:relative; width:100%; aspect-ratio:4/5; border-radius:16px; overflow:hidden; background:#2B2018; margin-bottom:.25rem; }
/* Mismo encuadre 4:5 de los productos: tapa, sorbete, comida y plato completos, sin zoom extra. */
.premio-foto img{ width:100%; height:100%; object-fit:cover; object-position:center; transition:opacity .3s var(--ease); }
.premio:active .premio-foto{ transform:scale(.98); }
.premio-foto, .hoja-premio-foto{ transition:transform .15s var(--ease); }
.premio-foto.sin-foto, .hoja-premio-foto.sin-foto{ display:grid; place-items:center; background:radial-gradient(80% 70% at 50% 35%, #4A3626, #2B2018); }
.premio-foto.sin-foto .premio-inicial, .hoja-premio-foto.sin-foto .premio-inicial{ font:italic 500 3.4rem var(--serif); color:var(--dulce); opacity:.8; }
.premio-sello{
  position:absolute; left:10px; top:10px; padding:.3rem .65rem; border-radius:99px;
  background:var(--dulce); color:#20170C; font-size:.72rem; font-weight:700; letter-spacing:.02em;
}
.premio-nombre{ font-size:.95rem; font-weight:600; line-height:1.25; }
.premio-pts{
  display:inline-flex; align-items:center; gap:.35rem; padding:.32rem .7rem; border-radius:99px;
  background:rgba(243,234,219,.1); border:1px solid var(--line-2);
  font-size:.84rem; font-weight:600; color:var(--cream-2); font-variant-numeric:tabular-nums; white-space:nowrap;
}
.premio-pts svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.premio-pts.alcanza{ background:rgba(226,167,86,.14); border-color:rgba(226,167,86,.55); color:var(--dulce); }
.premio.lejos .premio-foto img{ opacity:.42; filter:saturate(.6); }
.premio.lejos .premio-nombre{ color:var(--cream-2); }
.cuenta-vacio{ color:var(--cream-3); font-size:.92rem; margin-top:1rem; }

/* Hoja del premio: abajo en el celular, centrada en la compu. */
.hoja-premio{
  margin:auto; width:min(440px, calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto;
  padding:0; border-radius:22px; border:1px solid rgba(226,167,86,.3);
  background:var(--panel); color:var(--cream); box-shadow:var(--sombra-lg);
}
.hoja-premio::backdrop{ background:rgba(10,8,6,.72); backdrop-filter:blur(4px); }
.hoja-premio > div{ display:flex; flex-direction:column; gap:.4rem; padding:1.2rem 1.3rem 1.4rem; }
.hoja-premio-cerrar{ position:absolute; right:12px; top:12px; z-index:1; background:rgba(20,16,12,.72); }
.hoja-premio-foto{ width:100%; aspect-ratio:1; border-radius:16px; overflow:hidden; background:#171511; margin-bottom:.5rem; }
.hoja-premio-foto img{ width:100%; height:100%; object-fit:contain; object-position:center; }
.hoja-premio h2{ font-size:1.7rem; line-height:1.15; padding-right:2.6rem; }
.hoja-premio .premio-puntos{ font:500 1.25rem var(--serif); color:var(--dulce); }
.hoja-premio label{ font-size:.82rem; color:var(--cream-2); margin-top:.5rem; }
.hoja-premio select{
  width:100%; min-height:48px; padding:.6rem .9rem; font-size:16px; color-scheme:dark;
  background:var(--bg-2); color:var(--cream); border:1.5px solid var(--line-2); border-radius:var(--radio-sm);
}
.hoja-premio select:focus{ outline:none; border-color:var(--dulce); background:var(--panel-2); }
.hoja-premio .btn{ width:100%; min-height:50px; }
.hoja-premio > div > .btn{ margin-top:1rem; }
.premio-acciones{ display:grid; gap:.5rem; margin-top:.9rem; }
.premio-combo{ display:flex; flex-direction:column; gap:.4rem; }
.premio-combo[hidden]{ display:none; }
.premio-combo-nota{ font-size:.82rem; color:var(--cream-2); margin-top:.2rem; }
.premio-falta{ margin-top:.5rem; font-size:.92rem; color:var(--cream-2); }
.premio-falta b{ color:var(--dulce); }
.hoja-premio .progreso-barra{ margin-top:.4rem; }
.hoja-premio small{ font-size:.86rem; color:#E58A99; }
.hoja-premio small:empty{ display:none; }
.hoja-premio small.es-ok{ color:var(--cream-2); }
.hoja-premio small .cuenta-link{ margin-left:.15rem; }
.hoja-premio-nota{ margin-top:.6rem; font-size:.8rem; color:var(--cream-3); line-height:1.45; }
@media (max-width: 599px){
  .hoja-premio{ width:100%; max-width:none; margin:auto 0 0; border-radius:22px 22px 0 0; border-bottom:0; max-height:92dvh; padding-bottom:env(safe-area-inset-bottom); }
  .hoja-premio[open]{ animation:hoja-sube .32s var(--ease); }
}
@keyframes hoja-sube{ from{ transform:translateY(40px); opacity:0; } }

/* Canje pendiente: arriba de todo, con borde dulce */
.pendientes{
  margin-bottom:1.6rem; padding:1.3rem 1.4rem; border-radius:var(--radio);
  background:rgba(226,167,86,.08); border:1.5px solid var(--dulce);
  scroll-margin-top:calc(var(--barra-h) + var(--nav-h) + 16px);
}
.pendientes:focus{ outline:none; }
.pendientes h2{ font-size:1.6rem; margin-bottom:.6rem; }
.pendientes > div + div{ margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.pendientes p{ font-size:.92rem; color:var(--cream-2); }
.pendientes p:first-child{ color:var(--cream); font-weight:600; font-size:1rem; }
.pendientes .btn{ margin-top:.8rem; }

/* Historial */
.historial{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem, 4vw, 3.6rem); margin-top:clamp(2.6rem, 6vw, 4rem); padding-top:clamp(1.6rem, 3vw, 2.2rem); border-top:1px solid var(--line); }
.historial h2{ font-size:clamp(1.4rem, 2.4vw, 1.8rem); margin-bottom:.6rem; }
.cuenta-lista li{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.cuenta-lista small{ display:block; margin-top:.15rem; color:var(--cream-3); font-size:.78rem; }
.cuenta-lista strong{ font-variant-numeric:tabular-nums; white-space:nowrap; font-weight:600; }
.cuenta-lista strong.suma{ color:var(--pistacho); }
.cuenta-lista strong.resta{ color:var(--cream-2); }
.cuenta-lista strong.pendiente{ color:var(--cream-3); font-weight:500; }

/* Datos: plegados, se abren cuando hace falta */
.datos{ margin-top:clamp(2rem, 5vw, 3rem); border:1px solid var(--line); border-radius:var(--radio); background:var(--bg-2); }
.datos summary{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  min-height:56px; padding:.9rem 1.3rem; cursor:pointer; list-style:none;
}
.datos summary::-webkit-details-marker{ display:none; }
.datos summary span{ font:500 1.25rem var(--serif); }
.datos summary small{ color:var(--cream-3); font-size:.82rem; flex:1; }
.datos summary::after{ content:"+"; font-size:1.4rem; color:var(--dulce); line-height:1; }
.datos[open] summary::after{ content:"−"; }
.datos summary:focus-visible{ outline-offset:-3px; border-radius:var(--radio); }
.datos form, .datos > .cuenta-link{ max-width:30rem; margin:0 1.3rem; }
.datos > .cuenta-link{ margin-bottom:1rem; }
.datos .btn{ width:auto; align-self:flex-start; }

/* ============================ QR ============================ */
.qr{
  margin:auto; /* el reset de styles.css (*{margin:0}) le saca el centrado al <dialog> */
  width:min(400px, calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto;
  padding:1.4rem; border-radius:20px; border:1px solid rgba(226,167,86,.3);
  background:var(--panel); color:var(--cream); box-shadow:var(--sombra-lg);
}
.qr::backdrop{ background:rgba(10,8,6,.78); backdrop-filter:blur(4px); }
.qr-cab{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.qr-cab h2{ font-size:1.6rem; }
.qr-cerrar{ width:44px; height:44px; border-radius:99px; border:1.5px solid var(--line-2); font-size:1.5rem; line-height:1; color:var(--cream); }
.qr-cerrar:hover{ border-color:var(--dulce); color:var(--dulce); }
.qr-instruccion{ margin:.5rem 0 1rem; font-size:.92rem; color:var(--cream-2); }
.qr-lamina{ background:#fff; border-radius:16px; padding:10px; }
.qr-lamina canvas{ display:block; width:100%; max-width:300px; height:auto; margin:0 auto; }
.qr-lamina:has(canvas[hidden]){ display:none; }
.qr-tiempo{ height:4px; margin-top:1rem; border-radius:99px; background:rgba(243,234,219,.12); overflow:hidden; }
.qr-tiempo span{ display:block; height:100%; width:100%; background:var(--dulce); transform-origin:left; }
.qr-estado{ margin-top:.5rem; font-size:.84rem; color:var(--cream-2); text-align:center; min-height:1.3em; }
.qr .btn{ width:100%; margin-top:.6rem; }
.qr-codigo{ display:flex; flex-direction:column; align-items:center; gap:.3rem; margin-top:1rem; padding-top:.9rem; border-top:1px solid var(--line); text-align:center; }
.qr-codigo span{ font-size:.78rem; color:var(--cream-3); }
.qr-codigo code{ font-size:.82rem; overflow-wrap:anywhere; padding:.5rem .7rem; border-radius:8px; background:var(--bg-2); color:var(--cream); letter-spacing:.04em; }
.qr-codigo code:empty{ display:none; }

/* Pie más corto que el de la carta: sin pagos ni mascotas */
.cuenta .pie-in{ grid-template-columns:1.4fr 1fr 1fr; }

/* ============================ PROGRAMA DE PUNTOS (texto) ============================ */
.texto-programa{ max-width:46rem; padding-top:clamp(2rem, 5vw, 3.4rem); }
.texto-programa h1{ font-size:clamp(2.4rem, 5.6vw, 4rem); margin-bottom:1.2rem; }
.texto-programa h2{ font-size:clamp(1.4rem, 2.6vw, 1.8rem); margin:2.2rem 0 .7rem; }
.texto-programa p{ color:var(--cream-2); margin-bottom:.9rem; }
.texto-programa .acceso-regla{ max-width:none; margin:1.4rem 0 1rem; }

/* ============================ RESPONSIVE ============================ */
/* Pasos 5 y 6 (22/10/2026): fecha de nacimiento, descuentos y pedido de cumpleaños */
.acceso-regalo{ margin-top:.9rem; padding-top:.9rem; }
.cuenta-fecha{ border:0; padding:0; margin:.55rem 0 0; min-width:0; }
.cuenta-fecha legend{ font-size:.82rem; color:var(--cream-2); padding:0; margin-bottom:.1rem; }
.cuenta-fecha-campos{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) minmax(0,1fr); gap:.5rem; }
.cuenta-fecha-campos label{ font-size:.75rem !important; color:var(--cream-3) !important; margin-top:.35rem !important; display:block; margin-bottom:.25rem; }
.cuenta-fecha select, .cuenta-fecha input{
  width:100%; min-height:48px; padding:.7rem .6rem; font-size:16px; background:var(--bg-2); color:var(--cream);
  border:1.5px solid var(--line-2); border-radius:var(--radio-sm);
}
.cuenta-fecha select:focus, .cuenta-fecha input:focus{ outline:none; border-color:var(--dulce); background:var(--panel-2); }
.cuenta-fecha [aria-invalid="true"]{ border-color:var(--frambuesa); }
.cuenta-fecha small{ display:block; margin-top:.45rem; line-height:1.45; }
.cuenta-fecha small a{ color:var(--cream-2); }
.cuenta-nota{ font-size:.84rem; color:var(--cream-3); margin-top:.6rem; }
.cuenta-nota .cuenta-link{ display:inline; padding:0; min-height:0; }

.descuentos{ margin-bottom:1.6rem; }
.descuentos h2{ font-size:1.6rem; margin-bottom:.8rem; }
.descuentos-lista{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap:12px; }
.descuento{
  display:flex; gap:1.1rem; align-items:flex-start; padding:1.2rem 1.3rem; border-radius:var(--radio);
  background:rgba(226,167,86,.08); border:1.5px solid var(--dulce);
}
.descuento .descuento-pct{ font:500 2.4rem/1 var(--serif); color:var(--dulce); white-space:nowrap; min-width:4.2rem; }
.descuento h3{ font-size:1.05rem; color:var(--cream); margin-bottom:.35rem; }
.descuento p{ font-size:.9rem; color:var(--cream-2); line-height:1.5; }
.descuento .descuento-codigo{ margin:.1rem 0 .35rem; color:var(--cream); }
.descuento code{ font:600 1rem/1.3 ui-monospace, "Cascadia Code", Consolas, monospace; letter-spacing:.02em; overflow-wrap:anywhere; user-select:all; }
.descuento .cuenta-link{ margin-top:.45rem; }
.descuento-nota{ color:var(--cream-3) !important; font-size:.84rem !important; }

.nacimiento-pedido{
  margin-bottom:1.6rem; padding:1.3rem 1.4rem; border-radius:var(--radio);
  background:var(--bg-2); border:1px solid var(--line-2); max-width:40rem;
}
.nacimiento-pedido h2{ font-size:1.45rem; margin-bottom:.4rem; }
.nacimiento-pedido > p{ font-size:.92rem; color:var(--cream-2); }
.nacimiento-pedido .cuenta-link{ align-self:center; margin-top:.5rem; }

@media (max-width: 859px){
  .acceso-in{ padding-top:1.2rem; }
  .acceso-intro{ display:block; }
  .acceso-intro h2{ font-size:clamp(2.2rem, 10vw, 3rem); margin-bottom:.9rem; }
  .acceso-regla{ margin-top:1.1rem; padding-top:1rem; }
  .pasos{ grid-template-columns:1fr; gap:1.1rem; }
  .muestra{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .historial{ grid-template-columns:1fr; }
  .cuenta .pie-in{ grid-template-columns:1fr; }
}
@media (max-width: 479px){
  .acceso-form{ padding:1.3rem 1.1rem; margin-inline:-4px; }
  .panel-cab{ align-items:center; }
  .panel-cab h1{ font-size:2.3rem; }
  .datos form, .datos > .cuenta-link{ margin:0 1rem; }
  .descuento{ padding:1rem; gap:.8rem; }
  .descuento .descuento-pct{ font-size:2rem; min-width:3.4rem; }
  .nacimiento-pedido{ padding:1.1rem 1rem; }
}

@media (prefers-reduced-motion: reduce){
  .progreso-barra span, .qr-tiempo span{ transition:none !important; }
  .hoja-premio[open]{ animation:none !important; }
  .premio-foto img, .premio-foto, .saldo-movimientos svg{ transition:none !important; transform:none !important; }
}
.premios + .wrap .nacimiento-pedido{ margin-top:clamp(2.2rem, 5vw, 3.2rem); }
.cuenta .niveles .rieles-in{ padding-inline:20px; } /* alineado con .wrap, como el resto de la cuenta */

/* 25/10/2026, menos texto: saludo chico sobre el saldo y «Cerrar sesión» al final. */
.panel-cab{ padding:clamp(1.2rem, 3vw, 2rem) 0 .9rem; }
.panel-cab h1{ font-size:clamp(1.9rem, 4vw, 2.6rem); }
.saldo-vence{ margin-top:.8rem; padding-top:0; border-top:0; }
.saldo-vence:empty{ display:none; }
.cuenta-salir{ display:flex; width:100%; max-width:22rem; margin:1.6rem auto 0; gap:.6rem; }
.cuenta-salir svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* 06/11/2026: con sesión guardada (cuenta-arranque.js) no se muestra el ingreso mientras cargan los puntos. */
.cuenta-cargando{ display:none; }
.cuenta-con-sesion .cuenta-cargando{ display:block; padding-top:clamp(1.2rem, 3vw, 2rem); color:var(--cream-2); }
.cuenta-con-sesion #cuenta-acceso{ display:none; }
.cuenta-cargando-titulo{ margin:0 0 .9rem; font-family:var(--serif); font-size:clamp(1.9rem, 4vw, 2.6rem); line-height:1.1; color:var(--cream); }
.cuenta-cargando-titulo + p{ min-height:7.5rem; padding:clamp(1.2rem, 3vw, 1.8rem) clamp(1.2rem, 3vw, 2rem); border-radius:20px; border:1px solid rgba(226,167,86,.28); background:linear-gradient(160deg, var(--panel-3), var(--panel) 65%); animation:cuenta-latido 1.6s var(--ease) infinite alternate; }
@keyframes cuenta-latido{ to{ opacity:.6; } }
@media (prefers-reduced-motion: reduce){ .cuenta-cargando-titulo + p{ animation:none; } }
