pi-studio 0.6.0 → 0.6.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.
package/client/studio.css CHANGED
@@ -2,19 +2,24 @@
2
2
  html, body {
3
3
  margin: 0;
4
4
  height: 100%;
5
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
5
+ font-family: var(--font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
6
6
  background: var(--bg);
7
7
  color: var(--text);
8
8
  }
9
9
 
10
10
  body {
11
+ --studio-editor-font-size: 13px;
12
+ --studio-editor-line-number-font-size: 12px;
13
+ --studio-response-font-size: 15px;
14
+ --studio-response-raw-font-size: 13px;
15
+ --studio-working-font-size: 13px;
11
16
  display: flex;
12
17
  flex-direction: column;
13
18
  min-height: 100%;
14
19
  }
15
20
 
16
21
  body > header {
17
- border-bottom: 1px solid var(--border-muted);
22
+ border-bottom: 1px solid var(--panel-border);
18
23
  padding: 12px 16px;
19
24
  background: var(--panel);
20
25
  display: flex;
@@ -55,7 +60,7 @@
55
60
  }
56
61
 
57
62
  button, select, .file-label {
58
- border: 1px solid var(--border-muted);
63
+ border: 1px solid var(--control-border);
59
64
  background: var(--panel);
60
65
  color: var(--text);
61
66
  border-radius: 8px;
@@ -149,7 +154,7 @@
149
154
  }
150
155
 
151
156
  section {
152
- border: 1px solid var(--border-muted);
157
+ border: 1px solid var(--panel-border);
153
158
  border-radius: 10px;
154
159
  background: var(--panel);
155
160
  min-height: 0;
@@ -160,7 +165,7 @@
160
165
  }
161
166
 
162
167
  section.pane-active {
163
- border-color: var(--border);
168
+ border-color: var(--pane-active-border);
164
169
  }
165
170
 
166
171
  body.pane-focus-left main,
@@ -175,12 +180,12 @@
175
180
 
176
181
  body.pane-focus-left #leftPane,
177
182
  body.pane-focus-right #rightPane {
178
- border-color: var(--border);
183
+ border-color: var(--pane-active-border);
179
184
  }
180
185
 
181
186
  .section-header {
182
187
  padding: 10px 12px;
183
- border-bottom: 1px solid var(--border-muted);
188
+ border-bottom: 1px solid var(--panel-border);
184
189
  background: var(--panel-2);
185
190
  font-weight: 600;
186
191
  font-size: 14px;
@@ -275,7 +280,8 @@
275
280
  body[data-studio-mode="editor-only"] #copyResponseBtn,
276
281
  body[data-studio-mode="editor-only"] #compactBtn,
277
282
  body[data-studio-mode="editor-only"] .reference-meta,
278
- body[data-studio-mode="editor-only"] #responseActions {
283
+ body[data-studio-mode="editor-only"] #responseActions .history-row,
284
+ body[data-studio-mode="editor-only"] #responseActions .response-result-row {
279
285
  display: none !important;
280
286
  }
281
287
 
@@ -293,13 +299,13 @@
293
299
 
294
300
  .reference-meta {
295
301
  padding: 8px 10px;
296
- border-bottom: 1px solid var(--border-muted);
297
- background: var(--panel-2);
302
+ border-bottom: 1px solid var(--panel-border);
303
+ background: var(--reference-meta-bg, var(--panel-2));
298
304
  }
299
305
 
300
306
  textarea {
301
307
  width: 100%;
302
- border: 1px solid var(--border-muted);
308
+ border: 1px solid var(--control-border);
303
309
  border-radius: 8px;
304
310
  background: var(--panel);
305
311
  color: var(--text);
@@ -313,7 +319,7 @@
313
319
 
314
320
  .source-wrap {
315
321
  padding: 10px;
316
- border-bottom: 1px solid var(--border-muted);
322
+ border-bottom: 1px solid var(--panel-border);
317
323
  display: flex;
318
324
  flex-direction: column;
319
325
  gap: 8px;
@@ -344,7 +350,7 @@
344
350
  min-width: 280px;
345
351
  min-height: 0;
346
352
  display: flex;
347
- border: 1px solid var(--border);
353
+ border: 1px solid var(--panel-border);
348
354
  border-radius: 10px;
349
355
  background: var(--panel);
350
356
  box-shadow: var(--panel-shadow);
@@ -385,7 +391,7 @@
385
391
  }
386
392
 
387
393
  .source-badge {
388
- border: 1px solid var(--border-muted);
394
+ border: 1px solid var(--control-border);
389
395
  background: var(--panel);
390
396
  border-radius: 999px;
391
397
  padding: 4px 10px;
@@ -394,6 +400,15 @@
394
400
  white-space: nowrap;
395
401
  }
396
402
 
403
+ .reference-meta .source-badge {
404
+ background: var(--reference-badge-bg, var(--panel));
405
+ }
406
+
407
+ body.studio-ui-refresh #rightPane .reference-meta .source-badge {
408
+ border-color: var(--border-subtle);
409
+ color: color-mix(in srgb, var(--text) 58%, var(--muted));
410
+ }
411
+
397
412
  .source-badge-button {
398
413
  cursor: pointer;
399
414
  transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
@@ -413,7 +428,7 @@
413
428
  }
