@goodfellow-cms/admin 0.0.0-stage → 0.2.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.
package/styles.css ADDED
@@ -0,0 +1,1474 @@
1
+ /*
2
+ * Styles for Goodfellow's admin panel. Plain CSS with gfa- prefixed classes,
3
+ * so they never depend on or leak into the site's own styles.
4
+ */
5
+ /* Each color is light-dark(light, dark): light-dark() picks by color-scheme, which follows
6
+ * the computer's setting unless the admin panel's color menu chose (data-gfa-theme). */
7
+ :root {
8
+ color-scheme: light dark;
9
+ --gfa-bg: light-dark(#f8fafc, #0b1120);
10
+ --gfa-surface: light-dark(#ffffff, #111827);
11
+ --gfa-text: light-dark(#0f172a, #e2e8f0);
12
+ --gfa-muted: light-dark(#64748b, #94a3b8);
13
+ --gfa-border: light-dark(#e2e8f0, #1f2937);
14
+ --gfa-input-border: light-dark(#cbd5e1, #475569);
15
+ --gfa-accent: light-dark(#2563eb, #60a5fa);
16
+ --gfa-accent-text: light-dark(#ffffff, #0b1120);
17
+ --gfa-current-bg: light-dark(#eff6ff, #172554);
18
+ --gfa-danger: light-dark(#dc2626, #f87171);
19
+ --gfa-danger-border: light-dark(#fecaca, #7f1d1d);
20
+ --gfa-success-bg: light-dark(#ecfdf5, #052e1c);
21
+ --gfa-success-text: light-dark(#065f46, #6ee7b7);
22
+ --gfa-success-border: light-dark(#a7f3d0, #065f46);
23
+ --gfa-published-bg: light-dark(#047857, #34d399);
24
+ --gfa-published-text: light-dark(#ffffff, #022c22);
25
+ --gfa-error-bg: light-dark(#fef2f2, #3b0d0d);
26
+ --gfa-error-text: light-dark(#991b1b, #fca5a5);
27
+ --gfa-demo-bg: light-dark(#fef9c3, #422006);
28
+ --gfa-demo-border: light-dark(#fde68a, #854d0e);
29
+ --gfa-demo-text: light-dark(#713f12, #fde68a);
30
+ --gfa-checker: light-dark(#f1f5f9, #1e293b);
31
+ --gfa-checker-alt: light-dark(#ffffff, #0f172a);
32
+ --gfa-radius: 6px;
33
+ --gfa-topbar-height: 52px;
34
+ --gfa-code-active-line: light-dark(rgb(37 99 235 / 0.06), rgb(96 165 250 / 0.08));
35
+ --gfa-code-selection: light-dark(rgb(37 99 235 / 0.2), rgb(96 165 250 / 0.3));
36
+ }
37
+
38
+ :root[data-gfa-theme="light"] {
39
+ color-scheme: light;
40
+ }
41
+
42
+ :root[data-gfa-theme="dark"] {
43
+ color-scheme: dark;
44
+ }
45
+
46
+ html,
47
+ body,
48
+ #gf-admin {
49
+ height: 100%;
50
+ margin: 0;
51
+ }
52
+
53
+ .gfa-app {
54
+ display: flex;
55
+ flex-direction: column;
56
+ height: 100%;
57
+ background: var(--gfa-bg);
58
+ color: var(--gfa-text);
59
+ font:
60
+ 15px / 1.5 ui-sans-serif,
61
+ system-ui,
62
+ -apple-system,
63
+ "Segoe UI",
64
+ sans-serif;
65
+ }
66
+
67
+ .gfa-app *,
68
+ .gfa-app *::before,
69
+ .gfa-app *::after,
70
+ .gfa-sign-in,
71
+ .gfa-sign-in *,
72
+ .gfa-dialog,
73
+ .gfa-dialog * {
74
+ box-sizing: border-box;
75
+ }
76
+
77
+ .gfa-topbar {
78
+ display: flex;
79
+ align-items: center;
80
+ gap: 24px;
81
+ height: var(--gfa-topbar-height);
82
+ flex-shrink: 0;
83
+ padding: 0 16px;
84
+ background: var(--gfa-surface);
85
+ border-bottom: 1px solid var(--gfa-border);
86
+ }
87
+
88
+ .gfa-demo-banner {
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ gap: 12px;
93
+ flex-shrink: 0;
94
+ padding: 6px 16px;
95
+ background: var(--gfa-demo-bg);
96
+ border-bottom: 1px solid var(--gfa-demo-border);
97
+ color: var(--gfa-demo-text);
98
+ font-size: 14px;
99
+ }
100
+
101
+ .gfa-brand {
102
+ font-weight: 700;
103
+ white-space: nowrap;
104
+ overflow: hidden;
105
+ text-overflow: ellipsis;
106
+ max-width: 220px;
107
+ }
108
+
109
+ .gfa-nav {
110
+ display: flex;
111
+ gap: 4px;
112
+ flex: 1;
113
+ overflow-x: auto;
114
+ }
115
+
116
+ .gfa-nav a,
117
+ .gfa-tab {
118
+ padding: 6px 12px;
119
+ border-radius: var(--gfa-radius);
120
+ border: 0;
121
+ background: none;
122
+ color: var(--gfa-muted);
123
+ font: inherit;
124
+ text-decoration: none;
125
+ white-space: nowrap;
126
+ cursor: pointer;
127
+ }
128
+
129
+ .gfa-nav a:hover,
130
+ .gfa-tab:hover {
131
+ background: var(--gfa-bg);
132
+ color: var(--gfa-text);
133
+ }
134
+
135
+ .gfa-nav a[aria-current="page"],
136
+ .gfa-tab[aria-current="page"],
137
+ .gfa-tab[aria-selected="true"] {
138
+ background: var(--gfa-current-bg);
139
+ color: var(--gfa-accent);
140
+ font-weight: 600;
141
+ }
142
+
143
+ .gfa-topbar-link {
144
+ color: var(--gfa-accent);
145
+ white-space: nowrap;
146
+ }
147
+
148
+ .gfa-content {
149
+ flex: 1;
150
+ min-height: 0;
151
+ overflow: auto;
152
+ }
153
+
154
+ .gfa-screen {
155
+ max-width: 960px;
156
+ margin: 0 auto;
157
+ padding: 24px 16px;
158
+ }
159
+
160
+ .gfa-screen-header {
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: space-between;
164
+ gap: 16px;
165
+ margin-bottom: 16px;
166
+ }
167
+
168
+ .gfa-header-actions {
169
+ position: relative;
170
+ display: flex;
171
+ flex-wrap: wrap;
172
+ align-items: center;
173
+ gap: 8px;
174
+ }
175
+
176
+ /* "Published.", just under the Publish button, for a few seconds. */
177
+ .gfa-published {
178
+ position: fixed;
179
+ z-index: 1000;
180
+ width: max-content;
181
+ max-width: 320px;
182
+ margin: 0;
183
+ padding: 8px 14px;
184
+ border-radius: var(--gfa-radius);
185
+ background: var(--gfa-published-bg);
186
+ color: var(--gfa-published-text);
187
+ font-weight: 600;
188
+ box-shadow: 0 6px 20px rgb(0 0 0 / 0.18);
189
+ animation: gfa-published-in 150ms ease-out;
190
+ }
191
+
192
+ .gfa-published::before {
193
+ content: "✓ ";
194
+ }
195
+
196
+ @keyframes gfa-published-in {
197
+ from {
198
+ opacity: 0;
199
+ transform: translateY(-4px);
200
+ }
201
+ }
202
+
203
+ @media (prefers-reduced-motion: reduce) {
204
+ .gfa-published {
205
+ animation: none;
206
+ }
207
+ }
208
+
209
+ .gfa-screen-header h1,
210
+ .gfa-screen > h1 {
211
+ margin: 0;
212
+ font-size: 24px;
213
+ }
214
+
215
+ .gfa-section-title {
216
+ margin: 16px 0 0;
217
+ font-size: 17px;
218
+ }
219
+
220
+ .gfa-button {
221
+ display: inline-flex;
222
+ align-items: center;
223
+ justify-content: center;
224
+ gap: 6px;
225
+ min-height: 36px;
226
+ padding: 0 14px;
227
+ border-radius: var(--gfa-radius);
228
+ border: 1px solid var(--gfa-border);
229
+ font: inherit;
230
+ font-weight: 500;
231
+ text-decoration: none;
232
+ white-space: nowrap;
233
+ cursor: pointer;
234
+ }
235
+
236
+ .gfa-button:disabled {
237
+ opacity: 0.5;
238
+ cursor: not-allowed;
239
+ }
240
+
241
+ .gfa-button:focus-visible,
242
+ .gfa-input:focus-visible,
243
+ .gfa-nav a:focus-visible,
244
+ .gfa-tab:focus-visible {
245
+ outline: 2px solid var(--gfa-accent);
246
+ outline-offset: 2px;
247
+ }
248
+
249
+ .gfa-button-primary {
250
+ background: var(--gfa-accent);
251
+ border-color: var(--gfa-accent);
252
+ color: var(--gfa-accent-text);
253
+ }
254
+
255
+ .gfa-button-secondary {
256
+ background: var(--gfa-surface);
257
+ color: var(--gfa-text);
258
+ }
259
+
260
+ .gfa-button-ghost {
261
+ background: transparent;
262
+ border-color: transparent;
263
+ color: var(--gfa-text);
264
+ }
265
+
266
+ .gfa-button-ghost:hover:not(:disabled),
267
+ .gfa-button-secondary:hover:not(:disabled) {
268
+ background: var(--gfa-bg);
269
+ }
270
+
271
+ .gfa-button-danger {
272
+ background: var(--gfa-surface);
273
+ border-color: var(--gfa-danger-border);
274
+ color: var(--gfa-danger);
275
+ }
276
+
277
+ .gfa-table {
278
+ width: 100%;
279
+ border-collapse: collapse;
280
+ background: var(--gfa-surface);
281
+ border: 1px solid var(--gfa-border);
282
+ border-radius: var(--gfa-radius);
283
+ }
284
+
285
+ .gfa-table th,
286
+ .gfa-table td {
287
+ padding: 10px 12px;
288
+ border-bottom: 1px solid var(--gfa-border);
289
+ text-align: left;
290
+ vertical-align: middle;
291
+ }
292
+
293
+ .gfa-table th {
294
+ font-size: 13px;
295
+ font-weight: 600;
296
+ color: var(--gfa-muted);
297
+ }
298
+
299
+ .gfa-row-actions {
300
+ display: flex;
301
+ flex-wrap: wrap;
302
+ gap: 4px;
303
+ justify-content: flex-end;
304
+ }
305
+
306
+ .gfa-link-strong {
307
+ color: var(--gfa-text);
308
+ font-weight: 600;
309
+ }
310
+
311
+ .gfa-form {
312
+ display: flex;
313
+ flex-direction: column;
314
+ gap: 16px;
315
+ max-width: 640px;
316
+ }
317
+
318
+ .gfa-field {
319
+ display: flex;
320
+ flex-direction: column;
321
+ gap: 4px;
322
+ }
323
+
324
+ .gfa-label {
325
+ font-weight: 600;
326
+ font-size: 14px;
327
+ }
328
+
329
+ .gfa-hint {
330
+ margin: 0;
331
+ color: var(--gfa-muted);
332
+ font-size: 13px;
333
+ }
334
+
335
+ .gfa-error-text {
336
+ margin: 0;
337
+ color: var(--gfa-error-text);
338
+ font-size: 13px;
339
+ }
340
+
341
+ .gfa-input {
342
+ width: 100%;
343
+ min-height: 38px;
344
+ padding: 6px 10px;
345
+ border: 1px solid var(--gfa-input-border);
346
+ border-radius: var(--gfa-radius);
347
+ background: var(--gfa-surface);
348
+ color: var(--gfa-text);
349
+ font: inherit;
350
+ }
351
+
352
+ .gfa-input[aria-invalid="true"] {
353
+ border-color: var(--gfa-danger);
354
+ }
355
+
356
+ .gfa-code {
357
+ font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
358
+ font-size: 13px;
359
+ line-height: 1.6;
360
+ resize: vertical;
361
+ }
362
+
363
+ .gfa-checkbox {
364
+ display: flex;
365
+ align-items: center;
366
+ gap: 8px;
367
+ }
368
+
369
+ .gfa-color-grid {
370
+ display: grid;
371
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
372
+ gap: 12px 16px;
373
+ }
374
+
375
+ .gfa-color-input {
376
+ display: flex;
377
+ gap: 8px;
378
+ }
379
+
380
+ .gfa-color-input input[type="color"] {
381
+ width: 44px;
382
+ height: 38px;
383
+ padding: 2px;
384
+ border: 1px solid var(--gfa-input-border);
385
+ border-radius: var(--gfa-radius);
386
+ background: var(--gfa-surface);
387
+ flex-shrink: 0;
388
+ }
389
+
390
+ .gfa-tabs {
391
+ display: flex;
392
+ flex-wrap: wrap;
393
+ gap: 4px;
394
+ margin-bottom: 16px;
395
+ }
396
+
397
+ .gfa-notice {
398
+ margin: 0 0 12px;
399
+ padding: 10px 14px;
400
+ border-radius: var(--gfa-radius);
401
+ background: var(--gfa-surface);
402
+ border: 1px solid var(--gfa-border);
403
+ }
404
+
405
+ .gfa-notice p {
406
+ margin: 0 0 8px;
407
+ }
408
+
409
+ .gfa-notice-success {
410
+ background: var(--gfa-success-bg);
411
+ border-color: var(--gfa-success-border);
412
+ color: var(--gfa-success-text);
413
+ }
414
+
415
+ .gfa-notice-error {
416
+ background: var(--gfa-error-bg);
417
+ border-color: var(--gfa-danger-border);
418
+ color: var(--gfa-error-text);
419
+ }
420
+
421
+ .gfa-details summary {
422
+ cursor: pointer;
423
+ margin-bottom: 8px;
424
+ }
425
+
426
+ .gfa-details pre {
427
+ white-space: pre-wrap;
428
+ font-size: 12px;
429
+ margin: 0 0 8px;
430
+ }
431
+
432
+ .gfa-dialog {
433
+ width: min(520px, calc(100vw - 32px));
434
+ padding: 24px;
435
+ border: 0;
436
+ border-radius: 10px;
437
+ color: var(--gfa-text);
438
+ font:
439
+ 15px / 1.5 ui-sans-serif,
440
+ system-ui,
441
+ -apple-system,
442
+ "Segoe UI",
443
+ sans-serif;
444
+ box-shadow: 0 20px 50px rgb(15 23 42 / 0.25);
445
+ }
446
+
447
+ .gfa-dialog::backdrop {
448
+ background: rgb(15 23 42 / 0.4);
449
+ }
450
+
451
+ .gfa-dialog-title {
452
+ margin: 0 0 16px;
453
+ font-size: 20px;
454
+ }
455
+
456
+ .gfa-dialog-actions {
457
+ display: flex;
458
+ justify-content: flex-end;
459
+ gap: 8px;
460
+ margin-top: 8px;
461
+ }
462
+
463
+ .gfa-editor {
464
+ position: relative;
465
+ display: flex;
466
+ flex-direction: column;
467
+ height: 100%;
468
+ }
469
+
470
+ .gfa-editor-status {
471
+ position: absolute;
472
+ z-index: 10;
473
+ bottom: 16px;
474
+ left: 50%;
475
+ transform: translateX(-50%);
476
+ width: min(560px, calc(100% - 32px));
477
+ box-shadow: 0 8px 24px rgb(15 23 42 / 0.15);
478
+ }
479
+
480
+ .gfa-editor-status .gfa-notice {
481
+ margin: 0;
482
+ }
483
+
484
+ .gfa-layout-screen {
485
+ display: flex;
486
+ flex-direction: column;
487
+ height: 100%;
488
+ }
489
+
490
+ .gfa-layout-screen > .gfa-tabs {
491
+ margin: 0;
492
+ padding: 8px 16px;
493
+ background: var(--gfa-surface);
494
+ border-bottom: 1px solid var(--gfa-border);
495
+ }
496
+
497
+ .gfa-layout-screen > .gfa-editor {
498
+ flex: 1;
499
+ min-height: 0;
500
+ }
501
+
502
+ .gfa-split {
503
+ display: grid;
504
+ grid-template-columns: minmax(360px, 1fr) minmax(0, 1.2fr);
505
+ height: 100%;
506
+ }
507
+
508
+ .gfa-split-main {
509
+ padding: 24px;
510
+ overflow: auto;
511
+ }
512
+
513
+ .gfa-split-preview {
514
+ position: relative;
515
+ border-left: 1px solid var(--gfa-border);
516
+ background: var(--gfa-surface);
517
+ min-height: 0;
518
+ }
519
+
520
+ .gfa-preview {
521
+ position: absolute;
522
+ inset: 0;
523
+ overflow: hidden;
524
+ }
525
+
526
+ .gfa-preview iframe {
527
+ border: 0;
528
+ transform-origin: 0 0;
529
+ background: #fff;
530
+ }
531
+
532
+ .gfa-menus {
533
+ display: flex;
534
+ flex-direction: column;
535
+ gap: 16px;
536
+ max-width: 760px;
537
+ }
538
+
539
+ .gfa-menu {
540
+ display: flex;
541
+ flex-direction: column;
542
+ gap: 12px;
543
+ }
544
+
545
+ .gfa-menu-item {
546
+ padding: 12px;
547
+ background: var(--gfa-surface);
548
+ border: 1px solid var(--gfa-border);
549
+ border-radius: var(--gfa-radius);
550
+ }
551
+
552
+ .gfa-menu-children {
553
+ display: flex;
554
+ flex-direction: column;
555
+ gap: 8px;
556
+ margin: 8px 0 0 24px;
557
+ padding-left: 12px;
558
+ border-left: 2px solid var(--gfa-border);
559
+ }
560
+
561
+ .gfa-menu-children .gfa-button {
562
+ align-self: flex-start;
563
+ }
564
+
565
+ .gfa-link-row {
566
+ display: grid;
567
+ grid-template-columns: 1fr 1fr auto;
568
+ gap: 8px;
569
+ align-items: end;
570
+ }
571
+
572
+ .gfa-link-row-actions {
573
+ display: flex;
574
+ gap: 2px;
575
+ }
576
+
577
+ .gfa-menu-actions,
578
+ .gfa-inline-form {
579
+ display: flex;
580
+ gap: 8px;
581
+ align-items: end;
582
+ }
583
+
584
+ .gfa-inline-form .gfa-field {
585
+ flex: 1;
586
+ max-width: 320px;
587
+ }
588
+
589
+ .gfa-visually-hidden {
590
+ position: absolute;
591
+ width: 1px;
592
+ height: 1px;
593
+ overflow: hidden;
594
+ clip: rect(0 0 0 0);
595
+ white-space: nowrap;
596
+ }
597
+
598
+ @media (max-width: 900px) {
599
+ .gfa-split {
600
+ grid-template-columns: 1fr;
601
+ grid-template-rows: auto 480px;
602
+ height: auto;
603
+ }
604
+
605
+ .gfa-split-preview {
606
+ border-left: 0;
607
+ border-top: 1px solid var(--gfa-border);
608
+ }
609
+
610
+ .gfa-link-row {
611
+ grid-template-columns: 1fr;
612
+ }
613
+ }
614
+
615
+ .gfa-sign-in {
616
+ max-width: 560px;
617
+ margin: 48px auto;
618
+ padding: 32px;
619
+ background: var(--gfa-surface);
620
+ border: 1px solid var(--gfa-border);
621
+ border-radius: 10px;
622
+ color: var(--gfa-text);
623
+ font:
624
+ 15px / 1.5 ui-sans-serif,
625
+ system-ui,
626
+ -apple-system,
627
+ "Segoe UI",
628
+ sans-serif;
629
+ }
630
+
631
+ .gfa-sign-in h1 {
632
+ margin: 0 0 8px;
633
+ font-size: 24px;
634
+ }
635
+
636
+ .gfa-sign-in-token {
637
+ margin-top: 24px;
638
+ }
639
+
640
+ .gfa-sign-in-token summary {
641
+ cursor: pointer;
642
+ font-weight: 600;
643
+ margin-bottom: 12px;
644
+ }
645
+
646
+ .gfa-steps {
647
+ margin: 0;
648
+ padding-left: 20px;
649
+ }
650
+
651
+ .gfa-steps > li + li {
652
+ margin-top: 16px;
653
+ }
654
+
655
+ .gfa-steps p {
656
+ margin: 0 0 8px;
657
+ }
658
+
659
+ .gfa-token-links {
660
+ margin: 0 0 8px;
661
+ padding-left: 18px;
662
+ }
663
+
664
+ .gfa-token-links a {
665
+ color: var(--gfa-accent);
666
+ font-weight: 600;
667
+ }
668
+
669
+ .gfa-block {
670
+ display: block;
671
+ }
672
+
673
+ .gfa-account {
674
+ display: flex;
675
+ align-items: center;
676
+ gap: 8px;
677
+ white-space: nowrap;
678
+ }
679
+
680
+ .gfa-account img {
681
+ border-radius: 50%;
682
+ }
683
+
684
+ .gfa-deploy {
685
+ font-size: 13px;
686
+ padding: 4px 10px;
687
+ border-radius: 999px;
688
+ white-space: nowrap;
689
+ background: var(--gfa-bg);
690
+ color: var(--gfa-muted);
691
+ }
692
+
693
+ .gfa-deploy-live {
694
+ background: var(--gfa-success-bg);
695
+ color: var(--gfa-success-text);
696
+ }
697
+
698
+ .gfa-deploy-failed {
699
+ background: var(--gfa-error-bg);
700
+ color: var(--gfa-error-text);
701
+ }
702
+
703
+ .gfa-deploy a {
704
+ color: inherit;
705
+ }
706
+
707
+ .gfa-tabs-title {
708
+ align-self: center;
709
+ margin: 0 8px 0 4px;
710
+ font-weight: 600;
711
+ }
712
+
713
+ .gfa-layout-body {
714
+ flex: 1;
715
+ min-height: 0;
716
+ overflow: auto;
717
+ }
718
+
719
+ .gfa-layout-body > .gfa-editor {
720
+ height: 100%;
721
+ }
722
+
723
+ .gfa-editor-puck {
724
+ flex: 1;
725
+ min-height: 0;
726
+ }
727
+
728
+ .gfa-editor-notice {
729
+ padding: 8px 16px;
730
+ background: var(--gfa-surface);
731
+ border-bottom: 1px solid var(--gfa-border);
732
+ font-size: 14px;
733
+ }
734
+
735
+ .gfa-template-help p {
736
+ display: inline;
737
+ margin: 0 8px 0 0;
738
+ color: var(--gfa-muted);
739
+ }
740
+
741
+ .gfa-template-help ul {
742
+ display: inline;
743
+ margin: 0;
744
+ padding: 0;
745
+ list-style: none;
746
+ }
747
+
748
+ .gfa-template-help-item {
749
+ display: inline-block;
750
+ margin: 2px 12px 2px 0;
751
+ }
752
+
753
+ .gfa-template-help code {
754
+ padding: 1px 4px;
755
+ border-radius: 4px;
756
+ background: var(--gfa-bg);
757
+ border: 1px solid var(--gfa-border);
758
+ }
759
+
760
+ .gfa-field-editor {
761
+ display: flex;
762
+ flex-direction: column;
763
+ gap: 12px;
764
+ }
765
+
766
+ .gfa-field-editor-row {
767
+ display: grid;
768
+ grid-template-columns: 1fr 1fr auto;
769
+ gap: 8px;
770
+ align-items: start;
771
+ }
772
+
773
+ .gfa-choices {
774
+ display: flex;
775
+ flex-direction: column;
776
+ gap: 8px;
777
+ margin: 0;
778
+ padding: 0;
779
+ border: 0;
780
+ }
781
+
782
+ .gfa-choices > .gfa-button {
783
+ align-self: flex-start;
784
+ }
785
+
786
+ /* Inputs and help text inside Puck's sidebar, for entry fields Puck has no input of its own for. */
787
+ .gfa-puck-input {
788
+ box-sizing: border-box;
789
+ width: 100%;
790
+ padding: 10px 12px;
791
+ border: 1px solid var(--puck-color-grey-09, #dcdcdc);
792
+ border-radius: 4px;
793
+ background: var(--puck-color-white, #fff);
794
+ font: inherit;
795
+ font-size: 14px;
796
+ }
797
+
798
+ .gfa-puck-hint {
799
+ margin: 6px 0 0;
800
+ color: var(--gfa-muted);
801
+ font-size: 13px;
802
+ }
803
+
804
+ .gfa-ai {
805
+ display: flex;
806
+ flex-direction: column;
807
+ gap: 12px;
808
+ padding: 16px;
809
+ font:
810
+ 14px / 1.5 ui-sans-serif,
811
+ system-ui,
812
+ -apple-system,
813
+ "Segoe UI",
814
+ sans-serif;
815
+ }
816
+
817
+ .gfa-ai,
818
+ .gfa-ai * {
819
+ box-sizing: border-box;
820
+ }
821
+
822
+ .gfa-ai-title {
823
+ margin: 0;
824
+ font-size: 16px;
825
+ }
826
+
827
+ .gfa-ai textarea {
828
+ resize: vertical;
829
+ }
830
+
831
+ .gfa-ai-actions {
832
+ display: flex;
833
+ gap: 8px;
834
+ }
835
+
836
+ .gfa-ai-service summary {
837
+ cursor: pointer;
838
+ font-weight: 600;
839
+ }
840
+
841
+ .gfa-ai-settings {
842
+ margin-top: 12px;
843
+ }
844
+
845
+ .gfa-screen-wide {
846
+ max-width: 1200px;
847
+ }
848
+
849
+ .gfa-media-search {
850
+ max-width: 320px;
851
+ margin-bottom: 16px;
852
+ }
853
+
854
+ .gfa-dropzone {
855
+ position: relative;
856
+ min-height: 160px;
857
+ padding: 12px;
858
+ border: 2px dashed transparent;
859
+ border-radius: var(--gfa-radius);
860
+ }
861
+
862
+ .gfa-dropzone-over {
863
+ border-color: var(--gfa-accent);
864
+ background: rgb(37 99 235 / 0.05);
865
+ }
866
+
867
+ .gfa-dropzone-hint {
868
+ position: absolute;
869
+ inset: auto 0 12px;
870
+ text-align: center;
871
+ font-weight: 600;
872
+ color: var(--gfa-accent);
873
+ }
874
+
875
+ .gfa-media-grid {
876
+ display: grid;
877
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
878
+ gap: 16px;
879
+ margin: 0;
880
+ padding: 0;
881
+ list-style: none;
882
+ }
883
+
884
+ .gfa-media-picker {
885
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
886
+ max-height: 50vh;
887
+ overflow: auto;
888
+ }
889
+
890
+ .gfa-media-card {
891
+ display: flex;
892
+ flex-direction: column;
893
+ gap: 8px;
894
+ padding: 8px;
895
+ background: var(--gfa-surface);
896
+ border: 1px solid var(--gfa-border);
897
+ border-radius: var(--gfa-radius);
898
+ }
899
+
900
+ .gfa-media-pick {
901
+ width: 100%;
902
+ font: inherit;
903
+ text-align: left;
904
+ cursor: pointer;
905
+ }
906
+
907
+ .gfa-media-pick:hover,
908
+ .gfa-media-pick:focus-visible {
909
+ border-color: var(--gfa-accent);
910
+ }
911
+
912
+ .gfa-media-thumb {
913
+ display: block;
914
+ width: 100%;
915
+ aspect-ratio: 4 / 3;
916
+ object-fit: contain;
917
+ background: repeating-conic-gradient(var(--gfa-checker) 0 25%, var(--gfa-checker-alt) 0 50%) 50% / 16px 16px;
918
+ border-radius: 4px;
919
+ }
920
+
921
+ .gfa-media-file {
922
+ display: grid;
923
+ place-items: center;
924
+ font-weight: 700;
925
+ color: var(--gfa-muted);
926
+ background: var(--gfa-bg);
927
+ }
928
+
929
+ .gfa-media-name {
930
+ overflow: hidden;
931
+ font-size: 13px;
932
+ text-overflow: ellipsis;
933
+ white-space: nowrap;
934
+ }
935
+
936
+ .gfa-media-actions {
937
+ display: flex;
938
+ flex-wrap: wrap;
939
+ gap: 4px;
940
+ }
941
+
942
+ .gfa-media-chooser {
943
+ display: flex;
944
+ align-items: center;
945
+ gap: 8px;
946
+ margin-top: 8px;
947
+ }
948
+
949
+ .gfa-media-chooser .gfa-media-chosen {
950
+ width: 72px;
951
+ flex-shrink: 0;
952
+ }
953
+
954
+ .gfa-media-chooser-actions {
955
+ display: flex;
956
+ flex-wrap: wrap;
957
+ gap: 4px;
958
+ }
959
+
960
+ .gfa-media-puck-field .gfa-media-chooser {
961
+ margin-top: 0;
962
+ padding: 0 16px 16px;
963
+ font:
964
+ 14px / 1.5 ui-sans-serif,
965
+ system-ui,
966
+ sans-serif;
967
+ }
968
+
969
+ .gfa-media-actions .gfa-button,
970
+ .gfa-media-chooser .gfa-button {
971
+ min-height: 30px;
972
+ padding: 0 10px;
973
+ font-size: 13px;
974
+ }
975
+
976
+ .gfa-font-picker {
977
+ position: relative;
978
+ }
979
+
980
+ .gfa-font-list {
981
+ position: absolute;
982
+ top: 100%;
983
+ left: 0;
984
+ right: 0;
985
+ z-index: 20;
986
+ max-height: 320px;
987
+ margin: 4px 0 0;
988
+ padding: 4px;
989
+ overflow-y: auto;
990
+ list-style: none;
991
+ border: 1px solid var(--gfa-border);
992
+ border-radius: var(--gfa-radius);
993
+ background: var(--gfa-surface);
994
+ box-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
995
+ }
996
+
997
+ .gfa-font-option {
998
+ display: flex;
999
+ align-items: baseline;
1000
+ justify-content: space-between;
1001
+ gap: 12px;
1002
+ padding: 8px 10px;
1003
+ border-radius: 4px;
1004
+ font-size: 17px;
1005
+ cursor: pointer;
1006
+ }
1007
+
1008
+ .gfa-font-option-active {
1009
+ background: var(--gfa-bg);
1010
+ }
1011
+
1012
+ .gfa-font-option[aria-selected="true"] {
1013
+ font-weight: 600;
1014
+ }
1015
+
1016
+ .gfa-font-category,
1017
+ .gfa-font-empty {
1018
+ color: var(--gfa-muted);
1019
+ font-size: 13px;
1020
+ font-weight: 400;
1021
+ }
1022
+
1023
+ .gfa-font-empty {
1024
+ padding: 8px 10px;
1025
+ }
1026
+
1027
+ .gfa-block-list {
1028
+ display: flex;
1029
+ flex-direction: column;
1030
+ max-width: 720px;
1031
+ margin: 0;
1032
+ padding: 0;
1033
+ list-style: none;
1034
+ border: 1px solid var(--gfa-border);
1035
+ border-radius: var(--gfa-radius);
1036
+ background: var(--gfa-surface);
1037
+ }
1038
+
1039
+ .gfa-block-row {
1040
+ display: flex;
1041
+ align-items: center;
1042
+ justify-content: space-between;
1043
+ gap: 12px;
1044
+ padding: 8px 12px;
1045
+ }
1046
+
1047
+ .gfa-block-row + .gfa-block-row {
1048
+ border-top: 1px solid var(--gfa-border);
1049
+ }
1050
+
1051
+ .gfa-block-grid {
1052
+ display: grid;
1053
+ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
1054
+ gap: 16px;
1055
+ margin: 8px 0 0;
1056
+ padding: 0;
1057
+ list-style: none;
1058
+ }
1059
+
1060
+ .gfa-block-card {
1061
+ display: flex;
1062
+ flex-direction: column;
1063
+ align-items: flex-start;
1064
+ gap: 12px;
1065
+ padding: 16px;
1066
+ border: 1px solid var(--gfa-border);
1067
+ border-radius: var(--gfa-radius);
1068
+ background: var(--gfa-surface);
1069
+ }
1070
+
1071
+ .gfa-block-image {
1072
+ width: 100%;
1073
+ aspect-ratio: 16 / 9;
1074
+ object-fit: cover;
1075
+ object-position: top;
1076
+ border: 1px solid var(--gfa-border);
1077
+ border-radius: 4px;
1078
+ }
1079
+
1080
+ .gfa-block-text {
1081
+ flex: 1;
1082
+ }
1083
+
1084
+ .gfa-block-title {
1085
+ display: flex;
1086
+ flex-wrap: wrap;
1087
+ align-items: center;
1088
+ gap: 8px;
1089
+ margin: 0 0 4px;
1090
+ font-size: 16px;
1091
+ }
1092
+
1093
+ .gfa-badge {
1094
+ padding: 1px 8px;
1095
+ border-radius: 999px;
1096
+ background: var(--gfa-success-bg);
1097
+ color: var(--gfa-success-text);
1098
+ font-size: 12px;
1099
+ font-weight: 600;
1100
+ }
1101
+
1102
+ .gfa-block-added {
1103
+ color: var(--gfa-muted);
1104
+ font-size: 14px;
1105
+ font-weight: 600;
1106
+ }
1107
+
1108
+ .gfa-markdown-tabs {
1109
+ display: flex;
1110
+ gap: 4px;
1111
+ margin-bottom: 8px;
1112
+ }
1113
+
1114
+ .gfa-markdown-source {
1115
+ width: 100%;
1116
+ min-height: 24rem;
1117
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
1118
+ font-size: 13px;
1119
+ line-height: 1.5;
1120
+ resize: vertical;
1121
+ }
1122
+
1123
+ /*
1124
+ * Items have no blocks, so the item editor leaves out Puck's Blocks and Outline
1125
+ * buttons, always the first two in its side bar (after the legacy side bar's,
1126
+ * which only shows on wide screens, when the AI assistant is off).
1127
+ */
1128
+ .gfa-editor-entry.gfa-editor-ai nav[class*="_Nav_"] > ul > li:nth-child(-n + 2),
1129
+ .gfa-editor-entry:not(.gfa-editor-ai) nav[class*="_Nav_"] > ul > li:nth-child(n + 2):nth-child(-n + 3) {
1130
+ display: none;
1131
+ }
1132
+
1133
+ /* The formatted editor is as tall as the Markdown one. */
1134
+ .gfa-markdown-formatted [class*="_RichTextEditor--editor_"] {
1135
+ min-height: 24rem;
1136
+ }
1137
+
1138
+ .gfa-block-pending {
1139
+ display: inline-flex;
1140
+ align-items: center;
1141
+ gap: 8px;
1142
+ }
1143
+
1144
+ /* Blocks marked to add or remove, published together. */
1145
+ .gfa-block-pending-bar {
1146
+ position: sticky;
1147
+ top: 0;
1148
+ z-index: 5;
1149
+ display: flex;
1150
+ flex-wrap: wrap;
1151
+ align-items: center;
1152
+ justify-content: space-between;
1153
+ gap: 12px;
1154
+ margin: 16px 0;
1155
+ padding: 12px 16px;
1156
+ background: var(--gfa-surface);
1157
+ border: 1px solid var(--gfa-accent);
1158
+ border-radius: var(--gfa-radius);
1159
+ }
1160
+
1161
+ .gfa-block-pending-bar ul {
1162
+ margin: 4px 0 0;
1163
+ padding-left: 20px;
1164
+ }
1165
+
1166
+ .gfa-block-pending-bar .gfa-dialog-actions {
1167
+ margin: 0;
1168
+ }
1169
+
1170
+ .gfa-code-editor .cm-editor {
1171
+ max-height: 70vh;
1172
+ }
1173
+
1174
+ /*
1175
+ * Puck's colors, dark when the admin panel is: its scales run the other way
1176
+ * round, so its light tints become dark ones. They override Puck's own, which
1177
+ * are in its puck-tokens layer. The canvas shows the site in its own colors.
1178
+ */
1179
+ :root {
1180
+ --puck-color-grey-01: light-dark(#181818, #f8fafc);
1181
+ --puck-color-grey-02: light-dark(#292929, #f1f5f9);
1182
+ --puck-color-grey-03: light-dark(#404040, #e2e8f0);
1183
+ --puck-color-grey-04: light-dark(#5a5a5a, #cbd5e1);
1184
+ --puck-color-grey-05: light-dark(#767676, #94a3b8);
1185
+ --puck-color-grey-06: light-dark(#949494, #7c8aa0);
1186
+ --puck-color-grey-07: light-dark(#ababab, #64748b);
1187
+ --puck-color-grey-08: light-dark(#c3c3c3, #475569);
1188
+ --puck-color-grey-09: light-dark(#dcdcdc, #334155);
1189
+ --puck-color-grey-10: light-dark(#efefef, #1e293b);
1190
+ --puck-color-grey-11: light-dark(#f5f5f5, #172033);
1191
+ --puck-color-grey-12: light-dark(#fafafa, #0f172a);
1192
+ --puck-color-azure-01: light-dark(#00175d, #eff6ff);
1193
+ --puck-color-azure-02: light-dark(#002c77, #dbeafe);
1194
+ --puck-color-azure-03: light-dark(#014292, #bfdbfe);
1195
+ --puck-color-azure-04: light-dark(#0158ad, #93c5fd);
1196
+ --puck-color-azure-05: light-dark(#3479be, #60a5fa);
1197
+ --puck-color-azure-06: light-dark(#6499cf, #3b82f6);
1198
+ --puck-color-azure-07: light-dark(#88b0da, #2563eb);
1199
+ --puck-color-azure-08: light-dark(#abc7e5, #1d4ed8);
1200
+ --puck-color-azure-09: light-dark(#cfdff0, #1e3a8a);
1201
+ --puck-color-azure-10: light-dark(#e7eef7, #172554);
1202
+ --puck-color-azure-11: light-dark(#f3f6fb, #111c3d);
1203
+ --puck-color-azure-12: light-dark(#f7faff, #0f1a33);
1204
+ --puck-color-rose-01: light-dark(#4a001c, #fef8fc);
1205
+ --puck-color-rose-02: light-dark(#670833, #faf4f8);
1206
+ --puck-color-rose-03: light-dark(#87114c, #f6eaf1);
1207
+ --puck-color-rose-04: light-dark(#a81a66, #efd6e3);
1208
+ --puck-color-rose-05: light-dark(#bc5089, #e3b8cf);
1209
+ --puck-color-rose-06: light-dark(#cc7ca5, #d89aba);
1210
+ --puck-color-rose-07: light-dark(#d89aba, #cc7ca5);
1211
+ --puck-color-rose-08: light-dark(#e3b8cf, #bc5089);
1212
+ --puck-color-rose-09: light-dark(#efd6e3, #a81a66);
1213
+ --puck-color-rose-10: light-dark(#f6eaf1, #87114c);
1214
+ --puck-color-rose-11: light-dark(#faf4f8, #670833);
1215
+ --puck-color-rose-12: light-dark(#fef8fc, #4a001c);
1216
+ --puck-color-green-01: light-dark(#002000, #f3fcf4);
1217
+ --puck-color-green-02: light-dark(#043604, #eff8f0);
1218
+ --puck-color-green-03: light-dark(#084e08, #ddf3e0);
1219
+ --puck-color-green-04: light-dark(#0c680c, #b8e8bf);
1220
+ --puck-color-green-05: light-dark(#1d882f, #7dd78b);
1221
+ --puck-color-green-06: light-dark(#2faa53, #56c16f);
1222
+ --puck-color-green-07: light-dark(#56c16f, #2faa53);
1223
+ --puck-color-green-08: light-dark(#7dd78b, #1d882f);
1224
+ --puck-color-green-09: light-dark(#b8e8bf, #0c680c);
1225
+ --puck-color-green-10: light-dark(#ddf3e0, #084e08);
1226
+ --puck-color-green-11: light-dark(#eff8f0, #043604);
1227
+ --puck-color-green-12: light-dark(#f3fcf4, #002000);
1228
+ --puck-color-yellow-01: light-dark(#211000, #fcfaf0);
1229
+ --puck-color-yellow-02: light-dark(#362700, #f9f7ed);
1230
+ --puck-color-yellow-03: light-dark(#4c4000, #f3efd9);
1231
+ --puck-color-yellow-04: light-dark(#645a00, #e6deb1);
1232
+ --puck-color-yellow-05: light-dark(#877614, #d4c474);
1233
+ --puck-color-yellow-06: light-dark(#ab9429, #bfac4e);
1234
+ --puck-color-yellow-07: light-dark(#bfac4e, #ab9429);
1235
+ --puck-color-yellow-08: light-dark(#d4c474, #877614);
1236
+ --puck-color-yellow-09: light-dark(#e6deb1, #645a00);
1237
+ --puck-color-yellow-10: light-dark(#f3efd9, #4c4000);
1238
+ --puck-color-yellow-11: light-dark(#f9f7ed, #362700);
1239
+ --puck-color-yellow-12: light-dark(#fcfaf0, #211000);
1240
+ --puck-color-red-01: light-dark(#4c0000, #fff9fa);
1241
+ --puck-color-red-02: light-dark(#6a0a10, #faf4f5);
1242
+ --puck-color-red-03: light-dark(#8a1422, #f6eaec);
1243
+ --puck-color-red-04: light-dark(#ac1f35, #efd7db);
1244
+ --puck-color-red-05: light-dark(#bf5366, #e4b9c2);
1245
+ --puck-color-red-06: light-dark(#ce7e8e, #d99ca8);
1246
+ --puck-color-red-07: light-dark(#d99ca8, #ce7e8e);
1247
+ --puck-color-red-08: light-dark(#e4b9c2, #bf5366);
1248
+ --puck-color-red-09: light-dark(#efd7db, #ac1f35);
1249
+ --puck-color-red-10: light-dark(#f6eaec, #8a1422);
1250
+ --puck-color-red-11: light-dark(#faf4f5, #6a0a10);
1251
+ --puck-color-red-12: light-dark(#fff9fa, #4c0000);
1252
+ --puck-color-black: light-dark(#000000, #f1f5f9);
1253
+ --puck-color-white: light-dark(#ffffff, #111827);
1254
+ }
1255
+
1256
+ .gfa-theme-menu {
1257
+ min-height: 32px;
1258
+ padding: 4px 8px;
1259
+ border: 1px solid var(--gfa-input-border);
1260
+ border-radius: var(--gfa-radius);
1261
+ background: var(--gfa-surface);
1262
+ color: var(--gfa-text);
1263
+ font: inherit;
1264
+ font-size: 14px;
1265
+ }
1266
+
1267
+ /* The Domain screen's records: values such as verification codes are long and unbroken. */
1268
+ .gfa-records code {
1269
+ overflow-wrap: anywhere;
1270
+ }
1271
+
1272
+ /* Version history */
1273
+ .gfa-versions-screen {
1274
+ max-width: 1400px;
1275
+ }
1276
+
1277
+ .gfa-versions-layout {
1278
+ display: grid;
1279
+ grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
1280
+ gap: 24px;
1281
+ align-items: start;
1282
+ }
1283
+
1284
+ .gfa-versions {
1285
+ list-style: none;
1286
+ margin: 12px 0;
1287
+ padding: 0;
1288
+ display: grid;
1289
+ gap: 6px;
1290
+ }
1291
+
1292
+ .gfa-version {
1293
+ display: grid;
1294
+ gap: 2px;
1295
+ width: 100%;
1296
+ padding: 8px 12px;
1297
+ border: 1px solid var(--gfa-border);
1298
+ border-radius: var(--gfa-radius);
1299
+ background: var(--gfa-bg);
1300
+ color: var(--gfa-text);
1301
+ font: inherit;
1302
+ text-align: left;
1303
+ cursor: pointer;
1304
+ }
1305
+
1306
+ .gfa-version[aria-pressed="true"] {
1307
+ border-color: var(--gfa-accent);
1308
+ background: var(--gfa-current-bg);
1309
+ }
1310
+
1311
+ .gfa-version-message {
1312
+ font-weight: 600;
1313
+ }
1314
+
1315
+ .gfa-version-detail {
1316
+ display: grid;
1317
+ gap: 12px;
1318
+ }
1319
+
1320
+ .gfa-version-preview {
1321
+ position: relative;
1322
+ height: 70vh;
1323
+ border: 1px solid var(--gfa-border);
1324
+ border-radius: var(--gfa-radius);
1325
+ overflow: hidden;
1326
+ }
1327
+
1328
+ @media (max-width: 900px) {
1329
+ .gfa-versions-layout {
1330
+ grid-template-columns: 1fr;
1331
+ }
1332
+ }
1333
+
1334
+ /* Editors */
1335
+ .gfa-editor-person {
1336
+ display: grid;
1337
+ gap: 2px;
1338
+ }
1339
+
1340
+ .gfa-owner-token {
1341
+ padding: 16px;
1342
+ border: 1px solid var(--gfa-border);
1343
+ border-radius: var(--gfa-radius);
1344
+ }
1345
+
1346
+ .gfa-owner-token ol {
1347
+ margin: 0;
1348
+ padding-left: 20px;
1349
+ }
1350
+
1351
+ /* Failed rebuilds */
1352
+ .gfa-deploy .gfa-deploy-why {
1353
+ padding: 0 4px;
1354
+ font-size: inherit;
1355
+ text-decoration: underline;
1356
+ }
1357
+
1358
+ .gfa-build-problem {
1359
+ display: grid;
1360
+ gap: 8px;
1361
+ max-width: 560px;
1362
+ }
1363
+
1364
+ .gfa-build-problem p {
1365
+ margin: 0;
1366
+ }
1367
+
1368
+ /* Releases updates skip, each with a way to allow it again. */
1369
+ .gfa-update-skipped {
1370
+ list-style: none;
1371
+ margin: 0;
1372
+ padding: 0;
1373
+ display: grid;
1374
+ gap: 0.25rem;
1375
+ }
1376
+
1377
+ .gfa-update-skip {
1378
+ display: flex;
1379
+ align-items: center;
1380
+ gap: 0.75rem;
1381
+ }
1382
+
1383
+ /* Choosing what a new collection starts with. */
1384
+ .gfa-choice-group {
1385
+ display: flex;
1386
+ flex-direction: column;
1387
+ gap: 6px;
1388
+ margin: 0;
1389
+ padding: 0;
1390
+ border: 0;
1391
+ }
1392
+
1393
+ /* An event's dates, times and repeats, in an item's fields. */
1394
+ .gfa-event-field {
1395
+ display: flex;
1396
+ flex-direction: column;
1397
+ gap: 10px;
1398
+ min-width: 0;
1399
+ margin: 0;
1400
+ padding: 0;
1401
+ border: 0;
1402
+ }
1403
+
1404
+ .gfa-event-row {
1405
+ display: flex;
1406
+ flex-wrap: wrap;
1407
+ align-items: flex-end;
1408
+ gap: 8px;
1409
+ }
1410
+
1411
+ .gfa-event-part {
1412
+ display: flex;
1413
+ flex-direction: column;
1414
+ gap: 4px;
1415
+ font-size: 13px;
1416
+ color: var(--gfa-muted);
1417
+ }
1418
+
1419
+ .gfa-event-row > .gfa-event-part {
1420
+ flex: 1 1 140px;
1421
+ }
1422
+
1423
+ .gfa-event-repeat {
1424
+ display: flex;
1425
+ flex-direction: column;
1426
+ gap: 10px;
1427
+ padding-left: 12px;
1428
+ border-left: 2px solid var(--gfa-border);
1429
+ }
1430
+
1431
+ .gfa-event-interval input {
1432
+ max-width: 6rem;
1433
+ }
1434
+
1435
+ .gfa-tags-field {
1436
+ display: flex;
1437
+ flex-wrap: wrap;
1438
+ gap: 4px 16px;
1439
+ margin: 0;
1440
+ padding: 0;
1441
+ border: 0;
1442
+ }
1443
+
1444
+ .gfa-event-days {
1445
+ display: flex;
1446
+ flex-wrap: wrap;
1447
+ gap: 4px 12px;
1448
+ margin: 0;
1449
+ padding: 0;
1450
+ border: 0;
1451
+ font-size: 13px;
1452
+ }
1453
+
1454
+ .gfa-event-days legend {
1455
+ margin-bottom: 4px;
1456
+ color: var(--gfa-muted);
1457
+ }
1458
+
1459
+ .gfa-event-skips {
1460
+ display: flex;
1461
+ flex-direction: column;
1462
+ gap: 2px;
1463
+ margin: 0;
1464
+ padding: 0;
1465
+ list-style: none;
1466
+ color: var(--gfa-text);
1467
+ }
1468
+
1469
+ .gfa-event-skip {
1470
+ display: flex;
1471
+ align-items: center;
1472
+ justify-content: space-between;
1473
+ gap: 8px;
1474
+ }