Subh775 commited on
Commit
7932d1b
·
1 Parent(s): c734973

words/css

Browse files
Files changed (2) hide show
  1. frontend/initial.html +9 -13
  2. frontend/settings.html +72 -77
frontend/initial.html CHANGED
@@ -120,9 +120,8 @@
120
 
121
  <!-- STEP: Modules -->
122
  <div id="step-modules" class="w-full flex flex-col fade-in">
123
- <h2 class="text-3xl font-bold mb-2 text-white text-center">UrbanFlow</h2>
124
- <p class="text-[13px] font-medium text-neutral-500 mb-8 text-center">Select below analytical pipeline to
125
- proceed.</p>
126
 
127
  <div class="flex justify-center w-full">
128
  <div onclick="showStep('upload')"
@@ -145,18 +144,16 @@
145
  class="text-neutral-500 hover:text-white transition flex items-center text-xs font-bold uppercase tracking-widest mb-6 w-fit">
146
  <i class="fa-solid fa-arrow-left mr-2"></i> Back
147
  </button>
148
- <h2 class="text-3xl font-bold mb-2 text-white text-center">Define Media</h2>
149
- <p class="text-[13px] font-medium text-neutral-500 mb-8 text-center">Provide a target video footage. </p>
150
 
151
  <input id="file-input" type="file" accept="video/*" class="hidden">
152
  <div id="dropzone" onclick="document.getElementById('file-input').click()"
153
  class="border border-dashed border-neutral-700 rounded-[2rem] p-12 flex flex-col items-center justify-center cursor-pointer transition-all duration-300 group">
154
  <i
155
- class="fa-solid fa-arrow-up-from-bracket text-4xl text-neutral-700 group-hover:text-white transition mb-5"></i>
156
- <span class="font-semibold text-neutral-300 text-lg mb-2 text-center">Select or drop media
157
- file</span>
158
- <span class="text-[10px] font-bold uppercase tracking-widest text-neutral-600 text-center">MP4, AVI,
159
- MOV Accepted</span>
160
  </div>
161
 
162
  <div id="upload-progress-container" class="hidden mt-10 w-full">
@@ -173,9 +170,8 @@
173
 
174
  <!-- STEP: Draw -->
175
  <div id="step-draw" class="hidden w-full flex flex-col fade-in">
176
- <h2 class="text-3xl font-bold mb-2 text-white text-center">Define Boundary</h2>
177
- <p class="text-[11px] font-bold uppercase tracking-widest text-neutral-500 mb-6 text-center">Mark two
178
- points to define counting threshold</p>
179
 
180
  <div
181
  class="relative w-full aspect-video bg-neutral-950 rounded-3xl overflow-hidden cursor-crosshair mb-6">
 
120
 
121
  <!-- STEP: Modules -->
122
  <div id="step-modules" class="w-full flex flex-col fade-in">
123
+ <h2 class="text-3xl font-bold mb-2 text-center" style="color:#f0ece6">UrbanFlow</h2>
124
+ <p class="text-[13px] font-medium mb-8 text-center" style="color:#a89f97">Select an analytical module to continue.</p>
 
125
 
126
  <div class="flex justify-center w-full">
127
  <div onclick="showStep('upload')"
 
144
  class="text-neutral-500 hover:text-white transition flex items-center text-xs font-bold uppercase tracking-widest mb-6 w-fit">
145
  <i class="fa-solid fa-arrow-left mr-2"></i> Back
146
  </button>
147
+ <h2 class="text-3xl font-bold mb-2 text-center" style="color:#f0ece6">Source Media</h2>
148
+ <p class="text-[13px] font-medium mb-8 text-center" style="color:#a89f97">Upload a video file to begin analysis.</p>
149
 
150
  <input id="file-input" type="file" accept="video/*" class="hidden">
151
  <div id="dropzone" onclick="document.getElementById('file-input').click()"
152
  class="border border-dashed border-neutral-700 rounded-[2rem] p-12 flex flex-col items-center justify-center cursor-pointer transition-all duration-300 group">
153
  <i
