@povio/ui 5.0.0-rc.3 → 5.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +6 -2
  2. package/dist/{Breadcrumbs-CbKzAq1v.js → Breadcrumbs-FF8hMfXd.js} +1 -1
  3. package/dist/{Calendar-CVSQH-rC.js → Calendar-BTjajO6i.js} +6 -136
  4. package/dist/{Checkbox-BU0d702K.js → Checkbox-CV1ILXXO.js} +1 -1
  5. package/dist/{CheckboxCheckmark-usHsolNj.js → CheckboxCheckmark-CpC3wlMs.js} +1 -1
  6. package/dist/{ComponentGallery-DIFeJqGx.js → ComponentGallery-BWiPGUL8.js} +1343 -206
  7. package/dist/{DatePicker-D95gDPhg.js → DatePicker-DOLL7mkc.js} +12 -12
  8. package/dist/{DatePickerInput-CX6NYim4.js → DatePickerInput-BLBcySA2.js} +8 -7
  9. package/dist/{DateRangePicker-_uTQk_ae.js → DateRangePicker-BF-1CztH.js} +13 -185
  10. package/dist/{DateTimePicker-BB058Z34.js → DateTimePicker-Cj0qvJUz.js} +12 -12
  11. package/dist/{FileInput-C0-6bw4w.js → FileInput-Br5DQaGQ.js} +3 -2
  12. package/dist/{FileTrigger-CDXcQthK.js → FileTrigger-Cthk5_Wp.js} +1 -30
  13. package/dist/{FileUpload-DDpYMn8f.js → FileUpload--7ub3EZO.js} +3 -2
  14. package/dist/{FormField-U_-d4V_g.js → FormField-B99dLt8o.js} +1 -1
  15. package/dist/{FormFieldHeaderTooltip-DXbuu88v.js → FormFieldHeaderTooltip-BV2Ju4oB.js} +1 -1
  16. package/dist/{InlineTooltipWrapper-Bpmd--e7.js → InlineTooltipWrapper-BpApaGXV.js} +1 -1
  17. package/dist/{InputItem-D-KuiNSc.js → InputItem-CIxbTxZu.js} +10 -10
  18. package/dist/{Inputs-j3JmcLWR.js → Inputs-DJSKiaWY.js} +1 -1
  19. package/dist/NumberFormatter-CLDS_LRZ.js +265 -0
  20. package/dist/{NumberRangeInput-C-8U05wF.js → NumberRangeInput-B8-LHfg3.js} +6 -5
  21. package/dist/{RadioGroup-B7_pNwn9.js → RadioGroup-DOw3PRoX.js} +1 -1
  22. package/dist/{RichTextEditor-D9-B1Cze.js → RichTextEditor-D4yN7Wj7.js} +2 -2
  23. package/dist/{Select-CkujlTjm.js → Select-UR0ec2Ux.js} +2 -2
  24. package/dist/{Slider-BHPl0OPy.js → Slider-CzEmKYBF.js} +1 -1
  25. package/dist/{Table-BDNSuEWc.js → Table-piX1SWvN.js} +1 -1
  26. package/dist/{TextArea-DqHDiRGJ.js → TextArea-D8WkKsGn.js} +3 -3
  27. package/dist/{TimePicker-DQ6JCkGB.js → TimePicker-C4taAOFQ.js} +10 -9
  28. package/dist/{ToggleGroup-DX0VYXwP.js → ToggleGroup-DOk27fgI.js} +5 -66
  29. package/dist/{Tooltip-B9DKcYvr.js → Tooltip-CpG1nz7Y.js} +2 -2
  30. package/dist/{TooltipWrapper-DznDgVJB.js → TooltipWrapper-3jyN0Wss.js} +1 -1
  31. package/dist/components/autocomplete.js +2 -2
  32. package/dist/components/breadcrumbs.js +1 -1
  33. package/dist/components/checkbox-group.js +3 -3
  34. package/dist/components/checkbox.js +1 -1
  35. package/dist/components/date-picker.js +1 -1
  36. package/dist/components/date-range-picker.js +1 -1
  37. package/dist/components/date-time-picker.js +1 -1
  38. package/dist/components/file-input.js +1 -1
  39. package/dist/components/file-upload-container.js +1 -1
  40. package/dist/components/file-upload.js +1 -1
  41. package/dist/components/form-field.js +1 -1
  42. package/dist/components/icon-button.js +1 -1
  43. package/dist/components/input.js +4 -4
  44. package/dist/components/number-field.js +7 -6
  45. package/dist/components/number-range-input.js +1 -1
  46. package/dist/components/pagination.js +32 -28
  47. package/dist/components/query-autocomplete.js +1 -1
  48. package/dist/components/query-select.js +2 -2
  49. package/dist/components/radio-group.js +1 -1
  50. package/dist/components/select.js +1 -1
  51. package/dist/components/slider.js +1 -1
  52. package/dist/components/text-area.js +1 -1
  53. package/dist/components/time-picker.js +1 -1
  54. package/dist/components/toggle-group.js +1 -1
  55. package/dist/components/tooltip-ellipsis.js +1 -1
  56. package/dist/components/tooltip.js +1 -1
  57. package/dist/config/ui-configurator-theme.js +1 -1
  58. package/dist/config/ui-configurator.js +1081 -257
  59. package/dist/config/ui-router.js +1 -1
  60. package/dist/{datePickerValue.utils-CUzkWie8.js → datePickerValue.utils-DCgoSrP3.js} +5 -5
  61. package/dist/hooks/use-filters.js +1 -1
  62. package/dist/index.js +15 -15
  63. package/dist/numberStatic.utils-BX50PSee.js +421 -0
  64. package/dist/rhf/checkbox.js +1 -1
  65. package/dist/rhf/date-picker.js +1 -1
  66. package/dist/rhf/date-range-picker.js +1 -1
  67. package/dist/rhf/date-time-picker.js +1 -1
  68. package/dist/rhf/file-input.js +1 -1
  69. package/dist/rhf/file-upload.js +1 -1
  70. package/dist/rhf/number-range-input.js +1 -1
  71. package/dist/rhf/radio-group.js +1 -1
  72. package/dist/rhf/rich-text-editor.js +1 -1
  73. package/dist/rhf/select.js +1 -1
  74. package/dist/rhf/slider.js +1 -1
  75. package/dist/rhf/text-area.js +1 -1
  76. package/dist/rhf/time-picker.js +1 -1
  77. package/dist/rhf/toggle-group.js +1 -1
  78. package/dist/rhf.js +15 -15
  79. package/dist/rich-text-editor.js +1 -1
  80. package/dist/{router.context-B0jTMtE0.js → router.context-B4FvsTim.js} +2 -2
  81. package/dist/staticDateTimeSegments-DtU63_dw.js +1764 -0
  82. package/dist/{staticSelect.utils-BemUyaaA.js → staticSelect.utils-uHa8f_c6.js} +5 -144
  83. package/dist/styles/configurator.css +731 -218
  84. package/dist/{table.cva-BikE8qJH.js → table.cva-DlMT-zLD.js} +2 -3
  85. package/dist/tanstack/checkbox.js +1 -1
  86. package/dist/tanstack/date-picker.js +1 -1
  87. package/dist/tanstack/date-range-picker.js +1 -1
  88. package/dist/tanstack/date-time-picker.js +1 -1
  89. package/dist/tanstack/file-input.js +1 -1
  90. package/dist/tanstack/file-upload.js +1 -1
  91. package/dist/tanstack/form.js +1 -1
  92. package/dist/tanstack/inputs.js +1 -1
  93. package/dist/tanstack/number-range-input.js +1 -1
  94. package/dist/tanstack/radio-group.js +1 -1
  95. package/dist/tanstack/rich-text-editor.js +1 -1
  96. package/dist/tanstack/select.js +1 -1
  97. package/dist/tanstack/slider.js +1 -1
  98. package/dist/tanstack/table.js +2 -2
  99. package/dist/tanstack/text-area.js +1 -1
  100. package/dist/tanstack/time-picker.js +1 -1
  101. package/dist/tanstack/toggle-group.js +1 -1
  102. package/dist/tanstack.js +27 -27
  103. package/dist/theme-model-DtYPxNvH.js +406 -0
  104. package/dist/upload-CXU83BJ4.js +30 -0
  105. package/dist/useControlledState-CzXkZCX8.js +30 -0
  106. package/dist/{useFieldAccessibility-B4MVL6fz.js → useFieldAccessibility-ScC6Mtd5.js} +2 -2
  107. package/dist/{useFilters-kkEUFKmQ.js → useFilters-XNH27Md2.js} +1 -1
  108. package/dist/{useFormAutosave-Mg-tdwMh.js → useFormAutosave-DfuP7drj.js} +1 -1
  109. package/dist/{useStaticInputHandoff-CvSBPUB3.js → useStaticInputHandoff-NeZVnci-.js} +3 -3
  110. package/dist/{useTableColumnConfig-gfVame8v.js → useTableColumnConfig-BTGZiluz.js} +3 -3
  111. package/package.json +1 -1
  112. package/src/configurator/README.md +3 -3
  113. package/dist/FocusScope-CO9oJ1sc.js +0 -343
  114. package/dist/chain-DIXr2VAT.js +0 -10
  115. package/dist/focusSafely-DCGrr2bb.js +0 -447
  116. package/dist/getScrollParent-kSR7EtoT.js +0 -47
  117. package/dist/numberStatic.utils-BMgRzyd3.js +0 -902
  118. package/dist/openLink-CQhMhfzO.js +0 -121
  119. package/dist/platform-BXNIIAfU.js +0 -42
  120. package/dist/staticDateTimeSegments-CsCE9Buo.js +0 -3604
  121. package/dist/theme-model-C-QMCksE.js +0 -136
  122. package/dist/useControlledState-DQxX6LMN.js +0 -189
  123. package/dist/useFocusable-Bd0UsrQ7.js +0 -63
  124. package/dist/useFormValidationState-D3z-gafz.js +0 -1341
  125. package/dist/useLayoutEffect-B2-1tbPJ.js +0 -83
  126. package/dist/useSyncRef-RGMv0rXK.js +0 -338
