— According to official vote totals submitted Friday, state Republican lawmakers have lost their veto-proof majorities in both the House and the Senate, as Democrats maintained their election-night gains and picked up an additional House seat in Mecklenburg County.

It's unusual for mail-in ballots and provisional ballots to flip a race. State legislative legal expert Gerry Cohen said it hasn't happened since 2004. But this was an unusual year, with three House races and three Senate races within the 1 percent margin for a mandatory recount in the preliminary results from election night.

House District 103 was the one that flipped. After the election, Rep. Bill Brawley, R-Mecklenburg, held a 52-vote lead over Democratic challenger Rachel Hunt, daughter of former Gov. Jim Hunt. But mail-in, overseas, military and provisional ballots flipped that lead, giving Hunt a 70-vote advantage out of more than 38,000 votes cast. That's a 0.18 percent margin, and Brawley has already requested a recount.

In the other races, the final votes added only solidified the leads of those who came out ahead on Nov. 6:

On Election Night, Democratic challenger Harper Peterson led Sen. Michael Lee, R-New Hanover, by 35 votes in Senate District 9. In the final canvass, Peterson increased his lead to 231 votes. That's still within recount range at 0.27 percent.

Democratic challenger Kirk deViere led Sen. Wesley Meredith, R-Cumberland, by 306 votes in Senate District 19. The final numbers increased deViere's lead to 433, still within recount range at 0.74 percent.

Democratic challenger Michael Garrett led Sen. Trudy Wade, R-Guilford, by 763 votes, or 0.84 percent, in Senate District 34. The final canvass increased Garrett's lead to 937, knocking the race out of recount range at 1.04 percent.

On Election Night, Rep. Stephen Ross, R-Alamance, led Democratic challenger Erica McAdoo by 295 votes, or 0.98 percent, in House District 63. The final canvass expanded Ross' lead by three votes. The race is still within the mandatory recount range, but McAdoo conceded Friday.

Democratic challenger Christy Clark led Rep. John Bradford, R-Mecklenburg, by 333 votes in House District 98. The final canvass increased Clark's lead to 415, putting the race out of mandatory recount range at 1.04 percent.

In Wake County, the canvass didn't change the outcome for defeated Republican Reps. Nelson Dollar, Chris Malone and John Adcock.

Candidates in races within the 1 percent margin who want a recount must request one by the close of business Monday.

Barring any changes in recounts, the flipping of Brawley's seat brings the state House Democrats' net gain to 10 seats, giving that chamber 65 Republicans and 55 Democrats in the 2019-20 session. In the Senate, the balance will be 29 Republicans and 21 Democrats.

*** Update: An earlier version of this story said the race for Wake Republican incumbent John Alexander's Senate seat had entered recount territory after the canvass. However, the calculation did not include Franklin County's results, which put the seat outside the recount margin.