/* ============================================================
   Inscripcion publica de evento — §15 del spec de diseno.
   Se apoya en landing-evento.css (tokens, .ev-btn, .ev-reveal,
   .ev-doc-strip, .ev-modal): aca va SOLO lo propio de inscripcion.

   REGLA DURA: el layout simple-vanna-landing fija html{font-size:9pt}
   (root = 12px). PROHIBIDO usar rem en este archivo. Todo en px.

   Dos pieles, un solo markup: .ev-insc--nueva usa los tokens del evento
   (<style id="ev-tokens"> que emite el server) y .ev-insc--clasica
   redefine las cinco variables de acento con una paleta neutra fija.
   ============================================================ */

/* ---------- Piel clasica ---------- */
.ev-insc--clasica{
  --ev-accent:#252525;
  --ev-accent-dark:#000000;
  --ev-accent-ink:#252525;
  --ev-accent-soft:#F2F2F2;
  --ev-accent-line:#D8D8D8;
  --ev-accent-rgb:37,37,37;
  --ev-tint-1:#F7F8FA;
  --ev-tint-1-rgb:247, 248, 250;
  --ev-line-tint:#E4E7EC;
}

/* .ev-landing trae overflow-x:hidden, que convierte al elemento en scroll container
   y por lo tanto anula el position:sticky de CUALQUIER descendiente (la banda de
   totales quedaba clavada al final del formulario). clip recorta igual pero NO crea
   scroll container; donde no exista, visible: aca no hay desborde horizontal. */
.ev-landing.ev-insc{ overflow-x:clip; }
@supports not (overflow-x: clip){
  .ev-landing.ev-insc{ overflow-x:visible; }
}

/* ---------- Andamiaje ---------- */
/* min-height 100vh: sin esto el fondo gris corta a media pagina y queda un
   escalon contra el blanco del body (.ev-body pinta --ev-surface). */
.ev-insc{ padding:32px 0 48px; background:var(--ev-bg); min-height:100vh; }
.ev-insc__card{
  background:var(--ev-surface);
  border:1px solid var(--ev-line-tint);
  border-radius:var(--ev-r-xl);
  box-shadow:var(--ev-sh-md);
  padding:32px;
}
@media (max-width:575.98px){
  .ev-insc{ padding:16px 0 32px; }
  .ev-insc__card{ padding:20px 16px; border-radius:var(--ev-r-lg); }
}

/* ---------- Encabezado (§15.5) ---------- */
.ev-insc__head{ text-align:center; margin-bottom:24px; }
.ev-insc__eyebrow{
  margin:0 0 8px; font-family:var(--ev-font-display); font-size:12px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ev-ink-3);
}
.ev-insc__titulo{
  font-family:var(--ev-font-ui); font-size:clamp(20px,2.6vw,28px); font-weight:700;
  line-height:1.25; color:var(--ev-ink); margin:0 0 10px;
}
.ev-insc__meta{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px;
  margin:0; padding:0; list-style:none; font-size:14px; color:var(--ev-ink-2);
}
.ev-insc__meta li{ display:inline-flex; align-items:center; gap:8px; }
.ev-insc__meta svg{ width:15px; height:15px; color:var(--ev-accent); flex:none; }
@media (max-width:575.98px){
  .ev-insc__meta{ flex-direction:column; align-items:center; gap:6px; }
}

.ev-insc__docs{ margin-bottom:8px; }
.ev-insc__docs .ev-doc-strip{ margin-top:24px; padding-top:20px; }

/* ---------- Pasos ---------- */
.ev-paso{ border:0; padding:0; margin:32px 0 0; min-width:0; }
.ev-paso__titulo{
  display:flex; align-items:center; gap:12px; width:auto; float:none;
  font-family:var(--ev-font-ui);
  font-size:18px; font-weight:600; color:var(--ev-ink); margin:0 0 4px; padding:0;
}
.ev-paso__num{
  flex:none; width:28px; height:28px; border-radius:50%;
  background:var(--ev-accent); color:#fff;
  display:grid; place-items:center; font-size:14px; font-weight:700;
}
.ev-paso__vacio{
  margin:20px 0 0; padding:20px; border-radius:var(--ev-r-md);
  background:var(--ev-tint-1); border:1px dashed var(--ev-line-tint);
  font-size:14px; color:var(--ev-ink-3); text-align:center;
}

