diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/map-core.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/map-core.js
index 5c7841d..b3b433a 100644
--- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/map-core.js
+++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/map-core.js
@@ -3428,6 +3428,8 @@
function autoInitIfVisible() {
const panel = document.getElementById("tab-map");
if (panel && panel.style.display !== "none") {
+ const loadingEl = document.getElementById("map-loading");
+ if (loadingEl) loadingEl.style.display = "none";
initAprsMap();
sizeAprsMapToViewport();
if (aprsMap) setTimeout(() => aprsMap.invalidateSize(), 50);
diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/style.css b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/style.css
index cb31d6c..3d1799b 100644
--- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/style.css
+++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/style.css
@@ -1263,7 +1263,6 @@ small { color: var(--text-muted); }
box-sizing: border-box;
margin: 0;
padding: 0.2rem 0.5rem;
- height: 1.65rem;
font-size: 0.78rem;
font-family: inherit;
line-height: 1.4;
@@ -1274,7 +1273,6 @@ small { color: var(--text-muted); }
background: var(--btn-bg);
color: var(--text);
cursor: pointer;
- transition: background-color 100ms ease, border-color 100ms ease, color 100ms ease, box-shadow 100ms ease;
}
.recorder-table .rec-file-btn:hover { background: color-mix(in srgb, var(--btn-bg) 75%, var(--accent-green)); border-color: color-mix(in srgb, var(--btn-border) 60%, var(--accent-green)); box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-green) 18%, transparent); }
.recorder-table .rec-file-btn:active { background: color-mix(in srgb, var(--btn-bg) 55%, var(--accent-green)); border-color: var(--accent-green); box-shadow: none; transform: translateY(1px); }
@@ -1704,6 +1702,15 @@ small { color: var(--text-muted); }
min-height: 0;
gap: 0.85rem;
}
+.map-loading-msg {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 60vh;
+ font-size: 1.1rem;
+ color: var(--text-secondary);
+ opacity: 0.8;
+}
#map-stage {
position: relative;
flex: 0 1 auto;