/* Lintac Admisiones — Inline App v3.1.0 */
:root{
  --brand-purple:#4C44C6;
  --brand-blue:#00B0D3;
  --ink:#0B2336;
  --bg:#ffffff;
  --muted:#7A7F8D;
  --line:#D7DEE5;
  --line-strong:#B9C3CD;
  --error:#5A1FBF;
}

.lintac-adm *{ box-sizing:border-box; }
.lintac-adm button, .lintac-adm select, .lintac-adm input{ font: inherit; }
.lintac-adm{ opacity:0; transform:translateY(6px); transition:opacity .22s ease, transform .22s ease; }
.lintac-adm.is-ready{ opacity:1; transform:none; }
.lintac-adm .btn[disabled]{ opacity:.68; cursor:wait; }
.lintac-adm__form.is-submitting{ pointer-events:none; }
.lintac-adm__form.is-submitting .submit{ position:relative; padding-left:42px; }
.lintac-adm__form.is-submitting .submit::before{
  content:""; position:absolute; left:16px; top:50%; width:14px; height:14px;
  margin-top:-7px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff;
  border-radius:50%; animation:lintacSpin .8s linear infinite;
}
@keyframes lintacSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){
  .lintac-adm, .lintac-step, .stepsbar::after{ transition:none !important; }
  .lintac-adm__form.is-submitting .submit::before{ animation:none; }
}