154
+ class="fa-solid fa-arrow-up-from-bracket text-4xl mb-5 block mx-auto transition" style="color:#a89f97"></i>
155
+ <span class="font-semibold text-lg mb-2 text-center block" style="color:#f0ece6">Drop or select a video file</span>
156
+ <span class="text-[10px] font-bold uppercase tracking-widest text-center block" style="color:#a89f97">MP4 · AVI · MOV</span>
 
 
157
  </div>
158
 
159
  <div id="upload-progress-container" class="hidden mt-10 w-full">
 
170
 
171
  <!-- STEP: Draw -->
172
  <div id="step-draw" class="hidden w-full flex flex-col fade-in">
173
+ <h2 class="text-3xl font-bold mb-2 text-center" style="color:#f0ece6">Spatial Boundary</h2>
174
+ <p class="text-[11px] font-bold uppercase tracking-widest mb-6 text-center" style="color:#a89f97">Mark two points to define the vehicle counting threshold</p>
 
175
 
176
  <div
177
  class="relative w-full aspect-video bg-neutral-950 rounded-3xl overflow-hidden cursor-crosshair mb-6">
frontend/settings.html CHANGED
@@ -41,11 +41,20 @@
41
  }
42
  }
43
 
 
 
 
 
 
 
 
 
 
44
  .bg-glow {
45
  position: absolute;
46
  width: 600px;
47
  height: 600px;
48
- background: radial-gradient(circle, rgba(241, 245, 249, 1) 0%, rgba(255, 255, 255, 0) 70%);
49
  top: 50%;
50
  left: 0;
51
  transform: translateY(-50%);
@@ -57,7 +66,7 @@
57
  width: 36px;
58
  height: 20px;
59
  border-radius: 10px;
60
- background: #cbd5e1;
61
  position: relative;
62
  cursor: pointer;
63
  transition: background 0.2s;
@@ -65,23 +74,24 @@
65
  }
66
 
67
  .toggle-track.active {
68
- background: #0f172a;
69
  }
70
 
71
  .toggle-thumb {
72
  width: 16px;
73
  height: 16px;
74
  border-radius: 50%;
75
- background: #fff;
76
  position: absolute;
77
  top: 2px;
78
  left: 2px;
79
  transition: transform 0.2s;
80
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
81
  }
82
 
83
  .toggle-track.active .toggle-thumb {
84
  transform: translateX(16px);
 
85
  }
86
 
