diff --git a/Web_Backgrounds/bw-theme.css b/Web_Backgrounds/bw-theme.css
index c4e3155..d69f526 100644
--- a/Web_Backgrounds/bw-theme.css
+++ b/Web_Backgrounds/bw-theme.css
@@ -318,3 +318,71 @@
color: #1BB0CE !important;
background: none !important;
}
+
+/* ============================================================================
+ Client Portal Overrides — Background for portal pages
+ ============================================================================ */
+
+/* Make the outer portal container transparent so body::before background shows */
+.dark.theme-bw .min-h-screen.bg-background {
+ background: transparent !important;
+}
+
+/* Portal sidebar — dark glass */
+.dark.theme-bw aside.bg-card.border-r.border-border {
+ background: hsl(240, 15%, 3%) !important;
+ border-right-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal sidebar nav items — muted text */
+.dark.theme-bw aside .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
+.dark.theme-bw aside button:hover {
+ background: hsla(330, 100%, 50%, 0.08) !important;
+ color: hsl(0, 0%, 90%) !important;
+}
+
+/* Portal sidebar active nav item */
+.dark.theme-bw aside .bg-primary\/10.text-primary {
+ background: hsl(330, 100%, 50%) !important;
+ color: hsl(0, 0%, 100%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.3), 0 0 20px rgba(255, 0, 127, 0.1);
+ border-color: hsl(330, 100%, 50%) !important;
+}
+.dark.theme-bw aside .bg-primary\/10.text-primary svg {
+ color: hsl(0, 0%, 100%) !important;
+}
+
+/* Portal header — dark glass */
+.dark.theme-bw header.bg-card\/80 {
+ background: hsl(240, 15%, 3%) !important;
+ border-bottom-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal card backgrounds — semi-transparent glass */
+.dark.theme-bw .bg-card {
+ background: hsla(240, 15%, 7%, 0.65) !important;
+ backdrop-filter: blur(10px) !important;
+ border-color: hsla(270, 30%, 20%, 0.35) !important;
+}
+
+/* Portal borders */
+.dark.theme-bw .border-border {
+ border-color: hsl(270, 25%, 12%) !important;
+}
+
+/* Portal input fields */
+.dark.theme-bw .bg-muted {
+ background: hsl(240, 12%, 9%) !important;
+}
+
+/* Portal primary buttons */
+.dark.theme-bw .bg-primary {
+ background: hsl(330, 100%, 50%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.2);
+}
+.dark.theme-bw .bg-primary:hover {
+ background: hsl(330, 100%, 55%) !important;
+ box-shadow: 0 0 15px rgba(255, 0, 127, 0.4);
+}
diff --git a/Web_Backgrounds/cosmic-theme.css b/Web_Backgrounds/cosmic-theme.css
index acf723f..0219b76 100644
--- a/Web_Backgrounds/cosmic-theme.css
+++ b/Web_Backgrounds/cosmic-theme.css
@@ -287,3 +287,71 @@
color: #1BB0CE !important;
background: none !important;
}
+
+/* ============================================================================
+ Client Portal Overrides — Background for portal pages
+ ============================================================================ */
+
+/* Make the outer portal container transparent so body::before background shows */
+.dark.theme-cosmic .min-h-screen.bg-background {
+ background: transparent !important;
+}
+
+/* Portal sidebar — dark glass */
+.dark.theme-cosmic aside.bg-card.border-r.border-border {
+ background: hsl(240, 15%, 3%) !important;
+ border-right-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal sidebar nav items — muted text */
+.dark.theme-cosmic aside .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
+.dark.theme-cosmic aside button:hover {
+ background: hsla(330, 100%, 50%, 0.08) !important;
+ color: hsl(0, 0%, 90%) !important;
+}
+
+/* Portal sidebar active nav item */
+.dark.theme-cosmic aside .bg-primary\/10.text-primary {
+ background: hsl(330, 100%, 50%) !important;
+ color: hsl(0, 0%, 100%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.3), 0 0 20px rgba(255, 0, 127, 0.1);
+ border-color: hsl(330, 100%, 50%) !important;
+}
+.dark.theme-cosmic aside .bg-primary\/10.text-primary svg {
+ color: hsl(0, 0%, 100%) !important;
+}
+
+/* Portal header — dark glass */
+.dark.theme-cosmic header.bg-card\/80 {
+ background: hsl(240, 15%, 3%) !important;
+ border-bottom-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal card backgrounds — semi-transparent glass */
+.dark.theme-cosmic .bg-card {
+ background: hsla(240, 15%, 7%, 0.65) !important;
+ backdrop-filter: blur(10px) !important;
+ border-color: hsla(270, 30%, 20%, 0.35) !important;
+}
+
+/* Portal borders */
+.dark.theme-cosmic .border-border {
+ border-color: hsl(270, 25%, 12%) !important;
+}
+
+/* Portal input fields */
+.dark.theme-cosmic .bg-muted {
+ background: hsl(240, 12%, 9%) !important;
+}
+
+/* Portal primary buttons */
+.dark.theme-cosmic .bg-primary {
+ background: hsl(330, 100%, 50%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.2);
+}
+.dark.theme-cosmic .bg-primary:hover {
+ background: hsl(330, 100%, 55%) !important;
+ box-shadow: 0 0 15px rgba(255, 0, 127, 0.4);
+}
diff --git a/Web_Backgrounds/cyber2-theme.css b/Web_Backgrounds/cyber2-theme.css
index a0f06bc..d0aacb6 100644
--- a/Web_Backgrounds/cyber2-theme.css
+++ b/Web_Backgrounds/cyber2-theme.css
@@ -318,3 +318,71 @@
color: #1BB0CE !important;
background: none !important;
}
+
+/* ============================================================================
+ Client Portal Overrides — Background for portal pages
+ ============================================================================ */
+
+/* Make the outer portal container transparent so body::before background shows */
+.dark.theme-cyber2 .min-h-screen.bg-background {
+ background: transparent !important;
+}
+
+/* Portal sidebar — dark glass */
+.dark.theme-cyber2 aside.bg-card.border-r.border-border {
+ background: hsl(240, 15%, 3%) !important;
+ border-right-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal sidebar nav items — muted text */
+.dark.theme-cyber2 aside .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
+.dark.theme-cyber2 aside button:hover {
+ background: hsla(330, 100%, 50%, 0.08) !important;
+ color: hsl(0, 0%, 90%) !important;
+}
+
+/* Portal sidebar active nav item */
+.dark.theme-cyber2 aside .bg-primary\/10.text-primary {
+ background: hsl(330, 100%, 50%) !important;
+ color: hsl(0, 0%, 100%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.3), 0 0 20px rgba(255, 0, 127, 0.1);
+ border-color: hsl(330, 100%, 50%) !important;
+}
+.dark.theme-cyber2 aside .bg-primary\/10.text-primary svg {
+ color: hsl(0, 0%, 100%) !important;
+}
+
+/* Portal header — dark glass */
+.dark.theme-cyber2 header.bg-card\/80 {
+ background: hsl(240, 15%, 3%) !important;
+ border-bottom-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal card backgrounds — semi-transparent glass */
+.dark.theme-cyber2 .bg-card {
+ background: hsla(240, 15%, 7%, 0.65) !important;
+ backdrop-filter: blur(10px) !important;
+ border-color: hsla(270, 30%, 20%, 0.35) !important;
+}
+
+/* Portal borders */
+.dark.theme-cyber2 .border-border {
+ border-color: hsl(270, 25%, 12%) !important;
+}
+
+/* Portal input fields */
+.dark.theme-cyber2 .bg-muted {
+ background: hsl(240, 12%, 9%) !important;
+}
+
+/* Portal primary buttons */
+.dark.theme-cyber2 .bg-primary {
+ background: hsl(330, 100%, 50%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.2);
+}
+.dark.theme-cyber2 .bg-primary:hover {
+ background: hsl(330, 100%, 55%) !important;
+ box-shadow: 0 0 15px rgba(255, 0, 127, 0.4);
+}
diff --git a/Web_Backgrounds/cyberpunk-theme.css b/Web_Backgrounds/cyberpunk-theme.css
index cc4b4cd..ad5ad8d 100644
--- a/Web_Backgrounds/cyberpunk-theme.css
+++ b/Web_Backgrounds/cyberpunk-theme.css
@@ -1233,3 +1233,84 @@
.light.theme-cyberpunk span.h-1\.5.w-1\.5.rounded-full.bg-zinc-500 {
background: hsl(0, 0%, 40%) !important;
}
+
+/* ============================================================================
+ Client Portal Overrides — Cyberpunk background for portal pages
+ ============================================================================ */
+
+/* Make the outer portal container transparent so body::before background shows */
+.dark.theme-cyberpunk .min-h-screen.bg-background {
+ background: transparent !important;
+}
+
+/* Portal sidebar — dark glass */
+.dark.theme-cyberpunk aside.bg-card.border-r.border-border {
+ background: hsl(240, 15%, 3%) !important;
+ border-right-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal sidebar nav items — muted text */
+.dark.theme-cyberpunk aside .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
+.dark.theme-cyberpunk aside button:hover {
+ background: hsla(330, 100%, 50%, 0.08) !important;
+ color: hsl(0, 0%, 90%) !important;
+}
+
+/* Portal sidebar active nav item — neon pink pill */
+.dark.theme-cyberpunk aside .bg-primary\/10.text-primary {
+ background: hsl(330, 100%, 50%) !important;
+ color: hsl(0, 0%, 100%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.3), 0 0 20px rgba(255, 0, 127, 0.1);
+ border-color: hsl(330, 100%, 50%) !important;
+}
+.dark.theme-cyberpunk aside .bg-primary\/10.text-primary svg {
+ color: hsl(0, 0%, 100%) !important;
+}
+
+/* Portal header — dark glass */
+.dark.theme-cyberpunk header.bg-card\/80 {
+ background: hsl(240, 15%, 3%) !important;
+ border-bottom-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal card backgrounds — semi-transparent glass */
+.dark.theme-cyberpunk .bg-card {
+ background: hsla(240, 15%, 7%, 0.65) !important;
+ backdrop-filter: blur(10px) !important;
+ border-color: hsla(270, 30%, 20%, 0.35) !important;
+}
+
+/* Portal borders */
+.dark.theme-cyberpunk .border-border {
+ border-color: hsl(270, 25%, 12%) !important;
+}
+
+/* Portal input fields */
+.dark.theme-cyberpunk .bg-muted {
+ background: hsl(240, 12%, 9%) !important;
+}
+.dark.theme-cyberpunk .border-border:focus {
+ border-color: hsl(330, 100%, 50%) !important;
+}
+
+/* Portal primary buttons */
+.dark.theme-cyberpunk .bg-primary {
+ background: hsl(330, 100%, 50%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.2);
+}
+.dark.theme-cyberpunk .bg-primary:hover {
+ background: hsl(330, 100%, 55%) !important;
+ box-shadow: 0 0 15px rgba(255, 0, 127, 0.4);
+}
+
+/* Portal primary text highlights */
+.dark.theme-cyberpunk .text-primary {
+ color: hsl(330, 100%, 55%) !important;
+}
+
+/* Portal muted text */
+.dark.theme-cyberpunk .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
diff --git a/Web_Backgrounds/pumpkin-theme.css b/Web_Backgrounds/pumpkin-theme.css
index 6bc2a39..2f11e7f 100644
--- a/Web_Backgrounds/pumpkin-theme.css
+++ b/Web_Backgrounds/pumpkin-theme.css
@@ -273,3 +273,71 @@
color: #1BB0CE !important;
background: none !important;
}
+
+/* ============================================================================
+ Client Portal Overrides — Background for portal pages
+ ============================================================================ */
+
+/* Make the outer portal container transparent so body::before background shows */
+.dark.theme-pumpkin .min-h-screen.bg-background {
+ background: transparent !important;
+}
+
+/* Portal sidebar — dark glass */
+.dark.theme-pumpkin aside.bg-card.border-r.border-border {
+ background: hsl(240, 15%, 3%) !important;
+ border-right-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal sidebar nav items — muted text */
+.dark.theme-pumpkin aside .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
+.dark.theme-pumpkin aside button:hover {
+ background: hsla(330, 100%, 50%, 0.08) !important;
+ color: hsl(0, 0%, 90%) !important;
+}
+
+/* Portal sidebar active nav item */
+.dark.theme-pumpkin aside .bg-primary\/10.text-primary {
+ background: hsl(330, 100%, 50%) !important;
+ color: hsl(0, 0%, 100%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.3), 0 0 20px rgba(255, 0, 127, 0.1);
+ border-color: hsl(330, 100%, 50%) !important;
+}
+.dark.theme-pumpkin aside .bg-primary\/10.text-primary svg {
+ color: hsl(0, 0%, 100%) !important;
+}
+
+/* Portal header — dark glass */
+.dark.theme-pumpkin header.bg-card\/80 {
+ background: hsl(240, 15%, 3%) !important;
+ border-bottom-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal card backgrounds — semi-transparent glass */
+.dark.theme-pumpkin .bg-card {
+ background: hsla(240, 15%, 7%, 0.65) !important;
+ backdrop-filter: blur(10px) !important;
+ border-color: hsla(270, 30%, 20%, 0.35) !important;
+}
+
+/* Portal borders */
+.dark.theme-pumpkin .border-border {
+ border-color: hsl(270, 25%, 12%) !important;
+}
+
+/* Portal input fields */
+.dark.theme-pumpkin .bg-muted {
+ background: hsl(240, 12%, 9%) !important;
+}
+
+/* Portal primary buttons */
+.dark.theme-pumpkin .bg-primary {
+ background: hsl(330, 100%, 50%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 127, 0.2);
+}
+.dark.theme-pumpkin .bg-primary:hover {
+ background: hsl(330, 100%, 55%) !important;
+ box-shadow: 0 0 15px rgba(255, 0, 127, 0.4);
+}
diff --git a/Web_Backgrounds/spidey-theme.css b/Web_Backgrounds/spidey-theme.css
index 5a68e00..b5e101e 100644
--- a/Web_Backgrounds/spidey-theme.css
+++ b/Web_Backgrounds/spidey-theme.css
@@ -183,3 +183,71 @@
color: #1BB0CE !important;
background: none !important;
}
+
+/* ============================================================================
+ Client Portal Overrides — Background for portal pages
+ ============================================================================ */
+
+/* Make the outer portal container transparent so body::before background shows */
+.dark.theme-spidey .min-h-screen.bg-background {
+ background: transparent !important;
+}
+
+/* Portal sidebar — dark glass */
+.dark.theme-spidey aside.bg-card.border-r.border-border {
+ background: hsl(240, 15%, 3%) !important;
+ border-right-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal sidebar nav items — muted text */
+.dark.theme-spidey aside .text-muted-foreground {
+ color: hsl(240, 8%, 50%) !important;
+}
+.dark.theme-spidey aside button:hover {
+ background: hsla(0, 100%, 50%, 0.08) !important;
+ color: hsl(0, 0%, 90%) !important;
+}
+
+/* Portal sidebar active nav item */
+.dark.theme-spidey aside .bg-primary\/10.text-primary {
+ background: hsl(0, 100%, 50%) !important;
+ color: hsl(0, 0%, 100%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 0, 0.3), 0 0 20px rgba(255, 0, 0, 0.1);
+ border-color: hsl(0, 100%, 50%) !important;
+}
+.dark.theme-spidey aside .bg-primary\/10.text-primary svg {
+ color: hsl(0, 0%, 100%) !important;
+}
+
+/* Portal header — dark glass */
+.dark.theme-spidey header.bg-card\/80 {
+ background: hsl(240, 15%, 3%) !important;
+ border-bottom-color: hsl(270, 25%, 10%) !important;
+}
+
+/* Portal card backgrounds — semi-transparent glass */
+.dark.theme-spidey .bg-card {
+ background: hsla(240, 15%, 7%, 0.65) !important;
+ backdrop-filter: blur(10px) !important;
+ border-color: hsla(270, 30%, 20%, 0.35) !important;
+}
+
+/* Portal borders */
+.dark.theme-spidey .border-border {
+ border-color: hsl(270, 25%, 12%) !important;
+}
+
+/* Portal input fields */
+.dark.theme-spidey .bg-muted {
+ background: hsl(240, 12%, 9%) !important;
+}
+
+/* Portal primary buttons */
+.dark.theme-spidey .bg-primary {
+ background: hsl(0, 100%, 50%) !important;
+ box-shadow: 0 0 10px rgba(255, 0, 0, 0.2);
+}
+.dark.theme-spidey .bg-primary:hover {
+ background: hsl(0, 100%, 55%) !important;
+ box-shadow: 0 0 15px rgba(255, 0, 0, 0.4);
+}
diff --git a/src/app/client-portal/activity/page.tsx b/src/app/client-portal/activity/page.tsx
index a39326a..f45e571 100644
--- a/src/app/client-portal/activity/page.tsx
+++ b/src/app/client-portal/activity/page.tsx
@@ -31,9 +31,9 @@ export default function ClientActivity() {
}, [])
const getIcon = (type: string) => {
- if (type === "milestone") return
Recent project updates and changes
+Recent project updates and changes
{events.length === 0 ? (No recent activity
+No recent activity