/**
 * Review Approval Notice Component
 * User-facing informational notice explaining review approval/moderation process
 *
 * Design: Blue left border accent, dark background, dismissible with 30-day persistence
 * Accessibility: WCAG 2.1 AA compliant, keyboard navigation support
 * Responsive: Mobile-optimized with reduced padding/font sizes at 640px breakpoint
 */

/* Main Container */
.review-approval-notice {
  position: relative;
  background-color: #0a0a0a;
  border-left: 4px solid #4a90e2;
  border-radius: 4px;
  padding: 1.5rem;
  margin: 1.5rem auto;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  animation: fadeInNotice 0.3s ease-in;
  max-width: 750px;
}

/* Fade-in animation */
@keyframes fadeInNotice {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Dismissing animation */
.review-approval-notice.dismissing {
  animation: slideUpFade 0.2s ease-out forwards;
}

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

/* Dismiss Button (top-right X) */
.review-notice-dismiss {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: transparent;
  border: none;
  color: #999;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0.5rem;
  line-height: 1;
  transition: color 0.2s ease, transform 0.2s ease;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.review-notice-dismiss:hover {
  color: #fff;
  transform: scale(1.1);
}

.review-notice-dismiss:focus {
  outline: 2px solid #4a90e2;
  outline-offset: 2px;
  color: #fff;
}

.review-notice-dismiss:active {
  transform: scale(0.95);
}

/* Content wrapper */
.review-notice-content {
  padding-right: 2rem;
}

/* Header (Icon + Title) */
.review-notice-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.review-notice-icon {
  color: #4a90e2;
  font-size: 1.5rem;
  flex-shrink: 0;
}

.review-notice-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
}

/* Body Text */
.review-notice-body {
  margin: 0 0 1rem 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #ccc;
}

/* Footer (Contact Link) */
.review-notice-footer {
  margin: 0;
  font-size: 0.875rem;
  color: #999;
}

.review-notice-link {
  color: #ffee00;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}

.review-notice-link:hover {
  color: #fff;
  text-decoration: underline;
}

.review-notice-link:focus {
  outline: 2px solid #4a90e2;
  outline-offset: 2px;
}

/* Mobile Responsive Styles */
@media screen and (max-width: 640px) {
  .review-approval-notice {
    padding: 1rem;
    margin: 1rem 0;
    border-left-width: 3px;
  }

  .review-notice-dismiss {
    top: 0.75rem;
    right: 0.75rem;
    font-size: 1.25rem;
    padding: 0.375rem;
    min-width: 36px;
    min-height: 36px;
  }

  .review-notice-content {
    padding-right: 1.5rem;
  }

  .review-notice-header {
    gap: 0.5rem;
    margin-bottom: 0.75rem;
  }

  .review-notice-icon {
    font-size: 1.25rem;
  }

  .review-notice-title {
    font-size: 1rem;
  }

  .review-notice-body {
    font-size: 0.875rem;
    margin-bottom: 0.75rem;
  }

  .review-notice-footer {
    font-size: 0.8125rem;
  }
}

/* Accessibility - High Contrast Mode Support */
@media (prefers-contrast: high) {
  .review-approval-notice {
    border-left-width: 6px;
  }

  .review-notice-dismiss:focus,
  .review-notice-link:focus {
    outline-width: 3px;
  }
}

/* Accessibility - Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
  .review-approval-notice,
  .review-approval-notice.dismissing,
  .review-notice-dismiss,
  .review-notice-link {
    animation: none;
    transition: none;
  }

  .review-notice-dismiss:hover {
    transform: none;
  }

  .review-notice-dismiss:active {
    transform: none;
  }
}
