/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/*= require calendar_pastel */

/* Tab functionality */
.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
}

/* Notification animations */
.notification-item {
  transition: opacity 0.3s ease;
}

.notification-unread {
  border-left: 3px solid #f87171;
  padding-left: 12px;
  margin-left: -15px;
}

.notification-read {
  opacity: 0.7;
}

/* Badge animations */
.notification-badge {
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

/* Notification dot styles */
.notification-dot {
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.2);
  animation: dot-pulse 2s infinite;
}

@keyframes dot-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(248, 113, 113, 0.7);
  }
  70% {
    box-shadow: 0 0 0 6px rgba(248, 113, 113, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(248, 113, 113, 0);
  }
}

/* Line clamp utilities for link preview */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Link preview styles */
.link-preview {
  transition: box-shadow 0.2s ease;
}

.link-preview:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Message expand/collapse transition */
.message-content-wrapper .message-content-full,
.message-content-wrapper .message-content-truncated {
  transition: opacity 0.2s ease;
}

.message-content-wrapper .hidden {
  display: none;
}

/* FadeIn animation */
.animate-fadeIn {
  animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
