dLB seems to be missing something. I believe it should be:

dLB = lb'[bt] + km lb[bt] == kp (lt - lb[bt])*(at - lb[bt])

What is kd? Often, it is helpful to write out functions to solve smaller, related problems.

First, let's define at with a symbolic value before using in Solve, which prefers symbolic values over floating point values:

at = 4/10

Then define a function that gives the equilibrium value:

equilibrium[lt_, kd_] = Min[x /. Solve[x^2 - x (at + lt + kd) + lt at == 0, x]]

I'm not sure what kd is, so I'm going to end up using a random value instead of equilibrium later.

Make a function that given a value of "lt", evaluates the differential equation for that value:

myObjectiveFunction[lt_?NumericQ] := lb /. First@

NDSolve[{500 lb[bt] + Derivative[1][lb][bt] == 100 (0.4` - lb[bt]) (lt - lb[bt]), lb[0] == 0}, {lb}, {bt, 0, 100}]

I've used ?NumericQ here in the definition. Please

read this to see why.

Now we can phrase the question we wish to give to NSolve or FindRoot, what value of bt gives us

0.95*myObjectiveFunction[lt][bt]==equilibrium[lt,kd]

We have to subsitute specific values of lt and kd and I don't know what kd is so let's instead say we are interested in solving this equality:

0.95*myObjectiveFunction[0.1][bt]==0.0005

I've chosen this random value, because plotting tells me that it is feasible:

Plot[myObjectiveFunction[0.1][t], {t, 0, 0.1}, PlotRange -> All]

The answer is close to 0, so we use FindRoot:

FindRoot[0.95*myObjectiveFunction[0.1][bt] == 0.0005, {bt, 0}]