Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/admin-tools/admin-tools.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/admin-tools/admin-tools.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/admin-tools/admin-tools.scss	(working copy)
@@ -0,0 +1,5 @@
+:host {
+    height: 100%;
+    display: block;
+    overflow: hidden;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/common/tab-container/tab-container.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/common/tab-container/tab-container.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/common/tab-container/tab-container.scss	(working copy)
@@ -0,0 +1,34 @@
+:host {
+    height: 100%;
+    display: block;
+}
+
+.tab-container {
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+
+    mat-tab-group {
+        flex: 1;
+        overflow: hidden;
+    }
+
+    ::ng-deep .mat-mdc-tab-body-wrapper {
+        height: 100%;
+    }
+
+    ::ng-deep .mat-mdc-tab-body-content {
+        height: 100%;
+        overflow: hidden; // Prevent double scrollbars, let child handle scrolling
+        display: flex;
+        flex-direction: column;
+    }
+
+    .tab-content {
+        flex: 1;
+        height: 100%;
+        display: flex;
+        flex-direction: column;
+        overflow: hidden;
+    }
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.html	(working copy)
@@ -1 +1,20 @@
-<app-tab-container [tabDefinitions]="tabDefinitions" paramKey="tab"/>
+<div class="settings-container">
+    <mat-tab-group [selectedIndex]="selectedTabIndex" (selectedIndexChange)="onTabChange($event)"
+        animationDuration="0ms" mat-stretch-tabs="false" mat-align-tabs="start" class="general-settings-tabs">
+        @for (item of settingsItems; track item.label) {
+        <mat-tab>
+            <ng-template mat-tab-label>
+                <div class="custom-tab-label">
+                    <fa-icon [icon]="item.icon" class="tab-icon"></fa-icon>
+                    <span class="tab-text">{{ item.label }}</span>
+                </div>
+            </ng-template>
+            <ng-template matTabContent>
+                <div class="tab-content-wrapper">
+                    <ng-container *ngComponentOutlet="item.component"></ng-container>
+                </div>
+            </ng-template>
+        </mat-tab>
+        }
+    </mat-tab-group>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.scss	(working copy)
@@ -0,0 +1,80 @@
+.settings-container {
+    padding: 4px 5px; // Reduced top padding
+    background-color: #fafafa;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    box-sizing: border-box;
+
+    // Override Angular Material Tab Styles
+    ::ng-deep .general-settings-tabs {
+        .mat-mdc-tab-header {
+            border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+            background: transparent;
+        }
+
+        .mat-mdc-tab-labels {
+            background: transparent;
+        }
+
+        .mat-mdc-tab {
+            min-width: auto !important;
+            padding: 0 24px !important; // Increased padding for better click area
+            height: 48px !important; // Standard height
+            flex-grow: 0 !important;
+            opacity: 1 !important; // Ensure opacity doesn't dim too much
+
+            &:hover {
+                background-color: rgba(0, 0, 0, 0.04);
+            }
+
+            &.mdc-tab--active {
+
+                // Target custom label elements directly
+                .tab-icon,
+                .tab-text {
+                    color: #1976d2 !important;
+                    opacity: 1 !important;
+                }
+            }
+        }
+
+        .mdc-tab-indicator__content--underline {
+            border-color: #1976d2 !important;
+        }
+
+        // Fix for ink bar color if needed, though border-color usually handles it in MDC
+        .mat-mdc-tab.mat-mdc-tab-active .mdc-tab-indicator__content--underline {
+            border-color: #1976d2;
+        }
+    }
+}
+
+.custom-tab-label {
+    display: flex;
+    align-items: center;
+    gap: 8px;
+
+    .tab-icon {
+        font-size: 14px;
+        color: #666;
+        transition: color 0.2s;
+    }
+
+    .tab-text {
+        font-weight: 500;
+        font-size: 14px;
+        color: #666;
+        transition: color 0.2s;
+    }
+}
+
+.tab-content-wrapper {
+    margin-top: 8px; // Reduced margin
+    background: white;
+    border-radius: 8px;
+    border: 1px solid #e0e0e0; // Lighter border instead of heavy shadow
+    box-shadow: none;
+    padding: 24px;
+    min-height: 400px;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/general-settings/general-settings.ts	(working copy)
@@ -1,32 +1,67 @@
-import {Component, OnInit} from '@angular/core';
-import {Host} from '../sub-components/host/host';
-import {LogSettings} from '../sub-components/log-settings/log-settings';
-import {SharedModule} from '../../shared/shared-module';
-import {License} from '../sub-components/license/license';
-import {SystemTime} from '../sub-components/system-time/system-time';
-import {SystemUpdate} from '../sub-components/system-update/system-update';
-import {Network} from '../sub-components/network/network';
-import {AdminAaa} from '../sub-components/admin-aaa/admin-aaa';
-import {SystemBackupRestore} from '../sub-components/system-backup-restore/system-backup-restore';
-import {TabContainer, TabDefinition} from '../common/tab-container/tab-container';
+import { Component, OnInit, Type } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { Host } from '../sub-components/host/host';
+import { LogSettings } from '../sub-components/log-settings/log-settings';
+import { SharedModule } from '../../shared/shared-module';
+import { License } from '../sub-components/license/license';
+import { SystemTime } from '../sub-components/system-time/system-time';
+import { SystemUpdate } from '../sub-components/system-update/system-update';
+import { Network } from '../sub-components/network/network';
+import { AdminAaa } from '../sub-components/admin-aaa/admin-aaa';
+import { SystemBackupRestore } from '../sub-components/system-backup-restore/system-backup-restore';
 
+export interface SettingsItem {
+  label: string;
+  component: Type<any>;
+  paramName: string;
+  icon: any;
+  description: string;
+}
+
 @Component({
   selector: 'app-general-settings',
   standalone: true,
-  imports: [SharedModule, TabContainer],
+  imports: [SharedModule],
   templateUrl: './general-settings.html',
   styleUrl: './general-settings.scss',
 })
-export class GeneralSettings {
+export class GeneralSettings implements OnInit {
 
-  tabDefinitions: TabDefinition[] = [
-    { label: 'Host', component: Host, paramName: 'Host' },
-    { label: 'License', component: License, paramName: 'License' },
-    { label: 'Date & Time', component: SystemTime, paramName: 'Date & Time' },
-    { label: 'System Update', component: SystemUpdate, paramName: 'System Update' },
-    { label: 'Network', component: Network, paramName: 'Network' },
-    { label: 'AAA', component: AdminAaa, paramName: 'AAA' },
-    { label: 'Log Settings', component: LogSettings, paramName: 'Log Settings' },
-    { label: 'Backup & Restore', component: SystemBackupRestore, paramName: 'Backup & Restore' },
+  settingsItems: SettingsItem[] = [
+    { label: 'Host', component: Host, paramName: 'Host', icon: ['fas', 'server'], description: 'Configure host settings' },
+    { label: 'License', component: License, paramName: 'License', icon: ['fas', 'id-badge'], description: 'Manage system license' },
+    { label: 'Date & Time', component: SystemTime, paramName: 'Date & Time', icon: ['far', 'clock'], description: 'Set system time and date' },
+    { label: 'System Update', component: SystemUpdate, paramName: 'System Update', icon: ['fas', 'cloud-arrow-up'], description: 'Update system software' },
+    { label: 'Network', component: Network, paramName: 'Network', icon: ['fas', 'network-wired'], description: 'Configure network settings' },
+    { label: 'AAA', component: AdminAaa, paramName: 'AAA', icon: ['fas', 'shield-alt'], description: 'Authentication, Authorization, and Accounting' },
+    { label: 'Log Settings', component: LogSettings, paramName: 'Log Settings', icon: ['fas', 'file-lines'], description: 'Configure logging' },
+    { label: 'Backup & Restore', component: SystemBackupRestore, paramName: 'Backup & Restore', icon: ['far', 'floppy-disk'], description: 'Backup and restore system data' },
   ];
+
+  selectedTabIndex = 0;
+
+  constructor(private _route: ActivatedRoute, private _router: Router) {
+  }
+
+  ngOnInit(): void {
+    this._route.queryParams.subscribe(params => {
+      const tabParam = params['tab'];
+      if (tabParam) {
+        const index = this.settingsItems.findIndex(i => i.paramName === tabParam);
+        if (index !== -1) {
+          this.selectedTabIndex = index;
+        }
+      }
+    });
+  }
+
+  onTabChange(index: number): void {
+    this.selectedTabIndex = index;
+    const item = this.settingsItems[index];
+    this._router.navigate([], {
+      relativeTo: this._route,
+      queryParams: { 'tab': item.paramName },
+      queryParamsHandling: 'merge'
+    });
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/log-analysis/log-analysis.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/log-analysis/log-analysis.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/log-analysis/log-analysis.html	(working copy)
@@ -1 +1 @@
-<app-tab-container [tabDefinitions]="tabDefinitions" paramKey="tab"/>
+<app-log-analysis-slb-overview></app-log-analysis-slb-overview>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/log-analysis/log-analysis.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/log-analysis/log-analysis.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/log-analysis/log-analysis.ts	(working copy)
@@ -1,17 +1,12 @@
-import {Component, OnInit} from '@angular/core';
-import {SharedModule} from '../../shared/shared-module';
-import {LogAnalysisSlbOverview} from '../sub-components/log-analysis-slb-overview/log-analysis-slb-overview';
-import {TabContainer, TabDefinition} from '../common/tab-container/tab-container';
+import { Component, OnInit } from '@angular/core';
+import { SharedModule } from '../../shared/shared-module';
+import { LogAnalysisSlbOverview } from '../sub-components/log-analysis-slb-overview/log-analysis-slb-overview';
 
 @Component({
   selector: 'app-log-analysis',
-  imports: [SharedModule, TabContainer],
+  imports: [SharedModule, LogAnalysisSlbOverview],
   templateUrl: './log-analysis.html',
   styleUrl: './log-analysis.scss'
 })
 export class LogAnalysis {
-
-  tabDefinitions: TabDefinition[] = [
-    {label: 'APV - SLB - Virtual Services', component: LogAnalysisSlbOverview, paramName: 'apv-slb-vs'},
-  ];
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.html	(working copy)
@@ -1,45 +1,50 @@
 <mat-card class="page-card-1" appearance="filled">
-  <mat-card-header>
-    <mat-card-title>Services Status</mat-card-title>
-  </mat-card-header>
-  <mat-card-content>
-    <div class="button-container">
-      <button mat-raised-button (click)="updateLogSettings()" matTooltip="Update Log Settings">Update Log Settings
-      </button>
-    </div>
-    <div>
-      Visit Opensearch Dashboard - <a (click)="openSearchDashboard()" class="a-link-color">Logs Dashboard</a>
-    </div>
-    <div class="table-container">
-      <div class="mat-elevation-z0">
-        <table mat-table [dataSource]="dataSource">
-          <ng-container matColumnDef="serial">
-            <th mat-header-cell *matHeaderCellDef>ID</th>
-            <td mat-cell *matCellDef="let element; let i = index;"> {{ i + 1 }}</td>
-          </ng-container>
-          <ng-container matColumnDef="name">
-            <th mat-header-cell *matHeaderCellDef>Service Name</th>
-            <td mat-cell *matCellDef="let element">{{ element?.label }}</td>
-          </ng-container>
-          <ng-container matColumnDef="status">
-            <th mat-header-cell *matHeaderCellDef>Status</th>
-            <td mat-cell *matCellDef="let element">
-              <div class="row-action a-link">
-                @if (element?.value) {
-                  <fa-icon [icon]="['far', 'check-circle']" class="success-icon" matTooltip="Active"></fa-icon>
-                } @else {
-                  <fa-icon [icon]="['far', 'xmark-circle']" class="delete-icon" matTooltip="It appears to be inactive."></fa-icon>
-                }
-              </div>
-            </td>
-          </ng-container>
-          <tr mat-header-row *matHeaderRowDef="dataColumns"></tr>
-          <tr mat-row *matRowDef="let row; columns: dataColumns;"></tr>
-          <tr class="mat-row table-no-data" *matNoDataRow>
-            <td class="mat-cell" colspan="3">No results found.</td>
-          </tr>
-        </table>
-      </div>
-    </div>
-  </mat-card-content>
-</mat-card>
+    <mat-card-header>
+        <mat-card-title>Services Status</mat-card-title>
+        <div class="header-actions">
+            <button mat-raised-button color="primary" (click)="updateLogSettings()" matTooltip="Update Log Settings">
+                Update Log Settings
+            </button>
+        </div>
+    </mat-card-header>
+    <mat-card-content>
+        <div class="dashboard-link-container">
+            <span>Visit Opensearch Dashboard: </span>
+            <a (click)="openSearchDashboard()" class="a-link-color">Logs Dashboard <fa-icon
+                    [icon]="['far', 'window-maximize']" size="sm"></fa-icon></a>
+        </div>
+        <div class="table-container">
+            <table mat-table [dataSource]="dataSource" class="an-table">
+                <ng-container matColumnDef="serial">
+                    <th mat-header-cell *matHeaderCellDef class="w-10">ID</th>
+                    <td mat-cell *matCellDef="let element; let i = index;"> {{ i + 1 }}</td>
+                </ng-container>
+                <ng-container matColumnDef="name">
+                    <th mat-header-cell *matHeaderCellDef>Service Name</th>
+                    <td mat-cell *matCellDef="let element" class="service-name">{{ element?.label }}</td>
+                </ng-container>
+                <ng-container matColumnDef="status">
+                    <th mat-header-cell *matHeaderCellDef class="w-10">Status</th>
+                    <td mat-cell *matCellDef="let element">
+                        <div class="row-action">
+                            @if (element?.value) {
+                            <fa-icon [icon]="['far', 'check-circle']" class="success-icon"
+                                matTooltip="Active"></fa-icon>
+                            <span class="status-text success-text">Active</span>
+                            } @else {
+                            <fa-icon [icon]="['far', 'xmark-circle']" class="delete-icon"
+                                matTooltip="Inactive"></fa-icon>
+                            <span class="status-text delete-text">Inactive</span>
+                            }
+                        </div>
+                    </td>
+                </ng-container>
+                <tr mat-header-row *matHeaderRowDef="dataColumns"></tr>
+                <tr mat-row *matRowDef="let row; columns: dataColumns;"></tr>
+                <tr class="mat-row table-no-data" *matNoDataRow>
+                    <td class="mat-cell" colspan="3">No results found.</td>
+                </tr>
+            </table>
+        </div>
+    </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.scss	(working copy)
@@ -0,0 +1,137 @@
+.page-card-1 {
+    .mat-mdc-card-header {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        padding: 12px 16px; // Reduced padding
+        border-bottom: 1px solid #e0e0e0;
+
+        .mat-mdc-card-title {
+            font-size: 18px;
+            font-weight: 500;
+            margin: 0;
+        }
+
+        .header-actions {
+            display: flex;
+            gap: 12px;
+        }
+    }
+
+    .mat-mdc-card-content {
+        padding: 12px; // Reduced from 24px
+    }
+}
+
+.dashboard-link-container {
+    display: flex;
+    align-items: center;
+    gap: 8px;
+    margin-bottom: 12px; // Reduced from 24px
+    padding: 12px 16px;
+    background-color: #f5f7fa;
+    border-radius: 4px;
+    border-left: 4px solid #1976d2;
+
+    span {
+        font-weight: 500;
+        color: #555;
+    }
+}
+
+.table-container {
+    border: 1px solid #e0e0e0;
+    border-radius: 4px;
+
+    table.an-table {
+        width: 100%;
+
+        th.mat-header-cell {
+            font-weight: 600;
+            color: #444;
+            background-color: #f9fafb;
+            padding: 10px 12px; // Reduced from 16px
+            font-size: 14px;
+            border-bottom: 1px solid #e0e0e0;
+        }
+
+        td.mat-cell {
+            padding: 10px 12px; // Reduced from 16px
+            color: #333;
+            font-size: 14px;
+            border-bottom: 1px solid #f0f0f0;
+        }
+
+        tr.mat-row {
+            &:hover {
+                background-color: #f5f7fa;
+            }
+
+            &:last-child td {
+                border-bottom: none;
+            }
+        }
+    }
+}
+
+.a-link-color {
+    color: #1976d2;
+    cursor: pointer;
+    text-decoration: none;
+    font-weight: 500;
+    display: flex;
+    align-items: center;
+    gap: 6px;
+    transition: color 0.2s;
+
+    &:hover {
+        color: #1565c0;
+        text-decoration: underline;
+    }
+}
+
+.success-icon {
+    color: #2e7d32;
+    font-size: 18px;
+}
+
+.delete-icon {
+    color: #d32f2f;
+    font-size: 18px;
+}
+
+.row-action {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    gap: 8px;
+}
+
+.status-text {
+    font-size: 13px;
+    font-weight: 500;
+}
+
+.success-text {
+    color: #2e7d32;
+}
+
+.delete-text {
+    color: #d32f2f;
+}
+
+.w-10 {
+    width: 15%;
+    text-align: center;
+}
+
+td.mat-cell:first-child,
+th.mat-header-cell:first-child,
+td.mat-cell:last-child,
+th.mat-header-cell:last-child {
+    text-align: center;
+}
+
+.service-name {
+    font-weight: 500;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/observability.ts	(working copy)
@@ -1,13 +1,13 @@
-import {ChangeDetectorRef, Component, inject, OnInit, ViewChild} from '@angular/core';
-import {SharedModule} from '../../shared/shared-module';
-import {MatTableDataSource} from '@angular/material/table';
-import {SystemService} from '../../services/system-service';
-import {NotificationService} from '../../services/notification';
-import {Confirmation} from '../../services/confirmation';
-import {MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef} from '@angular/material/dialog';
-import {FormBuilder, FormGroup} from '@angular/forms';
-import {take} from 'rxjs/operators';
-import {MatPaginator} from '@angular/material/paginator';
+import { ChangeDetectorRef, Component, inject, OnInit, ViewChild } from '@angular/core';
+import { SharedModule } from '../../shared/shared-module';
+import { MatTableDataSource } from '@angular/material/table';
+import { SystemService } from '../../services/system-service';
+import { NotificationService } from '../../services/notification';
+import { Confirmation } from '../../services/confirmation';
+import { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { take } from 'rxjs/operators';
+import { MatPaginator } from '@angular/material/paginator';
 
 @Component({
   selector: 'app-observability',
@@ -34,7 +34,7 @@
   }
 
   ngOnInit() {
-    setTimeout(()=>{
+    setTimeout(() => {
       this.getObservabilityStatus();
     })
   }
@@ -44,6 +44,7 @@
     this.totalRecords = 0;
     this._system.getObservabilityStatus().pipe(take(1)).subscribe({
       next: (result: any) => {
+        console.log('Observability Status Result:', result);
         this.dataSource.data = result;
         this.dataSource.paginator = this.paginator;
         this.totalRecords = this.dataSource.data.length;
@@ -70,7 +71,7 @@
       next: (result: any) => {
         if (result && result.token) {
           const protocol = window.location.protocol;
-          const hostname =  window.location.hostname;
+          const hostname = window.location.hostname;
           const opensearchUrl = `${protocol}://${hostname}/visualization?access_token=${result?.token}`;
           window.open(opensearchUrl, '_blank');
         }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/update-log-settings.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/update-log-settings.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/observability/update-log-settings.html	(working copy)
@@ -1,9 +1,6 @@
 <h2 mat-dialog-title>Update Log Settings</h2>
 <mat-dialog-content>
-  <form
-    (ngSubmit)="onSubmit()"
-    [formGroup]="configForm"
-  >
+  <form (ngSubmit)="onSubmit()" [formGroup]="configForm">
     <div class="form-field-wrapper">
       <label for="enable" class="form-label">Keep the original log</label>
       <mat-slide-toggle formControlName="enable"></mat-slide-toggle>
@@ -12,16 +9,10 @@
   </form>
 </mat-dialog-content>
 <mat-dialog-actions>
-  <button
-    mat-button
-    color="basic"
-    (click)="onCancel()">
+  <button mat-button color="basic" (click)="onCancel()">
     Close
   </button>
-  <button
-    mat-button
-    color="basic"
-    (click)="onSubmit()">
+  <button mat-button color="basic" (click)="onSubmit()">
     Submit
   </button>
-</mat-dialog-actions>
+</mat-dialog-actions>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.html	(working copy)
@@ -1 +1,20 @@
-<app-tab-container [tabDefinitions]="tabDefinitions" paramKey="tab"/>
+<div class="storage-container">
+    <mat-tab-group [selectedIndex]="selectedTabIndex" (selectedIndexChange)="onTabChange($event)"
+        animationDuration="0ms" mat-stretch-tabs="false" mat-align-tabs="start" class="storage-tabs">
+        @for (item of tabs; track item.label) {
+        <mat-tab>
+            <ng-template mat-tab-label>
+                <div class="custom-tab-label">
+                    <fa-icon [icon]="item.icon" class="tab-icon"></fa-icon>
+                    <span class="tab-text">{{ item.label }}</span>
+                </div>
+            </ng-template>
+            <ng-template matTabContent>
+                <div class="tab-content-wrapper">
+                    <ng-container *ngComponentOutlet="item.component"></ng-container>
+                </div>
+            </ng-template>
+        </mat-tab>
+        }
+    </mat-tab-group>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.scss	(working copy)
@@ -0,0 +1,78 @@
+.storage-container {
+    padding: 4px 5px;
+    background-color: #fafafa;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    box-sizing: border-box;
+
+    // Override Angular Material Tab Styles
+    ::ng-deep .storage-tabs {
+        .mat-mdc-tab-header {
+            border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+            background: transparent;
+        }
+
+        .mat-mdc-tab-labels {
+            background: transparent;
+        }
+
+        .mat-mdc-tab {
+            min-width: auto !important;
+            padding: 0 24px !important;
+            height: 48px !important;
+            flex-grow: 0 !important;
+            opacity: 1 !important;
+
+            &:hover {
+                background-color: rgba(0, 0, 0, 0.04);
+            }
+
+            &.mdc-tab--active {
+
+                // Target custom label elements directly
+                .tab-icon,
+                .tab-text {
+                    color: #1976d2 !important;
+                    opacity: 1 !important;
+                }
+            }
+        }
+
+        .mdc-tab-indicator__content--underline {
+            border-color: #1976d2 !important;
+        }
+
+        .mat-mdc-tab.mat-mdc-tab-active .mdc-tab-indicator__content--underline {
+            border-color: #1976d2;
+        }
+    }
+}
+
+.custom-tab-label {
+    display: flex;
+    align-items: center;
+    gap: 8px;
+
+    .tab-icon {
+        font-size: 14px;
+        color: #666;
+        transition: color 0.2s;
+    }
+
+    .tab-text {
+        font-weight: 500;
+        font-size: 14px;
+        color: #666;
+        transition: color 0.2s;
+    }
+}
+
+.tab-content-wrapper {
+    margin-top: 0;
+    background: transparent;
+    border: none;
+    box-shadow: none;
+    padding: 16px 0 0 0; // Keep top padding if needed, or just 0 if grid gap handles it. Let's say 16px top to separate from tabs.
+    min-height: 400px;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/storage/storage.ts	(working copy)
@@ -1,21 +1,54 @@
-import {Component} from '@angular/core';
-import {TabContainer, TabDefinition} from "../common/tab-container/tab-container";
-import {StoragePrimary} from '../sub-components/storage-primary/storage-primary';
-import {StorageSecondary} from '../sub-components/storage-secondary/storage-secondary';
-import {StorageLogLocation} from '../sub-components/storage-log-location/storage-log-location';
+import { Component, OnInit, Type } from '@angular/core';
+import { ActivatedRoute, Router } from '@angular/router';
+import { SharedModule } from '../../shared/shared-module';
+import { StoragePrimary } from '../sub-components/storage-primary/storage-primary';
+import { StorageSecondary } from '../sub-components/storage-secondary/storage-secondary';
+import { StorageLogLocation } from '../sub-components/storage-log-location/storage-log-location';
 
+export interface StorageTab {
+  label: string;
+  component: Type<any>;
+  paramName: string;
+  icon: any;
+}
+
 @Component({
   selector: 'app-storage',
-  imports: [
-    TabContainer
-  ],
+  standalone: true,
+  imports: [SharedModule],
   templateUrl: './storage.html',
   styleUrl: './storage.scss'
 })
-export class StorageComponent {
-  tabDefinitions: TabDefinition[] = [
-    {label: 'Log Location', component: StorageLogLocation, paramName: 'log-location'},
-    {label: 'Primary Storage', component: StoragePrimary, paramName: 'primary'},
-    {label: 'Secondary Storage', component: StorageSecondary, paramName: 'secondary'},
-  ]
+export class StorageComponent implements OnInit {
+  tabs: StorageTab[] = [
+    { label: 'Log Location', component: StorageLogLocation, paramName: 'log-location', icon: ['fas', 'folder-tree'] },
+    { label: 'Primary Storage', component: StoragePrimary, paramName: 'primary', icon: ['fas', 'hard-drive'] },
+    { label: 'Secondary Storage', component: StorageSecondary, paramName: 'secondary', icon: ['fas', 'server'] },
+  ];
+
+  selectedTabIndex = 0;
+
+  constructor(private _route: ActivatedRoute, private _router: Router) { }
+
+  ngOnInit(): void {
+    this._route.queryParams.subscribe(params => {
+      const tabParam = params['tab'];
+      if (tabParam) {
+        const index = this.tabs.findIndex(i => i.paramName === tabParam);
+        if (index !== -1) {
+          this.selectedTabIndex = index;
+        }
+      }
+    });
+  }
+
+  onTabChange(index: number): void {
+    this.selectedTabIndex = index;
+    const item = this.tabs[index];
+    this._router.navigate([], {
+      relativeTo: this._route,
+      queryParams: { 'tab': item.paramName },
+      queryParamsHandling: 'merge'
+    });
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.html	(revision 2785)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.html	(working copy)
@@ -11,6 +11,50 @@
 
     <div class="content-wrapper">
 
+        <!-- Summary Dashboard -->
+        <div class="summary-grid">
+            <!-- Metric Cards -->
+            <mat-card class="summary-card metric-card" appearance="outlined">
+                <mat-card-content class="metric-content">
+                    <div class="metric-label">Total Alerts</div>
+                    <div class="metric-value">{{totalAlerts}}</div>
+                </mat-card-content>
+            </mat-card>
+
+            <mat-card class="summary-card metric-card" appearance="outlined">
+                <mat-card-content class="metric-content">
+                    <div class="metric-label">Alerting</div>
+                    <div class="metric-value status-alerting">{{alertingCount}}</div>
+                </mat-card-content>
+            </mat-card>
+
+            <mat-card class="summary-card metric-card" appearance="outlined">
+                <mat-card-content class="metric-content">
+                    <div class="metric-label">Resolved</div>
+                    <div class="metric-value status-resolved">{{resolvedCount}}</div>
+                </mat-card-content>
+            </mat-card>
+
+            <!-- Charts -->
+            <mat-card class="summary-card chart-card" appearance="outlined">
+                <mat-card-header>
+                    <mat-card-title>Alerts by Type</mat-card-title>
+                </mat-card-header>
+                <mat-card-content class="chart-content">
+                    <div echarts [options]="alertsByTypeChartOption" class="chart-container"></div>
+                </mat-card-content>
+            </mat-card>
+
+            <mat-card class="summary-card chart-card" appearance="outlined">
+                <mat-card-header>
+                    <mat-card-title>Alerts by Product</mat-card-title>
+                </mat-card-header>
+                <mat-card-content class="chart-content">
+                    <div echarts [options]="alertsByProductChartOption" class="chart-container"></div>
+                </mat-card-content>
+            </mat-card>
+        </div>
+
         <div class="filters-row">
             <div class="filter-item rule-name">
                 <label>Alert Rule</label>
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.scss	(revision 2785)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.scss	(working copy)
@@ -1,7 +1,10 @@
 .alert-log-container {
-    padding: 20px;
-    background-color: #f0f2f5;
-    min-height: calc(100vh - 64px);
+    padding: 24px;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    background-color: #f5f7fa;
+    box-sizing: border-box;
 
     .time-range-selector {
         background-color: #e0e0e0;
@@ -11,6 +14,7 @@
         gap: 5px;
         border-bottom: 1px solid #ccc;
         margin-bottom: 20px;
+        border-radius: 4px;
 
         button {
             background-color: #d0d0d0;
@@ -39,28 +43,93 @@
     }
 
     .content-wrapper {
-        // padding: 20px; // Removed padding as container has it
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        overflow-y: auto;
+        /* Allow scrolling if content overflows */
 
-        .toolbar {
+        /* Summary Dashboard Styles */
+        .summary-grid {
+            display: grid;
+            grid-template-columns: repeat(6, 1fr);
+            grid-template-rows: auto 350px;
+            gap: 24px;
+            margin-bottom: 24px;
+        }
+
+        .summary-card {
+            background-color: #fff;
+            border-radius: 12px;
+            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+            border: none;
             display: flex;
-            justify-content: space-between;
+            flex-direction: column;
+            justify-content: center;
+        }
+
+        .metric-card {
+            grid-column: span 2;
+            height: 120px;
+            padding: 24px;
             align-items: center;
-            margin-bottom: 15px;
-            // background-color: #e0e0e0; // Removed background to match AlertThresholds
-            // padding: 5px 15px; // Removed padding
+        }
 
-            .title {
-                font-size: 14px;
-                font-weight: 500;
-                color: #333;
-                display: none; // AlertThresholds doesn't have a visible title in toolbar
-            }
+        .metric-content {
+            text-align: center;
+        }
 
-            button {
-                color: #333;
-            }
+        .metric-label {
+            font-size: 1rem;
+            color: #777;
+            margin-bottom: 8px;
+            text-transform: uppercase;
+            font-weight: 500;
         }
 
+        .metric-value {
+            font-size: 2.5rem;
+            font-weight: 600;
+            color: #333;
+        }
+
+        .status-alerting {
+            color: #d32f2f;
+        }
+
+        .status-resolved {
+            color: #388e3c;
+        }
+
+        .chart-card {
+            grid-column: span 3;
+            grid-row: 2;
+            padding: 16px;
+        }
+
+        .chart-content {
+            height: 100%;
+            width: 100%;
+            padding: 0;
+        }
+
+        .chart-container {
+            width: 100%;
+            height: 100%;
+            min-height: 250px;
+        }
+
+        mat-card-header {
+            margin-bottom: 16px;
+        }
+
+        mat-card-title {
+            font-size: 1.1rem;
+            font-weight: 600;
+            color: #333;
+        }
+
+        /* Existing Filters and Table Styles */
         .filters-row {
             display: flex;
             justify-content: space-between;
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.ts	(revision 2785)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/alert-log/alert-log.ts	(working copy)
@@ -3,6 +3,7 @@
 import { MatPaginator } from '@angular/material/paginator';
 import { MatTableDataSource } from '@angular/material/table';
 import { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import { EChartsOption } from 'echarts';
 
 export interface AlertLogEntry {
   alertType: string;
@@ -92,6 +93,15 @@
     status: 'All'
   };
 
+  // Summary Metrics
+  totalAlerts = 0;
+  alertingCount = 0;
+  resolvedCount = 0;
+
+  // Chart Options
+  alertsByTypeChartOption: EChartsOption = {};
+  alertsByProductChartOption: EChartsOption = {};
+
   constructor(private dialog: MatDialog) { }
 
   ngOnInit() {
@@ -119,12 +129,129 @@
         alertRule: 'CertKeyExpired_6umk3_cert_exp_60',
         status: 'Alerting',
         action: 'View Detail'
+      },
+      {
+        alertType: 'Threshold Alert',
+        product: 'Device',
+        occurredAt: '2025-11-27 09:45:00',
+        alertRule: 'DeviceStatus_mem_usage_high',
+        status: 'Resolved',
+        action: 'View Detail'
+      },
+      {
+        alertType: 'Event Alert',
+        product: 'Real Service',
+        occurredAt: '2025-11-27 08:30:00',
+        alertRule: 'HealthCheck_rs_down',
+        status: 'Alerting',
+        action: 'View Detail'
       }
     ];
     this.dataSource.data = data;
     this.dataSource.filterPredicate = this.createFilter();
+
+    this.calculateMetrics(data);
+    this.initCharts(data);
   }
 
+  calculateMetrics(data: AlertLogEntry[]) {
+    this.totalAlerts = data.length;
+    this.alertingCount = data.filter(d => d.status === 'Alerting').length;
+    this.resolvedCount = data.filter(d => d.status === 'Resolved').length;
+  }
+
+  initCharts(data: AlertLogEntry[]) {
+    // Alerts by Type (Pie Chart)
+    const typeCounts: { [key: string]: number } = {};
+    data.forEach(d => {
+      typeCounts[d.alertType] = (typeCounts[d.alertType] || 0) + 1;
+    });
+
+    this.alertsByTypeChartOption = {
+      tooltip: {
+        trigger: 'item'
+      },
+      legend: {
+        bottom: '0%',
+        left: 'center'
+      },
+      series: [
+        {
+          name: 'Alert Type',
+          type: 'pie',
+          radius: ['40%', '70%'],
+          avoidLabelOverlap: false,
+          itemStyle: {
+            borderRadius: 10,
+            borderColor: '#fff',
+            borderWidth: 2
+          },
+          label: {
+            show: false,
+            position: 'center'
+          },
+          emphasis: {
+            label: {
+              show: true,
+              fontSize: 20,
+              fontWeight: 'bold'
+            }
+          },
+          labelLine: {
+            show: false
+          },
+          data: Object.keys(typeCounts).map(key => ({ value: typeCounts[key], name: key }))
+        }
+      ]
+    };
+
+    // Alerts by Product (Bar Chart)
+    const productCounts: { [key: string]: number } = {};
+    data.forEach(d => {
+      productCounts[d.product] = (productCounts[d.product] || 0) + 1;
+    });
+
+    this.alertsByProductChartOption = {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        }
+      },
+      grid: {
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true
+      },
+      xAxis: [
+        {
+          type: 'category',
+          data: Object.keys(productCounts),
+          axisTick: {
+            alignWithLabel: true
+          }
+        }
+      ],
+      yAxis: [
+        {
+          type: 'value'
+        }
+      ],
+      series: [
+        {
+          name: 'Alerts',
+          type: 'bar',
+          barWidth: '60%',
+          data: Object.values(productCounts),
+          itemStyle: {
+            color: '#3f51b5'
+          }
+        }
+      ]
+    };
+  }
+
   createFilter(): (data: AlertLogEntry, filter: string) => boolean {
     return (data: AlertLogEntry, filter: string): boolean => {
       const searchTerms = JSON.parse(filter);
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.html	(working copy)
@@ -1 +1,33 @@
-<app-tab-container [tabDefinitions]="tabDefinitions" paramKey="subTab"/>
+@if (!isLoading) {
+<div class="services-dashboard-container">
+    @if (hasAvx) {
+    <div class="service-section">
+        <app-dashboard-insights-avx></app-dashboard-insights-avx>
+    </div>
+    }
+    @if (hasApv) {
+    <div class="service-section">
+        <app-dashboard-insights-apv></app-dashboard-insights-apv>
+    </div>
+    }
+    @if (hasSslVpn) {
+    <div class="service-section">
+        <app-dashboard-insights-sslvpn></app-dashboard-insights-sslvpn>
+    </div>
+    }
+
+    @if (!hasAvx && !hasApv && !hasSslVpn) {
+    <div class="no-devices-message">
+        <mat-card appearance="outlined">
+            <mat-card-content>
+                <div class="empty-state">
+                    <fa-icon [icon]="['fas', 'desktop']" class="empty-icon"></fa-icon>
+                    <h3>No Devices Registered</h3>
+                    <p>Please register devices to view the devices & services metrics.</p>
+                </div>
+            </mat-card-content>
+        </mat-card>
+    </div>
+    }
+</div>
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.scss	(working copy)
@@ -0,0 +1,59 @@
+.services-dashboard-container {
+    display: flex;
+    flex-direction: column;
+    gap: 12px;
+    padding: 12px;
+    height: 100%;
+    overflow-y: auto;
+    scrollbar-width: none;
+    /* Firefox */
+    -ms-overflow-style: none;
+    /* IE 10+ */
+
+    &::-webkit-scrollbar {
+        display: none;
+        /* Chrome, Safari, Opera */
+    }
+}
+
+.service-section {
+    width: 100%;
+}
+
+.no-devices-message {
+    width: 100%;
+    display: flex;
+    justify-content: center;
+    margin-top: 40px;
+
+    mat-card {
+        width: 100%;
+        max-width: 500px;
+        text-align: center;
+    }
+
+    .empty-state {
+        padding: 30px;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        gap: 10px;
+
+        .empty-icon {
+            font-size: 48px;
+            color: #ccc;
+            margin-bottom: 10px;
+        }
+
+        h3 {
+            margin: 0;
+            color: #333;
+            font-weight: 500;
+        }
+
+        p {
+            margin: 0;
+            color: #666;
+        }
+    }
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-device-insights/dashboard-device-insights.ts	(working copy)
@@ -1,24 +1,74 @@
-import {Component} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {DashboardInsightsDevices} from '../dashboard-insights-devices/dashboard-insights-devices';
-import {DashboardInsightsApv} from '../dashboard-insights-apv/dashboard-insights-apv';
-import {DashboardInsightsSslvpn} from '../dashboard-insights-sslvpn/dashboard-insights-sslvpn';
-import {DashboardInsightsAvx} from '../dashboard-insights-avx/dashboard-insights-avx';
-import {TabContainer, TabDefinition} from '../../common/tab-container/tab-container';
+import { Component, DestroyRef, inject, OnInit } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { DashboardInsightsApv } from '../dashboard-insights-apv/dashboard-insights-apv';
+import { DashboardInsightsSslvpn } from '../dashboard-insights-sslvpn/dashboard-insights-sslvpn';
+import { DashboardInsightsAvx } from '../dashboard-insights-avx/dashboard-insights-avx';
+import { DeviceService } from '../../../services/device-service';
+import { NotificationService } from '../../../services/notification';
+import { take } from 'rxjs/operators';
+import { AvxService } from '../../../services/avx-service';
+import { forkJoin } from 'rxjs';
 
 @Component({
   selector: 'app-dashboard-device-insights',
-  imports: [SharedModule, TabContainer],
+  imports: [
+    SharedModule,
+    DashboardInsightsApv,
+    DashboardInsightsSslvpn,
+    DashboardInsightsAvx
+  ],
   templateUrl: './dashboard-device-insights.html',
   styleUrl: './dashboard-device-insights.scss'
 })
-export class DashboardDeviceInsights {
+export class DashboardDeviceInsights implements OnInit {
+  hasAvx: boolean = false;
+  hasApv: boolean = false;
+  hasSslVpn: boolean = false;
+  isLoading: boolean = true;
 
-  tabDefinitions: TabDefinition[] = [
-    {label: 'Devices', component: DashboardInsightsDevices, paramName: 'devices'},
-    {label: 'APV', component: DashboardInsightsApv, paramName: 'apv'},
-    // { label: 'ASF', component: /* ASF Component */, paramName: 'asf' }, // Easily uncommented
-    {label: 'SSL VPN', component: DashboardInsightsSslvpn, paramName: 'ssl-vpn'},
-    {label: 'AVX', component: DashboardInsightsAvx, paramName: 'avx'},
-  ];
+  private destroyRef = inject(DestroyRef);
+
+  constructor(
+    private _device: DeviceService,
+    private _avx: AvxService,
+    private _notification: NotificationService
+  ) {
+  }
+
+  ngOnInit(): void {
+    setTimeout(() => {
+      this.checkDeviceTypes();
+    });
+  }
+
+  checkDeviceTypes(): void {
+    this.isLoading = true;
+    forkJoin({
+      deviceGroups: this._device.getDeviceGroups().pipe(take(1)),
+      avxDevices: this._avx.getAVXDevices().pipe(take(1))
+    }).subscribe({
+      next: (results: any) => {
+        // Check AVX Devices
+        const avxDevices = results.avxDevices || [];
+        this.hasAvx = avxDevices.length > 0;
+
+        // Check APV/SSLVPN Devices
+        const devices = results.deviceGroups?.devices || [];
+        // Check for APV types (APV, AG, vAG, vxAG)
+        this.hasApv = devices.some((d: any) => {
+          const type = d.type?.toUpperCase();
+          return ['APV', 'AG', 'VAG', 'VXAG'].includes(type);
+        });
+
+        this.hasSslVpn = this.hasApv; // Assuming SSLVPN is a feature of APV devices for now.
+
+        this.isLoading = false;
+      },
+      error: (error: any) => {
+        console.error('Error fetching device status:', error);
+        this._notification.showError('Failed to fetch device status.');
+        this.isLoading = false;
+      }
+    });
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.html	(working copy)
@@ -1,153 +1,141 @@
-<mat-card class="page-card-1" appearance="filled">
+<mat-card class="page-card-1" appearance="filled" *ngIf="virtualServiceMetrics.length > 0">
   <mat-card-header>
     <mat-card-title>SLB - Virtual Services</mat-card-title>
   </mat-card-header>
   <mat-card-content>
-    <mat-grid-list cols="3" rowHeight="100px">
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Hits - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="vSHitsChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Open Connections - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="vSConnectionsChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Throughput - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="vSThroughputChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-    </mat-grid-list>
+    <div class="dashboard-grid">
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Hits - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="vSHitsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Open Connections - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="vSConnectionsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Throughput - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="vSThroughputChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+    </div>
   </mat-card-content>
 </mat-card>
-<mat-card class="page-card-1" appearance="filled">
+<mat-card class="page-card-1" appearance="filled" *ngIf="realServiceMetrics.length > 0">
   <mat-card-header>
     <mat-card-title>SLB - Real Services</mat-card-title>
   </mat-card-header>
   <mat-card-content>
-    <mat-grid-list cols="3" rowHeight="100px">
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Hits - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="rSHitsChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Open Connections - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="rSConnectionsChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Throughput - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="rSThroughputChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-    </mat-grid-list>
+    <div class="dashboard-grid">
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Hits - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="rSHitsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Open Connections - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="rSConnectionsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Throughput - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="rSThroughputChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+    </div>
   </mat-card-content>
 </mat-card>
-<mat-card class="page-card-1" appearance="filled">
+<mat-card class="page-card-1" appearance="filled" *ngIf="llbMetrics.length > 0">
   <mat-card-header>
     <mat-card-title>LLB</mat-card-title>
   </mat-card-header>
   <mat-card-content>
-    <mat-grid-list cols="3" rowHeight="100px">
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Hits - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="lLBHitsChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Open Connections - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="lLBConnectionsChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-      <mat-grid-tile colspan="1" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Throughput - Top 5</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="lLBThroughputChartOption" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-    </mat-grid-list>
+    <div class="dashboard-grid">
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Hits - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="lLBHitsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Open Connections - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="lLBConnectionsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Throughput - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="lLBThroughputChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+    </div>
   </mat-card-content>
-</mat-card>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.scss	(working copy)
@@ -1,26 +1,38 @@
 /* dashboard-metric-card.component.css */
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 12px;
+  padding: 12px;
+  height: 100%;
+  box-sizing: border-box;
+}
+
 .dashboard-card {
   width: 100%;
   height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+  border-radius: 12px;
+  background-color: #fff;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+  border: none;
+  display: flex;
+  flex-direction: column;
 }
 
 .card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+  padding: 16px !important;
   display: flex;
   flex-direction: column;
   height: 100%;
   width: 100%;
+  box-sizing: border-box;
 }
 
 .card-header-row {
   display: flex;
   align-items: center;
   gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  margin-bottom: 16px;
 }
 
 .metric-icon {
@@ -28,9 +40,9 @@
 }
 
 .card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
+  font-size: 1.1rem;
+  font-weight: 600;
+  color: #333;
   margin: 0;
   display: flex;
   justify-content: space-between;
@@ -88,13 +100,15 @@
   height: 100%;
   width: 100%;
   flex-grow: 1;
+  min-height: 250px;
+  /* Ensure chart has height */
 }
 
 .chart-container {
   width: 100%;
   height: 100%;
-  max-width: none; /* Remove any max-width constraints */
-  max-height: none; /* Remove any max-height constraints */
+  max-width: none;
+  max-height: none;
 }
 
 /* Adjustments for multiple charts */
@@ -103,11 +117,6 @@
   height: 100%;
 }
 
-mat-grid-list {
-  height: 100%;
-  width: 100%;
-}
-
 /* The original vertical layout for metrics */
 .metrics-container {
   display: flex;
@@ -205,4 +214,4 @@
       background: var(--table-bg);
     }
   }
-}
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-apv/dashboard-insights-apv.ts	(working copy)
@@ -1,14 +1,14 @@
-import {Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {EChartsOption} from 'echarts';
-import {NotificationService} from '../../../services/notification';
-import {SystemService} from '../../../services/system-service';
-import {startWith, take, tap} from 'rxjs/operators';
-import {DeviceService} from '../../../services/device-service';
-import {ChartOptions} from '../../../services/chart-options';
-import {UtilsService} from '../../../services/utils-service';
-import {interval} from 'rxjs';
-import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
+import { Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { EChartsOption } from 'echarts';
+import { NotificationService } from '../../../services/notification';
+import { SystemService } from '../../../services/system-service';
+import { startWith, take, tap } from 'rxjs/operators';
+import { DeviceService } from '../../../services/device-service';
+import { ChartOptions } from '../../../services/chart-options';
+import { UtilsService } from '../../../services/utils-service';
+import { interval } from 'rxjs';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
 
 @Component({
   selector: 'app-dashboard-insights-apv',
@@ -155,9 +155,151 @@
 
   updateMetricsCharts(metricLabels: any, metrics: any, hitsKey: any, connectionsKey: any, throughputKey: any): void {
     let _data: any = this._utils.formatChartData(metricLabels, metrics);
-    (this as any)[connectionsKey] = this._chartOptions.distributionChartOptions('Connections', _data.connections);
-    (this as any)[hitsKey] = this._chartOptions.distributionChartOptions('Hits', _data.connections);
-    const {names, inbound, outbound} = _data?.network || {};
-    (this as any)[throughputKey] = this._chartOptions.throughputChartOptions(names, inbound, outbound);
+
+    // Sort and slice for Top 5
+    const sortByValueDesc = (a: any, b: any) => b.value - a.value;
+
+    const sortedConnections = (_data.connections || []).sort(sortByValueDesc).slice(0, 5);
+    (this as any)[connectionsKey] = this.getHorizontalBarChartOptions('Connections', sortedConnections, '#00c698');
+
+    const sortedHits = (_data.hits || []).sort(sortByValueDesc).slice(0, 5);
+    (this as any)[hitsKey] = this.getHorizontalBarChartOptions('Hits', sortedHits, '#3f51b5');
+
+    const { names, inbound, outbound } = _data?.network || {};
+    let networkData = this.prepareNetworkData(names, inbound, outbound);
+    (this as any)[throughputKey] = this.getHorizontalThroughputChartOptions(networkData);
   }
+
+  private prepareNetworkData(names: any[], inbound: any[], outbound: any[]): any[] {
+    let networkData = [];
+    if (names && inbound && outbound) {
+      for (let i = 0; i < names.length; i++) {
+        networkData.push({
+          name: names[i],
+          inbound: inbound[i],
+          outbound: outbound[i],
+          total: inbound[i] + outbound[i]
+        });
+      }
+    }
+    // Sort by total throughput and take top 5
+    networkData.sort((a, b) => b.total - a.total);
+    return networkData.slice(0, 5);
+  }
+
+  getHorizontalBarChartOptions(label: string, metrics: any[], color: string): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        }
+      },
+      grid: {
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        axisLabel: {
+          formatter: '{value}'
+        }
+      },
+      yAxis: {
+        type: 'category',
+        data: metrics.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: label,
+          type: 'bar',
+          data: metrics.map(item => item.value),
+          itemStyle: {
+            color: color,
+            borderRadius: [0, 4, 4, 0]
+          },
+          label: {
+            show: true,
+            position: 'right',
+            formatter: '{c}'
+          },
+          barWidth: '60%'
+        }
+      ]
+    };
+  }
+
+  getHorizontalThroughputChartOptions(data: any[]): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        },
+        formatter: (params: any) => {
+          let tooltipContent = `${params[0].name}<br/>`;
+          params.forEach((param: any) => {
+            const valueInMbps = param.value.toFixed(2);
+            tooltipContent += `${param.marker} ${param.seriesName}: ${valueInMbps} Mbps<br/>`;
+          });
+          return tooltipContent;
+        }
+      },
+      legend: {
+        data: ['Inbound', 'Outbound'],
+        bottom: 0
+      },
+      grid: {
+        left: '3%',
+        right: '15%',
+        bottom: '10%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        name: 'Mbps',
+        nameLocation: 'end',
+        nameGap: 20
+      },
+      yAxis: {
+        type: 'category',
+        data: data.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: 'Inbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.inbound),
+          itemStyle: {
+            color: '#4caf50'
+          }
+        },
+        {
+          name: 'Outbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.outbound),
+          itemStyle: {
+            color: '#2196f3',
+            borderRadius: [0, 4, 4, 0]
+          }
+        }
+      ]
+    };
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.html	(working copy)
@@ -1,59 +1,61 @@
-<mat-grid-list cols="4" rowHeight="100px">
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">CPU Usage - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-                    <div echarts [options]="cpuChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Memory Usage - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="memoryChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Disk Usage - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="diskChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Connection Status ( {{ deviceStats?.total?.connected }}
-              /{{ deviceStats?.total?.connected + deviceStats?.total?.disconnected }})</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="connectionChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+<mat-card class="page-card-1" appearance="filled">
+  <mat-card-header>
+    <mat-card-title>AVX</mat-card-title>
+  </mat-card-header>
+  <mat-card-content>
+    <div class="dashboard-grid">
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">CPU Usage - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="cpuChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Memory Usage - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="memoryChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Disk Usage - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="diskChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Connection Status ( {{ deviceStats?.total?.connected }}
+                /{{ deviceStats?.total?.connected + deviceStats?.total?.disconnected }})</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="connectionChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.scss	(working copy)
@@ -1,26 +1,38 @@
 /* dashboard-metric-card.component.css */
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: repeat(4, 1fr);
+  gap: 12px;
+  padding: 12px;
+  height: 100%;
+  box-sizing: border-box;
+}
+
 .dashboard-card {
   width: 100%;
   height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+  border-radius: 12px;
+  background-color: #fff;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+  border: none;
+  display: flex;
+  flex-direction: column;
 }
 
 .card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+  padding: 16px !important;
   display: flex;
   flex-direction: column;
   height: 100%;
   width: 100%;
+  box-sizing: border-box;
 }
 
 .card-header-row {
   display: flex;
   align-items: center;
   gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  margin-bottom: 16px;
 }
 
 .metric-icon {
@@ -28,9 +40,9 @@
 }
 
 .card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
+  font-size: 1.1rem;
+  font-weight: 600;
+  color: #333;
   margin: 0;
   display: flex;
   justify-content: space-between;
@@ -88,13 +100,15 @@
   height: 100%;
   width: 100%;
   flex-grow: 1;
+  min-height: 250px;
+  /* Ensure chart has height */
 }
 
 .chart-container {
   width: 100%;
   height: 100%;
-  max-width: none; /* Remove any max-width constraints */
-  max-height: none; /* Remove any max-height constraints */
+  max-width: none;
+  max-height: none;
 }
 
 /* Adjustments for multiple charts */
@@ -103,11 +117,6 @@
   height: 100%;
 }
 
-mat-grid-list {
-  height: 100%;
-  width: 100%;
-}
-
 /* The original vertical layout for metrics */
 .metrics-container {
   display: flex;
@@ -154,3 +163,25 @@
   text-transform: uppercase;
   margin-top: 5px;
 }
+
+.page-card-1 {
+  width: 100%;
+  border-radius: 0;
+  background-color: inherit;
+  font-size: 14px !important;
+
+  mat-card-header {
+    color: #1170cf;
+  }
+}
+
+mat-card-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 4px 10px;
+}
+
+mat-card-title {
+  font-size: medium;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-avx/dashboard-insights-avx.ts	(working copy)
@@ -1,13 +1,13 @@
-import {Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {EChartsOption} from 'echarts';
-import {AvxService} from '../../../services/avx-service';
-import {NotificationService} from '../../../services/notification';
-import {startWith, take, tap} from 'rxjs/operators';
-import {UtilsService} from '../../../services/utils-service';
-import {ChartOptions} from '../../../services/chart-options';
-import {interval} from 'rxjs';
-import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
+import { Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { EChartsOption } from 'echarts';
+import { AvxService } from '../../../services/avx-service';
+import { NotificationService } from '../../../services/notification';
+import { startWith, take, tap } from 'rxjs/operators';
+import { UtilsService } from '../../../services/utils-service';
+import { ChartOptions } from '../../../services/chart-options';
+import { interval } from 'rxjs';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
 
 interface DeviceMetric {
   name: string;
@@ -74,9 +74,9 @@
         this.avxDevices.forEach((_device: any) => {
           const name = _device?.name;
           if (name) {
-            metrics.cpu.push({name, value: _device?.cpu_usage});
-            metrics.memory.push({name, value: _device?.memory_usage});
-            metrics.disk.push({name, value: _device?.disk_usage});
+            metrics.cpu.push({ name, value: _device?.cpu_usage });
+            metrics.memory.push({ name, value: _device?.memory_usage });
+            metrics.disk.push({ name, value: _device?.disk_usage });
           }
         })
         const sortByValueDesc = (a: DeviceMetric, b: DeviceMetric) => b.value - a.value;
@@ -84,14 +84,14 @@
         this.deviceStats = this._utils.transformTotalConnectedDevicesMetrics(result);
         this.deviceConnectionStats = this._utils.transformConnectedDevicesMetrics(this.deviceStats.types.entries());
 
-        const sortedCpuMetrics = metrics.cpu.sort(sortByValueDesc);
-        const sortedMemoryMetrics = metrics.memory.sort(sortByValueDesc);
-        const sortedDiskMetrics = metrics.disk.sort(sortByValueDesc);
+        const sortedCpuMetrics = metrics.cpu.sort(sortByValueDesc).slice(0, 5);
+        const sortedMemoryMetrics = metrics.memory.sort(sortByValueDesc).slice(0, 5);
+        const sortedDiskMetrics = metrics.disk.sort(sortByValueDesc).slice(0, 5);
 
         this.connectionChartOption = this._chartOptions.connectedDevicesDoughnutChartOptions(this.deviceStats?.total, true);
-        this.cpuChartOption = this._chartOptions.lineChartOptions('CPU %', sortedCpuMetrics);
-        this.memoryChartOption = this._chartOptions.lineChartOptions('Memory %', sortedMemoryMetrics);
-        this.diskChartOption = this._chartOptions.lineChartOptions('Disk %', sortedDiskMetrics);
+        this.cpuChartOption = this.getHorizontalBarChartOptions('CPU %', sortedCpuMetrics, '#3f51b5');
+        this.memoryChartOption = this.getHorizontalBarChartOptions('Memory %', sortedMemoryMetrics, '#00c698');
+        this.diskChartOption = this.getHorizontalBarChartOptions('Disk %', sortedDiskMetrics, '#ff9800');
       },
       error: error => {
         this._notification.showError(`Error: ${error?.message}`);
@@ -100,6 +100,57 @@
     });
   }
 
+  getHorizontalBarChartOptions(label: string, metrics: DeviceMetric[], color: string): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        }
+      },
+      grid: {
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        max: 100,
+        axisLabel: {
+          formatter: '{value}%'
+        }
+      },
+      yAxis: {
+        type: 'category',
+        data: metrics.map(item => item.name),
+        inverse: true, // Show top value at the top
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: label,
+          type: 'bar',
+          data: metrics.map(item => item.value),
+          itemStyle: {
+            color: color,
+            borderRadius: [0, 4, 4, 0]
+          },
+          label: {
+            show: true,
+            position: 'right',
+            formatter: '{c}%'
+          },
+          barWidth: '60%'
+        }
+      ]
+    };
+  }
+
   ngOnChanges(changes: SimpleChanges): void {
     if (changes['cpuUsagePercentage']) {
     }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.html	(working copy)
@@ -1,59 +1,54 @@
-<mat-grid-list cols="4" rowHeight="100px">
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">CPU Usage - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="devicesCPUChartOption1" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Memory Usage - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="devicesMemoryChartOption1" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Throughput - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="devicesThroughputChartOption1" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Connection Status ({{ deviceStats?.total?.connected }}
-              /{{ deviceStats?.total?.connected + deviceStats?.total?.disconnected }})</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="connectionChartOption1" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+<div class="dashboard-grid">
+  <mat-card class="dashboard-card" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">CPU Usage - Top 5</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container">
+        <div echarts [options]="devicesCPUChartOption1" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Memory Usage - Top 5</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container">
+        <div echarts [options]="devicesMemoryChartOption1" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Throughput - Top 5</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container">
+        <div echarts [options]="devicesThroughputChartOption1" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Connection Status ({{ deviceStats?.total?.connected }}
+            /{{ deviceStats?.total?.connected + deviceStats?.total?.disconnected }})</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container">
+        <div echarts [options]="connectionChartOption1" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.scss	(working copy)
@@ -1,26 +1,38 @@
 /* dashboard-metric-card.component.css */
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: repeat(4, 1fr);
+  gap: 24px;
+  padding: 24px;
+  height: 100%;
+  box-sizing: border-box;
+}
+
 .dashboard-card {
   width: 100%;
   height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+  border-radius: 12px;
+  background-color: #fff;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+  border: none;
+  display: flex;
+  flex-direction: column;
 }
 
 .card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+  padding: 16px !important;
   display: flex;
   flex-direction: column;
   height: 100%;
   width: 100%;
+  box-sizing: border-box;
 }
 
 .card-header-row {
   display: flex;
   align-items: center;
   gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  margin-bottom: 16px;
 }
 
 .metric-icon {
@@ -28,9 +40,9 @@
 }
 
 .card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
+  font-size: 1.1rem;
+  font-weight: 600;
+  color: #333;
   margin: 0;
   display: flex;
   justify-content: space-between;
@@ -88,13 +100,15 @@
   height: 100%;
   width: 100%;
   flex-grow: 1;
+  min-height: 250px;
+  /* Ensure chart has height */
 }
 
 .chart-container {
   width: 100%;
   height: 100%;
-  max-width: none; /* Remove any max-width constraints */
-  max-height: none; /* Remove any max-height constraints */
+  max-width: none;
+  max-height: none;
 }
 
 /* Adjustments for multiple charts */
@@ -103,11 +117,6 @@
   height: 100%;
 }
 
-mat-grid-list {
-  height: 100%;
-  width: 100%;
-}
-
 /* The original vertical layout for metrics */
 .metrics-container {
   display: flex;
@@ -153,4 +162,4 @@
   color: #777;
   text-transform: uppercase;
   margin-top: 5px;
-}
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-devices/dashboard-insights-devices.ts	(working copy)
@@ -1,14 +1,14 @@
-import {Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges} from '@angular/core';
-import {EChartsOption} from 'echarts';
-import {SharedModule} from '../../../shared/shared-module';
-import {startWith, take, tap} from 'rxjs/operators';
-import {DeviceService} from '../../../services/device-service';
-import {SystemService} from '../../../services/system-service';
-import {NotificationService} from '../../../services/notification';
-import {UtilsService} from '../../../services/utils-service';
-import {ChartOptions} from '../../../services/chart-options';
-import {interval} from 'rxjs';
-import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
+import { Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges } from '@angular/core';
+import { EChartsOption } from 'echarts';
+import { SharedModule } from '../../../shared/shared-module';
+import { startWith, take, tap } from 'rxjs/operators';
+import { DeviceService } from '../../../services/device-service';
+import { SystemService } from '../../../services/system-service';
+import { NotificationService } from '../../../services/notification';
+import { UtilsService } from '../../../services/utils-service';
+import { ChartOptions } from '../../../services/chart-options';
+import { interval } from 'rxjs';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
 
 @Component({
   selector: 'app-dashboard-insights-devices',
@@ -99,9 +99,150 @@
 
   private updateDeviceMetricsCharts(): void {
     let _data: any = this._utils.formatChartData(['cpu', 'memory', 'device_network'], this.connectedDevicesMetrics)
-    this.devicesCPUChartOption1 = this._chartOptions.lineChartOptions('CPU %', _data?.cpu);
-    this.devicesMemoryChartOption1 = this._chartOptions.lineChartOptions('Memory %', _data?.memory);
-    let {names, inbound, outbound} = _data?.network || {};
-    this.devicesThroughputChartOption1 = this._chartOptions.throughputChartOptions(names, inbound, outbound)
+
+    // Sort and slice for Top 5
+    const sortByValueDesc = (a: any, b: any) => b.value - a.value;
+    const sortedCpu = (_data?.cpu || []).sort(sortByValueDesc).slice(0, 5);
+    const sortedMemory = (_data?.memory || []).sort(sortByValueDesc).slice(0, 5);
+
+    this.devicesCPUChartOption1 = this.getHorizontalBarChartOptions('CPU %', sortedCpu, '#3f51b5');
+    this.devicesMemoryChartOption1 = this.getHorizontalBarChartOptions('Memory %', sortedMemory, '#00c698');
+
+    // Throughput
+    let { names, inbound, outbound } = _data?.network || {};
+    // We need to combine names, inbound, outbound into an array of objects to sort them
+    let networkData = [];
+    if (names && inbound && outbound) {
+      for (let i = 0; i < names.length; i++) {
+        networkData.push({
+          name: names[i],
+          inbound: inbound[i],
+          outbound: outbound[i],
+          total: inbound[i] + outbound[i]
+        });
+      }
+    }
+    // Sort by total throughput
+    networkData.sort((a, b) => b.total - a.total);
+    const top5Network = networkData.slice(0, 5);
+
+    this.devicesThroughputChartOption1 = this.getHorizontalThroughputChartOptions(top5Network);
   }
+
+  getHorizontalBarChartOptions(label: string, metrics: any[], color: string): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        }
+      },
+      grid: {
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        max: 100,
+        axisLabel: {
+          formatter: '{value}%'
+        }
+      },
+      yAxis: {
+        type: 'category',
+        data: metrics.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: label,
+          type: 'bar',
+          data: metrics.map(item => item.value),
+          itemStyle: {
+            color: color,
+            borderRadius: [0, 4, 4, 0]
+          },
+          label: {
+            show: true,
+            position: 'right',
+            formatter: '{c}%'
+          },
+          barWidth: '60%'
+        }
+      ]
+    };
+  }
+
+  getHorizontalThroughputChartOptions(data: any[]): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        },
+        formatter: (params: any) => {
+          let tooltipContent = `${params[0].name}<br/>`;
+          params.forEach((param: any) => {
+            const valueInMbps = param.value.toFixed(2);
+            tooltipContent += `${param.marker} ${param.seriesName}: ${valueInMbps} Mbps<br/>`;
+          });
+          return tooltipContent;
+        }
+      },
+      legend: {
+        data: ['Inbound', 'Outbound'],
+        bottom: 0
+      },
+      grid: {
+        left: '3%',
+        right: '15%',
+        bottom: '10%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        name: 'Mbps',
+        nameLocation: 'end',
+        nameGap: 20
+      },
+      yAxis: {
+        type: 'category',
+        data: data.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: 'Inbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.inbound),
+          itemStyle: {
+            color: '#4caf50'
+          }
+        },
+        {
+          name: 'Outbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.outbound),
+          itemStyle: {
+            color: '#2196f3',
+            borderRadius: [0, 4, 4, 0]
+          }
+        }
+      ]
+    };
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.html	(working copy)
@@ -1,44 +1,47 @@
-<mat-grid-list cols="3" rowHeight="100px">
-  <mat-grid-tile colspan="1" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Sessions - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="activeSessionsChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Client Throughput - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="clientThroughputChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Server Throughput - Top 5</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="serverThroughputChartOption" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+<mat-card class="page-card-1" appearance="filled">
+  <mat-card-header>
+    <mat-card-title>SSL VPN</mat-card-title>
+  </mat-card-header>
+  <mat-card-content>
+    <div class="dashboard-grid">
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Sessions - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="activeSessionsChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Client Throughput - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="clientThroughputChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Server Throughput - Top 5</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="serverThroughputChartOption" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.scss	(working copy)
@@ -1,26 +1,38 @@
 /* dashboard-metric-card.component.css */
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 12px;
+  padding: 12px;
+  height: 100%;
+  box-sizing: border-box;
+}
+
 .dashboard-card {
   width: 100%;
   height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+  border-radius: 12px;
+  background-color: #fff;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+  border: none;
+  display: flex;
+  flex-direction: column;
 }
 
 .card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+  padding: 16px !important;
   display: flex;
   flex-direction: column;
   height: 100%;
   width: 100%;