414
429
 
415
430
  .sync-badge.sync {
416
- border-color: var(--border-muted);
431
+ border-color: var(--control-border);
417
432
  color: var(--muted);
418
433
  opacity: 0.88;
419
434
  }
@@ -443,7 +458,7 @@
443
458
  .resource-dir-btn {
444
459
  padding: 4px 10px;
445
460
  font-size: 12px;
446
- border: 1px solid var(--border-muted);
461
+ border: 1px solid var(--control-border);
447
462
  border-radius: 999px;
448
463
  background: var(--card);
449
464
  color: var(--fg-muted);
@@ -478,7 +493,7 @@
478
493
  width: 260px;
479
494
  padding: 2px 6px;
480
495
  font-size: 11px;
481
- border: 1px solid var(--border-muted);
496
+ border: 1px solid var(--control-border);
482
497
  border-radius: 4px;
483
498
  background: var(--editor-bg);
484
499
  color: var(--fg);
@@ -498,7 +513,7 @@
498
513
  flex: 1 1 auto;
499
514
  min-height: 0;
500
515
  max-height: none;
501
- border: 1px solid var(--border-muted);
516
+ border: 1px solid var(--panel-border);
502
517
  border-radius: 8px;
503
518
  background: var(--editor-bg);
504
519
  overflow: hidden;
@@ -510,13 +525,13 @@
510
525
  position: absolute;
511
526
  inset: 0 auto 0 0;
512
527
  overflow: hidden;
513
- background: var(--panel-2);
528
+ background: var(--editor-gutter-bg, var(--panel-2));
514
529
  z-index: 0;
515
530
  }
516
531
 
517
532
  .editor-review-note-gutter {
518
533
  width: var(--editor-review-note-gutter-width);
519
- border-right: 1px solid var(--border-muted);
534
+ border-right: 1px solid var(--panel-border);
520
535
  z-index: 2;
521
536
  }
522
537
 
@@ -567,8 +582,8 @@
567
582
  .editor-line-number-gutter {
568
583
  left: var(--editor-review-note-gutter-width);
569
584
  width: var(--editor-line-number-gutter-width);
570
- border-right: 1px solid var(--border-muted);
571
- color: var(--muted);
585
+ border-right: 1px solid var(--panel-border);
586
+ color: color-mix(in srgb, var(--text) 50%, var(--muted));
572
587
  pointer-events: none;
573
588
  }
574
589
 
@@ -577,7 +592,7 @@
577
592
  padding: 10px 8px 10px 0;
578
593
  text-align: right;
579
594
  font-family: var(--font-mono);
580
- font-size: 12px;
595
+ font-size: var(--studio-editor-line-number-font-size);
581
596
  line-height: 1.45;
582
597
  font-variant-numeric: tabular-nums;
583
598
  white-space: nowrap;
@@ -599,7 +614,7 @@
599
614
  word-break: normal;
600
615
  overflow-wrap: break-word;
601
616
  font-family: var(--font-mono);
602
- font-size: 13px;
617
+ font-size: var(--studio-editor-font-size);
603
618
  line-height: 1.45;
604
619
  tab-size: 2;
605
620
  z-index: -1;
@@ -625,7 +640,7 @@
625
640
  overscroll-behavior: none;
626
641
  scrollbar-width: none;
627
642
  font-family: var(--font-mono);
628
- font-size: 13px;
643
+ font-size: var(--studio-editor-font-size);
629
644
  line-height: 1.45;
630
645
  tab-size: 2;
631
646
  color: var(--text);
@@ -651,6 +666,8 @@
651
666
  outline: none;
652
667
  overscroll-behavior: none;
653
668
  padding: 10px 10px 10px calc(10px + var(--editor-review-note-gutter-width) + var(--editor-line-number-gutter-width));
669
+ font-size: var(--studio-editor-font-size);
670
+ line-height: 1.45;
654
671
  }
655
672
 
656
673
  #sourceText.highlight-active {
@@ -685,7 +702,7 @@
685
702
  background: var(--accent-soft);
686
703
  border-color: var(--accent);
687
704
  color: var(--accent);
688
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
705
+ box-shadow: 0 1px 2px var(--shadow-color);
689
706
  }
690
707
 
691
708
  .editor-selection-action-btn:hover,
@@ -758,14 +775,14 @@
758
775
 
759
776
  .hl-diff-add {
760
777
  color: var(--ok);
761
- background: rgba(46, 160, 67, 0.12);
778
+ background: var(--diff-added-bg);
762
779
  display: inline-block;
763
780
  width: 100%;
764
781
  }
