diff --git a/src/web/templates/index.html b/src/web/templates/index.html
index 6b6a175..ab11e5d 100644
--- a/src/web/templates/index.html
+++ b/src/web/templates/index.html
@@ -12,11 +12,17 @@
background: #0a0a1a;
color: #e0e0e0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
- overflow-x: hidden;
+ overflow: hidden;
+ height: 100vh;
}
/* Header */
.header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 10;
display: flex;
align-items: center;
justify-content: space-between;
@@ -55,12 +61,13 @@
.tab-content { display: none; }
.tab-content.active { display: block; }
- /* Camera feeds */
+ /* Camera feeds (detection tab) */
.cameras {
display: flex;
gap: 8px;
padding: 8px;
justify-content: center;
+ height: calc(100vh - 48px);
}
.cam-box {
flex: 1;
@@ -94,18 +101,24 @@
}
.viewport-3d canvas { width: 100% !important; height: 100% !important; }
- /* Full-height tab layout: 3D on top, small bottom bar */
+ /* Full-height tab layout */
+ .tab-content {
+ padding-top: 48px;
+ }
.tab-full {
- display: flex;
- flex-direction: column;
- height: calc(100vh - 52px);
+ height: calc(100vh - 48px - 100px);
}
.tab-full .viewport-3d {
- flex: 1;
- height: auto;
+ width: 100%;
+ height: 100%;
border-top: none;
}
.bottom-bar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 10;
display: flex;
align-items: center;
justify-content: center;
@@ -114,7 +127,6 @@
background: #0d0d20;
border-top: 1px solid #222;
height: 100px;
- flex-shrink: 0;
}
.bottom-card {
width: 120px;