/* Citas en el stand: lista de eventos, agenda y formulario del evento. */
.eventos-lista { list-style: none; margin: 0 0 var(--e5); padding: 0; display: grid; gap: var(--e4); }
.evento-card { background: var(--superficie); border: 1px solid var(--linea); border-top: 3px solid var(--acento); border-radius: var(--radio-g); padding: var(--e5); display: grid; gap: var(--e2); }
.evento-card__cabeza { display: flex; gap: var(--e3); align-items: center; flex-wrap: wrap; }
.evento-card h2 { font-size: var(--t-l); margin: 0; }
.evento-card h2 a { color: var(--tinta); text-decoration: none; }
.evento-card h2 a:hover { text-decoration: underline; }
.evento-card__sub, .evento-card__reglas { margin: 0; color: var(--tinta-suave); font-size: var(--t-s); }
.cifras--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: var(--e3) 0; }

/* Agenda */
.agenda-filtros { display: flex; gap: var(--e5); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--e5); }
.agenda-filtros .campo { margin-bottom: 0; }
.agenda-filtros .etiqueta { display: block; font-size: var(--t-s); font-weight: 500; margin-bottom: var(--e1); }
.agenda-controles { display: flex; gap: var(--e4); align-items: center; flex-wrap: wrap; margin-bottom: var(--e3); }
.check-linea { font-size: var(--t-s); cursor: pointer; }
.agenda-titulo { font-size: var(--t-l); margin: 0 0 var(--e4); }
.agenda-titulo::first-letter { text-transform: uppercase; }
.franja-panel { border: 1px solid var(--linea); border-radius: var(--radio-g); background: var(--superficie); margin-bottom: var(--e4); overflow: hidden; }
.franja-panel__cabeza { display: flex; justify-content: space-between; align-items: center; gap: var(--e3); padding: var(--e3) var(--e4); background: var(--superficie-2); border-bottom: 1px solid var(--linea); flex-wrap: wrap; }
.franja-panel__cabeza h3 { margin: 0; font-family: var(--fuente-titulo); font-size: var(--t-m); font-variant-numeric: tabular-nums; }
.franja-panel__cabeza h3::first-letter { text-transform: uppercase; }
.ocupacion { font-size: var(--t-xs); font-weight: 500; color: var(--e-aprobado-t); background: var(--e-aprobado-f); padding: 0.2em 0.75em; border-radius: 999px; }
.ocupacion--llena { color: var(--e-pendiente-t); background: var(--e-pendiente-f); }
.franja-panel > .vacio { padding: var(--e3) var(--e4); margin: 0; }
.citas { list-style: none; margin: 0; padding: 0; }
.cita { display: flex; justify-content: space-between; gap: var(--e4); align-items: flex-start; padding: var(--e3) var(--e4); border-bottom: 1px solid var(--linea); flex-wrap: wrap; }
.cita:last-child { border-bottom: 0; }
.cita__quien { display: grid; gap: 2px; min-width: 14rem; flex: 1 1 18rem; }
.cita__quien .sub { display: block; }
.cita__motivo { font-size: var(--t-s); color: var(--tinta); font-style: italic; }
.cita--anulada { background: var(--superficie-2); }
.cita--anulada .cita__quien strong { text-decoration: line-through; color: var(--tinta-suave); }
.cita__acciones { display: flex; gap: var(--e3); align-items: center; flex-wrap: wrap; }
.boton--s { min-height: var(--alto-boton-s); padding: 0 var(--e3); }
/* Asistencia: tres opciones con texto, el estado elegido se ve sin depender del color */
.seg { display: inline-flex; border: 1px solid var(--linea-fuerte); border-radius: var(--radio); overflow: hidden; background: var(--superficie); }
.seg__op { font: inherit; font-size: var(--t-xs); font-weight: 500; padding: var(--e1) var(--e3); min-height: 1.875rem; cursor: pointer; background: transparent; color: var(--tinta-suave); border: 0; border-right: 1px solid var(--linea); }
.seg__op:last-child { border-right: 0; }
.seg__op:hover:not([disabled]) { background: var(--acento-fondo); color: var(--tinta); }
.seg__op[disabled] { cursor: default; }
.seg__op[aria-pressed="true"]::before { content: "✓ "; }
.seg__op--asistio[aria-pressed="true"] { background: var(--e-aprobado-f); color: var(--e-aprobado-t); }
.seg__op--no_asistio[aria-pressed="true"] { background: var(--error-f); color: var(--error-t); }
.seg__op--pendiente[aria-pressed="true"] { background: var(--e-pendiente-f); color: var(--e-pendiente-t); }