87
  .toggle-track.locked {
@@ -92,16 +102,16 @@
92
 
93
  .custom-select {
94
  appearance: none;
95
- background: #f8fafc;
96
- border: 1px solid #e2e8f0;
97
  border-radius: 8px;
98
  padding: 6px 32px 6px 12px;
99
  font-size: 12px;
100
  font-weight: 600;
101
- color: #1e293b;
102
  cursor: pointer;
103
  outline: none;
104
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2364748b'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");
105
  background-repeat: no-repeat;
106
  background-position: right 10px center;
107
  background-size: 14px;
@@ -109,11 +119,11 @@
109
  }
110
 
111
  .custom-select:hover {
112
- border-color: #94a3b8;
113
  }
114
 
115
  .custom-select:focus {
116
- border-color: #0f172a;
117
  }
118
 
119
  .custom-select:disabled {
@@ -131,16 +141,16 @@
131
  }
132
 
133
  .setting-card {
134
- background: #fff;
135
- border: 1px solid #e2e8f0;
136
  border-radius: 16px;
137
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
138
  overflow: hidden;
139
  }
140
 
141
  .setting-card-header {
142
  padding: 16px 24px;
143
- border-bottom: 1px solid #f1f5f9;
144
  }
145
 
146
  .setting-row {
@@ -148,7 +158,7 @@
148
  align-items: center;
149
  justify-content: space-between;
150
  padding: 14px 24px;
151
- border-bottom: 1px solid #f8fafc;
152
  }
153
 
154
  .setting-row:last-child {
@@ -158,18 +168,19 @@
158
  </head>
159
 
160
  <body
161
- class="bg-white text-slate-900 min-h-screen w-full overflow-x-hidden flex flex-col items-center selection:bg-black selection:text-white relative z-0">
 
162
 
163
  <div class="bg-glow"></div>
164
 
165
  <header class="mt-6 flex flex-col items-center flex-shrink-0 w-full z-10">
166
  <img src="uf_rf.png" alt="UrbanFlow Logo" class="h-28 w-auto object-contain mb-2">
167
  <div class="flex items-center space-x-3">
168
- <span class="w-12 h-[1px] bg-slate-200"></span>
169
- <p class="font-montserrat font-bold tracking-[0.25em] uppercase text-[10px] text-slate-400 text-center">
170
- Configure & Launch
171
  </p>
172
- <span class="w-12 h-[1px] bg-slate-200"></span>
173
  </div>
174
  </header>
175
 
@@ -180,27 +191,23 @@
180
  <!-- Processing Parameters (locked once started) -->
181
  <div class="setting-card" id="card-processing">
182
  <div class="setting-card-header">
183
- <h3 class="font-montserrat font-bold text-slate-900 text-base">Processing Parameters</h3>
184
- <p class="text-[10px] font-montserrat font-medium text-slate-400 mt-1 uppercase tracking-widest">
185
- Auto-configured · adjustable before start</p>
186
  </div>
187
 
188
  <!-- Image Size -->
189
  <div class="setting-row">
190
  <div>
191
- <div class="text-xs font-semibold text-slate-700">Image Size</div>
192
- <div class="text-[10px] text-slate-400 mt-0.5">Model input resolution</div>
193
  </div>
194
- <div
195
- class="flex items-center space-x-3 bg-slate-50 px-3 py-1.5 rounded-full border border-slate-200 shadow-sm">
196
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
197
- onclick="adjust('imgsz',-1)">
198
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
199
  </button>
200
- <span class="mono-font font-bold w-12 text-center text-slate-900 text-sm"
201
- id="val-imgsz">640</span>
202
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
203
- onclick="adjust('imgsz',1)">
204
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
205
  </button>
206
  </div>
@@ -209,19 +216,15 @@
209
  <!-- Confidence -->
210
  <div class="setting-row">
211
  <div>
212
- <div class="text-xs font-semibold text-slate-700">Confidence</div>
213
- <div class="text-[10px] text-slate-400 mt-0.5">Minimum detection threshold</div>
214
  </div>
215
- <div
216
- class="flex items-center space-x-3 bg-slate-50 px-3 py-1.5 rounded-full border border-slate-200 shadow-sm">
217
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
218
- onclick="adjust('conf',-1)">
219
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
220
  </button>
221
- <span class="mono-font font-bold w-12 text-center text-slate-900 text-sm"
222
- id="val-conf">0.12</span>
223
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
224
- onclick="adjust('conf',1)">
225
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
226
  </button>
227
  </div>
@@ -230,19 +233,15 @@
230
  <!-- IoU -->
231
  <div class="setting-row">
232
  <div>
233
- <div class="text-xs font-semibold text-slate-700">IoU Threshold</div>
234
- <div class="text-[10px] text-slate-400 mt-0.5">Non-max suppression overlap</div>
235
  </div>
236
- <div
237
- class="flex items-center space-x-3 bg-slate-50 px-3 py-1.5 rounded-full border border-slate-200 shadow-sm">
238
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
239
- onclick="adjust('iou',-1)">
240
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
241
  </button>
242
- <span class="mono-font font-bold w-12 text-center text-slate-900 text-sm"
243
- id="val-iou">0.60</span>
244
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
245
- onclick="adjust('iou',1)">
246
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
247
  </button>
248
  </div>
@@ -251,19 +250,15 @@
251
  <!-- Frame Stride -->
252
  <div class="setting-row">
253
  <div>
254
- <div class="text-xs font-semibold text-slate-700">Frame Stride</div>
255
- <div class="text-[10px] text-slate-400 mt-0.5">Frames skipped between detections</div>
256
  </div>
257
- <div
258
- class="flex items-center space-x-3 bg-slate-50 px-3 py-1.5 rounded-full border border-slate-200 shadow-sm">
259
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
260
- onclick="adjust('detect_stride',-1)">
261
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
262
  </button>
263
- <span class="mono-font font-bold w-12 text-center text-slate-900 text-sm"
264
- id="val-detect_stride">3</span>
265
- <button class="stepper-btn text-slate-400 hover:text-black transition p-1"
266
- onclick="adjust('detect_stride',1)">
267
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
268
  </button>
269
  </div>
@@ -272,8 +267,8 @@
272
  <!-- Report Format -->
273
  <div class="setting-row">
274
  <div>
275
- <div class="text-xs font-semibold text-slate-700">Report Format</div>
276
- <div class="text-[10px] text-slate-400 mt-0.5">Export file type for report charts</div>
277
  </div>
278
  <select class="custom-select" id="sel-report-format">
279
  <option value="png" selected>PNG Image</option>
@@ -284,8 +279,8 @@
284
  <!-- Annotated Video -->
285
  <div class="setting-row">
286
  <div>
287
- <div class="text-xs font-semibold text-slate-700">Export Annotated Video</div>
288
- <div class="text-[10px] text-slate-400 mt-0.5">Bounding boxes + track IDs + counting line</div>
289
  </div>
290
  <div class="toggle-track" id="tog-annotated" onclick="toggleSwitch(this)">
291
  <div class="toggle-thumb"></div>
@@ -296,16 +291,16 @@
296
  <!-- Display Preferences (editable anytime) -->
297
  <div class="setting-card" id="card-display">
298
  <div class="setting-card-header">
299
- <h3 class="font-montserrat font-bold text-slate-900 text-base">Display Preferences</h3>
300
- <p class="text-[10px] font-montserrat font-medium text-slate-400 mt-1 uppercase tracking-widest">
301
- Editable anytime · applies to live charts</p>
302
  </div>
303
 
304
  <!-- Chart Color Palette -->
305
  <div class="setting-row">
306
  <div>
307
- <div class="text-xs font-semibold text-slate-700">Chart Color Palette</div>
308
- <div class="text-[10px] text-slate-400 mt-0.5">Color scheme for all dashboard charts</div>
309
  </div>
310
  <select class="custom-select" id="sel-palette">
311
  <option value="default" selected>Default</option>
@@ -316,8 +311,7 @@
316
 
317
  <!-- Palette Preview -->
318
  <div class="px-6 py-4">
319
- <div class="text-[10px] font-bold text-slate-400 uppercase tracking-widest mb-3">Palette Preview
320
- </div>
321
  <div class="flex gap-2" id="palette-preview"></div>
322
  </div>
323
  </div>
@@ -326,8 +320,9 @@
326
 
327
  <!-- Start Button -->
328
  <button id="btn-start" onclick="startProcessing()"
329
- class="w-full py-4 bg-black text-white rounded-full font-montserrat font-semibold hover:bg-slate-800 transition-all text-lg flex justify-center items-center shadow-lg">
330
- Start Processing <i class="fa-solid fa-arrow-right ml-3 text-sm"></i>
 
331
  </button>
332
 
333
  </main>
 
41
  }
42
  }
