diff --git a/wevia-master.html b/wevia-master.html
index a71644f14..8d01ea591 100644
--- a/wevia-master.html
+++ b/wevia-master.html
@@ -173,6 +173,25 @@ body, .card, .panel, .btn, .kpi { margin: 0; padding: 0; box-sizing: border-box;
@keyframes pulse-anim { 0%, 100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
.pulse, .live-indicator, .active { animation: pulse-anim 3s ease-in-out infinite; }
.chat, .speech, .modal { backdrop-filter: blur(12px); background: rgba(20, 25, 40, 0.8); }
+
+/* ===== WEVIA-LAYOUT-FIX-24AVR - root cause: body{display:flex} with banner 1st child => column ===== */
+html,body{height:100%;overflow:hidden;margin:0;padding:0}
+body{display:flex !important;flex-direction:column !important}
+.wevia-portal-banner{flex-shrink:0;width:100%}
+/* wrapper appears below banner with remaining height */
+body > .sidebar, body > .main{height:calc(100vh - 44px)}
+body{position:relative}
+/* inner layout: sidebar + main side-by-side via wrapper illusion */
+body::after{content:none}
+.sidebar{position:fixed !important;top:44px !important;left:0 !important;bottom:0 !important;width:230px !important;z-index:50}
+.main{position:fixed !important;top:44px !important;left:230px !important;right:0 !important;bottom:0 !important;width:auto !important;flex:none !important;display:flex;flex-direction:column}
+/* beton-doctrine dummies stay hidden */
+#weval-global-logout,#weval-gl{display:none !important;position:absolute !important;width:0 !important;height:0 !important}
+/* factory pill top-left rejoined */
+#w265-factory-cross{top:10px !important;left:14px !important;right:auto !important}
+/* ensure msgs area scrolls within main */
+.msgs{overflow-y:auto}
+/* ===== END WEVIA-LAYOUT-FIX-24AVR ===== */