/* ============================================================
   VEGA Welcome · ajustes de la app sobre welcome.css (prototipo)
   ============================================================ */

/* Errores de validación bajo cada campo */
.field .err{font-size:12px;letter-spacing:.04em;color:#B3412A;text-transform:none}
#v-apply .field .err,.overvid .err{color:var(--peach)}
.in[aria-invalid="true"]{border-bottom-color:#B3412A}
#v-apply .in[aria-invalid="true"]{border-bottom-color:var(--coral)}

/* Aviso general (error de BC, etc.) */
.alert{margin-top:26px;border:1px solid rgba(179,65,42,.45);background:rgba(179,65,42,.07);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.6;color:var(--ink)}
.debug-msg{margin-top:10px;white-space:pre-wrap;font:12px/1.5 ui-monospace,Menlo,Consolas,monospace;color:inherit;opacity:.8}

/* Error de acceso: visible cuando lo pinta el servidor */
.gate-err[style]{display:block}

/* Texto legal (modal del registro y /privacy-policy) */
.legal-text h2{font-size:15px;letter-spacing:.26em;text-transform:uppercase;font-weight:400;color:var(--ocean);margin-bottom:6px}
.legal-text p,.legal-text li,.legal-text td{font-size:14px;line-height:1.7;color:var(--ink-60)}
.legal-text p{margin-top:12px}
.legal-text ol,.legal-text ul{margin:18px 0 0 18px}
.legal-text strong{color:var(--ink);font-weight:600}
.legal-text table{width:100%;border-collapse:collapse;margin-top:12px}
.legal-text td{border:1px solid var(--line-cream);padding:8px 10px;vertical-align:top}
.legal-text a{color:var(--ocean)}
.reg-wrap.legal{max-width:760px}
.modal .card.legal{max-width:760px;border:1px solid var(--navy)}
.legal-agree{display:flex;justify-content:center;margin-top:30px}
.legal-agree .btn{margin-top:0}
body:has(.modal.on){overflow:hidden}

/* Marca de entorno en local */
.env-badge{position:fixed;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:100;font:600 10px/1 system-ui,sans-serif;letter-spacing:.14em;color:#fff;background:#B3412A;border-radius:999px;padding:6px 10px;opacity:.85;pointer-events:none}

/* Botón de enviar ocupado */
.btn[aria-busy="true"]{opacity:.6;pointer-events:none}

/* Selección: que el texto de las opciones suaves no quede bajo el círculo */
.soft .tier{padding-right:56px}

/* Solicitud (navy): aviso general */
.alert.dark{margin-top:30px;border-color:rgba(231,150,115,.55);background:rgba(231,150,115,.08);color:var(--crema)}
#v-apply .err{font-size:12px;letter-spacing:.04em;color:var(--peach);text-transform:none}
#v-apply .fsect > .err{display:block;margin-top:10px}

/* ------------------------------------------------------------------
   Campos con error: etiqueta y línea en coral, fondo suave y barra lateral.
   Resumen arriba con enlaces a cada campo.
   ------------------------------------------------------------------ */
.field.has-err,.fsect.has-err{position:relative;border-radius:8px}
.field.has-err{background:rgba(179,65,42,.07);box-shadow:inset 3px 0 0 #B3412A;padding:10px 12px;margin:-10px -12px}
.field.has-err > label:not(.check){color:#B3412A}
.field.has-err .in{border-bottom:2px solid #B3412A}
.has-err .check .box{border-color:#B3412A;box-shadow:0 0 0 3px rgba(179,65,42,.22)}
.has-err .seg{border-color:#B3412A;box-shadow:0 0 0 3px rgba(179,65,42,.18)}
.err{display:flex;align-items:center;gap:7px;font-weight:600}
.err::before{content:"!";flex:none;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#B3412A;color:#fff;font:700 11px/1 system-ui,sans-serif}
.err-summary b{font-weight:600}
.err-links{display:flex;flex-wrap:wrap;gap:6px 8px;margin-top:10px}
.err-links a{font-size:12.5px;padding:4px 11px;border-radius:999px;border:1px solid rgba(179,65,42,.45);color:#B3412A;text-decoration:none}
.err-links a:hover{background:rgba(179,65,42,.1)}

/* Versión navy (solicitudes) */
#v-apply .field.has-err{background:rgba(231,150,115,.09);box-shadow:inset 3px 0 0 var(--cobre)}
#v-apply .fsect.has-err{background:rgba(231,150,115,.07);box-shadow:inset 3px 0 0 var(--cobre);padding:22px 16px 16px;margin-left:-16px;margin-right:-16px}
#v-apply .field.has-err > label:not(.check){color:var(--cobre)}
#v-apply .field.has-err .in{border-bottom:2px solid var(--cobre)}
#v-apply .has-err .file{border:1px solid var(--cobre)}
#v-apply .has-err .check .box{border-color:var(--cobre);box-shadow:0 0 0 3px rgba(231,150,115,.3)}
#v-apply .has-err .chips span{border-color:rgba(231,150,115,.6)}
#v-apply .err{color:var(--cobre);font-size:12.5px;letter-spacing:.03em}
#v-apply .err::before{background:var(--cobre);color:var(--marino)}
#v-apply .err-links a{border-color:rgba(231,150,115,.55);color:var(--cobre)}
#v-apply .err-links a:hover{background:rgba(231,150,115,.12)}
#v-apply .alert.dark b{color:var(--tinta)}

/* ------------------------------------------------------------------
   Capa de espera al enviar (registro y solicitudes)
   ------------------------------------------------------------------ */
#loading{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:rgba(12,20,44,.92);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .25s}
#loading.on{opacity:1;pointer-events:auto}
#loading .ld-box{text-align:center;padding:0 24px}
#loading .ld-ring{display:block;width:58px;height:58px;margin:0 auto 26px;border-radius:50%;
  border:1.5px solid rgba(238,186,150,.22);border-top-color:var(--coral);animation:ldspin 1.1s linear infinite}
#loading .ld-text{font-size:13.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--peach)}
#loading .ld-text::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:lddots 1.4s steps(4,end) infinite}
#loading .ld-sub{margin-top:12px;font-size:13px;font-style:italic;color:var(--steel);letter-spacing:.04em}
@keyframes ldspin{to{transform:rotate(360deg)}}
@keyframes lddots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
@media(prefers-reduced-motion:reduce){#loading .ld-ring{animation:ldspin 2.4s linear infinite!important}}