43
 
44
+ :root {
45
+ --cocoa: #8b5e3c;
46
+ --cocoa-l: #c89a6c;
47
+ --cocoa-xl: #d4b08a;
48
+ --t1: #f0ece6;
49
+ --t2: #a89f97;
50
+ --border: #2a2a2a;
51
+ }
52
+
53
  .bg-glow {
54
  position: absolute;
55
  width: 600px;
56
  height: 600px;
57
+ background: radial-gradient(circle, rgba(139,94,60,0.08) 0%, rgba(0,0,0,0) 70%);
58
  top: 50%;
59
  left: 0;
60
  transform: translateY(-50%);
 
66
  width: 36px;
67
  height: 20px;
68
  border-radius: 10px;
69
+ background: #2a2a2a;
70
  position: relative;
71
  cursor: pointer;
72
  transition: background 0.2s;
 
74
  }
75
 
76
  .toggle-track.active {
77
+ background: var(--cocoa-l);
78
  }
79
 
80
  .toggle-thumb {
81
  width: 16px;
82
  height: 16px;
83
  border-radius: 50%;
84
+ background: #555;
85
  position: absolute;
86
  top: 2px;
87
  left: 2px;
88
  transition: transform 0.2s;
89
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
90
  }
91
 
92
  .toggle-track.active .toggle-thumb {
93
  transform: translateX(16px);
94
+ background: #000;
95
  }
96
 
