*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,sans-serif;background:#f4f5f7;color:#1c1f26}
.barra{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.2rem;background:#1c2b4a;color:#fff}
.barra-der{display:flex;gap:.6rem;align-items:center}
.barra form{margin:0}
main{max-width:960px;margin:1.5rem auto;padding:0 1rem}
.caja{background:#fff;border-radius:8px;padding:1.2rem 1.4rem;box-shadow:0 1px 3px rgba(0,0,0,.08);margin-bottom:1rem}
.caja.chica{max-width:380px;margin:3rem auto}
h1{font-size:1.3rem;margin:0 0 1rem}
label{display:block;margin-bottom:.8rem;font-weight:600}
label input,label select{display:block;width:100%;margin-top:.25rem;padding:.5rem;border:1px solid #c5c9d2;border-radius:6px;font:inherit;font-weight:400}
label.chk{font-weight:400;display:inline-block;margin-right:1rem}
label.chk input{display:inline;width:auto}
button,.boton{background:#2f5bea;color:#fff;border:0;border-radius:6px;padding:.5rem 1rem;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}
button.enlace{background:none;padding:0;text-decoration:underline;color:inherit}
button.peligro{background:#c0392b}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.5rem;border-bottom:1px solid #e3e5ea}
.msg{padding:.6rem .8rem;border-radius:6px}
.msg.error{background:#fdecea;color:#8a1f17}
.msg.ok{background:#e6f4ea;color:#1e5b31}
.etq{font-size:.8rem;padding:.1rem .5rem;border-radius:99px;background:#e6f4ea;color:#1e5b31}
.etq.susp{background:#fdecea;color:#8a1f17}
.fila{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
form.en-linea{display:inline;margin:0}
.menu{background:#fff;border-bottom:1px solid #e3e5ea;padding:.5rem 1.2rem;display:flex;gap:1.2rem}
.menu a{text-decoration:none;color:#1c2b4a;font-weight:600}
.foto-mini{width:44px;height:44px;object-fit:cover;border-radius:50%;background:#e3e5ea}
.foto-form{width:110px;height:140px;object-fit:cover;border-radius:6px;display:block;margin-bottom:.4rem}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1rem}
@media(max-width:600px){table{font-size:.85rem}}
.editor{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-start}
#lienzo{position:relative;border:1px solid #888;box-shadow:0 2px 8px rgba(0,0,0,.2);overflow:hidden;touch-action:none;flex:none}
#lienzo .el{position:absolute;cursor:move;white-space:nowrap;user-select:none;outline:1px dashed transparent}
#lienzo .el.sel{outline-color:#2f5bea}
#lienzo .el-foto,#lienzo .el-imagen,#lienzo .el-qr{background:rgba(120,130,150,.35);display:flex;align-items:center;justify-content:center;font:600 11px sans-serif;color:#333}
#panel{flex:1;min-width:220px}
.pestanas button{background:#dfe3ea;color:#1c2b4a}
.pestanas button.activo{background:#1c2b4a;color:#fff}
.barra-ed{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.8rem}
.verif{max-width:420px;margin:1.5rem auto;text-align:center}
.verif .estado{font-size:1.4rem;font-weight:700;padding:1rem;border-radius:8px;margin-bottom:1rem}
.estado.valida{background:#e6f4ea;color:#1e5b31}
.estado.vencida{background:#fff4d6;color:#7a5200}
.estado.revocada,.estado.no_encontrada,.estado.bloqueada{background:#fdecea;color:#8a1f17}
.estado.restringida{background:#e8eefc;color:#1c2b4a}
.verif img.foto-ver{width:140px;height:180px;object-fit:cover;border-radius:8px}
.verif dl{text-align:left;margin:1rem 0}.verif dt{font-size:.8rem;color:#666}.verif dd{margin:0 0 .6rem;font-weight:600}
input[type=color]{width:44px;height:32px;padding:0;border:1px solid #c5c9d2;border-radius:6px;vertical-align:middle;display:inline-block}
label input[type=color]{display:inline-block;width:44px}
body.tarjeta{background:#e9ecf2}
.tj{max-width:420px;margin:0 auto;padding:0;background:#fff;min-height:100vh;box-shadow:0 0 20px rgba(0,0,0,.08)}
.tj-cab{background:var(--c1);color:#fff;padding:1.2rem 1rem 3.2rem;display:flex;align-items:center;gap:.7rem;font-weight:600}
.tj-logo{max-height:38px;max-width:90px;object-fit:contain;background:#fff;border-radius:6px;padding:3px}
.tj-cuerpo{text-align:center;padding:0 1.2rem 2rem;margin-top:-2.6rem}
.tj-foto{width:130px;height:130px;object-fit:cover;border-radius:50%;border:4px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.2);background:#e3e5ea}
.tj-cuerpo h1{font-size:1.4rem;margin:.6rem 0 .3rem}
.tj-campo{margin:.15rem 0;color:#444}.tj-campo small{color:#888;margin-right:.3rem}
.tj-acciones{display:grid;gap:.6rem;margin-top:1.4rem}
.tj-btn{display:block;padding:.8rem;border-radius:10px;background:var(--c2);color:#fff;text-decoration:none;font-weight:600}
.tj-btn.wa{background:#1fa855}
