/* ==========================
   Flash Message Styling
   ========================== */

/* Container floating alert */
.flash-container {
   position: fixed;
   top: 1.5rem;
   right: 1.5rem;
   z-index: 1055;
   max-width: 420px;
   width: 100%;
   pointer-events: none; /* biar klik hanya di alert, bukan container */
}

/* Container inline alert (di dalam body) */
.flash-container-body {
   margin-bottom: 1rem;
}

/* Base alert */
.alert {
   border: none;
   border-radius: 1rem;
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
   font-size: 0.95rem;
   line-height: 1.5;
   font-weight: 500;
   letter-spacing: 0.2px;
   opacity: 0;
   transform: translateY(-10px);
   animation: slideInFade 0.4s ease forwards;
   pointer-events: auto; /* biar tombol close bisa diklik */
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 0.5rem;
   padding: 0.9rem 1.2rem;
}

/* Success */
.alert-success {
   background: linear-gradient(135deg, #2b7a78, #3aafa9);
   color: #fff;
}

/* Error */
.alert-danger {
   background: linear-gradient(135deg, #b00020, #e63946);
   color: #fff;
}

/* Close button */
.alert .btn-close {
   filter: invert(1); /* biar X jadi putih */
   opacity: 0.85;
   transition: transform 0.2s ease, opacity 0.2s ease;
}

.alert .btn-close:hover {
   opacity: 1;
   transform: scale(1.15);
}

/* Animasi muncul */
@keyframes slideInFade {
   from {
      opacity: 0;
      transform: translateY(-15px);
   }
   to {
      opacity: 1;
      transform: translateY(0);
   }
}

/* Animasi keluar */
@keyframes slideOutUp {
   from {
      opacity: 1;
      transform: translateY(0);
   }
   to {
      opacity: 0;
      transform: translateY(-15px);
   }
}

/* Kelas helper buat trigger animasi keluar */
.alert.hide {
   animation: slideOutUp 0.4s ease forwards;
}

/* Responsiveness */
@media (max-width: 576px) {
   .flash-container {
      top: 1rem;
      right: 0.5rem;
      left: 0.5rem;
      max-width: none;
   }

   .alert {
      font-size: 0.85rem;
      padding: 0.75rem 1rem;
      border-radius: 0.8rem;
   }
}
