pith-ui 0.1.1 → 0.2.0-app.1

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 (140) hide show
  1. package/AI.md +33 -8
  2. package/API.md +424 -268
  3. package/APP-API.md +2019 -0
  4. package/APP.md +137 -0
  5. package/README.md +37 -4
  6. package/dist/app/files.d.ts +68 -0
  7. package/dist/app/files.d.ts.map +1 -0
  8. package/dist/app/files.js +177 -0
  9. package/dist/app/files.js.map +1 -0
  10. package/dist/app/index.d.ts +57 -0
  11. package/dist/app/index.d.ts.map +1 -0
  12. package/dist/app/index.js +300 -0
  13. package/dist/app/index.js.map +1 -0
  14. package/dist/app/internal.d.ts +31 -0
  15. package/dist/app/internal.d.ts.map +1 -0
  16. package/dist/app/internal.js +2 -0
  17. package/dist/app/internal.js.map +1 -0
  18. package/dist/app/resources.d.ts +89 -0
  19. package/dist/app/resources.d.ts.map +1 -0
  20. package/dist/app/resources.js +190 -0
  21. package/dist/app/resources.js.map +1 -0
  22. package/dist/app/session.d.ts +14 -0
  23. package/dist/app/session.d.ts.map +1 -0
  24. package/dist/app/session.js +12 -0
  25. package/dist/app/session.js.map +1 -0
  26. package/dist/app/settings.d.ts +109 -0
  27. package/dist/app/settings.d.ts.map +1 -0
  28. package/dist/app/settings.js +279 -0
  29. package/dist/app/settings.js.map +1 -0
  30. package/dist/app/workspace.d.ts +228 -0
  31. package/dist/app/workspace.d.ts.map +1 -0
  32. package/dist/app/workspace.js +402 -0
  33. package/dist/app/workspace.js.map +1 -0
  34. package/dist/composer.d.ts.map +1 -1
  35. package/dist/composer.js +37 -27
  36. package/dist/composer.js.map +1 -1
  37. package/dist/content/conversation-reader.d.ts.map +1 -1
  38. package/dist/content/conversation-reader.js +8 -1
  39. package/dist/content/conversation-reader.js.map +1 -1
  40. package/dist/content/conversation-view.d.ts.map +1 -1
  41. package/dist/content/conversation-view.js +34 -8
  42. package/dist/content/conversation-view.js.map +1 -1
  43. package/dist/content/image-viewer.d.ts.map +1 -1
  44. package/dist/content/image-viewer.js +11 -3
  45. package/dist/content/image-viewer.js.map +1 -1
  46. package/dist/content/paged-preview.d.ts +1 -1
  47. package/dist/content/paged-preview.d.ts.map +1 -1
  48. package/dist/content/paged-preview.js +4 -2
  49. package/dist/content/paged-preview.js.map +1 -1
  50. package/dist/content/views.d.ts +3 -0
  51. package/dist/content/views.d.ts.map +1 -1
  52. package/dist/content/views.js +110 -41
  53. package/dist/content/views.js.map +1 -1
  54. package/dist/content/welcome.d.ts.map +1 -1
  55. package/dist/content/welcome.js +5 -2
  56. package/dist/content/welcome.js.map +1 -1
  57. package/dist/dom.js +1 -1
  58. package/dist/dom.js.map +1 -1
  59. package/dist/files/panels.d.ts +2 -0
  60. package/dist/files/panels.d.ts.map +1 -1
  61. package/dist/files/panels.js +202 -128
  62. package/dist/files/panels.js.map +1 -1
  63. package/dist/files/systems.d.ts.map +1 -1
  64. package/dist/files/systems.js +37 -64
  65. package/dist/files/systems.js.map +1 -1
  66. package/dist/forms/actions.d.ts +24 -2
  67. package/dist/forms/actions.d.ts.map +1 -1
  68. package/dist/forms/actions.js +54 -25
  69. package/dist/forms/actions.js.map +1 -1
  70. package/dist/forms/custom-connection.d.ts.map +1 -1
  71. package/dist/forms/custom-connection.js +3 -2
  72. package/dist/forms/custom-connection.js.map +1 -1
  73. package/dist/forms/history.d.ts +1 -1
  74. package/dist/forms/history.d.ts.map +1 -1
  75. package/dist/forms/history.js +78 -15
  76. package/dist/forms/history.js.map +1 -1
  77. package/dist/forms/identity.d.ts.map +1 -1
  78. package/dist/forms/identity.js +9 -25
  79. package/dist/forms/identity.js.map +1 -1
  80. package/dist/forms/model-editor.js +3 -3
  81. package/dist/forms/model-editor.js.map +1 -1
  82. package/dist/forms/panels.d.ts +9 -2
  83. package/dist/forms/panels.d.ts.map +1 -1
  84. package/dist/forms/panels.js +79 -88
  85. package/dist/forms/panels.js.map +1 -1
  86. package/dist/forms/provider-login.d.ts.map +1 -1
  87. package/dist/forms/provider-login.js +20 -36
  88. package/dist/forms/provider-login.js.map +1 -1
  89. package/dist/forms/resource-editor.js +5 -4
  90. package/dist/forms/resource-editor.js.map +1 -1
  91. package/dist/foundations.d.ts +1 -1
  92. package/dist/foundations.d.ts.map +1 -1
  93. package/dist/foundations.js +22 -38
  94. package/dist/foundations.js.map +1 -1
  95. package/dist/navigation/context-menu.d.ts +7 -1
  96. package/dist/navigation/context-menu.d.ts.map +1 -1
  97. package/dist/navigation/context-menu.js +60 -57
  98. package/dist/navigation/context-menu.js.map +1 -1
  99. package/dist/navigation/navigation.d.ts +13 -0
  100. package/dist/navigation/navigation.d.ts.map +1 -1
  101. package/dist/navigation/navigation.js +96 -130
  102. package/dist/navigation/navigation.js.map +1 -1
  103. package/dist/operation.d.ts +12 -0
  104. package/dist/operation.d.ts.map +1 -0
  105. package/dist/operation.js +49 -0
  106. package/dist/operation.js.map +1 -0
  107. package/dist/primitives.d.ts +8 -1
  108. package/dist/primitives.d.ts.map +1 -1
  109. package/dist/primitives.js +114 -143
  110. package/dist/primitives.js.map +1 -1
  111. package/dist/reconcile.d.ts +11 -0
  112. package/dist/reconcile.d.ts.map +1 -0
  113. package/dist/reconcile.js +36 -0
  114. package/dist/reconcile.js.map +1 -0
  115. package/dist/select.d.ts +14 -0
  116. package/dist/select.d.ts.map +1 -0
  117. package/dist/select.js +304 -0
  118. package/dist/select.js.map +1 -0
  119. package/dist/styles.css +439 -370
  120. package/dist/surface.d.ts +31 -0
  121. package/dist/surface.d.ts.map +1 -1
  122. package/dist/surface.js +193 -3
  123. package/dist/surface.js.map +1 -1
  124. package/dist/tasks/approval.d.ts.map +1 -1
  125. package/dist/tasks/approval.js +83 -45
  126. package/dist/tasks/approval.js.map +1 -1
  127. package/dist/tasks/permission-element.d.ts +3 -0
  128. package/dist/tasks/permission-element.d.ts.map +1 -0
  129. package/dist/tasks/permission-element.js +10 -0
  130. package/dist/tasks/permission-element.js.map +1 -0
  131. package/dist/tasks/permission.d.ts.map +1 -1
  132. package/dist/tasks/permission.js +37 -18
  133. package/dist/tasks/permission.js.map +1 -1
  134. package/dist/tasks/runtime.d.ts.map +1 -1
  135. package/dist/tasks/runtime.js +32 -15
  136. package/dist/tasks/runtime.js.map +1 -1
  137. package/dist/workspace.d.ts.map +1 -1
  138. package/dist/workspace.js +93 -40
  139. package/dist/workspace.js.map +1 -1
  140. package/package.json +42 -8
package/dist/styles.css CHANGED
@@ -1,159 +1,224 @@
1
+ /* Fixed design foundations. Components choose roles; consumers supply content,
2
+ state and actions rather than configuring individual type or spacing values. */
3
+ .pui {
4
+ --pui-font-ui: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
5
+ --pui-font-code: ui-monospace, SFMono-Regular, Menlo, monospace;
6
+ --pui-text-small: 12px;
7
+ --pui-text-medium: 14px;
8
+ --pui-text-large: 16px;
9
+ --pui-line-height: 1.5;
10
+ --pui-weight-regular: 400;
11
+ --pui-weight-strong: 600;
12
+ --pui-space-xs: 4px;
13
+ --pui-space-sm: 8px;
14
+ --pui-space-md: 12px;
15
+ --pui-space-lg: 16px;
16
+ --pui-space-xl: 24px;
17
+
18
+ /* Compatibility names resolve to the same fixed foundations. */
19
+ --pui-font-family: var(--pui-font-ui);
20
+ --pui-font-size: var(--pui-text-medium);
21
+ --pui-form-font-size: var(--pui-text-medium);
22
+ --pui-field-gap: var(--pui-space-sm);
23
+ --pui-control-height: 40px;
24
+
25
+ font-family: var(--pui-font-ui);
26
+ font-size: var(--pui-text-medium);
27
+ font-weight: var(--pui-weight-regular);
28
+ line-height: var(--pui-line-height);
29
+ letter-spacing: normal;
30
+ }
31
+ .pui :is(h1, h2, h3, h4, h5, h6) {
32
+ font-size: var(--pui-text-large);
33
+ font-weight: var(--pui-weight-strong);
34
+ line-height: var(--pui-line-height);
35
+ }
36
+ .pui :is(b, strong, th) { font-weight: var(--pui-weight-strong); }
37
+ .pui small { font-size: var(--pui-text-small); }
38
+ .pui :is(code, pre, kbd, samp) { font-family: var(--pui-font-code); }
39
+
1
40
  /* All selectors belong to Pith UI; no document-wide resets. */
2
41
  .pui .pui-button, .pui .pui-control, .pui .pui-checkbox, .pui .pui-dialog, .pui .pui-notice, .pui .pui-form-section, .pui .pui-list-row, .pui .pui-disclosure, .pui .pui-popover, .pui .pui-collection, .pui .pui-status, .pui .pui-progress {
3
42
  box-sizing: border-box;
4
- font-family: var(--pui-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
5
- font-size: var(--pui-font-size, 13px);
6
- line-height: var(--pui-line-height, 20px);
43
+ font-family: var(--pui-font-ui);
44
+ font-size: var(--pui-text-medium);
45
+ line-height: var(--pui-line-height);
7
46
  color: var(--pui-text);
8
47
  }
9
48
  .pui .pui-button, .pui .pui-primary-button, .pui .pui-secondary-button, .pui .pui-quiet-icon {
10
49
  display: inline-flex; align-items: center; justify-content: center;
11
50
  }
12
- .pui .pui-button, .pui .pui-primary-button, .pui .pui-secondary-button { gap: 7px; }
51
+ .pui .pui-button, .pui .pui-primary-button, .pui .pui-secondary-button { gap: var(--pui-space-sm); }
13
52
  .pui .pui-button {
14
- min-height: var(--pui-control-height, 40px); max-width: 100%; padding: 9px 14px;
53
+ min-height: var(--pui-control-height, 40px); max-width: 100%; padding: var(--pui-space-sm) var(--pui-space-md);
15
54
  border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px);
16
55
  background: var(--pui-surface); color: var(--pui-text);
17
- font: inherit; font-size: var(--pui-font-size, 13px); line-height: 20px;
56
+ font: inherit; font-size: var(--pui-text-medium); line-height: var(--pui-line-height);
18
57
  cursor: pointer; text-align: center; overflow-wrap: anywhere;
19
58
  transition: background-color var(--pui-duration-fast, 120ms) ease, border-color var(--pui-duration-fast, 120ms) ease;
20
59
  }