97
  .toggle-track.locked {
 
102
 
103
  .custom-select {
104
  appearance: none;
105
+ background: #111;
106
+ border: 1px solid #2a2a2a;
107
  border-radius: 8px;
108
  padding: 6px 32px 6px 12px;
109
  font-size: 12px;
110
  font-weight: 600;
111
+ color: var(--t1);
112
  cursor: pointer;
113
  outline: none;
114
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23a89f97'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");
115
  background-repeat: no-repeat;
116
  background-position: right 10px center;
117
  background-size: 14px;
 
119
  }
120
 
121
  .custom-select:hover {
122
+ border-color: var(--cocoa);
123
  }
124
 
125
  .custom-select:focus {
126
+ border-color: var(--cocoa-l);
127
  }
128
 
129
  .custom-select:disabled {
 
141
  }
142
 
143
  .setting-card {
144
+ background: #0a0a0a;
145
+ border: 1px solid #2a2a2a;
146
  border-radius: 16px;
147
+ box-shadow: 0 4px 24px rgba(0,0,0,0.6);
148
  overflow: hidden;
149
  }
150
 
151
  .setting-card-header {
152
  padding: 16px 24px;
153
+ border-bottom: 1px solid #1a1a1a;
154
  }
155
 
156
  .setting-row {
 
158
  align-items: center;
159
  justify-content: space-between;
160
  padding: 14px 24px;
161
+ border-bottom: 1px solid #111;
162
  }
163
 
164
  .setting-row:last-child {
 
168
  </head>
169
 
170
  <body
171
+ class="min-h-screen w-full overflow-x-hidden flex flex-col items-center relative z-0"
172
+ style="background:#000;color:#f0ece6;font-family:'Montserrat',sans-serif">
173
 
174
  <div class="bg-glow"></div>
175
 
176
  <header class="mt-6 flex flex-col items-center flex-shrink-0 w-full z-10">
177
  <img src="uf_rf.png" alt="UrbanFlow Logo" class="h-28 w-auto object-contain mb-2">
178
  <div class="flex items-center space-x-3">
179
+ <span class="w-12 h-[1px]" style="background:#2a2a2a"></span>
180
+ <p class="font-montserrat font-bold tracking-[0.25em] uppercase text-[10px] text-center" style="color:#a89f97">
181
+ Inference Configuration
182
  </p>
183
+ <span class="w-12 h-[1px]" style="background:#2a2a2a"></span>
184
  </div>
185
  </header>
186
 
 
191
  <!-- Processing Parameters (locked once started) -->
192
  <div class="setting-card" id="card-processing">
193
  <div class="setting-card-header">
194
+ <h3 class="font-montserrat font-bold text-base" style="color:#f0ece6">Processing Parameters</h3>
195
+ <p class="text-[10px] font-montserrat font-medium mt-1 uppercase tracking-widest" style="color:#a89f97">
196
+ Auto-configured &middot; adjustable before start</p>
197
  </div>
198
 
199
  <!-- Image Size -->
200
  <div class="setting-row">
201
  <div>
202
+ <div class="text-xs font-semibold" style="color:#f0ece6">Image Size</div>
203
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Model input resolution</div>
204
  </div>
205
+ <div class="flex items-center space-x-3 px-3 py-1.5 rounded-full" style="background:#111;border:1px solid #2a2a2a">
206
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('imgsz',-1)">
 
 
207
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
208
  </button>
209
+ <span class="mono-font font-bold w-12 text-center text-sm" style="color:#f0ece6" id="val-imgsz">640</span>
210
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('imgsz',1)">
 
 
211
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
212
  </button>
213
  </div>
 
216
  <!-- Confidence -->
217
  <div class="setting-row">
218
  <div>
219
+ <div class="text-xs font-semibold" style="color:#f0ece6">Confidence</div>
220
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Minimum detection threshold</div>
221
  </div>
222
+ <div class="flex items-center space-x-3 px-3 py-1.5 rounded-full" style="background:#111;border:1px solid #2a2a2a">
223
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('conf',-1)">
 
 
224
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
225
  </button>
226
+ <span class="mono-font font-bold w-12 text-center text-sm" style="color:#f0ece6" id="val-conf">0.12</span>
227
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('conf',1)">
 
 
228
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
229
  </button>
230
  </div>
 
233
  <!-- IoU -->
234
  <div class="setting-row">
235
  <div>
236
+ <div class="text-xs font-semibold" style="color:#f0ece6">IoU Threshold</div>
237
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Non-max suppression overlap</div>
238
  </div>
239
+ <div class="flex items-center space-x-3 px-3 py-1.5 rounded-full" style="background:#111;border:1px solid #2a2a2a">
240
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('iou',-1)">
 
 
241
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
242
  </button>
243
+ <span class="mono-font font-bold w-12 text-center text-sm" style="color:#f0ece6" id="val-iou">0.60</span>
244
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('iou',1)">
 
 
245
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
246
  </button>
247
  </div>
 
250
  <!-- Frame Stride -->
251
  <div class="setting-row">
252
  <div>
253
+ <div class="text-xs font-semibold" style="color:#f0ece6">Frame Stride</div>
254
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Frames skipped between detections</div>
255
  </div>
256
+ <div class="flex items-center space-x-3 px-3 py-1.5 rounded-full" style="background:#111;border:1px solid #2a2a2a">
257
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('detect_stride',-1)">
 
 
258
  <i class="fa-solid fa-chevron-left text-[10px]"></i>
259
  </button>
260
+ <span class="mono-font font-bold w-12 text-center text-sm" style="color:#f0ece6" id="val-detect_stride">3</span>
261
+ <button class="stepper-btn p-1 transition" style="color:#a89f97" onclick="adjust('detect_stride',1)">
 
 
262
  <i class="fa-solid fa-chevron-right text-[10px]"></i>
263
  </button>
264
  </div>
 
267
  <!-- Report Format -->
268
  <div class="setting-row">
269
  <div>
270
+ <div class="text-xs font-semibold" style="color:#f0ece6">Report Format</div>
271
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Export file type for report charts</div>
272
  </div>
273
  <select class="custom-select" id="sel-report-format">
274
  <option value="png" selected>PNG Image</option>
 
279
  <!-- Annotated Video -->
280
  <div class="setting-row">
281
  <div>
282
+ <div class="text-xs font-semibold" style="color:#f0ece6">Export Annotated Video</div>
283
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Bounding boxes · track IDs · spatial boundary</div>
284
  </div>
285
  <div class="toggle-track" id="tog-annotated" onclick="toggleSwitch(this)">
286
  <div class="toggle-thumb"></div>
 
291
  <!-- Display Preferences (editable anytime) -->
292
  <div class="setting-card" id="card-display">
293
  <div class="setting-card-header">
294
+ <h3 class="font-montserrat font-bold text-base" style="color:#f0ece6">Display Preferences</h3>
295
+ <p class="text-[10px] font-montserrat font-medium mt-1 uppercase tracking-widest" style="color:#a89f97">
296
+ Editable anytime &middot; applies to live charts</p>
297
  </div>
298
 
299
  <!-- Chart Color Palette -->
300
  <div class="setting-row">
301
  <div>
302
+ <div class="text-xs font-semibold" style="color:#f0ece6">Chart Color Palette</div>
303
+ <div class="text-[10px] mt-0.5" style="color:#a89f97">Color scheme for all dashboard charts</div>
304
  </div>
305
  <select class="custom-select" id="sel-palette">
306
  <option value="default" selected>Default</option>
 
311
 
312
  <!-- Palette Preview -->
313
  <div class="px-6 py-4">
314
+ <div class="text-[10px] font-bold uppercase tracking-widest mb-3" style="color:#a89f97">Palette Preview</div>
 
315
  <div class="flex gap-2" id="palette-preview"></div>
316
  </div>
317
  </div>
 
320
 
321
  <!-- Start Button -->
322
  <button id="btn-start" onclick="startProcessing()"
323
+ class="w-full py-4 rounded-full font-montserrat font-semibold transition-all text-sm flex justify-center items-center shadow-lg"
324
+ style="background:#0a0a0a;border:1px solid var(--cocoa);color:var(--cocoa-l)">
325
+ Initiate Processing <i class="fa-solid fa-arrow-right ml-3 text-sm"></i>
326
  </button>
327
 
328
  </main>