@polderlabs/bizar 6.0.0-beta.1 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bizar-dash/DESIGN.md +23 -18
  2. package/bizar-dash/bizar-design/canvas.html +60 -46
  3. package/bizar-dash/bizar-design/components.css +317 -122
  4. package/bizar-dash/bizar-design/components.html +154 -60
  5. package/bizar-dash/bizar-design/desktop/agents.html +1 -1
  6. package/bizar-dash/bizar-design/desktop/memory.html +2 -2
  7. package/bizar-dash/bizar-design/desktop/metrics.html +2 -2
  8. package/bizar-dash/bizar-design/desktop/overview.html +9 -9
  9. package/bizar-dash/bizar-design/desktop/settings.html +1 -1
  10. package/bizar-dash/bizar-design/index.html +77 -66
  11. package/bizar-dash/bizar-design/tokens.css +52 -60
  12. package/bizar-dash/critique.json +6 -6
  13. package/bizar-dash/image-1.png +0 -0
  14. package/bizar-dash/image-2.png +0 -0
  15. package/bizar-dash/image-3.png +0 -0
  16. package/bizar-dash/image-4.png +0 -0
  17. package/bizar-dash/image-5.png +0 -0
  18. package/bizar-dash/image-6.png +0 -0
  19. package/bizar-dash/image-7.png +0 -0
  20. package/bizar-dash/image.png +0 -0
  21. package/cli/doctor.mjs +48 -48
  22. package/cli/install.mjs +29 -48
  23. package/cli/install.test.mjs +27 -0
  24. package/cli/plugin-runtime-deps.mjs +250 -0
  25. package/cli/plugin-runtime-deps.test.mjs +378 -0
  26. package/cli/post-install-smoke.mjs +3 -96
  27. package/cli/post-install-smoke.test.mjs +5 -3
  28. package/cli/provision.mjs +54 -129
  29. package/cli/provision.test.mjs +42 -0
  30. package/config/cline.json.template +75 -16
  31. package/config/skills/9router/SKILL.md +80 -0
  32. package/config/skills/9router-chat/SKILL.md +73 -0
  33. package/config/skills/9router-embeddings/SKILL.md +69 -0
  34. package/config/skills/9router-image/SKILL.md +86 -0
  35. package/config/skills/9router-stt/SKILL.md +79 -0
  36. package/config/skills/9router-tts/SKILL.md +80 -0
  37. package/config/skills/9router-web-fetch/SKILL.md +99 -0
  38. package/config/skills/9router-web-search/SKILL.md +91 -0
  39. package/package.json +1 -1
  40. package/packages/sdk/package.json +1 -1
  41. package/plugins/bizar/index.ts +50 -3
  42. package/plugins/bizar/package.json +1 -1
  43. package/plugins/bizar/src/clineruntime.ts +96 -14
  44. package/plugins/bizar/src/mistake-recovery.ts +98 -0
  45. package/plugins/bizar/src/options.ts +44 -2
  46. package/plugins/bizar/src/tool-discipline.ts +105 -0
  47. package/plugins/bizar/src/trajectory.ts +104 -0
  48. package/plugins/bizar/tests/clineruntime-config.test.ts +177 -0
  49. package/plugins/bizar/tests/mistake-recovery.test.ts +116 -0
  50. package/plugins/bizar/tests/options.test.ts +53 -0
  51. package/plugins/bizar/tests/tool-discipline.test.ts +77 -0
@@ -11,10 +11,7 @@ body {
11
11
  }
12
12
 
13
13
  body {
14
- background:
15
- radial-gradient(circle at top right, color-mix(in oklch, var(--accent) 16%, transparent), transparent 26%),
16
- radial-gradient(circle at top left, color-mix(in oklch, var(--info) 8%, transparent), transparent 22%),
17
- var(--bg);
14
+ background: var(--bg);
18
15
  color: var(--text);
19
16
  font: 400 var(--fs-body) / 1.45 var(--font-sans);
20
17
  -webkit-font-smoothing: antialiased;
@@ -43,7 +40,8 @@ pre,
43
40
 
44
41
  .design-shell {
45
42
  min-height: 100vh;
46
- --sidebar-width: 4rem;
43
+ --shell-topbar-height: 3.25rem;
44
+ --sidebar-width: 3.25rem;
47
45
  --sidebar-label-opacity: 0;
48
46
  --sidebar-label-width: 0;
49
47
  }
@@ -54,51 +52,78 @@ pre,
54
52
  }
55
53
 
56
54
  .design-shell.is-sidebar-expanded {
57
- --sidebar-width: 14rem;
55
+ --sidebar-width: 16rem;
58
56
  --sidebar-label-opacity: 1;
59
57
  --sidebar-label-width: 1fr;
60
58
  }