21
60
  .pui .pui-button:hover:not(:disabled) { background: var(--pui-hover, #eef2f6); }
22
61
  .pui .pui-button.pui-primary { background: var(--pui-accent); border-color: var(--pui-accent); color: var(--pui-accent-text, #10283e); }
62
+ .pui .pui-button.pui-primary:hover:not(:disabled) { background: var(--pui-accent-hover); }
23
63
  .pui .pui-button.pui-danger { color: var(--pui-error-text); border-color: var(--pui-error-border); }
24
64
  .pui .pui-button.pui-danger:hover:not(:disabled) { background: var(--pui-error-surface); }
25
65
  .pui .pui-button:disabled { opacity: .5; cursor: default; }
26
- .pui .pui-button.pui-compact { min-height: 30px; padding: 4px 9px; font-size: 12px; }
27
- .pui .pui-button:focus-visible, .pui .pui-control:focus-visible, .pui .pui-checkbox input:focus-visible, .pui .pui-disclosure summary:focus-visible, .pui .pui-popover-panel:focus-visible {
28
- outline: 2px solid var(--pui-focus, var(--pui-accent)); outline-offset: 3px;
66
+ .pui .pui-button.pui-compact { min-height: 30px; padding: var(--pui-space-xs) var(--pui-space-sm); font-size: var(--pui-text-small); }
67
+ .pui :is(button, a, input, textarea, select, summary, [tabindex]):focus-visible {
68
+ outline: var(--pui-focus-width, 1px) solid var(--pui-focus, var(--pui-accent)); outline-offset: var(--pui-focus-offset, 2px);
69
+ box-shadow: none;
29
70
  }
30
71
  .pui .pui-icon { display: inline-block; width: 18px; height: 18px; flex-shrink: 0; vertical-align: middle; }
31
- .pui .pui-icon-button { width: 36px; min-width: 36px; min-height: 36px; padding: 8px; background: transparent; border-color: transparent; }
32
- .pui .pui-text-action { min-height: 28px; padding: 3px 6px; background: transparent; border-color: transparent; }
33
- /* Accepted product presentations share the action core, without changing the
34
- measured compact-chat and ordinary-form dimensions during adoption. */
35
- .pui .pui-primary-button, .pui .pui-secondary-button { font-size: 12px; font-weight: 500; padding: 10px 15px; border-radius: 7px; }
72
+ .pui .pui-icon-button { width: 36px; min-width: 36px; min-height: 36px; padding: var(--pui-space-sm); background: transparent; border-color: transparent; }
73
+ .pui .pui-text-action { font-size: var(--pui-text-small); min-height: 28px; padding: var(--pui-space-xs) var(--pui-space-sm); background: transparent; border-color: transparent; }
74
+ /* Retained product actions use ordinary sizing; compact file and chat contexts
75
+ choose the smaller shared presentation within the library. */
76
+ .pui .pui-primary-button, .pui .pui-secondary-button { min-height: var(--pui-control-height, 40px); font-size: var(--pui-text-medium); line-height: var(--pui-line-height); font-weight: var(--pui-weight-strong); padding: var(--pui-space-sm) var(--pui-space-md); border-radius: 7px; }
36
77
  .pui .pui-primary-button { background: var(--pui-accent); color: var(--pui-accent-foreground); }
37
78
  .pui .pui-primary-button:hover { background: var(--pui-accent-hover); }
38
79
  .pui .pui-primary-button .pui-icon { width: 14px; height: 14px; }
39
80
  .pui .pui-secondary-button { border: 1px solid var(--pui-border); background: var(--pui-surface-subtle); color: var(--pui-text); }
40
81
  .pui .pui-secondary-button:hover { background: var(--pui-surface-hover); }
41
- .pui .pui-quiet-icon { background: transparent; border-radius: 6px; padding: 4px; color: var(--pui-muted); }
82
+ .pui .pui-quiet-icon { background: transparent; border-radius: 6px; padding: var(--pui-space-xs); color: var(--pui-muted); }
42
83
  .pui .pui-quiet-icon:hover { background: var(--pui-surface-hover); color: var(--pui-text); }
43
- .pui .pui-text-button { background: none; color: var(--pui-accent); padding: 4px 6px; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
84
+ .pui .pui-text-button { background: none; color: var(--pui-accent); padding: var(--pui-space-xs) var(--pui-space-sm); font-size: var(--pui-text-small); text-decoration: underline; text-underline-offset: 3px; }
44
85
  .pui .pui-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
45
- .pui .pui-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
46
- .pui .pui-field-label { font-size: 13px; font-weight: 500; color: var(--pui-text); }
86
+ .pui .pui-field { display: flex; flex-direction: column; gap: var(--pui-space-sm); min-width: 0; }
87
+ .pui .pui-field-label { font-size: var(--pui-text-medium); font-weight: var(--pui-weight-strong); color: var(--pui-text); }
47
88
  .pui .pui-control {
48
89
  display: block; width: 100%; min-width: 0; min-height: var(--pui-control-height, 40px);
49
- padding: 9px 11px; border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px);
90
+ padding: var(--pui-space-sm) var(--pui-space-md); border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px);
50
91
  background: var(--pui-input-surface, var(--pui-surface)); color: var(--pui-text);
51
- font-size: var(--pui-font-size, 13px); line-height: 20px;
92
+ font-size: var(--pui-text-medium); line-height: var(--pui-line-height);
52
93
  }
53
94
  .pui .pui-control:disabled { opacity: .5; }
54
95
  .pui .pui-control[readonly] { background: var(--pui-muted-surface, #f4f5f7); }
55
96
  .pui .pui-control::placeholder { color: var(--pui-muted); opacity: 1; }
56
- .pui .pui-control.pui-compact { min-height: 30px; padding: 4px 8px; }
97
+ .pui .pui-control.pui-compact { min-height: 30px; height: 30px; padding: var(--pui-space-xs) var(--pui-space-sm); }
57
98
  .pui textarea.pui-control { min-height: 100px; resize: vertical; }
58
- .pui select.pui-control[multiple], .pui select.pui-control[size]:not([size="1"]) { height: auto; min-height: 120px; }
99
+ .pui select:is([multiple], [size]:not([size="1"])) { height: auto; padding: var(--pui-space-sm); font-size: var(--pui-text-large); line-height: var(--pui-line-height); }
100
+ .pui select:is([multiple], [size]:not([size="1"])) option { min-height: 32px; padding: var(--pui-space-xs) var(--pui-space-sm); line-height: var(--pui-line-height); }
59
101
  .pui .pui-field-error, .pui .pui-invalid .pui-field-label { color: var(--pui-error-text); }
60
102
  .pui .pui-invalid .pui-control { border-color: var(--pui-error-text); }
61
- .pui .pui-field-description, .pui .pui-muted { color: var(--pui-muted); font-size: 12px; line-height: 20px; overflow-wrap: anywhere; }
62
- .pui .pui-field-error { font-size: 12px; line-height: 20px; }
63
- .pui .pui-checkbox { display: inline-flex; align-items: flex-start; gap: 9px; cursor: pointer; }
64
- .pui .pui-checkbox input { flex-shrink: 0; margin: 3px 0 0; width: 15px; height: 15px; accent-color: var(--pui-accent); }
65
- .pui .pui-checkbox small { display: block; color: var(--pui-muted); font-size: 12px; }
66
- .pui .pui-notice { padding: 10px 12px; border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px); background: var(--pui-muted-surface, #f4f5f7); overflow-wrap: anywhere; }
103
+ .pui .pui-field-description, .pui .pui-muted { color: var(--pui-muted); font-size: var(--pui-text-small); line-height: var(--pui-line-height); overflow-wrap: anywhere; }
104
+ .pui .pui-field-error { font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
105
+ .pui .pui-checkbox { display: inline-flex; align-items: flex-start; gap: var(--pui-space-sm); cursor: pointer; }
106
+ .pui .pui-checkbox input { flex-shrink: 0; margin: var(--pui-space-xs) 0 0; width: 15px; height: 15px; accent-color: var(--pui-accent); }
107
+ .pui .pui-checkbox small { display: block; color: var(--pui-muted); font-size: var(--pui-text-small); }
108
+ .pui .pui-notice { padding: var(--pui-space-md); border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px); background: var(--pui-muted-surface, #f4f5f7); overflow-wrap: anywhere; }
67
109
  .pui .pui-notice-error, .pui .pui-form-error, .pui .pui-status-error { color: var(--pui-error-text); }
68
110
  .pui .pui-notice-error { border-color: var(--pui-error-border); background: var(--pui-error-surface); }
69
111
  .pui .pui-notice-warning { color: var(--pui-warning-text); background: var(--pui-warning-surface); }
70
112
  .pui .pui-notice-success { color: var(--pui-success-text, #24683a); background: var(--pui-success-surface, #edf8ef); }
71
- .pui .pui-status { display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px; background: var(--pui-muted-surface, #f0f2f5); font-size: 11px; white-space: nowrap; }
113
+ .pui .pui-status { display: inline-flex; align-items: center; padding: var(--pui-space-xs) var(--pui-space-sm); border-radius: 999px; background: var(--pui-muted-surface, #f0f2f5); font-size: var(--pui-text-small); white-space: nowrap; }
72
114
  .pui .pui-status-success { color: var(--pui-success-text, #24683a); }
73
115
  .pui .pui-status-warning { color: var(--pui-warning-text); }
74
- .pui .pui-form-error { font-size: 12px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 14px; }
116
+ .pui .pui-form-error { font-size: var(--pui-text-small); line-height: var(--pui-line-height); white-space: pre-wrap; overflow-wrap: anywhere; margin-top: var(--pui-space-lg); }
75
117
  .pui .pui-form-error:empty { display: none; }
76
- .pui .pui-progress { display: grid; gap: 7px; }
118
+ .pui .pui-progress { display: grid; gap: var(--pui-space-sm); }
77
119
  .pui .pui-progress progress { width: 100%; height: 8px; accent-color: var(--pui-accent); }
78
- .pui .pui-form-section { display: grid; gap: 12px; min-width: 0; padding-block: 14px; }
120
+ .pui .pui-form-section { display: grid; gap: var(--pui-space-md); min-width: 0; padding-block: var(--pui-space-lg); }
79
121
  .pui .pui-form-section > h3, .pui .pui-form-section > p { margin: 0; }
80
- .pui .pui-form-section > h3 { font-size: 14px; font-weight: 600; line-height: 20px; }
122
+ .pui .pui-form-section > h3 { font-size: var(--pui-text-medium); font-weight: var(--pui-weight-strong); line-height: var(--pui-line-height); }
81
123
  .pui .pui-actions, .pui .pui-modal-footer, .pui .pui-file-actions, .pui .pui-feature-toolbar { display: flex; }
82
124
  .pui .pui-actions, .pui .pui-feature-toolbar { align-items: center; flex-wrap: wrap; }
83
- .pui .pui-actions, .pui .pui-modal-footer { justify-content: flex-end; gap: 9px; }
125
+ .pui .pui-actions, .pui .pui-modal-footer { justify-content: flex-end; gap: var(--pui-space-sm); }
84
126
  .pui .pui-actions[data-align="end"], .pui .pui-modal-footer[data-align="end"], .pui .pui-file-actions[data-align="end"], .pui .pui-feature-toolbar[data-align="end"] { justify-content: flex-end; }
85
127
  .pui .pui-actions[data-align="start"], .pui .pui-modal-footer[data-align="start"], .pui .pui-file-actions[data-align="start"], .pui .pui-feature-toolbar[data-align="start"] { justify-content: flex-start; }
86
128
  .pui .pui-actions[data-align="between"], .pui .pui-modal-footer[data-align="between"], .pui .pui-file-actions[data-align="between"], .pui .pui-feature-toolbar[data-align="between"] { justify-content: space-between; }
87
- .pui .pui-modal-footer { margin-top: 24px; padding-top: 19px; border-top: 1px solid var(--pui-border); }
88
- .pui .pui-file-actions { gap: 6px; flex-wrap: wrap; }
89
- .pui .pui-file-actions .pui-secondary-button { font-size: 11px; padding: 6px 9px; }
90
- .pui .pui-feature-toolbar { gap: 7px; margin: 0 0 19px; }
91
- .pui .pui-feature-toolbar .pui-secondary-button { padding: 8px 10px; }
129
+ .pui .pui-modal-footer { margin-top: var(--pui-space-xl); padding-top: var(--pui-space-lg); border-top: 1px solid var(--pui-border); }
130
+ .pui .pui-file-actions { gap: var(--pui-space-sm); flex-wrap: wrap; }
131
+ .pui .pui-file-actions .pui-secondary-button { min-height: 30px; font-size: var(--pui-text-small); padding: var(--pui-space-xs) var(--pui-space-sm); }
132
+ .pui .pui-feature-toolbar { gap: var(--pui-space-sm); margin: 0 0 var(--pui-space-lg); }
92
133
  .pui .pui-disclosure { border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px); }
93
- .pui .pui-disclosure summary { cursor: pointer; padding: 11px 13px; overflow-wrap: anywhere; }
94
- .pui .pui-disclosure summary small { display: block; margin-inline-start: 16px; }
134
+ .pui .pui-disclosure summary { cursor: pointer; padding: var(--pui-space-md); overflow-wrap: anywhere; }
135
+ .pui .pui-disclosure summary small { display: block; margin-inline-start: var(--pui-space-lg); }
95
136
  .pui .pui-disclosure summary[aria-disabled="true"] { opacity: .5; cursor: default; }
96
- .pui .pui-disclosure-content { padding: 0 13px 13px; }
97
- .pui .pui-list-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; min-width: 0; border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px); }
137
+ .pui .pui-disclosure-content { padding: 0 var(--pui-space-md) var(--pui-space-md); }
138
+ .pui .pui-list-row { display: flex; align-items: center; gap: var(--pui-space-md); padding: var(--pui-space-md); min-width: 0; border: 1px solid var(--pui-border); border-radius: var(--pui-radius, 8px); }
98
139
  .pui .pui-list-row-body { min-width: 0; flex: 1; overflow-wrap: anywhere; }
99
- .pui .pui-list-row-title { font-weight: 500; }
100
- .pui .pui-list-row.pui-selected { background: var(--pui-selected, #e7f0fc); border-color: var(--pui-accent); }
101
- .pui .pui-collection { display: grid; gap: 10px; min-width: 0; }
102
- .pui .pui-collection-content { display: grid; gap: 8px; }
140
+ .pui .pui-list-row-title { font-weight: var(--pui-weight-strong); }
141
+ .pui .pui-list-row.pui-selected { background: var(--pui-surface-selected); border-color: var(--pui-accent); }
142
+ .pui .pui-collection { display: grid; gap: var(--pui-space-md); min-width: 0; }
143
+ .pui .pui-collection-content { display: grid; gap: var(--pui-space-sm); }
103
144
  .pui .pui-dialog {
104
145
  width: min(600px, calc(100vw - 32px)); max-width: calc(100vw - 32px); max-height: calc(100dvh - 40px);
105
- padding: 22px; border: 1px solid var(--pui-border); border-radius: 14px;
146
+ padding: var(--pui-space-xl); border: 1px solid var(--pui-border); border-radius: 14px;
106
147
  background: var(--pui-surface); color: var(--pui-text);
107
148
  box-shadow: 0 18px 60px rgb(0 0 0 / .2); overflow: auto; overscroll-behavior: contain;
108
149
  }
109
150
  .pui .pui-dialog::backdrop { background: rgb(0 0 0 / .42); }
110
- .pui .pui-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
111
- .pui .pui-dialog-heading h2 { margin: 0; font-size: 20px; font-weight: 600; line-height: 28px; }
112
- .pui .pui-dialog-heading p { margin: 5px 0 0; }
151
+ .pui .pui-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--pui-space-lg); margin-bottom: var(--pui-space-lg); }
152
+ .pui .pui-dialog-heading h2 { margin: 0; font-size: var(--pui-text-large); font-weight: var(--pui-weight-strong); line-height: var(--pui-line-height); }
153
+ .pui .pui-dialog-heading p { margin: var(--pui-space-xs) 0 0; }
113
154
  .pui .pui-dialog-heading > div { min-width: 0; overflow-wrap: anywhere; }
114
- .pui .pui-dialog > .pui-actions { margin-top: 18px; }
155
+ .pui .pui-dialog > .pui-actions { margin-top: var(--pui-space-lg); }
115
156
  .pui .pui-dialog-body { min-width: 0; }
116
- .pui .pui-text-edit { display: grid; gap: 12px; }
157
+ .pui .pui-text-edit { display: grid; gap: var(--pui-space-md); }
117
158
  .pui .pui-text-edit > p { margin: 0; }
118
159
  .pui .pui-popover { display: inline-block; position: relative; max-width: 100%; }
119
- .pui .pui-popover-panel { position: absolute; z-index: 10; inset-block-start: calc(100% + 6px); inset-inline-start: 0; min-width: min(230px, 85vw); max-width: min(420px, 90vw); max-height: min(420px, 70dvh); overflow: auto; padding: 8px; border: 1px solid var(--pui-border); border-radius: 10px; background: var(--pui-surface); box-shadow: 0 8px 30px rgb(0 0 0 / .15); }
120
- .pui .pui-menu { display: grid; gap: 3px; }
160
+ .pui .pui-popover-panel { position: absolute; z-index: 10; inset-block-start: calc(100% + var(--pui-space-sm)); inset-inline-start: 0; min-width: min(230px, 85vw); max-width: min(420px, 90vw); max-height: min(420px, 70dvh); overflow: auto; padding: var(--pui-space-sm); border: 1px solid var(--pui-border); border-radius: 10px; background: var(--pui-surface); box-shadow: 0 8px 30px rgb(0 0 0 / .15); }
161
+ .pui .pui-menu { display: grid; gap: var(--pui-space-xs); }
121
162
  .pui .pui-menu > .pui-button { width: 100%; justify-content: flex-start; text-align: start; border-color: transparent; }
122
163
  .pui .pui-menu > [aria-checked="true"]::after { content: '✓'; margin-inline-start: auto; }
123
- .pui .pui-eyebrow { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--pui-muted); }
164
+ .pui [data-pui-floating] { position: fixed; inset: auto; margin: 0; box-sizing: border-box; overflow: auto; overscroll-behavior: contain; }
165
+ .pui .pui-select { position: relative; display: inline-grid; min-width: 0; width: 100%; }
166
+ /* Keep native inline sizing and the validation anchor, but remove block padding
167
+ from its platform-dependent intrinsic minimum so the visible control owns height. */
168
+ .pui select.pui-select-backing {
169
+ grid-area: 1 / 1; height: 100%; min-height: 0; padding-block: 0; opacity: 0; pointer-events: none; clip-path: inset(50%);
170
+ }
171
+ .pui .pui-select-trigger {
172
+ display: inline-flex; align-items: center; justify-content: space-between; gap: var(--pui-space-sm); width: 100%; min-width: 0;
173
+ min-height: var(--pui-control-height, 40px); padding: var(--pui-space-sm) var(--pui-space-md); border: 1px solid var(--pui-border);
174
+ border-radius: var(--pui-radius, 8px); background: var(--pui-input-surface, var(--pui-surface)); color: var(--pui-text);
175
+ font: inherit; font-size: var(--pui-text-medium); line-height: var(--pui-line-height); text-align: start; cursor: pointer;
176
+ }
177
+ /* Its preferred width contributes nothing to the track; min-width fills the
178
+ native-sized track after layout, while the visible control owns row height. */
179
+ .pui .pui-select > .pui-select-trigger { grid-area: 1 / 1; width: 0; min-width: 100%; display: inline-flex; align-items: center; justify-content: space-between; }
180
+ .pui .pui-select-trigger:disabled { opacity: .5; cursor: default; }
181
+ .pui .pui-select-trigger.pui-compact { min-height: 30px; height: 30px; padding: var(--pui-space-xs) var(--pui-space-sm); }
182
+ .pui .pui-select-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
183
+ .pui .pui-select-trigger > .pui-select-arrow { width: 12px; height: 12px; flex-shrink: 0; opacity: .65; }
184
+ .pui .pui-select-popup { width: max-content; min-width: 160px; padding: var(--pui-space-xs); font: var(--pui-text-medium)/var(--pui-line-height) var(--pui-font-ui); color: var(--pui-text); }
185
+ .pui .pui-select-option { position: relative; padding: var(--pui-space-sm) var(--pui-space-xl) var(--pui-space-sm) var(--pui-space-md); border-radius: 6px; overflow-wrap: anywhere; cursor: pointer; }
186
+ .pui .pui-select-option:hover:not([aria-disabled="true"]), .pui .pui-select-option.pui-active { background: var(--pui-surface-hover); }
187
+ .pui .pui-select-option[aria-selected="true"]::after { content: '✓'; position: absolute; right: var(--pui-space-sm); top: var(--pui-space-sm); }
188
+ .pui .pui-select-option[aria-disabled="true"] { opacity: .5; cursor: default; }
189
+ .pui .pui-select[hidden], .pui .pui-select-popup[hidden], .pui .pui-select-option[hidden] { display: none; }
190
+ .pui .pui-eyebrow { font-size: var(--pui-text-small); letter-spacing: .08em; text-transform: uppercase; color: var(--pui-muted); }
124
191
  .pui .pui-icon-display { display: inline-flex; vertical-align: middle; color: var(--pui-text); }
125
192
  .pui .pui-icon-small .pui-icon { width: 14px; height: 14px; }
126
- .pui .pui-divider { display: flex; align-items: center; gap: 10px; color: var(--pui-muted); font: 12px/20px var(--pui-font-family, sans-serif); }
193
+ .pui .pui-divider { display: flex; align-items: center; gap: var(--pui-space-md); color: var(--pui-muted); font: var(--pui-text-small)/var(--pui-line-height) var(--pui-font-ui); }
127
194
  .pui .pui-divider::before, .pui .pui-divider::after { content: ''; height: 1px; flex: 1; background: var(--pui-border); }
128
195
  .pui .pui-divider:empty::after { display: none; }
129
- .pui .pui-key-value { margin: 0; font: 13px/20px var(--pui-font-family, sans-serif); color: var(--pui-text); }
130
- .pui .pui-key-value > div { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(0, 2fr); gap: 12px; padding-block: 5px; }
196
+ .pui .pui-key-value { margin: 0; font: var(--pui-text-medium)/var(--pui-line-height) var(--pui-font-ui); color: var(--pui-text); }
197
+ .pui .pui-key-value > div { display: grid; grid-template-columns: minmax(90px, 1fr) minmax(0, 2fr); gap: var(--pui-space-md); padding-block: var(--pui-space-xs); }
131
198
  .pui .pui-key-value dt { color: var(--pui-muted); }
132
199
  .pui .pui-key-value dd { margin: 0; overflow-wrap: anywhere; }
133
- .pui .pui-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
134
- .pui .pui-toolbar.pui-compact { gap: 5px; }
200
+ .pui .pui-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pui-space-sm); }
201
+ .pui .pui-toolbar.pui-compact { gap: var(--pui-space-xs); }
135
202
  .pui .pui-scroll-area { overflow: auto; min-width: 0; overscroll-behavior: contain; }
136
203
  .pui .pui-scroll-area[data-size="small"] { max-height: 160px; }
137
204
  .pui .pui-scroll-area[data-size="medium"] { max-height: 320px; }
138
205
  .pui .pui-scroll-area[data-size="fill"] { max-height: 100%; }
139
- .pui .pui-scroll-area:focus-visible { outline: 2px solid var(--pui-focus, var(--pui-accent)); outline-offset: 3px; }
206
+ @media (forced-colors: active) { .pui :is(button, a[href], input, textarea, select, summary, [tabindex]):focus-visible { outline-color: Highlight; } }
140
207
  .pui .pui-button[hidden], .pui .pui-field [hidden], .pui .pui-notice[hidden], .pui .pui-collection [hidden], .pui .pui-text-edit [hidden], .pui .pui-list-row [hidden], .pui .pui-dialog [hidden], .pui .pui-popover [hidden] { display: none; }
141
208
  @media (prefers-reduced-motion: reduce) { .pui .pui-button { transition: none; } }
142
- @media (max-width: 520px) { .pui .pui-dialog { padding: 16px; max-height: calc(100dvh - 24px); } .pui .pui-list-row { flex-wrap: wrap; } }
209
+ @media (max-width: 520px) { .pui .pui-dialog { padding: var(--pui-space-lg); max-height: calc(100dvh - 24px); } .pui .pui-list-row { flex-wrap: wrap; } }
143
210
 
144
211
 
145
212
  .pui .pui-feature-actions { display: contents; }
146
213
  .pui .pui-field > .pui-field-label { margin: 0; }
147
214
  .pui .pui-modal .pui-text-edit textarea { font-family: inherit; min-height: 120px; }
148
- .pui .pui-confirm .pui-actions { margin-top: 24px; padding-top: 19px; border-top: 1px solid var(--pui-border); }
215
+ .pui .pui-confirm .pui-actions { margin-top: var(--pui-space-xl); padding-top: var(--pui-space-lg); border-top: 1px solid var(--pui-border); }
149
216
  .pui .pui-confirm .pui-danger { background: var(--pui-error-text); color: var(--pui-bg-main); border-color: transparent; }
150
217
  .pui .pui-confirm .pui-danger:hover:not(:disabled) { background: var(--pui-error-text); filter: brightness(.9); }
151
218
  .pui .pui-confirm .pui-neutral { background: var(--pui-surface-subtle); }
219
+ /* Theme rules share the build-only palette in scripts/palette.ts. */
152
220
  /* C light is the fallback. Explicit appearance always wins over the OS. */
153
221
  .pui {
154
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
155
- font-synthesis: none;
156
- --pui-sidebar-width: 260px;
157
222
  --pui-bg-main: #F7F8FB;
158
223
  --pui-bg-sidebar: #ECEFF5;
159
224
  --pui-surface: #FFFFFF;
@@ -193,8 +258,6 @@
193
258
  --pui-overlay: #1F253066;
194
259
  --pui-shadow: 0 12px 35px #1F25300D;
195
260
  --pui-modal-shadow: 0 30px 100px #1F253026;
196
- color: var(--pui-text);
197
- background: var(--pui-bg-main);
198
261
  color-scheme: light;
199
262
  }
200
263
 
@@ -286,374 +349,383 @@
286
349
  color-scheme: dark;
287
350
  }
288
351
  }
352
+
353
+ .pui {
354
+ font-family: var(--pui-font-ui);
355
+ font-synthesis: none;
356
+ --pui-sidebar-width: 260px;
357
+ color: var(--pui-text);
358
+ background: var(--pui-bg-main);
359
+ }
289
360
  .pui * { box-sizing: border-box; }
290
361
  .pui body { margin: 0; }
291
362
  .pui button, .pui input, .pui textarea, .pui select { font: inherit; }
292
363
  .pui button { cursor: pointer; border: 0; color: inherit; }
293
364
  .pui button:disabled { cursor: not-allowed; opacity: .45; }
294
365
  .pui button, .pui a, .pui input, .pui textarea, .pui select, .pui summary { -webkit-tap-highlight-color: transparent; }
295
- .pui button:focus-visible, .pui a:focus-visible, .pui summary:focus-visible, .pui select:focus-visible { outline: 2px solid var(--pui-accent); outline-offset: 3px; }
296
366
  .pui button { transition: background .16s, color .16s, border-color .16s, opacity .16s; }
297
367
  .pui [hidden] { display: none !important; }
298
368
  .pui .pui-icon { width: 19px; height: 19px; flex-shrink: 0; }
299
369
  .pui .pui-app { display: flex; height: 100dvh; min-height: 520px; overflow: hidden; }
300
- .pui .pui-sidebar { width: var(--pui-sidebar-width); background: var(--pui-bg-sidebar); display: flex; flex-direction: column; flex-shrink: 0; padding: 29px 18px 20px; border-right: 1px solid var(--pui-border); }
301
- .pui .pui-brand { display: flex; align-items: center; gap: 11px; text-decoration: none; color: var(--pui-text); font-size: 21px; letter-spacing: -.7px; font-weight: 600; padding: 0 7px; }
302
- .pui .pui-brand-light { font-weight: 400; color: var(--pui-muted); }
370
+ .pui .pui-sidebar { width: var(--pui-sidebar-width); background: var(--pui-bg-sidebar); display: flex; flex-direction: column; flex-shrink: 0; padding: var(--pui-space-xl) var(--pui-space-lg) var(--pui-space-lg); border-right: 1px solid var(--pui-border); }
371
+ .pui .pui-brand { display: flex; align-items: center; gap: var(--pui-space-md); text-decoration: none; color: var(--pui-text); font-size: var(--pui-text-large); letter-spacing: normal; font-weight: var(--pui-weight-strong); padding: 0 var(--pui-space-sm); }
372
+ .pui .pui-brand-light { font-weight: var(--pui-weight-regular); color: var(--pui-muted); }
373
+ .pui .pui-app-brand { display: contents; }
374
+ .pui .pui-app-brand-image { width: 24px; height: 24px; object-fit: contain; flex-shrink: 0; }
375
+ .pui .pui-welcome-mark .pui-app-brand-image { width: 32px; height: 32px; }
303
376
  .pui .pui-logo-mark { display: inline-grid; width: 24px; height: 24px; grid-template-columns: 1fr 1fr; gap: 3px; transform: rotate(-8deg); }
304
377
  .pui .pui-logo-mark i { background: var(--pui-accent); border-radius: 2px; }
305
378
  .pui .pui-logo-mark i:nth-child(2) { border-radius: 2px 9px 2px 2px; opacity: .7; }
306
379
  .pui .pui-logo-mark i:nth-child(3) { border-radius: 2px 2px 2px 9px; opacity: .7; }
307
- .pui .pui-sidebar-section-label { margin: 32px 9px 12px; display: flex; align-items: center; height: 20px; font-size: 11px; font-weight: 600; letter-spacing: 1.3px; color: var(--pui-muted-tonal); }
380
+ .pui .pui-sidebar-section-label { margin: var(--pui-space-xl) var(--pui-space-sm) var(--pui-space-md); display: flex; align-items: center; height: 20px; font-size: var(--pui-text-small); font-weight: var(--pui-weight-strong); letter-spacing: normal; color: var(--pui-muted-tonal); }
308
381
  .pui .pui-sidebar-section-label .pui-quiet-icon { margin-left: auto; width: 23px; height: 23px; }
309
382
  .pui .pui-sidebar-section-label .pui-icon { width: 14px; height: 14px; }
310
- .pui .pui-workspace-list { display: flex; flex-direction: column; gap: 4px; }
311
- .pui .pui-workspace-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 11px; background: transparent; color: var(--pui-muted-tonal); border-radius: 7px; text-align: left; font-size: 13px; }
383
+ .pui .pui-workspace-list { display: flex; flex-direction: column; gap: var(--pui-space-xs); }
384
+ .pui .pui-workspace-item { display: flex; align-items: center; gap: var(--pui-space-sm); width: 100%; padding: var(--pui-space-sm) var(--pui-space-md); background: transparent; color: var(--pui-muted-tonal); border-radius: 7px; text-align: left; font-size: var(--pui-text-medium); }
312
385
  .pui .pui-workspace-item:hover { background: var(--pui-surface-hover); }
313
386
  .pui .pui-workspace-item.pui-selected { background: var(--pui-surface-selected); color: var(--pui-text); }
314
387
  .pui .pui-workspace-item .pui-icon { width: 17px; height: 17px; color: var(--pui-muted-tonal); }
315
388
  .pui .pui-workspace-item span:not(.pui-workspace-active-dot) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
316
389
  .pui .pui-workspace-active-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--pui-accent); margin-left: auto; flex-shrink: 0; }
317
390
  .pui .pui-empty-workspace { color: var(--pui-muted-tonal); }
318
- .pui .pui-history-list { overflow-y: auto; min-height: 0; flex: 1; display: flex; flex-direction: column; gap: 10px; scrollbar-width: thin; }
391
+ .pui .pui-history-list { overflow-y: auto; min-height: 0; flex: 1; display: flex; flex-direction: column; gap: var(--pui-space-sm); scrollbar-width: thin; }
319
392
  .pui .pui-workspace-heading { display: flex; align-items: center; min-width: 0; border-radius: 7px; }
320
393
  .pui .pui-workspace-heading:hover, .pui .pui-workspace-heading:focus-within { background: var(--pui-surface-hover); }
321
394
  .pui .pui-workspace-heading.pui-selected { color: var(--pui-text); }
322
- .pui .pui-workspace-toggle { min-width: 0; display: flex; align-items: center; gap: 7px; flex: 1; padding: 9px 5px; background: transparent; color: var(--pui-muted-tonal); text-align: left; font-size: 13px; }
395
+ .pui .pui-workspace-toggle { min-width: 0; display: flex; align-items: center; gap: var(--pui-space-sm); flex: 1; padding: var(--pui-space-sm) var(--pui-space-sm); background: transparent; color: var(--pui-muted-tonal); text-align: left; font-size: var(--pui-text-medium); }
323
396
  .pui .pui-workspace-heading.pui-selected .pui-workspace-toggle { color: var(--pui-text); }
324
397
  .pui .pui-workspace-toggle span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
325
398
  .pui .pui-workspace-toggle .pui-icon { width: 16px; height: 16px; }
326
399
  .pui .pui-workspace-toggle .pui-workspace-chevron { width: 10px; height: 10px; transition: transform .15s; }
327
400
  .pui .pui-workspace-toggle[aria-expanded="true"] .pui-workspace-chevron { transform: rotate(90deg); }
328
- .pui .pui-workspace-new, .pui .pui-workspace-more { flex-shrink: 0; width: 27px; height: 27px; margin-right: 3px; }
401
+ .pui .pui-workspace-new, .pui .pui-workspace-more { flex-shrink: 0; width: 27px; height: 27px; margin-right: var(--pui-space-xs); }
329
402
  .pui .pui-workspace-new .pui-icon, .pui .pui-workspace-more .pui-icon { width: 15px; height: 15px; }
330
- .pui .pui-workspace-children { margin: 2px 0 0 19px; display: flex; flex-direction: column; gap: 3px; }
331
- .pui .pui-workspace-empty { padding: 6px 8px; margin: 0; font-size: 12px; color: var(--pui-muted); }
403
+ .pui .pui-workspace-children { margin: var(--pui-space-xs) 0 0 var(--pui-space-lg); display: flex; flex-direction: column; gap: var(--pui-space-xs); }
404
+ .pui .pui-workspace-empty { padding: var(--pui-space-sm) var(--pui-space-sm); margin: 0; font-size: var(--pui-text-small); color: var(--pui-muted); }
332
405
  .pui .pui-history-row { display: flex; align-items: center; border-radius: 7px; min-width: 0; }
333
406
  .pui .pui-history-row:hover, .pui .pui-history-row:focus-within { background: var(--pui-surface-hover); }
334
407
  .pui .pui-history-row.pui-active { background: var(--pui-surface-selected); color: var(--pui-text); box-shadow: inset 2px 0 0 var(--pui-accent); }
335
- .pui .pui-history-item { display: flex; min-width: 0; flex: 1; text-align: left; background: transparent; padding: 9px 8px; color: var(--pui-muted-tonal); border-radius: 7px; font-size: 13px; }
408
+ .pui .pui-history-item { display: flex; min-width: 0; flex: 1; text-align: left; background: transparent; padding: var(--pui-space-sm) var(--pui-space-sm); color: var(--pui-muted-tonal); border-radius: 7px; font-size: var(--pui-text-medium); }
336
409
  .pui .pui-history-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
337
410
  .pui .pui-history-row.pui-active .pui-history-item, .pui .pui-history-item:hover { color: var(--pui-text); }
338
- .pui .pui-history-more { width: 25px; height: 25px; flex-shrink: 0; margin-right: 3px; }
411
+ .pui .pui-history-more { width: 25px; height: 25px; flex-shrink: 0; margin-right: var(--pui-space-xs); }
339
412
  .pui .pui-history-more .pui-icon { width: 15px; height: 15px; }
340
413
  @media (hover: hover) {
341
414
  .pui .pui-history-more, .pui .pui-workspace-new, .pui .pui-workspace-more { opacity: 0; }
342
415
  .pui .pui-history-row:hover .pui-history-more, .pui .pui-history-row:focus-within .pui-history-more, .pui .pui-history-more[aria-expanded="true"], .pui .pui-workspace-heading:hover .pui-workspace-new, .pui .pui-workspace-heading:focus-within .pui-workspace-new, .pui .pui-workspace-heading:hover .pui-workspace-more, .pui .pui-workspace-heading:focus-within .pui-workspace-more, .pui .pui-workspace-more[aria-expanded="true"] { opacity: 1; }
343
416
  }
344
- .pui .pui-history-empty { margin: 13px 11px; line-height: 1.5; font-size: 13px; color: var(--pui-muted-tonal); }
345
- .pui .pui-sidebar-bottom { padding-top: 20px; margin-top: auto; }
346
- .pui .pui-settings-button { display: flex; align-items: center; gap: 12px; background: transparent; color: var(--pui-muted-tonal); padding: 12px 11px; width: 100%; font-size: 13px; border-radius: 7px; }
417
+ .pui .pui-history-empty { margin: var(--pui-space-md) var(--pui-space-md); line-height: var(--pui-line-height); font-size: var(--pui-text-medium); color: var(--pui-muted-tonal); }
418
+ .pui .pui-sidebar-bottom { padding-top: var(--pui-space-lg); margin-top: auto; }
419
+ .pui .pui-settings-button { display: flex; align-items: center; gap: var(--pui-space-md); background: transparent; color: var(--pui-muted-tonal); padding: var(--pui-space-md) var(--pui-space-md); width: 100%; font-size: var(--pui-text-medium); border-radius: 7px; }
347
420
  .pui .pui-settings-button:hover { background: var(--pui-surface-hover); color: var(--pui-text); }
348
421
  .pui .pui-settings-button .pui-icon { width: 17px; height: 17px; }
349
- .pui .pui-local-status { border-top: 1px solid var(--pui-border); padding: 19px 11px 0; display: flex; align-items: center; gap: 8px; color: var(--pui-muted-tonal); font-size: 11px; letter-spacing: .1px; }
422
+ .pui .pui-local-status { border-top: 1px solid var(--pui-border); padding: var(--pui-space-lg) var(--pui-space-md) 0; display: flex; align-items: center; gap: var(--pui-space-sm); color: var(--pui-muted-tonal); font-size: var(--pui-text-small); letter-spacing: normal; }
350
423
  .pui .pui-status-dot { width: 5px; height: 5px; flex-shrink: 0; border-radius: 50%; background: var(--pui-muted); }
351
424
  .pui .pui-status-dot.pui-reconnecting { background: var(--pui-warning-text); }
352
425
  .pui .pui-main { flex: 1; min-width: 0; min-height: 0; overflow: hidden; display: flex; flex-direction: column; background: var(--pui-bg-main); }
353
- .pui .pui-topbar { display: flex; align-items: center; justify-content: space-between; height: 79px; flex-shrink: 0; padding: 0 36px; border-bottom: 1px solid var(--pui-border); }
354
- .pui .pui-breadcrumb { display: flex; align-items: center; gap: 11px; color: var(--pui-muted); font-size: 12px; min-width: 0; }
426
+ .pui .pui-topbar { display: flex; align-items: center; justify-content: space-between; height: 79px; flex-shrink: 0; padding: 0 var(--pui-space-xl); border-bottom: 1px solid var(--pui-border); }
427
+ .pui .pui-breadcrumb { display: flex; align-items: center; gap: var(--pui-space-md); color: var(--pui-muted); font-size: var(--pui-text-small); min-width: 0; }
355
428
  .pui .pui-breadcrumb > .pui-icon { width: 17px; height: 17px; color: var(--pui-muted); }
356
429
  .pui .pui-breadcrumb span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
357
- .pui .pui-breadcrumb-chevron { width: 12px !important; height: 12px !important; color: var(--pui-muted) !important; margin: 0 3px; }
430
+ .pui .pui-breadcrumb-chevron { width: 12px !important; height: 12px !important; color: var(--pui-muted) !important; margin: 0 var(--pui-space-xs); }
358
431
  .pui .pui-breadcrumb-current { color: var(--pui-muted); }
359
432
  .pui .pui-model-indicator { width: 6px; height: 6px; border: 1px solid var(--pui-muted); border-radius: 2px; transform: rotate(45deg); }
360
- .pui .pui-chat-scroll { overflow-y: auto; overflow-anchor: none; min-height: 0; flex: 1; padding: 0 30px; scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; }
433
+ .pui .pui-chat-scroll { overflow-y: auto; overflow-anchor: none; min-height: 0; flex: 1; padding: 0 var(--pui-space-xl); scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; }
361
434
  .pui .pui-chat-scroll:focus { outline: none; }
362
- .pui .pui-welcome { max-width: 650px; margin: 0 auto; padding: clamp(55px, 8.8vh, 106px) 0 36px; text-align: center; }
363
- .pui .pui-welcome-mark { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border: 1px solid var(--pui-border); background: var(--pui-surface); border-radius: 18px; margin-bottom: 24px; box-shadow: var(--pui-shadow); }
435
+ .pui .pui-welcome { max-width: 650px; margin: 0 auto; padding: var(--pui-space-xl) 0; text-align: center; }
436
+ .pui .pui-welcome-mark { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border: 1px solid var(--pui-border); background: var(--pui-surface); border-radius: 18px; margin-bottom: var(--pui-space-xl); box-shadow: var(--pui-shadow); }
364
437
  .pui .pui-welcome-mark .pui-logo-mark { width: 32px; height: 32px; gap: 4px; }
365
- .pui .pui-eyebrow { font-size: 11px; letter-spacing: 1.7px; font-weight: 500; color: var(--pui-muted); margin: 0 0 13px; }
366
- .pui .pui-welcome h1 { font-weight: 450; font-size: clamp(28px, 2.9vw, 40px); letter-spacing: -1.35px; line-height: 1.2; color: var(--pui-text); margin: 0 0 15px; }
367
- .pui .pui-welcome-description { line-height: 1.5; font-size: 14px; color: var(--pui-muted); margin: 0; }
368
- .pui .pui-setup-card { max-width: 445px; margin: 34px auto 0; border: 1px solid var(--pui-border); background: var(--pui-surface); border-radius: 12px; padding: 17px 18px 8px; text-align: left; }
369
- .pui .pui-setup-card-heading { font-size: 12px; color: var(--pui-text); padding-bottom: 12px; border-bottom: 1px solid var(--pui-border); }
370
- .pui .pui-setup-card-heading > span { float: right; font-size: 11px; color: var(--pui-muted); }
371
- .pui .pui-setup-step { display: flex; align-items: center; gap: 13px; width: 100%; text-align: left; padding: 17px 0; background: transparent; }
438
+ .pui .pui-eyebrow { font-size: var(--pui-text-small); letter-spacing: normal; font-weight: var(--pui-weight-strong); color: var(--pui-muted); margin: 0 0 var(--pui-space-md); }
439
+ .pui .pui-welcome h1 { font-weight: var(--pui-weight-strong); font-size: var(--pui-text-large); letter-spacing: normal; line-height: var(--pui-line-height); color: var(--pui-text); margin: 0 0 var(--pui-space-lg); }
440
+ .pui .pui-welcome-description { line-height: var(--pui-line-height); font-size: var(--pui-text-medium); color: var(--pui-muted); margin: 0; }
441
+ .pui .pui-setup-card { max-width: 445px; margin: var(--pui-space-xl) auto 0; border: 1px solid var(--pui-border); background: var(--pui-surface); border-radius: 12px; padding: var(--pui-space-lg) var(--pui-space-lg) var(--pui-space-sm); text-align: left; }
442
+ .pui .pui-setup-card-heading { font-size: var(--pui-text-small); color: var(--pui-text); padding-bottom: var(--pui-space-md); border-bottom: 1px solid var(--pui-border); }
443
+ .pui .pui-setup-card-heading > span { float: right; font-size: var(--pui-text-small); color: var(--pui-muted); }
444
+ .pui .pui-setup-step { display: flex; align-items: center; gap: var(--pui-space-md); width: 100%; text-align: left; padding: var(--pui-space-lg) 0; background: transparent; }
372
445
  .pui .pui-setup-step + .pui-setup-step { border-top: 1px solid var(--pui-border); }
373
- .pui .pui-setup-step strong { display: block; font-size: 13px; font-weight: 450; color: var(--pui-text); margin-bottom: 5px; }
374
- .pui .pui-setup-step small { display: block; color: var(--pui-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; max-width: 320px; white-space: nowrap; }
446
+ .pui .pui-setup-step strong { display: block; font-size: var(--pui-text-medium); font-weight: var(--pui-weight-strong); color: var(--pui-text); margin-bottom: var(--pui-space-sm); }
447
+ .pui .pui-setup-step small { display: block; color: var(--pui-muted); font-size: var(--pui-text-small); overflow: hidden; text-overflow: ellipsis; max-width: 320px; white-space: nowrap; }
375
448
  .pui .pui-setup-step > .pui-icon { width: 14px; height: 14px; color: var(--pui-muted); margin-left: auto; }
376
449
  .pui .pui-setup-step:hover strong { color: var(--pui-text); }
377
- .pui .pui-step-number { width: 28px; height: 28px; border: 1px solid var(--pui-border-strong); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--pui-muted-tonal); flex-shrink: 0; }
450
+ .pui .pui-step-number { width: 28px; height: 28px; border: 1px solid var(--pui-border-strong); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: var(--pui-text-small); color: var(--pui-muted-tonal); flex-shrink: 0; }
378
451
  .pui .pui-step-number.pui-complete { background: var(--pui-surface-selected); border-color: var(--pui-border); }
379
452
  .pui .pui-step-number .pui-icon { width: 15px; height: 15px; }
380
- .pui .pui-welcome-footnote { margin-top: 25px; display: flex; align-items: center; justify-content: center; gap: 7px; font-size: 11px; letter-spacing: .3px; color: var(--pui-muted); }
453
+ .pui .pui-welcome-footnote { margin-top: var(--pui-space-xl); display: flex; align-items: center; justify-content: center; gap: var(--pui-space-sm); font-size: var(--pui-text-small); letter-spacing: normal; color: var(--pui-muted); }
381
454
  .pui .pui-welcome-footnote .pui-icon { width: 13px; height: 13px; }
382
- .pui .pui-welcome-workspace { display: inline-flex; align-items: center; gap: 9px; margin-top: 30px; font-size: 12px; color: var(--pui-muted); }
455
+ .pui .pui-welcome-workspace { display: inline-flex; align-items: center; gap: var(--pui-space-sm); margin-top: var(--pui-space-xl); font-size: var(--pui-text-small); color: var(--pui-muted); }
383
456
  .pui .pui-welcome-workspace .pui-icon { width: 16px; height: 16px; }
384
- .pui .pui-welcome-workspace strong { font-weight: 500; color: var(--pui-text); }
385
- .pui .pui-suggestions { display: flex; justify-content: center; gap: 9px; flex-wrap: wrap; margin-top: 28px; }
386
- .pui .pui-suggestions button { padding: 12px 13px; border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface); font-size: 12px; display: flex; align-items: center; gap: 8px; color: var(--pui-muted); }
457
+ .pui .pui-welcome-workspace strong { font-weight: var(--pui-weight-strong); color: var(--pui-text); }
458
+ .pui .pui-suggestions { display: flex; justify-content: center; gap: var(--pui-space-sm); flex-wrap: wrap; margin-top: var(--pui-space-xl); }
459
+ .pui .pui-suggestions button { padding: var(--pui-space-md) var(--pui-space-md); border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface); font-size: var(--pui-text-small); display: flex; align-items: center; gap: var(--pui-space-sm); color: var(--pui-muted); }
387
460
  .pui .pui-suggestions button:hover { background: var(--pui-surface-hover); border-color: var(--pui-border); color: var(--pui-text); }
388
461
  .pui .pui-suggestions .pui-icon { width: 14px; height: 14px; color: var(--pui-muted); }
389
- .pui .pui-composer-region { width: min(810px, calc(100% - 80px)); margin: 0 auto; padding: 15px 0 17px; display: flex; flex-direction: column; min-height: 0; flex-shrink: 1; }
462
+ .pui .pui-composer-region { width: min(810px, calc(100% - 80px)); margin: 0 auto; padding: var(--pui-space-lg) 0 var(--pui-space-lg); display: flex; flex-direction: column; min-height: 0; flex-shrink: 1; }
390
463
  .pui .pui-composer-panels { min-height: 0; overflow-y: auto; flex: 0 1 auto; scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; }
391
464
  .pui .pui-composer-region > .pui-composer, .pui .pui-composer-region > .pui-composer-note { flex-shrink: 0; }
392
- .pui .pui-composer { background: var(--pui-surface); border: 1px solid var(--pui-border-strong); border-radius: 14px; padding: 17px 18px 11px; box-shadow: var(--pui-shadow); }
465
+ .pui .pui-composer { background: var(--pui-surface); border: 1px solid var(--pui-border-strong); border-radius: 14px; padding: var(--pui-space-lg) var(--pui-space-lg) var(--pui-space-md); box-shadow: var(--pui-shadow); }
393
466
  .pui .pui-composer:focus-within { border-color: var(--pui-accent); }
394
- .pui .pui-composer textarea { width: 100%; display: block; resize: none; border: none; outline: none; min-height: 40px; max-height: 180px; padding: 1px 2px 10px; background: transparent; color: var(--pui-text); font-size: 14px; line-height: 1.5; overflow-y: auto; }
467
+ .pui .pui-composer textarea { width: 100%; display: block; resize: none; border: none; outline: none; min-height: 40px; max-height: 180px; padding: var(--pui-space-xs) var(--pui-space-xs) var(--pui-space-sm); background: transparent; color: var(--pui-text); font-size: var(--pui-text-medium); line-height: var(--pui-line-height); overflow-y: auto; }
395
468
  .pui .pui-composer textarea::placeholder { color: var(--pui-muted); }
396
- .pui .pui-composer-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
397
- .pui .pui-composer-context { display: flex; align-items: center; gap: 8px; min-width: 0; }
398
- .pui .pui-permission-control { display: inline-flex; align-items: center; gap: 6px; min-width: 0; border: 1px solid var(--pui-border); border-radius: 6px; background: var(--pui-surface-subtle); color: var(--pui-muted-tonal); padding: 6px 8px; }
469
+ .pui .pui-composer-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--pui-space-md); }
470
+ .pui .pui-composer-context { display: flex; align-items: center; gap: var(--pui-space-sm); min-width: 0; }
471
+ .pui .pui-permission-control { display: inline-flex; align-items: center; gap: var(--pui-space-sm); min-width: 0; border: 1px solid var(--pui-border); border-radius: 6px; background: var(--pui-surface-subtle); color: var(--pui-muted-tonal); padding: var(--pui-space-sm) var(--pui-space-sm); }
399
472
  .pui .pui-permission-control > .pui-icon { width: 12px; height: 12px; }
400
- .pui .pui-permission-control > .pui-icon:last-child { width: 10px; height: 10px; opacity: .65; pointer-events: none; margin-left: -16px; }
401
- .pui .pui-permission-control select { appearance: none; min-width: 0; max-width: 180px; padding: 0 16px 0 0; border: 0; background: transparent; outline: none; font-size: 12px; color: inherit; cursor: pointer; }
473
+ .pui .pui-permission-control > .pui-icon:last-child { width: 10px; height: 10px; opacity: .65; pointer-events: none; margin-left: calc(-1 * var(--pui-space-lg)); }
474
+ .pui .pui-permission-control select { appearance: none; min-width: 0; max-width: 180px; padding: 0 var(--pui-space-lg) 0 0; border: 0; background: transparent; outline: none; font-size: var(--pui-text-small); color: inherit; cursor: pointer; }
402
475
  .pui .pui-permission-control select:disabled { opacity: .5; cursor: not-allowed; }
403
- .pui .pui-permission-control:focus-within { outline: 2px solid var(--pui-accent); outline-offset: 3px; }
476
+ .pui .pui-permission-control:has(:focus-visible) { outline: var(--pui-focus-width) solid var(--pui-focus); outline-offset: var(--pui-focus-offset); }
477
+ .pui .pui-permission-control :focus-visible { outline: none; box-shadow: none; }
478
+ @media (forced-colors: active) { .pui .pui-permission-control:has(:focus-visible) { outline-color: Highlight; } }
404
479
  .pui .pui-permission-control.pui-full-access { background: var(--pui-warning-surface); border-color: var(--pui-warning-border); color: var(--pui-warning-text); }
405
480
  .pui .pui-permission-control select option { background: var(--pui-surface); color: var(--pui-text); }
406
- .pui .pui-composer-actions { display: flex; align-items: center; gap: 13px; }
407
- .pui .pui-keyboard-hint { font-size: 11px; color: var(--pui-muted); }
481
+ .pui .pui-permission-control > .pui-select { width: auto; }
482
+ .pui .pui-permission-control .pui-select-trigger { min-height: 0; max-width: 180px; padding: 0 var(--pui-space-lg) 0 0; border: 0; border-radius: 0; background: transparent; color: inherit; font-size: var(--pui-text-small); line-height: inherit; }
483
+ .pui .pui-permission-control .pui-select-arrow { display: none; }
484
+ .pui .pui-composer-actions { display: flex; align-items: center; gap: var(--pui-space-md); }
485
+ .pui .pui-keyboard-hint { font-size: var(--pui-text-small); color: var(--pui-muted); }
408
486
  .pui .pui-send-button { width: 32px; height: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--pui-accent); color: var(--pui-accent-foreground); border-radius: 9px; }
409
487
  .pui .pui-send-button:hover { background: var(--pui-accent-hover); }
410
488
  .pui .pui-send-button:disabled { background: var(--pui-surface-subtle); color: var(--pui-muted-tonal); opacity: .7; }
411
489
  .pui .pui-send-button .pui-icon { width: 17px; height: 17px; stroke-width: 2; }
412
490
  .pui .pui-send-button.pui-is-stop .pui-icon { fill: currentColor; stroke: none; }
413
- .pui .pui-composer-note { font-size: 11px; letter-spacing: .1px; text-align: center; color: var(--pui-muted); margin: 10px 0 0; }
491
+ .pui .pui-composer-note { font-size: var(--pui-text-small); letter-spacing: normal; text-align: center; color: var(--pui-muted); margin: var(--pui-space-sm) 0 0; }
414
492
  .pui .pui-composer-note.pui-full-access-note { color: var(--pui-warning-text); }
415
- .pui .pui-messages { max-width: 774px; margin: 0 auto; padding: 28px 0 16px; }
416
- .pui .pui-message { display: flex; align-items: flex-start; margin-bottom: 22px; }
493
+ .pui .pui-messages { max-width: 774px; margin: 0 auto; padding: var(--pui-space-xl) 0 var(--pui-space-lg); }
494
+ .pui .pui-message { display: flex; align-items: flex-start; margin-bottom: var(--pui-space-xl); }
417
495
  .pui .pui-message-content { min-width: 0; flex: 1; }
418
496
  .pui .pui-user-message { justify-content: flex-end; }
419
- .pui .pui-user-message .pui-message-content { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: 0 1 auto; max-width: 82%; }
497
+ .pui .pui-user-message .pui-message-content { display: flex; flex-direction: column; align-items: flex-end; gap: var(--pui-space-sm); flex: 0 1 auto; max-width: 82%; }
420
498
  .pui .pui-user-message .pui-message-images { justify-content: flex-end; max-width: 100%; margin-top: 0; }
421
- .pui .pui-message-footer { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
422
- .pui .pui-message-time { color: var(--pui-muted); font-size: 12px; white-space: nowrap; }
499
+ .pui .pui-message-footer { display: flex; align-items: center; gap: var(--pui-space-sm); margin-top: var(--pui-space-sm); }
500
+ .pui .pui-message-time { color: var(--pui-muted); font-size: var(--pui-text-small); white-space: nowrap; }
423
501
  .pui .pui-user-message .pui-message-footer { margin-top: 0; }
424
- .pui .pui-message-actions { display: flex; align-items: center; gap: 6px; }
502
+ .pui .pui-message-actions { display: flex; align-items: center; gap: var(--pui-space-sm); }
425
503
  .pui .pui-message-action { width: 28px; height: 28px; }
426
504
  .pui .pui-message-action .pui-icon { width: 16px; height: 16px; }
427
505
  .pui .pui-message-action:disabled { opacity: .35; cursor: not-allowed; }
428
- .pui .pui-message-action:focus-visible { outline: 2px solid var(--pui-accent); outline-offset: 2px; }
429
- .pui .pui-user-text { max-width: 100%; white-space: pre-wrap; line-height: 1.5; color: var(--pui-text); font-size: 14px; overflow-wrap: anywhere; background: var(--pui-user-message-bg); border: 1px solid var(--pui-user-message-border); padding: 12px 16px; border-radius: 11px; }
430
- .pui .pui-markdown { font-size: 14px; line-height: 1.5; color: var(--pui-text); overflow-wrap: anywhere; }
506
+ .pui .pui-user-text { max-width: 100%; white-space: pre-wrap; line-height: var(--pui-line-height); color: var(--pui-text); font-size: var(--pui-text-medium); overflow-wrap: anywhere; background: var(--pui-user-message-bg); border: 1px solid var(--pui-user-message-border); padding: var(--pui-space-md) var(--pui-space-lg); border-radius: 11px; }
507
+ .pui .pui-markdown { font-size: var(--pui-text-medium); line-height: var(--pui-line-height); color: var(--pui-text); overflow-wrap: anywhere; }
431
508
  .pui .pui-markdown > :first-child { margin-top: 0; }
432
509
  .pui .pui-markdown > :last-child { margin-bottom: 0; }
433
- .pui .pui-markdown p { margin: 0 0 10px; }
434
- .pui .pui-markdown h1, .pui .pui-markdown h2, .pui .pui-markdown h3, .pui .pui-markdown h4 { color: var(--pui-text); margin: 18px 0 8px; font-size: 17px; line-height: 1.4; font-weight: 600; }
435
- .pui .pui-markdown h1 { font-size: 22px; }
436
- .pui .pui-markdown h2 { font-size: 19px; }
437
- .pui .pui-markdown ul, .pui .pui-markdown ol { padding-left: 23px; margin: 8px 0 10px; }
438
- .pui .pui-markdown li { margin: 4px 0; }
439
- .pui .pui-markdown li > p { margin-bottom: 6px; }
510
+ .pui .pui-markdown p { margin: 0 0 var(--pui-space-sm); }
511
+ .pui .pui-markdown :is(h1, h2, h3, h4, h5, h6) { color: var(--pui-text); margin: var(--pui-space-lg) 0 var(--pui-space-sm); font-size: var(--pui-text-large); line-height: var(--pui-line-height); font-weight: var(--pui-weight-strong); }
512
+ .pui .pui-markdown ul, .pui .pui-markdown ol { padding-left: var(--pui-space-xl); margin: var(--pui-space-sm) 0 var(--pui-space-sm); }
513
+ .pui .pui-markdown li { margin: var(--pui-space-xs) 0; }
514
+ .pui .pui-markdown li > p { margin-bottom: var(--pui-space-sm); }
440
515
  .pui .pui-markdown li > :last-child { margin-bottom: 0; }
441
- .pui .pui-markdown code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; padding: 2px 5px; border: 1px solid var(--pui-border); border-radius: 4px; background: var(--pui-surface-code); color: var(--pui-text); }
442
- .pui .pui-markdown pre { background: var(--pui-surface-code); border: 1px solid var(--pui-border); margin: 12px 0; padding: 12px 14px; border-radius: 9px; overflow-x: auto; font-size: 13px; line-height: 1.5; }
516
+ .pui .pui-markdown code { font-family: var(--pui-font-code); font-size: var(--pui-text-medium); padding: 0 var(--pui-space-xs); border: 1px solid var(--pui-border); border-radius: 4px; background: var(--pui-surface-code); color: var(--pui-text); }
517
+ .pui .pui-markdown pre { background: var(--pui-surface-code); border: 1px solid var(--pui-border); margin: var(--pui-space-md) 0; padding: var(--pui-space-md) var(--pui-space-md); border-radius: 9px; overflow-x: auto; font-size: var(--pui-text-medium); line-height: var(--pui-line-height); }
443
518
  .pui .pui-markdown pre code { border: 0; border-radius: 0; padding: 0; background: transparent; color: var(--pui-text); font-size: inherit; }
444
- .pui .pui-code-block { margin: 12px 0; border: 1px solid var(--pui-border); border-radius: 9px; overflow: hidden; background: var(--pui-surface-code); }
445
- .pui .pui-code-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 12px; color: var(--pui-muted); font-size: 11px; border-bottom: 1px solid var(--pui-border); }
446
- .pui .pui-code-toolbar .pui-code-copy { padding: 4px 9px; font-size: 11px; }
519
+ .pui .pui-code-block { margin: var(--pui-space-md) 0; border: 1px solid var(--pui-border); border-radius: 9px; overflow: hidden; background: var(--pui-surface-code); }
520
+ .pui .pui-code-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--pui-space-md); padding: var(--pui-space-sm) var(--pui-space-md); color: var(--pui-muted); font-size: var(--pui-text-small); border-bottom: 1px solid var(--pui-border); }
521
+ .pui .pui-code-toolbar .pui-code-copy { min-height: 30px; padding: var(--pui-space-xs) var(--pui-space-sm); font-size: var(--pui-text-small); }
447
522
  .pui .pui-markdown .pui-code-block pre { margin: 0; border: 0; border-radius: 0; }
