Aim to keep the description around 150 to 160 characters, and make sure the part that matters lands within the first 120, because that is roughly where mobile cuts. But treat those numbers as a working guide, not a rule Google enforces, because Google does not actually count characters at all.
What it measures is pixel width: a description has about 920 pixels of room on desktop and around 680 on the narrower mobile container, and Google trims to the nearest whole word and adds an ellipsis when you run past it. That pixel basis is why two descriptions of the exact same character count can cut at different points. Characters are not equal widths, so a description packed with broad letters and capitals burns through the pixel budget faster than one built from slim characters, even though the two carry the identical character count. The cut also moves with the device, the screen, the font, and whatever else is sharing the snippet; a date or a breadcrumb above the text quietly steals space the description would have used.
Mobile clips earliest because its container is the narrowest, so the mobile cut is the one worth designing for rather than the roomier desktop one. None of this touches your ranking, since description length is not a ranking factor; it only governs how much of your line a searcher actually sees.
So front-load the meaning. Put the value and any call to action in the first 120 characters or so, where they will survive the mobile cut, and treat everything after that as a bonus that may or may not display. Then preview the snippet in a SERP simulator, which renders by pixel width the way Google does, instead of trusting a raw character count to tell you where the line will break.