:root{--p:#6B1C2E;--s:#9E2B43;--bg:#faf7f5;--tx:#231418;--ok:#1b7a3d;--err:#b3261e}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--tx);min-height:100vh}
.wrap{max-width:640px;margin:0 auto;padding:20px;min-height:100vh;display:flex;flex-direction:column}
header.hero{background:linear-gradient(135deg,var(--p),var(--s));color:#fff;border-radius:18px;padding:22px 24px;margin-bottom:18px;text-align:center}
header.hero h1{font-size:1.45rem;letter-spacing:.3px}
header.hero p{opacity:.9;font-size:.95rem;margin-top:4px}
.logo-slot{width:88px;height:88px;border-radius:50%;background:rgba(255,255,255,.18);margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:.7rem;border:2px dashed rgba(255,255,255,.5)}
.card{background:#fff;border-radius:16px;padding:22px;box-shadow:0 2px 14px rgba(35,20,24,.08);margin-bottom:16px}
.progress{height:10px;background:#eadfe2;border-radius:5px;overflow:hidden;margin-bottom:18px}
.progress>div{height:100%;background:var(--p);transition:width .35s;border-radius:5px}
h2{font-size:1.25rem;margin-bottom:14px;color:var(--p)}
label{display:block;font-weight:600;margin:14px 0 6px;font-size:1.02rem}
input[type=text],input[type=tel],select,textarea{width:100%;padding:16px;font-size:1.1rem;border:2px solid #d8c9cd;border-radius:12px;background:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid var(--s);border-color:var(--p)}
.btn{display:block;width:100%;padding:18px;font-size:1.2rem;font-weight:700;border:none;border-radius:14px;cursor:pointer;background:var(--p);color:#fff;margin-top:18px;min-height:60px}
.btn:active{transform:scale(.98)}
.btn.sec{background:#fff;color:var(--p);border:2px solid var(--p)}
.btn:disabled{opacity:.5}
.opt{display:block;width:100%;text-align:left;padding:16px 18px;margin:8px 0;font-size:1.08rem;border:2px solid #d8c9cd;border-radius:12px;background:#fff;cursor:pointer}
.opt.sel{border-color:var(--p);background:#f7ebee;font-weight:700}
.check{display:flex;gap:12px;align-items:flex-start;padding:14px;border:2px solid #d8c9cd;border-radius:12px;margin:10px 0;cursor:pointer;font-size:1rem}
.check input{width:26px;height:26px;flex:none;margin-top:2px;accent-color:var(--p)}
.check.req{border-color:var(--s)}
.hint{font-size:.88rem;color:#6d5a5f;margin-top:4px}
.err{background:#fdecea;color:var(--err);padding:14px;border-radius:12px;margin-top:12px;font-weight:600;display:none}
.aviso{font-size:1rem;line-height:1.55;background:#f7ebee;border-left:5px solid var(--p);padding:16px;border-radius:8px}
.folio-big{font-size:2.3rem;font-weight:800;letter-spacing:3px;color:var(--p);text-align:center;margin:14px 0;font-variant-numeric:tabular-nums}
.qr-img{display:block;margin:0 auto;width:min(280px,80%);border:8px solid #fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.center{text-align:center}
.badge{display:inline-block;padding:6px 14px;border-radius:20px;font-size:.9rem;font-weight:700}
.badge.ok{background:#e3f4e8;color:var(--ok)}
.badge.warn{background:#fdf3e0;color:#8a5a00}
.paso{display:none;animation:fade .3s}
.paso.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1}}
.splash{position:fixed;inset:0;background:linear-gradient(160deg,var(--p),var(--s));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;z-index:50;cursor:pointer}
.splash h1{font-size:2.2rem;margin:16px 0 8px}
.splash .pulse{margin-top:40px;font-size:1.3rem;font-weight:700;background:rgba(255,255,255,.2);padding:18px 40px;border-radius:40px;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
footer{text-align:center;font-size:.8rem;color:#8a747a;padding:14px 0}
@media(min-width:900px){header.hero h1{font-size:1.8rem}}