@@ -1,13 +1,13 @@
1
1
  .studio,
2
2
  .studio-overlay {
3
3
  font-family: "Inter Variable", Inter, sans-serif;
4
- color: #202529;
4
+ color: #242424;
5
5
  font-size: 11px;
6
6
  line-height: 1.5;
7
7
  }
8
8
  .studio {
9
9
  min-height: 100vh;
10
- background: #f5f6f7;
10
+ background: #f6f6f6;
11
11
  padding: 60px 24px;
12
12
  }
13
13
  .studio-landing {
@@ -23,7 +23,7 @@
23
23
  }
24
24
  .studio-logo {
25
25
  display: inline-flex;
26
- background: #253c37;
26
+ background: #373737;
27
27
  color: #fff;
28
28
  border-radius: 10px;
29
29
  padding: 10px;
@@ -37,9 +37,9 @@
37
37
  font-weight: 600;
38
38
  letter-spacing: 1.4px;
39
39
  padding: 5px 9px;
40
- border: 1px solid #d9dfdc;
40
+ border: 1px solid #dedede;
41
41
  border-radius: 5px;
42
- color: #697871;
42
+ color: #747474;
43
43
  }
44
44
  .studio-landing h1 {
45
45
  font-size: clamp(36px, 5vw, 58px);
@@ -49,13 +49,13 @@
49
49
  font-weight: 550;
50
50
  }
51
51
  .studio-landing > p {
52
- color: #6b7476;
52
+ color: #727272;
53
53
  margin-bottom: 25px;
54
54
  }
55
55
  .studio-landing > small {
56
56
  display: block;
57
57
  margin: 15px 0 35px;
58
- color: #7b8384;
58
+ color: #818181;
59
59
  }
60
60
  .studio button,
61
61
  .studio-overlay button {
@@ -66,9 +66,9 @@
66
66
  align-items: center;
67
67
  justify-content: center;
68
68
  gap: 8px;
69
- background: #263f38 !important;
69
+ background: #393939 !important;
70
70
  color: white !important;
71
- border: 1px solid #263f38 !important;
71
+ border: 1px solid #393939 !important;
72
72
  padding: 10px 15px;
73
73
  border-radius: 7px;
74
74
  font-size: 11px;
@@ -87,9 +87,14 @@
87
87
  background: #fff;
88
88
  overflow: hidden;
89
89
  }
90
+ /*
91
+ * The editor column stacks the top bar, the editor and the footer; the preview fills the second column from top to
92
+ * bottom, like a design tool's canvas.
93
+ */
90
94
  .studio-dialog {
91
- display: flex;
92
- flex-direction: column;
95
+ display: grid;
96
+ grid-template-columns: var(--studio-editor-track, minmax(300px, 0.8fr)) minmax(320px, 1.25fr);
97
+ grid-template-rows: auto minmax(0, 1fr) auto;
93
98
  height: 100%;
94
99
  outline: none;
95
100
  }
@@ -99,67 +104,51 @@
99
104
  font-weight: 650;
100
105
  letter-spacing: -0.3px;
101
106
  }
102
- .studio-icon {
103
- border: 0;
104
- background: transparent;
105
- padding: 8px;
106
- color: #7b8480;
107
- border-radius: 6px;
108
- }
109
- /* Title, section tabs and global controls share one bar above the editor and preview. */
107
+ /* Title, section tabs and global controls share one bar above the editor; the tabs take their own row. */
110
108
  .studio-topbar {
109
+ grid-column: 1;
110
+ grid-row: 1;
111
111
  display: flex;
112
+ flex-wrap: wrap;
112
113
  align-items: center;
113
- gap: 20px;
114
+ gap: 8px 16px;
114
115
  padding: 10px 16px;
115
- background: #fafbfa;
116
- border-bottom: 1px solid #e8ebea;
116
+ background: #fbfbfb;
117
+ border-bottom: 1px solid #eaeaea;
117
118
  min-width: 0;
118
119
  }
119
120
  .studio-topbar .studio-title {
120
121
  gap: 9px;
121
122
  flex-shrink: 0;
122
123
  }
123
- .studio-topbar-logo {
124
- display: block;
125
- width: 34px;
126
- height: 17px;
127
- flex-shrink: 0;
124
+ .studio-topbar .studio-nav {
125
+ order: 1;
126
+ flex-basis: 100%;
127
+ margin-inline: -4px;
128
128
  }
129
129
  .studio-topbar .studio-title h2 {
130
130
  white-space: nowrap;
131
131
  }
132
+ /* Controls share the title's row and only wrap below it once even their narrowest layout no longer fits. */
132
133
  .studio-topbar-controls {
133
134
  display: flex;
135
+ flex: 1 1 min-content;
136
+ justify-content: flex-end;
134
137
  align-items: center;
135
138
  gap: 8px;
136
139
  margin-left: auto;
137
- flex-shrink: 0;
140
+ min-width: 0;
138
141
  }
139
142
  .studio-topbar .studio-search {
140
143
  margin: 0;
141
- width: 190px;
144
+ flex: 1 1 90px;
145
+ max-width: 190px;
142
146
  padding: 7px 9px;
143
147
  background: #fff;
144
148
  }
145
149
  .studio-topbar .studio-search:has(input:disabled) {
146
150
  opacity: 0.5;
147
151
  }
148
- .studio-topbar .studio-icon {
149
- padding: 6px;
150
- }
151
- /* Section tabs move to their own row when the bar cannot fit them beside the title and controls. */
152
- @media (max-width: 1500px) {
153
- .studio-topbar {
154
- flex-wrap: wrap;
155
- row-gap: 8px;
156
- }
157
- .studio-topbar .studio-nav {
158
- order: 1;
159
- flex-basis: 100%;
160
- margin-inline: -4px;
161
- }
162
- }
163
152
  @media (max-width: 800px) {
164
153
  .studio-topbar-controls {
165
154
  flex-wrap: wrap;
@@ -174,25 +163,21 @@
174
163
  flex: 1;
175
164
  }
176
165
  }
166
+ /* The body only groups the panels in markup; they are placed on the dialog's grid. */
177
167
  .studio-body {
178
- display: grid;
179
- grid-template-columns: var(--studio-editor-track, minmax(300px, 0.8fr)) minmax(320px, 1.25fr);
180
- grid-template-rows: minmax(0, 1fr);
181
- min-height: 0;
182
- flex: 1;
183
- }
184
- .studio-body > :is(.studio-editor, .studio-preview) {
185
- grid-row: 1;
168
+ display: contents;
186
169
  }
187
170
  .studio-body > .studio-editor {
188
171
  grid-column: 1;
172
+ grid-row: 2;
189
173
  }
190
174
  .studio-body > .studio-preview {
191
175
  grid-column: 2;
176
+ grid-row: 1 / -1;
192
177
  }
193
178
  /* Dividers overlap the start of their grid column and show a line and grip on hover. */
194
179
  .studio-resize-handle {
195
- grid-row: 1;
180
+ grid-row: 1 / -1;
196
181
  justify-self: start;
197
182
  position: relative;
198
183
  z-index: 2;
@@ -206,7 +191,7 @@
206
191
  content: "";
207
192
  position: absolute;
208
193
  inset: 0 4px;
209
- background: #263f38;
194
+ background: #393939;
210
195
  opacity: 0;
211
196
  transition: opacity 120ms;
212
197
  }
@@ -219,7 +204,7 @@
219
204
  height: 32px;
220
205
  translate: -50% -50%;
221
206
  border-radius: 3px;
222
- background: #263f38;
207
+ background: #393939;
223
208
  opacity: 0;
224
209
  transition: opacity 120ms;
225
210
  }
@@ -240,7 +225,7 @@
240
225
  width: 1px;
241
226
  height: 18px;
242
227
  margin: 0 8px;
243
- background: #e1e6e3;
228
+ background: #e5e5e5;
244
229
  }
245
230
  .studio-nav button {
246
231
  display: flex;
@@ -249,15 +234,15 @@
249
234
  gap: 7px;
250
235
  white-space: nowrap;
251
236
  padding: 7px 10px;
252
- color: #66736c;
237
+ color: #707070;
253
238
  background: transparent;
254
239
  border: 0;
255
240
  border-radius: 6px;
256
241
  font-size: 11px;
257
242
  }
258
243
  .studio-nav button[aria-current] {
259
- background: #e9f0ed;
260
- color: #294f40;
244
+ background: #eeeeee;
245
+ color: #464646;
261
246
  font-weight: 600;
262
247
  }
263
248
  .studio-editor {
@@ -272,7 +257,7 @@
272
257
  align-items: center;
273
258
  gap: 12px;
274
259
  margin-bottom: 12px;
275
- border-bottom: 1px solid #e6ebe8;
260
+ border-bottom: 1px solid #eaeaea;
276
261
  }
