/* css/components/toasts.css — Всплывающие уведомления внизу экрана («Сохранено», «Отменено» и т. п.).
   Порядок подключения всех стилей задан в layout/head.php — он важен. */
.undo-toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  transform: translate(-50%, 12px);
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 10px 18px;
  /* Раньше 999px + white-space:nowrap — чистый пилюлеобразный вид, но ломался
     на длинных сообщениях (списки отклонённых файлов и т.п.), убегая за
     край экрана без переноса. max-width + normal wrap чинит длинные тосты,
     на коротких ничего не меняет — box всё равно ужимается по контенту
     (shrink-to-fit, т.к. position:fixed без right). Радиус чуть меньше
     999, чтобы многострочный текст не выглядел странно внутри капсулы. */
  max-width: min(460px, 90vw);
  border-radius: 18px;
  border: 1.5px solid var(--toast-accent, #9c7bff);
  background: rgba(15, 20, 32, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #e6e6e6;
  font-size: 12.5px;
  letter-spacing: 0.01em;
  line-height: 1.45;
  white-space: normal;
  text-align: left;
  box-shadow: 0 8px 30px rgba(0,0,0,0.35), 0 0 22px var(--toast-glow, rgba(156, 123, 255, 0.45));
  opacity: 0;
  pointer-events: none;
  z-index: 3000;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.undo-toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}

.undo-toast-msg {
  flex: 1 1 auto;
}

/* pointer-events на .undo-toast остаётся none (не перехватывает клики под
   собой, пока не показан/уже скрывается) — крестику нужен точечный auto,
   иначе он невидимо-некликабелен даже при .show. */
.undo-toast-close {
  flex: 0 0 auto;
  pointer-events: auto;
  background: none;
  border: none;
  color: inherit;
  opacity: 0.55;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 7px;
  transition: opacity 0.15s ease, background 0.15s ease;
}
.undo-toast-close:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.1);
}

/* Цвет по типу события — раньше все тосты были одинаково тусклым
   фиолетовым и сливались с общей палитрой сайта. Переменные --toast-accent/
   --toast-glow переопределяются модификатором, .undo-toast их только
   читает — так сама форма/анимация не дублируется на каждый тип. */
.undo-toast--success {
  --toast-accent: var(--success);
  --toast-glow: rgba(0, 229, 160, 0.5);
}
.undo-toast--warning {
  --toast-accent: #ffb648;
  --toast-glow: rgba(255, 182, 72, 0.5);
}
.undo-toast--danger {
  --toast-accent: var(--error);
  --toast-glow: rgba(255, 92, 122, 0.5);
}
.undo-toast--info {
  --toast-accent: var(--cyan);
  --toast-glow: rgba(0, 229, 255, 0.45);
}

