@tresjs/cientos 5.7.1 → 5.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,982 @@
1
+ .cientos-decal-ui,
2
+ .cientos-decal-ui * {
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ .cientos-decal-ui {
7
+ position: fixed;
8
+ inset: 0;
9
+ pointer-events: none;
10
+ z-index: 1000000;
11
+
12
+ font-family:
13
+ 'Inter',
14
+ -apple-system,
15
+ BlinkMacSystemFont,
16
+ 'SF Pro Text',
17
+ 'Segoe UI',
18
+ Roboto,
19
+ system-ui,
20
+ sans-serif;
21
+ font-feature-settings: 'cv11', 'ss01', 'tnum';
22
+ -webkit-font-smoothing: antialiased;
23
+ -moz-osx-font-smoothing: grayscale;
24
+ letter-spacing: -0.005em;
25
+ user-select: none;
26
+
27
+ --accent: #fbb03b;
28
+ --accent-glow: rgba(251, 176, 59, 0.45);
29
+ --accent-soft: rgba(251, 176, 59, 0.14);
30
+ --danger: #ef4444;
31
+ --danger-bg: rgba(239, 68, 68, 0.08);
32
+ --kbd-bg: rgba(255, 255, 255, 0.22);
33
+ }
34
+ .cientos-decal-ui.is-contained {
35
+ position: absolute;
36
+ z-index: 10;
37
+ }
38
+
39
+ .cientos-decal-ui.theme-light {
40
+ --dock-bg: rgba(255, 255, 255, 0.78);
41
+ --dock-border: rgba(255, 255, 255, 0.7);
42
+ --dock-inner-highlight: rgba(255, 255, 255, 0.8);
43
+ --dock-shadow: 0 24px 48px -16px rgba(15, 23, 42, 0.18), 0 8px 18px -6px rgba(15, 23, 42, 0.12);
44
+ --text-strong: rgb(24, 24, 27);
45
+ --text-muted: rgb(82, 82, 91);
46
+ --text-faint: rgb(161, 161, 170);
47
+ --divider: rgba(0, 0, 0, 0.08);
48
+ --hover-bg: rgba(0, 0, 0, 0.05);
49
+ --idle-bg: rgba(244, 244, 245, 0.6);
50
+ --idle-border: rgba(0, 0, 0, 0.06);
51
+ --thumb-bg-a: #fafafa;
52
+ --thumb-bg-b: #e5e5e5;
53
+ --thumb-ring: rgba(0, 0, 0, 0.08);
54
+ --thumb-ring-hover: rgba(251, 176, 59, 0.4);
55
+ }
56
+
57
+ .cientos-decal-ui.theme-dark {
58
+ --dock-bg: rgba(20, 22, 26, 0.78);
59
+ --dock-border: rgba(255, 255, 255, 0.08);
60
+ --dock-inner-highlight: rgba(255, 255, 255, 0.05);
61
+ --dock-shadow: 0 24px 48px -16px rgba(0, 0, 0, 0.6), 0 8px 18px -6px rgba(0, 0, 0, 0.4);
62
+ --text-strong: rgba(255, 255, 255, 0.96);
63
+ --text-muted: rgba(255, 255, 255, 0.65);
64
+ --text-faint: rgba(255, 255, 255, 0.35);
65
+ --divider: rgba(255, 255, 255, 0.08);
66
+ --hover-bg: rgba(255, 255, 255, 0.08);
67
+ --idle-bg: rgba(255, 255, 255, 0.03);
68
+ --idle-border: rgba(255, 255, 255, 0.06);
69
+ --thumb-bg-a: #1f2024;
70
+ --thumb-bg-b: #2a2b30;
71
+ --thumb-ring: rgba(255, 255, 255, 0.1);
72
+ --thumb-ring-hover: rgba(251, 176, 59, 0.5);
73
+ }
74
+
75
+ .cientos-decal-ui .handle-wrapper {
76
+ position: absolute;
77
+ inset: 0;
78
+ pointer-events: none;
79
+ }
80
+
81
+ .cientos-decal-ui .handle-area {
82
+ position: fixed;
83
+ width: clamp(120px, 22vw, 240px);
84
+ aspect-ratio: 1;
85
+ pointer-events: none;
86
+ opacity: 0;
87
+ transition: opacity 200ms;
88
+ touch-action: none;
89
+ }
90
+ .cientos-decal-ui .handle-area.is-active {
91
+ pointer-events: auto;
92
+ opacity: 1;
93
+ }
94
+
95
+ .cientos-decal-ui .handle-inner {
96
+ position: relative;
97
+ width: 100%;
98
+ height: 100%;
99
+ will-change: transform;
100
+ transform-origin: center;
101
+ cursor: grab;
102
+ }
103
+ .cientos-decal-ui .handle-inner:active {
104
+ cursor: grabbing;
105
+ }
106
+
107
+ .cientos-decal-ui .circle-center {
108
+ position: absolute;
109
+ top: 50%;
110
+ left: 50%;
111
+ transform: translate(-50%, -50%);
112
+ width: 6px;
113
+ height: 6px;
114
+ border-radius: 999px;
115
+ background: white;
116
+ box-shadow:
117
+ 0 0 0 2px rgba(0, 0, 0, 0.3),
118
+ 0 0 12px rgba(0, 0, 0, 0.45);
119
+ }
120
+ .cientos-decal-ui .circle-ring {
121
+ position: absolute;
122
+ inset: 0;
123
+ border-radius: 50%;
124
+ border: 1px solid rgba(255, 255, 255, 0.95);
125
+ box-shadow:
126
+ 0 6px 24px -4px rgba(0, 0, 0, 0.25),
127
+ 0 2px 6px -1px rgba(0, 0, 0, 0.12),
128
+ inset 0 0 0 1px rgba(0, 0, 0, 0.04);
129
+ }
130
+ .cientos-decal-ui.theme-dark .circle-ring {
131
+ border-color: rgba(255, 255, 255, 0.85);
132
+ }
133
+
134
+ .cientos-decal-ui .slider-anchor {
135
+ position: absolute;
136
+ top: 50%;
137
+ left: 50%;
138
+ transform-origin: center;
139
+ z-index: 9999;
140
+ cursor: grab;
141
+ touch-action: none;
142
+ }
143
+ .cientos-decal-ui .slider-anchor:active {
144
+ cursor: grabbing;
145
+ }
146
+ .cientos-decal-ui .slider-handle {
147
+ width: 36px;
148
+ height: 10px;
149
+ border-radius: 999px;
150
+ background: white;
151
+ box-shadow:
152
+ 0 0 0 1px rgba(0, 0, 0, 0.08),
153
+ 0 2px 5px -1px rgba(0, 0, 0, 0.25);
154
+ transition:
155
+ background-color 150ms,
156
+ box-shadow 150ms,
157
+ transform 150ms;
158
+ }
159
+ .cientos-decal-ui .slider-handle:hover {
160
+ box-shadow:
161
+ 0 0 0 1px rgba(251, 176, 59, 0.6),
162
+ 0 3px 10px -2px var(--accent-glow);
163
+ }
164
+ .cientos-decal-ui .slider-handle.is-dragging {
165
+ background: var(--accent);
166
+ transform: scale(1.1);
167
+ box-shadow:
168
+ 0 4px 12px -2px var(--accent-glow),
169
+ 0 0 0 3px rgba(251, 176, 59, 0.18);
170
+ }
171
+
172
+ .cientos-decal-ui .snap-vignette {
173
+ position: absolute;
174
+ inset: 0;
175
+ border-radius: 9999px;
176
+ pointer-events: none;
177
+ box-shadow: inset 0 0 12px 2px rgba(0, 0, 0, 0.28);
178
+ }
179
+ .cientos-decal-ui .snap-ticks {
180
+ position: absolute;
181
+ inset: 0;
182
+ width: 100%;
183
+ height: 100%;
184
+ pointer-events: none;
185
+ filter: drop-shadow(0 0 0.6px rgba(0, 0, 0, 0.55));
186
+ }
187
+
188
+ .cientos-decal-ui .live-badge {
189
+ position: absolute;
190
+ top: -14px;
191
+ right: 0;
192
+ transform: translateX(33%);
193
+ display: inline-flex;
194
+ align-items: center;
195
+ gap: 8px;
196
+ padding: 4px 10px;
197
+ border-radius: 999px;
198
+ background: rgba(15, 15, 17, 0.9);
199
+ color: rgba(255, 255, 255, 0.95);
200
+ font-size: 10px;
201
+ font-weight: 500;
202
+ font-variant-numeric: tabular-nums;
203
+ backdrop-filter: blur(8px);
204
+ -webkit-backdrop-filter: blur(8px);
205
+ box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.25);
206
+ pointer-events: none;
207
+ white-space: nowrap;
208
+ }
209
+ .cientos-decal-ui .live-badge__scale {
210
+ color: var(--accent);
211
+ font-weight: 600;
212
+ }
213
+ .cientos-decal-ui .live-badge__sep {
214
+ color: rgba(255, 255, 255, 0.25);
215
+ }
216
+ .cientos-decal-ui .live-badge__layer {
217
+ color: rgba(255, 255, 255, 0.7);
218
+ }
219
+
220
+ .cientos-decal-ui .dock-stack {
221
+ position: absolute;
222
+ left: 50%;
223
+ bottom: 24px;
224
+ transform: translateX(-50%);
225
+ display: flex;
226
+ flex-direction: column;
227
+ align-items: center;
228
+ gap: 8px;
229
+ opacity: 0;
230
+ transition:
231
+ opacity 200ms,
232
+ transform 200ms;
233
+ pointer-events: none;
234
+ }
235
+ .cientos-decal-ui .dock-stack.is-visible {
236
+ opacity: 1;
237
+ pointer-events: auto;
238
+ }
239
+
240
+ .cientos-decal-ui .dock {
241
+ display: flex;
242
+ align-items: stretch;
243
+ gap: 6px;
244
+ padding: 6px;
245
+ border-radius: 16px;
246
+ background: var(--dock-bg);
247
+ border: 1px solid var(--dock-border);
248
+ box-shadow:
249
+ var(--dock-shadow),
250
+ inset 0 1px 0 var(--dock-inner-highlight);
251
+ backdrop-filter: blur(20px) saturate(180%);
252
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
253
+ }
254
+
255
+ .cientos-decal-ui .divider {
256
+ align-self: center;
257
+ width: 1px;
258
+ height: 18px;
259
+ background: var(--divider);
260
+ margin: 0 4px;
261
+ }
262
+
263
+ .cientos-decal-ui .mode-badge {
264
+ display: inline-flex;
265
+ align-items: center;
266
+ gap: 8px;
267
+ padding: 0 14px;
268
+ border-radius: 12px;
269
+ color: white;
270
+ font-size: 10.5px;
271
+ font-weight: 600;
272
+ letter-spacing: 0.12em;
273
+ text-transform: uppercase;
274
+ box-shadow:
275
+ inset 0 1px 0 rgba(255, 255, 255, 0.15),
276
+ 0 1px 2px rgba(0, 0, 0, 0.15);
277
+ }
278
+ .cientos-decal-ui .mode-badge.is-place {
279
+ background: linear-gradient(180deg, var(--accent) 0%, #d97706 100%);
280
+ }
281
+ .cientos-decal-ui .mode-badge.is-update {
282
+ background: linear-gradient(180deg, rgb(64, 64, 64) 0%, rgb(20, 20, 20) 100%);
283
+ }
284
+ .cientos-decal-ui.theme-dark .mode-badge.is-update {
285
+ background: linear-gradient(180deg, rgb(240, 240, 245) 0%, rgb(200, 200, 210) 100%);
286
+ color: rgb(20, 20, 25);
287
+ }
288
+ .cientos-decal-ui .mode-badge--idle {
289
+ background: var(--idle-bg);
290
+ color: var(--text-faint);
291
+ font-weight: 500;
292
+ font-size: 10px;
293
+ border: 1px solid var(--idle-border);
294
+ box-shadow: none;
295
+ }
296
+ .cientos-decal-ui .mode-badge__dot {
297
+ position: relative;
298
+ display: inline-flex;
299
+ width: 6px;
300
+ height: 6px;
301
+ }
302
+ .cientos-decal-ui .mode-badge__core {
303
+ position: relative;
304
+ width: 6px;
305
+ height: 6px;
306
+ border-radius: 999px;
307
+ background: currentColor;
308
+ }
309
+ .cientos-decal-ui .mode-badge.is-place .mode-badge__core,
310
+ .cientos-decal-ui .mode-badge.is-update .mode-badge__core {
311
+ background: white;
312
+ }
313
+ .cientos-decal-ui.theme-dark .mode-badge.is-update .mode-badge__core {
314
+ background: rgb(40, 40, 45);
315
+ }
316
+ .cientos-decal-ui .mode-badge__ping {
317
+ position: absolute;
318
+ inset: 0;
319
+ border-radius: 999px;
320
+ background: white;
321
+ opacity: 0.75;
322
+ animation: cientos-decal-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
323
+ }
324
+ .cientos-decal-ui.theme-dark .mode-badge.is-update .mode-badge__ping {
325
+ background: rgb(40, 40, 45);
326
+ }
327
+ @keyframes cientos-decal-ping {
328
+ 75%,
329
+ 100% {
330
+ transform: scale(2.2);
331
+ opacity: 0;
332
+ }
333
+ }
334
+
335
+ .cientos-decal-ui .picker {
336
+ display: flex;
337
+ align-items: center;
338
+ gap: 6px;
339
+ max-width: 52vw;
340
+ padding: 6px;
341
+ margin: -6px 0;
342
+ overflow-x: auto;
343
+ overflow-y: visible;
344
+ scrollbar-width: thin;
345
+ scrollbar-color: rgba(0, 0, 0, 0.22) transparent;
346
+ }
347
+ .cientos-decal-ui .picker::-webkit-scrollbar {
348
+ height: 6px;
349
+ }
350
+ .cientos-decal-ui .picker::-webkit-scrollbar-track {
351
+ background: transparent;
352
+ margin: 0 6px;
353
+ }
354
+ .cientos-decal-ui .picker::-webkit-scrollbar-thumb {
355
+ background: rgba(0, 0, 0, 0.22);
356
+ border-radius: 999px;
357
+ }
358
+ .cientos-decal-ui .picker::-webkit-scrollbar-thumb:hover {
359
+ background: rgba(0, 0, 0, 0.32);
360
+ }
361
+ .cientos-decal-ui.theme-dark .picker::-webkit-scrollbar-thumb {
362
+ background: rgba(255, 255, 255, 0.22);
363
+ }
364
+ .cientos-decal-ui.theme-dark .picker::-webkit-scrollbar-thumb:hover {
365
+ background: rgba(255, 255, 255, 0.32);
366
+ }
367
+
368
+ .cientos-decal-ui .thumb {
369
+ position: relative;
370
+ flex-shrink: 0;
371
+ width: 52px;
372
+ height: 52px;
373
+ padding: 0;
374
+ background: transparent;
375
+ border: none;
376
+ border-radius: 12px;
377
+ cursor: grab;
378
+ transition: transform 180ms cubic-bezier(0.4, 0, 0.2, 1);
379
+ }
380
+ .cientos-decal-ui .thumb:active {
381
+ cursor: grabbing;
382
+ }
383
+ .cientos-decal-ui .thumb__frame {
384
+ display: flex;
385
+ align-items: center;
386
+ justify-content: center;
387
+ width: 100%;
388
+ height: 100%;
389
+ padding: 6px;
390
+ border-radius: 11px;
391
+ overflow: hidden;
392
+ background-color: var(--thumb-bg-a);
393
+ background-image:
394
+ linear-gradient(45deg, var(--thumb-bg-b) 25%, transparent 25%),
395
+ linear-gradient(-45deg, var(--thumb-bg-b) 25%, transparent 25%),
396
+ linear-gradient(45deg, transparent 75%, var(--thumb-bg-b) 75%),
397
+ linear-gradient(-45deg, transparent 75%, var(--thumb-bg-b) 75%);
398
+ background-size: 10px 10px;
399
+ background-position:
400
+ 0 0,
401
+ 0 5px,
402
+ 5px -5px,
403
+ -5px 0;
404
+ box-shadow:
405
+ 0 0 0 1px var(--thumb-ring),
406
+ 0 1px 2px rgba(0, 0, 0, 0.04);
407
+ transition: box-shadow 180ms;
408
+ }
409
+ .cientos-decal-ui .thumb__img {
410
+ display: block;
411
+ max-width: 100%;
412
+ max-height: 100%;
413
+ width: auto;
414
+ height: auto;
415
+ object-fit: contain;
416
+ pointer-events: none;
417
+ }
418
+ .cientos-decal-ui .thumb:hover {
419
+ transform: translateY(-2px);
420
+ }
421
+ .cientos-decal-ui .thumb:hover .thumb__frame {
422
+ box-shadow:
423
+ 0 0 0 1px var(--thumb-ring-hover),
424
+ 0 6px 14px -4px rgba(15, 23, 42, 0.15);
425
+ }
426
+ .cientos-decal-ui .thumb.is-active .thumb__frame {
427
+ box-shadow:
428
+ 0 0 0 2px var(--accent),
429
+ 0 6px 18px -4px var(--accent-glow);
430
+ }
431
+ .cientos-decal-ui .thumb.is-dragging {
432
+ opacity: 0.4;
433
+ transform: scale(0.92);
434
+ }
435
+ .cientos-decal-ui .thumb__check {
436
+ position: absolute;
437
+ top: -4px;
438
+ right: -4px;
439
+ width: 16px;
440
+ height: 16px;
441
+ border-radius: 999px;
442
+ background: var(--accent);
443
+ color: white;
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: center;
447
+ box-shadow:
448
+ 0 0 0 2px var(--dock-bg),
449
+ 0 2px 4px rgba(0, 0, 0, 0.15);
450
+ }
451
+
452
+ .cientos-decal-ui .export-slot {
453
+ display: flex;
454
+ align-items: center;
455
+ padding-left: 4px;
456
+ }
457
+
458
+ .cientos-decal-ui .layer-control {
459
+ display: inline-flex;
460
+ align-items: center;
461
+ gap: 2px;
462
+ padding: 2px;
463
+ border-radius: 9px;
464
+ background: var(--hover-bg);
465
+ color: var(--text-muted);
466
+ }
467
+ .cientos-decal-ui .layer-btn {
468
+ width: 24px;
469
+ height: 24px;
470
+ display: inline-flex;
471
+ align-items: center;
472
+ justify-content: center;
473
+ background: transparent;
474
+ border: none;
475
+ border-radius: 6px;
476
+ color: inherit;
477
+ cursor: pointer;
478
+ transition:
479
+ background-color 120ms,
480
+ color 120ms;
481
+ }
482
+ .cientos-decal-ui .layer-btn:hover {
483
+ background: var(--dock-bg);
484
+ color: var(--text-strong);
485
+ }
486
+ .cientos-decal-ui .layer-val {
487
+ min-width: 28px;
488
+ padding: 0 4px;
489
+ text-align: center;
490
+ font-size: 11px;
491
+ font-weight: 600;
492
+ color: var(--text-strong);
493
+ user-select: none;
494
+ }
495
+
496
+ .cientos-decal-ui .icon-btn {
497
+ width: 32px;
498
+ height: 32px;
499
+ display: inline-flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ background: transparent;
503
+ border: none;
504
+ border-radius: 9px;
505
+ color: var(--text-muted);
506
+ cursor: pointer;
507
+ transition:
508
+ background-color 120ms,
509
+ color 120ms;
510
+ }
511
+ .cientos-decal-ui .icon-btn:hover {
512
+ background: var(--hover-bg);
513
+ color: var(--text-strong);
514
+ }
515
+ .cientos-decal-ui .icon-btn:disabled {
516
+ opacity: 0.3;
517
+ cursor: not-allowed;
518
+ pointer-events: none;
519
+ }
520
+ .cientos-decal-ui .icon-btn.is-active {
521
+ background: var(--accent-soft);
522
+ color: var(--accent);
523
+ box-shadow: inset 0 0 0 1px rgba(251, 176, 59, 0.25);
524
+ }
525
+ .cientos-decal-ui .icon-btn.is-danger {
526
+ color: var(--danger);
527
+ }
528
+ .cientos-decal-ui .icon-btn.is-danger:hover {
529
+ background: var(--danger-bg);
530
+ color: #dc2626;
531
+ }
532
+
533
+ .cientos-decal-ui .primary-btn {
534
+ display: inline-flex;
535
+ align-items: center;
536
+ gap: 6px;
537
+ height: 32px;
538
+ padding: 0 12px 0 14px;
539
+ border-radius: 9px;
540
+ background: linear-gradient(180deg, var(--accent) 0%, #f59e0b 100%);
541
+ color: white;
542
+ font-size: 12px;
543
+ font-weight: 600;
544
+ letter-spacing: -0.005em;
545
+ border: none;
546
+ cursor: pointer;
547
+ box-shadow:
548
+ inset 0 1px 0 rgba(255, 255, 255, 0.25),
549
+ 0 1px 2px rgba(180, 83, 9, 0.3),
550
+ 0 4px 10px -2px var(--accent-glow);
551
+ transition:
552
+ transform 120ms,
553
+ box-shadow 120ms;
554
+ }
555
+ .cientos-decal-ui .primary-btn:hover {
556
+ transform: translateY(-1px);
557
+ box-shadow:
558
+ inset 0 1px 0 rgba(255, 255, 255, 0.25),
559
+ 0 2px 4px rgba(180, 83, 9, 0.35),
560
+ 0 8px 18px -4px var(--accent-glow);
561
+ }
562
+ .cientos-decal-ui .primary-btn:active {
563
+ transform: translateY(0);
564
+ }
565
+
566
+ .cientos-decal-ui .kbd {
567
+ display: inline-flex;
568
+ align-items: center;
569
+ justify-content: center;
570
+ min-width: 16px;
571
+ height: 16px;
572
+ padding: 0 4px;
573
+ margin-left: 2px;
574
+ border-radius: 4px;
575
+ background: var(--kbd-bg);
576
+ color: rgba(255, 255, 255, 0.95);
577
+ font-family: inherit;
578
+ font-size: 10px;
579
+ font-weight: 600;
580
+ line-height: 1;
581
+ }
582
+
583
+ .cientos-decal-ui .decal-list {
584
+ pointer-events: auto;
585
+ position: absolute;
586
+ top: 50%;
587
+ right: 16px;
588
+ transform: translateY(-50%);
589
+ flex-direction: column;
590
+ gap: 0;
591
+ padding: 8px;
592
+ border-radius: 16px;
593
+ max-height: 70vh;
594
+ overflow-y: auto;
595
+ scrollbar-width: thin;
596
+ min-width: 132px;
597
+ }
598
+ .cientos-decal-ui.is-contained .decal-list {
599
+ max-height: calc(100% - 32px);
600
+ }
601
+
602
+ .cientos-decal-ui.is-contained .dock-stack {
603
+ bottom: 12px;
604
+ gap: 6px;
605
+ }
606
+ .cientos-decal-ui.is-contained .dock {
607
+ padding: 4px;
608
+ gap: 4px;
609
+ border-radius: 12px;
610
+ }
611
+ .cientos-decal-ui.is-contained .picker {
612
+ max-width: none;
613
+ flex: 1 1 0;
614
+ min-width: 0;
615
+ gap: 4px;
616
+ }
617
+ .cientos-decal-ui.is-contained .thumb {
618
+ width: 40px;
619
+ height: 40px;
620
+ }
621
+ .cientos-decal-ui.is-contained .thumb__frame {
622
+ padding: 4px;
623
+ }
624
+ .cientos-decal-ui.is-contained .icon-btn {
625
+ width: 28px;
626
+ height: 28px;
627
+ }
628
+ .cientos-decal-ui.is-contained .mode-badge {
629
+ padding: 0 10px;
630
+ font-size: 9.5px;
631
+ }
632
+
633
+ .cientos-decal-ui .list-header {
634
+ display: flex;
635
+ align-items: center;
636
+ justify-content: space-between;
637
+ padding: 2px 6px 8px;
638
+ border-bottom: 1px solid var(--divider);
639
+ margin-bottom: 6px;
640
+ }
641
+ .cientos-decal-ui .list-header__title {
642
+ font-size: 10px;
643
+ font-weight: 700;
644
+ letter-spacing: 0.14em;
645
+ text-transform: uppercase;
646
+ color: var(--text-faint);
647
+ }
648
+ .cientos-decal-ui .list-header__count {
649
+ font-size: 10px;
650
+ font-weight: 600;
651
+ font-variant-numeric: tabular-nums;
652
+ color: var(--text-faint);
653
+ background: var(--hover-bg);
654
+ padding: 1px 6px;
655
+ border-radius: 999px;
656
+ }
657
+
658
+ .cientos-decal-ui .list-group {
659
+ display: flex;
660
+ flex-direction: column;
661
+ padding: 4px 0;
662
+ border-bottom: 1px solid var(--divider);
663
+ }
664
+ .cientos-decal-ui .list-group:last-child {
665
+ border-bottom: none;
666
+ padding-bottom: 0;
667
+ }
668
+ .cientos-decal-ui .list-group__header {
669
+ display: flex;
670
+ align-items: center;
671
+ justify-content: space-between;
672
+ padding: 4px 6px 2px;
673
+ }
674
+ .cientos-decal-ui .list-group__name {
675
+ font-size: 9.5px;
676
+ font-weight: 700;
677
+ letter-spacing: 0.1em;
678
+ text-transform: uppercase;
679
+ color: var(--text-strong);
680
+ }
681
+ .cientos-decal-ui .list-group__count {
682
+ font-size: 9.5px;
683
+ font-weight: 600;
684
+ font-variant-numeric: tabular-nums;
685
+ color: var(--text-faint);
686
+ }
687
+ .cientos-decal-ui .list-group__items {
688
+ display: flex;
689
+ flex-direction: column;
690
+ gap: 2px;
691
+ padding: 2px 0 4px;
692
+ }
693
+
694
+ .cientos-decal-ui .list-item {
695
+ position: relative;
696
+ display: flex;
697
+ align-items: center;
698
+ gap: 8px;
699
+ padding: 4px 8px 4px 4px;
700
+ border-radius: 10px;
701
+ background: transparent;
702
+ border: 1px solid transparent;
703
+ color: var(--text-muted);
704
+ cursor: grab;
705
+ transition:
706
+ background-color 120ms,
707
+ border-color 120ms,
708
+ opacity 120ms;
709
+ }
710
+ .cientos-decal-ui .list-item:active {
711
+ cursor: grabbing;
712
+ }
713
+ .cientos-decal-ui .list-item:hover {
714
+ background: var(--hover-bg);
715
+ color: var(--text-strong);
716
+ }
717
+ .cientos-decal-ui .list-item.is-editing {
718
+ border-color: rgba(251, 176, 59, 0.45);
719
+ background: rgba(251, 176, 59, 0.1);
720
+ color: var(--text-strong);
721
+ }
722
+ .cientos-decal-ui .list-item.is-dragging {
723
+ opacity: 0.45;
724
+ }
725
+ .cientos-decal-ui .list-item.drop-before::before,
726
+ .cientos-decal-ui .list-item.drop-after::after {
727
+ content: '';
728
+ position: absolute;
729
+ left: 4px;
730
+ right: 4px;
731
+ height: 2px;
732
+ border-radius: 2px;
733
+ background: var(--accent);
734
+ box-shadow: 0 0 6px var(--accent-glow);
735
+ pointer-events: none;
736
+ }
737
+ .cientos-decal-ui .list-item.drop-before::before {
738
+ top: -2px;
739
+ }
740
+ .cientos-decal-ui .list-item.drop-after::after {
741
+ bottom: -2px;
742
+ }
743
+
744
+ .cientos-decal-ui .list-item.is-hidden {
745
+ opacity: 0.5;
746
+ }
747
+ .cientos-decal-ui .list-item.is-hidden .list-item__thumb,
748
+ .cientos-decal-ui .list-item.is-hidden .list-item__layer {
749
+ filter: grayscale(0.6);
750
+ }
751
+
752
+ .cientos-decal-ui .list-item__eye,
753
+ .cientos-decal-ui .list-item__remove {
754
+ display: inline-flex;
755
+ align-items: center;
756
+ justify-content: center;
757
+ width: 22px;
758
+ height: 22px;
759
+ padding: 0;
760
+ background: transparent;
761
+ border: none;
762
+ border-radius: 6px;
763
+ color: var(--text-faint);
764
+ cursor: pointer;
765
+ flex-shrink: 0;
766
+ transition:
767
+ background-color 120ms,
768
+ color 120ms;
769
+ }
770
+ .cientos-decal-ui .list-item__eye:hover,
771
+ .cientos-decal-ui .list-item__remove:hover {
772
+ background: var(--hover-bg);
773
+ color: var(--text-strong);
774
+ }
775
+ .cientos-decal-ui .list-item__eye.is-off {
776
+ color: var(--accent);
777
+ }
778
+ .cientos-decal-ui .list-item__eye svg,
779
+ .cientos-decal-ui .list-item__remove svg {
780
+ width: 14px;
781
+ height: 14px;
782
+ pointer-events: none;
783
+ }
784
+ .cientos-decal-ui .list-item__remove:hover {
785
+ background: var(--danger-bg);
786
+ color: var(--danger);
787
+ }
788
+
789
+ .cientos-decal-ui .list-empty {
790
+ padding: 12px 8px 6px;
791
+ font-size: 11px;
792
+ color: var(--text-faint);
793
+ text-align: center;
794
+ }
795
+
796
+ .cientos-decal-ui .list-item__thumb {
797
+ display: flex;
798
+ align-items: center;
799
+ justify-content: center;
800
+ width: 32px;
801
+ height: 32px;
802
+ border-radius: 8px;
803
+ overflow: hidden;
804
+ flex-shrink: 0;
805
+ background-color: var(--thumb-bg-a);
806
+ background-image:
807
+ linear-gradient(45deg, var(--thumb-bg-b) 25%, transparent 25%),
808
+ linear-gradient(-45deg, var(--thumb-bg-b) 25%, transparent 25%),
809
+ linear-gradient(45deg, transparent 75%, var(--thumb-bg-b) 75%),
810
+ linear-gradient(-45deg, transparent 75%, var(--thumb-bg-b) 75%);
811
+ background-size: 8px 8px;
812
+ background-position:
813
+ 0 0,
814
+ 0 4px,
815
+ 4px -4px,
816
+ -4px 0;
817
+ box-shadow: 0 0 0 1px var(--thumb-ring);
818
+ }
819
+ .cientos-decal-ui .list-item__img {
820
+ display: block;
821
+ max-width: 100%;
822
+ max-height: 100%;
823
+ width: auto;
824
+ height: auto;
825
+ object-fit: contain;
826
+ padding: 3px;
827
+ pointer-events: none;
828
+ }
829
+ .cientos-decal-ui .list-item__layer {
830
+ font-size: 10px;
831
+ font-weight: 600;
832
+ font-variant-numeric: tabular-nums;
833
+ margin-left: auto;
834
+ }
835
+
836
+ .cientos-decal-ui .tint-wrapper {
837
+ position: relative;
838
+ display: inline-flex;
839
+ }
840
+ .cientos-decal-ui .tint-swatch {
841
+ position: absolute;
842
+ bottom: 4px;
843
+ right: 4px;
844
+ width: 8px;
845
+ height: 8px;
846
+ border-radius: 999px;
847
+ border: 1px solid rgba(0, 0, 0, 0.18);
848
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6);
849
+ pointer-events: none;
850
+ }
851
+ .cientos-decal-ui .tint-popover {
852
+ position: absolute;
853
+ left: 50%;
854
+ bottom: calc(100% + 8px);
855
+ transform: translateX(-50%);
856
+ display: flex;
857
+ flex-direction: column;
858
+ gap: 10px;
859
+ padding: 12px;
860
+ min-width: 200px;
861
+ border-radius: 12px;
862
+ background: var(--dock-bg);
863
+ border: 1px solid var(--dock-border);
864
+ box-shadow: var(--dock-shadow);
865
+ backdrop-filter: blur(20px) saturate(180%);
866
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
867
+ z-index: 10;
868
+ }
869
+ .cientos-decal-ui .tint-row {
870
+ display: flex;
871
+ align-items: center;
872
+ gap: 8px;
873
+ }
874
+ .cientos-decal-ui .tint-row__label {
875
+ flex: 0 0 60px;
876
+ font-size: 10px;
877
+ font-weight: 600;
878
+ letter-spacing: 0.1em;
879
+ text-transform: uppercase;
880
+ color: var(--text-faint);
881
+ }
882
+ .cientos-decal-ui .tint-color-input {
883
+ width: 28px;
884
+ height: 28px;
885
+ padding: 0;
886
+ border: 1px solid var(--divider);
887
+ border-radius: 8px;
888
+ background: transparent;
889
+ cursor: pointer;
890
+ overflow: hidden;
891
+ }
892
+ .cientos-decal-ui .tint-color-input::-webkit-color-swatch-wrapper {
893
+ padding: 0;
894
+ }
895
+ .cientos-decal-ui .tint-color-input::-webkit-color-swatch {
896
+ border: none;
897
+ border-radius: 6px;
898
+ }
899
+ .cientos-decal-ui .tint-color-input::-moz-color-swatch {
900
+ border: none;
901
+ border-radius: 6px;
902
+ }
903
+
904
+ .cientos-decal-ui .tint-range {
905
+ flex: 1;
906
+ width: 100%;
907
+ height: 16px;
908
+ margin: 0;
909
+ background: transparent;
910
+ appearance: none;
911
+ -webkit-appearance: none;
912
+ cursor: pointer;
913
+ }
914
+ .cientos-decal-ui .tint-range::-webkit-slider-runnable-track {
915
+ height: 4px;
916
+ border-radius: 999px;
917
+ background: var(--hover-bg);
918
+ }
919
+ .cientos-decal-ui .tint-range::-moz-range-track {
920
+ height: 4px;
921
+ border-radius: 999px;
922
+ background: var(--hover-bg);
923
+ }
924
+ .cientos-decal-ui .tint-range::-webkit-slider-thumb {
925
+ -webkit-appearance: none;
926
+ width: 14px;
927
+ height: 14px;
928
+ margin-top: -5px;
929
+ border-radius: 999px;
930
+ background: var(--accent);
931
+ border: 2px solid white;
932
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
933
+ cursor: pointer;
934
+ }
935
+ .cientos-decal-ui .tint-range::-moz-range-thumb {
936
+ width: 14px;
937
+ height: 14px;
938
+ border-radius: 999px;
939
+ background: var(--accent);
940
+ border: 2px solid white;
941
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
942
+ cursor: pointer;
943
+ }
944
+
945
+ .cientos-decal-ui .tint-value {
946
+ flex: 0 0 36px;
947
+ font-size: 10.5px;
948
+ font-weight: 600;
949
+ font-variant-numeric: tabular-nums;
950
+ color: var(--text-strong);
951
+ text-align: right;
952
+ }
953
+
954
+ .cientos-decal-ui .tint-reset {
955
+ align-self: flex-end;
956
+ padding: 4px 10px;
957
+ background: transparent;
958
+ border: 1px solid var(--divider);
959
+ border-radius: 8px;
960
+ font-size: 10px;
961
+ font-weight: 600;
962
+ color: var(--text-muted);
963
+ cursor: pointer;
964
+ transition:
965
+ background-color 120ms,
966
+ color 120ms;
967
+ }
968
+ .cientos-decal-ui .tint-reset:hover {
969
+ background: var(--hover-bg);
970
+ color: var(--text-strong);
971
+ }
972
+
973
+ .edit-dock-enter-active,
974
+ .edit-dock-leave-active {
975
+ transition: all 220ms cubic-bezier(0.4, 0, 0.2, 1);
976
+ }
977
+ .edit-dock-enter-from,
978
+ .edit-dock-leave-to {
979
+ opacity: 0;
980
+ transform: translateY(8px);
981
+ }
982
+