/* Formulario del evento */
.formulario-evento { display: grid; gap: var(--e5); max-width: 46rem; min-width: 0; }
.formulario-evento fieldset { border: 1px solid var(--linea); border-radius: var(--radio-g); background: var(--superficie); padding: var(--e4) var(--e5); display: grid; gap: var(--e3); margin: 0; }
.formulario-evento legend { font-family: var(--fuente-titulo); font-size: var(--t-m); font-weight: 500; padding: 0 var(--e2); }
.campo--check label { cursor: pointer; font-weight: 500; }
.dias-lista { display: grid; gap: var(--e3); }
.dia-fila { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: var(--e3); align-items: end; }
.dia-fila label { display: grid; gap: var(--e1); font-size: var(--t-xs); font-weight: 500; }
.resumen-franjas { margin: var(--e2) 0 0; font-weight: 500; color: var(--acento-oscuro); }
@media (max-width: 640px) {
  .dia-fila { grid-template-columns: 1fr 1fr; }
  .cifras--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cifras--4 .cifra:nth-child(2) { border-right: 0; }
  .cifras--4 .cifra:nth-child(n+3) { border-top: 1px solid var(--linea); padding-left: 0; }
}
.bloque-citas { margin-bottom: var(--e6); }
.bloque-citas h3 { font-size: var(--t-m); margin: 0 0 var(--e3); }
.bloque-citas h3 a { color: var(--tinta); }

/* Configurador de citas: formulario a la izquierda, vista previa en vivo a la derecha */
.configurador { display: grid; gap: var(--e5); align-items: start; }
.configurador__form { display: grid; gap: var(--e5); min-width: 0; }
.configurador__vista { min-width: 0; }
@media (min-width: 1100px) {
  .configurador { grid-template-columns: minmax(0, 46rem) minmax(18rem, 1fr); }
  .configurador__vista { position: sticky; top: var(--e5); max-height: calc(100vh - 2 * var(--e5)); overflow: auto; }
}
.atajos .boton { flex: 0 0 auto; width: auto; }
.atajos { display: flex; gap: var(--e2); flex-wrap: wrap; margin: calc(-1 * var(--e2)) 0 var(--e3); }
.campo__ayuda--bloqueo { color: var(--error-t); font-weight: 500; }

