.cal-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-6); }
.cal-head h1 { margin: 0 0 var(--space-1); }
.cal-sub { margin: 0; }

#calendario {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  box-shadow: var(--shadow-card);
}

/* (el tematizado de FullCalendar está en calendario-tema.css, compartido) */
.cumple-evento { display: flex; align-items: center; gap: var(--space-2); overflow: hidden; padding: 2px 4px; }
.cumple-evento img { width: 24px; height: 24px; border-radius: var(--radius-full); object-fit: cover; flex: 0 0 auto; border: 1.5px solid var(--color-accent); }
.cumple-evento span { color: var(--color-primary-deep); font-weight: 600; }

/* ===== Lista de próximos cumpleaños (debajo del calendario) ===== */
.proximos { margin-top: var(--space-8); }
.proximos-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.proximo-row {
  display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: var(--space-4);
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius-lg); padding: var(--space-3) var(--space-4); box-shadow: var(--shadow-card);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
  cursor: pointer;
}
.proximo-row:focus-visible { outline: none; box-shadow: var(--ring-focus); }
.proximo-row:hover { transform: translateY(-2px); box-shadow: var(--shadow-elevated); }
.proximo-row img { width: 52px; height: 52px; object-fit: cover; border-radius: var(--radius-full); border: 2px solid var(--color-accent); box-shadow: var(--shadow-xs); }
.proximo-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.proximo-info strong { color: var(--color-ink); font-weight: var(--font-weight-semibold); }
.proximo-edad { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-primary-dark); }
.proximo-cuando { white-space: nowrap; }
.proximo-row--hoy { border-color: rgba(206,154,78,.55); background: linear-gradient(180deg, rgba(224,164,88,.10), var(--color-surface)); }
.proximo-row--hoy .proximo-cuando { color: #fff; background: var(--gradient-gold); border-color: transparent; }

/* ===== Interruptor "mostrar fallecidos" ===== */
.cal-toggle {
  display: inline-flex; align-items: center; gap: var(--space-2);
  margin: 0 0 var(--space-4); padding: var(--space-2) var(--space-4);
  background: var(--color-surface); border: 1px solid var(--color-border);
  border-radius: var(--radius-full); box-shadow: var(--shadow-xs);
  font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--color-text-secondary); cursor: pointer;
}
.cal-toggle input { width: 18px; height: 18px; accent-color: var(--color-primary); }

/* Fallecidos: ocultos por defecto; visibles al activar el interruptor */
.proximo-row--fallecido { display: none; }
.evt-fallecido { display: none; }
body.mostrar-fallecidos .proximo-row--fallecido { display: grid; }
body.mostrar-fallecidos .evt-fallecido { display: block; }

.proximo-row--fallecido { background: linear-gradient(180deg, rgba(120,80,50,.05), var(--color-surface)); }
.proximo-row--fallecido img { border-color: var(--color-border-strong); filter: saturate(.85); }
.proximo-memoria { color: var(--color-text-soft); display: inline-flex; align-items: center; gap: 4px; }
.proximo-memoria .ic { width: 14px; height: 14px; color: var(--color-primary); }
.evt-fallecido .cumple-evento { opacity: .72; }
.evt-fallecido .cumple-evento img { border-color: var(--color-border-strong); }

/* ===== Diálogo de suscripción (el modal de ficha vive en ficha.css) ===== */
.dlg-acciones { display: flex; gap: var(--space-3); justify-content: flex-end; margin-top: var(--space-2); }

@media (max-width: 600px) {
  .fc .fc-toolbar-title { font-size: var(--font-size-lg); }
}
