@compose-market/theme 0.0.91 → 0.0.93

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.
@@ -14,6 +14,12 @@
14
14
  --cm-shell-shadow:
15
15
  0 0 40px hsl(var(--primary) / 0.055),
16
16
  inset 0 1px 0 hsl(0 0% 100% / 0.06);
17
+ --cm-chrome-gutter: clamp(0.7rem, 1.4vw, 1.15rem);
18
+ --cm-chrome-sidebar: 16rem;
19
+ --cm-chrome-sidebar-collapsed: 4.7rem;
20
+ --cm-chrome-topbar: 4rem;
21
+ --cm-chrome-mobile: 3.55rem;
22
+ --cm-page-max: 88rem;
17
23
  }
18
24
 
19
25
  .cm-shell-stack {
@@ -167,6 +173,394 @@
167
173
  backdrop-filter: blur(16px) saturate(1.12);
168
174
  }
169
175
 
176
+ .cm-shell-page {
177
+ container-type: inline-size;
178
+ width: min(var(--cm-page-max), 100%);
179
+ min-width: 0;
180
+ margin-inline: auto;
181
+ display: grid;
182
+ gap: clamp(1rem, 2.2cqi, 1.55rem);
183
+ }
184
+
185
+ .cm-shell-page--full {
186
+ --cm-page-max: none;
187
+ }
188
+
189
+ .cm-shell-page-body {
190
+ display: grid;
191
+ gap: clamp(0.9rem, 2cqi, 1.35rem);
192
+ min-width: 0;
193
+ }
194
+
195
+ .cm-app-chrome {
196
+ --cm-chrome-safe: clamp(0.62rem, 1.25vw, 1rem);
197
+ --cm-chrome-gap: clamp(0.34rem, 0.75vw, 0.55rem);
198
+ --cm-hud-size: clamp(2.65rem, 4.1vw, 3rem);
199
+ --cm-hud-radius: 999px;
200
+ position: relative;
201
+ min-height: 100dvh;
202
+ isolation: isolate;
203
+ }
204
+
205
+ .cm-app-chrome__main {
206
+ min-width: 0;
207
+ min-height: 100dvh;
208
+ padding:
209
+ calc(env(safe-area-inset-top) + clamp(4.6rem, 7vw, 5.6rem))
210
+ clamp(0.85rem, 2.3vw, 2rem)
211
+ calc(env(safe-area-inset-bottom) + clamp(5.1rem, 7.4vw, 6.1rem));
212
+ }
213
+
214
+ .cm-app-chrome__navdock {
215
+ position: fixed;
216
+ inset-block-start: 50%;
217
+ inset-inline-start: calc(env(safe-area-inset-left) + var(--cm-chrome-safe));
218
+ z-index: 55;
219
+ display: grid;
220
+ gap: var(--cm-chrome-gap);
221
+ transform: translate3d(0, -50%, 0);
222
+ pointer-events: none;
223
+ }
224
+
225
+ .cm-app-chrome__navitem,
226
+ .cm-hud-button {
227
+ position: relative;
228
+ display: inline-grid;
229
+ place-items: center;
230
+ width: var(--cm-hud-size);
231
+ min-width: var(--cm-hud-size);
232
+ height: var(--cm-hud-size);
233
+ min-height: var(--cm-hud-size);
234
+ border: 1px solid hsl(var(--primary) / 0.18);
235
+ border-radius: var(--cm-hud-radius);
236
+ background:
237
+ radial-gradient(circle at 30% 14%, hsl(var(--primary) / 0.15), transparent 38%),
238
+ radial-gradient(circle at 78% 90%, hsl(var(--accent) / 0.12), transparent 42%),
239
+ linear-gradient(145deg, hsl(226 21% 23% / 0.48), hsl(221 50% 9% / 0.38));
240
+ color: hsl(var(--muted-foreground));
241
+ box-shadow:
242
+ inset 0 1px 0 hsl(0 0% 100% / 0.07),
243
+ inset 0 -1px 0 hsl(var(--primary) / 0.07),
244
+ 0 0 26px hsl(var(--primary) / 0.065);
245
+ backdrop-filter: blur(18px) saturate(1.16);
246
+ cursor: pointer;
247
+ pointer-events: auto;
248
+ text-decoration: none;
249
+ transition:
250
+ transform 160ms ease,
251
+ border-color 180ms ease,
252
+ background-color 180ms ease,
253
+ color 180ms ease,
254
+ box-shadow 180ms ease,
255
+ opacity 180ms ease;
256
+ }
257
+
258
+ .cm-app-chrome__navitem::before {
259
+ content: "";
260
+ position: absolute;
261
+ inset-inline-start: -0.28rem;
262
+ top: 50%;
263
+ width: 0.17rem;
264
+ height: 48%;
265
+ border-radius: 999px;
266
+ background: linear-gradient(180deg, hsl(var(--primary)), hsl(var(--accent)));
267
+ box-shadow:
268
+ 0 0 12px hsl(var(--primary) / 0.72),
269
+ 0 0 18px hsl(var(--accent) / 0.35);
270
+ opacity: 0;
271
+ transform: translateY(-50%) scaleY(0.45);
272
+ transition:
273
+ opacity 180ms ease,
274
+ transform 180ms ease;
275
+ }
276
+
277
+ .cm-app-chrome__navitem:hover,
278
+ .cm-app-chrome__navitem:focus-visible,
279
+ .cm-app-chrome__navitem[data-active="true"],
280
+ .cm-hud-button:hover,
281
+ .cm-hud-button:focus-visible,
282
+ .cm-hud-button[data-active="true"] {
283
+ color: hsl(var(--foreground));
284
+ border-color: hsl(var(--primary) / 0.42);
285
+ outline: none;
286
+ transform: translate3d(0, -1px, 0);
287
+ box-shadow:
288
+ inset 0 0 24px hsl(var(--primary) / 0.075),
289
+ 0 0 24px hsl(var(--primary) / 0.14),
290
+ 0 0 18px hsl(var(--accent) / 0.08);
291
+ }
292
+
293
+ .cm-app-chrome__navitem[data-active="true"] {
294
+ color: hsl(var(--primary));
295
+ border-color: hsl(var(--primary) / 0.52);
296
+ }
297
+
298
+ .cm-app-chrome__navitem[data-active="true"]::before {
299
+ opacity: 1;
300
+ transform: translateY(-50%) scaleY(1);
301
+ }
302
+
303
+ .cm-app-chrome__navitem-icon,
304
+ .cm-hud-icon,
305
+ .cm-app-nav__icon {
306
+ display: inline-flex;
307
+ width: 1.12rem;
308
+ height: 1.12rem;
309
+ align-items: center;
310
+ justify-content: center;
311
+ color: currentColor;
312
+ }
313
+
314
+ .cm-app-chrome__tooltip {
315
+ position: absolute;
316
+ inset-inline-start: calc(100% + 0.55rem);
317
+ top: 50%;
318
+ max-width: min(14rem, 52vw);
319
+ padding: 0.42rem 0.58rem;
320
+ border: 1px solid hsl(var(--primary) / 0.22);
321
+ border-radius: 999px;
322
+ background: hsl(221 50% 8% / 0.84);
323
+ color: hsl(var(--foreground));
324
+ font-family: var(--font-mono), monospace;
325
+ font-size: 0.64rem;
326
+ font-weight: 700;
327
+ letter-spacing: 0.1em;
328
+ line-height: 1;
329
+ text-transform: uppercase;
330
+ white-space: nowrap;
331
+ box-shadow: 0 0 18px hsl(var(--primary) / 0.12);
332
+ opacity: 0;
333
+ pointer-events: none;
334
+ transform: translate3d(-0.18rem, -50%, 0);
335
+ transition:
336
+ opacity 150ms ease,
337
+ transform 150ms ease;
338
+ }
339
+
340
+ .cm-app-chrome__navitem:hover .cm-app-chrome__tooltip,
341
+ .cm-app-chrome__navitem:focus-visible .cm-app-chrome__tooltip {
342
+ opacity: 1;
343
+ transform: translate3d(0, -50%, 0);
344
+ }
345
+
346
+ .cm-app-chrome__hud {
347
+ position: fixed;
348
+ inset-block-start: calc(env(safe-area-inset-top) + var(--cm-chrome-safe));
349
+ inset-inline: calc(env(safe-area-inset-left) + var(--cm-chrome-safe)) calc(env(safe-area-inset-right) + var(--cm-chrome-safe));
350
+ z-index: 60;
351
+ display: flex;
352
+ align-items: flex-start;
353
+ justify-content: flex-end;
354
+ gap: var(--cm-chrome-gap);
355
+ pointer-events: none;
356
+ }
357
+
358
+ .cm-app-chrome__hud-group {
359
+ container-type: inline-size;
360
+ display: flex;
361
+ max-width: min(100%, 47rem);
362
+ min-width: 0;
363
+ align-items: center;
364
+ justify-content: flex-end;
365
+ gap: var(--cm-chrome-gap);
366
+ pointer-events: auto;
367
+ }
368
+
369
+ .cm-app-chrome__hud-item,
370
+ .cm-app-chrome__hud-fold {
371
+ position: relative;
372
+ min-width: 0;
373
+ flex: 0 1 auto;
374
+ }
375
+
376
+ .cm-app-chrome__hud-item[data-priority="low"] {
377
+ flex-shrink: 1;
378
+ }
379
+
380
+ .cm-hud-button {
381
+ display: inline-flex;
382
+ width: auto;
383
+ max-width: min(15.5rem, 52vw);
384
+ justify-content: center;
385
+ gap: 0.52rem;
386
+ padding-inline: clamp(0.72rem, 1.4vw, 0.92rem);
387
+ color: hsl(var(--foreground));
388
+ font-family: var(--font-mono), monospace;
389
+ font-size: 0.72rem;
390
+ font-weight: 700;
391
+ letter-spacing: 0.06em;
392
+ line-height: 1;
393
+ text-transform: uppercase;
394
+ white-space: nowrap;
395
+ }
396
+
397
+ .cm-hud-button--icon,
398
+ .cm-hud-button[data-icon-only="true"] {
399
+ width: var(--cm-hud-size);
400
+ padding-inline: 0;
401
+ }
402
+
403
+ .cm-hud-value,
404
+ .cm-hud-address {
405
+ display: inline-block;
406
+ min-width: 0;
407
+ overflow: hidden;
408
+ text-overflow: ellipsis;
409
+ white-space: nowrap;
410
+ }
411
+
412
+ .cm-hud-value {
413
+ color: hsl(var(--foreground));
414
+ }
415
+
416
+ .cm-hud-address {
417
+ color: hsl(var(--primary));
418
+ max-width: 8.8rem;
419
+ }
420
+
421
+ .cm-hud-status {
422
+ width: 0.48rem;
423
+ height: 0.48rem;
424
+ border-radius: 999px;
425
+ background: hsl(var(--primary));
426
+ box-shadow: 0 0 12px hsl(var(--primary) / 0.62);
427
+ flex: 0 0 auto;
428
+ }
429
+
430
+ .cm-hud-status[data-tone="red"] {
431
+ background: hsl(0 84% 66%);
432
+ box-shadow: 0 0 12px hsl(0 84% 66% / 0.54);
433
+ }
434
+
435
+ .cm-hud-status[data-tone="blue"] {
436
+ background: hsl(211 100% 64%);
437
+ box-shadow: 0 0 12px hsl(211 100% 64% / 0.54);
438
+ }
439
+
440
+ .cm-hud-status[data-state="muted"] {
441
+ background: hsl(var(--muted-foreground));
442
+ box-shadow: none;
443
+ }
444
+
445
+ .cm-hud-overflow {
446
+ display: none;
447
+ }
448
+
449
+ .cm-app-chrome__hud-popover {
450
+ position: absolute;
451
+ top: calc(100% + 0.58rem);
452
+ right: 0;
453
+ z-index: 90;
454
+ width: min(21rem, calc(100vw - var(--cm-chrome-safe) * 2));
455
+ max-height: min(74dvh, 34rem);
456
+ overflow: auto;
457
+ border: 1px solid hsl(var(--primary) / 0.2);
458
+ border-radius: 18px;
459
+ background:
460
+ radial-gradient(circle at 20% 0%, hsl(var(--primary) / 0.11), transparent 34%),
461
+ radial-gradient(circle at 92% 100%, hsl(var(--accent) / 0.12), transparent 36%),
462
+ linear-gradient(145deg, hsl(226 21% 20% / 0.78), hsl(221 50% 7% / 0.86));
463
+ box-shadow:
464
+ inset 0 1px 0 hsl(0 0% 100% / 0.07),
465
+ 0 0 36px hsl(var(--primary) / 0.12);
466
+ backdrop-filter: blur(22px) saturate(1.16);
467
+ }
468
+
469
+ .cm-hud-menu {
470
+ border: 1px solid hsl(var(--primary) / 0.2);
471
+ border-radius: 16px;
472
+ background:
473
+ radial-gradient(circle at 20% 0%, hsl(var(--primary) / 0.11), transparent 34%),
474
+ linear-gradient(145deg, hsl(226 21% 20% / 0.82), hsl(221 50% 7% / 0.9));
475
+ color: hsl(var(--foreground));
476
+ box-shadow:
477
+ inset 0 1px 0 hsl(0 0% 100% / 0.07),
478
+ 0 0 28px hsl(var(--primary) / 0.12);
479
+ backdrop-filter: blur(20px) saturate(1.14);
480
+ }
481
+
482
+ .cm-app-chrome__hud-popover--wide {
483
+ width: min(25rem, calc(100vw - var(--cm-chrome-safe) * 2));
484
+ }
485
+
486
+ .cm-app-chrome__hud-popover-body {
487
+ display: grid;
488
+ gap: 0.58rem;
489
+ padding: 0.75rem;
490
+ }
491
+
492
+ .cm-app-chrome__hud-popover-title {
493
+ color: hsl(var(--foreground));
494
+ font-family: var(--font-display), sans-serif;
495
+ font-size: 0.82rem;
496
+ font-weight: 800;
497
+ letter-spacing: 0.04em;
498
+ }
499
+
500
+ .cm-app-chrome__hud-popover-copy {
501
+ color: hsl(var(--muted-foreground));
502
+ font-size: 0.78rem;
503
+ line-height: 1.45;
504
+ }
505
+
506
+ .cm-app-chrome__hud-row {
507
+ display: flex;
508
+ align-items: center;
509
+ justify-content: space-between;
510
+ gap: 0.75rem;
511
+ min-height: 2.65rem;
512
+ padding: 0.42rem;
513
+ border-radius: 14px;
514
+ background: hsl(var(--primary) / 0.055);
515
+ }
516
+
517
+ .cm-app-chrome__hud-stack {
518
+ display: grid;
519
+ gap: 0.58rem;
520
+ }
521
+
522
+ .cm-search {
523
+ display: flex;
524
+ min-width: 0;
525
+ align-items: center;
526
+ gap: 0.6rem;
527
+ min-height: 2.55rem;
528
+ border: 1px solid hsl(var(--primary) / 0.16);
529
+ border-radius: 999px;
530
+ background: hsl(221 50% 9% / 0.38);
531
+ padding: 0 0.85rem;
532
+ color: hsl(var(--muted-foreground));
533
+ box-shadow: inset 0 0 20px hsl(var(--primary) / 0.04);
534
+ }
535
+
536
+ .cm-search input,
537
+ .cm-search__input {
538
+ min-width: 0;
539
+ flex: 1;
540
+ border: 0;
541
+ outline: none;
542
+ background: transparent;
543
+ color: hsl(var(--foreground));
544
+ font-family: var(--font-mono), monospace;
545
+ font-size: 0.82rem;
546
+ }
547
+
548
+ .cm-search input::placeholder,
549
+ .cm-search__input::placeholder {
550
+ color: hsl(var(--muted-foreground) / 0.72);
551
+ }
552
+
553
+ .cm-app-chrome__sidebar,
554
+ .cm-app-chrome__topbar,
555
+ .cm-app-chrome__mobilebar,
556
+ .cm-app-chrome__drawer {
557
+ display: none;
558
+ }
559
+
560
+ .cm-app-chrome__brand {
561
+ display: none;
562
+ }
563
+
170
564
  .cm-shell-panel--muted {
171
565
  background:
172
566
  linear-gradient(145deg, hsl(224 36% 13% / 0.36), hsl(221 50% 9% / 0.72)),
@@ -290,7 +684,8 @@
290
684
  border-color: hsl(var(--primary) / 0.18);
291
685
  }