765
782
 
766
783
  .hl-diff-del {
767
784
  color: var(--error);
768
- background: rgba(248, 81, 73, 0.12);
785
+ background: var(--diff-removed-bg);
769
786
  display: inline-block;
770
787
  width: 100%;
771
788
  }
@@ -818,7 +835,7 @@
818
835
  .annotation-preview-marker code {
819
836
  font-family: var(--mono-font, ui-monospace, SFMono-Regular, Menlo, monospace);
820
837
  font-size: 0.95em;
821
- background: rgba(0, 0, 0, 0.08);
838
+ background: var(--inline-code-bg);
822
839
  border-radius: 3px;
823
840
  padding: 0 0.2em;
824
841
  }
@@ -827,7 +844,7 @@
827
844
  flex: 1 1 auto;
828
845
  min-height: 0;
829
846
  max-height: none;
830
- border: 1px solid var(--border-muted);
847
+ border: 1px solid var(--panel-border);
831
848
  border-radius: 8px;
832
849
  background: var(--panel);
833
850
  }
@@ -844,6 +861,7 @@
844
861
  .rendered-markdown {
845
862
  overflow-wrap: anywhere;
846
863
  line-height: 1.58;
864
+ font-family: var(--font-prose, var(--font-ui));
847
865
  font-size: 15px;
848
866
  }
849
867
 
@@ -965,7 +983,7 @@
965
983
  background: var(--accent-soft);
966
984
  border-color: var(--accent);
967
985
  color: var(--accent);
968
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
986
+ box-shadow: 0 1px 2px var(--shadow-color);
969
987
  pointer-events: auto;
970
988
  }
971
989
 
@@ -1026,7 +1044,7 @@
1026
1044
  .rendered-markdown .callout-caution {
1027
1045
  margin: 1.15em 0;
1028
1046
  padding: 0.8em 1rem 0.95em;
1029
- border: 1px solid var(--border-muted);
1047
+ border: 1px solid var(--panel-border);
1030
1048
  border-left-width: 4px;
1031
1049
  border-radius: 10px;
1032
1050
  background: var(--panel-2);
@@ -1144,7 +1162,7 @@
1144
1162
  z-index: 4;
1145
1163
  padding: 3px 8px;
1146
1164
  border-radius: 999px;
1147
- border: 1px solid var(--border-muted);
1165
+ border: 1px solid var(--control-border);
1148
1166
  background: var(--panel);
1149
1167
  color: var(--muted);
1150
1168
  font-family: var(--font-ui);
@@ -1152,7 +1170,7 @@
1152
1170
  font-weight: 700;
1153
1171
  line-height: 1.4;
1154
1172
  opacity: 0.25;
1155
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
1173
+ box-shadow: 0 2px 8px var(--shadow-color);
1156
1174
  cursor: pointer;
1157
1175
  pointer-events: auto;
1158
1176
  user-select: none;
@@ -1171,7 +1189,7 @@
1171
1189
  }
1172
1190
 
1173
1191
  .rendered-markdown :not(pre) > code {
1174
- background: rgba(127, 127, 127, 0.13);
1192
+ background: var(--inline-code-bg);
1175
1193
  border: 1px solid var(--md-codeblock-border);
1176
1194
  border-radius: 6px;
1177
1195
  padding: 0.12em 0.35em;
@@ -1235,11 +1253,11 @@
1235
1253
  /* Diff-specific overrides for pandoc code blocks */
1236
1254
  .rendered-markdown pre.sourceCode.diff code > span:has(> .va) {
1237
1255
  color: var(--ok);
1238
- background: rgba(46, 160, 67, 0.12);
1256
+ background: var(--diff-added-bg);
1239
1257
  }
1240
1258
  .rendered-markdown pre.sourceCode.diff code > span:has(> .st) {
1241
1259
  color: var(--error);
1242
- background: rgba(248, 81, 73, 0.12);
1260
+ background: var(--diff-removed-bg);
1243
1261
  }
1244
1262
  .rendered-markdown pre.sourceCode.diff code > span:has(> .dt) {
1245
1263
  color: var(--syntax-function);
@@ -1264,7 +1282,7 @@
1264
1282
 
1265
1283
  .rendered-markdown th,
1266
1284
  .rendered-markdown td {
1267
- border: 1px solid var(--border-muted);
1285
+ border: 1px solid var(--md-table-border);
1268
1286
  padding: 6px 12px;
1269
1287
  }
1270
1288
 
@@ -1415,8 +1433,8 @@
1415
1433
 
1416
1434
  .rendered-markdown .studio-algorithm-block > figcaption {
1417
1435
  padding: 0.8em 1em 0.65em;
1418
- border-bottom: 1px solid var(--border-muted);
1419
- background: rgba(127, 127, 127, 0.06);
1436
+ border-bottom: 1px solid var(--panel-border);
1437
+ background: var(--inline-code-bg);
1420
1438
  text-align: left;
1421
1439
  }
1422
1440
 
@@ -1540,6 +1558,15 @@
1540
1558
  line-height: 1.5;
1541
1559
  }
1542
1560
 
1561
+ #rightPane .rendered-markdown {
1562
+ font-size: var(--studio-response-font-size);
1563
+ }
1564
+
1565
+ #rightPane .plain-markdown,
1566
+ #rightPane .response-markdown-highlight {
1567
+ font-size: var(--studio-response-raw-font-size);
1568
+ }
1569
+
1543
1570
  .preview-loading {
1544
1571
  color: var(--muted);
1545
1572
  font-style: italic;
@@ -1606,7 +1633,7 @@
1606
1633
  }
