diff --git a/packages/main/src/components/AnalyticalTable/AnalyticalTable.module.css b/packages/main/src/components/AnalyticalTable/AnalyticalTable.module.css
index 12e2251bd58..7f48b1ff244 100644
--- a/packages/main/src/components/AnalyticalTable/AnalyticalTable.module.css
+++ b/packages/main/src/components/AnalyticalTable/AnalyticalTable.module.css
@@ -41,13 +41,17 @@
   position: relative;
 }
 
+.busyIndicator {
+  position: absolute;
+  z-index: 1;
+  inset: 0;
+  height: 100%;
+}
+
 .overlay {
   position: absolute;
   z-index: 1;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  right: 0;
+  inset: 0;
   background: var(--sapGroup_ContentBackground);
   opacity: 0.8;
 
@@ -158,7 +162,7 @@
   color: var(--sapList_TextColor);
   border-block-end: 1px solid var(--sapList_BorderColor);
   /* needed for vertical virtualization*/
-  margin-bottom: -1px;
+  margin-block-end: -1px;
   box-sizing: border-box;
   display: flex;
 
diff --git a/packages/main/src/components/AnalyticalTable/index.tsx b/packages/main/src/components/AnalyticalTable/index.tsx
index bddd5056894..21ca02d9af1 100644
--- a/packages/main/src/components/AnalyticalTable/index.tsx
+++ b/packages/main/src/components/AnalyticalTable/index.tsx
@@ -46,7 +46,6 @@ import {
   SELECT_PRESS_SPACE,
   UNSELECT_PRESS_SPACE
 } from '../../i18n/i18n-defaults.js';
-import { addCustomCSSWithScoping } from '../../internal/addCustomCSSWithScoping.js';
 import { BusyIndicator } from '../../webComponents/BusyIndicator/index.js';
 import { Text } from '../../webComponents/Text/index.js';
 import { FlexBox } from '../FlexBox/index.js';
@@ -95,19 +94,6 @@ const measureElement = (el: HTMLElement) => {
   return el.offsetHeight;
 };
 
-//todo: add feature request for parts or even a fix if this turns out to be a bug
-addCustomCSSWithScoping(
-  'ui5-busy-indicator',
-  `
-:host([data-component-name="AnalyticalTableBusyIndicator"]) .ui5-busy-indicator-root {
-  display: initial;
-}
-:host([data-component-name="AnalyticalTableBusyIndicator"]) .ui5-busy-indicator-busy-area:focus {
-border-radius: 0;
-}
-`
-);
-
 /**
  * The `AnalyticalTable` provides a set of convenient functions for responsive table design, including virtualization of rows and columns, infinite scrolling and customizable columns that will, unless otherwise defined, distribute the available space equally among themselves.
  * It also provides several possibilities for working with the data, including sorting, filtering, grouping and aggregation.
@@ -717,143 +703,152 @@ const AnalyticalTable = forwardRef<AnalyticalTableDomRef, AnalyticalTablePropTyp
           </TitleBar>
         )}
         {extension && <div ref={extensionRef}>{extension}</div>}
-        <BusyIndicator active={loading} delay={loadingDelay} data-component-name="AnalyticalTableBusyIndicator">
-          <FlexBox
-            className={classNames.tableContainerWithScrollBar}
-            data-component-name="AnalyticalTableContainerWithScrollbar"
-          >
-            {showOverlay && (
-              <>
-                <span id={invalidTableTextId} className={classNames.hiddenA11yText} aria-hidden>
-                  {invalidTableA11yText}
-                </span>
-                <div
-                  tabIndex={0}
-                  aria-labelledby={`${titleBarId} ${invalidTableTextId}`}
-                  role="region"
-                  data-component-name="AnalyticalTableOverlay"
-                  className={classNames.overlay}
-                />
-              </>
-            )}
-            <div
-              aria-labelledby={titleBarId}
-              {...getTableProps()}
-              tabIndex={showOverlay ? -1 : 0}
-              role="grid"
-              aria-rowcount={rows.length}
-              aria-colcount={visibleColumns.length}
-              data-per-page={internalVisibleRowCount}
-              data-component-name="AnalyticalTableContainer"
-              ref={tableRef}
-              className={tableClasses}
+        <FlexBox
+          className={classNames.tableContainerWithScrollBar}
+          data-component-name="AnalyticalTableContainerWithScrollbar"
+        >
+          {loading && (
+            <BusyIndicator
+              className={classNames.busyIndicator}
+              active={true}
+              delay={loadingDelay}
+              data-component-name="AnalyticalTableBusyIndicator"
             >
-              <div className={classNames.tableHeaderBackgroundElement} />
-              <div className={classNames.tableBodyBackgroundElement} />
-              {headerGroups.map((headerGroup) => {
-                let headerProps: Record<string, unknown> = {};
-                if (headerGroup.getHeaderGroupProps) {
-                  headerProps = headerGroup.getHeaderGroupProps();
-                }
-                return (
-                  tableRef.current && (
-                    <ColumnHeaderContainer
-                      ref={headerRef}
-                      key={headerProps.key as string}
-                      resizeInfo={tableState.columnResizing}
-                      headerProps={headerProps}
-                      headerGroup={headerGroup}
-                      onSort={onSort}
-                      onGroupByChanged={onGroupByChanged}
-                      isRtl={isRtl}
-                      columnVirtualizer={columnVirtualizer}
-                      uniqueId={uniqueId}
-                      showVerticalEndBorder={showVerticalEndBorder}
-                    />
-                  )
-                );
-              })}
-              {loading && rows?.length === 0 && (
-                <TablePlaceholder columns={visibleColumns} rows={minRows} style={noDataStyles} />
-              )}
-              {!loading && rows?.length === 0 && (
-                <NoDataComponent
-                  noDataText={noDataTextLocal}
-                  className={classNames.noDataContainer}
-                  style={noDataStyles}
-                />
-              )}
-              {rows?.length > 0 && tableRef.current && (
-                <VirtualTableBodyContainer
-                  rowCollapsedFlag={tableState.rowCollapsed}
-                  dispatch={dispatch}
-                  tableBodyHeight={tableBodyHeight}
-                  totalColumnsWidth={columnVirtualizer.getTotalSize()}
-                  parentRef={parentRef}
-                  classes={classNames}
-                  infiniteScroll={infiniteScroll}
-                  infiniteScrollThreshold={infiniteScrollThreshold}
-                  onLoadMore={handleOnLoadMore}
-                  internalRowHeight={internalRowHeight}
-                  popInRowHeight={popInRowHeight}
-                  rows={rows}
-                  handleExternalScroll={handleBodyScroll}
-                  visibleRows={internalVisibleRowCount}
-                >
-                  <VirtualTableBody
-                    scrollContainerRef={scrollContainerRef}
-                    classes={classNames}
-                    prepareRow={prepareRow}
-                    rows={rows}
-                    scrollToRef={scrollToRef}
-                    isTreeTable={isTreeTable}
-                    internalRowHeight={internalRowHeight}
-                    popInRowHeight={popInRowHeight}
-                    alternateRowColor={alternateRowColor}
-                    visibleColumns={visibleColumns}
-                    renderRowSubComponent={renderRowSubComponent}
-                    alwaysShowSubComponent={alwaysShowSubComponent}
-                    markNavigatedRow={markNavigatedRow}
+              {/*todo: This is necessary; otherwise, the overlay bg color will not be applied. https://github.com/SAP/ui5-webcomponents/issues/9723 */}
+              <span />
+            </BusyIndicator>
+          )}
+          {showOverlay && (
+            <>
+              <span id={invalidTableTextId} className={classNames.hiddenA11yText} aria-hidden>
+                {invalidTableA11yText}
+              </span>
+              <div
+                tabIndex={0}
+                aria-labelledby={`${titleBarId} ${invalidTableTextId}`}
+                role="region"
+                data-component-name="AnalyticalTableOverlay"
+                className={classNames.overlay}
+              />
+            </>
+          )}
+          <div
+            aria-labelledby={titleBarId}
+            {...getTableProps()}
+            tabIndex={showOverlay ? -1 : 0}
+            role="grid"
+            aria-rowcount={rows.length}
+            aria-colcount={visibleColumns.length}
+            data-per-page={internalVisibleRowCount}
+            data-component-name="AnalyticalTableContainer"
+            ref={tableRef}
+            className={tableClasses}
+          >
+            <div className={classNames.tableHeaderBackgroundElement} />
+            <div className={classNames.tableBodyBackgroundElement} />
+            {headerGroups.map((headerGroup) => {
+              let headerProps: Record<string, unknown> = {};
+              if (headerGroup.getHeaderGroupProps) {
+                headerProps = headerGroup.getHeaderGroupProps();
+              }
+              return (
+                tableRef.current && (
+                  <ColumnHeaderContainer
+                    ref={headerRef}
+                    key={headerProps.key as string}
+                    resizeInfo={tableState.columnResizing}
+                    headerProps={headerProps}
+                    headerGroup={headerGroup}
+                    onSort={onSort}
+                    onGroupByChanged={onGroupByChanged}
                     isRtl={isRtl}
-                    subComponentsHeight={tableState.subComponentsHeight}
-                    dispatch={dispatch}
                     columnVirtualizer={columnVirtualizer}
-                    manualGroupBy={reactTableOptions?.manualGroupBy as boolean | undefined}
-                    subRowsKey={subRowsKey}
-                    subComponentsBehavior={subComponentsBehavior}
-                    triggerScroll={tableState.triggerScroll}
-                    rowVirtualizer={rowVirtualizer}
+                    uniqueId={uniqueId}
+                    showVerticalEndBorder={showVerticalEndBorder}
                   />
-                </VirtualTableBodyContainer>
-              )}
-            </div>
-            {(additionalEmptyRowsCount || tableState.isScrollable === undefined || tableState.isScrollable) && (
-              <VerticalScrollbar
+                )
+              );
+            })}
+            {loading && rows?.length === 0 && (
+              <TablePlaceholder columns={visibleColumns} rows={minRows} style={noDataStyles} />
+            )}
+            {!loading && rows?.length === 0 && (
+              <NoDataComponent
+                noDataText={noDataTextLocal}
+                className={classNames.noDataContainer}
+                style={noDataStyles}
+              />
+            )}
+            {rows?.length > 0 && tableRef.current && (
+              <VirtualTableBodyContainer
+                rowCollapsedFlag={tableState.rowCollapsed}
+                dispatch={dispatch}
                 tableBodyHeight={tableBodyHeight}
-                internalRowHeight={internalHeaderRowHeight}
-                tableRef={tableRef}
-                handleVerticalScrollBarScroll={handleVerticalScrollBarScroll}
-                ref={verticalScrollBarRef}
-                scrollContainerRef={scrollContainerRef}
+                totalColumnsWidth={columnVirtualizer.getTotalSize()}
                 parentRef={parentRef}
-                nativeScrollbar={className?.includes('ui5-content-native-scrollbars')}
-              />
+                classes={classNames}
+                infiniteScroll={infiniteScroll}
+                infiniteScrollThreshold={infiniteScrollThreshold}
+                onLoadMore={handleOnLoadMore}
+                internalRowHeight={internalRowHeight}
+                popInRowHeight={popInRowHeight}
+                rows={rows}
+                handleExternalScroll={handleBodyScroll}
+                visibleRows={internalVisibleRowCount}
+              >
+                <VirtualTableBody
+                  scrollContainerRef={scrollContainerRef}
+                  classes={classNames}
+                  prepareRow={prepareRow}
+                  rows={rows}
+                  scrollToRef={scrollToRef}
+                  isTreeTable={isTreeTable}
+                  internalRowHeight={internalRowHeight}
+                  popInRowHeight={popInRowHeight}
+                  alternateRowColor={alternateRowColor}
+                  visibleColumns={visibleColumns}
+                  renderRowSubComponent={renderRowSubComponent}
+                  alwaysShowSubComponent={alwaysShowSubComponent}
+                  markNavigatedRow={markNavigatedRow}
+                  isRtl={isRtl}
+                  subComponentsHeight={tableState.subComponentsHeight}
+                  dispatch={dispatch}
+                  columnVirtualizer={columnVirtualizer}
+                  manualGroupBy={reactTableOptions?.manualGroupBy as boolean | undefined}
+                  subRowsKey={subRowsKey}
+                  subComponentsBehavior={subComponentsBehavior}
+                  triggerScroll={tableState.triggerScroll}
+                  rowVirtualizer={rowVirtualizer}
+                />
+              </VirtualTableBodyContainer>
             )}
