.notifications-wrapper{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;width:100%;max-width:340px;pointer-events:none}.notification{position:relative;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text-primary);box-shadow:var(--shadow-sm);border:1px solid color-mix(in srgb,var(--border) 20%,transparent);background:var(--bg-card);pointer-events:auto;cursor:pointer;user-select:none;overflow:hidden;animation:slideIn .4s cubic-bezier(.4,0,.2,1) forwards;will-change:transform,opacity}.notification.closing{animation:slideOut .4s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}.notification.success{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-green) 8%,var(--bg-card)) 0,var(--bg-card) 100%);border-left:4px solid var(--accent-green)}.notification.error{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-red) 8%,var(--bg-card)) 0,var(--bg-card) 100%);border-left:4px solid var(--accent-red)}.notification.warning{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-yellow) 10%,var(--bg-card)) 0,var(--bg-card) 100%);border-left:4px solid var(--accent-yellow)}.notification.info{background:linear-gradient(135deg,color-mix(in srgb,var(--text-link) 8%,var(--bg-card)) 0,var(--bg-card) 100%);border-left:4px solid var(--text-link)}.notification-close{background:transparent;border:none;margin-left:12px;font-size:20px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);opacity:.6;cursor:pointer;padding:4px;border-radius:var(--radius);transition:var(--transition)}.notification-close:hover{opacity:1;color:var(--text-primary);background-color:color-mix(in srgb,var(--text-secondary) 10%,transparent)}@keyframes slideIn{0%{opacity:0;transform:translateX(30%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}