nitrostack 1.0.71 → 1.0.72

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.
@@ -1,110 +1,152 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
2
+
1
3
  @tailwind base;
2
4
  @tailwind components;
3
5
  @tailwind utilities;
4
6
 
7
+ @layer utilities {
8
+ .animate-spin-slow {
9
+ animation: spin 3s linear infinite;
10
+ }
11
+ }
12
+
5
13
  @layer base {
6
14
  :root {
7
- /* Nitrocloud Light Theme - Following Branding Guidelines */
8
- --background: 0 0% 100%;
9
- /* #FFFFFF */
10
- --foreground: 222.2 84% 4.9%;
11
- /* #020617 - Near black */
15
+ /* MCP Brand - Light Mode Palette */
16
+ /* Background */
17
+ --background: 246 247 250;
18
+ /* #F5F6FA - canvas */
19
+ --foreground: 234 8 9;
20
+ /* #121217 - slateInk */
12
21
  --card: 0 0% 100%;
22
+ /* #FFFFFF - white */
23
+ --card-foreground: 234 8 9;
24
+ /* #121217 */
25
+
26
+ /* Primary: CoolMint */
27
+ --primary: 173 60% 44%;
28
+ /* #2AB5A5 */
29
+ --primary-foreground: 0 0% 100%;
13
30
  /* #FFFFFF */
14
- --card-foreground: 222.2 84% 4.9%;
15
- /* #020617 */
16
- --popover: 0 0% 100%;
31
+
32
+ /* Secondary/Accent: SignalBlue */
33
+ --secondary: 217 89% 61%;
34
+ /* #3B82F6 */
35
+ --secondary-foreground: 0 0% 100%;
17
36
  /* #FFFFFF */
18
- --popover-foreground: 222.2 84% 4.9%;
19
- /* #020617 */
20
- --primary: 217 91% 60%;
21
- /* #3B9FFF - Nitrocloud Blue */
22
- --primary-foreground: 210 40% 98%;
23
- /* #F8FAFC */
24
- --secondary: 210 40% 96.1%;
25
- /* #F1F5F9 */
26
- --secondary-foreground: 222.2 84% 4.9%;
27
- /* #020617 */
28
- --muted: 210 40% 96.1%;
29
- /* #F1F5F9 */
30
- --muted-foreground: 215.4 16.3% 46.9%;
31
- /* #64748B */
32
- --accent: 217 91% 60%;
33
- /* #3B9FFF - Nitrocloud Blue */
34
- --accent-foreground: 222.2 84% 4.9%;
35
- /* #020617 */
36
- --destructive: 0 84.2% 60.2%;
37
- /* #EF4444 */
38
- --destructive-foreground: 0 0% 100%;
37
+
38
+ /* Muted */
39
+ --muted: 225 12% 95%;
40
+ /* #EEF0F6 - border subtle */
41
+ --muted-foreground: 231 10% 38%;
42
+ /* #5F6475 - text secondary */
43
+
44
+ /* Accent: Steel */
45
+ --accent: 188 25% 40%;
46
+ /* #4D777F */
47
+ --accent-foreground: 0 0% 100%;
39
48
  /* #FFFFFF */
40
- --border: 214.3 31.8% 91.4%;
41
- /* #E2E8F0 */
42
- --input: 214.3 31.8% 91.4%;
43
- /* #E2E8F0 */
44
- --ring: 217 91% 60%;
45
- /* #3B9FFF - Nitrocloud Blue */
46
- --radius: 0.75rem;
47
- /* 12px - Global default */
48
- --success: 142.1 76.2% 36.3%;
49
- /* #22C55E */
49
+
50
+ /* Status Colors */
51
+ --success: 173 60% 44%;
52
+ /* #2AB5A5 - coolMint */
50
53
  --warning: 38 92% 50%;
51
54
  /* #F59E0B */
52
- --info: 217 91% 60%;
53
- /* #3B9FFF */
55
+ --error: 0 84% 60%;
56
+ /* #EF4444 */
57
+ --info: 184 100% 34%;
58
+ /* #0A9CA9 */
59
+
60
+ /* Destructive (maps to error) */
61
+ --destructive: 0 84% 60%;
62
+ /* #EF4444 */
63
+ --destructive-foreground: 0 0% 100%;
64
+ /* #FFFFFF */
65
+
66
+ /* Borders */
67
+ --border: 228 29% 91%;
68
+ /* #E6E8F0 - border soft */
69
+ --input: 228 29% 91%;
70
+ /* #E6E8F0 */
71
+ --ring: 173 60% 44%;
72
+ /* #2AB5A5 - coolMint focus */
54
73
 
55
- /* Nitrocloud Gradient */
56
- --nitrocloud-gradient-start: 217 91% 60%;
57
- /* Blue */
58
- --nitrocloud-gradient-end: 221 83% 53%;
59
- /* Deep Blue-Purple */
74
+ /* Radius: 4px default */
75
+ --radius: 0.25rem;
76
+ /* 4px */
77
+
78
+ /* Popover */
79
+ --popover: 0 0% 100%;
80
+ /* #FFFFFF */
81
+ --popover-foreground: 234 8 9;
82
+ /* #121217 */
60
83
  }
61
84
 
62
85
  .dark {
63
- /* Nitrocloud Dark Theme - Following Branding Guidelines */
64
- --background: 222.2 84% 4.9%;
65
- /* #020617 - Deep dark blue */
66
- --foreground: 210 40% 98%;
67
- /* #F8FAFC */
68
- --card: 217.2 32.6% 17.5%;
69
- /* #1E293B */
70
- --card-foreground: 210 40% 98%;
71
- /* #F8FAFC */
72
- --popover: 217.2 32.6% 17.5%;
73
- /* #1E293B */
74
- --popover-foreground: 210 40% 98%;
75
- /* #F8FAFC */
76
- --primary: 217 91% 60%;
77
- /* #3B9FFF - Brighter in dark */
78
- --primary-foreground: 222.2 47.4% 11.2%;
79
- /* #0F172A */
80
- --secondary: 217.2 32.6% 17.5%;
81
- /* #1E293B */
82
- --secondary-foreground: 210 40% 98%;
83
- /* #F8FAFC */
84
- --muted: 217.2 32.6% 17.5%;
85
- /* #1E293B */
86
- --muted-foreground: 215 20.2% 65.1%;
87
- /* #94A3B8 */
88
- --accent: 217 91% 60%;
89
- /* #3B9FFF */
90
- --accent-foreground: 210 40% 98%;
91
- /* #F8FAFC */
92
- --destructive: 0 62.8% 30.6%;
93
- /* #991B1B */
94
- --destructive-foreground: 210 40% 98%;
95
- /* #F8FAFC */
96
- --border: 217.2 32.6% 17.5%;
97
- /* #1E293B */
98
- --input: 217.2 32.6% 17.5%;
99
- /* #1E293B */
100
- --ring: 217 91% 60%;
101
- /* #3B9FFF */
102
- --success: 142.1 70.6% 45.3%;
103
- /* #10B981 */
86
+ /* MCP Brand - Dark Mode Palette */
87
+ /* Background */
88
+ --background: 228 30% 6%;
89
+ /* #0E0F14 - base */
90
+ --foreground: 240 6% 92%;
91
+ /* #E9E9F0 - text primary */
92
+ --card: 240 7% 11%;
93
+ /* #1B1B20 - surface */
94
+ --card-foreground: 240 6% 92%;
95
+ /* #E9E9F0 */
96
+
97
+ /* Primary: CoolMint (same as light) */
98
+ --primary: 173 60% 44%;
99
+ /* #2AB5A5 */
100
+ --primary-foreground: 0 0% 100%;
101
+ /* #FFFFFF */
102
+
103
+ /* Secondary/Accent: SignalBlue (same as light) */
104
+ --secondary: 217 89% 61%;
105
+ /* #3B82F6 */
106
+ --secondary-foreground: 0 0% 100%;
107
+ /* #FFFFFF */
108
+
109
+ /* Muted */
110
+ --muted: 0 12% 17%;
111
+ /* #312626 - border panel */
112
+ --muted-foreground: 243 17% 75%;
113
+ /* #B4B4CC - text muted */
114
+
115
+ /* Accent: Steel */
116
+ --accent: 188 25% 40%;
117
+ /* #4D777F */
118
+ --accent-foreground: 0 0% 100%;
119
+ /* #FFFFFF */
120
+
121
+ /* Status Colors (same as light) */
122
+ --success: 173 60% 44%;
123
+ /* #2AB5A5 */
104
124
  --warning: 38 92% 50%;
105
125
  /* #F59E0B */
106
- --info: 217 91% 60%;
107
- /* #3B9FFF */
126
+ --error: 0 84% 60%;
127
+ /* #EF4444 */
128
+ --info: 184 100% 34%;
129
+ /* #0A9CA9 */
130
+
131
+ /* Destructive */
132
+ --destructive: 0 84% 60%;
133
+ /* #EF4444 */
134
+ --destructive-foreground: 0 0% 100%;
135
+ /* #FFFFFF */
136
+
137
+ /* Borders */
138
+ --border: 0 12% 17%;
139
+ /* #312626 */
140
+ --input: 0 12% 17%;
141
+ /* #312626 */
142
+ --ring: 173 60% 44%;
143
+ /* #2AB5A5 */
144
+
145
+ /* Popover */
146
+ --popover: 240 7% 11%;
147
+ /* #1B1B20 */
148
+ --popover-foreground: 240 6% 92%;
149
+ /* #E9E9F0 */
108
150
  }
109
151
 
110
152
  * {
@@ -113,41 +155,63 @@
113
155
 
114
156
  body {
115
157
  @apply bg-background text-foreground;
116
- font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
117
- font-feature-settings: 'rlig' 1, 'calt' 1, 'ss01' 1, 'ss02' 1;
158
+ font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
159
+ font-size: 16px;
160
+ line-height: 150%;
161
+ font-weight: 400;
118
162
  -webkit-font-smoothing: antialiased;
119
163
  -moz-osx-font-smoothing: grayscale;
120
164
  }
121
165
 
122
- code,
123
- pre,
124
- .font-mono {
125
- font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
126
- }
127
-
166
+ /* Typography Scale - MCP Branding */
128
167
  h1,
129
168
  h2,
130
- h3,
169
+ h3 {
170
+ font-family: 'Space Grotesk', sans-serif;
171
+ }
172
+
131
173
  h4,
132
174
  h5,
133
175
  h6 {
134
- @apply font-semibold tracking-tight;
176
+ font-family: 'IBM Plex Sans', sans-serif;
135
177
  }
136
178
 
137
179
  h1 {
138
- @apply text-4xl font-bold;
180
+ font-size: 48px;
181
+ line-height: 125%;
182
+ font-weight: 700;
183
+ /* Bold */
139
184
  }
140
185
 
141
186
  h2 {
142
- @apply text-3xl font-bold;
187
+ font-size: 36px;
188
+ line-height: 130%;
189
+ font-weight: 600;
190
+ /* SemiBold */
143
191
  }
144
192
 
145
193
  h3 {
146
- @apply text-2xl font-semibold;
194
+ font-size: 28px;
195
+ line-height: 135%;
196
+ font-weight: 500;
197
+ /* Medium */
198
+ }
199
+
200
+ h4 {
201
+ font-size: 16px;
202
+ line-height: 150%;
203
+ font-weight: 500;
204
+ /* Medium */
205
+ }
206
+
207
+ code,
208
+ pre,
209
+ .font-mono {
210
+ font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
147
211
  }
148
212
  }
149
213
 
150
- /* Professional Scrollbar */
214
+ /* MCP Scrollbar */
151
215
  ::-webkit-scrollbar {
152
216
  width: 10px;
153
217
  height: 10px;
@@ -177,15 +241,25 @@
177
241
  transition-duration: 150ms;
178
242
  }
179
243
 
180
- /* Professional Card Styles */
244
+ /* MCP Component System */
181
245
  @layer components {
246
+
247
+ /* Cards - 4px radius per MCP */
248
+ .card {
249
+ @apply rounded border bg-card text-card-foreground;
250
+ }
251
+
252
+ /* Light mode shadow */
182
253
  .card {
183
- @apply rounded-xl border bg-card text-card-foreground;
184
- box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
254
+ box-shadow: 0px 1px 3px rgba(240, 100, 49, 0.08);
255
+ }
256
+
257
+ .dark .card {
258
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.07);
185
259
  }
186
260
 
187
261
  .card-hover {
188
- @apply card hover:shadow-lg hover:border-primary/50;
262
+ @apply card hover:border-primary/50;
189
263
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
190
264
  }
191
265
 
@@ -193,44 +267,73 @@
193
267
  transform: translateY(-2px);
194
268
  }
