/* =============================================================================
   PM toast — flash notifications used by clipboard, file_upload, share (Card #36)
   ============================================================================= */

.pm-toast-region {
  position: fixed;
  /* Не `1rem`: в модуле с нижним таб-баром тост ложился на навигацию и
     перекрывал её кнопки. Первый слот лестницы уже включает и safe-area,
     и высоту таб-бара (см. _design_tokens.css). */
  bottom: var(--float-slot-1);
  right: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  z-index: 9999;
}

.pm-toast {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: white;
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  box-shadow: 0 4px 12px rgb(0 0 0 / 0.15);
  min-width: 280px;
  max-width: 480px;
  animation: pm-toast-slide-in 200ms ease;
}

.dark .pm-toast { background: var(--color-gray-800); color: var(--color-gray-100); }

.pm-toast--success { border-left: 4px solid var(--color-green-500); }
.pm-toast--error   { border-left: 4px solid var(--color-red-500); }
.pm-toast--warning { border-left: 4px solid var(--color-yellow-500); }
.pm-toast--info    { border-left: 4px solid var(--color-blue-500); }

.pm-toast__icon    { font-size: 1.25rem; line-height: 1; }
.pm-toast__message { flex: 1; font-size: 0.875rem; }
.pm-toast__link    {
  color: var(--color-blue-600);
  font-size: 0.875rem;
  text-decoration: underline;
}
.pm-toast__close   {
  background: none; border: 0; cursor: pointer;
  color: var(--color-gray-400); font-size: 1.25rem; line-height: 1;
}

.pm-toast--leaving { animation: pm-toast-fade-out 300ms ease forwards; }

@keyframes pm-toast-slide-in {
  from { transform: translateX(20px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

@keyframes pm-toast-fade-out {
  to { opacity: 0; transform: translateY(8px); }
}
