diff --git a/portal/templates/layouts/app.html b/portal/templates/layouts/app.html
index c60a05a..d1a0d1b 100644
--- a/portal/templates/layouts/app.html
+++ b/portal/templates/layouts/app.html
@@ -18,6 +18,7 @@
{{block "header-left" .}}
Dealspace
{{end}}
+
{{block "header-right-extra" .}}{{end}}
@@ -82,6 +83,22 @@
function escHtml(s) { if (!s) return ''; const d = document.createElement('div'); d.textContent = s; return d.innerHTML; }
// Theme switcher
+ function setTestRole(role) {
+ localStorage.setItem('ds_test_role', role);
+ document.getElementById('testRoleSelect').value = role;
+ // Show banner when impersonating
+ const banner = document.getElementById('testRoleBanner');
+ if (banner) { banner.textContent = role ? '⚠ Viewing as: ' + role : ''; banner.style.display = role ? 'block' : 'none'; }
+ }
+ // Restore test role select on load
+ (function(){
+ const r = localStorage.getItem('ds_test_role') || '';
+ const sel = document.getElementById('testRoleSelect');
+ if (sel) sel.value = r;
+ const banner = document.getElementById('testRoleBanner');
+ if (banner && r) { banner.textContent = '⚠ Viewing as: ' + r; banner.style.display = 'block'; }
+ })();
+
function setTheme(t){document.documentElement.setAttribute('data-theme',t);localStorage.setItem('ds_theme',t);document.querySelectorAll('#ds-theme-bar button').forEach(b=>b.classList.toggle('active',b.getAttribute('data-t')===t))}
setTheme(localStorage.getItem('ds_theme')||'midnight');