@innovastudio/contentbox 1.6.194 → 1.6.196

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.
@@ -1,9 +1,76 @@
1
+ @charset "UTF-8";
1
2
  /*
2
3
  @import url("../ionicons/css/ionicons.min.css");
3
4
  @import url("../icons/bootstrap-icons.min.css");
4
5
  */
5
6
  @import url("https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.0/css/ionicons.min.css");
6
7
  @import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");
8
+ body {
9
+ --cb-surface: #fff;
10
+ --cb-chat-bubble-bg: #171717;
11
+ --cb-chat-bubble-text: #ffffff;
12
+ --cb-surface-2: rgba(0,0,0,.04);
13
+ --cb-surface-3: rgba(250,250,250,1);
14
+ --cb-float-surface: rgba(255,255,255,.95);
15
+ --cb-text: rgba(0,0,0,.92);
16
+ --cb-text-2: rgba(0,0,0,.7);
17
+ --cb-text-3: rgba(0,0,0,.4);
18
+ --cb-text-4: rgba(0,0,0,.28);
19
+ --cb-line: rgba(0,0,0,.09);
20
+ --cb-line-2: rgba(0,0,0,.05);
21
+ --cb-line-4: rgba(0,0,0,.18);
22
+ --cb-fill: rgba(0,0,0,.05);
23
+ --cb-fill-hover: rgba(0,0,0,.08);
24
+ --cb-fill-active: rgba(0,0,0,.09);
25
+ --cb-accent: #2c6fdb;
26
+ --cb-accent-fill: rgba(44,111,219,.12);
27
+ --cb-accent-fill-2: rgba(44,111,219,.2);
28
+ --cb-accent-fill-3: rgba(0,0,0,0.05);
29
+ --cb-accent-line: rgba(44,111,219,.45);
30
+ --cb-danger: #e84949;
31
+ --cb-danger-fill: rgba(232,73,73,.16);
32
+ --cb-success: #3aa76d;
33
+ --cb-shadow: -1px 5px 8px 0px rgba(0,0,0,.08);
34
+ --cb-shadow-2: 3px 11px 24px 0px rgba(0,0,0,.05);
35
+ --cb-on-accent: #fff;
36
+ }
37
+
38
+ body.dark, body.colored, body.colored-dark {
39
+ --cb-surface: #2b2b2b;
40
+ --cb-chat-bubble-bg: #181818;
41
+ --cb-chat-bubble-text: #f0f0f0;
42
+ --cb-surface-2: rgba(255,255,255,.07);
43
+ --cb-surface-3: rgba(78,78,78,1);
44
+ --cb-float-surface: rgba(38,38,40,.96);
45
+ --cb-text: rgba(255,255,255,.92);
46
+ --cb-text-2: rgba(255,255,255,.82);
47
+ --cb-text-3: rgba(255,255,255,.45);
48
+ --cb-text-4: rgba(255,255,255,.32);
49
+ --cb-line: rgba(255,255,255,.14);
50
+ --cb-line-2: rgba(255,255,255,.08);
51
+ --cb-line-4: rgba(255,255,255,.22);
52
+ --cb-fill: rgba(255,255,255,.08);
53
+ --cb-fill-hover: rgba(255,255,255,.14);
54
+ --cb-fill-active: rgba(255,255,255,.2);
55
+ --cb-accent: #5b9dff;
56
+ --cb-accent-fill: rgba(91,157,255,.18);
57
+ --cb-accent-fill-2: rgba(91,157,255,.28);
58
+ --cb-accent-fill-3: rgba(255,255,255,.09);
59
+ --cb-accent-line: rgba(91,157,255,.55);
60
+ --cb-danger: #ff6b6b;
61
+ --cb-danger-fill: rgba(255,107,107,.2);
62
+ --cb-success: #57c993;
63
+ --cb-shadow: -1px 5px 14px 0px rgba(0,0,0,.55);
64
+ --cb-shadow-2: 3px 11px 24px 0px rgba(0,0,0,.45);
65
+ }
66
+
67
+ body.dark .motion-dock, body.dark .cascade-dock, body.dark .is-controlpanel, body.dark .is-modal, body.dark .is-sidebar, body.colored .motion-dock, body.colored .cascade-dock, body.colored .is-controlpanel, body.colored .is-modal, body.colored .is-sidebar, body.colored-dark .motion-dock, body.colored-dark .cascade-dock, body.colored-dark .is-controlpanel, body.colored-dark .is-modal, body.colored-dark .is-sidebar {
68
+ color-scheme: dark;
69
+ }
70
+ body.dark .motion-dock iframe, body.dark .cascade-dock iframe, body.dark .is-controlpanel iframe, body.dark .is-modal iframe, body.dark .is-sidebar iframe, body.colored .motion-dock iframe, body.colored .cascade-dock iframe, body.colored .is-controlpanel iframe, body.colored .is-modal iframe, body.colored .is-sidebar iframe, body.colored-dark .motion-dock iframe, body.colored-dark .cascade-dock iframe, body.colored-dark .is-controlpanel iframe, body.colored-dark .is-modal iframe, body.colored-dark .is-sidebar iframe {
71
+ color-scheme: light;
72
+ }
73
+
7
74
  :root {
8
75
  --focus-outline-color: #3e93f7;
9
76
  --rangeslider-thumb-color: #0e75de;
@@ -20,10 +87,18 @@
20
87
  height: 1.2rem !important;
21
88
  }
22
89
  }
90
+ /* The canvas: the device-mode frame the page is edited in.
91
+ *
92
+ * Sized and scaled by iframepanel.applyCanvasScale(), which measures the workspace
93
+ * and publishes the result as the custom properties below. See canvas-size.js for
94
+ * why this cannot be media queries: what overflows is height, the tiers keyed on
95
+ * width, and a fit-to-box factor is a ratio of two lengths, which CSS cannot form.
96
+ *
97
+ * The sizes here are the pre-script state and the fallback. They match CANVAS_SIZES.
98
+ */
23
99
  .is-content-view.desktop-lg {
24
100
  width: 1920px;
25
101
  height: 1080px;
26
- transform: scale(0.74);
27
102
  }
28
103
  .is-content-view.desktop {
29
104
  width: 1366px;
@@ -42,594 +117,6 @@
42
117
  height: 844px;
43
118
  }
44
119
 
