/* 画面上部・横中央のトースト */
.app-toast-stack {
  position: fixed;
  top: 12px;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  z-index: 10050;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: min(400px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  pointer-events: none;
  box-sizing: border-box;
}
.app-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  max-width: 100%;
  padding: 12px 14px;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
  font-size: 14px;
  line-height: 1.45;
  text-align: left;
  color: #fff;
  opacity: 0;
  transform: translateY(-12px) scale(0.98);
  transition: opacity 0.28s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform, opacity;
}
.app-toast.app-toast--visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.app-toast.app-toast--hide {
  opacity: 0;
  transform: translateY(-10px) scale(0.98);
}
.app-toast__icon { flex: 0 0 auto; padding-top: 1px; opacity: 0.95; }
.app-toast__text { flex: 1 1 auto; min-width: 0; word-break: break-word; }
.app-toast__close {
  flex: 0 0 auto;
  border: none;
  background: transparent;
  color: inherit;
  opacity: 0.75;
  font-size: 18px;
  line-height: 1;
  padding: 0 0 0 6px;
  cursor: pointer;
}
.app-toast__close:hover { opacity: 1; }
.app-toast--success { background: linear-gradient(135deg, #3a9d5c 0%, #2d8048 100%); }
.app-toast--error   { background: linear-gradient(135deg, #c94a4a 0%, #a03333 100%); }
.app-toast--warning { background: linear-gradient(135deg, #e09a2a 0%, #c57f12 100%); }
.app-toast--info    { background: linear-gradient(135deg, #4a90c4 0%, #357ab0 100%); }
.app-toast--default { background: linear-gradient(135deg, #5a5a5a 0%, #3d3d3d 100%); }