61
59
 
62
60
  .shell-topbar {
63
- display: flex;
61
+ display: grid;
62
+ grid-template-columns: auto minmax(0, 1fr) auto;
64
63
  align-items: center;
65
64
  gap: var(--space-4);
66
- padding: var(--space-3) var(--space-4);
65
+ min-height: var(--shell-topbar-height);
66
+ padding: var(--space-2) var(--space-4);
67
67
  border-bottom: 1px solid var(--border);
68
- background:
69
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev-2) 88%, transparent), color-mix(in oklch, var(--bg-elev) 92%, transparent));
70
- backdrop-filter: blur(16px);
68
+ background: var(--bg);
71
69
  position: sticky;
72
70
  top: 0;
73
71
  z-index: 30;
74
72
  }
75
73
 
74
+ .shell-topbar-start,
75
+ .shell-topbar-center,
76
+ .shell-topbar-end {
77
+ display: flex;
78
+ align-items: center;
79
+ gap: var(--space-3);
80
+ min-width: 0;
81
+ }
82
+
83
+ .shell-topbar-center {
84
+ justify-content: flex-start;
85
+ }
86
+
87
+ .shell-topbar-end {
88
+ justify-content: flex-end;
89
+ }
90
+
91
+ .shell-topbar-center > *,
92
+ .shell-topbar-end > * {
93
+ min-width: 0;
94
+ }
95
+
76
96
  .topbar-nav {
77
97
  display: inline-flex;
78
98
  align-items: center;
79
99
  gap: var(--space-2);
100
+ min-width: 0;
101
+ flex-wrap: nowrap;
102
+ overflow-x: auto;
103
+ scrollbar-width: none;
104
+ }
105
+
106
+ .topbar-nav::-webkit-scrollbar {
107
+ display: none;
80
108
  }
81
109
 
82
110
  .brand-mark {
83
111
  display: flex;
84
112
  align-items: center;
85
113
  gap: var(--space-2);
86
- min-width: 11rem;
114
+ min-width: 10rem;
87
115
  }
88
116
 
89
117
  .brand-glyph {
90
118
  display: grid;
91
119
  place-items: center;
92
- width: 1.75rem;
93
- height: 1.75rem;
94
- border: 1px solid var(--accent-border);
120
+ width: 1.5rem;
121
+ height: 1.5rem;
122
+ border: 1px solid var(--border);
95
123
  border-radius: var(--radius);
96
- background:
97
- linear-gradient(135deg, color-mix(in oklch, var(--accent) 20%, transparent), transparent),
98
- var(--bg-elev-2);
124
+ background: var(--bg-elev);
99
125
  color: var(--accent);
100
- font-size: 0.95rem;
101
- box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--accent) 8%, transparent);
126
+ font-size: 0.82rem;
102
127
  line-height: 1;
103
128
  }
104
129
 
@@ -122,25 +147,25 @@ pre,
122
147
  display: inline-flex;
123
148
  align-items: center;
124
149
  gap: var(--space-2);
125
- min-height: 1.85rem;
150
+ min-height: 1.75rem;
126
151
  padding: 0 var(--space-3);
127
152
  border: 1px solid var(--border);
128
- border-radius: var(--radius-pill);
129
- background: color-mix(in oklch, var(--bg-elev-2) 92%, black 8%);
153
+ border-radius: var(--radius-sm);
154
+ background: var(--bg-elev);
130
155
  color: var(--text-dim);
131
156
  }
132
157
 
133
158
  .topbar-search {
134
159
  flex: 1;
135
160
  justify-content: space-between;
136
- max-width: 26rem;
161
+ max-width: 20rem;
137
162
  }
138
163
 
139
164
  .kbd {
140
165
  padding: 0.1rem 0.35rem;
141
166
  border-radius: var(--radius-sm);
142
167
  border: 1px solid var(--border);
143
- background: var(--bg);
168
+ background: var(--bg-elev);
144
169
  color: var(--text-dim);
145
170
  font: 500 var(--fs-micro) / 1.4 var(--font-mono);
146
171
  }
@@ -152,34 +177,51 @@ pre,
152
177
  margin-left: auto;
153
178
  }
154
179
 
180
+ .shell-topbar-end .topbar-cluster {
181
+ margin-left: 0;
182
+ }
183
+
155
184
  .shell-body {
156
185
  display: grid;
157
186
  grid-template-columns: var(--sidebar-width) 1fr;
158
- min-height: calc(100vh - 3rem);
187
+ min-height: calc(100vh - var(--shell-topbar-height));
159
188
  }
160
189
 
