:root {
  --notification-bg: #f7f7f7;
  --notification-surface: #ffffff;
  --notification-ink: #1c1a16;
  --notification-muted: #6c645a;
  --notification-accent: #d27b1f;
  --notification-border: rgba(28, 26, 22, 0.1);
  --notification-shadow: 0 24px 60px rgba(28, 26, 22, 0.12);
}

#page_notifications {
  background: var(--notification-bg);
  min-height: 100vh;
}

.notifications-page {
  min-height: 100vh;
  padding: 0 16px 96px;
  display: flex;
  justify-content: center;
  background: var(--notification-bg);
}

.notifications-shell {
  width: min(920px, 100%);
  padding: 0;
  font-family: "Poppins", "Nunito Sans", "Montserrat", sans-serif;
  color: var(--notification-ink);
}

.notifications-header {
  margin: 0 0 32px;
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--notification-bg);
  padding: 48px 0 20px;
  border-bottom: 1px solid var(--notification-border);
}

.notifications-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  margin: 0;
}

.notifications-list {
  display: grid;
  gap: 18px;
}

.notification-card {
  border-radius: 20px;
  border: 1px solid var(--notification-border);
  padding: 22px 24px;
  background: #ffffff;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.notification-card:hover {
  transform: translateY(-4px);
  border-color: rgba(210, 123, 31, 0.4);
  box-shadow: 0 18px 40px rgba(210, 123, 31, 0.12);
}

.notification-card__title {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.notification-card__description {
  font-size: 1rem;
  color: var(--notification-muted);
  margin-bottom: 14px;
  white-space: pre-wrap;
}

.notification-card__time {
  font-size: 0.85rem;
  color: #c61017;
  font-weight: 600;
}

.notifications-empty {
  display: none;
  margin-top: 32px;
  color: var(--notification-muted);
  text-align: center;
}

.is-loading .skeleton {
  background: linear-gradient(90deg, rgba(225, 220, 210, 0.5) 25%, rgba(236, 232, 224, 0.9) 50%, rgba(225, 220, 210, 0.5) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 999px;
}

.notification-card__title.skeleton {
  height: 18px;
  width: 50%;
  margin-bottom: 12px;
}

.notification-card__description.skeleton {
  height: 44px;
  width: 100%;
  margin-bottom: 14px;
}

.notification-card__time.skeleton {
  height: 14px;
  width: 35%;
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@media (max-width: 720px) {
  .notifications-shell {
    padding: 0;
  }

  .notifications-title {
    font-size: 2rem;
  }
}