448
523
  .pui .pui-conversation-region { position: relative; display: flex; min-height: 0; flex: 1; }
449
- .pui .pui-back-to-latest { position: absolute; bottom: 12px; right: 30px; display: flex; align-items: center; gap: 7px; font-size: 12px; box-shadow: var(--pui-modal-shadow); }
524
+ .pui .pui-back-to-latest { position: absolute; bottom: 12px; right: 30px; display: flex; align-items: center; gap: var(--pui-space-sm); font-size: var(--pui-text-small); box-shadow: var(--pui-modal-shadow); }
450
525
  .pui .pui-back-to-latest .pui-icon { width: 14px; height: 14px; }
451
- .pui .pui-conversation-find { display: flex; align-items: center; gap: 7px; padding: 7px 30px; border-bottom: 1px solid var(--pui-border); background: var(--pui-surface); }
452
- .pui .pui-conversation-find input { flex: 1; min-width: 0; max-width: 420px; border: 1px solid var(--pui-border); border-radius: 6px; padding: 6px 9px; background: var(--pui-surface-input); color: var(--pui-text); font-size: 13px; }
453
- .pui .pui-conversation-find [data-find-count] { min-width: 65px; color: var(--pui-muted); font-size: 12px; text-align: center; }
454
- .pui .pui-conversation-find .pui-quiet-icon { padding: 5px; }
526
+ .pui .pui-conversation-find { display: flex; align-items: center; gap: var(--pui-space-sm); padding: var(--pui-space-sm) var(--pui-space-xl); border-bottom: 1px solid var(--pui-border); background: var(--pui-surface); }
527
+ .pui .pui-conversation-find input { flex: 1; min-width: 0; max-width: 420px; border: 1px solid var(--pui-border); border-radius: 6px; padding: var(--pui-space-sm) var(--pui-space-sm); background: var(--pui-surface-input); color: var(--pui-text); font-size: var(--pui-text-medium); }
528
+ .pui .pui-conversation-find [data-find-count] { min-width: 65px; color: var(--pui-muted); font-size: var(--pui-text-small); text-align: center; }
529
+ .pui .pui-conversation-find .pui-quiet-icon { padding: var(--pui-space-sm); }
455
530
  .pui .pui-find-previous .pui-icon { transform: rotate(180deg); }
