diff --git a/src/hub/web_ui.py b/src/hub/web_ui.py
index fda946b..618e4db 100644
--- a/src/hub/web_ui.py
+++ b/src/hub/web_ui.py
@@ -431,21 +431,7 @@ class WebUIRenderer:
bp_kpi_sub = f"{pass_cnt} passing • {warn_cnt} warnings • {fail_cnt} failures"
bp_kpi_badge = f'{score}% COMPLIANT'
else:
- bp_banner_html = """
-
-
-
🛡️
-
-
Best Practice Analyzer & Role Baseline Engine
-
Requires 'best_practices' enterprise license capability
-
-
-
- LOCKED
-
-
-
- """
+ bp_banner_html = ""
baseline_admin_html = """
@@ -1725,9 +1711,8 @@ class WebUIRenderer:
-
+
-
{bp_banner_html}
@@ -1764,14 +1749,6 @@ class WebUIRenderer:
{linux_nodes}
Linux hosts & containers
-
-
-
{bp_kpi_value}
-
{bp_kpi_sub}
-
diff --git a/tests/test_server_roles_and_best_practices.py b/tests/test_server_roles_and_best_practices.py
index 33fba9d..dab9b44 100644
--- a/tests/test_server_roles_and_best_practices.py
+++ b/tests/test_server_roles_and_best_practices.py
@@ -219,6 +219,11 @@ class TestServerRolesAndBestPractices(unittest.TestCase):
self.assertIn("id=\"telemetryModal\"", html)
self.assertIn("id=\"modalJsonContent\"", html)
+ # Server Roles & Client Directory tab should not contain locked/inactive Best Practice Baseline card or banner
+ server_roles_pane = html.split('id="tabPane-server-roles"')[1].split('id="tabPane-')[0]
+ self.assertNotIn("Best Practice Baseline", server_roles_pane)
+ self.assertNotIn("Requires 'best_practices' license capability", server_roles_pane)
+
def test_api_client_info_endpoint(self):
"""Verifies GET /api/client-info provides structured JSON inventory."""
res = self.client.get("/api/client-info", headers=self.auth_headers)