/* Cupos por curso · #/cupos, #/cupos/solicitar, #/cuenta/cupos, #/cupo/<token> y sección Cupos del panel (28-10-2026). Usa los tokens de estilos.css. */
.cupos { padding-top: 24px; padding-bottom: 96px; display: flex; flex-direction: column; gap: 18px; }
.cupos--angosto { max-width: 820px; }
.cupos h2 { margin: 0 0 6px; font-size: 20px; }
.cupos-busqueda { display: flex; flex-direction: column; gap: 14px; }
.cupos-busqueda__fila { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
.cupos-busqueda__solo { align-self: center; font-size: 14px; }
.cupos-busqueda .boton--grande { align-self: flex-start; }
.cupos-comunas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px; border: 1px solid var(--borde-control); border-radius: var(--radio-m); background: var(--superficie-tarjeta); }
.cupos-comunas .ce-chip { display: inline-flex; align-items: center; gap: 4px; }
.cupos-comunas__input { flex: 1 1 180px; min-width: 140px; border: 0; box-shadow: none; padding: 6px 4px; }
.cupos-comunas__input:focus { outline: none; }
.cupos-sugeridas { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.cupos-sugeridas .ce-chip { display: inline-flex; align-items: center; gap: 4px; }
.cupos-resultados__cab { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.cupos-resultados__acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.cupos-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cupo-tarjeta { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 260px); gap: 12px; align-items: center; padding: 12px 16px; background: var(--superficie-tarjeta); border: 1px solid var(--borde); border-radius: var(--radio-l); }
.cupo-tarjeta--sel { border-color: var(--cm-tinta); box-shadow: inset 3px 0 0 var(--cm-lapiz); }
.cupo-tarjeta__marca input { width: 20px; height: 20px; accent-color: var(--cm-tinta); }
.cupo-tarjeta__cuerpo { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cupo-tarjeta__nombre { font-weight: 600; color: var(--texto-fuerte); text-decoration: none; }
.cupo-tarjeta__nombre:hover { text-decoration: underline; }
.cupo-tarjeta__estado { display: flex; flex-direction: column; gap: 2px; align-items: flex-end; text-align: right; }
.cupos-barra { position: sticky; bottom: 12px; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; background: var(--cm-tinta); color: var(--cm-blanco); border-radius: var(--radio-l); box-shadow: var(--sombra-tarjeta); }
.cupos-nota { margin: 0; }
.cupos-form { display: flex; flex-direction: column; gap: 12px; }
.cupos-form h2 { margin-top: 8px; }
.cupos-form .casilla { align-items: flex-start; font-size: 14px; }
.cupos-hermanos { border: 0; padding: 0; margin: 0; }
.cupos-hermanos details { display: flex; flex-direction: column; gap: 6px; }
.cupos-hermanos .casilla { margin-top: 6px; }
.cupos-mia h2 { font-size: 18px; }
.cupos-mia__lista { list-style: none; margin: 8px 0; padding: 0; display: flex; flex-direction: column; }
.cupos-mia__lista li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid var(--borde); align-items: center; }
.cupos-mia__lista li > span { text-align: right; }
.cupos-consultas { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 17px; }
.cupos-respuestas { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0; }
/* Panel */
.cupos-tabla { overflow-x: auto; }
.cupos-tabla table { width: 100%; border-collapse: collapse; }
.cupos-tabla th, .cupos-tabla td { padding: 6px 8px; border-top: 1px solid var(--borde); text-align: left; vertical-align: middle; }
.cupos-tabla thead th { border-top: 0; font-size: 13px; color: var(--texto-suave); font-weight: 600; }
.cupos-tabla select { min-width: 190px; }
.cupos-cantidad { width: 72px; }
.cupos-viejo { color: var(--cm-correccion); }
.cupos-sub { margin: 18px 0 0; }
.cupos-sol .lista-simple { margin: 8px 0; }
.cupos-sol__acciones { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.cupos-resultado { flex-direction: row; align-items: center; gap: 6px; margin-left: auto; }
.cupos-admin-sol .cupos-tabla { margin-top: 10px; }
.cupos-admin-sol .cupos-tabla td { font-size: 14px; }
@media (max-width: 760px) {
  .cupos-busqueda__fila { grid-template-columns: minmax(0, 1fr); }
  .cupo-tarjeta { grid-template-columns: auto minmax(0, 1fr); }
  .cupo-tarjeta__estado { grid-column: 2; align-items: flex-start; text-align: left; }
  .cupos-barra { bottom: 8px; }
  .cupos-barra .boton { width: 100%; justify-content: center; }
  .cupos-resultado { margin-left: 0; }
}

/* Llamado a consultar cupo desde la ficha, Mi lista y Comparar (29-10-2026) */
.cupos-llamado { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin: 18px 0; padding: 14px 18px; border: 1px solid var(--cm-tinta); border-left: 4px solid var(--cm-lapiz); border-radius: var(--radio-l); background: var(--superficie-tarjeta); }
.cupos-llamado__texto { display: flex; gap: 12px; align-items: flex-start; flex: 1 1 320px; }
.cupos-llamado__texto div { display: flex; flex-direction: column; gap: 2px; }
.cupos-incluidos { margin: 0; }
.cupos-historial { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.cupos-historial li { white-space: nowrap; }
.cupos-contacto-directo { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; margin-top: 6px; }
.cupos-contacto-directo a { display: inline-flex; align-items: center; gap: 4px; }

/* Etapa 2 (4-11-2026): contacto y resultado de la familia, seguir colegio y curso, demanda en el panel */
.cupos-mia__lista li { flex-wrap: wrap; }
.cupos-mia__extra { flex-basis: 100%; display: flex; flex-direction: column; gap: 6px; padding: 4px 0 2px; }
.cupos-mia__contacto, .cupos-mia__resultado { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
.cupos-mia__contacto a { display: inline-flex; align-items: center; gap: 4px; }
.cupos-seguir { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-top: 10px; border-top: 1px dashed var(--borde); margin: 0; }
.cupos-seguir select { width: auto; min-width: 120px; }
.cupos-dem { display: flex; flex-direction: column; gap: 12px; }
.cupos-dem__cifras { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.cupos-dem__cifras div { display: flex; flex-direction: column; }
.cupos-dem__cifras strong { font-size: 22px; color: var(--texto-fuerte); font-variant-numeric: tabular-nums; }
.cupos-dem__grafico { width: 100%; height: auto; max-height: 200px; }
.cupos-dem__marca { fill: var(--cm-tinta); }
.cupos-dem__barra:hover .cupos-dem__marca { opacity: .8; }
.cupos-dem__eje { stroke: var(--borde); stroke-width: 1; }
.cupos-dem__txt { font-size: 11px; fill: var(--texto-suave); font-variant-numeric: tabular-nums; }
.cupos-dem__cursos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cupos-dem__cursos li { display: grid; grid-template-columns: 110px minmax(0, 1fr) 40px; gap: 8px; align-items: center; font-size: 14px; }
.cupos-dem__pista { height: 8px; background: var(--superficie-sutil, rgba(0,0,0,.06)); border-radius: 4px; overflow: hidden; }
.cupos-dem__pista span { display: block; height: 100%; background: var(--cm-tinta); border-radius: 4px; }
.cupos-dem__tabla { margin-top: 6px; border-collapse: collapse; }
.cupos-dem__tabla th, .cupos-dem__tabla td { padding: 3px 10px 3px 0; text-align: left; font-variant-numeric: tabular-nums; }

/* Detalle por colegio en #/admin/cupos (4-11-2026) */
.cupos-colegio { border-top: 1px solid var(--borde); padding: 12px 0; }
.cupos-colegio__cab { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.cupos-colegio__cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.cupos-colegio h4, .cupos-correos-fam h4 { margin: 0 0 6px; font-size: 13px; color: var(--texto-suave); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.cupos-correos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cupos-correos li { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; font-size: 14px; }
.cupos-correo__a { font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: 4px; border: 1px solid var(--borde); color: var(--texto-suave); }
.cupos-correo__a--colegio { border-color: var(--cm-tinta); color: var(--cm-tinta); }
.cupos-correo__txt { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.cupos-correos-fam { margin: 10px 0; }
.cupos-detalle { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 14px; }
.cupos-detalle dt { color: var(--texto-suave); }
.cupos-detalle dd { margin: 0; overflow-wrap: anywhere; min-width: 0; }
@media (max-width: 760px) { .cupos-colegio__cuerpo { grid-template-columns: minmax(0, 1fr); } .cupos-detalle { grid-template-columns: minmax(0, 1fr); } .cupos-detalle dd { margin-bottom: 6px; } }

/* Sello y bloque "Con vacantes" (etapa 4, 4-11-2026, vacantes.js) */
.sello-vacantes { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; background: rgba(46, 94, 78, .12); color: var(--texto-positivo); font-weight: 600; font-size: .85em; white-space: nowrap; }
.sello-vacantes svg { font-size: 14px; }
.vacantes-ficha { margin: 14px 0; padding: 14px 18px; border: 1px solid var(--cm-tinta); border-left: 4px solid var(--texto-positivo); border-radius: var(--radio-l); background: var(--superficie-tarjeta); display: flex; flex-direction: column; gap: 10px; }
.vacantes-ficha__cab { display: flex; align-items: center; gap: 10px; color: var(--texto-positivo); }
.vacantes-ficha__cab h2 { font-size: 1.05rem; margin: 0; color: var(--texto-fuerte); }
.vacantes-ficha__anio ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.vacantes-ficha__anio li { display: flex; align-items: center; gap: 8px; }
.vacantes-ficha p { margin: 0; }

/* Consultas en curso y estado claro por colegio (5-11-2026) */
.cupo-tarjeta--en-curso { background: var(--superficie-suave, rgba(0,0,0,.03)); }
.cupo-tarjeta--en-curso .cupo-tarjeta__marca { color: var(--texto-info); display: flex; align-items: center; justify-content: center; }
.cupos-en-curso { margin: 8px 0 12px; }
.cupos-llamado--en-curso .cupos-llamado__texto > div { display: flex; flex-direction: column; gap: 2px; }
.cupos-mia__estado { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; max-width: 62%; }
.cupos-mia__paso { text-align: right; }
.cupos-mia__repetida { opacity: .75; }
.cupos-guia ol { margin: 8px 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; }
.cupos-guia h2 { display: flex; align-items: center; gap: 8px; }
@media (max-width: 600px) { .cupos-mia__estado { max-width: 100%; align-items: flex-start; } .cupos-mia__paso { text-align: left; } }
