diff --git a/src/App.jsx b/src/App.jsx
index 365e776..828915f 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -15,7 +15,9 @@ import {
TrendingUp,
FileText,
ChevronRight,
- FolderOpen
+ FolderOpen,
+ Menu,
+ X,
} from 'lucide-react';
/* ==========================================================================
@@ -344,6 +346,7 @@ export default function App() {
const [activeView, setActiveView] = useState('missionControl');
const [activeAudio, setActiveAudio] = useState(null);
const [isPlaying, setIsPlaying] = useState(false);
+ const [sidebarOpen, setSidebarOpen] = useState(false);
const togglePlay = () => setIsPlaying(!isPlaying);
@@ -354,25 +357,85 @@ export default function App() {
{ id: 'wiki', label: 'Loop Wiki', icon: BookOpen },
];
+ const handleNavClick = (id) => {
+ setActiveView(id);
+ setSidebarOpen(false);
+ };
+
+ const AudioPlayer = () => (
+ activeAudio ? (
+
+
+ Now Playing
+ {isPlaying ? '02:14' : '00:00'} / {activeAudio.duration}
+
+
+ {activeAudio.title}
+
+
{activeAudio.author}
+
+
+
+
+
+
+
+ ) : (
+
+
+
Select an audio brief to begin
+
+ )
+ );
+
return (
-
- {/* Sidebar Layout */}
-
-
+
+ {/* Mobile overlay backdrop */}
+ {sidebarOpen && (
+
setSidebarOpen(false)}
+ />
+ )}
+
+ {/* Sidebar — slide-over on mobile, fixed column on desktop */}
+
{/* Brand */}
-
-
-
-
+
+
-
Coach Portal
+
{/* Navigation */}
-
- {/* Main Content Area */}
-
- {/* Ambient background glow */}
-
-
-
- {activeView === 'missionControl' &&
}
- {activeView === 'simulator' && }
- {activeView === 'audio' && }
- {activeView === 'wiki' && }
-
-
+ {/* Main content column */}
+
+ {/* Mobile top bar */}
+
+
+
+
+
+
+
FALAH
+
Coach Portal
+
+ {activeAudio ? (
+
+ ) : (
+
+ )}
+
+
+ {/* Scrollable main content */}
+
+
+
+ {activeView === 'missionControl' &&
}
+ {activeView === 'simulator' &&
}
+ {activeView === 'audio' &&
}
+ {activeView === 'wiki' &&
}
+
+
+
+ {/* Mobile mini audio strip */}
+ {activeAudio && (
+
+
+
{activeAudio.title}
+
Now Playing
+
+
+
+
+
+
+
+ )}
+
+ {/* Mobile bottom nav bar */}
+
+ {navItems.map((item) => {
+ const Icon = item.icon;
+ const isActive = activeView === item.id;
+ return (
+
+ );
+ })}
+
+
);
}