1607
1634
 
1608
1635
  .response-wrap {
1609
- border-top: 1px solid var(--border-muted);
1636
+ border-top: 1px solid var(--panel-border);
1610
1637
  padding: 10px;
1611
1638
  display: flex;
1612
1639
  flex-direction: column;
@@ -1702,7 +1729,7 @@
1702
1729
  font-size: 11px;
1703
1730
  font-weight: 600;
1704
1731
  letter-spacing: 0.01em;
1705
- border: 1px solid var(--border);
1732
+ border: 1px solid var(--control-border);
1706
1733
  background: transparent;
1707
1734
  color: var(--muted);
1708
1735
  }
@@ -1734,13 +1761,13 @@
1734
1761
  .trace-entry-status.trace-entry-status-complete {
1735
1762
  color: var(--ok);
1736
1763
  border-color: var(--ok-border);
1737
- background: rgba(115, 209, 61, 0.08);
1764
+ background: var(--ok-soft);
1738
1765
  }
1739
1766
 
1740
1767
  .trace-entry-status.trace-entry-status-error {
1741
1768
  color: var(--error);
1742
1769
  border-color: var(--error);
1743
- background: rgba(255, 107, 107, 0.08);
1770
+ background: var(--error-soft);
1744
1771
  }
1745
1772
 
1746
1773
  .trace-summary-meta,
@@ -1760,10 +1787,10 @@
1760
1787
  flex-direction: column;
1761
1788
  gap: 8px;
1762
1789
  padding: 10px 12px;
1763
- border: 1px solid var(--border-muted);
1790
+ border: 1px solid var(--panel-border);
1764
1791
  border-radius: 10px;
1765
1792
  background: var(--panel-2);
1766
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
1793
+ box-shadow: 0 1px 0 var(--border-subtle);
1767
1794
  }
1768
1795
 
1769
1796
  .trace-card-header {
@@ -1798,11 +1825,12 @@
1798
1825
  .trace-output {
1799
1826
  padding: 10px 11px;
1800
1827
  border-radius: 8px;
1801
- border: 1px solid var(--border-muted);
1828
+ border: 1px solid var(--panel-border);
1802
1829
  background: var(--panel);
1803
1830
  overflow-x: auto;
1804
1831
  white-space: pre-wrap;
1805
1832
  overflow-wrap: anywhere;
1833
+ font-size: var(--studio-working-font-size);
1806
1834
  }
1807
1835
 
1808
1836
  .trace-empty,
@@ -1816,7 +1844,7 @@
1816
1844
  }
1817
1845
 
1818
1846
  footer {
1819
- border-top: 1px solid var(--border-muted);
1847
+ border-top: 1px solid var(--panel-border);
1820
1848
  padding: 8px 12px;
1821
1849
  color: var(--muted);
1822
1850
  font-size: 12px;
@@ -1886,10 +1914,40 @@
1886
1914
  }
1887
1915
 
1888
1916
  .footer-meta-text {
1917
+ display: inline-flex;
1918
+ align-items: center;
1919
+ gap: 4px;
1889
1920
  min-width: 0;
1921
+ max-width: 100%;
1890
1922
  white-space: nowrap;
1891
1923
  overflow: hidden;
1924
+ }
1925
+
1926
+ .footer-meta-part {
1927
+ min-width: 0;
1928
+ overflow: hidden;
1892
1929
  text-overflow: ellipsis;
1930
+ white-space: nowrap;
1931
+ }
1932
+
1933
+ .footer-meta-model {
1934
+ flex: 0 2 auto;
1935
+ max-width: 34ch;
1936
+ }
1937
+
1938
+ .footer-meta-terminal {
1939
+ flex: 0 4 auto;
1940
+ max-width: 34ch;
1941
+ }
1942
+
1943
+ .footer-meta-context {
1944
+ flex: 0 0 auto;
1945
+ font-variant-numeric: tabular-nums;
1946
+ }
1947
+
1948
+ .footer-meta-sep {
1949
+ flex: 0 0 auto;
1950
+ opacity: 0.72;
1893
1951
  }
