Index: src/views/pages/admin-seo.ejs
===================================================================
--- src/views/pages/admin-seo.ejs	(revision d70cab7d1a3df5445a3bdbc649a721dd00a992c4)
+++ src/views/pages/admin-seo.ejs	(revision 75c691901dc87637091a7c21fe34e125363c204c)
@@ -109,5 +109,9 @@
 .admin-site-edit-page .admin-tagline { color: var(--ink-muted); margin: 0 0 1.75rem; }
 
-.site-form { display: flex; flex-direction: column; gap: 1.5rem; }
+.site-form { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
+/* <fieldset> krimpt door de UA min-inline-size:min-content niet mee → mobiel-overflow.
+   min-width:0 dwingt meekrimpen. */
+.site-form fieldset { min-width: 0; }
+.site-form input, .site-form textarea, .site-form select { min-width: 0; }
 .site-form fieldset {
   border: 1px solid var(--rule);
Index: src/views/pages/admin-site-edit.ejs
===================================================================
--- src/views/pages/admin-site-edit.ejs	(revision d70cab7d1a3df5445a3bdbc649a721dd00a992c4)
+++ src/views/pages/admin-site-edit.ejs	(revision 75c691901dc87637091a7c21fe34e125363c204c)
@@ -357,5 +357,11 @@
 .admin-site-edit-page h1 { font-family: var(--font-display, serif); font-size: 1.8rem; margin: 0 0 1.5rem; }
 
-.site-form { display: flex; flex-direction: column; gap: 1.5rem; }
+.site-form { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; }
+/* Mobiel: een <fieldset> heeft een browser-default min-inline-size:min-content en
+   krimpt daardoor NIET mee → het hele formulier werd breder dan het scherm. min-width:0
+   forceert meekrimpen; de form-velden krijgen max-width:100% + border-box zodat ze
+   nooit buiten hun fieldset lopen. */
+.site-form fieldset { min-width: 0; }
+.site-form input, .site-form select, .site-form textarea { min-width: 0; max-width: 100%; box-sizing: border-box; }
 .site-form fieldset {
   border: 1px solid var(--rule);