277
262
  .studio-subtabs-bar .studio-toggle-all {
278
263
  margin-left: auto;
@@ -296,13 +281,13 @@
296
281
  border: 0;
297
282
  border-bottom: 2px solid transparent;
298
283
  background: transparent;
299
- color: #66736c;
284
+ color: #707070;
300
285
  font-size: 11px;
301
286
  white-space: nowrap;
302
287
  }
303
288
  .studio-subtabs button[aria-selected="true"] {
304
- border-bottom-color: #263f38;
305
- color: #294f40;
289
+ border-bottom-color: #393939;
290
+ color: #464646;
306
291
  font-weight: 600;
307
292
  }
308
293
  .studio-subtabs button:disabled {
@@ -323,8 +308,8 @@
323
308
  }
324
309
  .studio-mode {
325
310
  display: inline-flex;
326
- border: 1px solid #e1e6e3;
327
- background: #f6f8f6;
311
+ border: 1px solid #e5e5e5;
312
+ background: #f7f7f7;
328
313
  border-radius: 6px;
329
314
  padding: 3px;
330
315
  gap: 3px;
@@ -339,35 +324,35 @@
339
324
  padding: 5px 11px;
340
325
  font-size: 11px;
341
326
  background: transparent;
342
- color: #87918b;
327
+ color: #8e8e8e;
343
328
  text-transform: capitalize;
344
329
  }
345
330
  .studio-mode button[aria-pressed="true"] {
346
331
  background: white;
347
- box-shadow: 0 1px 3px #253c3717;
348
- color: #344b40;
332
+ box-shadow: 0 1px 3px #37373717;
333
+ color: #454545;
349
334
  }
350
335
  .studio-search {
351
336
  display: flex;
352
337
  align-items: center;
353
338
  gap: 8px;
354
339
  padding: 9px 11px;
355
- border: 1px solid #e1e6e3;
340
+ border: 1px solid #e5e5e5;
356
341
  border-radius: 6px;
357
342
  margin: 20px 0 12px;
358
- color: #9aa19d;
343
+ color: #9f9f9f;
359
344
  }
360
345
  .studio-search input {
361
346
  width: 100%;
362
347
  outline: none;
363
348
  border: 0;
364
349
  background: transparent;
365
- color: #35453d;
350
+ color: #414141;
366
351
  font-size: 11px;
367
352
  }
368
353
  .studio-token {
369
354
  padding: 4px 0;
370
- border-bottom: 1px solid #edf0ee;
355
+ border-bottom: 1px solid #efefef;
371
356
  }
372
357
  .studio-token label {
373
358
  display: block;
@@ -381,7 +366,7 @@
381
366
  }
382
367
  .studio-token.is-changed label > span::after {
383
368
  content: " •";
384
- color: #308761;
369
+ color: #727272;
385
370
  }
386
371
  .studio-token-value {
387
372
  display: flex;
@@ -389,7 +374,7 @@
389
374
  gap: 8px;
390
375
  }
391
376
  .studio-token-value input:not([type="color"]) {
392
- border: 1px solid #e2e7e3;
377
+ border: 1px solid #e6e6e6;
393
378
  border-radius: 5px;
394
379
  height: 24px;
395
380
  padding: 2px 7px;
@@ -397,7 +382,7 @@
397
382
  font-family: inherit;
398
383
  font-variant-numeric: tabular-nums;
399
384
  font-size: 11px;
400
- color: #5f6e64;
385
+ color: #6a6a6a;
401
386
  min-width: 0;
402
387
  width: 100%;
403
388
  background: #fff;
@@ -405,7 +390,7 @@
405
390
  .studio-token-value input[type="color"] {
406
391
  width: 24px;
407
392
  height: 24px;
408
- border: 1px solid #e2e7e3;
393
+ border: 1px solid #e6e6e6;
409
394
  border-radius: 5px;
410
395
  padding: 2px;
411
396
  flex-shrink: 0;
@@ -415,7 +400,7 @@
415
400
  width: 18px;
416
401
  height: 18px;
417
402
  flex-shrink: 0;
418
- border: 1px solid #d5dcd7;
403
+ border: 1px solid #dadada;
419
404
  border-radius: 3px;
420
405
  }
421
406
  /* Base palette picker for semantic colors: a swatch trigger and a grouped swatch list. */
@@ -439,7 +424,7 @@
439
424
  padding: 0 7px;
440
425
  border: 0;
441
426
  background: transparent;
442
- color: #35453d;
427
+ color: #414141;
443
428
  font: inherit;
444
429
  font-size: 11px;
445
430
  text-align: left;
@@ -447,12 +432,12 @@
447
432
  cursor: pointer;
448
433
  }
449
434
  .studio-token-value .studio-palette-trigger:hover {
450
- background: #f6f8f6;
435
+ background: #f7f7f7;
451
436
  }
452
437
  .studio-palette-trigger > svg {
453
438
  flex-shrink: 0;
454
439
  margin-left: auto;
455
- color: #8b9690;
440
+ color: #939393;
456
441
  }
457
442
  .studio-palette-trigger-label {
458
443
  overflow: hidden;
@@ -463,13 +448,13 @@
463
448
  z-index: 1002;
464
449
  display: flex;
465
450
  width: 220px;
466
- border: 1px solid #e1e6e3;
451
+ border: 1px solid #e5e5e5;
467
452
  border-radius: 10px;
468
453
  background: #fff;
469
- box-shadow: 0 12px 40px #12251f26;
454
+ box-shadow: 0 12px 40px #21212126;
470
455
  font-family: "Inter Variable", Inter, sans-serif;
471
456
  font-size: 11px;
472
- color: #202529;
457
+ color: #242424;
473
458
  }
474
459
  /* The list scrolls itself so opening it can bring the selected color into view. */
475
460
  .studio-palette-list {
@@ -482,7 +467,7 @@
482
467
  }
483
468
  .studio-palette-list header {
484
469
  padding: 10px 8px 5px;
485
- color: #65756b;
470
+ color: #717171;
486
471
  font-size: 10px;
487
472
  font-weight: 600;
488
473
  text-transform: capitalize;
@@ -501,23 +486,23 @@
501
486
  }
502
487
  .studio-palette-item[data-focused],
503
488
  .studio-palette-item[data-hovered] {
504
- background: #f1f4f2;
489
+ background: #f3f3f3;
505
490
  }
506
491
  .studio-palette-item[data-selected] {
507
- background: #e9f0ed;
508
- color: #294f40;
492
+ background: #eeeeee;
493
+ color: #464646;
509
494
  font-weight: 600;
510
495
  }
511
496
  .studio-palette-item code {
512
497
  margin-left: auto;
513
- color: #8b9690;
498
+ color: #939393;
514
499
  font-size: 10px;
515
500
  }
516
501
  .studio-palette-item.is-custom {
517
502
  margin-top: 4px;
518
- border-top: 1px solid #eef1ef;
503
+ border-top: 1px solid #f0f0f0;
519
504
  border-radius: 0 0 6px 6px;
520
- color: #65756b;
505
+ color: #717171;
521
506
  }
522
507
  .studio-token-value button {
523
508
  display: grid;
@@ -528,17 +513,15 @@
528
513
  border: 0;
529
514
  background: transparent;
530
515
  padding: 4px;
531
- color: #667a6b;
516
+ color: #757575;
532
517
  }
