/* A ver si ahorra · identidad: tinta azul marino, fondo gris verdoso, semáforo lima / ámbar / coral. */
:root{
  --tinta:#10203A; --tinta2:#44506A; --suave:#5B6678; --tenue:#8A93A3;
  --fondo:#F1F3EE; --carta:#FFFFFF; --linea:#E6E9E2; --hueco:#EEF1EA;
  --accion:#176B48;
  --verde:#D7F260; --verde-t:#2F4A12;
  --ambar:#FFE39A; --ambar-t:#5A3E00;
  --rojo:#FFD6CE; --rojo-t:#7A1F12;
  --d:'Bricolage Grotesque','Onest',system-ui,sans-serif;
  --t:'Onest',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--t);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
a{color:var(--accion);text-decoration:none}
.app{max-width:520px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
.cargando{padding:80px 20px;color:var(--suave)}
.d{font-family:var(--d);font-variant-numeric:tabular-nums}
.marca{font-family:var(--d);font-size:19px;font-weight:800;letter-spacing:-.02em}
.cab{padding:calc(18px + env(safe-area-inset-top)) 20px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--tinta2);background:var(--carta);border:1px solid var(--linea);border-radius:999px;padding:6px 10px;cursor:pointer}
h1{font-family:var(--d);margin:22px 0 0;font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.02}
.sub{margin-top:6px;font-size:14px;color:var(--suave)}
.pad{padding:0 20px}
.sec{font-family:var(--d);font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--tinta);margin:22px 0 2px}
.carta{background:var(--carta);border:1px solid var(--linea);border-radius:16px;padding:14px}
.fila{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--linea)}
.fila:last-child{border-bottom:0}
.chk{width:26px;height:26px;border-radius:50%;border:2px solid #B8C0B4;background:#fff;flex:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.chk.on{background:var(--tinta);border-color:var(--tinta);color:#fff}
.nom{flex:1;min-width:0;font-size:15px;font-weight:500}
.nom.hecho{color:var(--tenue);text-decoration:line-through}
.cant{display:flex;align-items:center;gap:2px}
.cant button{width:32px;height:32px;border:0;background:var(--hueco);border-radius:9px;font-weight:700;cursor:pointer}
.cant span{min-width:42px;text-align:center;font-size:13px;color:var(--suave)}
.campo{display:flex;align-items:center;gap:10px;background:var(--carta);border:1px solid var(--linea);border-radius:14px;padding:4px 14px}
.campo input{border:0;outline:0;flex:1;font-size:15px;font-weight:500;background:transparent;height:44px}
.sugs{background:var(--carta);border:1px solid var(--linea);border-radius:14px;margin-top:6px;overflow:hidden}
.sugs button{display:flex;justify-content:space-between;width:100%;border:0;background:none;text-align:left;padding:12px 14px;border-bottom:1px solid var(--linea);font-size:15px;cursor:pointer}
.sugs button:last-child{border-bottom:0}
.sugs small{color:var(--suave)}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:14px;border:1.5px solid var(--linea);background:var(--carta);font-weight:600;font-size:15px;cursor:pointer;padding:0 16px;width:100%}
.btn.pri{background:var(--tinta);border-color:var(--tinta);color:#fff}
.btn.lima{background:var(--verde);border-color:var(--verde);color:var(--tinta)}
.btn:disabled{opacity:.5;cursor:default}
.cartel{display:flex;align-items:center;gap:12px;background:var(--verde);color:var(--tinta);border-radius:20px;padding:14px 14px 14px 18px;box-shadow:0 14px 30px rgba(47,74,18,.28);cursor:pointer;border:0;width:100%;text-align:left}
.cartel .k{display:block;font-size:13px;font-weight:600;color:var(--verde-t)}
.cartel .n{display:block;font-family:var(--d);font-size:36px;font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:2px;font-variant-numeric:tabular-nums}
.cartel .s{display:block;font-size:14px;font-weight:600;margin-top:4px}
.cartel .ir{flex:none;display:flex;align-items:center;gap:6px;background:var(--tinta);color:#fff;border-radius:999px;padding:10px 12px 10px 14px;font-size:13px;font-weight:700;white-space:nowrap}
.cartel .ir .ico{width:16px;height:16px}
.flota{position:fixed;left:50%;transform:translateX(-50%);width:min(520px,100%);bottom:calc(74px + env(safe-area-inset-bottom));padding:14px 16px 10px;background:linear-gradient(180deg,rgba(241,243,238,0),var(--fondo) 40%);z-index:5}
nav.tabs{position:fixed;left:50%;transform:translateX(-50%);width:min(520px,100%);bottom:0;background:#fff;border-top:1px solid var(--linea);display:flex;padding:0 8px env(safe-area-inset-bottom);z-index:6}
nav.tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0 8px;font-size:11px;font-weight:600;color:var(--suave);background:none;border:0;cursor:pointer}
nav.tabs button.on{color:var(--tinta)}
.ico{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.leyenda{display:flex;gap:14px;font-size:12px;color:var(--suave);flex-wrap:wrap}
.leyenda i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.super{background:var(--carta);border:1px solid var(--linea);border-radius:18px;padding:16px}
.super.mejor{border-color:var(--tinta)}
.super .tit{display:flex;align-items:center;justify-content:space-between;gap:8px}
.super .tit b{min-width:0;font-family:var(--d);font-size:20px;font-weight:700}
.tag{font-size:12px;font-weight:700;border-radius:7px;padding:4px 8px;white-space:nowrap}
.tag.v{color:var(--verde-t);background:var(--verde)}
.tag.a{color:var(--ambar-t);background:var(--ambar)}
.tag.r{color:var(--rojo-t);background:var(--rojo)}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.col{border-radius:12px;padding:10px 12px;background:var(--fondo)}
.col .l{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
.col .n{font-family:var(--d);font-size:24px;font-weight:800;letter-spacing:-.02em;margin-top:4px}
.col .p{font-size:12px;font-weight:600;color:var(--accion);margin-top:4px}
.col.gana{background:var(--verde)} .col.gana .l,.col.gana .p{color:var(--verde-t)}
.col.caro{background:var(--rojo)} .col.caro .l,.col.caro .n,.col.caro .p{color:var(--rojo-t)}
.col.falta{background:var(--ambar)} .col.falta .l,.col.falta .n,.col.falta .p{color:var(--ambar-t)}
.promo{display:flex;gap:8px;margin-top:12px;font-size:13px;line-height:1.4;color:var(--tinta2)}
details.det{margin-top:10px} details.det summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--accion)}
.item{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--linea)}
.pills{display:flex;gap:8px;overflow-x:auto;padding:0 20px 2px}
.pill{flex:none;font-size:13px;font-weight:600;color:var(--tinta2);background:#fff;border:1px solid var(--linea);border-radius:999px;padding:8px 12px;cursor:pointer;white-space:nowrap}
.pill.on{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.sw{width:44px;height:26px;border-radius:13px;background:#D5DAD1;position:relative;flex:none;border:0;cursor:pointer;padding:0}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}
.sw.on{background:var(--tinta)} .sw.on::after{left:21px}
.aviso{font-size:13px;color:var(--suave);line-height:1.5}
.error{color:var(--rojo-t);background:var(--rojo);border-radius:12px;padding:12px 14px;font-size:14px}
.oscuro{background:var(--tinta);color:#fff;min-height:100vh;min-height:100dvh}
.opt{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1.5px solid var(--linea);border-radius:14px;padding:14px;cursor:pointer;width:100%;text-align:left}
.opt.on{border-color:var(--tinta);box-shadow:0 0 0 1px var(--tinta) inset}
.radio{width:22px;height:22px;border-radius:50%;border:2px solid #B8C0B4;flex:none;margin-top:1px}
.opt.on .radio{border:7px solid var(--tinta)}
@media (prefers-reduced-motion:reduce){.sw::after{transition:none}}

/* ---------- Bienvenida ---------- */
.app.bv-app{max-width:none;padding-bottom:0}
.bv-oscuro{background:var(--tinta);color:#fff}
.bv-oscuro .in{max-width:520px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 20px 0}
.bv-top{display:flex;align-items:center;gap:10px}
.bv-top .ico{width:30px;height:30px;stroke-width:2}
.bv-oscuro h1{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:.98;margin-top:34px;color:#fff;max-width:20ch}
.bv-oscuro h1.chica{font-size:34px}
.bv-sub{margin-top:16px;font-size:16px;line-height:1.45;color:#C9D0DD;max-width:34ch}
.bv-sub b{color:#fff;font-weight:600}
.bv-claro .in{max-width:520px;margin:0 auto;padding:0 20px 44px}

/* El ticket: la lista de todos los días con lo que sale hoy en cada súper. */
.ticket-wrap{margin:28px 0 -150px;position:relative;z-index:1;filter:drop-shadow(0 18px 28px rgba(16,32,58,.28))}
.ticket-wrap.vacio{margin-bottom:0;padding-bottom:36px}
.bv-claro .in{padding-top:170px}
.bv-claro .in.sin-ticket{padding-top:28px}
.ticket{background:#fff;border-radius:14px 14px 0 0;padding:16px 18px 10px;position:relative;color:var(--tinta)}
.ticket::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:9px;
  background:linear-gradient(-45deg,transparent 6.4px,#fff 0) 0 0/18px 9px repeat-x,linear-gradient(45deg,transparent 6.4px,#fff 0) 9px 0/18px 9px repeat-x}
.ticket-cab{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;color:var(--suave)}
.ticket-cab b{font-family:var(--d);font-weight:700;color:var(--tinta);font-size:15px}
.ticket ul{list-style:none;margin:10px 0 0;padding:0;border-top:1.5px dashed var(--linea)}
.ticket li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:14px;color:var(--tinta2);line-height:1.3}
.ticket li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ticket li span:last-child{color:var(--tenue);font-variant-numeric:tabular-nums;flex:none}
.ticket-tot{margin-top:10px;padding-top:12px;border-top:1.5px dashed var(--linea);font-size:14px;font-weight:600;color:var(--tinta)}
.barras{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.barra{height:42px;border-radius:9px;background:var(--hueco);position:relative;overflow:hidden}
.barra i{position:absolute;inset:0;width:var(--w);background:var(--linea);border-radius:9px;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.2,.8,.2,1) var(--retardo,0s)}
.barra.gana i{background:var(--verde)} .barra.caro i{background:var(--rojo)}
.barra span{position:absolute;left:14px;top:0;height:42px;display:flex;align-items:center;font-family:var(--d);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--tinta);font-variant-numeric:tabular-nums}
.barra.caro span{color:var(--rojo-t)} .barra.gana span{color:var(--verde-t)}
.barra em{font-style:normal;font-family:var(--t);font-weight:600;font-size:12px;margin-left:8px;color:inherit;opacity:.85}
.listo .barra i{transform:scaleX(1)}
.ticket-pie{margin-top:12px;font-size:13px;color:var(--suave);display:flex;align-items:center;gap:6px}
.ticket-pie .ico{width:16px;height:16px;color:var(--accion)}
.ticket.hueco{min-height:300px}
.ticket.hueco .hueso{height:14px;border-radius:7px;background:var(--hueco);margin-top:12px}

/* El formulario */
.bv-form .lbl{display:block;font-family:var(--d);font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--tinta)}
.cp-fila{display:flex;align-items:center;gap:12px;margin-top:10px}
.cp-fila input{width:118px;height:54px;border:2px solid var(--tinta);border-radius:14px;background:#fff;padding:0 16px;font-family:var(--d);font-size:24px;font-weight:800;letter-spacing:.04em;outline:0}
.cp-fila input:focus-visible{box-shadow:0 0 0 3px rgba(23,107,72,.25)}
.zona{font-size:13px;font-weight:600;line-height:1.35;display:flex;align-items:flex-start;gap:6px;color:var(--accion)}
.zona .ico{width:16px;height:16px;flex:none;margin-top:1px}
.zona.no{color:var(--ambar-t)}
.bv-form .opts{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.bv-form .opt b{display:block;font-size:15px;font-weight:600}
.bv-form .opt .aviso{display:block;margin-top:2px;line-height:1.4}
.bv-form input[type=email]{width:100%;height:54px;border:1.5px solid var(--linea);border-radius:14px;background:#fff;padding:0 16px;font-size:16px;font-weight:500;outline:0;margin-top:10px}
.bv-form input[type=email]:focus-visible{border-color:var(--tinta)}
.bv-form .btn{min-height:56px;font-size:16px;font-weight:700}
.bv-form .btn:focus-visible,.bv-form .opt:focus-visible{outline:3px solid rgba(23,107,72,.35);outline-offset:2px}
.bv-pie{text-align:center;font-size:13px;color:var(--suave);line-height:1.5;margin-top:12px}
.enviado{background:#fff;border-radius:16px;padding:18px;box-shadow:0 10px 24px rgba(16,32,58,.1)}
.enviado h2{font-family:var(--d);font-size:24px;font-weight:800;letter-spacing:-.02em;margin:0}
.enviado p{font-size:14px;line-height:1.5;color:var(--tinta2);margin:8px 0 0}
.enviado .campo{margin-top:12px}
.enviado .campo input{font-family:var(--d);font-size:22px;font-weight:700;letter-spacing:.12em}

/* En pantallas anchas: la historia a la izquierda sobre azul, el formulario a la derecha. */
@media (min-width:860px){
  .bv{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
  .bv-oscuro .in{max-width:520px;margin:0 0 0 auto;padding:48px 56px 56px 24px}
  .ticket-wrap{margin-bottom:0}
  .bv-claro .in,.bv-claro .in.sin-ticket{max-width:460px;margin:0 auto 0 0;padding:64px 24px 56px 56px}
}
@media (prefers-reduced-motion:reduce){.barra i{transition:none}}

/* ---------- Descargar la app ---------- */
.chip-instalar{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:var(--verde);color:var(--tinta);border:0;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer}
.chip-instalar .ico{width:16px;height:16px;stroke-width:2.2}
.aviso-instalar{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid var(--tinta);border-radius:16px;padding:10px 8px 10px 10px;margin-top:16px}
.aviso-instalar img{border-radius:11px;flex:none}
.aviso-instalar b{display:block;font-size:15px}
.aviso-instalar .btn{width:auto;min-height:40px;padding:0 14px;font-size:14px;flex:none}
.aviso-instalar .x{width:32px;height:32px;border:0;background:none;font-size:22px;line-height:1;color:var(--suave);cursor:pointer;flex:none}
.aviso-instalar + h1{margin-top:18px}
.vistaCasa-instalar{margin-top:24px}
.pad > button[data-instalar].btn{margin-top:24px}
.btn .ico{width:20px;height:20px}
.hoja-fondo{position:fixed;inset:0;background:rgba(16,32,58,.55);z-index:20;display:flex;align-items:flex-end;justify-content:center;animation:aparece .18s ease-out}
.hoja{background:var(--fondo);width:min(520px,100%);border-radius:24px 24px 0 0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));animation:sube .24s cubic-bezier(.2,.8,.2,1)}
.hoja-icono{display:flex;justify-content:center}
.hoja-icono img{border-radius:16px;box-shadow:0 8px 20px rgba(16,32,58,.25)}
.hoja h2{font-family:var(--d);font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.1;text-align:center;margin:16px auto 0;max-width:16ch}
.pasos{list-style:none;padding:0;margin:20px 0;display:flex;flex-direction:column;gap:8px}
.pasos li{display:flex;gap:12px;align-items:flex-start;background:#fff;border-radius:14px;padding:12px 14px}
.paso-ico{width:38px;height:38px;border-radius:10px;background:var(--verde);display:flex;align-items:center;justify-content:center;flex:none}
.paso-t{display:block;font-weight:500;font-size:15px}
.paso-t b{font-weight:700}
.pasos .aviso{display:block;margin-top:2px}
@media (min-width:860px){.hoja-fondo{align-items:center}.hoja{border-radius:24px}}
@keyframes aparece{from{opacity:0}}
@keyframes sube{from{transform:translateY(40px);opacity:.6}}
@media (prefers-reduced-motion:reduce){.hoja-fondo,.hoja{animation:none}}
