/* estilos.css — generado por generar_formulario_web.js. No editar a mano. */
:root{
  --navy:#0B109F; --accent:#FE5F00; --navy-800:#080c7a;
  --ink:#1f2430; --muted:#5A6570; --line:#C9CFE3; --line-soft:#e6e9f5;
  --light:#EAF0FB; --bg:#f4f6fb; --card:#ffffff; --ok:#1e7f43; --err:#c0341d;
  --radio:10px; --sombra:0 1px 2px rgba(11,16,159,.06), 0 8px 24px rgba(11,16,159,.06);
  --ancho:820px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:84px}
body{margin:0; background:var(--bg); color:var(--ink);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
img{max-width:100%}
h1,h2,h3{color:var(--navy); line-height:1.25; margin:0 0 .4em}
a{color:var(--navy)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.salto-contenido{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:.6em 1em;z-index:20}
.salto-contenido:focus{left:0}

/* cabecera fija con progreso */
.cabecera{position:sticky;top:0;z-index:10;background:var(--card);border-bottom:1px solid var(--line-soft)}
.cabecera__inner{max-width:var(--ancho);margin:0 auto;padding:.6rem 1rem;display:flex;align-items:center;gap:1rem;justify-content:space-between}
.cabecera__logo{height:34px;width:auto}
.cabecera__prog{display:flex;align-items:center;gap:.6rem;min-width:0}
.cabecera__prog-barra{width:120px;height:8px;border-radius:99px;background:var(--line-soft);overflow:hidden;flex:none}
.cabecera__prog-barra span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--navy),var(--accent));transition:width .3s}
.cabecera__prog-txt{font-size:.8rem;color:var(--muted);white-space:nowrap}

.envoltura{max-width:var(--ancho);margin:0 auto;padding:1.5rem 1rem 4rem}

.intro{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radio);padding:1.4rem;box-shadow:var(--sombra);border-top:4px solid var(--accent)}
.intro h1{font-size:1.7rem}
.intro__sub{font-weight:600;color:var(--ink);margin-top:-.2rem}
.intro p{margin:.5rem 0}
.intro__estrella{background:var(--light);border-radius:8px;padding:.7rem .9rem;font-size:.92rem}
.conmutador{display:flex;gap:.55rem;align-items:center;margin-top:.6rem;font-size:.92rem;cursor:pointer}
.conmutador input{width:18px;height:18px}

.indice{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radio);padding:1rem 1.2rem;margin:1.2rem 0;box-shadow:var(--sombra)}
.indice__tit{font-weight:700;color:var(--navy);margin:.1rem 0 .5rem;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}
.indice ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr;gap:.15rem}
.indice a{display:flex;gap:.55rem;text-decoration:none;padding:.32rem .4rem;border-radius:6px;font-size:.92rem}
.indice a:hover{background:var(--light)}
.indice a span{color:var(--accent);font-weight:700;min-width:1.3em}

.seccion{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radio);padding:1.4rem;margin:1.1rem 0;box-shadow:var(--sombra)}
.seccion__head h2{display:flex;align-items:baseline;gap:.55rem;font-size:1.25rem;border-bottom:2px solid var(--accent);padding-bottom:.4rem}
.seccion__num{color:var(--accent);font-weight:800}
.nota{color:var(--muted);font-size:.9rem;font-style:italic;margin:.5rem 0 0}

.grupo{margin-top:1.4rem;padding-top:1rem;border-top:1px dashed var(--line)}
.grupo__titulo{font-size:1.02rem;margin-bottom:.2rem}

