Index: frontend/src/App.tsx
===================================================================
--- frontend/src/App.tsx	(revision 9d4d22253b58f4c83850b8e11e05c5699e960b83)
+++ frontend/src/App.tsx	(revision 3e206657f4d5094291f22881a8bf23022a353507)
@@ -4,5 +4,7 @@
 import Footer from "./components/Footer";
 import Navbar from "./components/Navbar";
+import PrivateRoute from "./components/PrivateRoute";
 import CourseCatalog from "./components/SubjectCatalog/SubjectCatalog";
+import { AuthProvider } from "./context/AuthProvider";
 import "./index.css";
 import Account from "./pages/Account";
@@ -14,7 +16,4 @@
 import SubjectPreferences from "./pages/SubjectPreferences";
 import SubjectView from "./pages/SubjectView";
-import { AuthProvider } from "./context/AuthProvider";
-import ProtectedLayout from "./components/ProtectedLayout";
-import PrivateRoute from "./components/PrivateRoute";
 
 const Layout = () => (
@@ -40,5 +39,4 @@
 	</div>
 );
-
 const router = createBrowserRouter([
 	{
@@ -50,37 +48,36 @@
 			{ path: "login", element: <Login /> },
 			{ path: "register", element: <Register /> },
-			{ path: "subjects/:code", element: <SubjectView /> },
-
 			{
-				element: <ProtectedLayout />,
-				children: [
-					{
-						path: "recommendations",
-						element: (
-							<PrivateRoute>
-								<Recommendations />
-							</PrivateRoute>
-						),
-					},
-					{
-						path: "account",
-						element: (
-							<PrivateRoute>
-								<Account />
-							</PrivateRoute>
-						),
-					},
-					{
-						path: "subject-preferences",
-						element: (
-							<PrivateRoute>
-								<SubjectPreferences />
-							</PrivateRoute>
-						),
-					},
-				],
+				path: "recommendations",
+				element: (
+					<PrivateRoute>
+						<Recommendations />
+					</PrivateRoute>
+				),
 			},
-
-			{ path: "*", element: <NotFound /> },
+			{
+				path: "account",
+				element: (
+					<PrivateRoute>
+						<Account />
+					</PrivateRoute>
+				),
+			},
+			{
+				path: "subject-preferences",
+				element: (
+					<PrivateRoute>
+						<SubjectPreferences />
+					</PrivateRoute>
+				),
+			},
+			{
+				path: "subjects/:code",
+				element: <SubjectView />,
+			},
+			{
+				path: "*",
+				element: <NotFound />,
+			},
 		],
 	},
Index: ontend/src/components/LoadingSpinner.tsx
===================================================================
--- frontend/src/components/LoadingSpinner.tsx	(revision 9d4d22253b58f4c83850b8e11e05c5699e960b83)
+++ 	(revision )
@@ -1,18 +1,0 @@
-import React from 'react';
-
-const LoadingSpinner: React.FC = () => {
-    return (
-        <div className="flex flex-col items-center justify-center flex-grow w-full min-h-[300px]">
-            <div 
-                className="w-12 h-12 border-4 border-gray-200 rounded-full border-t-blue-600 animate-spin"
-                role="status"
-                aria-label="Loading"
-            >
-                <span className="sr-only">Loading...</span>
-            </div>
-            <p className="mt-4 text-lg text-white text-center">Loading session...</p>
-        </div>
-    );
-};
-
-export default LoadingSpinner;
Index: frontend/src/components/PrivateRoute.tsx
===================================================================
--- frontend/src/components/PrivateRoute.tsx	(revision 9d4d22253b58f4c83850b8e11e05c5699e960b83)
+++ frontend/src/components/PrivateRoute.tsx	(revision 3e206657f4d5094291f22881a8bf23022a353507)
@@ -10,5 +10,4 @@
 	const { isAuthenticated } = useAuth();
 
-	// This check runs AFTER ProtectedLayout has finished initializing
 	if (!isAuthenticated) {
 		return <Navigate to="/login" replace />;
Index: ontend/src/components/ProtectedLayout.tsx
===================================================================
--- frontend/src/components/ProtectedLayout.tsx	(revision 9d4d22253b58f4c83850b8e11e05c5699e960b83)
+++ 	(revision )
@@ -1,29 +1,0 @@
-import React, { useEffect, useState } from "react";
-import { Outlet } from "react-router-dom";
-import { useAuth } from "../hooks/useAuth";
-import LoadingSpinner from "../components/LoadingSpinner";
-
-const ProtectedLayout: React.FC = () => {
-	const { loading, sessionInitialized, initializeUser } = useAuth();
-	const [isInitializing, setIsInitializing] = useState(true);
-
-	useEffect(() => {
-		// If the session isn't initialized and the initial token check is done
-		if (!sessionInitialized && !loading) {
-			initializeUser().finally(() => {
-				setIsInitializing(false);
-			});
-		} else {
-			setIsInitializing(false);
-		}
-	}, [loading, sessionInitialized, initializeUser]);
-
-	if (isInitializing) {
-		return <LoadingSpinner />;
-	}
-
-	// Once done, render the child route (e.g. Recommendations)
-	return <Outlet />;
-};
-
-export default ProtectedLayout;