+  box-sizing: border-box;
 }
 
 .card-header-row {
   display: flex;
   align-items: center;
   gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  margin-bottom: 16px;
 }
 
 .metric-icon {
@@ -28,9 +40,9 @@
 }
 
 .card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
+  font-size: 1.1rem;
+  font-weight: 600;
+  color: #333;
   margin: 0;
   display: flex;
   justify-content: space-between;
@@ -88,13 +100,15 @@
   height: 100%;
   width: 100%;
   flex-grow: 1;
+  min-height: 250px;
+  /* Ensure chart has height */
 }
 
 .chart-container {
   width: 100%;
   height: 100%;
-  max-width: none; /* Remove any max-width constraints */
-  max-height: none; /* Remove any max-height constraints */
+  max-width: none;
+  max-height: none;
 }
 
 /* Adjustments for multiple charts */
@@ -103,11 +117,6 @@
   height: 100%;
 }
 
-mat-grid-list {
-  height: 100%;
-  width: 100%;
-}
-
 /* The original vertical layout for metrics */
 .metrics-container {
   display: flex;
@@ -205,4 +214,4 @@
       background: var(--table-bg);
     }
   }
-}
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-insights-sslvpn/dashboard-insights-sslvpn.ts	(working copy)
@@ -1,14 +1,14 @@
-import {Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {EChartsOption} from 'echarts';
-import {NotificationService} from '../../../services/notification';
-import {SystemService} from '../../../services/system-service';
-import {DeviceService} from '../../../services/device-service';
-import {startWith, take, tap} from 'rxjs/operators';
-import {ChartOptions} from '../../../services/chart-options';
-import {UtilsService} from '../../../services/utils-service';
-import {interval} from 'rxjs';
-import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
+import { Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { EChartsOption } from 'echarts';
+import { NotificationService } from '../../../services/notification';
+import { SystemService } from '../../../services/system-service';
+import { DeviceService } from '../../../services/device-service';
+import { startWith, take, tap } from 'rxjs/operators';
+import { ChartOptions } from '../../../services/chart-options';
+import { UtilsService } from '../../../services/utils-service';
+import { interval } from 'rxjs';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
 
 @Component({
   selector: 'app-dashboard-insights-sslvpn',
@@ -91,10 +91,153 @@
 
   private updateSSLVPNMetricsTables(): void {
     let _data: any = this._utils.formatChartData(['active_sessions', 'client_network', 'server_network'], this.sslVPNMetrics)
-    this.activeSessionsChartOption = this._chartOptions.distributionChartOptions('Sessions', _data?.active_sessions);
-    let {names, inbound, outbound} = _data?.client_network || {};
-    this.clientThroughputChartOption = this._chartOptions.throughputChartOptions(names, inbound, outbound)
-    let {names: names1, inbound: inbound1, outbound: outbound1} = _data?.server_network || {};
-    this.serverThroughputChartOption = this._chartOptions.throughputChartOptions(names1, inbound1, outbound1)
+
+    // Active Sessions - Sort and Top 5
+    const sortByValueDesc = (a: any, b: any) => b.value - a.value;
+    const sortedSessions = (_data?.active_sessions || []).sort(sortByValueDesc).slice(0, 5);
+    this.activeSessionsChartOption = this.getHorizontalBarChartOptions('Sessions', sortedSessions, '#9c27b0');
+
+    // Client Throughput
+    let { names, inbound, outbound } = _data?.client_network || {};
+    let clientNetworkData = this.prepareNetworkData(names, inbound, outbound);
+    this.clientThroughputChartOption = this.getHorizontalThroughputChartOptions(clientNetworkData);
+
+    // Server Throughput
+    let { names: names1, inbound: inbound1, outbound: outbound1 } = _data?.server_network || {};
+    let serverNetworkData = this.prepareNetworkData(names1, inbound1, outbound1);
+    this.serverThroughputChartOption = this.getHorizontalThroughputChartOptions(serverNetworkData);
   }
+
+  private prepareNetworkData(names: any[], inbound: any[], outbound: any[]): any[] {
+    let networkData = [];
+    if (names && inbound && outbound) {
+      for (let i = 0; i < names.length; i++) {
+        networkData.push({
+          name: names[i],
+          inbound: inbound[i],
+          outbound: outbound[i],
+          total: inbound[i] + outbound[i]
+        });
+      }
+    }
+    // Sort by total throughput and take top 5
+    networkData.sort((a, b) => b.total - a.total);
+    return networkData.slice(0, 5);
+  }
+
+  getHorizontalBarChartOptions(label: string, metrics: any[], color: string): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        }
+      },
+      grid: {
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        axisLabel: {
+          formatter: '{value}'
+        }
+      },
+      yAxis: {
+        type: 'category',
+        data: metrics.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: label,
+          type: 'bar',
+          data: metrics.map(item => item.value),
+          itemStyle: {
+            color: color,
+            borderRadius: [0, 4, 4, 0]
+          },
+          label: {
+            show: true,
+            position: 'right',
+            formatter: '{c}'
+          },
+          barWidth: '60%'
+        }
+      ]
+    };
+  }
+
+  getHorizontalThroughputChartOptions(data: any[]): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        },
+        formatter: (params: any) => {
+          let tooltipContent = `${params[0].name}<br/>`;
+          params.forEach((param: any) => {
+            const valueInMbps = param.value.toFixed(2);
+            tooltipContent += `${param.marker} ${param.seriesName}: ${valueInMbps} Mbps<br/>`;
+          });
+          return tooltipContent;
+        }
+      },
+      legend: {
+        data: ['Inbound', 'Outbound'],
+        bottom: 0
+      },
+      grid: {
+        left: '3%',
+        right: '15%',
+        bottom: '10%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        name: 'Mbps',
+        nameLocation: 'end',
+        nameGap: 20
+      },
+      yAxis: {
+        type: 'category',
+        data: data.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: 'Inbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.inbound),
+          itemStyle: {
+            color: '#4caf50'
+          }
+        },
+        {
+          name: 'Outbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.outbound),
+          itemStyle: {
+            color: '#2196f3',
+            borderRadius: [0, 4, 4, 0]
+          }
+        }
+      ]
+    };
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.html	(working copy)
@@ -1,130 +1,119 @@
-<mat-grid-list cols="4" rowHeight="100px">
-  <mat-grid-tile colspan="1" rowspan="1">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">Devices</mat-card-title>
+<div class="dashboard-grid">
+  <!-- Top Row: 4 small cards -->
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">Devices</mat-card-title>
+      </div>
+      <div class="metric-value">
+        <span class="online-count">{{ connectedDevices }}</span>
+        <span class="total-count">/{{ devices.length }}</span>
+      </div>
+      @if (devices.length - connectedDevices > 0) {
+      <p class="status-details">{{ devices.length - connectedDevices }} device(s) offline</p>
+      } @else {
+      <p class="success-icon align-center">All devices are online.</p>
+      }
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">Services</mat-card-title>
+      </div>
+      <div class="metric-value">
+        <span class="online-count">{{virtualServices.length}}</span>
+        <span class="total-count"></span>
+      </div>
+      <p class="status-details active">Active Services</p>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">Events</mat-card-title>
+      </div>
+      <div class="metric-value">
+        <span class="online-count">-1</span>
+        <span class="total-count"></span>
+      </div>
+      <p class="status-details active">(last 7 days)</p>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">Alerts</mat-card-title>
+      </div>
+      <div class="metric-value">
+        <span class="online-count">-1</span>
+        <span class="total-count"></span>
+      </div>
+      <p class="status-details active">(last 7 days)</p>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Bottom Rows: 4 cards spanning 1 column each -->
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">System Load</span>
+          <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
+            (click)="enlargeSystemLoad()"></fa-icon>
+        </mat-card-title>
+      </div>
+      <div class="main-chart-layout centered-content">
+        <div class="chart-column chart-stack-container vertical-layout">
+          <div echarts [options]="systemLoadChartOption2" class="chart-container full-width-h-50"></div>
+          <div echarts [options]="systemLoadChartOption3" class="chart-container full-width-h-50"></div>
         </div>
