/* ==========================================================================
   css/components/toasts.css
   Split from app.html (build 2026.10.08.9-beta), original lines 4236-4249.
   Rules are in their ORIGINAL order; load order is defined in index.html.
   ========================================================================== */
/* -- TOAST NOTIFICATIONS ---------------------------------------- */
.toast-container { position:fixed;bottom:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none }
.toast { background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:10px 16px;font-size:13px;font-weight:500;color:var(--text-primary);box-shadow:0 8px 28px rgba(0,0,0,0.45);display:flex;align-items:center;gap:10px;pointer-events:all;animation:toast-in 0.32s var(--ease-spring, ease);max-width:340px;word-break:break-word }
.toast.out { animation:toast-out 0.22s var(--ease-smooth, ease) forwards }
.toast-success { border-left:3px solid #3ba55d }
.toast-error   { border-left:3px solid #ed4245 }
.toast-info    { border-left:3px solid var(--accent) }
.toast-warn    { border-left:3px solid #faa61a }
@keyframes toast-in  { from { opacity:0;transform:translateX(28px) scale(.97) } to { opacity:1;transform:translateX(0) scale(1) } }
@keyframes toast-out { to   { opacity:0;transform:translateX(16px) scale(.98) } }
@keyframes ann-in    { from { opacity:0 } to { opacity:1 } }
@keyframes ann-out   { to   { opacity:0 } }
@keyframes ann-card  { from { opacity:0;transform:scale(.93) translateY(12px) } to { opacity:1;transform:scale(1) translateY(0) } }