161
190
  .sidebar {
162
191
  display: flex;
163
192
  flex-direction: column;
164
- gap: var(--space-2);
165
- padding: var(--space-3) var(--space-2);
193
+ gap: var(--space-3);
194
+ padding: var(--space-2);
166
195
  border-right: 1px solid var(--border);
167
- background:
168
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev) 92%, black 8%), color-mix(in oklch, var(--bg) 90%, black 10%));
196
+ background: var(--bg);
169
197
  overflow: hidden;
170
198
  }
171
199
 
200
+ .shell-sidebar,
172
201
  .sidebar-header,
173
202
  .sidebar-footer {
174
203
  display: grid;
175
204
  gap: var(--space-2);
176
205
  }
177
206
 
207
+ .shell-sidebar {
208
+ height: calc(100vh - var(--shell-topbar-height));
209
+ position: sticky;
210
+ top: var(--shell-topbar-height);
211
+ }
212
+
213
+ .shell-sidebar-body {
214
+ display: grid;
215
+ gap: var(--space-3);
216
+ min-height: 0;
217
+ align-content: start;
218
+ }
219
+
178
220
  .sidebar-title {
179
221
  display: flex;
180
222
  align-items: center;
181
223
  gap: var(--space-2);
182
- min-height: 2rem;
224
+ min-height: 1.75rem;
183
225
  color: var(--text-strong);
184
226
  font: 500 var(--fs-meta) / 1.2 var(--font-mono);
185
227
  text-transform: uppercase;
@@ -202,6 +244,8 @@ pre,
202
244
  .sidebar-group {
203
245
  display: grid;
204
246
  gap: var(--space-2);
247
+ padding-top: var(--space-2);
248
+ border-top: 1px solid var(--border);
205
249
  }
206
250
 
207
251
  .sidebar-group-label {
@@ -215,12 +259,11 @@ pre,
215
259
  .sidebar-nav {
216
260
  display: grid;
217
261
  gap: var(--space-1);
218
- flex: 1;
219
262
  align-content: start;
220
263
  }
221
264
 
222
265
  .sidebar-toggle {
223
- justify-content: flex-start;
266
+ justify-content: center;
224
267
  }
225
268
 
226
269
  .nav-button,
@@ -230,10 +273,10 @@ pre,
230
273
  justify-content: flex-start;
231
274
  gap: var(--space-2);
232
275
  width: 100%;
233
- min-height: 2.35rem;
276
+ min-height: 2.1rem;
234
277
  padding: 0 var(--space-2);
235
278
  border: 1px solid transparent;
236
- border-radius: var(--radius-md);
279
+ border-radius: var(--radius-sm);
237
280
  background: transparent;
238
281
  color: var(--text-dim);
239
282
  text-decoration: none;
@@ -247,24 +290,21 @@ pre,
247
290
 
248
291
  .nav-button.is-active,
249
292
  .nav-link.is-active {
250
- background: var(--accent-bg);
251
- color: var(--accent);
252
- border-color: var(--accent-border);
253
- box-shadow:
254
- inset 0 0 0 1px color-mix(in oklch, var(--accent) 12%, transparent),
255
- 0 0 0 1px color-mix(in oklch, var(--accent) 4%, transparent);
293
+ background: color-mix(in oklch, var(--accent) 10%, var(--bg-elev));
294
+ color: var(--text-strong);
295
+ border-color: color-mix(in oklch, var(--accent) 18%, var(--border));
256
296
  }
257
297
 
258
298
  .nav-button:hover,
259
299
  .nav-link:hover {
260
- background: var(--bg-elev-2);
300
+ background: var(--bg-elev);
261
301
  color: var(--text-strong);
262
302
  border-color: color-mix(in oklch, var(--border-strong) 65%, transparent);
263
303
  }
264
304
 
265
305
  .nav-link.is-active:hover {
266
- background: var(--accent-bg);
267
- color: var(--accent);
306
+ background: color-mix(in oklch, var(--accent) 12%, var(--bg-elev));
307
+ color: var(--text-strong);
268
308
  }
269
309
 
270
310
  .nav-icon {
@@ -284,6 +324,54 @@ pre,
284
324
  flex: 1;
285
325
  }
286
326
 
327
+ .design-shell:not(.is-sidebar-expanded) .sidebar {
328
+ align-items: center;
329
+ }
330
+
331
+ .design-shell:not(.is-sidebar-expanded) .sidebar-header,
332
+ .design-shell:not(.is-sidebar-expanded) .sidebar-footer,
333
+ .design-shell:not(.is-sidebar-expanded) .shell-sidebar-body,
334
+ .design-shell:not(.is-sidebar-expanded) .sidebar-group,
335
+ .design-shell:not(.is-sidebar-expanded) .sidebar-nav {
336
+ width: 100%;
337
+ justify-items: center;
338
+ }
339
+
340
+ .design-shell:not(.is-sidebar-expanded) .sidebar-group {
341
+ padding-top: var(--space-3);
342
+ }
343
+
344
+ .design-shell:not(.is-sidebar-expanded) .sidebar-title {
345
+ display: none;
346
+ }
347
+
348
+ .design-shell:not(.is-sidebar-expanded) .nav-button,
349
+ .design-shell:not(.is-sidebar-expanded) .nav-link {
350
+ justify-content: center;
351
+ width: 2.25rem;
352
+ min-height: 2.25rem;
353
+ padding: 0;
354
+ border-radius: var(--radius);
355
+ }
356
+
357
+ .design-shell:not(.is-sidebar-expanded) .sidebar-toggle {
358
+ margin-bottom: var(--space-1);
359
+ }
360
+
361
+ .design-shell.is-sidebar-expanded .sidebar-toggle {
362
+ justify-content: flex-start;
363
+ }
364
+
365
+ .design-shell:not(.is-sidebar-expanded) .sidebar-group-label,
366
+ .design-shell:not(.is-sidebar-expanded) .sidebar-title-text,
367
+ .design-shell:not(.is-sidebar-expanded) .nav-link-copy {
368
+ display: none;
369
+ }
370
+
371
+ .design-shell.is-sidebar-expanded .shell-sidebar {
372
+ padding-right: var(--space-2);
373
+ }
374
+
287
375
  .nav-link-label {
288
376
  color: inherit;
289
377
  font-size: var(--fs-body);
@@ -298,6 +386,7 @@ pre,
298
386
 
299
387
  .workspace {
300
388
  padding: var(--space-4);
389
+ background: var(--bg);
301
390
  }
302
391
 
303
392
  .workspace-header {
@@ -321,7 +410,7 @@ pre,
321
410
  color: var(--text-strong);
322
411
  font-size: var(--fs-display);
323
412
  line-height: 1.1;
324
- letter-spacing: -0.03em;
413
+ letter-spacing: -0.025em;
325
414
  }
326
415
 
327
416
  .page-subtitle {
@@ -342,11 +431,11 @@ pre,
342
431
  align-items: center;
343
432
  justify-content: center;
344
433
  gap: var(--space-2);
345
- min-height: 1.85rem;
434
+ min-height: 1.75rem;
346
435
  padding: 0 var(--space-3);
347
436
  border: 1px solid var(--border);
348
- border-radius: var(--radius);
349
- background: color-mix(in oklch, var(--bg-elev-2) 92%, black 8%);
437
+ border-radius: var(--radius-sm);
438
+ background: var(--bg-elev);
350
439
  color: var(--text-strong);
351
440
  transition:
352
441
  border-color var(--motion-fast) var(--ease),
@@ -356,14 +445,13 @@ pre,
356
445
 
357
446
  .button:hover {
358
447
  border-color: var(--border-strong);
359
- background: var(--bg-elev-3);
360
- box-shadow: var(--shadow-1);
448
+ background: var(--bg-elev-2);
361
449
  }
362
450
 
363
451
  .button.is-primary {
364
- background: var(--accent);
365
- border-color: var(--accent);
366
- color: white;
452
+ background: color-mix(in oklch, var(--accent) 12%, var(--bg-elev));
453
+ border-color: color-mix(in oklch, var(--accent) 22%, var(--border));
454
+ color: var(--text-strong);
367
455
  }
368
456
 
369
457
  .button.is-ghost {
@@ -429,9 +517,7 @@ pre,
429
517
  .card {
430
518
  border: 1px solid var(--border);
431
519
  border-radius: var(--radius-lg);
432
- background:
433
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev) 95%, transparent), color-mix(in oklch, var(--bg) 92%, black 8%));
434
- box-shadow: var(--shadow-1);
520
+ background: var(--bg-elev);
435
521
  overflow: hidden;
436
522
  }
437
523
 
@@ -442,7 +528,7 @@ pre,
442
528
  .card-header,
443
529
  .card-body,
444
530
  .card-footer {
445
- padding: var(--space-4);
531
+ padding: 0.8125rem;
446
532
  }
447
533
 
448
534
  .card-header {
@@ -559,12 +645,14 @@ pre,
559
645
 
560
646
  .sparkline {
561
647
  position: relative;
562
- min-height: 8rem;
563
- border-radius: var(--radius);
648
+ min-height: 10rem;
649
+ padding: var(--space-3);
650
+ border: 1px solid color-mix(in oklch, var(--border) 88%, transparent);
651
+ border-radius: var(--radius-lg);
564
652
  background:
565
- linear-gradient(180deg, transparent, color-mix(in oklch, var(--accent) 10%, transparent)),
566
- linear-gradient(90deg, var(--border) 1px, transparent 1px);
567
- background-size: auto, calc(100% / 8) 100%;
653
+ repeating-linear-gradient(0deg, color-mix(in oklch, var(--border) 52%, transparent) 0 1px, transparent 1px 2.2rem),
654
+ repeating-linear-gradient(90deg, color-mix(in oklch, var(--border) 52%, transparent) 0 1px, transparent 1px 3.4rem),
655
+ var(--bg-elev-2);
568
656
  overflow: hidden;
569
657
  }
570
658
 
@@ -573,6 +661,95 @@ pre,
573
661
  height: 100%;
574
662
  }
575
663
 
664
+ .chart-svg {
665
+ display: block;
666
+ width: 100%;
667
+ height: 100%;
668
+ }
669
+
670
+ .chart-area {
671
+ fill: color-mix(in oklch, var(--accent) 3%, transparent);
672
+ }
673
+
674
+ .chart-line {
675
+ fill: none;
676
+ stroke: color-mix(in oklch, var(--accent) 78%, var(--text-dim));
677
+ stroke-width: 0.62;
678
+ stroke-opacity: 0.92;
679
+ stroke-linecap: round;
680
+ stroke-linejoin: round;
681
+ }
682
+
683
+ .chart-line.secondary {
684
+ stroke: color-mix(in oklch, var(--accent-2) 45%, var(--text-dim));
685
+ stroke-width: 0.52;
686
+ stroke-opacity: 0.6;
687
+ stroke-dasharray: 1.25 3.2;
688
+ }
689
+
690
+ .chart-point {
691
+ fill: var(--bg-elev-2);
692
+ stroke: color-mix(in oklch, var(--accent) 72%, var(--text-dim));
693
+ stroke-width: 0.72;
694
+ }
695
+
696
+ .chart-axis {
697
+ display: flex;
698
+ justify-content: space-between;
699
+ gap: var(--space-3);
700
+ margin-top: var(--space-2);
701
+ color: var(--text-dim);
702
+ font: 500 var(--fs-micro) / 1.4 var(--font-mono);
703
+ text-transform: uppercase;
704
+ letter-spacing: 0.08em;
705
+ }
706
+
707
+ .chart-legend {
708
+ display: flex;
709
+ align-items: center;
710
+ gap: var(--space-3);
711
+ flex-wrap: wrap;
712
+ margin-top: var(--space-3);
713
+ }
714
+
715
+ .chart-legend-item {
716
+ display: inline-flex;
717
+ align-items: center;
718
+ gap: 0.45rem;
719
+ color: var(--text-dim);
720
+ font: 500 var(--fs-meta) / 1.4 var(--font-mono);
721
+ }
722
+
723
+ .legend-swatch {
724
+ width: 1rem;
725
+ height: 0.2rem;
726
+ border-radius: var(--radius-pill);
727
+ background: currentColor;
728
+ }
729
+
730
+ .legend-swatch.secondary {
731
+ background:
732
+ repeating-linear-gradient(90deg, color-mix(in oklch, var(--accent-2) 45%, var(--text-dim)) 0 0.3rem, transparent 0.3rem 0.55rem);
733
+ }
734
+
735
+ .chart-summary {
736
+ display: grid;
737
+ grid-template-columns: repeat(3, minmax(0, 1fr));
738
+ gap: var(--space-3);
739
+ margin-top: var(--space-3);
740
+ }
741
+
742
+ .chart-summary-item {
743
+ display: grid;
744
+ gap: var(--space-1);
745
+ }
746
+
747
+ .chart-summary-value {
748
+ color: var(--text-strong);
749
+ font: 600 0.95rem / 1 var(--font-sans);
750
+ letter-spacing: -0.03em;
751
+ }
752
+
576
753
  .row-list {
577
754
  display: grid;
578
755
  }
@@ -615,7 +792,7 @@ pre,
615
792
  padding: var(--space-3);
616
793
  border: 1px solid var(--border);
617
794
  border-radius: var(--radius);
618
- background: color-mix(in oklch, var(--bg-elev-2) 95%, black 5%);
795
+ background: var(--bg-elev-2);
619
796
  }
620
797
 
621
798
  .surface {
@@ -688,7 +865,7 @@ pre,
688
865
  min-height: 1.9rem;
689
866
  padding: 0 var(--space-3);
690
867
  border: 1px solid var(--border);
691
- border-radius: var(--radius-pill);
868
+ border-radius: var(--radius-sm);
692
869
  background: var(--bg-elev);
693
870
  color: var(--text-dim);
694
871
  }
@@ -699,9 +876,9 @@ pre,
699
876
  }
