diff --git a/Dockerfile b/Dockerfile
index c65d2fc..a243c90 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -29,6 +29,12 @@ COPY assets/apple-touch-icon-180x180.png /app/code/librechat/client/dist/assets/
COPY assets/icon-192x192.png /app/code/librechat/client/dist/assets/icon-192x192.png
COPY assets/maskable-icon.png /app/code/librechat/client/dist/assets/maskable-icon.png
+# Copy custom branding CSS
+COPY assets/custom.css /app/code/librechat/client/dist/assets/custom.css
+# Insert the CSS link after the title tag
+RUN sed -i '/
Inference Co-op<\/title>/a \\
+ ' /app/code/librechat/client/dist/index.html
+
# Browser-tab title (index.html is baked at build; sed no-ops harmlessly if
# the upstream markup ever changes)
RUN sed -i 's|LibreChat|Inference Co-op|' /app/code/librechat/client/dist/index.html
diff --git a/assets/custom.css b/assets/custom.css
new file mode 100644
index 0000000..7348c36
--- /dev/null
+++ b/assets/custom.css
@@ -0,0 +1,47 @@
+/* Co‑op branding colors */
+:root {
+ --brand-primary-rgb: 91,140,90; /* green */
+ --brand-surface-rgb: 250,248,245;/* cream */
+}
+
+/* Primary‑color UI */
+button,
+.primary,
+.MuiButton-contained,
+.ant-btn-primary {
+ background-color: rgb(var(--brand-primary-rgb)) !important;
+ border-color: rgb(var(--brand-primary-rgb)) !important;
+}
+
+/* Surface background */
+body,
+.appContainer,
+.chatContainer,
+.login-page {
+ background-color: rgb(var(--brand-surface-rgb)) !important;
+}
+
+/* Hide any registration / external‑account UI */
+a[href*="register"],
+a[href*="signup"],
+.register-link,
+.signup-link {
+ display: none !important;
+}
+
+/* Footer – simple centered link to the Co‑op homepage */
+footer {
+ text-align: center;
+ padding: 1rem;
+}
+footer::before {
+ content: "© Inference Co‑op – ";
+}
+footer::after {
+ content: "inference.coop";
+ color: rgb(var(--brand-primary-rgb));
+ cursor: pointer;
+}
+footer::after:hover {
+ text-decoration: underline;
+}
\ No newline at end of file