-        <div class="metric-value">
-          <span class="online-count">{{ connectedDevices }}</span>
-          <span class="total-count">/{{ devices.length }}</span>
-        </div>
-        @if (devices.length - connectedDevices > 0) {
-          <p class="status-details">{{ devices.length - connectedDevices }} device(s) offline</p>
-        } @else {
-          <p class="success-icon align-center">All devices are online.</p>
-        }
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="1">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">Services</mat-card-title>
-        </div>
-        <div class="metric-value">
-          <span class="online-count">{{virtualServices.length}}</span>
-          <span class="total-count"></span>
-        </div>
-        <p class="status-details active">Active Services</p>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="1">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">Events</mat-card-title>
-        </div>
-        <div class="metric-value">
-          <span class="online-count">-1</span>
-          <span class="total-count"></span>
-        </div>
-        <p class="status-details active">(last 7 days)</p>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="1">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">Alerts</mat-card-title>
-        </div>
-        <div class="metric-value">
-          <span class="online-count">-1</span>
-          <span class="total-count"></span>
-        </div>
-        <p class="status-details active">(last 7 days)</p>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">System Load</span>
-            <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
-                     (click)="enlargeSystemLoad()"></fa-icon>
-          </mat-card-title>
-        </div>
-        <div class="main-chart-layout">
-          <div class="chart-column first-column">
-            <div echarts [options]="systemLoadChartOption1" class="chart-container"></div>
-          </div>
-          <div class="chart-column second-column chart-stack-container">
-            <div echarts [options]="systemLoadChartOption2" class="chart-container"></div>
-            <div echarts [options]="systemLoadChartOption3" class="chart-container"></div>
-          </div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Network Throughput</span>
-            <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
-                     (click)="enlargeSystemThroughput()"></fa-icon>
-          </mat-card-title>
-        </div>
-        <div class="card-body-content">
-          <div class="main-chart-layout">
-            <div class="chart-column first-column-1">
-              <div echarts [options]="networkThroughputChartOption1" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Network Throughput</span>
+          <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
+            (click)="enlargeSystemThroughput()"></fa-icon>
+        </mat-card-title>
+      </div>
+      <div class="card-body-content">
+        <div class="main-chart-layout centered-content">
+          <div class="chart-column chart-stack-container vertical-layout">
+            <div class="metric-item large-metric">
+              <span class="metric-value large-text">{{ networkMetrics?.sent | bytes }}</span>
+              <span class="metric-label">Sent</span>
             </div>
-            <div class="chart-column second-column-1 chart-stack-container">
-              <div class="metric-item">
-                <span class="metric-value">{{ networkMetrics?.sent | bytes }}</span>
-                <span class="metric-label">Sent</span>
-              </div>
-              <div class="metric-item">
-                <span class="metric-value">{{ networkMetrics?.received | bytes }}</span>
-                <span class="metric-label">Received</span>
-              </div>
+            <div class="metric-item large-metric">
+              <span class="metric-value large-text">{{ networkMetrics?.received | bytes }}</span>
+              <span class="metric-label">Received</span>
             </div>
           </div>
         </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Disk Usage</span>
-          </mat-card-title>
-        </div>
-        <div class="main-chart-layout">
-          <div class="chart-column first-column">
-            <div echarts [options]="diskIOChartOption1" class="chart-container"></div>
-          </div>
-          <div class="chart-column second-column chart-stack-container">
-            <div echarts [options]="diskChartOption1" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Disk Usage</span>
+          <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
+            (click)="enlargeSystemDiskUsage()"></fa-icon>
+        </mat-card-title>
+      </div>
+      <div class="main-chart-layout centered-content">
+        <div class="chart-column chart-stack-container vertical-layout">
+          <div echarts [options]="diskChartOption1" class="chart-container full-width-h-50"></div>
+          <div class="metric-details full-width-h-50">
             <div class="metric-item">
               <span class="metric-value">{{ diskMetrics?.used_bytes | bytes }}</span>
               <span class="metric-label">Used</span>
@@ -135,24 +124,77 @@
             </div>
           </div>
         </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="3">
-    <mat-card class="dashboard-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Devices</span>
-            <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
-                     (click)="enlargeSystemDevices()"></fa-icon>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="connectionChartOption1" class="chart-container"></div>
-          <div echarts [options]="connectionChartOption2" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Devices ({{ deviceStats?.total?.connected }}
+            /{{ deviceStats?.total?.connected + deviceStats?.total?.disconnected }})</span>
+          <fa-icon [icon]="['fas', 'expand']" class="fa-1x a-link" matTooltip="Expand"
+            (click)="enlargeSystemDevices()"></fa-icon>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container centered-content">
+        <div echarts [options]="connectionChartOption2" class="chart-container full-width"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Device Metrics Row -->
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">CPU Usage - Top 5 Devices</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container centered-content">
+        <div echarts [options]="devicesCPUChartOption1" class="chart-container full-width"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Memory Usage - Top 5 Devices</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container centered-content">
+        <div echarts [options]="devicesMemoryChartOption1" class="chart-container full-width"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Throughput - Top 5 Devices</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container centered-content">
+        <div echarts [options]="devicesThroughputChartOption1" class="chart-container full-width"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <mat-card class="dashboard-card col-span-1" appearance="outlined">
+    <mat-card-content class="card-content-wrapper">
+      <div class="card-header-row">
+        <mat-card-title class="card-title">
+          <span class="card-title-text">Connection Status ({{ deviceStats?.total?.connected }}
+            /{{ deviceStats?.total?.connected + deviceStats?.total?.disconnected }})</span>
+        </mat-card-title>
+      </div>
+      <div class="chart-flex-container centered-content">
+        <div echarts [options]="connectionChartOption1" class="chart-container full-width"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.scss	(working copy)
@@ -1,25 +1,59 @@
+/* dashboard-metric-card.component.css */
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: repeat(4, 1fr);
+  gap: 16px;
+  padding: 16px;
+  height: 100%;
+  overflow-y: auto;
+  scrollbar-width: none;
+  /* Firefox */
+  -ms-overflow-style: none;
+  /* IE 10+ */
+
+  &::-webkit-scrollbar {
+    display: none;
+    /* Chrome, Safari, Opera */
+  }
+
+  box-sizing: border-box;
+}
+
+.col-span-1 {
+  grid-column: span 1;
+}
+
+.col-span-2 {
+  grid-column: span 2;
+  min-height: 350px;
+  /* Ensure taller cards have height */
+}
+
 .dashboard-card {
   width: 100%;
   height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+  border-radius: 12px;
+  background-color: #fff;
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
+  border: none;
+  display: flex;
+  flex-direction: column;
 }
 
 .card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+  padding: 16px !important;
   display: flex;
   flex-direction: column;
   height: 100%;
   width: 100%;
+  box-sizing: border-box;
 }
 
 .card-header-row {
   display: flex;
   align-items: center;
   gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  margin-bottom: 16px;
 }
 
 .metric-icon {
@@ -27,9 +61,9 @@
 }
 
 .card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
+  font-size: 1.1rem;
+  font-weight: 600;
+  color: #333;
   margin: 0;
   display: flex;
   justify-content: space-between;
@@ -87,6 +121,8 @@
   height: 100%;
   width: 100%;
   flex-grow: 1;
+  min-height: 250px;
+  /* Ensure chart has height */
 }
 
 .chart-container {
@@ -102,11 +138,6 @@
   height: 100%;
 }
 
-mat-grid-list {
-  height: 100%;
-  width: 100%;
-}
-
 /* The original vertical layout for metrics */
 .metrics-container {
   display: flex;
@@ -153,22 +184,54 @@
   width: 100%;
 }
 
-.first-column {
-  flex: 0 0 70%;
+.centered-content {
+  justify-content: center;
+  align-items: center;
 }
 
-.second-column {
-  flex: 0 0 30%;
+.horizontal-layout {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-around;
+  align-items: center;
+  width: 100%;
+  gap: 20px;
 }
 
-.first-column-1 {
-  flex: 0 0 82%;
+.vertical-layout {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+  align-items: center;
+  width: 100%;
+  height: 100%;
+  gap: 10px;
 }
 
-.second-column-1 {
-  flex: 0 0 18%;
+.half-width {
+  width: 45%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
 }
 
+.full-width {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.full-width-h-50 {
+  width: 100%;
+  height: 50%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
 .chart-container {
   width: 100%;
   height: 100%;
@@ -177,5 +240,55 @@
 .chart-stack-container {
   display: flex;
   flex-direction: column;
+  /* Default to column, overridden by horizontal-layout */
   gap: 10px;
 }
+
+.horizontal-layout.chart-stack-container {
+  flex-direction: row;
+}
+
+.vertical-layout.chart-stack-container {
+  flex-direction: column;
+}
+
+.large-metric {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+}
+
+.large-text {
+  font-size: 2.5rem;
+  font-weight: 700;
+  color: #3f51b5;
+}
+
+.metric-details {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  gap: 20px;
+}
+
+.metric-item {
+  text-align: center;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+
+.metric-value {
+  font-size: 1.2rem;
+  font-weight: 600;
+  color: #333;
+}
+
+.metric-label {
+  font-size: 0.9rem;
+  color: #777;
+  text-transform: uppercase;
+  margin-top: 5px;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/dashboard-system-insights/dashboard-system-insights.ts	(working copy)
@@ -1,19 +1,19 @@
-import {Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges, ViewEncapsulation} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {EChartsOption} from 'echarts';
-import {MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef} from '@angular/material/dialog';
-import {startWith, take, tap} from 'rxjs/operators';
-import {DeviceService} from '../../../services/device-service';
-import {NotificationService} from '../../../services/notification';
-import {SystemService} from '../../../services/system-service';
-import {BytesPipe} from '../../../pipes/bytes-pipe';
-import {ChartOptions} from '../../../services/chart-options';
-import {UtilsService} from '../../../services/utils-service';
-import {interval} from 'rxjs';
-import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
-import {MatTableDataSource} from '@angular/material/table';
-import {GlobalSerialPipe} from '../../../pipes/global-serial-pipe';
-import {Router} from '@angular/router';
+import { Component, DestroyRef, inject, OnChanges, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { EChartsOption } from 'echarts';
+import { MAT_DIALOG_DATA, MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';
+import { startWith, take, tap } from 'rxjs/operators';
+import { DeviceService } from '../../../services/device-service';
+import { NotificationService } from '../../../services/notification';
+import { SystemService } from '../../../services/system-service';
+import { BytesPipe } from '../../../pipes/bytes-pipe';
+import { ChartOptions } from '../../../services/chart-options';
+import { UtilsService } from '../../../services/utils-service';
+import { interval } from 'rxjs';
+import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
+import { MatTableDataSource } from '@angular/material/table';
+import { GlobalSerialPipe } from '../../../pipes/global-serial-pipe';
+import { Router } from '@angular/router';
 
 
 @Component({
@@ -138,6 +138,7 @@
           this.deviceStats = this._utils.transformTotalConnectedDevicesMetrics(this.devices);
           this.deviceConnectionStats = this._utils.transformConnectedDevicesMetrics(this.deviceStats.types.entries());
           this.connectedDevices = this.devices.filter((device: any) => device?.connection === true).length;
+          this.getConnectedDevicesMetrics();
         }, error: (error: { message: string; }) => {
           console.log(error);
           this._notification.showError(error.message);
@@ -184,9 +185,9 @@
         remaining: 100 - this.currentSystemMetrics?.disk_io?.disk_io_percent,
       }
     }
-    this.systemLoadChartOption2 = this._chartOptions.halfDoughnutChartOptions('CPU', _data?.cpu, ['#008ac5', '#E0E0E0']);
-    this.systemLoadChartOption3 = this._chartOptions.halfDoughnutChartOptions('Memory', _data?.memory, ['#00c698', '#E0E0E0']);
-    this.diskChartOption1 = this._chartOptions.halfDoughnutChartOptions('Disk', _data?.disk, ['#1170cf', '#E0E0E0']);
+    this.systemLoadChartOption2 = this._chartOptions.systemStatusPieChartOptions('CPU', _data?.cpu?.usage, '#3f51b5');
+    this.systemLoadChartOption3 = this._chartOptions.systemStatusPieChartOptions('Memory', _data?.memory?.usage, '#00c698');
+    this.diskChartOption1 = this._chartOptions.systemStatusPieChartOptions('Disk', _data?.disk?.usage, '#ff9800');
     this.connectionChartOption1 = this._chartOptions.connectedDeviceLineChart(this.deviceConnectionStats)
     this.connectionChartOption2 = this._chartOptions.connectedDevicesDoughnutChartOptions(this.deviceStats?.total);
   }
@@ -202,8 +203,179 @@
     this.systemLoadChartOption1 = this._chartOptions.historicalCPUMemoryChartOptions(cpu_data_formatted, memory_data_formatted);
     this.networkThroughputChartOption1 = this._chartOptions.historicalThroughputChartOptions(sent_data_formatted, received_data_formatted)
     this.diskIOChartOption1 = this._chartOptions.historicalDiskIOChartOptions(disk_io_formatted);
+  }
+
+  // Device Metrics Logic
+  devicesCPUChartOption1: EChartsOption = {};
+  devicesMemoryChartOption1: EChartsOption = {};
+  devicesThroughputChartOption1: EChartsOption = {};
+  connectedDevicesMetrics: any = [];
+
+  getConnectedDevicesMetrics() {
+    let payload = {}
+    this._system.getConnectedDevicesMetrics(payload)
+      .pipe(take(1))
+      .subscribe({
+        next: (result: any) => {
+          this.connectedDevicesMetrics = this._device.mapDeviceDetails(this.devices, result);
+          this.updateDeviceMetricsCharts();
+        },
+        error: (error: { message: string; }) => {
+          console.log(error);
+          this._notification.showError(error.message);
+        }
+      });
+  }
+
+  private updateDeviceMetricsCharts(): void {
+    let _data: any = this._utils.formatChartData(['cpu', 'memory', 'device_network'], this.connectedDevicesMetrics)
+
+    // Sort and slice for Top 5
+    const sortByValueDesc = (a: any, b: any) => b.value - a.value;
+    const sortedCpu = (_data?.cpu || []).sort(sortByValueDesc).slice(0, 5);
+    const sortedMemory = (_data?.memory || []).sort(sortByValueDesc).slice(0, 5);
+
+    this.devicesCPUChartOption1 = this.getHorizontalBarChartOptions('CPU %', sortedCpu, '#3f51b5');
+    this.devicesMemoryChartOption1 = this.getHorizontalBarChartOptions('Memory %', sortedMemory, '#00c698');
+
+    // Throughput
+    let { names, inbound, outbound } = _data?.network || {};
+    // We need to combine names, inbound, outbound into an array of objects to sort them
+    let networkData = [];
+    if (names && inbound && outbound) {
+      for (let i = 0; i < names.length; i++) {
+        networkData.push({
+          name: names[i],
+          inbound: inbound[i],
+          outbound: outbound[i],
+          total: inbound[i] + outbound[i]
+        });
+      }
+    }
+    // Sort by total throughput
+    networkData.sort((a, b) => b.total - a.total);
+    const top5Network = networkData.slice(0, 5);
+
+    this.devicesThroughputChartOption1 = this.getHorizontalThroughputChartOptions(top5Network);
   }
 
+  getHorizontalBarChartOptions(label: string, metrics: any[], color: string): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        }
+      },
+      grid: {
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        max: 100,
+        axisLabel: {
+          formatter: '{value}%'
+        }
+      },
+      yAxis: {
+        type: 'category',
+        data: metrics.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: label,
+          type: 'bar',
+          data: metrics.map(item => item.value),
+          itemStyle: {
+            color: color,
+            borderRadius: [0, 4, 4, 0]
+          },
+          label: {
+            show: true,
+            position: 'right',
+            formatter: '{c}%'
+          },
+          barWidth: '60%'
+        }
+      ]
+    };
+  }
+
+  getHorizontalThroughputChartOptions(data: any[]): EChartsOption {
+    return {
+      tooltip: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        },
+        formatter: (params: any) => {
+          let tooltipContent = `${params[0].name}<br/>`;
+          params.forEach((param: any) => {
+            const valueInMbps = param.value.toFixed(2);
+            tooltipContent += `${param.marker} ${param.seriesName}: ${valueInMbps} Mbps<br/>`;
+          });
+          return tooltipContent;
+        }
+      },
+      legend: {
+        data: ['Inbound', 'Outbound'],
+        bottom: 0
+      },
+      grid: {
+        left: '3%',
+        right: '15%',
+        bottom: '10%',
+        containLabel: true
+      },
+      xAxis: {
+        type: 'value',
+        boundaryGap: [0, 0.01],
+        name: 'Mbps',
+        nameLocation: 'end',
+        nameGap: 20
+      },
+      yAxis: {
+        type: 'category',
+        data: data.map(item => item.name),
+        inverse: true,
+        axisLabel: {
+          width: 80,
+          overflow: 'truncate'
+        }
+      },
+      series: [
+        {
+          name: 'Inbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.inbound),
+          itemStyle: {
+            color: '#4caf50'
+          }
+        },
+        {
+          name: 'Outbound',
+          type: 'bar',
+          stack: 'total',
+          data: data.map(item => item.outbound),
+          itemStyle: {
+            color: '#2196f3',
+            borderRadius: [0, 4, 4, 0]
+          }
+        }
+      ]
+    };
+  }
+
   dialog = inject(MatDialog);
   dialogConfig = new MatDialogConfig();
 
@@ -217,6 +389,13 @@
   enlargeSystemThroughput() {
     this.dialogConfig.width = '50%';
     const dialogRef = this.dialog.open(EnlargeSystemThroughput, this.dialogConfig);
+    dialogRef.afterClosed().subscribe((isAdded: boolean) => {
+    })
+  }
+
+  enlargeSystemDiskUsage() {
+    this.dialogConfig.width = '50%';
+    const dialogRef = this.dialog.open(EnlargeSystemDiskUsage, this.dialogConfig);
     dialogRef.afterClosed().subscribe((isAdded: boolean) => {
     })
   }
@@ -294,7 +473,7 @@
 
   navigateToDevice(device: any) {
     this._router.navigate(['/inventory/devices', device.name], {
-      state: {deviceData: device, groups: this.groups}
+      state: { deviceData: device, groups: this.groups }
     });
     this.dialogRef.close();
   }
@@ -432,3 +611,65 @@
     this.dialogRef.close();
   }
 }
