@xapps-platform/marketplace-ui 0.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.
Files changed (61) hide show
  1. package/README.md +53 -0
  2. package/dist/MarketplaceApp.d.ts +2 -0
  3. package/dist/MarketplaceApp.d.ts.map +1 -0
  4. package/dist/MarketplaceContext.d.ts +15 -0
  5. package/dist/MarketplaceContext.d.ts.map +1 -0
  6. package/dist/components/ConfirmActionModal.d.ts +10 -0
  7. package/dist/components/ConfirmActionModal.d.ts.map +1 -0
  8. package/dist/components/MarketplaceActivityTabs.d.ts +11 -0
  9. package/dist/components/MarketplaceActivityTabs.d.ts.map +1 -0
  10. package/dist/components/MarketplacePrimaryNav.d.ts +8 -0
  11. package/dist/components/MarketplacePrimaryNav.d.ts.map +1 -0
  12. package/dist/components/SchemaOutputView.d.ts +7 -0
  13. package/dist/components/SchemaOutputView.d.ts.map +1 -0
  14. package/dist/index.css +3365 -0
  15. package/dist/index.css.map +7 -0
  16. package/dist/index.d.ts +14 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +5002 -0
  19. package/dist/index.js.map +7 -0
  20. package/dist/marketplace.css +3972 -0
  21. package/dist/pages/CatalogPage.d.ts +3 -0
  22. package/dist/pages/CatalogPage.d.ts.map +1 -0
  23. package/dist/pages/InvoicesPage.d.ts +3 -0
  24. package/dist/pages/InvoicesPage.d.ts.map +1 -0
  25. package/dist/pages/NotificationsPage.d.ts +3 -0
  26. package/dist/pages/NotificationsPage.d.ts.map +1 -0
  27. package/dist/pages/PaymentsPage.d.ts +3 -0
  28. package/dist/pages/PaymentsPage.d.ts.map +1 -0
  29. package/dist/pages/PublisherDetailPage.d.ts +3 -0
  30. package/dist/pages/PublisherDetailPage.d.ts.map +1 -0
  31. package/dist/pages/PublishersPage.d.ts +3 -0
  32. package/dist/pages/PublishersPage.d.ts.map +1 -0
  33. package/dist/pages/RequestDetailPage.breadcrumbs.test.d.ts +2 -0
  34. package/dist/pages/RequestDetailPage.breadcrumbs.test.d.ts.map +1 -0
  35. package/dist/pages/RequestDetailPage.d.ts +3 -0
  36. package/dist/pages/RequestDetailPage.d.ts.map +1 -0
  37. package/dist/pages/RequestsPage.d.ts +3 -0
  38. package/dist/pages/RequestsPage.d.ts.map +1 -0
  39. package/dist/pages/WidgetView.d.ts +3 -0
  40. package/dist/pages/WidgetView.d.ts.map +1 -0
  41. package/dist/pages/XappDetailPage.d.ts +3 -0
  42. package/dist/pages/XappDetailPage.d.ts.map +1 -0
  43. package/dist/pages/XappDetailPage.requestsLink.test.d.ts +2 -0
  44. package/dist/pages/XappDetailPage.requestsLink.test.d.ts.map +1 -0
  45. package/dist/types.d.ts +294 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/utils/embedSearch.d.ts +3 -0
  48. package/dist/utils/embedSearch.d.ts.map +1 -0
  49. package/dist/utils/operationalSurfaces.d.ts +36 -0
  50. package/dist/utils/operationalSurfaces.d.ts.map +1 -0
  51. package/dist/utils/operationalSurfaces.requestsHref.test.d.ts +2 -0
  52. package/dist/utils/operationalSurfaces.requestsHref.test.d.ts.map +1 -0
  53. package/dist/utils/operationalSurfaces.test.d.ts +2 -0
  54. package/dist/utils/operationalSurfaces.test.d.ts.map +1 -0
  55. package/dist/utils/paymentLock.d.ts +17 -0
  56. package/dist/utils/paymentLock.d.ts.map +1 -0
  57. package/dist/utils/readers.d.ts +8 -0
  58. package/dist/utils/readers.d.ts.map +1 -0
  59. package/dist/utils/readers.test.d.ts +2 -0
  60. package/dist/utils/readers.test.d.ts.map +1 -0
  61. package/package.json +38 -0