456
531
  .pui mark[data-find-match] { background: var(--pui-warning-code); color: var(--pui-text); border-radius: 2px; }
457
532
  .pui mark.pui-find-current { background: var(--pui-accent); color: var(--pui-accent-foreground); }
458
533
  .pui .pui-modal.pui-image-viewer { width: min(1200px, calc(100% - 40px)); max-height: 90dvh; }
459
- .pui .pui-modal.pui-image-viewer h2 { font-size: 17px; overflow-wrap: anywhere; }
534
+ .pui .pui-modal.pui-image-viewer h2 { font-size: var(--pui-text-large); overflow-wrap: anywhere; }
460
535
  .pui .pui-image-viewer-viewport { height: 65dvh; overflow: auto; display: flex; background: var(--pui-surface-subtle); border: 1px solid var(--pui-border); border-radius: 8px; }
461
536
  .pui .pui-image-viewer-viewport img { display: block; flex: none; max-width: none; margin: auto; object-fit: contain; }
462
- .pui .pui-image-viewer-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
463
- .pui .pui-image-viewer-toolbar [data-image-scale] { color: var(--pui-muted); font-size: 12px; }
464
- .pui .pui-image-viewer-toolbar > div { display: flex; gap: 6px; }
465
- .pui .pui-image-viewer-toolbar button { padding: 6px 9px; font-size: 12px; }
537
+ .pui .pui-image-viewer-toolbar { display: flex; justify-content: space-between; align-items: center; gap: var(--pui-space-sm); flex-wrap: wrap; margin-top: var(--pui-space-md); }
538
+ .pui .pui-image-viewer-toolbar [data-image-scale] { color: var(--pui-muted); font-size: var(--pui-text-small); }
539
+ .pui .pui-image-viewer-toolbar > div { display: flex; gap: var(--pui-space-sm); }
540
+ .pui .pui-image-viewer-toolbar button { padding: var(--pui-space-sm) var(--pui-space-sm); font-size: var(--pui-text-small); }
466
541
  .pui .pui-history-image, .pui .pui-draft-image img, .pui .pui-file-preview-image { cursor: zoom-in; }
467
- .pui .pui-markdown blockquote { margin: 12px 0; border-left: 3px solid var(--pui-border); padding: 3px 14px; color: var(--pui-muted-tonal); }
542
+ .pui .pui-markdown blockquote { margin: var(--pui-space-md) 0; border-left: 3px solid var(--pui-border); padding: var(--pui-space-xs) var(--pui-space-md); color: var(--pui-muted-tonal); }
468
543
  .pui .pui-markdown a { color: var(--pui-accent); text-underline-offset: 3px; }
469
544
  .pui .pui-markdown a[aria-disabled="true"] { color: var(--pui-muted); cursor: wait; }
