claude-team-dashboard 1.2.2
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.
Potentially problematic release.
This version of claude-team-dashboard might be problematic. Click here for more details.
- package/CHANGELOG.md +76 -0
- package/LICENSE +21 -0
- package/README.md +722 -0
- package/cleanup.js +73 -0
- package/config.js +50 -0
- package/dist/assets/icons-Ijf8rQIc.js +1 -0
- package/dist/assets/index-Cqc1m1x_.css +1 -0
- package/dist/assets/index-jGy3ms0W.js +9 -0
- package/dist/assets/react-vendor-DbmSkCAF.js +1 -0
- package/dist/index.html +16 -0
- package/index.html +13 -0
- package/package.json +93 -0
- package/server.js +953 -0
- package/src/App.jsx +372 -0
- package/src/animations-enhanced.css +929 -0
- package/src/animations.css +783 -0
- package/src/components/ActivityFeed.jsx +289 -0
- package/src/components/AgentActivity.jsx +104 -0
- package/src/components/AgentCard.jsx +163 -0
- package/src/components/AgentOutputViewer.jsx +334 -0
- package/src/components/ArchiveViewer.jsx +283 -0
- package/src/components/ConnectionStatus.jsx +124 -0
- package/src/components/DetailedTaskProgress.jsx +126 -0
- package/src/components/ErrorBoundary.jsx +132 -0
- package/src/components/Header.jsx +154 -0
- package/src/components/LiveAgentStream.jsx +176 -0
- package/src/components/LiveCommunication.jsx +326 -0
- package/src/components/LiveMetrics.jsx +100 -0
- package/src/components/RealTimeMessages.jsx +298 -0
- package/src/components/SkeletonLoader.jsx +384 -0
- package/src/components/StatsOverview.jsx +209 -0
- package/src/components/SystemStatus.jsx +57 -0
- package/src/components/TaskList.jsx +306 -0
- package/src/components/TeamCard.jsx +126 -0
- package/src/components/TeamHistory.jsx +204 -0
- package/src/components/__tests__/ConnectionStatus.test.jsx +54 -0
- package/src/components/__tests__/StatsOverview.test.jsx +66 -0
- package/src/config/constants.js +59 -0
- package/src/hooks/useCounterAnimation.js +219 -0
- package/src/hooks/useWebSocket.js +76 -0
- package/src/index.css +1818 -0
- package/src/main.jsx +17 -0
- package/src/polish-enhancements.css +303 -0
- package/src/premium-visual-polish.css +830 -0
- package/src/responsive-enhancements.css +666 -0
- package/src/styles/theme.css +395 -0
- package/src/test/setup.js +19 -0
- package/start.js +36 -0
- package/vite.config.js +37 -0
|
@@ -0,0 +1,830 @@
|
|
|
1
|
+
/* ========================================
|
|
2
|
+
PREMIUM VISUAL POLISH & ENHANCEMENTS
|
|
3
|
+
World-Class Dashboard Visual System
|
|
4
|
+
Vercel/Linear/Stripe Quality Level
|
|
5
|
+
======================================== */
|
|
6
|
+
|
|
7
|
+
/* ==========================================
|
|
8
|
+
GRADIENT MESH BACKGROUNDS
|
|
9
|
+
========================================== */
|
|
10
|
+
|
|
11
|
+
/* Premium gradient mesh for body */
|
|
12
|
+
body {
|
|
13
|
+
background:
|
|
14
|
+
radial-gradient(ellipse at 10% 20%, rgba(249, 115, 22, 0.08) 0%, transparent 50%),
|
|
15
|
+
radial-gradient(ellipse at 90% 80%, rgba(59, 130, 246, 0.06) 0%, transparent 50%),
|
|
16
|
+
radial-gradient(ellipse at 50% 50%, rgba(168, 85, 247, 0.04) 0%, transparent 50%),
|
|
17
|
+
linear-gradient(135deg, #0a0e1a 0%, #1a1f35 25%, #0f1729 50%, #1e2538 75%, #0a0e1a 100%);
|
|
18
|
+
background-size: 400% 400%, 400% 400%, 400% 400%, 400% 400%;
|
|
19
|
+
background-attachment: fixed;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* ==========================================
|
|
23
|
+
ENHANCED CARD SYSTEM WITH DEPTH
|
|
24
|
+
========================================== */
|
|
25
|
+
|
|
26
|
+
.card, .stat-card {
|
|
27
|
+
background:
|
|
28
|
+
linear-gradient(135deg, rgba(30, 41, 59, 0.98) 0%, rgba(15, 23, 42, 0.95) 100%);
|
|
29
|
+
border-radius: 20px !important;
|
|
30
|
+
box-shadow:
|
|
31
|
+
0 20px 60px rgba(0, 0, 0, 0.5),
|
|
32
|
+
0 8px 24px rgba(0, 0, 0, 0.3),
|
|
33
|
+
0 2px 8px rgba(0, 0, 0, 0.2),
|
|
34
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.08),
|
|
35
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.2);
|
|
36
|
+
backdrop-filter: blur(24px) saturate(120%);
|
|
37
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
38
|
+
position: relative;
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Animated gradient border on hover */
|
|
44
|
+
.card::before, .stat-card::before {
|
|
45
|
+
content: '';
|
|
46
|
+
position: absolute;
|
|
47
|
+
inset: -2px;
|
|
48
|
+
border-radius: 20px;
|
|
49
|
+
background: linear-gradient(
|
|
50
|
+
135deg,
|
|
51
|
+
rgba(249, 115, 22, 0.4),
|
|
52
|
+
rgba(59, 130, 246, 0.3),
|
|
53
|
+
rgba(168, 85, 247, 0.3),
|
|
54
|
+
rgba(249, 115, 22, 0.4)
|
|
55
|
+
);
|
|
56
|
+
background-size: 400% 400%;
|
|
57
|
+
opacity: 0;
|
|
58
|
+
z-index: -1;
|
|
59
|
+
transition: opacity 0.4s ease;
|
|
60
|
+
animation: gradientRotate 8s ease infinite;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@keyframes gradientRotate {
|
|
64
|
+
0%, 100% { background-position: 0% 50%; }
|
|
65
|
+
50% { background-position: 100% 50%; }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.card:hover::before, .stat-card:hover::before {
|
|
69
|
+
opacity: 0.6;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.card:hover, .stat-card:hover {
|
|
73
|
+
transform: translateY(-6px) scale(1.01);
|
|
74
|
+
box-shadow:
|
|
75
|
+
0 30px 90px rgba(0, 0, 0, 0.6),
|
|
76
|
+
0 12px 36px rgba(0, 0, 0, 0.4),
|
|
77
|
+
0 4px 12px rgba(0, 0, 0, 0.3),
|
|
78
|
+
0 0 60px rgba(249, 115, 22, 0.15),
|
|
79
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.12);
|
|
80
|
+
border-color: rgba(249, 115, 22, 0.3);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Inner light reflection */
|
|
84
|
+
.card::after, .stat-card::after {
|
|
85
|
+
content: '';
|
|
86
|
+
position: absolute;
|
|
87
|
+
top: 0;
|
|
88
|
+
left: 0;
|
|
89
|
+
right: 0;
|
|
90
|
+
height: 120px;
|
|
91
|
+
background: radial-gradient(ellipse at top, rgba(255, 255, 255, 0.08) 0%, transparent 70%);
|
|
92
|
+
pointer-events: none;
|
|
93
|
+
border-radius: 20px 20px 0 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* ==========================================
|
|
97
|
+
GLASSMORPHISM ENHANCEMENTS
|
|
98
|
+
========================================== */
|
|
99
|
+
|
|
100
|
+
.glass-effect {
|
|
101
|
+
background: rgba(30, 41, 59, 0.65) !important;
|
|
102
|
+
backdrop-filter: blur(32px) saturate(180%) brightness(110%) !important;
|
|
103
|
+
-webkit-backdrop-filter: blur(32px) saturate(180%) brightness(110%) !important;
|
|
104
|
+
border: 1px solid rgba(255, 255, 255, 0.15) !important;
|
|
105
|
+
box-shadow:
|
|
106
|
+
0 12px 48px rgba(0, 0, 0, 0.4),
|
|
107
|
+
0 4px 16px rgba(0, 0, 0, 0.3),
|
|
108
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.15),
|
|
109
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.15) !important;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* ==========================================
|
|
113
|
+
PREMIUM BADGE SYSTEM
|
|
114
|
+
========================================== */
|
|
115
|
+
|
|
116
|
+
.badge {
|
|
117
|
+
position: relative;
|
|
118
|
+
padding: 8px 18px !important;
|
|
119
|
+
border-radius: 9999px;
|
|
120
|
+
font-size: 12px;
|
|
121
|
+
font-weight: 700;
|
|
122
|
+
letter-spacing: 0.5px;
|
|
123
|
+
text-transform: uppercase;
|
|
124
|
+
display: inline-flex !important;
|
|
125
|
+
align-items: center;
|
|
126
|
+
gap: 8px;
|
|
127
|
+
backdrop-filter: blur(16px);
|
|
128
|
+
box-shadow:
|
|
129
|
+
0 4px 12px rgba(0, 0, 0, 0.3),
|
|
130
|
+
0 2px 6px rgba(0, 0, 0, 0.4),
|
|
131
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.2),
|
|
132
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.25);
|
|
133
|
+
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
|
|
134
|
+
overflow: hidden;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Status indicator dot with pulsing glow */
|
|
138
|
+
.badge::before {
|
|
139
|
+
content: '';
|
|
140
|
+
width: 8px;
|
|
141
|
+
height: 8px;
|
|
142
|
+
border-radius: 50%;
|
|
143
|
+
background: currentColor;
|
|
144
|
+
box-shadow:
|
|
145
|
+
0 0 12px currentColor,
|
|
146
|
+
0 0 24px currentColor,
|
|
147
|
+
0 0 36px rgba(255, 255, 255, 0.3);
|
|
148
|
+
animation: statusPulse 2.5s ease-in-out infinite;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@keyframes statusPulse {
|
|
152
|
+
0%, 100% {
|
|
153
|
+
opacity: 1;
|
|
154
|
+
transform: scale(1);
|
|
155
|
+
box-shadow:
|
|
156
|
+
0 0 12px currentColor,
|
|
157
|
+
0 0 24px currentColor,
|
|
158
|
+
0 0 36px rgba(255, 255, 255, 0.3);
|
|
159
|
+
}
|
|
160
|
+
50% {
|
|
161
|
+
opacity: 0.7;
|
|
162
|
+
transform: scale(0.9);
|
|
163
|
+
box-shadow:
|
|
164
|
+
0 0 8px currentColor,
|
|
165
|
+
0 0 16px currentColor,
|
|
166
|
+
0 0 24px rgba(255, 255, 255, 0.2);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.badge:hover {
|
|
171
|
+
transform: translateY(-3px) scale(1.05);
|
|
172
|
+
box-shadow:
|
|
173
|
+
0 8px 24px rgba(0, 0, 0, 0.4),
|
|
174
|
+
0 4px 12px rgba(0, 0, 0, 0.5),
|
|
175
|
+
0 0 40px currentColor,
|
|
176
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Badge color variants with enhanced glows */
|
|
180
|
+
.badge-pending {
|
|
181
|
+
background: linear-gradient(135deg, rgba(234, 179, 8, 0.35) 0%, rgba(234, 179, 8, 0.2) 100%) !important;
|
|
182
|
+
color: #facc15 !important;
|
|
183
|
+
border: 1px solid rgba(234, 179, 8, 0.6) !important;
|
|
184
|
+
text-shadow: 0 0 12px rgba(234, 179, 8, 0.5);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.badge-pending:hover {
|
|
188
|
+
box-shadow:
|
|
189
|
+
0 8px 24px rgba(234, 179, 8, 0.4),
|
|
190
|
+
0 4px 12px rgba(234, 179, 8, 0.3),
|
|
191
|
+
0 0 40px rgba(234, 179, 8, 0.6),
|
|
192
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.badge-in-progress {
|
|
196
|
+
background: linear-gradient(135deg, rgba(59, 130, 246, 0.35) 0%, rgba(59, 130, 246, 0.2) 100%) !important;
|
|
197
|
+
color: #60a5fa !important;
|
|
198
|
+
border: 1px solid rgba(59, 130, 246, 0.6) !important;
|
|
199
|
+
text-shadow: 0 0 12px rgba(59, 130, 246, 0.5);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.badge-in-progress:hover {
|
|
203
|
+
box-shadow:
|
|
204
|
+
0 8px 24px rgba(59, 130, 246, 0.4),
|
|
205
|
+
0 4px 12px rgba(59, 130, 246, 0.3),
|
|
206
|
+
0 0 40px rgba(59, 130, 246, 0.6),
|
|
207
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.badge-completed {
|
|
211
|
+
background: linear-gradient(135deg, rgba(34, 197, 94, 0.35) 0%, rgba(34, 197, 94, 0.2) 100%) !important;
|
|
212
|
+
color: #4ade80 !important;
|
|
213
|
+
border: 1px solid rgba(34, 197, 94, 0.6) !important;
|
|
214
|
+
text-shadow: 0 0 12px rgba(34, 197, 94, 0.5);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.badge-completed:hover {
|
|
218
|
+
box-shadow:
|
|
219
|
+
0 8px 24px rgba(34, 197, 94, 0.4),
|
|
220
|
+
0 4px 12px rgba(34, 197, 94, 0.3),
|
|
221
|
+
0 0 40px rgba(34, 197, 94, 0.6),
|
|
222
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.badge-blocked {
|
|
226
|
+
background: linear-gradient(135deg, rgba(239, 68, 68, 0.35) 0%, rgba(239, 68, 68, 0.2) 100%) !important;
|
|
227
|
+
color: #f87171 !important;
|
|
228
|
+
border: 1px solid rgba(239, 68, 68, 0.6) !important;
|
|
229
|
+
text-shadow: 0 0 12px rgba(239, 68, 68, 0.5);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.badge-blocked:hover {
|
|
233
|
+
box-shadow:
|
|
234
|
+
0 8px 24px rgba(239, 68, 68, 0.4),
|
|
235
|
+
0 4px 12px rgba(239, 68, 68, 0.3),
|
|
236
|
+
0 0 40px rgba(239, 68, 68, 0.6),
|
|
237
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* ==========================================
|
|
241
|
+
ICON CONTAINERS WITH GRADIENT MESH
|
|
242
|
+
========================================== */
|
|
243
|
+
|
|
244
|
+
.icon-container {
|
|
245
|
+
position: relative;
|
|
246
|
+
display: inline-flex;
|
|
247
|
+
align-items: center;
|
|
248
|
+
justify-content: center;
|
|
249
|
+
padding: 14px;
|
|
250
|
+
border-radius: 16px;
|
|
251
|
+
background: linear-gradient(135deg, rgba(249, 115, 22, 0.2), rgba(249, 115, 22, 0.08));
|
|
252
|
+
box-shadow:
|
|
253
|
+
0 4px 12px rgba(0, 0, 0, 0.35),
|
|
254
|
+
0 2px 6px rgba(0, 0, 0, 0.4),
|
|
255
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.15),
|
|
256
|
+
inset 0 -1px 0 rgba(0, 0, 0, 0.2);
|
|
257
|
+
border: 1px solid rgba(249, 115, 22, 0.3);
|
|
258
|
+
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
|
|
259
|
+
overflow: hidden;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/* Rotating gradient overlay */
|
|
263
|
+
.icon-container::before {
|
|
264
|
+
content: '';
|
|
265
|
+
position: absolute;
|
|
266
|
+
inset: -50%;
|
|
267
|
+
background: conic-gradient(
|
|
268
|
+
from 0deg,
|
|
269
|
+
transparent 0deg,
|
|
270
|
+
rgba(255, 255, 255, 0.2) 45deg,
|
|
271
|
+
transparent 90deg,
|
|
272
|
+
transparent 270deg,
|
|
273
|
+
rgba(255, 255, 255, 0.2) 315deg,
|
|
274
|
+
transparent 360deg
|
|
275
|
+
);
|
|
276
|
+
opacity: 0;
|
|
277
|
+
transition: opacity 0.35s ease;
|
|
278
|
+
animation: iconRotate 4s linear infinite;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
@keyframes iconRotate {
|
|
282
|
+
from { transform: rotate(0deg); }
|
|
283
|
+
to { transform: rotate(360deg); }
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.icon-container:hover::before {
|
|
287
|
+
opacity: 1;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.icon-container:hover {
|
|
291
|
+
transform: scale(1.12) rotate(-3deg);
|
|
292
|
+
box-shadow:
|
|
293
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
294
|
+
0 4px 12px rgba(0, 0, 0, 0.5),
|
|
295
|
+
0 0 48px rgba(249, 115, 22, 0.5),
|
|
296
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
297
|
+
border-color: rgba(249, 115, 22, 0.6);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* Color variants */
|
|
301
|
+
.icon-container-blue {
|
|
302
|
+
background: linear-gradient(135deg, rgba(59, 130, 246, 0.2), rgba(59, 130, 246, 0.08));
|
|
303
|
+
border-color: rgba(59, 130, 246, 0.3);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.icon-container-blue:hover {
|
|
307
|
+
box-shadow:
|
|
308
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
309
|
+
0 0 48px rgba(59, 130, 246, 0.5);
|
|
310
|
+
border-color: rgba(59, 130, 246, 0.6);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.icon-container-purple {
|
|
314
|
+
background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(168, 85, 247, 0.08));
|
|
315
|
+
border-color: rgba(168, 85, 247, 0.3);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.icon-container-purple:hover {
|
|
319
|
+
box-shadow:
|
|
320
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
321
|
+
0 0 48px rgba(168, 85, 247, 0.5);
|
|
322
|
+
border-color: rgba(168, 85, 247, 0.6);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.icon-container-green {
|
|
326
|
+
background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(34, 197, 94, 0.08));
|
|
327
|
+
border-color: rgba(34, 197, 94, 0.3);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.icon-container-green:hover {
|
|
331
|
+
box-shadow:
|
|
332
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
333
|
+
0 0 48px rgba(34, 197, 94, 0.5);
|
|
334
|
+
border-color: rgba(34, 197, 94, 0.6);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.icon-container-cyan {
|
|
338
|
+
background: linear-gradient(135deg, rgba(6, 182, 212, 0.2), rgba(6, 182, 212, 0.08));
|
|
339
|
+
border-color: rgba(6, 182, 212, 0.3);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.icon-container-cyan:hover {
|
|
343
|
+
box-shadow:
|
|
344
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
345
|
+
0 0 48px rgba(6, 182, 212, 0.5);
|
|
346
|
+
border-color: rgba(6, 182, 212, 0.6);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.icon-container-red {
|
|
350
|
+
background: linear-gradient(135deg, rgba(239, 68, 68, 0.2), rgba(239, 68, 68, 0.08));
|
|
351
|
+
border-color: rgba(239, 68, 68, 0.3);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.icon-container-red:hover {
|
|
355
|
+
box-shadow:
|
|
356
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
357
|
+
0 0 48px rgba(239, 68, 68, 0.5);
|
|
358
|
+
border-color: rgba(239, 68, 68, 0.6);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.icon-container-yellow {
|
|
362
|
+
background: linear-gradient(135deg, rgba(234, 179, 8, 0.2), rgba(234, 179, 8, 0.08));
|
|
363
|
+
border-color: rgba(234, 179, 8, 0.3);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.icon-container-yellow:hover {
|
|
367
|
+
box-shadow:
|
|
368
|
+
0 8px 24px rgba(0, 0, 0, 0.45),
|
|
369
|
+
0 0 48px rgba(234, 179, 8, 0.5);
|
|
370
|
+
border-color: rgba(234, 179, 8, 0.6);
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/* ==========================================
|
|
374
|
+
PREMIUM BUTTONS
|
|
375
|
+
========================================== */
|
|
376
|
+
|
|
377
|
+
button, .btn {
|
|
378
|
+
position: relative;
|
|
379
|
+
border-radius: 12px;
|
|
380
|
+
box-shadow:
|
|
381
|
+
0 4px 12px rgba(0, 0, 0, 0.3),
|
|
382
|
+
0 2px 6px rgba(0, 0, 0, 0.4),
|
|
383
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
|
|
384
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
|
|
385
|
+
overflow: hidden;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/* Ripple effect layer */
|
|
389
|
+
button::before, .btn::before {
|
|
390
|
+
content: '';
|
|
391
|
+
position: absolute;
|
|
392
|
+
top: 50%;
|
|
393
|
+
left: 50%;
|
|
394
|
+
width: 0;
|
|
395
|
+
height: 0;
|
|
396
|
+
border-radius: 50%;
|
|
397
|
+
background: rgba(255, 255, 255, 0.15);
|
|
398
|
+
transform: translate(-50%, -50%);
|
|
399
|
+
transition: width 0.6s, height 0.6s;
|
|
400
|
+
pointer-events: none;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
button:active::before, .btn:active::before {
|
|
404
|
+
width: 400px;
|
|
405
|
+
height: 400px;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
button:hover, .btn:hover {
|
|
409
|
+
transform: translateY(-3px);
|
|
410
|
+
box-shadow:
|
|
411
|
+
0 8px 24px rgba(0, 0, 0, 0.4),
|
|
412
|
+
0 4px 12px rgba(0, 0, 0, 0.5),
|
|
413
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
button:active, .btn:active {
|
|
417
|
+
transform: translateY(-1px) scale(0.98);
|
|
418
|
+
transition: all 0.1s ease !important;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/* ==========================================
|
|
422
|
+
PROGRESS BARS WITH GRADIENTS
|
|
423
|
+
========================================== */
|
|
424
|
+
|
|
425
|
+
.progress-bar {
|
|
426
|
+
position: relative;
|
|
427
|
+
width: 100%;
|
|
428
|
+
height: 10px;
|
|
429
|
+
background: rgba(55, 65, 81, 0.6);
|
|
430
|
+
border-radius: 9999px;
|
|
431
|
+
overflow: hidden;
|
|
432
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
.progress-fill {
|
|
436
|
+
height: 100%;
|
|
437
|
+
background: linear-gradient(90deg, #f97316, #fb923c, #fdba74, #fb923c, #f97316);
|
|
438
|
+
background-size: 200% 100%;
|
|
439
|
+
border-radius: inherit;
|
|
440
|
+
position: relative;
|
|
441
|
+
overflow: hidden;
|
|
442
|
+
box-shadow: 0 0 20px rgba(249, 115, 22, 0.5);
|
|
443
|
+
animation: progressShimmer 3s ease-in-out infinite;
|
|
444
|
+
transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
@keyframes progressShimmer {
|
|
448
|
+
0%, 100% { background-position: 0% center; }
|
|
449
|
+
50% { background-position: 100% center; }
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/* Animated light streak */
|
|
453
|
+
.progress-fill::after {
|
|
454
|
+
content: '';
|
|
455
|
+
position: absolute;
|
|
456
|
+
inset: 0;
|
|
457
|
+
background: linear-gradient(
|
|
458
|
+
90deg,
|
|
459
|
+
transparent 0%,
|
|
460
|
+
rgba(255, 255, 255, 0.4) 50%,
|
|
461
|
+
transparent 100%
|
|
462
|
+
);
|
|
463
|
+
transform: translateX(-100%);
|
|
464
|
+
animation: progressStreak 2s ease-in-out infinite;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
@keyframes progressStreak {
|
|
468
|
+
0% { transform: translateX(-100%); }
|
|
469
|
+
100% { transform: translateX(200%); }
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/* ==========================================
|
|
473
|
+
SECTION DIVIDERS WITH GLOW
|
|
474
|
+
========================================== */
|
|
475
|
+
|
|
476
|
+
.section-divider {
|
|
477
|
+
position: relative;
|
|
478
|
+
height: 1px;
|
|
479
|
+
margin: 32px 0;
|
|
480
|
+
background: linear-gradient(
|
|
481
|
+
90deg,
|
|
482
|
+
transparent 0%,
|
|
483
|
+
rgba(255, 255, 255, 0.05) 10%,
|
|
484
|
+
rgba(249, 115, 22, 0.3) 50%,
|
|
485
|
+
rgba(255, 255, 255, 0.05) 90%,
|
|
486
|
+
transparent 100%
|
|
487
|
+
);
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.section-divider::before {
|
|
491
|
+
content: '';
|
|
492
|
+
position: absolute;
|
|
493
|
+
top: 50%;
|
|
494
|
+
left: 50%;
|
|
495
|
+
transform: translate(-50%, -50%);
|
|
496
|
+
width: 6px;
|
|
497
|
+
height: 6px;
|
|
498
|
+
background: #f97316;
|
|
499
|
+
border-radius: 50%;
|
|
500
|
+
box-shadow:
|
|
501
|
+
0 0 20px rgba(249, 115, 22, 0.8),
|
|
502
|
+
0 0 40px rgba(249, 115, 22, 0.5),
|
|
503
|
+
0 0 60px rgba(249, 115, 22, 0.3);
|
|
504
|
+
animation: dividerPulse 3s ease-in-out infinite;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
@keyframes dividerPulse {
|
|
508
|
+
0%, 100% {
|
|
509
|
+
transform: translate(-50%, -50%) scale(1);
|
|
510
|
+
opacity: 1;
|
|
511
|
+
}
|
|
512
|
+
50% {
|
|
513
|
+
transform: translate(-50%, -50%) scale(1.3);
|
|
514
|
+
opacity: 0.7;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
/* ==========================================
|
|
519
|
+
PREMIUM SCROLLBAR
|
|
520
|
+
========================================== */
|
|
521
|
+
|
|
522
|
+
::-webkit-scrollbar {
|
|
523
|
+
width: 12px;
|
|
524
|
+
height: 12px;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
::-webkit-scrollbar-track {
|
|
528
|
+
background: rgba(15, 23, 42, 0.6);
|
|
529
|
+
border-radius: 6px;
|
|
530
|
+
border: 1px solid rgba(55, 65, 81, 0.4);
|
|
531
|
+
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
::-webkit-scrollbar-thumb {
|
|
535
|
+
background: linear-gradient(135deg, rgba(249, 115, 22, 0.7), rgba(249, 115, 22, 0.5));
|
|
536
|
+
border-radius: 6px;
|
|
537
|
+
border: 1px solid rgba(249, 115, 22, 0.4);
|
|
538
|
+
box-shadow:
|
|
539
|
+
0 2px 8px rgba(0, 0, 0, 0.3),
|
|
540
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.15);
|
|
541
|
+
transition: all 0.3s ease;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
::-webkit-scrollbar-thumb:hover {
|
|
545
|
+
background: linear-gradient(135deg, rgba(249, 115, 22, 0.9), rgba(249, 115, 22, 0.7));
|
|
546
|
+
box-shadow:
|
|
547
|
+
0 4px 12px rgba(0, 0, 0, 0.4),
|
|
548
|
+
0 0 20px rgba(249, 115, 22, 0.6),
|
|
549
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.2);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
::-webkit-scrollbar-corner {
|
|
553
|
+
background: rgba(15, 23, 42, 0.6);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
/* ==========================================
|
|
557
|
+
TEXT ENHANCEMENTS WITH SHADOWS
|
|
558
|
+
========================================== */
|
|
559
|
+
|
|
560
|
+
h1, h2, h3, h4, h5, h6 {
|
|
561
|
+
text-shadow:
|
|
562
|
+
0 2px 4px rgba(0, 0, 0, 0.4),
|
|
563
|
+
0 1px 2px rgba(0, 0, 0, 0.6);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
.text-white {
|
|
567
|
+
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3) !important;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.text-claude-orange {
|
|
571
|
+
text-shadow:
|
|
572
|
+
0 0 20px rgba(249, 115, 22, 0.6),
|
|
573
|
+
0 0 40px rgba(249, 115, 22, 0.4),
|
|
574
|
+
0 2px 4px rgba(0, 0, 0, 0.4) !important;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
.text-blue-400 {
|
|
578
|
+
text-shadow:
|
|
579
|
+
0 0 15px rgba(96, 165, 250, 0.5),
|
|
580
|
+
0 2px 4px rgba(0, 0, 0, 0.3) !important;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
.text-green-400 {
|
|
584
|
+
text-shadow:
|
|
585
|
+
0 0 15px rgba(74, 222, 128, 0.5),
|
|
586
|
+
0 2px 4px rgba(0, 0, 0, 0.3) !important;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.text-purple-400 {
|
|
590
|
+
text-shadow:
|
|
591
|
+
0 0 15px rgba(192, 132, 252, 0.5),
|
|
592
|
+
0 2px 4px rgba(0, 0, 0, 0.3) !important;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
.text-cyan-400 {
|
|
596
|
+
text-shadow:
|
|
597
|
+
0 0 15px rgba(34, 211, 238, 0.5),
|
|
598
|
+
0 2px 4px rgba(0, 0, 0, 0.3) !important;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
.text-yellow-400 {
|
|
602
|
+
text-shadow:
|
|
603
|
+
0 0 15px rgba(250, 204, 21, 0.5),
|
|
604
|
+
0 2px 4px rgba(0, 0, 0, 0.3) !important;
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
.text-red-400 {
|
|
608
|
+
text-shadow:
|
|
609
|
+
0 0 15px rgba(248, 113, 113, 0.5),
|
|
610
|
+
0 2px 4px rgba(0, 0, 0, 0.3) !important;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/* ==========================================
|
|
614
|
+
SHIMMER TEXT EFFECT
|
|
615
|
+
========================================== */
|
|
616
|
+
|
|
617
|
+
.shimmer-text {
|
|
618
|
+
background: linear-gradient(
|
|
619
|
+
120deg,
|
|
620
|
+
#f97316 0%,
|
|
621
|
+
#fb923c 20%,
|
|
622
|
+
#fdba74 40%,
|
|
623
|
+
#ffffff 50%,
|
|
624
|
+
#fdba74 60%,
|
|
625
|
+
#fb923c 80%,
|
|
626
|
+
#f97316 100%
|
|
627
|
+
);
|
|
628
|
+
background-size: 300% auto;
|
|
629
|
+
-webkit-background-clip: text;
|
|
630
|
+
-webkit-text-fill-color: transparent;
|
|
631
|
+
background-clip: text;
|
|
632
|
+
animation: shimmerFlow 4s linear infinite;
|
|
633
|
+
filter: drop-shadow(0 0 12px rgba(249, 115, 22, 0.4));
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
@keyframes shimmerFlow {
|
|
637
|
+
0% { background-position: 0% center; }
|
|
638
|
+
100% { background-position: 300% center; }
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/* ==========================================
|
|
642
|
+
LIVE INDICATORS WITH PULSE
|
|
643
|
+
========================================== */
|
|
644
|
+
|
|
645
|
+
.live-indicator {
|
|
646
|
+
position: relative;
|
|
647
|
+
display: inline-block;
|
|
648
|
+
width: 10px;
|
|
649
|
+
height: 10px;
|
|
650
|
+
background: #4ade80;
|
|
651
|
+
border-radius: 50%;
|
|
652
|
+
box-shadow:
|
|
653
|
+
0 0 12px rgba(74, 222, 128, 0.8),
|
|
654
|
+
0 0 24px rgba(74, 222, 128, 0.5);
|
|
655
|
+
animation: livePulse 2s ease-in-out infinite;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
.live-indicator::before {
|
|
659
|
+
content: '';
|
|
660
|
+
position: absolute;
|
|
661
|
+
inset: -4px;
|
|
662
|
+
border-radius: 50%;
|
|
663
|
+
border: 2px solid rgba(74, 222, 128, 0.6);
|
|
664
|
+
animation: liveRipple 2s ease-out infinite;
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
.live-indicator::after {
|
|
668
|
+
content: '';
|
|
669
|
+
position: absolute;
|
|
670
|
+
inset: -8px;
|
|
671
|
+
border-radius: 50%;
|
|
672
|
+
border: 1px solid rgba(74, 222, 128, 0.3);
|
|
673
|
+
animation: liveRipple 2s ease-out infinite 1s;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
@keyframes livePulse {
|
|
677
|
+
0%, 100% {
|
|
678
|
+
transform: scale(1);
|
|
679
|
+
box-shadow:
|
|
680
|
+
0 0 12px rgba(74, 222, 128, 0.8),
|
|
681
|
+
0 0 24px rgba(74, 222, 128, 0.5);
|
|
682
|
+
}
|
|
683
|
+
50% {
|
|
684
|
+
transform: scale(1.15);
|
|
685
|
+
box-shadow:
|
|
686
|
+
0 0 20px rgba(74, 222, 128, 1),
|
|
687
|
+
0 0 40px rgba(74, 222, 128, 0.7);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
@keyframes liveRipple {
|
|
692
|
+
0% {
|
|
693
|
+
transform: scale(0.8);
|
|
694
|
+
opacity: 1;
|
|
695
|
+
}
|
|
696
|
+
100% {
|
|
697
|
+
transform: scale(2);
|
|
698
|
+
opacity: 0;
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
/* ==========================================
|
|
703
|
+
NOISE TEXTURE OVERLAY
|
|
704
|
+
========================================== */
|
|
705
|
+
|
|
706
|
+
.texture-bg {
|
|
707
|
+
position: relative;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
.texture-bg::before {
|
|
711
|
+
content: '';
|
|
712
|
+
position: absolute;
|
|
713
|
+
inset: 0;
|
|
714
|
+
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");
|
|
715
|
+
opacity: 0.5;
|
|
716
|
+
pointer-events: none;
|
|
717
|
+
mix-blend-mode: overlay;
|
|
718
|
+
z-index: 1;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
/* ==========================================
|
|
722
|
+
TAB NAVIGATION ENHANCEMENT
|
|
723
|
+
========================================== */
|
|
724
|
+
|
|
725
|
+
nav[role="tablist"] button {
|
|
726
|
+
position: relative;
|
|
727
|
+
overflow: hidden;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
nav[role="tablist"] button[aria-selected="true"]::after {
|
|
731
|
+
content: '';
|
|
732
|
+
position: absolute;
|
|
733
|
+
bottom: 0;
|
|
734
|
+
left: 0;
|
|
735
|
+
right: 0;
|
|
736
|
+
height: 3px;
|
|
737
|
+
background: linear-gradient(90deg, transparent, #f97316, #fb923c, #f97316, transparent);
|
|
738
|
+
background-size: 200% 100%;
|
|
739
|
+
animation: tabGlow 3s ease-in-out infinite;
|
|
740
|
+
box-shadow: 0 0 12px rgba(249, 115, 22, 0.8);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
@keyframes tabGlow {
|
|
744
|
+
0%, 100% { background-position: 0% center; }
|
|
745
|
+
50% { background-position: 100% center; }
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
/* ==========================================
|
|
749
|
+
STAT NUMBER ENHANCEMENT
|
|
750
|
+
========================================== */
|
|
751
|
+
|
|
752
|
+
.stat-number {
|
|
753
|
+
background: linear-gradient(135deg, #ffffff 0%, #e2e8f0 100%);
|
|
754
|
+
-webkit-background-clip: text;
|
|
755
|
+
-webkit-text-fill-color: transparent;
|
|
756
|
+
background-clip: text;
|
|
757
|
+
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4));
|
|
758
|
+
font-variant-numeric: tabular-nums;
|
|
759
|
+
font-feature-settings: 'tnum' 1, 'zero' 1;
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/* ==========================================
|
|
763
|
+
SELECTION STYLING
|
|
764
|
+
========================================== */
|
|
765
|
+
|
|
766
|
+
::selection {
|
|
767
|
+
background: rgba(249, 115, 22, 0.4);
|
|
768
|
+
color: #ffffff;
|
|
769
|
+
text-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
::-moz-selection {
|
|
773
|
+
background: rgba(249, 115, 22, 0.4);
|
|
774
|
+
color: #ffffff;
|
|
775
|
+
text-shadow: 0 0 8px rgba(0, 0, 0, 0.5);
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/* ==========================================
|
|
779
|
+
FOCUS STATES FOR ACCESSIBILITY
|
|
780
|
+
========================================== */
|
|
781
|
+
|
|
782
|
+
*:focus-visible {
|
|
783
|
+
outline: 3px solid rgba(249, 115, 22, 0.8);
|
|
784
|
+
outline-offset: 3px;
|
|
785
|
+
border-radius: 4px;
|
|
786
|
+
box-shadow: 0 0 20px rgba(249, 115, 22, 0.5);
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
/* ==========================================
|
|
790
|
+
RESPONSIVE ADJUSTMENTS
|
|
791
|
+
========================================== */
|
|
792
|
+
|
|
793
|
+
@media (max-width: 768px) {
|
|
794
|
+
.card, .stat-card {
|
|
795
|
+
border-radius: 16px !important;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
.card:hover, .stat-card:hover {
|
|
799
|
+
transform: translateY(-4px) scale(1.005);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
button, .btn {
|
|
803
|
+
border-radius: 10px;
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
/* ==========================================
|
|
808
|
+
REDUCED MOTION SUPPORT
|
|
809
|
+
========================================== */
|
|
810
|
+
|
|
811
|
+
@media (prefers-reduced-motion: reduce) {
|
|
812
|
+
*::before,
|
|
813
|
+
*::after {
|
|
814
|
+
animation-duration: 0.01ms !important;
|
|
815
|
+
animation-iteration-count: 1 !important;
|
|
816
|
+
transition-duration: 0.01ms !important;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
.badge::before,
|
|
820
|
+
.icon-container::before,
|
|
821
|
+
.card::before,
|
|
822
|
+
.stat-card::before,
|
|
823
|
+
.progress-fill::after,
|
|
824
|
+
.section-divider::before,
|
|
825
|
+
.live-indicator,
|
|
826
|
+
.live-indicator::before,
|
|
827
|
+
.live-indicator::after {
|
|
828
|
+
animation: none !important;
|
|
829
|
+
}
|
|
830
|
+
}
|