:root{
  --azul-oscuro:#0f2d52;
  --azul-medio:#1e4d8c;
  --azul-claro:#e8f0fb;
  --azul-linea:#c3d6ef;
  --dorado:#b8862b;
  --gris-texto:#2c333d;
  --gris-suave:#6b7684;
  --rojo-error:#b3261e;
  --verde-ok:#1e7a4c;
  --fondo:#f4f6fa;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Segoe UI',Tahoma,Arial,sans-serif;background:var(--fondo);color:var(--gris-texto);}
.app-shell{max-width:900px;margin:0 auto;padding:0 0 60px;}
header.top{background:linear-gradient(135deg,var(--azul-oscuro),var(--azul-medio));color:#fff;padding:28px 24px;text-align:center;border-bottom:5px solid var(--dorado);}
header.top h1{margin:0 0 4px;font-size:1.5rem;}
header.top p{margin:0;font-size:.9rem;opacity:.85;}
main{padding:24px;}
.card{background:#fff;border:1px solid #dde3ec;border-radius:10px;overflow:hidden;margin-bottom:22px;box-shadow:0 1px 3px rgba(15,45,82,.06);}
.card h2{background:var(--azul-claro);color:var(--azul-oscuro);margin:0;padding:12px 18px;font-size:1rem;border-bottom:1px solid var(--azul-linea);}
.card-body{padding:18px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:640px){.grid2{grid-template-columns:1fr;}}
label{display:block;font-size:.82rem;font-weight:600;color:var(--azul-oscuro);margin-bottom:5px;}
.req::after{content:" *";color:var(--rojo-error);}
input[type=text],input[type=email],input[type=tel],input[type=date],textarea,select{
  width:100%;padding:9px 11px;border:1px solid #c7cfda;border-radius:6px;font-size:.92rem;font-family:inherit;background:#fff;color:var(--gris-texto);
}
input:focus,textarea:focus,select:focus{outline:2px solid var(--azul-medio);outline-offset:1px;border-color:var(--azul-medio);}
textarea{resize:vertical;min-height:70px;}
.field{margin-bottom:14px;}
.radio-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:4px;}
.radio-row label{display:flex;align-items:center;gap:6px;font-weight:400;color:var(--gris-texto);font-size:.9rem;margin-bottom:0;}
.hint{font-size:.76rem;color:var(--gris-suave);margin-top:4px;}
.error-text{font-size:.78rem;color:var(--rojo-error);margin-top:4px;display:none;}
.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:var(--rojo-error);}
.field.invalid .error-text{display:block;}
.file-drop{border:2px dashed #c7cfda;border-radius:8px;padding:14px;text-align:center;background:#fbfcfe;cursor:pointer;font-size:.85rem;color:var(--gris-suave);display:block;}
.file-drop.has-file{border-color:var(--verde-ok);background:#f1faf4;color:var(--verde-ok);}
.file-drop input{display:none;}
.decl{background:var(--azul-claro);border:1px solid var(--azul-linea);border-radius:8px;padding:16px;font-size:.86rem;line-height:1.55;}
.decl ul{margin:8px 0;padding-left:20px;}
.decl label{display:flex;gap:10px;align-items:flex-start;font-weight:600;margin-top:10px;}
.decl input[type=checkbox]{margin-top:3px;width:16px;height:16px;flex-shrink:0;}
.honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;}
button.primary{background:var(--azul-oscuro);color:#fff;border:none;border-radius:7px;padding:12px 26px;font-size:.95rem;font-weight:600;cursor:pointer;}
button.primary:hover{background:var(--azul-medio);}
button.primary:disabled{opacity:.6;cursor:not-allowed;}
button.secondary{background:#fff;color:var(--azul-oscuro);border:1px solid var(--azul-oscuro);border-radius:7px;padding:10px 22px;font-size:.9rem;font-weight:600;cursor:pointer;}
button.secondary:hover{background:var(--azul-claro);}
.success-box{background:#eafaf1;border:1px solid var(--verde-ok);color:#175c39;border-radius:8px;padding:18px;margin-bottom:18px;font-size:.92rem;}
.success-box strong{display:block;font-size:1rem;margin-bottom:4px;}
.success-box span{display:block;margin-top:4px;}
.error-box{background:#fdecea;border:1px solid var(--rojo-error);color:#7a1a13;border-radius:8px;padding:16px;margin-bottom:18px;font-size:.9rem;}
footer.foot{text-align:center;font-size:.75rem;color:var(--gris-suave);padding:20px;}