470
- .pui .pui-markdown table { display: block; overflow-x: auto; border-collapse: collapse; margin: 12px 0; }
471
- .pui .pui-markdown th, .pui .pui-markdown td { border: 1px solid var(--pui-border); padding: 7px 10px; text-align: left; }
545
+ .pui .pui-markdown table { display: block; overflow-x: auto; border-collapse: collapse; margin: var(--pui-space-md) 0; }
546
+ .pui .pui-markdown th, .pui .pui-markdown td { border: 1px solid var(--pui-border); padding: var(--pui-space-sm) var(--pui-space-sm); text-align: left; }
472
547
  .pui .pui-markdown th { background: var(--pui-surface-subtle); color: var(--pui-text); }
473
- .pui .pui-markdown hr { border: 0; border-top: 1px solid var(--pui-border); margin: 18px 0; }
474
- .pui .pui-message-error-label { color: var(--pui-error-text); font-size: 12px; display: block; margin-top: 10px; }
475
- .pui .pui-tool-group { margin: -6px 0 16px; color: var(--pui-muted-tonal); }
476
- .pui .pui-tool-group > summary { display: flex; align-items: center; gap: 8px; min-height: 32px; padding: 5px 0; list-style: none; cursor: pointer; font-size: 13px; }
548
+ .pui .pui-markdown hr { border: 0; border-top: 1px solid var(--pui-border); margin: var(--pui-space-lg) 0; }
549
+ .pui .pui-message-error-label { color: var(--pui-error-text); font-size: var(--pui-text-small); display: block; margin-top: var(--pui-space-sm); }
550
+ .pui .pui-tool-group { margin: calc(-1 * var(--pui-space-sm)) 0 var(--pui-space-lg); color: var(--pui-muted-tonal); }
551
+ .pui .pui-tool-group > summary { display: flex; align-items: center; gap: var(--pui-space-sm); min-height: 32px; padding: var(--pui-space-sm) 0; list-style: none; cursor: pointer; font-size: var(--pui-text-medium); }
477
552
  .pui .pui-tool-group > summary::-webkit-details-marker { display: none; }
478
553
  .pui .pui-tool-group > summary:hover { color: var(--pui-text); }
479
- .pui .pui-tool-group > summary:focus-visible { outline: 2px solid var(--pui-accent); outline-offset: 3px; border-radius: 4px; }
554
+ .pui .pui-tool-group > summary:focus-visible { border-radius: 4px; }
480
555
  .pui .pui-tool-group > summary .pui-icon { width: 16px; height: 16px; flex-shrink: 0; }
481
556
  .pui .pui-tool-group > summary .pui-icon:last-child { width: 12px; height: 12px; transform: rotate(-90deg); }
482
557
  .pui .pui-tool-group[open] > summary .pui-icon:last-child { transform: none; }
483
558
  .pui .pui-tool-group-label { min-width: 0; overflow-wrap: anywhere; }
484
- .pui .pui-tool-group-count, .pui .pui-tool-group-running, .pui .pui-tool-group-failed { font-size: 11px; flex-shrink: 0; }
559
+ .pui .pui-tool-group-count, .pui .pui-tool-group-running, .pui .pui-tool-group-failed { font-size: var(--pui-text-small); flex-shrink: 0; }
485
560
  .pui .pui-tool-group-running { color: var(--pui-accent); }
486
561
  .pui .pui-tool-group-failed { color: var(--pui-error-text); }
487
- .pui .pui-tool-group-content { padding-top: 8px; }
488
- .pui .pui-tool-message { margin: 0 0 8px; border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface); overflow: hidden; }
562
+ .pui .pui-tool-group-content { padding-top: var(--pui-space-sm); }
563
+ .pui .pui-tool-message { margin: 0 0 var(--pui-space-sm); border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface); overflow: hidden; }
489
564
  .pui .pui-tool-message:last-child { margin-bottom: 0; }
490
- .pui .pui-tool-message summary { display: flex; gap: 9px; align-items: center; list-style: none; padding: 11px 13px; cursor: pointer; color: var(--pui-muted-tonal); font-size: 12px; }
565
+ .pui .pui-tool-message summary { display: flex; gap: var(--pui-space-sm); align-items: center; list-style: none; padding: var(--pui-space-md) var(--pui-space-md); cursor: pointer; color: var(--pui-muted-tonal); font-size: var(--pui-text-small); }
491
566
  .pui .pui-tool-message summary::-webkit-details-marker { display: none; }
492
567
  .pui .pui-tool-message summary .pui-icon { width: 14px; height: 14px; color: var(--pui-muted-tonal); }
493
- .pui .pui-tool-message summary .pui-icon:last-child { margin-left: 4px; width: 10px; height: 10px; }
494
- .pui .pui-tool-status { margin-left: auto; font-size: 11px; color: var(--pui-muted-tonal); }
568
+ .pui .pui-tool-message summary .pui-icon:last-child { margin-left: var(--pui-space-xs); width: 10px; height: 10px; }
569
+ .pui .pui-tool-status { margin-left: auto; font-size: var(--pui-text-small); color: var(--pui-muted-tonal); }
495
570
  .pui .pui-tool-status-error { color: var(--pui-error-text); }
496
- .pui .pui-tool-message pre { margin: 0; padding: 14px; border-top: 1px solid var(--pui-border); max-height: 270px; overflow: auto; font-size: 12px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--pui-muted-tonal); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
497
- .pui .pui-command-details { padding: 12px 14px; border-top: 1px solid var(--pui-border); }
498
- .pui .pui-tool-field-label { display: block; margin-bottom: 6px; color: var(--pui-muted); font-size: 11px; }
571
+ .pui .pui-tool-message pre { margin: 0; padding: var(--pui-space-md); border-top: 1px solid var(--pui-border); max-height: 270px; overflow: auto; font-size: var(--pui-text-small); line-height: var(--pui-line-height); white-space: pre-wrap; overflow-wrap: anywhere; color: var(--pui-muted-tonal); font-family: var(--pui-font-code); }
572
+ .pui .pui-command-details { padding: var(--pui-space-md) var(--pui-space-md); border-top: 1px solid var(--pui-border); }
573
+ .pui .pui-tool-field-label { display: block; margin-bottom: var(--pui-space-sm); color: var(--pui-muted); font-size: var(--pui-text-small); }
499
574
  .pui .pui-tool-message .pui-command-text { padding: 0; border: 0; color: var(--pui-text); max-height: 180px; }
500
- .pui .pui-command-directory { margin-top: 12px; }
501
- .pui .pui-command-directory code { display: block; font-size: 11px; color: var(--pui-muted-tonal); overflow-wrap: anywhere; }
575
+ .pui .pui-command-directory { margin-top: var(--pui-space-md); }
576
+ .pui .pui-command-directory code { display: block; font-size: var(--pui-text-small); color: var(--pui-muted-tonal); overflow-wrap: anywhere; }
502
577
  .pui .pui-command-output { border-top: 1px solid var(--pui-border); }
503
- .pui .pui-command-output > .pui-tool-field-label { margin: 10px 14px 0; }
578
+ .pui .pui-command-output > .pui-tool-field-label { margin: var(--pui-space-sm) var(--pui-space-md) 0; }
504
579
  .pui .pui-command-output pre { border-top: 0; }
