- Change AuthApi login and getUserInfo return types to ApiEnvelope<JsonElement>
- Add tokenFromData to handle both string and {"Token":"..."} object responses
- Add userInfoFromData to handle both flat UserInfo and {"UserInfo":"<escaped JSON>"} responses
- Inject Json into SessionRepository for unified deserialization
- Update signIn flow to extract token and user info through unified helpers
- Add contract tolerance documentation explaining V4.5 spec vs test environment behavior
- Add AuthApi with 5 endpoints (LoginByAccount, LoginByMobile, etc.)
- Implement dual-layer envelope unwrapping in ApiCaller for HTTP 500 + ASP.NET exceptions
- Add DynamicBaseUrlInterceptor for runtime server switching
- Implement SessionRepository with login state management and token persistence
- Add Mine/Login/Config/ChangePassword UI with ViewBinding and state machines
- Replace placeholder MineFragment with business implementation
- Hide bottom navigation when sub-pages are on back stack
- Add 33 new strings and login_error color resource
- Provide AuthApi in NetworkModule DI
- Verified: 5/5 e2e negative tests passed, dual unwrapping works on real responses