/* Página de ingreso: azulejo de Las Ramblas sobre fondo de pared, formulario sencillo debajo */
[hidden]{display:none!important}
body.ingreso{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;
  background:var(--bg) radial-gradient(ellipse at top,var(--sunk),transparent 70%) no-repeat}
.caja{width:100%;max-width:400px;padding:48px 16px 32px;display:flex;flex-direction:column;gap:16px}
.logo img{border-radius:3px;width:100%;height:auto;display:block;filter:drop-shadow(0 6px 14px rgba(20,30,60,.18))}
.lema{text-align:center;color:var(--muted);margin:-4px 0 4px;font-size:13px;letter-spacing:.04em}
.form{display:flex;flex-direction:column;gap:6px;padding:20px}
.form h2{margin-bottom:6px}
.form label{font-size:13px;font-weight:500;margin-top:6px}
.form input{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--bg);font-size:15px}
.form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.form .btn{justify-content:center;padding:10px 12px;margin-top:10px}
.form p{margin:8px 0 0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.codigo{font-family:var(--f-num);font-size:22px!important;letter-spacing:.25em;text-align:center}
.qr{background:#fff;border-radius:var(--r);padding:10px;width:200px;margin:4px auto}
.qr svg{display:block;width:100%;height:auto}
.pasos{margin:4px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.secreto{word-break:break-all;margin:6px 0 0}
details summary{cursor:pointer;color:var(--accent)}
.recuperacion{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;text-align:center;font-size:15px}
.check{display:flex;align-items:center;gap:8px;margin-top:10px}