505
- .pui .pui-system-message { margin: 0 0 22px; padding: 10px 13px; border-left: 2px solid var(--pui-border); color: var(--pui-muted); font-size: 12px; line-height: 1.5; }
506
- .pui .pui-agent-working { display: flex; align-items: center; gap: 12px; font-size: 12px; color: var(--pui-muted); margin-top: 12px; }
507
- .pui .pui-working-dots { display: flex; gap: 4px; }
580
+ .pui .pui-system-message { margin: 0 0 var(--pui-space-xl); padding: var(--pui-space-sm) var(--pui-space-md); border-left: 2px solid var(--pui-border); color: var(--pui-muted); font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
581
+ .pui .pui-agent-working { display: flex; align-items: center; gap: var(--pui-space-md); font-size: var(--pui-text-small); color: var(--pui-muted); margin-top: var(--pui-space-md); }
582
+ .pui .pui-working-dots { display: flex; gap: var(--pui-space-xs); }
508
583
  .pui .pui-working-dots i { width: 4px; height: 4px; border-radius: 50%; background: var(--pui-muted); animation: pui-pulse 1.2s infinite; }
509
584
  .pui .pui-working-dots i:nth-child(2) { animation-delay: .2s; }
510
585
  .pui .pui-working-dots i:nth-child(3) { animation-delay: .4s; }
511
- .pui .pui-inline-error { padding: 11px 13px; font-size: 12px; line-height: 1.6; background: var(--pui-error-surface); border: 1px solid var(--pui-error-border); color: var(--pui-error-text); border-radius: 9px; margin-bottom: 11px; white-space: pre-wrap; overflow-wrap: anywhere; }
512
- .pui .pui-approval-card { padding: 15px; border: 1px solid var(--pui-warning-border); background: var(--pui-warning-surface); border-radius: 12px; margin-bottom: 12px; }
513
- .pui .pui-approval-heading { display: flex; align-items: center; gap: 10px; }
586
+ .pui .pui-inline-error { padding: var(--pui-space-md) var(--pui-space-md); font-size: var(--pui-text-small); line-height: var(--pui-line-height); background: var(--pui-error-surface); border: 1px solid var(--pui-error-border); color: var(--pui-error-text); border-radius: 9px; margin-bottom: var(--pui-space-md); white-space: pre-wrap; overflow-wrap: anywhere; }
587
+ .pui .pui-approval-card { padding: var(--pui-space-lg); border: 1px solid var(--pui-warning-border); background: var(--pui-warning-surface); border-radius: 12px; margin-bottom: var(--pui-space-md); }
588
+ .pui .pui-approval-heading { display: flex; align-items: center; gap: var(--pui-space-sm); }
514
589
  .pui .pui-approval-heading > .pui-icon { width: 21px; height: 21px; color: var(--pui-warning-strong); }
515
- .pui .pui-approval-heading strong { display: block; font-size: 13px; color: var(--pui-warning-strong); font-weight: 500; margin-bottom: 3px; }
516
- .pui .pui-approval-heading span:not(.pui-approval-badge) { font-size: 12px; color: var(--pui-warning-text); }
517
- .pui .pui-approval-badge { margin-left: auto; border: 1px solid var(--pui-warning-border); border-radius: 5px; padding: 4px 7px; font-family: ui-monospace, monospace; font-size: 11px; color: var(--pui-warning-text); max-width: 35%; overflow: hidden; text-overflow: ellipsis; }
518
- .pui .pui-approval-warning { margin: 12px 0 0; font-size: 12px; line-height: 1.5; color: var(--pui-warning-text); }
519
- .pui .pui-approval-scope { color: var(--pui-warning-text); font-size: 11px; line-height: 1.5; margin: 10px 0 12px; }
520
- .pui .pui-approval-card pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; line-height: 1.6; color: var(--pui-warning-text); padding: 11px; background: var(--pui-warning-code); border-radius: 6px; max-height: 160px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
521
- .pui .pui-approval-file { display: flex; align-items: baseline; gap: 10px; margin: 12px 0 8px; min-width: 0; font-size: 12px; }
590
+ .pui .pui-approval-heading strong { display: block; font-size: var(--pui-text-medium); color: var(--pui-warning-strong); font-weight: var(--pui-weight-strong); margin-bottom: var(--pui-space-xs); }
591
+ .pui .pui-approval-heading span:not(.pui-approval-badge) { font-size: var(--pui-text-small); color: var(--pui-warning-text); }
592
+ .pui .pui-approval-badge { margin-left: auto; border: 1px solid var(--pui-warning-border); border-radius: 5px; padding: var(--pui-space-xs) var(--pui-space-sm); font-family: var(--pui-font-code); font-size: var(--pui-text-small); color: var(--pui-warning-text); max-width: 35%; overflow: hidden; text-overflow: ellipsis; }
593
+ .pui .pui-approval-warning { margin: var(--pui-space-md) 0 0; font-size: var(--pui-text-small); line-height: var(--pui-line-height); color: var(--pui-warning-text); }
594
+ .pui .pui-approval-scope { color: var(--pui-warning-text); font-size: var(--pui-text-small); line-height: var(--pui-line-height); margin: var(--pui-space-sm) 0 var(--pui-space-md); }
595
+ .pui .pui-approval-card pre { font-family: var(--pui-font-code); font-size: var(--pui-text-small); line-height: var(--pui-line-height); color: var(--pui-warning-text); padding: var(--pui-space-md); background: var(--pui-warning-code); border-radius: 6px; max-height: 160px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
596
+ .pui .pui-approval-file { display: flex; align-items: baseline; gap: var(--pui-space-sm); margin: var(--pui-space-md) 0 var(--pui-space-sm); min-width: 0; font-size: var(--pui-text-small); }
522
597
  .pui .pui-approval-file code { overflow-wrap: anywhere; color: var(--pui-text); }
523
- .pui .pui-approval-card pre.pui-approval-diff { max-height: min(260px, 26vh); white-space: pre; overflow-wrap: normal; color: var(--pui-text); background: var(--pui-surface-code); border: 1px solid var(--pui-border); padding: 10px 0; }
524
- .pui .pui-diff-line { display: block; min-height: 1.6em; padding: 0 12px; }
598
+ .pui .pui-approval-card pre.pui-approval-diff { max-height: min(260px, 26vh); white-space: pre; overflow-wrap: normal; color: var(--pui-text); background: var(--pui-surface-code); border: 1px solid var(--pui-border); padding: var(--pui-space-sm) 0; }
599
+ .pui .pui-diff-line { display: block; min-height: 1.5em; padding: 0 var(--pui-space-md); }
525
600
  .pui .pui-diff-add { color: var(--pui-diff-add); background: var(--pui-diff-add-bg); }
526
601
  .pui .pui-diff-remove { color: var(--pui-diff-remove); background: var(--pui-diff-remove-bg); }
527
602
  .pui .pui-diff-meta { color: var(--pui-muted); }
528
- .pui .pui-approval-arguments { margin-top: 8px; font-size: 12px; }
603
+ .pui .pui-approval-arguments { margin-top: var(--pui-space-sm); font-size: var(--pui-text-small); }
529
604
  .pui .pui-approval-arguments summary { color: var(--pui-muted); cursor: pointer; }
530
- .pui .pui-preview-note { font-size: 12px; color: var(--pui-muted); margin: 10px 0; }
605
+ .pui .pui-preview-note { font-size: var(--pui-text-small); color: var(--pui-muted); margin: var(--pui-space-sm) 0; }
531
606
  .pui .pui-modal.pui-file-preview-modal { width: min(900px, calc(100% - 40px)); max-height: 85vh; }
532
607
  .pui .pui-file-preview-modal h2 { overflow-wrap: anywhere; }
533
- .pui .pui-file-preview-path { font-size: 12px; color: var(--pui-muted); overflow-wrap: anywhere; margin: 8px 0 18px; }
534
- .pui .pui-file-preview-body { max-height: 55vh; overflow: auto; border: 1px solid var(--pui-border); border-radius: 8px; padding: 18px; background: var(--pui-surface-subtle); }
608
+ .pui .pui-file-preview-path { font-size: var(--pui-text-small); color: var(--pui-muted); overflow-wrap: anywhere; margin: var(--pui-space-sm) 0 var(--pui-space-lg); }
609
+ .pui .pui-file-preview-body { max-height: 55vh; overflow: auto; border: 1px solid var(--pui-border); border-radius: 8px; padding: var(--pui-space-lg); background: var(--pui-surface-subtle); }
535
610
  .pui .pui-file-preview-body .pui-markdown { max-width: 100%; }
536
- .pui .pui-file-preview-text { margin: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; line-height: 1.6; white-space: pre; }
611
+ .pui .pui-file-preview-text { margin: 0; font-family: var(--pui-font-code); font-size: var(--pui-text-medium); line-height: var(--pui-line-height); white-space: pre; }
537
612
  .pui .pui-file-preview-image { display: block; max-width: 100%; max-height: 50vh; margin: auto; object-fit: contain; }
538
- .pui .pui-file-preview-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
539
- .pui .pui-approval-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
613
+ .pui .pui-file-preview-actions { display: flex; justify-content: flex-end; margin-top: var(--pui-space-lg); }
614
+ .pui .pui-approval-actions { display: flex; gap: var(--pui-space-sm); justify-content: flex-end; flex-wrap: wrap; }
540
615
  .pui .pui-secondary-button.pui-always-allow-button { color: var(--pui-warning-text); background: var(--pui-warning-surface); border-color: var(--pui-warning-border); }
541
616
  .pui .pui-secondary-button.pui-always-allow-button:hover { background: var(--pui-warning-hover); }
542
- .pui .pui-modal { width: min(500px, calc(100% - 40px)); max-height: calc(100dvh - 60px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; background: var(--pui-surface); border: 1px solid var(--pui-border-strong); border-radius: 15px; padding: 27px 28px 23px; color: var(--pui-text); box-shadow: var(--pui-modal-shadow); }
617
+ .pui .pui-modal { width: min(500px, calc(100% - 40px)); max-height: calc(100dvh - 60px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; background: var(--pui-surface); border: 1px solid var(--pui-border-strong); border-radius: 15px; padding: var(--pui-space-xl) var(--pui-space-xl) var(--pui-space-xl); color: var(--pui-text); box-shadow: var(--pui-modal-shadow); }
543
618
  .pui .pui-modal::-webkit-scrollbar { width: 6px; height: 6px; }
544
- .pui .pui-modal::-webkit-scrollbar-track { background: transparent; margin: 8px 0; }
619
+ .pui .pui-modal::-webkit-scrollbar-track { background: transparent; margin: var(--pui-space-sm) 0; }
545
620
  .pui .pui-modal::-webkit-scrollbar-thumb { background: var(--pui-scrollbar); border-radius: 999px; }
546
621
  .pui .pui-modal::-webkit-scrollbar-thumb:hover { background: var(--pui-muted); }
547
622
  .pui .pui-modal::backdrop { background: var(--pui-overlay); backdrop-filter: blur(5px); }
548
623
  .pui .pui-modal-heading { display: flex; align-items: center; justify-content: space-between; }
549
- .pui .pui-modal-heading .pui-eyebrow { font-size: 11px; letter-spacing: 1.5px; }
550
- .pui .pui-modal h2 { font-size: 24px; font-weight: 500; letter-spacing: -.6px; margin: 7px 0 0; }
624
+ .pui .pui-modal-heading .pui-eyebrow { font-size: var(--pui-text-small); letter-spacing: normal; }
625
+ .pui .pui-modal h2 { font-size: var(--pui-text-large); font-weight: var(--pui-weight-strong); letter-spacing: normal; margin: var(--pui-space-sm) 0 0; }
551
626
  .pui .pui-modal .pui-quiet-icon { align-self: flex-start; }
552
- .pui .pui-modal-description { font-size: 12px; color: var(--pui-muted); line-height: 1.5; margin: 18px 0 23px; }
553
- .pui .pui-modal-description strong { color: var(--pui-text); font-weight: 500; }
554
- .pui .pui-full-access-explanation { display: flex; align-items: flex-start; gap: 12px; padding: 15px; background: var(--pui-warning-surface); border: 1px solid var(--pui-warning-border); border-radius: 9px; color: var(--pui-warning-text); }
555
- .pui .pui-full-access-explanation > .pui-icon { width: 21px; height: 21px; margin-top: 1px; color: var(--pui-warning-text); }
556
- .pui .pui-full-access-explanation strong { font-size: 13px; font-weight: 500; color: var(--pui-warning-strong); }
557
- .pui .pui-full-access-explanation p { font-size: 12px; line-height: 1.5; margin: 9px 0 0; }
558
- .pui .pui-permission-revoke-note { font-size: 12px; line-height: 1.5; color: var(--pui-muted); margin: 17px 0 0; }
627
+ .pui .pui-modal-description { font-size: var(--pui-text-medium); color: var(--pui-muted); line-height: var(--pui-line-height); margin: var(--pui-space-lg) 0 var(--pui-space-xl); }
628
+ .pui .pui-modal-description strong { color: var(--pui-text); font-weight: var(--pui-weight-strong); }
629
+ .pui .pui-full-access-explanation { display: flex; align-items: flex-start; gap: var(--pui-space-md); padding: var(--pui-space-lg); background: var(--pui-warning-surface); border: 1px solid var(--pui-warning-border); border-radius: 9px; color: var(--pui-warning-text); }
630
+ .pui .pui-full-access-explanation > .pui-icon { width: 21px; height: 21px; margin-top: var(--pui-space-xs); color: var(--pui-warning-text); }
631
+ .pui .pui-full-access-explanation strong { font-size: var(--pui-text-medium); font-weight: var(--pui-weight-strong); color: var(--pui-warning-strong); }
632
+ .pui .pui-full-access-explanation p { font-size: var(--pui-text-small); line-height: var(--pui-line-height); margin: var(--pui-space-sm) 0 0; }
633
+ .pui .pui-permission-revoke-note { font-size: var(--pui-text-small); line-height: var(--pui-line-height); color: var(--pui-muted); margin: var(--pui-space-lg) 0 0; }
559
634
  .pui .pui-primary-button.pui-full-access-confirm { background: var(--pui-warning-action); color: var(--pui-warning-foreground); }
560
635
  .pui .pui-primary-button.pui-full-access-confirm:hover { background: var(--pui-warning-action-hover); }
561
- .pui .pui-field-label { display: block; font-size: 12px; color: var(--pui-text); margin: 20px 0 9px; }
562
- .pui .pui-modal input { background: var(--pui-surface-input); border: 1px solid var(--pui-border); border-radius: 7px; padding: 11px 12px; font-size: 13px; color: var(--pui-text); outline: none; width: 100%; }
563
- .pui .pui-modal input:focus { border-color: var(--pui-accent); box-shadow: 0 0 0 2px var(--pui-focus-ring); }
564
- .pui .pui-modal input::placeholder { color: var(--pui-muted); font-size: 12px; }
636
+ .pui .pui-field-label { display: block; font-size: var(--pui-text-small); color: var(--pui-text); margin: var(--pui-space-lg) 0 var(--pui-space-sm); }
637
+ .pui .pui-modal input { background: var(--pui-surface-input); border: 1px solid var(--pui-border); border-radius: 7px; padding: var(--pui-space-md) var(--pui-space-md); font-size: var(--pui-text-medium); color: var(--pui-text); outline: none; width: 100%; }
638
+ .pui .pui-modal input::placeholder { color: var(--pui-muted); font-size: var(--pui-text-small); }
565
639
  .pui .pui-input-with-icon { position: relative; }
566
640
  .pui .pui-input-with-icon .pui-icon { position: absolute; left: 11px; top: 11px; width: 16px; height: 16px; color: var(--pui-muted); }
567
- .pui .pui-input-with-icon input { padding-left: 36px; }
568
- .pui .pui-configured-badge { font-size: 11px; color: var(--pui-muted); padding: 3px 5px; margin-left: 7px; border: 1px solid var(--pui-border); border-radius: 4px; }
569
- .pui .pui-field-hint { font-size: 12px; line-height: 1.5; color: var(--pui-muted); margin: 9px 0 0; }
570
- .pui .pui-modal-workspaces { display: flex; flex-direction: column; gap: 7px; }
571
- .pui .pui-modal-workspace { width: 100%; display: flex; align-items: center; gap: 12px; padding: 13px 12px; background: var(--pui-surface-subtle); border: 1px solid var(--pui-border); text-align: left; border-radius: 8px; }
641
+ .pui .pui-input-with-icon input { padding-left: var(--pui-space-xl); }
642
+ .pui .pui-configured-badge { font-size: var(--pui-text-small); color: var(--pui-muted); padding: var(--pui-space-xs) var(--pui-space-sm); margin-left: var(--pui-space-sm); border: 1px solid var(--pui-border); border-radius: 4px; }
643
+ .pui .pui-field-hint { font-size: var(--pui-text-small); line-height: var(--pui-line-height); color: var(--pui-muted); margin: var(--pui-space-sm) 0 0; }
644
+ .pui .pui-modal-workspaces { display: flex; flex-direction: column; gap: var(--pui-space-sm); }
645
+ .pui .pui-modal-workspace { width: 100%; display: flex; align-items: center; gap: var(--pui-space-md); padding: var(--pui-space-md) var(--pui-space-md); background: var(--pui-surface-subtle); border: 1px solid var(--pui-border); text-align: left; border-radius: 8px; }
572
646
  .pui .pui-modal-workspace:hover { background: var(--pui-surface-hover); }
573
647
  .pui .pui-modal-workspace > .pui-icon:first-child { width: 18px; height: 18px; color: var(--pui-muted); }
574
648
  .pui .pui-modal-workspace > .pui-icon:last-child { width: 14px; height: 14px; margin-left: auto; color: var(--pui-muted-tonal); }
575
649
  .pui .pui-modal-workspace span { min-width: 0; }
576
- .pui .pui-modal-workspace strong { display: block; font-weight: 500; color: var(--pui-text); font-size: 13px; margin-bottom: 4px; }
577
- .pui .pui-modal-workspace small { display: block; font-size: 12px; color: var(--pui-muted-tonal); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
578
- .pui .pui-workspace-add { margin-top: 20px; }
579
- .pui .pui-picker-button { display: flex; gap: 9px; align-items: center; justify-content: center; width: 100%; border: 1px dashed var(--pui-border); background: var(--pui-surface-subtle); color: var(--pui-text); border-radius: 8px; padding: 14px; font-size: 13px; }
650
+ .pui .pui-modal-workspace strong { display: block; font-weight: var(--pui-weight-strong); color: var(--pui-text); font-size: var(--pui-text-medium); margin-bottom: var(--pui-space-xs); }
651
+ .pui .pui-modal-workspace small { display: block; font-size: var(--pui-text-small); color: var(--pui-muted-tonal); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
652
+ .pui .pui-workspace-add { margin-top: var(--pui-space-lg); }
653
+ .pui .pui-picker-button { display: flex; gap: var(--pui-space-sm); align-items: center; justify-content: center; width: 100%; border: 1px dashed var(--pui-border); background: var(--pui-surface-subtle); color: var(--pui-text); border-radius: 8px; padding: var(--pui-space-md); font-size: var(--pui-text-medium); }
580
654
  .pui .pui-picker-button:hover { background: var(--pui-surface-hover); }
581
655
  .pui .pui-picker-button .pui-icon { width: 17px; height: 17px; }
582
- .pui .pui-path-divider { display: flex; align-items: center; gap: 10px; color: var(--pui-muted); font-size: 11px; margin: 20px 0; }
656
+ .pui .pui-path-divider { display: flex; align-items: center; gap: var(--pui-space-sm); color: var(--pui-muted); font-size: var(--pui-text-small); margin: var(--pui-space-lg) 0; }
583
657
  .pui .pui-path-divider::before, .pui .pui-path-divider::after { content: ''; height: 1px; background: var(--pui-border); flex: 1; }
584
658
 
585
- .pui .pui-appearance-select { display: block; width: 100%; padding: 11px 12px; border: 1px solid var(--pui-border-strong); border-radius: 7px; background: var(--pui-surface-input); color: var(--pui-text); font-size: 13px; cursor: pointer; }
586
- .pui .pui-appearance-select:focus { outline: none; border-color: var(--pui-accent); box-shadow: 0 0 0 2px var(--pui-focus-ring); }
659
+ .pui .pui-appearance-select { display: block; width: 100%; padding: var(--pui-space-md) var(--pui-space-md); border: 1px solid var(--pui-border-strong); border-radius: 7px; background: var(--pui-surface-input); color: var(--pui-text); font-size: var(--pui-text-medium); cursor: pointer; }
587
660
  .pui .pui-appearance-select option { background: var(--pui-surface); color: var(--pui-text); }
588
- .pui .pui-appearance-hint { margin: 9px 0 0; color: var(--pui-muted); font-size: 12px; line-height: 1.5; }
661
+ .pui .pui-appearance-hint { margin: var(--pui-space-sm) 0 0; color: var(--pui-muted); font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
589
662
 
590
- .pui .pui-history-search { display: flex; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid var(--pui-border); border-radius: 7px; background: var(--pui-surface); color: var(--pui-muted-tonal); margin: 0 1px 14px; }
663
+ .pui .pui-history-search { display: flex; align-items: center; gap: var(--pui-space-sm); padding: var(--pui-space-sm) var(--pui-space-sm); border: 1px solid var(--pui-border); border-radius: 7px; background: var(--pui-surface); color: var(--pui-muted-tonal); margin: 0 var(--pui-space-xs) var(--pui-space-md); }
591
664
  .pui .pui-history-search .pui-icon { width: 13px; height: 13px; }
592
- .pui .pui-history-search input { min-width: 0; width: 100%; border: 0; outline: none; padding: 2px 0; font-size: 12px; background: transparent; color: var(--pui-text); }
665
+ .pui .pui-history-search input { min-width: 0; width: 100%; border: 0; outline: none; padding: var(--pui-space-xs) 0; font-size: var(--pui-text-small); background: transparent; color: var(--pui-text); }
593
666
  .pui .pui-history-search input::placeholder { color: var(--pui-muted); }
594
667
  .pui .pui-history-search:focus-within { border-color: var(--pui-accent); }
595
- .pui .pui-sidebar-bottom { padding-top: 12px; }
596
- .pui .pui-sidebar-bottom .pui-settings-button { padding-top: 10px; padding-bottom: 10px; }
597
- .pui .pui-sidebar-conversation-menu { position: fixed; z-index: 6; display: flex; flex-direction: column; min-width: 180px; padding: 5px; border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface); box-shadow: var(--pui-shadow); }
598
- .pui .pui-sidebar-conversation-menu button { background: transparent; padding: 9px 11px; color: var(--pui-text); border-radius: 4px; text-align: left; font-size: 12px; }
668
+ .pui .pui-sidebar-bottom { padding-top: var(--pui-space-md); }
669
+ .pui .pui-sidebar-bottom .pui-settings-button { padding-top: var(--pui-space-sm); padding-bottom: var(--pui-space-sm); }
670
+ .pui .pui-sidebar-conversation-menu { position: fixed; z-index: 6; display: flex; flex-direction: column; min-width: 180px; padding: var(--pui-space-sm); border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface); box-shadow: var(--pui-shadow); }
671
+ .pui .pui-sidebar-conversation-menu button { background: transparent; padding: var(--pui-space-sm) var(--pui-space-md); color: var(--pui-text); border-radius: 4px; text-align: left; font-size: var(--pui-text-small); }
599
672
  .pui .pui-sidebar-conversation-menu button:hover, .pui .pui-sidebar-conversation-menu button:focus-visible { background: var(--pui-surface-hover); }
600
673
  .pui .pui-composer-context { flex-wrap: wrap; }
601
- .pui .pui-queued-messages { padding: 12px 14px; margin-bottom: 10px; border: 1px solid var(--pui-border); background: var(--pui-surface); border-radius: 9px; max-height: 180px; overflow: auto; scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; }
602
- .pui .pui-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--pui-text); font-size: 12px; font-weight: 500; margin: 0 0 10px; }
603
- .pui .pui-queued-message { display: flex; gap: 9px; align-items: center; color: var(--pui-text); font-size: 12px; line-height: 1.6; }
604
- .pui .pui-queued-message + .pui-queued-message { margin-top: 8px; }
605
- .pui .pui-queue-badge { flex-shrink: 0; color: var(--pui-muted-tonal); background: var(--pui-surface-subtle); border-radius: 4px; padding: 1px 6px; font-size: 11px; }
674
+ .pui .pui-queued-messages { padding: var(--pui-space-md) var(--pui-space-md); margin-bottom: var(--pui-space-sm); border: 1px solid var(--pui-border); background: var(--pui-surface); border-radius: 9px; max-height: 180px; overflow: auto; scrollbar-width: thin; scrollbar-color: var(--pui-scrollbar) transparent; }
675
+ .pui .pui-section-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--pui-space-sm); color: var(--pui-text); font-size: var(--pui-text-small); font-weight: var(--pui-weight-strong); margin: 0 0 var(--pui-space-sm); }
676
+ .pui .pui-queued-message { display: flex; gap: var(--pui-space-sm); align-items: center; color: var(--pui-text); font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
677
+ .pui .pui-queued-message + .pui-queued-message { margin-top: var(--pui-space-sm); }
678
+ .pui .pui-queue-badge { flex-shrink: 0; color: var(--pui-muted-tonal); background: var(--pui-surface-subtle); border-radius: 4px; padding: var(--pui-space-xs) var(--pui-space-sm); font-size: var(--pui-text-small); }
606
679
  .pui .pui-queued-message-content { flex: 1; min-width: 0; }
607
680
  .pui .pui-queued-message-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-wrap; overflow-wrap: anywhere; }
608
- .pui .pui-queued-message-actions { display: flex; gap: 5px; flex-shrink: 0; align-items: center; }
681
+ .pui .pui-queued-message-actions { display: flex; gap: var(--pui-space-sm); flex-shrink: 0; align-items: center; }
609
682
  .pui .pui-queued-message-actions .pui-icon { width: 15px; height: 15px; }
610
- .pui .pui-queue-steer { gap: 5px; font-size: 12px; }
683
+ .pui .pui-queue-steer { gap: var(--pui-space-sm); font-size: var(--pui-text-small); }
611
684
  .pui .pui-artifacts-control { position: relative; flex-shrink: 0; }
612
- .pui .pui-artifacts-toggle { min-width: 36px; height: 36px; gap: 5px; padding: 8px; border-radius: 9px; }
685
+ .pui .pui-artifacts-toggle { min-width: 36px; height: 36px; gap: var(--pui-space-sm); padding: var(--pui-space-sm); border-radius: 9px; }
613
686
  .pui .pui-artifacts-toggle[aria-expanded="true"] { color: var(--pui-text); background: var(--pui-surface-selected); }
614
- .pui .pui-artifacts-count { font-size: 11px; font-weight: 500; }
615
- .pui .pui-artifacts-panel { position: absolute; z-index: 6; top: calc(100% + 12px); right: 0; width: min(560px, calc(100vw - 34px)); max-height: calc(100dvh - 110px); display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--pui-border); border-radius: 16px; background: var(--pui-surface); color: var(--pui-text); box-shadow: var(--pui-modal-shadow); }
616
- .pui .pui-artifacts-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--pui-border); }
617
- .pui .pui-artifacts-heading h2 { margin: 0; font-size: 14px; font-weight: 500; }
618
- .pui .pui-artifacts-heading h2 span { margin-left: 8px; font-size: 11px; font-weight: 400; color: var(--pui-muted); }
687
+ .pui .pui-artifacts-count { font-size: var(--pui-text-small); font-weight: var(--pui-weight-strong); }
688
+ .pui .pui-artifacts-panel { position: absolute; z-index: 6; top: calc(100% + 12px); right: 0; width: min(560px, calc(100vw - 34px)); max-height: calc(100dvh - 110px); display: flex; flex-direction: column; padding: var(--pui-space-lg); border: 1px solid var(--pui-border); border-radius: 16px; background: var(--pui-surface); color: var(--pui-text); box-shadow: var(--pui-modal-shadow); }
689
+ .pui .pui-artifacts-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--pui-space-md); padding-bottom: var(--pui-space-md); border-bottom: 1px solid var(--pui-border); }
690
+ .pui .pui-artifacts-heading h2 { margin: 0; font-size: var(--pui-text-large); font-weight: var(--pui-weight-strong); }
691
+ .pui .pui-artifacts-heading h2 span { margin-left: var(--pui-space-sm); font-size: var(--pui-text-small); font-weight: var(--pui-weight-regular); color: var(--pui-muted); }
619
692
  .pui .pui-artifacts-heading .pui-quiet-icon { width: 28px; height: 28px; }
620
- .pui .pui-artifacts-content { min-height: 0; overflow-y: auto; padding-top: 12px; scrollbar-width: thin; }
621
- .pui .pui-artifacts-status { margin: 12px 0 0; font-size: 12px; color: var(--pui-muted); }
693
+ .pui .pui-artifacts-content { min-height: 0; overflow-y: auto; padding-top: var(--pui-space-md); scrollbar-width: thin; }
694
+ .pui .pui-artifacts-status { margin: var(--pui-space-md) 0 0; font-size: var(--pui-text-small); color: var(--pui-muted); }
622
695
  .pui .pui-artifacts-panel .pui-file-card { flex-wrap: wrap; }
623
696
  .pui .pui-artifacts-panel .pui-file-info strong { overflow-wrap: anywhere; }
624
- .pui .pui-artifacts-panel .pui-file-actions { width: 100%; margin-left: 28px; }
625
- .pui .pui-file-card { display: flex; align-items: flex-start; gap: 11px; padding: 12px; border: 1px solid var(--pui-border); background: var(--pui-surface-subtle); border-radius: 8px; }
626
- .pui .pui-file-card + .pui-file-card { margin-top: 8px; }
627
- .pui .pui-file-card > .pui-icon { width: 17px; height: 17px; color: var(--pui-muted); margin-top: 2px; }
697
+ .pui .pui-artifacts-panel .pui-file-actions { width: 100%; margin-left: var(--pui-space-xl); }
698
+ .pui .pui-file-card { display: flex; align-items: flex-start; gap: var(--pui-space-md); padding: var(--pui-space-md); border: 1px solid var(--pui-border); background: var(--pui-surface-subtle); border-radius: 8px; }
699
+ .pui .pui-file-card + .pui-file-card { margin-top: var(--pui-space-sm); }
700
+ .pui .pui-file-card > .pui-icon { width: 17px; height: 17px; color: var(--pui-muted); margin-top: var(--pui-space-xs); }
628
701
  .pui .pui-file-info { min-width: 0; flex: 1; }
629
- .pui .pui-file-info strong { display: block; color: var(--pui-text); font-size: 13px; font-weight: 500; margin-bottom: 5px; }
630
- .pui .pui-file-info p { color: var(--pui-muted-tonal); font-size: 12px; line-height: 1.5; margin: 5px 0; }
631
- .pui .pui-file-path { display: block; color: var(--pui-muted-tonal); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; user-select: text; }
702
+ .pui .pui-file-info strong { display: block; color: var(--pui-text); font-size: var(--pui-text-medium); font-weight: var(--pui-weight-strong); margin-bottom: var(--pui-space-sm); }
703
+ .pui .pui-file-info p { color: var(--pui-muted-tonal); font-size: var(--pui-text-small); line-height: var(--pui-line-height); margin: var(--pui-space-sm) 0; }
704
+ .pui .pui-file-path { display: block; color: var(--pui-muted-tonal); font-family: var(--pui-font-code); font-size: var(--pui-text-small); line-height: var(--pui-line-height); overflow-wrap: anywhere; user-select: text; }
632
705
  .pui .pui-feature-modal { width: min(660px, calc(100% - 40px)); }