/* ---------- Tarjetas de tipo (§15.3) ---------- */
.ev-tipos{ border:0; padding:0; margin:32px 0 0; min-width:0; }
.ev-tipos__grid{ display:grid; gap:16px; grid-template-columns:1fr; margin-top:24px; }
@media (min-width:576px){ .ev-tipos__grid{ grid-template-columns:repeat(2,1fr); gap:20px; } }
@media (min-width:992px){ .ev-tipos__grid--muchos{ grid-template-columns:repeat(3,1fr); } }

.ev-tipo{ position:relative; min-width:0; }
.ev-tipo__input{ position:absolute; opacity:0; width:0; height:0; margin:0; pointer-events:none; }

.ev-tipo__card{
  position:relative; display:flex; flex-direction:column; justify-content:center;
  gap:6px; min-height:96px; margin:0; padding:22px 52px 22px 24px;
  background:var(--ev-surface);
  border:1px solid var(--ev-line-tint);
  border-radius:var(--ev-r-lg);
  cursor:pointer; text-align:left;
  transition:border-color var(--ev-t) var(--ev-ease),
             background-color var(--ev-t) var(--ev-ease),
             box-shadow var(--ev-t) var(--ev-ease),
             transform var(--ev-t) var(--ev-ease);
}
.ev-tipo__input:not(:disabled) + .ev-tipo__card:hover{
  border-color:var(--ev-accent);
  background:var(--ev-accent-soft);
  box-shadow:var(--ev-sh-md);
  transform:translateY(-2px);
}
.ev-tipo__input:not(:disabled) + .ev-tipo__card:active{ transform:translateY(0); }
.ev-tipo__input:focus-visible + .ev-tipo__card{ outline:3px solid var(--ev-accent); outline-offset:2px; }
.ev-tipo__input:checked + .ev-tipo__card{
  border-color:var(--ev-accent); border-width:2px; padding:21px 51px 21px 23px;
  background:var(--ev-accent-soft);
  box-shadow:0 0 0 1px var(--ev-accent);
}
.ev-tipo__input:checked + .ev-tipo__card .ev-tipo__nombre{ color:var(--ev-accent-ink); }

.ev-tipo__check{
  position:absolute; top:50%; right:20px; transform:translateY(-50%);
  width:24px; height:24px; border-radius:50%;
  border:2px solid var(--ev-line-tint);
  display:grid; place-items:center; color:transparent; background:transparent;
  transition:border-color var(--ev-t) var(--ev-ease), background-color var(--ev-t) var(--ev-ease), color var(--ev-t) var(--ev-ease);
}
.ev-tipo__check svg{ width:13px; height:13px; }
.ev-tipo__input:not(:disabled) + .ev-tipo__card:hover .ev-tipo__check{ border-color:var(--ev-accent); }
.ev-tipo__input:checked + .ev-tipo__card .ev-tipo__check{
  border-color:var(--ev-accent); background:var(--ev-accent); color:#fff;
}

.ev-tipo__nombre{
  font-family:var(--ev-font-ui); font-size:17px; font-weight:600; line-height:1.3;
  color:var(--ev-ink); overflow-wrap:anywhere;
}
.ev-tipo__precio{
  font-size:15px; font-weight:600; color:var(--ev-accent-ink);
  font-variant-numeric:tabular-nums;
}

.ev-tipo__input:disabled + .ev-tipo__card{
  cursor:not-allowed; background:var(--ev-tint-1);
  border-style:dashed; box-shadow:none; transform:none;
}
.ev-tipo__input:disabled + .ev-tipo__card .ev-tipo__nombre{ color:var(--ev-ink-3); }
.ev-tipo__input:disabled + .ev-tipo__card .ev-tipo__check{ display:none; }
.ev-tipo__badge{
  align-self:flex-start; margin-top:2px; padding:3px 10px; border-radius:var(--ev-r-pill);
  background:#FEF3F2; color:var(--ev-error); border:1px solid #FECDCA;
  font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  white-space:nowrap;
}

