/* ==========================================================================
   Shared Notification & Visitor Profile Modal Styles
   ========================================================================== */

/* ==========================================================================
   Section 1: Notification Base Styles
   Used by notifications/index.html.erb
   ========================================================================== */

.notifications-card {
  background: var(--color-bg-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.notifications-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2);
}

.notification-item {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-3);
  padding: var(--spacing-3);
  padding-right: 32px;
  position: relative;
  background: var(--color-bg-white);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-soft);
}

.notification-item.unread {
  background: var(--color-notification-unread);
}

.notification-item.deleting {
  opacity: 0;
  height: 0;
  padding: 0;
  margin: 0;
  border: none;
  overflow: hidden;
  transition: all 0.3s ease;
}

/* ---------------------------------------------------------------------------
   Delete Button
   --------------------------------------------------------------------------- */
.notification-delete-x {
  position: absolute;
  top: var(--spacing-3);
  right: var(--spacing-1);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 5;
  -webkit-tap-highlight-color: var(--color-badge-bg);
}

.notification-delete-x svg {
  width: var(--icon-size-xs);
  height: var(--icon-size-xs);
  stroke: var(--color-text-muted);
  stroke-width: 2;
  pointer-events: none;
}

.notification-delete-x:active svg {
  stroke: var(--color-danger);
}

/* ---------------------------------------------------------------------------
   Icon
   --------------------------------------------------------------------------- */
.notification-icon {
  width: var(--btn-height-sm);
  height: var(--btn-height-sm);
  border-radius: var(--radius-base);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--color-border-soft);
}

.notification-icon svg {
  width: var(--icon-size-compact);
  height: var(--icon-size-compact);
  stroke: var(--color-text-primary);
  stroke-width: 1.67;
}

.notification-icon--invite {
  background: var(--color-border-soft);
}

.notification-icon--invite svg {
  stroke: var(--color-text-primary);
}

/* ---------------------------------------------------------------------------
   Content
   --------------------------------------------------------------------------- */
.notification-content {
  flex: 1;
  min-width: 0;
}

.notification-title {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
  letter-spacing: var(--letter-spacing-tight);
  margin-bottom: 1px;
}

.notification-message {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  letter-spacing: var(--letter-spacing-tight);
  margin-bottom: 2px;
}

.notification-time {
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  letter-spacing: var(--letter-spacing-tight);
}

/* ---------------------------------------------------------------------------
   Event Preview
   --------------------------------------------------------------------------- */
.notification-event-preview,
.notification-schedule-preview {
  margin-top: var(--spacing-2);
  padding: var(--spacing-2) var(--spacing-3);
  background: var(--color-gray-100);
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* ---------------------------------------------------------------------------
   Action Buttons
   --------------------------------------------------------------------------- */
.notification-actions {
  display: flex;
  gap: var(--spacing-2);
  margin-top: 10px;
}

.notification-action-btn {
  padding: var(--spacing-2) var(--spacing-5);
  border: none;
  border-radius: var(--radius-base);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
}

.notification-action-btn--accept {
  background: var(--color-fill-dark);
  color: var(--color-bg-white);
}

.notification-action-btn--decline {
  background: var(--color-gray-100);
  color: var(--color-text-secondary);
}

/* ---------------------------------------------------------------------------
   Status
   --------------------------------------------------------------------------- */
.notification-status {
  margin-top: var(--spacing-2);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

.notification-status--accepted {
  color: var(--color-success);
}

.notification-status--declined {
  color: var(--color-text-muted);
}

