Some suggestions and thoughts:

Could use a little more color. Countdowns (like the ones for packs and events about to expire) should be red and bold when they get close to 0

Use different colors for each type of currency.

Locked battle levels should still show what the prizes will be to encourage players to unlock them early.

I've accidentally purchased packs I was trying to trash. Probably a good idea to keep that though!

Prices for packs, early refreshes/unlocks should be based on the amount of currency you currently have. Charge people more if they're hording wealth. They can afford it and you'll profit when they're hurting for currency.

The price for early refreshes/unlocks should gradually increase over time at first if they are affordable to the player to make them feel like it's costing them to wait to spend their currency and then the cost can gradually start to decrease after a certain point. This encourages players to spend fast, and can cause them to end up spending more if they strategically wait unless they are willing to wait for the entire cool down.

Having costs that are constantly fluctuating are good for getting people to play higher prices too

If two or more packs in the shop are waiting on timers and a copycat pack comes up lower the odds of the other waiting packs being good ones unless the player can't afford them. Increase the odds of good packs appearing in the shop when the player can't afford them so that they spend more money (or in this case, work harder) to get the currency they need.

Right now my maim strategy for battles was to just pump high numbers. Detect this and lower the odds of 80s/90s pack and the number of copycats when 90s packs (or anything that looks like it's being being pumped) were the last packs used.

Events should be less frequent if the player has rolls available.

Timers should be longer in general.

If you use progress bars instead of telling the player the exact number of seconds before something becomes available/unavailable you can mess with that. Slowing things down a little or speeding them up when its to your advantage. For example when you detect that player is away or too idle.