@qpjoy/ui-design-neon-void 2.0.0

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.
@@ -0,0 +1,1876 @@
1
+ @import "./tokens.css";
2
+
3
+ .qp-app,
4
+ .qp-scope {
5
+ min-height: 100%;
6
+ background: var(--qp-bg-2);
7
+ color: var(--qp-text-1);
8
+ font-family: var(--qp-font-family);
9
+ font-size: var(--qp-font-body-1);
10
+ line-height: var(--qp-line-height);
11
+ }
12
+
13
+ .qp-app *,
14
+ .qp-app *::before,
15
+ .qp-app *::after,
16
+ .qp-scope *,
17
+ .qp-scope *::before,
18
+ .qp-scope *::after {
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ .qp-app button,
23
+ .qp-app input,
24
+ .qp-app select,
25
+ .qp-app textarea,
26
+ .qp-scope button,
27
+ .qp-scope input,
28
+ .qp-scope select,
29
+ .qp-scope textarea {
30
+ font: inherit;
31
+ }
32
+
33
+ .qp-app button,
34
+ .qp-scope button {
35
+ cursor: pointer;
36
+ }
37
+
38
+ .qp-app button:focus-visible,
39
+ .qp-app input:focus-visible,
40
+ .qp-app select:focus-visible,
41
+ .qp-app textarea:focus-visible,
42
+ .qp-app summary:focus-visible,
43
+ .qp-scope button:focus-visible,
44
+ .qp-scope input:focus-visible,
45
+ .qp-scope select:focus-visible,
46
+ .qp-scope textarea:focus-visible,
47
+ .qp-scope summary:focus-visible {
48
+ outline: 2px solid var(--qp-primary);
49
+ outline-offset: 2px;
50
+ }
51
+
52
+ .qp-scrollbar {
53
+ scrollbar-color: var(--qp-light-2) transparent;
54
+ scrollbar-width: thin;
55
+ }
56
+
57
+ .qp-scrollbar::-webkit-scrollbar {
58
+ width: 8px;
59
+ height: 8px;
60
+ }
61
+
62
+ .qp-scrollbar::-webkit-scrollbar-thumb {
63
+ border-radius: var(--qp-radius-pill);
64
+ background: var(--qp-light-2);
65
+ }
66
+
67
+ .qp-shell {
68
+ display: grid;
69
+ grid-template-columns: minmax(220px, 252px) minmax(0, 1fr);
70
+ min-height: 100vh;
71
+ background:
72
+ linear-gradient(90deg, rgba(94, 142, 236, 0.035) 1px, transparent 1px) 0 0 / 56px 56px,
73
+ var(--qp-bg-2);
74
+ }
75
+
76
+ .qp-sidebar {
77
+ display: grid;
78
+ align-content: start;
79
+ gap: var(--qp-space-5);
80
+ padding: 22px;
81
+ background: #111319;
82
+ box-shadow: inset -1px 0 0 rgba(94, 142, 236, 0.16);
83
+ }
84
+
85
+ .qp-main {
86
+ min-width: 0;
87
+ padding: var(--qp-space-6);
88
+ }
89
+
90
+ .qp-stack {
91
+ display: grid;
92
+ gap: var(--qp-density-gap);
93
+ }
94
+
95
+ .qp-stack--tight {
96
+ gap: var(--qp-space-2);
97
+ }
98
+
99
+ .qp-row {
100
+ display: flex;
101
+ align-items: center;
102
+ gap: var(--qp-density-gap);
103
+ }
104
+
105
+ .qp-row--between {
106
+ justify-content: space-between;
107
+ }
108
+
109
+ .qp-grid {
110
+ display: grid;
111
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
112
+ gap: var(--qp-space-4);
113
+ }
114
+
115
+ .qp-grid--dense {
116
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
117
+ gap: var(--qp-space-3);
118
+ }
119
+
120
+ .qp-heading-1,
121
+ .qp-heading-2,
122
+ .qp-body-1,
123
+ .qp-body-2,
124
+ .qp-caption,
125
+ .qp-kicker {
126
+ margin: 0;
127
+ }
128
+
129
+ .qp-heading-1 {
130
+ font-size: var(--qp-font-head-1);
131
+ font-weight: var(--qp-weight-medium);
132
+ line-height: var(--qp-line-height);
133
+ }
134
+
135
+ .qp-heading-2 {
136
+ font-size: var(--qp-font-head-2);
137
+ font-weight: var(--qp-weight-medium);
138
+ line-height: var(--qp-line-height);
139
+ }
140
+
141
+ .qp-body-1 {
142
+ font-size: var(--qp-font-body-1);
143
+ font-weight: var(--qp-weight-medium);
144
+ }
145
+
146
+ .qp-body-1--semibold {
147
+ font-weight: var(--qp-weight-semibold);
148
+ }
149
+
150
+ .qp-body-2 {
151
+ font-size: var(--qp-font-body-2);
152
+ font-weight: var(--qp-weight-medium);
153
+ }
154
+
155
+ .qp-caption {
156
+ color: var(--qp-text-3);
157
+ font-size: var(--qp-font-caption-1);
158
+ font-weight: var(--qp-weight-medium);
159
+ }
160
+
161
+ .qp-kicker {
162
+ color: var(--qp-primary);
163
+ font-size: var(--qp-font-head-1);
164
+ font-weight: 700;
165
+ letter-spacing: 0;
166
+ }
167
+
168
+ .qp-muted {
169
+ color: var(--qp-text-3);
170
+ }
171
+
172
+ .qp-soft {
173
+ color: var(--qp-text-2);
174
+ }
175
+
176
+ .qp-section-title {
177
+ display: grid;
178
+ grid-template-columns: max-content minmax(0, 1fr);
179
+ align-items: center;
180
+ gap: var(--qp-space-5);
181
+ color: var(--qp-primary);
182
+ font-size: var(--qp-font-head-1);
183
+ font-weight: 700;
184
+ letter-spacing: 0;
185
+ }
186
+
187
+ .qp-section-title::after {
188
+ content: "";
189
+ display: block;
190
+ height: 1px;
191
+ background: color-mix(in srgb, var(--qp-primary) 50%, transparent);
192
+ }
193
+
194
+ .qp-panel,
195
+ .qp-card,
196
+ .qp-dialog,
197
+ .qp-actionbar {
198
+ border: 1px solid var(--qp-line);
199
+ border-radius: var(--qp-radius-md);
200
+ background: var(--qp-bg-3);
201
+ box-shadow: var(--qp-shadow-inner-1);
202
+ }
203
+
204
+ .qp-panel {
205
+ padding: var(--qp-density-panel-padding);
206
+ }
207
+
208
+ .qp-panel--elevated,
209
+ .qp-dialog,
210
+ .qp-actionbar {
211
+ background: var(--qp-bg-4);
212
+ box-shadow: var(--qp-shadow-drop-2), var(--qp-shadow-inner-1);
213
+ }
214
+
215
+ .qp-panel--active {
216
+ border-color: color-mix(in srgb, var(--qp-primary) 72%, transparent);
217
+ box-shadow: var(--qp-shadow-inner-2);
218
+ }
219
+
220
+ .qp-panel--design-frame {
221
+ border-style: dashed;
222
+ border-color: var(--qp-design-line);
223
+ }
224
+
225
+ .qp-card {
226
+ padding: var(--qp-density-card-padding);
227
+ }
228
+
229
+ .qp-card:hover {
230
+ border-color: color-mix(in srgb, var(--qp-primary) 34%, var(--qp-line));
231
+ }
232
+
233
+ .qp-button {
234
+ --qp-button-bg: var(--qp-bg-input);
235
+ --qp-button-border: var(--qp-line);
236
+ --qp-button-text: var(--qp-text-1);
237
+ display: inline-flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ gap: var(--qp-space-2);
241
+ min-width: 72px;
242
+ min-height: var(--qp-size-control-md);
243
+ border: 1px solid var(--qp-button-border);
244
+ border-radius: var(--qp-radius-sm);
245
+ padding: 0 var(--qp-density-control-x);
246
+ background: var(--qp-button-bg);
247
+ color: var(--qp-button-text);
248
+ font-size: var(--qp-font-body-2);
249
+ font-weight: var(--qp-weight-semibold);
250
+ text-decoration: none;
251
+ transition: background var(--qp-transition-fast), border-color var(--qp-transition-fast), color var(--qp-transition-fast), opacity var(--qp-transition-fast);
252
+ }
253
+
254
+ .qp-button:hover:not(:disabled, [aria-disabled="true"]) {
255
+ --qp-button-bg: var(--qp-bg-hover);
256
+ --qp-button-border: var(--qp-line-strong);
257
+ }
258
+
259
+ .qp-button:active:not(:disabled, [aria-disabled="true"]) {
260
+ --qp-button-bg: var(--qp-bg-active);
261
+ }
262
+
263
+ .qp-button:disabled,
264
+ .qp-button[aria-disabled="true"] {
265
+ cursor: not-allowed;
266
+ opacity: 0.45;
267
+ }
268
+
269
+ .qp-button--primary {
270
+ --qp-button-bg: var(--qp-primary);
271
+ --qp-button-border: var(--qp-primary);
272
+ --qp-button-text: #071311;
273
+ box-shadow: 0 8px 24px rgba(43, 246, 210, 0.16);
274
+ }
275
+
276
+ .qp-button--primary:hover:not(:disabled, [aria-disabled="true"]) {
277
+ --qp-button-bg: var(--qp-primary-hover);
278
+ --qp-button-border: var(--qp-primary-hover);
279
+ }
280
+
281
+ .qp-button--primary:active:not(:disabled, [aria-disabled="true"]) {
282
+ --qp-button-bg: var(--qp-primary-pressed);
283
+ --qp-button-border: var(--qp-primary-pressed);
284
+ }
285
+
286
+ .qp-button--outline {
287
+ --qp-button-bg: transparent;
288
+ --qp-button-border: color-mix(in srgb, var(--qp-primary) 64%, transparent);
289
+ --qp-button-text: var(--qp-primary);
290
+ }
291
+
292
+ .qp-button--outline:hover:not(:disabled, [aria-disabled="true"]) {
293
+ --qp-button-bg: color-mix(in srgb, var(--qp-primary) 8%, transparent);
294
+ }
295
+
296
+ .qp-button--ghost {
297
+ --qp-button-bg: transparent;
298
+ --qp-button-border: transparent;
299
+ --qp-button-text: var(--qp-text-2);
300
+ }
301
+
302
+ .qp-button--ghost:hover:not(:disabled, [aria-disabled="true"]) {
303
+ --qp-button-bg: var(--qp-light-4);
304
+ --qp-button-border: var(--qp-light-4);
305
+ --qp-button-text: var(--qp-text-1);
306
+ }
307
+
308
+ .qp-button--transparent {
309
+ --qp-button-bg: var(--qp-light-5);
310
+ --qp-button-border: transparent;
311
+ }
312
+
313
+ .qp-button--danger {
314
+ --qp-button-bg: var(--qp-danger);
315
+ --qp-button-border: var(--qp-danger);
316
+ --qp-button-text: #160507;
317
+ }
318
+
319
+ .qp-button--sm {
320
+ min-width: 50px;
321
+ min-height: var(--qp-size-control-sm);
322
+ padding: 0 10px;
323
+ font-size: var(--qp-font-caption-1);
324
+ }
325
+
326
+ .qp-button--md {
327
+ min-height: var(--qp-size-control-md);
328
+ }
329
+
330
+ .qp-button--lg {
331
+ min-height: var(--qp-size-control-lg);
332
+ padding: 0 18px;
333
+ }
334
+
335
+ .qp-button--block {
336
+ width: 100%;
337
+ }
338
+
339
+ .qp-icon-button {
340
+ display: inline-grid;
341
+ place-items: center;
342
+ width: var(--qp-size-control-md);
343
+ min-width: var(--qp-size-control-md);
344
+ height: var(--qp-size-control-md);
345
+ padding: 0;
346
+ }
347
+
348
+ .qp-spinner {
349
+ width: 14px;
350
+ height: 14px;
351
+ border: 1px solid currentColor;
352
+ border-right-color: transparent;
353
+ border-radius: var(--qp-radius-pill);
354
+ animation: qp-spin 760ms linear infinite;
355
+ }
356
+
357
+ @keyframes qp-spin {
358
+ to {
359
+ transform: rotate(1turn);
360
+ }
361
+ }
362
+
363
+ .qp-field {
364
+ display: grid;
365
+ gap: var(--qp-space-2);
366
+ min-width: 0;
367
+ }
368
+
369
+ .qp-field__label {
370
+ color: var(--qp-text-2);
371
+ font-size: var(--qp-font-body-2);
372
+ font-weight: var(--qp-weight-semibold);
373
+ }
374
+
375
+ .qp-field__hint {
376
+ color: var(--qp-text-3);
377
+ font-size: var(--qp-font-caption-1);
378
+ }
379
+
380
+ .qp-input,
381
+ .qp-select,
382
+ .qp-textarea {
383
+ width: 100%;
384
+ min-width: 0;
385
+ min-height: var(--qp-size-control-md);
386
+ border: 1px solid var(--qp-line);
387
+ border-radius: var(--qp-radius-sm);
388
+ padding: 0 12px;
389
+ background: var(--qp-bg-input);
390
+ color: var(--qp-text-1);
391
+ font-size: var(--qp-font-body-2);
392
+ transition: background var(--qp-transition-fast), border-color var(--qp-transition-fast), color var(--qp-transition-fast);
393
+ }
394
+
395
+ .qp-textarea {
396
+ min-height: 96px;
397
+ padding: 10px 12px;
398
+ resize: vertical;
399
+ }
400
+
401
+ .qp-input::placeholder,
402
+ .qp-textarea::placeholder {
403
+ color: var(--qp-text-4);
404
+ }
405
+
406
+ .qp-input:hover:not(:disabled, [readonly]),
407
+ .qp-select:hover:not(:disabled),
408
+ .qp-textarea:hover:not(:disabled, [readonly]) {
409
+ background: var(--qp-bg-hover);
410
+ }
411
+
412
+ .qp-input:focus,
413
+ .qp-select:focus,
414
+ .qp-textarea:focus {
415
+ border-color: var(--qp-primary);
416
+ background: var(--qp-bg-1);
417
+ outline: none;
418
+ }
419
+
420
+ .qp-input:disabled,
421
+ .qp-select:disabled,
422
+ .qp-textarea:disabled {
423
+ cursor: not-allowed;
424
+ opacity: 0.42;
425
+ }
426
+
427
+ .qp-input[readonly],
428
+ .qp-textarea[readonly] {
429
+ border-color: transparent;
430
+ background: transparent;
431
+ color: var(--qp-text-2);
432
+ }
433
+
434
+ .qp-input--sm {
435
+ min-height: var(--qp-size-control-sm);
436
+ padding: 0 10px;
437
+ }
438
+
439
+ .qp-input--md {
440
+ min-height: var(--qp-size-control-md);
441
+ }
442
+
443
+ .qp-input--lg {
444
+ min-height: var(--qp-size-control-lg);
445
+ padding: 0 14px;
446
+ }
447
+
448
+ .qp-input-group {
449
+ display: flex;
450
+ align-items: center;
451
+ min-height: var(--qp-size-control-md);
452
+ border: 1px solid var(--qp-line);
453
+ border-radius: var(--qp-radius-sm);
454
+ background: var(--qp-bg-input);
455
+ overflow: hidden;
456
+ }
457
+
458
+ .qp-input-group:focus-within {
459
+ border-color: var(--qp-primary);
460
+ background: var(--qp-bg-1);
461
+ }
462
+
463
+ .qp-input-group__prefix,
464
+ .qp-input-group__suffix {
465
+ display: inline-flex;
466
+ align-items: center;
467
+ padding: 0 10px;
468
+ color: var(--qp-text-3);
469
+ font-size: var(--qp-font-body-2);
470
+ }
471
+
472
+ .qp-input-group .qp-input {
473
+ min-height: calc(var(--qp-size-control-md) - 2px);
474
+ border: 0;
475
+ background: transparent;
476
+ }
477
+
478
+ .qp-input-group .qp-input:focus {
479
+ background: transparent;
480
+ }
481
+
482
+ .qp-select {
483
+ appearance: none;
484
+ padding-right: 32px;
485
+ background-image: linear-gradient(45deg, transparent 50%, var(--qp-text-2) 50%), linear-gradient(135deg, var(--qp-text-2) 50%, transparent 50%);
486
+ background-position: calc(100% - 15px) 50%, calc(100% - 10px) 50%;
487
+ background-size: 5px 5px, 5px 5px;
488
+ background-repeat: no-repeat;
489
+ }
490
+
491
+ .qp-choice {
492
+ position: relative;
493
+ display: inline-flex;
494
+ align-items: center;
495
+ gap: var(--qp-space-2);
496
+ min-height: 22px;
497
+ color: var(--qp-text-2);
498
+ font-size: var(--qp-font-body-2);
499
+ cursor: pointer;
500
+ }
501
+
502
+ .qp-choice input {
503
+ position: absolute;
504
+ opacity: 0;
505
+ pointer-events: none;
506
+ }
507
+
508
+ .qp-choice__control {
509
+ display: inline-grid;
510
+ place-items: center;
511
+ width: 14px;
512
+ height: 14px;
513
+ border: 1px solid var(--qp-light-2);
514
+ background: var(--qp-light-5);
515
+ color: #071311;
516
+ transition: background var(--qp-transition-fast), border-color var(--qp-transition-fast), opacity var(--qp-transition-fast);
517
+ }
518
+
519
+ .qp-choice--radio .qp-choice__control {
520
+ border-radius: var(--qp-radius-pill);
521
+ }
522
+
523
+ .qp-choice--checkbox .qp-choice__control {
524
+ border-radius: 3px;
525
+ }
526
+
527
+ .qp-choice input:checked + .qp-choice__control {
528
+ border-color: var(--qp-primary);
529
+ background: var(--qp-primary);
530
+ }
531
+
532
+ .qp-choice input:checked + .qp-choice__control::after {
533
+ content: "";
534
+ display: block;
535
+ }
536
+
537
+ .qp-choice--radio input:checked + .qp-choice__control::after {
538
+ width: 6px;
539
+ height: 6px;
540
+ border-radius: var(--qp-radius-pill);
541
+ background: #071311;
542
+ }
543
+
544
+ .qp-choice--checkbox input:checked + .qp-choice__control::after {
545
+ width: 7px;
546
+ height: 4px;
547
+ border: 1px solid #071311;
548
+ border-top: 0;
549
+ border-right: 0;
550
+ transform: rotate(-45deg) translate(1px, -1px);
551
+ }
552
+
553
+ .qp-choice input:indeterminate + .qp-choice__control {
554
+ border-color: var(--qp-primary);
555
+ background: var(--qp-primary);
556
+ }
557
+
558
+ .qp-choice input:indeterminate + .qp-choice__control::after {
559
+ content: "";
560
+ width: 7px;
561
+ height: 2px;
562
+ background: #071311;
563
+ }
564
+
565
+ .qp-choice:has(input:disabled) {
566
+ cursor: not-allowed;
567
+ opacity: 0.4;
568
+ }
569
+
570
+ .qp-switch {
571
+ position: relative;
572
+ display: inline-flex;
573
+ align-items: center;
574
+ gap: var(--qp-space-2);
575
+ color: var(--qp-text-2);
576
+ font-size: var(--qp-font-body-2);
577
+ cursor: pointer;
578
+ }
579
+
580
+ .qp-switch input {
581
+ position: absolute;
582
+ opacity: 0;
583
+ pointer-events: none;
584
+ }
585
+
586
+ .qp-switch__track {
587
+ position: relative;
588
+ width: 38px;
589
+ height: 20px;
590
+ border-radius: var(--qp-radius-pill);
591
+ background: #71757b;
592
+ transition: background var(--qp-transition-fast), opacity var(--qp-transition-fast);
593
+ }
594
+
595
+ .qp-switch__track::after {
596
+ content: "";
597
+ position: absolute;
598
+ top: 3px;
599
+ left: 3px;
600
+ width: 14px;
601
+ height: 14px;
602
+ border-radius: var(--qp-radius-pill);
603
+ background: var(--qp-text-1);
604
+ transition: transform var(--qp-transition-fast);
605
+ }
606
+
607
+ .qp-switch input:checked + .qp-switch__track {
608
+ background: var(--qp-primary);
609
+ }
610
+
611
+ .qp-switch input:checked + .qp-switch__track::after {
612
+ transform: translateX(18px);
613
+ }
614
+
615
+ .qp-switch:has(input:disabled) {
616
+ cursor: not-allowed;
617
+ opacity: 0.45;
618
+ }
619
+
620
+ .qp-slider {
621
+ width: 100%;
622
+ accent-color: var(--qp-primary);
623
+ }
624
+
625
+ .qp-slider::-webkit-slider-runnable-track {
626
+ height: 3px;
627
+ border-radius: var(--qp-radius-pill);
628
+ background: var(--qp-light-2);
629
+ }
630
+
631
+ .qp-slider::-webkit-slider-thumb {
632
+ width: 14px;
633
+ height: 14px;
634
+ margin-top: -5px;
635
+ border: 2px solid var(--qp-light-1);
636
+ border-radius: var(--qp-radius-pill);
637
+ background: var(--qp-bg-3);
638
+ }
639
+
640
+ .qp-tabs,
641
+ .qp-segmented {
642
+ display: inline-flex;
643
+ align-items: stretch;
644
+ border: 1px solid var(--qp-line);
645
+ border-radius: var(--qp-radius-sm);
646
+ background: var(--qp-bg-input);
647
+ overflow: hidden;
648
+ }
649
+
650
+ .qp-tab,
651
+ .qp-segmented__item {
652
+ min-width: 86px;
653
+ min-height: var(--qp-size-control-md);
654
+ border: 0;
655
+ border-right: 1px solid var(--qp-line);
656
+ background: transparent;
657
+ color: var(--qp-text-3);
658
+ font-size: var(--qp-font-body-2);
659
+ }
660
+
661
+ .qp-tab:last-child,
662
+ .qp-segmented__item:last-child {
663
+ border-right: 0;
664
+ }
665
+
666
+ .qp-tab[aria-selected="true"],
667
+ .qp-segmented__item.is-active {
668
+ background: var(--qp-light-2);
669
+ color: var(--qp-text-1);
670
+ }
671
+
672
+ .qp-tag {
673
+ display: inline-flex;
674
+ align-items: center;
675
+ gap: 6px;
676
+ min-height: 22px;
677
+ border: 1px solid var(--qp-line);
678
+ border-radius: var(--qp-radius-pill);
679
+ padding: 0 9px;
680
+ background: var(--qp-light-5);
681
+ color: var(--qp-text-2);
682
+ font-size: var(--qp-font-caption-1);
683
+ font-weight: var(--qp-weight-medium);
684
+ }
685
+
686
+ .qp-tag--primary {
687
+ border-color: color-mix(in srgb, var(--qp-primary) 58%, transparent);
688
+ color: var(--qp-primary);
689
+ }
690
+
691
+ .qp-tag--success {
692
+ border-color: color-mix(in srgb, var(--qp-success) 58%, transparent);
693
+ color: #a8f7c5;
694
+ }
695
+
696
+ .qp-tag--danger {
697
+ border-color: color-mix(in srgb, var(--qp-danger) 58%, transparent);
698
+ color: #ffb8bd;
699
+ }
700
+
701
+ .qp-metric-grid {
702
+ display: grid;
703
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
704
+ gap: var(--qp-space-3);
705
+ }
706
+
707
+ .qp-metric {
708
+ display: grid;
709
+ min-width: 0;
710
+ gap: var(--qp-space-1);
711
+ border: 1px solid var(--qp-line);
712
+ border-radius: var(--qp-radius-md);
713
+ padding: var(--qp-space-3);
714
+ background:
715
+ linear-gradient(135deg, color-mix(in srgb, var(--qp-primary) 10%, transparent), transparent 62%),
716
+ var(--qp-bg-3);
717
+ }
718
+
719
+ .qp-metric__label,
720
+ .qp-metric__hint {
721
+ min-width: 0;
722
+ overflow: hidden;
723
+ color: var(--qp-text-3);
724
+ font-size: var(--qp-font-caption-1);
725
+ text-overflow: ellipsis;
726
+ white-space: nowrap;
727
+ }
728
+
729
+ .qp-metric__value {
730
+ min-width: 0;
731
+ overflow: hidden;
732
+ color: var(--qp-text-1);
733
+ font-size: var(--qp-font-head-2);
734
+ font-weight: var(--qp-weight-semibold);
735
+ text-overflow: ellipsis;
736
+ white-space: nowrap;
737
+ }
738
+
739
+ .qp-data-table {
740
+ display: grid;
741
+ min-width: 0;
742
+ overflow-x: auto;
743
+ border: 1px solid var(--qp-line);
744
+ border-radius: var(--qp-radius-md);
745
+ background: var(--qp-bg-3);
746
+ }
747
+
748
+ .qp-data-row {
749
+ display: grid;
750
+ grid-template-columns: var(--qp-data-row-columns, repeat(4, minmax(120px, 1fr)));
751
+ gap: var(--qp-space-3);
752
+ align-items: center;
753
+ min-width: var(--qp-data-row-min-width, 720px);
754
+ padding: var(--qp-space-3);
755
+ border-bottom: 1px solid var(--qp-line);
756
+ }
757
+
758
+ .qp-data-row:last-child {
759
+ border-bottom: 0;
760
+ }
761
+
762
+ .qp-data-row--header {
763
+ color: var(--qp-text-3);
764
+ font-size: var(--qp-font-caption-1);
765
+ font-weight: var(--qp-weight-semibold);
766
+ text-transform: uppercase;
767
+ }
768
+
769
+ .qp-data-row:not(.qp-data-row--header):hover {
770
+ background: color-mix(in srgb, var(--qp-primary) 8%, transparent);
771
+ }
772
+
773
+ .qp-data-cell {
774
+ display: grid;
775
+ min-width: 0;
776
+ gap: 2px;
777
+ }
778
+
779
+ .qp-data-cell strong,
780
+ .qp-data-cell span,
781
+ .qp-data-cell small {
782
+ min-width: 0;
783
+ overflow: hidden;
784
+ text-overflow: ellipsis;
785
+ white-space: nowrap;
786
+ }
787
+
788
+ .qp-data-cell small {
789
+ color: var(--qp-text-3);
790
+ font-size: var(--qp-font-caption-1);
791
+ }
792
+
793
+ .qp-status {
794
+ display: inline-flex;
795
+ align-items: center;
796
+ gap: 6px;
797
+ color: var(--qp-text-2);
798
+ font-size: var(--qp-font-body-2);
799
+ }
800
+
801
+ .qp-status::before {
802
+ content: "";
803
+ width: 6px;
804
+ height: 6px;
805
+ border-radius: var(--qp-radius-pill);
806
+ background: var(--qp-text-3);
807
+ }
808
+
809
+ .qp-status[data-status="success"]::before {
810
+ background: var(--qp-success);
811
+ }
812
+
813
+ .qp-status[data-status="warning"]::before {
814
+ background: var(--qp-warning);
815
+ }
816
+
817
+ .qp-status[data-status="danger"]::before {
818
+ background: var(--qp-danger);
819
+ }
820
+
821
+ .qp-status[data-status="info"]::before {
822
+ background: var(--qp-info);
823
+ }
824
+
825
+ .qp-menu {
826
+ min-width: 180px;
827
+ border: 1px solid var(--qp-line);
828
+ border-radius: var(--qp-radius-md);
829
+ padding: 6px;
830
+ background: var(--qp-bg-4);
831
+ box-shadow: var(--qp-shadow-drop-2);
832
+ }
833
+
834
+ .qp-menu__item {
835
+ display: grid;
836
+ grid-template-columns: auto minmax(0, 1fr) auto;
837
+ align-items: center;
838
+ gap: var(--qp-space-2);
839
+ width: 100%;
840
+ min-height: 32px;
841
+ border: 0;
842
+ border-radius: var(--qp-radius-xs);
843
+ padding: 0 10px;
844
+ background: transparent;
845
+ color: var(--qp-text-2);
846
+ font-size: var(--qp-font-body-2);
847
+ text-align: left;
848
+ }
849
+
850
+ .qp-menu__item:hover,
851
+ .qp-menu__item.is-active {
852
+ background: var(--qp-light-3);
853
+ color: var(--qp-text-1);
854
+ }
855
+
856
+ .qp-menu__item:disabled,
857
+ .qp-menu__item[aria-disabled="true"] {
858
+ cursor: not-allowed;
859
+ opacity: 0.35;
860
+ }
861
+
862
+ .qp-menu__divider {
863
+ height: 1px;
864
+ margin: 6px -6px;
865
+ background: var(--qp-line);
866
+ }
867
+
868
+ .qp-list {
869
+ display: grid;
870
+ gap: 6px;
871
+ }
872
+
873
+ .qp-list__item {
874
+ display: grid;
875
+ grid-template-columns: minmax(0, 1fr) auto;
876
+ align-items: center;
877
+ min-height: 36px;
878
+ border: 1px solid transparent;
879
+ border-radius: var(--qp-radius-sm);
880
+ padding: 0 10px;
881
+ background: transparent;
882
+ color: var(--qp-text-2);
883
+ }
884
+
885
+ .qp-list__item:hover,
886
+ .qp-list__item.is-active {
887
+ background: var(--qp-light-4);
888
+ color: var(--qp-text-1);
889
+ }
890
+
891
+ .qp-list__item.is-selected {
892
+ border-color: var(--qp-primary);
893
+ background: color-mix(in srgb, var(--qp-primary) 10%, transparent);
894
+ color: var(--qp-primary);
895
+ }
896
+
897
+ .qp-toast-stack {
898
+ display: grid;
899
+ gap: var(--qp-space-3);
900
+ width: min(100%, 600px);
901
+ }
902
+
903
+ .qp-toast {
904
+ display: flex;
905
+ align-items: center;
906
+ justify-content: center;
907
+ gap: var(--qp-space-2);
908
+ min-width: min(100%, 300px);
909
+ max-width: min(100%, 1280px);
910
+ min-height: 32px;
911
+ border-radius: var(--qp-radius-sm);
912
+ padding: 0 14px;
913
+ color: #071311;
914
+ font-size: var(--qp-font-body-2);
915
+ font-weight: var(--qp-weight-semibold);
916
+ }
917
+
918
+ .qp-toast[data-tone="danger"] {
919
+ background: var(--qp-danger);
920
+ }
921
+
922
+ .qp-toast[data-tone="success"] {
923
+ background: var(--qp-success);
924
+ }
925
+
926
+ .qp-toast[data-tone="info"] {
927
+ background: var(--qp-info);
928
+ color: #eef4ff;
929
+ }
930
+
931
+ .qp-toast[data-tone="warning"] {
932
+ background: var(--qp-warning);
933
+ }
934
+
935
+ .qp-actionbar {
936
+ display: inline-grid;
937
+ min-width: 180px;
938
+ overflow: hidden;
939
+ }
940
+
941
+ .qp-actionbar__item {
942
+ min-height: 36px;
943
+ border: 0;
944
+ border-bottom: 1px solid var(--qp-line);
945
+ padding: 0 12px;
946
+ background: transparent;
947
+ color: var(--qp-text-2);
948
+ font-size: var(--qp-font-body-2);
949
+ text-align: left;
950
+ }
951
+
952
+ .qp-actionbar__item:last-child {
953
+ border-bottom: 0;
954
+ }
955
+
956
+ .qp-actionbar__item:hover {
957
+ background: var(--qp-light-3);
958
+ color: var(--qp-text-1);
959
+ }
960
+
961
+ .qp-dialog {
962
+ display: grid;
963
+ grid-template-columns: auto minmax(0, 1fr);
964
+ gap: var(--qp-space-4);
965
+ width: min(100%, 430px);
966
+ padding: var(--qp-space-5);
967
+ }
968
+
969
+ .qp-dialog__icon {
970
+ display: grid;
971
+ place-items: center;
972
+ width: 28px;
973
+ height: 28px;
974
+ border-radius: var(--qp-radius-sm);
975
+ background: color-mix(in srgb, var(--qp-warning) 18%, transparent);
976
+ color: var(--qp-warning);
977
+ }
978
+
979
+ .qp-dialog__body {
980
+ display: grid;
981
+ gap: var(--qp-space-2);
982
+ }
983
+
984
+ .qp-dialog__actions {
985
+ display: flex;
986
+ justify-content: flex-end;
987
+ gap: var(--qp-space-2);
988
+ margin-top: var(--qp-space-3);
989
+ }
990
+
991
+ .qp-project-card {
992
+ display: grid;
993
+ overflow: hidden;
994
+ border: 1px solid transparent;
995
+ border-radius: var(--qp-radius-md);
996
+ background: var(--qp-bg-3);
997
+ box-shadow: var(--qp-shadow-drop-1);
998
+ }
999
+
1000
+ .qp-project-card:hover {
1001
+ background: var(--qp-bg-4);
1002
+ }
1003
+
1004
+ .qp-project-card.is-active {
1005
+ border-color: var(--qp-primary);
1006
+ }
1007
+
1008
+ .qp-project-card__media {
1009
+ min-height: 116px;
1010
+ background:
1011
+ radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.78) 0 7px, transparent 8px),
1012
+ linear-gradient(135deg, #ff6d00 0%, #ffb25d 42%, #f44336 43%, #ff8a00 72%, #ffc773 100%);
1013
+ }
1014
+
1015
+ .qp-project-card__body {
1016
+ display: grid;
1017
+ gap: var(--qp-space-2);
1018
+ padding: var(--qp-space-3);
1019
+ }
1020
+
1021
+ .qp-project-card__title {
1022
+ overflow: hidden;
1023
+ color: var(--qp-text-1);
1024
+ font-size: var(--qp-font-body-2);
1025
+ font-weight: var(--qp-weight-semibold);
1026
+ text-overflow: ellipsis;
1027
+ white-space: nowrap;
1028
+ }
1029
+
1030
+ .qp-project-card__meta {
1031
+ display: flex;
1032
+ align-items: center;
1033
+ justify-content: space-between;
1034
+ gap: var(--qp-space-2);
1035
+ color: var(--qp-text-3);
1036
+ font-size: var(--qp-font-caption-1);
1037
+ }
1038
+
1039
+ .qp-market-layout {
1040
+ display: grid;
1041
+ grid-template-columns: minmax(180px, 0.24fr) minmax(0, 1fr) minmax(280px, 0.34fr);
1042
+ min-height: 520px;
1043
+ overflow: hidden;
1044
+ border: 1px solid var(--qp-line);
1045
+ border-radius: var(--qp-radius-md);
1046
+ background:
1047
+ linear-gradient(90deg, rgba(94, 142, 236, 0.035) 1px, transparent 1px) 0 0 / 56px 56px,
1048
+ var(--qp-bg-2);
1049
+ }
1050
+
1051
+ .qp-market-rail,
1052
+ .qp-market-inspector {
1053
+ display: grid;
1054
+ align-content: start;
1055
+ gap: var(--qp-space-4);
1056
+ min-width: 0;
1057
+ padding: var(--qp-space-4);
1058
+ background: color-mix(in srgb, var(--qp-bg-1) 74%, transparent);
1059
+ }
1060
+
1061
+ .qp-market-rail {
1062
+ border-right: 1px solid var(--qp-line);
1063
+ }
1064
+
1065
+ .qp-market-main {
1066
+ min-width: 0;
1067
+ padding: var(--qp-space-4);
1068
+ }
1069
+
1070
+ .qp-market-inspector {
1071
+ border-left: 1px solid var(--qp-line);
1072
+ background: color-mix(in srgb, var(--qp-bg-4) 82%, transparent);
1073
+ }
1074
+
1075
+ .qp-market-grid {
1076
+ display: grid;
1077
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
1078
+ gap: var(--qp-space-4);
1079
+ }
1080
+
1081
+ .qp-market-card {
1082
+ display: grid;
1083
+ min-width: 0;
1084
+ overflow: hidden;
1085
+ border: 1px solid var(--qp-line);
1086
+ border-radius: var(--qp-radius-md);
1087
+ background: var(--qp-bg-3);
1088
+ box-shadow: var(--qp-shadow-drop-1);
1089
+ }
1090
+
1091
+ .qp-market-card.is-active {
1092
+ border-color: var(--qp-primary);
1093
+ }
1094
+
1095
+ .qp-market-card__media {
1096
+ display: flex;
1097
+ align-items: flex-end;
1098
+ min-height: 124px;
1099
+ padding: var(--qp-space-3);
1100
+ background:
1101
+ radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.72) 0 7px, transparent 8px),
1102
+ linear-gradient(135deg, var(--qp-info) 0%, #263a70 46%, var(--qp-primary) 47%, #047b72 100%);
1103
+ }
1104
+
1105
+ .qp-market-card__media[data-category="network"] {
1106
+ background:
1107
+ radial-gradient(circle at 76% 22%, rgba(255, 255, 255, 0.72) 0 7px, transparent 8px),
1108
+ linear-gradient(135deg, var(--qp-success) 0%, #076342 46%, var(--qp-warning) 47%, #795d1b 100%);
1109
+ }
1110
+
1111
+ .qp-market-card__media[data-category="bridge"] {
1112
+ background:
1113
+ radial-gradient(circle at 28% 24%, rgba(255, 255, 255, 0.72) 0 7px, transparent 8px),
1114
+ linear-gradient(135deg, var(--qp-archetype) 0%, #44256d 48%, var(--qp-danger) 49%, #67303b 100%);
1115
+ }
1116
+
1117
+ .qp-market-card__icon {
1118
+ display: grid;
1119
+ width: 46px;
1120
+ height: 46px;
1121
+ place-items: center;
1122
+ border-radius: var(--qp-radius-md);
1123
+ background: color-mix(in srgb, var(--qp-bg-1) 78%, transparent);
1124
+ color: var(--qp-text-1);
1125
+ font-weight: 800;
1126
+ }
1127
+
1128
+ .qp-market-card__body {
1129
+ display: grid;
1130
+ gap: var(--qp-space-2);
1131
+ padding: var(--qp-space-3);
1132
+ }
1133
+
1134
+ .qp-market-card__title,
1135
+ .qp-market-package {
1136
+ overflow: hidden;
1137
+ text-overflow: ellipsis;
1138
+ white-space: nowrap;
1139
+ }
1140
+
1141
+ .qp-market-card__title {
1142
+ color: var(--qp-text-1);
1143
+ font-weight: var(--qp-weight-semibold);
1144
+ }
1145
+
1146
+ .qp-market-card__summary {
1147
+ display: -webkit-box;
1148
+ min-height: 42px;
1149
+ overflow: hidden;
1150
+ color: var(--qp-text-3);
1151
+ font-size: var(--qp-font-body-2);
1152
+ -webkit-box-orient: vertical;
1153
+ -webkit-line-clamp: 2;
1154
+ }
1155
+
1156
+ .qp-market-package {
1157
+ border: 1px solid color-mix(in srgb, var(--qp-info) 26%, transparent);
1158
+ border-radius: var(--qp-radius-pill);
1159
+ padding: 3px 8px;
1160
+ color: var(--qp-text-2);
1161
+ font-size: var(--qp-font-caption-1);
1162
+ }
1163
+
1164
+ .qp-market-card__footer {
1165
+ display: flex;
1166
+ align-items: center;
1167
+ justify-content: space-between;
1168
+ gap: var(--qp-space-2);
1169
+ padding: 0 var(--qp-space-3) var(--qp-space-3);
1170
+ }
1171
+
1172
+ .qp-chip-list {
1173
+ display: flex;
1174
+ flex-wrap: wrap;
1175
+ gap: var(--qp-space-2);
1176
+ }
1177
+
1178
+ .qp-chip-list span {
1179
+ border: 1px solid color-mix(in srgb, var(--qp-info) 30%, transparent);
1180
+ border-radius: var(--qp-radius-pill);
1181
+ padding: 3px 8px;
1182
+ background: color-mix(in srgb, var(--qp-info) 8%, transparent);
1183
+ color: var(--qp-text-2);
1184
+ font-size: var(--qp-font-caption-1);
1185
+ }
1186
+
1187
+ .qp-avatar {
1188
+ display: inline-grid;
1189
+ place-items: center;
1190
+ width: 28px;
1191
+ height: 28px;
1192
+ border: 2px solid var(--qp-primary);
1193
+ border-radius: var(--qp-radius-pill);
1194
+ background: var(--qp-archetype);
1195
+ color: #071311;
1196
+ font-size: var(--qp-font-caption-1);
1197
+ font-weight: 700;
1198
+ }
1199
+
1200
+ .qp-user-card {
1201
+ display: grid;
1202
+ grid-template-columns: auto minmax(0, 1fr) auto;
1203
+ align-items: center;
1204
+ gap: var(--qp-space-3);
1205
+ min-height: 62px;
1206
+ border-radius: var(--qp-radius-md);
1207
+ padding: var(--qp-space-3);
1208
+ background: color-mix(in srgb, var(--qp-bg-3) 78%, transparent);
1209
+ }
1210
+
1211
+ .qp-user-card:hover {
1212
+ background: var(--qp-bg-4);
1213
+ }
1214
+
1215
+ .qp-user-card__name {
1216
+ overflow: hidden;
1217
+ color: var(--qp-text-1);
1218
+ font-size: var(--qp-font-body-2);
1219
+ text-overflow: ellipsis;
1220
+ white-space: nowrap;
1221
+ }
1222
+
1223
+ .qp-user-card__role {
1224
+ width: fit-content;
1225
+ border-radius: 2px;
1226
+ padding: 1px 4px;
1227
+ background: color-mix(in srgb, var(--qp-primary) 55%, transparent);
1228
+ color: #071311;
1229
+ font-size: 9px;
1230
+ line-height: 1.3;
1231
+ }
1232
+
1233
+ .qp-color-swatch {
1234
+ display: grid;
1235
+ align-content: end;
1236
+ min-height: 110px;
1237
+ border: 1px solid var(--qp-line);
1238
+ border-radius: var(--qp-radius-md);
1239
+ padding: var(--qp-space-4);
1240
+ background: var(--swatch-color, var(--qp-bg-3));
1241
+ color: var(--swatch-text, var(--qp-text-1));
1242
+ }
1243
+
1244
+ .qp-color-swatch strong,
1245
+ .qp-color-swatch span {
1246
+ overflow: hidden;
1247
+ text-overflow: ellipsis;
1248
+ white-space: nowrap;
1249
+ }
1250
+
1251
+ .qp-color-swatch span {
1252
+ color: color-mix(in srgb, currentColor 60%, transparent);
1253
+ font-size: var(--qp-font-body-2);
1254
+ }
1255
+
1256
+ .qp-dropdown {
1257
+ position: relative;
1258
+ min-width: 0;
1259
+ }
1260
+
1261
+ .qp-dropdown__trigger {
1262
+ display: flex;
1263
+ align-items: center;
1264
+ justify-content: space-between;
1265
+ gap: var(--qp-space-2);
1266
+ width: 100%;
1267
+ min-height: var(--qp-size-control-md);
1268
+ border: 1px solid var(--qp-line);
1269
+ border-radius: var(--qp-radius-sm);
1270
+ padding: 0 12px;
1271
+ background: var(--qp-bg-input);
1272
+ color: var(--qp-text-1);
1273
+ font-size: var(--qp-font-body-2);
1274
+ text-align: left;
1275
+ transition: border-color var(--qp-transition-fast), background var(--qp-transition-fast);
1276
+ }
1277
+
1278
+ .qp-dropdown__trigger:hover,
1279
+ .qp-dropdown.is-open .qp-dropdown__trigger {
1280
+ border-color: var(--qp-primary);
1281
+ background: var(--qp-bg-hover);
1282
+ }
1283
+
1284
+ .qp-dropdown__value {
1285
+ min-width: 0;
1286
+ overflow: hidden;
1287
+ text-overflow: ellipsis;
1288
+ white-space: nowrap;
1289
+ }
1290
+
1291
+ .qp-dropdown__chevron {
1292
+ color: var(--qp-text-2);
1293
+ font-size: var(--qp-font-caption-1);
1294
+ transition: transform var(--qp-transition-fast);
1295
+ }
1296
+
1297
+ .qp-dropdown.is-open .qp-dropdown__chevron {
1298
+ transform: rotate(180deg);
1299
+ }
1300
+
1301
+ .qp-dropdown__menu {
1302
+ position: absolute;
1303
+ top: calc(100% + 6px);
1304
+ left: 0;
1305
+ z-index: 40;
1306
+ display: none;
1307
+ width: 100%;
1308
+ min-width: 170px;
1309
+ border: 1px solid color-mix(in srgb, var(--qp-primary) 36%, var(--qp-line));
1310
+ border-radius: var(--qp-radius-md);
1311
+ padding: 6px;
1312
+ background: var(--qp-bg-4);
1313
+ box-shadow: var(--qp-shadow-drop-2);
1314
+ }
1315
+
1316
+ .qp-dropdown.is-open .qp-dropdown__menu {
1317
+ display: grid;
1318
+ gap: 3px;
1319
+ }
1320
+
1321
+ .qp-dropdown__option {
1322
+ display: flex;
1323
+ align-items: center;
1324
+ gap: var(--qp-space-2);
1325
+ width: 100%;
1326
+ min-height: 30px;
1327
+ border: 0;
1328
+ border-radius: var(--qp-radius-xs);
1329
+ padding: 0 9px;
1330
+ background: transparent;
1331
+ color: var(--qp-text-2);
1332
+ font-size: var(--qp-font-body-2);
1333
+ text-align: left;
1334
+ }
1335
+
1336
+ .qp-dropdown__option:hover,
1337
+ .qp-dropdown__option.is-highlighted {
1338
+ background: var(--qp-light-3);
1339
+ color: var(--qp-text-1);
1340
+ }
1341
+
1342
+ .qp-dropdown__option.is-selected,
1343
+ .qp-dropdown__option[aria-selected="true"] {
1344
+ background: color-mix(in srgb, var(--qp-primary) 14%, var(--qp-bg-4));
1345
+ color: var(--qp-primary);
1346
+ }
1347
+
1348
+ .qp-dropdown__option.is-selected::before,
1349
+ .qp-dropdown__option[aria-selected="true"]::before {
1350
+ content: "✓";
1351
+ color: var(--qp-primary);
1352
+ }
1353
+
1354
+ .qp-dropdown__option:disabled,
1355
+ .qp-dropdown__option[aria-disabled="true"] {
1356
+ cursor: not-allowed;
1357
+ opacity: 0.38;
1358
+ }
1359
+
1360
+ .qp-appbar {
1361
+ display: grid;
1362
+ grid-template-columns: auto minmax(0, 1fr) auto;
1363
+ align-items: center;
1364
+ gap: var(--qp-space-4);
1365
+ min-height: 54px;
1366
+ border-bottom: 1px solid var(--qp-line);
1367
+ background: var(--qp-bg-1);
1368
+ }
1369
+
1370
+ .qp-appbar__menu {
1371
+ display: flex;
1372
+ align-items: center;
1373
+ gap: var(--qp-space-5);
1374
+ color: var(--qp-text-3);
1375
+ font-size: var(--qp-font-body-2);
1376
+ }
1377
+
1378
+ .qp-appbar__user {
1379
+ display: flex;
1380
+ align-items: center;
1381
+ gap: var(--qp-space-3);
1382
+ }
1383
+
1384
+ .qp-settings-view {
1385
+ display: grid;
1386
+ grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
1387
+ gap: var(--qp-space-8);
1388
+ align-items: start;
1389
+ }
1390
+
1391
+ .qp-settings-nav {
1392
+ display: grid;
1393
+ gap: 6px;
1394
+ border-right: 1px solid var(--qp-line);
1395
+ padding-right: var(--qp-space-5);
1396
+ }
1397
+
1398
+ .qp-settings-nav__group {
1399
+ display: grid;
1400
+ gap: 6px;
1401
+ padding: var(--qp-space-4) 0;
1402
+ border-bottom: 1px solid var(--qp-line);
1403
+ }
1404
+
1405
+ .qp-settings-nav__item {
1406
+ display: flex;
1407
+ align-items: center;
1408
+ justify-content: space-between;
1409
+ min-height: 38px;
1410
+ border: 0;
1411
+ border-radius: var(--qp-radius-sm);
1412
+ padding: 0 12px;
1413
+ background: transparent;
1414
+ color: var(--qp-text-2);
1415
+ text-align: left;
1416
+ }
1417
+
1418
+ .qp-settings-nav__item.is-active {
1419
+ background: var(--qp-primary);
1420
+ color: #071311;
1421
+ font-weight: var(--qp-weight-semibold);
1422
+ }
1423
+
1424
+ .qp-settings-content {
1425
+ display: grid;
1426
+ gap: var(--qp-space-5);
1427
+ }
1428
+
1429
+ .qp-setting-row {
1430
+ display: grid;
1431
+ grid-template-columns: minmax(160px, 0.22fr) minmax(0, 1fr);
1432
+ gap: var(--qp-space-4);
1433
+ align-items: center;
1434
+ }
1435
+
1436
+ .qp-path-field {
1437
+ display: grid;
1438
+ grid-template-columns: minmax(0, 1fr) auto;
1439
+ align-items: center;
1440
+ min-height: var(--qp-size-control-md);
1441
+ border-radius: var(--qp-radius-sm);
1442
+ background: var(--qp-bg-input);
1443
+ color: var(--qp-text-2);
1444
+ }
1445
+
1446
+ .qp-path-field__value {
1447
+ min-width: 0;
1448
+ overflow: hidden;
1449
+ padding: 0 12px;
1450
+ text-overflow: ellipsis;
1451
+ white-space: nowrap;
1452
+ }
1453
+
1454
+ .qp-version-card {
1455
+ display: grid;
1456
+ grid-template-columns: minmax(0, 1fr) auto;
1457
+ align-items: center;
1458
+ gap: var(--qp-space-4);
1459
+ border: 1px solid var(--qp-line);
1460
+ border-radius: var(--qp-radius-md);
1461
+ padding: var(--qp-space-4);
1462
+ background: var(--qp-bg-3);
1463
+ }
1464
+
1465
+ .qp-version-card__meta {
1466
+ display: flex;
1467
+ flex-wrap: wrap;
1468
+ gap: var(--qp-space-4);
1469
+ color: var(--qp-text-3);
1470
+ font-size: var(--qp-font-body-2);
1471
+ }
1472
+
1473
+ .qp-panel-tabs {
1474
+ display: flex;
1475
+ min-height: 38px;
1476
+ border-bottom: 1px solid var(--qp-line);
1477
+ background: var(--qp-bg-3);
1478
+ }
1479
+
1480
+ .qp-panel-tab {
1481
+ min-width: 96px;
1482
+ border: 0;
1483
+ border-right: 1px solid var(--qp-line);
1484
+ background: transparent;
1485
+ color: var(--qp-text-3);
1486
+ font-size: var(--qp-font-body-2);
1487
+ }
1488
+
1489
+ .qp-panel-tab.is-active {
1490
+ color: var(--qp-primary);
1491
+ box-shadow: inset 0 -2px 0 var(--qp-primary);
1492
+ }
1493
+
1494
+ .qp-split-panel {
1495
+ display: grid;
1496
+ grid-template-columns: minmax(260px, 0.32fr) minmax(0, 1fr);
1497
+ min-height: 420px;
1498
+ border: 1px solid var(--qp-line);
1499
+ border-radius: var(--qp-radius-md);
1500
+ overflow: hidden;
1501
+ background: var(--qp-bg-2);
1502
+ }
1503
+
1504
+ .qp-split-panel__rail {
1505
+ border-right: 1px solid var(--qp-line);
1506
+ background: color-mix(in srgb, var(--qp-bg-1) 55%, var(--qp-bg-2));
1507
+ }
1508
+
1509
+ .qp-split-panel__stage {
1510
+ min-width: 0;
1511
+ padding: var(--qp-space-5);
1512
+ background:
1513
+ linear-gradient(90deg, rgba(94, 142, 236, 0.035) 1px, transparent 1px) 0 0 / 44px 44px,
1514
+ var(--qp-bg-2);
1515
+ }
1516
+
1517
+ .qp-properties-panel {
1518
+ display: grid;
1519
+ min-width: 320px;
1520
+ border: 1px solid color-mix(in srgb, var(--qp-primary) 60%, var(--qp-line));
1521
+ border-radius: var(--qp-radius-md);
1522
+ background: var(--qp-bg-3);
1523
+ box-shadow: var(--qp-shadow-drop-1), var(--qp-shadow-inner-1);
1524
+ overflow: hidden;
1525
+ }
1526
+
1527
+ .qp-properties-header {
1528
+ display: grid;
1529
+ grid-template-columns: auto minmax(0, 1fr) auto;
1530
+ gap: var(--qp-space-3);
1531
+ align-items: center;
1532
+ padding: var(--qp-space-4);
1533
+ border-bottom: 1px solid var(--qp-line);
1534
+ }
1535
+
1536
+ .qp-properties-header__title {
1537
+ min-width: 0;
1538
+ }
1539
+
1540
+ .qp-properties-header__title strong,
1541
+ .qp-properties-header__title span {
1542
+ display: block;
1543
+ overflow: hidden;
1544
+ text-overflow: ellipsis;
1545
+ white-space: nowrap;
1546
+ }
1547
+
1548
+ .qp-property-section {
1549
+ border-bottom: 1px solid var(--qp-line);
1550
+ }
1551
+
1552
+ .qp-property-section:last-child {
1553
+ border-bottom: 0;
1554
+ }
1555
+
1556
+ .qp-property-section > summary {
1557
+ display: flex;
1558
+ align-items: center;
1559
+ gap: var(--qp-space-2);
1560
+ min-height: 36px;
1561
+ padding: 0 var(--qp-space-4);
1562
+ color: var(--qp-text-1);
1563
+ cursor: pointer;
1564
+ list-style: none;
1565
+ }
1566
+
1567
+ .qp-property-section > summary::-webkit-details-marker {
1568
+ display: none;
1569
+ }
1570
+
1571
+ .qp-property-section > summary::before {
1572
+ content: "";
1573
+ width: 0;
1574
+ height: 0;
1575
+ border-top: 5px solid transparent;
1576
+ border-bottom: 5px solid transparent;
1577
+ border-left: 6px solid var(--qp-text-3);
1578
+ transition: transform var(--qp-transition-fast);
1579
+ }
1580
+
1581
+ .qp-property-section[open] > summary::before {
1582
+ transform: rotate(90deg);
1583
+ }
1584
+
1585
+ .qp-property-section__body {
1586
+ display: grid;
1587
+ gap: var(--qp-space-3);
1588
+ padding: 0 var(--qp-space-4) var(--qp-space-4);
1589
+ }
1590
+
1591
+ .qp-property-row {
1592
+ display: grid;
1593
+ grid-template-columns: minmax(110px, 0.32fr) minmax(0, 1fr);
1594
+ gap: var(--qp-space-3);
1595
+ align-items: center;
1596
+ min-width: 0;
1597
+ }
1598
+
1599
+ .qp-property-label {
1600
+ min-width: 0;
1601
+ color: var(--qp-text-2);
1602
+ font-size: var(--qp-font-body-2);
1603
+ }
1604
+
1605
+ .qp-axis-grid {
1606
+ display: grid;
1607
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1608
+ gap: var(--qp-space-2);
1609
+ }
1610
+
1611
+ .qp-axis-field {
1612
+ display: grid;
1613
+ grid-template-columns: auto minmax(0, 1fr) auto;
1614
+ align-items: center;
1615
+ min-height: var(--qp-size-control-md);
1616
+ border-radius: var(--qp-radius-sm);
1617
+ background: var(--qp-bg-input);
1618
+ overflow: hidden;
1619
+ }
1620
+
1621
+ .qp-axis-field__axis {
1622
+ padding-left: 10px;
1623
+ color: var(--axis-color, var(--qp-primary));
1624
+ font-size: var(--qp-font-body-2);
1625
+ font-weight: var(--qp-weight-semibold);
1626
+ }
1627
+
1628
+ .qp-axis-field__value {
1629
+ min-width: 0;
1630
+ border: 0;
1631
+ background: transparent;
1632
+ color: var(--qp-text-1);
1633
+ padding: 0 8px;
1634
+ }
1635
+
1636
+ .qp-axis-field__unit {
1637
+ padding-right: 10px;
1638
+ color: var(--qp-text-4);
1639
+ font-size: var(--qp-font-caption-1);
1640
+ }
1641
+
1642
+ .qp-mini-tool-row {
1643
+ display: flex;
1644
+ flex-wrap: wrap;
1645
+ gap: var(--qp-space-2);
1646
+ }
1647
+
1648
+ .qp-mini-tool {
1649
+ display: inline-grid;
1650
+ place-items: center;
1651
+ width: var(--qp-size-control-sm);
1652
+ height: var(--qp-size-control-sm);
1653
+ border: 1px solid var(--qp-line);
1654
+ border-radius: var(--qp-radius-xs);
1655
+ background: var(--qp-bg-input);
1656
+ color: var(--qp-text-2);
1657
+ }
1658
+
1659
+ .qp-swatch-input {
1660
+ display: grid;
1661
+ grid-template-columns: 42px minmax(0, 1fr) 80px;
1662
+ gap: var(--qp-space-2);
1663
+ }
1664
+
1665
+ .qp-swatch-input__chip {
1666
+ border-radius: var(--qp-radius-xs);
1667
+ background: var(--swatch-color, #ccffff);
1668
+ }
1669
+
1670
+ .qp-anchor-grid {
1671
+ display: grid;
1672
+ grid-template-columns: auto repeat(4, minmax(82px, 1fr));
1673
+ gap: var(--qp-space-4);
1674
+ align-items: center;
1675
+ }
1676
+
1677
+ .qp-anchor-grid__head,
1678
+ .qp-anchor-grid__side {
1679
+ color: var(--qp-text-2);
1680
+ font-size: var(--qp-font-head-2);
1681
+ text-align: center;
1682
+ }
1683
+
1684
+ .qp-anchor-grid__side {
1685
+ writing-mode: vertical-rl;
1686
+ transform: rotate(180deg);
1687
+ }
1688
+
1689
+ .qp-anchor-preset {
1690
+ display: grid;
1691
+ place-items: center;
1692
+ aspect-ratio: 1;
1693
+ border: 1px solid transparent;
1694
+ border-radius: var(--qp-radius-md);
1695
+ background: var(--qp-bg-4);
1696
+ }
1697
+
1698
+ .qp-anchor-preset.is-active {
1699
+ border-color: var(--qp-primary);
1700
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--qp-primary) 64%, transparent);
1701
+ }
1702
+
1703
+ .qp-anchor-glyph {
1704
+ position: relative;
1705
+ width: 58%;
1706
+ aspect-ratio: 1;
1707
+ border: 2px solid var(--qp-text-4);
1708
+ }
1709
+
1710
+ .qp-anchor-glyph::before,
1711
+ .qp-anchor-glyph::after {
1712
+ content: "";
1713
+ position: absolute;
1714
+ background: var(--anchor-color, #c65366);
1715
+ }
1716
+
1717
+ .qp-anchor-glyph::before {
1718
+ width: 2px;
1719
+ height: 100%;
1720
+ left: var(--anchor-x, 0);
1721
+ top: 0;
1722
+ }
1723
+
1724
+ .qp-anchor-glyph::after {
1725
+ width: 100%;
1726
+ height: 2px;
1727
+ left: 0;
1728
+ top: var(--anchor-y, 0);
1729
+ }
1730
+
1731
+ .qp-anchor-glyph__box {
1732
+ position: absolute;
1733
+ width: 42%;
1734
+ height: 42%;
1735
+ border: 2px solid var(--qp-text-1);
1736
+ left: var(--box-x, 0);
1737
+ top: var(--box-y, 0);
1738
+ }
1739
+
1740
+ .qp-anchor-glyph--stretch::before,
1741
+ .qp-anchor-glyph--stretch::after {
1742
+ background: var(--qp-info);
1743
+ }
1744
+
1745
+ .qp-icon {
1746
+ display: inline-block;
1747
+ width: 1em;
1748
+ height: 1em;
1749
+ color: currentColor;
1750
+ vertical-align: -0.16em;
1751
+ }
1752
+
1753
+ .qp-icon svg,
1754
+ svg.qp-icon {
1755
+ width: 1em;
1756
+ height: 1em;
1757
+ overflow: visible;
1758
+ fill: none;
1759
+ stroke: currentColor;
1760
+ stroke-linecap: round;
1761
+ stroke-linejoin: round;
1762
+ stroke-width: 1.8;
1763
+ }
1764
+
1765
+ .qp-icon--solid svg,
1766
+ svg.qp-icon--solid {
1767
+ fill: currentColor;
1768
+ stroke: none;
1769
+ }
1770
+
1771
+ .qp-icon-board {
1772
+ display: grid;
1773
+ gap: var(--qp-space-4);
1774
+ }
1775
+
1776
+ .qp-icon-category {
1777
+ display: grid;
1778
+ grid-template-columns: 120px minmax(0, 1fr);
1779
+ gap: var(--qp-space-4);
1780
+ align-items: start;
1781
+ }
1782
+
1783
+ .qp-icon-category__name {
1784
+ color: var(--category-color, var(--qp-text-2));
1785
+ font-size: var(--qp-font-body-2);
1786
+ font-weight: var(--qp-weight-semibold);
1787
+ text-transform: uppercase;
1788
+ }
1789
+
1790
+ .qp-icon-grid {
1791
+ display: grid;
1792
+ grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
1793
+ gap: var(--qp-space-3);
1794
+ }
1795
+
1796
+ .qp-icon-cell {
1797
+ position: relative;
1798
+ display: grid;
1799
+ place-items: center;
1800
+ min-height: 52px;
1801
+ border: 1px solid color-mix(in srgb, var(--qp-icon-guide) 34%, transparent);
1802
+ border-radius: var(--qp-radius-xs);
1803
+ background:
1804
+ linear-gradient(var(--qp-icon-guide), var(--qp-icon-guide)) 50% 0 / 1px 100% no-repeat,
1805
+ linear-gradient(90deg, var(--qp-icon-guide), var(--qp-icon-guide)) 0 50% / 100% 1px no-repeat,
1806
+ var(--qp-bg-1);
1807
+ color: var(--qp-icon-stroke);
1808
+ font-size: 22px;
1809
+ }
1810
+
1811
+ .qp-icon-cell svg {
1812
+ fill: none;
1813
+ stroke: currentColor;
1814
+ stroke-linecap: round;
1815
+ stroke-linejoin: round;
1816
+ stroke-width: 1.8;
1817
+ filter: drop-shadow(0 2px 0 var(--qp-icon-shadow));
1818
+ }
1819
+
1820
+ .qp-icon-cell .qp-icon-fill {
1821
+ fill: currentColor;
1822
+ stroke: var(--qp-icon-shadow);
1823
+ stroke-width: 1.1;
1824
+ }
1825
+
1826
+ .qp-icon-cell--lg {
1827
+ min-height: 92px;
1828
+ font-size: 52px;
1829
+ }
1830
+
1831
+ .qp-icon-name {
1832
+ margin-top: 4px;
1833
+ color: var(--qp-text-3);
1834
+ font-size: 9px;
1835
+ text-align: center;
1836
+ }
1837
+
1838
+ @media (max-width: 840px) {
1839
+ .qp-shell {
1840
+ grid-template-columns: 1fr;
1841
+ }
1842
+
1843
+ .qp-sidebar {
1844
+ position: static;
1845
+ }
1846
+
1847
+ .qp-main {
1848
+ padding: var(--qp-space-4);
1849
+ }
1850
+
1851
+ .qp-section-title {
1852
+ grid-template-columns: 1fr;
1853
+ gap: var(--qp-space-2);
1854
+ }
1855
+
1856
+ .qp-settings-view,
1857
+ .qp-split-panel,
1858
+ .qp-property-row,
1859
+ .qp-market-layout {
1860
+ grid-template-columns: 1fr;
1861
+ }
1862
+
1863
+ .qp-market-rail,
1864
+ .qp-market-inspector {
1865
+ border: 0;
1866
+ }
1867
+
1868
+ .qp-anchor-grid {
1869
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1870
+ }
1871
+
1872
+ .qp-anchor-grid__head,
1873
+ .qp-anchor-grid__side {
1874
+ display: none;
1875
+ }
1876
+ }