700
877
 
701
878
  .section-tab.is-active {
702
- border-color: var(--accent-border);
703
- background: var(--accent-bg);
704
- color: var(--accent);
879
+ border-color: color-mix(in oklch, var(--accent) 22%, var(--border));
880
+ background: color-mix(in oklch, var(--accent) 10%, var(--bg-elev));
881
+ color: var(--text-strong);
705
882
  }
706
883
 
707
884
  .ops-hero,
@@ -737,8 +914,7 @@ pre,
737
914
  padding: var(--space-3);
738
915
  border: 1px solid var(--border);
739
916
  border-radius: var(--radius-lg);
740
- background:
741
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev-2) 96%, transparent), color-mix(in oklch, var(--bg) 92%, black 8%));
917
+ background: var(--bg-elev-2);
742
918
  }
743
919
 
744
920
  .signal-tile .label,
@@ -790,8 +966,7 @@ pre,
790
966
  padding: var(--space-4);
791
967
  border: 1px solid var(--border);
792
968
  border-radius: var(--radius-lg);
793
- background:
794
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev) 95%, transparent), color-mix(in oklch, var(--bg) 94%, black 6%));
969
+ background: var(--bg-elev);
795
970
  transition:
796
971
  transform var(--motion-fast) var(--ease),