/* Calendario de días */
.calendario { max-width: 22rem; border: 1px solid var(--linea); border-radius: var(--radio-g); padding: var(--e3); background: var(--superficie-2); }
.calendario__cabeza { display: flex; align-items: center; justify-content: space-between; gap: var(--e3); margin-bottom: var(--e3); }
.calendario__mes { margin: 0; font-size: var(--t-m); font-weight: 500; }
.calendario__mes::first-letter { text-transform: uppercase; }
.calendario__semana, .calendario__rejilla { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--e1); }
.calendario__semana span { text-align: center; font-size: var(--t-xs); font-weight: 500; color: var(--tinta-suave); padding-bottom: var(--e1); }
.calendario__dia { font: inherit; font-variant-numeric: tabular-nums; min-height: 2.5rem; border: 1px solid transparent; border-radius: var(--radio); background: var(--superficie); color: var(--tinta); cursor: pointer; }
.calendario__dia:hover { border-color: var(--linea-fuerte); background: var(--acento-fondo); }
.calendario__dia--hoy { border-color: var(--linea-fuerte); font-weight: 600; }
.calendario__dia--elegido, .calendario__dia--elegido:hover { background: var(--acento); color: #fff; border-color: var(--acento); font-weight: 600; }
.calendario__dia--elegido::after { content: " ✓"; font-size: 0.7em; }
.calendario__dia:focus-visible { outline: 3px solid var(--acento-oscuro); outline-offset: 2px; }

/* Horario general y tarjetas de día */
.horario-general { display: grid; gap: var(--e3); padding: var(--e4); border: 1px dashed var(--linea-fuerte); border-radius: var(--radio-g); background: var(--superficie-2); }
.horario-general h3, .dias-tarjetas__titulo { margin: 0; font-size: var(--t-m); font-weight: 500; }
.horario-general__horas { display: flex; gap: var(--e4); flex-wrap: wrap; }
.campo-hora { display: grid; gap: var(--e1); font-size: var(--t-s); }
.campo-hora label { font-weight: 500; font-size: var(--t-xs); }
.dias-tarjetas { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); }
.dia-tarjeta { display: grid; gap: var(--e3); padding: var(--e4); border: 1px solid var(--linea); border-radius: var(--radio-g); background: var(--superficie); }
.dia-tarjeta__cabeza { display: flex; align-items: center; gap: var(--e3); flex-wrap: wrap; }
.dia-tarjeta__cabeza h4 { margin: 0; font-size: var(--t-base); text-transform: capitalize; margin-right: auto; }
.dia-tarjeta__ultima { margin: 0; font-size: var(--t-s); color: var(--acento-oscuro); font-weight: 500; }
.descansos { display: grid; gap: var(--e2); justify-items: start; }
.descansos__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e2); }
.descansos__fila { display: flex; gap: var(--e2); align-items: center; flex-wrap: wrap; font-size: var(--t-s); }

/* Vista previa */
.vista-previa { border: 1px solid var(--linea); border-top: 3px solid var(--acento); border-radius: var(--radio-g); background: var(--superficie); padding: var(--e4) var(--e5); display: grid; gap: var(--e3); }
.vista-previa h2 { margin: 0; font-size: var(--t-l); }
.vista-previa__total { margin: 0; font-size: var(--t-m); color: var(--acento-oscuro); }
.vista-previa__total strong { font-family: var(--fuente-titulo); font-size: var(--t-l); }
.vista-previa__problemas { margin: 0; padding: var(--e3) var(--e4) var(--e3) var(--e6); background: var(--error-f); color: var(--error-t); border-radius: var(--radio); font-size: var(--t-s); }
.vista-previa__dias { display: grid; gap: var(--e3); }
.vp-dia h3 { margin: 0 0 var(--e2); font-size: var(--t-s); text-transform: capitalize; }
.vp-dia__n { font-weight: 400; color: var(--tinta-suave); text-transform: none; }
.vp-dia__horas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e1); }
.vp-hora { font-variant-numeric: tabular-nums; font-size: var(--t-xs); font-weight: 500; padding: 0.2em 0.65em; border-radius: 999px; background: var(--e-aprobado-f); color: var(--e-aprobado-t); }
.vp-hora--descanso { background: var(--superficie-2); color: var(--tinta-suave); text-decoration: line-through; border: 1px dashed var(--linea-fuerte); }
.vp-hora__nota { text-decoration: none; display: inline-block; font-weight: 400; }

/* Aviso de citas que quedarían fuera */
.aviso-reservas { border: 2px solid var(--error-b); background: var(--error-f); color: var(--tinta); border-radius: var(--radio-g); padding: var(--e4) var(--e5); }
.aviso-reservas__cuerpo { display: grid; gap: var(--e4); }
.aviso-reservas h3 { margin: 0 0 var(--e2); font-size: var(--t-m); color: var(--error-t); }
.aviso-reservas p { margin: 0 0 var(--e2); font-size: var(--t-s); }
.aviso-reservas ul { margin: 0 0 var(--e2); padding-left: var(--e5); font-size: var(--t-s); }
.aviso-reservas__lista { max-height: 16rem; overflow: auto; }
.aviso-reservas__bloque--bloqueo h3::before { content: "⛔ "; }
.aviso-reservas .campo--check label { font-weight: 600; }