1894
1952
 
1895
1953
  .shortcut-hint {
@@ -1912,7 +1970,7 @@
1912
1970
  font-size: 11px;
1913
1971
  line-height: 1.2;
1914
1972
  border-radius: 999px;
1915
- border: 1px solid var(--border-muted);
1973
+ border: 1px solid var(--control-border);
1916
1974
  background: var(--panel-2);
1917
1975
  color: var(--text);
1918
1976
  white-space: nowrap;
@@ -1935,7 +1993,7 @@
1935
1993
  align-items: center;
1936
1994
  justify-content: center;
1937
1995
  padding: 24px;
1938
- background: rgba(0, 0, 0, 0.48);
1996
+ background: var(--backdrop-bg);
1939
1997
  backdrop-filter: blur(2px);
1940
1998
  }
1941
1999
 
@@ -1946,10 +2004,10 @@
1946
2004
  .scratchpad-dialog {
1947
2005
  width: min(860px, 100%);
1948
2006
  max-height: min(82vh, 900px);
1949
- border: 1px solid var(--border);
2007
+ border: 1px solid var(--panel-border);
1950
2008
  border-radius: 14px;
1951
2009
  background: var(--panel);
1952
- box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
2010
+ box-shadow: 0 18px 50px var(--shadow-color);
1953
2011
  display: flex;
1954
2012
  flex-direction: column;
1955
2013
  overflow: hidden;
@@ -1961,8 +2019,8 @@
1961
2019
  justify-content: space-between;
1962
2020
  gap: 12px;
1963
2021
  padding: 16px 18px 12px;
1964
- border-bottom: 1px solid var(--border-muted);
1965
- background: var(--panel-2);
2022
+ border-bottom: 1px solid var(--panel-border);
2023
+ background: var(--scratchpad-header-bg, var(--panel-2));
1966
2024
  }
1967
2025
 
1968
2026
  .scratchpad-header > div {
@@ -1980,7 +2038,7 @@
1980
2038
  margin: 6px 0 0;
1981
2039
  font-size: 12px;
1982
2040
  line-height: 1.45;
1983
- color: var(--muted);
2041
+ color: var(--studio-info-text, var(--muted));
1984
2042
  max-width: none;
1985
2043
  }
1986
2044
 
@@ -1995,11 +2053,11 @@
1995
2053
  min-height: 280px;
1996
2054
  flex: 1 1 auto;
1997
2055
  border: 0;
1998
- border-bottom: 1px solid var(--border-muted);
2056
+ border-bottom: 1px solid var(--panel-border);
1999
2057
  border-radius: 0;
2000
2058
  margin: 0;
2001
2059
  padding: 16px 18px;
2002
- background: var(--panel);
2060
+ background: var(--scratchpad-body-bg, var(--panel));
2003
2061
  color: var(--text);
2004
2062
  font-family: var(--font-mono);
2005
2063
  font-size: 13px;
@@ -2015,12 +2073,12 @@
2015
2073
  gap: 12px;
2016
2074
  flex-wrap: wrap;
2017
2075
  padding: 12px 18px 16px;
2018
- background: var(--panel);
2076
+ background: var(--scratchpad-body-bg, var(--panel));
2019
2077
  }
2020
2078
 
2021
2079
  .scratchpad-meta {
2022
2080
  font-size: 12px;
2023
- color: var(--muted);
2081
+ color: var(--studio-info-text, var(--muted));
2024
2082
  }
2025
2083
 
2026
2084
  .scratchpad-actions {
@@ -2073,17 +2131,17 @@
2073
2131
  gap: 12px;
2074
2132
  flex-wrap: wrap;
2075
2133
  padding: 10px 14px;
2076
- border-bottom: 1px solid var(--border);
2134
+ border-bottom: 1px solid var(--panel-border);
2077
2135
  background: var(--panel-2);
2078
- box-shadow: inset 0 -1px 0 var(--border-muted);
2136
+ box-shadow: inset 0 -1px 0 var(--border-subtle);
2079
2137
  }
2080
2138
 
2081
2139
  .review-notes-empty {
2082
2140
  padding: 14px;
2083
2141
  font-size: 13px;
2084
2142
  line-height: 1.5;
2085
- color: var(--muted);
2086
- border-bottom: 1px solid var(--border-muted);
2143
+ color: var(--studio-info-text, var(--muted));
2144
+ border-bottom: 1px solid var(--panel-border);
2087
2145
  background: var(--panel);
2088
2146
  }
2089
2147
 
@@ -2106,9 +2164,9 @@
2106
2164
  display: flex;
2107
2165
  justify-content: flex-end;
2108
2166
  padding: 10px 14px 12px;
2109
- border-top: 1px solid var(--border);
2167
+ border-top: 1px solid var(--panel-border);
2110
2168
  background: var(--panel-2);