.campo{margin:1.1rem 0}
.campo__label{display:block;font-weight:600;margin-bottom:.35rem}
.campo__ayuda{margin:.1rem 0 .45rem;color:var(--muted);font-size:.88rem}
.campo__ejemplo{margin:.1rem 0 .5rem;background:var(--light);border-left:3px solid var(--line);border-radius:6px;padding:.5rem .7rem;color:#40485a;font-size:.88rem;font-style:italic}
.campo__ejemplo-rot{display:block;font-style:normal;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.estrella{color:var(--accent);font-size:.9em}

input[type=text],input[type=email],input[type=tel],input[type=date],textarea,select{
  width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);
  border-radius:8px;padding:.6rem .7rem;transition:border-color .15s,box-shadow .15s}
textarea{resize:vertical;min-height:3.1em}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(11,16,159,.14)}
input::placeholder,textarea::placeholder{color:#9aa3b2}

fieldset.campo{border:0;margin:1.1rem 0;padding:0;min-width:0}
fieldset.campo legend{font-weight:600;margin-bottom:.4rem;padding:0}
.opcion-fila{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem}
.opcion{display:inline-flex;align-items:center;gap:.55rem;padding:.4rem .5rem;border-radius:8px;cursor:pointer}
.opcion:hover{background:var(--light)}
.opcion input{width:18px;height:18px;flex:none;accent-color:var(--navy)}
.opcion__texto-vis{flex:0 1 auto}
.opcion__texto{flex:1 1 14rem;min-width:9rem;max-width:26rem;margin:.15rem 0}

.tabla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tabla{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.9rem;min-width:560px}
.tabla th,.tabla td{border:1px solid var(--line);padding:.5rem .55rem;text-align:left;vertical-align:top}
.tabla thead th{background:var(--navy);color:#fff;font-weight:600;font-size:.82rem;position:sticky;top:0}
.tabla tbody th,.tabla tbody th{background:var(--light);font-weight:600}
.tabla--prioridad td{text-align:center}
.tabla--prioridad td label{display:inline-flex}
.celda-radio{display:inline-flex;align-items:center;gap:.35rem;margin:.1rem .35rem .1rem 0}
.celda-radio input{width:16px;height:16px;accent-color:var(--navy)}
.col-incluir{width:84px;text-align:center}
.col-incluir input{width:20px;height:20px;accent-color:var(--accent)}
.tabla td input[type=text],.tabla td input[type=date],.tabla td input[type=email],.tabla td input[type=tel],.tabla td textarea{min-width:130px;padding:.4rem .45rem}
.tabla td input[type=date]{min-width:158px}
.tabla td .celda-radio{display:flex}

.campo__error{color:var(--err);font-size:.85rem;margin:.35rem 0 0;font-weight:600}
.campo.con-error input,.campo.con-error textarea,fieldset.campo.con-error{outline:2px solid var(--err);outline-offset:2px;border-radius:8px}
.campo.con-error .campo__label,fieldset.campo.con-error legend{color:var(--err)}

.oculto{display:none !important}
/* "solo campos esenciales": oculta lo no esencial. Una tabla con filas ★
   lleva la clase .esencial (ver renderCampo), así 4.3 y 6 no desaparecen. */
.solo-esenciales .campo:not(.esencial),
.solo-esenciales .grupo:not(:has(.esencial)){display:none}
.solo-esenciales .seccion:not(:has(.esencial)) .seccion__head .nota{display:none}

.acciones{margin-top:1.6rem;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radio);padding:1.2rem;box-shadow:var(--sombra);border-bottom:4px solid var(--accent)}
.acciones__nota{color:var(--muted);font-size:.9rem;margin:0 0 .8rem}
.acciones__btns{display:flex;gap:.7rem;flex-wrap:wrap}
.btn{font:inherit;font-weight:700;border-radius:9px;padding:.8rem 1.3rem;cursor:pointer;border:2px solid transparent}
.btn--pri{background:var(--accent);color:#fff}
.btn--pri:hover{background:#e35600}
.btn--pri:disabled{opacity:.55;cursor:progress}
.btn--sec{background:#fff;color:var(--navy);border-color:var(--line)}
.btn--sec:hover{background:var(--light)}
.acciones__estado{margin:.8rem 0 0;font-weight:600;font-size:.92rem}
.acciones__estado.ok{color:var(--ok)}
.acciones__estado.err{color:var(--err)}

.gracias{background:#eef7f0;border:1px solid #bfe0c9;border-left:4px solid var(--ok);border-radius:var(--radio);padding:1.6rem;margin-top:1.2rem}
.gracias h2{color:var(--ok)}

.pie{max-width:var(--ancho);margin:0 auto;padding:2rem 1rem 3rem;color:var(--muted);font-size:.82rem;text-align:center}
.pie__conf{margin-top:.3rem}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}

@media (min-width:640px){
  .indice ol{grid-template-columns:1fr 1fr}
  .intro h1{font-size:2rem}
}
@media (min-width:900px){
  :root{--ancho:900px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important}
}
@media print{
  .cabecera,.indice,.acciones,.conmutador,.salto-contenido{display:none}
  .seccion{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  body{background:#fff}
}