45
- /* large screen*/
46
- @media all and (min-width: 1920px) {
47
- .is-content-view.desktop-lg {
48
- width: 1920px;
49
- height: 1080px;
50
- transform: scale(0.74);
51
- }
52
-
53
- .is-content-view.desktop {
54
- width: 1366px;
55
- height: 853px;
56
- transform: scale(0.96);
57
- }
58
-
59
- .is-content-view.tablet-landscape {
60
- width: 1120px;
61
- height: 820px;
62
- transform: scale(0.98);
63
- }
64
-
65
- .is-content-view.tablet {
66
- width: 768px;
67
- height: 1024px;
68
- transform: scale(0.8);
69
- }
70
-
71
- .is-content-view.mobile {
72
- width: 390px;
73
- height: 844px;
74
- transform: scale(0.98);
75
- }
76
- }
77
- @media all and (min-width: 1940px) {
78
- .is-content-view.desktop-lg {
79
- width: 1920px;
80
- height: 1080px;
81
- transform: scale(0.84);
82
- }
83
-
84
- .is-content-view.desktop {
85
- width: 1620px;
86
- height: 1012px;
87
- transform: scale(1);
88
- }
89
-
90
- .is-content-view.tablet-landscape {
91
- width: 1120px;
92
- height: 820px;
93
- transform: scale(1);
94
- }
95
-
96
- .is-content-view.tablet {
97
- width: 768px;
98
- height: 1024px;
99
- transform: scale(1);
100
- }
101
-
102
- .is-content-view.mobile {
103
- width: 390px;
104
- height: 844px;
105
- transform: scale(1);
106
- }
107
- }
108
- @media all and (min-width: 2000px) {
109
- .is-content-view.desktop-lg {
110
- width: 1920px;
111
- height: 1080px;
112
- transform: scale(0.88);
113
- }
114
-
115
- .is-content-view.desktop {
116
- width: 1730px;
117
- height: 1080px;
118
- transform: scale(1);
119
- }
120
-
121
- body.topspace .is-content-view.desktop-lg {
122
- width: 1920px;
123
- height: 1080px;
124
- transform: scale(0.84);
125
- }
126
-
127
- body.topspace .is-content-view.desktop {
128
- width: 1620px;
129
- height: 1012px;
130
- transform: scale(1);
131
- }
132
- }
133
- @media all and (max-width: 1720px) {
134
- .is-content-view {
135
- transform: scale(0.89);
136
- }
137
- .is-content-view.desktop-lg {
138
- transform: scale(0.62);
139
- }
140
- .is-content-view.tablet {
141
- transform: scale(0.75);
142
- }
143
-
144
- body.topspace .is-content-view {
145
- transform: scale(0.83);
146
- }
147
- body.topspace .is-content-view.desktop-lg {
148
- transform: scale(0.62);
149
- }
150
- body.topspace .is-content-view.tablet {
151
- transform: scale(0.7);
152
- }
153
- }
154
- @media all and (max-width: 1920px) {
155
- body.topspace .is-content-view.tablet {
156
- transform: scale(0.7);
157
- }
158
- }
159
- @media all and (max-width: 1620px) {
160
- .is-content-view {
161
- transform: scale(0.86);
162
- }
163
- .is-content-view.desktop-lg {
164
- transform: scale(0.6);
165
- }
166
-
167
- body.topspace .is-content-view {
168
- transform: scale(0.8);
169
- }
170
- body.topspace .is-content-view.desktop-lg {
171
- transform: scale(0.6);
172
- }
173
- body.topspace .is-content-view.tablet {
174
- transform: scale(0.7);
175
- }
176
- }
177
- @media all and (max-width: 1520px) {
178
- .is-content-view {
179
- transform: scale(0.86);
180
- }
181
- .is-content-view.desktop-lg {
182
- transform: scale(0.6);
183
- }
184
-
185
- body.topspace .is-content-view {
186
- transform: scale(0.8);
187
- }
188
- body.topspace .is-content-view.desktop-lg {
189
- transform: scale(0.59);
190
- }
191
- }
192
- @media all and (max-width: 1450px) {
193
- .is-content-view {
194
- transform: scale(0.86);
195
- }
196
- .is-content-view.desktop-lg {
197
- transform: scale(0.59);
198
- }
199
-
200
- body.topspace .is-content-view {
201
- transform: scale(0.8);
202
- }
203
- body.topspace .is-content-view.desktop-lg {
204
- transform: scale(0.6);
205
- }
206
- }
207
- @media all and (max-width: 1390px) {
208
- .is-content-view {
209
- transform: scale(0.84);
210
- }
211
- .is-content-view.desktop-lg {
212
- transform: scale(0.57);
213
- }
214
-
215
- body.topspace .is-content-view {
216
- transform: scale(0.78);
217
- }
218
- body.topspace .is-content-view.desktop-lg {
219
- transform: scale(0.57);
220
- }
221
- }
222
- @media all and (max-width: 1330px) {
223
- .is-content-view {
224
- transform: scale(0.8);
225
- }
226
- .is-content-view.desktop-lg {
227
- transform: scale(0.52);
228
- }
229
-
230
- body.topspace .is-content-view {
231
- transform: scale(0.74);
232
- }
233
- body.topspace .is-content-view.desktop-lg {
234
- transform: scale(0.52);
235
- }
236
- }
237
- @media all and (max-width: 1270px) {
238
- .is-content-view {
239
- transform: scale(0.76);
240
- }
241
- .is-content-view.desktop-lg {
242
- transform: scale(0.34);
243
- }
244
-
245
- body.topspace .is-content-view {
246
- transform: scale(0.7);
247
- }
248
- body.topspace .is-content-view.desktop-lg {
249
- transform: scale(0.34);
250
- }
251
- }
252
- @media all and (max-width: 1210px) {
253
- .is-content-view {
254
- transform: scale(0.72);
255
- }
256
- .is-content-view.desktop-lg {
257
- transform: scale(0.3);
258
- }
259
-
260
- body.topspace .is-content-view {
261
- transform: scale(0.66);
262
- }
263
- body.topspace .is-content-view.desktop-lg {
264
- transform: scale(0.3);
265
- }
266
- }
267
- @media all and (max-width: 1150px) {
268
- .is-content-view {
269
- transform: scale(0.68);
270
- }
271
- .is-content-view.desktop-lg {
272
- transform: scale(0.24);
273
- }
274
-
275
- body.topspace .is-content-view {
276
- transform: scale(0.62);
277
- }
278
- body.topspace .is-content-view.desktop-lg {
279
- transform: scale(0.24);
280
- }
281
- }
282
- @media all and (max-width: 1090px) {
283
- .is-content-view {
284
- transform: scale(0.64);
285
- }
286
- .is-content-view.desktop-lg {
287
- transform: scale(0.2);
288
- }
289
-
290
- body.topspace .is-content-view {
291
- transform: scale(0.58);
292
- }
293
- body.topspace .is-content-view.desktop-lg {
294
- transform: scale(0.2);
295
- }
296
- }
297
- @media all and (max-width: 1024px) {
298
- .is-content-view {
299
- transform: scale(0.6);
300
- }
301
-
302
- body.topspace .is-content-view {
303
- transform: scale(0.5);
304
- }
305
- }
306
- @media all and (max-width: 970px) {
307
- .is-content-view {
308
- transform: scale(0.56);
309
- }
310
-
311
- body.topspace .is-content-view {
312
- transform: scale(0.5);
313
- }
314
- }
315
- @media all and (max-width: 900px) {
316
- .is-content-view {
317
- transform: scale(0.52);
318
- }
319
-
320
- body.topspace .is-content-view {
321
- transform: scale(0.46);
322
- }
323
- }
324
- @media all and (max-width: 850px) {
325
- .is-content-view {
326
- transform: scale(0.48);
327
- }
328
-
329
- body.topspace .is-content-view {
330
- transform: scale(0.42);
331
- }
332
- }
333
- @media all and (max-width: 790px) {
334
- .is-content-view {
335
- transform: scale(0.44);
336
- }
337
-
338
- body.topspace .is-content-view {
339
- transform: scale(0.38);
340
- }
341
- }
342
- @media all and (max-width: 730px) {
343
- .is-content-view {
344
- transform: scale(0.4);
345
- }
346
-
347
- body.topspace .is-content-view {
348
- transform: scale(0.34);
349
- }
350
- }
351
- body.controlpanel .is-content-view {
352
- margin-right: 290px;
353
- }
354
- body.controlpanel .is-content-view.desktop-lg {
355
- width: 1920px;
356
- height: 1080px;
357
- transform: scale(0.7);
358
- }
359
- body.controlpanel .is-content-view.desktop {
360
- width: 1366px;
361
- height: 853px;
362
- }
363
- body.controlpanel .is-content-view.tablet-landscape {
364
- width: 1120px;
365
- height: 820px;
366
- }
367
- body.controlpanel .is-content-view.tablet {
368
- width: 768px;
369
- height: 1024px;
370
- }
371
- body.controlpanel .is-content-view.mobile {
372
- width: 390px;
373
- height: 844px;
374
- }
375
- @media all and (min-width: 1920px) {
376
- body.controlpanel .is-content-view.desktop-lg {
377
- width: 1920px;
378
- height: 1080px;
379
- transform: scale(0.74);
380
- }
381
- body.controlpanel .is-content-view.desktop {
382
- width: 1366px;
383
- height: 853px;
384
- transform: scale(0.96);
385
- }
386
- body.controlpanel .is-content-view.tablet-landscape {
387
- width: 1120px;
388
- height: 820px;
389
- transform: scale(0.98);
390
- }
391
- body.controlpanel .is-content-view.tablet {
392
- width: 768px;
393
- height: 1024px;
394
- transform: scale(0.8);
395
- }
396
- body.controlpanel .is-content-view.mobile {
397
- width: 390px;
398
- height: 844px;
399
- transform: scale(0.98);
400
- }
401
- }
402
- @media all and (min-width: 1940px) {
403
- body.controlpanel .is-content-view.desktop-lg {
404
- width: 1920px;
405
- height: 1080px;
406
- transform: scale(0.78);
407
- }
408
- body.controlpanel .is-content-view.desktop {
409
- width: 1520px;
410
- height: 949px;
411
- transform: scale(1);
412
- }
413
- body.controlpanel .is-content-view.tablet-landscape {
414
- width: 1120px;
415
- height: 820px;
416
- transform: scale(1);
417
- }
418
- body.controlpanel .is-content-view.tablet {
419
- width: 768px;
420
- height: 1024px;
421
- transform: scale(1);
422
- }
423
- body.controlpanel .is-content-view.mobile {
424
- width: 390px;
425
- height: 844px;
426
- transform: scale(1);
427
- }
428
- }
429
- @media all and (min-width: 2080px) {
430
- body.controlpanel .is-content-view.desktop-lg {
431
- width: 1920px;
432
- height: 1080px;
433
- transform: scale(0.85);
434
- }
435
- body.controlpanel .is-content-view.desktop {
436
- width: 1620px;
437
- height: 1012px;
438
- }
439
- body.controlpanel .is-content-view.tablet-landscape {
440
- width: 1120px;
441
- height: 820px;
442
- }
443
- }
444
- @media all and (min-width: 2250px) {
445
- body.controlpanel .is-content-view.desktop-lg {
446
- width: 1920px;
447
- height: 1080px;
448
- transform: scale(0.88);
449
- }
450
- body.controlpanel .is-content-view.desktop {
451
- width: 1730px;
452
- height: 1080px;
453
- transform: scale(1);
454
- }
455
- body.controlpanel.topspace .is-content-view.desktop {
456
- width: 1620px;
457
- height: 1012px;
458
- transform: scale(1);
459
- }
460
- }
461
- @media all and (max-width: 1920px) {
462
- body.controlpanel .is-content-view.tablet {
463
- transform: scale(0.7);
464
- }
465
- }
466
- @media all and (max-width: 1800px) {
467
- body.controlpanel .is-content-view {
468
- transform: scale(0.95);
469
- }
470
- body.controlpanel .is-content-view.desktop-lg {
471
- transform: scale(0.66);
472
- }
473
- body.controlpanel .is-content-view.tablet {
474
- transform: scale(0.7);
475
- }
476
- body.controlpanel.topspace .is-content-view {
477
- transform: scale(0.9);
478
- }
479
- body.controlpanel.topspace .is-content-view.desktop-lg {
480
- transform: scale(0.68);
481
- }
482
- }
483
- @media all and (max-width: 1730px) {
484
- body.controlpanel .is-content-view {
485
- transform: scale(0.9);
486
- }
487
- body.controlpanel .is-content-view.desktop-lg {
488
- transform: scale(0.62);
489
- }
490
- body.controlpanel.topspace .is-content-view {
491
- transform: scale(0.85);
492
- }
493
- body.controlpanel.topspace .is-content-view.desktop-lg {
494
- transform: scale(0.62);
495
- }
496
- }
497
- @media all and (max-width: 1680px) {
498
- body.controlpanel .is-content-view {
499
- transform: scale(0.88);
500
- }
501
- body.controlpanel .is-content-view.desktop-lg {
502
- transform: scale(0.62);
503
- }
504
- body.controlpanel.topspace .is-content-view {
505
- transform: scale(0.83);
506
- }
507
- body.controlpanel.topspace .is-content-view.desktop-lg {
508
- transform: scale(0.62);
509
- }
510
- body.controlpanel.topspace .is-content-view.tablet {
511
- transform: scale(0.7);
512
- }
513
- }
514
- @media all and (max-width: 1600px) {
515
- body.controlpanel .is-content-view {
516
- transform: scale(0.8);
517
- }
518
- body.controlpanel .is-content-view.desktop-lg {
519
- transform: scale(0.58);
520
- }
521
- body.controlpanel.topspace .is-content-view {
522
- transform: scale(0.75);
523
- }
524
- body.controlpanel.topspace .is-content-view.desktop-lg {
525
- transform: scale(0.58);
526
- }
527
- }
528
- @media all and (max-width: 1520px) {
529
- body.controlpanel .is-content-view {
530
- transform: scale(0.75);
531
- }
532
- body.controlpanel .is-content-view.desktop-lg {
533
- transform: scale(0.54);
534
- }
535
- body.controlpanel.topspace .is-content-view {
536
- transform: scale(0.7);
537
- }
538
- body.controlpanel.topspace .is-content-view.desktop-lg {
539
- transform: scale(0.54);
540
- }
541
- body.controlpanel.topspace .is-content-view.tablet {
542
- transform: scale(0.58);
543
- }
544
- }
545
- @media all and (max-width: 1450px) {
546
- body.controlpanel .is-content-view {
547
- transform: scale(0.7);
548
- }
549
- body.controlpanel .is-content-view.desktop-lg {
550
- transform: scale(0.5);
551
- }
552
- body.controlpanel.topspace .is-content-view {
553
- transform: scale(0.65);
554
- }
555
- body.controlpanel.topspace .is-content-view.desktop-lg {
556
- transform: scale(0.5);
557
- }
558
- }
559
- @media all and (max-width: 1375px) {
560
- body.controlpanel .is-content-view {
561
- transform: scale(0.63);
562
- }
563
- body.controlpanel .is-content-view.desktop-lg {
564
- transform: scale(0.46);
565
- }
566
- body.controlpanel.topspace .is-content-view {
567
- transform: scale(0.58);
568
- }
569
- body.controlpanel.topspace .is-content-view.desktop-lg {
570
- transform: scale(0.46);
571
- }
572
- }
573
- @media all and (max-width: 1300px) {
574
- body.controlpanel .is-content-view {
575
- transform: scale(0.6);
576
- }
577
- body.controlpanel .is-content-view.desktop-lg {
578
- transform: scale(0.42);
579
- }
580
- body.controlpanel.topspace .is-content-view {
581
- transform: scale(0.55);
582
- }
583
- body.controlpanel.topspace .is-content-view.desktop-lg {
584
- transform: scale(0.42);
585
- }
586
- }
587
- @media all and (max-width: 1235px) {
588
- body.controlpanel .is-content-view {
589
- transform: scale(0.55);
590
- }
591
- body.controlpanel .is-content-view.desktop-lg {
592
- transform: scale(0.38);
593
- }
594
- body.controlpanel.topspace .is-content-view {
595
- transform: scale(0.5);
596
- }
597
- body.controlpanel.topspace .is-content-view.desktop-lg {
598
- transform: scale(0.38);
599
- }
600
- body.controlpanel.topspace .is-content-view.tablet {
601
- transform: scale(0.5);
602
- }
603
- }
604
- @media all and (max-width: 1175px) {
605
- body.controlpanel .is-content-view {
606
- transform: scale(0.5);
607
- }
608
- body.controlpanel .is-content-view.desktop-lg {
609
- transform: scale(0.34);
610
- }
611
- body.controlpanel.topspace .is-content-view {
612
- transform: scale(0.45);
613
- }
614
- body.controlpanel.topspace .is-content-view.desktop-lg {
615
- transform: scale(0.34);
616
- }
617
- }
618
- @media all and (max-width: 1090px) {
619
- body.controlpanel .is-content-view {
620
- transform: scale(0.45);
621
- }
622
- body.controlpanel .is-content-view.desktop-lg {
623
- transform: scale(0.3);
624
- }
625
- body.controlpanel.topspace .is-content-view {
626
- transform: scale(0.4);
627
- }
628
- body.controlpanel.topspace .is-content-view.desktop-lg {
629
- transform: scale(0.3);
630
- }
631
- }
632
-
633
120
  /* /IFRAME */
