→ User flow first: mapping what each of the three roles actually needs to do, and what they should never see.
→ Wireframes, to stress-test that logic before any styling.
→ Iterating on functionality. This took the longest, and it should have. Every screen had to answer: what does this person need to see, and what should stay hidden?
→ Visual design, once the structure actually held.
→ Developer handoff, documented and ready to build.