/* Acțiunile publice ale evenimentelor au o singură sursă vizuală.
   Este încărcată de layoutul comun pentru feed, detaliu și paginile de program. */

/* Interesat — indigo brand. */
.home-participate-btn,
.mobile-cta-participate,
.event-card__participate-button {
  border: 1.5px solid transparent !important;
  background:
    var(--participate-surface) padding-box,
    var(--participate-border) border-box !important;
  color: var(--participate-text) !important;
  box-shadow: var(--participate-shadow) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.home-participate-btn .lucide,
.mobile-cta-participate .lucide,
.event-card__participate-button .lucide,
.home-participate-btn svg,
.mobile-cta-participate svg,
.event-card__participate-button svg {
  color: #4f46e5 !important;
  stroke: #4f46e5 !important;
  fill: none !important;
}

.home-participate-btn:hover,
.mobile-cta-participate:not(.active):hover,
.event-card__participate-button:not(.active):hover {
  border-color: transparent !important;
  background:
    var(--participate-surface-hover) padding-box,
    var(--participate-border-hover) border-box !important;
  box-shadow: 0 7px 18px rgba(79, 70, 229, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.64) !important;
  transform: translateY(-1px);
}

.home-participate-btn.active,
.mobile-cta-participate.active,
.event-card__participate-button.active,
.hero-btn-participate.active {
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  background: var(--participate-active-surface) !important;
  color: var(--participate-active-text) !important;
  box-shadow: var(--participate-active-shadow) !important;
}

.home-participate-btn.active .lucide,
.mobile-cta-participate.active .lucide,
.event-card__participate-button.active .lucide,
.hero-btn-participate.active .lucide,
.home-participate-btn.active svg,
.mobile-cta-participate.active svg,
.event-card__participate-button.active svg,
.hero-btn-participate.active svg {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
}

/* Confirmare imediată pentru cererile asincrone. Rețeaua sau baza de date pot
   avea o mică latență, dar butonul nu mai pare inert după atingere. */
.home-participate-btn[aria-busy="true"],
.mobile-cta-participate[aria-busy="true"],
.event-card__participate-button[aria-busy="true"],
.venue-participate-action[aria-busy="true"],
.btn-hype[aria-busy="true"] {
  position: relative;
  cursor: wait !important;
  opacity: 1 !important;
  pointer-events: none;
  transform: none !important;
}

.home-participate-btn[aria-busy="true"] .event-card__participate-icon,
.mobile-cta-participate[aria-busy="true"] .event-card__participate-icon,
.event-card__participate-button[aria-busy="true"] .event-card__participate-icon,
.venue-participate-action[aria-busy="true"] > svg,
.venue-participate-action[aria-busy="true"] > i,
.btn-hype[aria-busy="true"] > svg,
.btn-hype[aria-busy="true"] > i {
  opacity: 0.45;
}

.home-participate-btn[aria-busy="true"]::after,
.mobile-cta-participate[aria-busy="true"]::after,
.event-card__participate-button[aria-busy="true"]::after,
.venue-participate-action[aria-busy="true"]::after,
.btn-hype[aria-busy="true"]::after {
  content: "";
  position: absolute;
  right: 4px;
  top: 4px;
  width: 0.65rem;
  height: 0.65rem;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: ghidbr-interest-spin 0.65s linear infinite;
}

@keyframes ghidbr-interest-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .home-participate-btn[aria-busy="true"]::after,
  .mobile-cta-participate[aria-busy="true"]::after,
  .event-card__participate-button[aria-busy="true"]::after,
  .venue-participate-action[aria-busy="true"]::after,
  .btn-hype[aria-busy="true"]::after {
    animation-duration: 1.4s;
  }
}

/* Favorite — rose/red. */
.home-save-btn,
.mobile-cta-save,
.event-card__favorite-btn {
  border: 1px solid rgba(244, 63, 94, 0.22) !important;
  background: rgba(255, 255, 255, 0.88) !important;
  color: #e11d48 !important;
  box-shadow: 0 2px 8px rgba(225, 29, 72, 0.05) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.home-save-btn .lucide,
.mobile-cta-save .lucide,
.event-card__favorite-btn .lucide,
.home-save-btn svg,
.mobile-cta-save svg,
.event-card__favorite-btn svg {
  color: #ef4444 !important;
  stroke: #ef4444 !important;
}

.home-save-btn:hover,
.mobile-cta-save:not(.is-saved):not(.active):hover,
.event-card__favorite-btn:not(.is-saved):not(.active):hover {
  background: #ffffff !important;
  border-color: rgba(239, 68, 68, 0.38) !important;
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.12) !important;
}

.home-save-btn.is-saved,
.home-save-btn.active,
.mobile-cta-save.is-saved,
.mobile-cta-save.active,
.event-card__favorite-btn.is-saved,
.event-card__favorite-btn.active {
  border-color: rgba(239, 68, 68, 0.45) !important;
  background: rgba(239, 68, 68, 0.12) !important;
  color: #ef4444 !important;
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.18) !important;
}

.home-save-btn.is-saved .lucide,
.home-save-btn.active .lucide,
.mobile-cta-save.is-saved .lucide,
.mobile-cta-save.active .lucide,
.event-card__favorite-btn.is-saved .lucide,
.event-card__favorite-btn.active .lucide,
.home-save-btn.is-saved svg,
.home-save-btn.active svg,
.mobile-cta-save.is-saved svg,
.mobile-cta-save.active svg,
.event-card__favorite-btn.is-saved svg,
.event-card__favorite-btn.active svg {
  fill: #ef4444 !important;
  color: #ef4444 !important;
  stroke: #ef4444 !important;
}

/* Calendar — aceeași suprafață indigo pe toate cardurile și programele. */
.home-calendar-btn,
.event-card__calendar-button {
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
  background: rgba(255, 255, 255, 0.88) !important;
  color: #4338ca !important;
  box-shadow: 0 2px 8px rgba(79, 70, 229, 0.05) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.home-calendar-btn .lucide,
.event-card__calendar-button .lucide,
.home-calendar-btn svg,
.event-card__calendar-button svg {
  color: #4f46e5 !important;
  stroke: #4f46e5 !important;
  fill: none !important;
}

.home-calendar-btn:hover,
.event-card__calendar-button:hover {
  background: #ffffff !important;
  border-color: rgba(99, 102, 241, 0.38) !important;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.12) !important;
}