@media (max-width:575.98px){
  .ev-tipo__card{ min-height:84px; padding:18px 48px 18px 20px; }
  .ev-tipo__input:checked + .ev-tipo__card{ padding:17px 47px 17px 19px; }
  .ev-tipo__nombre{ font-size:16px; }
}

/* ---------- Filas con stepper (§15.10) ---------- */
.ev-tipo-filas{ margin-top:24px; }
.ev-tipo-fila{
  display:grid; gap:12px 20px; align-items:center;
  grid-template-columns:1fr auto;
  padding:20px 24px; background:var(--ev-surface);
  border:1px solid var(--ev-line-tint); border-radius:var(--ev-r-lg);
  transition:border-color var(--ev-t) var(--ev-ease), background-color var(--ev-t) var(--ev-ease);
}
@media (min-width:768px){ .ev-tipo-fila{ grid-template-columns:1fr auto auto; } }
.ev-tipo-fila + .ev-tipo-fila{ margin-top:12px; }
.ev-tipo-fila.is-elegida{ border-color:var(--ev-accent); background:var(--ev-accent-soft); }
.ev-tipo-fila.is-agotada{ border-style:dashed; background:var(--ev-tint-1); }
.ev-tipo-fila__info{ min-width:0; display:flex; flex-direction:column; gap:4px; }
.ev-tipo-fila__nombre{ font-size:16px; font-weight:600; color:var(--ev-ink); overflow-wrap:anywhere; }
.ev-tipo-fila__meta{ font-size:12px; color:var(--ev-ink-3); }
.ev-tipo-fila__meta:empty{ display:none; }
.ev-tipo-fila__precio{
  font-size:16px; font-weight:600; color:var(--ev-accent-ink);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.ev-tipo-fila__gratis{ color:var(--ev-ok); font-weight:700; }
.ev-tipo-fila__control{ justify-self:end; }
@media (max-width:575.98px){
  .ev-tipo-fila{ padding:16px; }
}

.ev-stepper{
  display:inline-flex; align-items:center; gap:4px;
  border:1px solid var(--ev-line-tint); border-radius:var(--ev-r-pill); padding:4px; background:var(--ev-surface);
}
.ev-stepper__btn{
  width:40px; height:40px; border:0; border-radius:50%; background:transparent;
  color:var(--ev-accent); font-size:18px; line-height:1; cursor:pointer; display:grid; place-items:center;
  transition:background-color var(--ev-t) var(--ev-ease), color var(--ev-t) var(--ev-ease);
}
.ev-stepper__btn:hover:not(:disabled){ background:var(--ev-accent-soft); }
.ev-stepper__btn:disabled{ color:var(--ev-ink-3); opacity:.45; cursor:not-allowed; }
.ev-stepper__valor{
  min-width:40px; text-align:center; font-size:17px; font-weight:700;
  color:var(--ev-ink); font-variant-numeric:tabular-nums;
}

/* ---------- Fichas de asistente (§15.10) ---------- */
.ev-ficha{
  background:var(--ev-surface); border:1px solid var(--ev-line-tint);
  border-radius:var(--ev-r-lg); padding:24px; margin-top:20px;
}
.ev-ficha__head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding-bottom:16px; margin-bottom:20px; border-bottom:1px solid var(--ev-line-tint);
}
.ev-ficha__titulo{
  display:flex; align-items:center; gap:10px; margin:0;
  font-family:var(--ev-font-ui); font-size:16px; font-weight:600; color:var(--ev-ink);
}
.ev-ficha__num{
  flex:none; width:26px; height:26px; border-radius:50%;
  background:var(--ev-accent-soft); color:var(--ev-accent-ink);
  display:grid; place-items:center; font-size:13px; font-weight:700;
}
.ev-ficha__tipo{ color:var(--ev-ink-3); font-weight:400; }
.ev-ficha__quitar{
  border:0; background:transparent; color:var(--ev-ink-3);
  font-size:13px; font-weight:600; cursor:pointer; min-height:44px; padding:0 4px; flex:none;
}
.ev-ficha__quitar:hover{ color:var(--ev-error); text-decoration:underline; }
/* Con una sola ficha el stepper ya alcanza para sacarla. */
.ev-fichas-tipo--una .ev-ficha__quitar{ display:none; }
@media (max-width:575.98px){ .ev-ficha{ padding:20px 16px; } }

