diff --git a/src/static/dashboard.html b/src/static/dashboard.html
index f88d6b0..0ce9484 100644
--- a/src/static/dashboard.html
+++ b/src/static/dashboard.html
@@ -628,7 +628,7 @@
-
+
diff --git a/src/static/js/app.js b/src/static/js/app.js
index 36936e7..95dcf4e 100644
--- a/src/static/js/app.js
+++ b/src/static/js/app.js
@@ -736,9 +736,8 @@ const App = {
const prevMini = document.getElementById('progress-mini');
if (prevMini) prevMini.style.display = 'none';
const grid = document.querySelector('.tab-panels');
- // Blur nur entfernen, wenn er nicht direkt danach wieder gesetzt wird.
- // Beim Create-Flow (frischer isFirst-State + selectIncident im selben
- // Tick) greift CSS filter:blur sonst nicht im selben Frame.
+ // Wenn gerade ein erster Refresh laeuft, Blur stehen lassen statt
+ // remove+add im selben Tick — CSS filter:blur greift sonst nicht.
const _restState = isRefreshing ? UI._progressState[id] : null;
const _willReBlur = _restState && _restState.isFirst && !_restState.minimized;
if (grid && !_willReBlur) grid.classList.remove('blurred');
@@ -753,6 +752,14 @@ const App = {
UI._showPopupProgress(state.step, {}, state);
}
UI._lockActionsIfFirst(state.isFirst);
+ // _showPopupProgress setzt .blurred bereits, aber CSS filter
+ // greift nach dem grossen DOM-Reshuffle (Display-Toggle,
+ // renderSidebar, leerge innerHTML) im selben Frame nicht
+ // zuverlaessig. Im naechsten Frame nochmal setzen —
+ // idempotent, falls schon gesetzt.
+ if (state.isFirst && grid && !state.minimized) {
+ requestAnimationFrame(() => grid.classList.add('blurred'));
+ }
} else {
// No state yet — show popup (first status update will refine)
UI.showProgress('researching', {}, id, false);
@@ -1783,14 +1790,6 @@ const App = {
await this.selectIncident(incident.id);
- // Im Create-Flow greift CSS filter:blur nach dem viel DOM-Reshuffle
- // (Modal-Close, renderSidebar, Tab-Wechsel) im selben Frame nicht
- // zuverlaessig. Im naechsten Frame nochmal setzen — Aufwand minimal.
- requestAnimationFrame(() => {
- const _grid = document.querySelector('.tab-panels');
- if (_grid) _grid.classList.add('blurred');
- });
-
this._updateRefreshButton(true);
await API.refreshIncident(incident.id);
UI.showToast(`Lage "${incident.title}" angelegt. Recherche gestartet.`, 'success');