diff --git a/.astro/content-assets.mjs b/.astro/content-assets.mjs
new file mode 100644
index 0000000..2b8b823
--- /dev/null
+++ b/.astro/content-assets.mjs
@@ -0,0 +1 @@
+export default new Map();
\ No newline at end of file
diff --git a/.astro/content-modules.mjs b/.astro/content-modules.mjs
new file mode 100644
index 0000000..2b8b823
--- /dev/null
+++ b/.astro/content-modules.mjs
@@ -0,0 +1 @@
+export default new Map();
\ No newline at end of file
diff --git a/.astro/data-store.json b/.astro/data-store.json
new file mode 100644
index 0000000..daa2b96
--- /dev/null
+++ b/.astro/data-store.json
@@ -0,0 +1 @@
+[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.7.5","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[]},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"responsiveImages\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false},\"legacy\":{\"collections\":false}}"]
\ No newline at end of file
diff --git a/.astro/settings.json b/.astro/settings.json
new file mode 100644
index 0000000..5b2b775
--- /dev/null
+++ b/.astro/settings.json
@@ -0,0 +1,5 @@
+{
+ "_variables": {
+ "lastUpdateCheck": 1745454555490
+ }
+}
\ No newline at end of file
diff --git a/.astro/types.d.ts b/.astro/types.d.ts
new file mode 100644
index 0000000..f964fe0
--- /dev/null
+++ b/.astro/types.d.ts
@@ -0,0 +1 @@
+///
diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
new file mode 100644
index 0000000..73cef85
--- /dev/null
+++ b/.github/copilot-instructions.md
@@ -0,0 +1,84 @@
+# GitHub Copilot Instructions for my-bank-app
+
+## Project Goal
+
+This project is a web user interface (UI) for a CRUD (Create, Read, Update, Delete) application managing financial transactions for multiple bank accounts. The UI follows a two-column dashboard layout (Alternative 3 from the design phase).
+
+## Technology Stack
+
+* **Framework:** Astro (latest version)
+* **Language:** TypeScript, JavaScript (client-side scripts), HTML, CSS
+* **Styling:** Plain CSS (`src/styles/global.css`)
+* **Data:** Currently using static JSON files (`src/data/accounts.json`, `src/data/transactions.json`). **The goal is to eventually replace this with a backend API.**
+
+## Current State & Key Features
+
+* **Layout:** A two-column dashboard layout (`src/layouts/BaseLayout.astro`, `src/pages/index.astro`) is implemented.
+ * **Sidebar:** (`src/components/Sidebar.astro`) Contains account selection dropdown and a collapsible section for adding new transactions. Includes an account summary section.
+ * **Main Content:** (`src/components/MainContent.astro`) Displays the header with the current account name and the transaction list.
+* **Components:** Separate Astro components exist for major UI sections (Sidebar, MainContent, TransactionTable, AddTransactionForm, AccountSummary).
+* **Data Loading:** Initial data for accounts and transactions is loaded from static JSON files on the server-side (`src/pages/index.astro`).
+* **Account Switching:** Selecting an account from the dropdown in the sidebar correctly updates the Main Content area (header, transaction table) and the Account Summary section using client-side JavaScript (`
\ No newline at end of file
diff --git a/src/components/MainContent.astro b/src/components/MainContent.astro
new file mode 100644
index 0000000..2bc4ffe
--- /dev/null
+++ b/src/components/MainContent.astro
@@ -0,0 +1,17 @@
+---
+import TransactionTable from './TransactionTable.astro';
+import type { Account, Transaction } from '../types';
+
+interface Props {
+ account: Account;
+ transactions: Transaction[];
+}
+
+const { account, transactions } = Astro.props;
+---
+
+
+
Transactions for {account.name} (***{account.last4})
+
+ {/* Make table updatable */}
+
\ No newline at end of file
diff --git a/src/components/Sidebar.astro b/src/components/Sidebar.astro
new file mode 100644
index 0000000..e4454b1
--- /dev/null
+++ b/src/components/Sidebar.astro
@@ -0,0 +1,31 @@
+---
+import AddTransactionForm from './AddTransactionForm.astro';
+import AccountSummary from './AccountSummary.astro';
+import type { Account } from '../types'; // We'll define this type
+
+interface Props {
+ accounts: Account[];
+ initialAccount: Account; // Pass the initially selected account
+}
+
+const { accounts, initialAccount } = Astro.props;
+---
+
\ No newline at end of file
diff --git a/src/components/TransactionTable.astro b/src/components/TransactionTable.astro
new file mode 100644
index 0000000..f62b66b
--- /dev/null
+++ b/src/components/TransactionTable.astro
@@ -0,0 +1,45 @@
+---
+import { formatCurrency, formatDate } from '../utils';
+import type { Transaction } from '../types';
+
+interface Props {
+ transactions: Transaction[];
+}
+
+const { transactions } = Astro.props;
+
+// Sort transactions by date descending for display
+const sortedTransactions = [...transactions].sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
+---
+
+