533
- .studio-overlay button:disabled {
518
+ /* Configurator chrome only: the preview (.studio-sample) shows components with their own disabled and focus styles. */
519
+ .studio-overlay button:disabled:where(:not(.studio-sample *)) {
534
520
  opacity: 0.35;
535
521
  cursor: default;
536
522
  }
537
- .studio-overlay input:focus-visible,
538
- .studio-overlay select:focus-visible,
539
- .studio-overlay textarea:focus-visible,
540
- .studio-overlay button:focus-visible {
541
- outline: 2px solid #3d8d68;
523
+ .studio-overlay :is(input, select, textarea, button):focus-visible:where(:not(.studio-sample *)) {
524
+ outline: 2px solid #797979;
542
525
  outline-offset: 3px;
543
526
  }
544
527
  .studio-token-value input[aria-invalid="true"] {
@@ -551,8 +534,8 @@
551
534
  font-size: 11px;
552
535
  }
553
536
  .studio-preview {
554
- background: #f5f7f6;
555
- border-left: 1px solid #e6ebe7;
537
+ background: #f7f7f7;
538
+ border-left: 1px solid #eaeaea;
556
539
  padding: 20px;
557
540
  overflow: auto;
558
541
  min-width: 0;
@@ -563,46 +546,42 @@
563
546
  align-items: center;
564
547
  margin-bottom: 16px;
565
548
  }
549
+ .studio-preview-actions {
550
+ display: flex;
551
+ flex-wrap: wrap;
552
+ justify-content: flex-end;
553
+ align-items: center;
554
+ gap: 8px;
555
+ }
566
556
  .studio-preview-heading > span {
567
557
  font-size: 9px;
568
558
  font-weight: 600;
569
559
  letter-spacing: 1.1px;
570
- color: #839087;
560
+ color: #8d8d8d;
571
561
  }
572
562
  .studio-preview-heading i {
573
563
  display: inline-block;
574
564
  height: 5px;
575
565
  width: 5px;
576
566
  border-radius: 50%;
577
- background: #5c9c78;
567
+ background: #8c8c8c;
578
568
  margin-right: 5px;
579
569
  }
570
+ /* Shares the color mode switch's segmented style, so the preview header controls match. */
580
571
  .studio-preview-modes {
581
- display: inline-flex;
582
- gap: 2px;
583
- padding: 2px;
584
- border: 1px solid #dfe6e1;
585
- border-radius: 6px;
586
- background: #fff;
572
+ flex-shrink: 0;
587
573
  }
588
574
  .studio-preview-modes button {
589
- border: 0;
590
- border-radius: 4px;
591
- padding: 4px 7px;
592
- background: transparent;
593
- color: #66766c;
594
- font-size: 10px;
595
- }
596
- .studio-preview-modes button[aria-pressed="true"] {
597
- background: #eaf4ee;
598
- color: #263f38;
575
+ cursor: pointer;
576
+ text-transform: none;
599
577
  }
600
578
  .studio-preview-modes button:focus-visible {
601
- outline: 2px solid #3d8d68;
579
+ outline: 2px solid #797979;
580
+ outline-offset: 2px;
602
581
  }
603
582
  .studio-preview-note {
604
583
  text-align: center;
605
- color: #a0aaa2;
584
+ color: #a7a7a7;
606
585
  font-size: 11px;
607
586
  line-height: 1.7;
608
587
  margin-top: 20px;
@@ -615,11 +594,13 @@
615
594
  font-family: var(--font-body);
616
595
  }
617
596
  .studio-footer {
597
+ grid-column: 1;
598
+ grid-row: 3;
618
599
  display: flex;
619
600
  align-items: center;
620
601
  gap: 10px;
621
602
  padding: 10px 20px;
622
- border-top: 1px solid #e7ebe8;
603
+ border-top: 1px solid #eaeaea;
623
604
  flex-shrink: 0;
624
605
  }
625
606
  .studio-footer > button:not(.studio-primary),
@@ -628,8 +609,8 @@
628
609
  align-items: center;
629
610
  justify-content: center;
630
611
  gap: 7px;
631
- color: #65756b;
632
- border: 1px solid #e3e8e4;
612
+ color: #717171;
613
+ border: 1px solid #e7e7e7;
633
614
  border-radius: 6px;
634
615
  padding: 9px 12px;
635
616
  background: white;
@@ -637,7 +618,7 @@
637
618
  }
638
619
  .studio-footer > span {
639
620
  flex: 1;
640
- color: #89958c;
621
+ color: #929292;
641
622
  font-size: 11px;
642
623
  }
643
624
  /* Confirmation dialogs sit above the full-page configurator. */
@@ -646,13 +627,13 @@
646
627
  display: grid;
647
628
  place-items: center;
648
629
  padding: 16px;
649
- background: #14232266;
630
+ background: #20202066;
650
631
  }
651
632
  .studio-confirm {
652
633
  width: min(420px, 100%);
653
634
  background: #fff;
654
635
  border-radius: 12px;
655
- box-shadow: 0 25px 90px #12251f40;
636
+ box-shadow: 0 25px 90px #21212140;
656
637
  }
657
638
  .studio-confirm-dialog {
658
639
  padding: 22px;
@@ -665,7 +646,7 @@
665
646
  }
666
647
  .studio-confirm-dialog p {
667
648
  margin: 0;
668
- color: #65756b;
649
+ color: #717171;
669
650
  font-size: 12px;
670
651
  }
671
652
  .studio-confirm-actions {
@@ -676,10 +657,10 @@
676
657
  }
677
658
  .studio-confirm-actions > button:not(.studio-danger) {
678
659
  padding: 9px 12px;
679
- border: 1px solid #e3e8e4;
660
+ border: 1px solid #e7e7e7;
680
661
  border-radius: 6px;
681
662
  background: #fff;
682
- color: #65756b;
663
+ color: #717171;
683
664
  font-size: 11px;
684
665
  }
685
666
  .studio-confirm-actions > button.studio-danger {
@@ -704,35 +685,35 @@
704
685
  align-items: center;
705
686
  gap: 10px;
706
687
  padding: 10px 0;
707
- border-bottom: 1px solid #edf0ee;
688
+ border-bottom: 1px solid #efefef;
708
689
  font-size: 11px;
709
690
  }
710
691
  .studio-setting select {
711
692
  background: white;
712
- border: 1px solid #dde4de;
693
+ border: 1px solid #e2e2e2;
713
694
  border-radius: 5px;
714
695
  padding: 7px;
715
- color: #5a6c60;
696
+ color: #676767;
716
697
  }
717
698
  .studio-setting input {
718
- accent-color: #315d47;
699
+ accent-color: #525252;
719
700
  }
720
701
  .studio-setting small {
721
702
  display: block;
722
- color: #98a098;
703
+ color: #9e9e9e;
723
704
  font-size: 11px;
724
705
  margin-top: 4px;
725
706
  }
726
707
  .studio-help,
727
708
  .studio-export > p {
728
- color: #8b958e;
709
+ color: #929292;
729
710
  font-size: 11px;
730
711
  line-height: 1.7;
731
712
  margin-top: 20px;
732
713
  }
733
714
  .studio-export textarea {
734
- background: #f7f9f7;
735
- border: 1px solid #e1e6e2;
715
+ background: #f8f8f8;
716
+ border: 1px solid #e5e5e5;
736
717
  border-radius: 7px;
737
718
  font-size: 11px;
738
719
  font-family: monospace;
@@ -740,11 +721,11 @@
740
721
  width: 100%;
741
722
  height: 320px;
742
723
  resize: vertical;
743
- color: #395640;
724
+ color: #4e4e4e;
744
725
  margin: 18px 0;
745
726
  }
746
727
  @media (max-width: 1050px) {
747
- .studio-body {
728
+ .studio-dialog {
748
729
  grid-template-columns: var(--studio-editor-track, minmax(260px, 0.8fr)) minmax(280px, 1.25fr);
749
730
  }
750
731
  .studio-editor {
@@ -758,11 +739,18 @@
758
739
  }
759
740
  }
760
741
  @media (max-width: 800px) {
761
- .studio-body {
742
+ /* One scrolling column: top bar, editor, preview, then the footer pinned to the bottom. */
743
+ .studio-dialog {
762
744
  display: flex;
763
745
  flex-direction: column;
764
746
  overflow: auto;
765
747
  }
748
+ .studio-footer {
749
+ position: sticky;
750
+ bottom: 0;
751
+ z-index: 3;
752
+ background: #fff;
753
+ }
766
754
  .studio-resize-handle {
767
755
  display: none;
768
756
  }
@@ -772,7 +760,7 @@
772
760
  flex-shrink: 0;
773
761
  }
774
762
  .studio-preview {
775
- border-top: 1px solid #e8ebea;
763
+ border-top: 1px solid #eaeaea;
776
764
  }
777
765
  .studio-footer {
778
766
  flex-wrap: wrap;
@@ -788,7 +776,7 @@
788
776
  min-width: 0;
789
777
  margin: 10px 0 0;
790
778
  padding: 8px 10px 10px;
791
- border: 1px solid #e2e7e3;
779
+ border: 1px solid #e6e6e6;
792
780
  border-radius: 8px;
793
781
  }
794
782
  .studio-token-group legend {
@@ -796,11 +784,11 @@
796
784
  font-size: 11px;
797
785
  font-weight: 600;
798
786
  text-transform: capitalize;
799
- color: #35483e;
787
+ color: #434343;
800
788
  }
801
789
  /* Typography keeps its compact three-field styles but shares the table's group header rows. */
802
790
  :is(.studio-token-list-inline, .studio-token-list-rows) {
803
- --studio-cell-line: #e6ebe8;
791
+ --studio-cell-line: #eaeaea;
804
792
  }
805
793
  /* Section titles are header rows of one continuous table rather than separately bordered boxes. */
806
794
  :is(.studio-token-list-rows, .studio-token-list-inline) .studio-token-group {
@@ -817,7 +805,7 @@
817
805
  box-sizing: border-box;
818
806
  margin: 0;
819
807
  padding: 0 var(--studio-editor-pad) 0 0;
820
- background: #f5f7f6;
808
+ background: #f7f7f7;
821
809
  border-bottom: 1px solid var(--studio-cell-line);
822
810
  }
823
811
  /* The whole header row toggles its group, not only the title text. */
@@ -891,7 +879,7 @@
891
879
  cursor: pointer;
892
880
  }
893
881
  .studio-color-mode button:focus-visible {
894
- outline: 2px solid #3d8d68;
882
+ outline: 2px solid #797979;
895
883
  outline-offset: 2px;
896
884
  }
897
885
  .studio-token-list-inline .studio-token {
@@ -918,20 +906,29 @@
918
906
  }
919
907
  }
920
908
 
909
+ /* A compact select that shows only a chevron; its text is hidden so the placeholder never shows. */
921
910
  .studio-size-presets {
922
911
  appearance: none;
923
912
  width: 20px;
924
913
  height: 24px;
925
914
  flex-shrink: 0;
926
915
  padding: 0;
927
- text-align: center;
928
- border: 1px solid #e2e7e3;
916
+ border: 1px solid #e6e6e6;
929
917
  border-radius: 4px;
930
- background: #fff;
931
- color: #5f6e64;
918
+ background: #fff
919
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a6a6a' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
920
+ center / 12px no-repeat;
921
+ color: transparent;
932
922
  font-size: 11px;
933
923
  cursor: pointer;
934
924
  }
