.fusion_accounting_dashboard { // Fill the available Odoo content area (below navbar + menu bar) // Use 100% of parent instead of 100vh to respect Odoo's own layout display: flex; flex-direction: column; height: 100%; .fusion_dashboard_header { border-bottom: 1px solid var(--o-border-color); background: var(--o-view-background-color); flex-shrink: 0; } // Main two-column layout — must fill remaining height .fusion_main_layout { flex: 1; // This is the key: prevent the flex container from growing beyond // the viewport, which would push the chat input off-screen min-height: 0; overflow: hidden; } // Left panel: cards + needs attention (scrollable) .fusion_left_panel { width: 50%; min-width: 400px; max-width: 600px; overflow-y: auto; flex-shrink: 0; } // Health cards: 3 per row .fusion_health_cards { flex-shrink: 0; .fusion_health_card { flex: 0 0 calc(33.333% - 6px); min-width: 150px; transition: transform 0.15s ease, box-shadow 0.15s ease; &:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(var(--bs-body-color-rgb), 0.1); } } } // Needs Attention: fill remaining left panel space .fusion_attention_card { flex: 1; min-height: 150px; overflow: hidden; .card-body { overflow-y: auto; } } // Needs Attention items .fusion_attention_item { transition: background 0.15s ease; &:hover { background: rgba(var(--bs-body-color-rgb), 0.04); } } // Right panel: chat takes all remaining width and height .fusion_right_panel { flex: 1; min-width: 500px; display: flex; flex-direction: column; // Critical: prevent overflow so chat input stays visible min-height: 0; overflow: hidden; // Override chat panel to fill the container .fusion_chat_panel { // Fill the right panel completely flex: 1; display: flex; flex-direction: column; border-radius: 0; border: none; // Must not exceed container min-height: 0; height: auto !important; .card-header { flex-shrink: 0; } .fusion_chat_messages { // Override base chat.scss values that break flex layout max-height: none !important; min-height: 0 !important; // Grow to fill, but scrollable flex: 1; overflow-y: auto; } .fusion_chat_input { flex-shrink: 0; } } } } // Also ensure the Odoo action container gives us full height .o_action_manager { .o_action.fusion_accounting_dashboard { height: 100%; } }