.lintac-adm--inline{ padding:24px 12px; background:#f5f6f8; }
.lintac-adm__shell{
  width:min(1100px, 96vw); margin:0 auto;
  background:#fff; color:var(--ink);
  border:1px solid var(--line-strong);
  box-shadow:0 24px 70px rgba(0,0,0,.12);
  padding:16px 18px; display:grid; grid-template-rows:auto auto 1fr; gap:12px;
}

.lintac-adm__header{ display:flex; align-items:center; justify-content:space-between; padding:6px 0 2px; border-bottom:1px solid var(--line); }
.lintac-adm__brand{ display:flex; align-items:center; gap:14px; }
.lintac-adm__brand img{ width:64px; height:64px; display:block; }
.lintac-adm__title{ margin:0; font-size:28px; font-weight:900; letter-spacing:.6px; text-transform:uppercase; }

/* Stepper with provided icons */
.stepsbar{
  position:relative;
  --p:0;
  --dot:28px;
  --rail-h:2px;
  --pad-x: 0px;
  padding:18px 0 12px;
  display:flex; align-items:flex-start; justify-content:space-between;
}
.stepsbar::before,
.stepsbar::after{
  content:""; position:absolute; left:0; right:0;
  height:var(--rail-h);
  top: calc(18px + var(--dot)/2 - var(--rail-h)/2);
}
.stepsbar::before{ background:#CDD0E0; } /* gris del mock */
.stepsbar::after{ background:#4C44C6; transform:scaleX(var(--p)); transform-origin:left; }
.stepsbar .step{ display:flex; align-items:center; gap:10px; }
.stepsbar .dot{
  width:var(--dot); height:var(--dot);
  background-image:url('https://admisiones.lintac.cl/wp-content/uploads/2025/10/gris.png');
  background-size:contain; background-repeat:no-repeat; background-position:center;
  position:relative; z-index:1; /* por encima de la línea */
}
.stepsbar .step.is-current .dot{
  background-image:url('https://admisiones.lintac.cl/wp-content/uploads/2025/10/activo.png');
}
.stepsbar .step.is-done .dot{
  background-image:url('https://admisiones.lintac.cl/wp-content/uploads/2025/10/completado.png');
}
.stepsbar .label{
  font-size:14px; text-transform:uppercase; letter-spacing:.4px; font-weight:800;
  color:#4C44C6; margin-top:-10px;
}
/* Steps */

.lintac-steps{ position:relative; overflow:hidden; min-height:420px; }
.lintac-step{ position:absolute; inset:0; transform:translateX(100%); opacity:0; transition:transform .28s ease, opacity .28s ease; }
.lintac-step.is-active{ transform:none; opacity:1; position:relative; }
.lintac-step.is-left{ transform:translateX(-100%); }
.lintac-step__title{ margin:10px 0 16px; font-weight:900; font-size:20px; text-transform:uppercase; letter-spacing:.5px; }

.grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; }
@media (max-width:980px){ .grid{ grid-template-columns:1fr; } }

.fi{ display:flex; flex-direction:column; }
.fi > span{ font-size:12px; color:var(--muted); margin-bottom:8px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; }

/* Underline inputs */
.fi input, .fi select{
  appearance:none;
  border:0; border-bottom:2.5px solid var(--line-strong);
  background:#fff; color:var(--ink);
  padding:12px 6px 14px; font-size:16px; outline:none;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.fi input:focus, .fi select:focus{ border-bottom-color: #4C44C6; box-shadow: 0 1px 0 0 #4C44C6; background:#fafaff; }
.fi.invalid input, .fi.invalid select{ border-bottom-color: var(--error); box-shadow:0 1px 0 0 var(--error); }
.fi .err{ color: var(--error); font-size:12px; min-height:14px; margin-top:6px; }

.students-actions{ margin:10px 0 0; }
.students-actions .btn{ border:1px solid var(--line-strong); background:transparent; padding:10px 14px; cursor:pointer; font-weight:900; text-transform:uppercase; }
.student-card{ border:1px solid var(--line-strong); padding:12px; margin:12px 0 0; }
.student-card .row{ display:grid; grid-template-columns: repeat(3,1fr); gap:12px; }
@media (max-width:980px){ .student-card .row{ grid-template-columns:1fr; } }

.actions{ position:sticky; bottom:0; padding:12px 0 0; background:linear-gradient(180deg, rgba(255,255,255,0) 0, #fff 18px); display:flex; gap:12px; justify-content:flex-end; margin-top:18px; }
.actions .btn{ border:1px solid var(--line-strong); background:transparent; color:var(--ink); padding:12px 18px; font-weight:900; text-transform:uppercase; letter-spacing:.3px; cursor:pointer; }
.actions .btn.primary{ background:#4C44C6; color:#fff; border-color:#4C44C6; }
.actions .btn.primary:hover{ filter:brightness(1.05); }

.review{ display:grid; gap:16px; margin-top:8px; }
.review .box{ border:1px solid var(--line-strong); padding:12px; }
.review .box h4{ margin:0 0 8px; text-transform:uppercase; font-size:13px; }
.review .row{ display:grid; grid-template-columns: repeat(2, 1fr); gap:12px; }
.review table{ width:100%; border-collapse:collapse; }
.review th, .review td{ padding:10px; border-bottom:1px solid var(--line); text-align:left; }
.review th{ text-transform:uppercase; font-size:12px; background: #f6f8fa; }

.lintac-msg{ margin-top:12px; padding:12px; border:1px solid var(--line-strong); }
.lintac-msg.ok{ background:#eaffea; border-color:#2b8a3e; }
.lintac-msg.err{ background:#f7ecff; border-color: var(--error); }

/* ===== Patch v3.2.1 ===== */
/* Apoderados titles in gray */
.lintac-adm .lintac-step[data-step="2"] .lintac-step__title{
  color:#4B5568; /* gris títulos */
}

/* Keep Postulante / Resumen / Recibido morado corporativo */
.lintac-adm .lintac-step:not([data-step="2"]) .lintac-step__title{
  color:#4C44C6;
}

/* Actions pinned bottom-right */
.lintac-adm .actions{
  display:flex;
  justify-content:flex-end !important;
  align-items:center;
  gap:12px;
  margin-left:auto;
}
.lintac-adm .actions .btn{ margin-left:0; }

/* ===== Patch v3.2.2 — Inputs caja completa ===== */
.lintac-adm .fi{ display:flex; flex-direction:column; }
.lintac-adm .fi > span{
  font-size:12px; font-weight:800; letter-spacing:.2px;
  color:#4B5568; margin:0 0 6px; text-transform:none;
}
/* Caja rectangular sin radios (override de cualquier underline previo) */
.lintac-adm .fi input,
.lintac-adm .fi select{
  appearance:none;
  width:100%;
  height:46px;
  padding:10px 12px;
  border:2px solid #4C44C6;
  border-radius:0;
  background:#fff; color:#0B2336;
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.lintac-adm .fi input::placeholder{ color:#8D95B1; opacity:1; }
.lintac-adm .fi input:hover,
.lintac-adm .fi select:hover{ background:#fafaff; }
.lintac-adm .fi input:focus,
.lintac-adm .fi select:focus{
  border-color:#4C44C6;
  box-shadow:0 0 0 3px rgba(76,68,198,.12);
}
.lintac-adm .fi.invalid input,
.lintac-adm .fi.invalid select{
  border-color:#A345FF;
  box-shadow:0 0 0 3px rgba(163,69,255,.12);
}
/* Select con caret morado (sin radios) */
.lintac-adm .fi select{
  background-image:
    linear-gradient(45deg, transparent 50%, #4C44C6 50%),
    linear-gradient(135deg, #4C44C6 50%, transparent 50%),
    linear-gradient(to right, transparent, transparent);
  background-position:
    calc(100% - 14px) 19px,
    calc(100% - 8px) 19px,
    calc(100% - 36px) 0.5em;
  background-size:6px 6px, 6px 6px, 1px 2.5em;
  background-repeat:no-repeat;
  padding-right:40px;
}
/* Tarjeta del postulante */
.lintac-adm .student-card{
  border:1px solid #C7CBE2;
  padding:16px 14px; margin-top:14px;
}
.lintac-adm .student-card .row{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; }
@media (max-width:980px){ .lintac-adm .student-card .row{ grid-template-columns:1fr; } }

/* Titles y acciones (conservamos lo de 3.2.1) */
.lintac-adm .lintac-step[data-step="2"] .lintac-step__title{ color:#4B5568; }
.lintac-adm .actions{ display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-left:auto; }

/* ===== v3.2.4 Override — Stepper labels arriba + iconos grandes ===== */
.lintac-adm .stepsbar{
  --dot:32px; --rail-h:2px; --pad-t:28px;
  padding:var(--pad-t) 0 14px !important;
  display:flex; align-items:flex-start !important; justify-content:space-between;
}
.lintac-adm .stepsbar::before,
.lintac-adm .stepsbar::after{
  top:calc(var(--pad-t) + var(--dot)/2 - var(--rail-h)/2) !important;
}
.lintac-adm .stepsbar .step{ display:flex !important; flex-direction:column !important; align-items:center !important; gap:8px !important; text-align:center; }
.lintac-adm .stepsbar .label{ order:-1 !important; font-size:14px; font-weight:800; color:#4C44C6; white-space:nowrap; line-height:1.1; }
.lintac-adm .stepsbar .dot{ width:var(--dot) !important; height:var(--dot) !important; }
@media (max-width:560px){
  .lintac-adm .stepsbar{ --dot:26px; --pad-t:26px; }
  .lintac-adm .stepsbar .label{ font-size:12px; }
}

/* ===== v3.2.5 — Stepper baseline fix (center through dots, ends behind dots) ===== */
.lintac-adm .stepsbar{ position:relative; }
.lintac-adm .stepsbar::before,
.lintac-adm .stepsbar::after{
  left:calc(var(--dot)/2) !important;
  right:calc(var(--dot)/2) !important;
  top:calc(var(--pad-t) + (var(--dot)/2) - (var(--rail-h)/2)) !important;
}
.lintac-adm .stepsbar .dot{ position:relative; z-index:1; } /* dots above the line */















/* ===== Stepper — labels arriba + iconos grandes ===== */
.lintac-adm .stepsbar{
  --dot: 32px;          /* tamaño de cada círculo (sube a 34px si quieres) */
  --rail-h: 2px;        /* grosor de la línea */
  --pad-t: 28px;        /* espacio para labels arriba */
  --prog: 0;            /* 0..1 => progreso (0=primer paso, 1=último) */
  position: relative;
  padding: var(--pad-t) 0 14px !important;
  display: flex; align-items: flex-start !important; justify-content: space-between;
}
/* Línea de fondo (gris) y línea de progreso (morado) alineadas al centro de los puntos */
.lintac-adm .stepsbar::before,
.lintac-adm .stepsbar::after{
  content:""; position:absolute; height:var(--rail-h);
  top: calc(var(--pad-t) + (var(--dot)/2) - (var(--rail-h)/2)) !important;
  left: calc(var(--dot)/2) !important;           /* empieza en el centro del 1er punto */
  right: calc(var(--dot)/2) !important;          /* termina en el centro del último */
}
.lintac-adm .stepsbar::before{ background:#CDCFE2; }    /* gris de fondo */
.lintac-adm .stepsbar::after{
  background:#4C44C6;                              /* morado de progreso */
  right:auto !important;
  width: calc(100% - var(--dot));
  transform-origin: left center;
  transform: scaleX(var(--prog));                   /* progreso real */
  transition: transform .25s ease;
}
/* Cada paso: label arriba, punto abajo */
.lintac-adm .stepsbar .step{
  display:flex !important; flex-direction:column !important;
  align-items:center !important; gap:8px !important; text-align:center;
}
.lintac-adm .stepsbar .label{
  order:-1 !important; white-space:nowrap; line-height:1.1;
  font-size:14px; font-weight:800; color:#4C44C6;
}
.lintac-adm .stepsbar .dot{
  width:var(--dot) !important; height:var(--dot) !important;
  background-repeat:no-repeat; background-size:contain; background-position:center;
  position:relative; z-index:1; /* los puntos por encima de la línea */
  background-image:url('https://admisiones.lintac.cl/wp-content/uploads/2025/10/gris.png');
}
.lintac-adm .stepsbar .step.is-current .dot{ background-image:url('https://admisiones.lintac.cl/wp-content/uploads/2025/10/activo.png'); }
.lintac-adm .stepsbar .step.is-done    .dot{ background-image:url('https://admisiones.lintac.cl/wp-content/uploads/2025/10/completado.png'); }

/* Responsive */
@media (max-width:560px){
  .lintac-adm .stepsbar{ --dot:26px; --pad-t:26px; }
  .lintac-adm .stepsbar .label{ font-size:12px; }
}



/* Línea 5px más abajo, centrada en los círculos */
.lintac-adm .stepsbar::before,
.lintac-adm .stepsbar::after{
  top: calc(var(--pad-t) + (var(--dot)/2) - (var(--rail-h)/2) + 5px) !important;
}


.lintac-adm .stepsbar .step {
    margin-top:-15px!important;
}
















/* =========================================================
 * PATCH MOBILE FINAL LINTAC (<=600px)
 * - Paso 1 y 2 centrados
 * - Paso 3 (review) scrolleable
 * - Botones siempre visibles abajo
 * ========================================================= */
@media (max-width: 600px){

  /* Contenedor exterior: sin scroll horizontal */
  .lintac-adm--inline{
    padding: 16px 0;
    overflow-x: hidden;
  }

  /* Card principal ocupa todo el ancho y se comporta como layout de pantalla */
  .lintac-adm__shell{
    width: 100%;
    max-width: 100%;
    margin: 0;
    border-radius: 0;
    padding: 16px 14px 12px;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    max-height: 100vh;         /* usamos toda la altura del viewport */
  }

  /* Header + stepper arriba, contenido en medio, acciones abajo */
  .lintac-adm__header{
    flex: 0 0 auto;
  }

  .lintac-adm .stepsbar{
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    justify-content: space-between;
    gap: 4px;
  }

  .lintac-adm .stepsbar .step{
    flex: 1 1 0;
    min-width: 0;
  }

  .lintac-adm .stepsbar .label{
    white-space: normal;
    font-size: 11px;
    line-height: 1.2;
  }

  /* ===== CONTENIDO DE LOS PASOS: SCROLL VERTICAL ===== */
  .lintac-steps{
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;          /* aquí se hace el scroll del paso */
    padding-bottom: 16px;
  }

  /* Quitamos la animación horizontal en mobile para no complicar el scroll */
  .lintac-step{
    position: relative;
    inset: auto;
    transform: none !important;
    opacity: 0;
    display: none;
  }

  .lintac-step.is-active{
    opacity: 1;
    display: block;
  }

  .lintac-step.is-left{
    transform: none !important;
  }

  /* Grids en una sola columna (para que no “se vea web” en mobile) */
  .lintac-adm .grid{
    grid-template-columns: 1fr !important;
  }

  .lintac-adm .student-card .row{
    grid-template-columns: 1fr !important;
  }

  /* ===== REVIEW (PASO 3) ===== */
  .lintac-adm .review{
    display: block;
    margin-top: 10px;
  }

  .lintac-adm .review .row{
    display: block;
  }

  .lintac-adm .review .box{
    margin-bottom: 12px;
  }

  /* La tabla de alumnos no debe romper el ancho y debe poder scroll-earse */
  .lintac-adm .review table{
    width: 100%;
    display: block;
    overflow-x: auto;
  }

  .lintac-adm .review tbody{
    display: table;
    width: 100%;
  }

  .lintac-adm .review tr{
    word-break: break-word;
  }

  .lintac-adm .review td{
    font-size: 13px;
    padding: 8px 10px;
  }

  /* ===== BOTONES SIEMPRE VISIBLES ABAJO ===== */
  .lintac-adm .actions{
    flex: 0 0 auto;
    position: sticky;
    bottom: 0;
    padding-top: 10px;
    margin-top: 4px;
    background: linear-gradient(180deg, rgba(255,255,255,0) 0, #ffffff 30%);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    z-index: 20;
  }

  .lintac-adm .actions .btn{
    margin-left: 0;
  }
}

/* ===== PATCH TABLA REVIEW MOBILE (no cortar "Nombre" en 4 líneas) ===== */
@media (max-width: 600px){

  /* La tabla puede ser más ancha que la pantalla y scrollearse horizontalmente */
  .lintac-adm .review table{
    display: block;
    width: 100%;
    min-width: 520px;       /* fuerza scroll horizontal si no entra */
    overflow-x: auto;
    table-layout: auto;
  }

  .lintac-adm .review tbody{
    display: table;
    width: 100%;
  }

  /* No romper palabras agresivamente */
  .lintac-adm .review tr{
    word-break: normal;
  }

  /* Primera columna (Nombre del postulante) en una sola línea */
  .lintac-adm .review td:first-child{
    white-space: nowrap;
  }
}


/* v3.4.5 — ocultar botón de WhatsApp (Joinchat) en la página del formulario */
body.has-lintac-form .joinchat,
body.has-lintac-form .joinchat__button{ display:none !important; }

/* v3.4.4 — enlace "¿Necesitas ayuda?" dentro del formulario (discreto) */
.lintac-adm__help{ text-align:center; margin-top:12px; }
.lintac-adm__help .lintac-help-trigger{
  background:transparent; border:0; cursor:pointer;
  color:#4C44C6; font-weight:800; font-size:14px; padding:6px 8px; text-decoration:underline;
}
.lintac-adm__help .lintac-help-trigger:hover{ color:#00B0D3; }

/* v3.4.6 — selector internacional de teléfono (intl-tel-input) */
.lintac-adm .fi .iti{ width:100%; display:block; }
.lintac-adm .fi .iti input[type="tel"]{ width:100%; height:46px; }
.iti--container{ z-index:100001 !important; }

/* v3.3.6 — asistencia amable por campo */
.lintac-adm .lintac-field-error{
  display:block;
  margin-top:6px;
  font-size:12px;
  line-height:1.35;
  color:#8A1F4D;
}
.lintac-adm .fi.invalid input,
.lintac-adm .fi.invalid select{
  background:#fffafd;
}
.lintac-adm .lintac-msg{
  line-height:1.45;
}


/* v3.5.2 — quitar postulantes agregados sin dejar campos obligatorios huérfanos */
.lintac-adm .student-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
  padding:0 0 10px;
  border-bottom:1px solid #E0E3F0;
}
.lintac-adm .student-card__title{
  color:#4B5568;
  font-size:14px;
  font-weight:900;
  letter-spacing:.35px;
  text-transform:uppercase;
}
.lintac-adm .remove-student{
  border:1px solid #B42318;
  background:#fff;
  color:#B42318;
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  letter-spacing:.2px;
  padding:8px 10px;
  text-transform:uppercase;
}
.lintac-adm .remove-student:hover,
.lintac-adm .remove-student:focus{
  background:#FFF4F2;
  outline:none;
}
.lintac-adm .add-student[disabled]{
  cursor:not-allowed;
  opacity:.45;
}
@media (max-width:620px){
  .lintac-adm .student-card__head{
    align-items:flex-start;
    flex-direction:column;
  }
  .lintac-adm .remove-student{
    width:100%;
  }
}