+
+@Component({
+  selector: 'enlarge-system-disk-usage',
+  templateUrl: './enlarge-system-disk-usage.html',
+  imports: [SharedModule]
+})
+export class EnlargeSystemDiskUsage implements OnInit {
+
+  chartOption1: EChartsOption = {};
+
+  readonly data = inject(MAT_DIALOG_DATA);
+  readonly dialogRef = inject(MatDialogRef<EnlargeSystemDiskUsage>);
+  private destroyRef = inject(DestroyRef);
+
+  constructor(
+    private _system: SystemService,
+    private _notification: NotificationService,
+    private _chartOptions: ChartOptions,
+    private _utils: UtilsService
+  ) {
+  }
+
+  ngOnInit() {
+    setTimeout(() => {
+      interval(this._utils.AUTO_REFRESH_INTERVAL)
+        .pipe(
+          startWith(0),
+          tap(() => {
+            this.getHistoricalSystemMetrics();
+          }),
+          takeUntilDestroyed(this.destroyRef)
+        )
+        .subscribe();
+    })
+  }
+
+  diskIOMetrics: any = {};
+
+  getHistoricalSystemMetrics() {
+    this._system.getHistoricalSystemMetrics()
+      .pipe(take(1))
+      .subscribe({
+        next: (result: any) => {
+          this.diskIOMetrics = result?.disk_io_history;
+          this.updateChartOptions();
+        },
+        error: (error: { message: string; }) => {
+          console.log(error);
+          this._notification.showError(error.message);
+        }
+      });
+  }
+
+  updateChartOptions() {
+    const disk_io_formatted = this.diskIOMetrics.map((d: any) => [d.time, d.disk_io_percent]);
+    this.chartOption1 = this._chartOptions.historicalDiskIOChartOptions(disk_io_formatted);
+  }
+
+  onCancel() {
+    this.dialogRef.close();
+  }
+}
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-details/device-details.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-details/device-details.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-details/device-details.html	(working copy)
@@ -1,247 +1,203 @@
-<mat-card class="page-card-1" appearance="filled">
-  <mat-card-header>
-    <mat-card-title>
-      <a class="back-to-main-page" (click)="backToManagedDevices()">
-        <fa-icon [icon]="['far', 'circle-left']"></fa-icon> Managed Devices - {{deviceData?.name}}
-      </a>
-    </mat-card-title>
-  </mat-card-header>
-</mat-card>
-<mat-tab-group mat-stretch-tabs="false" mat-align-tabs="start">
-  <mat-tab label="Basic Information">
-    <mat-card class="page-card-1" appearance="filled">
-      <mat-card-header>
-        <mat-card-title>Device Switch</mat-card-title>
-      </mat-card-header>
-      <mat-card-content>
-        <mat-slide-toggle labelPosition="before" [(ngModel)]="isMonitorEnabled"
-                          (change)="onMonitorToggleChange($event)">Enable Monitor
-        </mat-slide-toggle>
-      </mat-card-content>
-    </mat-card>
-    <mat-card class="page-card-1" appearance="filled">
-      <mat-card-header>
-        <mat-card-title>License Information</mat-card-title>
-      </mat-card-header>
-      <mat-card-content>
-        <table mat-table [dataSource]="licenseDataSource" class="mat-elevation-z1">
-          <ng-container matColumnDef="key">
-            <td mat-cell *matCellDef="let element"> {{ element.key }}</td>
-          </ng-container>
-          <ng-container matColumnDef="value">
-            <td mat-cell *matCellDef="let element"> {{ element.value }}</td>
-          </ng-container>
-          <tr mat-row *matRowDef="let row; columns: licenseColumns;"></tr>
-        </table>
-      </mat-card-content>
-    </mat-card>
-    <mat-card class="page-card-1" appearance="filled">
-      <mat-card-header>
-        <mat-card-title>System Information</mat-card-title>
-      </mat-card-header>
-      <mat-card-content>
-        <table mat-table [dataSource]="systemDataSource" class="mat-elevation-z1">
-          <ng-container matColumnDef="key">
-            <td mat-cell *matCellDef="let element"> {{ element.key }}</td>
-          </ng-container>
-          <ng-container matColumnDef="value">
-            <td mat-cell *matCellDef="let element"> {{ element.value }}</td>
-          </ng-container>
-          <tr mat-row *matRowDef="let row; columns: systemColumns;"></tr>
-        </table>
-      </mat-card-content>
-    </mat-card>
-  </mat-tab>
-  <mat-tab label="Configuration">
-    @if (deviceConfig == null) {
-      <p> Failed to load the device configurations.</p>
-    } @else {
-      <div class="device-config">
-        <button mat-raised-button (click)="downloadConfigFile()">Download Config</button>
-        <pre class="wrapped-pre">{{deviceConfig}}</pre>
+<div class="device-details-container">
+  <div class="header-actions">
+    <button mat-button class="back-button" (click)="backToManagedDevices()">
+      <fa-icon [icon]="['far', 'circle-left']"></fa-icon>
+      Back to Managed Devices
+    </button>
+    <h1 class="page-title">{{deviceData?.name}}</h1>
+  </div>
+
+  <mat-tab-group mat-stretch-tabs="false" mat-align-tabs="start" animationDuration="0ms" class="custom-tabs">
+    <mat-tab label="Overview">
+      <div class="dashboard-grid">
+        <!-- Status Card -->
+        <mat-card class="status-card" appearance="outlined">
+          <mat-card-header>
+            <mat-card-title>Device Status</mat-card-title>
+          </mat-card-header>
+          <mat-card-content>
+            <div class="status-row">
+              <span class="status-label">Monitoring</span>
+              <mat-slide-toggle labelPosition="before" [(ngModel)]="isMonitorEnabled"
+                (change)="onMonitorToggleChange($event)">
+                {{ isMonitorEnabled ? 'Enabled' : 'Disabled' }}
+              </mat-slide-toggle>
+            </div>
+          </mat-card-content>
+        </mat-card>
+
+        <!-- License Info -->
+        <mat-card class="info-card" appearance="outlined">
+          <mat-card-header>
+            <mat-card-title>License Information</mat-card-title>
+          </mat-card-header>
+          <mat-card-content>
+            <table mat-table [dataSource]="licenseDataSource" class="details-table">
+              <ng-container matColumnDef="key">
+                <td mat-cell *matCellDef="let element" class="label-cell"> {{ element.key }}</td>
+              </ng-container>
+              <ng-container matColumnDef="value">
+                <td mat-cell *matCellDef="let element" class="value-cell"> {{ element.value }}</td>
+              </ng-container>
+              <tr mat-row *matRowDef="let row; columns: licenseColumns;"></tr>
+            </table>
+          </mat-card-content>
+        </mat-card>
+
+        <!-- System Info -->
+        <mat-card class="info-card" appearance="outlined">
+          <mat-card-header>
+            <mat-card-title>System Information</mat-card-title>
+          </mat-card-header>
+          <mat-card-content>
+            <table mat-table [dataSource]="systemDataSource" class="details-table">
+              <ng-container matColumnDef="key">
+                <td mat-cell *matCellDef="let element" class="label-cell"> {{ element.key }}</td>
+              </ng-container>
+              <ng-container matColumnDef="value">
+                <td mat-cell *matCellDef="let element" class="value-cell"> {{ element.value }}</td>
+              </ng-container>
+              <tr mat-row *matRowDef="let row; columns: systemColumns;"></tr>
+            </table>
+          </mat-card-content>
+        </mat-card>
       </div>
-    }
-  </mat-tab>
-  <mat-tab label="Settings">
-    <form
-      (ngSubmit)="updateDeviceSettings()"
-      [formGroup]="deviceSettingsForm"
-      class="common-form"
-    >
-      <div class="form-field-wrapper">
-        <label for="portNumber" class="form-label">API Port *</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input
-            id="portNumber"
-            formControlName="portNumber"
-            matInput
-            placeholder="9997"
-            type="number"
-          />
-          @if (deviceSettingsForm.get('portNumber')?.invalid && deviceSettingsForm.get('portNumber')?.touched) {
-            <mat-error>
-              @if (deviceSettingsForm.get('portNumber')?.errors?.['required']) {
-                API port is required.
-              } @else {
-                Invalid port number format.
-              }
-            </mat-error>
-          }
-        </mat-form-field>
-      </div>
-      <div class="form-field-wrapper">
-        <label for="apiUsername" class="form-label">API Username *</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input
-            id="apiUsername"
-            formControlName="apiUsername"
-            matInput
-            placeholder="API Username"
-            type="text"
-          />
-          @if (deviceSettingsForm.get('apiUsername')?.invalid && deviceSettingsForm.get('apiUsername')?.touched) {
-            <mat-error>
-              @if (deviceSettingsForm.get('apiUsername')?.errors?.['required']) {
-                Username is required.
-              } @else {
-                Invalid username format.
-              }
-            </mat-error>
-          }
-        </mat-form-field>
-      </div>
-      <div class="form-field-wrapper">
-        <label for="apiPassword" class="form-label">API Password *</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input
-            id="apiPassword"
-            formControlName="apiPassword"
-            matInput
-            placeholder="API Password"
-            type="password"
-          />
-          @if (deviceSettingsForm.get('apiPassword')?.invalid && deviceSettingsForm.get('apiPassword')?.touched) {
-            <mat-error>
-              @if (deviceSettingsForm.get('apiPassword')?.errors?.['required']) {
-                Password is required.
-              } @else {
-                Invalid password format.
-              }
-            </mat-error>
-          }
-        </mat-form-field>
-      </div>
-      <div class="form-field-wrapper">
-        <label for="webuiPortNumber" class="form-label">WebUI Port *</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input id="webuiPortNumber" formControlName="webuiPortNumber" matInput placeholder="8888" type="number"/>
-        </mat-form-field>
-      </div>
-      @if (!['AG', 'vxAG'].includes(deviceSettingsForm.get('deviceType')?.value)) {
-        <div class="form-field-wrapper">
-          <label for="webuiUsername" class="form-label">WebUI Username</label>
-          <mat-form-field appearance="outline" subscriptSizing="dynamic">
-            <input
-              id="webuiUsername"
-              formControlName="webuiUsername"
-              matInput
-              placeholder="WebUI Username"
-              type="text"
-            />
-            @if (deviceSettingsForm.get('webuiUsername')?.invalid && deviceSettingsForm.get('webuiUsername')?.touched) {
-              <mat-error>
-                @if (deviceSettingsForm.get('webuiUsername')?.errors?.['required']) {
-                  Username is required.
-                } @else {
-                  Invalid username format.
-                }
-              </mat-error>
-            }
-          </mat-form-field>
+    </mat-tab>
+
+    <mat-tab label="Configuration">
+      <div class="config-tab-content">
+        @if (deviceConfig == null) {
+        <div class="empty-state">
+          <p>Failed to load the device configurations.</p>
         </div>
-        <div class="form-field-wrapper">
-          <label for="webuiPassword" class="form-label">WebUI Password *</label>
-          <mat-form-field appearance="outline" subscriptSizing="dynamic">
-            <input
-              id="webuiPassword"
-              formControlName="webuiPassword"
-              matInput
-              placeholder="WebUI Password"
-              type="password"
-            />
-            @if (deviceSettingsForm.get('webuiPassword')?.invalid && deviceSettingsForm.get('webuiPassword')?.touched) {
-              <mat-error>
-                @if (deviceSettingsForm.get('webuiPassword')?.errors?.['required']) {
-                  Password is required.
-                } @else {
-                  Invalid password format.
-                }
-              </mat-error>
-            }
-          </mat-form-field>
+        } @else {
+        <div class="config-viewer">
+          <div class="config-header">
+            <h3>Current Configuration</h3>
+            <button mat-stroked-button (click)="downloadConfigFile()">
+              <fa-icon [icon]="['fas', 'download']"></fa-icon> Download
+            </button>
+          </div>
+          <pre class="code-block">{{deviceConfig}}</pre>
         </div>
-      }
-      <div class="form-field-wrapper">
-        <label for="enablePassword" class="form-label">Enable Password</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input id="enablePassword" formControlName="enablePassword" matInput placeholder="Password" type="password"/>
-        </mat-form-field>
+        }
       </div>
-      <div class="form-field-wrapper">
-        <label for="gatewayDomain" class="form-label">Gateway Domain</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input
-            id="gatewayDomain"
-            formControlName="gatewayDomain"
-            matInput
-            placeholder="Gateway Domain"
-            type="text"
-          />
-        </mat-form-field>
-      </div>
-      <div class="form-field-wrapper">
-        <label for="location" class="form-label">Location</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input
-            id="location"
-            formControlName="location"
-            matInput
-            placeholder="Location"
-            type="text"
-          />
-        </mat-form-field>
-      </div>
-      @if (deviceSettingsForm.get('deviceGroupSource')?.value === 'created') {
-        <div class="form-field-wrapper">
-          <label for="groupName" class="form-label">Device Type</label>
-          <mat-form-field appearance="outline" subscriptSizing="dynamic">
-            <mat-select formControlName="groupName">
-              @for (type of groups; track type) {
-                <mat-option [value]="type">{{ type }}</mat-option>
-              }
-            </mat-select>
-            @if (deviceSettingsForm.get('groupName')?.invalid && deviceSettingsForm.get('groupName')?.touched) {
-              <mat-error>
-                @if (deviceSettingsForm.get('groupName')?.errors?.['required']) {
-                  Group name is required.
-                } @else {
-                  Invalid group name format.
+    </mat-tab>
+
+    <mat-tab label="Settings">
+      <div class="settings-tab-content">
+        <mat-card appearance="outlined">
+          <mat-card-content>
+            <form (ngSubmit)="updateDeviceSettings()" [formGroup]="deviceSettingsForm" class="settings-form">
+
+              <div class="form-section-title">Connection Settings</div>
+              <div class="form-grid">
+                <mat-form-field appearance="outline">
+                  <mat-label>API Port</mat-label>
+                  <input id="portNumber" formControlName="portNumber" matInput type="number" placeholder="9997" />
+                  @if (deviceSettingsForm.get('portNumber')?.invalid && deviceSettingsForm.get('portNumber')?.touched) {
+                  <mat-error>
+                    @if (deviceSettingsForm.get('portNumber')?.errors?.['required']) { API port is required. }
+                    @else { Invalid port number. }
+                  </mat-error>
+                  }
+                </mat-form-field>
+
+                <mat-form-field appearance="outline">
+                  <mat-label>WebUI Port</mat-label>
+                  <input id="webuiPortNumber" formControlName="webuiPortNumber" matInput type="number"
+                    placeholder="8888" />
+                </mat-form-field>
+
+                <mat-form-field appearance="outline">
+                  <mat-label>Gateway Domain</mat-label>
+                  <input id="gatewayDomain" formControlName="gatewayDomain" matInput placeholder="Gateway Domain" />
+                </mat-form-field>
+              </div>
+
+              <div class="form-section-title">Credentials</div>
+              <div class="form-grid">
+                <mat-form-field appearance="outline">
+                  <mat-label>API Username</mat-label>
+                  <input id="apiUsername" formControlName="apiUsername" matInput placeholder="Username" />
+                  @if (deviceSettingsForm.get('apiUsername')?.invalid && deviceSettingsForm.get('apiUsername')?.touched)
+                  {
+                  <mat-error>Username is required.</mat-error>
+                  }
+                </mat-form-field>
+
+                <mat-form-field appearance="outline">
+                  <mat-label>API Password</mat-label>
+                  <input id="apiPassword" formControlName="apiPassword" matInput type="password"
+                    placeholder="Password" />
+                  @if (deviceSettingsForm.get('apiPassword')?.invalid && deviceSettingsForm.get('apiPassword')?.touched)
+                  {
+                  <mat-error>Password is required.</mat-error>
+                  }
+                </mat-form-field>
+
+                @if (!['AG', 'vxAG'].includes(deviceSettingsForm.get('deviceType')?.value)) {
+                <mat-form-field appearance="outline">
+                  <mat-label>WebUI Username</mat-label>
+                  <input id="webuiUsername" formControlName="webuiUsername" matInput placeholder="WebUI Username" />
+                  @if (deviceSettingsForm.get('webuiUsername')?.invalid &&
+                  deviceSettingsForm.get('webuiUsername')?.touched) {
+                  <mat-error>Username is required.</mat-error>
+                  }
+                </mat-form-field>
+
+                <mat-form-field appearance="outline">
+                  <mat-label>WebUI Password</mat-label>
+                  <input id="webuiPassword" formControlName="webuiPassword" matInput type="password"
+                    placeholder="WebUI Password" />
+                  @if (deviceSettingsForm.get('webuiPassword')?.invalid &&
+                  deviceSettingsForm.get('webuiPassword')?.touched) {
+                  <mat-error>Password is required.</mat-error>
+                  }
+                </mat-form-field>
                 }
-              </mat-error>
-            }
-          </mat-form-field>
-        </div>
-      }
-      <div class="form-field-wrapper">
-        <label for="enableLog" class="form-label">Enable Log</label>
-        <mat-slide-toggle formControlName="enableLog"></mat-slide-toggle>
+
+                <mat-form-field appearance="outline">
+                  <mat-label>Enable Password</mat-label>
+                  <input id="enablePassword" formControlName="enablePassword" matInput type="password"
+                    placeholder="Enable Password" />
+                </mat-form-field>
+              </div>
+
+              <div class="form-section-title">General</div>
+              <div class="form-grid">
+                <mat-form-field appearance="outline">
+                  <mat-label>Location</mat-label>
+                  <input id="location" formControlName="location" matInput placeholder="Location" />
+                </mat-form-field>
+
+                @if (deviceSettingsForm.get('deviceGroupSource')?.value === 'created') {
+                <mat-form-field appearance="outline">
+                  <mat-label>Device Type</mat-label>
+                  <mat-select formControlName="groupName">
+                    @for (type of groups; track type) {
+                    <mat-option [value]="type?.group_name">{{ type?.group_name }}</mat-option>
+                    }
+                  </mat-select>
+                  @if (deviceSettingsForm.get('groupName')?.invalid && deviceSettingsForm.get('groupName')?.touched) {
+                  <mat-error>Group name is required.</mat-error>
+                  }
+                </mat-form-field>
+                }
+
+                <div class="toggle-field">
+                  <mat-slide-toggle formControlName="enableLog">Enable Log</mat-slide-toggle>
+                </div>
+              </div>
+
+              <div class="form-actions">
+                <button type="submit" mat-raised-button color="primary">Save Changes</button>
+              </div>
+
+            </form>
+          </mat-card-content>
+        </mat-card>
       </div>
-      <button
-        type="submit"
-        mat-raised-button
-        color="primary">
-        Submit
-      </button>
-    </form>
-  </mat-tab>
-</mat-tab-group>
+    </mat-tab>
+  </mat-tab-group>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-details/device-details.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-details/device-details.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-details/device-details.scss	(working copy)
@@ -1,21 +1,244 @@
-.device-config {
-  padding: 20px;
+.device-details-container {
+  padding: 12px 5px 24px 5px; // Added 5px side padding
+  max-width: 100%;
+  margin: 0;
+  box-sizing: border-box;
+}
+
+.header-actions {
+  display: flex;
+  align-items: center;
+  margin-bottom: 0; // Removed margin, let tab group handle spacing if needed or just minimal
+  height: 40px;
+
+  .back-button {
+    color: #1976d2;
+    font-weight: 500;
+    padding: 0 12px 0 0; // Right padding for visual separation before border
+    min-width: auto; // Override mat-button min-width
+    line-height: 20px;
+
+    fa-icon {
+      margin-right: 6px;
+      font-size: 16px;
+    }
+
+    &:hover {
+      background-color: transparent;
+      text-decoration: none; // Remove underline
+    }
+
+    // Remove ripple if possible or just accept it. 
+    // For mat-button, we might want to reset padding more aggressively if it persists.
+    &.mat-mdc-button-base {
+      padding-left: 0;
+      padding-right: 12px;
+    }
+  }
+
+  .page-title {
+    margin: 0;
+    font-size: 20px;
+    font-weight: 500;
+    color: #333;
+    padding-left: 12px;
+    border-left: 1px solid #ddd;
+    line-height: 24px;
+  }
+}
+
+.custom-tabs {
+  background: transparent;
+  margin-top: 8px; // Small margin above tabs
+}
+
+// Dashboard Grid Layout
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
+  gap: 16px; // Reduced gap
+  margin-top: 12px; // Reduced margin
+
+  .status-card {
+    grid-column: 1 / -1; // Span full width initially or adjust based on preference
+
+    @media (min-width: 1200px) {
+      grid-column: span 1; // On large screens, maybe it takes one slot
+      // Removed max-width to fix uneven spacing
+    }
+  }
+
+  // Common styles for cards within the grid
+  mat-card {
+    mat-card-header {
+      padding: 10px 24px; // Reduced padding
+      border-bottom: 1px solid #eee;
+      margin-bottom: 0;
+
+      mat-card-title {
+        font-size: 16px;
+        font-weight: 600;
+        margin: 0;
+        color: #1976d2; // Updated color
+      }
+    }
+
+    mat-card-content {
+      padding: 0;
+    }
+  }
+}
+
+.info-card {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+  // Header styles moved to common block above
+
+  mat-card-content {
+    flex: 1;
+  }
+}
+
+.status-row {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 16px 24px;
+
+  .status-label {
+    font-weight: 500;
+    color: #555;
+  }
+}
+
+// Tables
+.details-table {
+  width: 100%;
+
+  tr.mat-mdc-row {
+    height: 40px;
+
+    &:hover {
+      background-color: #f9f9f9;
+    }
+  }
+
+  td.mat-mdc-cell {
+    border-bottom-color: #f0f0f0;
+    padding: 8px 24px;
+    font-size: 14px;
+
+    &.label-cell {
+      width: 40%;
+      color: #666;
+      font-weight: 500;
+      text-transform: capitalize;
+    }
+
+    &.value-cell {
+      color: #333;
+      font-family: 'Roboto Mono', monospace; // Optional for values
+    }
+  }
+}
+
+// Config Viewer
+.config-tab-content {
+  margin-top: 12px; // Reduced margin
+}
+
+.config-viewer {
+  background: #fff;
+  border: 1px solid #e0e0e0;
   border-radius: 8px;
-  max-width: 90vw;
-  margin: 20px auto;
+  overflow: hidden;
+
+  .config-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 8px 16px; // Reduced padding
+    background: #f5f5f5;
+    border-bottom: 1px solid #e0e0e0;
+
+    h3 {
+      margin: 0;
+      font-size: 16px;
+      font-weight: 500;
+    }
+  }
+
+  .code-block {
+    margin: 0;
+    padding: 24px;
+    background: #1e1e1e; // Dark theme for code
+    color: #d4d4d4;
+    font-family: 'Fira Code', 'Roboto Mono', monospace;
+    font-size: 13px;
+    line-height: 1.5;
+    overflow-x: auto;
+    max-height: 600px;
+    white-space: pre;
+  }
 }
 
