diff --git a/source/packages/com_mokosuitebackup/media/css/runbackup.css b/source/packages/com_mokosuitebackup/media/css/runbackup.css
new file mode 100644
index 00000000..f29dea3a
--- /dev/null
+++ b/source/packages/com_mokosuitebackup/media/css/runbackup.css
@@ -0,0 +1,84 @@
+/*
+ * @package MokoSuiteBackup
+ * @subpackage com_mokosuitebackup
+ * @copyright Copyright (C) 2026 Moko Consulting. All rights reserved.
+ * @license GNU General Public License version 3 or later; see LICENSE
+ *
+ * Full-screen backup progress screen (view=runbackup). Loaded via the Joomla
+ * Web Asset Manager (asset com_mokosuitebackup.runbackup).
+ */
+
+/* Full-screen backup runs on a black backdrop. */
+html,
+body {
+ background-color: #000 !important;
+}
+
+/* Colours are pulled from the Atum admin template's own CSS custom properties
+ so the screen matches whatever theme the site runs, with Bootstrap and then
+ a literal as progressive fallbacks. */
+.msb-runbackup {
+ --msb-accent: var(--template-link-color, var(--bs-link-color, #2a69b8));
+ --msb-accent2: var(--template-special-color, var(--msb-accent));
+ --msb-success: var(--template-success-color, var(--bs-success, #2f7d32));
+ --msb-danger: var(--template-danger-color, var(--bs-danger, #c52128));
+ --msb-track: var(--template-bg-light, var(--bs-gray-200, #edf0f5));
+
+ padding: 0 1rem;
+}
+
+/* overflow:hidden clips the full-bleed bar to the card's rounded corners. */
+.msb-runbackup .card {
+ overflow: hidden;
+}
+
+.msb-rb-progress {
+ height: 2.5rem;
+ background: var(--msb-track);
+ overflow: hidden;
+}
+
+.msb-rb-bar {
+ position: relative;
+ height: 100%;
+ width: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #fff;
+ font-weight: 600;
+ font-size: .95rem;
+ white-space: nowrap;
+ background-color: var(--msb-accent);
+ background-image: linear-gradient(90deg, var(--msb-accent), var(--msb-accent2));
+ transition: width .35s ease;
+}
+
+.msb-rb-bar.is-animated::after {
+ content: "";
+ position: absolute;
+ inset: 0;
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .18) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .18) 50%, rgba(255, 255, 255, .18) 75%, transparent 75%, transparent);
+ background-size: 1rem 1rem;
+ animation: msb-rb-stripes 1s linear infinite;
+}
+
+.msb-rb-bar.is-success {
+ background-image: none;
+ background-color: var(--msb-success);
+}
+
+.msb-rb-bar.is-danger {
+ background-image: none;
+ background-color: var(--msb-danger);
+}
+
+@keyframes msb-rb-stripes {
+ from {
+ background-position: 1rem 0;
+ }
+
+ to {
+ background-position: 0 0;
+ }
+}
diff --git a/source/packages/com_mokosuitebackup/media/joomla.asset.json b/source/packages/com_mokosuitebackup/media/joomla.asset.json
index f967399c..12194cba 100644
--- a/source/packages/com_mokosuitebackup/media/joomla.asset.json
+++ b/source/packages/com_mokosuitebackup/media/joomla.asset.json
@@ -9,6 +9,11 @@
"name": "com_mokosuitebackup.admin",
"type": "style",
"uri": "com_mokosuitebackup/css/admin.css"
+ },
+ {
+ "name": "com_mokosuitebackup.runbackup",
+ "type": "style",
+ "uri": "com_mokosuitebackup/css/runbackup.css"
}
]
}
diff --git a/source/packages/com_mokosuitebackup/tmpl/runbackup/default.php b/source/packages/com_mokosuitebackup/tmpl/runbackup/default.php
index d15582c5..0238f35f 100644
--- a/source/packages/com_mokosuitebackup/tmpl/runbackup/default.php
+++ b/source/packages/com_mokosuitebackup/tmpl/runbackup/default.php
@@ -88,56 +88,11 @@ $config = [
'leaveWarn' => Text::_('COM_MOKOJOOMBACKUP_RUNBACKUP_LEAVE_WARNING'),
],
];
-?>
-
+// All screen CSS loads via the Joomla Web Asset Manager (media/joomla.asset.json),
+// not an inline