web: themeable auth pages via shared shell + config hooksVerified
The server-rendered pages (login, TOTP, password reset, email verification) each built their own bare <!doctype>...<body> with no CSS hook, so an embedding app could not brand them — they rendered as unstyled Times New Roman forms regardless of the host's design. Add a single RENDER-AUTH-PAGE shell that all seven emitters share, driven by three optional config keys: :brand product name in <title> (default "Usher") :head-html raw markup injected into <head> (e.g. a stylesheet <link>) :body-class extra class on <body> The markup now carries stable usher-* class hooks (usher-card, usher-title, usher-form, usher-field, usher-input, usher-submit, usher-social, ...) so a host stylesheet themes the pages without Usher owning their visual design. All three keys default to nil/"Usher", so existing output is unchanged. Also: real <label>s instead of placeholder-as-label, and autocomplete hints (username/current-password/new-password/one-time-code) on the inputs. http-smoke gains GET /authorize assertions for the brand title, head-html injection, body-class, and usher-* form classes. make test: 199/199; http-smoke: 15/15. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>