-.device-config button {
-  margin-bottom: 15px;
+.empty-state {
+  text-align: center;
+  padding: 48px;
+  color: #888;
+  background: #f9f9f9;
+  border-radius: 8px;
+  border: 1px dashed #ccc;
 }
 
-.wrapped-pre {
-  //background-color: #eef;
-  padding: 15px;
-  border: 1px solid #ccc;
-  border-radius: 4px;
-  overflow-x: hidden;
-  white-space: pre-wrap;
-  word-break: break-word;
-  font-family: monospace;
+// Settings Form
+.settings-tab-content {
+  margin-top: 12px; // Reduced margin to align with other sections
+  max-width: 1000px;
 }
+
+.settings-form {
+  padding: 24px;
+
+  .form-section-title {
+    font-size: 16px;
+    font-weight: 600;
+    color: #1976d2; // Primary color accent
+    margin: 24px 0 16px;
+    padding-bottom: 8px;
+    border-bottom: 2px solid rgba(25, 118, 210, 0.1);
+
+    &:first-child {
+      margin-top: 0;
+    }
+  }
+
+  .form-grid {
+    display: grid;
+    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+    gap: 16px 24px;
+    margin-bottom: 24px;
+  }
+
+  mat-form-field {
+    width: 100%;
+    display: block;
+  }
+
+  .toggle-field {
+    display: flex;
+    align-items: center;
+    height: 56px; // Match form field height roughly
+  }
+
+  .form-actions {
+    margin-top: 32px;
+    display: flex;
+    justify-content: flex-end;
+
+    button {
+      min-width: 120px;
+    }
+  }
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.html	(revision 2779)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.html	(working copy)
@@ -1,55 +1,57 @@
 <mat-card class="page-card-1" appearance="filled">
   <mat-card-header>
     <mat-card-title>Device Groups</mat-card-title>
-    <div>
-      <button mat-raised-button (click)="addDeviceGroup()">Add</button>
+    <div class="header-actions">
+      <button mat-raised-button color="primary" (click)="addDeviceGroup()">Add</button>
     </div>
   </mat-card-header>
-</mat-card>
+  <mat-card-content>
+    <div class="table-container">
+      <app-search-from-results placeholder="Example: BLR001"
+        (searchChange)="applyFilter($event)"></app-search-from-results>
 
-<div class="table-container">
-  <app-search-from-results placeholder="Example: BLR001" (searchChange)="applyFilter($event)"></app-search-from-results>
+      <table mat-table [dataSource]="dataSource" class="an-table mat-elevation-z1">
+        <ng-container matColumnDef="serial">
+          <th mat-header-cell *matHeaderCellDef> No.</th>
+          <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
+        </ng-container>
+        <ng-container matColumnDef="name">
+          <th mat-header-cell *matHeaderCellDef> Group Name</th>
+          <td mat-cell *matCellDef="let element"> {{ element.group_name }}</td>
+        </ng-container>
+        <ng-container matColumnDef="devices">
+          <th mat-header-cell *matHeaderCellDef class="action-header"> Managed Devices</th>
+          <td mat-cell *matCellDef="let element">
+            <div class="row-action">
+              @if (element.device_list && element.device_list.length > 0) {
+              <span [matTooltip]="getTruncatedArrayString(element.device_list).full" matTooltipPosition="above">
+                {{ getTruncatedArrayString(element.device_list).display }}
+              </span>
+              } @else {
+              -
+              }
+            </div>
+          </td>
+        </ng-container>
+        <ng-container matColumnDef="action">
+          <th mat-header-cell *matHeaderCellDef class="action-header w-10"> Action</th>
+          <td mat-cell *matCellDef="let element">
+            @if (!(element.device_list && element.device_list.length > 0)) {
+            <div class="row-action a-link">
+              <fa-icon [icon]="['far', 'trash-can']" class="delete-icon" (click)="confirmDelete(element)"></fa-icon>
+            </div>
+            }
+          </td>
+        </ng-container>
 
-  <table mat-table [dataSource]="dataSource" class="mat-elevation-z1">
-    <ng-container matColumnDef="serial">
-      <th mat-header-cell *matHeaderCellDef> No.</th>
-      <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
-    </ng-container>
-    <ng-container matColumnDef="name">
-      <th mat-header-cell *matHeaderCellDef> Group Name</th>
-      <td mat-cell *matCellDef="let element"> {{ element.group_name }}</td>
-    </ng-container>
-    <ng-container matColumnDef="devices">
-      <th mat-header-cell *matHeaderCellDef class="action-header"> Managed Devices</th>
-      <td mat-cell *matCellDef="let element">
-        <div class="row-action">
-          @if (element.device_list && element.device_list.length > 0) {
-          <span [matTooltip]="getTruncatedArrayString(element.device_list).full" matTooltipPosition="above">
-            {{ getTruncatedArrayString(element.device_list).display }}
-          </span>
-          } @else {
-          -
-          }
-        </div>
-      </td>
-    </ng-container>
-    <ng-container matColumnDef="action">
-      <th mat-header-cell *matHeaderCellDef class="action-header w-10"> Action</th>
-      <td mat-cell *matCellDef="let element">
-        @if (!(element.device_list && element.device_list.length > 0)) {
-        <div class="row-action a-link">
-          <fa-icon [icon]="['far', 'trash-can']" class="delete-icon" (click)="confirmDelete(element)"></fa-icon>
-        </div>
-        }
-      </td>
-    </ng-container>
+        <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
+        <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
 
-    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
-    <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
-
-    <tr class="mat-row table-no-data" *matNoDataRow>
-      <td class="mat-cell" colspan="4">No data matching the filter "{{ searchKey }}"</td>
-    </tr>
-  </table>
-  <mat-paginator [pageSizeOptions]="[10, 15, 20, 25]" [length]="totalRecords" showFirstLastButtons></mat-paginator>
-</div>
\ No newline at end of file
+        <tr class="mat-row table-no-data" *matNoDataRow>
+          <td class="mat-cell" colspan="4">No data matching the filter "{{ searchKey }}"</td>
+        </tr>
+      </table>
+      <mat-paginator [pageSizeOptions]="[10, 15, 20, 25]" [length]="totalRecords" showFirstLastButtons></mat-paginator>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.scss	(revision 2773)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.scss	(working copy)
@@ -1,15 +1,57 @@
-table {
-  width: 100%;
+.page-card-1 {
+  .mat-mdc-card-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 12px 16px; // Compact padding
+    border-bottom: 1px solid #e0e0e0;
+
+    .mat-mdc-card-title {
+      font-size: 18px;
+      font-weight: 500;
+      margin: 0;
+    }
+  }
+
+  .mat-mdc-card-content {
+    padding: 12px; // Compact padding
+  }
 }
 
+.table-container {
+  border: 1px solid #e0e0e0;
+  border-radius: 4px;
+  margin-top: 0;
 
+  table.an-table {
+    width: 100%;
 
-mat-icon {
-  vertical-align: middle;
-}
+    th.mat-header-cell {
+      font-weight: 600;
+      color: #444;
+      background-color: #f9fafb;
+      padding: 10px 12px; // Compact padding
+      font-size: 14px;
+      border-bottom: 1px solid #e0e0e0;
+    }
 
-.w-10 {
-  width: 10%;
+    td.mat-cell {
+      padding: 10px 12px; // Compact padding
+      color: #333;
+      font-size: 14px;
+      border-bottom: 1px solid #f0f0f0;
+    }
+
+    tr.mat-row {
+      &:hover {
+        background-color: #f5f7fa;
+      }
+
+      &:last-child td {
+        border-bottom: none;
+      }
+    }
+  }
 }
 
 .row-action {
@@ -22,4 +64,52 @@
 
 .a-link {
   cursor: pointer;
+}
+
+.delete-icon {
+  color: #d32f2f;
+  font-size: 16px;
+}
+
+.w-10 {
+  width: 10%;
+}
+
+// Dialog Styles
+h2[mat-dialog-title] {
+  margin: 0;
+  padding: 10px 24px; // Reduced padding
+  font-size: 18px;
+  font-weight: 500;
+  // Removed border-bottom
+  background-color: #fff; // Changed to white for cleaner look
+  color: #333;
+}
+
+mat-dialog-content {
+  padding: 24px !important;
+  min-width: 400px;
+
+  .form-field-wrapper {
+    margin-bottom: 16px;
+
+    .form-label {
+      display: block;
+      margin-bottom: 8px;
+      font-weight: 500;
+      color: #444;
+      font-size: 14px;
+    }
+
+    mat-form-field {
+      width: 100%;
+    }
+  }
+}
+
+mat-dialog-actions {
+  padding: 10px 24px !important; // Reduced padding
+  // Removed border-top
+  margin-bottom: 0;
+  background-color: #fff;
 }
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.ts	(revision 2779)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/device-groups/device-groups.ts	(working copy)
@@ -147,6 +147,7 @@
 @Component({
   selector: 'add-device-groups',
   templateUrl: './add-device-groups.html',
+  styleUrl: './device-groups.scss',
   imports: [SharedModule],
 })
 export class AddDeviceGroupsDialog {
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices-build-info.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices-build-info.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices-build-info.html	(working copy)
@@ -7,7 +7,7 @@
     <!--      <input matInput (keyup)="applyFilter($event)" placeholder="Ex. Array" #input>-->
     <!--    </mat-form-field>-->
 
-    <table mat-table [dataSource]="dataSource" class="mat-elevation-z1">
+    <table mat-table [dataSource]="dataSource" class="mat-elevation-z1 an-table">
       <ng-container matColumnDef="serial">
         <th mat-header-cell *matHeaderCellDef> No.</th>
         <td mat-cell *matCellDef="let element; let i = index;"> {{ i + 1 }}</td>
@@ -24,9 +24,9 @@
         <th mat-header-cell *matHeaderCellDef> Available Build</th>
         <td mat-cell *matCellDef="let element">
           @if (element[2]) {
-            <span>{{ element[2] }}</span>
+          <span>{{ element[2] }}</span>
           } @else {
-            -
+          -
           }
         </td>
       </ng-container>
@@ -40,10 +40,7 @@
 </mat-dialog-content>
 
 <mat-dialog-actions align="end">
-  <button
-    mat-button
-    color="basic"
-    (click)="onCancel()">
+  <button mat-button color="basic" (click)="onCancel()">
     Close
   </button>
-</mat-dialog-actions>
+</mat-dialog-actions>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.html	(revision 2779)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.html	(working copy)
@@ -1,86 +1,92 @@
 <mat-card class="page-card-1" appearance="filled">
   <mat-card-header>
     <mat-card-title>Managed Devices</mat-card-title>
-    <div>
-      <button mat-raised-button (click)="addDevice()">Add</button> &nbsp;&nbsp;
+    <div class="header-actions">
+      <button mat-raised-button color="primary" (click)="addDevice()">Add</button>
       <button mat-raised-button (click)="getDeviceBuildInfo()">Check Build Info</button>
     </div>
   </mat-card-header>
-</mat-card>
-<div class="table-container">
-  <app-search-from-results placeholder="Example: BLRAPV001"
-    (searchChange)="applyFilter($event)"></app-search-from-results>
+  <mat-card-content>
+    <div class="table-container">
+      <app-search-from-results placeholder="Example: BLRAPV001"
+        (searchChange)="applyFilter($event)"></app-search-from-results>
 
-  <table mat-table [dataSource]="dataSource" class="mat-elevation-z1 an-table">
-    <ng-container matColumnDef="serial">
-      <th mat-header-cell *matHeaderCellDef> No.</th>
-      <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
-    </ng-container>
-    <ng-container matColumnDef="deviceName">
-      <th mat-header-cell *matHeaderCellDef> Device Name</th>
-      <td mat-cell *matCellDef="let element">
-        <a class="details-page-link" (click)="goToDetails(element)">{{ element.name }}</a>
-      </td>
-    </ng-container>
-    <ng-container matColumnDef="groupName">
-      <th mat-header-cell *matHeaderCellDef> Group Name</th>
-      <td mat-cell *matCellDef="let element"> {{ element.device_group }}</td>
-    </ng-container>
-    <ng-container matColumnDef="type">
-      <th mat-header-cell *matHeaderCellDef> Type</th>
-      <td mat-cell *matCellDef="let element"> {{ element.type }}</td>
-    </ng-container>
-    <ng-container matColumnDef="model">
-      <th mat-header-cell *matHeaderCellDef> Model</th>
-      <td mat-cell *matCellDef="let element"> {{ element.model }}</td>
-    </ng-container>
-    <ng-container matColumnDef="deviceIp">
-      <th mat-header-cell *matHeaderCellDef> Device IP</th>
-      <td mat-cell *matCellDef="let element"> {{ element.ip }}</td>
-    </ng-container>
-    <ng-container matColumnDef="protocol">
-      <th mat-header-cell *matHeaderCellDef> Protocol</th>
-      <td mat-cell *matCellDef="let element"> {{ element.protocol | uppercase }}</td>
-    </ng-container>
-    <ng-container matColumnDef="status">
-      <th mat-header-cell *matHeaderCellDef class="action-header"> Status</th>
-      <td mat-cell *matCellDef="let element">
-        <div class="row-action a-link">
-          @if (element.connection) {
-          <fa-icon [icon]="['far', 'check-circle']" class="success-icon"></fa-icon>
-          } @else {
-          <fa-icon [icon]="['far', 'xmark-circle']" class="delete-icon"></fa-icon>
-          }
-        </div>
-      </td>
-    </ng-container>
-    <ng-container matColumnDef="action">
-      <th mat-header-cell *matHeaderCellDef class="action-header w-10"> Action</th>
-      <td mat-cell *matCellDef="let element">
-        <div class="row-action a-link">
-          <fa-icon [icon]="['fas', 'id-badge']" size="lg" (click)="showLicenseDialog(element)"
-            matTooltip="License"></fa-icon>
-          <a target="_blank" rel="noopener noreferrer"
-            [href]="element?.ip && element?.webui_port ? 'https://' + element.ip + ':' + element.webui_port : '#'">
-            <fa-icon [icon]="['fas', 'tv']" size="lg" matTooltip="WebUI"></fa-icon>
-          </a>
-          <fa-icon [icon]="['fas', 'terminal']" size="lg" (click)="openWebConsole(element)" matTooltip="CLI"></fa-icon>
-          <fa-icon [icon]="['far', 'save']" size="lg" (click)="confirmSave(element)" matTooltip="Save Config"></fa-icon>
-          <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete Device"
-            (click)="confirmDelete(element)"></fa-icon>
-        </div>
-      </td>
-    </ng-container>
-    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
-    <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
-    <tr class="mat-row table-no-data" *matNoDataRow>
-      <td class="mat-cell" colspan="9">
-        @if (searchKey) {
-        No data matching the filter "{{ searchKey }}"
-        } @else {
-        No results found.
-        }
-      </td>
-    </tr>
-  </table>
-</div>
\ No newline at end of file
+      <table mat-table [dataSource]="dataSource" class="an-table mat-elevation-z1">
+        <ng-container matColumnDef="serial">
+          <th mat-header-cell *matHeaderCellDef> No.</th>
+          <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
+        </ng-container>
+        <ng-container matColumnDef="deviceName">
+          <th mat-header-cell *matHeaderCellDef> Device Name</th>
+          <td mat-cell *matCellDef="let element">
+            <a class="details-page-link" (click)="goToDetails(element)">{{ element.name }}</a>
+          </td>
+        </ng-container>
+        <ng-container matColumnDef="groupName">
+          <th mat-header-cell *matHeaderCellDef> Group Name</th>
+          <td mat-cell *matCellDef="let element"> {{ element.device_group }}</td>
+        </ng-container>
+        <ng-container matColumnDef="type">
+          <th mat-header-cell *matHeaderCellDef> Type</th>
+          <td mat-cell *matCellDef="let element"> {{ element.type }}</td>
+        </ng-container>
+        <ng-container matColumnDef="model">
+          <th mat-header-cell *matHeaderCellDef> Model</th>
+          <td mat-cell *matCellDef="let element"> {{ element.model }}</td>
+        </ng-container>
+        <ng-container matColumnDef="deviceIp">
+          <th mat-header-cell *matHeaderCellDef> Device IP</th>
+          <td mat-cell *matCellDef="let element"> {{ element.ip }}</td>
+        </ng-container>
+        <ng-container matColumnDef="protocol">
+          <th mat-header-cell *matHeaderCellDef> Protocol</th>
+          <td mat-cell *matCellDef="let element"> {{ element.protocol | uppercase }}</td>
+        </ng-container>
+        <ng-container matColumnDef="status">
+          <th mat-header-cell *matHeaderCellDef class="action-header"> Status</th>
+          <td mat-cell *matCellDef="let element">
+            <div class="row-action a-link">
+              @if (element.connection) {
+              <fa-icon [icon]="['far', 'check-circle']" class="success-icon"></fa-icon>
+              } @else {
+              <fa-icon [icon]="['far', 'xmark-circle']" class="delete-icon"></fa-icon>
+              }
+            </div>
+          </td>
+        </ng-container>
+        <ng-container matColumnDef="action">
+          <th mat-header-cell *matHeaderCellDef class="action-header w-10"> Action</th>
+          <td mat-cell *matCellDef="let element">
+            <div class="row-action a-link">
+              <fa-icon [icon]="['fas', 'id-badge']" size="lg" (click)="showLicenseDialog(element)"
+                matTooltip="License"></fa-icon>
+              <a target="_blank" rel="noopener noreferrer"
+                [href]="element?.ip && element?.webui_port ? 'https://' + element.ip + ':' + element.webui_port : '#'">
+                <fa-icon [icon]="['fas', 'tv']" size="lg" matTooltip="WebUI"></fa-icon>
+              </a>
+              <fa-icon [icon]="['fas', 'terminal']" size="lg" (click)="openWebConsole(element)"
+                matTooltip="CLI"></fa-icon>
+              <fa-icon [icon]="['far', 'save']" size="lg" (click)="confirmSave(element)"
+                matTooltip="Save Config"></fa-icon>
+              <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete Device"
+                (click)="confirmDelete(element)"></fa-icon>
+            </div>
+          </td>
+        </ng-container>
+        <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
+        <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
+        <tr class="mat-row table-no-data" *matNoDataRow>
+          <td class="mat-cell" colspan="9">
+            @if (searchKey) {
+            No data matching the filter "{{ searchKey }}"
+            } @else {
+            No results found.
+            }
+          </td>
+        </tr>
+      </table>
+      <mat-paginator [pageSizeOptions]="[10, 15, 20, 25]" [length]="dataSource.data.length"
+        showFirstLastButtons></mat-paginator>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.scss	(working copy)
@@ -1,19 +1,62 @@
-/* Structure */
-table {
-  width: 100%;
-}
+.page-card-1 {
+  .mat-mdc-card-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 12px 16px; // Compact padding
+    border-bottom: 1px solid #e0e0e0;
 
-.mat-mdc-form-field {
-  font-size: 14px;
-  width: 100%;
-}
+    .mat-mdc-card-title {
+      font-size: 18px;
+      font-weight: 500;
+      margin: 0;
+    }
 
-mat-icon {
-  vertical-align: middle;
+    .header-actions {
+      display: flex;
+      gap: 12px;
+    }
+  }
+
+  .mat-mdc-card-content {
+    padding: 12px; // Compact padding
+  }
 }
 
-.w-10 {
-  width: 10%;
+.table-container {
+  border: 1px solid #e0e0e0;
+  border-radius: 4px;
+  margin-top: 0;
+
+  table.an-table {
+    width: 100%;
+
+    th.mat-header-cell {
+      font-weight: 600;
+      color: #444;
+      background-color: #f9fafb;
+      padding: 10px 12px; // Compact padding
+      font-size: 14px;
+      border-bottom: 1px solid #e0e0e0;
+    }
+
+    td.mat-cell {
+      padding: 10px 12px; // Compact padding
+      color: #333;
+      font-size: 14px;
+      border-bottom: 1px solid #f0f0f0;
+    }
+
+    tr.mat-row {
+      &:hover {
+        background-color: #f5f7fa;
+      }
+
+      &:last-child td {
+        border-bottom: none;
+      }
+    }
+  }
 }
 
 .row-action {
@@ -27,3 +70,77 @@
 .a-link {
   cursor: pointer;
 }
+
+.delete-icon {
+  color: #d32f2f;
+  font-size: 16px;
+}
+
+.success-icon {
+  color: #2e7d32;
+  font-size: 16px;
+}
+
+.details-page-link {
+  color: #1976d2;
+  cursor: pointer;
+  text-decoration: none;
+  font-weight: 500;
+
+  &:hover {
+    text-decoration: underline;
+  }
+}
+
+.w-10 {
+  width: 10%;
+}
+
+.mat-mdc-form-field {
+  font-size: 14px;
+  width: 100%;
+}
+
+// Dialog Styles
+h2[mat-dialog-title] {
+  margin: 0;
+  padding: 10px 24px; // Reduced padding
+  font-size: 18px;
+  font-weight: 500;
+  // Removed border-bottom
+  background-color: #fff; // Changed to white for cleaner look
+  color: #333;
+}
+
+mat-dialog-content {
+  padding: 24px !important;
+  min-width: 400px;
+
+  .form-field-wrapper {
+    margin-bottom: 16px;
+
+    .form-label {
+      display: block;
+      margin-bottom: 8px;
+      font-weight: 500;
+      color: #444;
+      font-size: 14px;
+    }
+
+    mat-form-field {
+      width: 100%;
+    }
+
+    mat-radio-group {
+      display: flex;
+      gap: 16px;
+    }
+  }
+}
+
+mat-dialog-actions {
+  padding: 10px 24px !important; // Reduced padding
+  // Removed border-top
+  margin-bottom: 0;
+  background-color: #fff;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.ts	(revision 2779)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/devices/devices.ts	(working copy)
@@ -79,7 +79,7 @@
 
   getDeviceBuildInfo() {
     this.dialogConfig.width = '40%';
-    this.dialogConfig.height = '60%';
+    // Removed fixed height
     const dialogRef = this.dialog.open(DevicesBuildInfoDialog, this.dialogConfig);
     dialogRef.afterClosed().subscribe(result => {
     })
@@ -243,7 +243,10 @@
 }
 
 @Component({
-  selector: 'devices-build-info', templateUrl: './devices-build-info.html', imports: [SharedModule],
+  selector: 'devices-build-info',
+  templateUrl: './devices-build-info.html',
+  styleUrl: './devices.scss',
+  imports: [SharedModule],
 })
 export class DevicesBuildInfoDialog implements OnInit {
   readonly dialogRef = inject(MatDialogRef<DevicesBuildInfoDialog>);
@@ -284,6 +287,7 @@
 @Component({
   selector: 'add-device',
   templateUrl: './add-device.html',
+  styleUrl: './devices.scss',
   imports: [SharedModule]
 })
 export class AddDeviceDialog implements OnInit {
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/host/host.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/host/host.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/host/host.html	(working copy)
@@ -1,37 +1,24 @@
-<mat-card class="page-card-1" appearance="filled">
-  <mat-card-content>
-    <form
-      (ngSubmit)="onSubmit()"
-      [formGroup]="hostForm"
-      class="common-form"
-    >
-      <div class="form-field-wrapper">
-        <label for="hostName" class="form-label">Hostname</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <input
-            id="hostName"
-            formControlName="hostName"
-            matInput
-            placeholder="Hostname"
-            type="text"
-          />
-          @if (hostForm.get('hostName')?.invalid && hostForm.get('hostName')?.touched) {
-            <mat-error>
-              @if (hostForm.get('hostName')?.errors?.['required']) {
-                Hostname port is required.
-              } @else {
-                Invalid hostname format.
-              }
-            </mat-error>
+<div class="host-settings-wrapper">
+  <form (ngSubmit)="onSubmit()" [formGroup]="hostForm" class="common-form" style="max-width: 400px;">
+    <div class="form-field-wrapper">
+      <mat-form-field appearance="outline" subscriptSizing="dynamic" style="width: 100%;">
+        <mat-label>Hostname</mat-label>
+        <input id="hostName" formControlName="hostName" matInput placeholder="Enter hostname" type="text" />
+        @if (hostForm.get('hostName')?.invalid && hostForm.get('hostName')?.touched) {
+        <mat-error>
+          @if (hostForm.get('hostName')?.errors?.['required']) {
+          Hostname is required.
+          } @else {
+          Invalid hostname format.
           }
-        </mat-form-field>
-      </div>
-      <button
-        type="submit"
-        mat-raised-button
-        color="primary">
+        </mat-error>
+        }
+      </mat-form-field>
+    </div>
+    <div style="margin-top: 16px;">
+      <button type="submit" mat-raised-button color="primary">
         Submit
       </button>
-    </form>
-  </mat-card-content>
-</mat-card>
+    </div>
+  </form>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/license/license.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/license/license.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/license/license.html	(working copy)
@@ -1,16 +1,18 @@
-<mat-card class="page-card-1" appearance="filled">
-  <mat-card-content>
-    <div class="dialog-container">
-      <button mat-raised-button color="basic" (click)="updateLicense()" class="end-item">Update License</button>
-    </div>
-    <table mat-table [dataSource]="licenseDataSource" class="mat-elevation-z1">
-      <ng-container matColumnDef="key">
-        <td mat-cell *matCellDef="let element"> {{ element.key }}</td>
-      </ng-container>
-      <ng-container matColumnDef="value">
-        <td mat-cell *matCellDef="let element"> {{ element.value }}</td>
-      </ng-container>
-      <tr mat-row *matRowDef="let row; columns: licenseColumns;"></tr>
-    </table>
-  </mat-card-content>
-</mat-card>
+<div class="license-settings-wrapper">
+  <div class="actions-row" style="margin-bottom: 16px; display: flex; justify-content: flex-end;">
+    <button mat-raised-button color="primary" (click)="updateLicense()">
+      Update License
+    </button>
+  </div>
+  <table mat-table [dataSource]="licenseDataSource" class="mat-elevation-z0"
+    style="border: 1px solid #e0e0e0; width: 100%;">
+    <ng-container matColumnDef="key">
+      <td mat-cell *matCellDef="let element" style="font-weight: 500; width: 30%; padding: 16px;"> {{ element.key }}
+      </td>
+    </ng-container>
+    <ng-container matColumnDef="value">
+      <td mat-cell *matCellDef="let element" style="padding: 16px;"> {{ element.value }}</td>
+    </ng-container>
+    <tr mat-row *matRowDef="let row; columns: licenseColumns;"></tr>
+  </table>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-elaborate/log-analysis-slb-elaborate.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-elaborate/log-analysis-slb-elaborate.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-elaborate/log-analysis-slb-elaborate.html	(working copy)
@@ -13,43 +13,19 @@
     <div class="form-field-wrapper">
       <label for="filter" class="form-label-1">Filter</label>
       <mat-form-field appearance="outline" subscriptSizing="dynamic">
-        <input
-          id="filter"
-          formControlName="filter"
-          matInput
-          placeholder="response_code=200"
-          type="text"
-        />
+        <input id="filter" formControlName="filter" matInput placeholder="response_code=200" type="text" />
       </mat-form-field>
     </div>
 
     <div class="form-field-wrapper">
       <label for="start" class="form-label-1">Start</label>
       <mat-form-field appearance="outline" subscriptSizing="dynamic">
-        <input
-          matInput
-          [ngxMatDatetimePicker]="startDatePicker"
-          placeholder="2025-01-01 00:00:00"
-          formControlName="start"
-        />
-        <ngx-mat-datepicker-toggle
-          matSuffix
-          [for]="startDatePicker"
-        ></ngx-mat-datepicker-toggle>
-        <ngx-mat-datetime-picker
-          #startDatePicker
-          [showSpinners]="true"
-          [showSeconds]="true"
-          [touchUi]="false"
-          [stepHour]="1"
-          [stepMinute]="1"
-          [stepSecond]="1"
-          [disableMinute]="false"
-        >
-          <mat-icon
-            ngxMatDatetimePickerToday
-            (click)="startDatePicker.close()"
-          >today
+        <input matInput [ngxMatDatetimePicker]="startDatePicker" placeholder="2025-01-01 00:00:00"
+          formControlName="start" />
+        <ngx-mat-datepicker-toggle matSuffix [for]="startDatePicker"></ngx-mat-datepicker-toggle>
+        <ngx-mat-datetime-picker #startDatePicker [showSpinners]="true" [showSeconds]="true" [touchUi]="false"
+          [stepHour]="1" [stepMinute]="1" [stepSecond]="1" [disableMinute]="false">
+          <mat-icon ngxMatDatetimePickerToday (click)="startDatePicker.close()">today
           </mat-icon>
         </ngx-mat-datetime-picker>
       </mat-form-field>
@@ -58,69 +34,54 @@
     <div class="form-field-wrapper">
       <label for="end" class="form-label-1">End</label>
       <mat-form-field appearance="outline" subscriptSizing="dynamic">
-        <input
-          matInput
-          [ngxMatDatetimePicker]="endDatePicker"
-          placeholder="2025-01-01 00:00:00"
-          formControlName="end"
-        />
-        <ngx-mat-datepicker-toggle
-          matSuffix
-          [for]="endDatePicker"
-        ></ngx-mat-datepicker-toggle>
-        <ngx-mat-datetime-picker
-          #endDatePicker
-          [showSpinners]="true"
-          [showSeconds]="true"
-          [touchUi]="false"
-          [stepHour]="1"
-          [stepMinute]="1"
-          [stepSecond]="1"
-          [disableMinute]="false"
-        >
-          <mat-icon
-            ngxMatDatetimePickerToday
-            (click)="endDatePicker.close()"
-          >today
+        <input matInput [ngxMatDatetimePicker]="endDatePicker" placeholder="2025-01-01 00:00:00"
+          formControlName="end" />
+        <ngx-mat-datepicker-toggle matSuffix [for]="endDatePicker"></ngx-mat-datepicker-toggle>
+        <ngx-mat-datetime-picker #endDatePicker [showSpinners]="true" [showSeconds]="true" [touchUi]="false"
+          [stepHour]="1" [stepMinute]="1" [stepSecond]="1" [disableMinute]="false">
+          <mat-icon ngxMatDatetimePickerToday (click)="endDatePicker.close()">today
           </mat-icon>
         </ngx-mat-datetime-picker>
       </mat-form-field>
     </div>
     <button mat-raised-button color="primary" type="submit">Search</button>
   </form>
-  <div>
+  <div class="example-section">
     <b>Example</b>
     <ul>
-      <li><span (click)="setFilterText('http_status_code=200')" class="a-link-color">http_status_code=200(200/400/401/403/404/500/504...)</span>
+      <li><span (click)="setFilterText('http_status_code=200')"
+          class="a-link-color">http_status_code=200(200/400/401/403/404/500/504...)</span>
       </li>
-      <li><span (click)="setFilterText('http_method=GET')" class="a-link-color">http_method=GET(GET/POST/PUT...)</span></li>
-      <li><span (click)="setFilterText('http_method=GET&http_status_code=200')" class="a-link-color">http_method=GET&http_status_code=200</span>
+      <li><span (click)="setFilterText('http_method=GET')" class="a-link-color">http_method=GET(GET/POST/PUT...)</span>
       </li>
+      <li><span (click)="setFilterText('http_method=GET&http_status_code=200')"
+          class="a-link-color">http_method=GET&http_status_code=200</span>
+      </li>
       <li><span (click)="setFilterText('virtual_ip=10.1.1.1')" class="a-link-color">virtual_ip=10.1.1.1</span></li>
     </ul>
   </div>
   @if (totalRecordPoints > 0) {
-    <mat-grid-list cols="3" rowHeight="100px">
-      <mat-grid-tile colspan="3" rowspan="3">
-        <mat-card class="dashboard-card" appearance="outlined">
-          <mat-card-content class="card-content-wrapper">
-            <div class="card-header-row">
-              <mat-card-title class="card-title">
-                <span class="card-title-text">Total Records - {{ totalRecordPoints }}</span>
-              </mat-card-title>
-            </div>
-            <div class="chart-flex-container">
-              <div echarts [options]="chartOption1" (chartClick)="onChartClick($event)" class="chart-container"></div>
-            </div>
-          </mat-card-content>
-        </mat-card>
-      </mat-grid-tile>
-    </mat-grid-list>
+  <mat-grid-list cols="3" rowHeight="100px">
+    <mat-grid-tile colspan="3" rowspan="3">
+      <mat-card class="dashboard-card" appearance="outlined">
+        <mat-card-content class="card-content-wrapper">
+          <div class="card-header-row">
+            <mat-card-title class="card-title">
+              <span class="card-title-text">Total Records - {{ totalRecordPoints }}</span>
+            </mat-card-title>
+          </div>
+          <div class="chart-flex-container">
+            <div echarts [options]="chartOption1" (chartClick)="onChartClick($event)" class="chart-container"></div>
+          </div>
+        </mat-card-content>
+      </mat-card>
+    </mat-grid-tile>
+  </mat-grid-list>
   }
   <mat-card class="page-card-1" appearance="filled">
     <mat-card-content>
       <div class="table-container">
-        <table mat-table [dataSource]="dataSource" class="mat-elevation-z1">
+        <table mat-table [dataSource]="dataSource" class="an-table mat-elevation-z1">
           <ng-container matColumnDef="serial">
             <th mat-header-cell *matHeaderCellDef> No.</th>
             <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
@@ -135,7 +96,8 @@
           </ng-container>
           <ng-container matColumnDef="useragent">
             <th mat-header-cell *matHeaderCellDef> User Agent</th>
-            <td mat-cell *matCellDef="let element">{{ element?.useragent?.device?.name +', '+ element?.useragent?.os?.full +', '+ element?.useragent?.name +', '+ element?.useragent?.version }}</td>
+            <td mat-cell *matCellDef="let element">{{ element?.useragent?.device?.name +', '+
+              element?.useragent?.os?.full +', '+ element?.useragent?.name +', '+ element?.useragent?.version }}</td>
           </ng-container>
           <ng-container matColumnDef="method">
             <th mat-header-cell *matHeaderCellDef class="action-header w-10"> Method</th>
@@ -159,13 +121,9 @@
             <td class="mat-cell" colspan="8">No results found.</td>
           </tr>
         </table>
-        <mat-paginator
-          [length]="totalRecords"
-          [pageSize]="10"
-          showFirstLastButtons
-        >
+        <mat-paginator [length]="totalRecords" [pageSize]="10" showFirstLastButtons>
         </mat-paginator>
       </div>
     </mat-card-content>
   </mat-card>
-</div>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-elaborate/log-analysis-slb-elaborate.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-elaborate/log-analysis-slb-elaborate.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-elaborate/log-analysis-slb-elaborate.scss	(working copy)
@@ -1,9 +1,10 @@
 .filter-row {
   display: flex;
-  gap: 15px;
+  gap: 15px; // Reduced gap
   flex-wrap: wrap;
-  margin-top: 15px;
+  margin-top: 0; // Removed top margin
   align-items: center;
+  padding: 12px 16px; // Reduced padding
 
   .filter-field {
     min-width: 180px;
@@ -12,25 +13,107 @@
 }
 
 .page-card-1 {
-  width: 100%;
-  border-radius: 0;
-  background-color: inherit;
-  font-size: 14px !important;
+  .mat-mdc-card-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 12px 16px;
+    // Removed border-bottom
 
-  mat-card-header {
-    color: #1170cf;
+    .mat-mdc-card-title {
+      font-size: 18px;
+      font-weight: 500;
+      margin: 0;
+
+      .back-to-main-page {
+        color: #1170cf;
+        text-decoration: none;
+        cursor: pointer;
+        display: flex;
+        align-items: center;
+        gap: 8px;
+        font-size: 16px;
+
+        &:hover {
+          text-decoration: underline;
+        }
+      }
+    }
   }
+
+  .mat-mdc-card-content {
+    padding: 0; // Removed padding to let children handle it
+  }
 }
 
-mat-card-header {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 4px 10px;
+.table-container {
+  border: 1px solid #e0e0e0; // Restored border
+  border-radius: 4px;
+  margin-top: 0; // Removed margin
+
+  table.an-table {
+    width: 100%;
+
+    th.mat-header-cell {
+      font-weight: 600;
+      color: #444;
+      background-color: #f9fafb;
+      padding: 10px 12px; // Reduced padding
+      font-size: 14px;
+      border-bottom: 1px solid #e0e0e0;
+    }
+
+    td.mat-cell {
+      padding: 10px 12px; // Reduced padding
+      color: #333;
+      font-size: 14px;
+      border-bottom: 1px solid #f0f0f0;
+    }
+
+    tr.mat-row {
+      &:hover {
+        background-color: #f5f7fa;
+      }
+
+      &:last-child td {
+        border-bottom: none;
+      }
+    }
+  }
 }
 
-mat-card-title {
-  font-size: medium;
+.example-section {
+  padding: 0 16px 16px 16px;
+
+  b {
+    display: block;
+    margin-bottom: 8px;
+    color: #444;
+    font-size: 14px;
+  }
+
+  ul {
+    list-style-type: none;
+    padding: 0;
+    margin: 0;
+    display: flex;
+    flex-direction: column;
+    gap: 4px;
+
+    li {
+      font-size: 13px;
+      color: #666;
+
+      .a-link-color {
+        color: #1976d2;
+        cursor: pointer;
+
+        &:hover {
+          text-decoration: underline;
+        }
+      }
+    }
+  }
 }
 
 .dashboard-card {
@@ -57,18 +140,6 @@
   padding: 0 8px;
 }
 
-.card-header-row-1 {
-  display: flex;
-  align-items: center;
-  gap: 6px;
-  margin-bottom: 0;
-  padding: 0 4px;
-}
-
-.metric-icon {
-  color: #3f51b5;
-}
-
 .card-title {
   font-size: 14px;
   font-weight: 500;
@@ -80,59 +151,6 @@
   width: 100%;
 }
 
-.card-title-1 {
-  font-size: 12px;
-  font-weight: 400;
-  color: #555;
-  margin: 0;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  width: 100%;
-}
-
-.metric-value {
-  display: flex;
-  justify-content: center;
-  align-items: flex-end;
-  line-height: 1;
-}
-
-.metric-label {
-  display: flex;
-  justify-content: center;
-  align-items: flex-end;
-  font-size: 0.9rem;
-  color: #777;
-  margin-top: 5px;
-}
-
-.online-count {
-  font-size: 36px;
-  font-weight: 600;
-  color: #333;
-}
-
-.total-count {
-  font-size: 18px;
-  font-weight: 500;
-  color: #888;
-  margin-left: 4px;
-}
-
-.status-details {
-  font-size: 14px;
-  color: #d32f2f;
-  margin: 0;
-  font-weight: 500;
-  text-align: center;
-}
-
-.active,
-.matrics-icon {
-  color: darkgreen;
-}
-
 .chart-flex-container {
   display: flex;
   justify-content: space-around;
@@ -142,19 +160,6 @@
   flex-grow: 1;
 }
 
-.chart-flex-container-2 {
-
-}
-
-.small-table{
-  .mat-mdc-table {
-    background-color: transparent;
-  }
-  .mat-mdc-row {
-    height: 30px;
-  }
-}
-
 .chart-container {
   width: 100%;
   height: 100%;
@@ -172,68 +177,17 @@
   width: 100%;
 }
 
-.metrics-container {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  gap: 20px;
-}
-
-.card-body-content {
-  flex-grow: 1;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-
-.metrics-horizontal-container {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  gap: 20px;
-  width: 100%;
-}
-
-.metric-item {
-  text-align: center;
-  flex: 1;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
-}
-
-.metric-value {
-  font-size: 1rem;
+.a-link-color {
+  color: #1976d2;
+  cursor: pointer;
+  text-decoration: none;
   font-weight: 500;
-  color: #333;
-}
 
-.page-card-1 {
-  width: 100%;
-  border-radius: 0;
-  background-color: inherit;
-  font-size: 14px !important;
-
-  mat-card-header {
-    color: #1170cf;
+  &:hover {
+    text-decoration: underline;
   }
 }
 
-mat-card-header {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 4px 10px;
-}
-
-mat-card-title {
-  font-size: medium;
-}
-
-.submit-button-wrapper {
-  display: flex;
-  justify-content: center;
-  margin-top: 20px;
-}
-
+.w-10 {
+  width: 10%;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-overview/log-analysis-slb-overview.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-overview/log-analysis-slb-overview.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-overview/log-analysis-slb-overview.html	(working copy)
@@ -1,49 +1,46 @@
 <mat-card class="page-card-1" appearance="filled">
+  <mat-card-header>
+    <mat-card-title>SLB Virtual Services</mat-card-title>
+  </mat-card-header>
   <mat-card-content>
     <div class="table-container">
-      <div class="mat-elevation-z0">
-        <table mat-table [dataSource]="dataSource">
-          <ng-container matColumnDef="serial">
-            <th mat-header-cell *matHeaderCellDef>ID</th>
-            <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
-          </ng-container>
-          <ng-container matColumnDef="serviceName">
-            <th mat-header-cell *matHeaderCellDef>Service Name</th>
-            <td mat-cell *matCellDef="let element">
-              <a class="details-page-link" (click)="goToDetails(element)">{{ element?.service_name }}</a>
-            </td>
-          </ng-container>
-          <ng-container matColumnDef="serviceType">
-            <th mat-header-cell *matHeaderCellDef>Service Type</th>
-            <td mat-cell *matCellDef="let element">{{ element?.protocol | uppercase }}</td>
-          </ng-container>
-          <ng-container matColumnDef="ip">
-            <th mat-header-cell *matHeaderCellDef>IP Address</th>
-            <td mat-cell *matCellDef="let element">{{ element?.vip }}</td>
-          </ng-container>
-          <ng-container matColumnDef="deviceName">
-            <th mat-header-cell *matHeaderCellDef>Device Name</th>
-            <td mat-cell *matCellDef="let element">
-              <a class="details-page-link" (click)="goToDeviceDetails(element)">{{ element?.device_name }}</a>
-            </td>
-          </ng-container>
-          <ng-container matColumnDef="deviceGroup">
-            <th mat-header-cell *matHeaderCellDef>Device Group</th>
-            <td mat-cell *matCellDef="let element">{{ element?.device_group }}</td>
-          </ng-container>
-          <tr mat-header-row *matHeaderRowDef="dataColumns"></tr>
-          <tr mat-row *matRowDef="let row; columns: dataColumns;"></tr>
-          <tr class="mat-row table-no-data" *matNoDataRow>
-            <td class="mat-cell" colspan="11">No results found.</td>
-          </tr>
-        </table>
-        <mat-paginator
-          [length]="totalRecords"
-          [pageSize]="10"
-          [pageSizeOptions]="[10, 20, 50]"
-        >
-        </mat-paginator>
-      </div>
+      <table mat-table [dataSource]="dataSource" class="an-table">
+        <ng-container matColumnDef="serial">
+          <th mat-header-cell *matHeaderCellDef class="w-10">ID</th>
+          <td mat-cell *matCellDef="let element; let i = index;"> {{ i | globalSerial }}</td>
+        </ng-container>
+        <ng-container matColumnDef="serviceName">
+          <th mat-header-cell *matHeaderCellDef>Service Name</th>
+          <td mat-cell *matCellDef="let element">
+            <a class="details-page-link" (click)="goToDetails(element)">{{ element?.service_name }}</a>
+          </td>
+        </ng-container>
+        <ng-container matColumnDef="serviceType">
+          <th mat-header-cell *matHeaderCellDef>Service Type</th>
+          <td mat-cell *matCellDef="let element">{{ element?.protocol | uppercase }}</td>
+        </ng-container>
+        <ng-container matColumnDef="ip">
+          <th mat-header-cell *matHeaderCellDef>IP Address</th>
+          <td mat-cell *matCellDef="let element">{{ element?.vip }}</td>
+        </ng-container>
+        <ng-container matColumnDef="deviceName">
+          <th mat-header-cell *matHeaderCellDef>Device Name</th>
+          <td mat-cell *matCellDef="let element">
+            <a class="details-page-link" (click)="goToDeviceDetails(element)">{{ element?.device_name }}</a>
+          </td>
+        </ng-container>
+        <ng-container matColumnDef="deviceGroup">
+          <th mat-header-cell *matHeaderCellDef>Device Group</th>
+          <td mat-cell *matCellDef="let element">{{ element?.device_group }}</td>
+        </ng-container>
+        <tr mat-header-row *matHeaderRowDef="dataColumns"></tr>
+        <tr mat-row *matRowDef="let row; columns: dataColumns;"></tr>
+        <tr class="mat-row table-no-data" *matNoDataRow>
+          <td class="mat-cell" colspan="11">No results found.</td>
+        </tr>
+      </table>
+      <mat-paginator [length]="totalRecords" [pageSize]="10" [pageSizeOptions]="[10, 20, 50]">
+      </mat-paginator>
     </div>
   </mat-card-content>
-</mat-card>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-overview/log-analysis-slb-overview.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-overview/log-analysis-slb-overview.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/log-analysis-slb-overview/log-analysis-slb-overview.scss	(working copy)
@@ -0,0 +1,77 @@
+.page-card-1 {
+    .mat-mdc-card-header {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        padding: 12px 16px;
+        border-bottom: 1px solid #e0e0e0;
+
+        .mat-mdc-card-title {
+            font-size: 18px;
+            font-weight: 500;
+            margin: 0;
+        }
+    }
+
+    .mat-mdc-card-content {
+        padding: 12px;
+    }
+}
+
+.table-container {
+    border: 1px solid #e0e0e0;
+    border-radius: 4px;
+
+    table.an-table {
+        width: 100%;
+
+        th.mat-header-cell {
+            font-weight: 600;
+            color: #444;
+            background-color: #f9fafb;
+            padding: 10px 12px;
+            font-size: 14px;
+            border-bottom: 1px solid #e0e0e0;
+        }
+
+        td.mat-cell {
+            padding: 10px 12px;
+            color: #333;
+            font-size: 14px;
+            border-bottom: 1px solid #f0f0f0;
+        }
+
+        tr.mat-row {
+            &:hover {
+                background-color: #f5f7fa;
+            }
+
+            &:last-child td {
+                border-bottom: none;
+            }
+        }
+    }
+}
+
+.details-page-link {
+    color: #1976d2;
+    cursor: pointer;
+    text-decoration: none;
+    font-weight: 500;
+    transition: color 0.2s;
+
+    &:hover {
+        color: #1565c0;
+        text-decoration: underline;
+    }
+}
+
+.w-10 {
+    width: 10%;
+    text-align: center;
+}
+
+td.mat-cell:first-child,
+th.mat-header-cell:first-child {
+    text-align: center;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/operation-logs/operation-logs.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/operation-logs/operation-logs.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/operation-logs/operation-logs.html	(working copy)
@@ -1,104 +1,93 @@
-<div class="button-container">
-  <button mat-raised-button (click)="deleteAllLogs()" class="warning" matTooltip="Delete all logs">
-    Delete All
-  </button>
-</div>
-<div class="table-container">
-  <div class="filter-row">
-    <mat-form-field appearance="outline" class="filter-field">
-      <mat-label>Log Level</mat-label>
-      <mat-select [(ngModel)]="filterValues.level" (selectionChange)="applyFilters()">
-        @for (level of availableLevels; track level) {
-          <mat-option [value]="level.value">{{ level.displayName }}</mat-option>
-        }
-      </mat-select>
-    </mat-form-field>
+<mat-card class="admin-card" appearance="outlined">
+  <mat-card-header>
+    <mat-card-title>Operational Logs</mat-card-title>
+    <div class="header-actions">
+      <button mat-raised-button (click)="deleteAllLogs()" color="warn" matTooltip="Delete all logs">
+        Delete All
+      </button>
+    </div>
+  </mat-card-header>
+  <mat-card-content>
+    <div class="table-container">
+      <div class="filter-row">
+        <mat-form-field appearance="outline" class="filter-field" subscriptSizing="dynamic">
+          <mat-label>Log Level</mat-label>
+          <mat-select [(ngModel)]="filterValues.level" (selectionChange)="applyFilters()">
+            @for (level of availableLevels; track level) {
+            <mat-option [value]="level.value">{{ level.displayName }}</mat-option>
+            }
+          </mat-select>
+        </mat-form-field>
 
-    <mat-form-field appearance="outline" class="filter-field">
-      <mat-label>Module</mat-label>
-      <mat-select [(ngModel)]="filterValues.module" (selectionChange)="applyFilters()">
-        <mat-option value="">All</mat-option>
-        @for (_module of availableModules; track _module) {
-          <mat-option [value]="_module">{{ _module | titlecase }}</mat-option>
-        }
-      </mat-select>
-    </mat-form-field>
+        <mat-form-field appearance="outline" class="filter-field" subscriptSizing="dynamic">
+          <mat-label>Module</mat-label>
+          <mat-select [(ngModel)]="filterValues.module" (selectionChange)="applyFilters()">
+            <mat-option value="">All</mat-option>
+            @for (_module of availableModules; track _module) {
+            <mat-option [value]="_module">{{ _module | titlecase }}</mat-option>
+            }
+          </mat-select>
+        </mat-form-field>
 
-    <mat-form-field appearance="outline" class="filter-field">
-      <mat-label>Username</mat-label>
-      <input
-        matInput
-        [ngModel]="filterValues.username"
-        (ngModelChange)="usernameSearch$.next($event)"
-        placeholder="Search username"
-      />
-    </mat-form-field>
+        <mat-form-field appearance="outline" class="filter-field" subscriptSizing="dynamic">
+          <mat-label>Username</mat-label>
+          <input matInput [ngModel]="filterValues.username" (ngModelChange)="usernameSearch$.next($event)"
+            placeholder="Search username" />
+        </mat-form-field>
 
-    <mat-form-field appearance="outline" class="filter-field">
-      <mat-label>IP</mat-label>
-      <input
-        matInput
-        [ngModel]="filterValues.ip"
-        (ngModelChange)="ipSearch$.next($event)"
-        placeholder="Search IP"
-      />
-    </mat-form-field>
+        <mat-form-field appearance="outline" class="filter-field" subscriptSizing="dynamic">
+          <mat-label>IP</mat-label>
+          <input matInput [ngModel]="filterValues.ip" (ngModelChange)="ipSearch$.next($event)"
+            placeholder="Search IP" />
+        </mat-form-field>
+      </div>
 
-    <!--    <div class="clear-filter-button">-->
-    <!--      <button mat-stroked-button color="primary" (click)="clearFilters()" matTooltip="Clear all filters">-->
-    <!--        Clear Filters-->
-    <!--      </button>-->
-    <!--    </div>-->
-  </div>
-
-  <table mat-table [dataSource]="logDataSource" class="mat-elevation-z1">
-    <ng-container matColumnDef="serial">
-      <th mat-header-cell *matHeaderCellDef>Id.</th>
-      <td mat-cell *matCellDef="let element; let i = index;">{{ element.id }}</td>
-    </ng-container>
-    <ng-container matColumnDef="datetime">
-      <th mat-header-cell *matHeaderCellDef>Timestamp</th>
-      <td mat-cell *matCellDef="let element">{{ element.time }}</td>
-    </ng-container>
-    <ng-container matColumnDef="level">
-      <th mat-header-cell *matHeaderCellDef>Level</th>
-      <td mat-cell *matCellDef="let element">{{ element.level }}</td>
-    </ng-container>
-    <ng-container matColumnDef="username">
-      <th mat-header-cell *matHeaderCellDef>Username</th>
-      <td mat-cell *matCellDef="let element">{{ element.username }}</td>
-    </ng-container>
-    <ng-container matColumnDef="ip">
-      <th mat-header-cell *matHeaderCellDef>IP</th>
-      <td mat-cell *matCellDef="let element">{{ element.client_ip }}</td>
-    </ng-container>
-    <ng-container matColumnDef="module">
-      <th mat-header-cell *matHeaderCellDef>Module</th>
-      <td mat-cell *matCellDef="let element">{{ element.module }}</td>
-    </ng-container>
-    <ng-container matColumnDef="operation">
-      <th mat-header-cell *matHeaderCellDef>Operation</th>
-      <td mat-cell *matCellDef="let element">{{ element.operation }}</td>
-    </ng-container>
-    <ng-container matColumnDef="action">
-      <th mat-header-cell *matHeaderCellDef class="action-header w-10">Action</th>
-      <td mat-cell *matCellDef="let element">
-        <div class="row-action a-link">
-          <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete log"
-                   (click)="deleteOperationalLog(element)"></fa-icon>
-        </div>
-      </td>
-    </ng-container>
-    <tr mat-header-row *matHeaderRowDef="logColumns"></tr>
-    <tr mat-row *matRowDef="let row; columns: logColumns;"></tr>
-    <tr class="mat-row table-no-data" *matNoDataRow>
-      <td class="mat-cell" colspan="8">No results found.</td>
-    </tr>
-  </table>
-  <mat-paginator
-    [pageSizeOptions]="[10, 15, 20, 25]"
-    [pageSize]="reqPayload.number"
-    [length]="totalRecords"
-    showFirstLastButtons
-  ></mat-paginator>
-</div>
+      <table mat-table [dataSource]="logDataSource" class="details-table">
+        <ng-container matColumnDef="serial">
+          <th mat-header-cell *matHeaderCellDef>Id.</th>
+          <td mat-cell *matCellDef="let element; let i = index;">{{ element.id }}</td>
+        </ng-container>
+        <ng-container matColumnDef="datetime">
+          <th mat-header-cell *matHeaderCellDef>Timestamp</th>
+          <td mat-cell *matCellDef="let element">{{ element.time }}</td>
+        </ng-container>
+        <ng-container matColumnDef="level">
+          <th mat-header-cell *matHeaderCellDef>Level</th>
+          <td mat-cell *matCellDef="let element">{{ element.level }}</td>
+        </ng-container>
+        <ng-container matColumnDef="username">
+          <th mat-header-cell *matHeaderCellDef>Username</th>
+          <td mat-cell *matCellDef="let element">{{ element.username }}</td>
+        </ng-container>
+        <ng-container matColumnDef="ip">
+          <th mat-header-cell *matHeaderCellDef>IP</th>
+          <td mat-cell *matCellDef="let element">{{ element.client_ip }}</td>
+        </ng-container>
+        <ng-container matColumnDef="module">
+          <th mat-header-cell *matHeaderCellDef>Module</th>
+          <td mat-cell *matCellDef="let element">{{ element.module }}</td>
+        </ng-container>
+        <ng-container matColumnDef="operation">
+          <th mat-header-cell *matHeaderCellDef>Operation</th>
+          <td mat-cell *matCellDef="let element">{{ element.operation }}</td>
+        </ng-container>
+        <ng-container matColumnDef="action">
+          <th mat-header-cell *matHeaderCellDef class="action-header w-10">Action</th>
+          <td mat-cell *matCellDef="let element">
+            <div class="row-action a-link">
+              <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete log"
+                (click)="deleteOperationalLog(element)"></fa-icon>
+            </div>
+          </td>
+        </ng-container>
+        <tr mat-header-row *matHeaderRowDef="logColumns"></tr>
+        <tr mat-row *matRowDef="let row; columns: logColumns;"></tr>
+        <tr class="mat-row table-no-data" *matNoDataRow>
+          <td class="mat-cell" colspan="8">No results found.</td>
+        </tr>
+      </table>
+      <mat-paginator [pageSizeOptions]="[10, 15, 20, 25]" [pageSize]="reqPayload.number" [length]="totalRecords"
+        showFirstLastButtons></mat-paginator>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/operation-logs/operation-logs.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/operation-logs/operation-logs.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/operation-logs/operation-logs.scss	(working copy)
@@ -1,12 +1,94 @@
-.filter-row {
+:host {
+  height: 100%;
+  display: block;
+}
+
+.admin-card {
+  height: calc(100% - 32px); // Account for 16px margin on top and bottom
   display: flex;
-  gap: 15px;
-  flex-wrap: wrap;
-  margin-top: 15px;
-  align-items: center;
+  flex-direction: column;
+  border: 1px solid #dadce0;
+  border-radius: 12px;
+  overflow: hidden;
+  background: #fff;
+  margin: 16px;
 
-  .filter-field {
-    min-width: 180px;
+  mat-card-header {
+    padding: 12px 24px;
+    background-color: #fff;
+    border-bottom: 1px solid #dadce0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    mat-card-title {
+      font-size: 18px;
+      font-weight: 500;
+      color: #1976d2;
+      margin: 0;
+    }
+
+    .header-actions {
+      display: flex;
+      gap: 12px;
+
+      // Red danger button for Delete All
+      button[color="warn"] {
+        background-color: #fff !important;
+        color: #d93025 !important;
+        border: 1px solid #d93025 !important;
+      }
+    }
+  }
+
+  mat-card-content {
+    padding: 0;
     flex: 1;
+    display: flex;
+    flex-direction: column;
+    overflow: hidden;
   }
 }
+
+.table-container {
+  flex: 1;
+  overflow: auto;
+  padding: 0;
+
+  .filter-row {
+    display: grid;
+    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+    gap: 16px;
+    padding: 16px 24px;
+    align-items: center;
+
+    .filter-field {
+      width: 100%;
+    }
+  }
+
+  .details-table {
+    width: 100%;
+
+    tr.mat-mdc-row {
+      &:hover {
+        background-color: #f8f9fa;
+      }
+    }
+
+    .row-action {
+      cursor: pointer;
+      color: #5f6368;
+
+      fa-icon {
+        &.delete-icon:hover {
+          color: #d93025;
+        }
+      }
+    }
+  }
+}
+
+mat-paginator {
+  border-top: 1px solid #dadce0;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/role-management/role-management.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/role-management/role-management.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/role-management/role-management.html	(working copy)
@@ -1,40 +1,43 @@
-<div class="button-container">
-  <button mat-raised-button (click)="addRole()" matTooltip="Add Role">
-    Add Role
-  </button>
-</div>
-<div class="table-container">
-  <table mat-table [dataSource]="roleDataSource" class="mat-elevation-z1">
-    <ng-container matColumnDef="serial">
-      <th mat-header-cell *matHeaderCellDef>Id.</th>
-      <td mat-cell *matCellDef="let element; let i = index;">{{ i | globalSerial }}</td>
-    </ng-container>
-    <ng-container matColumnDef="role_name">
-      <th mat-header-cell *matHeaderCellDef>Role Name</th>
-      <td mat-cell *matCellDef="let element">{{ element.role_name }}</td>
-    </ng-container>
-    <ng-container matColumnDef="action">
-      <th mat-header-cell *matHeaderCellDef class="action-header w-10">Action</th>
-      <td mat-cell *matCellDef="let element">
-        <div class="row-action a-link">
-          <fa-icon [icon]="['far', 'edit']" size="lg" matTooltip="Rename"
-                   (click)="renameRole(element)"></fa-icon> &nbsp;&nbsp;
-          <fa-icon [icon]="['fas', 'server']" size="lg" matTooltip="Device Management"
-                   (click)="goToDetails(element)"></fa-icon> &nbsp;&nbsp;
-          <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete Role"
-                   (click)="deleteRole(element)"></fa-icon>
-        </div>
-      </td>
-    </ng-container>
-    <tr mat-header-row *matHeaderRowDef="roleColumns"></tr>
-    <tr mat-row *matRowDef="let row; columns: roleColumns;"></tr>
-    <tr class="mat-row table-no-data" *matNoDataRow>
-      <td class="mat-cell" colspan="8">No results found.</td>
-    </tr>
-  </table>
-  <mat-paginator
-    [pageSizeOptions]="[10, 15, 20, 25]"
-    [length]="totalRecords"
-    showFirstLastButtons
-  ></mat-paginator>
-</div>
+<mat-card class="admin-card" appearance="outlined">
+  <mat-card-header>
+    <mat-card-title>Role Management</mat-card-title>
+    <div class="header-actions">
+      <button mat-raised-button (click)="addRole()" color="primary" matTooltip="Add Role">
+        Add Role
+      </button>
+    </div>
+  </mat-card-header>
+  <mat-card-content>
+    <div class="table-container">
+      <table mat-table [dataSource]="roleDataSource" class="details-table">
+        <ng-container matColumnDef="serial">
+          <th mat-header-cell *matHeaderCellDef>Id.</th>
+          <td mat-cell *matCellDef="let element; let i = index;">{{ i | globalSerial }}</td>
+        </ng-container>
+        <ng-container matColumnDef="role_name">
+          <th mat-header-cell *matHeaderCellDef>Role Name</th>
+          <td mat-cell *matCellDef="let element">{{ element.role_name }}</td>
+        </ng-container>
+        <ng-container matColumnDef="action">
+          <th mat-header-cell *matHeaderCellDef class="action-header w-10">Action</th>
+          <td mat-cell *matCellDef="let element">
+            <div class="row-action a-link">
+              <fa-icon [icon]="['far', 'edit']" size="lg" matTooltip="Rename" (click)="renameRole(element)"></fa-icon>
+              &nbsp;&nbsp;
+              <fa-icon [icon]="['fas', 'server']" size="lg" matTooltip="Device Management"
+                (click)="goToDetails(element)"></fa-icon> &nbsp;&nbsp;
+              <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete Role"
+                (click)="deleteRole(element)"></fa-icon>
+            </div>
+          </td>
+        </ng-container>
+        <tr mat-header-row *matHeaderRowDef="roleColumns"></tr>
+        <tr mat-row *matRowDef="let row; columns: roleColumns;"></tr>
+        <tr class="mat-row table-no-data" *matNoDataRow>
+          <td class="mat-cell" colspan="8">No results found.</td>
+        </tr>
+      </table>
+      <mat-paginator [pageSizeOptions]="[10, 15, 20, 25]" [length]="totalRecords" showFirstLastButtons></mat-paginator>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/role-management/role-management.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/role-management/role-management.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/role-management/role-management.scss	(working copy)
@@ -0,0 +1,79 @@
+:host {
+    height: 100%;
+    display: block;
+}
+
+.admin-card {
+    height: calc(100% - 32px); // Account for 16px margin on top and bottom
+    display: flex;
+    flex-direction: column;
+    border: 1px solid #dadce0;
+    border-radius: 12px;
+    overflow: hidden;
+    background: #fff;
+    margin: 16px;
+
+    mat-card-header {
+        padding: 12px 24px;
+        background-color: #fff;
+        border-bottom: 1px solid #dadce0;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        mat-card-title {
+            font-size: 18px;
+            font-weight: 500;
+            color: #1976d2;
+            margin: 0;
+        }
+
+        .header-actions {
+            display: flex;
+            gap: 12px;
+        }
+    }
+
+    mat-card-content {
+        padding: 0;
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        overflow: hidden;
+    }
+}
+
+.table-container {
+    flex: 1;
+    overflow: auto;
+    padding: 0;
+
+    .details-table {
+        width: 100%;
+
+        tr.mat-mdc-row {
+            &:hover {
+                background-color: #f8f9fa;
+            }
+        }
+
+        .row-action {
+            cursor: pointer;
+            color: #5f6368;
+
+            fa-icon {
+                &:hover {
+                    color: #1976d2;
+                }
+
+                &.delete-icon:hover {
+                    color: #d93025;
+                }
+            }
+        }
+    }
+}
+
+mat-paginator {
+    border-top: 1px solid #dadce0;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-log-location/storage-log-location.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-log-location/storage-log-location.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-log-location/storage-log-location.html	(working copy)
@@ -1,118 +1,101 @@
-<mat-grid-list cols="2" rowHeight="100px">
-  <mat-grid-tile colspan="1" rowspan="2">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Log Location Configuration</span>
-            <div class="row-action a-link">
-              <fa-icon [icon]="['fas', 'circle-info']" matTooltip="In addition, AMP supports secondary storage for long-term log retention by mounting an external secondary
-                  storage device on the AMP. On successful mounting, users can avail this option by selecting 'Secondary' in
-                  the 'Choose Storage for Logs' menu below." class="fa-1x blue-icon"></fa-icon>
-            </div>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <form
-            (ngSubmit)="updateLogsStorage()"
-            [formGroup]="configForm"
-          >
-            <div class="form-field-wrapper">
-              <label for="storage" class="form-label">Choose Storage for Logs</label>
-              <mat-form-field appearance="outline" subscriptSizing="dynamic">
-                <mat-select formControlName="storage">
-                  @for (_store of storageLocations; track _store) {
-                    <mat-option [value]="_store.value">{{ _store.label }}</mat-option>
-                  }
-                </mat-select>
-              </mat-form-field>
-            </div>
-          </form>
-          <div class="align-center">
-            <button
-              mat-raised-button
-              color="primary"
-              (click)="updateLogsStorage()">
-              Update Storage
-            </button>
+<div class="dashboard-grid">
+  <!-- Log Location Configuration -->
+  <mat-card class="storage-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>
+        Log Location Configuration
+        <fa-icon [icon]="['fas', 'circle-info']"
+          matTooltip="In addition, AMP supports secondary storage for long-term log retention by mounting an external secondary storage device on the AMP. On successful mounting, users can avail this option by selecting 'Secondary' in the 'Choose Storage for Logs' menu below."
+          class="info-icon"></fa-icon>
+      </mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="content-padding">
+        <form (ngSubmit)="updateLogsStorage()" [formGroup]="configForm" class="common-form">
+          <div class="form-field-wrapper">
+            <label for="storage" class="form-label">Choose Storage for Logs</label>
+            <mat-form-field appearance="outline" subscriptSizing="dynamic">
+              <mat-select formControlName="storage">
+                @for (_store of storageLocations; track _store) {
+                <mat-option [value]="_store.value">{{ _store.label }}</mat-option>
+                }
+              </mat-select>
+            </mat-form-field>
           </div>
+        </form>
+        <div class="align-right">
+          <button mat-raised-button color="primary" (click)="updateLogsStorage()">
+            Update Storage
+          </button>
         </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="2">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Storage Management</span>
-          </mat-card-title>
-        </div>
-        <div class="table-container">
-          <div class="mat-elevation-z0">
-            <table mat-table [dataSource]="storageDataSource">
-              <ng-container matColumnDef="storage">
-                <th mat-header-cell *matHeaderCellDef>Storage</th>
-                <td mat-cell *matCellDef="let element">{{ element?.name | titlecase }}</td>
-              </ng-container>
-              <ng-container matColumnDef="total">
-                <th mat-header-cell *matHeaderCellDef>Total</th>
-                <td mat-cell *matCellDef="let element">{{ element?.total | bytes }}</td>
-              </ng-container>
-              <ng-container matColumnDef="used">
-                <th mat-header-cell *matHeaderCellDef>Used</th>
-                <td mat-cell *matCellDef="let element">{{ element?.used | bytes }}</td>
-              </ng-container>
-              <ng-container matColumnDef="free">
-                <th mat-header-cell *matHeaderCellDef>Free</th>
-                <td mat-cell *matCellDef="let element">{{ element?.free | bytes }}</td>
-              </ng-container>
-              <tr mat-header-row *matHeaderRowDef="storageColumns"></tr>
-              <tr mat-row *matRowDef="let row; columns: storageColumns;"></tr>
-              <tr class="mat-row table-no-data" *matNoDataRow>
-                <td class="mat-cell" colspan="4">No results found.</td>
-              </tr>
-            </table>
-          </div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="2" rowspan="4">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Archived Logs</span>
-          </mat-card-title>
-        </div>
-        <div class="table-container">
-          <div class="button-container">
-            <button mat-raised-button (click)="createArchive()">Add</button> &nbsp;&nbsp;
-          </div>
-          <div class="mat-elevation-z0">
-            <table mat-table [dataSource]="archivedLogsDataSource">
-              <ng-container matColumnDef="serial">
-                <th mat-header-cell *matHeaderCellDef>SNo.</th>
-                <td mat-cell *matCellDef="let element">{{ element?.name }}</td>
-              </ng-container>
-              <ng-container matColumnDef="filename">
-                <th mat-header-cell *matHeaderCellDef>Filename</th>
-                <td mat-cell *matCellDef="let element">{{ element?.model }}</td>
-              </ng-container>
-              <ng-container matColumnDef="action">
-                <th mat-header-cell *matHeaderCellDef>Action</th>
-                <td mat-cell *matCellDef="let element">{{ element?.ip }}</td>
-              </ng-container>
-              <tr mat-header-row *matHeaderRowDef="archivedLogsColumns"></tr>
-              <tr mat-row *matRowDef="let row; columns: archivedLogsColumns;"></tr>
-              <tr class="mat-row table-no-data" *matNoDataRow>
-                <td class="mat-cell" colspan="3">No results found.</td>
-              </tr>
-            </table>
-          </div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Storage Management -->
+  <mat-card class="storage-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Storage Management</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="table-container">
+        <table mat-table [dataSource]="storageDataSource" class="details-table">
+          <ng-container matColumnDef="storage">
+            <th mat-header-cell *matHeaderCellDef>Storage</th>
+            <td mat-cell *matCellDef="let element">{{ element?.name | titlecase }}</td>
+          </ng-container>
+          <ng-container matColumnDef="total">
+            <th mat-header-cell *matHeaderCellDef>Total</th>
+            <td mat-cell *matCellDef="let element">{{ element?.total | bytes }}</td>
+          </ng-container>
+          <ng-container matColumnDef="used">
+            <th mat-header-cell *matHeaderCellDef>Used</th>
+            <td mat-cell *matCellDef="let element">{{ element?.used | bytes }}</td>
+          </ng-container>
+          <ng-container matColumnDef="free">
+            <th mat-header-cell *matHeaderCellDef>Free</th>
+            <td mat-cell *matCellDef="let element">{{ element?.free | bytes }}</td>
+          </ng-container>
+          <tr mat-header-row *matHeaderRowDef="storageColumns"></tr>
+          <tr mat-row *matRowDef="let row; columns: storageColumns;"></tr>
+          <tr class="mat-row table-no-data" *matNoDataRow>
+            <td class="mat-cell" colspan="4">No results found.</td>
+          </tr>
+        </table>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Archived Logs -->
+  <mat-card class="storage-card full-width" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Archived Logs</mat-card-title>
+      <div class="header-actions">
+        <button mat-raised-button color="primary" (click)="createArchive()">Add Archive</button>
+      </div>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="table-container">
+        <table mat-table [dataSource]="archivedLogsDataSource" class="details-table">
+          <ng-container matColumnDef="serial">
+            <th mat-header-cell *matHeaderCellDef>SNo.</th>
+            <td mat-cell *matCellDef="let element">{{ element?.name }}</td>
+          </ng-container>
+          <ng-container matColumnDef="filename">
+            <th mat-header-cell *matHeaderCellDef>Filename</th>
+            <td mat-cell *matCellDef="let element">{{ element?.model }}</td>
+          </ng-container>
+          <ng-container matColumnDef="action">
+            <th mat-header-cell *matHeaderCellDef>Action</th>
+            <td mat-cell *matCellDef="let element">{{ element?.ip }}</td>
+          </ng-container>
+          <tr mat-header-row *matHeaderRowDef="archivedLogsColumns"></tr>
+          <tr mat-row *matRowDef="let row; columns: archivedLogsColumns;"></tr>
+          <tr class="mat-row table-no-data" *matNoDataRow>
+            <td class="mat-cell" colspan="3">No results found.</td>
+          </tr>
+        </table>
+      </div>
+    </mat-card-content>
+  </mat-card>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-log-location/storage-log-location.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-log-location/storage-log-location.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-log-location/storage-log-location.scss	(working copy)
@@ -1,63 +1,125 @@
-.storage-card {
-  width: 100%;
-  height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 16px;
+
+  @media (max-width: 900px) {
+    grid-template-columns: 1fr;
+  }
+
+  .full-width {
+    grid-column: 1 / -1;
+  }
 }
 
-.card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+.storage-card {
+  height: 100%;
   display: flex;
   flex-direction: column;
-  height: 100%;
-  width: 100%;
-}
+  border: 1px solid #dadce0; // Google's standard border color
+  border-radius: 12px; // More rounded corners
+  overflow: hidden; // Ensure content doesn't overflow rounded corners
+  transition: all 0.3s ease;
+  background: #fff;
 
-.card-header-row {
-  display: flex;
-  align-items: center;
-  gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
-}
+  &:hover {
+    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
+    transform: translateY(-2px);
+    border-color: #d0d0d0;
+  }
 
-.card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
-  margin: 0;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  width: 100%;
+  mat-card-header {
+    padding: 12px 20px;
+    background-color: #fff;
+    border-bottom: 1px solid #dadce0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    mat-card-title {
+      font-size: 16px;
+      font-weight: 600;
+      color: #1976d2;
+      margin: 0;
+      display: flex;
+      align-items: center;
+      gap: 8px;
+
+      .info-icon {
+        font-size: 14px;
+        color: #888;
+        cursor: help;
+        transition: color 0.2s;
+
+        &:hover {
+          color: #1976d2;
+        }
+      }
+    }
+
+    .header-actions {
+      margin-left: auto;
+    }
+  }
+
+  mat-card-content {
+    padding: 0;
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+  }
 }
 
-.help-block {
-  padding-left: 8px;
-  padding-right: 8px;
-  font-size: 12px;
-  font-weight: normal;
+.content-padding {
+  padding: 16px;
 }
 
-.storage-card {
-  width: 100%;
-  border-radius: 0;
-  background-color: inherit;
-  font-size: 14px !important;
+.form-field-wrapper {
+  margin-bottom: 16px;
 
-  mat-card-header {
-    color: #1170cf;
+  .form-label {
+    display: block;
+    margin-bottom: 8px;
+    font-weight: 500;
+    color: #333;
   }
 }
 
-mat-card-header {
+.align-right {
   display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 4px 10px;
+  justify-content: flex-end;
 }
 
-mat-card-title {
-  font-size: medium;
-}
+// Table Styles
+.details-table {
+  width: 100%;
+
+  tr.mat-mdc-row {
+    // height: 48px; // Removed to use global style
+
+    &:hover {
+      background-color: #f9f9f9;
+    }
+  }
+
+  th.mat-mdc-header-cell {
+    font-weight: 600;
+    color: #333;
+    padding: 0 24px;
+    // background-color: #f5f5f5; // Removed to use global style
+  }
+
+  td.mat-mdc-cell {
+    padding: 0 24px;
+    color: #333;
+    border-bottom-color: #f0f0f0;
+  }
+
+  .table-no-data {
+    td {
+      text-align: center;
+      padding: 24px;
+      color: #777;
+    }
+  }
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.html	(working copy)
@@ -1,120 +1,100 @@
-<mat-grid-list cols="3" rowHeight="100px">
-  <mat-grid-tile colspan="2" rowspan="4">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Storage Cleanup</span>
-          </mat-card-title>
-        </div>
-        <div>
-          <form
-            (ngSubmit)="updateStorageCleanupConfig()"
-            [formGroup]="configForm"
-            class="common-form"
-          >
-            <div class="form-field-wrapper">
-              <label for="schedule" class="form-label">Scheduled Cleaning</label>
-              <mat-slide-toggle formControlName="schedule"></mat-slide-toggle>
-            </div>
-            <div class="form-field-wrapper">
-              <label for="duration" class="form-label">Retention duration of Data (Days)</label>
-              <mat-form-field appearance="outline" subscriptSizing="dynamic">
-                <input id="duration" formControlName="duration" matInput placeholder="Duration" type="number"/>
-                @if (configForm.get('duration')?.invalid && configForm.get('duration')?.touched) {
-                  <mat-error>
-                    @if (configForm.get('duration')?.errors?.['required']) {
-                      Duration (Days) is required.
-                    } @else {
-                      Invalid duration format.
-                    }
-                  </mat-error>
+<div class="dashboard-grid">
+  <!-- Storage Cleanup -->
+  <mat-card class="storage-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Storage Cleanup</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="content-padding">
+        <form (ngSubmit)="updateStorageCleanupConfig()" [formGroup]="configForm" class="common-form">
+          <div class="form-field-wrapper">
+            <label class="form-label">Scheduled Cleaning</label>
+            <mat-slide-toggle formControlName="schedule"></mat-slide-toggle>
+          </div>
+          <div class="form-field-wrapper">
+            <label for="duration" class="form-label">Retention duration of Data (Days)</label>
+            <mat-form-field appearance="outline" subscriptSizing="dynamic">
+              <input id="duration" formControlName="duration" matInput placeholder="Duration" type="number" />
+              @if (configForm.get('duration')?.invalid && configForm.get('duration')?.touched) {
+              <mat-error>
+                @if (configForm.get('duration')?.errors?.['required']) {
+                Duration (Days) is required.
+                } @else {
+                Invalid duration format.
                 }
-                <mat-hint>Data exceeding the set period will be deleted.</mat-hint>
-              </mat-form-field>
-            </div>
-            <div class="form-field-wrapper">
-              <label for="percent" class="form-label">Maximum disk usage (%)</label>
-              <mat-form-field appearance="outline" subscriptSizing="dynamic">
-                <input id="percent" formControlName="percent" matInput placeholder="Disk Usage" type="number"/>
-                @if (configForm.get('percent')?.invalid && configForm.get('percent')?.touched) {
-                  <mat-error>
-                    @if (configForm.get('percent')?.errors?.['required']) {
-                      Disk usage (percentage) is required.
-                    } @else {
-                      Invalid disk usage format.
-                    }
-                  </mat-error>
+              </mat-error>
+              }
+              <mat-hint>Data exceeding the set period will be deleted.</mat-hint>
+            </mat-form-field>
+          </div>
+          <div class="form-field-wrapper">
+            <label for="percent" class="form-label">Maximum disk usage (%)</label>
+            <mat-form-field appearance="outline" subscriptSizing="dynamic">
+              <input id="percent" formControlName="percent" matInput placeholder="Disk Usage" type="number" />
+              @if (configForm.get('percent')?.invalid && configForm.get('percent')?.touched) {
+              <mat-error>
+                @if (configForm.get('percent')?.errors?.['required']) {
+                Disk usage (percentage) is required.
+                } @else {
+                Invalid disk usage format.
                 }
-                <mat-hint>Historical data is deleted when the disk limit is exceeded.</mat-hint>
-              </mat-form-field>
-            </div>
-          </form>
-          <div class="align-center">
-            <button
-              mat-raised-button
-              color="primary"
-              (click)="updateStorageCleanupConfig()">
-              Save Changes
-            </button> &nbsp;
-            <button
-              type="button"
-              mat-raised-button
-              color="accent"
-              (click)="initiateStorageCleanup()">
-              Cleanup Immediately
-            </button>
+              </mat-error>
+              }
+              <mat-hint>Historical data is deleted when the disk limit is exceeded.</mat-hint>
+            </mat-form-field>
           </div>
+        </form>
+        <div class="align-right button-group">
+          <button mat-raised-button color="primary" (click)="updateStorageCleanupConfig()">
+            Save Changes
+          </button>
+          <button type="button" mat-raised-button color="accent" (click)="initiateStorageCleanup()">
+            Cleanup Immediately
+          </button>
         </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="4">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Disk Usage ({{totalDisk | bytes}})</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="diskChartOptions" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="3" rowspan="3">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Storage Management</span>
-          </mat-card-title>
-        </div>
-        <div class="table-container">
-          <div class="mat-elevation-z0">
-            <table mat-table [dataSource]="sManagementDataSource">
-              <ng-container matColumnDef="module">
-                <th mat-header-cell *matHeaderCellDef>Module</th>
-                <td mat-cell *matCellDef="let element">{{ element?.name }}</td>
-              </ng-container>
-              <ng-container matColumnDef="path">
-                <th mat-header-cell *matHeaderCellDef>Path</th>
-                <td mat-cell *matCellDef="let element">{{ element?.path }}</td>
-              </ng-container>
-              <ng-container matColumnDef="size">
-                <th mat-header-cell *matHeaderCellDef>Size</th>
-                <td mat-cell *matCellDef="let element">{{ element?.size | bytes }}</td>
-              </ng-container>
-              <tr mat-header-row *matHeaderRowDef="sManagementColumns"></tr>
-              <tr mat-row *matRowDef="let row; columns: sManagementColumns;"></tr>
-              <tr class="mat-row table-no-data" *matNoDataRow>
-                <td class="mat-cell" colspan="3">No results found.</td>
-              </tr>
-            </table>
-          </div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Disk Usage -->
+  <mat-card class="storage-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Disk Usage ({{totalDisk | bytes}})</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="chart-container-wrapper">
+        <div echarts [options]="diskChartOptions" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Storage Management -->
+  <mat-card class="storage-card full-width" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Storage Management</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="table-container">
+        <table mat-table [dataSource]="sManagementDataSource" class="details-table">
+          <ng-container matColumnDef="module">
+            <th mat-header-cell *matHeaderCellDef>Module</th>
+            <td mat-cell *matCellDef="let element">{{ element?.name }}</td>
+          </ng-container>
+          <ng-container matColumnDef="path">
+            <th mat-header-cell *matHeaderCellDef>Path</th>
+            <td mat-cell *matCellDef="let element">{{ element?.path }}</td>
+          </ng-container>
+          <ng-container matColumnDef="size">
+            <th mat-header-cell *matHeaderCellDef>Size</th>
+            <td mat-cell *matCellDef="let element">{{ element?.size | bytes }}</td>
+          </ng-container>
+          <tr mat-header-row *matHeaderRowDef="sManagementColumns"></tr>
+          <tr mat-row *matRowDef="let row; columns: sManagementColumns;"></tr>
+          <tr class="mat-row table-no-data" *matNoDataRow>
+            <td class="mat-cell" colspan="3">No results found.</td>
+          </tr>
+        </table>
+      </div>
+    </mat-card-content>
+  </mat-card>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.scss	(working copy)
@@ -1,63 +1,124 @@
-.storage-card {
-  width: 100%;
-  height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 16px;
+
+  @media (max-width: 900px) {
+    grid-template-columns: 1fr;
+  }
+
+  .full-width {
+    grid-column: 1 / -1;
+  }
 }
 
-.card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+.storage-card {
+  height: 100%;
   display: flex;
   flex-direction: column;
-  height: 100%;
-  width: 100%;
-}
+  border: 1px solid #dadce0;
+  border-radius: 12px;
+  overflow: hidden;
+  transition: all 0.3s ease;
+  background: #fff;
 
-.card-header-row {
-  display: flex;
-  align-items: center;
-  gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  &:hover {
+    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
+    transform: translateY(-2px);
+    border-color: #d0d0d0;
+  }
+
+  mat-card-header {
+    padding: 12px 20px;
+    background-color: #fff;
+    border-bottom: 1px solid #dadce0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    mat-card-title {
+      font-size: 16px;
+      font-weight: 600;
+      color: #1976d2;
+      margin: 0;
+    }
+  }
+
+  mat-card-content {
+    padding: 0;
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+  }
 }
 
-.card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
-  margin: 0;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  width: 100%;
+.content-padding {
+  padding: 16px;
 }
 
-.help-block {
-  padding-left: 8px;
-  padding-right: 8px;
-  font-size: 12px;
-  font-weight: normal;
+.form-field-wrapper {
+  margin-bottom: 16px;
+
+  .form-label {
+    display: block;
+    margin-bottom: 8px;
+    font-weight: 500;
+    color: #333;
+  }
 }
 
-.storage-card {
-  width: 100%;
-  border-radius: 0;
-  background-color: inherit;
-  font-size: 14px !important;
+.align-right {
+  display: flex;
+  justify-content: flex-end;
 
-  mat-card-header {
-    color: #1170cf;
+  &.button-group {
+    gap: 12px;
   }
 }
 
-mat-card-header {
+.chart-container-wrapper {
+  padding: 24px;
+  height: 300px;
   display: flex;
-  justify-content: space-between;
+  justify-content: center;
   align-items: center;
-  padding: 4px 10px;
 }
 
-mat-card-title {
-  font-size: medium;
+.chart-container {
+  width: 100%;
+  height: 100%;
 }
+
+// Table Styles
+.details-table {
+  width: 100%;
+
+  tr.mat-mdc-row {
+    // height: 48px; // Removed to use global style
+
+    &:hover {
+      background-color: #f9f9f9;
+    }
+  }
+
+  th.mat-mdc-header-cell {
+    font-weight: 600;
+    color: #333;
+    padding: 0 24px;
+    // background-color: #f5f5f5; // Removed to use global style
+  }
+
+  td.mat-mdc-cell {
+    padding: 0 24px;
+    color: #333;
+    border-bottom-color: #f0f0f0;
+  }
+
+  .table-no-data {
+    td {
+      text-align: center;
+      padding: 24px;
+      color: #777;
+    }
+  }
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-primary/storage-primary.ts	(working copy)
@@ -1,14 +1,14 @@
-import {Component, OnInit} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {SystemService} from '../../../services/system-service';
-import {FormBuilder, FormGroup} from '@angular/forms';
-import {take} from 'rxjs/operators';
-import {NotificationService} from '../../../services/notification';
-import {MatTableDataSource} from '@angular/material/table';
-import {BytesPipe} from '../../../pipes/bytes-pipe';
-import {UtilsService} from '../../../services/utils-service';
-import {ChartOptions} from '../../../services/chart-options';
-import {EChartsOption} from 'echarts';
+import { Component, OnInit } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { SystemService } from '../../../services/system-service';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { take } from 'rxjs/operators';
+import { NotificationService } from '../../../services/notification';
+import { MatTableDataSource } from '@angular/material/table';
+import { BytesPipe } from '../../../pipes/bytes-pipe';
+import { UtilsService } from '../../../services/utils-service';
+import { ChartOptions } from '../../../services/chart-options';
+import { EChartsOption } from 'echarts';
 
 @Component({
   selector: 'app-storage-primary',
@@ -50,13 +50,13 @@
   getStorageCleanupConfig() {
     this._system.getStorageCleanupConfig('primary')
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this.configForm.patchValue(result);
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage cleanup config.'}`);
-      }
-    })
+        next: (result: any) => {
+          this.configForm.patchValue(result);
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage cleanup config.'}`);
+        }
+      })
   }
 
   getLatestSystemMetrics() {
@@ -68,8 +68,8 @@
             let primary = result.disk_usage[0];
             this.totalDisk = primary.total_bytes;
             let data: any = [
-              {name: 'Used', value: primary.used_bytes},
-              {name: 'Free', value: primary.total_bytes - primary.used_bytes},
+              { name: 'Used', value: primary.used_bytes },
+              { name: 'Free', value: primary.total_bytes - primary.used_bytes },
             ];
             data = this._utils.convertBytesForChart(data);
             this.diskChartOptions = this._chartOptions.pieChartOptions('Storage', data);
@@ -88,46 +88,46 @@
     this.sManagementDataSource.data = [];
     this._system.getStorageAllocation()
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        if (result && result.length > 0) {
-          result.forEach((item: any) => {
-            this.getStorageQuery(item);
-          })
+        next: (result: any) => {
+          if (result && result.length > 0) {
+            result.forEach((item: any) => {
+              this.getStorageQuery(item);
+            })
+          }
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage allocation.'}`);
         }
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage allocation.'}`);
-      }
-    })
+      })
   }
 
   getStorageQuery(payload: any): any {
     this._system.getStorageQuery(payload)
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this.storageMetrics.push({
-          name: result?.name,
-          size: result?.paths[0]?.size || 0,
-          path: result?.paths[0]?.path || 'N/A',
-        });
-        this.sManagementDataSource.data = this.storageMetrics;
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage allocation.'}`);
-      }
-    })
+        next: (result: any) => {
+          this.storageMetrics.push({
+            name: result?.name,
+            size: result?.paths[0]?.size || 0,
+            path: result?.paths[0]?.path || 'N/A',
+          });
+          this.sManagementDataSource.data = this.storageMetrics;
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage allocation.'}`);
+        }
+      })
   }
 
   updateStorageCleanupConfig() {
     this._system.updateStorageCleanupConfig(this.configForm.value)
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this._notification.showSuccess(`Successfully updated storage cleanup config.`);
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to update storage cleanup config.'}`);
-      }
-    })
+        next: (result: any) => {
+          this._notification.showSuccess(`Successfully updated storage cleanup config.`);
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to update storage cleanup config.'}`);
+        }
+      })
   }
 
   initiateStorageCleanup() {
@@ -136,12 +136,12 @@
       percent: this.configForm.value?.percent,
     })
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this._notification.showSuccess(`Successfully initialized storage cleanup activity.`);
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to initialize storage cleanup activity.'}`);
-      }
-    })
+        next: (result: any) => {
+          this._notification.showSuccess(`Successfully initialized storage cleanup activity.`);
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to initialize storage cleanup activity.'}`);
+        }
+      })
   }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.html	(working copy)
@@ -1,86 +1,70 @@
-<mat-grid-list cols="3" rowHeight="100px">
-  <mat-grid-tile colspan="2" rowspan="4">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Storage Cleanup</span>
-          </mat-card-title>
-        </div>
-        <div>
-          <form
-            (ngSubmit)="updateStorageCleanupConfig()"
-            [formGroup]="configForm"
-            class="common-form"
-          >
-            <div class="form-field-wrapper">
-              <label for="schedule" class="form-label">Scheduled Cleaning</label>
-              <mat-slide-toggle formControlName="schedule"></mat-slide-toggle>
-            </div>
-            <div class="form-field-wrapper">
-              <label for="duration" class="form-label">Retention duration of Data (Days)</label>
-              <mat-form-field appearance="outline" subscriptSizing="dynamic">
-                <input id="duration" formControlName="duration" matInput placeholder="Duration" type="number"/>
-                @if (configForm.get('duration')?.invalid && configForm.get('duration')?.touched) {
-                  <mat-error>
-                    @if (configForm.get('duration')?.errors?.['required']) {
-                      Duration (Days) is required.
-                    } @else {
-                      Invalid duration format.
-                    }
-                  </mat-error>
+<div class="dashboard-grid">
+  <!-- Storage Cleanup -->
+  <mat-card class="storage-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Storage Cleanup</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="content-padding">
+        <form (ngSubmit)="updateStorageCleanupConfig()" [formGroup]="configForm" class="common-form">
+          <div class="form-field-wrapper">
+            <label class="form-label">Scheduled Cleaning</label>
+            <mat-slide-toggle formControlName="schedule"></mat-slide-toggle>
+          </div>
+          <div class="form-field-wrapper">
+            <label for="duration" class="form-label">Retention duration of Data (Days)</label>
+            <mat-form-field appearance="outline" subscriptSizing="dynamic">
+              <input id="duration" formControlName="duration" matInput placeholder="Duration" type="number" />
+              @if (configForm.get('duration')?.invalid && configForm.get('duration')?.touched) {
+              <mat-error>
+                @if (configForm.get('duration')?.errors?.['required']) {
+                Duration (Days) is required.
+                } @else {
+                Invalid duration format.
                 }
-                <mat-hint>Data exceeding the set period will be deleted.</mat-hint>
-              </mat-form-field>
-            </div>
-            <div class="form-field-wrapper">
-              <label for="percent" class="form-label">Maximum disk usage (%)</label>
-              <mat-form-field appearance="outline" subscriptSizing="dynamic">
-                <input id="percent" formControlName="percent" matInput placeholder="Disk Usage" type="number"/>
-                @if (configForm.get('percent')?.invalid && configForm.get('percent')?.touched) {
-                  <mat-error>
-                    @if (configForm.get('percent')?.errors?.['required']) {
-                      Disk usage (percentage) is required.
-                    } @else {
-                      Invalid disk usage format.
-                    }
-                  </mat-error>
+              </mat-error>
+              }
+              <mat-hint>Data exceeding the set period will be deleted.</mat-hint>
+            </mat-form-field>
+          </div>
+          <div class="form-field-wrapper">
+            <label for="percent" class="form-label">Maximum disk usage (%)</label>
+            <mat-form-field appearance="outline" subscriptSizing="dynamic">
+              <input id="percent" formControlName="percent" matInput placeholder="Disk Usage" type="number" />
+              @if (configForm.get('percent')?.invalid && configForm.get('percent')?.touched) {
+              <mat-error>
+                @if (configForm.get('percent')?.errors?.['required']) {
+                Disk usage (percentage) is required.
+                } @else {
+                Invalid disk usage format.
                 }
-                <mat-hint>Historical data is deleted when the disk limit is exceeded.</mat-hint>
-              </mat-form-field>
-            </div>
-          </form>
-          <div class="align-center">
-            <button
-              mat-raised-button
-              color="primary"
-              (click)="updateStorageCleanupConfig()">
-              Save Changes
-            </button> &nbsp;
-            <button
-              type="button"
-              mat-raised-button
-              color="accent"
-              (click)="initiateStorageCleanup()">
-              Cleanup Immediately
-            </button>
+              </mat-error>
+              }
+              <mat-hint>Historical data is deleted when the disk limit is exceeded.</mat-hint>
+            </mat-form-field>
           </div>
+        </form>
+        <div class="align-right button-group">
+          <button mat-raised-button color="primary" (click)="updateStorageCleanupConfig()">
+            Save Changes
+          </button>
+          <button type="button" mat-raised-button color="accent" (click)="initiateStorageCleanup()">
+            Cleanup Immediately
+          </button>
         </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-  <mat-grid-tile colspan="1" rowspan="4">
-    <mat-card class="storage-card" appearance="outlined">
-      <mat-card-content class="card-content-wrapper">
-        <div class="card-header-row">
-          <mat-card-title class="card-title">
-            <span class="card-title-text">Disk Usage ({{totalDisk | bytes}})</span>
-          </mat-card-title>
-        </div>
-        <div class="chart-flex-container">
-          <div echarts [options]="storageDistributionChartOptions" class="chart-container"></div>
-        </div>
-      </mat-card-content>
-    </mat-card>
-  </mat-grid-tile>
-</mat-grid-list>
+      </div>
+    </mat-card-content>
+  </mat-card>
+
+  <!-- Disk Usage -->
+  <mat-card class="storage-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>Disk Usage ({{totalDisk | bytes}})</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <div class="chart-container-wrapper">
+        <div echarts [options]="storageDistributionChartOptions" class="chart-container"></div>
+      </div>
+    </mat-card-content>
+  </mat-card>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.scss	(working copy)
@@ -1,63 +1,86 @@
-.storage-card {
-  width: 100%;
-  height: 100%;
-  border-radius: 8px;
-  background-color: inherit;
+.dashboard-grid {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 16px;
+
+  @media (max-width: 900px) {
+    grid-template-columns: 1fr;
+  }
 }
 
-.card-content-wrapper {
-  margin-top: 2px;
-  padding: 0 !important;
+.storage-card {
+  height: 100%;
   display: flex;
   flex-direction: column;
-  height: 100%;
-  width: 100%;
-}
+  border: 1px solid #dadce0;
+  border-radius: 12px;
+  overflow: hidden;
+  transition: all 0.3s ease;
+  background: #fff;
 
-.card-header-row {
-  display: flex;
-  align-items: center;
-  gap: 6px;
-  margin-bottom: 8px;
-  padding: 0 8px;
+  &:hover {
+    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
+    transform: translateY(-2px);
+    border-color: #d0d0d0;
+  }
+
+  mat-card-header {
+    padding: 12px 20px;
+    background-color: #fff;
+    border-bottom: 1px solid #dadce0;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    mat-card-title {
+      font-size: 16px;
+      font-weight: 600;
+      color: #1976d2;
+      margin: 0;
+    }
+  }
+
+  mat-card-content {
+    padding: 0;
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+  }
 }
 
-.card-title {
-  font-size: 18px;
-  font-weight: 500;
-  color: #555;
-  margin: 0;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  width: 100%;
+.content-padding {
+  padding: 16px;
 }
 
-.help-block {
-  padding-left: 8px;
-  padding-right: 8px;
-  font-size: 12px;
-  font-weight: normal;
+.form-field-wrapper {
+  margin-bottom: 16px;
+
+  .form-label {
+    display: block;
+    margin-bottom: 8px;
+    font-weight: 500;
+    color: #333;
+  }
 }
 
-.storage-card {
-  width: 100%;
-  border-radius: 0;
-  background-color: inherit;
-  font-size: 14px !important;
+.align-right {
+  display: flex;
+  justify-content: flex-end;
 
-  mat-card-header {
-    color: #1170cf;
+  &.button-group {
+    gap: 12px;
   }
 }
 
-mat-card-header {
+.chart-container-wrapper {
+  padding: 24px;
+  height: 300px;
   display: flex;
-  justify-content: space-between;
+  justify-content: center;
   align-items: center;
-  padding: 4px 10px;
 }
 
-mat-card-title {
-  font-size: medium;
-}
+.chart-container {
+  width: 100%;
+  height: 100%;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/storage-secondary/storage-secondary.ts	(working copy)
@@ -1,13 +1,13 @@
-import {Component, OnInit} from '@angular/core';
-import {SharedModule} from '../../../shared/shared-module';
-import {take} from 'rxjs/operators';
-import {FormBuilder, FormGroup} from '@angular/forms';
-import {SystemService} from '../../../services/system-service';
-import {NotificationService} from '../../../services/notification';
-import {EChartsOption} from 'echarts';
-import {ChartOptions} from '../../../services/chart-options';
-import {UtilsService} from '../../../services/utils-service';
-import {BytesPipe} from '../../../pipes/bytes-pipe';
+import { Component, OnInit } from '@angular/core';
+import { SharedModule } from '../../../shared/shared-module';
+import { take } from 'rxjs/operators';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { SystemService } from '../../../services/system-service';
+import { NotificationService } from '../../../services/notification';
+import { EChartsOption } from 'echarts';
+import { ChartOptions } from '../../../services/chart-options';
+import { UtilsService } from '../../../services/utils-service';
+import { BytesPipe } from '../../../pipes/bytes-pipe';
 
 @Component({
   selector: 'app-storage-secondary',
@@ -45,45 +45,45 @@
   getStorageCleanupConfig() {
     this._system.getStorageCleanupConfig('secondary')
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this.configForm.patchValue(result);
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage cleanup config.'}`);
-      }
-    })
+        next: (result: any) => {
+          this.configForm.patchValue(result);
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to fetch storage cleanup config.'}`);
+        }
+      })
   }
 
   getSecondaryStorage() {
     this._system.getStorage('secondary')
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        if (result?.is_disk_available) {
-          this.totalDisk = result.total;
-          let data: any = [
-            {name: 'Used', value: result.used},
-            {name: 'Free', value: result.free},
-          ];
-          data = this._utils.convertBytesForChart(data);
-          this.storageDistributionChartOptions = this._chartOptions.pieChartOptions('Storage', data);
+        next: (result: any) => {
+          if (result?.is_disk_available) {
+            this.totalDisk = result.total;
+            let data: any = [
+              { name: 'Used', value: result.used },
+              { name: 'Free', value: result.free },
+            ];
+            data = this._utils.convertBytesForChart(data);
+            this.storageDistributionChartOptions = this._chartOptions.pieChartOptions('Storage', data);
+          }
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to fetch secondary storage.'}`);
         }
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to fetch secondary storage.'}`);
-      }
-    })
+      })
   }
 
   updateStorageCleanupConfig() {
     this._system.updateStorageCleanupConfig(this.configForm.value)
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this._notification.showSuccess(`Successfully updated storage cleanup config.`);
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to update storage cleanup config.'}`);
-      }
-    })
+        next: (result: any) => {
+          this._notification.showSuccess(`Successfully updated storage cleanup config.`);
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to update storage cleanup config.'}`);
+        }
+      })
   }
 
   initiateStorageCleanup() {
@@ -92,12 +92,12 @@
       percent: this.configForm.value?.percent,
     })
       .pipe(take(1)).subscribe({
-      next: (result: any) => {
-        this._notification.showSuccess(`Successfully initialized storage cleanup activity.`);
-      },
-      error: error => {
-        this._notification.showError(`Error: ${error?.message || 'Failed to initialize storage cleanup activity.'}`);
-      }
-    })
+        next: (result: any) => {
+          this._notification.showSuccess(`Successfully initialized storage cleanup activity.`);
+        },
+        error: error => {
+          this._notification.showError(`Error: ${error?.message || 'Failed to initialize storage cleanup activity.'}`);
+        }
+      })
   }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/system-control/system-control.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/system-control/system-control.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/system-control/system-control.html	(working copy)
@@ -1,54 +1,40 @@
-<mat-card class="page-card-1" appearance="filled">
-  <mat-card-header>
-    <mat-card-title>System Shutdown</mat-card-title>
-  </mat-card-header>
-  <mat-card-content>
-    <form
-      (ngSubmit)="shutdownSystem()"
-      [formGroup]="systemShutdownForm"
-      class="common-form"
-    >
-      <div class="form-field-wrapper">
-        <label for="option" class="form-label">Options *</label>
-        <mat-form-field appearance="outline" subscriptSizing="dynamic">
-          <mat-select formControlName="option">
-            @for (_options of shutdownOptions; track _options) {
+<div class="cards-container">
+  <mat-card class="admin-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>System Shutdown</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <form (ngSubmit)="shutdownSystem()" [formGroup]="systemShutdownForm" class="common-form">
+        <div class="form-field-wrapper">
+          <label for="option" class="form-label">Options *</label>
+          <mat-form-field appearance="outline" subscriptSizing="dynamic">
+            <mat-select formControlName="option">
+              @for (_options of shutdownOptions; track _options) {
               <mat-option [value]="_options.value"> {{ _options.displayName }}</mat-option>
-            }
-          </mat-select>
-        </mat-form-field>
-      </div>
-      <div class="button-container-center">
-        <button
-          type="submit"
-          mat-raised-button
-          class="warning"
-          color="primary">
-          System Shutdown
-        </button>
-      </div>
-    </form>
-  </mat-card-content>
-</mat-card>
-<mat-card class="page-card-1" appearance="filled">
-  <mat-card-header>
-    <mat-card-title>System Reboot</mat-card-title>
-  </mat-card-header>
-  <mat-card-content>
-    <form
-      (ngSubmit)="rebootSystem()"
-      [formGroup]="systemRebootForm"
-      class="common-form"
-    >
-      <div class="button-container-center">
-        <button
-          type="submit"
-          mat-raised-button
-          class="warning"
-          color="primary">
-          System Reboot
-        </button>
-      </div>
-    </form>
-  </mat-card-content>
-</mat-card>
+              }
+            </mat-select>
+          </mat-form-field>
+        </div>
+        <div class="button-container-center">
+          <button type="submit" mat-raised-button class="warning" color="primary">
+            System Shutdown
+          </button>
+        </div>
+      </form>
+    </mat-card-content>
+  </mat-card>
+  <mat-card class="admin-card" appearance="outlined">
+    <mat-card-header>
+      <mat-card-title>System Reboot</mat-card-title>
+    </mat-card-header>
+    <mat-card-content>
+      <form (ngSubmit)="rebootSystem()" [formGroup]="systemRebootForm" class="common-form">
+        <div class="button-container-center">
+          <button type="submit" mat-raised-button class="warning" color="primary">
+            System Reboot
+          </button>
+        </div>
+      </form>
+    </mat-card-content>
+  </mat-card>
+</div>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/system-control/system-control.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/system-control/system-control.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/system-control/system-control.scss	(working copy)
@@ -0,0 +1,80 @@
+:host {
+    height: 100%;
+    display: block;
+    overflow: auto; // Allow scrolling if content overflows
+}
+
+.cards-container {
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    gap: 16px;
+    padding: 16px;
+    align-items: stretch; // Ensure equal height
+}
+
+.admin-card {
+    height: 100%; // Fill the grid cell
+    display: flex;
+    flex-direction: column;
+    border: 1px solid #dadce0;
+    border-radius: 12px;
+    overflow: hidden;
+    background: #fff;
+    width: 100%;
+
+    mat-card-header {
+        padding: 12px 24px;
+        background-color: #fff;
+        border-bottom: 1px solid #dadce0;
+
+        mat-card-title {
+            font-size: 18px;
+            font-weight: 500;
+            color: #1976d2;
+            margin: 0;
+        }
+    }
+
+    mat-card-content {
+        padding: 24px;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center; // Center content vertically
+        flex: 1; // Take available space
+    }
+}
+
+.common-form {
+    display: flex;
+    flex-direction: column;
+    gap: 16px;
+    width: 100%;
+    max-width: 500px; // Increased slightly
+}
+
+.form-field-wrapper {
+    display: flex;
+    flex-direction: row; // Label and input in same row
+    align-items: center;
+    gap: 16px;
+    width: 100%;
+
+    .form-label {
+        font-weight: 500;
+        color: #3c4043;
+        min-width: 80px; // Ensure consistent label width
+        white-space: nowrap;
+    }
+
+    mat-form-field {
+        flex: 1; // Take remaining space
+        width: auto;
+    }
+}
+
+.button-container-center {
+    display: flex;
+    justify-content: center;
+    margin-top: 8px;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/user-management/user-management.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/user-management/user-management.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/user-management/user-management.html	(working copy)
@@ -1,57 +1,61 @@
-<div class="button-container">
-  <button mat-raised-button (click)="addUser()" matTooltip="Add User">
-    Add User
-  </button>
-</div>
-<div class="table-container">
-  <table mat-table [dataSource]="userDataSource" class="mat-elevation-z1">
-    <ng-container matColumnDef="serial">
-      <th mat-header-cell *matHeaderCellDef>Id.</th>
-      <td mat-cell *matCellDef="let element; let i = index;">{{ i | globalSerial }}</td>
-    </ng-container>
-    <ng-container matColumnDef="username">
-      <th mat-header-cell *matHeaderCellDef>Username</th>
-      <td mat-cell *matCellDef="let element">{{ element.username }}</td>
-    </ng-container>
-    <ng-container matColumnDef="type">
-      <th mat-header-cell *matHeaderCellDef>User Type</th>
-      <td mat-cell *matCellDef="let element">{{ element.user_type }}</td>
-    </ng-container>
-    <ng-container matColumnDef="role">
-      <th mat-header-cell *matHeaderCellDef>Role Name</th>
-      <td mat-cell *matCellDef="let element">{{ element.role_name }}</td>
-    </ng-container>
-    <ng-container matColumnDef="email">
-      <th mat-header-cell *matHeaderCellDef>Email</th>
-      <td mat-cell *matCellDef="let element">{{ element.email }}</td>
-    </ng-container>
-    <ng-container matColumnDef="action">
-      <th mat-header-cell *matHeaderCellDef class="action-header w-10">Action</th>
-      <td mat-cell *matCellDef="let element">
-        <div class="row-action a-link">
-          <fa-icon [icon]="['far', 'edit']" size="lg" matTooltip="Edit User"
-                   (click)="editUser(element)"></fa-icon> &nbsp;&nbsp;
-          @if (element?.user_type === 'Device Admin') {
-            <fa-icon [icon]="['fas', 'server']" size="lg" matTooltip="Device Management"
-                     (click)="showRoleDetails(element)"></fa-icon> &nbsp;&nbsp;
-          } @else {
-            <fa-icon [icon]="['fas', 'server']" size="lg" disabled class="disabled-state"
-                     matTooltip="Device Management"></fa-icon> &nbsp;&nbsp;
-          }
-          <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete User"
-                   (click)="deleteUser(element)"></fa-icon>
-        </div>
-      </td>
-    </ng-container>
-    <tr mat-header-row *matHeaderRowDef="userColumns"></tr>
-    <tr mat-row *matRowDef="let row; columns: userColumns;"></tr>
-    <tr class="mat-row table-no-data" *matNoDataRow>
-      <td class="mat-cell" colspan="8">No results found.</td>
-    </tr>
-  </table>
-  <mat-paginator
-    [pageSizeOptions]="[5, 10, 15, 20, 25]"
-    [length]="totalRecords"
-    showFirstLastButtons
-  ></mat-paginator>
-</div>
+<mat-card class="admin-card" appearance="outlined">
+  <mat-card-header>
+    <mat-card-title>User Management</mat-card-title>
+    <div class="header-actions">
+      <button mat-raised-button (click)="addUser()" color="primary" matTooltip="Add User">
+        Add User
+      </button>
+    </div>
+  </mat-card-header>
+  <mat-card-content>
+    <div class="table-container">
+      <table mat-table [dataSource]="userDataSource" class="details-table">
+        <ng-container matColumnDef="serial">
+          <th mat-header-cell *matHeaderCellDef>Id.</th>
+          <td mat-cell *matCellDef="let element; let i = index;">{{ i | globalSerial }}</td>
+        </ng-container>
+        <ng-container matColumnDef="username">
+          <th mat-header-cell *matHeaderCellDef>Username</th>
+          <td mat-cell *matCellDef="let element">{{ element.username }}</td>
+        </ng-container>
+        <ng-container matColumnDef="type">
+          <th mat-header-cell *matHeaderCellDef>User Type</th>
+          <td mat-cell *matCellDef="let element">{{ element.user_type }}</td>
+        </ng-container>
+        <ng-container matColumnDef="role">
+          <th mat-header-cell *matHeaderCellDef>Role Name</th>
+          <td mat-cell *matCellDef="let element">{{ element.role_name }}</td>
+        </ng-container>
+        <ng-container matColumnDef="email">
+          <th mat-header-cell *matHeaderCellDef>Email</th>
+          <td mat-cell *matCellDef="let element">{{ element.email }}</td>
+        </ng-container>
+        <ng-container matColumnDef="action">
+          <th mat-header-cell *matHeaderCellDef class="action-header w-10">Action</th>
+          <td mat-cell *matCellDef="let element">
+            <div class="row-action a-link">
+              <fa-icon [icon]="['far', 'edit']" size="lg" matTooltip="Edit User" (click)="editUser(element)"></fa-icon>
+              &nbsp;&nbsp;
+              @if (element?.user_type === 'Device Admin') {
+              <fa-icon [icon]="['fas', 'server']" size="lg" matTooltip="Device Management"
+                (click)="showRoleDetails(element)"></fa-icon> &nbsp;&nbsp;
+              } @else {
+              <fa-icon [icon]="['fas', 'server']" size="lg" disabled class="disabled-state"
+                matTooltip="Device Management"></fa-icon> &nbsp;&nbsp;
+              }
+              <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete User"
+                (click)="deleteUser(element)"></fa-icon>
+            </div>
+          </td>
+        </ng-container>
+        <tr mat-header-row *matHeaderRowDef="userColumns"></tr>
+        <tr mat-row *matRowDef="let row; columns: userColumns;"></tr>
+        <tr class="mat-row table-no-data" *matNoDataRow>
+          <td class="mat-cell" colspan="8">No results found.</td>
+        </tr>
+      </table>
+      <mat-paginator [pageSizeOptions]="[5, 10, 15, 20, 25]" [length]="totalRecords"
+        showFirstLastButtons></mat-paginator>
+    </div>
+  </mat-card-content>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/user-management/user-management.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/user-management/user-management.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/sub-components/user-management/user-management.scss	(working copy)
@@ -0,0 +1,79 @@
+:host {
+    height: 100%;
+    display: block;
+}
+
+.admin-card {
+    height: calc(100% - 32px); // Account for 16px margin on top and bottom
+    display: flex;
+    flex-direction: column;
+    border: 1px solid #dadce0;
+    border-radius: 12px;
+    overflow: hidden;
+    background: #fff;
+    margin: 16px;
+
+    mat-card-header {
+        padding: 12px 24px;
+        background-color: #fff;
+        border-bottom: 1px solid #dadce0;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        mat-card-title {
+            font-size: 18px;
+            font-weight: 500;
+            color: #1976d2;
+            margin: 0;
+        }
+
+        .header-actions {
+            display: flex;
+            gap: 12px;
+        }
+    }
+
+    mat-card-content {
+        padding: 0;
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        overflow: hidden;
+    }
+}
+
+.table-container {
+    flex: 1;
+    overflow: auto;
+    padding: 0;
+
+    .details-table {
+        width: 100%;
+
+        tr.mat-mdc-row {
+            &:hover {
+                background-color: #f8f9fa;
+            }
+        }
+
+        .row-action {
+            cursor: pointer;
+            color: #5f6368;
+
+            fa-icon {
+                &:hover {
+                    color: #1976d2; // Primary blue for edit/details
+                }
+
+                &.delete-icon:hover {
+                    color: #d93025; // Red for delete
+                }
+            }
+        }
+    }
+}
+
+mat-paginator {
+    border-top: 1px solid #dadce0;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.html
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.html	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.html	(working copy)
@@ -1,15 +1,16 @@
-<mat-card class="page-card-1" appearance="filled">
+<mat-card class="tasks-card" appearance="outlined">
   <mat-card-header>
     <mat-card-title>Managed Tasks</mat-card-title>
-  </mat-card-header>
-  <mat-card-content>
-    <div class="button-container">
-      <button mat-raised-button (click)="deleteAllTasks()" class="warning" matTooltip="Delete All Tasks">Delete All
+    <div class="header-actions">
+      <button mat-raised-button (click)="deleteAllTasks()" color="warn" matTooltip="Delete All Tasks">
+        Delete All
       </button>
     </div>
+  </mat-card-header>
+  <mat-card-content>
     <div class="table-container">
       <div class="mat-elevation-z0">
-        <table mat-table [dataSource]="dataSource">
+        <table mat-table [dataSource]="dataSource" class="details-table">
           <ng-container matColumnDef="serial">
             <th mat-header-cell *matHeaderCellDef>ID</th>
             <td mat-cell *matCellDef="let element; let i = index;"> {{ i + 1 }}</td>
@@ -50,7 +51,7 @@
             <td mat-cell *matCellDef="let element">
               <div class="row-action a-link">
                 <fa-icon [icon]="['far', 'trash-can']" size="lg" class="delete-icon" matTooltip="Delete Task"
-                         (click)="deleteTask(element)"></fa-icon>
+                  (click)="deleteTask(element)"></fa-icon>
               </div>
             </td>
           </ng-container>
@@ -62,13 +63,9 @@
           </tr>
         </table>
 
-        <mat-paginator
-          [length]="totalResults"
-          [pageSize]="10"
-          [pageSizeOptions]="[10, 20, 50]"
-        >
+        <mat-paginator [length]="totalResults" [pageSize]="10" [pageSizeOptions]="[10, 20, 50]">
         </mat-paginator>
       </div>
     </div>
   </mat-card-content>
-</mat-card>
+</mat-card>
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.scss	(working copy)
@@ -0,0 +1,76 @@
+.tasks-card {
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    border: 1px solid #dadce0; // Google's standard border color
+    border-radius: 12px;
+    overflow: hidden;
+    background: #fff;
+    margin: 16px; // Add some margin around the card
+
+    mat-card-header {
+        padding: 12px 24px;
+        background-color: #fff;
+        border-bottom: 1px solid #dadce0;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        mat-card-title {
+            font-size: 18px;
+            font-weight: 500;
+            color: #1976d2; // Primary blue
+            margin: 0;
+        }
+
+        .header-actions {
+            display: flex;
+            gap: 12px;
+
+            button {
+                background-color: #fff !important;
+                color: #d93025 !important; // Google danger red
+                border: 1px solid #d93025 !important;
+            }
+        }
+    }
+
+    mat-card-content {
+        padding: 0;
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+        overflow: hidden;
+    }
+}
+
+.table-container {
+    flex: 1;
+    overflow: auto;
+    padding: 0;
+
+    .details-table {
+        width: 100%;
+
+        // Ensure global styles apply, but add specific tweaks if needed
+        tr.mat-mdc-row {
+            &:hover {
+                background-color: #f8f9fa; // Subtle hover effect
+            }
+        }
+
+        .row-action {
+            cursor: pointer;
+            color: #5f6368; // Google grey icon color
+
+            &:hover {
+                color: #d93025; // Google red for delete
+            }
+        }
+    }
+}
+
+// Paginator styling to match
+mat-paginator {
+    border-top: 1px solid #dadce0;
+}
\ No newline at end of file
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/components/tasks/tasks.ts	(working copy)
@@ -1,13 +1,13 @@
-import {AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild} from '@angular/core';
-import {SystemService} from '../../services/system-service';
-import {NotificationService} from '../../services/notification';
-import {SharedModule} from '../../shared/shared-module';
-import {MatTableDataSource} from '@angular/material/table';
-import {take} from 'rxjs/operators';
-import {TaskTimeFromNamePipe} from '../../pipes/task-time-from-name-pipe';
-import {Confirmation} from '../../services/confirmation';
-import {Subject} from 'rxjs';
-import {MatPaginator} from '@angular/material/paginator';
+import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
+import { SystemService } from '../../services/system-service';
+import { NotificationService } from '../../services/notification';
+import { SharedModule } from '../../shared/shared-module';
+import { MatTableDataSource } from '@angular/material/table';
+import { take } from 'rxjs/operators';
+import { TaskTimeFromNamePipe } from '../../pipes/task-time-from-name-pipe';
+import { Confirmation } from '../../services/confirmation';
+import { Subject } from 'rxjs';
+import { MatPaginator } from '@angular/material/paginator';
 
 @Component({
   selector: 'app-tasks',
@@ -32,7 +32,7 @@
 
   ngOnInit() {
     setTimeout(() => {
-      this.getTasks({"start": 0, "number": 10})
+      this.getTasks({ "start": 0, "number": 10 })
     })
   }
 
@@ -97,7 +97,7 @@
               if (err?.status === 200) {
                 // ToDo: Backend fix required.
                 this.notification.showSuccess(`${task?.name} deleted successfully!`);
-                this.getTasks({"start": 0, "number": 10});
+                this.getTasks({ "start": 0, "number": 10 });
               } else {
                 this.notification.showError('Deletion Failed.');
               }
@@ -114,8 +114,8 @@
     this.confirmationService.openConfirmDialog({
       title: `Delete All Tasks?`,
       message: confirmMsg,
-      confirmButtonText: 'Yes, Delete It',
-      cancelButtonText: 'No, Keep It',
+      confirmButtonText: 'Delete All',
+      cancelButtonText: 'Cancel',
       confirmButtonColor: 'warn',
       cancelButtonColor: 'primary'
     }).subscribe(result => {
@@ -130,7 +130,7 @@
               // ToDo: Backend fix required.
               if (result) {
                 this.notification.showSuccess(`All the tasks has been deleted successfully!`);
-                this.getTasks({"start": 0, "number": 10});
+                this.getTasks({ "start": 0, "number": 10 });
               } else {
                 this.notification.showError('Deletion Failed.');
               }
@@ -139,8 +139,6 @@
               this.notification.showError('Deletion Failed.');
             }
           })
-      } else {
-        this.notification.showSuccess('Deletion cancelled.');
       }
     });
   }
