diff --git a/frontend/src/lib/components/HubShell.svelte b/frontend/src/lib/components/HubShell.svelte
index 2b1465f..88a68b1 100644
--- a/frontend/src/lib/components/HubShell.svelte
+++ b/frontend/src/lib/components/HubShell.svelte
@@ -1,14 +1,35 @@
-
{@render children?.()}
+
+ {#if back}
+
+ {/if}
+ {@render children?.()}
+
@@ -29,9 +50,20 @@
.shell-main {
flex: 1; width: 100%; max-width: 1180px; margin: 0 auto; box-sizing: border-box;
- padding: clamp(26px, 5vw, 56px) clamp(18px, 5vw, 44px) clamp(40px, 6vw, 72px);
+ padding: clamp(20px, 4vw, 40px) clamp(18px, 5vw, 44px) clamp(40px, 6vw, 72px);
}
+ /* top-left Back — returns to the hub (or wherever you came from), preserving history */
+ .back {
+ display: inline-flex; align-items: center; gap: 6px; margin: 0 0 clamp(14px, 3vw, 24px);
+ background: none; border: none; cursor: pointer; padding: 6px 10px 6px 0;
+ font-family: inherit; font-size: 14px; font-weight: 600; color: var(--body);
+ transition: color 0.15s ease;
+ }
+ .back:hover { color: var(--teal); }
+ .back svg { transition: transform 0.15s ease; }
+ .back:hover svg { transform: translateX(-2px); }
+
.foot {
text-align: center; max-width: 1180px; width: 100%; margin: 14px auto 0; box-sizing: border-box;
padding: 20px clamp(18px, 5vw, 44px) 30px; font-size: 13px; color: var(--muted);