634
121
  *, ::before, ::after {
635
122
  border-width: 0;
@@ -642,6 +129,7 @@ body.controlpanel .is-content-view.mobile {
642
129
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
643
130
  font-size: 14px;
644
131
  font-weight: 300;
132
+ color: var(--cb-text);
645
133
  /* content.css */
646
134
  /* /content.css */
647
135
  }
@@ -677,7 +165,7 @@ body.controlpanel .is-content-view.mobile {
677
165
  margin: 0.8rem 0 0.8rem;
678
166
  }
679
167
  .builder-ui a {
680
- color: #000;
168
+ color: var(--cb-text);
681
169
  }
682
170
  .builder-ui .text-left {
683
171
  text-align: left;
@@ -897,6 +385,9 @@ body.controlpanel .is-content-view.mobile {
897
385
  width: 16px;
898
386
  height: 16px;
899
387
  }
388
+ .builder-ui svg:not([fill]) {
389
+ fill: currentColor;
390
+ }
900
391
  .builder-ui .tooltip {
901
392
  /* prevent overide by css framework */
902
393
  opacity: unset;
@@ -906,7 +397,7 @@ body.controlpanel .is-content-view.mobile {
906
397
  .builder-ui button {
907
398
  width: 38px;
908
399
  height: 34px;
909
- color: #111;
400
+ color: var(--cb-text);
910
401
  background-color: transparent;
911
402
  box-shadow: none;
912
403
  margin: 2px;
@@ -923,6 +414,9 @@ body.controlpanel .is-content-view.mobile {
923
414
  line-height: 1;
924
415
  transition: all 0.15s ease;
925
416
  }
417
+ .builder-ui button.w-full {
418
+ width: 100%;
419
+ }
926
420
  .builder-ui button.auto {
927
421
  width: auto;
928
422
  padding: 0 14px;
@@ -933,14 +427,6 @@ body.controlpanel .is-content-view.mobile {
933
427
  .builder-ui button.btn-editcode, .builder-ui button.btn-editmodule {
934
428
  width: 100%;
935
429
  height: 39px;
936
- background: rgb(135, 116, 215);
937
- color: #fff;
938
- }
939
- .builder-ui button.btn-editcode svg, .builder-ui button.btn-editmodule svg {
940
- fill: #fff;
941
- }
942
- .builder-ui button.btn-editcode:hover, .builder-ui button.btn-editmodule:hover {
943
- background: rgb(135, 116, 215) !important;
944
430
  }
945
431
  .builder-ui button.is-btn-color {
946
432
  width: 41px;
@@ -951,14 +437,12 @@ body.controlpanel .is-content-view.mobile {
951
437
  width: 37px;
952
438
  height: 35px;
953
439
  }
954
- .builder-ui button.on {
955
- background-color: rgb(237, 237, 237);
956
- }
957
- .builder-ui button.on:hover {
958
- background-color: rgb(239, 239, 239);
959
- }
960
440
  .builder-ui button:not(.is-btn-color):hover {
961
- background-color: rgb(243, 244, 246);
441
+ background-color: var(--cb-fill-hover);
442
+ }
443
+ .builder-ui button:not(.is-btn-color).on, .builder-ui button:not(.is-btn-color).active, .builder-ui button:not(.is-btn-color)[aria-pressed=true] {
444
+ background-color: var(--cb-accent-fill);
445
+ color: var(--cb-accent);
962
446
  }
963
447
  .builder-ui .panel-plugin .is-accordion {
964
448
  display: flex;
@@ -1045,7 +529,7 @@ body.controlpanel .is-content-view.mobile {
1045
529
  margin: 20px 0 3px;
1046
530
  font-weight: 400;
1047
531
  line-height: 1.6;
1048
- color: #4b4b4b;
532
+ color: var(--cb-text-2);
1049
533
  display: flex;
1050
534
  flex-direction: column;
1051
535
  background: transparent;
@@ -1102,7 +586,7 @@ body.controlpanel .is-content-view.mobile {
1102
586
  .builder-ui .label.mb-3 {
1103
587
  margin-bottom: 14px;
1104
588
  }
1105
- .builder-ui input[type=text], .builder-ui input[type=number], .builder-ui textarea {
589
+ .builder-ui input[type=text], .builder-ui input[type=number], .builder-ui input[type=url], .builder-ui input[type=datetime-local], .builder-ui textarea {
1106
590
  width: 100%;
1107
591
  height: 43px;
1108
592
  box-sizing: border-box;
@@ -1113,12 +597,12 @@ body.controlpanel .is-content-view.mobile {
1113
597
  letter-spacing: 1px;
1114
598
  padding: 0;
1115
599
  padding-left: 8px;
1116
- color: #121212;
600
+ color: var(--cb-text);
1117
601
  display: inline-block;
1118
602
  border: none;
1119
603
  border-bottom: none;
1120
604
  border-radius: 5px;
1121
- background-color: #f6f6f6;
605
+ background-color: var(--cb-fill);
1122
606
  flex: none;
1123
607
  }
1124
608
  .builder-ui textarea {
@@ -1130,9 +614,9 @@ body.controlpanel .is-content-view.mobile {
1130
614
  letter-spacing: 1px;
1131
615
  height: 43px;
1132
616
  line-height: 1.7;
1133
- color: #4a4a4a;
617
+ color: var(--cb-text);
1134
618
  border: none;
1135
- background-color: #f6f6f6;
619
+ background-color: var(--cb-fill);
1136
620
  width: auto;
1137
621
  display: inline-block;
1138
622
  background-image: none;
@@ -1148,6 +632,7 @@ body.controlpanel .is-content-view.mobile {
1148
632
  }
1149
633
  .builder-ui input[type=text]:focus,
1150
634
  .builder-ui input[type=number]:focus,
635
+ .builder-ui input[type=datetime-local]:focus,
1151
636
  .builder-ui textarea:focus,
1152
637
  .builder-ui select:focus,
1153
638
  .builder-ui div[contenteditable=true]:focus {
@@ -1156,7 +641,7 @@ body.controlpanel .is-content-view.mobile {
1156
641
  box-shadow: none;
1157
642
  }
1158
643
  .builder-ui .group {
1159
- border: 1px solid #e1e1e1;
644
+ border: 1px solid var(--cb-line);
1160
645
  margin-bottom: 11px;
1161
646
  border-radius: 7px;
1162
647
  overflow: hidden;
@@ -1165,22 +650,54 @@ body.controlpanel .is-content-view.mobile {
1165
650
  padding: 2px;
1166
651
  box-sizing: border-box;
1167
652
  }
1168
- .builder-ui .div-target {
1169
- display: flex;
1170
- justify-content: flex-end;
1171
- margin-top: 6px;
653
+ .builder-ui .group:has(> button:nth-child(6)):not(:has(> button:nth-child(7))) {
654
+ max-width: 133px;
655
+ margin-right: 7px;
1172
656
  }
1173
- .builder-ui .div-target button {
1174
- width: 40px;
1175
- height: 28px;
657
+ .builder-ui .group:has(> button:nth-child(7)):not(:has(> button:nth-child(9))) {
658
+ width: 175px;
659
+ margin-right: 7px;
1176
660
  }
1177
- .builder-ui .div-target button[data-device=xs] svg {
661
+ .builder-ui .group:has(> button:nth-child(9)):not(:has(> button:nth-child(11))) {
662
+ max-width: 216px;
663
+ }
664
+ .builder-ui .group.single {
665
+ border-color: transparent;
666
+ padding: 0;
667
+ }
668
+ .builder-ui .group.single > button {
669
+ margin: 0;
670
+ height: 38px;
671
+ background-color: var(--cb-fill);
672
+ }
673
+ .builder-ui .group.single > button:hover {
674
+ background-color: var(--cb-fill-hover);
675
+ }
676
+ .builder-ui button.btn-single {
677
+ height: 38px;
678
+ background-color: var(--cb-fill);
679
+ }
680
+ .builder-ui button.btn-single:hover {
681
+ background-color: var(--cb-fill-hover);
682
+ }
683
+ .builder-ui .div-target {
684
+ display: flex;
685
+ gap: 4px;
686
+ justify-content: flex-end;
687
+ margin-top: 6px;
688
+ }
689
+ .builder-ui .div-target button {
690
+ width: 31px;
691
+ height: 28px;
692
+ margin: 0;
693
+ }
694
+ .builder-ui .div-target button[data-device=xs] svg {
1178
695
  width: 13px;
1179
696
  height: 13px;
1180
697
  }
1181
698
  .builder-ui .accordion-item {
1182
699
  width: 100%;
1183
- background-color: rgba(0, 0, 0, 0.05);
700
+ background-color: var(--cb-fill);
1184
701
  justify-content: space-between;
1185
702
  padding-left: 25px;
1186
703
  height: 45px;
@@ -1228,79 +745,84 @@ body.controlpanel .is-content-view.mobile {
1228
745
  transition: max-height 0.2s ease-out, opacity 0.1s ease-out;
1229
746
  }
1230
747
  .builder-ui .custom-select {
1231
- --cs-height: 46px;
1232
- --cs-border: 1px solid #ddd;
1233
- --cs-background: #fff;
1234
- --cs-hover-background: #f2f2f2;
1235
- --cs-selected-background: #eee;
748
+ --cs-height: 44px;
1236
749
  position: relative;
1237
750
  display: inline-block;
1238
- font-size: 15px;
751
+ width: 100%;
1239
752
  height: var(--cs-height);
753
+ font-size: 14px;
1240
754
  }
1241
755
  .builder-ui .custom-select .select-styled {
1242
756
  display: flex;
1243
757
  align-items: center;
1244
758
  justify-content: space-between;
1245
- padding: 0 6px 0 6px;
1246
- border: var(--cs-border);
759
+ gap: 8px;
760
+ height: var(--cs-height);
761
+ padding: 0 10px 0 14px;
762
+ box-sizing: border-box;
763
+ border: 1px solid var(--cb-line-3);
764
+ border-radius: 7px;
765
+ background: var(--cb-field-bg);
766
+ color: var(--cb-text);
1247
767
  cursor: pointer;
1248
- position: relative;
1249
768
  user-select: none;
1250
- box-sizing: border-box;
1251
- height: var(--cs-height);
1252
769
  overflow: hidden;
1253
- border-radius: 3px;
1254
- box-shadow: none;
770
+ transition: background 0.15s ease, border-color 0.15s ease;
1255
771
  outline: none;
1256
772
  }
1257
- .builder-ui .custom-select .select-styled span {
1258
- display: flex;
1259
- }
1260
- .builder-ui .custom-select .select-styled span img {
1261
- height: 25px;
1262
- margin-top: 3px;
1263
- }
1264
- .builder-ui .custom-select .select-styled:focus-visible {
1265
- outline: var(--focus-outline-color) 2px solid;
1266
- outline-offset: -1px;
773
+ .builder-ui .custom-select .select-styled:hover {
774
+ background: var(--cb-fill-hover);
1267
775
  }
1268
776
  .builder-ui .custom-select .select-styled > span:first-child {
1269
- position: absolute;
1270
- margin-right: 23px;
777
+ flex: 1 1 auto;
778
+ min-width: 0;
779
+ overflow: hidden;
780
+ text-overflow: ellipsis;
781
+ white-space: nowrap;
782
+ }
783
+ .builder-ui .custom-select .select-styled > span:first-child img {
784
+ height: 24px;
785
+ vertical-align: middle;
1271
786
  }
1272
787
  .builder-ui .custom-select .select-styled > span:nth-child(2) {
1273
- position: absolute;
1274
- height: 15px;
1275
- top: calc(50% - 7.5px);
1276
- right: 6px;
788
+ flex: none;
1277
789
  display: flex;
790
+ align-items: center;
791
+ color: var(--cb-text-3);
792
+ transition: transform 0.2s ease;
1278
793
  }
1279
794
  .builder-ui .custom-select .select-styled svg {
1280
- width: 15px;
1281
- height: 15px;
795
+ width: 16px;
796
+ height: 16px;
797
+ }
798
+ .builder-ui .custom-select .select-styled:focus-visible {
799
+ outline: var(--cb-field-focus-outline);
800
+ outline-offset: -1px;
1282
801
  }
1283
802
  .builder-ui .custom-select .select-styled[aria-expanded=true] > span:nth-child(2) {
1284
- -webkit-transform: rotate(-180deg);
1285
803
  transform: rotate(-180deg);
1286
- top: calc(50% - 7.5px);
1287
804
  }
1288
805
  .builder-ui .custom-select input {
1289
806
  display: none;
807
+ position: absolute;
808
+ top: calc(var(--cs-height) + 6px);
809
+ left: 0;
1290
810
  width: 100%;
1291
- height: 40px;
1292
- border: var(--cs-border);
1293
- border-top: none;
1294
- padding: 0 3px 0 8px;
811
+ height: 38px;
1295
812
  box-sizing: border-box;
1296
813
  margin: 0;
1297
- position: absolute;
1298
- top: var(--cs-height);
1299
- left: 0;
1300
- font-size: 15px;
814
+ padding: 0 12px;
1301
815
  z-index: 2;
1302
- outline-offset: 0;
1303
- background: var(--cs-background);
816
+ font-size: 14px;
817
+ color: var(--cb-text);
818
+ background: var(--cb-surface);
819
+ border: 1px solid var(--cb-line-3);
820
+ border-bottom: none;
821
+ border-radius: 7px 7px 0 0;
822
+ outline: none;
823
+ }
824
+ .builder-ui .custom-select input::placeholder {
825
+ color: var(--cb-text-3);
1304
826
  }
1305
827
  .builder-ui .custom-select input:focus {
1306
828
  outline: none;
@@ -1308,46 +830,76 @@ body.controlpanel .is-content-view.mobile {
1308
830
  .builder-ui .custom-select .select-options {
1309
831
  display: none;
1310
832
  position: absolute;
1311
- top: calc(var(--cs-height) + 1px);
833
+ top: calc(var(--cs-height) + 6px);
1312
834
  left: 0;
1313
- border: var(--cs-border);
835
+ width: 100%;
1314
836
  box-sizing: border-box;
1315
- border-top: none;
1316
- z-index: 1;
1317
- list-style: none;
1318
837
  margin: 0;
1319
- padding: 0;
1320
- width: 100%;
1321
- background-color: var(--cs-background);
838
+ padding: 5px;
1322
839
  z-index: 1;
1323
- max-height: 200px;
840
+ list-style: none;
841
+ max-height: 240px;
1324
842
  overflow-y: auto;
843
+ background: var(--cb-surface);
844
+ border: 1px solid var(--cb-line-3);
845
+ border-radius: 8px;
846
+ box-shadow: var(--cb-shadow-2);
1325
847
  }
1326
848
  .builder-ui .custom-select.has-search .select-options {
1327
- top: calc(var(--cs-height) + 40px);
849
+ top: calc(var(--cs-height) + 44px);
850
+ padding-top: 0;
851
+ border-top: none;
852
+ border-radius: 0 0 8px 8px;
1328
853
  }
1329
854
  .builder-ui .custom-select .select-options.active {
1330
855
  display: block;
1331
856
  }
1332
857
  .builder-ui .custom-select .select-options li {
1333
- padding: 0 8px;
858
+ display: flex;
859
+ align-items: center;
860
+ min-height: 34px;
861
+ padding: 0 10px;
862
+ border-radius: 5px;
863
+ color: var(--cb-text);
1334
864
  cursor: pointer;
1335
865
  white-space: nowrap;
1336
- min-height: 36px;
1337
- align-items: center;
1338
866
  }
1339
867
  .builder-ui .custom-select .select-options li img {
1340
- margin: 8px 0;
1341
- height: 25px;
868
+ margin: 6px 0;
869
+ height: 24px;
1342
870
  }
1343
871
  .builder-ui .custom-select .select-options li:hover {
1344
- background-color: var(--cs-hover-background);
872
+ background: var(--cb-fill);
1345
873
  }
1346
- .builder-ui .custom-select .select-options li.selected {
1347
- background-color: var(--cs-selected-background);
874
+ .builder-ui .custom-select .select-options li.selected,
875
+ .builder-ui .custom-select .select-options li[aria-selected=true] {
876
+ background: var(--cb-fill-active);
1348
877
  }
1349
878
  .builder-ui .inp-heading .select-options li {
1350
- padding: 3px 8px;
879
+ padding: 3px 10px;
880
+ }
881
+ .builder-ui .snippet-cathead {
882
+ position: absolute;
883
+ top: 0;
884
+ left: 0;
885
+ right: 0;
886
+ z-index: 2;
887
+ }
888
+ .builder-ui .inp-snippets.custom-select {
889
+ width: 100%;
890
+ }
891
+ .builder-ui .inp-snippets.custom-select .select-styled {
892
+ background: transparent;
893
+ border: none;
894
+ border-bottom: 1px solid var(--cb-line);
895
+ border-radius: 0;
896
+ padding: 0 10px 0 16px;
897
+ }
898
+ .builder-ui .inp-snippets.custom-select .select-styled:hover {
899
+ background: var(--cb-fill);
900
+ }
901
+ .builder-ui .inp-snippets.custom-select .select-options {
902
+ max-height: 320px;
1351
903
  }
1352
904
  .builder-ui .scroll-darker * {
1353
905
  scrollbar-width: thin;
@@ -1363,6 +915,10 @@ body.controlpanel .is-content-view.mobile {
1363
915
  background-color: rgba(0, 0, 0, 0.2);
1364
916
  }
1365
917
 
918
+ [data-cb-ui] .custom-select {
919
+ background: var(--cb-surface);
920
+ }
921
+
1366
922
  /* /UI */
1367
923
  /* CONTROL PANEL */
1368
924
  body.controlpanel .builder-ui .is-controlpanel {
@@ -1529,9 +1085,63 @@ body.controlpanel .is-wrapper {
1529
1085
  .builder-ui .is-controlpanel [class^=panel-].active {
1530
1086
  display: flex;
1531
1087
  }
1532
- .builder-ui .is-controlpanel [class^=panel-].panel-section .submain, .builder-ui .is-controlpanel [class^=panel-].panel-box .submain {
1088
+ .builder-ui .is-controlpanel [class^=panel-].panel-code .submain {
1089
+ padding: 14px 24px 20px;
1090
+ }
1091
+ .builder-ui .is-controlpanel [class^=panel-].panel-text .submain {
1092
+ padding: 14px 24px 20px;
1093
+ }
1094
+ .builder-ui .is-controlpanel [class^=panel-].panel-button .submain {
1095
+ padding: 14px 24px 20px;
1096
+ }
1097
+ .builder-ui .is-controlpanel [class^=panel-].panel-image .submain {
1098
+ padding: 14px 24px 20px;
1099
+ }
1100
+ .builder-ui .is-controlpanel [class^=panel-].panel-video .submain {
1101
+ padding: 14px 24px 20px;
1102
+ }
1103
+ .builder-ui .is-controlpanel [class^=panel-].panel-icon .submain {
1104
+ padding: 14px 24px 20px;
1105
+ }
1106
+ .builder-ui .is-controlpanel [class^=panel-].panel-svg .submain {
1107
+ padding: 7px 24px 20px;
1108
+ }
1109
+ .builder-ui .is-controlpanel [class^=panel-].panel-audio .submain {
1110
+ padding: 16px 24px 20px;
1111
+ }
1112
+ .builder-ui .is-controlpanel [class^=panel-].panel-iframe .submain {
1113
+ padding: 14px 24px 20px;
1114
+ }
1115
+ .builder-ui .is-controlpanel [class^=panel-].panel-spacer .submain {
1116
+ padding: 0 24px 20px;
1117
+ }
1118
+ .builder-ui .is-controlpanel [class^=panel-].panel-plugin .submain {
1119
+ padding: 15px 24px 20px;
1120
+ }
1121
+ .builder-ui .is-controlpanel [class^=panel-].panel-overlay .submain {
1122
+ padding: 14px 24px 20px;
1123
+ }
1124
+ .builder-ui .is-controlpanel [class^=panel-].panel-column .submain {
1125
+ padding: 9px 24px 20px;
1126
+ }
1127
+ .builder-ui .is-controlpanel [class^=panel-].panel-row .submain {
1128
+ padding: 9px 24px 20px;
1129
+ }
1130
+ .builder-ui .is-controlpanel [class^=panel-].panel-container .submain {
1131
+ padding: 14px 24px 20px;
1132
+ }
1133
+ .builder-ui .is-controlpanel [class^=panel-].panel-block .submain {
1134
+ padding: 14px 24px 20px;
1135
+ }
1136
+ .builder-ui .is-controlpanel [class^=panel-].panel-box .submain {
1533
1137
  padding: 0 24px 20px;
1534
1138
  }
1139
+ .builder-ui .is-controlpanel [class^=panel-].panel-section .submain {
1140
+ padding: 14px 24px 20px;
1141
+ }
1142
+ .builder-ui .is-controlpanel [class^=panel-].panel-section .submain {
1143
+ padding: 14px 24px 20px;
1144
+ }
1535
1145
  .builder-ui .is-controlpanel [class^=panel-] .submain {
1536
1146
  padding: 0 24px 16px;
1537
1147
  }
@@ -1588,6 +1198,7 @@ body.controlpanel .is-wrapper {
1588
1198
  justify-content: center;
1589
1199
  }
1590
1200
  .builder-ui .is-controlpanel .panel-image .asset-preview img,
1201
+ .builder-ui .is-controlpanel .panel-overlay .asset-preview img,
1591
1202
  .builder-ui .is-controlpanel .panel-box .asset-preview img,
1592
1203
  .builder-ui .is-controlpanel .panel-block .asset-preview img,
1593
1204
  .builder-ui .is-controlpanel .panel-column .asset-preview img,
@@ -1595,6 +1206,223 @@ body.controlpanel .is-wrapper {
1595
1206
  max-width: 130px;
1596
1207
  max-height: 130px;
1597
1208
  }
1209
+ .builder-ui .is-controlpanel .panel-overlay .inp-text {
1210
+ box-sizing: border-box;
1211
+ width: 222px;
1212
+ min-height: 62px;
1213
+ max-height: 220px;
1214
+ overflow-y: auto;
1215
+ padding: 10px 8px;
1216
+ font-family: sans-serif;
1217
+ font-size: 15px;
1218
+ letter-spacing: 1px;
1219
+ line-height: 1.4;
1220
+ border-radius: 5px;
1221
+ background-color: #f6f6f6;
1222
+ color: #121212;
1223
+ outline: none;
1224
+ }
1225
+ .builder-ui .is-controlpanel .panel-overlay .inp-text p {
1226
+ margin: 0;
1227
+ }
1228
+ .builder-ui .is-controlpanel .panel-overlay .label-note {
1229
+ width: 222px;
1230
+ font-size: 12px;
1231
+ line-height: 1.5;
1232
+ opacity: 0.6;
1233
+ }
1234
+ .builder-ui .is-controlpanel .panel-overlay .div-overlay-image.stacked {
1235
+ margin-top: 22px;
1236
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
1237
+ padding-top: 16px;
1238
+ }
1239
+ .builder-ui .is-controlpanel .panel-overlay .div-overlay-list {
1240
+ margin-top: 22px;
1241
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
1242
+ padding-top: 14px;
1243
+ }
1244
+ .builder-ui .is-controlpanel .panel-overlay .div-overlay-list .list-caption {
1245
+ margin-bottom: 8px;
1246
+ }
1247
+ .builder-ui .is-controlpanel .panel-overlay .overlay-list {
1248
+ width: 222px;
1249
+ max-height: 260px;
1250
+ overflow-y: auto;
1251
+ overflow-x: hidden;
1252
+ display: flex;
1253
+ flex-direction: column;
1254
+ gap: 2px;
1255
+ }
1256
+ .builder-ui .is-controlpanel .panel-overlay .ovl-row {
1257
+ display: flex;
1258
+ align-items: center;
1259
+ gap: 8px;
1260
+ width: 100%;
1261
+ min-width: 0;
1262
+ min-height: 34px;
1263
+ box-sizing: border-box;
1264
+ padding: 5px 8px;
1265
+ border: none;
1266
+ border-radius: 4px;
1267
+ background: transparent;
1268
+ text-align: left;
1269
+ cursor: pointer;
1270
+ }
1271
+ .builder-ui .is-controlpanel .panel-overlay .ovl-row:hover {
1272
+ background-color: #f0f0f0;
1273
+ }
1274
+ .builder-ui .is-controlpanel .panel-overlay .ovl-row.on {
1275
+ background-color: #e6e6e6;
1276
+ }
1277
+ .builder-ui .is-controlpanel .panel-overlay .ovl-row-thumb {
1278
+ flex: none;
1279
+ width: 30px;
1280
+ height: 24px;
1281
+ border-radius: 3px;
1282
+ background-color: #e2e2e2;
1283
+ background-size: cover;
1284
+ background-position: center;
1285
+ }
1286
+ .builder-ui .is-controlpanel .panel-overlay .ovl-row-text {
1287
+ flex: 1;
1288
+ min-width: 0;
1289
+ overflow: hidden;
1290
+ font-size: 13px;
1291
+ line-height: 1.35;
1292
+ white-space: nowrap;
1293
+ text-overflow: ellipsis;
1294
+ color: #4b4b4b;
1295
+ }
1296
+ .builder-ui .is-controlpanel .panel-button .label-note {
1297
+ width: 222px;
1298
+ font-size: 12px;
1299
+ line-height: 1.5;
1300
+ opacity: 0.6;
1301
+ }
1302
+ .builder-ui .is-controlpanel .panel-button .buttonsize button,
1303
+ .builder-ui .is-controlpanel .panel-button .borderstyle button,
1304
+ .builder-ui .is-controlpanel .panel-button .buttonwidth button {
1305
+ width: auto;
1306
+ min-width: 52px;
1307
+ padding: 0 12px;
1308
+ font-size: 13px;
1309
+ }
1310
+ .builder-ui .is-controlpanel .panel-button .presettabs button,
1311
+ .builder-ui .is-controlpanel .panel-button .colorstate button {
1312
+ flex: 1 1 0;
1313
+ width: auto;
1314
+ min-width: 0;
1315
+ padding: 0 12px;
1316
+ font-size: 13px;
1317
+ }
1318
+ .builder-ui .is-controlpanel .panel-button .buttonradius,
1319
+ .builder-ui .is-controlpanel .panel-button .fontsizes,
1320
+ .builder-ui .is-controlpanel .panel-button .letterspacing {
1321
+ display: grid;
1322
+ gap: 4px;
1323
+ }
1324
+ .builder-ui .is-controlpanel .panel-button .buttonradius button,
1325
+ .builder-ui .is-controlpanel .panel-button .fontsizes button,
1326
+ .builder-ui .is-controlpanel .panel-button .letterspacing button {
1327
+ width: auto;
1328
+ min-width: 0;
1329
+ margin: 0;
1330
+ padding: 0;
1331
+ font-size: 12px;
1332
+ }
1333
+ .builder-ui .is-controlpanel .panel-button .buttonradius {
1334
+ grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
1335
+ }
1336
+ .builder-ui .is-controlpanel .panel-button .letterspacing {
1337
+ grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
1338
+ }
1339
+ .builder-ui .is-controlpanel .panel-button .fontsizes {
1340
+ grid-template-columns: repeat(auto-fill, minmax(32px, 1fr));
1341
+ }
1342
+ .builder-ui .is-controlpanel .panel-button .presettabs,
1343
+ .builder-ui .is-controlpanel .panel-button .colorstate,
1344
+ .builder-ui .is-controlpanel .panel-button .buttonradius,
1345
+ .builder-ui .is-controlpanel .panel-button .fontsizes,
1346
+ .builder-ui .is-controlpanel .panel-button .letterspacing {
1347
+ width: 222px;
1348
+ }
1349
+ .builder-ui .is-controlpanel .panel-button .padx,
1350
+ .builder-ui .is-controlpanel .panel-button .pady {
1351
+ margin-bottom: 4px;
1352
+ }
1353
+ .builder-ui .is-controlpanel .panel-button .btn-wide {
1354
+ width: 222px;
1355
+ height: 36px;
1356
+ margin: 8px 0 0 2px;
1357
+ border: 1px solid #e1e1e1;
1358
+ font-size: 13px;
1359
+ }
1360
+ .builder-ui .is-controlpanel .panel-button .button-presets,
1361
+ .builder-ui .is-controlpanel .panel-button .button-saved {
1362
+ width: 222px;
1363
+ max-height: 232px;
1364
+ overflow-y: auto;
1365
+ overflow-x: hidden;
1366
+ display: flex;
1367
+ flex-wrap: wrap;
1368
+ gap: 4px;
1369
+ padding: 4px 2px;
1370
+ box-sizing: border-box;
1371
+ }
1372
+ .builder-ui .is-controlpanel .panel-button .preset-swatch {
1373
+ width: auto;
1374
+ height: auto;
1375
+ max-width: 100%;
1376
+ padding: 4px;
1377
+ margin: 0;
1378
+ border: 1px solid transparent;
1379
+ border-radius: 6px;
1380
+ font: inherit;
1381
+ overflow: hidden;
1382
+ }
1383
+ .builder-ui .is-controlpanel .panel-button .preset-swatch > span:first-child {
1384
+ max-width: 100%;
1385
+ overflow: hidden;
1386
+ text-overflow: ellipsis;
1387
+ }
1388
+ .builder-ui .is-controlpanel .panel-button .preset-swatch:hover {
1389
+ border-color: #d1d1d1;
1390
+ background-color: transparent !important;
1391
+ }
1392
+ .builder-ui .is-controlpanel .panel-button .preset-remove {
1393
+ position: absolute;
1394
+ top: 0;
1395
+ right: 0;
1396
+ display: none;
1397
+ align-items: center;
1398
+ justify-content: center;
1399
+ width: 18px;
1400
+ height: 18px;
1401
+ border-radius: 50%;
1402
+ background-color: rgba(0, 0, 0, 0.55);
1403
+ }
1404
+ .builder-ui .is-controlpanel .panel-button .preset-remove svg {
1405
+ width: 11px;
1406
+ height: 11px;
1407
+ stroke: #fff;
1408
+ color: #fff;
1409
+ }
1410
+ .builder-ui .is-controlpanel .panel-button .preset-swatch:hover .preset-remove {
1411
+ display: flex;
1412
+ }
1413
+ .builder-ui .is-controlpanel .panel-button .margin-grid {
1414
+ display: grid;
1415
+ grid-template-columns: 1fr 1fr;
1416
+ gap: 4px 12px;
1417
+ width: 222px;
1418
+ }
1419
+ .builder-ui .is-controlpanel .panel-button .margin-grid .label {
1420
+ margin: 0;
1421
+ }
1422
+ .builder-ui .is-controlpanel .panel-button .margin-grid input {
1423
+ width: 100%;
1424
+ box-sizing: border-box;
1425
+ }
1598
1426
  .builder-ui .is-controlpanel .panel-audio .asset-preview,
1599
1427
  .builder-ui .is-controlpanel .panel-iframe .asset-preview {
1600
1428
  width: 100%;
@@ -1622,6 +1450,21 @@ body.controlpanel .is-wrapper {
1622
1450
  .builder-ui .is-controlpanel .group.removecontent button {
1623
1451
  width: 100%;
1624
1452
  }
1453
+ .builder-ui .is-controlpanel .group.desktopwidth {
1454
+ width: 222px;
1455
+ }
1456
+ .builder-ui .is-controlpanel .group.desktopwidth button {
1457
+ width: 39px;
1458
+ font-size: 11px;
1459
+ }
1460
+ .builder-ui .is-controlpanel .group.desktopwidth button.inert {
1461
+ color: var(--cb-text-4);
1462
+ background-color: transparent !important;
1463
+ cursor: default;
1464
+ }
1465
+ .builder-ui .is-controlpanel .group.desktopwidth button.inert:hover {
1466
+ background-color: transparent !important;
1467
+ }
1625
1468
  .builder-ui .is-controlpanel .group.contentsize {
1626
1469
  width: 222px;
1627
1470
  }
@@ -1647,25 +1490,18 @@ body.controlpanel .is-wrapper {
1647
1490
  width: 100%;
1648
1491
  }
1649
1492
  .builder-ui .is-controlpanel .group.editmodule {
1493
+ /* For module as box overlay */
1650
1494
  width: 222px;
1651
1495
  margin-top: 8px;
1652
1496
  }
1653
1497
  .builder-ui .is-controlpanel .group.editmodule button {
1654
1498
  width: 100%;
1655
1499
  height: 39px;
1656
- background: rgb(135, 116, 215);
1657
- color: #fff;
1658
1500
  }
1659
- .builder-ui .is-controlpanel .group.editmodule button svg {
1660
- fill: #fff;
1661
- }
1662
- .builder-ui .is-controlpanel .group.editmodule button:hover {
1663
- background: rgb(135, 116, 215);
1664
- }
1665
- .builder-ui .is-controlpanel .group.editspacing, .builder-ui .is-controlpanel .group.moreoptions, .builder-ui .is-controlpanel .group.resetrotation {
1501
+ .builder-ui .is-controlpanel .group.moreoptions, .builder-ui .is-controlpanel .group.resetrotation {
1666
1502
  width: 222px;
1667
1503
  }
1668
- .builder-ui .is-controlpanel .group.editspacing button, .builder-ui .is-controlpanel .group.moreoptions button, .builder-ui .is-controlpanel .group.resetrotation button {
1504
+ .builder-ui .is-controlpanel .group.moreoptions button, .builder-ui .is-controlpanel .group.resetrotation button {
1669
1505
  width: 100%;
1670
1506
  }
1671
1507
  .builder-ui .is-controlpanel .group.contentspacing {
@@ -1758,15 +1594,6 @@ body.controlpanel .is-wrapper {
1758
1594
  width: 50px;
1759
1595
  transition: all 0.15s ease;
1760
1596
  }
1761
- .builder-ui .is-controlpanel .group.imageeffect button.active, .builder-ui .is-controlpanel .group.aspectratio button.active, .builder-ui .is-controlpanel .group.duration button.active, .builder-ui .is-controlpanel .group.topspacing button.active {
1762
- background-color: rgb(233, 233, 233);
1763
- }
1764
- .builder-ui .is-controlpanel .group.imageeffect button.active:hover, .builder-ui .is-controlpanel .group.aspectratio button.active:hover, .builder-ui .is-controlpanel .group.duration button.active:hover, .builder-ui .is-controlpanel .group.topspacing button.active:hover {
1765
- background-color: rgb(235, 235, 235);
1766
- }
1767
- .builder-ui .is-controlpanel .group.imageeffect button:hover, .builder-ui .is-controlpanel .group.aspectratio button:hover, .builder-ui .is-controlpanel .group.duration button:hover, .builder-ui .is-controlpanel .group.topspacing button:hover {
1768
- background-color: rgb(243, 244, 246);
1769
- }
1770
1597
  .builder-ui .is-controlpanel .group.imageeffect button {
1771
1598
  width: 105px;
1772
1599
  }
@@ -1780,15 +1607,6 @@ body.controlpanel .is-wrapper {
1780
1607
  width: 36px;
1781
1608
  transition: all 0.15s ease;
1782
1609
  }
1783
- .builder-ui .is-controlpanel button.toggle.active {
1784
- background-color: rgb(233, 233, 233);
1785
- }
1786
- .builder-ui .is-controlpanel button.toggle.active:hover {
1787
- background-color: rgb(235, 235, 235);
1788
- }
1789
- .builder-ui .is-controlpanel button.toggle:hover {
1790
- background-color: rgb(243, 244, 246);
1791
- }
1792
1610
  .builder-ui .is-controlpanel .label.changedevice {
1793
1611
  display: flex;
1794
1612
  flex-direction: row;
@@ -1839,6 +1657,17 @@ body.controlpanel .is-wrapper {
1839
1657
  width: 22px;
1840
1658
  height: 22px;
1841
1659
  }
1660
+ .builder-ui .is-controlpanel .panel-dialog.symbols {
1661
+ flex-direction: column;
1662
+ overflow: hidden;
1663
+ }
1664
+ .builder-ui .is-controlpanel .panel-dialog.symbols button.btn-back {
1665
+ flex: 0 0 auto;
1666
+ }
1667
+ .builder-ui .is-controlpanel .panel-dialog.symbols .cb-symbols-host {
1668
+ flex: 1 1 auto;
1669
+ min-height: 0;
1670
+ }
1842
1671
  .builder-ui .is-controlpanel .panel-dialog.icons input {
1843
1672
  outline-offset: -2px;
1844
1673
  }
@@ -2236,23 +2065,35 @@ body.frame-center #editPanel {
2236
2065
  justify-content: center !important;
2237
2066
  }
2238
2067
 
2239
- body.frame-center .is-content-view {
2240
- margin-top: 25px !important;
2241
- transform-origin: center !important;
2242
- }
2243
-
2244
- body.frame-center.controlpanel .is-content-view {
2245
- margin-top: 25px !important;
2246
- transform-origin: center !important;
2068
+ /* The scaled canvas, out of flow.
2069
+ *
2070
+ * transform: scale() never shrinks the layout box, so a canvas left in the flex flow
2071
+ * reserves its unscaled height and the workspace scrolls even when the canvas visibly
2072
+ * fits. Absolute positioning takes it out of the reckoning; iframepanel.applyCanvasScale
2073
+ * computes where it goes. Same shape as the scaled-fullview rule further down.
2074
+ *
2075
+ * Placed after body.frame-center on purpose: that rule sets margin-top and
2076
+ * transform-origin with !important at the same specificity, so source order is what
2077
+ * settles it. Moving this block above it silently restores centre-origin scaling.
2078
+ */
2079
+ body.canvas-scaled .is-content-view {
2080
+ position: absolute !important;
2081
+ top: var(--view-top) !important;
2082
+ left: var(--view-left) !important;
2083
+ margin: 0 !important;
2084
+ width: var(--view-width) !important;
2085
+ height: var(--view-height) !important;
2086
+ transform: scale(var(--view-scale)) !important;
2087
+ transform-origin: top left !important;
2247
2088
  }
2248
2089
 
2249
2090
  /* /CONTROL PANEL */
2250
2091
  /* THEME */
2251
2092
  #_cbhtml .is-side button:hover, .is-ui .is-side button:hover {
2252
- background-color: rgb(237, 237, 237) !important;
2093
+ background-color: var(--cb-fill-hover) !important;
2253
2094
  }
2254
2095
  #_cbhtml .is-side button.on, .is-ui .is-side button.on {
2255
- background-color: rgb(237, 237, 237) !important;
2096
+ background-color: var(--cb-fill-active) !important;
2256
2097
  }
2257
2098
 
2258
2099
  .colored #_cbhtml .is-responsive-toolbar, .colored .is-ui .is-responsive-toolbar,
@@ -2285,30 +2126,22 @@ body.frame-center.controlpanel .is-content-view {
2285
2126
  }
2286
2127
 
2287
2128
  .dark #_cbhtml .is-side, .dark .is-ui .is-side {
2288
- color: #d3d3d3 !important;
2129
+ color: var(--cb-text) !important;
2289
2130
  background: #181818 !important;
2290
2131
  }
2291
2132
  .dark #_cbhtml .is-side button, .dark .is-ui .is-side button {
2292
- color: #d3d3d3 !important;
2133
+ color: var(--cb-text) !important;
2293
2134
  background: transparent !important;
2294
2135
  }
2295
- .dark #_cbhtml .is-side button:hover, .dark .is-ui .is-side button:hover {
2296
- background-color: rgb(69, 69, 69) !important;
2297
- }
2298
- .dark #_cbhtml .is-side button.on, .dark .is-ui .is-side button.on {
2299
- background-color: rgb(69, 69, 69) !important;
2300
- }
2301
- .dark #_cbhtml .is-side input[type=text], .dark #_cbhtml .is-side input[type=number], .dark #_cbhtml .is-side textarea, .dark .is-ui .is-side input[type=text], .dark .is-ui .is-side input[type=number], .dark .is-ui .is-side textarea {
2302
- color: #c7c7c7 !important;
2303
- background-color: #313131 !important;
2136
+ .dark #_cbhtml .is-side input[type=text], .dark #_cbhtml .is-side input[type=number], .dark #_cbhtml .is-side textarea,
2137
+ .dark #_cbhtml .is-side select, .dark .is-ui .is-side input[type=text], .dark .is-ui .is-side input[type=number], .dark .is-ui .is-side textarea,
2138
+ .dark .is-ui .is-side select {
2139
+ color: var(--cb-text) !important;
2140
+ background-color: var(--cb-fill) !important;
2304
2141
  }
2305
2142
  .dark #_cbhtml .is-side input[type=checkbox], .dark .is-ui .is-side input[type=checkbox] {
2306
2143
  opacity: 0.7 !important;
2307
2144
  }
2308
- .dark #_cbhtml .is-side select, .dark .is-ui .is-side select {
2309
- color: #c7c7c7 !important;
2310
- background-color: #313131 !important;
2311
- }
2312
2145
  .dark #_cbhtml .is-sidebar.is-area, .dark .is-ui .is-sidebar.is-area {
2313
2146
  background: #181818 !important;
2314
2147
  }
@@ -2339,36 +2172,12 @@ body.frame-center.controlpanel .is-content-view {
2339
2172
  .dark .is-content-view iframe {
2340
2173
  opacity: 0.97;
2341
2174
  }
2342
- .dark .builder-ui {
2343
- color: #d3d3d3;
2344
- }
2345
- .dark .builder-ui a {
2346
- color: #d3d3d3;
2347
- }
2348
- .dark .builder-ui svg {
2349
- fill: #d3d3d3;
2350
- }
2351
2175
  .dark .builder-ui .part-breadcrumb svg {
2352
2176
  width: 17px;
2353
2177
  height: 17px;
2354
2178
  }
2355
- .dark .builder-ui button {
2356
- color: #d3d3d3;
2357
- }
2358
- .dark .builder-ui button svg {
2359
- color: #fff;
2360
- }
2361
2179
  .dark .builder-ui button.is-btn-color {
2362
- border: 1px solid transparent;
2363
- }
2364
- .dark .builder-ui button:not(.is-btn-color).on {
2365
- background-color: rgb(69, 69, 69);
2366
- }
2367
- .dark .builder-ui button:not(.is-btn-color).on:hover {
2368
- background-color: rgb(64, 64, 64);
2369
- }
2370
- .dark .builder-ui button:not(.is-btn-color):hover {
2371
- background-color: rgb(59, 59, 59);
2180
+ border: 1px solid rgba(255, 255, 255, 0.3215686275);
2372
2181
  }
2373
2182
  .dark .builder-ui .panel-plugin .is-accordion > div {
2374
2183
  border: 1px solid #6e6e6e;
@@ -2387,26 +2196,9 @@ body.frame-center.controlpanel .is-content-view {
2387
2196
  .dark .builder-ui .panel-plugin button {
2388
2197
  background-color: rgb(64, 64, 64);
2389
2198
  }
2390
- .dark .builder-ui .label {
2391
- color: #d3d3d3;
2392
- }
2393
- .dark .builder-ui input[type=text], .dark .builder-ui input[type=number], .dark .builder-ui textarea {
2394
- color: #c7c7c7;
2395
- background-color: #313131;
2396
- }
2397
2199
  .dark .builder-ui input[type=checkbox] {
2398
2200
  opacity: 0.7;
2399
2201
  }
2400
- .dark .builder-ui select {
2401
- color: #c7c7c7;
2402
- background-color: #313131;
2403
- }
2404
- .dark .builder-ui .group {
2405
- border: 1px solid #444;
2406
- }
2407
- .dark .builder-ui .accordion-item {
2408
- background-color: #353535;
2409
- }
2410
2202
  .dark .builder-ui .is-controlpanel {
2411
2203
  background-color: rgb(24, 24, 24);
2412
2204
  }
@@ -2423,45 +2215,7 @@ body.frame-center.controlpanel .is-content-view {
2423
2215
  .dark .builder-ui .is-controlpanel .panel-dialog.blocks .div-blocks > div {
2424
2216
  outline: #d5d5d5 1px solid;
2425
2217
  }
2426
- .dark .builder-ui .is-controlpanel .group.imageeffect button.active, .dark .builder-ui .is-controlpanel .group.aspectratio button.active, .dark .builder-ui .is-controlpanel .group.duration button.active, .dark .builder-ui .is-controlpanel .group.topspacing button.active {
2427
- background-color: rgb(69, 69, 69);
2428
- }
2429
- .dark .builder-ui .is-controlpanel .group.imageeffect button.active:hover, .dark .builder-ui .is-controlpanel .group.aspectratio button.active:hover, .dark .builder-ui .is-controlpanel .group.duration button.active:hover, .dark .builder-ui .is-controlpanel .group.topspacing button.active:hover {
2430
- background-color: rgb(64, 64, 64);
2431
- }
2432
- .dark .builder-ui .is-controlpanel .group.imageeffect button:hover, .dark .builder-ui .is-controlpanel .group.aspectratio button:hover, .dark .builder-ui .is-controlpanel .group.duration button:hover, .dark .builder-ui .is-controlpanel .group.topspacing button:hover {
2433
- background-color: rgb(59, 59, 59);
2434
- }
2435
- .dark .builder-ui .is-controlpanel .group button.toggle {
2436
- width: 36px;
2437
- transition: all 0.15s ease;
2438
- }
2439
- .dark .builder-ui .is-controlpanel .group button.toggle.active {
2440
- background-color: rgb(69, 69, 69);
2441
- }
2442
- .dark .builder-ui .is-controlpanel .group button.toggle.active:hover {
2443
- background-color: rgb(64, 64, 64);
2444
- }
2445
- .dark .builder-ui .is-controlpanel .group button.toggle:hover {
2446
- background-color: rgb(59, 59, 59);
2447
- }
2448
- .dark .builder-ui .custom-select {
2449
- --cs-height: 46px;
2450
- --cs-border: 1px solid #5e5e5e;
2451
- --cs-background: #323232;
2452
- --cs-hover-background: #484848;
2453
- --cs-selected-background: #484848;
2454
- }
2455
- .dark .builder-ui .custom-select .select-styled span {
2456
- color: #fff;
2457
- }
2458
- .dark .builder-ui .custom-select .select-styled span img {
2459
- filter: invert(1);
2460
- opacity: 0.7;
2461
- }
2462
- .dark .builder-ui .custom-select .select-options li {
2463
- color: #fff;
2464
- }
2218
+ .dark .builder-ui .custom-select .select-styled span img,
2465
2219
  .dark .builder-ui .custom-select .select-options li img {
2466
2220
  filter: invert(1);
2467
2221
  opacity: 0.7;
@@ -2490,7 +2244,7 @@ body.frame-center.controlpanel .is-content-view {
2490
2244
  left: calc(50% - 80px);
2491
2245
  right: auto;
2492
2246
  box-sizing: border-box;
2493
- line-height: 30px;
2247
+ line-height: 28px;
2494
2248
  outline: none;
2495
2249
  text-align: center;
2496
2250
  cursor: pointer;
@@ -2500,11 +2254,14 @@ body.frame-center.controlpanel .is-content-view {
2500
2254
  overflow: hidden;
2501
2255
  }
2502
2256
  .is-box-tool button {
2503
- width: 35px !important;
2504
- height: 35px !important;
2257
+ width: 32px !important;
2258
+ height: 32px !important;
2505
2259
  cursor: pointer;
2506
2260
  }
2507
2261
  .is-box-tool button svg {
2262
+ width: 15px;
2263
+ height: 15px;
2264
+ flex: none;
2508
2265
  fill: #fff !important;
2509
2266
  }
2510
2267
  .is-box-tool button.is-box-edit {
@@ -2522,7 +2279,7 @@ body.frame-center.controlpanel .is-content-view {
2522
2279
  top: calc(17% - 14px);
2523
2280
  right: 0px;
2524
2281
  left: auto;
2525
- width: 35px;
2282
+ width: 32px;
2526
2283
  height: auto;
2527
2284
  font-size: 13px;
2528
2285
  flex-direction: column;
@@ -2531,10 +2288,10 @@ body.frame-center.controlpanel .is-content-view {
2531
2288
  overflow: hidden;
2532
2289
  }
2533
2290
  .is-section-tool > button {
2534
- width: 35px;
2535
- height: 35px;
2291
+ width: 32px;
2292
+ height: 32px;
2536
2293
  border-radius: 0;
2537
- line-height: 35px;
2294
+ line-height: 32px;
2538
2295
  padding: 0px;
2539
2296
  font-size: 13px;
2540
2297
  cursor: pointer;
@@ -2551,8 +2308,8 @@ body.frame-center.controlpanel .is-content-view {
2551
2308
  background: rgb(247, 99, 46);
2552
2309
  }
2553
2310
  .is-section-tool > button svg {
2554
- width: 16px;
2555
- height: 16px;
2311
+ width: 15px;
2312
+ height: 15px;
2556
2313
  flex: none;
2557
2314
  }
2558
2315
  .is-section-tool > button.btn-move-section-up *, .is-section-tool > button.btn-move-section-down * {
@@ -2683,7 +2440,7 @@ body.frame-center.controlpanel .is-content-view {
2683
2440
  width: 100%;
2684
2441
  height: 40px;
2685
2442
  position: absolute;
2686
- padding: 0 0 0 60px;
2443
+ padding: 0;
2687
2444
  box-sizing: border-box;
2688
2445
  }
2689
2446
 
@@ -2792,6 +2549,7 @@ body.frame-center.controlpanel .is-content-view {
2792
2549
  #divSelector .inp-typolist.custom-select .select-styled {
2793
2550
  outline-offset: -2px;
2794
2551
  border: none;
2552
+ border-radius: 0;
2795
2553
  }
2796
2554
  #divSelector .inp-typolist.custom-select .select-options {
2797
2555
  max-height: 330px;
@@ -3377,6 +3135,48 @@ body.fullview.topspace .is-content-view iframe {
3377
3135
  height: 100%;
3378
3136
  }
3379
3137
 
3138
+ /* Scaled fullview.
3139
+ On a display too narrow to show a desktop viewport 1:1, fullview renders a fixed
3140
+ logical width scaled down to fit — the same approach as .desktop / .desktop-lg —
3141
+ so the iframe viewport stays in the desktop breakpoint band. The custom properties
3142
+ are set from IframePanel.applyFullviewScale().
3143
+
3144
+ The canvas is taken out of the flex flow and anchored with position/top/left, with
3145
+ transform-origin at top left. The layout box is deliberately larger than #editPanel
3146
+ (the transform is what makes it fit), and both of the panel's centering mechanisms —
3147
+ justify-content:center from body.frame-center and transform-origin:center — position
3148
+ an overflowing box relative to its own size, which would make the visible geometry a
3149
+ function of the height being computed. Anchoring makes it deterministic: the scaled
3150
+ canvas occupies exactly 0..availableWidth by topOffset..panelHeight.
3151
+
3152
+ Selectors carry four classes so they outrank the transform:scale(1) /
3153
+ height:100vh !important fullview rules above, the media-query transform ladder, and
3154
+ the transform-origin:center !important from body.frame-center. */
3155
+ body.fullview.fullview-scaled .is-content-view,
3156
+ body.fullview.fullview-scaled.controlpanel .is-content-view,
3157
+ body.fullview.fullview-scaled.topspace .is-content-view,
3158
+ body.fullview.fullview-scaled.controlpanel.topspace .is-content-view {
3159
+ position: absolute !important;
3160
+ top: var(--fullview-top) !important;
3161
+ left: 0 !important;
3162
+ margin-top: 0 !important;
3163
+ width: var(--fullview-width) !important;
3164
+ height: var(--fullview-height) !important;
3165
+ transform: scale(var(--fullview-scale)) !important;
3166
+ transform-origin: top left !important;
3167
+ }
3168
+
3169
+ /* Unpin the iframe from the 100vh-based heights so it fills the logical canvas. */
3170
+ body.fullview.fullview-scaled .is-content-view.fullview > div.iframe-wrapper,
3171
+ body.fullview.fullview-scaled .is-content-view.fullview iframe {
3172
+ height: 100% !important;
3173
+ }
3174
+
3175
+ /* Manual width dragging would break the logical-width invariant. */
3176
+ body.fullview.fullview-scaled .is-content-view > div.iframe-resizer {
3177
+ display: none !important;
3178
+ }
3179
+
3380
3180
  /* Iframe Resizer */
3381
3181
  .is-content-view > div.iframe-resizer {
3382
3182
  position: absolute !important;
@@ -4544,3 +4344,744 @@ body.fullview.topspace .is-content-view iframe {
4544
4344
  }
4545
4345
 
4546
4346
  /* /content.css */
4347
+ /* ── Code Chat (codechat.js) ──────────────────────────────────────────────
4348
+ Self-contained port of the AI Code Chat panel + Settings dialog. ContentBox
4349
+ has its own design system (no shared .cb-* kit / cb-scrollbar mixin), so this
4350
+ styles everything directly from the tokens ContentBox does define. Token-driven
4351
+ so both themes flip with no body.dark duplicates. Mirrors the ContentBuilder
4352
+ #chatPanel/#settingsDialog block; keep the two in step. */
4353
+ #chatPanel .sr-only, #settingsDialog .sr-only {
4354
+ position: absolute;
4355
+ width: 1px;
4356
+ height: 1px;
4357
+ padding: 0;
4358
+ margin: -1px;
4359
+ overflow: hidden;
4360
+ clip: rect(0, 0, 0, 0);
4361
+ white-space: nowrap;
4362
+ border-width: 0;
4363
+ }
4364
+
4365
+ #chatPanel {
4366
+ position: fixed;
4367
+ bottom: 40px;
4368
+ right: 40px;
4369
+ width: 500px;
4370
+ height: 600px;
4371
+ background: var(--cb-surface);
4372
+ color: var(--cb-text);
4373
+ border: 1px solid var(--cb-line);
4374
+ border-radius: 12px;
4375
+ box-shadow: var(--cb-shadow-2);
4376
+ display: flex;
4377
+ flex-direction: column;
4378
+ z-index: 10004;
4379
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
4380
+ }
4381
+
4382
+ #chatPanel.hidden {
4383
+ opacity: 0;
4384
+ pointer-events: none;
4385
+ }
4386
+
4387
+ #chatPanel *:focus-visible {
4388
+ outline: 2px solid var(--cb-accent, #3e93f7);
4389
+ outline-offset: 2px;
4390
+ }
4391
+
4392
+ #chatPanel .chat-header {
4393
+ padding: 16px 20px;
4394
+ border-bottom: 1px solid var(--cb-line);
4395
+ border-radius: 12px 12px 0 0;
4396
+ display: flex;
4397
+ justify-content: space-between;
4398
+ align-items: flex-start;
4399
+ }
4400
+
4401
+ #chatPanel .chat-header-content {
4402
+ flex: 1;
4403
+ }
4404
+
4405
+ #chatPanel .chat-header h1 {
4406
+ font-size: 16px;
4407
+ font-weight: 400;
4408
+ letter-spacing: 0;
4409
+ margin: 0 0 2px;
4410
+ pointer-events: none;
4411
+ }
4412
+
4413
+ #chatPanel .chat-header p {
4414
+ font-size: 12px;
4415
+ opacity: 0.7;
4416
+ margin: 0;
4417
+ pointer-events: none;
4418
+ }
4419
+
4420
+ #chatPanel .header-actions {
4421
+ display: flex;
4422
+ gap: 4px;
4423
+ }
4424
+
4425
+ #chatPanel .close-button, #chatPanel .settings-button {
4426
+ background: transparent;
4427
+ border: none;
4428
+ cursor: pointer;
4429
+ border-radius: 4px;
4430
+ transition: background 0.2s;
4431
+ color: var(--cb-text);
4432
+ display: flex;
4433
+ align-items: center;
4434
+ justify-content: center;
4435
+ width: 36px;
4436
+ height: 36px;
4437
+ }
4438
+
4439
+ #chatPanel .close-button:hover, #chatPanel .settings-button:hover,
4440
+ #chatPanel .close-button:focus-visible, #chatPanel .settings-button:focus-visible {
4441
+ background: var(--cb-fill-hover);
4442
+ }
4443
+
4444
+ #chatPanel .messages {
4445
+ flex: 1;
4446
+ overflow-y: auto;
4447
+ padding: 20px;
4448
+ display: flex;
4449
+ flex-direction: column;
4450
+ gap: 16px;
4451
+ min-height: 0;
4452
+ }
4453
+
4454
+ #chatPanel .messages::-webkit-scrollbar {
4455
+ width: 6px;
4456
+ }
4457
+
4458
+ #chatPanel .messages::-webkit-scrollbar-track {
4459
+ background: transparent;
4460
+ }
4461
+
4462
+ #chatPanel .messages::-webkit-scrollbar-thumb {
4463
+ background: var(--cb-line);
4464
+ border-radius: 3px;
4465
+ }
4466
+
4467
+ #chatPanel .messages::-webkit-scrollbar-thumb:hover {
4468
+ background: var(--cb-text-3);
4469
+ }
4470
+
4471
+ #chatPanel .message {
4472
+ display: flex;
4473
+ flex-direction: column;
4474
+ gap: 8px;
4475
+ }
4476
+
4477
+ #chatPanel .message-header {
4478
+ font-size: 12px;
4479
+ font-weight: 500;
4480
+ color: var(--cb-text-2);
4481
+ text-transform: uppercase;
4482
+ letter-spacing: 0.5px;
4483
+ }
4484
+
4485
+ #chatPanel .message-content {
4486
+ padding: 12px 16px;
4487
+ border-radius: 8px;
4488
+ font-size: 14px;
4489
+ line-height: 1.6;
4490
+ position: relative;
4491
+ }
4492
+
4493
+ #chatPanel .message.user .message-content {
4494
+ background: var(--cb-fill);
4495
+ color: var(--cb-text);
4496
+ }
4497
+
4498
+ #chatPanel .message.assistant .message-content {
4499
+ background: var(--cb-chat-bubble-bg);
4500
+ color: var(--cb-chat-bubble-text);
4501
+ }
4502
+
4503
+ #chatPanel .message.assistant .message-content.streaming::after {
4504
+ content: "▊";
4505
+ animation: blink 1s infinite;
4506
+ margin-left: 2px;
4507
+ }
4508
+
4509
+ #chatPanel .message.assistant .message-content h1,
4510
+ #chatPanel .message.assistant .message-content h2,
4511
+ #chatPanel .message.assistant .message-content h3 {
4512
+ margin-top: 16px;
4513
+ margin-bottom: 8px;
4514
+ font-weight: 600;
4515
+ }
4516
+
4517
+ #chatPanel .message.assistant .message-content h1 {
4518
+ font-size: 18px;
4519
+ }
4520
+
4521
+ #chatPanel .message.assistant .message-content h2 {
4522
+ font-size: 16px;
4523
+ }
4524
+
4525
+ #chatPanel .message.assistant .message-content h3 {
4526
+ font-size: 14px;
4527
+ }
4528
+
4529
+ #chatPanel .message.assistant .message-content p {
4530
+ margin: 8px 0;
4531
+ }
4532
+
4533
+ #chatPanel .message.assistant .message-content ul,
4534
+ #chatPanel .message.assistant .message-content ol {
4535
+ margin: 8px 0;
4536
+ padding-left: 24px;
4537
+ }
4538
+
4539
+ #chatPanel .message.assistant .message-content li {
4540
+ margin: 4px 0;
4541
+ }
4542
+
4543
+ #chatPanel .message.assistant .message-content code {
4544
+ background: rgba(255, 255, 255, 0.1);
4545
+ padding: 2px 6px;
4546
+ border-radius: 4px;
4547
+ font-family: "Monaco", "Menlo", monospace;
4548
+ font-size: 13px;
4549
+ }
4550
+
4551
+ #chatPanel .message.assistant .message-content pre {
4552
+ background: rgba(255, 255, 255, 0.05);
4553
+ padding: 12px;
4554
+ border-radius: 6px;
4555
+ overflow-x: auto;
4556
+ margin: 8px 0;
4557
+ }
4558
+
4559
+ #chatPanel .message.assistant .message-content pre code {
4560
+ background: transparent;
4561
+ padding: 0;
4562
+ }
4563
+
4564
+ #chatPanel .message.assistant .message-content blockquote {
4565
+ border-left: 3px solid rgba(255, 255, 255, 0.3);
4566
+ padding-left: 12px;
4567
+ margin: 8px 0;
4568
+ font-style: italic;
4569
+ opacity: 0.9;
4570
+ }
4571
+
4572
+ #chatPanel .message.assistant .message-content a {
4573
+ color: #fff;
4574
+ text-decoration: underline;
4575
+ }
4576
+
4577
+ #chatPanel .message.assistant .message-content strong {
4578
+ font-weight: 600;
4579
+ }
4580
+
4581
+ #chatPanel .input-area {
4582
+ padding: 16px 20px;
4583
+ border-top: 1px solid var(--cb-line);
4584
+ background: var(--cb-surface);
4585
+ border-radius: 0 0 12px 12px;
4586
+ }
4587
+
4588
+ #chatPanel .input-wrapper {
4589
+ display: flex;
4590
+ gap: 5px;
4591
+ align-items: flex-end;
4592
+ }
4593
+
4594
+ #chatPanel .input-area textarea {
4595
+ flex: 1;
4596
+ border-radius: 8px;
4597
+ font-size: 14px;
4598
+ font-family: system-ui;
4599
+ line-height: 1.4;
4600
+ letter-spacing: 0;
4601
+ resize: none;
4602
+ min-height: 58px;
4603
+ max-height: 120px;
4604
+ padding: 8px 10px;
4605
+ box-sizing: border-box;
4606
+ background: var(--cb-fill);
4607
+ color: var(--cb-text);
4608
+ border: 1px solid var(--cb-line);
4609
+ transition: border-color 0.2s;
4610
+ }
4611
+
4612
+ #chatPanel .input-area textarea::placeholder {
4613
+ color: var(--cb-text-3);
4614
+ opacity: 1;
4615
+ }
4616
+
4617
+ #chatPanel .input-area textarea::-webkit-scrollbar {
4618
+ width: 8px;
4619
+ }
4620
+
4621
+ #chatPanel .input-area textarea::-webkit-scrollbar-track {
4622
+ background: transparent;
4623
+ }
4624
+
4625
+ #chatPanel .input-area textarea::-webkit-scrollbar-thumb {
4626
+ background: var(--cb-line);
4627
+ border-radius: 3px;
4628
+ }
4629
+
4630
+ #chatPanel .input-area button {
4631
+ width: 48px;
4632
+ height: 48px;
4633
+ background: var(--cb-fill);
4634
+ color: var(--cb-text);
4635
+ border: none;
4636
+ border-radius: 8px;
4637
+ cursor: pointer;
4638
+ transition: background 0.2s;
4639
+ }
4640
+
4641
+ #chatPanel .input-area button:disabled {
4642
+ opacity: 0.6;
4643
+ cursor: not-allowed;
4644
+ }
4645
+
4646
+ #chatPanel .input-area button:hover:not(:disabled) {
4647
+ background: var(--cb-fill-hover);
4648
+ }
4649
+
4650
+ #chatPanel .loading {
4651
+ display: flex;
4652
+ align-items: center;
4653
+ gap: 8px;
4654
+ padding: 12px 16px;
4655
+ background: var(--cb-fill);
4656
+ border-radius: 8px;
4657
+ font-size: 14px;
4658
+ color: var(--cb-text-2);
4659
+ }
4660
+
4661
+ #chatPanel .spinner {
4662
+ width: 16px;
4663
+ height: 16px;
4664
+ border: 2px solid var(--cb-line);
4665
+ border-top-color: var(--cb-text);
4666
+ border-radius: 50%;
4667
+ animation: spin 0.8s linear infinite;
4668
+ }
4669
+
4670
+ #chatPanel .error-message {
4671
+ padding: 12px 16px;
4672
+ background: var(--cb-danger-fill);
4673
+ border: 1px solid var(--cb-danger);
4674
+ border-radius: 8px;
4675
+ color: var(--cb-danger);
4676
+ font-size: 13px;
4677
+ margin-top: 8px;
4678
+ }
4679
+
4680
+ #chatPanel .task-indicator {
4681
+ font-size: 11px;
4682
+ color: var(--cb-text-2);
4683
+ font-style: italic;
4684
+ margin-top: 4px;
4685
+ padding: 4px 8px;
4686
+ background: var(--cb-surface-2);
4687
+ border-radius: 4px;
4688
+ display: inline-block;
4689
+ }
4690
+
4691
+ #chatPanel .copy-button {
4692
+ position: absolute;
4693
+ top: 3px;
4694
+ right: 3px;
4695
+ background: var(--cb-fill);
4696
+ border: none;
4697
+ border-radius: 4px;
4698
+ padding: 0 8px;
4699
+ height: 20px;
4700
+ cursor: pointer;
4701
+ opacity: 0;
4702
+ transition: opacity 0.2s, background 0.2s;
4703
+ font-size: 11px;
4704
+ color: inherit;
4705
+ }
4706
+
4707
+ #chatPanel .message:hover .copy-button, #chatPanel .copy-button.copied {
4708
+ opacity: 1;
4709
+ }
4710
+
4711
+ #chatPanel .copy-button:hover {
4712
+ background: var(--cb-fill-hover);
4713
+ }
4714
+
4715
+ #chatPanel .quick-image-size-button {
4716
+ width: 48px;
4717
+ height: 48px;
4718
+ border: none;
4719
+ border-radius: 8px;
4720
+ font-size: 13px;
4721
+ font-weight: 500;
4722
+ cursor: pointer;
4723
+ transition: background 0.2s;
4724
+ display: flex;
4725
+ align-items: center;
4726
+ justify-content: center;
4727
+ background: var(--cb-fill);
4728
+ color: var(--cb-text);
4729
+ }
4730
+
4731
+ #chatPanel .quick-image-size-button:hover:not(:disabled) {
4732
+ background: var(--cb-fill-hover);
4733
+ }
4734
+
4735
+ #chatPanel .quick-image-size-button:disabled {
4736
+ opacity: 0.6;
4737
+ cursor: not-allowed;
4738
+ }
4739
+
4740
+ #chatPanel .image-size-popover {
4741
+ position: absolute;
4742
+ bottom: 72px;
4743
+ right: 68px;
4744
+ background: var(--cb-surface);
4745
+ border: 1px solid var(--cb-line);
4746
+ border-radius: 8px;
4747
+ box-shadow: var(--cb-shadow-2);
4748
+ z-index: 10006;
4749
+ min-width: 160px;
4750
+ max-height: 300px;
4751
+ overflow-y: auto;
4752
+ }
4753
+
4754
+ #chatPanel .image-size-popover::-webkit-scrollbar {
4755
+ width: 6px;
4756
+ }
4757
+
4758
+ #chatPanel .image-size-popover::-webkit-scrollbar-track {
4759
+ background: transparent;
4760
+ }
4761
+
4762
+ #chatPanel .image-size-popover::-webkit-scrollbar-thumb {
4763
+ background: var(--cb-line);
4764
+ border-radius: 3px;
4765
+ }
4766
+
4767
+ #chatPanel .size-options {
4768
+ padding: 8px;
4769
+ }
4770
+
4771
+ #chatPanel .size-option {
4772
+ display: flex;
4773
+ align-items: center;
4774
+ padding: 10px 12px;
4775
+ cursor: pointer;
4776
+ border-radius: 6px;
4777
+ transition: background 0.2s;
4778
+ font-size: 14px;
4779
+ }
4780
+
4781
+ #chatPanel .size-option label, #chatPanel .size-option input {
4782
+ cursor: pointer;
4783
+ }
4784
+
4785
+ #chatPanel .size-option input[type=radio] {
4786
+ margin-right: 8px;
4787
+ }
4788
+
4789
+ #chatPanel .size-option:hover {
4790
+ background: var(--cb-fill-hover);
4791
+ }
4792
+
4793
+ #chatPanel .size-option.selected {
4794
+ background: var(--cb-accent-fill);
4795
+ font-weight: 500;
4796
+ }
4797
+
4798
+ /* Attachments (chat/attachments.js) — attach button sits in .input-wrapper, so its
4799
+ size/background/hover come from the #chatPanel .input-area button rule; only icon centring here. */
4800
+ #chatPanel .attach-button {
4801
+ display: flex;
4802
+ align-items: center;
4803
+ justify-content: center;
4804
+ flex: 0 0 auto;
4805
+ }
4806
+
4807
+ #chatPanel .attachment-chips {
4808
+ display: flex;
4809
+ flex-wrap: wrap;
4810
+ gap: 8px;
4811
+ margin-bottom: 10px;
4812
+ }
4813
+
4814
+ #chatPanel .attachment-chips:empty {
4815
+ display: none;
4816
+ }
4817
+
4818
+ #chatPanel .attachment-chip {
4819
+ position: relative;
4820
+ display: flex;
4821
+ align-items: center;
4822
+ gap: 8px;
4823
+ max-width: 200px;
4824
+ padding: 6px 8px;
4825
+ background: var(--cb-fill);
4826
+ border: 1px solid var(--cb-line);
4827
+ border-radius: 8px;
4828
+ font-size: 12px;
4829
+ }
4830
+
4831
+ #chatPanel .attachment-chip img {
4832
+ width: 32px;
4833
+ height: 32px;
4834
+ object-fit: cover;
4835
+ border-radius: 4px;
4836
+ flex: 0 0 auto;
4837
+ }
4838
+
4839
+ #chatPanel .attachment-chip .attachment-doc {
4840
+ width: 32px;
4841
+ height: 32px;
4842
+ display: flex;
4843
+ align-items: center;
4844
+ justify-content: center;
4845
+ background: #e11d2a;
4846
+ color: #fff;
4847
+ border-radius: 4px;
4848
+ font-size: 9px;
4849
+ font-weight: 700;
4850
+ flex: 0 0 auto;
4851
+ }
4852
+
4853
+ #chatPanel .attachment-chip .attachment-doc.is-text {
4854
+ background: #4b5563;
4855
+ }
4856
+
4857
+ #chatPanel .attachment-chip .attachment-name {
4858
+ overflow: hidden;
4859
+ text-overflow: ellipsis;
4860
+ white-space: nowrap;
4861
+ }
4862
+
4863
+ #chatPanel .attachment-chip .attachment-remove {
4864
+ background: var(--cb-fill);
4865
+ border: none;
4866
+ cursor: pointer;
4867
+ width: 18px;
4868
+ height: 18px;
4869
+ border-radius: 50%;
4870
+ display: flex;
4871
+ align-items: center;
4872
+ justify-content: center;
4873
+ font-size: 12px;
4874
+ line-height: 1;
4875
+ flex: 0 0 auto;
4876
+ color: inherit;
4877
+ }
4878
+
4879
+ #chatPanel .attachment-chip .attachment-remove:hover {
4880
+ background: var(--cb-fill-hover);
4881
+ }
4882
+
4883
+ #chatPanel.attach-dragover {
4884
+ outline: 2px dashed var(--cb-accent, #2680eb);
4885
+ outline-offset: -6px;
4886
+ }
4887
+
4888
+ @keyframes blink {
4889
+ 0%, 50% {
4890
+ opacity: 1;
4891
+ }
4892
+ 51%, 100% {
4893
+ opacity: 0;
4894
+ }
4895
+ }
4896
+ @keyframes spin {
4897
+ to {
4898
+ transform: rotate(360deg);
4899
+ }
4900
+ }
4901
+ #settingsOverlay {
4902
+ position: fixed;
4903
+ inset: 0;
4904
+ background: rgba(0, 0, 0, 0.04);
4905
+ z-index: 10004;
4906
+ display: none;
4907
+ }
4908
+
4909
+ #settingsOverlay.open {
4910
+ display: block;
4911
+ }
4912
+
4913
+ #settingsDialog {
4914
+ position: fixed;
4915
+ top: 50%;
4916
+ left: 50%;
4917
+ transform: translate(-50%, -50%);
4918
+ width: 90%;
4919
+ max-width: 480px;
4920
+ background: var(--cb-surface);
4921
+ color: var(--cb-text);
4922
+ border: 1px solid var(--cb-line);
4923
+ border-radius: 12px;
4924
+ box-shadow: var(--cb-shadow-2);
4925
+ z-index: 10005;
4926
+ display: none;
4927
+ pointer-events: auto;
4928
+ }
4929
+
4930
+ #settingsDialog.open {
4931
+ display: block;
4932
+ }
4933
+
4934
+ #settingsDialog .settings-header {
4935
+ padding: 20px 24px;
4936
+ border-bottom: 1px solid var(--cb-line);
4937
+ display: flex;
4938
+ justify-content: space-between;
4939
+ align-items: center;
4940
+ }
4941
+
4942
+ #settingsDialog .settings-header h2 {
4943
+ font-size: 18px;
4944
+ font-weight: 500;
4945
+ margin: 0;
4946
+ color: var(--cb-text);
4947
+ }
4948
+
4949
+ #settingsDialog .settings-content {
4950
+ padding: 24px;
4951
+ max-height: 450px;
4952
+ overflow-y: auto;
4953
+ }
4954
+
4955
+ #settingsDialog .settings-content::-webkit-scrollbar {
4956
+ width: 6px;
4957
+ }
4958
+
4959
+ #settingsDialog .settings-content::-webkit-scrollbar-thumb {
4960
+ background: var(--cb-line);
4961
+ border-radius: 3px;
4962
+ }
4963
+
4964
+ #settingsDialog .setting-group {
4965
+ margin-bottom: 24px;
4966
+ }
4967
+
4968
+ #settingsDialog .setting-group:last-child {
4969
+ margin-bottom: 0;
4970
+ }
4971
+
4972
+ #settingsDialog .setting-label {
4973
+ display: block;
4974
+ font-size: 14px;
4975
+ font-weight: 500;
4976
+ color: var(--cb-text);
4977
+ margin-bottom: 8px;
4978
+ }
4979
+
4980
+ #settingsDialog .setting-description {
4981
+ font-size: 12px;
4982
+ color: var(--cb-text-2);
4983
+ margin-bottom: 12px;
4984
+ line-height: 1.5;
4985
+ }
4986
+
4987
+ /* Styled select (self-contained — ContentBox has no shared .cb-sel primitive) */
4988
+ #settingsDialog .cb-sel {
4989
+ position: relative;
4990
+ }
4991
+
4992
+ #settingsDialog .cb-sel + .cb-sel {
4993
+ margin-top: 10px;
4994
+ }
4995
+
4996
+ #settingsDialog .cb-sel select {
4997
+ width: 100%;
4998
+ height: 40px;
4999
+ border: 1px solid var(--cb-line);
5000
+ border-radius: 6px;
5001
+ background: var(--cb-surface);
5002
+ color: var(--cb-text);
5003
+ font-size: 14px;
5004
+ padding: 0 30px 0 11px;
5005
+ -webkit-appearance: none;
5006
+ appearance: none;
5007
+ cursor: pointer;
5008
+ outline: none;
5009
+ }
5010
+
5011
+ #settingsDialog .cb-sel:after {
5012
+ content: "";
5013
+ position: absolute;
5014
+ right: 12px;
5015
+ top: 50%;
5016
+ width: 6px;
5017
+ height: 6px;
5018
+ pointer-events: none;
5019
+ border-right: 1.5px solid var(--cb-text-3);
5020
+ border-bottom: 1.5px solid var(--cb-text-3);
5021
+ transform: translateY(-65%) rotate(45deg);
5022
+ }
5023
+
5024
+ #settingsDialog .cb-sel select:focus-visible {
5025
+ outline: 2px solid var(--cb-accent, #3e93f7);
5026
+ outline-offset: 2px;
5027
+ }
5028
+
5029
+ /* Footer actions (self-contained — no shared .cb-actions / .classic-* in ContentBox) */
5030
+ #settingsDialog .settings-footer {
5031
+ padding: 16px 24px;
5032
+ display: flex;
5033
+ justify-content: flex-end;
5034
+ align-items: center;
5035
+ gap: 8px;
5036
+ }
5037
+
5038
+ #settingsDialog .settings-footer button {
5039
+ padding: 10px 20px;
5040
+ border-radius: 6px;
5041
+ font-size: 14px;
5042
+ font-weight: 500;
5043
+ cursor: pointer;
5044
+ border: none;
5045
+ transition: background 0.2s, opacity 0.2s;
5046
+ }
5047
+
5048
+ #settingsDialog .settings-footer .classic-secondary {
5049
+ background: var(--cb-fill);
5050
+ color: var(--cb-text);
5051
+ }
5052
+
5053
+ #settingsDialog .settings-footer .classic-secondary:hover {
5054
+ background: var(--cb-fill-hover);
5055
+ }
5056
+
5057
+ #settingsDialog .settings-footer .classic-primary {
5058
+ background: var(--cb-chat-bubble-bg);
5059
+ color: var(--cb-chat-bubble-text);
5060
+ }
5061
+
5062
+ #settingsDialog .settings-footer .classic-primary:hover {
5063
+ opacity: 0.9;
5064
+ }
5065
+
5066
+ @media (max-width: 1024px) {
5067
+ #chatPanel {
5068
+ width: calc(100% - 32px);
5069
+ height: 500px;
5070
+ bottom: 16px;
5071
+ right: 16px;
5072
+ left: 16px;
5073
+ }
5074
+ }
5075
+ @media (max-width: 640px) {
5076
+ #chatPanel {
5077
+ width: calc(100% - 16px);
5078
+ height: 400px;
5079
+ bottom: 8px;
5080
+ right: 8px;
5081
+ left: 8px;
5082
+ }
5083
+
5084
+ #settingsDialog {
5085
+ width: calc(100% - 32px);
5086
+ }
5087
+ }