@@ -162,7 +160,7 @@
     }
 
     this.pollingInterval = setInterval(() => {
-      this.getTasks({"start": 0, "number": 10});
+      this.getTasks({ "start": 0, "number": 10 });
     }, 10000); // 10000 milliseconds = 10 seconds
   }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/services/chart-options.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/services/chart-options.ts	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/services/chart-options.ts	(working copy)
@@ -1,5 +1,5 @@
-import {Injectable} from '@angular/core';
-import {EChartsOption} from 'echarts';
+import { Injectable } from '@angular/core';
+import { EChartsOption } from 'echarts';
 
 @Injectable({
   providedIn: 'root'
@@ -522,8 +522,8 @@
             show: false
           },
           data: [
-            {value: deviceMetrics?.connected, name: 'Connected', itemStyle: {color: 'green'}},
-            {value: deviceMetrics?.disconnected, name: 'Disconnected', itemStyle: {color: 'red'}}
+            { value: deviceMetrics?.connected, name: 'Connected', itemStyle: { color: 'green' } },
+            { value: deviceMetrics?.disconnected, name: 'Disconnected', itemStyle: { color: 'red' } }
           ]
         }
       ]
@@ -637,19 +637,64 @@
           type: 'pie',
           radius: ['70%', '100%'],
           avoidLabelOverlap: true,
