diff --git a/pygitweb/static/main.css b/pygitweb/static/main.css
index 84398cf..c0178e3 100644
--- a/pygitweb/static/main.css
+++ b/pygitweb/static/main.css
@@ -165,6 +165,92 @@ body:has(.page) {
 	background-color: var(--pgw-table-hover);
 }
 
+/* Form: override Tabler form controls so they use color-scheme variables */
+.form-label,
+.form-check-label {
+	color: var(--pgw-text);
+}
+.form-label.required::after {
+	color: var(--pgw-text-muted);
+}
+.form-hint {
+	color: var(--pgw-text-muted);
+}
+.form-control,
+.form-select {
+	background-color: var(--pgw-bg-raised);
+	border-color: var(--pgw-border);
+	color: var(--pgw-text);
+}
+.form-control::placeholder {
+	color: var(--pgw-text-muted);
+}
+.form-control:focus,
+.form-select:focus {
+	background-color: var(--pgw-bg-raised);
+	border-color: var(--pgw-link);
+	color: var(--pgw-text);
+}
+.form-control:disabled,
+.form-select:disabled {
+	background-color: var(--pgw-bg-muted);
+	color: var(--pgw-text-muted);
+}
+.form-check-input {
+	background-color: var(--pgw-bg-raised);
+	border-color: var(--pgw-border);
+}
+.form-check-input:checked {
+	background-color: var(--pgw-link);
+	border-color: var(--pgw-link);
+}
+.form-check-input:focus {
+	border-color: var(--pgw-link);
+}
+.form-footer {
+	border-top-color: var(--pgw-border);
+}
+/* Buttons: primary and ghost variants */
+.btn-primary {
+	background-color: var(--pgw-link);
+	border-color: var(--pgw-link);
+	color: var(--pgw-accent-text);
+}
+.btn-primary:hover {
+	background-color: var(--pgw-link-hover);
+	border-color: var(--pgw-link-hover);
+	color: var(--pgw-accent-text);
+}
+.btn-ghost-secondary {
+	background-color: transparent;
+	border-color: var(--pgw-border);
+	color: var(--pgw-text);
+}
+.btn-ghost-secondary:hover {
+	background-color: var(--pgw-bg-muted);
+	border-color: var(--pgw-border);
+	color: var(--pgw-text);
+}
+/* Dropzone (file upload area) */
+.dropzone {
+	background-color: var(--pgw-bg-muted);
+	border-color: var(--pgw-border);
+	color: var(--pgw-text);
+}
+.dropzone .dropzone-placeholder,
+.dropzone .text-muted {
+	color: var(--pgw-text-muted);
+}
+.dropzone.border-primary {
+	border-color: var(--pgw-link);
+}
+/* Inline code inside form hints */
+.form-hint code {
+	background-color: var(--pgw-code-bg);
+	border-color: var(--pgw-code-border);
+	color: var(--pgw-text);
+}
+
 /* Fluid vertical layout: fixed sidebar + main content offset */
 .page .navbar-vertical.position-fixed {
 	top: 0;