797
972
  border-color var(--motion-fast) var(--ease),
@@ -799,21 +974,14 @@ pre,
799
974
  }
800
975
 
801
976
  .launcher-card:hover {
802
- transform: translateY(-1px);
803
977
  border-color: var(--border-strong);
804
- box-shadow: var(--shadow-2);
805
978
  }
806
979
 
807
980
  .screen-frame {
808
981
  min-height: 8rem;
809
982
  border: 1px solid var(--border);
810
983
  border-radius: var(--radius-md);
811
- background:
812
- linear-gradient(180deg, color-mix(in oklch, var(--accent) 12%, transparent), transparent 28%),
813
- linear-gradient(90deg, var(--border) 1px, transparent 1px),
814
- linear-gradient(0deg, var(--border) 1px, transparent 1px),
815
- var(--bg-elev-2);
816
- background-size: auto, calc(100% / 6) 100%, 100% calc(100% / 4), auto;
984
+ background: var(--bg-elev-2);
817
985
  position: relative;
818
986
  overflow: hidden;
819
987
  }
@@ -823,7 +991,7 @@ pre,
823
991
  content: "";
824
992
  position: absolute;
825
993
  border-radius: var(--radius-sm);
826
- background: color-mix(in oklch, var(--accent) 22%, transparent);
994
+ background: color-mix(in oklch, var(--accent) 12%, transparent);
827
995
  }