2111
- box-shadow: inset 0 1px 0 var(--border-muted);
2169
+ box-shadow: inset 0 1px 0 var(--border-subtle);
2112
2170
  }
2113
2171
 
2114
2172
  .review-notes-dock-footer .scratchpad-actions {
@@ -2143,7 +2201,7 @@
2143
2201
  border-radius: 10px;
2144
2202
  padding: 8px 10px;
2145
2203
  background: var(--panel-2);
2146
- border: 1px solid var(--border-muted);
2204
+ border: 1px solid var(--panel-border);
2147
2205
  }
2148
2206
 
2149
2207
  .outline-entry:hover,
@@ -2171,13 +2229,13 @@
2171
2229
 
2172
2230
  .outline-entry-meta {
2173
2231
  font-size: 11px;
2174
- color: var(--muted);
2232
+ color: var(--studio-info-text, var(--muted));
2175
2233
  white-space: nowrap;
2176
2234
  font-variant-numeric: tabular-nums;
2177
2235
  }
2178
2236
 
2179
2237
  .review-note-card {
2180
- border: 1px solid var(--border-muted);
2238
+ border: 1px solid var(--panel-border);
2181
2239
  border-radius: 12px;
2182
2240
  background: var(--panel-2);
2183
2241
  padding: 12px;
@@ -2236,7 +2294,7 @@
2236
2294
  line-height: 1.5;
2237
2295
  resize: vertical;
2238
2296
  outline: none;
2239
- box-shadow: inset 0 0 0 1px var(--border-muted);
2297
+ box-shadow: inset 0 0 0 1px var(--control-border);
2240
2298
  }
2241
2299
 
2242
2300
  .review-note-card textarea:focus {
@@ -2258,7 +2316,7 @@
2258
2316
 
2259
2317
  #reviewNotesAddBtn:not(:disabled) {
2260
2318
  color: var(--muted);
2261
- border-color: var(--border-muted);
2319
+ border-color: var(--control-border);
2262
2320
  background: var(--panel);
2263
2321
  font-weight: 500;
2264
2322
  }
@@ -2323,6 +2381,11 @@
2323
2381
 
2324
2382
  /* Default refreshed Studio layout. Classic layout remains available with ?uiRefresh=0 or the footer UI switch. */
2325
2383
  body.studio-ui-refresh {
2384
+ --studio-editor-font-size: 12px;
2385
+ --studio-editor-line-number-font-size: 11px;
2386
+ --studio-response-font-size: 13.5px;
2387
+ --studio-response-raw-font-size: 12px;
2388
+ --studio-working-font-size: 12px;
2326
2389
  font-size: 13px;
2327
2390
  }
2328
2391
 
@@ -2340,7 +2403,9 @@
2340
2403
  }
2341
2404
 
2342
2405
  body.studio-ui-refresh .app-subtitle {
2343
- font-size: 10px;
2406
+ color: color-mix(in srgb, var(--text) 42%, var(--muted));
2407
+ font-size: 11px;
2408
+ font-weight: 550;
2344
2409
  }
2345
2410
 
2346
2411
  body.studio-ui-refresh > header .controls {
@@ -2455,7 +2520,7 @@
2455
2520
  display: inline-block;
2456
2521
  width: 1px;
2457
2522
  height: 16px;
2458
- background: var(--border-muted);
2523
+ background: var(--border-subtle);
2459
2524
  margin: 0 1px;
2460
2525
  flex: 0 0 1px;
2461
2526
  }
@@ -2488,13 +2553,13 @@
2488
2553
  body.studio-ui-refresh #rightSectionHeader button:not(:disabled):hover,
2489
2554
  body.studio-ui-refresh .studio-refresh-toolbar button:not(:disabled):hover,
2490
2555
  body.studio-ui-refresh .studio-refresh-toolbar select:not(:disabled):hover {
2491
- background: var(--panel-2);
2556
+ background: var(--studio-header-action-hover-bg, var(--panel-2));
2492
2557
  }
2493
2558
 
2494
2559
  body.studio-ui-refresh #leftSectionHeader #editorViewSelect,
2495
2560
  body.studio-ui-refresh #rightSectionHeader #rightViewSelect {
2496
2561
  font-size: 14px;
2497
- font-weight: 750;
2562
+ font-weight: 700;
2498
2563
  padding: 3px 5px;
2499
2564
  max-width: 230px;
2500
2565
  }
@@ -2502,7 +2567,7 @@
2502
2567
  body.studio-ui-refresh .studio-refresh-static-title {
2503
2568
  color: var(--text);
2504
2569
  font-size: 14px;
2505
- font-weight: 700;
2570
+ font-weight: 650;
2506
2571
  padding: 3px 5px;
2507
2572
  max-width: 230px;
2508
2573
  white-space: nowrap;
@@ -2558,10 +2623,11 @@
2558
2623
  min-height: 24px;
2559
2624
  border: 0;
2560
2625
  border-radius: 999px;
2561
- padding: 2px 8px;
2562
- background: var(--panel-2);
2626
+ padding: 2px 7px;
2627
+ background: transparent;
2563
2628
  color: var(--muted);
2564
- opacity: 1;
2629
+ opacity: 0.82;
2630
+ font-weight: 450;
2565
2631
  }