195
269
 
270
+ /* Light mode medium shadow on hover */
271
+ .card-hover:hover {
272
+ box-shadow: 0px 4px 12px rgba(240, 100, 49, 0.11);
273
+ }
274
+
275
+ .dark .card-hover:hover {
276
+ box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.10);
277
+ }
278
+
196
279
  .card-interactive {
197
280
  @apply card-hover cursor-pointer;
198
281
  }
199
282
 
200
- /* Professional Button System */
283
+ /* MCP Button System */
201
284
  .btn {
202
- @apply inline-flex items-center justify-center gap-2 rounded-lg text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50;
285
+ @apply inline-flex items-center justify-center gap-2 rounded text-sm font-medium;
286
+ @apply ring-offset-background transition-all;
287
+ @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2;
288
+ @apply disabled:pointer-events-none disabled:opacity-50;
203
289
  padding: 0.625rem 1.25rem;
290
+ border-radius: 4px;
291
+ /* MCP 4px */
204
292
  }
205
293
 
206
294
  .btn-primary {
207
- background: hsl(var(--primary));
208
- color: hsl(var(--primary-foreground));
209
- @apply shadow-sm hover:opacity-90;
295
+ @apply bg-primary text-primary-foreground;
210
296
  }
211
297
 
212
- .btn-secondary {
213
- background: hsl(var(--secondary));
214
- color: hsl(var(--secondary-foreground));
215
- @apply border hover:opacity-80;
298
+ .btn-primary:hover:not(:disabled) {
299
+ @apply opacity-90;
216
300
  }
217
301
 
218
- .btn-ghost {
219
- background: transparent;
220
- @apply hover:bg-accent;
302
+ .btn-primary {
303
+ box-shadow: 0px 1px 3px rgba(240, 100, 49, 0.08);
304
+ }
305
+
306
+ .dark .btn-primary {
307
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.07);
308
+ }
309
+
310
+ /* Focus ring: 2px as per MCP */
311
+ .btn-primary:focus-visible {
312
+ @apply ring-2 ring-primary ring-offset-2;
313
+ }
314
+
315
+ .btn-secondary {
316
+ @apply bg-secondary text-secondary-foreground;
221
317
  }
222
318
 
223
- .btn-ghost:hover {
224
- color: hsl(var(--accent-foreground));
319
+ .btn-secondary:hover:not(:disabled) {
320
+ @apply opacity-90;
225
321
  }
226
322
 
227
323
  .btn-outline {
228
- background: hsl(var(--background));
229
- @apply border border-input hover:bg-accent;
324
+ @apply bg-background border border-input;
230
325
  }
231
326
 
232
- .btn-outline:hover {
233
- color: hsl(var(--accent-foreground));
327
+ .btn-outline:hover:not(:disabled) {
328
+ @apply bg-accent text-accent-foreground;
329
+ }
330
+
331
+ .btn-ghost {
332
+ @apply bg-transparent;
333
+ }
334
+
335
+ .btn-ghost:hover:not(:disabled) {
336
+ @apply bg-accent text-accent-foreground;
234
337
  }
235
338
 
236
339
  .btn-sm {
@@ -243,9 +346,13 @@
243
346
  padding: 0.75rem 1.5rem;
244
347
  }
245
348
 
246
- /* Professional Badge System */
349
+ /* MCP Badge System - 999px pill radius */
247
350
  .badge {
248
- @apply inline-flex items-center rounded-md px-2.5 py-0.5 text-xs font-semibold transition-colors;
351
+ @apply inline-flex items-center text-xs font-semibold transition-colors;
352
+ border-radius: 999px;
353
+ /* MCP pill */
354
+ padding: 6px 12px;
355
+ /* MCP spec */
249
356
  }
250
357
 
251
358
  .badge-primary {
@@ -253,44 +360,53 @@
253
360
  }
254
361
 
255
362
  .badge-secondary {
256
- background: hsl(var(--secondary));
257
- color: hsl(var(--secondary-foreground));
363
+ @apply bg-secondary/10 text-secondary ring-1 ring-inset ring-secondary/20;
258
364
  }
259
365
 
260
366
  .badge-success {
261
- @apply bg-emerald-50 text-emerald-700 ring-1 ring-inset ring-emerald-600/20;
262
- }
263
-
264
- .dark .badge-success {
265
- @apply bg-emerald-500/10 text-emerald-400 ring-emerald-500/20;
367
+ background-color: hsl(var(--success) / 0.1);
368
+ color: hsl(var(--success));
369
+ @apply ring-1 ring-inset;
370
+ ring-color: hsl(var(--success) / 0.2);
266
371
  }
267
372
 
268
373
  .badge-warning {
269
- @apply bg-amber-50 text-amber-700 ring-1 ring-inset ring-amber-600/20;
270
- }
271
-
272
- .dark .badge-warning {
273
- @apply bg-amber-500/10 text-amber-400 ring-amber-500/20;
374
+ background-color: hsl(var(--warning) / 0.1);
375
+ color: hsl(var(--warning));
376
+ @apply ring-1 ring-inset;
377
+ ring-color: hsl(var(--warning) / 0.2);
274
378
  }
275
379
 
276
380
  .badge-error {
277
- @apply bg-rose-50 text-rose-700 ring-1 ring-inset ring-rose-600/20;
381
+ background-color: hsl(var(--error) / 0.1);
382
+ color: hsl(var(--error));
383
+ @apply ring-1 ring-inset;
384
+ ring-color: hsl(var(--error) / 0.2);
278
385
  }
279
386
 
280
- .dark .badge-error {
281
- @apply bg-rose-500/10 text-rose-400 ring-rose-500/20;
387
+ .badge-info {
388
+ background-color: hsl(var(--info) / 0.1);
389
+ color: hsl(var(--info));
390
+ @apply ring-1 ring-inset;
391
+ ring-color: hsl(var(--info) / 0.2);
282
392
  }
283
393
 
284
- /* Professional Input System */
394
+ /* MCP Input System */
285
395
  .input {
286
- @apply flex h-10 w-full rounded-lg border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50;
396
+ @apply flex h-10 w-full border border-input bg-background px-3 py-2 text-sm;
397
+ @apply ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium;
398
+ @apply placeholder:text-muted-foreground;
399
+ @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-0;
400
+ @apply disabled:cursor-not-allowed disabled:opacity-50;
401
+ border-radius: 4px;
402
+ /* MCP 4px */
287
403
  }
288
404
 
289
405
  .textarea {
290
406
  @apply input min-h-[80px] resize-y;
291
407
  }
292
408
 
293
- /* Professional Status Indicators */
409
+ /* Status Indicators */
294
410
  .status-dot {
295
411
  @apply relative flex h-3 w-3 rounded-full;
296
412
  }
@@ -301,31 +417,31 @@
301
417
  }
302
418
 
303
419
  .status-connected {
304
- @apply bg-emerald-500;
420
+ background-color: hsl(var(--success));
305
421
  }
306
422
 
307
423
  .status-connected::before {
308
- @apply bg-emerald-500;
424
+ background-color: hsl(var(--success));
309
425
  }
310
426
 
311
427
  .status-connecting {
312
- @apply bg-amber-500;
428
+ background-color: hsl(var(--warning));
313
429
  }
314
430
 
315
431
  .status-connecting::before {
316
- @apply bg-amber-500;
432
+ background-color: hsl(var(--warning));
317
433
  }
318
434
 
319
435
  .status-disconnected {
320
- @apply bg-rose-500;
436
+ background-color: hsl(var(--error));
321
437
  }
322
438
 
323
439
  .status-disconnected::before {
324
- @apply bg-rose-500;
440
+ background-color: hsl(var(--error));
325
441
  animation: none;
326
442
  }
327
443
 
328
- /* Professional Loading States */
444
+ /* Loading States */
329
445
  .skeleton {
330
446
  @apply animate-pulse rounded-md bg-muted;
331
447
  }
@@ -350,22 +466,32 @@
350
466
  }
351
467
  }
352
468
 
353
- /* Professional Animations */
469
+ /* MCP Animations */
354
470
  @keyframes fadeIn {
355
471
  from {
356
472
  opacity: 0;
357
- transform: translateY(8px);
358
473
  }
359
474
 
360
475
  to {
361
476
  opacity: 1;
362
- transform: translateY(0);
363
477
  }
364
478
  }
365
479
 
366
- @keyframes slideIn {
480
+ @keyframes slideInRight {
481
+ from {
482
+ transform: translateX(100%);
483
+ opacity: 0;
484
+ }
485
+
486
+ to {
487
+ transform: translateX(0);
488
+ opacity: 1;
489
+ }
490
+ }
491
+
492
+ @keyframes slideInLeft {
367
493
  from {
368
- transform: translateX(-16px);
494
+ transform: translateX(-100%);
369
495
  opacity: 0;
370
496
  }
371
497
 
@@ -375,6 +501,18 @@
375
501
  }
376
502
  }
377
503
 
504
+ @keyframes slideIn {
505
+ from {
506
+ transform: translateY(20px);
507
+ opacity: 0;
508
+ }
509
+
510
+ to {
511
+ transform: translateY(0);
512
+ opacity: 1;
513
+ }
514
+ }
515
+
378
516
  @keyframes scaleIn {
379
517
  from {
380
518
  opacity: 0;
@@ -399,45 +537,32 @@
399
537
  animation: scaleIn 0.2s cubic-bezier(0.4, 0, 0.2, 1);
400
538
  }
401
539
 
402
- /* Nitrocloud Brand Gradient */
403
- .nitrocloud-gradient {
404
- background: linear-gradient(135deg,
405
- hsl(var(--nitrocloud-gradient-start)),
406
- hsl(var(--nitrocloud-gradient-end)));
407
- }
408
-
409
- .nitrocloud-text-gradient {
410
- background: linear-gradient(135deg,
411
- hsl(var(--nitrocloud-gradient-start)),
412
- hsl(var(--nitrocloud-gradient-end)));
413
- -webkit-background-clip: text;
414
- -webkit-text-fill-color: transparent;
415
- background-clip: text;
540
+ /* MCP Gradients */
541
+ .mcp-gradient-surface {
542
+ background: linear-gradient(180deg, #FFFFFF 0%, #F5F6FA 100%);
416
543
  }
417
544
 
418
- /* Nitrocloud Blue Glow Effects */
419
- .nitrocloud-glow {
420
- box-shadow: 0 0 24px rgba(59, 159, 255, 0.15),
421
- 0 0 12px rgba(59, 159, 255, 0.1);
545
+ .dark .mcp-gradient-surface {
546
+ background: linear-gradient(180deg, #1B1B20 0%, #0E0F14 100%);
422
547
  }
423
548
 
424
- .dark .nitrocloud-glow {
425
- box-shadow: 0 0 32px rgba(59, 159, 255, 0.25),
426
- 0 0 16px rgba(59, 159, 255, 0.15);
549
+ .mcp-gradient-action {
550
+ background: linear-gradient(135deg, #3B82F6 0%, #2AB5A5 100%);
427
551
  }
428
552
 
429
- /* Glassmorphism Effect */
430
- .glass {
431
- @apply backdrop-blur-xl bg-background/80 border;
432
- box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
553
+ .mcp-text-gradient {
554
+ background: linear-gradient(135deg, #3B82F6 0%, #2AB5A5 100%);
555
+ -webkit-background-clip: text;
556
+ -webkit-text-fill-color: transparent;
557
+ background-clip: text;
433
558
  }
434
559
 
435
- .dark .glass {
436
- @apply bg-card/60;
437
- box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
560
+ /* Focus Styles */
561
+ .focus-ring {
562
+ @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
438
563
  }
439
564
 
440
- /* Professional Hover Effects */
565
+ /* Hover Effects */
441
566
  .hover-lift {
442
567
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1),
443
568
  box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
@@ -445,13 +570,15 @@
445
570
 
446
571
  .hover-lift:hover {
447
572
  transform: translateY(-4px);
448
- box-shadow: 0 12px 24px -4px rgba(0, 0, 0, 0.12),
449
- 0 8px 16px -4px rgba(0, 0, 0, 0.08);
450
573
  }
451
574
 
452
- /* Focus Visible Styles */
453
- .focus-ring {
454
- @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background;
575
+ /* Light mode */
576
+ .hover-lift:hover {
577
+ box-shadow: 0px 8px 28px rgba(240, 100, 49, 0.14);
578
+ }
579
+
580
+ .dark .hover-lift:hover {
581
+ box-shadow: 0px 8px 28px rgba(0, 0, 0, 0.15);
455
582
  }
456
583
 
457
584
  /* Prose/Content Styles */
@@ -461,8 +588,22 @@
461
588
 
462
589
  .prose :where(code):not(:where([class~="not-prose"] *)) {
463
590
  @apply relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm;
591
+
592
+ /* Removed nested definition */
464
593
  }
465
594
 
595
+ .animate-slide-in-right {
596
+ opacity: 0;
597
+ /* Ensure it starts invisible for the delay */
598
+ animation: slideInRight 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
599
+ animation-delay: 0.1s;
600
+ }
601
+
602
+ .animate-slide-in-left {
603
+ animation: slideInLeft 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
604
+ }
605
+
606
+
466
607
  .prose :where(code):not(:where([class~="not-prose"] *))::before,
467
608
  .prose :where(code):not(:where([class~="not-prose"] *))::after {
468
609
  content: '';
@@ -483,4 +624,33 @@
483
624
 
484
625
  .empty-state-description {
485
626
  @apply text-sm text-muted-foreground max-w-md;
627
+ }
628
+
629
+ /* Run App Slide-Up Animation */
630
+ @keyframes slideUpOverlay {
631
+ from {
632
+ transform: translateY(100%);
633
+ }
634
+
635
+ to {
636
+ transform: translateY(0%);
637
+ }
638
+ }
639
+
640
+ @keyframes slideDownOverlay {
641
+ from {
642
+ transform: translateY(0%);
643
+ }
644
+
645
+ to {
646
+ transform: translateY(100%);
647
+ }
648
+ }
649
+
650
+ .animate-slide-up-overlay {
651
+ animation: slideUpOverlay 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
652
+ }
653
+
654
+ .animate-slide-down-overlay {
655
+ animation: slideDownOverlay 0.3s cubic-bezier(0.32, 0, 0.67, 0) forwards;
486
656
  }