/* ===================== TOAST NOTIFICATIONS ===================== */ .toast-container { position: fixed; top: 1.5rem; right: 1.5rem; z-index: 11000; display: flex; flex-direction: column; gap: 0.75rem; pointer-events: none; } .toast { display: flex; align-items: center; gap: 0.75rem; padding: 0.875rem 1.25rem; border-radius: 12px; background: var(--card-bg, #fff); box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05); min-width: 280px; max-width: 420px; pointer-events: auto; transform: translateX(120%); opacity: 0; transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.25s ease; } .toast.visible { transform: translateX(0); opacity: 1; } .toast.removing { transform: translateX(120%); opacity: 0; transition: transform 0.25s ease-in, opacity 0.2s ease; } .toast-icon { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .toast-icon svg { width: 18px; height: 18px; } .toast.toast-success .toast-icon { background: rgba(5, 150, 105, 0.12); color: #059669; } .toast.toast-error .toast-icon { background: rgba(220, 38, 38, 0.12); color: #dc2626; } .toast.toast-warning .toast-icon { background: rgba(217, 119, 6, 0.12); color: #d97706; } .toast.toast-info .toast-icon { background: rgba(13, 148, 136, 0.12); color: #0d9488; } .toast-body { flex: 1; min-width: 0; } .toast-title { font-weight: 600; font-size: 0.9rem; color: var(--text-primary, #1a2332); margin: 0 0 0.15rem; } .toast-message { font-size: 0.82rem; color: var(--text-secondary, #64748b); margin: 0; line-height: 1.4; } .toast-close { background: transparent; border: none; cursor: pointer; color: var(--text-secondary, #94a3b8); padding: 0.25rem; border-radius: 4px; transition: color 0.2s, background 0.2s; flex-shrink: 0; display: flex; align-items: center; justify-content: center; } .toast-close:hover { color: var(--text-primary, #1a2332); background: rgba(0, 0, 0, 0.05); } .toast-progress { position: absolute; bottom: 0; left: 0; height: 3px; border-radius: 0 0 12px 12px; transition: width linear; } .toast.toast-success .toast-progress { background: #059669; } .toast.toast-error .toast-progress { background: #dc2626; } .toast.toast-warning .toast-progress { background: #d97706; } .toast.toast-info .toast-progress { background: #0d9488; } @media (max-width: 480px) { .toast-container { left: 1rem; right: 1rem; top: 1rem; } .toast { min-width: auto; max-width: 100%; } }