925
+ .studio-size-presets:hover {
926
+ border-color: #d4d4d4;
927
+ background-color: #f7f7f7;
928
+ }
929
+ .studio-size-presets :is(option, optgroup) {
930
+ color: #393939;
931
+ }
935
932
  .studio-token-value:has(.studio-size-presets) {
936
933
  gap: 3px;
937
934
  }
@@ -943,13 +940,6 @@
943
940
  width: 20px;
944
941
  }
945
942
 
946
- .studio-unit-mode {
947
- flex-shrink: 0;
948
- }
949
- .studio-unit-mode button {
950
- text-transform: none;
951
- }
952
-
953
943
  .studio-token-input {
954
944
  position: relative;
955
945
  display: flex;
@@ -961,7 +951,7 @@
961
951
  right: 7px;
962
952
  top: 50%;
963
953
  transform: translateY(-50%);
964
- color: #8b9690;
954
+ color: #939393;
965
955
  font-size: 11px;
966
956
  font-variant-numeric: tabular-nums;
967
957
  pointer-events: none;
@@ -993,14 +983,14 @@
993
983
  cursor: pointer;
994
984
  }
995
985
  .studio-group-toggle svg {
996
- color: #8b948f;
986
+ color: #929292;
997
987
  transition: transform 0.15s ease;
998
988
  }
999
989
  .studio-group-toggle[aria-expanded="true"] svg {
1000
990
  transform: rotate(90deg);
1001
991
  }
1002
992
  .studio-group-toggle:focus-visible {
1003
- outline: 2px solid #3d8d68;
993
+ outline: 2px solid #797979;
1004
994
  outline-offset: 2px;
1005
995
  border-radius: 3px;
1006
996
  }
@@ -1008,7 +998,7 @@
1008
998
  width: 5px;
1009
999
  height: 5px;
1010
1000
  border-radius: 50%;
1011
- background: #308761;
1001
+ background: #727272;
1012
1002
  margin-left: 2px;
1013
1003
  }
1014
1004
  .studio-token-group.is-collapsed {
@@ -1025,13 +1015,13 @@
1025
1015
  border: 0;
1026
1016
  border-radius: 4px;
1027
1017
  background: transparent;
1028
- color: #5f6e64;
1018
+ color: #6a6a6a;
1029
1019
  font-size: 11px;
1030
1020
  line-height: 1;
1031
1021
  cursor: pointer;
1032
1022
  }
1033
1023
  .studio-toggle-all:hover:not(:disabled) {
1034
- color: #263f38;
1024
+ color: #393939;
1035
1025
  text-decoration: underline;
1036
1026
  text-underline-offset: 2px;
1037
1027
  }
@@ -1040,7 +1030,7 @@
1040
1030
  cursor: default;
1041
1031
  }
1042
1032
  .studio-toggle-all:focus-visible {
1043
- outline: 2px solid #3d8d68;
1033
+ outline: 2px solid #797979;
1044
1034
  outline-offset: 2px;
1045
1035
  }
1046
1036
  .studio-token-list:not(.studio-token-list-inline, .studio-token-list-rows) .studio-token-group.is-collapsed {
@@ -1060,7 +1050,7 @@
1060
1050
  border-bottom-color: var(--studio-cell-line);
1061
1051
  }
1062
1052
  .studio-token-list-inline .studio-token-group .studio-token:hover {
1063
- background: #f9fbfa;
1053
+ background: #fbfbfb;
1064
1054
  }
1065
1055
  .studio-token-list-inline .studio-token-group > div > .studio-token:last-child {
1066
1056
  border-bottom: 1px solid var(--studio-cell-line);
@@ -1104,11 +1094,11 @@
1104
1094
  padding: 0;
1105
1095
  }
1106
1096
  .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-webkit-color-swatch {
1107
- border: 1px solid #d9dfdb;
1097
+ border: 1px solid #dddddd;
1108
1098
  border-radius: 3px;
1109
1099
  }
1110
1100
  .studio-token-list-inline .studio-token-group .studio-token-value input[type="color"]::-moz-color-swatch {
1111
- border: 1px solid #d9dfdb;
1101
+ border: 1px solid #dddddd;
1112
1102
  border-radius: 3px;
1113
1103
  }
1114
1104
  .studio-token-list-inline .studio-token-group .studio-palette-swatch {
@@ -1123,7 +1113,8 @@
1123
1113
  height: auto;
1124
1114
  border: 0;
1125
1115
  border-radius: 0;
1126
- background: transparent;
1116
+ /* Only the color: the chevron icon is the background image. */
1117
+ background-color: transparent;
1127
1118
  }
1128
1119
  .studio-token-list-inline .studio-token-group .studio-token-value .studio-size-presets {
1129
1120
  border-left: 1px solid var(--studio-cell-line);
@@ -1149,7 +1140,7 @@
1149
1140
  .studio-gallery-loading {
1150
1141
  margin: 0;
1151
1142
  padding: 24px;
1152
- color: #839087;
1143
+ color: #8d8d8d;
1153
1144
  font-size: 11px;
1154
1145
  text-align: center;
1155
1146
  }
@@ -1196,7 +1187,7 @@
1196
1187
  color: rgb(var(--surface-default-card-foreground-base));
1197
1188
  }
1198
1189
  .studio-overlay .studio-gallery-card-hit:focus-visible {
1199
- outline: 2px solid #3d8d68;
1190
+ outline: 2px solid #797979;
1200
1191
  outline-offset: 4px;
1201
1192
  }
1202
1193
  .studio-gallery-card-title {
@@ -1241,10 +1232,10 @@
1241
1232
  align-items: center;
1242
1233
  gap: 5px;
1243
1234
  padding: 5px 9px;
1244
- border: 1px solid #e1e6e3;
1235
+ border: 1px solid #e5e5e5;
1245
1236
  border-radius: 6px;
1246
1237
  background: #fff;
1247
- color: #5f6e64;
1238
+ color: #6a6a6a;
1248
1239
  font:
1249
1240
  400 11px "Inter Variable",
1250
1241
  Inter,
@@ -1252,8 +1243,8 @@
1252
1243
  cursor: pointer;
1253
1244
  }
1254
1245
  .studio-gallery-back:hover {
1255
- background: #f6f8f6;
1256
- color: #344b40;
1246
+ background: #f7f7f7;
1247
+ color: #454545;
1257
1248
  }
1258
1249
  .studio-gallery-zoom-stage {
1259
1250
  display: flex;
@@ -1309,7 +1300,7 @@
1309
1300
  max-width: 220px;
1310
1301
  padding: 3px 7px;
1311
1302
  border-radius: 4px;
1312
- background: #1f2a26;
1303
+ background: #272727;
1313
1304
  color: #fff;
1314
1305
  font:
1315
1306
  400 11px "Inter Variable",
@@ -1335,7 +1326,7 @@
1335
1326
  }
1336
1327
  .studio-inspect-hint {
1337
1328
  margin: 14px 0 0;
1338
- color: #839087;
1329
+ color: #8d8d8d;
1339
1330
  font:
1340
1331
  400 11px "Inter Variable",
1341
1332
  Inter,
@@ -1345,17 +1336,17 @@
1345
1336
 
1346
1337
  /* Token picked in the inspector */
1347
1338
  .studio-token.is-highlighted {
1348
- background: #eaf4ee;
1349
- box-shadow: inset 3px 0 0 #3d8d68;
1339
+ background: #f1f1f1;
1340
+ box-shadow: inset 3px 0 0 #797979;
1350
1341
  animation: studio-token-flash 1.2s ease-out;
1351
1342
  }
1352
1343
  .studio-token-list-inline .studio-token-group .studio-token.is-highlighted:hover {
1353
- background: #e2efe7;
1344
+ background: #ececec;
1354
1345
  }
1355
1346
  @keyframes studio-token-flash {
1356
1347
  0%,
1357
1348
  30% {
1358
- background: #c9e6d4;
1349
+ background: #dfdfdf;
1359
1350
  }
1360
1351
  }
1361
1352
  .studio-gallery-card.is-wide {
@@ -1374,7 +1365,7 @@
1374
1365
  }
1375
1366
  .studio-cva-field > span {
1376
1367
  font-size: 11px;
1377
- color: #5f6e64;
1368
+ color: #6a6a6a;
1378
1369
  overflow-wrap: anywhere;
1379
1370
  }
1380
1371
  .studio-cva-field input {
@@ -1382,18 +1373,18 @@
1382
1373
  min-width: 0;
1383
1374
  height: 26px;
1384
1375
  padding: 3px 7px;
1385
- border: 1px solid #e2e7e3;
1376
+ border: 1px solid #e6e6e6;
1386
1377
  border-radius: 5px;
1387
1378
  background: white;
1388
- color: #34453b;
1379
+ color: #414141;
1389
1380
  font: 11px monospace;
1390
1381
  }
1391
1382
  .studio-cva-reset {
1392
1383
  padding: 5px 9px;
1393
- border: 1px solid #e2e7e3;
1384
+ border: 1px solid #e6e6e6;
1394
1385
  border-radius: 5px;
1395
1386
  background: white;
1396
- color: #34453b;
1387
+ color: #414141;
1397
1388
  font-size: 12px;
1398
1389
  }
1399
1390
 
@@ -1428,10 +1419,10 @@
1428
1419
  min-width: 0;
1429
1420
  max-width: 110px;
1430
1421
  height: 26px;
1431
- border: 1px solid #dde3df;
1422
+ border: 1px solid #e1e1e1;
1432
1423
  border-radius: 4px;
1433
1424
  background: white;
1434
- color: #34453b;
1425
+ color: #414141;
1435
1426
  }
