diff --git a/html/webapp/dialog.js b/html/webapp/dialog.js
index 22e2e57..7490519 100644
--- a/html/webapp/dialog.js
+++ b/html/webapp/dialog.js
@@ -103,6 +103,13 @@ class Dialog {
this.elements.message.innerText = dialog.message;
this.elements.target = dialog.target || '';
this.elements.template.innerHTML = dialog.template || '';
+
+ // If no message was provided, then the message element will be hidden.
+ if (dialog.message === '') {
+ this.elements.message.className = 'empty';
+ } else {
+ this.elements.message.className = '';
+ }
this.focusable = this.getFocusable();
this.hasFormData = this.elements.fieldset.elements.length > 0;
diff --git a/html/webapp/styles.css b/html/webapp/styles.css
index d5f8e6b..f7fc567 100644
--- a/html/webapp/styles.css
+++ b/html/webapp/styles.css
@@ -78,6 +78,10 @@ a {
transform: translateX(-50%);
}
+:where([data-component*="dialog"] legend.empty) {
+ display: none;
+}
+
:where([data-component*="dialog"] menu) {
gap: calc(var(--dlg-gap)/2);
justify-content: var(--dlg-menu-jc, flex-end);