Ohio is actually a state where Democrats do well with this number of districts, although it's more about winnable districts than safe ones:
OH-01: A Cincinnati-based seat Biden won by almost 40 points and clearly Safe D...btw if you want to see just how strong the Cincinnati area has trended check out the 2006 Gubernatorial map where the Democrat won in a landslide. This used to be considered one of the most conservative major cities in the country...that does kind of still show in its suburbs though although those are showing cracks now (see northern Kentucky in recent years.)
OH-02: Safe R suburban Cincy district. It's crazy how many D pockets exist in this district and how it still ends up so Republican and Trump+27.
OH-03: Almost exactly the same as above, even the same margins.
OH-04: It's crazy to think that this seat that was won by Trump by 39 points was won by Democrats in almost every poster on here's lifetime. Absurdly Safe R now though obviously.
OH-05: This is actually a pretty interesting seat...Biden won it by 2 points, but almost every other statewide Republican in recent elections except Sherrod Brown's opponent won it by a narrow margin. It's about as polarized and split as possible, can't be anything but a pure tossup. On a side note, one odd thing about me in high school and college is I actually thought Dayton would be an awesome place to live...yes, seriously, this being due to the high number of bands it had for a city of its size and that it was a frequent tour date...this can possibly be attributed to geography, Ohio after all is a convenient state to tour in, but at the time Cincinnati was also regarded as a pretty lackluster city in terms of its scene, why Dayton was superior despite that it's an economically dead Rust Belt city which unlike places like Detroit, Pittsburgh and of course Cleveland can't even rebound based on being a regional hub and thus able to diversify is a true mystery. Today of course that is not true at all, based on tour dates Cincinnati is totally a better place to be, although not as good as Cleveland or Columbus.
OH-06: Another Trump+40 district that would've been winnable in most poster's lifetimes for Democrats...and those numbers are WITH Athens County. Safe R is also obvious.
OH-07: This is kind of a weird district and basically leftovers although it does kind of makes sense as a community of interest as Columbus exurbia on the south side...Safe R although Trump "only" won it by 18 points, if you used Kerry or even Obama 08 numbers and told people this would be less Republican than the aforementioned Appalachian districts that would be regarded as insane.
OH-08: First of all let me say that Columbus is one of my least favorite places in the country to draw, not so much due to the sheer number of discontinuous precincts but that their shape MAKES NO F[INKS]ING SENSE WHATSOEVER. The weird way the southern portion of this district is squeezed by the 7th is due to this primarily. Regardless this is designed to be a black influence seat in the Columbus metro and is overall just barely majority non-white...obvious Safe D.
OH-09: This is the other Democratic seat in Columbus. What's interesting is even though this is seat is under 10% black (compared to over 37% in the 8th) and about half as non-white as the 8th it only voted 5 points to the right...Biden got 65% here compared to 70% there...whites in this part of Columbus must be pretty damn D and no doubt the most D whites in the state. And Safe D.
OH-10: A hodgepodge of northern Columbus suburbia/exurbia and rural farmland, obvious Safe R, Trump+28.
OH-11: This is hands down the most Republican district in the state, Trump+48...and that's including Springfield, which granted isn't a super D city that Biden only won by high single digits...still it's kind of crazy just how Republican this area is. Obvious Safe R.
OH-12: Another obvious Safe R seat although it has enough Democratic pockets in small cities and of course Bowling Green (although that's notably less D than you'd expect from a city with a college of that size), to be about 6 points to the left of the above...Trump still won it by over 37 points.
OH-13: Toledo still dominates a district at this size! It's about a Biden+7 set, doesn't seem that safe but in this area it's at worst Likely D...and frankly Safe for Kaptur.
OH-14: One thing I've noticed with Ohio is no matter how you draw the state or how many districts there are you always end up with a bunch of leftovers districts. This is an example. Some boring rural areas and some heavily Obama-Trump working class towns by the lake....Safe R won by Trump by over 31 points.
OH-15: So let me say while this district is kind of ugly that was drawn by considerations in the other seats and it's actually not terrible from a CoI standpoint, there's still continuous road connection from Akron to the southern part without crossing into another districts and thus I'll argue that since the Akron area has to be paired with some rural areas southwest isn't really much worse than immediately west. Biden won this by 4 points...so it's not a stronghold but I also can't find any Republican that did carry it, DeWine no doubt did in 2022 but you can't base anything off that. Though it's PVI is close to Even I'm going to call it somewhere between Lean and Likely D.
OH-16: Canton always gets screwed doesn't it? At least Canton Democrats. What's interesting is how overlooked of a city Canton is, I guess it's not that big, but I can only think of two people who have ever mentioned being from it, a guy who once was a guest speaker at my church, and some metalcore band whose name escapes me...also must be a lousy place for shows, why would any big touring band play there instead of Cleveland, and even if it's a regional tour and you want a date before or after Cleveland Akron makes far more sense, I guess at least if you drive you still have decent access to shows...anyway this is a Safe R Trump+26 seat.
OH-17: Yeah this is basically Safe R now at Trump+16. Let me say though that Democrats shouldn't mourn this area too much, the only reason it used to be key to Democratic victories in the past is it had way more population than it does now....believe it or not this area used to have a population that was about 70-80% of Franklin County's in the 60s and 70s.
OH-18: This is kind of a leftovers seat because as I noted Ohio is prone to those, although in this case it's kind of a necessary case because the part of northern Ohio east of Cleveland is always tough to draw from a CoI standpoint, it's not big enough for its own seat even at this size and it's surrounded by other CoI areas that it's always going to be an awkward fit to pair with. In this case I went with suburban which is weird with the Akron district but also not unjustifiable based on road connections in both districts, about Trump+15 so Safe R which is still frustrating with how many D strongholds it contains like Kent.
OH-19: This is another weird tossup district. Biden won it by less than 2 points...I think it's the closest district in the state although both Biden and Trump did better than in the 5th. A strange combo of working class cities, Oberlin and Cleveland suburbs. Although unlike the 5th no Republican recently (other than DeWine 2022) has carried it...I'm actually going to be bold and call this a Lean D seat, at least somewhere between Lean D and tossup.
OH-20: This district has a weird shape yes, but the idea is to take in the white parts of the Cleveland metro and give the black community an influence district, and the black population in Cleveland is kind of disbursed in an odd way. Biden won it by over 20 points, so still Safe D.
OH-21: Over 53% black and Biden+56. And even this district has an odd fit in that realities in others forced almost 20% of it to be that overwhelmingly white and Trump+6 part of Lake County into it. But a clear Safe D seat.
So you basically have 5 truly Safe D seats, one basically Safe D seat, two sort of fool's gold-esque for Republicans seats, 12 Safe R seats and one total toss-up seat...actually pretty good for Democrats.