Q1.What makes a Gherkin scenario good or bad?
Short answer: a good scenario describes behaviour in business language (declarative). A bad one lists UI clicks (imperative), so it breaks whenever the screen changes and nobody outside QA reads it.
# Imperative - avoid
Given I open "/login"
When I type "qa@example.com" into "#email"
And I click "#submit"
# Declarative - prefer
Given a registered customer
When they sign in with valid details
Then they see their order history
One scenario should check one behaviour; if you need many Then lines about unrelated things, split it.
