diff --git a/README.md b/README.md
index 57de054..ef3bcbf 100644
--- a/README.md
+++ b/README.md
@@ -89,13 +89,39 @@ Then in Jellyfin: Dashboard → Plugins → OIDC Auth:
## Login button on the web login page
-Jellyfin does not let plugins modify the login page. Add a button via
-Dashboard → General → Branding → Login disclaimer:
+Jellyfin does not let plugins modify the login page. The login disclaimer is the
+only injection point, and it needs a little CSS to look like a real button.
+
+Dashboard → General → Branding → **Login disclaimer**:
```html
-Sign in with SSO
+Sign in with SSO
```
+Dashboard → General → Branding → **Custom CSS**:
+
+```css
+.disclaimerContainer {
+ display: block;
+}
+
+a.raised.emby-button {
+ padding: 0.9em 1em;
+ color: inherit !important;
+ text-decoration: none;
+}
+```
+
+Both pieces are needed. Jellyfin renders the disclaimer through markdown-it and
+then DOMPurify, which strips the `is="emby-linkbutton"` attribute that would
+normally turn the anchor into a button component — so the styling has to come
+from the classes instead. `.disclaimerContainer` is not a block by default,
+which is what otherwise leaves the link shrink-wrapped and centred instead of
+matching the width of the buttons above it.
+
+Styling via the theme's own classes rather than inline styles keeps the button
+correct when the theme changes, since `.raised` is defined per theme.
+
## TV and native clients
The plugin does not change or disable Jellyfin's normal password login, so TV apps