Architecture
Separate hosts, clear ownership, replaceable persistence.
Request flow
Browser → Interface Razor Page → typed HTTP client → API controller → Application service → Core repository interface → Repository implementation.
Theme provides shared CSS and JavaScript to Interface through a Razor Class Library. Contracts carries the API request/response types. Core contains entities and repository abstractions.
Persistence uses SQL Server with parameterized SqlClient commands and explicit reader loops. No ORM or LINQ is used. Reporting, Communication and EInvoicing are independent integration libraries.
See README.md and docs/Architecture.md for setup, dependency rules and production integration boundaries.