/* Notifications Container */
.notifications-container {
  position: fixed;
  top: 60px;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 400px;
  pointer-events: none;
}

/* Notification Item */
.notification {
  background: white;
  border-radius: 0.5rem;
  padding: 1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-width: 320px;
  pointer-events: auto;
  opacity: 0;
  transform: translateX(100%);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.notification.visible {
  opacity: 1;
  transform: translateX(0);
}

.notification-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
}

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

.notification-message {
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--color-gray-800);
  word-wrap: break-word;
}

.notification-close {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: none;
  background: transparent;
  color: var(--color-gray-400);
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  transition: all 0.2s ease;
}

.notification-close:hover {
  background: var(--color-gray-100);
  color: var(--color-gray-600);
}

/* Success Notification */
.notification.success {
  border-left: 4px solid var(--color-success);
}

.notification.success .notification-icon {
  background: rgba(0, 166, 81, 0.1);
  color: var(--color-success);
}

/* Error Notification */
.notification.error {
  border-left: 4px solid var(--color-error);
}

.notification.error .notification-icon {
  background: rgba(179, 27, 31, 0.1);
  color: var(--color-error);
}

/* Warning Notification */
.notification.warning {
  border-left: 4px solid var(--color-warning);
}

.notification.warning .notification-icon {
  background: rgba(255, 209, 0, 0.1);
  color: #d97706;
}

/* Info Notification */
.notification.info {
  border-left: 4px solid var(--color-tertiary);
}

.notification.info .notification-icon {
  background: rgba(11, 77, 131, 0.1);
  color: var(--color-tertiary);
}

/* Confirmation Dialog */
.confirmation-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  animation: fadeIn 0.2s ease;
}

.confirmation-dialog {
  background: white;
  border-radius: 0.75rem;
  padding: 1.5rem;
  max-width: 400px;
  width: 100%;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  animation: slideUp 0.3s ease;
}

.confirmation-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.confirmation-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  background: rgba(255, 209, 0, 0.1);
  color: #d97706;
  flex-shrink: 0;
}

.confirmation-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-gray-900);
}

.confirmation-message {
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--color-gray-600);
  margin-bottom: 1.5rem;
  white-space: pre-line;
}

.confirmation-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
}

.confirmation-btn {
  padding: 0.5rem 1rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
}

.confirmation-btn-cancel {
  background: white;
  color: var(--color-gray-700);
  border: 1px solid var(--color-gray-300);
}

.confirmation-btn-cancel:hover {
  background: var(--color-gray-50);
}

.confirmation-btn-confirm {
  background: var(--color-primary);
  color: white;
}

.confirmation-btn-confirm:hover {
  background: #9a1619;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

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

/* Mobile Responsive */
@media (max-width: 480px) {
  .notifications-container {
    right: 0.5rem;
    left: 0.5rem;
    max-width: none;
  }

  .notification {
    min-width: auto;
    width: 100%;
  }

  .confirmation-dialog {
    margin: 1rem;
  }
}
