:root{--azul:#002557;--arena:#D0CBBD;--fondo:#f4f2ec;--linea:#dcd8cc;--texto:#1c1c1a;--suave:#6b6a65}
*{box-sizing:border-box;border-radius:0}
body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--azul)}
header.top{background:var(--azul);color:#fff;display:flex;align-items:center;gap:24px;padding:0 24px;height:52px}
header.top .marca{font-weight:600;letter-spacing:.14em;font-size:13px}
header.top nav{display:flex;gap:4px;flex:1}
header.top nav a{color:#fff;text-decoration:none;padding:16px 12px;font-size:14px;opacity:.8}
header.top nav a.on,header.top nav a:hover{opacity:1;box-shadow:inset 0 -3px 0 var(--arena)}
header.top form{margin:0}
header.top button{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
main{max-width:1060px;margin:0 auto;padding:28px 24px 60px}
h1{font-size:22px;font-weight:600;margin:0 0 4px}
p.sub{margin:0 0 20px;color:var(--suave)}
.card{background:#fff;border:1px solid var(--linea);padding:20px 22px;margin-bottom:20px}
table.t{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--linea)}
table.t th{text-align:left;font-weight:600;font-size:12px;color:var(--suave);padding:9px 12px;border-bottom:1px solid var(--linea);background:#faf9f5}
table.t td{padding:10px 12px;border-bottom:1px solid #eeebe2;vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #c9c5b8;background:#fff;width:100%}
input[type=color]{padding:2px;height:38px;width:60px}
input[type=file]{padding:6px}
label{display:block;font-size:13px;color:var(--suave);margin:14px 0 4px}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fila3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
button.p,a.p{background:var(--azul);color:#fff;border:0;padding:9px 16px;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}
button.s,a.s{background:#fff;color:var(--azul);border:1px solid var(--azul);padding:8px 14px;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}
button.r{background:#fff;color:#9b1c1c;border:1px solid #d9a3a3;padding:8px 14px;font:inherit;cursor:pointer}
.chip{display:inline-block;padding:2px 8px;font-size:12px;background:var(--arena);color:var(--azul)}
.ok{background:#e9f3e4;border:1px solid #bcd7b0;padding:9px 12px;margin-bottom:16px}
.err{background:#fbeaea;border:1px solid #e1b3b3;padding:9px 12px;margin-bottom:16px}
.ayuda{font-size:12px;color:var(--suave);margin-top:4px}
.punto{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px}
.centro{max-width:420px;margin:70px auto}
.firma-caja{background:#fff;border:1px solid var(--linea);padding:24px 26px;overflow-x:auto}
@media(max-width:700px){.fila,.fila3{grid-template-columns:1fr}header.top nav a{padding:16px 8px}}
.selgrupos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px;background:#faf9f5;border:1px solid var(--linea);padding:12px 14px}
label.chk{display:flex;gap:8px;align-items:center;margin:0;font-size:14px;color:var(--texto);cursor:pointer}
label.chk input{width:auto}
label.chk:first-child:has(#todos){grid-column:1/-1;padding-bottom:6px;border-bottom:1px solid var(--linea);margin-bottom:6px}
ol.pasos{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 26px;flex-wrap:wrap}
ol.pasos li{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border:1px solid var(--linea);font-size:14px;color:var(--suave)}
ol.pasos li span{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;background:var(--arena);color:var(--azul);font-size:12px;font-weight:600}
ol.pasos li.on{border-color:var(--azul);color:var(--texto);font-weight:600}
ol.pasos li.on span,ol.pasos li.hecho span{background:var(--azul);color:#fff}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tarjeta{display:block;margin:0;cursor:pointer}
.tarjeta input{position:absolute;opacity:0;width:0;height:0}
.tarjeta .tc{display:flex;flex-direction:column;gap:10px;align-items:flex-start;justify-content:space-between;min-height:100px;padding:14px;background:#fff;border:1px solid var(--linea)}
.tarjeta .tc small{font-size:12px;color:var(--suave)}
.tarjeta.sel .tc{border:2px solid var(--azul);padding:13px}
.tarjeta input:focus-visible + .tc{outline:2px solid var(--azul);outline-offset:2px}