292
686
 
293
- .cm-shell-tab[data-active="true"] {
687
+ .cm-shell-tab[data-active="true"],
688
+ .cm-shell-tab[data-state="active"] {
294
689
  background:
295
690
  linear-gradient(180deg, hsl(var(--primary) / 0.18), hsl(var(--primary) / 0.1));
296
691
  border-color: hsl(var(--primary) / 0.36);
@@ -436,7 +831,31 @@
436
831
  padding: 1rem;
437
832
  }
438
833
 
439
- @media (max-width: 720px) {
834
+ @container (max-width: 42rem) {
835
+ .cm-app-chrome__hud-item[data-priority="low"] {
836
+ display: none;
837
+ }
838
+
839
+ .cm-hud-overflow {
840
+ display: inline-flex;
841
+ }
842
+ }
843
+
844
+ @container (max-width: 31rem) {
845
+ .cm-app-chrome__hud-item[data-priority="medium"] .cm-hud-value,
846
+ .cm-app-chrome__hud-item[data-priority="medium"] .cm-hud-address,
847
+ .cm-app-chrome__hud-item[data-priority="medium"] .cm-hud-label {
848
+ display: none;
849
+ }
850
+
851
+ .cm-app-chrome__hud-item[data-priority="medium"] .cm-hud-button,
852
+ .cm-app-chrome__hud-item[data-priority="medium"] .cm-session-trigger {
853
+ width: var(--cm-hud-size);
854
+ padding-inline: 0;
855
+ }
856
+ }
857
+
858
+ @media (max-width: 820px) {
440
859
  .cm-shell-page-header,
441
860
  .cm-shell-banner {
442
861
  flex-direction: column;
@@ -451,6 +870,71 @@
451
870
  width: 100%;
452
871
  overflow-x: auto;
453
872
  }
873
+
874
+ .cm-app-chrome__main {
875
+ padding:
876
+ calc(env(safe-area-inset-top) + clamp(4.25rem, 14vw, 4.85rem))
877
+ clamp(0.75rem, 4.2vw, 1.05rem)
878
+ calc(env(safe-area-inset-bottom) + clamp(5.55rem, 16vw, 6.55rem));
879
+ }
880
+
881
+ .cm-app-chrome__hud {
882
+ justify-content: flex-end;
883
+ }
884
+
885
+ .cm-app-chrome__hud-group {
886
+ max-width: min(100%, 100vw - var(--cm-chrome-safe) * 2);
887
+ }
888
+
889
+ .cm-app-chrome__navdock {
890
+ inset-block-start: auto;
891
+ inset-block-end: calc(env(safe-area-inset-bottom) + var(--cm-chrome-safe));
892
+ inset-inline: calc(env(safe-area-inset-left) + var(--cm-chrome-safe)) calc(env(safe-area-inset-right) + var(--cm-chrome-safe));
893
+ display: flex;
894
+ justify-content: center;
895
+ overflow-x: auto;
896
+ padding: 0.22rem;
897
+ transform: none;
898
+ scrollbar-width: none;
899
+ }
900
+
901
+ .cm-app-chrome__navdock::-webkit-scrollbar {
902
+ display: none;
903
+ }
904
+
905
+ .cm-app-chrome__navitem {
906
+ flex: 0 0 auto;
907
+ }
908
+
909
+ .cm-app-chrome__navitem::before {
910
+ inset-inline-start: 50%;
911
+ top: auto;
912
+ bottom: -0.22rem;
913
+ width: 46%;
914
+ height: 0.16rem;
915
+ transform: translateX(-50%) scaleX(0.45);
916
+ }
917
+
918
+ .cm-app-chrome__navitem[data-active="true"]::before {
919
+ transform: translateX(-50%) scaleX(1);
920
+ }
921
+
922
+ .cm-app-chrome__tooltip {
923
+ display: none;
924
+ }
925
+
926
+ .cm-hud-address,
927
+ .cm-hud-label {
928
+ display: none;
929
+ }
930
+
931
+ .cm-app-chrome__hud-item[data-priority="low"] {
932
+ display: none;
933
+ }
934
+
935
+ .cm-hud-overflow {
936
+ display: inline-flex;
937
+ }
454
938
  }
455
939
 
456
940
  /* ── Form Controls ── */
@@ -821,3 +1305,656 @@
821
1305
  border-radius: 8px;
822
1306
  color: hsl(var(--destructive));
823
1307
  }
1308
+
1309
+ /* ── Playground / Chat Primitives ── */
1310
+ .cm-playground {
1311
+ container-type: inline-size;
1312
+ display: flex;
1313
+ flex-direction: column;
1314
+ min-width: 0;
1315
+ height: min(58rem, calc(100dvh - clamp(8.5rem, 14vw, 10rem)));
1316
+ min-height: 34rem;
1317
+ overflow: hidden;
1318
+ border-radius: 16px;
1319
+ }
1320
+
1321
+ .cm-playground__toolbar,
1322
+ .cm-playground__chat-toolbar,
1323
+ .cm-playground__caps-row {
1324
+ display: flex;
1325
+ align-items: center;
1326
+ min-width: 0;
1327
+ gap: clamp(0.4rem, 1.4cqi, 0.8rem);
1328
+ }
1329
+
1330
+ .cm-playground__toolbar {
1331
+ flex: 0 0 auto;
1332
+ justify-content: space-between;
1333
+ padding: clamp(0.5rem, 1.6cqi, 0.8rem);
1334
+ border: 1px solid hsl(var(--primary) / 0.14);
1335
+ border-radius: 16px;
1336
+ background:
1337
+ linear-gradient(145deg, hsl(226 21% 23% / 0.38), hsl(221 50% 9% / 0.32)),
1338
+ radial-gradient(circle at 0% 0%, hsl(var(--primary) / 0.1), transparent 36%);
1339
+ box-shadow: inset 0 1px 0 hsl(0 0% 100% / 0.055);
1340
+ backdrop-filter: blur(16px) saturate(1.12);
1341
+ }
1342
+
1343
+ .cm-playground__title {
1344
+ display: inline-flex;
1345
+ align-items: center;
1346
+ gap: 0.42rem;
1347
+ min-width: 0;
1348
+ color: hsl(var(--foreground));
1349
+ font-family: var(--font-mono), monospace;
1350
+ font-size: clamp(0.68rem, 1.8cqi, 0.86rem);
1351
+ font-weight: 800;
1352
+ letter-spacing: 0.08em;
1353
+ text-transform: uppercase;
1354
+ }
1355
+
1356
+ .cm-playground__title-icon {
1357
+ width: 1rem;
1358
+ height: 1rem;
1359
+ color: hsl(var(--primary));
1360
+ filter: drop-shadow(0 0 10px hsl(var(--primary) / 0.44));
1361
+ }
1362
+
1363
+ .cm-playground__toolbar-right {
1364
+ display: flex;
1365
+ align-items: center;
1366
+ justify-content: flex-end;
1367
+ gap: 0.45rem;
1368
+ min-width: 0;
1369
+ flex-wrap: wrap;
1370
+ }
1371
+
1372
+ .cm-playground__grid {
1373
+ flex: 1;
1374
+ min-height: 0;
1375
+ display: grid;
1376
+ grid-template-columns: minmax(0, 1fr);
1377
+ gap: clamp(0.75rem, 1.8cqi, 1rem);
1378
+ padding-top: clamp(0.75rem, 1.8cqi, 1rem);
1379
+ }
1380
+
1381
+ @container (min-width: 62rem) {
1382
+ .cm-playground__grid {
1383
+ grid-template-columns: minmax(0, 2fr) minmax(19rem, 0.82fr);
1384
+ }
1385
+
1386
+ .cm-playground__grid--collapsed {
1387
+ grid-template-columns: minmax(0, 1fr);
1388
+ }
1389
+ }
1390
+
1391
+ .cm-playground__chat-cell,
1392
+ .cm-playground__pane-cell {
1393
+ min-width: 0;
1394
+ min-height: 0;
1395
+ display: flex;
1396
+ flex-direction: column;
1397
+ position: relative;
1398
+ }
1399
+
1400
+ .cm-playground__chat-cell {
1401
+ overflow: hidden;
1402
+ border: 1px solid hsl(var(--primary) / 0.16);
1403
+ border-radius: 16px;
1404
+ background:
1405
+ linear-gradient(145deg, hsl(226 21% 23% / 0.34), hsl(221 50% 9% / 0.26)),
1406
+ hsl(224 36% 13% / 0.18);
1407
+ box-shadow: inset 0 1px 0 hsl(0 0% 100% / 0.045);
1408
+ backdrop-filter: blur(16px) saturate(1.1);
1409
+ }
1410
+
1411
+ .cm-playground__pane-cell {
1412
+ display: none;
1413
+ }
1414
+
1415
+ @container (min-width: 62rem) {
1416
+ .cm-playground__pane-cell {
1417
+ display: flex;
1418
+ }
1419
+ }
1420
+
1421
+ .cm-playground__chat-toolbar {
1422
+ flex: 0 0 auto;
1423
+ padding: clamp(0.55rem, 1.5cqi, 0.85rem);
1424
+ border-bottom: 1px solid hsl(var(--primary) / 0.1);
1425
+ background: hsl(221 50% 9% / 0.24);
1426
+ flex-wrap: wrap;
1427
+ }
1428
+
1429
+ .cm-playground__filter-wrap {
1430
+ display: flex;
1431
+ align-items: center;
1432
+ gap: 0.45rem;
1433
+ min-width: min(100%, 13rem);
1434
+ flex: 1 1 13rem;
1435
+ flex-wrap: wrap;
1436
+ }
1437
+
1438
+ .cm-playground__filter-select {
1439
+ min-width: 0;
1440
+ flex: 1 1 8rem;
1441
+ min-height: 2.15rem;
1442
+ border: 1px solid hsl(var(--primary) / 0.16);
1443
+ border-radius: 999px;
1444
+ background: hsl(221 50% 9% / 0.46);
1445
+ color: hsl(var(--foreground));
1446
+ font-family: var(--font-mono), monospace;
1447
+ font-size: 0.72rem;
1448
+ padding: 0 0.75rem;
1449
+ }
1450
+
1451
+ .cm-playground__filter-select:hover,
1452
+ .cm-playground__filter-select:focus,
1453
+ .cm-playground__filter-select--active {
1454
+ outline: none;
1455
+ border-color: hsl(var(--primary) / 0.42);
1456
+ box-shadow: 0 0 16px hsl(var(--primary) / 0.08);
1457
+ }
1458
+
1459
+ .cm-playground__model-count,
1460
+ .cm-playground__caps-label {
1461
+ color: hsl(var(--muted-foreground));
1462
+ font-family: var(--font-mono), monospace;
1463
+ font-size: 0.68rem;
1464
+ letter-spacing: 0.1em;
1465
+ text-transform: uppercase;
1466
+ white-space: nowrap;
1467
+ }
1468
+
1469
+ .cm-playground__caps-row {
1470
+ flex: 0 0 auto;
1471
+ padding: 0.45rem clamp(0.55rem, 1.5cqi, 0.85rem);
1472
+ border-bottom: 1px solid hsl(var(--primary) / 0.08);
1473
+ overflow: auto hidden;
1474
+ }
1475
+
1476
+ .cm-playground__cap-tag,
1477
+ .cm-playground__chip,
1478
+ .cm-playground__badge,
1479
+ .cm-model-badge,
1480
+ .cm-tool-chip,
1481
+ .cm-receipt-chip {
1482
+ display: inline-flex;
1483
+ align-items: center;
1484
+ gap: 0.35rem;
1485
+ border: 1px solid hsl(var(--primary) / 0.18);
1486
+ border-radius: 999px;
1487
+ background: hsl(221 50% 9% / 0.38);
1488
+ color: hsl(var(--foreground) / 0.78);
1489
+ font-family: var(--font-mono), monospace;
1490
+ font-size: 0.68rem;
1491
+ font-weight: 700;
1492
+ line-height: 1;
1493
+ text-transform: uppercase;
1494
+ transition:
1495
+ transform 160ms ease,
1496
+ border-color 180ms ease,
1497
+ box-shadow 180ms ease,
1498
+ color 180ms ease,
1499
+ background-color 180ms ease;
1500
+ }
1501
+
1502
+ .cm-playground__cap-tag {
1503
+ min-height: 1.55rem;
1504
+ padding: 0 0.58rem;
1505
+ }
1506
+
1507
+ .cm-playground__badge,
1508
+ .cm-model-badge {
1509
+ min-width: 0;
1510
+ max-width: min(100%, 24rem);
1511
+ min-height: 2.2rem;
1512
+ padding: 0 0.72rem;
1513
+ cursor: pointer;
1514
+ }
1515
+
1516
+ .cm-playground__badge:hover,
1517
+ .cm-playground__badge:focus-visible,
1518
+ .cm-model-badge:hover,
1519
+ .cm-model-badge:focus-visible,
1520
+ .cm-playground__chip:hover,
1521
+ .cm-playground__chip:focus-visible,
1522
+ .cm-playground__chip--active {
1523
+ transform: translateY(-1px);
1524
+ outline: none;
1525
+ border-color: hsl(var(--primary) / 0.44);
1526
+ background: hsl(var(--primary) / 0.09);
1527
+ color: hsl(var(--foreground));
1528
+ box-shadow: 0 0 18px hsl(var(--primary) / 0.12);
1529
+ }
1530
+
1531
+ .cm-model-badge[data-placeholder="true"] {
1532
+ color: hsl(var(--muted-foreground));
1533
+ font-weight: 500;
1534
+ }
1535
+
1536
+ .cm-playground__badge-dot,
1537
+ .cm-model-badge__dot {
1538
+ width: 0.48rem;
1539
+ height: 0.48rem;
1540
+ border-radius: 999px;
1541
+ background: hsl(var(--primary));
1542
+ box-shadow: 0 0 12px hsl(var(--primary) / 0.56);
1543
+ flex: 0 0 auto;
1544
+ }
1545
+
1546
+ .cm-playground__badge-name,
1547
+ .cm-model-badge__name {
1548
+ min-width: 0;
1549
+ overflow: hidden;
1550
+ text-overflow: ellipsis;
1551
+ white-space: nowrap;
1552
+ }
1553
+
1554
+ .cm-playground__badge-price,
1555
+ .cm-playground__badge-shortcut,
1556
+ .cm-model-badge__price,
1557
+ .cm-model-badge__shortcut,
1558
+ .cm-playground__chip-count {
1559
+ color: hsl(var(--muted-foreground));
1560
+ font-size: 0.62rem;
1561
+ }
1562
+
1563
+ .cm-playground__pane-toggle,
1564
+ .cm-playground__pane-expand {
1565
+ display: inline-grid;
1566
+ place-items: center;
1567
+ border: 1px solid hsl(var(--primary) / 0.22);
1568
+ background: hsl(221 50% 9% / 0.72);
1569
+ color: hsl(var(--primary));
1570
+ box-shadow: 0 0 18px hsl(var(--primary) / 0.08);
1571
+ cursor: pointer;
1572
+ }
1573
+
1574
+ .cm-playground__pane-toggle {
1575
+ position: absolute;
1576
+ left: -0.7rem;
1577
+ top: 0.85rem;
1578
+ z-index: 4;
1579
+ width: 1.55rem;
1580
+ height: 1.55rem;
1581
+ border-radius: 999px;
1582
+ }
1583
+
1584
+ .cm-playground__pane-expand {
1585
+ display: none;
1586
+ position: fixed;
1587
+ right: 0.2rem;
1588
+ top: 50%;
1589
+ z-index: 45;
1590
+ width: 2rem;
1591
+ height: 3.25rem;
1592
+ border-radius: 999px 0 0 999px;
1593
+ }
1594
+
1595
+ @container (min-width: 62rem) {
1596
+ .cm-playground__pane-expand {
1597
+ display: inline-grid;
1598
+ }
1599
+ }
1600
+
1601
+ .cm-playground__cmd-backdrop,
1602
+ .cm-command-overlay {
1603
+ position: fixed;
1604
+ inset: 0;
1605
+ z-index: 90;
1606
+ display: flex;
1607
+ align-items: flex-start;
1608
+ justify-content: center;
1609
+ padding: max(8vh, 4rem) 1rem 1rem;
1610
+ background:
1611
+ radial-gradient(circle at 50% 18%, hsl(var(--primary) / 0.09), transparent 30rem),
1612
+ hsl(240 30% 2% / 0.72);
1613
+ backdrop-filter: blur(14px);
1614
+ }
1615
+
1616
+ .cm-playground__cmd-panel,
1617
+ .cm-command-panel {
1618
+ width: min(42rem, 100%);
1619
+ max-height: min(70dvh, 42rem);
1620
+ display: flex;
1621
+ flex-direction: column;
1622
+ overflow: hidden;
1623
+ border: 1px solid hsl(var(--primary) / 0.24);
1624
+ border-radius: 18px;
1625
+ background:
1626
+ linear-gradient(145deg, hsl(226 21% 23% / 0.58), hsl(221 50% 9% / 0.78)),
1627
+ hsl(var(--background));
1628
+ box-shadow:
1629
+ 0 0 44px hsl(var(--primary) / 0.12),
1630
+ inset 0 1px 0 hsl(0 0% 100% / 0.08);
1631
+ }
1632
+
1633
+ .cm-playground__cmd-header,
1634
+ .cm-playground__cmd-footer,
1635
+ .cm-command-header,
1636
+ .cm-command-footer {
1637
+ flex: 0 0 auto;
1638
+ padding: 0.75rem 0.95rem;
1639
+ border-color: hsl(var(--primary) / 0.12);
1640
+ }
1641
+
1642
+ .cm-playground__cmd-header,
1643
+ .cm-command-header {
1644
+ border-bottom: 1px solid hsl(var(--primary) / 0.12);
1645
+ }
1646
+
1647
+ .cm-playground__cmd-footer,
1648
+ .cm-command-footer {
1649
+ display: flex;
1650
+ align-items: center;
1651
+ justify-content: space-between;
1652
+ gap: 0.75rem;
1653
+ border-top: 1px solid hsl(var(--primary) / 0.12);
1654
+ color: hsl(var(--muted-foreground));
1655
+ font-family: var(--font-mono), monospace;
1656
+ font-size: 0.68rem;
1657
+ flex-wrap: wrap;
1658
+ }
1659
+
1660
+ .cm-playground__cmd-input,
1661
+ .cm-command-input {
1662
+ width: 100%;
1663
+ border: 0;
1664
+ outline: none;
1665
+ background: transparent;
1666
+ color: hsl(var(--foreground));
1667
+ font-family: var(--font-mono), monospace;
1668
+ font-size: clamp(0.92rem, 2.2vw, 1.1rem);
1669
+ }
1670
+
1671
+ .cm-playground__cmd-list,
1672
+ .cm-command-list {
1673
+ flex: 1;
1674
+ min-height: 0;
1675
+ overflow: auto;
1676
+ padding: 0.35rem;
1677
+ }
1678
+
1679
+ .cm-playground__cmd-group,
1680
+ .cm-command-group {
1681
+ padding: 0.55rem 0.7rem 0.28rem;
1682
+ color: hsl(var(--primary));
1683
+ font-family: var(--font-mono), monospace;
1684
+ font-size: 0.68rem;
1685
+ font-weight: 800;
1686
+ letter-spacing: 0.12em;
1687
+ text-transform: uppercase;
1688
+ }
1689
+
1690
+ .cm-playground__cmd-item,
1691
+ .cm-command-item {
1692
+ display: flex;
1693
+ align-items: center;
1694
+ gap: 0.65rem;
1695
+ min-height: 2.55rem;
1696
+ border: 1px solid transparent;
1697
+ border-radius: 12px;
1698
+ padding: 0 0.75rem;
1699
+ cursor: pointer;
1700
+ }
1701
+
1702
+ .cm-playground__cmd-item:hover,
1703
+ .cm-playground__cmd-item--selected,
1704
+ .cm-playground__cmd-item--current,
1705
+ .cm-command-item:hover,
1706
+ .cm-command-item[data-selected="true"],
1707
+ .cm-command-item[data-current="true"] {
1708
+ border-color: hsl(var(--primary) / 0.22);
1709
+ background: hsl(var(--primary) / 0.08);
1710
+ }
1711
+
1712
+ .cm-playground__cmd-item-name,
1713
+ .cm-command-item__name {
1714
+ min-width: 0;
1715
+ flex: 1;
1716
+ overflow: hidden;
1717
+ text-overflow: ellipsis;
1718
+ white-space: nowrap;
1719
+ color: hsl(var(--foreground));
1720
+ font-family: var(--font-mono), monospace;
1721
+ font-size: 0.82rem;
1722
+ }
1723
+
1724
+ .cm-playground__cmd-item-meta,
1725
+ .cm-playground__cmd-footer-hints,
1726
+ .cm-command-item__meta,
1727
+ .cm-command-footer__hints {
1728
+ display: flex;
1729
+ align-items: center;
1730
+ gap: 0.4rem;
1731
+ flex-wrap: wrap;
1732
+ }
1733
+
1734
+ .cm-playground__cmd-item-provider,
1735
+ .cm-playground__cmd-item-type,
1736
+ .cm-playground__cmd-item-price,
1737
+ .cm-playground__cmd-hint kbd,
1738
+ .cm-command-item__provider,
1739
+ .cm-command-item__type,
1740
+ .cm-command-item__price,
1741
+ .cm-command-hint kbd {
1742
+ border-radius: 999px;
1743
+ background: hsl(221 50% 9% / 0.52);
1744
+ color: hsl(var(--muted-foreground));
1745
+ font-family: var(--font-mono), monospace;
1746
+ font-size: 0.62rem;
1747
+ padding: 0.22rem 0.45rem;
1748
+ }
1749
+
1750
+ .cm-playground__cmd-empty,
1751
+ .cm-command-empty {
1752
+ padding: 2rem 1rem;
1753
+ color: hsl(var(--muted-foreground));
1754
+ text-align: center;
1755
+ }
1756
+
1757
+ .cm-chat {
1758
+ display: flex;
1759
+ min-width: 0;
1760
+ min-height: 0;
1761
+ flex-direction: column;
1762
+ overflow: hidden;
1763
+ border: 1px solid hsl(var(--primary) / 0.16);
1764
+ border-radius: 16px;
1765
+ background: hsl(221 50% 9% / 0.24);
1766
+ }
1767
+
1768
+ .cm-chat--bare {
1769
+ border: 0;
1770
+ border-radius: 0;
1771
+ background: transparent;
1772
+ }
1773
+
1774
+ .cm-chat__header,
1775
+ .cm-chat__activity,
1776
+ .cm-chat__composer {
1777
+ flex: 0 0 auto;
1778
+ border-color: hsl(var(--primary) / 0.1);
1779
+ }
1780
+
1781
+ .cm-chat__header {
1782
+ display: flex;
1783
+ align-items: center;
1784
+ gap: 0.55rem;
1785
+ padding: 0.75rem 0.9rem;
1786
+ border-bottom: 1px solid hsl(var(--primary) / 0.1);
1787
+ color: hsl(var(--primary));
1788
+ font-family: var(--font-mono), monospace;
1789
+ }
1790
+
1791
+ .cm-chat__body {
1792
+ flex: 1;
1793
+ min-height: 0;
1794
+ overflow: auto;
1795
+ padding: clamp(0.85rem, 2cqi, 1.15rem);
1796
+ }
1797
+
1798
+ .cm-chat__empty {
1799
+ display: grid;
1800
+ place-items: center;
1801
+ gap: 0.35rem;
1802
+ min-height: 14rem;
1803
+ color: hsl(var(--muted-foreground));
1804
+ text-align: center;
1805
+ }
1806
+
1807
+ .cm-chat__messages {
1808
+ display: grid;
1809
+ gap: 1rem;
1810
+ }
1811
+
1812
+ .cm-chat-message {
1813
+ display: flex;
1814
+ align-items: flex-start;
1815
+ gap: 0.7rem;
1816
+ min-width: 0;
1817
+ }
1818
+
1819
+ .cm-chat-message--user {
1820
+ justify-content: flex-end;
1821
+ }
1822
+
1823
+ .cm-chat-message__avatar {
1824
+ width: 2rem;
1825
+ height: 2rem;
1826
+ flex: 0 0 auto;
1827
+ }
1828
+
1829
+ .cm-chat-message__avatar-assistant,
1830
+ .cm-chat-message__avatar-user {
1831
+ background: hsl(var(--primary) / 0.14);
1832
+ color: hsl(var(--primary));
1833
+ }
1834
+
1835
+ .cm-chat-message__avatar-user {
1836
+ background: hsl(var(--accent) / 0.15);
1837
+ color: hsl(var(--accent));
1838
+ }
1839
+
1840
+ .cm-chat-message__bubble {
1841
+ position: relative;
1842
+ max-width: min(44rem, 82%);
1843
+ min-width: 0;
1844
+ border: 1px solid hsl(var(--primary) / 0.14);
1845
+ border-radius: 16px;
1846
+ padding: 0.75rem 0.85rem;
1847
+ background:
1848
+ linear-gradient(145deg, hsl(226 21% 23% / 0.34), hsl(221 50% 9% / 0.28));
1849
+ color: hsl(var(--foreground));
1850
+ box-shadow: inset 0 1px 0 hsl(0 0% 100% / 0.045);
1851
+ }
1852
+
1853
+ .cm-chat-message__bubble--user {
1854
+ border-color: hsl(var(--accent) / 0.22);
1855
+ background:
1856
+ linear-gradient(145deg, hsl(var(--accent) / 0.24), hsl(var(--primary) / 0.08));
1857
+ }
1858
+
1859
+ .cm-chat-message__actions {
1860
+ position: absolute;
1861
+ right: 0;
1862
+ top: -2.1rem;
1863
+ display: none;
1864
+ align-items: center;
1865
+ gap: 0.25rem;
1866
+ border: 1px solid hsl(var(--primary) / 0.16);
1867
+ border-radius: 999px;
1868
+ background: hsl(var(--background) / 0.86);
1869
+ padding: 0.18rem;
1870
+ backdrop-filter: blur(12px);
1871
+ }
1872
+
1873
+ .cm-chat-message__bubble:hover .cm-chat-message__actions,
1874
+ .cm-chat-message__bubble:focus-within .cm-chat-message__actions {
1875
+ display: flex;
1876
+ }
1877
+
1878
+ .cm-chat__activity {
1879
+ display: flex;
1880
+ align-items: center;
1881
+ gap: 0.55rem;
1882
+ border-top: 1px dashed hsl(var(--primary) / 0.16);
1883
+ background: hsl(221 50% 9% / 0.34);
1884
+ padding: 0.55rem 0.8rem;
1885
+ color: hsl(var(--muted-foreground));
1886
+ font-family: var(--font-mono), monospace;
1887
+ font-size: 0.72rem;
1888
+ }
1889
+
1890
+ .cm-chat__composer {
1891
+ border-top: 1px solid hsl(var(--primary) / 0.1);
1892
+ padding: clamp(0.7rem, 1.7cqi, 0.9rem);
1893
+ }
1894
+
1895
+ .cm-chat__attachments {
1896
+ display: flex;
1897
+ flex-wrap: wrap;
1898
+ gap: 0.5rem;
1899
+ margin-bottom: 0.6rem;
1900
+ }
1901
+
1902
+ .cm-chat__attachment {
1903
+ position: relative;
1904
+ display: grid;
1905
+ width: 3rem;
1906
+ height: 3rem;
1907
+ place-items: center;
1908
+ overflow: hidden;
1909
+ border: 1px solid hsl(var(--primary) / 0.16);
1910
+ border-radius: 12px;
1911
+ background: hsl(221 50% 9% / 0.48);
1912
+ }
1913
+
1914
+ .cm-chat__composer-row {
1915
+ display: flex;
1916
+ align-items: flex-end;
1917
+ gap: 0.55rem;
1918
+ min-width: 0;
1919
+ }
1920
+
1921
+ .cm-chat__composer-row textarea {
1922
+ min-height: 2.55rem;
1923
+ border-color: hsl(var(--primary) / 0.16);
1924
+ border-radius: 14px;
1925
+ background: hsl(221 50% 9% / 0.4);
1926
+ }
1927
+
1928
+ .cm-chat__icon-action {
1929
+ color: hsl(var(--muted-foreground));
1930
+ }
1931
+
1932
+ .cm-chat__icon-action:hover {
1933
+ color: hsl(var(--primary));
1934
+ }
1935
+
1936
+ @media (max-width: 820px) {
1937
+ .cm-playground {
1938
+ height: calc(100dvh - clamp(10rem, 28vw, 11.75rem) - env(safe-area-inset-top) - env(safe-area-inset-bottom));
1939
+ min-height: 30rem;
1940
+ }
1941
+
1942
+ .cm-playground__title-text {
1943
+ display: none;
1944
+ }
1945
+
1946
+ .cm-chat-message__bubble {
1947
+ max-width: 88%;
1948
+ }
1949
+ }
1950
+
1951
+ @media (prefers-reduced-motion: reduce) {
1952
+ .cm-app-chrome__navitem,
1953
+ .cm-hud-button,
1954
+ .cm-app-chrome__hud-popover,
1955
+ .cm-playground__badge,
1956
+ .cm-playground__chip,
1957
+ .cm-chat-message__bubble {
1958
+ transition-duration: 0.01ms !important;
1959
+ }
1960
+ }