633
- .pui .pui-feature-hint { color: var(--pui-muted); font-size: 12px; line-height: 1.5; margin: 8px 0; }
634
- .pui .pui-resource-section { margin-top: 22px; }
635
- .pui .pui-resource-section h3 { color: var(--pui-text); font-size: 14px; font-weight: 500; margin: 0 0 12px; }
636
- .pui .pui-resource-card { border: 1px solid var(--pui-border); background: var(--pui-surface-subtle); border-radius: 8px; margin: 0 0 9px; overflow: hidden; }
706
+ .pui .pui-feature-hint { color: var(--pui-muted); font-size: var(--pui-text-small); line-height: var(--pui-line-height); margin: var(--pui-space-sm) 0; }
707
+ .pui .pui-resource-section { margin-top: var(--pui-space-xl); }
708
+ .pui .pui-resource-section h3 { color: var(--pui-text); font-size: var(--pui-text-large); font-weight: var(--pui-weight-strong); margin: 0 0 var(--pui-space-md); }
709
+ .pui .pui-resource-card { border: 1px solid var(--pui-border); background: var(--pui-surface-subtle); border-radius: 8px; margin: 0 0 var(--pui-space-sm); overflow: hidden; }
637
710
  .pui .pui-resource-card .pui-file-card { border: 0; border-radius: 0; }
638
711
  .pui .pui-resource-preview { border-top: 1px solid var(--pui-border); }
639
- .pui .pui-resource-preview summary { padding: 9px 12px; font-size: 12px; color: var(--pui-muted-tonal); cursor: pointer; }
640
- .pui .pui-resource-preview pre { padding: 12px; margin: 0; max-height: 220px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--pui-text); font-size: 12px; line-height: 1.5; }
641
- .pui .pui-resource-diagnostics p { font-size: 12px; color: var(--pui-warning-text); line-height: 1.5; overflow-wrap: anywhere; }
642
- .pui .pui-connection-card { padding: 13px; border: 1px solid var(--pui-border); border-radius: 9px; margin-bottom: 9px; }
643
- .pui .pui-connection-card-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
644
- .pui .pui-connection-card-heading strong { color: var(--pui-text); font-size: 13px; font-weight: 500; }
645
- .pui .pui-connection-status { color: var(--pui-muted-tonal); font-size: 12px; line-height: 1.5; margin: 8px 0 12px; }
712
+ .pui .pui-resource-preview summary { padding: var(--pui-space-sm) var(--pui-space-md); font-size: var(--pui-text-small); color: var(--pui-muted-tonal); cursor: pointer; }
713
+ .pui .pui-resource-preview pre { padding: var(--pui-space-md); margin: 0; max-height: 220px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--pui-text); font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
714
+ .pui .pui-resource-diagnostics p { font-size: var(--pui-text-small); color: var(--pui-warning-text); line-height: var(--pui-line-height); overflow-wrap: anywhere; }
715
+ .pui .pui-connection-card { padding: var(--pui-space-md); border: 1px solid var(--pui-border); border-radius: 9px; margin-bottom: var(--pui-space-sm); }
716
+ .pui .pui-connection-card-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: var(--pui-space-sm); }
717
+ .pui .pui-connection-card-heading strong { color: var(--pui-text); font-size: var(--pui-text-medium); font-weight: var(--pui-weight-strong); }
718
+ .pui .pui-connection-status { color: var(--pui-muted-tonal); font-size: var(--pui-text-small); line-height: var(--pui-line-height); margin: var(--pui-space-sm) 0 var(--pui-space-md); }
646
719
  .pui .pui-connection-status.pui-is-error, .pui .pui-destructive-button { color: var(--pui-error-text); }
647
- .pui .pui-connection-editor { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--pui-border); }
648
- .pui .pui-feature-select, .pui .pui-modal textarea { display: block; width: 100%; border: 1px solid var(--pui-border); border-radius: 7px; padding: 11px 12px; background: var(--pui-surface-input); color: var(--pui-text); font-size: 13px; }
649
- .pui .pui-modal textarea { resize: vertical; min-height: 65px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; line-height: 1.6; }
720
+ .pui .pui-connection-editor { margin-top: var(--pui-space-xl); padding-top: var(--pui-space-lg); border-top: 1px solid var(--pui-border); }
721
+ .pui .pui-feature-select, .pui .pui-modal textarea { display: block; width: 100%; border: 1px solid var(--pui-border); border-radius: 7px; padding: var(--pui-space-md) var(--pui-space-md); background: var(--pui-surface-input); color: var(--pui-text); font-size: var(--pui-text-medium); }
722
+ .pui .pui-modal textarea { resize: vertical; min-height: 65px; font-family: var(--pui-font-code); line-height: var(--pui-line-height); }
650
723
  .pui .pui-modal textarea.pui-secret-field { -webkit-text-security: disc; }
651
724
  .pui .pui-modal textarea.pui-secret-field.pui-revealed { -webkit-text-security: none; }
652
- .pui .pui-secret-label { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 20px 0 var(--pui-field-gap); }
725
+ .pui .pui-secret-label { display: flex; align-items: center; justify-content: space-between; gap: var(--pui-space-sm); margin: var(--pui-space-lg) 0 var(--pui-field-gap); }
653
726
  .pui .pui-secret-label .pui-field-label { margin: 0; }
654
- .pui .pui-feature-select:focus, .pui .pui-modal textarea:focus { outline: none; border-color: var(--pui-accent); box-shadow: 0 0 0 2px var(--pui-focus-ring); }
655
727
  .pui .pui-feature-select option { color: var(--pui-text); background: var(--pui-surface); }
656
- .pui .pui-checkbox-field { display: flex; align-items: center; gap: 8px; color: var(--pui-text); font-size: 12px; margin-top: 17px; line-height: 1.6; }
728
+ .pui .pui-checkbox-field { display: flex; align-items: center; gap: var(--pui-space-sm); color: var(--pui-text); font-size: var(--pui-text-small); margin-top: var(--pui-space-lg); line-height: var(--pui-line-height); }
657
729
  .pui .pui-modal .pui-checkbox-field input { width: 15px; height: 15px; padding: 0; margin: 0; accent-color: var(--pui-accent); }
658
730
 
659
731
  .pui .pui-mobile-menu, .pui .pui-sidebar-scrim { display: none; }
@@ -661,130 +733,127 @@
661
733
  @keyframes pui-pulse { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
662
734
  @media (max-width: 1000px) {
663
735
  .pui { --pui-sidebar-width: 230px; }
664
- .pui .pui-sidebar { padding-left: 14px; padding-right: 14px; }
665
- .pui .pui-topbar { padding: 0 25px; }
736
+ .pui .pui-sidebar { padding-left: var(--pui-space-md); padding-right: var(--pui-space-md); }
737
+ .pui .pui-topbar { padding: 0 var(--pui-space-xl); }
666
738
  .pui .pui-composer-region { width: calc(100% - 50px); }
667
- .pui .pui-welcome h1 { font-size: 30px; }
668
- .pui .pui-welcome { padding-top: 65px; }
739
+ .pui .pui-welcome { padding-top: var(--pui-space-xl); }
669
740
  }
670
741
  @media (max-width: 720px) {
671
742
  .pui .pui-app { min-height: 420px; }
672
743
  .pui .pui-sidebar { position: fixed; z-index: 5; height: 100dvh; width: 260px; left: -260px; transition: left .2s; }
673
744
  .pui .pui-sidebar.pui-open { left: 0; }
674
745
  .pui .pui-sidebar-scrim.pui-visible { display: block; position: fixed; inset: 0; background: var(--pui-overlay); z-index: 4; }
675
- .pui .pui-mobile-menu { display: inline-flex; margin-right: 12px; }
676
- .pui .pui-topbar { height: 64px; padding: 0 17px; }
677
- .pui .pui-breadcrumb { font-size: 12px; flex: 1; gap: 7px; }
746
+ .pui .pui-mobile-menu { display: inline-flex; margin-right: var(--pui-space-md); }
747
+ .pui .pui-topbar { height: 64px; padding: 0 var(--pui-space-lg); }
748
+ .pui .pui-breadcrumb { font-size: var(--pui-text-small); flex: 1; gap: var(--pui-space-sm); }
678
749
  .pui .pui-breadcrumb span { max-width: 110px; }
679
750
  .pui .pui-breadcrumb-current, .pui .pui-breadcrumb-chevron { display: none; }
680
751
  .pui .pui-breadcrumb > .pui-icon:first-child { display: none; }
681
752
  .pui .pui-file-card { flex-wrap: wrap; }
682
- .pui .pui-file-card .pui-file-actions { margin-left: 28px; }
683
- .pui .pui-feature-toolbar .pui-secondary-button { font-size: 11px; }
684
- .pui .pui-chat-scroll { padding: 0 19px; }
685
- .pui .pui-welcome { padding-top: 47px; padding-bottom: 25px; }
686
- .pui .pui-welcome-mark { width: 52px; height: 52px; border-radius: 14px; margin-bottom: 21px; }
687
- .pui .pui-welcome-mark .pui-logo-mark { width: 27px; height: 27px; }
688
- .pui .pui-welcome h1 { font-size: 27px; letter-spacing: -.9px; }
689
- .pui .pui-welcome-description { font-size: 12px; }
690
- .pui .pui-setup-card { margin-top: 25px; padding: 15px 14px 4px; }
691
- .pui .pui-setup-step small { max-width: 230px; font-size: 11px; }
692
- .pui .pui-setup-card-heading { font-size: 12px; }
693
- .pui .pui-setup-step strong { font-size: 12px; }
753
+ .pui .pui-file-card .pui-file-actions { margin-left: var(--pui-space-xl); }
754
+ .pui .pui-feature-toolbar .pui-secondary-button { font-size: var(--pui-text-small); }
755
+ .pui .pui-chat-scroll { padding: 0 var(--pui-space-lg); }
756
+ .pui .pui-welcome { padding-top: var(--pui-space-xl); padding-bottom: var(--pui-space-xl); }
757
+ .pui .pui-welcome-mark { width: 52px; height: 52px; border-radius: 14px; margin-bottom: var(--pui-space-xl); }
758
+ .pui .pui-welcome-mark .pui-logo-mark, .pui .pui-welcome-mark .pui-app-brand-image { width: 27px; height: 27px; }
759
+ .pui .pui-setup-card { margin-top: var(--pui-space-xl); padding: var(--pui-space-lg) var(--pui-space-md) var(--pui-space-xs); }
760
+ .pui .pui-setup-step small { max-width: 230px; font-size: var(--pui-text-small); }
761
+ .pui .pui-setup-card-heading { font-size: var(--pui-text-small); }
762
+ .pui .pui-setup-step strong { font-size: var(--pui-text-small); }
694
763
  .pui .pui-step-number { width: 25px; height: 25px; }
695
- .pui .pui-welcome-footnote { margin-top: 20px; }
696
- .pui .pui-suggestions { gap: 7px; margin-top: 22px; }
697
- .pui .pui-suggestions button { font-size: 11px; padding: 10px; }
698
- .pui .pui-composer-region { width: calc(100% - 28px); padding-top: 10px; padding-bottom: 12px; }
699
- .pui .pui-composer { padding: 14px 13px 10px; border-radius: 12px; }
700
- .pui .pui-composer textarea { font-size: 14px; }
764
+ .pui .pui-welcome-footnote { margin-top: var(--pui-space-lg); }
765
+ .pui .pui-suggestions { gap: var(--pui-space-sm); margin-top: var(--pui-space-xl); }
766
+ .pui .pui-suggestions button { font-size: var(--pui-text-small); padding: var(--pui-space-sm); }
767
+ .pui .pui-composer-region { width: calc(100% - 28px); padding-top: var(--pui-space-sm); padding-bottom: var(--pui-space-md); }
768
+ .pui .pui-composer { padding: var(--pui-space-md) var(--pui-space-md) var(--pui-space-sm); border-radius: 12px; }
769
+ .pui .pui-composer textarea { font-size: var(--pui-text-medium); }
701
770
  .pui .pui-composer-toolbar { align-items: flex-end; }
702
- .pui .pui-composer-context { flex-wrap: wrap; gap: 7px; }
703
- .pui .pui-permission-control select { font-size: 12px; max-width: 150px; }
771
+ .pui .pui-composer-context { flex-wrap: wrap; gap: var(--pui-space-sm); }
772
+ .pui .pui-permission-control select { font-size: var(--pui-text-small); max-width: 150px; }
704
773
  .pui .pui-keyboard-hint { display: none; }
705
- .pui .pui-composer-note { font-size: 11px; margin-top: 9px; line-height: 1.6; }
706
- .pui .pui-messages { padding-top: 23px; }
707
- .pui .pui-message { margin-bottom: 20px; }
774
+ .pui .pui-composer-note { font-size: var(--pui-text-small); margin-top: var(--pui-space-sm); line-height: var(--pui-line-height); }
775
+ .pui .pui-messages { padding-top: var(--pui-space-xl); }
776
+ .pui .pui-message { margin-bottom: var(--pui-space-lg); }
708
777
  .pui .pui-user-message .pui-message-content { max-width: 90%; }
709
- .pui .pui-markdown { font-size: 14px; }
710
- .pui .pui-user-text { font-size: 14px; }
778
+ .pui .pui-markdown { font-size: var(--pui-text-medium); }
779
+ .pui .pui-user-text { font-size: var(--pui-text-medium); }
711
780
  .pui .pui-tool-group > summary { flex-wrap: wrap; }
712
- .pui .pui-approval-card { padding: 12px; }
713
- .pui .pui-approval-heading strong { font-size: 12px; }
714
- .pui .pui-approval-heading span:not(.pui-approval-badge) { font-size: 11px; }
781
+ .pui .pui-approval-card { padding: var(--pui-space-md); }
782
+ .pui .pui-approval-heading strong { font-size: var(--pui-text-small); }
783
+ .pui .pui-approval-heading span:not(.pui-approval-badge) { font-size: var(--pui-text-small); }
715
784
  .pui .pui-approval-heading > .pui-icon { width: 18px; height: 18px; }
716
- .pui .pui-primary-button, .pui .pui-secondary-button { font-size: 12px; padding: 9px 12px; }
717
- .pui .pui-modal { padding: 24px 21px 21px; }
785
+ .pui .pui-modal { padding: var(--pui-space-xl) var(--pui-space-xl) var(--pui-space-xl); }
718
786
  .pui .pui-modal-description br { display: none; }
719
787
  }
720
788
  @media (prefers-reduced-motion: reduce) {
721
789
  .pui *, .pui *::before, .pui *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
722
790
  }
723
791
 
724
- .pui .pui-run-status { margin: 0 4px 10px; color: var(--pui-muted); font-size: 13px; }
725
- .pui .pui-run-status summary { cursor: pointer; padding: 6px 0; }
726
- .pui [id$="run-status-details"] { max-height: min(50vh, 440px); overflow-y: auto; overflow-x: hidden; padding-right: 6px; scrollbar-width: thin; }
727
- .pui .pui-run-status dl { display: grid; grid-template-columns: 1fr auto; gap: 7px 20px; margin: 10px 0; }
792
+ .pui .pui-run-status { margin: 0 var(--pui-space-xs) var(--pui-space-sm); color: var(--pui-muted); font-size: var(--pui-text-medium); }
793
+ .pui .pui-run-status summary { cursor: pointer; padding: var(--pui-space-sm) 0; }
794
+ .pui [id$="run-status-details"] { max-height: min(50vh, 440px); overflow-y: auto; overflow-x: hidden; padding-right: var(--pui-space-sm); scrollbar-width: thin; }
795
+ .pui .pui-run-status dl { display: grid; grid-template-columns: 1fr auto; gap: var(--pui-space-sm) var(--pui-space-lg); margin: var(--pui-space-sm) 0; }
728
796
  .pui .pui-run-status dd { margin: 0; text-align: right; }
729
- .pui .pui-run-status p { line-height: 1.5; max-width: 720px; }
730
- .pui .pui-task-failure { border: 1px solid var(--pui-border); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; background: var(--pui-surface); font-size: 14px; }
731
- .pui .pui-task-failure p { margin: 7px 0 12px; line-height: 1.5; }
732
- .pui .pui-task-failure > div { display: flex; gap: 12px; align-items: center; }
733
- .pui .pui-connection-test { border-top: 1px solid var(--pui-border); margin-top: 16px; padding-top: 16px; }
734
- .pui .pui-connection-test [role=status] { font-size: 14px; line-height: 1.5; margin-top: 8px; }
797
+ .pui .pui-run-status p { line-height: var(--pui-line-height); max-width: 720px; }
798
+ .pui .pui-task-failure { border: 1px solid var(--pui-border); border-radius: 12px; padding: var(--pui-space-md) var(--pui-space-lg); margin-bottom: var(--pui-space-md); background: var(--pui-surface); font-size: var(--pui-text-medium); }
799
+ .pui .pui-task-failure p { margin: var(--pui-space-sm) 0 var(--pui-space-md); line-height: var(--pui-line-height); }
800
+ .pui .pui-task-failure > div { display: flex; gap: var(--pui-space-md); align-items: center; }
801
+ .pui .pui-connection-test { border-top: 1px solid var(--pui-border); margin-top: var(--pui-space-lg); padding-top: var(--pui-space-lg); }
802
+ .pui .pui-connection-test [role=status] { font-size: var(--pui-text-medium); line-height: var(--pui-line-height); margin-top: var(--pui-space-sm); }
735
803
  .pui .pui-test-success { color: var(--pui-accent); }
736
- .pui .pui-diagnostics-setting { border-top: 1px solid var(--pui-border); margin-top: 16px; padding-top: 12px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--pui-muted); }
804
+ .pui .pui-diagnostics-setting { border-top: 1px solid var(--pui-border); margin-top: var(--pui-space-lg); padding-top: var(--pui-space-md); display: flex; flex-direction: column; gap: var(--pui-space-sm); align-items: flex-start; font-size: var(--pui-text-medium); color: var(--pui-muted); }
737
805
 
738
806
  .pui .pui-attach-images { flex-shrink: 0; }
739
- .pui .pui-draft-images { display: flex; gap: 10px; overflow-x: auto; padding: 4px 0 14px; }
807
+ .pui .pui-draft-images { display: flex; gap: var(--pui-space-sm); overflow-x: auto; padding: var(--pui-space-xs) 0 var(--pui-space-md); }
740
808
  .pui .pui-draft-image { flex: 0 0 104px; position: relative; margin: 0; }
741
809
  .pui .pui-draft-image img { display: block; width: 104px; height: 80px; object-fit: cover; border-radius: 9px; border: 1px solid var(--pui-border); background: var(--pui-surface-subtle); }
742
- .pui .pui-draft-image figcaption { font-size: 11px; color: var(--pui-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-top: 5px; }
743
- .pui .pui-remove-image { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--pui-surface); color: var(--pui-text); border: 1px solid var(--pui-border); }
810
+ .pui .pui-draft-image figcaption { font-size: var(--pui-text-small); color: var(--pui-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding-top: var(--pui-space-sm); }
811
+ .pui .pui-remove-image { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; padding: 0; line-height: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--pui-surface); color: var(--pui-text); border: 1px solid var(--pui-border); }
744
812
  .pui .pui-remove-image .pui-icon { width: 12px; height: 12px; }
745
813
  .pui .pui-composer.pui-drag-images { outline: 2px solid var(--pui-accent); outline-offset: 3px; }
746
- .pui .pui-image-guidance { text-align: left; line-height: 1.5; }
747
- .pui .pui-message-images { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin-top: 12px; }
814
+ .pui .pui-image-guidance { text-align: left; line-height: var(--pui-line-height); }
815
+ .pui .pui-message-images { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--pui-space-sm); margin-top: var(--pui-space-md); }
748
816
  .pui .pui-history-image { display: block; max-width: min(100%, 320px); max-height: 250px; width: auto; height: auto; object-fit: contain; border: 1px solid var(--pui-border); border-radius: 10px; background: var(--pui-surface-subtle); }
749
- .pui .pui-image-unavailable { min-width: 120px; min-height: 60px; font-size: 12px; color: var(--pui-muted); }
750
- .pui .pui-queue-image-count { display: block; color: var(--pui-muted); font-size: 11px; margin-top: 3px; }
817
+ .pui .pui-image-unavailable { min-width: 120px; min-height: 60px; font-size: var(--pui-text-small); color: var(--pui-muted); }
818
+ .pui .pui-queue-image-count { display: block; color: var(--pui-muted); font-size: var(--pui-text-small); margin-top: var(--pui-space-xs); }
751
819
 
