diff --git a/templates/unit_detail.html b/templates/unit_detail.html
index 2958b88..92e4f80 100644
--- a/templates/unit_detail.html
+++ b/templates/unit_detail.html
@@ -179,6 +179,18 @@
--
+
@@ -837,6 +849,36 @@ function populateViewMode() {
document.getElementById('viewPhoneNumber').textContent = currentUnit.phone_number || '--';
document.getElementById('viewHardwareModel').textContent = currentUnit.hardware_model || '--';
+ // Modem management interface link
+ const modemLoginSection = document.getElementById('viewModemLoginSection');
+ const modemLoginLink = document.getElementById('viewModemLoginLink');
+ const modemLoginText = document.getElementById('viewModemLoginText');
+
+ if (currentUnit.ip_address && currentUnit.hardware_model) {
+ let loginUrl = '';
+ let loginLabel = '';
+
+ if (currentUnit.hardware_model === 'RV50' || currentUnit.hardware_model === 'RV55') {
+ // ACEmanager uses port 9191
+ loginUrl = `http://${currentUnit.ip_address}:9191`;
+ loginLabel = 'ACEmanager';
+ } else if (currentUnit.hardware_model === 'RX55') {
+ // AirLink uses HTTPS on port 443
+ loginUrl = `https://${currentUnit.ip_address}:443`;
+ loginLabel = 'AirLink';
+ }
+
+ if (loginUrl) {
+ modemLoginLink.href = loginUrl;
+ modemLoginText.textContent = loginLabel;
+ modemLoginSection.classList.remove('hidden');
+ } else {
+ modemLoginSection.classList.add('hidden');
+ }
+ } else {
+ modemLoginSection.classList.add('hidden');
+ }
+
// Notes
document.getElementById('viewNote').textContent = currentUnit.note || '--';