1436
1427
  .studio-cva-stage {
1437
1428
  position: relative;
@@ -1453,7 +1444,7 @@
1453
1444
  .studio-preview-caption {
1454
1445
  margin-top: 10px;
1455
1446
  font: 10px/1.5 sans-serif;
1456
- color: #87958d;
1447
+ color: #919191;
1457
1448
  }
1458
1449
  .studio-token-samples {
1459
1450
  display: grid;
@@ -1489,10 +1480,10 @@
1489
1480
  align-items: center;
1490
1481
  gap: 4px;
1491
1482
  padding: 3px 8px;
1492
- border: 1px solid #dfe5e1;
1483
+ border: 1px solid #e3e3e3;
1493
1484
  border-radius: 5px;
1494
1485
  background: #fff;
1495
- color: #3a5a4a;
1486
+ color: #525252;
1496
1487
  font-size: 10px;
1497
1488
  font-weight: 550;
1498
1489
  text-transform: none;
@@ -1503,9 +1494,9 @@
1503
1494
  gap: 12px;
1504
1495
  margin: 0 10px 10px;
1505
1496
  padding: 10px;
1506
- border: 1px solid #dfe5e1;
1497
+ border: 1px solid #e3e3e3;
1507
1498
  border-radius: 8px;
1508
- background: #fafbfa;
1499
+ background: #fbfbfb;
1509
1500
  }
1510
1501
  .studio-shades-input {
1511
1502
  display: flex;
@@ -1522,10 +1513,10 @@
1522
1513
  gap: 4px;
1523
1514
  max-width: 140px;
1524
1515
  padding-left: 8px;
1525
- border: 1px solid #e1e6e3;
1516
+ border: 1px solid #e5e5e5;
1526
1517
  border-radius: 5px;
1527
1518
  background: #fff;
1528
- color: #8b9690;
1519
+ color: #939393;
1529
1520
  }
1530
1521
  .studio-shades-input .studio-token-input input {
1531
1522
  width: 100%;
@@ -1548,13 +1539,106 @@
1548
1539
  line-height: 1.3;
1549
1540
  }
1550
1541
  .studio-shades-actions button:not(.studio-primary) {
1551
- border: 1px solid #e3e8e4;
1542
+ border: 1px solid #e7e7e7;
1552
1543
  background: #fff;
1553
- color: #65756b;
1544
+ color: #717171;
1554
1545
  }
1555
1546
  .studio-shades-actions .studio-primary:disabled {
1556
1547
  opacity: 0.5;
1557
1548
  }
1549
+ /* Global rounding stepper at the top of the Radius section. */
1550
+ .studio-rounding {
1551
+ display: flex;
1552
+ align-items: center;
1553
+ gap: 10px;
1554
+ margin-bottom: 12px;
1555
+ padding: 10px;
1556
+ border: 1px solid #e3e3e3;
1557
+ border-radius: 8px;
1558
+ background: #fbfbfb;
1559
+ }
1560
+ .studio-rounding-preview {
1561
+ flex: none;
1562
+ width: 22px;
1563
+ height: 22px;
1564
+ border-top: 2px solid #393939;
1565
+ border-left: 2px solid #393939;
1566
+ box-sizing: border-box;
1567
+ transition: border-radius 150ms ease;
1568
+ }
1569
+ .studio-scale-preview-spacing {
1570
+ display: flex;
1571
+ justify-content: center;
1572
+ border: 0;
1573
+ transition: gap 150ms ease;
1574
+ }
1575
+ .studio-scale-preview-spacing i {
1576
+ width: 6px;
1577
+ border-radius: 2px;
1578
+ background: #393939;
1579
+ }
1580
+ .studio-scale-preview-sizing {
1581
+ width: 16px;
1582
+ height: 16px;
1583
+ margin: 3px;
1584
+ border: 2px solid #393939;
1585
+ border-radius: 3px;
1586
+ transition: scale 150ms ease;
1587
+ }
1588
+ .studio-scale-preview-font-size {
1589
+ display: flex;
1590
+ align-items: center;
1591
+ justify-content: center;
1592
+ border: 0;
1593
+ color: #393939;
1594
+ font-weight: 600;
1595
+ line-height: 1;
1596
+ transition: font-size 150ms ease;
1597
+ }
1598
+ .studio-rounding-text {
1599
+ display: flex;
1600
+ flex-direction: column;
1601
+ gap: 2px;
1602
+ min-width: 0;
1603
+ }
1604
+ .studio-rounding-text strong {
1605
+ font-size: 11px;
1606
+ font-weight: 550;
1607
+ }
1608
+ .studio-rounding-text span {
1609
+ color: #717171;
1610
+ font-size: 10px;
1611
+ }
1612
+ .studio-rounding-stepper {
1613
+ display: flex;
1614
+ align-items: center;
1615
+ margin-left: auto;
1616
+ border: 1px solid #e5e5e5;
1617
+ border-radius: 6px;
1618
+ background: #fff;
1619
+ }
1620
+ .studio-rounding-stepper button {
1621
+ display: inline-flex;
1622
+ align-items: center;
1623
+ justify-content: center;
1624
+ width: 26px;
1625
+ height: 26px;
1626
+ padding: 0;
1627
+ border: 0;
1628
+ background: none;
1629
+ color: #525252;
1630
+ }
1631
+ .studio-rounding-stepper button:disabled {
1632
+ opacity: 0.35;
1633
+ cursor: default;
1634
+ }
1635
+ .studio-rounding-stepper output {
1636
+ min-width: 56px;
1637
+ font-size: 11px;
1638
+ font-weight: 550;
1639
+ text-align: center;
1640
+ font-variant-numeric: tabular-nums;
1641
+ }
1558
1642
  .studio-token-list-inline .studio-token-group .studio-palette-trigger .studio-palette-swatch {
1559
1643
  margin: 0;
1560
1644
  }
@@ -1574,12 +1658,12 @@
1574
1658
  width: 18px;
1575
1659
  height: 18px;
1576
1660
  overflow: hidden;
1577
- border: 1px solid #d5dcd7;
1661
+ border: 1px solid #dadada;
1578
1662
  border-radius: 3px;
1579
1663
  background:
1580
1664
  linear-gradient(90deg, var(--swatch-solid) 50%, transparent 50%),
1581
1665
  linear-gradient(var(--swatch-color), var(--swatch-color)),
1582
- repeating-conic-gradient(#c9cfcb 0 25%, #fff 0 50%) 0 0 / 8px 8px;
1666
+ repeating-conic-gradient(#cdcdcd 0 25%, #fff 0 50%) 0 0 / 8px 8px;
1583
1667
  }
1584
1668
  .studio-alpha-swatch input[type="color"] {
1585
1669
  position: absolute;
@@ -1609,7 +1693,7 @@
1609
1693
  width: 52px;
1610
1694
  margin-right: 4px;
1611
1695
  border-radius: 4px;
1612
- background: #f2f5f3;
1696
+ background: #f4f4f4;
1613
1697
  }
1614
1698
  .studio-alpha-opacity input {
1615
1699
  width: 100%;
@@ -1623,16 +1707,66 @@
1623
1707
  }
1624
1708
  .studio-alpha-opacity:focus-within,
1625
1709
  .studio-alpha-color .studio-alpha-hex:focus-visible {
1626
- box-shadow: 0 0 0 2px #3d8d6855;
1710
+ box-shadow: 0 0 0 2px #79797955;
1627
1711
  }
1628
1712
 
1629
1713
  /* Layout preview: product cards built only from theme tokens, at the top of the gallery. */
1714
+ .studio-layout-heading {
1715
+ display: flex;
1716
+ align-items: center;
1717
+ justify-content: space-between;
1718
+ gap: 8px;
1719
+ margin-bottom: 8px;
1720
+ }
1721
+ .studio-layout-heading h3 {
1722
+ margin: 0;
1723
+ }
1724
+ /* Full screen layouts fill the window at an app's real width, still inside the preview so draft tokens apply. */
1725
+ .studio-layout-fullscreen {
1726
+ position: fixed;
1727
+ inset: 0;
1728
+ z-index: 1000;
1729
+ display: flex;
1730
+ flex-direction: column;
1731
+ overflow: auto;
1732
+ background: var(--color-surface-default-background);
1733
+ color: var(--color-surface-default-foreground);
1734
+ animation: studio-zoom-in 0.2s ease-out;
1735
+ }
1736
+ .studio-layout-fullscreen-bar {
1737
+ position: sticky;
1738
+ top: 0;
1739
+ z-index: 1;
1740
+ display: flex;
1741
+ align-items: center;
1742
+ justify-content: space-between;
1743
+ gap: 12px;
1744
+ padding: 10px 24px;
1745
+ border-bottom: 1px solid #e8e8e8;
1746
+ background: #fafafa;
1747
+ color: #393939;
1748
+ font:
1749
+ 600 11px "Inter Variable",
1750
+ Inter,
1751
+ sans-serif;
1752
+ }
1753
+ .studio-layout-fullscreen-stage {
1754
+ width: 100%;
1755
+ max-width: 1200px;
1756
+ margin: 0 auto;
1757
+ padding: 32px 24px;
1758
+ box-sizing: border-box;
1759
+ }
1760
+ /* Cards share a row but grow to fit their content, so larger buttons or text widen the card instead of overflowing. */
1630
1761
  .studio-layout-grid {
1631
- display: grid;
1632
- grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
1762
+ display: flex;
1763
+ flex-wrap: wrap;
1633
1764
  gap: 14px;
1634
1765
  }
1635
1766
  .studio-layout-card {
1767
+ flex: 1 1 190px;
1768
+ min-width: min-content;
1769
+ box-sizing: border-box;
1636
1770
  display: flex;
1637
1771
  flex-direction: column;
1638
1772
  gap: 10px;
@@ -1662,9 +1796,9 @@
1662
1796
  font-weight: 600;
1663
1797
  }
1664
1798
  .studio-layout-card.is-soft {
1665
- border: 1px solid rgb(var(--primary-200-base));
1666
- background: rgb(var(--primary-50-base));
1667
- color: rgb(var(--primary-950-base));
1799
+ border: 1px solid var(--color-border-default-subtle);
1800
+ background: var(--color-surface-default-background);
1801
+ color: var(--color-surface-default-card-foreground);
1668
1802
  }
1669
1803
  .studio-layout-tags {
1670
1804
  display: flex;
@@ -1691,10 +1825,10 @@
1691
1825
  width: 26px;
1692
1826
  height: 26px;
1693
1827
  margin-left: -6px;
1694
- border: 2px solid rgb(var(--primary-50-base));
1828
+ border: 2px solid var(--color-surface-default-background);
1695
1829
  border-radius: var(--radius-avatar-rounding-default);
1696
- background: rgb(var(--primary-300-base));
1697
- color: rgb(var(--primary-950-base));
1830
+ background: var(--color-interactive-subtle-secondary-background);
1831
+ color: var(--color-interactive-subtle-secondary-foreground);
1698
1832
  font-size: 9px;
1699
1833
  font-weight: 600;
1700
1834
  }
@@ -1702,8 +1836,8 @@
1702
1836
  margin-left: 0;
1703
1837
  }
1704
1838
  .studio-layout-avatars span:nth-child(2) {
1705
- background: rgb(var(--primary-500-base));
1706
- color: rgb(var(--primary-50-base));
1839
+ background: var(--color-interactive-primary-background);
1840
+ color: var(--color-interactive-primary-foreground);
1707
1841
  }
1708
1842
  .studio-layout-card.is-stats {
1709
1843
  gap: 2px;
@@ -1738,17 +1872,19 @@
1738
1872
  width: 100%;
1739
1873
  max-width: 20px;
1740
1874
  border-radius: var(--radius-global-rounding-s) var(--radius-global-rounding-s) 0 0;
1741
- background: rgb(var(--primary-200-base));
1875
+ background: color-mix(in srgb, var(--color-interactive-secondary-background) 30%, transparent);
1742
1876
  }
1743
1877
  .studio-layout-bar.is-today > span:first-child {
1744
- background: rgb(var(--primary-600-base));
1878
+ background: var(--color-interactive-primary-background);
1745
1879
  }
1746
1880
  .studio-layout-day {
1747
1881
  opacity: 0.6;
1748
1882
  }
1883
+ /* The highlighted ("recommended") plan: a card outlined in the primary color, which reads in light and dark mode. */
1749
1884
  .studio-layout-card.is-bold {
1750
- background: rgb(var(--primary-400-base));
1751
- color: rgb(var(--primary-950-base));
1885
+ border: 2px solid var(--color-interactive-primary-background);
1886
+ background: var(--color-surface-default-card);
1887
+ color: var(--color-surface-default-card-foreground);
1752
1888
  }
1753
1889
  .studio-layout-price span {
1754
1890
  margin-left: 2px;
@@ -1771,13 +1907,45 @@
1771
1907
  }
1772
1908
  .studio-layout-features svg {
1773
1909
  flex-shrink: 0;
1774
- color: rgb(var(--primary-800-base));
1910
+ color: var(--color-interactive-primary-background);
1775
1911
  }
1776
1912
  .studio-layout-card .studio-layout-cta {
1777
1913
  margin-top: auto;
1778
1914
  }
1779
1915
  .studio-layout-card.is-form {
1780
- grid-column: 1 / -1;
1916
+ flex-basis: 100%;
1917
+ container-type: inline-size;
1918
+ min-height: 0;
1919
+ gap: 14px;
1920
+ border: 1px solid var(--color-border-default-subtle);
1921
+ background: var(--color-surface-default-card);
1922
+ color: var(--color-surface-default-card-foreground);
1923
+ }
1924
+ .studio-layout-card.is-invite {
1925
+ flex-basis: 100%;
1926
+ min-height: 0;
1927
+ gap: 14px;
1928
+ border: 1px solid var(--color-border-default-subtle);
1929
+ background: var(--color-surface-default-card);
1930
+ color: var(--color-surface-default-card-foreground);
1931
+ }
1932
+ /* The submit button sits on the input's baseline row, so mismatched control heights show at a glance. */
1933
+ .studio-layout-invite {
1934
+ display: flex;
1935
+ flex-wrap: wrap;
1936
+ align-items: flex-end;
1937
+ gap: 8px;
1938
+ }
1939
+ .studio-layout-invite > :first-child {
1940
+ flex: 1 1 200px;
1941
+ }
1942
+ .studio-layout-invite-actions {
1943
+ display: flex;
1944
+ flex-wrap: wrap;
1945
+ gap: 8px;
1946
+ }
1947
+ .studio-layout-card.is-settings {
1948
+ flex-basis: 100%;
1781
1949
  container-type: inline-size;
1782
1950
  min-height: 0;
1783
1951
  gap: 14px;
@@ -1785,6 +1953,93 @@
1785
1953
  background: var(--color-surface-default-card);
1786
1954
  color: var(--color-surface-default-card-foreground);
1787
1955
  }
1956
+ /* Top navigation spans the card edge to edge, above the breadcrumbs. */
1957
+ .studio-layout-nav {
1958
+ display: flex;
1959
+ flex-wrap: wrap;
1960
+ align-items: center;
1961
+ gap: 8px 16px;
1962
+ margin: -16px -16px 0;
1963
+ padding: 10px 16px;
1964
+ border-bottom: 1px solid var(--color-border-default-subtle);
1965
+ }
1966
+ .studio-layout-brand {
1967
+ display: inline-flex;
1968
+ align-items: center;
1969
+ gap: 8px;
1970
+ font-family: var(--font-titles);
1971
+ font-size: var(--text-lead);
1972
+ font-weight: 700;
1973
+ }
1974
+ .studio-layout-brand > span {
1975
+ display: grid;
1976
+ place-items: center;
1977
+ width: 26px;
1978
+ height: 26px;
1979
+ border-radius: var(--radius-global-rounding-s);
1980
+ background: var(--color-interactive-primary-background);
1981
+ color: var(--color-interactive-primary-foreground);
1982
+ font-size: var(--text-small);
1983
+ }
1984
+ .studio-layout-nav-links {
1985
+ display: flex;
1986
+ flex-wrap: wrap;
1987
+ gap: 4px;
1988
+ }
1989
+ .studio-layout-nav-actions {
1990
+ display: flex;
1991
+ align-items: center;
1992
+ gap: 8px;
1993
+ margin-left: auto;
1994
+ }
1995
+ .studio-layout-nav-actions > :first-child {
1996
+ width: 200px;
1997
+ }
1998
+ .studio-layout-nav-avatar {
1999
+ display: grid;
2000
+ place-items: center;
2001
+ width: 32px;
2002
+ height: 32px;
2003
+ border-radius: var(--radius-avatar-rounding-default);
2004
+ background: var(--color-interactive-subtle-secondary-background);
2005
+ color: var(--color-interactive-subtle-secondary-foreground);
2006
+ font-size: var(--text-small);
2007
+ font-weight: 600;
2008
+ }
2009
+ /* Menu beside the form, stacking above it in narrow previews. */
2010
+ .studio-layout-settings {
2011
+ display: grid;
2012
+ grid-template-columns: minmax(160px, 200px) minmax(0, 1fr);
2013
+ gap: 24px;
2014
+ align-items: start;
2015
+ }
2016
+ @container (max-width: 560px) {
2017
+ .studio-layout-settings {
2018
+ grid-template-columns: minmax(0, 1fr);
2019
+ }
2020
+ }
2021
+ .studio-layout-menu {
2022
+ display: flex;
2023
+ flex-direction: column;
2024
+ overflow: hidden;
2025
+ border: 1px solid var(--color-border-default-subtle);
2026
+ border-radius: var(--radius-list-rounding-dropdown);
2027
+ }
2028
+ .studio-layout-menu button {
2029
+ width: 100%;
2030
+ font: inherit;
2031
+ text-align: left;
2032
+ }
2033
+ /* The current page uses the menu's highlighted (open) item colors. */
2034
+ .studio-layout-menu button[aria-current="page"] {
2035
+ background: var(--color-interactive-primary-background);
2036
+ color: var(--color-interactive-primary-foreground);
2037
+ }
2038
+ .studio-layout-menu-label {
2039
+ display: inline-flex;
2040
+ align-items: center;
2041
+ gap: inherit;
2042
+ }
1788
2043
  .studio-layout-muted {
1789
2044
  margin-top: 2px;
1790
2045
  opacity: 0.7;
@@ -1836,17 +2091,275 @@
1836
2091
  border: 0;
1837
2092
  border-radius: 4px;
1838
2093
  background: transparent;
1839
- color: #7b8480;
2094
+ color: #828282;
1840
2095
  cursor: pointer;
1841
2096
  }
1842
2097
  .studio-palette-reset:hover:not(:disabled) {
1843
- color: #263f38;
2098
+ color: #393939;
1844
2099
  }
1845
2100
  .studio-palette-reset:disabled {
1846
2101
  opacity: 0.4;
1847
2102
  cursor: default;
1848
2103
  }
1849
2104
  .studio-palette-reset:focus-visible {
1850
- outline: 2px solid #3d8d68;
2105
+ outline: 2px solid #797979;
1851
2106
  outline-offset: 1px;
1852
2107
  }
2108
+
2109
+ /* Font roles: picker cards for heading and body fonts, above the font families they choose from. */
2110
+ .studio-font-roles {
2111
+ display: grid;
2112
+ gap: 8px;
2113
+ padding: 12px 0 4px;
2114
+ }
2115
+ .studio-font-role {
2116
+ position: relative;
2117
+ display: flex;
2118
+ align-items: center;
2119
+ gap: 12px;
2120
+ padding: 10px 14px;
2121
+ border: 1px solid #e5e5e5;
2122
+ border-radius: 10px;
2123
+ background: #fff;
2124
+ }
2125
+ .studio-font-role:hover {
2126
+ border-color: #d0d0d0;
2127
+ background: #fafafa;
2128
+ }
2129
+ .studio-font-role:has(select:focus-visible) {
2130
+ outline: 2px solid #797979;
2131
+ outline-offset: 2px;
2132
+ }
2133
+ .studio-font-role-text {
2134
+ display: flex;
2135
+ flex: 1;
2136
+ flex-direction: column;
2137
+ gap: 2px;
2138
+ min-width: 0;
2139
+ }
2140
+ .studio-font-role-text span {
2141
+ color: #8e8e8e;
2142
+ font-size: 10px;
2143
+ }
2144
+ .studio-font-role-text strong {
2145
+ overflow: hidden;
2146
+ color: #2f2f2f;
2147
+ font-size: 13px;
2148
+ font-weight: 600;
2149
+ text-overflow: ellipsis;
2150
+ white-space: nowrap;
2151
+ }
2152
+ .studio-font-role-sample {
2153
+ color: #2f2f2f;
2154
+ font-size: 20px;
2155
+ line-height: 1;
2156
+ }
2157
+ .studio-font-role-select {
2158
+ position: absolute;
2159
+ inset: 0;
2160
+ width: 100%;
2161
+ opacity: 0;
2162
+ cursor: pointer;
2163
+ }
2164
+ /* The reset sits above the select so it stays clickable. */
2165
+ .studio-font-role-reset {
2166
+ position: relative;
2167
+ z-index: 1;
2168
+ display: grid;
2169
+ place-items: center;
2170
+ width: 24px;
2171
+ height: 24px;
2172
+ padding: 0;
2173
+ border: 0;
2174
+ border-radius: 4px;
2175
+ background: transparent;
2176
+ color: #7a7a7a;
2177
+ cursor: pointer;
2178
+ }
2179
+ .studio-font-role-reset:hover {
2180
+ background: #efefef;
2181
+ }
2182
+ .studio-font-divider {
2183
+ margin: 16px 0 4px;
2184
+ border: 0;
2185
+ border-top: 1px solid #e5e5e5;
2186
+ }
2187
+ .studio-font-upload {
2188
+ display: flex;
2189
+ flex-wrap: wrap;
2190
+ align-items: center;
2191
+ gap: 6px 10px;
2192
+ padding-top: 8px;
2193
+ }
2194
+ .studio-font-upload-note {
2195
+ flex: 1 1 200px;
2196
+ margin: 0;
2197
+ color: #8e8e8e;
2198
+ font-size: 10px;
2199
+ line-height: 1.5;
2200
+ }
2201
+
2202
+ /* Presets: one row per preset with a palette strip, its description and an apply button. */
2203
+ .studio-presets {
2204
+ display: grid;
2205
+ gap: 8px;
2206
+ }
2207
+ .studio-presets-intro {
2208
+ margin: 0 0 4px;
2209
+ color: #8e8e8e;
2210
+ font-size: 11px;
2211
+ line-height: 1.5;
2212
+ }
2213
+ .studio-preset {
2214
+ display: flex;
2215
+ align-items: center;
2216
+ gap: 12px;
2217
+ padding: 12px 14px;
2218
+ border: 1px solid #e5e5e5;
2219
+ border-radius: 10px;
2220
+ background: #fff;
2221
+ }
2222
+ .studio-preset.is-active {
2223
+ border-color: #b9b9b9;
2224
+ background: #fafafa;
2225
+ }
2226
+ .studio-preset-swatches {
2227
+ display: flex;
2228
+ flex-shrink: 0;
2229
+ overflow: hidden;
2230
+ border: 1px solid #e5e5e5;
2231
+ border-radius: 6px;
2232
+ }
2233
+ .studio-preset-swatches i {
2234
+ width: 12px;
2235
+ height: 28px;
2236
+ }
2237
+ .studio-preset-text {
2238
+ display: flex;
2239
+ flex: 1;
2240
+ flex-direction: column;
2241
+ gap: 2px;
2242
+ min-width: 0;
2243
+ }
2244
+ .studio-preset-text strong {
2245
+ color: #2f2f2f;
2246
+ font-size: 12px;
2247
+ font-weight: 600;
2248
+ }
2249
+ .studio-preset-text span {
2250
+ color: #8e8e8e;
2251
+ font-size: 10px;
2252
+ line-height: 1.4;
2253
+ }
2254
+ .studio-preset button {
2255
+ flex-shrink: 0;
2256
+ padding: 7px 11px;
2257
+ border: 1px solid #e5e5e5;
2258
+ border-radius: 6px;
2259
+ background: #fff;
2260
+ color: #707070;
2261
+ font-size: 11px;
2262
+ }
2263
+ .studio-preset button:disabled {
2264
+ cursor: default;
2265
+ }
2266
+
2267
+ /* Full app screens (dashboard, sign-in) span the preview like the settings page. */
2268
+ .studio-layout-card.is-screen {
2269
+ flex-basis: 100%;
2270
+ container-type: inline-size;
2271
+ min-height: 0;
2272
+ gap: 16px;
2273
+ border: 1px solid var(--color-border-default-subtle);
2274
+ background: var(--color-surface-default-card);
2275
+ color: var(--color-surface-default-card-foreground);
2276
+ }
2277
+ .studio-layout-screen-heading {
2278
+ display: flex;
2279
+ flex-wrap: wrap;
2280
+ align-items: flex-end;
2281
+ justify-content: space-between;
2282
+ gap: 12px;
2283
+ }
2284
+ .studio-layout-stats {
2285
+ display: grid;
2286
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2287
+ gap: 12px;
2288
+ }
2289
+ .studio-layout-stat {
2290
+ display: flex;
2291
+ flex-direction: column;
2292
+ gap: 4px;
2293
+ padding: 14px;
2294
+ border: 1px solid var(--color-border-default-subtle);
2295
+ border-radius: var(--radius-global-rounding-m);
2296
+ }
2297
+ .studio-layout-card.is-login {
2298
+ align-items: center;
2299
+ padding: 40px 16px;
2300
+ background: var(--color-surface-default-background);
2301
+ }
2302
+ .studio-layout-login {
2303
+ display: flex;
2304
+ flex-direction: column;
2305
+ gap: 14px;
2306
+ width: 100%;
2307
+ max-width: 360px;
2308
+ padding: 28px;
2309
+ box-sizing: border-box;
2310
+ border: 1px solid var(--color-border-default-subtle);
2311
+ border-radius: var(--radius-modal-rounding-default);
2312
+ background: var(--color-surface-default-card);
2313
+ }
2314
+ .studio-layout-login-row {
2315
+ display: flex;
2316
+ flex-wrap: wrap;
2317
+ align-items: center;
2318
+ justify-content: space-between;
2319
+ gap: 8px;
2320
+ }
2321
+ .studio-layout-login-divider {
2322
+ display: flex;
2323
+ align-items: center;
2324
+ gap: 10px;
2325
+ opacity: 0.6;
2326
+ }
2327
+ .studio-layout-login-divider::before,
2328
+ .studio-layout-login-divider::after {
2329
+ content: "";
2330
+ flex: 1;
2331
+ border-top: 1px solid var(--color-border-default-subtle);
2332
+ }
2333
+ .studio-layout-login-footer {
2334
+ text-align: center;
2335
+ }
2336
+
2337
+ /* The modal card holds a trigger; the dialog itself is portaled into the card so it inherits the preview's tokens. */
2338
+ .studio-layout-card.is-modal {
2339
+ min-height: 0;
2340
+ justify-content: space-between;
2341
+ border: 1px solid var(--color-border-default-subtle);
2342
+ background: var(--color-surface-default-card);
2343
+ color: var(--color-surface-default-card-foreground);
2344
+ }
2345
+ .studio-layout-modal {
2346
+ display: flex;
2347
+ flex-direction: column;
2348
+ gap: 14px;
2349
+ width: min(420px, 100%);
2350
+ font-family: var(--font-body);
2351
+ }
2352
+ .studio-layout-modal h4 {
2353
+ margin: 0;
2354
+ font-family: var(--font-titles);
2355
+ font-size: var(--text-h4);
2356
+ line-height: var(--text-h4--line-height);
2357
+ }
2358
+ .studio-layout-modal p {
2359
+ margin: 0;
2360
+ }
2361
+ .studio-layout-modal-actions {
2362
+ display: flex;
2363
+ justify-content: flex-end;
2364
+ gap: 8px;
2365
+ }