tokvista 1.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,3428 @@
1
+ /**
2
+ * Tokvista - Production Ready Style
3
+ */
4
+
5
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
6
+
7
+ :root {
8
+ --ftd-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
9
+ --ftd-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', 'Consolas', monospace;
10
+
11
+
12
+ /* Color System */
13
+ --ftd-bg-page: #ffffff;
14
+ --ftd-bg-subtle: #f8fafc;
15
+ --ftd-bg-card: #ffffff;
16
+ --ftd-bg-hover: #f1f5f9;
17
+
18
+ --ftd-border: #e2e8f0;
19
+ --ftd-border-hover: #cbd5e1;
20
+
21
+ --ftd-text-main: #0f172a;
22
+ --ftd-text-sub: #475569;
23
+ --ftd-text-muted: #64748b;
24
+
25
+ --ftd-primary: #2563eb;
26
+ --ftd-primary-rgb: 37, 99, 235;
27
+ --ftd-primary-fade: rgba(37, 99, 235, 0.1);
28
+
29
+ --ftd-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1);
30
+ --ftd-shadow-hover: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.025);
31
+
32
+ --ftd-radius: 14px;
33
+
34
+ /* Glass effect */
35
+ --ftd-page-backdrop:
36
+ linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 45%),
37
+ radial-gradient(1200px 500px at 10% -10%, rgba(59, 130, 246, 0.18), transparent 60%),
38
+ radial-gradient(900px 500px at 95% 0%, rgba(14, 165, 233, 0.12), transparent 55%),
39
+ linear-gradient(180deg, #f8fafc 0%, #ffffff 40%, #f8fafc 100%);
40
+ --ftd-glass-bg: rgba(255, 255, 255, 0.72);
41
+ --ftd-glass-bg-strong: rgba(255, 255, 255, 0.86);
42
+ --ftd-glass-border: rgba(148, 163, 184, 0.35);
43
+ --ftd-glass-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
44
+ --ftd-glass-blur: 16px;
45
+
46
+ /* Premium polish */
47
+ --ftd-surface-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(248, 250, 252, 0.78) 100%);
48
+ --ftd-surface-bg-strong: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.9) 100%);
49
+ --ftd-panel-bg: rgba(255, 255, 255, 0.68);
50
+ --ftd-outline-soft: rgba(15, 23, 42, 0.08);
51
+ --ftd-premium-edge: rgba(255, 255, 255, 0.7);
52
+ --ftd-premium-shadow: 0 10px 28px rgba(15, 23, 42, 0.08), 0 2px 8px rgba(15, 23, 42, 0.06);
53
+ --ftd-premium-shadow-hover: 0 14px 36px rgba(15, 23, 42, 0.12), 0 4px 12px rgba(15, 23, 42, 0.08);
54
+ --ftd-premium-ring: 0 0 0 3px rgba(var(--ftd-primary-rgb), 0.25);
55
+ }
56
+
57
+ [data-theme="dark"] {
58
+ --ftd-bg-page: #0f172a;
59
+ --ftd-bg-subtle: #1e293b;
60
+ --ftd-bg-card: #1e293b;
61
+ --ftd-bg-hover: #334155;
62
+
63
+ --ftd-border: #334155;
64
+ --ftd-border-hover: #475569;
65
+
66
+ --ftd-text-main: #f8fafc;
67
+ --ftd-text-sub: #9aa7b8;
68
+ --ftd-text-muted: #8b97aa;
69
+
70
+ --ftd-primary: #60a5fa;
71
+ --ftd-primary-rgb: 96, 165, 250;
72
+ --ftd-primary-fade: rgba(96, 165, 250, 0.15);
73
+
74
+ --ftd-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.3);
75
+
76
+ /* Glass effect (dark) */
77
+ --ftd-page-backdrop:
78
+ linear-gradient(180deg, rgba(2, 6, 23, 0.85) 0%, rgba(2, 6, 23, 0) 45%),
79
+ radial-gradient(1100px 520px at 10% -15%, rgba(59, 130, 246, 0.18), transparent 60%),
80
+ radial-gradient(900px 460px at 95% -10%, rgba(14, 165, 233, 0.12), transparent 55%),
81
+ linear-gradient(180deg, #0b1020 0%, #0f172a 45%, #0b1020 100%);
82
+ --ftd-glass-bg: rgba(15, 23, 42, 0.62);
83
+ --ftd-glass-bg-strong: rgba(15, 23, 42, 0.78);
84
+ --ftd-glass-border: rgba(148, 163, 184, 0.18);
85
+ --ftd-glass-shadow: 0 18px 40px rgba(2, 6, 23, 0.55);
86
+ --ftd-glass-blur: 18px;
87
+
88
+ /* Premium polish (dark) */
89
+ --ftd-surface-bg: linear-gradient(180deg, rgba(15, 23, 42, 0.92) 0%, rgba(2, 6, 23, 0.8) 100%);
90
+ --ftd-surface-bg-strong: linear-gradient(180deg, rgba(15, 23, 42, 0.98) 0%, rgba(2, 6, 23, 0.88) 100%);
91
+ --ftd-panel-bg: rgba(15, 23, 42, 0.58);
92
+ --ftd-outline-soft: rgba(148, 163, 184, 0.12);
93
+ --ftd-premium-edge: rgba(255, 255, 255, 0.08);
94
+ --ftd-premium-shadow: 0 14px 36px rgba(2, 6, 23, 0.45), 0 4px 12px rgba(2, 6, 23, 0.35);
95
+ --ftd-premium-shadow-hover: 0 18px 46px rgba(2, 6, 23, 0.55), 0 6px 16px rgba(2, 6, 23, 0.4);
96
+ --ftd-premium-ring: 0 0 0 3px rgba(var(--ftd-primary-rgb), 0.35);
97
+ }
98
+
99
+ body {
100
+ margin: 0;
101
+ }
102
+
103
+ /* --- Layout --- */
104
+ .ftd-container {
105
+ font-family: var(--ftd-font-sans);
106
+ background: var(--ftd-page-backdrop);
107
+ background-attachment: fixed;
108
+ color: var(--ftd-text-main);
109
+ padding: 0 40px 0px 40px;
110
+ /* Added significant bottom padding */
111
+ min-height: 100vh;
112
+ position: relative;
113
+ }
114
+
115
+ .ftd-container-animated {
116
+ transition: opacity 0.1s ease-in;
117
+ }
118
+
119
+ /* --- Header --- */
120
+ .ftd-navbar-sticky {
121
+ position: fixed;
122
+ top: 0;
123
+ left: 0;
124
+ width: 100%;
125
+ z-index: 1000;
126
+ background: var(--ftd-glass-bg-strong);
127
+ padding: 0;
128
+ border-bottom: 1px solid var(--ftd-glass-border);
129
+ box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
130
+ }
131
+
132
+ /* --- Glass Surfaces --- */
133
+ .ftd-glass-surface,
134
+ .ftd-section,
135
+ .ftd-semantic-section,
136
+ .ftd-variant-card,
137
+ .ftd-radius-container,
138
+ .ftd-dimension-group,
139
+ .ftd-color-sidebar,
140
+ .ftd-search-container,
141
+ .ftd-export-container,
142
+ .ftd-playground-toolbar-v2,
143
+ .ftd-playground-sidebar,
144
+ .ftd-playground-code,
145
+ .ftd-token-card,
146
+ .ftd-spacing-item,
147
+ .ftd-dimension-item,
148
+ .ftd-display-card {
149
+ background: var(--ftd-glass-bg);
150
+ border-color: var(--ftd-glass-border);
151
+ box-shadow: var(--ftd-glass-shadow);
152
+ }
153
+
154
+ @supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
155
+ .ftd-glass-surface,
156
+ .ftd-section,
157
+ .ftd-foundation-section,
158
+ .ftd-semantic-section,
159
+ .ftd-variant-card,
160
+ .ftd-radius-container,
161
+ .ftd-dimension-group,
162
+ .ftd-color-sidebar,
163
+ .ftd-search-container,
164
+ .ftd-export-container,
165
+ .ftd-playground-toolbar-v2,
166
+ .ftd-playground-sidebar,
167
+ .ftd-playground-code,
168
+ .ftd-navbar-sticky {
169
+ backdrop-filter: blur(var(--ftd-glass-blur)) saturate(1.1);
170
+ -webkit-backdrop-filter: blur(var(--ftd-glass-blur)) saturate(1.1);
171
+ }
172
+ }
173
+
174
+ .ftd-header {
175
+ display: flex;
176
+ justify-content: space-between;
177
+ align-items: center;
178
+ margin-bottom: 12px;
179
+ padding: 16px 40px;
180
+ }
181
+
182
+ .ftd-icon {
183
+ width: 18px;
184
+ height: 18px;
185
+ stroke: currentColor;
186
+ flex-shrink: 0;
187
+ }
188
+
189
+ .ftd-section-icon,
190
+ .ftd-nav-icon,
191
+ .ftd-playground-tab-icon,
192
+ .ftd-empty-icon {
193
+ display: inline-flex;
194
+ align-items: center;
195
+ justify-content: center;
196
+ color: var(--ftd-text-sub);
197
+ }
198
+
199
+ .ftd-section-icon .ftd-icon {
200
+ width: 20px;
201
+ height: 20px;
202
+ }
203
+
204
+ .ftd-playground-tab-icon .ftd-icon {
205
+ width: 18px;
206
+ height: 18px;
207
+ }
208
+
209
+ .ftd-empty-icon .ftd-icon {
210
+ width: 28px;
211
+ height: 28px;
212
+ }
213
+
214
+ .ftd-theme-toggle .ftd-icon {
215
+ width: 16px;
216
+ height: 16px;
217
+ margin-right: 8px;
218
+ display: block;
219
+ }
220
+ .ftd-title-wrapper {
221
+ height: 67px;
222
+ }
223
+
224
+ .ftd-title {
225
+ font-size: 2rem;
226
+ font-weight: 700;
227
+ margin: 0 0 8px 0;
228
+ letter-spacing: -0.03em;
229
+ }
230
+
231
+ .ftd-subtitle {
232
+ color: var(--ftd-text-sub);
233
+ margin: 0;
234
+ font-size: 1rem;
235
+ letter-spacing: -0.01em;
236
+ }
237
+
238
+ .ftd-text-muted {
239
+ color: var(--ftd-text-muted);
240
+ }
241
+
242
+ .ftd-header-actions {
243
+ display: flex;
244
+ gap: 12px;
245
+ align-items: center;
246
+ }
247
+
248
+
249
+
250
+
251
+
252
+ .ftd-theme-toggle {
253
+ background: var(--ftd-primary-fade);
254
+ border: 1px solid rgba(var(--ftd-primary-rgb), 0.15);
255
+ color: var(--ftd-primary);
256
+ min-width: 100px;
257
+ height: 40px;
258
+ padding: 0 20px;
259
+ border-radius: 99px;
260
+ cursor: pointer;
261
+ font-weight: 600;
262
+ font-size: 0.875rem;
263
+ transition: all 0.2s;
264
+ line-height: 1;
265
+ display: flex;
266
+ justify-content: center;
267
+ align-items: center;
268
+ }
269
+
270
+ .ftd-theme-toggle:hover {
271
+ background: rgba(var(--ftd-primary-rgb), 0.15);
272
+ transform: translateY(-1px);
273
+ }
274
+
275
+ /* --- Tabs --- */
276
+ .ftd-tabs {
277
+ display: flex;
278
+ gap: 8px;
279
+ margin-bottom: 0;
280
+ /* Margin handled by navbar-sticky */
281
+ overflow-x: auto;
282
+ padding: 0 40px 16px 40px;
283
+ }
284
+
285
+ .ftd-tab {
286
+ display: flex;
287
+ align-items: center;
288
+ justify-content: center;
289
+ min-width: 150px;
290
+ padding: 8px 16px;
291
+ background: transparent;
292
+ border: 1px solid transparent;
293
+ color: var(--ftd-text-sub);
294
+ font-weight: 600;
295
+ border-radius: 8px;
296
+ cursor: pointer;
297
+ transition: all 0.2s;
298
+ font-size: 0.9rem;
299
+ }
300
+
301
+ .ftd-tab:hover {
302
+ background: var(--ftd-bg-hover);
303
+ color: var(--ftd-text-main);
304
+ }
305
+
306
+ .ftd-playground-copy-btn:hover {
307
+ background: var(--ftd-bg-hover);
308
+ color: var(--ftd-primary);
309
+ border-color: var(--ftd-primary);
310
+ }
311
+
312
+ /* Syntax Highlighting Base */
313
+ .ftd-sh-punctuation { color: #64748b; }
314
+ .ftd-sh-value { color: #059669; } /* Emerald Green */
315
+ .ftd-sh-string { color: #059669; } /* Emerald Green */
316
+ .ftd-sh-comment { color: #94a3b8; font-style: italic; }
317
+
318
+ /* SCSS Theme (Sublime Sass Style) */
319
+ .ftd-lang-scss .ftd-sh-selector { color: #6366f1; } /* Indigo Selectors */
320
+ .ftd-lang-scss .ftd-sh-property { color: #db2777; } /* Pink Properties */
321
+ .ftd-lang-scss .ftd-sh-value { color: #0d9488; } /* Teal Values */
322
+
323
+ /* CSS Theme (Premium Onyx Style) */
324
+ .ftd-lang-css .ftd-sh-selector { color: #8b5cf6; } /* Purple Selectors */
325
+ .ftd-lang-css .ftd-sh-property { color: #3b82f6; } /* Blue Properties */
326
+ .ftd-lang-css .ftd-sh-value { color: #f59e0b; } /* Amber Values */
327
+
328
+ /* Tailwind/JSX Theme (Official Tailwind Style) */
329
+ .ftd-lang-tailwind .ftd-sh-tag { color: #db2777; } /* Pink Tags */
330
+ .ftd-lang-tailwind .ftd-sh-attr { color: #64748b; } /* Slate Attributes */
331
+ .ftd-lang-tailwind .ftd-sh-value { color: #0ea5e9; } /* Blue Utilities */
332
+
333
+ /* Dark Mode Overrides */
334
+ [data-theme="dark"] .ftd-sh-string { color: #34d399; }
335
+ [data-theme="dark"] .ftd-sh-comment { color: #475569; }
336
+
337
+ [data-theme="dark"] .ftd-lang-scss .ftd-sh-selector { color: #818cf8; }
338
+ [data-theme="dark"] .ftd-lang-scss .ftd-sh-property { color: #f472b6; }
339
+ [data-theme="dark"] .ftd-lang-scss .ftd-sh-value { color: #2dd4bf; }
340
+
341
+ [data-theme="dark"] .ftd-lang-css .ftd-sh-selector { color: #a78bfa; }
342
+ [data-theme="dark"] .ftd-lang-css .ftd-sh-property { color: #60a5fa; }
343
+ [data-theme="dark"] .ftd-lang-css .ftd-sh-value { color: #fbbf24; }
344
+
345
+ [data-theme="dark"] .ftd-lang-tailwind .ftd-sh-tag { color: #f472b6; }
346
+ [data-theme="dark"] .ftd-lang-tailwind .ftd-sh-attr { color: #f8fafc; }
347
+ [data-theme="dark"] .ftd-lang-tailwind .ftd-sh-value { color: #38bdf8; }
348
+
349
+ /* JS Theme */
350
+ .ftd-lang-js .ftd-sh-keyword { color: #db2777; font-weight: 500; }
351
+ .ftd-lang-js .ftd-sh-property { color: #3b82f6; }
352
+ .ftd-lang-js .ftd-sh-value { color: #059669; }
353
+ .ftd-lang-js .ftd-sh-string { color: #059669; }
354
+
355
+ /* JS Dark Mode */
356
+ [data-theme="dark"] .ftd-lang-js .ftd-sh-keyword { color: #f472b6; }
357
+ [data-theme="dark"] .ftd-lang-js .ftd-sh-property { color: #60a5fa; }
358
+ [data-theme="dark"] .ftd-lang-js .ftd-sh-value { color: #34d399; }
359
+ [data-theme="dark"] .ftd-lang-js .ftd-sh-string { color: #34d399; }
360
+
361
+ .ftd-tab.active {
362
+ background: var(--ftd-primary-fade);
363
+ color: var(--ftd-primary);
364
+ border-color: var(--ftd-primary-fade);
365
+ }
366
+
367
+ /* --- Components Grid --- */
368
+ .ftd-component-section {
369
+ margin-bottom: 60px;
370
+ }
371
+
372
+ .ftd-section-header {
373
+ display: flex;
374
+ align-items: center;
375
+ gap: 12px;
376
+ margin-bottom: 24px;
377
+ }
378
+
379
+ .ftd-section-title {
380
+ font-size: 1.5rem;
381
+ font-weight: 700;
382
+ margin: 0;
383
+ text-transform: capitalize;
384
+ line-height: 1.5;
385
+ -webkit-font-smoothing: antialiased;
386
+ -moz-osx-font-smoothing: grayscale;
387
+ letter-spacing: -0.015em;
388
+ }
389
+
390
+ /* Custom Stylish Scrollbar */
391
+ ::-webkit-scrollbar {
392
+ width: 8px;
393
+ height: 8px;
394
+ }
395
+
396
+ ::-webkit-scrollbar-track {
397
+ background: transparent;
398
+ }
399
+
400
+ ::-webkit-scrollbar-thumb {
401
+ background: rgba(0, 0, 0, 0.1);
402
+ border-radius: 10px;
403
+ border: 2px solid transparent;
404
+ background-clip: padding-box;
405
+ transition: all 0.2s ease;
406
+ }
407
+
408
+ ::-webkit-scrollbar-thumb:hover {
409
+ background: rgba(0, 0, 0, 0.2);
410
+ border: 1px solid transparent;
411
+ background-clip: padding-box;
412
+ }
413
+
414
+ [data-theme="dark"] ::-webkit-scrollbar-thumb {
415
+ background: rgba(255, 255, 255, 0.1);
416
+ }
417
+
418
+ [data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
419
+ background: rgba(255, 255, 255, 0.2);
420
+ }
421
+
422
+ /* Firefox */
423
+ * {
424
+ scrollbar-width: thin;
425
+ scrollbar-color: rgba(0, 0, 0, 0.1) transparent;
426
+ }
427
+
428
+ [data-theme="dark"] * {
429
+ scrollbar-color: rgba(255, 255, 255, 0.1) transparent;
430
+ }
431
+
432
+ .ftd-container * {
433
+ box-sizing: border-box;
434
+ }
435
+
436
+ .ftd-section-badge {
437
+ font-size: 0.75rem;
438
+ background: var(--ftd-bg-hover);
439
+ padding: 4px 8px;
440
+ border-radius: 6px;
441
+ color: var(--ftd-text-sub);
442
+ font-weight: 600;
443
+ }
444
+
445
+ .ftd-variants-grid {
446
+ display: flex;
447
+ flex-wrap: wrap;
448
+ gap: 24px;
449
+ }
450
+
451
+ /* --- Variant Card (Refined) --- */
452
+ .ftd-variant-card {
453
+ width: calc((100% / 3) - 18px);
454
+ background: var(--ftd-bg-card);
455
+ border: 1px solid var(--ftd-border);
456
+ border-radius: var(--ftd-radius);
457
+ overflow: hidden;
458
+ box-shadow: var(--ftd-shadow-card);
459
+ transition: transform 0.2s, box-shadow 0.2s;
460
+ }
461
+
462
+ .ftd-variant-card:hover {
463
+ transform: translateY(-2px);
464
+ box-shadow: var(--ftd-shadow-hover);
465
+ border-color: var(--ftd-border-hover);
466
+ }
467
+
468
+ .ftd-variant-header {
469
+ padding: 16px 20px;
470
+ border-bottom: 1px solid var(--ftd-border);
471
+ background: var(--ftd-bg-subtle);
472
+ }
473
+
474
+ .ftd-variant-name {
475
+ font-weight: 600;
476
+ text-transform: capitalize;
477
+ font-size: 0.95rem;
478
+ letter-spacing: 0.01em;
479
+ }
480
+
481
+ .ftd-variant-body {
482
+ display: flex;
483
+ flex-direction: column;
484
+ }
485
+
486
+ /* Preview Area */
487
+ .ftd-variant-preview {
488
+ padding: 40px;
489
+ display: flex;
490
+ justify-content: center;
491
+ align-items: center;
492
+ background: repeating-linear-gradient(45deg,
493
+ rgba(148, 163, 184, 0.08),
494
+ rgba(148, 163, 184, 0.08) 10px,
495
+ rgba(148, 163, 184, 0.02) 10px,
496
+ rgba(148, 163, 184, 0.02) 20px);
497
+ min-height: 120px;
498
+ border-bottom: 1px solid var(--ftd-border);
499
+ }
500
+
501
+ .ftd-variant-button {
502
+ padding: 10px 24px;
503
+ font-size: 0.9rem;
504
+ font-weight: 500;
505
+ cursor: pointer;
506
+ transition: all 0.2s;
507
+ }
508
+
509
+ /* Spec Table */
510
+ .ftd-variant-table-wrapper {
511
+ padding: 0;
512
+ width: 100%;
513
+ }
514
+
515
+ .ftd-variant-table {
516
+ width: 100%;
517
+ border-collapse: collapse;
518
+ font-size: 0.8rem;
519
+ text-align: left;
520
+ }
521
+
522
+ .ftd-variant-table th {
523
+ padding: 12px 16px;
524
+ font-weight: 600;
525
+ color: var(--ftd-text-sub);
526
+ background: var(--ftd-bg-page);
527
+ border-bottom: 1px solid var(--ftd-border);
528
+ text-transform: uppercase;
529
+ font-size: 0.7rem;
530
+ letter-spacing: 0.05em;
531
+ }
532
+
533
+ .ftd-variant-table td {
534
+ padding: 10px 16px;
535
+ border-bottom: 1px solid var(--ftd-border);
536
+ vertical-align: middle;
537
+ }
538
+
539
+ .ftd-variant-table tr:last-child td {
540
+ border-bottom: none;
541
+ }
542
+
543
+ .ftd-cell-label {
544
+ font-weight: 600;
545
+ color: var(--ftd-text-sub);
546
+ text-transform: capitalize;
547
+ width: 70px;
548
+ }
549
+
550
+ .ftd-cell-empty {
551
+ color: var(--ftd-text-muted);
552
+ }
553
+
554
+ /* Table Swatches */
555
+ .ftd-table-swatch-container {
556
+ display: flex;
557
+ align-items: center;
558
+ gap: 10px;
559
+ cursor: pointer;
560
+ }
561
+
562
+ .ftd-table-swatch {
563
+ width: 20px;
564
+ height: 20px;
565
+ border-radius: 4px;
566
+ border: 1px solid rgba(0, 0, 0, 0.1);
567
+ flex-shrink: 0;
568
+ }
569
+
570
+ .ftd-table-value-group {
571
+ display: flex;
572
+ flex-direction: column;
573
+ }
574
+
575
+ .ftd-table-hex {
576
+ font-family: var(--ftd-font-mono);
577
+ font-size: 0.75rem;
578
+ color: var(--ftd-text-main);
579
+ }
580
+
581
+ .ftd-table-ref {
582
+ font-size: 0.7rem;
583
+ color: var(--ftd-text-muted);
584
+ max-width: 80px;
585
+ overflow: hidden;
586
+ text-overflow: ellipsis;
587
+ white-space: nowrap;
588
+ }
589
+
590
+ .ftd-content {
591
+ padding-top: calc(var(--ftd-sticky-offset, 180px) + 16px);
592
+ /* Consistent initial gap aligned to sticky header */
593
+ }
594
+
595
+ /* --- Color Sidebar Layout --- */
596
+ .ftd-color-layout {
597
+ display: flex;
598
+ gap: 32px;
599
+ position: relative;
600
+ }
601
+
602
+ .ftd-color-sidebar {
603
+ width: 220px;
604
+ flex-shrink: 0;
605
+ position: sticky;
606
+ top: calc(var(--ftd-sticky-offset, 180px) + 8px);
607
+ /* Adjusted for sticky header + gap */
608
+ height: fit-content;
609
+ }
610
+
611
+ .ftd-color-nav {
612
+ display: flex;
613
+ flex-direction: column;
614
+ gap: 4px;
615
+ }
616
+
617
+ .ftd-color-nav-link {
618
+ display: flex;
619
+ align-items: center;
620
+ gap: 12px;
621
+ padding: 10px 16px;
622
+ border-radius: 8px;
623
+ border: none;
624
+ background: transparent;
625
+ color: var(--ftd-text-sub);
626
+ font-size: 0.875rem;
627
+ font-weight: 500;
628
+ cursor: pointer;
629
+ text-align: left;
630
+ transition: all 0.2s;
631
+ width: 100%;
632
+ }
633
+
634
+ .ftd-color-nav-link:hover {
635
+ background: var(--ftd-bg-subtle);
636
+ color: var(--ftd-text-main);
637
+ }
638
+
639
+ .ftd-color-nav-link.active {
640
+ background: rgba(var(--ftd-primary-rgb), 0.1);
641
+ color: var(--ftd-primary);
642
+ font-weight: 600;
643
+ }
644
+
645
+ .ftd-nav-icon {
646
+ font-size: 1rem;
647
+ }
648
+
649
+ .ftd-nav-label {
650
+ flex: 1;
651
+ }
652
+
653
+ .ftd-nav-count {
654
+ font-size: 0.75rem;
655
+ opacity: 0.6;
656
+ background: rgba(0, 0, 0, 0.05);
657
+ padding: 2px 6px;
658
+ border-radius: 4px;
659
+ }
660
+
661
+ .ftd-color-nav-link.active .ftd-nav-count {
662
+ background: rgba(var(--ftd-primary-rgb), 0.2);
663
+ opacity: 1;
664
+ }
665
+
666
+ .ftd-color-content {
667
+ flex: 1;
668
+ min-width: 0;
669
+ display: flex;
670
+ flex-direction: column;
671
+ gap: 48px;
672
+ padding: 16px 0 max(480px, 70vh) 0;
673
+ }
674
+
675
+ @media (max-width: 1024px) {
676
+ .ftd-color-layout {
677
+ flex-direction: column;
678
+ }
679
+
680
+ .ftd-color-sidebar {
681
+ width: 100%;
682
+ position: sticky;
683
+ top: calc(var(--ftd-sticky-offset, 140px) + 8px);
684
+ background: var(--ftd-bg-page);
685
+ z-index: 40;
686
+ padding: 12px 0;
687
+ margin-bottom: 0;
688
+ border-bottom: 1px solid var(--ftd-border);
689
+ }
690
+
691
+ .ftd-color-nav {
692
+ flex-direction: row;
693
+ overflow-x: auto;
694
+ padding-bottom: 4px;
695
+ }
696
+
697
+ .ftd-color-nav-link {
698
+ white-space: nowrap;
699
+ width: auto;
700
+ }
701
+ }
702
+
703
+ /* --- Toast --- */
704
+ .ftd-copied-toast {
705
+ position: fixed;
706
+ bottom: 24px;
707
+ right: 24px;
708
+ background: rgba(17, 24, 39, 0.92);
709
+ backdrop-filter: blur(14px);
710
+ -webkit-backdrop-filter: blur(14px);
711
+ color: #ffffff;
712
+ padding: 10px 16px;
713
+ border-radius: 14px;
714
+ font-weight: 600;
715
+ font-size: 0.875rem;
716
+ box-shadow: 0 14px 32px rgba(0, 0, 0, 0.28), 0 4px 12px rgba(0, 0, 0, 0.24);
717
+ border: 1px solid rgba(255, 255, 255, 0.12);
718
+ display: flex;
719
+ align-items: center;
720
+ gap: 10px;
721
+ z-index: 1000;
722
+ animation: ftdToastIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
723
+ pointer-events: none;
724
+ }
725
+
726
+ .ftd-toast-icon {
727
+ display: flex;
728
+ align-items: center;
729
+ justify-content: center;
730
+ width: 22px;
731
+ height: 22px;
732
+ background: #16a34a;
733
+ color: white;
734
+ border-radius: 50%;
735
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
736
+ }
737
+
738
+ .ftd-toast-content {
739
+ display: flex;
740
+ align-items: center;
741
+ gap: 8px;
742
+ }
743
+
744
+ .ftd-toast-label {
745
+ opacity: 0.85;
746
+ font-weight: 500;
747
+ }
748
+
749
+ .ftd-toast-value {
750
+ font-family: var(--ftd-font-mono);
751
+ font-weight: 700;
752
+ background: rgba(255, 255, 255, 0.12);
753
+ border: 1px solid rgba(255, 255, 255, 0.16);
754
+ padding: 3px 8px;
755
+ border-radius: 8px;
756
+ }
757
+
758
+ @keyframes ftdToastIn {
759
+ 0% {
760
+ opacity: 0;
761
+ transform: translateX(40px) scale(0.9);
762
+ }
763
+
764
+ 100% {
765
+ opacity: 1;
766
+ transform: translateX(0) scale(1);
767
+ }
768
+ }
769
+
770
+ @keyframes slideIn {
771
+ from {
772
+ transform: translateY(20px);
773
+ opacity: 0;
774
+ }
775
+
776
+ to {
777
+ transform: translateY(0);
778
+ opacity: 1;
779
+ }
780
+ }
781
+
782
+ /* ========================================
783
+ Color Grid Styles
784
+ ======================================== */
785
+ .ftd-color-container {
786
+ display: flex;
787
+ flex-direction: column;
788
+ gap: 48px;
789
+ }
790
+
791
+ .ftd-section {
792
+ background: var(--ftd-bg-card);
793
+ border: 1px solid var(--ftd-border);
794
+ border-radius: var(--ftd-radius);
795
+ padding: 24px;
796
+ box-shadow: var(--ftd-shadow-card);
797
+ }
798
+
799
+ .ftd-section-icon {
800
+ font-size: 1.25rem;
801
+ }
802
+
803
+ .ftd-section-count {
804
+ font-size: 0.75rem;
805
+ background: var(--ftd-bg-hover);
806
+ padding: 4px 8px;
807
+ border-radius: 6px;
808
+ color: var(--ftd-text-sub);
809
+ font-weight: 600;
810
+ }
811
+
812
+ /* Color Family */
813
+ .ftd-color-family-container {
814
+ display: grid;
815
+ grid-template-columns: repeat(4, minmax(200px, 1fr));
816
+ gap: 24px;
817
+ width: 100%;
818
+ min-width: 0;
819
+ }
820
+
821
+ .ftd-color-family {
822
+ margin-bottom: 0;
823
+ width: 100%;
824
+ }
825
+
826
+ .ftd-color-family:last-child {
827
+ margin-bottom: 0;
828
+ }
829
+
830
+ .ftd-color-family-header {
831
+ display: flex;
832
+ align-items: center;
833
+ gap: 12px;
834
+ margin-bottom: 12px;
835
+ }
836
+
837
+ .ftd-color-family-swatch {
838
+ width: 28px;
839
+ height: 28px;
840
+ border-radius: 6px;
841
+ }
842
+
843
+ .ftd-color-family-name {
844
+ font-size: 1rem;
845
+ font-weight: 600;
846
+ margin: 0;
847
+ text-transform: capitalize;
848
+ }
849
+
850
+ /* Color Shade Scale */
851
+ .ftd-color-scale {
852
+ display: flex;
853
+ flex-direction: column;
854
+ border-radius: 8px;
855
+ overflow: hidden;
856
+ }
857
+
858
+ .ftd-color-shade {
859
+ flex: 1;
860
+ min-width: 60px;
861
+ padding: 12px 16px;
862
+ display: flex;
863
+ flex-direction: row;
864
+ align-items: center;
865
+ justify-content: space-between;
866
+ gap: 8px;
867
+ transition: background-color 0.2s;
868
+ cursor: pointer;
869
+ position: relative;
870
+ box-shadow:
871
+ inset 0 0 0 1px var(--ftd-outline-soft),
872
+ 0 0 0 1px rgba(255, 255, 255, 0.55),
873
+ 0 6px 14px rgba(15, 23, 42, 0.06);
874
+ }
875
+
876
+ .ftd-color-shade:hover {
877
+ filter: brightness(0.97);
878
+ box-shadow:
879
+ inset 0 0 0 1px var(--ftd-outline-soft),
880
+ 0 0 0 1px rgba(255, 255, 255, 0.7),
881
+ 0 10px 22px rgba(15, 23, 42, 0.1);
882
+ }
883
+
884
+ [data-theme="dark"] .ftd-color-shade {
885
+ box-shadow:
886
+ inset 0 0 0 1px rgba(148, 163, 184, 0.2),
887
+ 0 0 0 1px rgba(148, 163, 184, 0.14),
888
+ 0 10px 24px rgba(2, 6, 23, 0.45);
889
+ }
890
+
891
+ [data-theme="dark"] .ftd-color-shade:hover {
892
+ box-shadow:
893
+ inset 0 0 0 1px rgba(148, 163, 184, 0.22),
894
+ 0 0 0 1px rgba(148, 163, 184, 0.18),
895
+ 0 14px 28px rgba(2, 6, 23, 0.55);
896
+ }
897
+
898
+ .ftd-color-shade-label {
899
+ font-size: 0.85rem;
900
+ font-weight: 700;
901
+ min-width: 30px;
902
+ }
903
+
904
+ .ftd-shade-values {
905
+ display: flex;
906
+ gap: 16px;
907
+ align-items: center;
908
+ min-width: 0;
909
+ }
910
+
911
+ .ftd-shade-css-var,
912
+ .ftd-shade-hex {
913
+ font-family: var(--ftd-font-mono);
914
+ font-size: 0.75rem;
915
+ padding: 4px 8px;
916
+ border-radius: 4px;
917
+ cursor: default;
918
+ background: rgba(0, 0, 0, 0.1);
919
+ opacity: 0.7;
920
+ cursor: pointer;
921
+ white-space: nowrap;
922
+ }
923
+
924
+ .ftd-shade-css-var {
925
+ max-width: 130px;
926
+ overflow: hidden;
927
+ text-overflow: ellipsis;
928
+ }
929
+
930
+ .ftd-shade-hex {
931
+ flex-shrink: 0;
932
+ }
933
+
934
+ .ftd-color-shade-value {
935
+ font-family: var(--ftd-font-mono);
936
+ font-size: 0.6rem;
937
+ opacity: 0.9;
938
+ }
939
+
940
+ /* Semantic Color Families (grouped) */
941
+ .ftd-semantic-families {
942
+ display: flex;
943
+ flex-direction: column;
944
+ gap: 24px;
945
+ }
946
+
947
+ .ftd-semantic-family {
948
+ background: var(--ftd-bg-subtle);
949
+ border: 1px solid var(--ftd-border);
950
+ border-radius: 8px;
951
+ padding: 16px;
952
+ }
953
+
954
+ .ftd-semantic-family-header {
955
+ display: flex;
956
+ align-items: center;
957
+ gap: 12px;
958
+ margin-bottom: 12px;
959
+ padding-bottom: 12px;
960
+ border-bottom: 1px solid var(--ftd-border);
961
+ }
962
+
963
+ .ftd-semantic-family-colors {
964
+ display: flex;
965
+ flex-wrap: wrap;
966
+ gap: 12px;
967
+ }
968
+
969
+ .ftd-semantic-family-colors .ftd-token-card {
970
+ flex: 1;
971
+ min-width: 180px;
972
+ max-width: 250px;
973
+ }
974
+
975
+ /* Token Grid */
976
+ .ftd-token-grid {
977
+ display: grid;
978
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
979
+ gap: 16px;
980
+ }
981
+
982
+ .ftd-token-card {
983
+ background: var(--ftd-bg-subtle);
984
+ border: 1px solid var(--ftd-border);
985
+ border-radius: 8px;
986
+ overflow: hidden;
987
+ cursor: pointer;
988
+ transition: all 0.2s;
989
+ }
990
+
991
+ .ftd-token-card:hover {
992
+ transform: translateY(-2px);
993
+ box-shadow: var(--ftd-shadow-hover);
994
+ }
995
+
996
+ .ftd-token-swatch {
997
+ height: 64px;
998
+ display: flex;
999
+ align-items: center;
1000
+ justify-content: center;
1001
+ }
1002
+
1003
+ .ftd-token-info {
1004
+ padding: 12px;
1005
+ background: var(--ftd-bg-card);
1006
+ }
1007
+
1008
+ .ftd-token-name {
1009
+ font-size: 0.8rem;
1010
+ font-weight: 600;
1011
+ margin: 0 0 4px;
1012
+ color: var(--ftd-text-main);
1013
+ }
1014
+
1015
+ .ftd-token-value {
1016
+ font-family: var(--ftd-font-mono);
1017
+ font-size: 0.7rem;
1018
+ color: var(--ftd-text-sub);
1019
+ margin: 0;
1020
+ display: flex;
1021
+ align-items: center;
1022
+ gap: 6px;
1023
+ }
1024
+
1025
+ .ftd-token-values-row {
1026
+ display: flex;
1027
+ flex-direction: column;
1028
+ gap: 6px;
1029
+ margin-top: 4px;
1030
+ }
1031
+
1032
+ .ftd-token-css-var,
1033
+ .ftd-token-hex {
1034
+ font-family: var(--ftd-font-mono);
1035
+ font-size: 0.65rem;
1036
+ padding: 4px 8px;
1037
+ border-radius: 4px;
1038
+ cursor: default;
1039
+ background: var(--ftd-bg-hover);
1040
+ color: var(--ftd-text-sub);
1041
+ word-break: break-all;
1042
+ opacity: 0.8;
1043
+ cursor: pointer;
1044
+ }
1045
+
1046
+ .ftd-copy-icon {
1047
+ opacity: 0.5;
1048
+ transition: opacity 0.2s;
1049
+ }
1050
+
1051
+ .ftd-token-card:hover .ftd-copy-icon {
1052
+ opacity: 1;
1053
+ }
1054
+
1055
+ /* ========================================
1056
+ Spacing Scale Styles
1057
+ ======================================== */
1058
+ .ftd-spacing-list {
1059
+ display: flex;
1060
+ flex-direction: column;
1061
+ gap: 12px;
1062
+ }
1063
+
1064
+ .ftd-spacing-item {
1065
+ display: flex;
1066
+ align-items: center;
1067
+ gap: 20px;
1068
+ background: var(--ftd-bg-card);
1069
+ border: 1px solid var(--ftd-border);
1070
+ padding: 12px 20px;
1071
+ border-radius: 10px;
1072
+ transition: all 0.2s;
1073
+ cursor: pointer;
1074
+ }
1075
+
1076
+ .ftd-spacing-item:hover {
1077
+ transform: translateX(4px);
1078
+ border-color: var(--ftd-primary);
1079
+ box-shadow: var(--ftd-shadow-card);
1080
+ }
1081
+
1082
+ .ftd-spacing-label {
1083
+ font-family: var(--ftd-font-mono);
1084
+ font-size: 0.85rem;
1085
+ font-weight: 600;
1086
+ min-width: 60px;
1087
+ color: var(--ftd-text-sub);
1088
+ }
1089
+
1090
+ .ftd-spacing-bar-container {
1091
+ flex: 1;
1092
+ height: 8px;
1093
+ background: var(--ftd-bg-subtle);
1094
+ border-radius: 4px;
1095
+ overflow: hidden;
1096
+ }
1097
+
1098
+ .ftd-spacing-bar {
1099
+ height: 100%;
1100
+ background: linear-gradient(90deg, var(--ftd-primary), #8b5cf6);
1101
+ border-radius: 4px;
1102
+ }
1103
+
1104
+ .ftd-spacing-value {
1105
+ font-family: var(--ftd-font-mono);
1106
+ font-size: 0.85rem;
1107
+ font-weight: 600;
1108
+ color: var(--ftd-text-main);
1109
+ min-width: 60px;
1110
+ text-align: right;
1111
+ }
1112
+
1113
+ .ftd-semantic-group {
1114
+ margin-bottom: 32px;
1115
+ }
1116
+
1117
+ .ftd-semantic-group-name {
1118
+ margin: 8px 0;
1119
+ }
1120
+
1121
+ /* ========================================
1122
+ Sizes Scale Styles
1123
+ ======================================== */
1124
+ .ftd-size-grid {
1125
+ display: flex;
1126
+ align-items: flex-end;
1127
+ gap: 16px;
1128
+ padding: 40px;
1129
+ background: var(--ftd-bg-subtle);
1130
+ border-radius: 12px;
1131
+ overflow-x: auto;
1132
+ min-height: 100px;
1133
+ margin-bottom: 32px;
1134
+ }
1135
+
1136
+ .ftd-size-item {
1137
+ display: flex;
1138
+ flex-direction: column;
1139
+ align-items: center;
1140
+ gap: 12px;
1141
+ flex-shrink: 0;
1142
+ }
1143
+
1144
+ .ftd-size-bar {
1145
+ background: linear-gradient(180deg, var(--ftd-primary), #8b5cf6);
1146
+ border-radius: 6px;
1147
+ transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
1148
+ box-shadow: 0 4px 12px rgba(var(--ftd-primary-rgb), 0.2);
1149
+ }
1150
+
1151
+ .ftd-size-item:hover .ftd-size-bar {
1152
+ transform: scaleY(1.05);
1153
+ filter: brightness(1.1);
1154
+ box-shadow: 0 8px 20px rgba(var(--ftd-primary-rgb), 0.3);
1155
+ }
1156
+
1157
+ .ftd-size-label {
1158
+ font-family: var(--ftd-font-mono);
1159
+ font-size: 0.75rem;
1160
+ font-weight: 600;
1161
+ color: var(--ftd-text-sub);
1162
+ }
1163
+
1164
+ /* ========================================
1165
+ Radius Showcase Styles
1166
+ ======================================== */
1167
+ .ftd-radius-container {
1168
+ background: var(--ftd-bg-card);
1169
+ border: 1px solid var(--ftd-border);
1170
+ border-radius: var(--ftd-radius);
1171
+ padding: 24px;
1172
+ box-shadow: var(--ftd-shadow-card);
1173
+ }
1174
+
1175
+ .ftd-radius-header {
1176
+ display: flex;
1177
+ align-items: center;
1178
+ gap: 12px;
1179
+ margin-bottom: 24px;
1180
+ }
1181
+
1182
+ .ftd-radius-title {
1183
+ font-size: 1.25rem;
1184
+ font-weight: 700;
1185
+ margin: 0;
1186
+ }
1187
+
1188
+ .ftd-radius-count {
1189
+ font-size: 0.75rem;
1190
+ background: var(--ftd-bg-hover);
1191
+ padding: 4px 8px;
1192
+ border-radius: 6px;
1193
+ color: var(--ftd-text-sub);
1194
+ font-weight: 600;
1195
+ }
1196
+
1197
+ .ftd-token-grid {
1198
+ display: grid;
1199
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
1200
+ gap: 20px;
1201
+ }
1202
+
1203
+ .ftd-display-card {
1204
+ background: var(--ftd-bg-card);
1205
+ border: 1px solid var(--ftd-border);
1206
+ border-radius: 12px;
1207
+ padding: 0;
1208
+ text-align: center;
1209
+ overflow: hidden;
1210
+ transition: all 0.2s;
1211
+ }
1212
+
1213
+ .ftd-display-card .ftd-token-card-label {
1214
+ padding: 16px 16px 4px 16px;
1215
+ margin: 0;
1216
+ }
1217
+
1218
+ .ftd-display-card .ftd-token-values-row {
1219
+ padding: 0 16px 16px 16px;
1220
+ }
1221
+
1222
+ .ftd-display-card:hover {
1223
+ transform: translateY(-2px);
1224
+ box-shadow: var(--ftd-shadow-hover);
1225
+ }
1226
+
1227
+ .ftd-token-preview-container {
1228
+ height: 80px;
1229
+ display: flex;
1230
+ justify-content: center;
1231
+ align-items: center;
1232
+ margin-bottom: 0;
1233
+ background: repeating-linear-gradient(45deg,
1234
+ rgba(148, 163, 184, 0.08),
1235
+ rgba(148, 163, 184, 0.08) 8px,
1236
+ rgba(148, 163, 184, 0.02) 8px,
1237
+ rgba(148, 163, 184, 0.02) 16px);
1238
+ }
1239
+
1240
+ .ftd-token-preview {
1241
+ width: 48px;
1242
+ height: 48px;
1243
+ background: var(--ftd-primary);
1244
+ box-shadow: 0 4px 12px rgba(var(--ftd-primary-rgb), 0.2);
1245
+ }
1246
+
1247
+ .ftd-token-card-label {
1248
+ font-size: 0.95rem;
1249
+ font-weight: 700;
1250
+ margin: 0 0 4px;
1251
+ }
1252
+
1253
+ .ftd-radius-value {
1254
+ font-family: var(--ftd-font-mono);
1255
+ font-size: 0.8rem;
1256
+ color: var(--ftd-primary);
1257
+ font-weight: 600;
1258
+ margin: 0;
1259
+ }
1260
+
1261
+ /* ========================================
1262
+ Foundation Tab Styles
1263
+ ======================================== */
1264
+ .ftd-foundation-container {
1265
+ display: flex;
1266
+ flex-direction: column;
1267
+ gap: 48px;
1268
+ }
1269
+
1270
+ .ftd-foundation-section {
1271
+ background: var(--ftd-bg-card);
1272
+ border: 1px solid var(--ftd-border);
1273
+ border-radius: var(--ftd-radius);
1274
+ padding: 24px;
1275
+ box-shadow: var(--ftd-shadow-card);
1276
+ }
1277
+
1278
+ .ftd-scroll-target {
1279
+ scroll-margin-top: var(--ftd-sticky-offset, 200px);
1280
+ /* Account for sticky navbar */
1281
+ }
1282
+
1283
+ /* Typography Display */
1284
+
1285
+
1286
+ .ftd-typography-card:hover {
1287
+ transform: translateY(-2px);
1288
+ box-shadow: var(--ftd-shadow-hover);
1289
+ border-color: var(--ftd-primary);
1290
+ }
1291
+
1292
+ .ftd-typography-label {
1293
+ font-size: 0.85rem;
1294
+ font-weight: 600;
1295
+ margin-bottom: 8px;
1296
+ color: var(--ftd-text-sub);
1297
+ text-transform: capitalize;
1298
+ }
1299
+
1300
+ .ftd-typography-value {
1301
+ font-family: var(--ftd-font-mono);
1302
+ font-size: 1rem;
1303
+ font-weight: 700;
1304
+ color: var(--ftd-text-main);
1305
+ }
1306
+
1307
+ /* ========================================
1308
+ Semantic Tab Styles
1309
+ ======================================== */
1310
+ .ftd-semantic-container {
1311
+ display: flex;
1312
+ flex-direction: column;
1313
+ gap: 48px;
1314
+ }
1315
+
1316
+ .ftd-semantic-section {
1317
+ background: var(--ftd-bg-card);
1318
+ border: 1px solid var(--ftd-border);
1319
+ border-radius: var(--ftd-radius);
1320
+ padding: 24px;
1321
+ box-shadow: var(--ftd-shadow-card);
1322
+ }
1323
+
1324
+ .ftd-semantic-grid {
1325
+ display: grid;
1326
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
1327
+ gap: 16px;
1328
+ }
1329
+
1330
+ /* Responsive */
1331
+ @media (max-width: 1360px) {
1332
+ .ftd-color-family-container {
1333
+ grid-template-columns: repeat(3, minmax(200px, 1fr));
1334
+ }
1335
+ }
1336
+
1337
+ @media (max-width: 960px) {
1338
+ .ftd-color-family-container {
1339
+ grid-template-columns: repeat(2, minmax(200px, 1fr));
1340
+ }
1341
+ }
1342
+
1343
+ @media (max-width: 640px) {
1344
+ .ftd-color-family-container {
1345
+ grid-template-columns: 1fr;
1346
+ }
1347
+ }
1348
+
1349
+ @media (max-width: 768px) {
1350
+ .ftd-container {
1351
+ padding: 20px;
1352
+ }
1353
+
1354
+ .ftd-variants-grid {
1355
+ grid-template-columns: 1fr;
1356
+ }
1357
+
1358
+ .ftd-color-scale {
1359
+ flex-wrap: wrap;
1360
+ }
1361
+
1362
+ .ftd-color-shade {
1363
+ min-width: 80px;
1364
+ }
1365
+
1366
+ .ftd-variant-card {
1367
+ width: 100%;
1368
+ }
1369
+
1370
+ .ftd-color-family {
1371
+ width: 100%;
1372
+ }
1373
+ }
1374
+
1375
+ /* --- Component Dimensions Display --- */
1376
+ .ftd-dimensions-display {
1377
+ display: flex;
1378
+ flex-direction: column;
1379
+ gap: 32px;
1380
+ }
1381
+
1382
+ .ftd-dimension-group {
1383
+ background: var(--ftd-bg-card);
1384
+ border: 1px solid var(--ftd-border);
1385
+ border-radius: 12px;
1386
+ padding: 20px;
1387
+ }
1388
+
1389
+ .ftd-dimension-title {
1390
+ font-size: 1rem;
1391
+ font-weight: 700;
1392
+ margin: 0 0 16px 0;
1393
+ color: var(--ftd-text-main);
1394
+ text-transform: capitalize;
1395
+ }
1396
+
1397
+ .ftd-dimension-items {
1398
+ display: grid;
1399
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
1400
+ gap: 12px;
1401
+ }
1402
+
1403
+ .ftd-dimension-item {
1404
+ display: flex;
1405
+ flex-direction: column;
1406
+ gap: 6px;
1407
+ padding: 12px;
1408
+ background: var(--ftd-bg-subtle);
1409
+ border: 1px solid var(--ftd-border);
1410
+ border-radius: 8px;
1411
+ cursor: pointer;
1412
+ transition: all 0.2s;
1413
+ }
1414
+
1415
+ .ftd-dimension-item:hover {
1416
+ transform: translateY(-2px);
1417
+ box-shadow: var(--ftd-shadow-hover);
1418
+ border-color: var(--ftd-primary);
1419
+ }
1420
+
1421
+ .ftd-dimension-label {
1422
+ font-size: 0.75rem;
1423
+ font-weight: 600;
1424
+ color: var(--ftd-text-subtle);
1425
+ text-transform: uppercase;
1426
+ letter-spacing: 0.5px;
1427
+ }
1428
+
1429
+ .ftd-dimension-value {
1430
+ font-family: var(--ftd-font-mono);
1431
+ font-size: 0.85rem;
1432
+ color: var(--ftd-primary);
1433
+ font-weight: 600;
1434
+ }
1435
+
1436
+ /* --- Search Modal --- */
1437
+ .ftd-search-modal {
1438
+ position: fixed;
1439
+ top: 0;
1440
+ left: 0;
1441
+ right: 0;
1442
+ bottom: 0;
1443
+ background: rgba(0, 0, 0, 0.5);
1444
+ backdrop-filter: blur(4px);
1445
+ z-index: 9999;
1446
+ display: flex;
1447
+ align-items: flex-start;
1448
+ justify-content: center;
1449
+ padding: 100px 20px;
1450
+ animation: ftd-fade-in 0.2s ease;
1451
+ }
1452
+
1453
+ @keyframes ftd-fade-in {
1454
+ from {
1455
+ opacity: 0;
1456
+ }
1457
+
1458
+ to {
1459
+ opacity: 1;
1460
+ }
1461
+ }
1462
+
1463
+ .ftd-search-container {
1464
+ background: var(--ftd-bg-card);
1465
+ border: 1px solid var(--ftd-border);
1466
+ border-radius: 12px;
1467
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
1468
+ width: 100%;
1469
+ max-width: 640px;
1470
+ max-height: 70vh;
1471
+ display: flex;
1472
+ flex-direction: column;
1473
+ animation: ftd-slide-up 0.2s ease;
1474
+ }
1475
+
1476
+ @keyframes ftd-slide-up {
1477
+ from {
1478
+ opacity: 0;
1479
+ transform: translateY(20px);
1480
+ }
1481
+
1482
+ to {
1483
+ opacity: 1;
1484
+ transform: translateY(0);
1485
+ }
1486
+ }
1487
+
1488
+ .ftd-search-header {
1489
+ display: flex;
1490
+ align-items: center;
1491
+ gap: 12px;
1492
+ padding: 16px 20px;
1493
+ border-bottom: 1px solid var(--ftd-border);
1494
+ }
1495
+
1496
+ .ftd-search-icon {
1497
+ color: var(--ftd-text-sub);
1498
+ flex-shrink: 0;
1499
+ }
1500
+
1501
+ .ftd-search-input {
1502
+ flex: 1;
1503
+ border: none;
1504
+ outline: none;
1505
+ background: transparent;
1506
+ font-family: var(--ftd-font-sans);
1507
+ font-size: 1rem;
1508
+ color: var(--ftd-text-main);
1509
+ }
1510
+
1511
+ .ftd-search-input::placeholder {
1512
+ color: var(--ftd-text-muted);
1513
+ }
1514
+
1515
+ .ftd-search-input:focus-visible {
1516
+ outline: none;
1517
+ border-radius: 6px;
1518
+ box-shadow: 0 0 0 2px var(--ftd-primary-fade);
1519
+ }
1520
+
1521
+ .ftd-search-kbd {
1522
+ font-family: var(--ftd-font-mono);
1523
+ font-size: 0.75rem;
1524
+ padding: 4px 8px;
1525
+ background: var(--ftd-bg-subtle);
1526
+ border: 1px solid var(--ftd-border);
1527
+ border-radius: 4px;
1528
+ color: var(--ftd-text-sub);
1529
+ }
1530
+
1531
+ .ftd-search-results {
1532
+ flex: 1;
1533
+ overflow-y: auto;
1534
+ padding: 8px;
1535
+ }
1536
+
1537
+ .ftd-search-empty {
1538
+ text-align: center;
1539
+ padding: 60px 20px;
1540
+ color: var(--ftd-text-sub);
1541
+ }
1542
+
1543
+ .ftd-search-empty p {
1544
+ margin: 0 0 12px 0;
1545
+ font-size: 0.95rem;
1546
+ }
1547
+
1548
+ .ftd-search-tips {
1549
+ font-size: 0.85rem;
1550
+ color: var(--ftd-text-muted);
1551
+ }
1552
+
1553
+ .ftd-search-group {
1554
+ margin-bottom: 16px;
1555
+ }
1556
+
1557
+ .ftd-search-category-header {
1558
+ font-size: 0.75rem;
1559
+ font-weight: 600;
1560
+ color: var(--ftd-text-sub);
1561
+ text-transform: uppercase;
1562
+ letter-spacing: 0.5px;
1563
+ padding: 8px 12px;
1564
+ display: flex;
1565
+ align-items: center;
1566
+ gap: 8px;
1567
+ }
1568
+
1569
+ .ftd-search-count {
1570
+ background: var(--ftd-bg-hover);
1571
+ padding: 2px 6px;
1572
+ border-radius: 10px;
1573
+ font-size: 0.7rem;
1574
+ }
1575
+
1576
+ .ftd-search-result-item {
1577
+ display: flex;
1578
+ align-items: center;
1579
+ gap: 12px;
1580
+ padding: 10px 12px;
1581
+ border-radius: 6px;
1582
+ cursor: pointer;
1583
+ transition: all 0.15s;
1584
+ }
1585
+
1586
+ .ftd-search-result-item:hover,
1587
+ .ftd-search-result-selected {
1588
+ background: rgba(59, 130, 246, 0.08);
1589
+ box-shadow: inset 0 0 0 1px rgba(var(--ftd-primary-rgb), 0.18);
1590
+ }
1591
+
1592
+ .ftd-search-result-preview {
1593
+ width: 32px;
1594
+ height: 32px;
1595
+ border-radius: 6px;
1596
+ border: 1px solid var(--ftd-border);
1597
+ flex-shrink: 0;
1598
+ }
1599
+
1600
+ .ftd-search-result-content {
1601
+ flex: 1;
1602
+ min-width: 0;
1603
+ }
1604
+
1605
+ .ftd-search-result-name {
1606
+ font-size: 0.9rem;
1607
+ font-weight: 500;
1608
+ color: var(--ftd-text-main);
1609
+ margin-bottom: 2px;
1610
+ }
1611
+
1612
+ .ftd-search-result-name mark {
1613
+ background: var(--ftd-primary-fade);
1614
+ color: var(--ftd-primary);
1615
+ padding: 0 2px;
1616
+ border-radius: 2px;
1617
+ }
1618
+
1619
+ .ftd-search-result-meta {
1620
+ font-family: var(--ftd-font-mono);
1621
+ font-size: 0.75rem;
1622
+ color: var(--ftd-text-sub);
1623
+ display: flex;
1624
+ align-items: center;
1625
+ gap: 6px;
1626
+ }
1627
+
1628
+ .ftd-search-result-meta mark {
1629
+ background: var(--ftd-primary-fade);
1630
+ color: var(--ftd-primary);
1631
+ padding: 0 2px;
1632
+ border-radius: 2px;
1633
+ }
1634
+
1635
+ .ftd-search-result-separator {
1636
+ color: var(--ftd-text-muted);
1637
+ }
1638
+
1639
+ .ftd-search-enter-kbd {
1640
+ font-family: var(--ftd-font-mono);
1641
+ font-size: 0.75rem;
1642
+ padding: 4px 8px;
1643
+ background: var(--ftd-primary);
1644
+ color: white;
1645
+ border-radius: 4px;
1646
+ flex-shrink: 0;
1647
+ }
1648
+
1649
+ .ftd-search-footer {
1650
+ border-top: 1px solid var(--ftd-border);
1651
+ padding: 12px 20px;
1652
+ background: var(--ftd-bg-subtle);
1653
+ }
1654
+
1655
+ .ftd-search-footer-hint {
1656
+ display: flex;
1657
+ align-items: center;
1658
+ gap: 12px;
1659
+ font-size: 0.8rem;
1660
+ color: var(--ftd-text-sub);
1661
+ }
1662
+
1663
+ .ftd-search-footer-hint kbd {
1664
+ font-family: var(--ftd-font-mono);
1665
+ font-size: 0.7rem;
1666
+ padding: 3px 6px;
1667
+ background: var(--ftd-bg-card);
1668
+ border: 1px solid var(--ftd-border);
1669
+ border-radius: 3px;
1670
+ }
1671
+
1672
+ @media (max-width: 768px) {
1673
+ .ftd-search-modal {
1674
+ padding: 20px 16px;
1675
+ }
1676
+
1677
+ .ftd-search-container {
1678
+ max-height: 80vh;
1679
+ }
1680
+
1681
+ .ftd-search-result-meta {
1682
+ flex-direction: column;
1683
+ align-items: flex-start;
1684
+ gap: 2px;
1685
+ }
1686
+
1687
+ .ftd-search-result-separator {
1688
+ display: none;
1689
+ }
1690
+
1691
+ .ftd-export-tabs {
1692
+ overflow-x: auto;
1693
+ flex-wrap: nowrap;
1694
+ -webkit-overflow-scrolling: touch;
1695
+ scrollbar-width: none;
1696
+ }
1697
+
1698
+ .ftd-export-tabs::-webkit-scrollbar {
1699
+ display: none;
1700
+ }
1701
+
1702
+ .ftd-export-tab {
1703
+ white-space: nowrap;
1704
+ flex-shrink: 0;
1705
+ }
1706
+ }
1707
+
1708
+ /* --- Search Button in Navbar --- */
1709
+ .ftd-header-actions {
1710
+ display: flex;
1711
+ align-items: center;
1712
+ gap: 12px;
1713
+ }
1714
+
1715
+ .ftd-search-button {
1716
+ display: flex;
1717
+ align-items: center;
1718
+ gap: 10px;
1719
+ height: 40px;
1720
+ padding: 0 16px;
1721
+ background: var(--ftd-primary-fade);
1722
+ border: 1px solid rgba(var(--ftd-primary-rgb), 0.15);
1723
+ border-radius: 12px;
1724
+ color: var(--ftd-primary);
1725
+ font-family: var(--ftd-font-sans);
1726
+ font-size: 0.9rem;
1727
+ font-weight: 600;
1728
+ cursor: pointer;
1729
+ transition: all 0.2s;
1730
+ width: 280px;
1731
+ justify-content: flex-start;
1732
+ line-height: 1;
1733
+ }
1734
+
1735
+ .ftd-search-button:hover {
1736
+ background: rgba(var(--ftd-primary-rgb), 0.15);
1737
+ border-color: rgba(var(--ftd-primary-rgb), 0.3);
1738
+ transform: translateY(-1px);
1739
+ }
1740
+
1741
+ .ftd-search-button svg {
1742
+ color: var(--ftd-text-sub);
1743
+ display: block;
1744
+ }
1745
+
1746
+ .ftd-search-shortcut {
1747
+ font-family: var(--ftd-font-mono);
1748
+ font-size: 0.75rem;
1749
+ padding: 3px 8px;
1750
+ background: rgba(255, 255, 255, 0.4);
1751
+ border: 1px solid rgba(var(--ftd-primary-rgb), 0.1);
1752
+ border-radius: 6px;
1753
+ color: var(--ftd-primary);
1754
+ margin-left: auto;
1755
+ opacity: 0.8;
1756
+ }
1757
+
1758
+ .dark .ftd-search-shortcut {
1759
+ background: rgba(0, 0, 0, 0.2);
1760
+ border-color: rgba(255, 255, 255, 0.1);
1761
+ }
1762
+
1763
+ @media (max-width: 768px) {
1764
+ .ftd-search-button span {
1765
+ display: none;
1766
+ }
1767
+
1768
+ .ftd-search-shortcut {
1769
+ display: none;
1770
+ }
1771
+ }
1772
+
1773
+ /* --- Token Highlight Animation --- */
1774
+ @keyframes ftd-highlight-glow {
1775
+ 0% {
1776
+ background: linear-gradient(135deg,
1777
+ rgba(var(--ftd-primary-rgb), 0.15) 0%,
1778
+ rgba(var(--ftd-primary-rgb), 0.05) 100%);
1779
+ transform: scale(1);
1780
+ }
1781
+
1782
+ 50% {
1783
+ background: linear-gradient(135deg,
1784
+ rgba(var(--ftd-primary-rgb), 0.25) 0%,
1785
+ rgba(var(--ftd-primary-rgb), 0.1) 100%);
1786
+ transform: scale(1.01);
1787
+ }
1788
+
1789
+ 100% {
1790
+ background: linear-gradient(135deg,
1791
+ rgba(var(--ftd-primary-rgb), 0.15) 0%,
1792
+ rgba(var(--ftd-primary-rgb), 0.05) 100%);
1793
+ transform: scale(1);
1794
+ }
1795
+ }
1796
+
1797
+ /* Export Modal Styles */
1798
+ .ftd-export-modal {
1799
+ position: fixed;
1800
+ inset: 0;
1801
+ background: rgba(0, 0, 0, 0.4);
1802
+ backdrop-filter: blur(4px);
1803
+ display: flex;
1804
+ align-items: center;
1805
+ justify-content: center;
1806
+ z-index: 1200;
1807
+ padding: 20px;
1808
+ animation: ftd-fade-in 0.2s ease-out;
1809
+ }
1810
+
1811
+ [data-theme="dark"] .ftd-export-modal {
1812
+ background: rgba(0, 0, 0, 0.7);
1813
+ }
1814
+
1815
+ .ftd-export-container {
1816
+ background: var(--ftd-bg-card);
1817
+ width: 100%;
1818
+ max-width: 800px;
1819
+ max-height: 85vh;
1820
+ border-radius: 16px;
1821
+ display: flex;
1822
+ flex-direction: column;
1823
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
1824
+ overflow: hidden;
1825
+ animation: ftd-slide-up 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1826
+ border: 1px solid var(--ftd-border);
1827
+ }
1828
+
1829
+ .ftd-export-container.mw-600 {
1830
+ max-width: 600px;
1831
+ }
1832
+
1833
+ .ftd-export-header {
1834
+ padding: 24px;
1835
+ display: flex;
1836
+ justify-content: space-between;
1837
+ align-items: flex-start;
1838
+ border-bottom: 1px solid var(--ftd-border);
1839
+ }
1840
+
1841
+ .ftd-export-title {
1842
+ margin: 0;
1843
+ font-size: 20px;
1844
+ font-weight: 700;
1845
+ color: var(--ftd-text-main);
1846
+ }
1847
+
1848
+ .ftd-export-subtitle {
1849
+ margin: 4px 0 0 0;
1850
+ font-size: 14px;
1851
+ color: var(--ftd-text-sub);
1852
+ }
1853
+
1854
+ .ftd-export-close {
1855
+ background: none;
1856
+ border: none;
1857
+ color: var(--ftd-text-sub);
1858
+ cursor: pointer;
1859
+ border-radius: 6px;
1860
+ transition: all 0.2s;
1861
+ border: solid 1px #d5d0dd;
1862
+ width: 32px;
1863
+ height: 32px;
1864
+ display: flex;
1865
+ justify-content: center;
1866
+ align-items: center;
1867
+ padding: 6px;
1868
+ }
1869
+
1870
+ .ftd-export-close:hover {
1871
+ background: var(--ftd-bg-hover);
1872
+ color: var(--ftd-text-main);
1873
+ }
1874
+
1875
+ .ftd-export-tabs {
1876
+ display: flex;
1877
+ padding: 12px 24px;
1878
+ background: var(--ftd-bg-subtle);
1879
+ gap: 8px;
1880
+ border-bottom: 1px solid var(--ftd-border);
1881
+ }
1882
+
1883
+ .ftd-export-tab {
1884
+ padding: 8px 16px;
1885
+ font-size: 14px;
1886
+ font-weight: 600;
1887
+ color: var(--ftd-text-sub);
1888
+ background: transparent;
1889
+ border: none;
1890
+ border-radius: 8px;
1891
+ cursor: pointer;
1892
+ transition: all 0.2s;
1893
+ }
1894
+
1895
+ .ftd-export-tab:hover {
1896
+ background: var(--ftd-bg-hover);
1897
+ color: var(--ftd-text-main);
1898
+ }
1899
+
1900
+ .ftd-export-tab.active {
1901
+ background: var(--ftd-bg-card);
1902
+ color: var(--ftd-primary);
1903
+ box-shadow: var(--ftd-shadow-card);
1904
+ }
1905
+
1906
+ .ftd-export-body {
1907
+ flex: 1;
1908
+ overflow-y: auto;
1909
+ padding: 24px;
1910
+ }
1911
+
1912
+ .ftd-export-code-wrapper {
1913
+ position: relative;
1914
+ background: var(--ftd-bg-subtle);
1915
+ border-radius: 12px;
1916
+ border: 1px solid var(--ftd-border);
1917
+ display: flex;
1918
+ flex-direction: column;
1919
+ }
1920
+
1921
+ .ftd-export-actions {
1922
+ display: flex;
1923
+ justify-content: flex-end;
1924
+ gap: 12px;
1925
+ padding: 12px;
1926
+ border-bottom: 1px solid var(--ftd-border);
1927
+ }
1928
+
1929
+ .ftd-export-action-btn {
1930
+ display: flex;
1931
+ align-items: center;
1932
+ padding: 6px 12px;
1933
+ font-size: 13px;
1934
+ font-weight: 600;
1935
+ background: var(--ftd-bg-card);
1936
+ border: 1px solid var(--ftd-border);
1937
+ border-radius: 8px;
1938
+ color: var(--ftd-text-main);
1939
+ cursor: pointer;
1940
+ transition: all 0.2s;
1941
+ }
1942
+
1943
+ .ftd-export-action-btn:hover {
1944
+ background: var(--ftd-bg-hover);
1945
+ border-color: var(--ftd-border-hover);
1946
+ }
1947
+
1948
+ .ftd-export-code {
1949
+ margin: 0;
1950
+ padding: 24px;
1951
+ font-family: var(--ftd-font-mono);
1952
+ font-size: 13px;
1953
+ line-height: 1.6;
1954
+ color: var(--ftd-text-main);
1955
+ overflow-x: auto;
1956
+ max-height: 400px;
1957
+ }
1958
+
1959
+ .ftd-export-footer {
1960
+ padding: 24px;
1961
+ border-top: 1px solid var(--ftd-border);
1962
+ display: flex;
1963
+ justify-content: space-between;
1964
+ align-items: center;
1965
+ background: var(--ftd-bg-subtle);
1966
+ }
1967
+
1968
+ .ftd-export-footer-note {
1969
+ font-size: 13px;
1970
+ color: var(--ftd-text-muted);
1971
+ margin: 0;
1972
+ }
1973
+
1974
+ .ftd-export-button-nav {
1975
+ display: flex;
1976
+ align-items: center;
1977
+ gap: 8px;
1978
+ height: 40px;
1979
+ padding: 0 20px;
1980
+ background: var(--ftd-primary-fade);
1981
+ border: 1px solid rgba(var(--ftd-primary-rgb), 0.15);
1982
+ border-radius: 12px;
1983
+ color: var(--ftd-primary);
1984
+ font-weight: 600;
1985
+ font-size: 14px;
1986
+ cursor: pointer;
1987
+ transition: all 0.2s;
1988
+ line-height: 1;
1989
+ }
1990
+
1991
+ .ftd-export-button-nav svg {
1992
+ display: block;
1993
+ }
1994
+
1995
+ .ftd-export-button-nav:hover {
1996
+ background: rgba(var(--ftd-primary-rgb), 0.15);
1997
+ transform: translateY(-1px);
1998
+ }
1999
+
2000
+ /* Button Components */
2001
+ .ftd-btn-primary {
2002
+ background: var(--ftd-primary);
2003
+ color: #fff;
2004
+ border: none;
2005
+ padding: 10px 20px;
2006
+ border-radius: 8px;
2007
+ font-weight: 400;
2008
+ font-size: 14px;
2009
+ cursor: pointer;
2010
+ transition: all 0.2s;
2011
+ display: inline-flex;
2012
+ align-items: center;
2013
+ justify-content: center;
2014
+ }
2015
+
2016
+ .ftd-btn-primary:hover {
2017
+ transform: translateY(-1px);
2018
+ opacity: 0.8;
2019
+ }
2020
+
2021
+ .ftd-btn-secondary {
2022
+ background: transparent;
2023
+ color: var(--ftd-text-main);
2024
+ border: 1px solid var(--ftd-border);
2025
+ padding: 10px 20px;
2026
+ border-radius: 8px;
2027
+ font-weight: 600;
2028
+ font-size: 14px;
2029
+ cursor: pointer;
2030
+ transition: all 0.2s;
2031
+ display: inline-flex;
2032
+ align-items: center;
2033
+ justify-content: center;
2034
+ }
2035
+
2036
+ .ftd-btn-secondary:hover {
2037
+ background: var(--ftd-bg-subtle);
2038
+ border-color: var(--ftd-text-muted);
2039
+ }
2040
+
2041
+ .ftd-btn-primary:active {
2042
+ transform: translateY(0);
2043
+ }
2044
+
2045
+ .dark .ftd-export-button-nav {
2046
+ background: rgba(var(--ftd-primary-rgb), 0.15);
2047
+ border-color: rgba(var(--ftd-primary-rgb), 0.3);
2048
+ }
2049
+
2050
+ /* AI Note and Sparkle Styles */
2051
+ .ftd-export-ai-note {
2052
+ display: flex;
2053
+ align-items: center;
2054
+ gap: 10px;
2055
+ font-size: 13px;
2056
+ color: var(--ftd-text-sub);
2057
+ }
2058
+
2059
+ .ftd-ai-sparkle {
2060
+ color: #fbbf24;
2061
+ /* Vibrant yellow/gold */
2062
+ flex-shrink: 0;
2063
+ animation: ftd-sparkle-shimmer 2.5s infinite ease-in-out;
2064
+ }
2065
+
2066
+ @keyframes ftd-sparkle-shimmer {
2067
+
2068
+ 0%,
2069
+ 100% {
2070
+ transform: scale(1) rotate(0deg);
2071
+ opacity: 0.8;
2072
+ }
2073
+
2074
+ 50% {
2075
+ transform: scale(1.1) rotate(5deg);
2076
+ opacity: 1;
2077
+ }
2078
+ }
2079
+
2080
+ .ftd-export-ai-note strong {
2081
+ color: var(--ftd-text-main);
2082
+ margin-left: 2px;
2083
+ }
2084
+
2085
+ .dark .ftd-export-ai-note strong {
2086
+ color: #fff;
2087
+ }
2088
+
2089
+ .dark .ftd-ai-sparkle {
2090
+ color: #fcd34d;
2091
+ /* Slightly lighter yellow for dark mode */
2092
+ }
2093
+
2094
+ /* --- Standalone Component Styles --- */
2095
+ .ftd-standalone {
2096
+ padding: 24px;
2097
+ background: var(--ftd-bg-page);
2098
+ border-radius: var(--ftd-radius);
2099
+ border: 1px solid var(--ftd-border);
2100
+ margin-bottom: 24px;
2101
+ }
2102
+
2103
+ .ftd-standalone-title {
2104
+ font-size: 1.5rem;
2105
+ font-weight: 600;
2106
+ margin-bottom: 20px;
2107
+ color: var(--ftd-text-main);
2108
+ letter-spacing: -0.01em;
2109
+ }
2110
+
2111
+ .ftd-standalone .ftd-section {
2112
+ padding: 0;
2113
+ border: none;
2114
+ background: transparent;
2115
+ box-shadow: none;
2116
+ }
2117
+
2118
+ /* --- Token Highlights --- */
2119
+ .ftd-token-highlight {
2120
+ position: relative;
2121
+ z-index: 10;
2122
+ outline: none !important;
2123
+ border-radius: inherit;
2124
+ box-shadow:
2125
+ 0 0 0 1.5px var(--ftd-highlight-strong, rgba(var(--ftd-primary-rgb), 0.35)),
2126
+ 0 12px 28px var(--ftd-highlight, rgba(var(--ftd-primary-rgb), 0.18));
2127
+ }
2128
+
2129
+ /* Ensure ColorGrid handles highlights correctly */
2130
+ .ftd-color-shade.ftd-token-highlight {
2131
+ border-radius: 10px;
2132
+ box-shadow:
2133
+ inset 0 0 0 1px rgba(255, 255, 255, 0.35),
2134
+ 0 0 0 2px var(--ftd-highlight-strong, rgba(var(--ftd-primary-rgb), 0.45)),
2135
+ 0 16px 32px var(--ftd-highlight, rgba(var(--ftd-primary-rgb), 0.28)) !important;
2136
+ }
2137
+
2138
+ .ftd-clickable-card,
2139
+ .ftd-clickable-preview {
2140
+ cursor: pointer !important;
2141
+ transition: all 0.2s ease !important;
2142
+ }
2143
+
2144
+ .ftd-clickable-card:hover {
2145
+ transform: translateY(-2px);
2146
+ box-shadow: var(--ftd-shadow-hover);
2147
+ border-color: var(--ftd-primary);
2148
+ }
2149
+
2150
+ .ftd-clickable-preview:hover {
2151
+ transform: scale(1.05);
2152
+ box-shadow: 0 0 0 2px var(--ftd-primary);
2153
+ }
2154
+
2155
+ /* ========================================
2156
+ Playground Styles
2157
+ ======================================== */
2158
+ .ftd-playground-toolbar-v2 {
2159
+ margin-bottom: 24px;
2160
+ background: var(--ftd-bg-card);
2161
+ border: 1px solid var(--ftd-border);
2162
+ border-radius: 16px;
2163
+ overflow: hidden;
2164
+ box-shadow: var(--ftd-shadow-card);
2165
+ }
2166
+
2167
+ .ftd-playground-toolbar-header {
2168
+ padding: 24px 24px 16px 24px;
2169
+ border-bottom: 1px solid var(--ftd-border);
2170
+ }
2171
+
2172
+ .ftd-playground-toolbar-title {
2173
+ margin: 0;
2174
+ font-size: 1.25rem;
2175
+ font-weight: 700;
2176
+ color: var(--ftd-text-main);
2177
+ letter-spacing: -0.02em;
2178
+ }
2179
+
2180
+ .ftd-playground-toolbar-subtitle {
2181
+ margin: 4px 0 0 0;
2182
+ font-size: 0.875rem;
2183
+ color: var(--ftd-text-sub);
2184
+ }
2185
+
2186
+ .ftd-playground-tabs-v2 {
2187
+ display: flex;
2188
+ padding: 8px;
2189
+ gap: 8px;
2190
+ background: var(--ftd-bg-subtle);
2191
+ overflow-x: auto;
2192
+ }
2193
+
2194
+ .ftd-playground-tab-btn-v2 {
2195
+ display: flex;
2196
+ align-items: center;
2197
+ gap: 10px;
2198
+ padding: 10px 16px;
2199
+ border-radius: 10px;
2200
+ border: 1px solid transparent;
2201
+ background: transparent;
2202
+ color: var(--ftd-text-sub);
2203
+ font-weight: 600;
2204
+ cursor: pointer;
2205
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
2206
+ font-size: 0.9rem;
2207
+ white-space: nowrap;
2208
+ }
2209
+
2210
+ .ftd-playground-tab-btn-v2:hover:not(.disabled) {
2211
+ background: var(--ftd-bg-hover);
2212
+ color: var(--ftd-text-main);
2213
+ transform: translateY(-1px);
2214
+ }
2215
+
2216
+ .ftd-playground-tab-btn-v2.active {
2217
+ background: var(--ftd-bg-card);
2218
+ border-color: var(--ftd-border);
2219
+ color: var(--ftd-primary);
2220
+ box-shadow: var(--ftd-shadow-card), 0 0 0 1px rgba(var(--ftd-primary-rgb), 0.1);
2221
+ }
2222
+
2223
+ .ftd-playground-tab-btn-v2.disabled {
2224
+ opacity: 0.5;
2225
+ cursor: not-allowed;
2226
+ filter: grayscale(1);
2227
+ }
2228
+
2229
+ .ftd-playground-tab-icon {
2230
+ font-size: 1.1rem;
2231
+ }
2232
+
2233
+ .ftd-playground-tab-badge {
2234
+ font-size: 10px;
2235
+ font-weight: 700;
2236
+ text-transform: uppercase;
2237
+ background: var(--ftd-bg-subtle);
2238
+ padding: 2px 6px;
2239
+ border-radius: 4px;
2240
+ color: var(--ftd-text-muted);
2241
+ border: 1px solid var(--ftd-border);
2242
+ }
2243
+
2244
+ .ftd-playground-container {
2245
+ margin: 0 auto;
2246
+ }
2247
+
2248
+ .ftd-playground-toolbar {
2249
+ display: none; /* Hide old toolbar */
2250
+ }
2251
+
2252
+ .ftd-playground-control-group {
2253
+ display: flex;
2254
+ flex-direction: column;
2255
+ margin-bottom: 16px;
2256
+ }
2257
+
2258
+ .ftd-playground-control-row {
2259
+ display: flex;
2260
+ gap: 16px;
2261
+ }
2262
+
2263
+ .ftd-playground-checkbox-label {
2264
+ display: flex;
2265
+ align-items: center;
2266
+ gap: 8px;
2267
+ font-size: 13px;
2268
+ color: var(--ftd-text-main);
2269
+ cursor: pointer;
2270
+ margin-bottom: 16px;
2271
+ user-select: none;
2272
+ }
2273
+
2274
+ .ftd-playground-checkbox {
2275
+ appearance: none;
2276
+ -webkit-appearance: none;
2277
+ width: 18px;
2278
+ height: 18px;
2279
+ background: var(--ftd-bg-subtle);
2280
+ border: 1px solid var(--ftd-border);
2281
+ border-radius: 4px;
2282
+ cursor: pointer;
2283
+ position: relative;
2284
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
2285
+ flex-shrink: 0;
2286
+ margin: 0;
2287
+ }
2288
+
2289
+ .ftd-playground-checkbox:hover {
2290
+ border-color: var(--ftd-primary);
2291
+ background: var(--ftd-bg-hover);
2292
+ }
2293
+
2294
+ .ftd-playground-checkbox:checked {
2295
+ background: var(--ftd-primary);
2296
+ border-color: var(--ftd-primary);
2297
+ box-shadow: 0 2px 4px rgba(var(--ftd-primary-rgb), 0.2);
2298
+ }
2299
+
2300
+ .ftd-playground-checkbox::after {
2301
+ content: '';
2302
+ position: absolute;
2303
+ top: 50%;
2304
+ left: 50%;
2305
+ width: 3px;
2306
+ height: 7px;
2307
+ border: solid white;
2308
+ border-width: 0 2px 2px 0;
2309
+ transform: translate(-50%, -60%) rotate(45deg) scale(0);
2310
+ transition: transform 0.2s cubic-bezier(0.68, -0.55, 0.27, 1.55);
2311
+ }
2312
+
2313
+ .ftd-playground-checkbox:checked::after {
2314
+ transform: translate(-50%, -60%) rotate(45deg) scale(1);
2315
+ }
2316
+
2317
+ .ftd-playground-checkbox:focus-visible {
2318
+ outline: 2px solid var(--ftd-primary-fade);
2319
+ outline-offset: 2px;
2320
+ }
2321
+
2322
+ .ftd-playground-input {
2323
+ width: auto !important;
2324
+ padding: 8px 12px;
2325
+ border-radius: 6px;
2326
+ border: 1px solid var(--ftd-border);
2327
+ background: var(--ftd-bg-subtle);
2328
+ color: var(--ftd-text-main);
2329
+ font-size: 13px;
2330
+ }
2331
+
2332
+ .ftd-playground-input:focus-visible {
2333
+ outline: none;
2334
+ border-color: var(--ftd-primary);
2335
+ box-shadow: 0 0 0 2px var(--ftd-primary-fade);
2336
+ }
2337
+
2338
+ .ftd-playground-section-header {
2339
+ margin-top: 16px;
2340
+ margin-bottom: 8px;
2341
+ font-weight: 600;
2342
+ color: var(--ftd-text-main);
2343
+ }
2344
+
2345
+ .ftd-playground-preview-button-icon {
2346
+ margin-right: 8px;
2347
+ }
2348
+
2349
+ .ftd-playground-label {
2350
+ font-weight: 400;
2351
+ color: var(--ftd-text-sub);
2352
+ font-size: 12px;
2353
+ margin-bottom: 4px;
2354
+ display: block;
2355
+ }
2356
+
2357
+ .ftd-playground-tabs {
2358
+ display: flex;
2359
+ gap: 8px;
2360
+ }
2361
+
2362
+ .ftd-playground-tab-btn {
2363
+ padding: 6px 14px;
2364
+ border-radius: 6px;
2365
+ border: 1px solid transparent;
2366
+ background: transparent;
2367
+ color: var(--ftd-text-sub);
2368
+ font-weight: 600;
2369
+ cursor: pointer;
2370
+ transition: all 0.15s ease;
2371
+ font-size: 0.8rem;
2372
+ text-transform: uppercase;
2373
+ letter-spacing: 0.02em;
2374
+ }
2375
+
2376
+ .ftd-playground-tab-btn:hover {
2377
+ background: var(--ftd-bg-hover);
2378
+ color: var(--ftd-text-main);
2379
+ }
2380
+
2381
+ .ftd-playground-tab-btn.active {
2382
+ background: var(--ftd-primary);
2383
+ border-color: var(--ftd-primary);
2384
+ color: #ffffff;
2385
+ box-shadow: 0 2px 8px rgba(var(--ftd-primary-rgb), 0.3);
2386
+ }
2387
+
2388
+ .ftd-playground-layout {
2389
+ display: flex;
2390
+ gap: 32px;
2391
+ align-items: flex-start;
2392
+ }
2393
+
2394
+ .ftd-playground-sidebar {
2395
+ width: 380px;
2396
+ height: calc(100vh - 147px - 163px - 62px);
2397
+ overflow-y: auto;
2398
+ flex-shrink: 0;
2399
+ background: var(--ftd-bg-card);
2400
+ border: 1px solid var(--ftd-border);
2401
+ border-radius: 12px;
2402
+ padding: 24px 16px 24px 24px;
2403
+ box-shadow: var(--ftd-shadow-card);
2404
+ }
2405
+
2406
+ .ftd-playground-title {
2407
+ margin: 0 0 24px 0;
2408
+ font-size: 1.1rem;
2409
+ font-weight: 700;
2410
+ color: var(--ftd-text-main);
2411
+ padding-bottom: 12px;
2412
+ border-bottom: 1px solid var(--ftd-border);
2413
+ }
2414
+
2415
+ /* Reset Button */
2416
+ .ftd-playground-actions {
2417
+ margin-top: 2rem;
2418
+ padding-top: 1rem;
2419
+ border-top: 1px solid var(--ftd-border);
2420
+ }
2421
+
2422
+ .ftd-playground-reset-btn {
2423
+ width: 100%;
2424
+ display: flex;
2425
+ align-items: center;
2426
+ justify-content: center;
2427
+ gap: 8px;
2428
+ padding: 10px;
2429
+ background: transparent;
2430
+ border: 1px solid var(--ftd-border);
2431
+ border-radius: 8px;
2432
+ color: var(--ftd-text-muted);
2433
+ font-size: 0.9rem;
2434
+ cursor: pointer;
2435
+ transition: all 0.2s;
2436
+ }
2437
+
2438
+ .ftd-playground-reset-btn:hover {
2439
+ border-color: var(--ftd-text-main);
2440
+ color: var(--ftd-text-main);
2441
+ background: var(--ftd-bg-subtle);
2442
+ }
2443
+
2444
+ .ftd-playground-control {
2445
+ width: 100%;
2446
+ margin-bottom: 16px;
2447
+ }
2448
+
2449
+ .ftd-playground-control:last-child {
2450
+ margin-bottom: 0;
2451
+ }
2452
+
2453
+ .ftd-select-wrapper {
2454
+ position: relative;
2455
+ display: flex;
2456
+ align-items: center;
2457
+ }
2458
+
2459
+ /* Custom Token Select */
2460
+ .ftd-custom-select-container {
2461
+ position: relative;
2462
+ width: 100%;
2463
+ }
2464
+
2465
+ .ftd-custom-select-trigger {
2466
+ width: auto;
2467
+ padding: 10px 12px;
2468
+ border-radius: 8px;
2469
+ border: 1px solid var(--ftd-border);
2470
+ background: var(--ftd-bg-subtle);
2471
+ color: var(--ftd-text-main);
2472
+ font-size: 0.9rem;
2473
+ cursor: pointer;
2474
+ display: flex;
2475
+ align-items: center;
2476
+ justify-content: space-between;
2477
+ gap: 8px;
2478
+ transition: all 0.2s;
2479
+ }
2480
+
2481
+ .ftd-custom-select-trigger:hover {
2482
+ border-color: var(--ftd-text-muted);
2483
+ }
2484
+
2485
+ .ftd-custom-select-trigger:focus-visible {
2486
+ outline: none;
2487
+ border-color: var(--ftd-primary);
2488
+ box-shadow: 0 0 0 2px var(--ftd-primary-fade);
2489
+ }
2490
+
2491
+ .ftd-custom-select-trigger.is-open {
2492
+ border-color: var(--ftd-primary);
2493
+ box-shadow: 0 0 0 2px var(--ftd-primary-fade);
2494
+ }
2495
+
2496
+ .ftd-custom-select-value {
2497
+ display: flex;
2498
+ align-items: center;
2499
+ gap: 8px;
2500
+ flex: 1;
2501
+ overflow: hidden;
2502
+ text-overflow: ellipsis;
2503
+ white-space: nowrap;
2504
+ }
2505
+
2506
+ .ftd-custom-select-arrow {
2507
+ width: 16px;
2508
+ height: 16px;
2509
+ color: var(--ftd-text-muted);
2510
+ transition: transform 0.2s;
2511
+ }
2512
+
2513
+ .ftd-custom-select-trigger.is-open .ftd-custom-select-arrow {
2514
+ transform: rotate(180deg);
2515
+ }
2516
+
2517
+ .ftd-custom-select-dropdown {
2518
+ position: absolute;
2519
+ top: 100%;
2520
+ left: 0;
2521
+ width: 100%;
2522
+ max-height: 300px;
2523
+ overflow-y: auto;
2524
+ background: var(--ftd-bg-page);
2525
+ border: 1px solid var(--ftd-border);
2526
+ border-radius: 8px;
2527
+ margin-top: 4px;
2528
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
2529
+ z-index: 100;
2530
+ padding: 4px;
2531
+ }
2532
+
2533
+ .ftd-custom-option {
2534
+ display: flex;
2535
+ align-items: center;
2536
+ gap: 10px;
2537
+ padding: 8px 12px;
2538
+ border-radius: 4px;
2539
+ cursor: pointer;
2540
+ font-size: 0.9rem;
2541
+ color: var(--ftd-text-main);
2542
+ transition: background 0.1s;
2543
+ }
2544
+
2545
+ .ftd-custom-option:hover {
2546
+ background: var(--ftd-bg-subtle);
2547
+ }
2548
+
2549
+ .ftd-custom-option.is-selected {
2550
+ background: var(--ftd-primary-fade);
2551
+ color: var(--ftd-primary);
2552
+ font-weight: 500;
2553
+ }
2554
+
2555
+ .ftd-color-swatch-sm {
2556
+ width: 16px;
2557
+ height: 16px;
2558
+ border-radius: 4px;
2559
+ border: 1px solid rgba(0, 0, 0, 0.1);
2560
+ flex-shrink: 0;
2561
+ }
2562
+
2563
+ .ftd-token-value-preview {
2564
+ margin-left: auto;
2565
+ font-size: 0.8rem;
2566
+ color: var(--ftd-text-muted);
2567
+ font-family: monospace;
2568
+ opacity: 0.7;
2569
+ }
2570
+
2571
+ .ftd-playground-preview-area {
2572
+ width: calc(100% - 380px - 32px);
2573
+ height: calc(100vh - 147px - 163px - 62px);
2574
+ flex: 1;
2575
+ display: flex;
2576
+ gap: 24px;
2577
+ }
2578
+
2579
+ .ftd-playground-canvas {
2580
+ width: 100%;
2581
+ background: repeating-linear-gradient(45deg,
2582
+ rgba(148, 163, 184, 0.08),
2583
+ rgba(148, 163, 184, 0.08) 12px,
2584
+ rgba(148, 163, 184, 0.02) 12px,
2585
+ rgba(148, 163, 184, 0.02) 24px);
2586
+ border: 1px solid var(--ftd-border);
2587
+ border-radius: 12px;
2588
+ display: flex;
2589
+ align-items: center;
2590
+ justify-content: center;
2591
+ padding: 40px;
2592
+ position: relative;
2593
+ }
2594
+
2595
+ .ftd-playground-code {
2596
+ width: 100%;
2597
+ background: var(--ftd-bg-subtle);
2598
+ border-radius: 12px;
2599
+ overflow: hidden;
2600
+ border: 1px solid var(--ftd-border);
2601
+ display: flex;
2602
+ flex-direction: column;
2603
+ }
2604
+
2605
+ .ftd-code-header {
2606
+ padding: 12px 16px;
2607
+ background: var(--ftd-bg-page);
2608
+ color: var(--ftd-text-sub);
2609
+ font-size: 0.75rem;
2610
+ font-weight: 600;
2611
+ letter-spacing: 0.05em;
2612
+ border-bottom: 1px solid var(--ftd-border);
2613
+ display: flex;
2614
+ align-items: center;
2615
+ justify-content: space-between;
2616
+ gap: 12px;
2617
+ }
2618
+
2619
+ .ftd-code-header .ftd-playground-tabs {
2620
+ display: flex;
2621
+ gap: 6px;
2622
+ margin: 0;
2623
+ }
2624
+
2625
+ .ftd-playground-copy-btn {
2626
+ background: var(--ftd-bg-card);
2627
+ border: 1px solid var(--ftd-border);
2628
+ border-radius: 6px;
2629
+ padding: 4px 10px;
2630
+ font-size: 0.75rem;
2631
+ font-weight: 600;
2632
+ color: var(--ftd-text-main);
2633
+ cursor: pointer;
2634
+ transition: all 0.2s;
2635
+ }
2636
+
2637
+ .ftd-playground-copy-btn:hover {
2638
+ background: var(--ftd-bg-hover);
2639
+ border-color: var(--ftd-border-hover);
2640
+ }
2641
+
2642
+ .ftd-playground-code pre {
2643
+ margin: 0;
2644
+ padding: 24px;
2645
+ overflow-x: auto;
2646
+ }
2647
+
2648
+ .ftd-playground-code code {
2649
+ font-family: var(--ftd-font-mono);
2650
+ font-size: 0.85rem;
2651
+ color: var(--ftd-text-main);
2652
+ line-height: 1.6;
2653
+ }
2654
+
2655
+ @media (max-width: 1024px) {
2656
+ .ftd-playground-layout {
2657
+ flex-direction: column;
2658
+ }
2659
+ }
2660
+
2661
+ /* --- Skeleton Loader --- */
2662
+ @keyframes ftd-pulse {
2663
+ 0%, 100% {
2664
+ opacity: 1;
2665
+ }
2666
+ 50% {
2667
+ opacity: 0.5;
2668
+ }
2669
+ }
2670
+
2671
+ .ftd-skeleton-pulse {
2672
+ animation: ftd-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
2673
+ background-color: var(--ftd-border);
2674
+ border-radius: 4px;
2675
+ }
2676
+
2677
+
2678
+
2679
+ .ftd-skeleton-header {
2680
+ padding: 16px 40px;
2681
+ margin-bottom: 24px;
2682
+ }
2683
+
2684
+ .ftd-skeleton-title {
2685
+ height: 35px;
2686
+ width: 200px;
2687
+ margin-bottom: 12px;
2688
+ }
2689
+
2690
+ .ftd-skeleton-subtitle {
2691
+ height: 20px;
2692
+ width: 300px;
2693
+ }
2694
+
2695
+ .ftd-skeleton-tabs {
2696
+ display: flex;
2697
+ justify-content: flex-start;
2698
+ gap: 8px;
2699
+ padding: 0 40px 16px; /* Aligns with container padding */
2700
+ }
2701
+
2702
+ .ftd-skeleton-tab {
2703
+ height: 35px;
2704
+ min-width: 150px;
2705
+ border-radius: 8px; /* Matches tab radius */
2706
+ }
2707
+
2708
+ /* Skeleton Action Pulse Circles */
2709
+ .ftd-skeleton-action-pulse {
2710
+ width: 80px;
2711
+ height: 40px;
2712
+ border-radius: 100px;
2713
+ }
2714
+
2715
+ .ftd-skeleton-export,
2716
+ .ftd-skeleton-search,
2717
+ .ftd-skeleton-theme {
2718
+ height: 40px;
2719
+ border-radius: 8px;
2720
+ }
2721
+
2722
+ .ftd-skeleton-export {
2723
+ width: 112px;
2724
+ }
2725
+
2726
+ .ftd-skeleton-search {
2727
+ width: 280px;
2728
+ }
2729
+
2730
+ .ftd-skeleton-theme {
2731
+ width: 100px;
2732
+ border-radius: 99px;
2733
+ }
2734
+
2735
+ .ftd-skeleton-content {
2736
+ padding: 0 40px;
2737
+ display: grid;
2738
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
2739
+ gap: 24px;
2740
+ }
2741
+
2742
+ .ftd-skeleton-card {
2743
+ height: 200px;
2744
+ border-radius: 12px;
2745
+ }
2746
+
2747
+ /* ========================================
2748
+ Glass Effect Overrides (must be last)
2749
+ ======================================== */
2750
+ .ftd-container {
2751
+ background: var(--ftd-page-backdrop);
2752
+ -webkit-font-smoothing: antialiased;
2753
+ text-rendering: optimizeLegibility;
2754
+ }
2755
+
2756
+ .ftd-navbar-sticky {
2757
+ background: var(--ftd-surface-bg-strong);
2758
+ border-bottom-color: transparent;
2759
+ box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
2760
+ }
2761
+
2762
+ .ftd-section,
2763
+ .ftd-semantic-section,
2764
+ .ftd-variant-card,
2765
+ .ftd-radius-container,
2766
+ .ftd-dimension-group,
2767
+ .ftd-color-sidebar,
2768
+ .ftd-search-container,
2769
+ .ftd-export-container,
2770
+ .ftd-playground-toolbar-v2,
2771
+ .ftd-playground-sidebar,
2772
+ .ftd-playground-code,
2773
+ .ftd-token-card,
2774
+ .ftd-spacing-item,
2775
+ .ftd-dimension-item,
2776
+ .ftd-display-card {
2777
+ background: var(--ftd-surface-bg);
2778
+ border-color: transparent;
2779
+ box-shadow: var(--ftd-premium-shadow), inset 0 1px 0 var(--ftd-premium-edge);
2780
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
2781
+ position: relative;
2782
+ }
2783
+
2784
+ /* Stronger surface panels */
2785
+ .ftd-color-sidebar,
2786
+ .ftd-search-container,
2787
+ .ftd-export-container,
2788
+ .ftd-playground-toolbar-v2,
2789
+ .ftd-playground-sidebar,
2790
+ .ftd-playground-code {
2791
+ background: var(--ftd-surface-bg-strong);
2792
+ }
2793
+
2794
+ .ftd-section::before,
2795
+ .ftd-semantic-section::before,
2796
+ .ftd-variant-card::before,
2797
+ .ftd-radius-container::before,
2798
+ .ftd-dimension-group::before,
2799
+ .ftd-color-sidebar::before,
2800
+ .ftd-search-container::before,
2801
+ .ftd-export-container::before,
2802
+ .ftd-playground-toolbar-v2::before,
2803
+ .ftd-playground-sidebar::before,
2804
+ .ftd-playground-code::before {
2805
+ content: '';
2806
+ position: absolute;
2807
+ top: 0;
2808
+ left: 16px;
2809
+ right: 16px;
2810
+ height: 1px;
2811
+ background: linear-gradient(90deg, transparent, var(--ftd-premium-edge), transparent);
2812
+ opacity: 0.9;
2813
+ pointer-events: none;
2814
+ }
2815
+
2816
+ /* Preserve sticky behavior */
2817
+ .ftd-color-sidebar {
2818
+ position: sticky;
2819
+ }
2820
+
2821
+ /* Reduce inner-card depth to avoid double-card feel */
2822
+ .ftd-token-card,
2823
+ .ftd-spacing-item,
2824
+ .ftd-dimension-item,
2825
+ .ftd-display-card,
2826
+ .ftd-export-code-wrapper,
2827
+ .ftd-search-result-item {
2828
+ box-shadow: none;
2829
+ border-color: transparent;
2830
+ background: var(--ftd-panel-bg);
2831
+ }
2832
+
2833
+ [data-theme="dark"] .ftd-section,
2834
+ [data-theme="dark"] .ftd-semantic-section,
2835
+ [data-theme="dark"] .ftd-variant-card,
2836
+ [data-theme="dark"] .ftd-radius-container,
2837
+ [data-theme="dark"] .ftd-dimension-group,
2838
+ [data-theme="dark"] .ftd-color-sidebar,
2839
+ [data-theme="dark"] .ftd-search-container,
2840
+ [data-theme="dark"] .ftd-export-container,
2841
+ [data-theme="dark"] .ftd-playground-toolbar-v2,
2842
+ [data-theme="dark"] .ftd-playground-sidebar,
2843
+ [data-theme="dark"] .ftd-playground-code,
2844
+ [data-theme="dark"] .ftd-token-card,
2845
+ [data-theme="dark"] .ftd-spacing-item,
2846
+ [data-theme="dark"] .ftd-dimension-item,
2847
+ [data-theme="dark"] .ftd-display-card {
2848
+ border-color: transparent;
2849
+ }
2850
+
2851
+ [data-theme="dark"] .ftd-token-card,
2852
+ [data-theme="dark"] .ftd-spacing-item,
2853
+ [data-theme="dark"] .ftd-dimension-item,
2854
+ [data-theme="dark"] .ftd-display-card,
2855
+ [data-theme="dark"] .ftd-export-code-wrapper,
2856
+ [data-theme="dark"] .ftd-search-result-item {
2857
+ border-color: transparent;
2858
+ }
2859
+
2860
+ [data-theme="dark"] .ftd-search-result-item:hover,
2861
+ [data-theme="dark"] .ftd-search-result-selected {
2862
+ background: rgba(96, 165, 250, 0.12);
2863
+ box-shadow: inset 0 0 0 1px rgba(var(--ftd-primary-rgb), 0.22);
2864
+ }
2865
+
2866
+ /* Ensure keyboard-selected state wins over base panel background */
2867
+ .ftd-search-result-item.ftd-search-result-selected {
2868
+ background: rgba(59, 130, 246, 0.08);
2869
+ box-shadow: inset 0 0 0 1px rgba(var(--ftd-primary-rgb), 0.18);
2870
+ }
2871
+
2872
+ [data-theme="dark"] .ftd-search-result-item.ftd-search-result-selected {
2873
+ background: rgba(96, 165, 250, 0.12);
2874
+ box-shadow: inset 0 0 0 1px rgba(var(--ftd-primary-rgb), 0.22);
2875
+ }
2876
+
2877
+ /* --- Highlight Override (always visible) --- */
2878
+ .ftd-token-highlight {
2879
+ position: relative;
2880
+ box-shadow:
2881
+ 0 0 0 2px var(--ftd-highlight-strong, rgba(var(--ftd-primary-rgb), 0.45)),
2882
+ 0 18px 38px var(--ftd-highlight, rgba(var(--ftd-primary-rgb), 0.28)) !important;
2883
+ outline: 1px solid rgba(var(--ftd-primary-rgb), 0.25);
2884
+ outline-offset: 0;
2885
+ animation: ftd-highlight-pulse 1.6s ease-in-out 2;
2886
+ }
2887
+
2888
+ .ftd-token-highlight::after {
2889
+ content: '';
2890
+ position: absolute;
2891
+ inset: 0;
2892
+ border-radius: inherit;
2893
+ background: var(--ftd-highlight-bg, rgba(var(--ftd-primary-rgb), 0.12));
2894
+ opacity: 0.28;
2895
+ pointer-events: none;
2896
+ }
2897
+
2898
+ @keyframes ftd-highlight-pulse {
2899
+ 0% {
2900
+ box-shadow:
2901
+ 0 0 0 2px var(--ftd-highlight-strong, rgba(var(--ftd-primary-rgb), 0.45)),
2902
+ 0 18px 38px var(--ftd-highlight, rgba(var(--ftd-primary-rgb), 0.28));
2903
+ }
2904
+ 50% {
2905
+ box-shadow:
2906
+ 0 0 0 3px var(--ftd-highlight-strong, rgba(var(--ftd-primary-rgb), 0.6)),
2907
+ 0 22px 48px var(--ftd-highlight, rgba(var(--ftd-primary-rgb), 0.36));
2908
+ }
2909
+ 100% {
2910
+ box-shadow:
2911
+ 0 0 0 2px var(--ftd-highlight-strong, rgba(var(--ftd-primary-rgb), 0.45)),
2912
+ 0 18px 38px var(--ftd-highlight, rgba(var(--ftd-primary-rgb), 0.28));
2913
+ }
2914
+ }
2915
+
2916
+ [data-theme="dark"] .ftd-section::before,
2917
+ [data-theme="dark"] .ftd-semantic-section::before,
2918
+ [data-theme="dark"] .ftd-variant-card::before,
2919
+ [data-theme="dark"] .ftd-radius-container::before,
2920
+ [data-theme="dark"] .ftd-dimension-group::before,
2921
+ [data-theme="dark"] .ftd-color-sidebar::before,
2922
+ [data-theme="dark"] .ftd-search-container::before,
2923
+ [data-theme="dark"] .ftd-export-container::before,
2924
+ [data-theme="dark"] .ftd-playground-toolbar-v2::before,
2925
+ [data-theme="dark"] .ftd-playground-sidebar::before,
2926
+ [data-theme="dark"] .ftd-playground-code::before {
2927
+ opacity: 0.5;
2928
+ }
2929
+
2930
+ /* Foundation wrapper should not look like an extra card */
2931
+ .ftd-foundation-section {
2932
+ background: transparent;
2933
+ border: none;
2934
+ box-shadow: none;
2935
+ padding: 0;
2936
+ }
2937
+
2938
+ /* ========================================
2939
+ Modal Premium Polish
2940
+ ======================================== */
2941
+ .ftd-export-modal {
2942
+ background: rgba(15, 23, 42, 0.35);
2943
+ backdrop-filter: blur(10px) saturate(1.05);
2944
+ -webkit-backdrop-filter: blur(10px) saturate(1.05);
2945
+ }
2946
+
2947
+ [data-theme="dark"] .ftd-export-modal {
2948
+ background: rgba(2, 6, 23, 0.65);
2949
+ }
2950
+
2951
+ .ftd-export-container {
2952
+ position: relative;
2953
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.84) 100%);
2954
+ border: 1px solid rgba(148, 163, 184, 0.2);
2955
+ box-shadow: 0 30px 80px rgba(15, 23, 42, 0.22), 0 8px 24px rgba(15, 23, 42, 0.12);
2956
+ }
2957
+
2958
+ .ftd-export-container::before {
2959
+ content: '';
2960
+ position: absolute;
2961
+ top: 0;
2962
+ left: 16px;
2963
+ right: 16px;
2964
+ height: 1px;
2965
+ background: var(--ftd-premium-edge);
2966
+ opacity: 0.9;
2967
+ }
2968
+
2969
+ [data-theme="dark"] .ftd-export-container {
2970
+ background: linear-gradient(180deg, rgba(15, 23, 42, 0.92) 0%, rgba(15, 23, 42, 0.78) 100%);
2971
+ border-color: rgba(148, 163, 184, 0.12);
2972
+ box-shadow: 0 30px 80px rgba(2, 6, 23, 0.75), 0 12px 30px rgba(2, 6, 23, 0.6);
2973
+ }
2974
+
2975
+ .ftd-export-header,
2976
+ .ftd-export-footer,
2977
+ .ftd-export-tabs {
2978
+ background: transparent;
2979
+ border-color: rgba(148, 163, 184, 0.12);
2980
+ }
2981
+
2982
+ .ftd-export-tab {
2983
+ border: 1px solid transparent;
2984
+ }
2985
+
2986
+ .ftd-export-tab.active {
2987
+ background: rgba(var(--ftd-primary-rgb), 0.12);
2988
+ border-color: rgba(var(--ftd-primary-rgb), 0.25);
2989
+ box-shadow: inset 0 1px 0 var(--ftd-premium-edge);
2990
+ }
2991
+
2992
+ .ftd-export-code-wrapper {
2993
+ background: rgba(255, 255, 255, 0.7);
2994
+ border-color: rgba(148, 163, 184, 0.14);
2995
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
2996
+ }
2997
+
2998
+ [data-theme="dark"] .ftd-export-code-wrapper {
2999
+ background: rgba(15, 23, 42, 0.6);
3000
+ border-color: rgba(148, 163, 184, 0.1);
3001
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
3002
+ }
3003
+
3004
+ .ftd-export-action-btn {
3005
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));
3006
+ border-color: rgba(148, 163, 184, 0.22);
3007
+ box-shadow: inset 0 1px 0 var(--ftd-premium-edge);
3008
+ }
3009
+
3010
+ [data-theme="dark"] .ftd-export-action-btn {
3011
+ background: linear-gradient(180deg, rgba(15, 23, 42, 0.9), rgba(15, 23, 42, 0.7));
3012
+ border-color: rgba(148, 163, 184, 0.16);
3013
+ }
3014
+
3015
+ @supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
3016
+ .ftd-navbar-sticky,
3017
+ .ftd-section,
3018
+ .ftd-foundation-section,
3019
+ .ftd-semantic-section,
3020
+ .ftd-variant-card,
3021
+ .ftd-radius-container,
3022
+ .ftd-dimension-group,
3023
+ .ftd-color-sidebar,
3024
+ .ftd-search-container,
3025
+ .ftd-export-container,
3026
+ .ftd-playground-toolbar-v2,
3027
+ .ftd-playground-sidebar,
3028
+ .ftd-playground-code {
3029
+ backdrop-filter: blur(var(--ftd-glass-blur)) saturate(1.1);
3030
+ -webkit-backdrop-filter: blur(var(--ftd-glass-blur)) saturate(1.1);
3031
+ }
3032
+ }
3033
+
3034
+ /* ========================================
3035
+ Premium Feel Overrides (final pass)
3036
+ ======================================== */
3037
+ .ftd-variant-card:hover,
3038
+ .ftd-display-card:hover,
3039
+ .ftd-token-card:hover,
3040
+ .ftd-spacing-item:hover,
3041
+ .ftd-dimension-item:hover {
3042
+ transform: translateY(-1px);
3043
+ box-shadow: var(--ftd-premium-shadow-hover), inset 0 1px 0 var(--ftd-premium-edge);
3044
+ }
3045
+
3046
+ .ftd-search-button,
3047
+ .ftd-export-button-nav,
3048
+ .ftd-theme-toggle {
3049
+ background: linear-gradient(180deg,
3050
+ rgba(var(--ftd-primary-rgb), 0.16),
3051
+ rgba(var(--ftd-primary-rgb), 0.06));
3052
+ border-color: rgba(var(--ftd-primary-rgb), 0.24);
3053
+ box-shadow: inset 0 1px 0 var(--ftd-premium-edge),
3054
+ 0 6px 18px rgba(var(--ftd-primary-rgb), 0.16);
3055
+ }
3056
+
3057
+ .ftd-search-button:hover,
3058
+ .ftd-export-button-nav:hover,
3059
+ .ftd-theme-toggle:hover {
3060
+ box-shadow: inset 0 1px 0 var(--ftd-premium-edge),
3061
+ 0 10px 26px rgba(var(--ftd-primary-rgb), 0.2);
3062
+ }
3063
+
3064
+ .ftd-tab.active {
3065
+ background: rgba(var(--ftd-primary-rgb), 0.12);
3066
+ border-color: transparent;
3067
+ box-shadow: inset 0 1px 0 var(--ftd-premium-edge);
3068
+ }
3069
+
3070
+ .ftd-color-nav-link.active {
3071
+ background: rgba(var(--ftd-primary-rgb), 0.08);
3072
+ }
3073
+
3074
+ /* Component dimensions premium polish */
3075
+ .ftd-dimensions-display {
3076
+ gap: 28px;
3077
+ }
3078
+
3079
+ .ftd-dimension-group {
3080
+ padding: 22px;
3081
+ }
3082
+
3083
+ .ftd-dimension-title {
3084
+ letter-spacing: -0.01em;
3085
+ margin-bottom: 16px;
3086
+ }
3087
+
3088
+ .ftd-dimension-items {
3089
+ gap: 14px;
3090
+ }
3091
+
3092
+ .ftd-dimension-item {
3093
+ background: var(--ftd-panel-bg);
3094
+ border-color: rgba(148, 163, 184, 0.12);
3095
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
3096
+ border-radius: 10px;
3097
+ padding: 12px 14px;
3098
+ }
3099
+
3100
+ .ftd-dimension-item:hover {
3101
+ transform: translateY(-1px);
3102
+ border-color: rgba(var(--ftd-primary-rgb), 0.25);
3103
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
3104
+ }
3105
+
3106
+ .ftd-dimension-label {
3107
+ color: var(--ftd-text-sub);
3108
+ letter-spacing: 0.06em;
3109
+ }
3110
+
3111
+ .ftd-dimension-value {
3112
+ display: inline-flex;
3113
+ align-items: center;
3114
+ padding: 4px 8px;
3115
+ border-radius: 6px;
3116
+ background: rgba(148, 163, 184, 0.12);
3117
+ border: 1px solid rgba(148, 163, 184, 0.18);
3118
+ color: var(--ftd-text-main);
3119
+ }
3120
+
3121
+ [data-theme="dark"] .ftd-dimension-item {
3122
+ border-color: rgba(148, 163, 184, 0.18);
3123
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
3124
+ }
3125
+
3126
+ [data-theme="dark"] .ftd-dimension-value {
3127
+ background: rgba(148, 163, 184, 0.12);
3128
+ border-color: rgba(148, 163, 184, 0.2);
3129
+ color: var(--ftd-text-main);
3130
+ }
3131
+
3132
+ /* Semantic groups premium polish */
3133
+ .ftd-semantic-group {
3134
+ margin-bottom: 36px;
3135
+ }
3136
+
3137
+ .ftd-semantic-group-header {
3138
+ display: flex;
3139
+ align-items: center;
3140
+ gap: 12px;
3141
+ margin: 6px 0 14px;
3142
+ }
3143
+
3144
+ .ftd-semantic-group-name {
3145
+ margin: 0;
3146
+ font-size: 1.05rem;
3147
+ font-weight: 700;
3148
+ letter-spacing: -0.01em;
3149
+ color: var(--ftd-text-main);
3150
+ }
3151
+
3152
+ .ftd-semantic-group-count {
3153
+ font-size: 0.72rem;
3154
+ font-weight: 600;
3155
+ color: var(--ftd-text-sub);
3156
+ background: rgba(var(--ftd-primary-rgb), 0.08);
3157
+ border: 1px solid rgba(var(--ftd-primary-rgb), 0.2);
3158
+ padding: 4px 8px;
3159
+ border-radius: 999px;
3160
+ }
3161
+
3162
+ .ftd-color-family-swatch {
3163
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65),
3164
+ 0 0 0 1px var(--ftd-outline-soft);
3165
+ }
3166
+
3167
+ .ftd-token-card {
3168
+ border-radius: 12px;
3169
+ }
3170
+
3171
+ .ftd-token-swatch {
3172
+ position: relative;
3173
+ border-bottom: 1px solid var(--ftd-outline-soft);
3174
+ }
3175
+
3176
+ .ftd-token-swatch span {
3177
+ display: inline-flex;
3178
+ align-items: center;
3179
+ padding: 2px 6px;
3180
+ border-radius: 999px;
3181
+ font-size: 10px;
3182
+ letter-spacing: 0.08em;
3183
+ text-transform: uppercase;
3184
+ background: rgba(255, 255, 255, 0.18);
3185
+ border: 1px solid rgba(255, 255, 255, 0.25);
3186
+ backdrop-filter: blur(4px);
3187
+ }
3188
+
3189
+ [data-theme="dark"] .ftd-semantic-group-count {
3190
+ background: rgba(var(--ftd-primary-rgb), 0.12);
3191
+ border-color: rgba(var(--ftd-primary-rgb), 0.28);
3192
+ }
3193
+
3194
+ [data-theme="dark"] .ftd-color-family-swatch {
3195
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08),
3196
+ 0 0 0 1px rgba(148, 163, 184, 0.18);
3197
+ }
3198
+
3199
+ .ftd-export-action-btn,
3200
+ .ftd-playground-reset-btn,
3201
+ .ftd-playground-tab-btn-v2,
3202
+ .ftd-playground-tab-btn,
3203
+ .ftd-tab,
3204
+ .ftd-btn-primary,
3205
+ .ftd-btn-secondary {
3206
+ transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
3207
+ }
3208
+
3209
+ .ftd-export-action-btn:focus-visible,
3210
+ .ftd-playground-reset-btn:focus-visible,
3211
+ .ftd-playground-tab-btn-v2:focus-visible,
3212
+ .ftd-playground-tab-btn:focus-visible,
3213
+ .ftd-tab:focus-visible,
3214
+ .ftd-search-button:focus-visible,
3215
+ .ftd-export-button-nav:focus-visible,
3216
+ .ftd-theme-toggle:focus-visible,
3217
+ .ftd-btn-primary:focus-visible,
3218
+ .ftd-btn-secondary:focus-visible {
3219
+ outline: none;
3220
+ box-shadow: var(--ftd-premium-ring);
3221
+ }
3222
+
3223
+ /* Reduce motion for users who prefer it */
3224
+ @media (prefers-reduced-motion: reduce) {
3225
+ * {
3226
+ animation-duration: 0.01ms !important;
3227
+ animation-iteration-count: 1 !important;
3228
+ transition-duration: 0.01ms !important;
3229
+ scroll-behavior: auto !important;
3230
+ }
3231
+ }
3232
+
3233
+ /* ========================================
3234
+ Responsive Layout
3235
+ ======================================== */
3236
+ @media (max-width: 1200px) {
3237
+ .ftd-container {
3238
+ padding: 0 24px;
3239
+ }
3240
+
3241
+ .ftd-header {
3242
+ padding: 16px 24px;
3243
+ }
3244
+
3245
+ .ftd-tabs {
3246
+ padding: 0 24px 12px 24px;
3247
+ }
3248
+
3249
+ .ftd-skeleton-header {
3250
+ padding: 16px 24px;
3251
+ }
3252
+
3253
+ .ftd-skeleton-tabs {
3254
+ padding: 0 24px 12px;
3255
+ }
3256
+
3257
+ .ftd-skeleton-content {
3258
+ padding: 0 24px;
3259
+ }
3260
+ }
3261
+
3262
+ @media (max-width: 1024px) {
3263
+ .ftd-header {
3264
+ flex-direction: column;
3265
+ align-items: flex-start;
3266
+ gap: 12px;
3267
+ }
3268
+
3269
+ .ftd-title-wrapper {
3270
+ height: auto;
3271
+ }
3272
+
3273
+ .ftd-header-actions {
3274
+ width: 100%;
3275
+ flex-wrap: wrap;
3276
+ justify-content: flex-start;
3277
+ }
3278
+
3279
+ .ftd-search-button {
3280
+ flex: 1 1 260px;
3281
+ width: auto;
3282
+ }
3283
+
3284
+ .ftd-playground-layout {
3285
+ flex-direction: column;
3286
+ }
3287
+
3288
+ .ftd-playground-sidebar {
3289
+ width: 100%;
3290
+ height: auto;
3291
+ max-height: none;
3292
+ }
3293
+
3294
+ .ftd-playground-preview-area {
3295
+ width: 100%;
3296
+ height: auto;
3297
+ flex-direction: column;
3298
+ }
3299
+
3300
+ .ftd-playground-canvas {
3301
+ padding: 28px;
3302
+ min-height: 220px;
3303
+ }
3304
+
3305
+ .ftd-playground-code pre {
3306
+ padding: 18px;
3307
+ }
3308
+ }
3309
+
3310
+ @media (max-width: 768px) {
3311
+ .ftd-container {
3312
+ padding: 0 16px;
3313
+ }
3314
+
3315
+ .ftd-header {
3316
+ padding: 14px 16px;
3317
+ }
3318
+
3319
+ .ftd-navbar-sticky {
3320
+ background: var(--ftd-bg-page);
3321
+ backdrop-filter: none;
3322
+ -webkit-backdrop-filter: none;
3323
+ border-bottom: 1px solid var(--ftd-border);
3324
+ }
3325
+
3326
+ [data-theme="dark"] .ftd-navbar-sticky {
3327
+ background: #0b1220;
3328
+ }
3329
+
3330
+ .ftd-tabs {
3331
+ padding: 0 16px 12px 16px;
3332
+ }
3333
+
3334
+ .ftd-content {
3335
+ padding-top: calc(var(--ftd-sticky-offset, 180px) + 24px);
3336
+ }
3337
+
3338
+ .ftd-title {
3339
+ font-size: 1.6rem;
3340
+ }
3341
+
3342
+ .ftd-subtitle {
3343
+ font-size: 0.9rem;
3344
+ }
3345
+
3346
+ .ftd-search-button {
3347
+ width: 100%;
3348
+ min-width: 0;
3349
+ height: 38px;
3350
+ }
3351
+
3352
+ .ftd-export-button-nav,
3353
+ .ftd-theme-toggle {
3354
+ height: 38px;
3355
+ padding: 0 14px;
3356
+ }
3357
+
3358
+ .ftd-tab {
3359
+ min-width: 120px;
3360
+ font-size: 0.85rem;
3361
+ }
3362
+
3363
+ .ftd-variant-preview {
3364
+ padding: 24px;
3365
+ }
3366
+
3367
+ .ftd-variant-table-wrapper {
3368
+ overflow-x: auto;
3369
+ -webkit-overflow-scrolling: touch;
3370
+ }
3371
+
3372
+ .ftd-variant-table {
3373
+ min-width: 520px;
3374
+ }
3375
+
3376
+ .ftd-token-grid {
3377
+ grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
3378
+ }
3379
+
3380
+ .ftd-color-sidebar {
3381
+ top: calc(var(--ftd-sticky-offset, 180px) + 16px);
3382
+ }
3383
+ }
3384
+
3385
+ @media (max-width: 560px) {
3386
+ .ftd-header-actions {
3387
+ display: grid;
3388
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3389
+ grid-template-areas:
3390
+ "search search"
3391
+ "export theme";
3392
+ gap: 8px;
3393
+ }
3394
+
3395
+ .ftd-search-button {
3396
+ padding: 0 12px;
3397
+ grid-area: search;
3398
+ width: 100%;
3399
+ justify-content: flex-start;
3400
+ }
3401
+
3402
+ .ftd-export-button-nav,
3403
+ .ftd-theme-toggle {
3404
+ width: 100%;
3405
+ justify-content: center;
3406
+ }
3407
+
3408
+ .ftd-export-button-nav {
3409
+ grid-area: export;
3410
+ }
3411
+
3412
+ .ftd-theme-toggle {
3413
+ grid-area: theme;
3414
+ }
3415
+
3416
+ .ftd-tab {
3417
+ min-width: 110px;
3418
+ padding: 8px 12px;
3419
+ }
3420
+
3421
+ .ftd-token-grid {
3422
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
3423
+ }
3424
+
3425
+ .ftd-color-shade {
3426
+ min-width: 72px;
3427
+ }
3428
+ }