body{font-family:system-ui,sans-serif;margin:0;background:#f4f4f6;color:#222}
header{background:#111;color:#fff;padding:12px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}header a{color:#f2b84b}
main{max-width:960px;margin:auto;padding:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px #0002}
.pass{border-radius:16px;padding:16px;max-width:340px;box-shadow:0 6px 20px #0004}
.ph{display:flex;align-items:center;gap:10px}.ph b{flex:1}.logo{font-size:28px}.ph small{text-align:right}
.dots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0}
.dot{aspect-ratio:1;border:2px solid var(--a);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#000}.dot.on{background:var(--a)}
.pf{display:flex;justify-content:space-between}.qr{background:#fff;color:#000;text-align:center;margin-top:14px;padding:10px;border-radius:8px;font-family:monospace}
input,select,button{padding:8px;margin:4px 0;width:100%;box-sizing:border-box}button{background:#111;color:#fff;border:0;border-radius:6px;cursor:pointer}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{border-bottom:1px solid #ddd;padding:4px}td button{width:auto;padding:4px 8px}
.wbtn{display:flex;gap:8px}.wbtn button{background:#000}.note{font-size:12px;color:#777}.toast{background:#222;color:#fff;padding:10px;border-radius:8px;margin:6px 0}
.badge{font-size:12px;padding:2px 8px;border-radius:10px;background:#333}

/* Landing del servicio (sin ?n=) */
body.landing{background:#f3f6fb;color:#12233f}
body.landing header.land-head,header.land-head{background:#fff;color:#12233f;border-bottom:1px solid #d9e2ef;padding:14px 20px;gap:12px}
header.land-head a{color:#0a3d8f}
.land-logo{width:40px;height:40px;border-radius:9px;flex-shrink:0;display:block}
.land-brand{display:flex;flex-direction:column;line-height:1.2;gap:2px}
.land-brand b{font-size:15px}
.land-brand span{font-size:12px;color:#4a5d78;font-weight:500}
main.land{display:block;max-width:720px;padding:24px 18px 48px}
.land-hero{margin:8px 0 8px}
.land-kicker{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#0a3d8f;margin:0 0 8px}
.land-hero h1{font-size:1.7rem;line-height:1.25;margin:0 0 12px;color:#0a2f6b}
.land-lead{font-size:1.05rem;line-height:1.55;margin:0;color:#2a3d58}
.land-grid{display:grid;gap:12px;grid-template-columns:1fr;margin:20px 0}
.land-card{background:#fff;border-radius:14px;padding:18px 18px 16px;box-shadow:0 1px 3px #0a2f6b14;border:1px solid #e6edf6}
.land-card h1{font-size:1.35rem;color:#0a2f6b;margin:0 0 10px}
.land-card h2{font-size:1.05rem;margin:0 0 8px;color:#0a2f6b}
.land-card p{margin:0;line-height:1.5;color:#334b66}
.land-wide{margin:0 0 12px}
.land-cta{background:#0a2f6b;color:#fff;border-radius:16px;padding:24px 20px;margin:20px 0 0;text-align:center}
.land-cta h2{margin:0 0 8px;font-size:1.25rem}
.land-cta p{margin:0 0 16px;color:#d7e4f5;line-height:1.45}
.land-wa{display:inline-block;background:#fff;color:#0a2f6b;font-weight:700;text-decoration:none;padding:14px 22px;border-radius:10px;min-height:44px;box-sizing:border-box}
.land-wa:active,.land-wa:hover{background:#e8eef8}
.land-web{margin:16px 0 0!important;font-size:15px}
.land-web a{color:#9ec2f0}
.land-card .land-web a{color:#0a3d8f}
.land-foot{text-align:center;padding:8px 16px 32px;color:#5a6e86;font-size:13px}
@media(min-width:640px){
  .land-hero h1{font-size:2rem}
  .land-grid{grid-template-columns:1fr 1fr}
  main.land{padding:32px 24px 56px}
}
