Tamannathakur commited on
Commit
e4a867e
·
verified ·
1 Parent(s): 5d936fe

Upload style.css

Browse files
Files changed (1) hide show
  1. style.css +1215 -0
style.css ADDED
@@ -0,0 +1,1215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body,
2
+ html {
3
+ margin: 0;
4
+ padding: 0;
5
+ height: 100%;
6
+ overflow-x: hidden;
7
+ }
8
+
9
+
10
+ body::before {
11
+ content: '';
12
+ position: fixed;
13
+ top: 0;
14
+ left: 0;
15
+ right: 0;
16
+ bottom: 0;
17
+ background-image:
18
+ linear-gradient(rgba(59, 130, 246, 0.03) 1px, transparent 1px),
19
+ linear-gradient(90deg, rgba(59, 130, 246, 0.03) 1px, transparent 1px);
20
+ background-size: 60px 60px;
21
+ pointer-events: none;
22
+ z-index: 0;
23
+ background:
24
+ radial-gradient(circle at 20% 15%, rgba(59, 130, 246, 0.12), transparent 40%),
25
+ radial-gradient(circle at 80% 25%, rgba(139, 92, 246, 0.1), transparent 45%),
26
+ radial-gradient(circle at 50% 70%, rgba(16, 185, 129, 0.08), transparent 50%),
27
+ radial-gradient(circle at 10% 85%, rgba(236, 72, 153, 0.08), transparent 45%),
28
+ linear-gradient(135deg, #0a0e27 0%, #1a1f3a 25%, #0f1629 50%, #1e2139 75%, #0d1425 100%) !important;
29
+ /* animation: gridScroll 30s linear infinite; */
30
+ }
31
+
32
+ /* Hexagon pattern overlay */
33
+ body::after {
34
+ content: '';
35
+ position: fixed;
36
+ top: 0;
37
+ left: 0;
38
+ right: 0;
39
+ bottom: 0;
40
+ background-image:
41
+ repeating-linear-gradient(45deg, transparent, transparent 25px, rgba(174, 246, 59, 0.015) 35px, rgba(93, 205, 18, 0.015) 70px),
42
+ repeating-linear-gradient(-45deg, transparent, transparent 25px, rgba(139, 92, 246, 0.015) 35px, rgba(139, 92, 246, 0.015) 70px);
43
+ pointer-events: none;
44
+ z-index: 0;
45
+ opacity: 0.6;
46
+ }
47
+
48
+ /* ------------------------- */
49
+ /* FORCE GRADIO TO NOT WRAP */
50
+ /* ------------------------- */
51
+
52
+ /* Outer Gradio container */
53
+ .gradio-container,
54
+ .gradio-container .wrap,
55
+ .gradio-container .contain {
56
+ display: flex !important;
57
+ flex-wrap: nowrap !important;
58
+ justify-content: space-between !important;
59
+ align-items: stretch !important;
60
+ }
61
+
62
+ /* Prevent Gradio auto-min-width */
63
+ .gradio-container .contain>div[id^="component-"] {
64
+ min-width: auto !important;
65
+ flex: 1 !important;
66
+ }
67
+
68
+ /* Space between cards */
69
+ .gradio-container .contain>div[id^="component-"]>.gr-group,
70
+ .gradio-container .contain>div[id^="component-"]>div {
71
+ margin: 10px 15px !important;
72
+ }
73
+
74
+
75
+ /* .gradio-container {
76
+ max-width: 100% !important;
77
+ width: 100% !important;
78
+ margin: 0 !important;
79
+ padding: 0 !important;
80
+ background-color: #17203D !important;
81
+ min-height: 100vh;
82
+ } */
83
+ .header-box {
84
+ position: relative;
85
+ padding: 0px 30px;
86
+ background:
87
+ radial-gradient(circle at 20% 10%, rgba(255, 255, 255, 0.25), transparent 55%),
88
+ radial-gradient(circle at 85% 20%, rgba(45, 135, 255, 0.22), transparent 70%),
89
+ linear-gradient(135deg, #0e1a2b, #0f1032, #03011a);
90
+ color: white;
91
+ border-bottom-left-radius: 40px;
92
+ border-bottom-right-radius: 40px;
93
+ box-shadow: 0 50px 90px -20px rgba(0, 0, 0, 0.6);
94
+
95
+ display: flex;
96
+ justify-content: space-;
97
+ align-items: center;
98
+ /* width:100%; */
99
+
100
+ }
101
+
102
+ .header-title {
103
+ font-size: 28px;
104
+ font-weight: bold;
105
+ color: white;
106
+ margin: 0;
107
+ text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
108
+ }
109
+
110
+ .compact-section {
111
+ background-color: rgba(255, 255, 255, 0.95);
112
+ padding: 12px;
113
+ border-radius: 10px;
114
+ margin: 8px;
115
+ height: calc(100vh - 180px);
116
+ overflow-y: auto;
117
+ }
118
+
119
+ .card-box {
120
+ background-color: rgba(255, 255, 255, 0.95);
121
+ padding: 15px;
122
+ border-radius: 12px;
123
+ margin: 10px;
124
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
125
+ border: 1px solid #e0e0e0;
126
+ }
127
+
128
+ /* Compact Upload Box */
129
+ .compact-upload-box {
130
+ background-color: rgba(255, 255, 255, 0.95);
131
+ padding: 12px;
132
+ border-radius: 12px;
133
+ margin: 10px;
134
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
135
+ border: 1px solid #e0e0e0;
136
+ max-width: 280px;
137
+ }
138
+
139
+ .compact-upload-box .upload-container {
140
+ height: 180px !important;
141
+ min-height: 180px !important;
142
+ }
143
+
144
+ .compact-upload-box input[type="file"] {
145
+ height: 140px !important;
146
+ min-height: 140px !important;
147
+ }
148
+
149
+ .how-to-use h3,
150
+ .how-to-use li {
151
+ color: white;
152
+ }
153
+
154
+ .how-to-use {
155
+ background: rgba(255, 255, 255, 0.12);
156
+ /* frosted glass transparency */
157
+ backdrop-filter: blur(12px) saturate(160%);
158
+ /* glass blur effect */
159
+ -webkit-backdrop-filter: blur(12px) saturate(160%);
160
+
161
+ border-radius: 18px;
162
+ border: 1px solid rgba(255, 255, 255, 0.25);
163
+
164
+ margin-bottom: 20px;
165
+ max-height: 196px;
166
+ height: 100%;
167
+
168
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
169
+ /* soft floating shadow */
170
+
171
+ transition: all 0.3s ease;
172
+ }
173
+
174
+ .how-to-use:hover {
175
+ background: rgba(255, 255, 255, 0.18);
176
+ border-color: rgba(255, 255, 255, 0.4);
177
+ transform: translateY(-3px);
178
+ }
179
+
180
+ .upload-card {
181
+ background: rgba(255, 255, 255, 0.12);
182
+ backdrop-filter: blur(14px) saturate(160%);
183
+ -webkit-backdrop-filter: blur(14px) saturate(160%);
184
+ max-height: 100px;
185
+ height: 100%;
186
+ padding: 22px;
187
+ border-radius: 18px;
188
+ border: 1px solid rgba(255, 255, 255, 0.25);
189
+ box-shadow: 0 6px 26px rgba(0, 0, 0, 0.25);
190
+ transition: 0.3s ease;
191
+ }
192
+
193
+ .first-row {
194
+ max-height: 250px;
195
+ height: 100%;
196
+ }
197
+
198
+ .upload-card:hover {
199
+ background: rgba(255, 255, 255, 0.18);
200
+ border-color: rgba(255, 255, 255, 0.35);
201
+ }
202
+
203
+
204
+
205
+ /* Floating Ask Me Button */
206
+ button.floating-chat-btn,
207
+ .floating-chat-btn {
208
+ position: fixed !important;
209
+ bottom: 30px !important;
210
+ right: 30px !important;
211
+ z-index: 1000 !important;
212
+ width: 65px !important;
213
+ height: 65px !important;
214
+ min-width: 65px !important;
215
+ min-height: 65px !important;
216
+ max-width: 65px !important;
217
+ max-height: 65px !important;
218
+ border-radius: 50% !important;
219
+ padding: 0 !important;
220
+ margin: 0 !important;
221
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
222
+ border: 3px solid rgba(255, 255, 255, 0.3) !important;
223
+ box-shadow: 0 8px 24px rgba(102, 126, 234, 0.6) !important;
224
+ cursor: pointer !important;
225
+ font-size: 32px !important;
226
+ line-height: 1 !important;
227
+ transition: all 0.3s ease !important;
228
+ display: flex !important;
229
+ align-items: center !important;
230
+ justify-content: center !important;
231
+ }
232
+
233
+ button.floating-chat-btn:hover,
234
+ .floating-chat-btn:hover {
235
+ transform: scale(1.15) rotate(5deg) !important;
236
+ box-shadow: 0 10px 30px rgba(102, 126, 234, 0.8) !important;
237
+ border-color: rgba(255, 255, 255, 0.5) !important;
238
+ }
239
+
240
+ /* Chat Popup Container */
241
+ .chat-popup-box {
242
+ position: fixed !important;
243
+ bottom: 110px !important;
244
+ right: 30px !important;
245
+ width: 480px !important;
246
+ max-height: 75vh !important;
247
+ z-index: 999 !important;
248
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(250, 250, 255, 0.98) 100%) !important;
249
+ border-radius: 20px !important;
250
+ box-shadow: 0 12px 45px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(102, 126, 234, 0.2) !important;
251
+ overflow: hidden !important;
252
+ animation: slideInUp 0.3s ease-out !important;
253
+ }
254
+
255
+ @keyframes slideInUp {
256
+ from {
257
+ opacity: 0;
258
+ transform: translateY(20px);
259
+ }
260
+
261
+ to {
262
+ opacity: 1;
263
+ transform: translateY(0);
264
+ }
265
+ }
266
+
267
+ /* Chat Header */
268
+ .chat-header {
269
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
270
+ padding: 20px 24px !important;
271
+ color: white !important;
272
+ border-radius: 20px 20px 0 0 !important;
273
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
274
+ }
275
+
276
+ .chat-header h3 {
277
+ margin: 0 !important;
278
+ font-size: 20px !important;
279
+ font-weight: 600 !important;
280
+ color: white !important;
281
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) !important;
282
+ }
283
+
284
+ /* Chat Content */
285
+ .chat-content-area {
286
+ padding: 20px !important;
287
+ max-height: calc(75vh - 80px) !important;
288
+ overflow-y: auto !important;
289
+ background: transparent !important;
290
+ pointer-events: auto !important;
291
+ position: relative !important;
292
+ z-index: 1 !important;
293
+ }
294
+
295
+ .chat-content-area>* {
296
+ margin-bottom: 15px !important;
297
+ }
298
+
299
+ /* Sample Questions */
300
+ .sample-questions-box {
301
+ background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%) !important;
302
+ border-radius: 12px !important;
303
+ padding: 15px 18px !important;
304
+ margin-bottom: 18px !important;
305
+ border: 1px solid rgba(102, 126, 234, 0.15) !important;
306
+ }
307
+
308
+ .sample-questions-box h4 {
309
+ margin: 0 0 12px 0 !important;
310
+ color: #333 !important;
311
+ font-size: 15px !important;
312
+ font-weight: 600 !important;
313
+ }
314
+
315
+ .sample-q-text {
316
+ color: rgb(0, 0, 0) !important;
317
+ font-size: 13px !important;
318
+ margin: 0px !important;
319
+ line-height: 1.15 !important;
320
+ padding: 0px !important;
321
+ }
322
+
323
+ .sample-q-text p {
324
+ color: rgb(0, 0, 0) !important;
325
+ margin: 0px !important;
326
+ padding: 0px !important;
327
+ }
328
+
329
+ /* Question Input */
330
+ .question-input-box {
331
+ margin-top: 20px !important;
332
+ margin-bottom: 12px !important;
333
+ }
334
+
335
+ .question-input-box h4 {
336
+ margin: 0 0 10px 0 !important;
337
+ color: #333 !important;
338
+ font-size: 15px !important;
339
+ font-weight: 600 !important;
340
+ }
341
+
342
+ /* Minimal textbox styling - let Gradio handle rendering */
343
+ .chat-content-area .chat-question-input {
344
+ margin: 12px 0 !important;
345
+ }
346
+
347
+ .chat-content-area textarea,
348
+ .chat-content-area input[type="text"] {
349
+ background: #ffffff !important;
350
+ border: 2px solid #667eea !important;
351
+ border-radius: 10px !important;
352
+ padding: 14px !important;
353
+ font-size: 14px !important;
354
+ }
355
+
356
+ .chat-content-area textarea:focus,
357
+ .chat-content-area input:focus {
358
+ border-color: #764ba2 !important;
359
+ box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.15) !important;
360
+ outline: none !important;
361
+ }
362
+
363
+
364
+
365
+ /* Submit Button in Chat */
366
+ .chat-submit-btn {
367
+ width: 100% !important;
368
+ padding: 14px !important;
369
+ margin: 15px 0 !important;
370
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
371
+ border: none !important;
372
+ border-radius: 10px !important;
373
+ color: white !important;
374
+ font-size: 16px !important;
375
+ font-weight: 600 !important;
376
+ cursor: pointer !important;
377
+ transition: all 0.3s ease !important;
378
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3) !important;
379
+ }
380
+
381
+ .chat-submit-btn:hover {
382
+ transform: translateY(-2px) !important;
383
+ box-shadow: 0 6px 18px rgba(102, 126, 234, 0.5) !important;
384
+ }
385
+
386
+
387
+ /* Response Section */
388
+ .response-box {
389
+ margin-top: 20px !important;
390
+ border-top: 2px solid #e9ecef !important;
391
+ padding-top: 20px !important;
392
+ }
393
+
394
+ .response-box h4 {
395
+ margin: 0 0 15px 0 !important;
396
+ color: #333 !important;
397
+ font-size: 15px !important;
398
+ font-weight: 600 !important;
399
+ }
400
+
401
+ /* Tabs in Chat */
402
+ .chat-content-area .gr-tabs {
403
+ background: transparent !important;
404
+ border: none !important;
405
+ }
406
+
407
+ .chat-content-area .gr-tab {
408
+ color: #555 !important;
409
+ background: #f8f9fa !important;
410
+ border: 1px solid #e9ecef !important;
411
+ border-radius: 8px 8px 0 0 !important;
412
+ padding: 10px 16px !important;
413
+ margin-right: 4px !important;
414
+ }
415
+
416
+ .chat-content-area .gr-tab.selected {
417
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
418
+ color: white !important;
419
+ border-color: #667eea !important;
420
+ }
421
+
422
+ /* Output fields in chat */
423
+ .chat-content-area .gr-textbox,
424
+ .chat-content-area .gr-plot,
425
+ .chat-content-area .gr-dataframe {
426
+ background: #ffffff !important;
427
+ border: 1px solid #e9ecef !important;
428
+ border-radius: 10px !important;
429
+ padding: 12px !important;
430
+ }
431
+
432
+ .chat-content-area .gr-textbox textarea {
433
+ color: #333 !important;
434
+ background: #f8f9fa !important;
435
+ border: 1px solid #e9ecef !important;
436
+ }
437
+
438
+ /* Scrollbar for chat content */
439
+ .chat-content-area::-webkit-scrollbar {
440
+ width: 6px;
441
+ }
442
+
443
+ .chat-content-area::-webkit-scrollbar-track {
444
+ background: rgba(0, 0, 0, 0.05);
445
+ border-radius: 10px;
446
+ }
447
+
448
+ .chat-content-area::-webkit-scrollbar-thumb {
449
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
450
+ border-radius: 10px;
451
+ }
452
+
453
+ .chat-content-area::-webkit-scrollbar-thumb:hover {
454
+ background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
455
+ }
456
+
457
+ /* ------------------------- */
458
+ /* FORCE GRADIO TO NOT WRAP */
459
+ /* ------------------------- */
460
+
461
+
462
+ .first-row,
463
+ .gr-row,
464
+ .gr-column {
465
+ display: flex !important;
466
+ flex-wrap: nowrap !important;
467
+ justify-content: space-between !important;
468
+ align-items: stretch !important;
469
+ }
470
+
471
+ /* General card layout - VISIBLE BORDERS */
472
+ .upload-section,
473
+ .how-to-use,
474
+ .card-box,
475
+ .upload-card,
476
+ .gr-group,
477
+ .gr-column>.gr-group,
478
+ .gr-column>div.gr-group {
479
+ background: rgba(255, 255, 255, 0.03) !important;
480
+ backdrop-filter: blur(14px) saturate(160%) !important;
481
+ -webkit-backdrop-filter: blur(14px) saturate(160%) !important;
482
+ border-radius: 18px !important;
483
+ border: 3px solid rgba(255, 255, 255, 0.7) !important;
484
+ padding: 20px !important;
485
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25) !important;
486
+ transition: 0.25s ease-in-out !important;
487
+ }
488
+
489
+ /* Hover effect */
490
+ .upload-section:hover,
491
+ .how-to-use:hover,
492
+ .gr-group:hover {
493
+ transform: translateY(-4px) !important;
494
+ border-color: rgba(255, 255, 255, 0.7) !important;
495
+ background: rgba(255, 255, 255, 0.06) !important;
496
+ }
497
+
498
+ /* REMOVE borders from specific sections */
499
+ .header-box,
500
+ .header-box * {
501
+ border: none !important;
502
+ }
503
+
504
+ /* Remove borders from Sample Questions markdown sections */
505
+ .gr-markdown h3:contains("Sample Questions"),
506
+ .gr-markdown:has(h3) {
507
+ border: none !important;
508
+ }
509
+
510
+ /* Remove borders from Analysis Results and related output sections */
511
+ [id*="output"],
512
+ [id*="answer"],
513
+ [id*="result"],
514
+ .gr-textbox,
515
+ .gr-plot,
516
+ .gr-dataframe {
517
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
518
+ }
519
+
520
+ /* TARGET THE EXACT 3 BOXES BY ID - WHITE BORDERS ONLY */
521
+ #display-format-box,
522
+ #analysis-type-box,
523
+ #visualization-box {
524
+ border: 6px solid #FFFFFF !important;
525
+ border-radius: 18px !important;
526
+ padding: 20px !important;
527
+ }
528
+
529
+ /* ------------------------- */
530
+ /* CARD SIZING & SPACING */
531
+ /* ------------------------- */
532
+
533
+ .first-row>div,
534
+ .first-row>.gr-column,
535
+ .first-row>.gr-group {
536
+ flex: 1 !important;
537
+ margin: 10px 15px !important;
538
+ }
539
+
540
+ /* Prevent shrinking */
541
+ .gr-group {
542
+ flex-shrink: 0 !important;
543
+ }
544
+
545
+ /* Upload + Display + How-to-use row fixes */
546
+ .first-row {
547
+ margin-top: 20px !important;
548
+ padding: 0 25px !important;
549
+ margin-bottom: 80px !important;
550
+ min-height: 200px !important;
551
+ }
552
+
553
+ /* Second row - fixed spacing */
554
+ .second-row {
555
+ margin-top: 80px !important;
556
+ padding: 0 25px !important;
557
+ clear: both !important;
558
+ }
559
+
560
+ /* Ensure proper spacing between rows */
561
+ .first-row .gr-group {
562
+ margin-bottom: 20px !important;
563
+ }
564
+
565
+ /* Upload section dynamic height */
566
+ #upload-wrapper {
567
+ min-height: 180px !important;
568
+ transition: height 0.3s ease !important;
569
+ }
570
+
571
+ /* When upload info is present, expand */
572
+ #upload-wrapper .upload-info:not(:empty) {
573
+ min-height: 60px !important;
574
+ padding: 10px !important;
575
+ margin-top: 10px !important;
576
+ }
577
+
578
+ .upload-section {
579
+ width: 100% !important;
580
+ min-height: 165px !important;
581
+ }
582
+
583
+ /* Display Format card width */
584
+ .display-format-card {
585
+ min-width: 260px !important;
586
+ }
587
+
588
+ /* ------------------------- */
589
+ /* SECOND ROW (Analysis, Viz, Handling) */
590
+ /* ------------------------- */
591
+
592
+ .gr-row:nth-of-type(2)>.gr-group {
593
+ flex: 1 !important;
594
+ margin: 10px 15px !important;
595
+ min-height: 170px !important;
596
+ }
597
+
598
+ /* ------------------------- */
599
+ /* DATA PREVIEW + ANALYSIS */
600
+ /* ------------------------- */
601
+
602
+ .gr-column>.gr-markdown,
603
+ .gr-dataframe,
604
+ .gr-plot,
605
+ .gr-textbox {
606
+ background: rgba(255, 255, 255, 0.12) !important;
607
+ border-radius: 14px !important;
608
+ padding: 16px !important;
609
+ border: 1px solid rgba(255, 255, 255, 0.15) !important;
610
+ }
611
+
612
+ /* Improve titles */
613
+ .gr-markdown h3,
614
+ .gr-markdown h1,
615
+ .gr-markdown h2,
616
+ .gr-markdown h4,
617
+ .gr-markdown h5,
618
+ .gr-markdown h6 {
619
+ color: white !important;
620
+ text-shadow: 0 0 6px rgba(255, 255, 255, 0.3) !important;
621
+ }
622
+
623
+ /* Force all headings white */
624
+ h1,
625
+ h2,
626
+ h3,
627
+ h4,
628
+ h5,
629
+ h6 {
630
+ color: white !important;
631
+ }
632
+
633
+ /* Specific markdown content */
634
+ .gr-group .gr-markdown,
635
+ .gr-group .gr-markdown * {
636
+ color: white !important;
637
+ }
638
+
639
+ /* Make internal elements visible with white text */
640
+ .gr-textbox,
641
+ .gr-textbox input,
642
+ .gr-textbox textarea,
643
+ .gr-file,
644
+ .gr-file input {
645
+ background: rgba(255, 255, 255, 0.05) !important;
646
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
647
+ border-radius: 8px !important;
648
+ color: white !important;
649
+ }
650
+
651
+ .gr-dropdown:hover,
652
+ .gr-textbox:hover,
653
+ .gr-file:hover {
654
+ background: rgba(255, 255, 255, 0.08) !important;
655
+ border-color: rgba(255, 255, 255, 0.15) !important;
656
+ }
657
+
658
+ .gr-dropdown:focus-within,
659
+ .gr-textbox:focus-within,
660
+ .gr-file:focus-within {
661
+ background: rgba(255, 255, 255, 0.1) !important;
662
+ border-color: rgba(59, 130, 246, 0.4) !important;
663
+ }
664
+
665
+ /* Dropdown options */
666
+ .gr-dropdown .dropdown-content,
667
+ .gr-dropdown .dropdown-menu {
668
+ background: rgba(30, 41, 59, 0.95) !important;
669
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
670
+ backdrop-filter: blur(10px) !important;
671
+ }
672
+
673
+ /* Labels */
674
+ .gr-form label {
675
+ color: #d1d5db !important;
676
+ }
677
+
678
+ /* Make all text content white */
679
+ .gr-markdown,
680
+ .gr-markdown h1,
681
+ .gr-markdown h2,
682
+ .gr-markdown h3,
683
+ .gr-markdown h4,
684
+ .gr-markdown p,
685
+ .gr-html,
686
+ .gr-html ul,
687
+ .gr-html li,
688
+ .gr-button,
689
+ .gr-dropdown label,
690
+ .gr-textbox label,
691
+ .gr-file label,
692
+ span,
693
+ div,
694
+ p {
695
+ background: transparent !important;
696
+ color: white !important;
697
+ }
698
+
699
+ /* Dropdown styling - Force white text */
700
+ .gr-dropdown,
701
+ .gr-dropdown select,
702
+ .gr-dropdown .wrap,
703
+ .gr-dropdown input,
704
+ .gr-dropdown .selected-option {
705
+ background: rgba(0, 0, 0, 0.3) !important;
706
+ color: white !important;
707
+ border: 1px solid rgba(255, 255, 255, 0.3) !important;
708
+ font-weight: 500 !important;
709
+ }
710
+
711
+ /* Dropdown text visibility */
712
+ .gr-dropdown * {
713
+ color: white !important;
714
+ }
715
+
716
+ /* Dropdown options menu */
717
+ .gr-dropdown .dropdown-content,
718
+ .gr-dropdown .dropdown-menu,
719
+ .gr-dropdown option,
720
+ .gr-dropdown select option {
721
+ background: rgba(30, 41, 59, 0.95) !important;
722
+ color: white !important;
723
+ border: 1px solid rgba(255, 255, 255, 0.1) !important;
724
+ }
725
+
726
+ /* Force all dropdown text white - AGGRESSIVE */
727
+ select,
728
+ select option,
729
+ .gr-dropdown select,
730
+ .gr-dropdown select option,
731
+ .gr-dropdown .wrap select,
732
+ .gr-dropdown .wrap,
733
+ .gr-dropdown input[type="text"],
734
+ .gr-dropdown .selected-text,
735
+ .gr-dropdown .current-selection {
736
+ color: white !important;
737
+ background: rgba(0, 0, 0, 0.6) !important;
738
+ -webkit-text-fill-color: white !important;
739
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8) !important;
740
+ }
741
+
742
+ /* Gradio specific dropdown classes */
743
+ .gr-dropdown .wrap>*,
744
+ .gr-dropdown .wrap input,
745
+ .gr-dropdown .wrap select,
746
+ .gr-dropdown .wrap .selected,
747
+ .gr-dropdown .wrap .value {
748
+ color: white !important;
749
+ background: rgba(0, 0, 0, 0.5) !important;
750
+ -webkit-text-fill-color: white !important;
751
+ }
752
+
753
+ /* Override any theme colors */
754
+ * [class*="dropdown"] {
755
+ color: white !important;
756
+ }
757
+
758
+ * [class*="dropdown"] * {
759
+ color: white !important;
760
+ }
761
+
762
+ /* File upload text */
763
+ .gr-file .file-preview,
764
+ .gr-file .upload-text {
765
+ background: transparent !important;
766
+ color: white !important;
767
+ }
768
+
769
+ /* Button text and borders - HIGHLY VISIBLE */
770
+ .gr-button,
771
+ button {
772
+ background: rgba(255, 255, 255, 0.05) !important;
773
+ border: 3px solid rgba(255, 255, 255, 0.5) !important;
774
+ color: white !important;
775
+ }
776
+
777
+ /* ------------------------- */
778
+ /* BUTTON ENHANCEMENTS */
779
+ /* ------------------------- */
780
+ .gr-button-primary,
781
+ button[class*="primary"] {
782
+ background: linear-gradient(135deg, #4f63e4, #7a3cff) !important;
783
+ border-radius: 10px !important;
784
+ border: 3px solid rgba(255, 255, 255, 0.7) !important;
785
+ box-shadow: 0 4px 14px rgba(79, 99, 228, 0.4) !important;
786
+ transition: 0.25s ease !important;
787
+ }
788
+
789
+ .gr-button-primary:hover,
790
+ button[class*="primary"]:hover {
791
+ transform: translateY(-3px) !important;
792
+ box-shadow: 0 6px 20px rgba(79, 99, 228, 0.55) !important;
793
+ border-color: rgba(255, 255, 255, 0.9) !important;
794
+ }
795
+
796
+ .gr-button-secondary,
797
+ button[class*="secondary"] {
798
+ background: rgba(255, 255, 255, 0.12) !important;
799
+ border: 3px solid rgba(255, 255, 255, 0.6) !important;
800
+ border-radius: 10px !important;
801
+ }
802
+
803
+ .gr-button-secondary:hover,
804
+ button[class*="secondary"]:hover {
805
+ background: rgba(255, 255, 255, 0.22) !important;
806
+ border-color: rgba(255, 255, 255, 0.8) !important;
807
+ }
808
+
809
+ /* ------------------------- */
810
+ /* FIX MISALIGNED ELEMENTS */
811
+ /* ------------------------- */
812
+
813
+ .gr-group>* {
814
+ width: 100% !important;
815
+ }
816
+
817
+ .upload-section .gr-markdown {
818
+ margin-bottom: 8px !important;
819
+ }
820
+
821
+ .overflow-class {
822
+ overflow: visible;
823
+ }
824
+
825
+ /* ---------- Upload wrapper: force size and glass style ---------- */
826
+ #upload-wrapper {
827
+ width: 100% !important;
828
+ /* full width of its column */
829
+ min-width: 360px !important;
830
+ /* avoid collapsing on narrow screens */
831
+ max-width: 520px !important;
832
+ /* adjust as needed */
833
+ display: flex !important;
834
+ flex-direction: column !important;
835
+ gap: 12px !important;
836
+ padding: 20px !important;
837
+ margin: 8px 12px !important;
838
+ border-radius: 16px !important;
839
+ background: transparent;
840
+ /* border: 1px solid rgba(255,255,255,0.12) !important; */
841
+ backdrop-filter: blur(18px) saturate(140%) !important;
842
+ -webkit-backdrop-filter: blur(18px) saturate(140%) !important;
843
+ box-shadow: 0 12px 30px rgba(2, 6, 23, 0.45) inset, 0 8px 28px rgba(6, 12, 40, 0.45) !important;
844
+ align-self: flex-start !important;
845
+ /* keep it aligned inside row */
846
+ }
847
+
848
+ /* Make the title look consistent */
849
+ #upload-wrapper .upload-title h3 {
850
+ color: #e6f0ff !important;
851
+ font-weight: 600 !important;
852
+ margin: 0 0 6px 0 !important;
853
+ }
854
+
855
+ /* Make the file control visually large and centered */
856
+ #upload-wrapper .upload-card,
857
+ #upload-wrapper .gr-file,
858
+ #upload-wrapper input[type="file"] {
859
+ width: 100% !important;
860
+ min-height: 110px !important;
861
+ padding: 16px !important;
862
+ border-radius: 12px !important;
863
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02)) !important;
864
+ border: 1px solid rgba(255, 255, 255, 0.06) !important;
865
+ box-shadow: 0 8px 20px rgba(12, 18, 40, 0.35) !important;
866
+ }
867
+
868
+ /* dataset info text area - BLACK TEXT FOR VISIBILITY */
869
+ #upload-wrapper .upload-info,
870
+ #upload-wrapper .gr-markdown {
871
+ color: #000000 !important;
872
+ background: rgba(255, 255, 255, 0.85) !important;
873
+ padding: 12px !important;
874
+ border-radius: 8px !important;
875
+ font-size: 13px !important;
876
+ }
877
+
878
+ /* Make the markdown text content black */
879
+ #upload-wrapper .upload-info *,
880
+ #upload-wrapper .gr-markdown *,
881
+ .upload-info,
882
+ .upload-info strong,
883
+ .upload-info p {
884
+ color: #000000 !important;
885
+ }
886
+
887
+ /* clear button alignment and style */
888
+ #upload-wrapper .upload-clear-btn {
889
+ align-self: flex-end !important;
890
+ margin-top: 6px !important;
891
+ }
892
+
893
+ /* if Gradio wraps the file input in an inner container */
894
+ #upload-wrapper [class*="file"],
895
+ #upload-wrapper [class*="upload"] {
896
+ width: 100% !important;
897
+ }
898
+
899
+ /* Ensure it doesn't collapse when Gradio enforces min-width elsewhere */
900
+ #upload-wrapper>* {
901
+ min-width: 0 !important;
902
+ }
903
+
904
+ /* Optional responsive tweak: allow it to expand on larger screens */
905
+ @media (min-width: 1280px) {
906
+ #upload-wrapper {
907
+ max-width: 640px !important;
908
+ }
909
+ }
910
+
911
+ /* How to Use Box - Top Right Corner */
912
+ .how-to-use-sidebar {
913
+ position: fixed !important;
914
+ top: 150px !important;
915
+ right: 20px !important;
916
+ left: auto !important;
917
+ transform: none !important;
918
+ width: 260px !important;
919
+ z-index: 1000 !important;
920
+ pointer-events: auto !important;
921
+ }
922
+
923
+ .how-to-use-content {
924
+ background: rgba(255, 255, 255, 0.12) !important;
925
+ backdrop-filter: blur(12px) saturate(160%) !important;
926
+ -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
927
+ border-radius: 12px !important;
928
+ border: 1px solid rgba(255, 255, 255, 0.25) !important;
929
+ padding: 18px !important;
930
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25) !important;
931
+ transition: all 0.3s ease !important;
932
+ }
933
+
934
+ .how-to-use-content:hover {
935
+ background: rgba(255, 255, 255, 0.18) !important;
936
+ border-color: rgba(255, 255, 255, 0.4) !important;
937
+ transform: translateY(-3px) !important;
938
+ }
939
+
940
+ .how-to-use-content h3 {
941
+ color: white !important;
942
+ margin: 0 0 10px 0 !important;
943
+ font-size: 17px !important;
944
+ font-weight: 600 !important;
945
+ text-shadow: 0 0 6px rgba(255, 255, 255, 0.3) !important;
946
+ }
947
+
948
+ .how-to-use-content ul {
949
+ list-style: none !important;
950
+ padding: 0 !important;
951
+ margin: 0 !important;
952
+ }
953
+
954
+ .how-to-use-content li {
955
+ color: white !important;
956
+ margin: 7px 0 !important;
957
+ padding-left: 0 !important;
958
+ line-height: 1.4 !important;
959
+ font-size: 13px !important;
960
+ opacity: 0.9 !important;
961
+ }
962
+
963
+ /* Main container - Full width to cover left area */
964
+ .gradio-container {
965
+ margin-left: 0 !important;
966
+ padding-left: 20px !important;
967
+ }
968
+
969
+ /* Responsive: Remove margin on smaller screens */
970
+ @media (max-width: 1200px) {
971
+ .gradio-container {
972
+ margin-left: 0 !important;
973
+ padding-left: 0 !important;
974
+ }
975
+
976
+ .how-to-use-sidebar {
977
+ display: none !important;
978
+ }
979
+ }
980
+
981
+ /* Custom Dropdown Styling */
982
+ .custom-dropdown {
983
+ width: 100%;
984
+ }
985
+
986
+ .custom-dropdown label {
987
+ color: white !important;
988
+ font-size: 14px;
989
+ margin-bottom: 8px;
990
+ display: block;
991
+ }
992
+
993
+ .dropdown-container {
994
+ position: relative;
995
+ width: 100%;
996
+ }
997
+
998
+ .dropdown-button {
999
+ background: white;
1000
+ border: 1px solid rgba(255, 255, 255, 0.3);
1001
+ border-radius: 8px;
1002
+ padding: 12px 16px;
1003
+ cursor: pointer;
1004
+ display: flex;
1005
+ justify-content: space-between;
1006
+ align-items: center;
1007
+ color: #333;
1008
+ }
1009
+
1010
+ .dropdown-button:hover {
1011
+ border-color: rgba(59, 130, 246, 0.5);
1012
+ }
1013
+
1014
+ .dropdown-arrow {
1015
+ color: #666;
1016
+ font-size: 12px;
1017
+ }
1018
+
1019
+ .dropdown-menu {
1020
+ display: none;
1021
+ position: absolute;
1022
+ top: 100%;
1023
+ left: 0;
1024
+ right: 0;
1025
+ background: white;
1026
+ border: 1px solid #ccc;
1027
+ border-radius: 8px;
1028
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1029
+ max-height: 200px;
1030
+ overflow-y: auto;
1031
+ z-index: 1000;
1032
+ }
1033
+
1034
+ .dropdown-item {
1035
+ padding: 12px 16px;
1036
+ cursor: pointer;
1037
+ color: #333;
1038
+ border-bottom: 1px solid #eee;
1039
+ }
1040
+
1041
+ .dropdown-item:hover {
1042
+ background: #f0f8ff;
1043
+ }
1044
+
1045
+ .dropdown-item.selected {
1046
+ background: #3b82f6;
1047
+ color: white;
1048
+ }
1049
+
1050
+ .selected-columns {
1051
+ margin-top: 8px;
1052
+ display: flex;
1053
+ flex-wrap: wrap;
1054
+ gap: 6px;
1055
+ }
1056
+
1057
+ .selected-tag {
1058
+ background: #3b82f6;
1059
+ color: white;
1060
+ padding: 4px 8px;
1061
+ border-radius: 6px;
1062
+ font-size: 12px;
1063
+ display: flex;
1064
+ align-items: center;
1065
+ gap: 4px;
1066
+ }
1067
+
1068
+ .selected-tag span {
1069
+ cursor: pointer;
1070
+ font-weight: bold;
1071
+ opacity: 0.8;
1072
+ }
1073
+
1074
+ .selected-tag span:hover {
1075
+ opacity: 1;
1076
+ }
1077
+
1078
+ /* ========================= */
1079
+ /* FIX: Prevent Dropdown Text Input */
1080
+ /* ========================= */
1081
+
1082
+ /* Make dropdown input read-only - prevent typing */
1083
+ .gr-dropdown input[type="text"] {
1084
+ cursor: pointer !important;
1085
+ user-select: none !important;
1086
+ caret-color: transparent !important;
1087
+ }
1088
+
1089
+ /* Allow clicking on the dropdown container itself */
1090
+ .gr-dropdown .wrap {
1091
+ pointer-events: auto !important;
1092
+ cursor: pointer !important;
1093
+ }
1094
+
1095
+ /* Ensure ALL dropdowns are clickable */
1096
+ .gr-dropdown,
1097
+ .gr-dropdown *,
1098
+ .gr-dropdown button,
1099
+ .gr-dropdown .wrap,
1100
+ .gr-dropdown select {
1101
+ pointer-events: auto !important;
1102
+ cursor: pointer !important;
1103
+ }
1104
+
1105
+ /* Make sure dropdown button/arrow is visible and clickable */
1106
+ .gr-dropdown button,
1107
+ .gr-dropdown button svg,
1108
+ .gr-dropdown .icon,
1109
+ button[aria-label*="dropdown"],
1110
+ button[class*="dropdown"] {
1111
+ display: block !important;
1112
+ visibility: visible !important;
1113
+ opacity: 1 !important;
1114
+ pointer-events: auto !important;
1115
+ cursor: pointer !important;
1116
+ }
1117
+
1118
+ /* Ensure Group containers don't block dropdowns */
1119
+ #display-format-box,
1120
+ #analysis-type-box,
1121
+ #visualization-box {
1122
+ pointer-events: auto !important;
1123
+ }
1124
+
1125
+ #display-format-box *,
1126
+ #analysis-type-box *,
1127
+ #visualization-box * {
1128
+ pointer-events: auto !important;
1129
+ }
1130
+
1131
+ /* Ensure column selector appears in correct order */
1132
+ .gr-checkbox-group {
1133
+ order: 0 !important;
1134
+ }
1135
+
1136
+
1137
+ /* FORCE Column Selector Labels to be BLACK - Very Specific */
1138
+ [data-testid="checkbox-group"] label,
1139
+ [data-testid="checkbox-group"] label span,
1140
+ [data-testid="checkbox-group"] span,
1141
+ .wrap[data-testid="checkbox-group"] label,
1142
+ .wrap[data-testid="checkbox-group"] span,
1143
+ label[class*="svelte"] span,
1144
+ .checkbox-group label,
1145
+ .checkbox-group span {
1146
+ color: #000000 !important;
1147
+ -webkit-text-fill-color: #000000 !important;
1148
+ }
1149
+
1150
+ /* Target any span inside checkbox labels */
1151
+ input[type="checkbox"]+span,
1152
+ input[type="checkbox"]~span,
1153
+ label:has(input[type="checkbox"]) span {
1154
+ color: #000000 !important;
1155
+ -webkit-text-fill-color: #000000 !important;
1156
+ }
1157
+
1158
+ /* Force all spans near checkboxes to be black */
1159
+ span[class*="svelte"] {
1160
+ color: #000000 !important;
1161
+ }
1162
+
1163
+ /* Transparent background for checkbox container */
1164
+ [data-testid="checkbox-group"],
1165
+ [data-testid="checkbox-group"]>div {
1166
+ background: transparent !important;
1167
+ }
1168
+
1169
+ /* Match wrap sizes for dropdowns */
1170
+ div.wrap.svelte-vomtx {
1171
+ min-height: auto !important;
1172
+ height: auto !important;
1173
+ }
1174
+
1175
+ div.wrap.svelte-vomtx,
1176
+ div.secondarywrap {
1177
+ padding: 8px !important;
1178
+ }
1179
+
1180
+ /* Make dropdown labels white */
1181
+ .gr-dropdown label,
1182
+ .gr-dropdown .label {
1183
+ color: white !important;
1184
+ }
1185
+
1186
+
1187
+ /* Display Format dropdown label - white text */
1188
+ .gradio-container.gradio-container-4-20-0 .contain span[class*="svelte"] {
1189
+ color: rgb(255, 255, 255) !important;
1190
+ }
1191
+
1192
+
1193
+
1194
+ /* ===========================================================
1195
+ FIX: Force white text for the Gradio block-info label
1196
+ =========================================================== */
1197
+
1198
+ span[data-testid="block-info"],
1199
+ .gradio-container span[data-testid="block-info"] {
1200
+ color: #ffffff !important;
1201
+ -webkit-text-fill-color: #ffffff !important;
1202
+ }
1203
+
1204
+ /* If the framework switches from <span> to <p>, also cover this */
1205
+ p[data-testid="block-info"] {
1206
+ color: #ffffff !important;
1207
+ -webkit-text-fill-color: #ffffff !important;
1208
+ }
1209
+
1210
+
1211
+ .svelte-vomtxz.container {
1212
+ border: 2px solid white !important;
1213
+ border-radius: 8px !important;
1214
+ padding: 10px !important;
1215
+ }