diff --git a/assets/js/report.js b/assets/js/report.js
index 2a05bba4..5bfc3e6d 100644
--- a/assets/js/report.js
+++ b/assets/js/report.js
@@ -80,7 +80,7 @@
// 弹窗头:参考主题 edit-header 同构(关闭钮 + 红色警示徽标 + 标题)。
html += '
';
html += '';
diff --git a/inc/helpers/aksrt-icons.php b/inc/helpers/aksrt-icons.php
index 5cd02037..828498b8 100644
--- a/inc/helpers/aksrt-icons.php
+++ b/inc/helpers/aksrt-icons.php
@@ -88,6 +88,8 @@ if (!function_exists('aksrt_normalize_icon_key')) :
*
* Examples: 'fa fab fa-github' | 'fa-github' | 'github' | 'weixin' → 'github' | 'wechat'
*
+ * Legacy FA4 values (a bare `fa` token followed by `fa-`) are stripped too.
+ *
* @param string $name Raw icon key or FA class string.
* @return string Short key (may be empty).
*/
@@ -97,8 +99,11 @@ function aksrt_normalize_icon_key(string $name): string {
return '';
}
- // Strip the FA5 layout/style prefixes and glyph prefix.
+ // Strip the FA5 layout/style prefixes, the glyph prefix and the legacy FA4
+ // double-`fa` form (a bare `fa` token followed by `fa-`). The site
+ // ships FA5 only, but stored values may predate it.
$name = preg_replace('/^fa\s+(?:fas|far|fab)\s+/i', '', $name);
+ $name = preg_replace('/^fa\s+fa-/i', '', (string) $name);
$name = preg_replace('/^(?:fas|far|fab)\s+/i', '', (string) $name);
$name = preg_replace('/^fa-/i', '', (string) $name);
$name = trim((string) $name, "- \t\n\r\0\x0B");
@@ -299,9 +304,12 @@ if (!function_exists('aksrt_icon_markup')) :
* Supported values:
* - "fa fas fa-star" / "fa fab fa-weixin" — FA5 class string
* - "fa-star" — bare glyph, rendered as solid FA5
+ * - legacy FA4 string — double-`fa` form, upgraded to FA5
* - "zibsvg-hot" — theme built-in SVG sprite key
* - "customsvg-