diff --git a/static/css/layout.css b/static/css/layout.css
new file mode 100644
index 0000000..21021f2
--- /dev/null
+++ b/static/css/layout.css
@@ -0,0 +1,21 @@
+/* Layout structure */
+html, body {
+ height: 100%;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+}
+
+main {
+ flex: 1 0 auto;
+ padding-bottom: 2rem; /* Space before footer */
+ padding-top: 0;
+}
+
+.footer {
+ flex-shrink: 0;
+ padding: 1rem 0;
+ background-color: #f8f9fa !important;
+}
\ No newline at end of file
diff --git a/templates/csv_preview.html b/templates/csv_preview.html
index dc33929..5f66592 100644
--- a/templates/csv_preview.html
+++ b/templates/csv_preview.html
@@ -7,9 +7,10 @@
{% include 'favicon.html' %}
+
-
+
{% include 'header.html' %}
diff --git a/templates/delete.html b/templates/delete.html
index cf55765..d2f5a36 100644
--- a/templates/delete.html
+++ b/templates/delete.html
@@ -6,9 +6,10 @@
{% include 'favicon.html' %}
+
-
+
{% include 'header.html' %}
diff --git a/templates/footer.html b/templates/footer.html
index 2b72ada..1377810 100644
--- a/templates/footer.html
+++ b/templates/footer.html
@@ -1,12 +1,12 @@
-
\ No newline at end of file
diff --git a/templates/item_form.html b/templates/item_form.html
index 42325f0..ad81948 100644
--- a/templates/item_form.html
+++ b/templates/item_form.html
@@ -6,9 +6,10 @@
{% include 'favicon.html' %}
+
-
+
{% include 'header.html' %}
diff --git a/templates/upload.html b/templates/upload.html
index 6486dc1..e039945 100644
--- a/templates/upload.html
+++ b/templates/upload.html
@@ -7,12 +7,13 @@
{% include 'favicon.html' %}
+
-
+
{% include 'header.html' %}
-
+
diff --git a/templates/viewList.html b/templates/viewList.html
index 6a46749..fdf8097 100644
--- a/templates/viewList.html
+++ b/templates/viewList.html
@@ -6,9 +6,10 @@
View Inventory
{% include 'favicon.html' %}
+
-
+
{% include 'header.html' %}