in memory state with expiry
popup remains unlocked for 20 secs
transfer state between popup instances
display rounded value
idle detection
simplify timeout code
lock button