828
996
 
829
997
  .screen-frame::before {
@@ -836,17 +1004,17 @@ pre,
836
1004
  inset: auto 0.8rem 0.8rem 0.8rem;
837
1005
  height: 2.2rem;
838
1006
  border: 1px solid var(--accent-border);
839
- background: color-mix(in oklch, var(--accent) 10%, transparent);
1007
+ background: var(--bg);
840
1008
  }
841
1009
 
842
1010
  .density-list,
843
1011
  .queue-list {
844
1012
  display: grid;
845
- gap: 1px;
846
- border: 1px solid var(--border);
847
- border-radius: var(--radius-lg);
848
- overflow: hidden;
849
- background: var(--border);
1013
+ gap: 0;
1014
+ border: 0;
1015
+ border-radius: 0;
1016
+ overflow: visible;
1017
+ background: transparent;
850
1018
  }
851
1019
 
852
1020
  .density-row,
@@ -856,7 +1024,13 @@ pre,
856
1024
  gap: var(--space-3);
857
1025
  align-items: center;
858
1026
  padding: var(--space-3) var(--space-4);
859
- background: var(--bg-elev);
1027
+ border-top: 1px solid var(--border);
1028
+ background: transparent;
1029
+ }
1030
+
1031
+ .density-row:first-child,
1032
+ .queue-row:first-child {
1033
+ border-top: 0;
860
1034
  }
861
1035
 
862
1036
  .density-row .title,
@@ -879,8 +1053,7 @@ pre,
879
1053
  padding: var(--space-4);
880
1054
  border: 1px solid var(--border);
881
1055
  border-radius: var(--radius-lg);
882
- background:
883
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev-2) 94%, transparent), color-mix(in oklch, var(--bg) 94%, black 6%));
1056
+ background: var(--bg-elev);
884
1057
  }
885
1058
 
886
1059
  .info-block h3,
@@ -917,12 +1090,9 @@ pre,
917
1090
  display: grid;
918
1091
  gap: var(--space-4);
919
1092
  padding: var(--space-4);
920
- border: 1px solid var(--accent-border);
1093
+ border: 1px solid var(--border);
921
1094
  border-radius: var(--radius-lg);