-          </FlexBox>
-          {visibleRowCountMode === AnalyticalTableVisibleRowCountMode.Interactive && (
-            <VerticalResizer
-              popInRowHeight={popInRowHeight}
-              hasPopInColumns={tableState?.popInColumns?.length > 0}
-              analyticalTableRef={analyticalTableRef}
-              dispatch={dispatch}
-              extensionsHeight={extensionsHeight}
-              internalRowHeight={internalRowHeight}
-              rowsLength={rows.length}
-              visibleRows={internalVisibleRowCount}
-              handleOnLoadMore={handleOnLoadMore}
+          </div>
+          {(additionalEmptyRowsCount || tableState.isScrollable === undefined || tableState.isScrollable) && (
+            <VerticalScrollbar
+              tableBodyHeight={tableBodyHeight}
+              internalRowHeight={internalHeaderRowHeight}
+              tableRef={tableRef}
+              handleVerticalScrollBarScroll={handleVerticalScrollBarScroll}
+              ref={verticalScrollBarRef}
+              scrollContainerRef={scrollContainerRef}
+              parentRef={parentRef}
+              nativeScrollbar={className?.includes('ui5-content-native-scrollbars')}
             />
           )}
-        </BusyIndicator>
+        </FlexBox>
+        {visibleRowCountMode === AnalyticalTableVisibleRowCountMode.Interactive && (
+          <VerticalResizer
+            popInRowHeight={popInRowHeight}
+            hasPopInColumns={tableState?.popInColumns?.length > 0}
+            analyticalTableRef={analyticalTableRef}
+            dispatch={dispatch}
+            extensionsHeight={extensionsHeight}
+            internalRowHeight={internalRowHeight}
+            rowsLength={rows.length}
+            visibleRows={internalVisibleRowCount}
+            handleOnLoadMore={handleOnLoadMore}
+          />
+        )}
       </div>
       <Text
         aria-hidden="true"