diff --git a/frontend/src/lib/components/MetricsPanel.svelte b/frontend/src/lib/components/MetricsPanel.svelte
new file mode 100644
index 0000000..a1e6f0f
--- /dev/null
+++ b/frontend/src/lib/components/MetricsPanel.svelte
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+ {#if !metricsLoading}
+
+
+ Live
+
+ {:else}
+
+ {/if}
+
+
+ {#each METRIC_RANGES as r, i}
+
+ {/each}
+
+
+
+ {#if metricsError}
+
+
+ Could not load metrics: {metricsError}. Will retry automatically.
+
+ {/if}
+
+
+
+
+
+
+
+
+
+ CPU Usage
+
+ {#if latestCpu !== null}
+
+ {latestCpu.toFixed(1)}
+ %
+
+ {:else if metricsLoading}
+
—
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+ RAM Usage
+
+ {#if latestRamMB !== null}
+
+ {latestRamMB.toFixed(0)}
+ MB
+
+ {:else if metricsLoading}
+
—
+ {/if}
+
+
+
+
+
+
+
+
diff --git a/frontend/src/routes/admin/capsules/[id]/+page.svelte b/frontend/src/routes/admin/capsules/[id]/+page.svelte
index 7765314..11dfc46 100644
--- a/frontend/src/routes/admin/capsules/[id]/+page.svelte
+++ b/frontend/src/routes/admin/capsules/[id]/+page.svelte
@@ -1,10 +1,11 @@
@@ -349,9 +153,7 @@
Capsules
-
-
{capsule.template}
/
{capsule.vcpus}v · {capsule.memory_mb}MB
-
{#if capsule.status === 'running' || capsule.status === 'paused'}
@@ -396,91 +195,20 @@
-
-
+
-
-
{#if metricsAvailable}
-
-
-
-
-
- Live
-
-
-
- {#each METRIC_RANGES as r, i}
-
- {/each}
-
-
-
-
-
-
-
-
-
-
- CPU Usage
-
- {#if latestCpu !== null}
-
- {latestCpu.toFixed(1)}
- %
-
- {:else if metricsLoading}
-
—
- {/if}
-
-
-
-
-
-
-
-
-
-
-
- RAM Usage
-
- {#if latestRamMB !== null}
-
- {latestRamMB.toFixed(0)}
- MB
-
- {:else if metricsLoading}
-
—
- {/if}
-
-
-
-
-
-
+
{/if}
-
-