922
- background:
923
- linear-gradient(180deg, color-mix(in oklch, var(--accent) 10%, transparent), transparent 42%),
924
- color-mix(in oklch, var(--bg-elev) 95%, transparent);
925
- box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--accent) 10%, transparent);
1095
+ background: var(--bg-elev);
926
1096
  }
927
1097
 
928
1098
  .terminal-line {
@@ -941,7 +1111,7 @@ pre,
941
1111
 
942
1112
  .shell-divider {
943
1113
  height: 1px;
944
- background: linear-gradient(90deg, transparent, var(--border), transparent);
1114
+ background: var(--border);
945
1115
  }
946
1116
 
947
1117
  .token-grid,
@@ -969,7 +1139,7 @@ pre,
969
1139
 
970
1140
  .table th,
971
1141
  .table td {
972
- padding: 0.75rem 1rem;
1142
+ padding: 0.6875rem 0.875rem;
973
1143
  border-bottom: 1px solid var(--border);
974
1144
  text-align: left;
975
1145
  }
@@ -1053,9 +1223,10 @@ pre,
1053
1223
  gap: var(--space-2);
1054
1224
  align-items: center;
1055
1225
  padding: 0.75rem 0.85rem;
1056
- border: 1px solid transparent;
1226
+ border: 1px solid var(--border);
1057
1227
  border-radius: var(--radius);
1058
1228
  color: var(--text);
1229
+ background: var(--bg);
1059
1230
  }
1060
1231
 
1061
1232
  .session-row.is-active {
@@ -1067,12 +1238,12 @@ pre,
1067
1238
  max-width: 80%;
1068
1239
  padding: var(--space-3);
1069
1240
  border-radius: var(--radius-md);
1070
- background: var(--bg-elev-2);
1241
+ background: var(--bg);
1242
+ border: 1px solid var(--border);
1071
1243
  }
1072
1244
 
1073
1245
  .message.assistant {
1074
- background: transparent;
1075
- border: 1px solid var(--border);
1246
+ background: var(--bg-elev-2);
1076
1247
  }
1077
1248
 
1078
1249
  .message + .message {
@@ -1084,7 +1255,7 @@ pre,
1084
1255
  padding: var(--space-3);
1085
1256
  border: 1px solid var(--border);
1086
1257
  border-radius: var(--radius-lg);
1087
- background: color-mix(in oklch, var(--bg-elev) 88%, black 12%);
1258
+ background: var(--bg-elev);
1088
1259
  }
1089
1260
 
1090
1261
  .input,
@@ -1095,7 +1266,7 @@ pre,
1095
1266
  padding: 0.65rem 0.8rem;
1096
1267
  border: 1px solid var(--border);
1097
1268
  border-radius: var(--radius);
1098
- background: var(--bg-elev-2);
1269
+ background: var(--bg);
1099
1270
  color: var(--text);
1100
1271
  }
1101
1272
 
@@ -1104,7 +1275,7 @@ pre,
1104
1275
  .select:focus {
1105
1276
  outline: none;
1106
1277
  border-color: var(--accent-border);
1107
- box-shadow: var(--shadow-glow);
1278
+ box-shadow: inset 0 0 0 1px var(--accent-border);
1108
1279
  }
1109
1280
 
1110
1281
  .textarea {
@@ -1167,30 +1338,41 @@ pre,
1167
1338
  padding: var(--space-4);
1168
1339
  border: 1px solid var(--border);
1169
1340
  border-radius: var(--radius-lg);
1170
- background:
1171
- linear-gradient(180deg, color-mix(in oklch, var(--bg-elev) 95%, transparent), color-mix(in oklch, var(--bg) 94%, black 6%));
1341
+ background: var(--bg-elev);
1172
1342
  }
1173
1343
 
1174
1344
  .launcher-card:hover {
1175
1345
  transform: translateY(-1px);
1176
1346
  border-color: var(--border-strong);
1177
- box-shadow: var(--shadow-2);
1178
1347
  }
1179
1348
 
1180
1349
  .screen-frame {
1181
1350
  min-height: 8rem;
1182
1351
  border: 1px solid var(--border);
1183
1352
  border-radius: var(--radius-md);
1184
- background:
1185
- linear-gradient(180deg, color-mix(in oklch, var(--accent) 12%, transparent), transparent 28%),
1186
- linear-gradient(90deg, var(--border) 1px, transparent 1px),
1187
- linear-gradient(0deg, var(--border) 1px, transparent 1px),
1188
- var(--bg-elev-2);
1189
- background-size: auto, calc(100% / 6) 100%, 100% calc(100% / 4), auto;
1353
+ background: var(--bg-elev-2);
1190
1354
  position: relative;
1191
1355
  overflow: hidden;
1192
1356
  }