752
820
  /* Model choices are SDK metadata; only the active selection is in snapshots. */
753
- .pui .pui-model-list { display: block; width: 100%; margin-top: 10px; padding: 7px; border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface-input); color: var(--pui-text); font-size: 13px; }
754
- .pui .pui-model-list option { padding: 9px 8px; border-radius: 5px; }
755
- .pui .pui-model-list:focus { outline: 2px solid var(--pui-focus-ring); border-color: var(--pui-accent); }
756
- .pui .pui-composer-model { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; padding: 5px; color: var(--pui-muted-tonal); background: transparent; }
821
+ .pui .pui-model-list { display: block; width: 100%; margin-top: var(--pui-space-sm); padding: var(--pui-space-sm); border: 1px solid var(--pui-border); border-radius: 8px; background: var(--pui-surface-input); color: var(--pui-text); font-size: var(--pui-text-large); }
822
+ .pui .pui-model-list option { border-radius: 5px; }
823
+ .pui .pui-composer-model { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--pui-text-small); padding: var(--pui-space-sm); color: var(--pui-muted-tonal); background: transparent; }
757
824
  .pui .pui-composer-model:hover { color: var(--pui-text); }
758
- .pui .pui-composer-thinking select { max-width: 132px; font-size: 12px; padding: 5px 3px; background: transparent; border: 0; color: var(--pui-muted-tonal); cursor: pointer; }
825
+ .pui .pui-composer-thinking select { max-width: 132px; font-size: var(--pui-text-small); padding: var(--pui-space-sm) var(--pui-space-xs); background: transparent; border: 0; color: var(--pui-muted-tonal); cursor: pointer; }
759
826
  .pui .pui-composer-thinking select:disabled { opacity: .65; }
827
+ .pui .pui-composer-thinking .pui-select { width: auto; }
828
+ .pui .pui-composer-thinking .pui-select-trigger { min-height: 0; max-width: 132px; font-size: var(--pui-text-small); padding: var(--pui-space-sm) var(--pui-space-xs); background: transparent; border: 0; color: var(--pui-muted-tonal); }
760
829
  .pui .pui-composer-toolbar { flex-wrap: wrap; }
761
830
  .pui .pui-composer-actions { margin-left: auto; }
762
831
  @media (max-width: 900px) { .pui .pui-composer-model { max-width: 125px; } }
763
832
 
764
- .pui .pui-provider-advanced { margin-top: 18px; padding: 12px 0; border-top: 1px solid var(--pui-border); border-bottom: 1px solid var(--pui-border); }
765
- .pui .pui-provider-advanced > summary { cursor: pointer; font-size: 12px; color: var(--pui-muted-tonal); }
833
+ .pui .pui-provider-advanced { margin-top: var(--pui-space-lg); padding: var(--pui-space-md) 0; border-top: 1px solid var(--pui-border); border-bottom: 1px solid var(--pui-border); }
834
+ .pui .pui-provider-advanced > summary { cursor: pointer; font-size: var(--pui-text-small); color: var(--pui-muted-tonal); }
766
835
  .pui .pui-provider-advanced > summary:hover { color: var(--pui-text); }
767
836
 
768
837
  .pui .pui-sidebar-conversation-menu .pui-destructive-menu-item { color: var(--pui-error-text); }
769
- .pui .pui-conversation-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; flex-shrink: 0; }
770
- .pui .pui-compact-action { gap: 6px; padding: 6px 8px; font-size: 12px; }
771
- .pui .pui-sdk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
772
- .pui .pui-custom-model { margin: 20px 0; padding: 18px; border: 1px solid var(--pui-border); border-radius: 12px; }
838
+ .pui .pui-conversation-actions { display: flex; align-items: center; gap: var(--pui-space-sm); margin-left: auto; flex-shrink: 0; }
839
+ .pui .pui-compact-action { min-height: 30px; gap: var(--pui-space-sm); padding: var(--pui-space-xs) var(--pui-space-sm); font-size: var(--pui-text-small); }
840
+ .pui .pui-sdk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pui-space-md); }
841
+ .pui .pui-custom-model { margin: var(--pui-space-lg) 0; padding: var(--pui-space-lg); border: 1px solid var(--pui-border); border-radius: 12px; }
773
842
  .pui .pui-custom-model > .pui-destructive-button { margin-top: var(--pui-field-gap); }
774
- .pui .pui-custom-model label { display: block; margin-bottom: 12px; font-size: 14px; color: var(--pui-muted); }
775
- .pui .pui-custom-model input:not([type=checkbox]) { width: 100%; margin-top: 6px; }
776
- .pui .pui-modal textarea.pui-resource-editor { width: 100%; min-height: 300px; padding: 14px; resize: vertical; font-family: ui-monospace, monospace; font-size: 14px; line-height: 1.6; color: var(--pui-text); background: var(--pui-surface-input); border: 1px solid var(--pui-border); border-radius: 10px; }
843
+ .pui .pui-custom-model label { display: block; margin-bottom: var(--pui-space-md); font-size: var(--pui-text-medium); color: var(--pui-muted); }
844
+ .pui .pui-custom-model input:not([type=checkbox]) { width: 100%; margin-top: var(--pui-space-sm); }
845
+ .pui .pui-modal textarea.pui-resource-editor { width: 100%; min-height: 300px; padding: var(--pui-space-md); resize: vertical; font-family: var(--pui-font-code); font-size: var(--pui-text-medium); line-height: var(--pui-line-height); color: var(--pui-text); background: var(--pui-surface-input); border: 1px solid var(--pui-border); border-radius: 10px; }
777
846
  .pui .pui-custom-model label.pui-checkbox-field { display: flex; }
778
- .pui .pui-branch-node { padding: 16px; margin: 10px 0; border: 1px solid var(--pui-border); border-radius: 12px; }
779
- .pui .pui-branch-node p { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--pui-muted); font-size: 14px; line-height: 1.5; margin: 10px 0; }
847
+ .pui .pui-branch-node { padding: var(--pui-space-lg); margin: var(--pui-space-sm) 0; border: 1px solid var(--pui-border); border-radius: 12px; }
848
+ .pui .pui-branch-node p { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--pui-muted); font-size: var(--pui-text-medium); line-height: var(--pui-line-height); margin: var(--pui-space-sm) 0; }
780
849
  .pui .pui-current-branch { border-left: 3px solid var(--pui-accent); }
781
- .pui .pui-cost-requests { border-top: 1px solid var(--pui-border); margin-top: 12px; padding-top: 6px; }
850
+ .pui .pui-cost-requests { border-top: 1px solid var(--pui-border); margin-top: var(--pui-space-md); padding-top: var(--pui-space-sm); }
782
851
  .pui .pui-cost-table { overflow-x: auto; }
783
- .pui .pui-cost-table table { border-collapse: collapse; width: 100%; font-size: 13px; }
784
- .pui .pui-cost-table td, .pui .pui-cost-table th { border-bottom: 1px solid var(--pui-border); padding: 12px 8px; text-align: left; vertical-align: top; }
852
+ .pui .pui-cost-table table { border-collapse: collapse; width: 100%; font-size: var(--pui-text-medium); }
853
+ .pui .pui-cost-table td, .pui .pui-cost-table th { border-bottom: 1px solid var(--pui-border); padding: var(--pui-space-md) var(--pui-space-sm); text-align: left; vertical-align: top; }
785
854
  .pui .pui-cost-table td:first-child { min-width: 220px; overflow-wrap: anywhere; }
786
855
  .pui .pui-cost-table pre { white-space: pre-wrap; }
787
- .pui .pui-history-item { align-items: center; gap: 8px; }
856
+ .pui .pui-history-item { align-items: center; gap: var(--pui-space-sm); }
788
857
  .pui .pui-history-item > span:first-child { flex: 1; }
789
858
  .pui .pui-history-status { width: 18px; height: 18px; flex: 0 0 18px; display: inline-flex; align-items: center; justify-content: center; color: var(--pui-accent); }
790
859
  .pui .pui-history-status.pui-needs-approval { color: var(--pui-warning-text); }
@@ -793,56 +862,56 @@
793
862
  .pui .pui-history-unread { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
794
863
  @keyframes pui-history-spin { to { transform: rotate(360deg); } }
795
864
  @media (prefers-reduced-motion: reduce) { .pui .pui-history-spinner { animation: none; } }
796
- .pui .pui-completion-notices { position: fixed; z-index: 20; right: 24px; top: 96px; width: min(360px, calc(100vw - 32px)); max-height: calc(100dvh - 320px); overflow-y: auto; display: grid; gap: 10px; pointer-events: none; }
797
- .pui .pui-completion-notice { display: flex; align-items: flex-start; gap: 12px; padding: 16px; background: var(--pui-surface); color: var(--pui-text); border: 1px solid var(--pui-border); border-radius: 12px; box-shadow: 0 8px 28px #0003; pointer-events: auto; }
865
+ .pui .pui-completion-notices { position: fixed; z-index: 20; right: 24px; top: 96px; width: min(360px, calc(100vw - 32px)); max-height: calc(100dvh - 320px); overflow-y: auto; display: grid; gap: var(--pui-space-sm); pointer-events: none; }
866
+ .pui .pui-completion-notice { display: flex; align-items: flex-start; gap: var(--pui-space-md); padding: var(--pui-space-lg); background: var(--pui-surface); color: var(--pui-text); border: 1px solid var(--pui-border); border-radius: 12px; box-shadow: 0 8px 28px #0003; pointer-events: auto; }
798
867
  .pui .pui-completion-check { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: light-dark(#D8F0E1, #254C38); color: light-dark(#286641, #8CD6A7); flex: 0 0 23px; }
799
868
  .pui .pui-completion-check .pui-icon { width: 15px; height: 15px; }
800
869
  .pui .pui-completion-content { flex: 1; min-width: 0; }
801
- .pui .pui-completion-content strong { font-size: 13px; }
802
- .pui .pui-completion-content p { font-size: 12px; color: var(--pui-muted); margin: 5px 0 9px; overflow-wrap: anywhere; }
870
+ .pui .pui-completion-content strong { font-size: var(--pui-text-medium); }
871
+ .pui .pui-completion-content p { font-size: var(--pui-text-small); color: var(--pui-muted); margin: var(--pui-space-sm) 0 var(--pui-space-sm); overflow-wrap: anywhere; }
803
872
  .pui .pui-completion-content .pui-text-button { padding: 0; text-decoration: none; }
804
873
  .pui .pui-completion-dismiss { width: 22px; height: 22px; flex: 0 0 22px; }
805
874
  @media (max-width: 700px) { .pui .pui-completion-notices { right: 16px; top: 76px; } }
806
- .pui .pui-workspace-busy { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; font-size: 12px; color: var(--pui-muted-tonal); }
875
+ .pui .pui-workspace-busy { display: flex; align-items: center; justify-content: space-between; gap: var(--pui-space-md); margin-bottom: var(--pui-space-sm); font-size: var(--pui-text-small); color: var(--pui-muted-tonal); }
807
876
 
808
877
  /* Shared form controls for every dialog; compact timeline actions stay small. */
809
- .pui { --pui-control-height: 40px; --pui-form-font-size: 13px; --pui-field-gap: 9px; }
810
- .pui .pui-modal .pui-field-label, .pui .pui-modal .pui-custom-model label { font-size: var(--pui-form-font-size); line-height: 20px; }
811
- .pui .pui-modal input:not([type="checkbox"]), .pui .pui-modal select:not([size]):not([multiple]), .pui .pui-modal select[size="1"]:not([multiple]) { min-height: var(--pui-control-height); height: var(--pui-control-height); padding: 9px 12px; font-size: var(--pui-form-font-size); line-height: 20px; }
878
+ .pui .pui-modal .pui-field-label, .pui .pui-modal .pui-custom-model label { font-size: var(--pui-form-font-size); line-height: var(--pui-line-height); }
879
+ .pui .pui-modal input:not([type="checkbox"]), .pui .pui-modal select:not([size]):not([multiple]), .pui .pui-modal select[size="1"]:not([multiple]) { min-height: var(--pui-control-height); height: var(--pui-control-height); padding: var(--pui-space-sm) var(--pui-space-md); font-size: var(--pui-form-font-size); line-height: var(--pui-line-height); }
880
+ .pui .pui-modal .pui-select-trigger { min-height: var(--pui-control-height); height: var(--pui-control-height); padding: var(--pui-space-sm) var(--pui-space-md); font-size: var(--pui-form-font-size); line-height: var(--pui-line-height); }
812
881
  .pui .pui-modal label > input:not([type="checkbox"]), .pui .pui-modal label > select { margin-top: var(--pui-field-gap); }
813
- .pui .pui-modal .pui-primary-button, .pui .pui-modal .pui-secondary-button { min-height: var(--pui-control-height); padding: 9px 14px; font-size: var(--pui-form-font-size); line-height: 20px; }
814
- .pui .pui-modal .pui-modal-description, .pui .pui-modal .pui-field-hint, .pui .pui-modal .pui-form-error { font-size: var(--pui-form-font-size); line-height: 20px; }
815
- .pui .pui-modal .pui-modal-footer { margin-top: 20px; padding-top: 20px; gap: 8px; }
816
- .pui .pui-modal .pui-provider-login-status { font-size: var(--pui-form-font-size); line-height: 20px; margin: 18px 0 0; }
817
- .pui [id$="oauth-answer"] > .pui-primary-button { margin-top: 12px; }
882
+ .pui .pui-modal label > .pui-select { margin-top: var(--pui-field-gap); }
883
+ .pui .pui-modal .pui-field-hint, .pui .pui-modal .pui-form-error{ font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
884
+ .pui .pui-modal .pui-modal-footer { margin-top: var(--pui-space-lg); padding-top: var(--pui-space-lg); gap: var(--pui-space-sm); }
885
+ .pui .pui-modal .pui-provider-login-status { font-size: var(--pui-form-font-size); line-height: var(--pui-line-height); margin: var(--pui-space-lg) 0 0; }
886
+ .pui [id$="oauth-answer"] > .pui-primary-button { margin-top: var(--pui-space-md); }
818
887
 
819
888
  /* Settings uses one spacing rhythm for fields, explanations and actions. */
820
- .pui .pui-settings-panel .pui-settings-section { display: grid; gap: 12px; align-items: start; margin: 20px 0 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--pui-border); color: var(--pui-text); }
821
- .pui .pui-settings-panel .pui-settings-section h3 { margin: 0; font-size: 16px; line-height: 1.4; font-weight: 600; }
822
- .pui .pui-settings-panel .pui-field-hint, .pui .pui-settings-panel .pui-appearance-hint, .pui .pui-settings-panel .pui-modal-description { margin: 0; font-size: 13px; line-height: 20px; }
889
+ .pui .pui-settings-panel .pui-settings-section { display: grid; gap: var(--pui-space-md); align-items: start; margin: var(--pui-space-lg) 0 0; padding: var(--pui-space-lg) 0 0; border: 0; border-top: 1px solid var(--pui-border); color: var(--pui-text); }
890
+ .pui .pui-settings-panel .pui-settings-section h3 { margin: 0; font-size: var(--pui-text-large); line-height: var(--pui-line-height); font-weight: var(--pui-weight-strong); }
891
+ .pui .pui-settings-panel .pui-field-hint, .pui .pui-settings-panel .pui-appearance-hint, .pui .pui-settings-panel .pui-modal-description { margin: 0; font-size: var(--pui-text-small); line-height: var(--pui-line-height); }
823
892
  .pui .pui-settings-panel .pui-settings-copy { display: grid; gap: 0; }
824
- .pui .pui-settings-panel .pui-settings-field { display: grid; gap: 12px; }
825
- .pui .pui-settings-panel .pui-field-label { margin: 0; font-size: 13px; line-height: 20px; }
826
- .pui .pui-settings-panel select, .pui .pui-settings-panel input { min-height: 40px; height: 40px; font-size: 13px; }
827
- .pui .pui-settings-panel .pui-settings-actions, .pui .pui-settings-panel .pui-feature-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
828
- .pui .pui-settings-panel .pui-primary-button, .pui .pui-settings-panel .pui-secondary-button { min-height: 40px; padding: 9px 14px; font-size: 13px; line-height: 20px; justify-self: start; }
829
- .pui .pui-settings-panel .pui-provider-advanced { margin: 0; padding: 12px 0 0; border-bottom: 0; }
830
- .pui .pui-settings-panel .pui-provider-advanced summary { font-size: 13px; line-height: 20px; }
831
- .pui .pui-settings-panel .pui-provider-advanced .pui-field-label { margin: 12px 0; }
832
- .pui .pui-settings-panel .pui-provider-advanced .pui-field-hint { margin-top: 12px; }
893
+ .pui .pui-settings-panel .pui-settings-field { display: grid; gap: var(--pui-space-md); }
894
+ .pui .pui-settings-panel .pui-field-label { margin: 0; font-size: var(--pui-text-medium); line-height: var(--pui-line-height); }
895
+ .pui .pui-settings-panel select:not([multiple]):not([size]), .pui .pui-settings-panel select[size="1"]:not([multiple]), .pui .pui-settings-panel input:not([type="checkbox"]) { min-height: 40px; height: 40px; font-size: var(--pui-text-medium); }
896
+ .pui .pui-settings-panel .pui-select-trigger { min-height: 40px; height: 40px; font-size: var(--pui-text-medium); }
897
+ .pui .pui-settings-panel .pui-settings-actions, .pui .pui-settings-panel .pui-feature-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pui-space-sm); margin: 0; }
898
+ .pui .pui-settings-panel .pui-primary-button, .pui .pui-settings-panel .pui-secondary-button { justify-self: start; }
899
+ .pui .pui-settings-panel .pui-provider-advanced { margin: 0; padding: var(--pui-space-md) 0 0; border-bottom: 0; }
900
+ .pui .pui-settings-panel .pui-provider-advanced summary { font-size: var(--pui-text-medium); line-height: var(--pui-line-height); }
901
+ .pui .pui-settings-panel .pui-provider-advanced .pui-field-label { margin: var(--pui-space-md) 0; }
902
+ .pui .pui-settings-panel .pui-provider-advanced .pui-field-hint { margin-top: var(--pui-space-md); }
833
903
  .pui .pui-settings-panel .pui-settings-section .pui-form-error, .pui [id$="connection-test-result"] { margin: 0; }
834
904
  .pui [id$="connection-test-result"]:empty { display: none; }
835
905
  .pui .pui-settings-panel [data-update-version]:empty, .pui .pui-settings-panel [data-update-message]:empty { display: none; }
836
- .pui .pui-settings-panel .pui-modal-footer { margin-top: 20px; padding-top: 20px; gap: 8px; }
906
+ .pui .pui-settings-panel .pui-modal-footer { margin-top: var(--pui-space-lg); padding-top: var(--pui-space-lg); gap: var(--pui-space-sm); }
837
907
  .pui .pui-update-settings progress { width: 100%; margin: 0; accent-color: var(--pui-accent); }
838
908
 
839
909
  .pui .pui-app { width: 100%; }
840
910
  .pui {
841
- --pui-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
842
- --pui-font-size: var(--pui-form-font-size);
843
- --pui-line-height: 20px;
844
911
  --pui-radius: 8px;
845
912
  --pui-focus: var(--pui-accent);
913
+ --pui-focus-width: 1px;
914
+ --pui-focus-offset: 2px;
846
915
  --pui-hover: var(--pui-surface-hover);
847
916
  --pui-accent-text: var(--pui-accent-foreground);
848
917
  --pui-input-surface: var(--pui-surface-input);