/* ---------- Grupos y campos (§15.11) ---------- */
.ev-ficha__campos{ max-width:640px; }
.ev-grupo + .ev-grupo{ margin-top:28px; padding-top:24px; border-top:1px solid var(--ev-line-tint); }
.ev-grupo__titulo{
  margin:0 0 16px; font-family:var(--ev-font-ui);
  font-size:12px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ev-ink-3);
}
.ev-campos{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; }
.ev-campo{ grid-column:span 12; min-width:0; }
@media (min-width:992px){
  .ev-campo--1{ grid-column:span 12; }
  .ev-campo--2{ grid-column:span 12; }
  .ev-campo--3{ grid-column:span 3; }
  .ev-campo--4{ grid-column:span 4; }
  .ev-campo--5{ grid-column:span 6; }
  .ev-campo--6{ grid-column:span 6; }
  .ev-campo--7{ grid-column:span 8; }
  .ev-campo--8{ grid-column:span 8; }
  .ev-campo--9{ grid-column:span 9; }
  .ev-campo--10{ grid-column:span 12; }
  .ev-campo--11{ grid-column:span 12; }
  .ev-campo--12{ grid-column:span 12; }
}

/* flex + min-height: cuando un label de la fila envuelve a dos lineas (p.ej.
   "Tipo de documento obligatorio") y el de al lado no, los inputs quedaban
   desalineados 21px. Con alto minimo y alineacion al pie, ambos cierran igual. */
.ev-label{
  display:flex; flex-wrap:wrap; align-items:flex-end; gap:0 6px;
  min-height:38px; margin-bottom:6px; line-height:1.35;
  font-size:13px; font-weight:600; color:var(--ev-ink-2);
}
.ev-label__req{ margin-left:0; font-size:11px; font-weight:500; color:var(--ev-ink-3); }
.ev-input, .ev-select, .ev-textarea{
  width:100%; min-height:48px; padding:12px 14px;
  font-family:var(--ev-font-ui); font-size:16px; color:var(--ev-ink);
  background:var(--ev-surface); border:1px solid var(--ev-line-tint);
  border-radius:10px; transition:border-color var(--ev-t) var(--ev-ease), box-shadow var(--ev-t) var(--ev-ease);
}
.ev-select{ appearance:none; -webkit-appearance:none; padding-right:40px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:18px 18px;
}
.ev-input:focus, .ev-select:focus, .ev-textarea:focus{
  outline:none; border-color:var(--ev-accent);
  box-shadow:0 0 0 3px rgba(var(--ev-accent-rgb), .18);
}
.ev-input::placeholder{ color:var(--ev-ink-3); }
.ev-textarea{ min-height:96px; resize:vertical; }
.ev-ayuda{ margin:6px 0 0; font-size:12px; color:var(--ev-ink-3); }

