HerzaJ commited on
Commit
eb0bf67
·
verified ·
1 Parent(s): 03da033

Create mobile-styles.css

Browse files
Files changed (1) hide show
  1. public/mobile-styles.css +563 -0
public/mobile-styles.css ADDED
@@ -0,0 +1,563 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --bg-primary: #f5f7fa;
3
+ --bg-secondary: #ffffff;
4
+ --bg-card: #ffffff;
5
+ --text-primary: #2c3e50;
6
+ --text-secondary: #7f8c8d;
7
+ --text-muted: #95a5a6;
8
+ --accent: #667eea;
9
+ --accent-light: #764ba2;
10
+ --border-color: #e1e8ed;
11
+ --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
12
+ --shadow: 0 2px 8px rgba(0,0,0,0.08);
13
+ --shadow-lg: 0 4px 16px rgba(0,0,0,0.12);
14
+ --transition: all 0.3s ease;
15
+ }
16
+
17
+ .mobile-header {
18
+ background: var(--bg-secondary);
19
+ padding: 1rem 1.25rem;
20
+ box-shadow: var(--shadow);
21
+ position: sticky;
22
+ top: 0;
23
+ z-index: 100;
24
+ display: none;
25
+ }
26
+
27
+ .mobile-header-content {
28
+ display: flex;
29
+ align-items: center;
30
+ justify-content: space-between;
31
+ }
32
+
33
+ .mobile-header-left {
34
+ display: flex;
35
+ align-items: center;
36
+ gap: 1rem;
37
+ }
38
+
39
+ .hamburger-btn {
40
+ background: none;
41
+ border: none;
42
+ font-size: 1.5rem;
43
+ color: var(--text-primary);
44
+ cursor: pointer;
45
+ padding: 0.25rem;
46
+ transition: var(--transition);
47
+ }
48
+
49
+ .hamburger-btn:active {
50
+ transform: scale(0.95);
51
+ }
52
+
53
+ .mobile-logo {
54
+ font-size: 1.25rem;
55
+ font-weight: 700;
56
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
57
+ -webkit-background-clip: text;
58
+ -webkit-text-fill-color: transparent;
59
+ display: flex;
60
+ align-items: center;
61
+ gap: 0.5rem;
62
+ }
63
+
64
+ .mobile-avatar {
65
+ width: 40px;
66
+ height: 40px;
67
+ border-radius: 50%;
68
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ color: white;
73
+ font-size: 1.1rem;
74
+ box-shadow: var(--shadow);
75
+ }
76
+
77
+ .drawer-overlay {
78
+ position: fixed;
79
+ inset: 0;
80
+ background: rgba(0,0,0,0.5);
81
+ z-index: 998;
82
+ display: none;
83
+ opacity: 0;
84
+ transition: opacity 0.3s ease;
85
+ }
86
+
87
+ .drawer-overlay.active {
88
+ display: block;
89
+ opacity: 1;
90
+ }
91
+
92
+ .sidebar-drawer {
93
+ position: fixed;
94
+ top: 0;
95
+ left: -100%;
96
+ width: 280px;
97
+ height: 100vh;
98
+ background: var(--bg-secondary);
99
+ box-shadow: 2px 0 20px rgba(0,0,0,0.15);
100
+ z-index: 999;
101
+ transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
102
+ overflow-y: auto;
103
+ display: none;
104
+ }
105
+
106
+ .sidebar-drawer.active {
107
+ left: 0;
108
+ }
109
+
110
+ .drawer-header {
111
+ padding: 1.5rem;
112
+ border-bottom: 1px solid var(--border-color);
113
+ display: flex;
114
+ justify-content: space-between;
115
+ align-items: center;
116
+ background: var(--bg-primary);
117
+ }
118
+
119
+ .drawer-header h3 {
120
+ margin: 0;
121
+ font-size: 1.25rem;
122
+ font-weight: 700;
123
+ color: var(--text-primary);
124
+ }
125
+
126
+ .drawer-close {
127
+ background: none;
128
+ border: none;
129
+ font-size: 1.5rem;
130
+ color: var(--text-secondary);
131
+ cursor: pointer;
132
+ padding: 0.25rem;
133
+ transition: var(--transition);
134
+ }
135
+
136
+ .drawer-close:hover {
137
+ color: var(--text-primary);
138
+ }
139
+
140
+ .drawer-close:active {
141
+ transform: scale(0.95);
142
+ }
143
+
144
+ .drawer-menu {
145
+ padding: 0.5rem 0;
146
+ }
147
+
148
+ .drawer-section-title {
149
+ padding: 1rem 1.5rem 0.5rem;
150
+ font-size: 0.75rem;
151
+ font-weight: 600;
152
+ color: var(--text-muted);
153
+ text-transform: uppercase;
154
+ letter-spacing: 0.5px;
155
+ }
156
+
157
+ .drawer-menu-item {
158
+ display: flex;
159
+ align-items: center;
160
+ gap: 1rem;
161
+ padding: 0.875rem 1.5rem;
162
+ color: var(--text-primary);
163
+ text-decoration: none;
164
+ transition: var(--transition);
165
+ font-weight: 500;
166
+ position: relative;
167
+ }
168
+
169
+ .drawer-menu-item::before {
170
+ content: '';
171
+ position: absolute;
172
+ left: 0;
173
+ top: 0;
174
+ bottom: 0;
175
+ width: 3px;
176
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
177
+ transform: scaleY(0);
178
+ transition: transform 0.2s ease;
179
+ }
180
+
181
+ .drawer-menu-item:hover,
182
+ .drawer-menu-item.active {
183
+ background: var(--bg-primary);
184
+ color: var(--accent);
185
+ }
186
+
187
+ .drawer-menu-item.active::before {
188
+ transform: scaleY(1);
189
+ }
190
+
191
+ .drawer-menu-item i {
192
+ width: 24px;
193
+ text-align: center;
194
+ font-size: 1.1rem;
195
+ }
196
+
197
+ .drawer-footer {
198
+ padding: 1rem 0;
199
+ border-top: 1px solid var(--border-color);
200
+ margin-top: 1rem;
201
+ }
202
+
203
+ .stats-cards {
204
+ display: grid;
205
+ grid-template-columns: 1fr;
206
+ gap: 1rem;
207
+ margin-bottom: 1.5rem;
208
+ }
209
+
210
+ .stat-card {
211
+ background: var(--bg-card);
212
+ border-radius: 16px;
213
+ padding: 1.5rem;
214
+ box-shadow: var(--shadow);
215
+ transition: var(--transition);
216
+ display: flex;
217
+ flex-direction: column;
218
+ }
219
+
220
+ .stat-card:active {
221
+ transform: scale(0.98);
222
+ }
223
+
224
+ .stat-icon {
225
+ width: 48px;
226
+ height: 48px;
227
+ border-radius: 12px;
228
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
229
+ display: flex;
230
+ align-items: center;
231
+ justify-content: center;
232
+ color: white;
233
+ font-size: 1.5rem;
234
+ margin-bottom: 1rem;
235
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
236
+ }
237
+
238
+ .stat-number {
239
+ font-size: 1.75rem;
240
+ font-weight: 700;
241
+ color: var(--text-primary);
242
+ margin-bottom: 0.25rem;
243
+ word-break: break-all;
244
+ line-height: 1.2;
245
+ }
246
+
247
+ .stat-label {
248
+ font-size: 0.875rem;
249
+ color: var(--text-secondary);
250
+ font-weight: 500;
251
+ }
252
+
253
+ .search-container {
254
+ position: relative;
255
+ margin-bottom: 1.5rem;
256
+ }
257
+
258
+ .search-icon {
259
+ position: absolute;
260
+ left: 1rem;
261
+ top: 50%;
262
+ transform: translateY(-50%);
263
+ color: var(--text-muted);
264
+ font-size: 1rem;
265
+ z-index: 1;
266
+ }
267
+
268
+ .search-input {
269
+ width: 100%;
270
+ padding: 0.875rem 1rem 0.875rem 3rem;
271
+ border: 1px solid var(--border-color);
272
+ border-radius: 12px;
273
+ background: var(--bg-card);
274
+ font-size: 1rem;
275
+ color: var(--text-primary);
276
+ transition: var(--transition);
277
+ }
278
+
279
+ .search-input:focus {
280
+ outline: none;
281
+ border-color: var(--accent);
282
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
283
+ }
284
+
285
+ .search-input::placeholder {
286
+ color: var(--text-muted);
287
+ }
288
+
289
+ .plugins-grid {
290
+ display: flex;
291
+ flex-direction: column;
292
+ gap: 1rem;
293
+ }
294
+
295
+ .plugin-card {
296
+ background: var(--bg-card);
297
+ border-radius: 16px;
298
+ box-shadow: var(--shadow);
299
+ overflow: hidden;
300
+ transition: var(--transition);
301
+ }
302
+
303
+ .plugin-card:active {
304
+ transform: scale(0.98);
305
+ }
306
+
307
+ .plugin-header {
308
+ padding: 1.25rem;
309
+ cursor: pointer;
310
+ display: flex;
311
+ justify-content: space-between;
312
+ align-items: center;
313
+ gap: 1rem;
314
+ }
315
+
316
+ .plugin-header:active {
317
+ background: var(--bg-primary);
318
+ }
319
+
320
+ .plugin-left {
321
+ flex: 1;
322
+ min-width: 0;
323
+ }
324
+
325
+ .plugin-name {
326
+ font-size: 1.1rem;
327
+ font-weight: 700;
328
+ color: var(--text-primary);
329
+ margin-bottom: 0.5rem;
330
+ }
331
+
332
+ .plugin-description {
333
+ font-size: 0.875rem;
334
+ color: var(--text-secondary);
335
+ line-height: 1.4;
336
+ }
337
+
338
+ .plugin-type {
339
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
340
+ color: white;
341
+ padding: 0.5rem 0.875rem;
342
+ border-radius: 20px;
343
+ font-size: 0.75rem;
344
+ font-weight: 600;
345
+ text-transform: uppercase;
346
+ letter-spacing: 0.5px;
347
+ white-space: nowrap;
348
+ box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
349
+ }
350
+
351
+ .plugin-expand {
352
+ font-size: 1.25rem;
353
+ color: var(--text-muted);
354
+ transition: transform 0.3s ease;
355
+ }
356
+
357
+ .plugin-expand.expanded {
358
+ transform: rotate(180deg);
359
+ }
360
+
361
+ .plugin-content {
362
+ max-height: 0;
363
+ overflow: hidden;
364
+ transition: max-height 0.3s ease;
365
+ }
366
+
367
+ .plugin-content.expanded {
368
+ max-height: 2000px;
369
+ }
370
+
371
+ .plugin-details {
372
+ padding: 1.25rem;
373
+ border-top: 1px solid var(--border-color);
374
+ background: var(--bg-primary);
375
+ }
376
+
377
+ .form-group {
378
+ display: flex;
379
+ flex-direction: column;
380
+ gap: 0.5rem;
381
+ margin-bottom: 1rem;
382
+ }
383
+
384
+ .form-group label {
385
+ font-size: 0.875rem;
386
+ font-weight: 600;
387
+ color: var(--text-primary);
388
+ }
389
+
390
+ .form-group input,
391
+ .form-group select {
392
+ padding: 0.875rem;
393
+ border: 1px solid var(--border-color);
394
+ border-radius: 12px;
395
+ background: var(--bg-card);
396
+ font-size: 1rem;
397
+ color: var(--text-primary);
398
+ transition: var(--transition);
399
+ }
400
+
401
+ .form-group input:focus,
402
+ .form-group select:focus {
403
+ outline: none;
404
+ border-color: var(--accent);
405
+ box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
406
+ }
407
+
408
+ .form-group input::placeholder {
409
+ color: var(--text-muted);
410
+ }
411
+
412
+ .btn {
413
+ padding: 0.875rem 1.5rem;
414
+ border: none;
415
+ border-radius: 12px;
416
+ font-weight: 600;
417
+ font-size: 1rem;
418
+ cursor: pointer;
419
+ transition: var(--transition);
420
+ display: inline-flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ gap: 0.5rem;
424
+ text-decoration: none;
425
+ }
426
+
427
+ .btn:active {
428
+ transform: scale(0.98);
429
+ }
430
+
431
+ .btn-primary {
432
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
433
+ color: white;
434
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
435
+ }
436
+
437
+ .btn-primary:hover {
438
+ box-shadow: 0 6px 16px rgba(102, 126, 234, 0.4);
439
+ }
440
+
441
+ .btn-secondary {
442
+ background: var(--bg-card);
443
+ color: var(--text-primary);
444
+ border: 1px solid var(--border-color);
445
+ }
446
+
447
+ .loading {
448
+ text-align: center;
449
+ padding: 2rem;
450
+ color: var(--text-muted);
451
+ display: flex;
452
+ align-items: center;
453
+ justify-content: center;
454
+ gap: 0.75rem;
455
+ }
456
+
457
+ .loading i {
458
+ font-size: 1.25rem;
459
+ }
460
+
461
+ .section h2 {
462
+ font-size: 1.5rem;
463
+ font-weight: 700;
464
+ color: var(--text-primary);
465
+ margin-bottom: 1.5rem;
466
+ display: flex;
467
+ align-items: center;
468
+ gap: 0.75rem;
469
+ }
470
+
471
+ .section h2 i {
472
+ font-size: 1.75rem;
473
+ background: linear-gradient(135deg, var(--accent), var(--accent-light));
474
+ -webkit-background-clip: text;
475
+ -webkit-text-fill-color: transparent;
476
+ }
477
+
478
+ .redeem-section,
479
+ .setting-card,
480
+ .admin-card {
481
+ background: var(--bg-card);
482
+ border-radius: 16px;
483
+ padding: 1.5rem;
484
+ box-shadow: var(--shadow);
485
+ margin-bottom: 1.5rem;
486
+ }
487
+
488
+ .redeem-section h3,
489
+ .setting-card h3,
490
+ .admin-card h3 {
491
+ font-size: 1.25rem;
492
+ font-weight: 700;
493
+ color: var(--text-primary);
494
+ margin-bottom: 1rem;
495
+ display: flex;
496
+ align-items: center;
497
+ gap: 0.5rem;
498
+ }
499
+
500
+ @media (max-width: 768px) {
501
+ .navbar,
502
+ .sidebar {
503
+ display: none !important;
504
+ }
505
+
506
+ .mobile-header,
507
+ .sidebar-drawer {
508
+ display: block;
509
+ }
510
+
511
+ .dashboard-container {
512
+ display: block;
513
+ min-height: calc(100vh - 73px);
514
+ }
515
+
516
+ .main-content {
517
+ max-width: 100vw;
518
+ padding: 1.25rem;
519
+ }
520
+
521
+ .stats-cards {
522
+ grid-template-columns: 1fr;
523
+ }
524
+
525
+ .section h2 {
526
+ font-size: 1.375rem;
527
+ }
528
+
529
+ .stat-number {
530
+ font-size: 1.5rem;
531
+ }
532
+ }
533
+
534
+ @media (min-width: 769px) {
535
+ .mobile-header,
536
+ .sidebar-drawer,
537
+ .drawer-overlay {
538
+ display: none !important;
539
+ }
540
+
541
+ .stats-cards {
542
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
543
+ gap: 1.25rem;
544
+ }
545
+ }
546
+
547
+ ::-webkit-scrollbar {
548
+ width: 6px;
549
+ height: 6px;
550
+ }
551
+
552
+ ::-webkit-scrollbar-track {
553
+ background: var(--bg-primary);
554
+ }
555
+
556
+ ::-webkit-scrollbar-thumb {
557
+ background: var(--border-color);
558
+ border-radius: 3px;
559
+ }
560
+
561
+ ::-webkit-scrollbar-thumb:hover {
562
+ background: var(--text-muted);
563
+ }