-          label: {show: false},
+          label: { show: false },
           data: [
             {
               value: percent,
-              itemStyle: {color: color}
+              itemStyle: { color: color }
             },
             {
               value: 100 - percent,
-              itemStyle: {color: '#2a3a6b'}
+              itemStyle: { color: '#2a3a6b' }
             }
           ]
         }
       ]
     };
   }
+
+  systemStatusPieChartOptions(label: string, usage: number, color: string): EChartsOption {
+    return {
+      title: {
+        text: `${label}\n${usage.toFixed(1)}%`,
+        left: 'center',
+        top: 'center',
+        textStyle: {
+          fontSize: 14,
+          fontWeight: 'bold',
+          color: '#333'
+        }
+      },
+      tooltip: {
+        trigger: 'item',
+        formatter: '{b}: {c}%'
+      },
+      series: [
+        {
+          name: label,
+          type: 'pie',
+          radius: ['50%', '70%'],
+          avoidLabelOverlap: false,
+          label: {
+            show: false,
+            position: 'center'
+          },
+          emphasis: {
+            label: {
+              show: false,
+              fontSize: '20',
+              fontWeight: 'bold'
+            }
+          },
+          labelLine: {
+            show: false
+          },
+          data: [
+            { value: usage, name: 'Used', itemStyle: { color: color } },
+            { value: 100 - usage, name: 'Free', itemStyle: { color: '#E0E0E0' } }
+          ]
+        }
+      ]
+    };
+  }
 }
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/shared/shared-module.ts
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/shared/shared-module.ts	(revision 2785)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/app/shared/shared-module.ts	(working copy)
@@ -66,6 +66,7 @@
   solidIcons.faPause, solidIcons.faEnvelope,
   solidIcons.faChevronDown, solidIcons.faPlay, solidIcons.faPlusCircle,
   solidIcons.faCheckCircle, solidIcons.faExclamationCircle, solidIcons.faExclamationTriangle, solidIcons.faQuestion,