/* SI / NO como segmented (§15.11) */
.ev-sino{
  display:inline-grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px;
  background:var(--ev-tint-1); border:1px solid var(--ev-line-tint); border-radius:10px;
}
.ev-sino input{ position:absolute; opacity:0; width:0; height:0; }
.ev-sino label{
  margin:0; min-height:40px; padding:0 20px; display:grid; place-items:center;
  border-radius:7px; font-size:14px; font-weight:600; color:var(--ev-ink-2); cursor:pointer;
  transition:background-color var(--ev-t) var(--ev-ease), color var(--ev-t) var(--ev-ease);
}
.ev-sino input:checked + label{ background:var(--ev-accent); color:#fff; }
.ev-sino input:focus-visible + label{ box-shadow:0 0 0 3px rgba(var(--ev-accent-rgb), .3); }

/* ---------- Uploader (§15.12) ---------- */
.ev-upload{ position:relative; }
.ev-upload__input{ position:absolute; opacity:0; width:0; height:0; }
.ev-upload__zona{
  display:flex; align-items:center; gap:14px; margin:0; padding:16px;
  background:var(--ev-tint-1); border:1.5px dashed var(--ev-line-tint);
  border-radius:12px; cursor:pointer;
  transition:border-color var(--ev-t) var(--ev-ease), background-color var(--ev-t) var(--ev-ease);
}
.ev-upload__zona:hover, .ev-upload.is-dragover .ev-upload__zona{
  border-color:var(--ev-accent); background:var(--ev-accent-soft);
}
.ev-upload__input:focus-visible + .ev-upload__zona{ outline:3px solid var(--ev-accent); outline-offset:2px; }
.ev-upload__icono{
  flex:none; width:40px; height:40px; display:grid; place-items:center;
  border-radius:10px; background:var(--ev-accent-soft); color:var(--ev-accent);
}
.ev-upload__texto strong{ display:block; font-size:15px; font-weight:600; color:var(--ev-ink); }
.ev-upload__texto small{ display:block; margin-top:2px; font-size:12px; color:var(--ev-ink-3); }

.ev-upload.is-listo .ev-upload__zona{ border-style:solid; border-color:var(--ev-ok); background:var(--ev-surface); }
.ev-upload.is-error .ev-upload__zona{ border-style:solid; border-color:var(--ev-error); background:#FEF3F2; }
.ev-upload.is-subiendo .ev-upload__zona{ border-style:solid; border-color:var(--ev-accent); }
.ev-upload.is-disabled{ opacity:.55; pointer-events:none; }

.ev-upload__estado:empty{ display:none; }
.ev-upload__estado{ margin-top:10px; }
.ev-upload__barra{ height:6px; border-radius:3px; background:var(--ev-line-tint); overflow:hidden; margin-top:10px; }
.ev-upload__barra span{ display:block; height:100%; width:0; background:var(--ev-accent); transition:width .2s linear; }
.ev-upload__archivo{ display:flex; align-items:center; gap:10px; font-size:14px; color:var(--ev-ink); }
.ev-upload__pdf{ flex:none; display:grid; place-items:center; color:var(--ev-accent); }
.ev-upload.is-error .ev-upload__pdf{ color:var(--ev-error); }
.ev-upload__nombre{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-upload__peso{ flex:none; font-size:12px; color:var(--ev-ink-3); }
.ev-upload__acciones{ display:flex; gap:4px; flex:none; }
.ev-upload__accion{
  border:0; background:transparent; color:var(--ev-accent); font-size:13px; font-weight:600;
  cursor:pointer; min-height:44px; padding:0 8px; text-decoration:none; display:inline-flex; align-items:center;
}
.ev-upload__accion--quitar{ color:var(--ev-ink-3); }
.ev-upload__accion--quitar:hover{ color:var(--ev-error); }
.ev-upload__mensaje{ font-size:13px; color:var(--ev-error); }

/* ---------- Forma de pago y observaciones (§15.13) ---------- */
.ev-pago{ border:0; padding:0; margin:32px 0 0; min-width:0; }
.ev-pago .ev-grupo__titulo{ float:none; width:auto; padding:0; }
.ev-pago__opciones{ margin-top:16px; }
.ev-pago__obs{
  margin-top:16px; padding:14px 16px; border-radius:10px;
  background:var(--ev-accent-soft); border:1px solid var(--ev-accent-line);
  font-size:14px; line-height:1.6; color:var(--ev-ink-2);
}
.ev-pago__obs:empty{ display:none; }
.ev-pago__obs p{ margin:0 0 8px; }
.ev-pago__obs p:last-child{ margin-bottom:0; }
.ev-pago__obs ul, .ev-pago__obs ol{ margin:0 0 8px; padding-left:20px; list-style:disc; }

/* ---------- Banda de totales (§15.13) ---------- */
.ev-insc__acciones{ display:flex; justify-content:flex-start; margin-top:32px; }
/* Superficie teñida (dos valores del acento: fondo tint-1 + hairline line-tint),
   para que el acento llegue tambien a la ultima superficie antes de pagar. */
.ev-total{
  position:sticky; bottom:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-top:32px; padding:16px 20px calc(16px + env(safe-area-inset-bottom));
  background:rgba(var(--ev-tint-1-rgb, 247, 248, 250), .96); backdrop-filter:blur(10px);
  border-top:1px solid var(--ev-line-tint);
}
.ev-total__info{ min-width:0; }
.ev-total__detalle{ margin:0; font-size:13px; color:var(--ev-ink-3); }
.ev-total__monto{
  margin:2px 0 0;
  font-size:clamp(20px,3vw,26px); font-weight:700; color:var(--ev-ink);
  font-variant-numeric:tabular-nums;
}
.ev-total__monto:empty{ display:none; }
.ev-total__monto.is-gratis{ color:var(--ev-ok); }
.ev-total__cta{ flex:0 0 auto; }
@media (max-width:575.98px){
  .ev-total{ margin-left:-16px; margin-right:-16px; padding-left:16px; padding-right:16px; }
  .ev-total__cta, .ev-total__cta .ev-btn{ width:100%; }
}

/* ---------- Errores, throttle y vacio (§15.7 / §15.15) ---------- */
.ev-resumen-errores{
  margin-bottom:24px; padding:16px 18px; border-radius:12px;
  background:#FEF3F2; border:1px solid #FECDCA;
}
.ev-resumen-errores__titulo{
  display:flex; align-items:center; gap:10px; margin:0 0 10px;
  font-family:var(--ev-font-ui); font-size:15px; font-weight:700; color:var(--ev-error);
}
.ev-resumen-errores ol{ margin:0; padding-left:20px; font-size:14px; list-style:decimal; }
.ev-resumen-errores li{ margin-bottom:4px; }
.ev-resumen-errores a{ color:var(--ev-error); text-decoration:underline; }

.ev-campo--error .ev-input,
.ev-campo--error .ev-select,
.ev-campo--error .ev-textarea{ border-color:var(--ev-error); }
.ev-campo--error .ev-input:focus,
.ev-campo--error .ev-select:focus,
.ev-campo--error .ev-textarea:focus{ box-shadow:0 0 0 3px rgba(180,35,24,.15); }
.ev-campo--error .ev-sino{ border-color:var(--ev-error); }
.ev-campo__error{
  display:flex; align-items:flex-start; gap:6px; margin:6px 0 0;
  font-size:13px; color:var(--ev-error);
}
.ev-campo__error[hidden]{ display:none; }

.ev-throttle{
  display:flex; gap:12px; align-items:flex-start;
  margin-bottom:24px; padding:14px 16px; border-radius:12px;
  background:#FFFAEB; border:1px solid #FEDF89;
}
.ev-throttle__icono{ flex:none; color:var(--ev-warn); display:grid; place-items:center; }
.ev-throttle__titulo{ margin:0 0 4px; font-size:14px; font-weight:700; color:#B54708; }
.ev-throttle__texto{ margin:0; font-size:13px; color:var(--ev-ink-2); }

.ev-vacio{
  margin-top:24px; padding:32px 24px; text-align:center;
  border:1px dashed var(--ev-line-tint); border-radius:var(--ev-r-lg); background:var(--ev-tint-1);
}
.ev-vacio__titulo{ margin:0 0 8px; font-family:var(--ev-font-ui); font-size:18px; font-weight:700; color:var(--ev-ink); }
.ev-vacio__texto{ margin:0 0 20px; font-size:14px; color:var(--ev-ink-2); }

/* ---------- Modo previsualizacion (§15.16) ---------- */
.ev-preview-aviso{
  display:flex; align-items:center; gap:10px; margin-bottom:20px;
  padding:12px 16px; border-radius:10px;
  background:#FFFAEB; border:1px solid #FEDF89;
  font-size:13px; font-weight:600; color:#B54708;
}
.ev-preview-aviso svg{ flex:none; }
/* El uploader se bloquea de verdad; el CTA solo se atenua: tiene que poder
   clickearse para que el admin vea el flujo completo (incluido el modal de T&C).
   El envio lo cortan el JS, el Aceptar del modal y el endpoint. */
.ev-insc--preview .ev-upload{ pointer-events:none; opacity:.6; }
.ev-insc--preview .ev-total__cta .ev-btn{ opacity:.7; }

/* ---------- Aterrizaje de pago (§15.17) ---------- */
.ev-pago-estado{
  display:flex; gap:16px; align-items:flex-start;
  margin-bottom:28px; padding:20px 22px; border-radius:var(--ev-r-lg); border:1px solid;
}
.ev-pago-estado:focus{ outline:none; }
.ev-pago-estado__icono{ flex:none; width:44px; height:44px; border-radius:50%; display:grid; place-items:center; }
.ev-pago-estado__titulo{ margin:0 0 6px; font-family:var(--ev-font-ui); font-size:18px; font-weight:700; }
.ev-pago-estado__texto{ margin:0; font-size:14px; line-height:1.6; color:var(--ev-ink-2); }
.ev-pago-estado__acciones{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }

.ev-pago-estado--ok{ background:#ECFDF3; border-color:#ABEFC6; }
.ev-pago-estado--ok .ev-pago-estado__icono{ background:var(--ev-ok); color:#fff; }
.ev-pago-estado--ok .ev-pago-estado__titulo{ color:#067647; }

.ev-pago-estado--pendiente{ background:#FFFAEB; border-color:#FEDF89; }
.ev-pago-estado--pendiente .ev-pago-estado__icono{ background:var(--ev-warn); color:#fff; }
.ev-pago-estado--pendiente .ev-pago-estado__titulo{ color:#B54708; }

.ev-pago-estado--error{ background:#FEF3F2; border-color:#FECDCA; }
.ev-pago-estado--error .ev-pago-estado__icono{ background:var(--ev-error); color:#fff; }
.ev-pago-estado--error .ev-pago-estado__titulo{ color:#B42318; }

/* ---------- Modal de terminos y condiciones (§15.14) ---------- */
.ev-tyc__cuerpo{
  max-height:min(52vh, 420px); overflow-y:auto;
  padding:20px; margin:20px 0;
  border:1px solid var(--ev-line-tint); border-radius:10px; background:var(--ev-tint-1);
  font-size:14px; line-height:1.65; color:var(--ev-ink-2);
}
.ev-tyc__cuerpo p{ margin:0 0 10px; }
.ev-tyc__acepto{ display:flex; align-items:flex-start; gap:10px; margin:0; font-size:14px; color:var(--ev-ink); cursor:pointer; }
.ev-tyc__acepto input{ margin-top:3px; width:18px; height:18px; flex:none; }
.ev-tyc__acciones{ display:flex; justify-content:flex-end; gap:12px; margin-top:20px; flex-wrap:wrap; }
.ev-tyc__acciones .ev-btn[disabled]{ opacity:.5; cursor:not-allowed; }
@media (max-width:575.98px){
  .ev-tyc__acciones{ flex-direction:column-reverse; }
  .ev-tyc__acciones .ev-btn{ width:100%; }
}

/* ---------- Organizan ---------- */
.ev-insc__organizan{ margin-top:40px; padding-top:24px; border-top:1px solid var(--ev-line-tint); }
.ev-insc__logos{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px;
  margin:0; padding:0; list-style:none;
}
.ev-insc__logos img{ max-height:64px; width:auto; object-fit:contain; }

/* ---------- Boton en estado de envio ---------- */
.ev-btn[aria-busy="true"]{ opacity:.75; cursor:progress; }
.ev-spinner{
  width:16px; height:16px; border-radius:50%; flex:none;
  border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
  animation:ev-girar .8s linear infinite;
}
@keyframes ev-girar{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .ev-spinner{ animation:none; } }

/* ---------- Feedback de las mascaras portadas (campo-dinamico-texto-regex) ----------
   El bloque de mascaras (portado tal cual) inyecta su propio .campo-regex-feedback.
   Dentro de un .ev-campo eso duplicaba el mensaje: manda el .ev-campo__error, que es
   el que el resumen de errores enlaza. Se oculta por CSS para no tocar el codigo
   portado (el input sigue con su setCustomValidity y su clase). */
.ev-insc .campo-regex-invalido{ border-color:var(--ev-error); }
.ev-campo .campo-regex-feedback{ display:none !important; }

/* ---------- Solo para lectores de pantalla ---------- */
.ev-sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* El motivo del tope global se muestra en pantalla, no solo en el title. */
.ev-tipo-fila__meta.is-tope{ color:var(--ev-warn); font-weight:600; }