1193
1357
 
1358
+ .screen-frame::before {
1359
+ content: "";
1360
+ position: absolute;
1361
+ inset: 0 auto 0 0;
1362
+ width: 1.7rem;
1363
+ border-right: 1px solid var(--border);
1364
+ background: var(--bg);
1365
+ }
1366
+
1367
+ .screen-frame::after {
1368
+ content: "";
1369
+ position: absolute;
1370
+ inset: 0 0 auto 0;
1371
+ height: 1.35rem;
1372
+ border-bottom: 1px solid var(--border);
1373
+ background: var(--bg-elev);
1374
+ }
1375
+
1194
1376
  .phone-frame {
1195
1377
  width: min(24rem, 100%);
1196
1378
  margin: 0 auto;
@@ -1198,7 +1380,6 @@ pre,
1198
1380
  border: 1px solid var(--border-strong);
1199
1381
  border-radius: 2rem;
1200
1382
  background: var(--bg);
1201
- box-shadow: var(--shadow-3);
1202
1383
  }
1203
1384
 
1204
1385
  .phone-screen {
@@ -1290,13 +1471,15 @@ pre,
1290
1471
  gap: var(--space-2);
1291
1472
  min-height: 2rem;
1292
1473
  padding: 0 var(--space-3);
1293
- border-bottom: 2px solid transparent;
1474
+ border: 1px solid transparent;
1475
+ border-radius: var(--radius);
1294
1476
  color: var(--text-dim);
1295
1477
  }
1296
1478
 
1297
1479
  .tab.is-active {
1298
- color: var(--text-strong);
1299
- border-bottom-color: var(--accent);
1480
+ color: var(--accent);
1481
+ background: var(--accent-bg);
1482
+ border-color: var(--accent-border);
1300
1483
  }
1301
1484
 
1302
1485
  .segmented {
@@ -1304,8 +1487,8 @@ pre,
1304
1487
  gap: var(--space-2);
1305
1488
  padding: var(--space-1);
1306
1489
  border: 1px solid var(--border);
1307
- border-radius: var(--radius-pill);
1308
- background: var(--bg-elev);
1490
+ border-radius: var(--radius);
1491
+ background: var(--bg);
1309
1492
  }
1310
1493
 
1311
1494
  .segmented-item {
@@ -1314,13 +1497,14 @@ pre,
1314
1497
  justify-content: center;
1315
1498
  min-height: 1.75rem;
1316
1499
  padding: 0 var(--space-3);
1317
- border-radius: var(--radius-pill);
1500
+ border-radius: var(--radius-sm);
1318
1501
  color: var(--text-dim);
1319
1502
  }
1320
1503
 
1321
1504
  .segmented-item.is-active {
1322
1505
  background: var(--accent-bg);
1323
1506
  color: var(--accent);
1507
+ border: 1px solid var(--accent-border);
1324
1508
  }
1325
1509
 
1326
1510
  .avatar {
@@ -1400,7 +1584,7 @@ pre,
1400
1584
  min-height: 14rem;
1401
1585
  padding: var(--space-4);
1402
1586
  border-left: 1px solid var(--border);
1403
- background: var(--bg-elev);
1587
+ background: var(--bg-elev-2);
1404
1588
  }
1405
1589
 
1406
1590
  .modal-demo {
@@ -1411,7 +1595,6 @@ pre,
1411
1595
  border: 1px solid var(--border);
1412
1596
  border-radius: var(--radius-xl);
1413
1597
  background: var(--bg-elev);
1414
- box-shadow: var(--shadow-3);
1415
1598
  }
1416
1599
 
1417
1600
  .kanban {
@@ -1426,7 +1609,7 @@ pre,
1426
1609
  padding: var(--space-3);
1427
1610
  border: 1px solid var(--border);
1428
1611
  border-radius: var(--radius-lg);
1429
- background: var(--bg-elev);
1612
+ background: var(--bg-elev-2);
1430
1613
  }
1431
1614
 
1432
1615
  .divider {
@@ -1435,6 +1618,18 @@ pre,
1435
1618
  }
1436
1619
 
1437
1620
  @media (max-width: 1100px) {
1621
+ .shell-topbar {
1622
+ grid-template-columns: 1fr;
1623
+ align-items: stretch;
1624
+ }
1625
+
1626
+ .shell-topbar-start,
1627
+ .shell-topbar-center,
1628
+ .shell-topbar-end {
1629
+ justify-content: flex-start;
1630
+ flex-wrap: wrap;
1631
+ }
1632
+
1438
1633
  .hero-metrics,
1439
1634
  .two-column,
1440
1635
  .three-column,