/**
 * invitia-rsvp.css
 * Botón flotante + modal de confirmación de asistencia. Se incluye
 * SIEMPRE (para cualquier visitante, en cualquier plantilla), a
 * diferencia de invitia-editor.css que solo es para el dueño.
 */

:root {
  --invitia-rsvp-gold: #B08942;
  --invitia-rsvp-charcoal: #2E2A24;
}

.invitia-rsvp-btn-flotante {
  position: fixed;
  left: 1.1rem;
  bottom: 1.3rem;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  height: 42px;
  padding: 0 1.3rem;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, #D8B978, var(--invitia-rsvp-gold));
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  cursor: pointer;
  box-shadow: 0 8px 22px -6px rgba(176, 137, 66, 0.6);
  animation: invitiaRsvpPulso 2.6s ease-in-out infinite;
  transition: transform .2s ease, box-shadow .2s ease, animation-play-state .2s ease;
}

.invitia-rsvp-btn-flotante:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px -6px rgba(176, 137, 66, 0.75);
  animation-play-state: paused;
}

.invitia-rsvp-btn-flotante i {
  font-size: 0.95rem;
}

@keyframes invitiaRsvpPulso {

  0%,
  100% {
    box-shadow: 0 8px 22px -6px rgba(176, 137, 66, 0.6), 0 0 0 0 rgba(176, 137, 66, 0.45);
  }

  50% {
    box-shadow: 0 8px 22px -6px rgba(176, 137, 66, 0.6), 0 0 0 9px rgba(176, 137, 66, 0);
  }
}

@media (max-width: 380px) {
  .invitia-rsvp-btn-flotante {
    font-size: 0.7rem;
    padding: 0 1rem;
    height: 38px;
  }
}

/* Modal */
#modalRsvpInvitia .modal-content {
  border: none;
  border-radius: 16px;
}

#modalRsvpInvitia .modal-header {
  background: #FAF6F0;
  border-bottom: 1px solid #eee6d9;
  border-radius: 16px 16px 0 0;
}

#modalRsvpInvitia .modal-title {
  font-weight: 700;
  color: var(--invitia-rsvp-charcoal);
}

.invitia-rsvp-aviso {
  background: #FBF3E3;
  border: 1px solid #eddcb0;
  color: #8a6d2f;
  font-size: 0.82rem;
  padding: 0.7rem 0.9rem;
  border-radius: 10px;
  margin-bottom: 1.1rem;
}

.invitia-rsvp-buscador-caja {
  position: relative;
  margin-bottom: 0.5rem;
}

.invitia-rsvp-buscador-caja input {
  width: 100%;
  background: #F5EFE3;
  border: none;
  border-radius: 10px;
  padding: 0.75rem 1rem;
  font-size: 0.92rem;
}

.invitia-rsvp-buscador-caja input:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(176, 137, 66, 0.25);
}

.invitia-rsvp-resultados {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: #fff;
  border: 1px solid #eee6d9;
  border-radius: 10px;
  margin-top: 0.3rem;
  max-height: 220px;
  overflow-y: auto;
  z-index: 10;
  box-shadow: 0 12px 24px -12px rgba(0, 0, 0, .25);
}

.invitia-rsvp-resultado-item {
  padding: 0.7rem 1rem;
  cursor: pointer;
  font-size: 0.9rem;
}

.invitia-rsvp-resultado-item:hover {
  background: #FAF6F0;
}

.invitia-rsvp-resultados:empty {
  display: none;
}

.invitia-rsvp-info {
  background: #FAF6F0;
  border: 1px solid #eee6d9;
  border-radius: 12px;
  padding: 1.2rem;
  margin-bottom: 1.2rem;
}

.invitia-rsvp-info .nombre {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--invitia-rsvp-charcoal);
  margin-bottom: 0.3rem;
}

.invitia-rsvp-info .dato {
  font-size: 0.85rem;
  color: #6B6255;
  margin-bottom: 0.15rem;
}

.invitia-rsvp-info .dato b {
  color: var(--invitia-rsvp-charcoal);
}

.invitia-rsvp-estado {
  text-align: center;
  padding: 0.6rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: 1rem;
}

.invitia-rsvp-estado.confirmado {
  background: #e6f4ea;
  color: #2e7d32;
}

.invitia-rsvp-estado.rechazado {
  background: #fdecea;
  color: #c62828;
}

.invitia-rsvp-mensaje-caja textarea {
  width: 100%;
  background: #F5EFE3;
  border: none;
  border-radius: 10px;
  padding: 0.75rem 1rem;
  font-size: 0.88rem;
  resize: none;
  min-height: 70px;
}

.invitia-rsvp-mensaje-caja textarea:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(176, 137, 66, 0.25);
}

.invitia-rsvp-acciones {
  display: flex;
  gap: 0.7rem;
  margin-top: 1rem;
}

.invitia-rsvp-btn-confirmar,
.invitia-rsvp-btn-rechazar,
.invitia-rsvp-btn-pase {
  flex: 1;
  border: none;
  border-radius: 999px;
  padding: 0.75rem 1rem;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease;
}

.invitia-rsvp-btn-confirmar:hover,
.invitia-rsvp-btn-rechazar:hover,
.invitia-rsvp-btn-pase:hover {
  transform: translateY(-2px);
}

.invitia-rsvp-btn-confirmar {
  background: #2e7d32;
  color: #fff;
}

.invitia-rsvp-btn-rechazar {
  background: #fff;
  color: #c62828;
  border: 1.5px solid #c62828;
}

.invitia-rsvp-btn-pase {
  background: var(--invitia-rsvp-gold);
  color: #fff;
  width: 100%;
}

/* Botón "No estoy en la lista" / Auto-registro */
.invitia-rsvp-btn-no-lista {
  border: 1.5px solid var(--invitia-rsvp-gold);
  background: transparent;
  color: var(--invitia-rsvp-gold);
  border-radius: 999px;
  padding: 0.45rem 1.1rem;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.invitia-rsvp-btn-no-lista:hover {
  background: var(--invitia-rsvp-gold);
  color: #fff;
}

/* Aviso respetuoso de no-niños */
.invitia-rsvp-no-ninos {
  background: #FFF8EC;
  border: 1px solid #F0D98B;
  color: #7A6020;
  border-radius: 12px;
  padding: 0.9rem 1rem;
  font-size: 0.85rem;
  text-align: center;
  margin-top: 0.5rem;
}

/* Formulario de auto-registro */
.invitia-rsvp-form-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  color: #6B6255;
  margin-bottom: 0.3rem;
}
.invitia-rsvp-form-input {
  width: 100%;
  background: #F5EFE3;
  border: none;
  border-radius: 10px;
  padding: 0.7rem 1rem;
  font-size: 0.9rem;
  outline: none;
}
.invitia-rsvp-form-input:focus {
  box-shadow: 0 0 0 3px rgba(176, 137, 66, 0.25);
}

/* Botón volver al buscador */
.invitia-rsvp-btn-volver {
  border: none;
  background: transparent;
  color: #9B9188;
  font-size: 0.8rem;
  cursor: pointer;
  padding: 0;
}
.invitia-rsvp-btn-volver:hover {
  color: var(--invitia-rsvp-charcoal);
}

/* Sin resultados en búsqueda */
.invitia-rsvp-resultado-vacio {
  padding: 0.9rem 1rem;
  font-size: 0.85rem;
  color: #888;
  text-align: center;
}