@@ -0,0 +1,3972 @@
1
+ :root {
2
+ --mx-primary: #126bf1;
3
+ --mx-primary-hover: #0f5be0;
4
+ --mx-bg: #f8fafc;
5
+ --mx-card-bg: #ffffff;
6
+ --mx-border: #e2e8f0;
7
+ --mx-text-main: #0f172a;
8
+ --mx-text-muted: #64748b;
9
+ --mx-danger: #b91c1c;
10
+ --mx-danger-hover: #991b1b;
11
+ --mx-danger-soft: #fff5f5;
12
+ --mx-danger-border: rgba(239, 68, 68, 0.24);
13
+ --mx-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
14
+ --mx-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
15
+ --mx-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
16
+ --mx-radius-lg: 1rem;
17
+ --mx-radius-md: 0.75rem;
18
+ --mx-radius-sm: 0.5rem;
19
+ }
20
+
21
+ .mx-catalog-container {
22
+ max-width: 1380px;
23
+ margin: 0 auto;
24
+ padding: 2rem 1.75rem;
25
+ container-type: inline-size;
26
+ container-name: marketplace;
27
+ }
28
+
29
+ .mx-header {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: space-between;
33
+ gap: 1rem;
34
+ margin-bottom: 1.5rem;
35
+ flex-wrap: wrap;
36
+ }
37
+
38
+ .mx-title {
39
+ font-size: 1.75rem;
40
+ font-weight: 800;
41
+ letter-spacing: -0.025em;
42
+ line-height: 1.15;
43
+ color: var(--mx-text-main);
44
+ margin: 0;
45
+ }
46
+
47
+ .mx-search-filters {
48
+ background: var(--mx-card-bg);
49
+ border: 1px solid var(--mx-border);
50
+ border-radius: var(--mx-radius-md);
51
+ padding: 0.875rem 1rem;
52
+ margin-bottom: 1.5rem;
53
+ box-shadow: var(--mx-shadow-sm);
54
+ }
55
+
56
+ .mx-filters-inner {
57
+ display: flex;
58
+ gap: 1rem;
59
+ align-items: flex-end;
60
+ flex-wrap: wrap;
61
+ }
62
+
63
+ .mx-input-group {
64
+ display: flex;
65
+ flex-direction: column;
66
+ gap: 0.3rem;
67
+ }
68
+
69
+ .mx-label {
70
+ font-size: 0.75rem;
71
+ font-weight: 600;
72
+ color: var(--mx-text-muted);
73
+ }
74
+
75
+ .mx-input {
76
+ padding: 0.55rem 0.85rem;
77
+ border-radius: var(--mx-radius-sm);
78
+ border: 1px solid var(--mx-border);
79
+ font-size: 0.875rem;
80
+ transition: all 0.2s;
81
+ width: 100%;
82
+ }
83
+
84
+ .mx-input:focus {
85
+ outline: none;
86
+ border-color: var(--mx-primary);
87
+ box-shadow: 0 0 0 3px rgba(18, 107, 241, 0.1);
88
+ }
89
+
90
+ .mx-grid {
91
+ display: grid;
92
+ grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
93
+ gap: 1.5rem;
94
+ }
95
+
96
+ .mx-card {
97
+ background: var(--mx-card-bg);
98
+ border-radius: var(--mx-radius-lg);
99
+ border: 1px solid var(--mx-border);
100
+ overflow: hidden;
101
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
102
+ display: flex;
103
+ flex-direction: column;
104
+ height: 100%;
105
+ }
106
+
107
+ .mx-card:hover {
108
+ transform: translateY(-4px);
109
+ box-shadow: var(--mx-shadow-lg);
110
+ border-color: rgba(18, 107, 241, 0.2);
111
+ }
112
+
113
+ .mx-card-image-wrap {
114
+ height: 180px;
115
+ background: #f1f5f9;
116
+ position: relative;
117
+ overflow: hidden;
118
+ }
119
+
120
+ .mx-card-actions {
121
+ position: absolute;
122
+ inset: 0;
123
+ background: rgba(15, 23, 42, 0.4);
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ opacity: 0;
128
+ transition: opacity 0.2s;
129
+ backdrop-filter: blur(2px);
130
+ }
131
+
132
+ .mx-card:hover .mx-card-actions {
133
+ opacity: 1;
134
+ }
135
+
136
+ .mx-card-image {
137
+ width: 100%;
138
+ height: 100%;
139
+ object-fit: cover;
140
+ transition: transform 0.5s ease;
141
+ }
142
+
143
+ .mx-card:hover .mx-card-image {
144
+ transform: scale(1.05);
145
+ }
146
+
147
+ .mx-card-image-placeholder {
148
+ width: 100%;
149
+ height: 100%;
150
+ display: grid;
151
+ place-items: center;
152
+ font-size: 3rem;
153
+ font-weight: 800;
154
+ color: rgba(18, 107, 241, 0.25);
155
+ background: linear-gradient(135deg, #f1f5f9 0%, #e8eef6 50%, #f1f5f9 100%);
156
+ user-select: none;
157
+ }
158
+
159
+ .mx-card-content {
160
+ padding: 1.25rem;
161
+ display: flex;
162
+ flex-direction: column;
163
+ gap: 0.8rem;
164
+ flex: 1;
165
+ }
166
+
167
+ .mx-card-head {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: 0.45rem;
171
+ }
172
+
173
+ .mx-card-meta {
174
+ display: flex;
175
+ align-items: center;
176
+ justify-content: space-between;
177
+ gap: 0.75rem;
178
+ flex-wrap: wrap;
179
+ }
180
+
181
+ .mx-card-title {
182
+ font-size: 1.08rem;
183
+ font-weight: 700;
184
+ color: var(--mx-text-main);
185
+ margin: 0;
186
+ line-height: 1.35;
187
+ }
188
+
189
+ .mx-card-title-link {
190
+ color: inherit;
191
+ text-decoration: none;
192
+ }
193
+
194
+ .mx-card-title-link:hover {
195
+ color: var(--mx-primary);
196
+ }
197
+
198
+ .mx-card-publisher {
199
+ font-size: 0.8rem;
200
+ color: var(--mx-text-muted);
201
+ line-height: 1.35;
202
+ }
203
+
204
+ .mx-inline-link {
205
+ color: var(--mx-primary);
206
+ text-decoration: none;
207
+ }
208
+
209
+ .mx-inline-link:hover {
210
+ text-decoration: underline;
211
+ }
212
+
213
+ .mx-card-version {
214
+ font-size: 0.75rem;
215
+ color: var(--mx-text-muted);
216
+ background: #f1f5f9;
217
+ padding: 0.05rem 0.35rem;
218
+ border-radius: 4px;
219
+ border: 1px solid var(--mx-border);
220
+ }
221
+
222
+ .mx-card-desc {
223
+ font-size: 0.9rem;
224
+ color: var(--mx-text-muted);
225
+ line-height: 1.55;
226
+ display: -webkit-box;
227
+ -webkit-line-clamp: 2;
228
+ -webkit-box-orient: vertical;
229
+ overflow: hidden;
230
+ }
231
+
232
+ .mx-card-footer {
233
+ padding: 0.9rem 1.25rem;
234
+ border-top: 1px solid var(--mx-border);
235
+ background: #fafafa;
236
+ display: flex;
237
+ gap: 0.75rem;
238
+ align-items: center;
239
+ justify-content: space-between;
240
+ margin-top: auto;
241
+ }
242
+
243
+ .mx-card-footer-link {
244
+ padding-inline: 0;
245
+ }
246
+
247
+ .mx-card-footer-link:hover {
248
+ background: transparent;
249
+ color: var(--mx-primary);
250
+ }
251
+
252
+ .mx-card-tags {
253
+ margin-top: auto;
254
+ display: flex;
255
+ flex-wrap: wrap;
256
+ gap: 0.35rem;
257
+ }
258
+
259
+ .mx-tag-compact {
260
+ margin: 0;
261
+ font-size: 0.65rem;
262
+ line-height: 1.1;
263
+ }
264
+
265
+ .mx-btn-danger-text {
266
+ color: var(--mx-danger);
267
+ }
268
+
269
+ .mx-muted {
270
+ color: var(--mx-text-muted);
271
+ font-size: 0.92rem;
272
+ }
273
+
274
+ .mx-stats-grid {
275
+ display: flex;
276
+ gap: 0.5rem;
277
+ align-items: center;
278
+ }
279
+
280
+ .mx-stat-card {
281
+ display: flex;
282
+ align-items: center;
283
+ gap: 0.4rem;
284
+ border: 1px solid var(--mx-border);
285
+ border-radius: var(--mx-radius-sm);
286
+ padding: 0.4rem 0.7rem;
287
+ background: var(--mx-card-bg);
288
+ white-space: nowrap;
289
+ }
290
+
291
+ .mx-stat-label {
292
+ color: var(--mx-text-muted);
293
+ font-size: 0.75rem;
294
+ }
295
+
296
+ .mx-stat-value {
297
+ font-size: 0.875rem;
298
+ font-weight: 700;
299
+ }
300
+
301
+ .mx-btn {
302
+ padding: 0.625rem 1.25rem;
303
+ border-radius: var(--mx-radius-md);
304
+ font-size: 0.875rem;
305
+ font-weight: 600;
306
+ cursor: pointer;
307
+ transition: all 0.2s;
308
+ border: none;
309
+ display: inline-flex;
310
+ align-items: center;
311
+ justify-content: center;
312
+ gap: 0.5rem;
313
+ text-decoration: none;
314
+ }
315
+
316
+ .mx-btn-primary {
317
+ background: var(--mx-primary);
318
+ color: white;
319
+ }
320
+
321
+ .mx-btn-primary:hover {
322
+ background: var(--mx-primary-hover);
323
+ box-shadow: 0 4px 12px color-mix(in srgb, var(--mx-primary) 28%, transparent);
324
+ }
325
+
326
+ .mx-btn-outline {
327
+ background: var(--mx-card-bg);
328
+ color: var(--mx-text-main);
329
+ border: 1px solid var(--mx-border);
330
+ }
331
+
332
+ .mx-btn-outline:hover {
333
+ background: color-mix(in srgb, var(--mx-bg) 82%, var(--mx-card-bg));
334
+ border-color: color-mix(in srgb, var(--mx-primary) 14%, var(--mx-border));
335
+ }
336
+
337
+ .mx-btn-ghost {
338
+ background: transparent;
339
+ color: var(--mx-text-muted);
340
+ }
341
+
342
+ .mx-btn-ghost:hover {
343
+ background: color-mix(in srgb, var(--mx-bg-subtle, var(--mx-bg)) 72%, transparent);
344
+ color: var(--mx-text-main);
345
+ }
346
+
347
+ .mx-btn-sm {
348
+ padding: 0.5rem 1rem;
349
+ font-size: 0.8125rem;
350
+ }
351
+
352
+ .mx-btn:disabled {
353
+ background: color-mix(in srgb, var(--mx-border) 82%, var(--mx-card-bg));
354
+ color: color-mix(in srgb, var(--mx-text-muted) 62%, white);
355
+ cursor: not-allowed;
356
+ box-shadow: none;
357
+ transform: none;
358
+ }
359
+
360
+ .mx-btn-icon {
361
+ display: flex;
362
+ align-items: center;
363
+ justify-content: center;
364
+ padding: 0.5rem;
365
+ border-radius: var(--mx-radius-md);
366
+ color: var(--mx-text-muted);
367
+ transition: all 0.2s;
368
+ background: transparent;
369
+ border: 1px solid transparent;
370
+ cursor: pointer;
371
+ }
372
+
373
+ .mx-btn-icon:hover:not(:disabled) {
374
+ background: color-mix(in srgb, var(--mx-bg-subtle, var(--mx-bg)) 72%, transparent);
375
+ color: var(--mx-primary);
376
+ border-color: var(--mx-border);
377
+ }
378
+
379
+ .mx-btn-icon svg {
380
+ width: 1.25rem;
381
+ height: 1.25rem;
382
+ }
383
+
384
+ .mx-btn-icon.is-spinning svg {
385
+ animation: mx-spin 1s linear infinite;
386
+ }
387
+
388
+ @keyframes mx-spin {
389
+ from {
390
+ transform: rotate(0deg);
391
+ }
392
+ to {
393
+ transform: rotate(360deg);
394
+ }
395
+ }
396
+
397
+ .mx-badge {
398
+ display: inline-flex;
399
+ align-items: center;
400
+ padding: 0.25rem 0.75rem;
401
+ border-radius: 9999px;
402
+ font-size: 0.75rem;
403
+ font-weight: 700;
404
+ text-transform: uppercase;
405
+ letter-spacing: 0.025em;
406
+ }
407
+
408
+ .mx-badge-success {
409
+ background: #dcfce7;
410
+ color: #166534;
411
+ }
412
+
413
+ .mx-badge-danger {
414
+ background: #fee2e2;
415
+ color: #991b1b;
416
+ }
417
+
418
+ .mx-badge-warning {
419
+ background: #fef3c7;
420
+ color: #92400e;
421
+ }
422
+
423
+ .mx-table-container {
424
+ background: var(--mx-card-bg);
425
+ border: 1px solid var(--mx-border);
426
+ border-radius: var(--mx-radius-lg);
427
+ overflow: hidden;
428
+ box-shadow: var(--mx-shadow);
429
+ }
430
+
431
+ .mx-table {
432
+ width: 100%;
433
+ border-collapse: collapse;
434
+ text-align: left;
435
+ }
436
+
437
+ .mx-table th {
438
+ padding: 0.9rem 1.2rem;
439
+ background: #f8fafc;
440
+ border-bottom: 1px solid var(--mx-border);
441
+ font-size: 0.72rem;
442
+ font-weight: 700;
443
+ color: var(--mx-text-muted);
444
+ text-transform: uppercase;
445
+ letter-spacing: 0.05em;
446
+ }
447
+
448
+ .mx-table td {
449
+ padding: 0.9rem 1.2rem;
450
+ border-bottom: 1px solid var(--mx-border);
451
+ font-size: 0.86rem;
452
+ color: var(--mx-text-main);
453
+ vertical-align: middle;
454
+ }
455
+
456
+ .mx-table tr:last-child td {
457
+ border-bottom: none;
458
+ }
459
+
460
+ .mx-table tr:hover td {
461
+ background: #f8fafc;
462
+ }
463
+
464
+ .mx-breadcrumb {
465
+ display: flex;
466
+ align-items: center;
467
+ flex-wrap: wrap;
468
+ gap: 0.35rem;
469
+ width: fit-content;
470
+ max-width: 100%;
471
+ padding: 0.42rem 0.68rem;
472
+ border-radius: 999px;
473
+ border: 1px solid color-mix(in srgb, var(--mx-primary) 10%, var(--mx-border));
474
+ background: color-mix(in srgb, var(--mx-card-bg) 74%, var(--mx-bg-subtle, var(--mx-bg)) 26%);
475
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mx-card-bg) 55%, transparent);
476
+ font-size: 0.82rem;
477
+ color: var(--mx-text-muted);
478
+ margin-bottom: 1rem;
479
+ }
480
+
481
+ .mx-breadcrumb a,
482
+ .mx-breadcrumb-link-btn {
483
+ display: inline-flex;
484
+ align-items: center;
485
+ min-width: 0;
486
+ white-space: nowrap;
487
+ max-width: min(100%, 42rem);
488
+ overflow: hidden;
489
+ text-overflow: ellipsis;
490
+ color: var(--mx-text-muted);
491
+ text-decoration: none;
492
+ transition: color 0.2s;
493
+ }
494
+
495
+ .mx-breadcrumb a:hover,
496
+ .mx-breadcrumb-link-btn:hover {
497
+ color: var(--mx-primary);
498
+ }
499
+
500
+ .mx-breadcrumb > :first-child:not(.mx-breadcrumb-sep) {
501
+ color: color-mix(in srgb, var(--mx-text-muted) 76%, white);
502
+ font-weight: 600;
503
+ }
504
+
505
+ .mx-breadcrumb-sep {
506
+ color: color-mix(in srgb, var(--mx-primary) 28%, var(--mx-border));
507
+ font-size: 0.72rem;
508
+ line-height: 1;
509
+ }
510
+
511
+ .mx-breadcrumb > span:not(.mx-breadcrumb-sep) {
512
+ color: var(--mx-text-main);
513
+ font-weight: 700;
514
+ min-width: 0;
515
+ white-space: nowrap;
516
+ max-width: min(100%, 42rem);
517
+ overflow: hidden;
518
+ text-overflow: ellipsis;
519
+ }
520
+
521
+ .mx-breadcrumb-top {
522
+ margin-bottom: 1rem;
523
+ }
524
+
525
+ .mx-breadcrumb-link-btn {
526
+ background: none;
527
+ border: none;
528
+ padding: 0;
529
+ margin: 0;
530
+ font: inherit;
531
+ cursor: pointer;
532
+ }
533
+
534
+ .mx-header-actions {
535
+ display: flex;
536
+ align-items: center;
537
+ gap: 0.75rem;
538
+ flex-wrap: wrap;
539
+ }
540
+
541
+ .mx-nav-switch {
542
+ display: inline-flex;
543
+ align-items: center;
544
+ gap: 0.35rem;
545
+ background: color-mix(in srgb, var(--mx-bg-subtle) 82%, var(--mx-card-bg) 18%);
546
+ border: 1px solid color-mix(in srgb, var(--mx-primary) 16%, var(--mx-border));
547
+ border-radius: 999px;
548
+ padding: 0.2rem;
549
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mx-card-bg) 60%, transparent);
550
+ }
551
+
552
+ .mx-nav-link {
553
+ border-radius: 999px;
554
+ padding: 0.38rem 0.8rem;
555
+ text-decoration: none;
556
+ font-size: 0.82rem;
557
+ font-weight: 700;
558
+ color: var(--mx-text-muted);
559
+ transition: all 0.2s;
560
+ }
561
+
562
+ .mx-nav-link:hover {
563
+ color: var(--mx-text-main);
564
+ background: color-mix(in srgb, var(--mx-card-bg) 86%, transparent);
565
+ }
566
+
567
+ .mx-nav-link.is-active {
568
+ color: color-mix(in srgb, var(--mx-primary) 82%, var(--mx-text-main));
569
+ background: var(--mx-card-bg);
570
+ box-shadow: var(--mx-shadow-sm);
571
+ }
572
+
573
+ .mx-activity-tabs {
574
+ display: flex;
575
+ flex-wrap: wrap;
576
+ gap: 0.45rem;
577
+ margin: 0 0 1.25rem;
578
+ }
579
+
580
+ .mx-activity-tab {
581
+ display: inline-flex;
582
+ align-items: center;
583
+ justify-content: center;
584
+ min-height: 36px;
585
+ padding: 0.45rem 0.9rem;
586
+ border-radius: 999px;
587
+ border: 1px solid var(--mx-border);
588
+ background: var(--mx-card-bg);
589
+ color: var(--mx-text-muted);
590
+ text-decoration: none;
591
+ font-size: 0.83rem;
592
+ font-weight: 700;
593
+ transition: all 0.2s;
594
+ }
595
+
596
+ .mx-activity-tab:hover {
597
+ border-color: color-mix(in srgb, var(--mx-primary) 14%, var(--mx-border));
598
+ background: color-mix(in srgb, var(--mx-bg) 82%, var(--mx-card-bg));
599
+ color: var(--mx-text-main);
600
+ }
601
+
602
+ .mx-activity-tab.is-active {
603
+ background: color-mix(in srgb, var(--mx-primary) 10%, var(--mx-card-bg));
604
+ border-color: color-mix(in srgb, var(--mx-primary) 22%, var(--mx-border));
605
+ color: color-mix(in srgb, var(--mx-primary) 84%, var(--mx-text-main));
606
+ box-shadow: var(--mx-shadow-sm);
607
+ }
608
+
609
+ .mx-alert {
610
+ margin-bottom: 2rem;
611
+ padding: 1rem;
612
+ border-radius: var(--mx-radius-md);
613
+ border: 1px solid transparent;
614
+ }
615
+
616
+ .mx-alert-error {
617
+ background: #fef2f2;
618
+ border-color: #fee2e2;
619
+ color: #991b1b;
620
+ }
621
+
622
+ .mx-alert-info {
623
+ border-left: 4px solid var(--mx-primary);
624
+ }
625
+
626
+ .mx-subtle-note {
627
+ margin-bottom: 1.5rem;
628
+ font-size: 0.875rem;
629
+ color: var(--mx-text-muted);
630
+ }
631
+
632
+ .mx-record-panel {
633
+ background: linear-gradient(
634
+ 180deg,
635
+ var(--mx-card-bg) 0%,
636
+ color-mix(in srgb, var(--mx-card-bg) 74%, var(--mx-bg-subtle)) 100%
637
+ );
638
+ border: 1px solid var(--mx-border);
639
+ border-radius: var(--mx-radius-lg);
640
+ box-shadow: var(--mx-shadow);
641
+ padding: 1rem 1.1rem;
642
+ margin-bottom: 1rem;
643
+ }
644
+
645
+ .mx-record-panel-head {
646
+ display: flex;
647
+ justify-content: space-between;
648
+ align-items: flex-start;
649
+ gap: 1rem;
650
+ flex-wrap: wrap;
651
+ }
652
+
653
+ .mx-record-panel-kicker {
654
+ font-size: 0.74rem;
655
+ font-weight: 700;
656
+ color: var(--mx-text-muted);
657
+ text-transform: uppercase;
658
+ letter-spacing: 0.08em;
659
+ }
660
+
661
+ .mx-record-panel-id {
662
+ margin-top: 0.25rem;
663
+ font-size: 1.05rem;
664
+ font-weight: 800;
665
+ color: var(--mx-text-main);
666
+ line-height: 1.35;
667
+ word-break: break-word;
668
+ }
669
+
670
+ .mx-record-grid {
671
+ margin-top: 1rem;
672
+ display: grid;
673
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
674
+ gap: 0.85rem 1rem;
675
+ }
676
+
677
+ .mx-record-field {
678
+ min-width: 0;
679
+ }
680
+
681
+ .mx-record-field.is-span-full {
682
+ grid-column: 1 / -1;
683
+ }
684
+
685
+ .mx-record-label {
686
+ font-size: 0.74rem;
687
+ font-weight: 700;
688
+ color: var(--mx-text-muted);
689
+ text-transform: uppercase;
690
+ letter-spacing: 0.08em;
691
+ }
692
+
693
+ .mx-record-value {
694
+ margin-top: 0.3rem;
695
+ font-size: 0.94rem;
696
+ font-weight: 600;
697
+ color: var(--mx-text-main);
698
+ line-height: 1.45;
699
+ word-break: break-word;
700
+ }
701
+
702
+ .mx-record-value.is-strong {
703
+ font-weight: 700;
704
+ }
705
+
706
+ .mx-record-value.is-mono {
707
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
708
+ font-size: 0.82rem;
709
+ }
710
+
711
+ .mx-record-pill-row,
712
+ .mx-record-actions {
713
+ grid-column: 1 / -1;
714
+ display: flex;
715
+ flex-wrap: wrap;
716
+ gap: 0.5rem;
717
+ }
718
+
719
+ .mx-record-actions {
720
+ padding-top: 0.15rem;
721
+ }
722
+
723
+ .mx-record-timeline {
724
+ margin-top: 1rem;
725
+ padding-top: 1rem;
726
+ border-top: 1px solid var(--mx-border);
727
+ display: grid;
728
+ gap: 0.55rem;
729
+ }
730
+
731
+ .mx-record-timeline-item {
732
+ padding: 0.75rem 0.85rem;
733
+ border-radius: var(--mx-radius-md);
734
+ border: 1px solid var(--mx-border);
735
+ background: color-mix(in srgb, var(--mx-bg-subtle) 82%, var(--mx-card-bg));
736
+ color: var(--mx-text-main);
737
+ line-height: 1.45;
738
+ }
739
+
740
+ @media (max-width: 980px) {
741
+ .mx-table[data-responsive="cards"] {
742
+ min-width: 0;
743
+ border-collapse: separate;
744
+ border-spacing: 0;
745
+ }
746
+
747
+ .mx-table[data-responsive="cards"] thead {
748
+ display: none;
749
+ }
750
+
751
+ .mx-table[data-responsive="cards"] tbody {
752
+ display: grid;
753
+ gap: 0.8rem;
754
+ padding: 0.9rem;
755
+ }
756
+
757
+ .mx-table[data-responsive="cards"] tbody tr {
758
+ display: grid;
759
+ gap: 0.7rem;
760
+ padding: 0.95rem;
761
+ border: 1px solid var(--mx-border);
762
+ border-radius: var(--mx-radius-md);
763
+ background: linear-gradient(
764
+ 180deg,
765
+ var(--mx-card-bg) 0%,
766
+ color-mix(in srgb, var(--mx-card-bg) 74%, var(--mx-bg-subtle)) 100%
767
+ );
768
+ box-shadow: var(--mx-shadow-sm);
769
+ }
770
+
771
+ .mx-table[data-responsive="cards"] tr:hover td {
772
+ background: transparent;
773
+ }
774
+
775
+ .mx-table[data-responsive="cards"] td {
776
+ display: grid;
777
+ grid-template-columns: minmax(88px, 108px) minmax(0, 1fr);
778
+ gap: 0.25rem 0.75rem;
779
+ padding: 0;
780
+ border: 0;
781
+ align-items: start;
782
+ min-width: 0;
783
+ }
784
+
785
+ .mx-table[data-responsive="cards"] td[colspan] {
786
+ grid-template-columns: 1fr;
787
+ text-align: left;
788
+ }
789
+
790
+ .mx-table[data-responsive="cards"] td[colspan]::before {
791
+ display: none;
792
+ }
793
+
794
+ .mx-table[data-responsive="cards"] td::before {
795
+ content: attr(data-label);
796
+ font-size: 0.64rem;
797
+ line-height: 1.2;
798
+ font-weight: 800;
799
+ letter-spacing: 0.08em;
800
+ text-transform: uppercase;
801
+ color: var(--mx-text-muted);
802
+ }
803
+
804
+ .mx-table[data-responsive="cards"] td > * {
805
+ min-width: 0;
806
+ }
807
+
808
+ .mx-table[data-responsive="cards"] .mx-cell-mono,
809
+ .mx-table[data-responsive="cards"] .mx-cell-sub,
810
+ .mx-table[data-responsive="cards"] .mx-cell-date,
811
+ .mx-table[data-responsive="cards"] .mx-cell-bold,
812
+ .mx-table[data-responsive="cards"] .mx-badge {
813
+ overflow-wrap: anywhere;
814
+ word-break: break-word;
815
+ }
816
+
817
+ .mx-table[data-responsive="cards"] .mx-action-group {
818
+ justify-content: flex-start;
819
+ }
820
+
821
+ .mx-record-panel {
822
+ padding: 0.95rem;
823
+ }
824
+
825
+ .mx-request-section {
826
+ padding: 1.15rem;
827
+ }
828
+
829
+ .mx-request-section-head {
830
+ gap: 0.8rem;
831
+ margin-bottom: 1rem;
832
+ }
833
+
834
+ .mx-request-section-title {
835
+ font-size: 1.2rem;
836
+ line-height: 1.2;
837
+ margin-bottom: 0.35rem;
838
+ }
839
+
840
+ .mx-request-meta-row {
841
+ flex-wrap: wrap;
842
+ gap: 0.3rem 0.5rem;
843
+ font-size: 0.8rem;
844
+ }
845
+
846
+ .mx-request-meta-grid {
847
+ grid-template-columns: 1fr;
848
+ gap: 0.9rem;
849
+ }
850
+
851
+ .mx-request-code {
852
+ overflow-wrap: anywhere;
853
+ word-break: break-word;
854
+ }
855
+
856
+ .mx-payment-lock-actions > * {
857
+ flex: 1 1 180px;
858
+ }
859
+
860
+ .mx-timeline-toggle-content {
861
+ align-items: flex-start;
862
+ gap: 0.55rem;
863
+ }
864
+
865
+ .mx-timeline-summary {
866
+ margin-left: 0;
867
+ width: 100%;
868
+ justify-content: space-between;
869
+ flex-wrap: wrap;
870
+ gap: 0.5rem;
871
+ }
872
+
873
+ .mx-event-head {
874
+ gap: 0.55rem;
875
+ }
876
+
877
+ .mx-event-time {
878
+ align-items: flex-start;
879
+ width: 100%;
880
+ }
881
+
882
+ .mx-event-date,
883
+ .mx-event-relative {
884
+ overflow-wrap: anywhere;
885
+ word-break: break-word;
886
+ }
887
+
888
+ .mx-sidebar-stack {
889
+ gap: 0.6rem;
890
+ }
891
+
892
+ .mx-sidebar-artifact-link {
893
+ white-space: normal;
894
+ overflow-wrap: anywhere;
895
+ word-break: break-word;
896
+ line-height: 1.4;
897
+ }
898
+
899
+ .mx-record-panel-head {
900
+ display: grid;
901
+ gap: 0.75rem;
902
+ }
903
+
904
+ .mx-record-panel-head .mx-btn {
905
+ width: 100%;
906
+ justify-content: center;
907
+ }
908
+
909
+ .mx-record-grid {
910
+ grid-template-columns: 1fr;
911
+ gap: 0.8rem;
912
+ }
913
+
914
+ .mx-record-actions,
915
+ .mx-record-pill-row {
916
+ gap: 0.45rem;
917
+ }
918
+
919
+ .mx-record-actions > *,
920
+ .mx-record-panel .mx-action-group > * {
921
+ flex: 1 1 100%;
922
+ justify-content: center;
923
+ }
924
+
925
+ .mx-record-timeline-item {
926
+ padding: 0.68rem 0.72rem;
927
+ }
928
+ }
929
+
930
+ @container marketplace (max-width: 980px) {
931
+ .mx-table[data-responsive="cards"] {
932
+ min-width: 0;
933
+ border-collapse: separate;
934
+ border-spacing: 0;
935
+ }
936
+
937
+ .mx-table[data-responsive="cards"] thead {
938
+ display: none;
939
+ }
940
+
941
+ .mx-table[data-responsive="cards"] tbody {
942
+ display: grid;
943
+ gap: 0.8rem;
944
+ padding: 0.9rem;
945
+ }
946
+
947
+ .mx-table[data-responsive="cards"] tbody tr {
948
+ display: grid;
949
+ gap: 0.7rem;
950
+ padding: 0.95rem;
951
+ border: 1px solid var(--mx-border);
952
+ border-radius: var(--mx-radius-md);
953
+ background: linear-gradient(
954
+ 180deg,
955
+ var(--mx-card-bg) 0%,
956
+ color-mix(in srgb, var(--mx-card-bg) 74%, var(--mx-bg-subtle)) 100%
957
+ );
958
+ box-shadow: var(--mx-shadow-sm);
959
+ }
960
+
961
+ .mx-table[data-responsive="cards"] tr:hover td {
962
+ background: transparent;
963
+ }
964
+
965
+ .mx-table[data-responsive="cards"] td {
966
+ display: grid;
967
+ grid-template-columns: minmax(88px, 108px) minmax(0, 1fr);
968
+ gap: 0.25rem 0.75rem;
969
+ padding: 0;
970
+ border: 0;
971
+ align-items: start;
972
+ min-width: 0;
973
+ }
974
+
975
+ .mx-table[data-responsive="cards"] td[colspan] {
976
+ grid-template-columns: 1fr;
977
+ text-align: left;
978
+ }
979
+
980
+ .mx-table[data-responsive="cards"] td[colspan]::before {
981
+ display: none;
982
+ }
983
+
984
+ .mx-table[data-responsive="cards"] td::before {
985
+ content: attr(data-label);
986
+ font-size: 0.64rem;
987
+ line-height: 1.2;
988
+ font-weight: 800;
989
+ letter-spacing: 0.08em;
990
+ text-transform: uppercase;
991
+ color: var(--mx-text-muted);
992
+ }
993
+
994
+ .mx-table[data-responsive="cards"] td > * {
995
+ min-width: 0;
996
+ }
997
+
998
+ .mx-table[data-responsive="cards"] .mx-cell-mono,
999
+ .mx-table[data-responsive="cards"] .mx-cell-sub,
1000
+ .mx-table[data-responsive="cards"] .mx-cell-date,
1001
+ .mx-table[data-responsive="cards"] .mx-cell-bold,
1002
+ .mx-table[data-responsive="cards"] .mx-badge {
1003
+ overflow-wrap: anywhere;
1004
+ word-break: break-word;
1005
+ }
1006
+
1007
+ .mx-table[data-responsive="cards"] .mx-action-group {
1008
+ justify-content: flex-start;
1009
+ }
1010
+
1011
+ .mx-record-panel {
1012
+ padding: 0.95rem;
1013
+ }
1014
+
1015
+ .mx-request-section {
1016
+ padding: 1.15rem;
1017
+ }
1018
+
1019
+ .mx-request-section-head {
1020
+ gap: 0.8rem;
1021
+ margin-bottom: 1rem;
1022
+ }
1023
+
1024
+ .mx-request-section-title {
1025
+ font-size: 1.2rem;
1026
+ line-height: 1.2;
1027
+ margin-bottom: 0.35rem;
1028
+ }
1029
+
1030
+ .mx-request-meta-row {
1031
+ flex-wrap: wrap;
1032
+ gap: 0.3rem 0.5rem;
1033
+ font-size: 0.8rem;
1034
+ }
1035
+
1036
+ .mx-request-meta-grid {
1037
+ grid-template-columns: 1fr;
1038
+ gap: 0.9rem;
1039
+ }
1040
+
1041
+ .mx-request-code {
1042
+ overflow-wrap: anywhere;
1043
+ word-break: break-word;
1044
+ }
1045
+
1046
+ .mx-payment-lock-actions > * {
1047
+ flex: 1 1 180px;
1048
+ }
1049
+
1050
+ .mx-timeline-toggle-content {
1051
+ align-items: flex-start;
1052
+ gap: 0.55rem;
1053
+ }
1054
+
1055
+ .mx-timeline-summary {
1056
+ margin-left: 0;
1057
+ width: 100%;
1058
+ justify-content: space-between;
1059
+ flex-wrap: wrap;
1060
+ gap: 0.5rem;
1061
+ }
1062
+
1063
+ .mx-event-head {
1064
+ gap: 0.55rem;
1065
+ }
1066
+
1067
+ .mx-event-time {
1068
+ align-items: flex-start;
1069
+ width: 100%;
1070
+ }
1071
+
1072
+ .mx-event-date,
1073
+ .mx-event-relative {
1074
+ overflow-wrap: anywhere;
1075
+ word-break: break-word;
1076
+ }
1077
+
1078
+ .mx-sidebar-stack {
1079
+ gap: 0.6rem;
1080
+ }
1081
+
1082
+ .mx-sidebar-artifact-link {
1083
+ white-space: normal;
1084
+ overflow-wrap: anywhere;
1085
+ word-break: break-word;
1086
+ line-height: 1.4;
1087
+ }
1088
+
1089
+ .mx-record-panel-head {
1090
+ display: grid;
1091
+ gap: 0.75rem;
1092
+ }
1093
+
1094
+ .mx-record-panel-head .mx-btn {
1095
+ width: 100%;
1096
+ justify-content: center;
1097
+ }
1098
+
1099
+ .mx-record-grid {
1100
+ grid-template-columns: 1fr;
1101
+ gap: 0.8rem;
1102
+ }
1103
+
1104
+ .mx-record-actions,
1105
+ .mx-record-pill-row {
1106
+ gap: 0.45rem;
1107
+ }
1108
+
1109
+ .mx-record-actions > *,
1110
+ .mx-record-panel .mx-action-group > * {
1111
+ flex: 1 1 100%;
1112
+ justify-content: center;
1113
+ }
1114
+
1115
+ .mx-record-timeline-item {
1116
+ padding: 0.68rem 0.72rem;
1117
+ }
1118
+ }
1119
+
1120
+ .mx-widget-surface-nav {
1121
+ display: flex;
1122
+ flex-wrap: wrap;
1123
+ gap: 0.5rem;
1124
+ margin-bottom: 1rem;
1125
+ }
1126
+
1127
+ .mx-empty-state {
1128
+ border: 1px dashed var(--mx-border);
1129
+ border-radius: var(--mx-radius-lg);
1130
+ background: #f8fafc;
1131
+ padding: 1.25rem;
1132
+ margin-top: 1rem;
1133
+ }
1134
+
1135
+ .mx-empty-state h3 {
1136
+ margin: 0 0 0.35rem 0;
1137
+ font-size: 1rem;
1138
+ color: var(--mx-text-main);
1139
+ }
1140
+
1141
+ .mx-empty-state p {
1142
+ margin: 0;
1143
+ color: var(--mx-text-muted);
1144
+ font-size: 0.9rem;
1145
+ }
1146
+
1147
+ /* Detail Page */
1148
+ .mx-card-actions-inline {
1149
+ display: flex;
1150
+ gap: 0.5rem;
1151
+ }
1152
+
1153
+ .mx-detail-container {
1154
+ max-width: 1380px;
1155
+ margin: 0 auto;
1156
+ padding: 2.5rem 1.75rem;
1157
+ container-type: inline-size;
1158
+ container-name: marketplace;
1159
+ }
1160
+
1161
+ .mx-detail-container.is-embedded {
1162
+ padding: 1.25rem;
1163
+ background: var(--mx-bg);
1164
+ min-height: 100vh;
1165
+ }
1166
+
1167
+ .mx-detail-topbar {
1168
+ display: flex;
1169
+ align-items: center;
1170
+ justify-content: space-between;
1171
+ gap: 1rem;
1172
+ margin-bottom: 2rem;
1173
+ flex-wrap: wrap;
1174
+ }
1175
+
1176
+ .mx-detail-topbar-left,
1177
+ .mx-detail-topbar-right {
1178
+ display: flex;
1179
+ align-items: center;
1180
+ gap: 1rem;
1181
+ }
1182
+
1183
+ .mx-detail-topbar-title {
1184
+ font-weight: 800;
1185
+ font-size: 1.2rem;
1186
+ color: var(--mx-text-main);
1187
+ line-height: 1.2;
1188
+ }
1189
+
1190
+ .mx-detail-surface-nav {
1191
+ margin-top: 1rem;
1192
+ display: flex;
1193
+ flex-direction: column;
1194
+ gap: 0.75rem;
1195
+ }
1196
+
1197
+ .mx-detail-surface-nav-label {
1198
+ font-size: 0.75rem;
1199
+ font-weight: 700;
1200
+ text-transform: uppercase;
1201
+ letter-spacing: 0.05em;
1202
+ color: var(--mx-text-muted);
1203
+ }
1204
+
1205
+ .mx-detail-surface-nav-links {
1206
+ display: flex;
1207
+ flex-wrap: wrap;
1208
+ gap: 0.5rem;
1209
+ }
1210
+
1211
+ .mx-catalog-container.is-embedded {
1212
+ padding: 1.5rem;
1213
+ background: var(--mx-bg);
1214
+ min-height: 100vh;
1215
+ }
1216
+
1217
+ .mx-detail-header {
1218
+ display: grid;
1219
+ grid-template-columns: 120px minmax(0, 1fr) auto;
1220
+ gap: 1.5rem;
1221
+ align-items: start;
1222
+ margin-bottom: 2.25rem;
1223
+ padding: 1rem 1.125rem;
1224
+ border: 1px solid var(--mx-border);
1225
+ border-radius: var(--mx-radius-lg);
1226
+ background:
1227
+ radial-gradient(1200px 200px at 10% -20%, rgba(59, 130, 246, 0.08), transparent 55%),
1228
+ linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
1229
+ box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
1230
+ }
1231
+
1232
+ @media (max-width: 768px) {
1233
+ .mx-detail-header {
1234
+ grid-template-columns: 1fr;
1235
+ gap: 1rem;
1236
+ text-align: center;
1237
+ justify-items: center;
1238
+ padding: 1rem;
1239
+ }
1240
+ }
1241
+
1242
+ .mx-detail-icon {
1243
+ width: 120px;
1244
+ height: 120px;
1245
+ border-radius: var(--mx-radius-lg);
1246
+ object-fit: cover;
1247
+ box-shadow: var(--mx-shadow-lg);
1248
+ }
1249
+
1250
+ .mx-detail-info {
1251
+ display: flex;
1252
+ flex-direction: column;
1253
+ gap: 0.45rem;
1254
+ min-width: 0;
1255
+ }
1256
+
1257
+ .mx-detail-kicker {
1258
+ font-size: 0.72rem;
1259
+ font-weight: 700;
1260
+ letter-spacing: 0.08em;
1261
+ text-transform: uppercase;
1262
+ color: var(--mx-text-muted);
1263
+ }
1264
+
1265
+ .mx-detail-title {
1266
+ font-size: clamp(1.85rem, 3.4vw, 2.25rem);
1267
+ font-weight: 800;
1268
+ color: var(--mx-text-main);
1269
+ margin: 0;
1270
+ letter-spacing: -0.025em;
1271
+ line-height: 1.08;
1272
+ }
1273
+
1274
+ .mx-detail-subtitle {
1275
+ margin: 0;
1276
+ max-width: 72ch;
1277
+ color: #475569;
1278
+ line-height: 1.55;
1279
+ font-size: 0.98rem;
1280
+ display: -webkit-box;
1281
+ -webkit-box-orient: vertical;
1282
+ -webkit-line-clamp: 3;
1283
+ overflow: hidden;
1284
+ }
1285
+
1286
+ .mx-detail-grid {
1287
+ display: grid;
1288
+ grid-template-columns: minmax(0, 1.9fr) minmax(320px, 1fr);
1289
+ gap: 1.75rem;
1290
+ }
1291
+
1292
+ @media (max-width: 900px) {
1293
+ .mx-detail-grid {
1294
+ grid-template-columns: 1fr;
1295
+ }
1296
+ }
1297
+
1298
+ .mx-detail-main {
1299
+ display: flex;
1300
+ flex-direction: column;
1301
+ gap: 1.75rem;
1302
+ min-width: 0;
1303
+ }
1304
+
1305
+ .mx-detail-section {
1306
+ min-width: 0;
1307
+ }
1308
+
1309
+ .mx-detail-section-about,
1310
+ .mx-detail-section-guards,
1311
+ .mx-detail-section-screenshots {
1312
+ background: rgba(255, 255, 255, 0.76);
1313
+ border: 1px solid rgba(226, 232, 240, 0.95);
1314
+ border-radius: var(--mx-radius-lg);
1315
+ padding: 1.05rem 1.1rem;
1316
+ box-shadow: 0 8px 20px rgba(15, 23, 42, 0.035);
1317
+ }
1318
+
1319
+ .mx-detail-section-widgets .mx-section-title {
1320
+ margin-bottom: 0.8rem;
1321
+ }
1322
+
1323
+ .mx-section-title {
1324
+ font-size: 1.25rem;
1325
+ font-weight: 700;
1326
+ color: var(--mx-text-main);
1327
+ margin-bottom: 1rem;
1328
+ }
1329
+
1330
+ .mx-section-title-tight {
1331
+ margin-bottom: 0;
1332
+ }
1333
+
1334
+ .mx-detail-desc {
1335
+ font-size: 1.125rem;
1336
+ line-height: 1.62;
1337
+ color: #334155;
1338
+ white-space: pre-wrap;
1339
+ }
1340
+
1341
+ .mx-detail-sidebar {
1342
+ display: flex;
1343
+ flex-direction: column;
1344
+ gap: 1rem;
1345
+ align-self: start;
1346
+ position: sticky;
1347
+ top: 1rem;
1348
+ }
1349
+
1350
+ .mx-sidebar-card {
1351
+ background: white;
1352
+ border: 1px solid var(--mx-border);
1353
+ border-radius: var(--mx-radius-lg);
1354
+ padding: 1.5rem;
1355
+ box-shadow: 0 10px 22px rgba(15, 23, 42, 0.045);
1356
+ }
1357
+
1358
+ .mx-detail-error {
1359
+ padding: 0.9rem 1rem;
1360
+ border-radius: var(--mx-radius-md);
1361
+ background: #fef2f2;
1362
+ border: 1px solid #fee2e2;
1363
+ color: #991b1b;
1364
+ margin-bottom: 1.25rem;
1365
+ box-shadow: 0 6px 16px rgba(153, 27, 27, 0.06);
1366
+ }
1367
+
1368
+ @media (max-width: 768px) {
1369
+ .mx-record-panel {
1370
+ padding: 0.95rem;
1371
+ }
1372
+
1373
+ .mx-record-grid {
1374
+ grid-template-columns: 1fr;
1375
+ }
1376
+ }
1377
+
1378
+ .mx-detail-meta-row {
1379
+ display: flex;
1380
+ align-items: center;
1381
+ gap: 0.5rem;
1382
+ flex-wrap: wrap;
1383
+ }
1384
+
1385
+ .mx-detail-version-pill {
1386
+ font-size: 0.75rem;
1387
+ color: var(--mx-text-muted);
1388
+ background: var(--mx-bg-subtle);
1389
+ padding: 0.1rem 0.45rem;
1390
+ border-radius: 999px;
1391
+ border: 1px solid var(--mx-border);
1392
+ }
1393
+
1394
+ .mx-detail-update-pill {
1395
+ display: inline-flex;
1396
+ align-items: center;
1397
+ gap: 0.35rem;
1398
+ font-size: 0.72rem;
1399
+ font-weight: 700;
1400
+ color: #92400e;
1401
+ background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
1402
+ border: 1px solid #fed7aa;
1403
+ padding: 0.12rem 0.48rem;
1404
+ border-radius: 999px;
1405
+ }
1406
+
1407
+ .mx-detail-actions {
1408
+ display: flex;
1409
+ gap: 0.625rem;
1410
+ flex-wrap: wrap;
1411
+ align-items: center;
1412
+ justify-content: flex-end;
1413
+ align-self: start;
1414
+ margin-top: 0.25rem;
1415
+ }
1416
+
1417
+ .mx-detail-actions .mx-btn {
1418
+ min-height: 40px;
1419
+ padding: 0.55rem 0.95rem;
1420
+ border-radius: 12px;
1421
+ font-weight: 700;
1422
+ box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
1423
+ }
1424
+
1425
+ .mx-detail-actions .mx-btn-primary {
1426
+ box-shadow: 0 10px 22px color-mix(in srgb, var(--mx-primary) 22%, transparent);
1427
+ }
1428
+
1429
+ .mx-detail-actions .mx-btn-outline {
1430
+ border-color: color-mix(in srgb, var(--mx-danger) 18%, var(--mx-border));
1431
+ background: linear-gradient(
1432
+ 180deg,
1433
+ var(--mx-card-bg) 0%,
1434
+ color-mix(in srgb, var(--mx-danger-soft) 42%, var(--mx-card-bg)) 100%
1435
+ );
1436
+ box-shadow: 0 8px 18px color-mix(in srgb, var(--mx-danger) 10%, transparent);
1437
+ }
1438
+
1439
+ .mx-detail-actions .mx-btn-outline[data-variant="danger"] {
1440
+ color: var(--mx-danger);
1441
+ }
1442
+
1443
+ .mx-detail-actions .mx-btn-outline:hover:not(:disabled) {
1444
+ border-color: color-mix(in srgb, var(--mx-danger) 30%, var(--mx-border));
1445
+ background: linear-gradient(
1446
+ 180deg,
1447
+ color-mix(in srgb, var(--mx-danger-soft) 32%, var(--mx-card-bg)) 0%,
1448
+ var(--mx-danger-soft) 100%
1449
+ );
1450
+ box-shadow: 0 10px 22px color-mix(in srgb, var(--mx-danger) 14%, transparent);
1451
+ }
1452
+
1453
+ .mx-detail-empty {
1454
+ text-align: center;
1455
+ color: var(--mx-text-muted);
1456
+ padding: 1rem 1.125rem;
1457
+ }
1458
+
1459
+ .mx-detail-widget-list {
1460
+ display: grid;
1461
+ gap: 0.625rem;
1462
+ }
1463
+
1464
+ .mx-detail-widget-card {
1465
+ appearance: none;
1466
+ -webkit-appearance: none;
1467
+ text-align: left;
1468
+ width: 100%;
1469
+ display: flex;
1470
+ align-items: center;
1471
+ gap: 1rem;
1472
+ padding: 1rem 1.125rem;
1473
+ border-radius: var(--mx-radius-lg);
1474
+ border: 1px solid var(--mx-border);
1475
+ background: var(--mx-card-bg);
1476
+ color: var(--mx-text-main);
1477
+ cursor: pointer;
1478
+ transition:
1479
+ transform 140ms ease,
1480
+ box-shadow 140ms ease,
1481
+ border-color 140ms ease;
1482
+ }
1483
+
1484
+ .mx-detail-widget-card.is-default {
1485
+ border-color: color-mix(in srgb, var(--mx-primary) 25%, var(--mx-border));
1486
+ background: linear-gradient(
1487
+ 135deg,
1488
+ var(--mx-card-bg) 0%,
1489
+ color-mix(in srgb, var(--mx-primary) 3%, var(--mx-card-bg)) 100%
1490
+ );
1491
+ }
1492
+
1493
+ .mx-detail-widget-card.is-disabled {
1494
+ cursor: not-allowed;
1495
+ opacity: 0.55;
1496
+ }
1497
+
1498
+ .mx-detail-widget-card:not(:disabled):hover {
1499
+ transform: translateY(-2px);
1500
+ border-color: color-mix(in srgb, var(--mx-primary) 35%, var(--mx-border));
1501
+ box-shadow:
1502
+ 0 8px 24px rgba(37, 99, 235, 0.1),
1503
+ 0 2px 6px rgba(15, 23, 42, 0.04);
1504
+ }
1505
+
1506
+ .mx-detail-widget-card:not(:disabled):focus {
1507
+ outline: none;
1508
+ }
1509
+
1510
+ .mx-detail-widget-card:not(:disabled):focus-visible {
1511
+ outline: none;
1512
+ border-color: var(--mx-primary);
1513
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--mx-primary) 15%, transparent);
1514
+ }
1515
+
1516
+ .mx-detail-widget-card:not(:disabled):active {
1517
+ transform: translateY(0);
1518
+ }
1519
+
1520
+ /* Widget icon */
1521
+ .mx-detail-widget-icon {
1522
+ width: 40px;
1523
+ height: 40px;
1524
+ border-radius: 10px;
1525
+ background: color-mix(in srgb, var(--mx-primary) 8%, transparent);
1526
+ border: 1px solid color-mix(in srgb, var(--mx-primary) 15%, transparent);
1527
+ display: flex;
1528
+ align-items: center;
1529
+ justify-content: center;
1530
+ flex-shrink: 0;
1531
+ color: var(--mx-primary);
1532
+ transition:
1533
+ background 140ms ease,
1534
+ border-color 140ms ease;
1535
+ }
1536
+
1537
+ .mx-detail-widget-icon svg {
1538
+ width: 20px;
1539
+ height: 20px;
1540
+ }
1541
+
1542
+ .mx-detail-widget-card:not(:disabled):hover .mx-detail-widget-icon {
1543
+ background: color-mix(in srgb, var(--mx-primary) 14%, transparent);
1544
+ border-color: color-mix(in srgb, var(--mx-primary) 25%, transparent);
1545
+ }
1546
+
1547
+ /* Widget body */
1548
+ .mx-detail-widget-body {
1549
+ flex: 1;
1550
+ min-width: 0;
1551
+ display: flex;
1552
+ flex-direction: column;
1553
+ gap: 0.2rem;
1554
+ }
1555
+
1556
+ .mx-detail-widget-name {
1557
+ font-weight: 700;
1558
+ font-size: 0.9375rem;
1559
+ color: var(--mx-text-main);
1560
+ letter-spacing: -0.01em;
1561
+ }
1562
+
1563
+ .mx-detail-widget-tool {
1564
+ font-size: 0.75rem;
1565
+ color: var(--mx-text-muted);
1566
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
1567
+ letter-spacing: -0.01em;
1568
+ }
1569
+
1570
+ .mx-detail-widget-badges {
1571
+ display: flex;
1572
+ gap: 0.35rem;
1573
+ margin-top: 0.15rem;
1574
+ }
1575
+
1576
+ .mx-detail-widget-badge {
1577
+ font-size: 0.625rem;
1578
+ font-weight: 700;
1579
+ text-transform: uppercase;
1580
+ letter-spacing: 0.04em;
1581
+ padding: 1px 6px;
1582
+ border-radius: 4px;
1583
+ background: color-mix(in srgb, var(--mx-text-muted) 10%, transparent);
1584
+ color: var(--mx-text-muted);
1585
+ }
1586
+
1587
+ .mx-detail-widget-badge.is-primary {
1588
+ background: color-mix(in srgb, var(--mx-primary) 10%, transparent);
1589
+ color: var(--mx-primary);
1590
+ }
1591
+
1592
+ /* Widget action arrow */
1593
+ .mx-detail-widget-action {
1594
+ display: flex;
1595
+ align-items: center;
1596
+ gap: 0.35rem;
1597
+ flex-shrink: 0;
1598
+ color: var(--mx-primary);
1599
+ opacity: 0;
1600
+ transform: translateX(-4px);
1601
+ transition:
1602
+ opacity 140ms ease,
1603
+ transform 140ms ease;
1604
+ }
1605
+
1606
+ .mx-detail-widget-action-label {
1607
+ font-size: 0.75rem;
1608
+ font-weight: 600;
1609
+ }
1610
+
1611
+ .mx-detail-widget-action svg {
1612
+ width: 16px;
1613
+ height: 16px;
1614
+ }
1615
+
1616
+ .mx-detail-widget-card:not(:disabled):hover .mx-detail-widget-action {
1617
+ opacity: 1;
1618
+ transform: translateX(0);
1619
+ }
1620
+
1621
+ .mx-detail-guard-header {
1622
+ display: flex;
1623
+ align-items: center;
1624
+ justify-content: space-between;
1625
+ gap: 0.75rem;
1626
+ flex-wrap: wrap;
1627
+ }
1628
+
1629
+ .mx-detail-guard-header .mx-btn {
1630
+ min-height: 34px;
1631
+ border-radius: 12px;
1632
+ padding: 0.35rem 0.7rem;
1633
+ font-weight: 700;
1634
+ box-shadow: 0 6px 14px rgba(15, 23, 42, 0.05);
1635
+ }
1636
+
1637
+ .mx-detail-guard-header .mx-btn-ghost {
1638
+ background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
1639
+ border: 1px solid rgba(226, 232, 240, 0.95);
1640
+ color: #64748b;
1641
+ }
1642
+
1643
+ .mx-detail-guard-header .mx-btn-ghost:hover {
1644
+ background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%);
1645
+ color: #334155;
1646
+ border-color: #dbeafe;
1647
+ }
1648
+
1649
+ .mx-detail-guard-empty {
1650
+ margin-top: 0.75rem;
1651
+ color: var(--mx-text-muted);
1652
+ }
1653
+
1654
+ .mx-detail-guard-list {
1655
+ display: grid;
1656
+ gap: 0.75rem;
1657
+ margin-top: 0.75rem;
1658
+ }
1659
+
1660
+ .mx-detail-guard-trigger-card {
1661
+ padding: 0.9rem;
1662
+ background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
1663
+ }
1664
+
1665
+ .mx-detail-guard-trigger-head {
1666
+ display: flex;
1667
+ justify-content: space-between;
1668
+ align-items: center;
1669
+ gap: 0.75rem;
1670
+ flex-wrap: wrap;
1671
+ }
1672
+
1673
+ .mx-detail-guard-trigger-name {
1674
+ font-weight: 700;
1675
+ color: var(--mx-text-main);
1676
+ }
1677
+
1678
+ .mx-detail-guard-trigger-copy {
1679
+ margin-top: 0.45rem;
1680
+ color: var(--mx-text-muted);
1681
+ font-size: 0.86rem;
1682
+ line-height: 1.45;
1683
+ }
1684
+
1685
+ .mx-detail-guard-items {
1686
+ display: grid;
1687
+ gap: 0.5rem;
1688
+ margin-top: 0.7rem;
1689
+ }
1690
+
1691
+ .mx-detail-guard-item {
1692
+ border: 1px solid var(--mx-border);
1693
+ border-radius: var(--mx-radius-sm);
1694
+ padding: 0.55rem 0.65rem;
1695
+ display: grid;
1696
+ gap: 0.35rem;
1697
+ background: #fff;
1698
+ }
1699
+
1700
+ .mx-detail-guard-badges {
1701
+ display: flex;
1702
+ gap: 0.45rem;
1703
+ flex-wrap: wrap;
1704
+ }
1705
+
1706
+ .mx-detail-guard-trigger-card .mx-badge {
1707
+ font-size: 0.68rem;
1708
+ letter-spacing: 0.03em;
1709
+ padding: 0.22rem 0.55rem;
1710
+ border: 1px solid rgba(148, 163, 184, 0.2);
1711
+ background: #f8fafc;
1712
+ color: #334155;
1713
+ }
1714
+
1715
+ .mx-detail-guard-trigger-card .mx-badge-success {
1716
+ background: #dcfce7;
1717
+ border-color: #bbf7d0;
1718
+ color: #166534;
1719
+ }
1720
+
1721
+ .mx-detail-guard-trigger-card .mx-badge-danger {
1722
+ background: #fee2e2;
1723
+ border-color: #fecaca;
1724
+ color: #991b1b;
1725
+ }
1726
+
1727
+ .mx-detail-guard-trigger-card .mx-badge-warning {
1728
+ background: #fef3c7;
1729
+ border-color: #fde68a;
1730
+ color: #92400e;
1731
+ }
1732
+
1733
+ /* ── Guard pipeline UX (new visual step-by-step design) ── */
1734
+
1735
+ .mx-guard-summary-card {
1736
+ display: flex;
1737
+ align-items: center;
1738
+ gap: 0.75rem;
1739
+ margin-top: 0.75rem;
1740
+ padding: 0.85rem 1rem;
1741
+ color: var(--mx-text-muted);
1742
+ }
1743
+
1744
+ .mx-guard-summary-icon {
1745
+ flex-shrink: 0;
1746
+ display: flex;
1747
+ align-items: center;
1748
+ justify-content: center;
1749
+ width: 36px;
1750
+ height: 36px;
1751
+ border-radius: 50%;
1752
+ background: #f1f5f9;
1753
+ }
1754
+
1755
+ .mx-guard-summary-text {
1756
+ font-size: 0.88rem;
1757
+ line-height: 1.5;
1758
+ }
1759
+
1760
+ .mx-guard-pipeline {
1761
+ display: flex;
1762
+ flex-direction: column;
1763
+ gap: 0;
1764
+ margin-top: 0.75rem;
1765
+ position: relative;
1766
+ }
1767
+
1768
+ .mx-guard-stage {
1769
+ position: relative;
1770
+ padding-left: 2.1rem;
1771
+ }
1772
+
1773
+ .mx-guard-stage::before {
1774
+ content: "";
1775
+ position: absolute;
1776
+ left: 14px;
1777
+ top: 28px;
1778
+ bottom: 0;
1779
+ width: 2px;
1780
+ background: #e2e8f0;
1781
+ }
1782
+
1783
+ .mx-guard-stage:last-child::before {
1784
+ display: none;
1785
+ }
1786
+
1787
+ .mx-guard-stage-header {
1788
+ display: flex;
1789
+ align-items: center;
1790
+ gap: 0.45rem;
1791
+ padding: 0.55rem 0;
1792
+ position: relative;
1793
+ }
1794
+
1795
+ .mx-guard-stage-number {
1796
+ position: absolute;
1797
+ left: -2.1rem;
1798
+ top: 50%;
1799
+ transform: translateY(-50%);
1800
+ width: 28px;
1801
+ height: 28px;
1802
+ border-radius: 50%;
1803
+ background: var(--mx-primary);
1804
+ color: #fff;
1805
+ font-size: 0.75rem;
1806
+ font-weight: 700;
1807
+ display: flex;
1808
+ align-items: center;
1809
+ justify-content: center;
1810
+ z-index: 1;
1811
+ box-shadow: 0 0 0 3px #fff;
1812
+ }
1813
+
1814
+ .mx-guard-stage-icon {
1815
+ display: flex;
1816
+ align-items: center;
1817
+ color: var(--mx-primary);
1818
+ }
1819
+
1820
+ .mx-guard-stage-title {
1821
+ font-weight: 700;
1822
+ font-size: 0.92rem;
1823
+ color: var(--mx-text-main);
1824
+ }
1825
+
1826
+ .mx-guard-stage-policy {
1827
+ font-size: 0.72rem;
1828
+ color: var(--mx-text-muted);
1829
+ background: #f1f5f9;
1830
+ border: 1px solid var(--mx-border);
1831
+ border-radius: 9999px;
1832
+ padding: 0.15rem 0.55rem;
1833
+ margin-left: 0.25rem;
1834
+ white-space: nowrap;
1835
+ }
1836
+
1837
+ .mx-guard-stage-body {
1838
+ display: flex;
1839
+ flex-direction: column;
1840
+ gap: 0.35rem;
1841
+ padding-bottom: 1rem;
1842
+ }
1843
+
1844
+ .mx-guard-row {
1845
+ display: flex;
1846
+ align-items: center;
1847
+ justify-content: space-between;
1848
+ gap: 0.75rem;
1849
+ padding: 0.55rem 0.75rem;
1850
+ border-radius: var(--mx-radius-sm);
1851
+ background: #fff;
1852
+ border: 1px solid var(--mx-border);
1853
+ transition:
1854
+ border-color 0.15s ease,
1855
+ box-shadow 0.15s ease;
1856
+ }
1857
+
1858
+ .mx-guard-row:hover {
1859
+ box-shadow: var(--mx-shadow-sm);
1860
+ }
1861
+
1862
+ .mx-guard-row--required {
1863
+ border-left: 3px solid #ef4444;
1864
+ }
1865
+
1866
+ .mx-guard-row--info {
1867
+ border-left: 3px solid #94a3b8;
1868
+ }
1869
+
1870
+ .mx-guard-row-left {
1871
+ display: flex;
1872
+ align-items: center;
1873
+ gap: 0.55rem;
1874
+ min-width: 0;
1875
+ }
1876
+
1877
+ .mx-guard-row-order {
1878
+ flex-shrink: 0;
1879
+ width: 20px;
1880
+ height: 20px;
1881
+ border-radius: 50%;
1882
+ background: #f1f5f9;
1883
+ color: var(--mx-text-muted);
1884
+ font-size: 0.68rem;
1885
+ font-weight: 700;
1886
+ display: flex;
1887
+ align-items: center;
1888
+ justify-content: center;
1889
+ }
1890
+
1891
+ .mx-guard-row-name {
1892
+ font-size: 0.86rem;
1893
+ font-weight: 600;
1894
+ color: var(--mx-text-main);
1895
+ white-space: nowrap;
1896
+ overflow: hidden;
1897
+ text-overflow: ellipsis;
1898
+ }
1899
+
1900
+ .mx-guard-row-right {
1901
+ display: flex;
1902
+ align-items: center;
1903
+ gap: 0.65rem;
1904
+ flex-shrink: 0;
1905
+ }
1906
+
1907
+ .mx-guard-indicator {
1908
+ display: inline-flex;
1909
+ align-items: center;
1910
+ gap: 0.3rem;
1911
+ font-size: 0.74rem;
1912
+ font-weight: 500;
1913
+ }
1914
+
1915
+ .mx-guard-indicator--auto {
1916
+ color: #16a34a;
1917
+ }
1918
+
1919
+ .mx-guard-indicator--user {
1920
+ color: #d97706;
1921
+ }
1922
+
1923
+ .mx-guard-severity {
1924
+ font-size: 0.68rem;
1925
+ font-weight: 700;
1926
+ text-transform: uppercase;
1927
+ letter-spacing: 0.04em;
1928
+ padding: 0.15rem 0.45rem;
1929
+ border-radius: 4px;
1930
+ }
1931
+
1932
+ .mx-guard-severity--required {
1933
+ background: #fef2f2;
1934
+ color: #dc2626;
1935
+ border: 1px solid #fecaca;
1936
+ }
1937
+
1938
+ .mx-guard-severity--optional {
1939
+ background: #f8fafc;
1940
+ color: #94a3b8;
1941
+ border: 1px solid #e2e8f0;
1942
+ }
1943
+
1944
+ .mx-detail-sidebar-title {
1945
+ font-size: 1rem;
1946
+ margin-bottom: 0.9rem;
1947
+ }
1948
+
1949
+ .mx-detail-sidebar > .mx-sidebar-card:first-child {
1950
+ padding: 1.02rem 1.1rem 1.15rem;
1951
+ }
1952
+
1953
+ .mx-meta-item {
1954
+ display: flex;
1955
+ flex-direction: column;
1956
+ gap: 0.25rem;
1957
+ margin-bottom: 1rem;
1958
+ }
1959
+
1960
+ .mx-meta-item-top {
1961
+ align-items: flex-start;
1962
+ }
1963
+
1964
+ .mx-meta-label {
1965
+ font-size: 0.7rem;
1966
+ font-weight: 700;
1967
+ text-transform: uppercase;
1968
+ color: var(--mx-text-muted);
1969
+ letter-spacing: 0.07em;
1970
+ }
1971
+
1972
+ .mx-meta-value {
1973
+ font-size: 0.9rem;
1974
+ color: var(--mx-text-main);
1975
+ font-weight: 500;
1976
+ line-height: 1.35;
1977
+ }
1978
+
1979
+ .mx-meta-stack-sm,
1980
+ .mx-meta-stack-md {
1981
+ display: grid;
1982
+ }
1983
+
1984
+ .mx-meta-stack-sm {
1985
+ gap: 0.25rem;
1986
+ }
1987
+
1988
+ .mx-meta-stack-md {
1989
+ gap: 0.35rem;
1990
+ }
1991
+
1992
+ .mx-meta-code {
1993
+ font-size: 0.75rem;
1994
+ background: #f1f5f9;
1995
+ border: 1px solid #e2e8f0;
1996
+ padding: 2px 6px;
1997
+ border-radius: 6px;
1998
+ line-height: 1.35;
1999
+ overflow-wrap: anywhere;
2000
+ }
2001
+
2002
+ .mx-tag-list {
2003
+ margin-top: 0.45rem;
2004
+ }
2005
+
2006
+ .mx-tag {
2007
+ display: inline-block;
2008
+ padding: 0.22rem 0.62rem;
2009
+ background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
2010
+ color: #475569;
2011
+ border: 1px solid #e2e8f0;
2012
+ border-radius: 2rem;
2013
+ font-size: 0.7rem;
2014
+ font-weight: 600;
2015
+ margin-right: 0.35rem;
2016
+ margin-bottom: 0.35rem;
2017
+ }
2018
+
2019
+ .mx-detail-terms-link-wrap {
2020
+ margin-top: 1rem;
2021
+ padding-top: 1rem;
2022
+ border-top: 1px solid var(--mx-border);
2023
+ }
2024
+
2025
+ .mx-detail-terms-link {
2026
+ padding: 0;
2027
+ font-size: 0.875rem;
2028
+ color: var(--mx-primary);
2029
+ justify-content: flex-start;
2030
+ }
2031
+
2032
+ .mx-detail-primary-cta,
2033
+ .mx-detail-secondary-cta {
2034
+ width: 100%;
2035
+ }
2036
+
2037
+ .mx-detail-primary-cta {
2038
+ padding: 0.95rem 1rem;
2039
+ box-shadow: 0 10px 20px rgba(37, 99, 235, 0.18);
2040
+ }
2041
+
2042
+ .mx-detail-secondary-cta {
2043
+ justify-content: center;
2044
+ min-height: 40px;
2045
+ border-radius: 12px;
2046
+ background: rgba(255, 255, 255, 0.8);
2047
+ }
2048
+
2049
+ .mx-detail-modal-backdrop {
2050
+ position: fixed;
2051
+ inset: 0;
2052
+ background: rgba(15, 23, 42, 0.6);
2053
+ display: grid;
2054
+ place-items: center;
2055
+ padding: 1rem;
2056
+ z-index: 100;
2057
+ backdrop-filter: blur(4px);
2058
+ }
2059
+
2060
+ .mx-detail-modal {
2061
+ width: min(700px, 100%);
2062
+ max-height: 90vh;
2063
+ overflow: auto;
2064
+ position: relative;
2065
+ }
2066
+
2067
+ .mx-detail-modal-head {
2068
+ display: flex;
2069
+ justify-content: space-between;
2070
+ align-items: center;
2071
+ gap: 1rem;
2072
+ margin-bottom: 1.5rem;
2073
+ }
2074
+
2075
+ .mx-detail-modal-head .mx-btn-ghost {
2076
+ padding: 0.5rem;
2077
+ font-size: 1.5rem;
2078
+ line-height: 1;
2079
+ }
2080
+
2081
+ .mx-detail-modal-body {
2082
+ display: grid;
2083
+ gap: 1rem;
2084
+ }
2085
+
2086
+ .mx-detail-modal-copy {
2087
+ font-size: 0.9375rem;
2088
+ }
2089
+
2090
+ .mx-detail-modal-link {
2091
+ justify-content: center;
2092
+ }
2093
+
2094
+ .mx-detail-terms-accept {
2095
+ display: flex;
2096
+ gap: 0.75rem;
2097
+ align-items: flex-start;
2098
+ cursor: pointer;
2099
+ margin-top: 1rem;
2100
+ padding: 1rem;
2101
+ background: #f8fafc;
2102
+ border-radius: var(--mx-radius-md);
2103
+ border: 1px solid var(--mx-border);
2104
+ }
2105
+
2106
+ .mx-detail-terms-checkbox {
2107
+ width: 20px;
2108
+ height: 20px;
2109
+ margin-top: 2px;
2110
+ flex: 0 0 auto;
2111
+ }
2112
+
2113
+ .mx-detail-terms-copy {
2114
+ font-size: 0.875rem;
2115
+ font-weight: 500;
2116
+ color: var(--mx-text-main);
2117
+ line-height: 1.45;
2118
+ }
2119
+
2120
+ .mx-detail-modal-actions {
2121
+ display: flex;
2122
+ justify-content: flex-end;
2123
+ gap: 1rem;
2124
+ margin-top: 2rem;
2125
+ flex-wrap: wrap;
2126
+ }
2127
+
2128
+ .mx-widget-view-shell {
2129
+ display: flex;
2130
+ flex-direction: column;
2131
+ min-height: 0;
2132
+ }
2133
+
2134
+ .mx-widget-view-content {
2135
+ min-height: 0;
2136
+ }
2137
+
2138
+ .mx-widget-view-shell.is-host-expanded {
2139
+ max-width: none;
2140
+ width: 100%;
2141
+ margin: 0;
2142
+ padding: 0.5rem;
2143
+ min-height: 100%;
2144
+ height: 100%;
2145
+ }
2146
+
2147
+ .mx-widget-view-shell.is-host-expanded .mx-widget-view-content {
2148
+ flex: 1;
2149
+ height: 100%;
2150
+ min-height: 0;
2151
+ }
2152
+
2153
+ .mx-widget-view-shell.is-host-expanded .mx-widget-view-content iframe {
2154
+ min-height: 0 !important;
2155
+ height: 100% !important;
2156
+ width: 100% !important;
2157
+ display: block !important;
2158
+ flex: 1 1 auto;
2159
+ border-radius: 12px !important;
2160
+ box-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
2161
+ }
2162
+
2163
+ .mx-widget-view-shell.is-host-expanded[data-expand-stage="fullscreen"] {
2164
+ padding: 0;
2165
+ }
2166
+
2167
+ .mx-widget-view-shell.is-host-expanded[data-expand-stage="fullscreen"] iframe {
2168
+ border-radius: 0 !important;
2169
+ box-shadow: none;
2170
+ }
2171
+
2172
+ .mx-screenshots {
2173
+ display: flex;
2174
+ gap: 1rem;
2175
+ overflow-x: auto;
2176
+ padding-bottom: 1rem;
2177
+ scrollbar-width: thin;
2178
+ }
2179
+
2180
+ .mx-screenshot {
2181
+ height: 300px;
2182
+ border-radius: var(--mx-radius-md);
2183
+ border: 1px solid var(--mx-border);
2184
+ box-shadow: var(--mx-shadow-sm);
2185
+ }
2186
+
2187
+ @media (max-width: 900px) {
2188
+ .mx-detail-topbar {
2189
+ margin-bottom: 1.5rem;
2190
+ }
2191
+
2192
+ .mx-detail-header {
2193
+ margin-bottom: 1.5rem;
2194
+ }
2195
+
2196
+ .mx-detail-actions {
2197
+ width: 100%;
2198
+ justify-content: center;
2199
+ align-self: center;
2200
+ margin-top: 0;
2201
+ }
2202
+
2203
+ .mx-detail-sidebar {
2204
+ gap: 0.875rem;
2205
+ position: static;
2206
+ }
2207
+
2208
+ .mx-detail-section-about,
2209
+ .mx-detail-section-guards,
2210
+ .mx-detail-section-screenshots {
2211
+ padding: 0.95rem;
2212
+ }
2213
+ }
2214
+
2215
+ @container marketplace (max-width: 900px) {
2216
+ .mx-detail-grid {
2217
+ grid-template-columns: 1fr;
2218
+ }
2219
+
2220
+ .mx-detail-topbar {
2221
+ margin-bottom: 1.5rem;
2222
+ }
2223
+
2224
+ .mx-detail-header {
2225
+ grid-template-columns: minmax(84px, 96px) minmax(0, 1fr);
2226
+ gap: 1rem;
2227
+ margin-bottom: 1.5rem;
2228
+ }
2229
+
2230
+ .mx-detail-icon {
2231
+ width: clamp(84px, 20cqi, 108px);
2232
+ height: clamp(84px, 20cqi, 108px);
2233
+ }
2234
+
2235
+ .mx-detail-title {
2236
+ font-size: clamp(1.4rem, 7cqi, 2rem);
2237
+ }
2238
+
2239
+ .mx-detail-subtitle {
2240
+ max-width: none;
2241
+ -webkit-line-clamp: unset;
2242
+ }
2243
+
2244
+ .mx-detail-actions {
2245
+ width: 100%;
2246
+ justify-content: flex-start;
2247
+ align-self: stretch;
2248
+ grid-column: 1 / -1;
2249
+ margin-top: 0;
2250
+ }
2251
+
2252
+ .mx-detail-sidebar {
2253
+ gap: 0.875rem;
2254
+ position: static;
2255
+ }
2256
+
2257
+ .mx-detail-section-about,
2258
+ .mx-detail-section-guards,
2259
+ .mx-detail-section-screenshots {
2260
+ padding: 0.95rem;
2261
+ }
2262
+ }
2263
+
2264
+ @media (max-width: 640px) {
2265
+ .mx-header-actions {
2266
+ width: 100%;
2267
+ align-items: stretch;
2268
+ }
2269
+
2270
+ .mx-header-actions > .mx-btn,
2271
+ .mx-header-actions > .mx-btn-icon,
2272
+ .mx-header-actions > .mx-nav-switch {
2273
+ width: 100%;
2274
+ justify-content: center;
2275
+ }
2276
+
2277
+ .mx-activity-tabs {
2278
+ display: grid;
2279
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2280
+ }
2281
+
2282
+ .mx-activity-tab {
2283
+ width: 100%;
2284
+ }
2285
+
2286
+ .mx-catalog-container.is-embedded {
2287
+ padding: 1rem 0.85rem 1.25rem;
2288
+ }
2289
+
2290
+ .mx-detail-topbar-left,
2291
+ .mx-detail-topbar-right,
2292
+ .mx-detail-modal-actions {
2293
+ width: 100%;
2294
+ }
2295
+
2296
+ .mx-detail-topbar-right {
2297
+ justify-content: flex-end;
2298
+ }
2299
+
2300
+ .mx-section-title {
2301
+ font-size: 1.12rem;
2302
+ margin-bottom: 0.75rem;
2303
+ }
2304
+
2305
+ .mx-detail-desc {
2306
+ font-size: 1rem;
2307
+ line-height: 1.55;
2308
+ }
2309
+
2310
+ .mx-detail-widget-card {
2311
+ gap: 0.75rem;
2312
+ padding: 0.88rem 0.92rem;
2313
+ align-items: flex-start;
2314
+ }
2315
+
2316
+ .mx-detail-widget-icon {
2317
+ width: 40px;
2318
+ height: 40px;
2319
+ border-radius: 12px;
2320
+ }
2321
+
2322
+ .mx-detail-widget-name {
2323
+ font-size: 0.95rem;
2324
+ line-height: 1.35;
2325
+ }
2326
+
2327
+ .mx-detail-widget-tool {
2328
+ font-size: 0.74rem;
2329
+ overflow-wrap: anywhere;
2330
+ }
2331
+
2332
+ .mx-detail-widget-badges {
2333
+ gap: 0.28rem;
2334
+ }
2335
+
2336
+ .mx-detail-widget-badge {
2337
+ font-size: 0.62rem;
2338
+ }
2339
+
2340
+ .mx-detail-widget-action-label {
2341
+ display: none;
2342
+ }
2343
+
2344
+ .mx-guard-summary-card {
2345
+ padding: 0.95rem;
2346
+ }
2347
+
2348
+ .mx-guard-summary-text {
2349
+ font-size: 0.86rem;
2350
+ line-height: 1.5;
2351
+ }
2352
+
2353
+ .mx-table[data-responsive="cards"] tbody {
2354
+ padding: 0.75rem;
2355
+ gap: 0.7rem;
2356
+ }
2357
+
2358
+ .mx-table[data-responsive="cards"] tbody tr {
2359
+ padding: 0.85rem;
2360
+ }
2361
+
2362
+ .mx-table[data-responsive="cards"] td {
2363
+ grid-template-columns: minmax(78px, 94px) minmax(0, 1fr);
2364
+ gap: 0.2rem 0.65rem;
2365
+ }
2366
+
2367
+ .mx-request-section {
2368
+ padding: 1rem;
2369
+ }
2370
+
2371
+ .mx-record-panel-kicker {
2372
+ font-size: 0.68rem;
2373
+ }
2374
+
2375
+ .mx-record-panel-id {
2376
+ font-size: 0.96rem;
2377
+ }
2378
+
2379
+ .mx-record-value {
2380
+ font-size: 0.9rem;
2381
+ }
2382
+ }
2383
+
2384
+ @container marketplace (max-width: 640px) {
2385
+ .mx-header-actions {
2386
+ width: 100%;
2387
+ align-items: stretch;
2388
+ }
2389
+
2390
+ .mx-header-actions > .mx-btn,
2391
+ .mx-header-actions > .mx-btn-icon,
2392
+ .mx-header-actions > .mx-nav-switch {
2393
+ width: 100%;
2394
+ justify-content: center;
2395
+ }
2396
+
2397
+ .mx-activity-tabs {
2398
+ display: grid;
2399
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2400
+ }
2401
+
2402
+ .mx-activity-tab {
2403
+ width: 100%;
2404
+ }
2405
+
2406
+ .mx-catalog-container.is-embedded {
2407
+ padding: 1rem 0.85rem 1.25rem;
2408
+ }
2409
+
2410
+ .mx-breadcrumb {
2411
+ width: 100%;
2412
+ padding: 0.55rem 0.7rem;
2413
+ border-radius: 16px;
2414
+ }
2415
+
2416
+ .mx-breadcrumb a,
2417
+ .mx-breadcrumb-link-btn,
2418
+ .mx-breadcrumb > span:not(.mx-breadcrumb-sep) {
2419
+ white-space: normal;
2420
+ overflow: visible;
2421
+ text-overflow: clip;
2422
+ }
2423
+
2424
+ .mx-detail-topbar-left,
2425
+ .mx-detail-topbar-right,
2426
+ .mx-detail-modal-actions {
2427
+ width: 100%;
2428
+ }
2429
+
2430
+ .mx-detail-topbar-right {
2431
+ justify-content: flex-end;
2432
+ }
2433
+
2434
+ .mx-section-title {
2435
+ font-size: 1.12rem;
2436
+ margin-bottom: 0.75rem;
2437
+ }
2438
+
2439
+ .mx-detail-header {
2440
+ grid-template-columns: 1fr;
2441
+ gap: 0.9rem;
2442
+ text-align: center;
2443
+ justify-items: center;
2444
+ padding: 1rem;
2445
+ }
2446
+
2447
+ .mx-detail-info {
2448
+ width: 100%;
2449
+ }
2450
+
2451
+ .mx-detail-actions {
2452
+ justify-content: stretch;
2453
+ }
2454
+
2455
+ .mx-detail-desc {
2456
+ font-size: 1rem;
2457
+ line-height: 1.55;
2458
+ }
2459
+
2460
+ .mx-detail-widget-card {
2461
+ gap: 0.75rem;
2462
+ padding: 0.88rem 0.92rem;
2463
+ align-items: flex-start;
2464
+ }
2465
+
2466
+ .mx-detail-widget-icon {
2467
+ width: 40px;
2468
+ height: 40px;
2469
+ border-radius: 12px;
2470
+ }
2471
+
2472
+ .mx-detail-widget-name {
2473
+ font-size: 0.95rem;
2474
+ line-height: 1.35;
2475
+ }
2476
+
2477
+ .mx-detail-widget-tool {
2478
+ font-size: 0.74rem;
2479
+ overflow-wrap: anywhere;
2480
+ }
2481
+
2482
+ .mx-detail-widget-badges {
2483
+ gap: 0.28rem;
2484
+ }
2485
+
2486
+ .mx-detail-widget-badge {
2487
+ font-size: 0.62rem;
2488
+ }
2489
+
2490
+ .mx-detail-widget-action-label {
2491
+ display: none;
2492
+ }
2493
+
2494
+ .mx-guard-summary-card {
2495
+ padding: 0.95rem;
2496
+ }
2497
+
2498
+ .mx-guard-summary-text {
2499
+ font-size: 0.86rem;
2500
+ line-height: 1.5;
2501
+ }
2502
+
2503
+ .mx-table[data-responsive="cards"] tbody {
2504
+ padding: 0.75rem;
2505
+ gap: 0.7rem;
2506
+ }
2507
+
2508
+ .mx-table[data-responsive="cards"] tbody tr {
2509
+ padding: 0.85rem;
2510
+ }
2511
+
2512
+ .mx-table[data-responsive="cards"] td {
2513
+ grid-template-columns: minmax(78px, 94px) minmax(0, 1fr);
2514
+ gap: 0.2rem 0.65rem;
2515
+ }
2516
+
2517
+ .mx-request-section {
2518
+ padding: 1rem;
2519
+ }
2520
+
2521
+ .mx-record-panel-kicker {
2522
+ font-size: 0.68rem;
2523
+ }
2524
+
2525
+ .mx-record-panel-id {
2526
+ font-size: 0.96rem;
2527
+ }
2528
+
2529
+ .mx-record-value {
2530
+ font-size: 0.9rem;
2531
+ }
2532
+ }
2533
+
2534
+ @media (max-width: 480px) {
2535
+ .mx-detail-header {
2536
+ padding: 0.75rem;
2537
+ }
2538
+
2539
+ .mx-detail-icon {
2540
+ width: 80px;
2541
+ height: 80px;
2542
+ }
2543
+
2544
+ .mx-detail-section-about,
2545
+ .mx-detail-section-guards,
2546
+ .mx-detail-section-screenshots {
2547
+ padding: 0.85rem;
2548
+ }
2549
+
2550
+ .mx-sidebar-card {
2551
+ padding: 1.1rem;
2552
+ }
2553
+
2554
+ .mx-detail-actions {
2555
+ flex-direction: column;
2556
+ }
2557
+
2558
+ .mx-detail-actions .mx-btn {
2559
+ width: 100%;
2560
+ justify-content: center;
2561
+ }
2562
+
2563
+ .mx-activity-tabs {
2564
+ grid-template-columns: 1fr;
2565
+ gap: 0.4rem;
2566
+ }
2567
+
2568
+ .mx-table[data-responsive="cards"] td {
2569
+ grid-template-columns: 1fr;
2570
+ gap: 0.15rem;
2571
+ }
2572
+
2573
+ .mx-table[data-responsive="cards"] td::before {
2574
+ font-size: 0.6rem;
2575
+ }
2576
+
2577
+ .mx-request-section {
2578
+ padding: 0.9rem;
2579
+ }
2580
+
2581
+ .mx-request-section-title {
2582
+ font-size: 1.05rem;
2583
+ }
2584
+
2585
+ .mx-request-meta-row {
2586
+ font-size: 0.76rem;
2587
+ }
2588
+
2589
+ .mx-payment-lock-actions {
2590
+ display: grid;
2591
+ grid-template-columns: 1fr;
2592
+ }
2593
+
2594
+ .mx-payment-lock-actions > * {
2595
+ width: 100%;
2596
+ }
2597
+
2598
+ .mx-timeline-item {
2599
+ padding-left: 1.9rem;
2600
+ padding-bottom: 1rem;
2601
+ }
2602
+
2603
+ .mx-timeline-item::before {
2604
+ left: 0.48rem;
2605
+ top: 1.2rem;
2606
+ }
2607
+
2608
+ .mx-timeline-dot {
2609
+ width: 1.05rem;
2610
+ height: 1.05rem;
2611
+ }
2612
+
2613
+ .mx-timeline-dot-icon {
2614
+ width: 0.55rem;
2615
+ height: 0.55rem;
2616
+ }
2617
+
2618
+ .mx-event-card {
2619
+ padding: 0.85rem 0.9rem;
2620
+ }
2621
+
2622
+ .mx-record-panel {
2623
+ padding: 0.85rem;
2624
+ }
2625
+
2626
+ .mx-detail-widget-card {
2627
+ padding: 0.8rem 0.82rem;
2628
+ }
2629
+
2630
+ .mx-detail-widget-action {
2631
+ display: none;
2632
+ }
2633
+
2634
+ .mx-widget-loading {
2635
+ padding: 3rem 1rem;
2636
+ }
2637
+
2638
+ .mx-widget-error {
2639
+ padding: 3rem 1rem;
2640
+ }
2641
+ }
2642
+
2643
+ @container marketplace (max-width: 480px) {
2644
+ .mx-detail-header {
2645
+ padding: 0.75rem;
2646
+ }
2647
+
2648
+ .mx-detail-icon {
2649
+ width: 80px;
2650
+ height: 80px;
2651
+ }
2652
+
2653
+ .mx-detail-section-about,
2654
+ .mx-detail-section-guards,
2655
+ .mx-detail-section-screenshots {
2656
+ padding: 0.85rem;
2657
+ }
2658
+
2659
+ .mx-sidebar-card {
2660
+ padding: 1.1rem;
2661
+ }
2662
+
2663
+ .mx-detail-actions {
2664
+ flex-direction: column;
2665
+ }
2666
+
2667
+ .mx-detail-actions .mx-btn {
2668
+ width: 100%;
2669
+ justify-content: center;
2670
+ }
2671
+
2672
+ .mx-activity-tabs {
2673
+ grid-template-columns: 1fr;
2674
+ gap: 0.4rem;
2675
+ }
2676
+
2677
+ .mx-table[data-responsive="cards"] td {
2678
+ grid-template-columns: 1fr;
2679
+ gap: 0.15rem;
2680
+ }
2681
+
2682
+ .mx-table[data-responsive="cards"] td::before {
2683
+ font-size: 0.6rem;
2684
+ }
2685
+
2686
+ .mx-request-section {
2687
+ padding: 0.9rem;
2688
+ }
2689
+
2690
+ .mx-request-section-title {
2691
+ font-size: 1.05rem;
2692
+ }
2693
+
2694
+ .mx-request-meta-row {
2695
+ font-size: 0.76rem;
2696
+ }
2697
+
2698
+ .mx-payment-lock-actions {
2699
+ display: grid;
2700
+ grid-template-columns: 1fr;
2701
+ }
2702
+
2703
+ .mx-payment-lock-actions > * {
2704
+ width: 100%;
2705
+ }
2706
+
2707
+ .mx-timeline-item {
2708
+ padding-left: 1.9rem;
2709
+ padding-bottom: 1rem;
2710
+ }
2711
+
2712
+ .mx-timeline-item::before {
2713
+ left: 0.48rem;
2714
+ top: 1.2rem;
2715
+ }
2716
+
2717
+ .mx-timeline-dot {
2718
+ width: 1.05rem;
2719
+ height: 1.05rem;
2720
+ }
2721
+
2722
+ .mx-timeline-dot-icon {
2723
+ width: 0.55rem;
2724
+ height: 0.55rem;
2725
+ }
2726
+
2727
+ .mx-event-card {
2728
+ padding: 0.85rem 0.9rem;
2729
+ }
2730
+
2731
+ .mx-record-panel {
2732
+ padding: 0.85rem;
2733
+ }
2734
+
2735
+ .mx-detail-widget-card {
2736
+ padding: 0.8rem 0.82rem;
2737
+ }
2738
+
2739
+ .mx-detail-widget-action {
2740
+ display: none;
2741
+ }
2742
+
2743
+ .mx-widget-loading,
2744
+ .mx-widget-error {
2745
+ padding: 3rem 1rem;
2746
+ }
2747
+ }
2748
+
2749
+ /* ── Loading / skeleton ─────────────────────────────── */
2750
+
2751
+ .mx-loading-center {
2752
+ display: flex;
2753
+ flex-direction: column;
2754
+ align-items: center;
2755
+ justify-content: center;
2756
+ gap: 1rem;
2757
+ padding: 4rem 1rem;
2758
+ color: var(--mx-text-muted);
2759
+ font-size: 0.92rem;
2760
+ }
2761
+
2762
+ .mx-spinner {
2763
+ width: 28px;
2764
+ height: 28px;
2765
+ border: 3px solid var(--mx-border);
2766
+ border-top-color: var(--mx-primary);
2767
+ border-radius: 50%;
2768
+ animation: mx-spin 0.8s linear infinite;
2769
+ }
2770
+
2771
+ .mx-spinner-lg {
2772
+ width: 36px;
2773
+ height: 36px;
2774
+ border-width: 3.5px;
2775
+ }
2776
+
2777
+ .mx-skeleton-card {
2778
+ background: var(--mx-card-bg);
2779
+ border-radius: var(--mx-radius-lg);
2780
+ border: 1px solid var(--mx-border);
2781
+ overflow: hidden;
2782
+ height: 100%;
2783
+ display: flex;
2784
+ flex-direction: column;
2785
+ }
2786
+
2787
+ .mx-skeleton-card-image {
2788
+ height: 180px;
2789
+ background: linear-gradient(90deg, #f1f5f9 25%, #e8edf3 50%, #f1f5f9 75%);
2790
+ background-size: 200% 100%;
2791
+ animation: mx-shimmer 1.5s ease-in-out infinite;
2792
+ }
2793
+
2794
+ .mx-skeleton-card-content {
2795
+ padding: 1.25rem;
2796
+ display: flex;
2797
+ flex-direction: column;
2798
+ gap: 0.75rem;
2799
+ flex: 1;
2800
+ }
2801
+
2802
+ .mx-skeleton-line {
2803
+ height: 14px;
2804
+ border-radius: 6px;
2805
+ background: linear-gradient(90deg, #f1f5f9 25%, #e8edf3 50%, #f1f5f9 75%);
2806
+ background-size: 200% 100%;
2807
+ animation: mx-shimmer 1.5s ease-in-out infinite;
2808
+ }
2809
+
2810
+ .mx-skeleton-line-sm {
2811
+ height: 10px;
2812
+ width: 50%;
2813
+ }
2814
+
2815
+ .mx-skeleton-line-title {
2816
+ height: 18px;
2817
+ width: 70%;
2818
+ }
2819
+
2820
+ .mx-skeleton-line-full {
2821
+ width: 100%;
2822
+ }
2823
+
2824
+ .mx-skeleton-line-short {
2825
+ width: 35%;
2826
+ }
2827
+
2828
+ @keyframes mx-shimmer {
2829
+ 0% {
2830
+ background-position: 200% 0;
2831
+ }
2832
+ 100% {
2833
+ background-position: -200% 0;
2834
+ }
2835
+ }
2836
+
2837
+ /* ── Catalog results / empty ────────────────────────── */
2838
+
2839
+ .mx-results-bar {
2840
+ display: flex;
2841
+ align-items: center;
2842
+ justify-content: space-between;
2843
+ gap: 1rem;
2844
+ margin-bottom: 1.25rem;
2845
+ flex-wrap: wrap;
2846
+ }
2847
+
2848
+ .mx-results-count {
2849
+ font-size: 0.82rem;
2850
+ color: var(--mx-text-muted);
2851
+ font-weight: 600;
2852
+ }
2853
+
2854
+ .mx-empty-catalog {
2855
+ grid-column: 1 / -1;
2856
+ display: flex;
2857
+ flex-direction: column;
2858
+ align-items: center;
2859
+ justify-content: center;
2860
+ text-align: center;
2861
+ padding: 4rem 2rem;
2862
+ gap: 0.75rem;
2863
+ }
2864
+
2865
+ .mx-empty-catalog-icon {
2866
+ width: 56px;
2867
+ height: 56px;
2868
+ border-radius: 16px;
2869
+ background: #f1f5f9;
2870
+ display: grid;
2871
+ place-items: center;
2872
+ color: #94a3b8;
2873
+ font-size: 1.5rem;
2874
+ margin-bottom: 0.25rem;
2875
+ }
2876
+
2877
+ .mx-empty-catalog-title {
2878
+ font-size: 1.1rem;
2879
+ font-weight: 700;
2880
+ color: var(--mx-text-main);
2881
+ }
2882
+
2883
+ .mx-empty-catalog-desc {
2884
+ font-size: 0.9rem;
2885
+ color: var(--mx-text-muted);
2886
+ max-width: 44ch;
2887
+ line-height: 1.55;
2888
+ }
2889
+
2890
+ /* ── Installed badge on card ────────────────────────── */
2891
+
2892
+ .mx-card-installed-badge {
2893
+ display: inline-flex;
2894
+ align-items: center;
2895
+ gap: 0.3rem;
2896
+ font-size: 0.68rem;
2897
+ font-weight: 700;
2898
+ color: #166534;
2899
+ background: #dcfce7;
2900
+ border: 1px solid #bbf7d0;
2901
+ padding: 0.15rem 0.5rem;
2902
+ border-radius: 999px;
2903
+ text-transform: uppercase;
2904
+ letter-spacing: 0.03em;
2905
+ }
2906
+
2907
+ .mx-card-installed-badge-dot {
2908
+ width: 6px;
2909
+ height: 6px;
2910
+ border-radius: 50%;
2911
+ background: #16a34a;
2912
+ }
2913
+
2914
+ /* ── Detail page skeleton ───────────────────────────── */
2915
+
2916
+ .mx-detail-skeleton-header {
2917
+ display: grid;
2918
+ grid-template-columns: 120px minmax(0, 1fr);
2919
+ gap: 1.5rem;
2920
+ align-items: start;
2921
+ margin-bottom: 2.25rem;
2922
+ padding: 1.25rem;
2923
+ border: 1px solid var(--mx-border);
2924
+ border-radius: var(--mx-radius-lg);
2925
+ background: #fbfdff;
2926
+ }
2927
+
2928
+ .mx-detail-skeleton-icon {
2929
+ width: 120px;
2930
+ height: 120px;
2931
+ border-radius: var(--mx-radius-lg);
2932
+ background: linear-gradient(90deg, #f1f5f9 25%, #e8edf3 50%, #f1f5f9 75%);
2933
+ background-size: 200% 100%;
2934
+ animation: mx-shimmer 1.5s ease-in-out infinite;
2935
+ }
2936
+
2937
+ .mx-detail-skeleton-info {
2938
+ display: flex;
2939
+ flex-direction: column;
2940
+ gap: 0.65rem;
2941
+ padding-top: 0.25rem;
2942
+ }
2943
+
2944
+ .mx-detail-skeleton-grid {
2945
+ display: grid;
2946
+ grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr);
2947
+ gap: 1.75rem;
2948
+ }
2949
+
2950
+ .mx-detail-skeleton-sections {
2951
+ display: flex;
2952
+ flex-direction: column;
2953
+ gap: 1.25rem;
2954
+ }
2955
+
2956
+ .mx-detail-skeleton-section {
2957
+ border: 1px solid var(--mx-border);
2958
+ border-radius: var(--mx-radius-lg);
2959
+ padding: 1.25rem;
2960
+ display: flex;
2961
+ flex-direction: column;
2962
+ gap: 0.75rem;
2963
+ }
2964
+
2965
+ .mx-detail-skeleton-sidebar-card {
2966
+ border: 1px solid var(--mx-border);
2967
+ border-radius: var(--mx-radius-lg);
2968
+ padding: 1.5rem;
2969
+ display: flex;
2970
+ flex-direction: column;
2971
+ gap: 0.85rem;
2972
+ }
2973
+
2974
+ @media (max-width: 900px) {
2975
+ .mx-detail-skeleton-grid {
2976
+ grid-template-columns: 1fr;
2977
+ }
2978
+ }
2979
+
2980
+ @media (max-width: 768px) {
2981
+ .mx-detail-skeleton-header {
2982
+ grid-template-columns: 1fr;
2983
+ justify-items: center;
2984
+ }
2985
+ }
2986
+
2987
+ /* ── Widget view loading ────────────────────────────── */
2988
+
2989
+ .mx-widget-loading {
2990
+ display: flex;
2991
+ flex-direction: column;
2992
+ align-items: center;
2993
+ justify-content: center;
2994
+ gap: 1rem;
2995
+ padding: 5rem 2rem;
2996
+ text-align: center;
2997
+ }
2998
+
2999
+ .mx-widget-loading-title {
3000
+ font-size: 1rem;
3001
+ font-weight: 700;
3002
+ color: var(--mx-text-main);
3003
+ }
3004
+
3005
+ .mx-widget-loading-sub {
3006
+ font-size: 0.875rem;
3007
+ color: var(--mx-text-muted);
3008
+ }
3009
+
3010
+ .mx-widget-error {
3011
+ display: flex;
3012
+ flex-direction: column;
3013
+ align-items: center;
3014
+ justify-content: center;
3015
+ gap: 1rem;
3016
+ padding: 4rem 2rem;
3017
+ text-align: center;
3018
+ }
3019
+
3020
+ .mx-widget-error-title {
3021
+ font-size: 1.15rem;
3022
+ font-weight: 700;
3023
+ color: #991b1b;
3024
+ }
3025
+
3026
+ .mx-widget-error-desc {
3027
+ font-size: 0.9rem;
3028
+ color: var(--mx-text-muted);
3029
+ max-width: 48ch;
3030
+ line-height: 1.55;
3031
+ }
3032
+
3033
+ .mx-widget-error-actions {
3034
+ display: flex;
3035
+ gap: 0.75rem;
3036
+ flex-wrap: wrap;
3037
+ margin-top: 0.5rem;
3038
+ }
3039
+
3040
+ /* ── Table utilities ──────────────────────────────────── */
3041
+
3042
+ .mx-table-empty-cell {
3043
+ text-align: center;
3044
+ padding: 3rem 1.5rem;
3045
+ color: var(--mx-text-muted);
3046
+ font-size: 0.9rem;
3047
+ }
3048
+
3049
+ .mx-table-loading-cell {
3050
+ text-align: center;
3051
+ padding: 3rem 1.5rem;
3052
+ }
3053
+
3054
+ .mx-cell-mono {
3055
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
3056
+ font-size: 0.78rem;
3057
+ }
3058
+
3059
+ .mx-cell-id {
3060
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
3061
+ font-size: 0.75rem;
3062
+ }
3063
+
3064
+ .mx-cell-id a {
3065
+ color: var(--mx-primary);
3066
+ font-weight: 600;
3067
+ }
3068
+
3069
+ .mx-cell-bold {
3070
+ font-weight: 700;
3071
+ }
3072
+
3073
+ .mx-cell-muted {
3074
+ color: var(--mx-text-muted);
3075
+ }
3076
+
3077
+ .mx-cell-date {
3078
+ color: var(--mx-text-muted);
3079
+ font-size: 0.78rem;
3080
+ }
3081
+
3082
+ .mx-cell-sub {
3083
+ font-size: 0.78rem;
3084
+ color: var(--mx-text-muted);
3085
+ margin-top: 2px;
3086
+ }
3087
+
3088
+ /* ── Action groups ────────────────────────────────────── */
3089
+
3090
+ .mx-action-group {
3091
+ display: flex;
3092
+ gap: 0.5rem;
3093
+ flex-wrap: wrap;
3094
+ }
3095
+
3096
+ /* ── Pagination ───────────────────────────────────────── */
3097
+
3098
+ .mx-pagination {
3099
+ display: flex;
3100
+ justify-content: center;
3101
+ align-items: center;
3102
+ gap: 1.5rem;
3103
+ margin-top: 2rem;
3104
+ }
3105
+
3106
+ .mx-pagination-info {
3107
+ font-size: 0.875rem;
3108
+ color: var(--mx-text-muted);
3109
+ }
3110
+
3111
+ .mx-pagination-info strong {
3112
+ color: var(--mx-text-main);
3113
+ }
3114
+
3115
+ .mx-pagination .mx-btn.is-disabled,
3116
+ .mx-pagination .mx-btn:disabled {
3117
+ pointer-events: none;
3118
+ opacity: 0.5;
3119
+ }
3120
+
3121
+ /* ── Record loading ───────────────────────────────────── */
3122
+
3123
+ .mx-record-loading {
3124
+ display: flex;
3125
+ align-items: center;
3126
+ gap: 0.75rem;
3127
+ padding: 1.5rem 0;
3128
+ color: var(--mx-text-muted);
3129
+ font-size: 0.875rem;
3130
+ }
3131
+
3132
+ /* ── Guard summary in rows ────────────────────────────── */
3133
+
3134
+ .mx-guard-summary {
3135
+ margin-top: 6px;
3136
+ display: grid;
3137
+ gap: 2px;
3138
+ font-size: 0.7rem;
3139
+ color: var(--mx-text-muted);
3140
+ }
3141
+
3142
+ /* ── Table skeleton loading ───────────────────────────── */
3143
+
3144
+ .mx-table-skeleton {
3145
+ padding: 0;
3146
+ }
3147
+
3148
+ .mx-table-skeleton-row {
3149
+ display: grid;
3150
+ grid-template-columns: 1fr 1.5fr 0.8fr 0.8fr 1fr;
3151
+ gap: 1rem;
3152
+ padding: 0.9rem 1.2rem;
3153
+ border-bottom: 1px solid var(--mx-border);
3154
+ align-items: center;
3155
+ }
3156
+
3157
+ .mx-table-skeleton-row:last-child {
3158
+ border-bottom: none;
3159
+ }
3160
+
3161
+ /* ── Request detail sections ──────────────────────────── */
3162
+
3163
+ .mx-request-section {
3164
+ padding: 2rem;
3165
+ }
3166
+
3167
+ .mx-request-section-head {
3168
+ display: flex;
3169
+ justify-content: space-between;
3170
+ align-items: flex-start;
3171
+ margin-bottom: 1.5rem;
3172
+ flex-wrap: wrap;
3173
+ gap: 1rem;
3174
+ }
3175
+
3176
+ .mx-request-section-title {
3177
+ font-size: 1.5rem;
3178
+ margin-bottom: 0.5rem;
3179
+ }
3180
+
3181
+ .mx-request-meta-row {
3182
+ display: flex;
3183
+ align-items: center;
3184
+ gap: 0.5rem;
3185
+ color: var(--mx-text-muted);
3186
+ font-size: 0.875rem;
3187
+ }
3188
+
3189
+ .mx-request-meta-grid {
3190
+ display: grid;
3191
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
3192
+ gap: 1.5rem;
3193
+ }
3194
+
3195
+ .mx-request-code {
3196
+ font-size: 0.75rem;
3197
+ background: #f1f5f9;
3198
+ padding: 2px 4px;
3199
+ border-radius: 4px;
3200
+ }
3201
+
3202
+ /* ── Payment lock banner ──────────────────────────────── */
3203
+
3204
+ .mx-payment-lock-banner {
3205
+ margin-bottom: 1rem;
3206
+ padding: 0.9rem;
3207
+ border-radius: 10px;
3208
+ border: 1px solid #fcd34d;
3209
+ background: #fffbeb;
3210
+ display: grid;
3211
+ gap: 0.5rem;
3212
+ }
3213
+
3214
+ .mx-payment-lock-title {
3215
+ font-weight: 700;
3216
+ color: #92400e;
3217
+ }
3218
+
3219
+ .mx-payment-lock-message {
3220
+ font-size: 0.9rem;
3221
+ color: #78350f;
3222
+ }
3223
+
3224
+ .mx-payment-lock-actions {
3225
+ display: flex;
3226
+ gap: 0.5rem;
3227
+ flex-wrap: wrap;
3228
+ }
3229
+
3230
+ .mx-payment-lock-error {
3231
+ font-size: 0.85rem;
3232
+ color: #991b1b;
3233
+ }
3234
+
3235
+ /* ── Execution Timeline ──────────────────────────────── */
3236
+
3237
+ .mx-timeline {
3238
+ position: relative;
3239
+ padding: 0;
3240
+ margin: 0;
3241
+ list-style: none;
3242
+ }
3243
+
3244
+ .mx-timeline-item {
3245
+ position: relative;
3246
+ padding-left: 2.25rem;
3247
+ padding-bottom: 1.5rem;
3248
+ }
3249
+
3250
+ .mx-timeline-item:last-child {
3251
+ padding-bottom: 0;
3252
+ }
3253
+
3254
+ /* vertical connector line */
3255
+ .mx-timeline-item::before {
3256
+ content: "";
3257
+ position: absolute;
3258
+ left: 0.5625rem;
3259
+ top: 1.5rem;
3260
+ bottom: 0;
3261
+ width: 2px;
3262
+ background: var(--mx-border);
3263
+ }
3264
+
3265
+ .mx-timeline-item:last-child::before {
3266
+ display: none;
3267
+ }
3268
+
3269
+ /* status dot */
3270
+ .mx-timeline-dot {
3271
+ position: absolute;
3272
+ left: 0;
3273
+ top: 0.25rem;
3274
+ width: 1.25rem;
3275
+ height: 1.25rem;
3276
+ border-radius: 50%;
3277
+ display: flex;
3278
+ align-items: center;
3279
+ justify-content: center;
3280
+ flex-shrink: 0;
3281
+ z-index: 1;
3282
+ border: 2px solid var(--mx-card-bg);
3283
+ box-shadow: 0 0 0 2px var(--mx-border);
3284
+ }
3285
+
3286
+ .mx-timeline-dot-default {
3287
+ background: var(--mx-primary);
3288
+ box-shadow: 0 0 0 2px var(--mx-primary);
3289
+ }
3290
+
3291
+ .mx-timeline-dot-success {
3292
+ background: #10b981;
3293
+ box-shadow: 0 0 0 2px #10b981;
3294
+ }
3295
+
3296
+ .mx-timeline-dot-error {
3297
+ background: #ef4444;
3298
+ box-shadow: 0 0 0 2px #ef4444;
3299
+ }
3300
+
3301
+ .mx-timeline-dot-warn {
3302
+ background: #f59e0b;
3303
+ box-shadow: 0 0 0 2px #f59e0b;
3304
+ }
3305
+
3306
+ .mx-timeline-dot-icon {
3307
+ width: 0.625rem;
3308
+ height: 0.625rem;
3309
+ color: white;
3310
+ }
3311
+
3312
+ .mx-event-card {
3313
+ background: var(--mx-card-bg);
3314
+ border: 1px solid var(--mx-border);
3315
+ border-radius: var(--mx-radius-md);
3316
+ padding: 1rem 1.125rem;
3317
+ transition:
3318
+ border-color 0.2s,
3319
+ box-shadow 0.2s;
3320
+ }
3321
+
3322
+ .mx-event-card:hover {
3323
+ border-color: #cbd5e1;
3324
+ box-shadow: var(--mx-shadow-sm);
3325
+ }
3326
+
3327
+ .mx-event-card-error {
3328
+ background: #fff5f5;
3329
+ border-color: #fecaca;
3330
+ }
3331
+
3332
+ .mx-event-card-error:hover {
3333
+ border-color: #fca5a5;
3334
+ }
3335
+
3336
+ .mx-event-card-warn {
3337
+ background: #fffbeb;
3338
+ border-color: #fde68a;
3339
+ }
3340
+
3341
+ .mx-event-card-warn:hover {
3342
+ border-color: #fcd34d;
3343
+ }
3344
+
3345
+ .mx-event-head {
3346
+ display: flex;
3347
+ justify-content: space-between;
3348
+ align-items: flex-start;
3349
+ gap: 0.75rem;
3350
+ flex-wrap: wrap;
3351
+ }
3352
+
3353
+ .mx-event-type {
3354
+ font-weight: 700;
3355
+ font-size: 0.8125rem;
3356
+ text-transform: uppercase;
3357
+ letter-spacing: 0.03em;
3358
+ color: var(--mx-text-main);
3359
+ display: flex;
3360
+ align-items: center;
3361
+ gap: 0.375rem;
3362
+ }
3363
+
3364
+ .mx-event-type-error {
3365
+ color: #dc2626;
3366
+ }
3367
+
3368
+ .mx-event-type-warn {
3369
+ color: #d97706;
3370
+ }
3371
+
3372
+ .mx-event-code {
3373
+ font-size: 0.6875rem;
3374
+ font-weight: 600;
3375
+ background: rgba(0, 0, 0, 0.06);
3376
+ padding: 1px 6px;
3377
+ border-radius: 4px;
3378
+ color: var(--mx-text-muted);
3379
+ text-transform: none;
3380
+ letter-spacing: 0;
3381
+ }
3382
+
3383
+ .mx-event-time {
3384
+ display: flex;
3385
+ flex-direction: column;
3386
+ align-items: flex-end;
3387
+ gap: 0.125rem;
3388
+ flex-shrink: 0;
3389
+ }
3390
+
3391
+ .mx-event-date {
3392
+ font-size: 0.75rem;
3393
+ color: var(--mx-text-muted);
3394
+ }
3395
+
3396
+ .mx-event-relative {
3397
+ font-size: 0.6875rem;
3398
+ color: var(--mx-text-muted);
3399
+ opacity: 0.8;
3400
+ }
3401
+
3402
+ .mx-event-message {
3403
+ font-size: 0.875rem;
3404
+ color: var(--mx-text-main);
3405
+ margin-top: 0.5rem;
3406
+ line-height: 1.5;
3407
+ }
3408
+
3409
+ .mx-event-guard {
3410
+ display: grid;
3411
+ gap: 0.375rem;
3412
+ margin-top: 0.625rem;
3413
+ padding: 0.625rem 0.75rem;
3414
+ background: rgba(0, 0, 0, 0.02);
3415
+ border-radius: var(--mx-radius-sm);
3416
+ border: 1px solid rgba(0, 0, 0, 0.04);
3417
+ }
3418
+
3419
+ .mx-event-guard-badges {
3420
+ display: flex;
3421
+ flex-wrap: wrap;
3422
+ gap: 0.375rem;
3423
+ }
3424
+
3425
+ .mx-event-guard-detail {
3426
+ font-size: 0.8rem;
3427
+ color: var(--mx-text-muted);
3428
+ line-height: 1.4;
3429
+ }
3430
+
3431
+ .mx-event-progress-track {
3432
+ margin-top: 0.75rem;
3433
+ height: 5px;
3434
+ background: rgba(0, 0, 0, 0.08);
3435
+ border-radius: 999px;
3436
+ overflow: hidden;
3437
+ }
3438
+
3439
+ .mx-event-progress-bar {
3440
+ height: 100%;
3441
+ transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
3442
+ border-radius: 999px;
3443
+ }
3444
+
3445
+ .mx-event-progress-default {
3446
+ background: var(--mx-primary);
3447
+ }
3448
+
3449
+ .mx-event-progress-error {
3450
+ background: #ef4444;
3451
+ }
3452
+
3453
+ .mx-event-payload-toggle {
3454
+ display: inline-flex;
3455
+ align-items: center;
3456
+ gap: 0.375rem;
3457
+ margin-top: 0.75rem;
3458
+ font-size: 0.75rem;
3459
+ font-weight: 600;
3460
+ color: var(--mx-text-muted);
3461
+ cursor: pointer;
3462
+ background: none;
3463
+ border: none;
3464
+ padding: 0.25rem 0;
3465
+ transition: color 0.15s;
3466
+ }
3467
+
3468
+ .mx-event-payload-toggle:hover {
3469
+ color: var(--mx-primary);
3470
+ }
3471
+
3472
+ .mx-event-payload-toggle svg {
3473
+ width: 0.75rem;
3474
+ height: 0.75rem;
3475
+ transition: transform 0.2s;
3476
+ }
3477
+
3478
+ .mx-event-payload-toggle.is-open svg {
3479
+ transform: rotate(90deg);
3480
+ }
3481
+
3482
+ .mx-event-payload-body {
3483
+ margin-top: 0.5rem;
3484
+ padding-top: 0.5rem;
3485
+ border-top: 1px solid var(--mx-border);
3486
+ }
3487
+
3488
+ .mx-timeline-header {
3489
+ display: flex;
3490
+ align-items: center;
3491
+ justify-content: space-between;
3492
+ gap: 1rem;
3493
+ margin-bottom: 1.25rem;
3494
+ }
3495
+
3496
+ .mx-timeline-toggle {
3497
+ display: flex;
3498
+ align-items: center;
3499
+ gap: 0.6rem;
3500
+ width: 100%;
3501
+ background: none;
3502
+ border: none;
3503
+ border-radius: var(--mx-radius-sm);
3504
+ padding: 0.5rem 0.6rem;
3505
+ margin: -0.5rem -0.6rem;
3506
+ margin-bottom: 0;
3507
+ cursor: pointer;
3508
+ color: inherit;
3509
+ font: inherit;
3510
+ text-align: left;
3511
+ outline: none;
3512
+ transition: background 0.15s ease;
3513
+ }
3514
+
3515
+ .mx-timeline-toggle:hover {
3516
+ background: color-mix(in srgb, var(--mx-text-main) 5%, transparent);
3517
+ }
3518
+
3519
+ .mx-timeline-toggle:focus-visible {
3520
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--mx-text-main) 20%, transparent);
3521
+ }
3522
+
3523
+ .mx-timeline-chevron {
3524
+ width: 16px;
3525
+ height: 16px;
3526
+ flex-shrink: 0;
3527
+ transition: transform 0.2s ease;
3528
+ color: var(--mx-text-muted);
3529
+ }
3530
+
3531
+ .mx-timeline-chevron.is-open {
3532
+ transform: rotate(90deg);
3533
+ }
3534
+
3535
+ .mx-timeline-toggle-content {
3536
+ flex: 1;
3537
+ min-width: 0;
3538
+ display: flex;
3539
+ align-items: center;
3540
+ gap: 0.75rem;
3541
+ flex-wrap: wrap;
3542
+ }
3543
+
3544
+ .mx-timeline-toggle-top {
3545
+ display: flex;
3546
+ align-items: center;
3547
+ gap: 0.5rem;
3548
+ }
3549
+
3550
+ .mx-timeline-summary {
3551
+ display: flex;
3552
+ align-items: center;
3553
+ gap: 0.75rem;
3554
+ margin-left: auto;
3555
+ }
3556
+
3557
+ .mx-timeline-dots {
3558
+ display: flex;
3559
+ align-items: center;
3560
+ gap: 2px;
3561
+ }
3562
+
3563
+ .mx-timeline-mini-dot {
3564
+ display: block;
3565
+ width: 7px;
3566
+ height: 7px;
3567
+ border-radius: 50%;
3568
+ flex-shrink: 0;
3569
+ }
3570
+
3571
+ .mx-timeline-mini-dot-default {
3572
+ background: var(--mx-border);
3573
+ }
3574
+
3575
+ .mx-timeline-mini-dot-success {
3576
+ background: #22c55e;
3577
+ }
3578
+
3579
+ .mx-timeline-mini-dot-error {
3580
+ background: #ef4444;
3581
+ }
3582
+
3583
+ .mx-timeline-mini-dot-warn {
3584
+ background: #f59e0b;
3585
+ }
3586
+
3587
+ .mx-timeline-summary-stats {
3588
+ display: flex;
3589
+ align-items: center;
3590
+ gap: 0.5rem;
3591
+ }
3592
+
3593
+ .mx-timeline-stat {
3594
+ font-size: 0.7rem;
3595
+ font-weight: 600;
3596
+ display: flex;
3597
+ align-items: center;
3598
+ gap: 0.2rem;
3599
+ color: var(--mx-text-muted);
3600
+ }
3601
+
3602
+ .mx-timeline-stat::before {
3603
+ content: "";
3604
+ display: inline-block;
3605
+ width: 5px;
3606
+ height: 5px;
3607
+ border-radius: 50%;
3608
+ }
3609
+
3610
+ .mx-timeline-stat-success {
3611
+ color: #16a34a;
3612
+ }
3613
+
3614
+ .mx-timeline-stat-success::before {
3615
+ background: #22c55e;
3616
+ }
3617
+
3618
+ .mx-timeline-stat-error {
3619
+ color: #dc2626;
3620
+ }
3621
+
3622
+ .mx-timeline-stat-error::before {
3623
+ background: #ef4444;
3624
+ }
3625
+
3626
+ .mx-timeline-stat-duration {
3627
+ color: var(--mx-text-muted);
3628
+ }
3629
+
3630
+ .mx-timeline-stat-duration::before {
3631
+ display: none;
3632
+ }
3633
+
3634
+ .mx-timeline-count {
3635
+ font-size: 0.75rem;
3636
+ font-weight: 600;
3637
+ color: var(--mx-text-muted);
3638
+ background: rgba(0, 0, 0, 0.04);
3639
+ padding: 0.25rem 0.625rem;
3640
+ border-radius: 999px;
3641
+ }
3642
+
3643
+ /* ── Waiting response state ───────────────────────────── */
3644
+
3645
+ .mx-waiting-state {
3646
+ text-align: center;
3647
+ padding: 2rem;
3648
+ color: var(--mx-text-muted);
3649
+ }
3650
+
3651
+ /* ── Detail page loading skeleton ─────────────────────── */
3652
+
3653
+ .mx-request-detail-skeleton {
3654
+ display: grid;
3655
+ gap: 2rem;
3656
+ }
3657
+
3658
+ .mx-request-detail-skeleton-section {
3659
+ border: 1px solid var(--mx-border);
3660
+ border-radius: var(--mx-radius-lg);
3661
+ padding: 2rem;
3662
+ display: flex;
3663
+ flex-direction: column;
3664
+ gap: 1rem;
3665
+ }
3666
+
3667
+ /* ── Badge outline (for record pill rows) ─────────────── */
3668
+
3669
+ .mx-badge-outline {
3670
+ background: transparent;
3671
+ border: 1px solid var(--mx-border);
3672
+ color: var(--mx-text-muted);
3673
+ }
3674
+
3675
+ /* ── Subject required alert ───────────────────────────── */
3676
+
3677
+ .mx-alert-subject-title {
3678
+ font-weight: 800;
3679
+ color: var(--mx-text-main);
3680
+ margin-bottom: 0.5rem;
3681
+ }
3682
+
3683
+ .mx-alert-subject-desc {
3684
+ color: var(--mx-text-muted);
3685
+ font-size: 0.875rem;
3686
+ }
3687
+
3688
+ /* ── Sidebar artifact / widget ────────────────────────── */
3689
+
3690
+ .mx-sidebar-stack {
3691
+ display: flex;
3692
+ flex-direction: column;
3693
+ gap: 0.75rem;
3694
+ margin-top: 1rem;
3695
+ }
3696
+
3697
+ .mx-sidebar-artifact-link {
3698
+ font-size: 0.875rem;
3699
+ justify-content: flex-start;
3700
+ overflow: hidden;
3701
+ text-overflow: ellipsis;
3702
+ white-space: nowrap;
3703
+ }
3704
+
3705
+ /* ── Unavailable page state ───────────────────────────── */
3706
+
3707
+ .mx-unavailable {
3708
+ padding: 2rem;
3709
+ text-align: center;
3710
+ }
3711
+
3712
+ .mx-unavailable-title {
3713
+ font-size: 1.5rem;
3714
+ margin-bottom: 1rem;
3715
+ }
3716
+
3717
+ .mx-unavailable-desc {
3718
+ color: var(--mx-text-muted);
3719
+ margin-bottom: 2rem;
3720
+ }
3721
+
3722
+ /* ── Activity sidebar card ────────────────────────────── */
3723
+
3724
+ .mx-activity-card {
3725
+ display: flex;
3726
+ flex-direction: column;
3727
+ gap: 0;
3728
+ }
3729
+
3730
+ .mx-activity-card .mx-section-title {
3731
+ padding: 1.25rem 1.5rem 0.75rem;
3732
+ margin: 0;
3733
+ }
3734
+
3735
+ .mx-activity-link {
3736
+ display: flex;
3737
+ align-items: center;
3738
+ gap: 0.75rem;
3739
+ padding: 0.75rem 1.5rem;
3740
+ text-decoration: none;
3741
+ color: var(--mx-text-main);
3742
+ font-size: 0.875rem;
3743
+ font-weight: 600;
3744
+ border-top: 1px solid var(--mx-border);
3745
+ transition:
3746
+ background 0.15s,
3747
+ color 0.15s;
3748
+ }
3749
+
3750
+ .mx-activity-link:hover {
3751
+ background: #f1f5f9;
3752
+ color: var(--mx-primary);
3753
+ }
3754
+
3755
+ .mx-activity-link-icon {
3756
+ width: 32px;
3757
+ height: 32px;
3758
+ border-radius: 8px;
3759
+ display: grid;
3760
+ place-items: center;
3761
+ font-size: 0.85rem;
3762
+ flex-shrink: 0;
3763
+ }
3764
+
3765
+ .mx-activity-link-icon-requests {
3766
+ background: #eff6ff;
3767
+ color: #2563eb;
3768
+ }
3769
+
3770
+ .mx-activity-link-icon-payments {
3771
+ background: #f0fdf4;
3772
+ color: #16a34a;
3773
+ }
3774
+
3775
+ .mx-activity-link-icon-invoices {
3776
+ background: #fefce8;
3777
+ color: #ca8a04;
3778
+ }
3779
+
3780
+ .mx-activity-link-icon-notifications {
3781
+ background: #fef2f2;
3782
+ color: #dc2626;
3783
+ }
3784
+
3785
+ .mx-activity-link-label {
3786
+ flex: 1;
3787
+ min-width: 0;
3788
+ }
3789
+
3790
+ .mx-activity-link-arrow {
3791
+ color: var(--mx-text-muted);
3792
+ font-size: 0.75rem;
3793
+ transition: transform 0.15s;
3794
+ }
3795
+
3796
+ .mx-activity-link:hover .mx-activity-link-arrow {
3797
+ transform: translateX(2px);
3798
+ color: var(--mx-primary);
3799
+ }
3800
+
3801
+ /* ── Publisher cards ──────────────────────────────────── */
3802
+
3803
+ .mx-publisher-avatar {
3804
+ width: 56px;
3805
+ height: 56px;
3806
+ border-radius: 14px;
3807
+ display: grid;
3808
+ place-items: center;
3809
+ font-size: 1.5rem;
3810
+ font-weight: 800;
3811
+ color: white;
3812
+ flex-shrink: 0;
3813
+ user-select: none;
3814
+ text-transform: uppercase;
3815
+ }
3816
+
3817
+ .mx-publisher-card-body {
3818
+ padding: 1.25rem;
3819
+ display: flex;
3820
+ gap: 1rem;
3821
+ align-items: flex-start;
3822
+ flex: 1;
3823
+ }
3824
+
3825
+ .mx-publisher-card-info {
3826
+ display: flex;
3827
+ flex-direction: column;
3828
+ gap: 0.3rem;
3829
+ min-width: 0;
3830
+ flex: 1;
3831
+ }
3832
+
3833
+ .mx-publisher-card-slug {
3834
+ font-size: 0.72rem;
3835
+ font-weight: 600;
3836
+ color: var(--mx-text-muted);
3837
+ text-transform: uppercase;
3838
+ letter-spacing: 0.04em;
3839
+ }
3840
+
3841
+ .mx-publisher-card-name {
3842
+ font-size: 1.08rem;
3843
+ font-weight: 700;
3844
+ color: var(--mx-text-main);
3845
+ margin: 0;
3846
+ line-height: 1.35;
3847
+ }
3848
+
3849
+ .mx-publisher-card-name a {
3850
+ color: inherit;
3851
+ text-decoration: none;
3852
+ }
3853
+
3854
+ .mx-publisher-card-name a:hover {
3855
+ color: var(--mx-primary);
3856
+ }
3857
+
3858
+ .mx-publisher-card-count {
3859
+ font-size: 0.85rem;
3860
+ color: var(--mx-text-muted);
3861
+ margin-top: 0.15rem;
3862
+ }
3863
+
3864
+ /* ── Utility classes (consolidating inline styles) ──── */
3865
+
3866
+ .mx-input-group-grow {
3867
+ flex: 1;
3868
+ min-width: 200px;
3869
+ }
3870
+
3871
+ .mx-select {
3872
+ min-width: 160px;
3873
+ appearance: auto;
3874
+ }
3875
+
3876
+ .mx-checkbox-label {
3877
+ display: flex;
3878
+ gap: 0.5rem;
3879
+ align-items: center;
3880
+ cursor: pointer;
3881
+ height: 42px;
3882
+ }
3883
+
3884
+ .mx-checkbox {
3885
+ width: 18px;
3886
+ height: 18px;
3887
+ accent-color: var(--mx-primary);
3888
+ cursor: pointer;
3889
+ }
3890
+
3891
+ .mx-label-inline {
3892
+ color: var(--mx-text-main);
3893
+ }
3894
+
3895
+ .mx-card-badges {
3896
+ display: flex;
3897
+ gap: 0.35rem;
3898
+ align-items: center;
3899
+ }
3900
+
3901
+ .mx-card-tags-inline {
3902
+ margin-top: 4px;
3903
+ }
3904
+
3905
+ .mx-subtle-note-link {
3906
+ font-weight: 700;
3907
+ color: var(--mx-primary);
3908
+ }
3909
+
3910
+ .mx-subtle-note-strong {
3911
+ font-weight: 700;
3912
+ }
3913
+
3914
+ .mx-subtle-note-compact {
3915
+ margin-top: 0.5rem;
3916
+ margin-bottom: 0;
3917
+ }
3918
+
3919
+ .mx-alert-panel {
3920
+ margin-top: 1rem;
3921
+ }
3922
+
3923
+ .mx-detail-guard-list-compact {
3924
+ margin-top: 0.5rem;
3925
+ }
3926
+
3927
+ .mx-section-title-md {
3928
+ font-size: 1.125rem;
3929
+ }
3930
+
3931
+ .mx-loading-table {
3932
+ padding: 2rem 1rem;
3933
+ }
3934
+
3935
+ .mx-btn-sidebar {
3936
+ font-size: 0.875rem;
3937
+ width: 100%;
3938
+ }
3939
+
3940
+ .mx-sidebar-help-text {
3941
+ font-size: 0.875rem;
3942
+ color: var(--mx-text-muted);
3943
+ margin: 1rem 0;
3944
+ line-height: 1.5;
3945
+ }
3946
+
3947
+ .mx-skeleton-meta-grid {
3948
+ display: grid;
3949
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
3950
+ gap: 1.5rem;
3951
+ margin-top: 1rem;
3952
+ }
3953
+
3954
+ .mx-skeleton-publisher-row {
3955
+ display: flex;
3956
+ gap: 1rem;
3957
+ padding: 1.25rem;
3958
+ }
3959
+
3960
+ .mx-skeleton-avatar {
3961
+ width: 56px;
3962
+ height: 56px;
3963
+ border-radius: 14px;
3964
+ flex-shrink: 0;
3965
+ }
3966
+
3967
+ .mx-skeleton-publisher-info {
3968
+ flex: 1;
3969
+ display: flex;
3970
+ flex-direction: column;
3971
+ gap: 0.6rem;
3972
+ }