@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

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

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

[data-component="modal"][data-slot="overlay"] {
  --modal-bg: var(--color-bg, #fff);
  --modal-border: var(--color-border, var(--color-border-weak-base, #e5e5e5));
  --modal-text: var(--color-text, var(--color-text-primary, #1a1a1a));
  --modal-radius-md: var(--border-radius-md, var(--radius-md, 0.5rem));
  --modal-space-4: var(--space-4, 1rem);
  --modal-space-6: var(--space-6, 1.5rem);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.5);
  animation: fadeIn 0.2s ease;
}

[data-component="modal"][data-slot="overlay"] [data-slot="content"] {
  background-color: var(--modal-bg);
  border: 1px solid var(--modal-border);
  border-radius: var(--modal-radius-md);
  padding: var(--modal-space-6);
  min-width: 400px;
  max-width: 90vw;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  animation: slideUp 0.2s ease;
}

@media (max-width: 30rem) {
  [data-component="modal"][data-slot="overlay"] [data-slot="content"] {
    min-width: 300px;
    padding: var(--modal-space-4);
  }
}

[data-component="modal"][data-slot="overlay"] [data-slot="title"] {
  margin: 0 0 var(--modal-space-4) 0;
  font-size: var(--font-size-lg, 1.125rem);
  font-weight: 600;
  color: var(--modal-text);
  text-align: center;
}