2566
2632
 
2567
2633
  body.studio-ui-refresh #syncBadge[hidden] {
@@ -2570,11 +2636,11 @@
2570
2636
 
2571
2637
  body.studio-ui-refresh #syncBadge::before {
2572
2638
  content: "";
2573
- width: 6px;
2574
- height: 6px;
2639
+ width: 5px;
2640
+ height: 5px;
2575
2641
  border-radius: 999px;
2576
- background: var(--success, #22c55e);
2577
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--success, #22c55e) 14%, transparent);
2642
+ background: currentColor;
2643
+ opacity: 0.72;
2578
2644
  }
2579
2645
 
2580
2646
  body.studio-ui-refresh #reviewNotesBtn,
@@ -2587,10 +2653,18 @@
2587
2653
  border-radius: 8px;
2588
2654
  }
2589
2655
 
2656
+ body.studio-ui-refresh #reviewNotesBtn,
2657
+ body.studio-ui-refresh #outlineBtn,
2658
+ body.studio-ui-refresh #scratchpadBtn,
2659
+ body.studio-ui-refresh .studio-refresh-tool-tab {
2660
+ background: var(--studio-header-action-bg, transparent);
2661
+ border-color: var(--studio-header-action-border, transparent);
2662
+ }
2663
+
2590
2664
  body.studio-ui-refresh #exportPdfBtn {
2591
- background: var(--panel-2);
2665
+ background: var(--studio-header-filled-bg, var(--panel-2));
2592
2666
  color: var(--text);
2593
- border-color: transparent;
2667
+ border-color: var(--studio-header-action-border, transparent);
2594
2668
  }
2595
2669
 
2596
2670
  body.studio-ui-refresh #reviewNotesBtn.is-active,
@@ -2610,7 +2684,7 @@
2610
2684
  body.studio-ui-refresh .source-meta {
2611
2685
  display: block;
2612
2686
  padding: 0;
2613
- border-bottom: 1px solid var(--border-muted);
2687
+ border-bottom: 1px solid var(--panel-border);
2614
2688
  position: relative;
2615
2689
  z-index: 20;
2616
2690
  overflow: visible;
@@ -2620,14 +2694,14 @@
2620
2694
  padding: 7px;
2621
2695
  }
2622
2696
 
2623
- body.studio-ui-refresh textarea {
2624
- font-size: 12px;
2697
+ body.studio-ui-refresh #sourceText {
2698
+ font-size: var(--studio-editor-font-size);
2625
2699
  line-height: 1.42;
2626
2700
  }
2627
2701
 
2628
2702
  body.studio-ui-refresh .editor-highlight,
2629
2703
  body.studio-ui-refresh .editor-line-number-measure {
2630
- font-size: 12px;
2704
+ font-size: var(--studio-editor-font-size);
2631
2705
  line-height: 1.42;
2632
2706
  }
2633
2707
 
@@ -2638,7 +2712,7 @@
2638
2712
 
2639
2713
  body.studio-ui-refresh .editor-line-number-gutter-content {
2640
2714
  padding: 9px 7px 9px 0;
2641
- font-size: 11px;
2715
+ font-size: var(--studio-editor-line-number-font-size);
2642
2716
  line-height: 1.42;
2643
2717
  }
2644
2718
 
@@ -2657,12 +2731,21 @@
2657
2731
  font-size: 13.5px;
2658
2732
  }
2659
2733
 
2734
+ body.studio-ui-refresh #rightPane .rendered-markdown {
2735
+ font-size: var(--studio-response-font-size);
2736
+ }
2737
+
2660
2738
  body.studio-ui-refresh .plain-markdown,
2661
2739
  body.studio-ui-refresh .response-markdown-highlight {
2662
2740
  font-size: 12px;
2663
2741
  line-height: 1.42;
2664
2742
  }
2665
2743
 
2744
+ body.studio-ui-refresh #rightPane .plain-markdown,
2745
+ body.studio-ui-refresh #rightPane .response-markdown-highlight {
2746
+ font-size: var(--studio-response-raw-font-size);
2747
+ }
2748
+
2666
2749
  body.studio-ui-refresh .rendered-markdown pre {
2667
2750
  padding: 11px 13px;
2668
2751
  }
@@ -2682,7 +2765,7 @@
2682
2765
 
2683
2766
  body.studio-ui-refresh .trace-output {
2684
2767
  padding: 9px 10px;
2685
- font-size: 12px;
2768
+ font-size: var(--studio-working-font-size);
2686
2769
  line-height: 1.42;
2687
2770
  }
