@rozaqi02/reusable-dashboard 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css ADDED
@@ -0,0 +1,742 @@
1
+ /* src/presentation/dashboard.css */
2
+ .rdb-root *,
3
+ .rdb-root *::before,
4
+ .rdb-root *::after {
5
+ box-sizing: border-box;
6
+ }
7
+ :root {
8
+ --rdb-bg: #ffffff;
9
+ --rdb-bg-subtle: #f8fafc;
10
+ --rdb-bg-card: #ffffff;
11
+ --rdb-border: #e2e8f0;
12
+ --rdb-border-subtle: rgba(226,232,240,0.6);
13
+ --rdb-text: #0f172a;
14
+ --rdb-text-muted: #64748b;
15
+ --rdb-text-subtle: #94a3b8;
16
+ --rdb-blue-50: #eff6ff;
17
+ --rdb-blue-400: #60a5fa;
18
+ --rdb-blue-500: #3b82f6;
19
+ --rdb-blue-600: #2563eb;
20
+ --rdb-green-50: #f0fdf4;
21
+ --rdb-green-400: #4ade80;
22
+ --rdb-green-600: #16a34a;
23
+ --rdb-green-100: #dcfce7;
24
+ --rdb-green-800: #166534;
25
+ --rdb-violet-50: #f5f3ff;
26
+ --rdb-violet-400: #a78bfa;
27
+ --rdb-violet-600: #7c3aed;
28
+ --rdb-orange-50: #fff7ed;
29
+ --rdb-orange-400: #fb923c;
30
+ --rdb-orange-600: #ea580c;
31
+ --rdb-sky-50: #f0f9ff;
32
+ --rdb-sky-400: #38bdf8;
33
+ --rdb-sky-600: #0284c7;
34
+ --rdb-rose-50: #fff1f2;
35
+ --rdb-rose-400: #fb7185;
36
+ --rdb-rose-600: #e11d48;
37
+ --rdb-confirmed-bg: #dcfce7;
38
+ --rdb-confirmed-text:#166534;
39
+ --rdb-pending-bg: #fef9c3;
40
+ --rdb-pending-text: #854d0e;
41
+ --rdb-cancelled-bg: #fee2e2;
42
+ --rdb-cancelled-text:#991b1b;
43
+ --rdb-success-bg: #d1fae5;
44
+ --rdb-success-text: #065f46;
45
+ --rdb-info-bg: #dbeafe;
46
+ --rdb-info-text: #1e40af;
47
+ --rdb-default-bg: #f1f5f9;
48
+ --rdb-default-text: #1e293b;
49
+ --rdb-font:
50
+ system-ui,
51
+ -apple-system,
52
+ "Segoe UI",
53
+ Roboto,
54
+ "Helvetica Neue",
55
+ Arial,
56
+ sans-serif;
57
+ --rdb-radius: 16px;
58
+ --rdb-radius-sm: 8px;
59
+ --rdb-radius-xs: 6px;
60
+ --rdb-shadow: 0 1px 3px rgba(0,0,0,0.07), 0 1px 2px rgba(0,0,0,0.04);
61
+ --rdb-shadow-md: 0 4px 12px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05);
62
+ }
63
+ @media (prefers-color-scheme: dark) {
64
+ :root {
65
+ --rdb-bg: #0f172a;
66
+ --rdb-bg-subtle: #1e293b;
67
+ --rdb-bg-card: #1e293b;
68
+ --rdb-border: #334155;
69
+ --rdb-border-subtle: rgba(51,65,85,0.6);
70
+ --rdb-text: #f1f5f9;
71
+ --rdb-text-muted: #94a3b8;
72
+ --rdb-text-subtle: #64748b;
73
+ --rdb-blue-50: rgba(37,99,235,0.2);
74
+ --rdb-green-50: rgba(22,163,74,0.2);
75
+ --rdb-green-100: rgba(22,163,74,0.25);
76
+ --rdb-green-800: #86efac;
77
+ --rdb-violet-50: rgba(124,58,237,0.2);
78
+ --rdb-orange-50: rgba(234,88,12,0.2);
79
+ --rdb-sky-50: rgba(2,132,199,0.2);
80
+ --rdb-rose-50: rgba(225,29,72,0.2);
81
+ --rdb-confirmed-bg: rgba(22,163,74,0.2);
82
+ --rdb-confirmed-text:#86efac;
83
+ --rdb-pending-bg: rgba(161,98,7,0.25);
84
+ --rdb-pending-text: #fde047;
85
+ --rdb-cancelled-bg: rgba(153,27,27,0.25);
86
+ --rdb-cancelled-text:#fca5a5;
87
+ --rdb-success-bg: rgba(6,95,70,0.3);
88
+ --rdb-success-text: #6ee7b7;
89
+ --rdb-info-bg: rgba(30,64,175,0.25);
90
+ --rdb-info-text: #93c5fd;
91
+ --rdb-default-bg: #334155;
92
+ --rdb-default-text: #e2e8f0;
93
+ }
94
+ }
95
+ .dark {
96
+ --rdb-bg: #0f172a;
97
+ --rdb-bg-subtle: #1e293b;
98
+ --rdb-bg-card: #1e293b;
99
+ --rdb-border: #334155;
100
+ --rdb-border-subtle: rgba(51,65,85,0.6);
101
+ --rdb-text: #f1f5f9;
102
+ --rdb-text-muted: #94a3b8;
103
+ --rdb-text-subtle: #64748b;
104
+ --rdb-blue-50: rgba(37,99,235,0.2);
105
+ --rdb-green-50: rgba(22,163,74,0.2);
106
+ --rdb-green-100: rgba(22,163,74,0.25);
107
+ --rdb-green-800: #86efac;
108
+ --rdb-violet-50: rgba(124,58,237,0.2);
109
+ --rdb-orange-50: rgba(234,88,12,0.2);
110
+ --rdb-sky-50: rgba(2,132,199,0.2);
111
+ --rdb-rose-50: rgba(225,29,72,0.2);
112
+ --rdb-confirmed-bg: rgba(22,163,74,0.2);
113
+ --rdb-confirmed-text:#86efac;
114
+ --rdb-pending-bg: rgba(161,98,7,0.25);
115
+ --rdb-pending-text: #fde047;
116
+ --rdb-cancelled-bg: rgba(153,27,27,0.25);
117
+ --rdb-cancelled-text:#fca5a5;
118
+ --rdb-success-bg: rgba(6,95,70,0.3);
119
+ --rdb-success-text: #6ee7b7;
120
+ --rdb-info-bg: rgba(30,64,175,0.25);
121
+ --rdb-info-text: #93c5fd;
122
+ --rdb-default-bg: #334155;
123
+ --rdb-default-text: #e2e8f0;
124
+ }
125
+ .rdb-card {
126
+ background: var(--rdb-bg-card);
127
+ border: 1px solid var(--rdb-border);
128
+ border-radius: var(--rdb-radius);
129
+ box-shadow: var(--rdb-shadow);
130
+ }
131
+ .rdb-badge {
132
+ display: inline-flex;
133
+ align-items: center;
134
+ padding: 2px 10px;
135
+ border-radius: 9999px;
136
+ font-size: 0.75rem;
137
+ font-weight: 500;
138
+ line-height: 1.6;
139
+ }
140
+ .rdb-badge-confirmed {
141
+ background: var(--rdb-confirmed-bg);
142
+ color: var(--rdb-confirmed-text);
143
+ }
144
+ .rdb-badge-pending {
145
+ background: var(--rdb-pending-bg);
146
+ color: var(--rdb-pending-text);
147
+ }
148
+ .rdb-badge-cancelled {
149
+ background: var(--rdb-cancelled-bg);
150
+ color: var(--rdb-cancelled-text);
151
+ }
152
+ .rdb-badge-success {
153
+ background: var(--rdb-success-bg);
154
+ color: var(--rdb-success-text);
155
+ }
156
+ .rdb-badge-info {
157
+ background: var(--rdb-info-bg);
158
+ color: var(--rdb-info-text);
159
+ }
160
+ .rdb-badge-default {
161
+ background: var(--rdb-default-bg);
162
+ color: var(--rdb-default-text);
163
+ }
164
+ .rdb-btn {
165
+ display: inline-flex;
166
+ align-items: center;
167
+ justify-content: center;
168
+ font-weight: 500;
169
+ border-radius: var(--rdb-radius-sm);
170
+ border: 1px solid transparent;
171
+ cursor: pointer;
172
+ transition:
173
+ background-color 0.15s,
174
+ color 0.15s,
175
+ border-color 0.15s,
176
+ opacity 0.15s;
177
+ font-family: var(--rdb-font);
178
+ font-size: 0.875rem;
179
+ gap: 6px;
180
+ outline: none;
181
+ }
182
+ .rdb-btn:focus-visible {
183
+ outline: 2px solid var(--rdb-blue-500);
184
+ outline-offset: 2px;
185
+ }
186
+ .rdb-btn:disabled {
187
+ opacity: 0.5;
188
+ cursor: not-allowed;
189
+ }
190
+ .rdb-btn-sm {
191
+ padding: 4px 10px;
192
+ font-size: 0.75rem;
193
+ gap: 4px;
194
+ }
195
+ .rdb-btn-md {
196
+ padding: 6px 12px;
197
+ }
198
+ .rdb-btn-lg {
199
+ padding: 8px 16px;
200
+ font-size: 1rem;
201
+ gap: 8px;
202
+ }
203
+ .rdb-btn-primary {
204
+ background: var(--rdb-blue-500);
205
+ color: #fff;
206
+ border-color: var(--rdb-blue-500);
207
+ }
208
+ .rdb-btn-primary:hover:not(:disabled) {
209
+ background: var(--rdb-blue-600);
210
+ border-color: var(--rdb-blue-600);
211
+ }
212
+ .rdb-btn-secondary {
213
+ background: var(--rdb-bg);
214
+ color: var(--rdb-text);
215
+ border-color: var(--rdb-border);
216
+ }
217
+ .rdb-btn-secondary:hover:not(:disabled) {
218
+ background: var(--rdb-bg-subtle);
219
+ }
220
+ .rdb-btn-ghost {
221
+ background: transparent;
222
+ color: var(--rdb-text-muted);
223
+ border-color: transparent;
224
+ }
225
+ .rdb-btn-ghost:hover:not(:disabled) {
226
+ background: var(--rdb-bg-subtle);
227
+ color: var(--rdb-text);
228
+ }
229
+ .rdb-input,
230
+ .rdb-select {
231
+ padding: 6px 12px;
232
+ border-radius: var(--rdb-radius-sm);
233
+ border: 1px solid var(--rdb-border);
234
+ background: var(--rdb-bg);
235
+ color: var(--rdb-text);
236
+ font-size: 0.875rem;
237
+ font-family: var(--rdb-font);
238
+ transition: border-color 0.15s;
239
+ width: 100%;
240
+ outline: none;
241
+ }
242
+ .rdb-input:focus,
243
+ .rdb-select:focus {
244
+ border-color: var(--rdb-blue-500);
245
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
246
+ }
247
+ .rdb-input:disabled {
248
+ opacity: 0.5;
249
+ cursor: not-allowed;
250
+ }
251
+ .rdb-input::placeholder {
252
+ color: var(--rdb-text-subtle);
253
+ }
254
+ .rdb-label {
255
+ display: block;
256
+ font-size: 0.75rem;
257
+ font-weight: 500;
258
+ color: var(--rdb-text-muted);
259
+ margin-bottom: 4px;
260
+ }
261
+ .rdb-statcard {
262
+ padding: 16px;
263
+ display: flex;
264
+ flex-direction: column;
265
+ justify-content: space-between;
266
+ gap: 12px;
267
+ border-left-width: 4px;
268
+ border-left-style: solid;
269
+ }
270
+ .rdb-statcard-header {
271
+ display: flex;
272
+ align-items: center;
273
+ justify-content: space-between;
274
+ }
275
+ .rdb-statcard-label-group {
276
+ display: flex;
277
+ align-items: center;
278
+ gap: 8px;
279
+ color: var(--rdb-text-muted);
280
+ }
281
+ .rdb-statcard-icon {
282
+ width: 32px;
283
+ height: 32px;
284
+ border-radius: var(--rdb-radius-xs);
285
+ display: flex;
286
+ align-items: center;
287
+ justify-content: center;
288
+ flex-shrink: 0;
289
+ }
290
+ .rdb-statcard-label {
291
+ font-size: 0.75rem;
292
+ font-weight: 500;
293
+ }
294
+ .rdb-statcard-value {
295
+ font-size: 1.875rem;
296
+ font-weight: 700;
297
+ color: var(--rdb-text);
298
+ line-height: 1.2;
299
+ }
300
+ .rdb-accent-blue {
301
+ border-left-color: var(--rdb-blue-400);
302
+ }
303
+ .rdb-accent-blue .rdb-statcard-icon {
304
+ background: var(--rdb-blue-50);
305
+ color: var(--rdb-blue-600);
306
+ }
307
+ .rdb-accent-green {
308
+ border-left-color: var(--rdb-green-400);
309
+ }
310
+ .rdb-accent-green .rdb-statcard-icon {
311
+ background: var(--rdb-green-50);
312
+ color: var(--rdb-green-600);
313
+ }
314
+ .rdb-accent-violet {
315
+ border-left-color: var(--rdb-violet-400);
316
+ }
317
+ .rdb-accent-violet .rdb-statcard-icon {
318
+ background: var(--rdb-violet-50);
319
+ color: var(--rdb-violet-600);
320
+ }
321
+ .rdb-accent-orange {
322
+ border-left-color: var(--rdb-orange-400);
323
+ }
324
+ .rdb-accent-orange .rdb-statcard-icon {
325
+ background: var(--rdb-orange-50);
326
+ color: var(--rdb-orange-600);
327
+ }
328
+ .rdb-accent-sky {
329
+ border-left-color: var(--rdb-sky-400);
330
+ }
331
+ .rdb-accent-sky .rdb-statcard-icon {
332
+ background: var(--rdb-sky-50);
333
+ color: var(--rdb-sky-600);
334
+ }
335
+ .rdb-accent-rose {
336
+ border-left-color: var(--rdb-rose-400);
337
+ }
338
+ .rdb-accent-rose .rdb-statcard-icon {
339
+ background: var(--rdb-rose-50);
340
+ color: var(--rdb-rose-600);
341
+ }
342
+ .rdb-skeleton {
343
+ border-radius: var(--rdb-radius-sm);
344
+ background:
345
+ linear-gradient(
346
+ 90deg,
347
+ var(--rdb-border) 25%,
348
+ var(--rdb-bg-subtle) 50%,
349
+ var(--rdb-border) 75%);
350
+ background-size: 200% 100%;
351
+ animation: rdb-shimmer 1.5s infinite;
352
+ }
353
+ @keyframes rdb-shimmer {
354
+ 0% {
355
+ background-position: 200% 0;
356
+ }
357
+ 100% {
358
+ background-position: -200% 0;
359
+ }
360
+ }
361
+ .rdb-h1 {
362
+ font-size: 1.5rem;
363
+ font-weight: 700;
364
+ color: var(--rdb-text);
365
+ line-height: 1.3;
366
+ }
367
+ .rdb-h2 {
368
+ font-size: 1.25rem;
369
+ font-weight: 700;
370
+ color: var(--rdb-text);
371
+ line-height: 1.3;
372
+ }
373
+ .rdb-h3 {
374
+ font-size: 1.125rem;
375
+ font-weight: 600;
376
+ color: var(--rdb-text);
377
+ line-height: 1.4;
378
+ }
379
+ .rdb-subheading {
380
+ font-size: 0.75rem;
381
+ font-weight: 500;
382
+ color: var(--rdb-text-muted);
383
+ }
384
+ .rdb-body {
385
+ font-size: 0.875rem;
386
+ color: var(--rdb-text);
387
+ }
388
+ .rdb-caption {
389
+ font-size: 0.75rem;
390
+ color: var(--rdb-text-muted);
391
+ }
392
+ .rdb-metric {
393
+ font-size: 1.875rem;
394
+ font-weight: 700;
395
+ color: var(--rdb-text);
396
+ }
397
+ @media (min-width: 640px) {
398
+ .rdb-h1 {
399
+ font-size: 1.875rem;
400
+ }
401
+ .rdb-h2 {
402
+ font-size: 1.5rem;
403
+ }
404
+ }
405
+ .rdb-table-wrapper {
406
+ overflow-x: auto;
407
+ }
408
+ .rdb-table {
409
+ width: 100%;
410
+ font-size: 0.875rem;
411
+ border-collapse: collapse;
412
+ }
413
+ .rdb-table th {
414
+ padding: 12px;
415
+ text-align: left;
416
+ background: var(--rdb-bg-subtle);
417
+ color: var(--rdb-text-muted);
418
+ font-weight: 500;
419
+ font-size: 0.75rem;
420
+ cursor: pointer;
421
+ user-select: none;
422
+ transition: background-color 0.15s;
423
+ }
424
+ .rdb-table th:hover {
425
+ background: var(--rdb-border);
426
+ }
427
+ .rdb-table td {
428
+ padding: 12px;
429
+ border-bottom: 1px solid var(--rdb-border);
430
+ color: var(--rdb-text);
431
+ }
432
+ .rdb-table tr:last-child td {
433
+ border-bottom: none;
434
+ }
435
+ .rdb-table tr:hover td {
436
+ background: var(--rdb-bg-subtle);
437
+ }
438
+ .rdb-table-empty {
439
+ padding: 24px;
440
+ text-align: center;
441
+ color: var(--rdb-text-muted);
442
+ }
443
+ .rdb-pagination {
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: space-between;
447
+ padding: 0 4px;
448
+ }
449
+ .rdb-pagination-info {
450
+ font-size: 0.75rem;
451
+ color: var(--rdb-text-muted);
452
+ }
453
+ .rdb-pagination-controls {
454
+ display: flex;
455
+ align-items: center;
456
+ gap: 4px;
457
+ }
458
+ .rdb-pagination-page {
459
+ font-size: 0.75rem;
460
+ color: var(--rdb-text-muted);
461
+ min-width: 60px;
462
+ text-align: center;
463
+ }
464
+ .rdb-page-btn {
465
+ padding: 6px;
466
+ border-radius: var(--rdb-radius-xs);
467
+ border: none;
468
+ background: transparent;
469
+ color: var(--rdb-text-muted);
470
+ cursor: pointer;
471
+ transition: background-color 0.15s;
472
+ display: flex;
473
+ align-items: center;
474
+ justify-content: center;
475
+ }
476
+ .rdb-page-btn:hover:not(:disabled) {
477
+ background: var(--rdb-bg-subtle);
478
+ }
479
+ .rdb-page-btn:disabled {
480
+ opacity: 0.4;
481
+ cursor: not-allowed;
482
+ }
483
+ .rdb-searchbar {
484
+ position: relative;
485
+ max-width: 384px;
486
+ }
487
+ .rdb-searchbar-icon {
488
+ position: absolute;
489
+ left: 12px;
490
+ top: 50%;
491
+ transform: translateY(-50%);
492
+ color: var(--rdb-text-subtle);
493
+ pointer-events: none;
494
+ }
495
+ .rdb-searchbar-input {
496
+ padding-left: 36px;
497
+ }
498
+ .rdb-filter-panel {
499
+ display: flex;
500
+ flex-direction: column;
501
+ gap: 8px;
502
+ }
503
+ .rdb-filter-row {
504
+ display: grid;
505
+ grid-template-columns: 1fr;
506
+ gap: 8px;
507
+ }
508
+ @media (min-width: 1024px) {
509
+ .rdb-filter-row {
510
+ grid-template-columns: repeat(6, 1fr);
511
+ }
512
+ .rdb-filter-date {
513
+ grid-column: span 2;
514
+ }
515
+ }
516
+ .rdb-filter-actions {
517
+ display: flex;
518
+ align-items: center;
519
+ justify-content: space-between;
520
+ }
521
+ .rdb-filter-sort {
522
+ display: flex;
523
+ align-items: center;
524
+ gap: 8px;
525
+ }
526
+ .rdb-filter-overlay-label {
527
+ display: inline-flex;
528
+ align-items: center;
529
+ gap: 8px;
530
+ padding: 6px 12px;
531
+ border-radius: var(--rdb-radius-sm);
532
+ border: 1px solid var(--rdb-border);
533
+ cursor: pointer;
534
+ font-size: 0.875rem;
535
+ color: var(--rdb-text);
536
+ }
537
+ .rdb-chart-header {
538
+ display: flex;
539
+ align-items: center;
540
+ gap: 8px;
541
+ margin-bottom: 8px;
542
+ color: var(--rdb-text);
543
+ font-size: 0.875rem;
544
+ font-weight: 600;
545
+ }
546
+ .rdb-view {
547
+ font-family: var(--rdb-font);
548
+ color: var(--rdb-text);
549
+ }
550
+ .rdb-view-container {
551
+ max-width: 1280px;
552
+ margin: 0 auto;
553
+ padding: 12px 16px;
554
+ display: flex;
555
+ flex-direction: column;
556
+ gap: 16px;
557
+ }
558
+ .rdb-header-panel {
559
+ border-radius: var(--rdb-radius);
560
+ border: 1px solid var(--rdb-border-subtle);
561
+ padding: 12px 16px;
562
+ display: flex;
563
+ flex-direction: column;
564
+ gap: 8px;
565
+ background: var(--rdb-bg-card);
566
+ box-shadow: var(--rdb-shadow);
567
+ }
568
+ .rdb-header-top {
569
+ display: flex;
570
+ flex-wrap: wrap;
571
+ align-items: center;
572
+ justify-content: space-between;
573
+ gap: 8px;
574
+ }
575
+ .rdb-header-title-group {
576
+ display: flex;
577
+ align-items: center;
578
+ gap: 12px;
579
+ }
580
+ .rdb-error-banner {
581
+ border-radius: var(--rdb-radius-sm);
582
+ border: 1px solid #fca5a5;
583
+ background: #fef2f2;
584
+ padding: 8px 12px;
585
+ font-size: 0.875rem;
586
+ color: #991b1b;
587
+ display: flex;
588
+ align-items: center;
589
+ justify-content: space-between;
590
+ gap: 12px;
591
+ }
592
+ .rdb-stats-grid {
593
+ display: grid;
594
+ grid-template-columns: 1fr;
595
+ gap: 16px;
596
+ }
597
+ @media (min-width: 640px) {
598
+ .rdb-stats-grid {
599
+ grid-template-columns: repeat(2, 1fr);
600
+ }
601
+ }
602
+ @media (min-width: 1024px) {
603
+ .rdb-stats-grid {
604
+ grid-template-columns: repeat(4, 1fr);
605
+ }
606
+ }
607
+ .rdb-charts-grid {
608
+ display: grid;
609
+ grid-template-columns: 1fr;
610
+ gap: 16px;
611
+ }
612
+ @media (min-width: 1024px) {
613
+ .rdb-charts-grid {
614
+ grid-template-columns: repeat(2, 1fr);
615
+ }
616
+ }
617
+ .rdb-sidebar {
618
+ display: flex;
619
+ flex-direction: column;
620
+ width: 240px;
621
+ min-height: 100vh;
622
+ background: var(--rdb-bg-card);
623
+ border-right: 1px solid var(--rdb-border);
624
+ }
625
+ .rdb-sidebar-logo {
626
+ padding: 16px;
627
+ border-bottom: 1px solid var(--rdb-border);
628
+ }
629
+ .rdb-sidebar-nav {
630
+ flex: 1;
631
+ padding: 12px 8px;
632
+ display: flex;
633
+ flex-direction: column;
634
+ gap: 2px;
635
+ }
636
+ .rdb-nav-item {
637
+ width: 100%;
638
+ display: flex;
639
+ align-items: center;
640
+ gap: 12px;
641
+ padding: 10px 12px;
642
+ border-radius: var(--rdb-radius-sm);
643
+ border: none;
644
+ cursor: pointer;
645
+ background: transparent;
646
+ color: var(--rdb-text-muted);
647
+ font-size: 0.875rem;
648
+ font-weight: 500;
649
+ font-family: var(--rdb-font);
650
+ text-align: left;
651
+ transition: background-color 0.15s, color 0.15s;
652
+ }
653
+ .rdb-nav-item:hover {
654
+ background: var(--rdb-bg-subtle);
655
+ color: var(--rdb-text);
656
+ }
657
+ .rdb-nav-item-active {
658
+ background: var(--rdb-blue-50);
659
+ color: var(--rdb-blue-600);
660
+ }
661
+ .rdb-nav-dot {
662
+ width: 6px;
663
+ height: 6px;
664
+ border-radius: 50%;
665
+ background: var(--rdb-blue-500);
666
+ margin-left: auto;
667
+ }
668
+ .rdb-topbar {
669
+ position: sticky;
670
+ top: 0;
671
+ z-index: 30;
672
+ display: flex;
673
+ align-items: center;
674
+ justify-content: space-between;
675
+ height: 56px;
676
+ padding: 0 16px;
677
+ background: rgba(255, 255, 255, 0.85);
678
+ backdrop-filter: blur(12px);
679
+ border-bottom: 1px solid var(--rdb-border);
680
+ }
681
+ .dark .rdb-topbar {
682
+ background: rgba(15, 23, 42, 0.85);
683
+ }
684
+ .rdb-topbar-left {
685
+ display: flex;
686
+ align-items: center;
687
+ gap: 12px;
688
+ }
689
+ .rdb-topbar-right {
690
+ display: flex;
691
+ align-items: center;
692
+ gap: 8px;
693
+ }
694
+ .rdb-layout {
695
+ min-height: 100vh;
696
+ background: var(--rdb-bg-subtle);
697
+ font-family: var(--rdb-font);
698
+ }
699
+ .rdb-layout-body {
700
+ display: flex;
701
+ }
702
+ .rdb-layout-main {
703
+ flex: 1;
704
+ max-width: 1280px;
705
+ margin: 0 auto;
706
+ padding: 12px 16px;
707
+ }
708
+ .rdb-daterange {
709
+ display: flex;
710
+ align-items: center;
711
+ gap: 8px;
712
+ flex-wrap: wrap;
713
+ }
714
+ .rdb-daterange-label {
715
+ font-size: 0.625rem;
716
+ font-weight: 500;
717
+ color: var(--rdb-text-muted);
718
+ text-transform: uppercase;
719
+ letter-spacing: 0.05em;
720
+ }
721
+ .rdb-daterange-group {
722
+ display: flex;
723
+ flex-direction: column;
724
+ gap: 2px;
725
+ flex: 1;
726
+ min-width: 120px;
727
+ }
728
+ .rdb-chart-title-wrap {
729
+ display: flex;
730
+ align-items: center;
731
+ justify-content: space-between;
732
+ margin-bottom: 8px;
733
+ }
734
+ .rdb-chart-title {
735
+ display: flex;
736
+ align-items: center;
737
+ gap: 8px;
738
+ font-size: 0.875rem;
739
+ font-weight: 600;
740
+ color: var(--rdb-text);
741
+ }
742
+ /*# sourceMappingURL=index.css.map */