+  solidIcons.faDownload, solidIcons.faFolderTree,
 ];
 
 const customRegularIcons = [
Index: /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/styles.scss
===================================================================
--- /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/styles.scss	(revision 2771)
+++ /branches/amp_4_0/src/webui/webui/htdocs/new/src/gui/src/styles.scss	(working copy)
@@ -31,21 +31,17 @@
   medium-weight: 500
 );
 
-$theme: mat.define-theme((
-  typography: $custom-typography,
-  color: (
-    theme-type: light,
-    primary: mat.$azure-palette,
-    tertiary: mat.$azure-palette,
-  ),
-  density: (
-    scale: 0
-  )
-));
+$theme: mat.define-theme((typography: $custom-typography,
+      color: (theme-type: light,
+        primary: mat.$azure-palette,
+        tertiary: mat.$azure-palette,
+      ),
+      density: (scale: 0)));
 
 $primary-color: #1170cf;
 
-html, body {
+html,
+body {
   @include mat.core-theme($theme);
   @include mat.all-component-themes($theme);
   @include mat.typography-hierarchy($theme);
@@ -57,11 +53,14 @@
   font-size: 12px
 }
 
-html, body {
+html,
+body {
   margin: 0;
   padding: 0;
-  height: 100%; /* Ensure html and body explicitly take full height */
-  overflow: auto; /* Prevent global scrollbar if app-wrapper is handling it */
+  height: 100%;
+  /* Ensure html and body explicitly take full height */
+  overflow: auto;
+  /* Prevent global scrollbar if app-wrapper is handling it */
 }
 
 * {
@@ -73,17 +72,29 @@
   position: relative;
   z-index: 20;
   --table-bg: transparent;
-  .an-table {
+
+  .an-table,
+  .details-table {
     background: var(--table-bg);
 
-    .mat-cell,
     .mat-header-cell,
-    [mat-cell],
-    [mat-header-cell],
-    .mat-row,
     .mat-header-row,
-    [mat-row],
     [mat-header-row] {
+      background: #f1f3f4; // Google/Gmail style light grey
+      color: #202124; // Google's standard dark grey text
+      font-weight: 500;
+      height: 40px !important; // Compact header
+    }
+
+    .mat-row,
+    [mat-row] {
+      height: 40px !important; // Compact rows
+    }
+
+    .mat-cell,
+    [mat-cell],
+    .mat-row,
+    [mat-row] {
       background: var(--table-bg);
 
       &:hover {
@@ -186,17 +197,23 @@
 }
 
 .form-field-wrapper {
-  display: flex; /* Use flexbox to align items horizontally */
-  align-items: center; /* Vertically align items in the middle */
-  gap: 15px; /* Add some space between the label and the form field */
-  margin-bottom: 20px; /* Space between rows if you have multiple fields */
+  display: flex;
+  /* Use flexbox to align items horizontally */
+  align-items: center;
+  /* Vertically align items in the middle */
+  gap: 15px;
+  /* Add some space between the label and the form field */
+  margin-bottom: 20px;
+  /* Space between rows if you have multiple fields */
 }
 
 .form-label {
   /* Optional: Style your label if needed */
   font-weight: 500;
-  min-width: 150px; /* Give the label a minimum width for consistent alignment */
-  text-align: right; /* Align label text to the right */
+  min-width: 150px;
+  /* Give the label a minimum width for consistent alignment */
+  text-align: right;
+  /* Align label text to the right */
 }
 
 .form-label-1 {
@@ -207,8 +224,10 @@
 
 /* Optional: Adjust the width of the mat-form-field if necessary */
 .form-field-wrapper mat-form-field {
-  flex-grow: 1; /* Allow the form field to take up available space */
-  max-width: 300px; /* Example: Limit the maximum width of the input */
+  flex-grow: 1;
+  /* Allow the form field to take up available space */
+  max-width: 300px;
+  /* Example: Limit the maximum width of the input */
 }
 
 .details-page-link,
@@ -377,9 +396,11 @@
   display: flex;
   align-items: center;
   gap: 8px;
+
   span {
     width: 60px;
   }
+
   mat-progress-bar {
     width: 100px;
   }
@@ -455,4 +476,4 @@
 .time-filter {
   margin-top: 8px !important;
   margin-bottom: 8px !important;
-}
+}
\ No newline at end of file