2688
2771
 
@@ -2715,6 +2798,22 @@
2715
2798
  min-width: max-content;
2716
2799
  }
2717
2800
 
2801
+ body.studio-ui-refresh .studio-refresh-toolbar button,
2802
+ body.studio-ui-refresh .studio-refresh-toolbar select {
2803
+ font-size: 12px;
2804
+ }
2805
+
2806
+ body.studio-ui-refresh .studio-refresh-toolbar button:not(#sendRunBtn):not(#queueSteerBtn):not(.request-stop-active),
2807
+ body.studio-ui-refresh .studio-refresh-toolbar select {
2808
+ color: color-mix(in srgb, var(--text) 72%, var(--muted));
2809
+ font-weight: 500;
2810
+ }
2811
+
2812
+ body.studio-ui-refresh .studio-refresh-toolbar button:not(#sendRunBtn):not(#queueSteerBtn):not(.request-stop-active):hover,
2813
+ body.studio-ui-refresh .studio-refresh-toolbar select:not(:disabled):hover {
2814
+ color: var(--text);
2815
+ }
2816
+
2718
2817
  body.studio-ui-refresh .studio-refresh-chip {
2719
2818
  display: inline-flex;
2720
2819
  align-items: center;
@@ -2724,6 +2823,13 @@
2724
2823
  white-space: nowrap;
2725
2824
  padding: 5px 8px;
2726
2825
  font-size: 13px;
2826
+ font-weight: 500;
2827
+ }
2828
+
2829
+ body.studio-ui-refresh .studio-refresh-toolbar .studio-refresh-chip {
2830
+ color: color-mix(in srgb, var(--text) 72%, var(--muted));
2831
+ font-size: 12px;
2832
+ font-weight: 500;
2727
2833
  }
2728
2834
 
2729
2835
  body.studio-ui-refresh .studio-refresh-chip::after {
@@ -2734,8 +2840,9 @@
2734
2840
  transform: translateY(-1px);
2735
2841
  }
2736
2842
 
2737
- body.studio-ui-refresh .studio-refresh-chip.is-open {
2738
- background: var(--panel-2);
2843
+ body.studio-ui-refresh .studio-refresh-chip.is-open,
2844
+ body.studio-ui-refresh .studio-refresh-chip:hover {
2845
+ background: var(--studio-header-action-hover-bg, var(--panel-2));
2739
2846
  color: var(--text);
2740
2847
  }
2741
2848
 
@@ -2752,10 +2859,10 @@
2752
2859
  right: 0;
2753
2860
  width: min(420px, calc(100vw - 48px));
2754
2861
  padding: 10px;
2755
- border: 1px solid var(--border);
2862
+ border: 1px solid var(--panel-border);
2756
2863
  border-radius: 12px;
2757
2864
  background: var(--panel);
2758
- box-shadow: 0 18px 46px rgba(0, 0, 0, 0.32);
2865
+ box-shadow: 0 18px 46px var(--shadow-color);
2759
2866
  z-index: 100;
2760
2867
  }
2761
2868
 
@@ -2775,7 +2882,7 @@
2775
2882
 
2776
2883
  body.studio-ui-refresh .studio-refresh-menu-section {
2777
2884
  padding: 8px 0 6px;
2778
- border-top: 1px solid var(--border-muted);
2885
+ border-top: 1px solid var(--border-subtle);
2779
2886
  }
2780
2887
 
2781
2888
  body.studio-ui-refresh .studio-refresh-menu-section:first-child {
@@ -2787,9 +2894,9 @@
2787
2894
  margin: 0 6px 6px;
2788
2895
  color: var(--muted);
2789
2896
  font-size: 11px;
2790
- font-weight: 700;
2897
+ font-weight: 650;
2791
2898
  text-transform: uppercase;
2792
- letter-spacing: 0.08em;
2899
+ letter-spacing: 0.06em;
2793
2900
  }
2794
2901
 
2795
2902
  body.studio-ui-refresh .studio-refresh-menu-item {
@@ -2808,6 +2915,7 @@
2808
2915
  border-color: transparent;
2809
2916
  background: transparent;
2810
2917
  color: var(--text);
2918
+ font-weight: 450;
2811
2919
  }
2812
2920
 
2813
2921
  body.studio-ui-refresh .studio-refresh-menu #critiqueBtn {
@@ -2817,7 +2925,7 @@
2817
2925
 
2818
2926
  body.studio-ui-refresh .studio-refresh-menu-item > button:not(:disabled):hover,
2819
2927
  body.studio-ui-refresh .studio-refresh-menu-item > select:not(:disabled):hover {
2820
- background: var(--panel-2);
2928
+ background: var(--studio-header-action-hover-bg, var(--panel-2));
2821
2929
  }
2822
2930
 
2823
2931
  body.studio-ui-refresh #copyDraftBtn:only-child {