@phenx-inc/ctlsurf 0.14.2 → 0.15.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.
- package/THIRD-PARTY-NOTICES.md +82 -0
- package/out/headless/index.mjs +91 -72
- package/out/headless/index.mjs.map +3 -3
- package/out/main/index.js +117 -72
- package/out/preload/index.js +6 -1
- package/out/renderer/assets/{cssMode-bQYoCKra.js → cssMode-B77M9HlN.js} +3 -3
- package/out/renderer/assets/{freemarker2-BS1ERQl_.js → freemarker2-oUT2zvyQ.js} +1 -1
- package/out/renderer/assets/{handlebars-B-ZEHRLr.js → handlebars-jCckoi5j.js} +1 -1
- package/out/renderer/assets/{html-lk9e1Lkl.js → html-kAgrAaKW.js} +1 -1
- package/out/renderer/assets/{htmlMode-Ds1eMYgM.js → htmlMode-DIWkIawy.js} +3 -3
- package/out/renderer/assets/{index-BpCORklm.css → index-3sFJEz7i.css} +787 -399
- package/out/renderer/assets/{index-BJNR4hRK.js → index-CN3UN7Tm.js} +431 -104
- package/out/renderer/assets/{javascript-D6OeziKX.js → javascript-B9GYUE-I.js} +2 -2
- package/out/renderer/assets/{jsonMode-t5SESE75.js → jsonMode-BzFKTZjJ.js} +3 -3
- package/out/renderer/assets/{liquid-B5Wjh0p_.js → liquid-Ccw-S_Y6.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-BEgiDCIW.js → lspLanguageFeatures-BE0g7ubH.js} +1 -1
- package/out/renderer/assets/{mdx-ByNAXh8t.js → mdx-oXeAA0qU.js} +1 -1
- package/out/renderer/assets/{python-CIFO0XQW.js → python-DlSX3TvA.js} +1 -1
- package/out/renderer/assets/{razor-LXHhGcNO.js → razor-ButO9S7r.js} +1 -1
- package/out/renderer/assets/{tsMode-WiO8CDaI.js → tsMode-CTCpE-67.js} +1 -1
- package/out/renderer/assets/{typescript-ZBQlq256.js → typescript-9o62WOnS.js} +1 -1
- package/out/renderer/assets/{xml-DBaLJlQU.js → xml-C4nOH2_D.js} +1 -1
- package/out/renderer/assets/{yaml-CId9skah.js → yaml-mXYgKoWW.js} +1 -1
- package/out/renderer/index.html +60 -3
- package/package.json +5 -4
- package/src/main/index.ts +54 -3
- package/src/main/orchestrator.ts +10 -2
- package/src/main/ticketStore.ts +100 -66
- package/src/preload/index.ts +13 -3
- package/src/renderer/App.tsx +4 -2
- package/src/renderer/components/CtlsurfPanel.tsx +1 -1
- package/src/renderer/components/EditorPanel.tsx +29 -1
- package/src/renderer/components/ObserverPanel.tsx +13 -6
- package/src/renderer/components/SettingsDialog.tsx +82 -0
- package/src/renderer/components/TerminalPanel.tsx +12 -22
- package/src/renderer/components/TicketPanel.tsx +33 -15
- package/src/renderer/index.html +58 -1
- package/src/renderer/lib/theme.ts +173 -0
- package/src/renderer/lib/themes.ts +126 -0
- package/src/renderer/styles.css +787 -399
package/src/renderer/styles.css
CHANGED
|
@@ -1,3 +1,273 @@
|
|
|
1
|
+
/* ─────────────────────────────────────────────────────────────
|
|
2
|
+
Theme tokens
|
|
3
|
+
|
|
4
|
+
Every colour in this file resolves through one of these. `:root` holds
|
|
5
|
+
Tokyo Night and doubles as the fallback, so anything that renders before
|
|
6
|
+
the theme attribute lands still gets a full palette. Each additional
|
|
7
|
+
scheme is a `[data-theme='<id>']` block whose id must match an entry in
|
|
8
|
+
lib/themes.ts — that module owns the parts CSS cannot reach (the xterm
|
|
9
|
+
canvas palette, Monaco, and the picker swatches). `data-theme` is stamped
|
|
10
|
+
on <html> by the pre-paint script in index.html and kept in sync by
|
|
11
|
+
lib/theme.ts.
|
|
12
|
+
|
|
13
|
+
Adding a scheme means: one block here + one entry in lib/themes.ts.
|
|
14
|
+
|
|
15
|
+
Names are roles, not shades — "well" is deeper than "app" in dark and
|
|
16
|
+
*lighter* in light, which is exactly why the old literals could not be
|
|
17
|
+
flipped mechanically.
|
|
18
|
+
───────────────────────────────────────────────────────────── */
|
|
19
|
+
|
|
20
|
+
:root,
|
|
21
|
+
:root[data-theme='tokyo-night'] {
|
|
22
|
+
color-scheme: dark;
|
|
23
|
+
|
|
24
|
+
/* Surfaces, roughly back-to-front */
|
|
25
|
+
--bg-app: #1a1b26; /* window/page background */
|
|
26
|
+
--bg-chrome: #16161e; /* title bar, tab strips, status bar, menus */
|
|
27
|
+
--bg-raised: #1f2335; /* dialogs, popovers, toasts */
|
|
28
|
+
--bg-surface: #2a2b3d; /* button and control fills, dividers */
|
|
29
|
+
--bg-surface-hi: #343650; /* hover on --bg-surface */
|
|
30
|
+
--bg-chrome-hi: #1a1b2e; /* hover on --bg-chrome rows */
|
|
31
|
+
--bg-well: #15161f; /* inputs, cards — sunken in dark, raised in light */
|
|
32
|
+
--bg-well-hi: #181a26; /* hover on --bg-well */
|
|
33
|
+
--bg-inset-hi: #1b2030; /* hover on a transparent inset action */
|
|
34
|
+
--bg-selected: #2a2f4a; /* selected segment in a segmented control */
|
|
35
|
+
--bg-chip: #262a3f; /* count badges */
|
|
36
|
+
--bg-chip-soft: #1c1e2b; /* inline fact pills */
|
|
37
|
+
--bg-editor: #1e1e2e; /* Monaco backdrop — matches its own theme */
|
|
38
|
+
|
|
39
|
+
/* Borders */
|
|
40
|
+
--border: #3b3d57; /* default: dialogs, inputs, buttons */
|
|
41
|
+
--border-subtle: #2a2b3d; /* panel separators, header rules */
|
|
42
|
+
--border-well: #262a3f; /* card outlines */
|
|
43
|
+
--border-strong: #565f89; /* hover/emphasis borders */
|
|
44
|
+
--border-dim: #414868; /* terminal chrome, context menus */
|
|
45
|
+
--border-hover: #3d425f; /* card hover outline */
|
|
46
|
+
|
|
47
|
+
/* Text */
|
|
48
|
+
--text: #a9b1d6; /* body */
|
|
49
|
+
--text-bright: #c0caf5; /* headings, emphasis */
|
|
50
|
+
--text-soft: #9aa5ce; /* long-form secondary copy */
|
|
51
|
+
--text-muted: #565f89; /* labels, captions, inactive dots */
|
|
52
|
+
--text-dim: #414868; /* tertiary, placeholders, grips */
|
|
53
|
+
--text-ticket: #d5dbf5; /* ticket titles */
|
|
54
|
+
--text-ticket-muted: #6b739b;
|
|
55
|
+
--text-ticket-dim: #8088ac;
|
|
56
|
+
--text-placeholder: #4a4f6e;
|
|
57
|
+
|
|
58
|
+
/* Brand */
|
|
59
|
+
--accent: #7aa2f7;
|
|
60
|
+
--accent-hover: #89b4fa;
|
|
61
|
+
--accent-soft: #9db4f5;
|
|
62
|
+
--accent-softer: #c0d0fb;
|
|
63
|
+
--accent-grad-top: #8db0fa;
|
|
64
|
+
--accent-grad-top-hi: #9bbcfb;
|
|
65
|
+
--on-accent: #1a1b26; /* text/icons sitting on an accent fill */
|
|
66
|
+
|
|
67
|
+
/* Status */
|
|
68
|
+
--danger: #f7768e;
|
|
69
|
+
--warning: #e0af68;
|
|
70
|
+
--success: #9ece6a;
|
|
71
|
+
--danger-bg: #2d2030;
|
|
72
|
+
--sev-high: #ff9e64; /* Observer severity, set from ObserverPanel */
|
|
73
|
+
--sev-digest: #bb9af7;
|
|
74
|
+
|
|
75
|
+
/* Odds and ends */
|
|
76
|
+
--selection-bg: #33467c;
|
|
77
|
+
--switch-track: #3b4261;
|
|
78
|
+
--switch-thumb: #c0caf5;
|
|
79
|
+
--ticket-grad-top: #20243a;
|
|
80
|
+
--ticket-grad-bot: #1b1e2e;
|
|
81
|
+
--shadow-color: rgba(0, 0, 0, 0.5);
|
|
82
|
+
--overlay-bg: rgba(0, 0, 0, 0.65);
|
|
83
|
+
--hover-veil: rgba(255, 255, 255, 0.05);
|
|
84
|
+
--footer-veil: rgba(13, 14, 22, 0.35);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
:root[data-theme='tokyo-day'] {
|
|
88
|
+
color-scheme: light;
|
|
89
|
+
|
|
90
|
+
--bg-app: #e9eaef;
|
|
91
|
+
--bg-chrome: #dfe1e8;
|
|
92
|
+
--bg-raised: #f5f6f9;
|
|
93
|
+
--bg-surface: #d4d7e2;
|
|
94
|
+
--bg-surface-hi: #c3c7d6;
|
|
95
|
+
--bg-chrome-hi: #d7dae6;
|
|
96
|
+
--bg-well: #ffffff;
|
|
97
|
+
--bg-well-hi: #f7f8fc;
|
|
98
|
+
--bg-inset-hi: #e4e8f4;
|
|
99
|
+
--bg-selected: #ccd4ea;
|
|
100
|
+
--bg-chip: #dde0eb;
|
|
101
|
+
--bg-chip-soft: #eef0f6;
|
|
102
|
+
--bg-editor: #ffffff;
|
|
103
|
+
|
|
104
|
+
--border: #c0c4d4;
|
|
105
|
+
--border-subtle: #d5d8e2;
|
|
106
|
+
--border-well: #dcdfe9;
|
|
107
|
+
--border-strong: #9aa0b8;
|
|
108
|
+
--border-dim: #b8bdcf;
|
|
109
|
+
--border-hover: #aab0c6;
|
|
110
|
+
|
|
111
|
+
--text: #3a4060;
|
|
112
|
+
--text-bright: #1b1e33;
|
|
113
|
+
--text-soft: #4c5270;
|
|
114
|
+
--text-muted: #6b7190;
|
|
115
|
+
--text-dim: #9096ad;
|
|
116
|
+
--text-ticket: #22263c;
|
|
117
|
+
--text-ticket-muted: #666d8b;
|
|
118
|
+
--text-ticket-dim: #5f6685;
|
|
119
|
+
--text-placeholder: #9aa0b6;
|
|
120
|
+
|
|
121
|
+
--accent: #2e7de9;
|
|
122
|
+
--accent-hover: #1a68d6;
|
|
123
|
+
--accent-soft: #2f6fd0;
|
|
124
|
+
--accent-softer: #1b5cb8;
|
|
125
|
+
--accent-grad-top: #4d90ef;
|
|
126
|
+
--accent-grad-top-hi: #61a0f5;
|
|
127
|
+
--on-accent: #ffffff;
|
|
128
|
+
|
|
129
|
+
--danger: #f52a65;
|
|
130
|
+
--warning: #8c6c3e;
|
|
131
|
+
--success: #587539;
|
|
132
|
+
--danger-bg: #fce8ee;
|
|
133
|
+
--sev-high: #b15c00;
|
|
134
|
+
--sev-digest: #7847d1;
|
|
135
|
+
|
|
136
|
+
--selection-bg: #b6c8f0;
|
|
137
|
+
--switch-track: #c2c6d6;
|
|
138
|
+
--switch-thumb: #ffffff;
|
|
139
|
+
--ticket-grad-top: #eef0f7;
|
|
140
|
+
--ticket-grad-bot: #e5e7f0;
|
|
141
|
+
--shadow-color: rgba(60, 70, 110, 0.18);
|
|
142
|
+
--overlay-bg: rgba(30, 35, 60, 0.32);
|
|
143
|
+
--hover-veil: rgba(0, 0, 0, 0.04);
|
|
144
|
+
--footer-veil: rgba(255, 255, 255, 0.55);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* Catppuccin Mocha — palette per catppuccin/catppuccin (MIT).
|
|
148
|
+
See THIRD-PARTY-NOTICES.md. */
|
|
149
|
+
:root[data-theme='catppuccin-mocha'] {
|
|
150
|
+
color-scheme: dark;
|
|
151
|
+
|
|
152
|
+
--bg-app: #1e1e2e; /* base */
|
|
153
|
+
--bg-chrome: #181825; /* mantle */
|
|
154
|
+
--bg-raised: #272739;
|
|
155
|
+
--bg-surface: #313244; /* surface0 */
|
|
156
|
+
--bg-surface-hi: #45475a; /* surface1 */
|
|
157
|
+
--bg-chrome-hi: #21212f;
|
|
158
|
+
--bg-well: #11111b; /* crust */
|
|
159
|
+
--bg-well-hi: #17171f;
|
|
160
|
+
--bg-inset-hi: #1b1b28;
|
|
161
|
+
--bg-selected: #3a3c52;
|
|
162
|
+
--bg-chip: #313244;
|
|
163
|
+
--bg-chip-soft: #1a1a27;
|
|
164
|
+
--bg-editor: #1e1e2e;
|
|
165
|
+
|
|
166
|
+
--border: #45475a; /* surface1 */
|
|
167
|
+
--border-subtle: #313244; /* surface0 */
|
|
168
|
+
--border-well: #2a2b3c;
|
|
169
|
+
--border-strong: #6c7086; /* overlay0 */
|
|
170
|
+
--border-dim: #585b70; /* surface2 */
|
|
171
|
+
--border-hover: #585b70;
|
|
172
|
+
|
|
173
|
+
--text: #cdd6f4; /* text */
|
|
174
|
+
--text-bright: #f2f4fd;
|
|
175
|
+
--text-soft: #bac2de; /* subtext1 */
|
|
176
|
+
--text-muted: #7f849c; /* overlay1 */
|
|
177
|
+
--text-dim: #6c7086; /* overlay0 */
|
|
178
|
+
--text-ticket: #cdd6f4;
|
|
179
|
+
--text-ticket-muted: #9399b2;
|
|
180
|
+
--text-ticket-dim: #a6adc8;
|
|
181
|
+
--text-placeholder: #585b70;
|
|
182
|
+
|
|
183
|
+
--accent: #89b4fa; /* blue */
|
|
184
|
+
--accent-hover: #b4befe; /* lavender */
|
|
185
|
+
--accent-soft: #a3c4fb;
|
|
186
|
+
--accent-softer: #c8d6fd;
|
|
187
|
+
--accent-grad-top: #9ec1fb;
|
|
188
|
+
--accent-grad-top-hi: #b4cffc;
|
|
189
|
+
--on-accent: #1e1e2e;
|
|
190
|
+
|
|
191
|
+
--danger: #f38ba8;
|
|
192
|
+
--warning: #f9e2af;
|
|
193
|
+
--success: #a6e3a1;
|
|
194
|
+
--danger-bg: #302334;
|
|
195
|
+
--sev-high: #fab387; /* peach */
|
|
196
|
+
--sev-digest: #cba6f7; /* mauve */
|
|
197
|
+
|
|
198
|
+
--selection-bg: #3e4470;
|
|
199
|
+
--switch-track: #45475a;
|
|
200
|
+
--switch-thumb: #cdd6f4;
|
|
201
|
+
--ticket-grad-top: #232338;
|
|
202
|
+
--ticket-grad-bot: #1c1c29;
|
|
203
|
+
--shadow-color: rgba(0, 0, 0, 0.5);
|
|
204
|
+
--overlay-bg: rgba(0, 0, 0, 0.65);
|
|
205
|
+
--hover-veil: rgba(255, 255, 255, 0.05);
|
|
206
|
+
--footer-veil: rgba(17, 17, 27, 0.35);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* Catppuccin Latte — palette per catppuccin/catppuccin (MIT).
|
|
210
|
+
See THIRD-PARTY-NOTICES.md. */
|
|
211
|
+
:root[data-theme='catppuccin-latte'] {
|
|
212
|
+
color-scheme: light;
|
|
213
|
+
|
|
214
|
+
--bg-app: #eff1f5; /* base */
|
|
215
|
+
--bg-chrome: #e6e9ef; /* mantle */
|
|
216
|
+
--bg-raised: #fafbfc;
|
|
217
|
+
--bg-surface: #ccd0da; /* surface0 */
|
|
218
|
+
--bg-surface-hi: #bcc0cc; /* surface1 */
|
|
219
|
+
--bg-chrome-hi: #dce0e8; /* crust */
|
|
220
|
+
--bg-well: #ffffff;
|
|
221
|
+
--bg-well-hi: #f7f8fa;
|
|
222
|
+
--bg-inset-hi: #e8ecf5;
|
|
223
|
+
--bg-selected: #ccd6ee;
|
|
224
|
+
--bg-chip: #dce0e8;
|
|
225
|
+
--bg-chip-soft: #f0f2f6;
|
|
226
|
+
--bg-editor: #eff1f5;
|
|
227
|
+
|
|
228
|
+
--border: #bcc0cc; /* surface1 */
|
|
229
|
+
--border-subtle: #d5d9e2;
|
|
230
|
+
--border-well: #dce0e8; /* crust */
|
|
231
|
+
--border-strong: #9ca0b0; /* overlay0 */
|
|
232
|
+
--border-dim: #acb0be; /* surface2 */
|
|
233
|
+
--border-hover: #acb0be;
|
|
234
|
+
|
|
235
|
+
--text: #4c4f69; /* text */
|
|
236
|
+
--text-bright: #2f3145;
|
|
237
|
+
--text-soft: #5c5f77; /* subtext1 */
|
|
238
|
+
--text-muted: #7c7f93; /* overlay2 */
|
|
239
|
+
--text-dim: #9ca0b0; /* overlay0 */
|
|
240
|
+
--text-ticket: #3d4059;
|
|
241
|
+
--text-ticket-muted: #6c6f85;
|
|
242
|
+
--text-ticket-dim: #6c6f85;
|
|
243
|
+
--text-placeholder: #9ca0b0;
|
|
244
|
+
|
|
245
|
+
--accent: #1e66f5; /* blue */
|
|
246
|
+
--accent-hover: #0b52d4;
|
|
247
|
+
--accent-soft: #2b60cf;
|
|
248
|
+
--accent-softer: #17479f;
|
|
249
|
+
--accent-grad-top: #4a83f7;
|
|
250
|
+
--accent-grad-top-hi: #6497f8;
|
|
251
|
+
--on-accent: #ffffff;
|
|
252
|
+
|
|
253
|
+
--danger: #d20f39;
|
|
254
|
+
--warning: #df8e1d;
|
|
255
|
+
--success: #40a02b;
|
|
256
|
+
--danger-bg: #fbe3e8;
|
|
257
|
+
--sev-high: #fe640b; /* peach */
|
|
258
|
+
--sev-digest: #8839ef; /* mauve */
|
|
259
|
+
|
|
260
|
+
--selection-bg: #bcc9f0;
|
|
261
|
+
--switch-track: #bcc0cc;
|
|
262
|
+
--switch-thumb: #ffffff;
|
|
263
|
+
--ticket-grad-top: #f2f4f8;
|
|
264
|
+
--ticket-grad-bot: #e9ecf2;
|
|
265
|
+
--shadow-color: rgba(70, 80, 110, 0.16);
|
|
266
|
+
--overlay-bg: rgba(40, 45, 70, 0.3);
|
|
267
|
+
--hover-veil: rgba(0, 0, 0, 0.04);
|
|
268
|
+
--footer-veil: rgba(255, 255, 255, 0.55);
|
|
269
|
+
}
|
|
270
|
+
|
|
1
271
|
* {
|
|
2
272
|
margin: 0;
|
|
3
273
|
padding: 0;
|
|
@@ -8,8 +278,8 @@ html, body, #root {
|
|
|
8
278
|
height: 100%;
|
|
9
279
|
width: 100%;
|
|
10
280
|
overflow: hidden;
|
|
11
|
-
background:
|
|
12
|
-
color:
|
|
281
|
+
background: var(--bg-app);
|
|
282
|
+
color: var(--text);
|
|
13
283
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
14
284
|
}
|
|
15
285
|
|
|
@@ -27,15 +297,15 @@ html, body, #root {
|
|
|
27
297
|
align-items: center;
|
|
28
298
|
justify-content: space-between;
|
|
29
299
|
padding: 0 16px 0 80px;
|
|
30
|
-
background:
|
|
31
|
-
border-bottom: 1px solid
|
|
300
|
+
background: var(--bg-chrome);
|
|
301
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
32
302
|
font-size: 13px;
|
|
33
303
|
flex-shrink: 0;
|
|
34
304
|
}
|
|
35
305
|
|
|
36
306
|
.titlebar-title {
|
|
37
307
|
font-weight: 600;
|
|
38
|
-
color:
|
|
308
|
+
color: var(--text-bright);
|
|
39
309
|
display: flex;
|
|
40
310
|
align-items: center;
|
|
41
311
|
gap: 6px;
|
|
@@ -43,12 +313,12 @@ html, body, #root {
|
|
|
43
313
|
}
|
|
44
314
|
|
|
45
315
|
.titlebar-title-sep {
|
|
46
|
-
color:
|
|
316
|
+
color: var(--text-muted);
|
|
47
317
|
font-weight: 400;
|
|
48
318
|
}
|
|
49
319
|
|
|
50
320
|
.titlebar-project {
|
|
51
|
-
color:
|
|
321
|
+
color: var(--accent);
|
|
52
322
|
font-weight: 600;
|
|
53
323
|
white-space: nowrap;
|
|
54
324
|
overflow: hidden;
|
|
@@ -64,9 +334,9 @@ html, body, #root {
|
|
|
64
334
|
}
|
|
65
335
|
|
|
66
336
|
.titlebar-controls select {
|
|
67
|
-
background:
|
|
68
|
-
color:
|
|
69
|
-
border: 1px solid
|
|
337
|
+
background: var(--bg-surface);
|
|
338
|
+
color: var(--text);
|
|
339
|
+
border: 1px solid var(--border);
|
|
70
340
|
border-radius: 4px;
|
|
71
341
|
padding: 2px 8px;
|
|
72
342
|
font-size: 12px;
|
|
@@ -75,13 +345,13 @@ html, body, #root {
|
|
|
75
345
|
|
|
76
346
|
.titlebar-controls select:focus {
|
|
77
347
|
outline: none;
|
|
78
|
-
border-color:
|
|
348
|
+
border-color: var(--accent);
|
|
79
349
|
}
|
|
80
350
|
|
|
81
351
|
.titlebar-btn {
|
|
82
|
-
background:
|
|
83
|
-
color:
|
|
84
|
-
border: 1px solid
|
|
352
|
+
background: var(--bg-surface);
|
|
353
|
+
color: var(--text-muted);
|
|
354
|
+
border: 1px solid var(--border);
|
|
85
355
|
border-radius: 4px;
|
|
86
356
|
padding: 2px 10px;
|
|
87
357
|
font-size: 11px;
|
|
@@ -90,14 +360,14 @@ html, body, #root {
|
|
|
90
360
|
}
|
|
91
361
|
|
|
92
362
|
.titlebar-btn:hover {
|
|
93
|
-
color:
|
|
94
|
-
border-color:
|
|
363
|
+
color: var(--text);
|
|
364
|
+
border-color: var(--border-strong);
|
|
95
365
|
}
|
|
96
366
|
|
|
97
367
|
.titlebar-btn.active {
|
|
98
|
-
color:
|
|
99
|
-
border-color:
|
|
100
|
-
background:
|
|
368
|
+
color: var(--accent);
|
|
369
|
+
border-color: var(--accent);
|
|
370
|
+
background: var(--bg-raised);
|
|
101
371
|
}
|
|
102
372
|
|
|
103
373
|
.titlebar-btn:disabled {
|
|
@@ -107,21 +377,21 @@ html, body, #root {
|
|
|
107
377
|
|
|
108
378
|
/* Keep the greyed-out look stable on hover for disabled buttons. */
|
|
109
379
|
.titlebar-btn:disabled:hover {
|
|
110
|
-
color:
|
|
111
|
-
border-color:
|
|
380
|
+
color: var(--text-muted);
|
|
381
|
+
border-color: var(--border);
|
|
112
382
|
}
|
|
113
383
|
|
|
114
384
|
.titlebar-separator {
|
|
115
385
|
width: 1px;
|
|
116
386
|
height: 16px;
|
|
117
|
-
background:
|
|
387
|
+
background: var(--border);
|
|
118
388
|
margin: 0 4px;
|
|
119
389
|
}
|
|
120
390
|
|
|
121
391
|
.titlebar-agent-btn {
|
|
122
|
-
background:
|
|
123
|
-
color:
|
|
124
|
-
border: 1px solid
|
|
392
|
+
background: var(--bg-surface);
|
|
393
|
+
color: var(--text-muted);
|
|
394
|
+
border: 1px solid var(--border);
|
|
125
395
|
border-radius: 4px;
|
|
126
396
|
padding: 2px 12px;
|
|
127
397
|
font-size: 11px;
|
|
@@ -130,14 +400,14 @@ html, body, #root {
|
|
|
130
400
|
}
|
|
131
401
|
|
|
132
402
|
.titlebar-agent-btn:hover {
|
|
133
|
-
color:
|
|
134
|
-
border-color:
|
|
403
|
+
color: var(--text);
|
|
404
|
+
border-color: var(--border-strong);
|
|
135
405
|
}
|
|
136
406
|
|
|
137
407
|
.titlebar-agent-btn.active {
|
|
138
|
-
color:
|
|
139
|
-
background:
|
|
140
|
-
border-color:
|
|
408
|
+
color: var(--on-accent);
|
|
409
|
+
background: var(--accent);
|
|
410
|
+
border-color: var(--accent);
|
|
141
411
|
font-weight: 600;
|
|
142
412
|
}
|
|
143
413
|
|
|
@@ -161,8 +431,8 @@ html, body, #root {
|
|
|
161
431
|
align-items: center;
|
|
162
432
|
gap: 1px;
|
|
163
433
|
padding: 2px 4px;
|
|
164
|
-
background:
|
|
165
|
-
border-bottom: 1px solid
|
|
434
|
+
background: var(--bg-chrome);
|
|
435
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
166
436
|
flex-shrink: 0;
|
|
167
437
|
overflow-x: auto;
|
|
168
438
|
min-height: 28px;
|
|
@@ -174,7 +444,7 @@ html, body, #root {
|
|
|
174
444
|
gap: 4px;
|
|
175
445
|
padding: 3px 8px;
|
|
176
446
|
font-size: 11px;
|
|
177
|
-
color:
|
|
447
|
+
color: var(--text-muted);
|
|
178
448
|
background: transparent;
|
|
179
449
|
border-radius: 4px;
|
|
180
450
|
cursor: pointer;
|
|
@@ -183,13 +453,13 @@ html, body, #root {
|
|
|
183
453
|
}
|
|
184
454
|
|
|
185
455
|
.terminal-tab:hover {
|
|
186
|
-
background:
|
|
187
|
-
color:
|
|
456
|
+
background: var(--bg-raised);
|
|
457
|
+
color: var(--text);
|
|
188
458
|
}
|
|
189
459
|
|
|
190
460
|
.terminal-tab.active {
|
|
191
|
-
background:
|
|
192
|
-
color:
|
|
461
|
+
background: var(--bg-app);
|
|
462
|
+
color: var(--text-bright);
|
|
193
463
|
}
|
|
194
464
|
|
|
195
465
|
.terminal-tab-label {
|
|
@@ -206,23 +476,23 @@ html, body, #root {
|
|
|
206
476
|
}
|
|
207
477
|
|
|
208
478
|
.terminal-tab-dot.active {
|
|
209
|
-
background:
|
|
479
|
+
background: var(--success);
|
|
210
480
|
}
|
|
211
481
|
|
|
212
482
|
.terminal-tab-dot.exited {
|
|
213
|
-
background:
|
|
483
|
+
background: var(--text-muted);
|
|
214
484
|
}
|
|
215
485
|
|
|
216
486
|
/* Agent is waiting on the user — pulse to draw the eye across tabs. */
|
|
217
487
|
.terminal-tab-dot.awaiting {
|
|
218
|
-
background:
|
|
219
|
-
color:
|
|
488
|
+
background: var(--warning); /* amber: waiting for next prompt */
|
|
489
|
+
color: var(--warning); /* drives the box-shadow glow via currentColor */
|
|
220
490
|
animation: tab-dot-pulse 1.1s ease-in-out infinite;
|
|
221
491
|
}
|
|
222
492
|
|
|
223
493
|
.terminal-tab-dot.decision {
|
|
224
|
-
background:
|
|
225
|
-
color:
|
|
494
|
+
background: var(--danger); /* red: blocked on an approval/permission prompt */
|
|
495
|
+
color: var(--danger);
|
|
226
496
|
animation: tab-dot-pulse 1.1s ease-in-out infinite;
|
|
227
497
|
}
|
|
228
498
|
|
|
@@ -245,14 +515,14 @@ html, body, #root {
|
|
|
245
515
|
|
|
246
516
|
.terminal-tab-close:hover {
|
|
247
517
|
opacity: 1;
|
|
248
|
-
background:
|
|
249
|
-
color:
|
|
518
|
+
background: color-mix(in srgb, var(--danger) 20%, transparent);
|
|
519
|
+
color: var(--danger);
|
|
250
520
|
}
|
|
251
521
|
|
|
252
522
|
.terminal-tab-add {
|
|
253
523
|
background: none;
|
|
254
524
|
border: none;
|
|
255
|
-
color:
|
|
525
|
+
color: var(--text-muted);
|
|
256
526
|
font-size: 16px;
|
|
257
527
|
cursor: pointer;
|
|
258
528
|
padding: 2px 6px;
|
|
@@ -261,8 +531,8 @@ html, body, #root {
|
|
|
261
531
|
}
|
|
262
532
|
|
|
263
533
|
.terminal-tab-add:hover {
|
|
264
|
-
background:
|
|
265
|
-
color:
|
|
534
|
+
background: var(--bg-raised);
|
|
535
|
+
color: var(--text);
|
|
266
536
|
}
|
|
267
537
|
|
|
268
538
|
.terminal-tabs-content {
|
|
@@ -308,18 +578,18 @@ html, body, #root {
|
|
|
308
578
|
gap: 5px;
|
|
309
579
|
padding: 5px 12px;
|
|
310
580
|
border-radius: 14px;
|
|
311
|
-
background:
|
|
312
|
-
border: 1px solid
|
|
313
|
-
color:
|
|
581
|
+
background: var(--bg-surface);
|
|
582
|
+
border: 1px solid var(--accent);
|
|
583
|
+
color: var(--text-bright);
|
|
314
584
|
font-family: inherit;
|
|
315
585
|
font-size: 11.5px;
|
|
316
586
|
font-weight: 600;
|
|
317
587
|
cursor: pointer;
|
|
318
|
-
box-shadow: 0 4px 14px
|
|
588
|
+
box-shadow: 0 4px 14px var(--shadow-color);
|
|
319
589
|
transition: background 0.13s ease, transform 0.06s ease;
|
|
320
590
|
}
|
|
321
591
|
.term-jump-latest:hover {
|
|
322
|
-
background:
|
|
592
|
+
background: var(--bg-surface-hi);
|
|
323
593
|
}
|
|
324
594
|
.term-jump-latest:active {
|
|
325
595
|
transform: translateY(1px);
|
|
@@ -363,7 +633,7 @@ html, body, #root {
|
|
|
363
633
|
/* Dividers */
|
|
364
634
|
.split-divider {
|
|
365
635
|
flex-shrink: 0;
|
|
366
|
-
background:
|
|
636
|
+
background: var(--bg-surface);
|
|
367
637
|
transition: background 0.15s;
|
|
368
638
|
z-index: 2;
|
|
369
639
|
}
|
|
@@ -381,7 +651,7 @@ html, body, #root {
|
|
|
381
651
|
}
|
|
382
652
|
|
|
383
653
|
.split-divider:hover {
|
|
384
|
-
background:
|
|
654
|
+
background: var(--accent);
|
|
385
655
|
}
|
|
386
656
|
|
|
387
657
|
/* Leaf pane */
|
|
@@ -410,8 +680,8 @@ html, body, #root {
|
|
|
410
680
|
align-items: center;
|
|
411
681
|
height: 26px;
|
|
412
682
|
padding: 0 6px;
|
|
413
|
-
background:
|
|
414
|
-
border-bottom: 1px solid
|
|
683
|
+
background: var(--bg-chrome);
|
|
684
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
415
685
|
flex-shrink: 0;
|
|
416
686
|
cursor: grab;
|
|
417
687
|
user-select: none;
|
|
@@ -423,19 +693,19 @@ html, body, #root {
|
|
|
423
693
|
|
|
424
694
|
.pane-drag-grip {
|
|
425
695
|
font-size: 10px;
|
|
426
|
-
color:
|
|
696
|
+
color: var(--text-dim);
|
|
427
697
|
margin-right: 6px;
|
|
428
698
|
line-height: 1;
|
|
429
699
|
}
|
|
430
700
|
|
|
431
701
|
.pane-header:hover .pane-drag-grip {
|
|
432
|
-
color:
|
|
702
|
+
color: var(--accent);
|
|
433
703
|
}
|
|
434
704
|
|
|
435
705
|
.pane-header-label {
|
|
436
706
|
font-size: 11px;
|
|
437
707
|
font-weight: 600;
|
|
438
|
-
color:
|
|
708
|
+
color: var(--text-muted);
|
|
439
709
|
letter-spacing: 0.3px;
|
|
440
710
|
flex: 1;
|
|
441
711
|
}
|
|
@@ -443,7 +713,7 @@ html, body, #root {
|
|
|
443
713
|
.pane-hide-btn {
|
|
444
714
|
background: none;
|
|
445
715
|
border: none;
|
|
446
|
-
color:
|
|
716
|
+
color: var(--text-dim);
|
|
447
717
|
font-size: 14px;
|
|
448
718
|
cursor: pointer;
|
|
449
719
|
padding: 0 4px;
|
|
@@ -451,7 +721,7 @@ html, body, #root {
|
|
|
451
721
|
}
|
|
452
722
|
|
|
453
723
|
.pane-hide-btn:hover {
|
|
454
|
-
color:
|
|
724
|
+
color: var(--danger);
|
|
455
725
|
}
|
|
456
726
|
|
|
457
727
|
/* Drop zone overlay */
|
|
@@ -510,8 +780,8 @@ html, body, #root {
|
|
|
510
780
|
}
|
|
511
781
|
|
|
512
782
|
.drop-zone.active {
|
|
513
|
-
background:
|
|
514
|
-
border: 2px solid
|
|
783
|
+
background: color-mix(in srgb, var(--accent) 25%, transparent);
|
|
784
|
+
border: 2px solid color-mix(in srgb, var(--accent) 60%, transparent);
|
|
515
785
|
}
|
|
516
786
|
|
|
517
787
|
.multi-split-empty {
|
|
@@ -520,7 +790,7 @@ html, body, #root {
|
|
|
520
790
|
display: flex;
|
|
521
791
|
align-items: center;
|
|
522
792
|
justify-content: center;
|
|
523
|
-
color:
|
|
793
|
+
color: var(--text-muted);
|
|
524
794
|
font-size: 13px;
|
|
525
795
|
}
|
|
526
796
|
|
|
@@ -539,8 +809,8 @@ html, body, #root {
|
|
|
539
809
|
align-items: center;
|
|
540
810
|
gap: 4px;
|
|
541
811
|
padding: 5px 6px;
|
|
542
|
-
background:
|
|
543
|
-
border-bottom: 1px solid
|
|
812
|
+
background: var(--bg-app);
|
|
813
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
544
814
|
}
|
|
545
815
|
|
|
546
816
|
.ctlsurf-nav-btn {
|
|
@@ -554,18 +824,18 @@ html, body, #root {
|
|
|
554
824
|
background: transparent;
|
|
555
825
|
border: none;
|
|
556
826
|
border-radius: 4px;
|
|
557
|
-
color:
|
|
827
|
+
color: var(--text);
|
|
558
828
|
font-size: 16px;
|
|
559
829
|
line-height: 1;
|
|
560
830
|
cursor: pointer;
|
|
561
831
|
}
|
|
562
832
|
|
|
563
833
|
.ctlsurf-nav-btn:hover:not(:disabled) {
|
|
564
|
-
background:
|
|
834
|
+
background: var(--bg-surface);
|
|
565
835
|
}
|
|
566
836
|
|
|
567
837
|
.ctlsurf-nav-btn:disabled {
|
|
568
|
-
color:
|
|
838
|
+
color: var(--text-muted);
|
|
569
839
|
opacity: 0.5;
|
|
570
840
|
cursor: default;
|
|
571
841
|
}
|
|
@@ -580,16 +850,16 @@ html, body, #root {
|
|
|
580
850
|
width: 100%;
|
|
581
851
|
height: 26px;
|
|
582
852
|
padding: 0 11px;
|
|
583
|
-
background:
|
|
584
|
-
border: 1px solid
|
|
853
|
+
background: var(--bg-chrome);
|
|
854
|
+
border: 1px solid var(--border-subtle);
|
|
585
855
|
border-radius: 13px;
|
|
586
|
-
color:
|
|
856
|
+
color: var(--text-bright);
|
|
587
857
|
font-size: 12px;
|
|
588
858
|
outline: none;
|
|
589
859
|
}
|
|
590
860
|
|
|
591
861
|
.ctlsurf-address-input:focus {
|
|
592
|
-
border-color:
|
|
862
|
+
border-color: var(--accent);
|
|
593
863
|
}
|
|
594
864
|
|
|
595
865
|
.ctlsurf-webview-host {
|
|
@@ -618,10 +888,10 @@ html, body, #root {
|
|
|
618
888
|
align-items: center;
|
|
619
889
|
justify-content: space-between;
|
|
620
890
|
padding: 0 12px;
|
|
621
|
-
background:
|
|
622
|
-
border-top: 1px solid
|
|
891
|
+
background: var(--bg-chrome);
|
|
892
|
+
border-top: 1px solid var(--border-subtle);
|
|
623
893
|
font-size: 11px;
|
|
624
|
-
color:
|
|
894
|
+
color: var(--text-muted);
|
|
625
895
|
flex-shrink: 0;
|
|
626
896
|
}
|
|
627
897
|
|
|
@@ -636,14 +906,14 @@ html, body, #root {
|
|
|
636
906
|
border-radius: 3px;
|
|
637
907
|
font-size: 11px;
|
|
638
908
|
cursor: pointer;
|
|
639
|
-
border: 1px solid
|
|
640
|
-
background:
|
|
641
|
-
color:
|
|
909
|
+
border: 1px solid var(--border);
|
|
910
|
+
background: var(--bg-surface);
|
|
911
|
+
color: var(--accent);
|
|
642
912
|
margin-left: 4px;
|
|
643
913
|
}
|
|
644
914
|
|
|
645
915
|
.statusbar-btn:hover {
|
|
646
|
-
background:
|
|
916
|
+
background: var(--border);
|
|
647
917
|
}
|
|
648
918
|
|
|
649
919
|
.statusbar-btn:disabled {
|
|
@@ -655,14 +925,14 @@ html, body, #root {
|
|
|
655
925
|
cursor: pointer;
|
|
656
926
|
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
657
927
|
font-size: 11px;
|
|
658
|
-
color:
|
|
928
|
+
color: var(--text);
|
|
659
929
|
padding: 1px 4px;
|
|
660
930
|
border-radius: 3px;
|
|
661
931
|
}
|
|
662
932
|
|
|
663
933
|
.statusbar-path:hover {
|
|
664
|
-
background:
|
|
665
|
-
color:
|
|
934
|
+
background: var(--bg-surface);
|
|
935
|
+
color: var(--accent);
|
|
666
936
|
}
|
|
667
937
|
|
|
668
938
|
.status-dot {
|
|
@@ -672,21 +942,21 @@ html, body, #root {
|
|
|
672
942
|
display: inline-block;
|
|
673
943
|
}
|
|
674
944
|
|
|
675
|
-
.status-dot.active { background:
|
|
676
|
-
.status-dot.inactive { background:
|
|
677
|
-
.status-dot.idle { background:
|
|
678
|
-
.status-dot.pending { background:
|
|
945
|
+
.status-dot.active { background: var(--success); }
|
|
946
|
+
.status-dot.inactive { background: var(--danger); }
|
|
947
|
+
.status-dot.idle { background: var(--text-muted); }
|
|
948
|
+
.status-dot.pending { background: var(--warning); }
|
|
679
949
|
|
|
680
950
|
.statusbar-version {
|
|
681
951
|
margin-left: 12px;
|
|
682
|
-
color:
|
|
952
|
+
color: var(--text-muted);
|
|
683
953
|
font-size: 11px;
|
|
684
954
|
white-space: nowrap;
|
|
685
955
|
cursor: help;
|
|
686
956
|
}
|
|
687
957
|
|
|
688
958
|
.statusbar-version.has-update {
|
|
689
|
-
color:
|
|
959
|
+
color: var(--warning);
|
|
690
960
|
font-weight: 500;
|
|
691
961
|
}
|
|
692
962
|
|
|
@@ -697,8 +967,8 @@ html, body, #root {
|
|
|
697
967
|
display: inline-block;
|
|
698
968
|
vertical-align: middle;
|
|
699
969
|
}
|
|
700
|
-
.tracking-dot.on { background:
|
|
701
|
-
.tracking-dot.off { background:
|
|
970
|
+
.tracking-dot.on { background: var(--success); box-shadow: 0 0 4px var(--success); }
|
|
971
|
+
.tracking-dot.off { background: var(--text-muted); }
|
|
702
972
|
|
|
703
973
|
.titlebar-icon-btn {
|
|
704
974
|
display: inline-flex;
|
|
@@ -726,14 +996,14 @@ html, body, #root {
|
|
|
726
996
|
cursor: not-allowed;
|
|
727
997
|
}
|
|
728
998
|
.voice-btn.listening {
|
|
729
|
-
color:
|
|
730
|
-
border-color:
|
|
731
|
-
background:
|
|
999
|
+
color: var(--danger);
|
|
1000
|
+
border-color: var(--danger);
|
|
1001
|
+
background: var(--bg-raised);
|
|
732
1002
|
}
|
|
733
1003
|
.voice-btn.busy {
|
|
734
|
-
color:
|
|
735
|
-
border-color:
|
|
736
|
-
background:
|
|
1004
|
+
color: var(--warning);
|
|
1005
|
+
border-color: var(--warning);
|
|
1006
|
+
background: var(--bg-raised);
|
|
737
1007
|
}
|
|
738
1008
|
.voice-icon {
|
|
739
1009
|
font-size: 13px;
|
|
@@ -745,16 +1015,16 @@ html, body, #root {
|
|
|
745
1015
|
border-radius: 50%;
|
|
746
1016
|
display: inline-block;
|
|
747
1017
|
vertical-align: middle;
|
|
748
|
-
background:
|
|
1018
|
+
background: var(--text-muted);
|
|
749
1019
|
}
|
|
750
1020
|
.voice-dot.on {
|
|
751
|
-
background:
|
|
752
|
-
box-shadow: 0 0 4px
|
|
1021
|
+
background: var(--danger);
|
|
1022
|
+
box-shadow: 0 0 4px var(--danger);
|
|
753
1023
|
animation: voice-pulse 1s ease-in-out infinite;
|
|
754
1024
|
}
|
|
755
1025
|
.voice-dot.busy {
|
|
756
|
-
background:
|
|
757
|
-
box-shadow: 0 0 4px
|
|
1026
|
+
background: var(--warning);
|
|
1027
|
+
box-shadow: 0 0 4px var(--warning);
|
|
758
1028
|
animation: voice-pulse 0.8s ease-in-out infinite;
|
|
759
1029
|
}
|
|
760
1030
|
@keyframes voice-pulse {
|
|
@@ -776,27 +1046,27 @@ html, body, #root {
|
|
|
776
1046
|
text-overflow: ellipsis;
|
|
777
1047
|
z-index: 50;
|
|
778
1048
|
pointer-events: none;
|
|
779
|
-
border: 1px solid
|
|
1049
|
+
border: 1px solid var(--border);
|
|
780
1050
|
}
|
|
781
1051
|
.voice-chip.listening {
|
|
782
|
-
background:
|
|
783
|
-
color:
|
|
1052
|
+
background: var(--bg-raised);
|
|
1053
|
+
color: var(--text);
|
|
784
1054
|
}
|
|
785
1055
|
.voice-chip.busy {
|
|
786
|
-
background:
|
|
787
|
-
color:
|
|
788
|
-
border-color:
|
|
1056
|
+
background: var(--bg-raised);
|
|
1057
|
+
color: var(--warning);
|
|
1058
|
+
border-color: var(--warning);
|
|
789
1059
|
}
|
|
790
1060
|
.voice-chip.notice {
|
|
791
|
-
background:
|
|
792
|
-
color:
|
|
793
|
-
border-color:
|
|
1061
|
+
background: var(--bg-raised);
|
|
1062
|
+
color: var(--warning);
|
|
1063
|
+
border-color: var(--warning);
|
|
794
1064
|
white-space: normal;
|
|
795
1065
|
}
|
|
796
1066
|
.voice-chip.error {
|
|
797
|
-
background:
|
|
798
|
-
color:
|
|
799
|
-
border-color:
|
|
1067
|
+
background: var(--danger-bg);
|
|
1068
|
+
color: var(--danger);
|
|
1069
|
+
border-color: var(--danger);
|
|
800
1070
|
white-space: normal;
|
|
801
1071
|
}
|
|
802
1072
|
|
|
@@ -809,10 +1079,10 @@ html, body, #root {
|
|
|
809
1079
|
align-items: center;
|
|
810
1080
|
gap: 4px;
|
|
811
1081
|
padding: 4px 4px 6px;
|
|
812
|
-
background:
|
|
813
|
-
border: 1px solid
|
|
1082
|
+
background: var(--bg-chrome);
|
|
1083
|
+
border: 1px solid var(--border);
|
|
814
1084
|
border-radius: 12px;
|
|
815
|
-
box-shadow: 0 4px 16px
|
|
1085
|
+
box-shadow: 0 4px 16px var(--shadow-color);
|
|
816
1086
|
user-select: none;
|
|
817
1087
|
-webkit-user-select: none;
|
|
818
1088
|
}
|
|
@@ -826,7 +1096,7 @@ html, body, #root {
|
|
|
826
1096
|
}
|
|
827
1097
|
.floating-mic-handle:active { cursor: grabbing; }
|
|
828
1098
|
.floating-mic-grip {
|
|
829
|
-
color:
|
|
1099
|
+
color: var(--text-muted);
|
|
830
1100
|
font-size: 12px;
|
|
831
1101
|
line-height: 1;
|
|
832
1102
|
padding: 0 2px;
|
|
@@ -834,13 +1104,13 @@ html, body, #root {
|
|
|
834
1104
|
.floating-mic-hide {
|
|
835
1105
|
background: transparent;
|
|
836
1106
|
border: none;
|
|
837
|
-
color:
|
|
1107
|
+
color: var(--text-muted);
|
|
838
1108
|
font-size: 15px;
|
|
839
1109
|
line-height: 1;
|
|
840
1110
|
cursor: pointer;
|
|
841
1111
|
padding: 0 2px;
|
|
842
1112
|
}
|
|
843
|
-
.floating-mic-hide:hover { color:
|
|
1113
|
+
.floating-mic-hide:hover { color: var(--danger); }
|
|
844
1114
|
|
|
845
1115
|
/* Smaller sibling of the round mic: read the last agent reply aloud. */
|
|
846
1116
|
.floating-mic-read {
|
|
@@ -850,16 +1120,16 @@ html, body, #root {
|
|
|
850
1120
|
display: inline-flex;
|
|
851
1121
|
align-items: center;
|
|
852
1122
|
justify-content: center;
|
|
853
|
-
background:
|
|
854
|
-
border: 1px solid
|
|
855
|
-
color:
|
|
1123
|
+
background: var(--bg-surface);
|
|
1124
|
+
border: 1px solid var(--border);
|
|
1125
|
+
color: var(--text);
|
|
856
1126
|
cursor: pointer;
|
|
857
1127
|
transition: all 0.15s;
|
|
858
1128
|
}
|
|
859
|
-
.floating-mic-read:hover { border-color:
|
|
1129
|
+
.floating-mic-read:hover { border-color: var(--border-strong); color: var(--text-bright); }
|
|
860
1130
|
.floating-mic-read.speaking {
|
|
861
|
-
color:
|
|
862
|
-
border-color:
|
|
1131
|
+
color: var(--accent);
|
|
1132
|
+
border-color: var(--accent);
|
|
863
1133
|
}
|
|
864
1134
|
.floating-mic-note {
|
|
865
1135
|
position: absolute;
|
|
@@ -868,9 +1138,9 @@ html, body, #root {
|
|
|
868
1138
|
transform: translateX(-50%);
|
|
869
1139
|
white-space: nowrap;
|
|
870
1140
|
font-size: 11px;
|
|
871
|
-
color:
|
|
872
|
-
background:
|
|
873
|
-
border: 1px solid
|
|
1141
|
+
color: var(--text-muted);
|
|
1142
|
+
background: var(--bg-chrome);
|
|
1143
|
+
border: 1px solid var(--border);
|
|
874
1144
|
border-radius: 6px;
|
|
875
1145
|
padding: 2px 6px;
|
|
876
1146
|
pointer-events: none;
|
|
@@ -883,14 +1153,14 @@ html, body, #root {
|
|
|
883
1153
|
display: inline-flex;
|
|
884
1154
|
align-items: center;
|
|
885
1155
|
justify-content: center;
|
|
886
|
-
background:
|
|
887
|
-
border: 1px solid
|
|
888
|
-
color:
|
|
1156
|
+
background: var(--bg-surface);
|
|
1157
|
+
border: 1px solid var(--border);
|
|
1158
|
+
color: var(--text);
|
|
889
1159
|
cursor: pointer;
|
|
890
1160
|
position: relative;
|
|
891
1161
|
transition: all 0.15s;
|
|
892
1162
|
}
|
|
893
|
-
.voice-btn-floating:hover { border-color:
|
|
1163
|
+
.voice-btn-floating:hover { border-color: var(--border-strong); }
|
|
894
1164
|
.voice-btn-floating .voice-icon { font-size: 22px; }
|
|
895
1165
|
.voice-btn-floating .voice-dot {
|
|
896
1166
|
position: absolute;
|
|
@@ -922,15 +1192,15 @@ html, body, #root {
|
|
|
922
1192
|
padding: 0;
|
|
923
1193
|
font-size: 10px;
|
|
924
1194
|
line-height: 1;
|
|
925
|
-
background:
|
|
926
|
-
border: 1px solid
|
|
927
|
-
color:
|
|
1195
|
+
background: var(--bg-surface);
|
|
1196
|
+
border: 1px solid var(--border);
|
|
1197
|
+
color: var(--text);
|
|
928
1198
|
cursor: pointer;
|
|
929
1199
|
z-index: 60;
|
|
930
1200
|
}
|
|
931
1201
|
.voice-source-btn:hover {
|
|
932
|
-
border-color:
|
|
933
|
-
color:
|
|
1202
|
+
border-color: var(--accent);
|
|
1203
|
+
color: var(--text-bright);
|
|
934
1204
|
}
|
|
935
1205
|
.voice-source-menu {
|
|
936
1206
|
position: absolute;
|
|
@@ -940,17 +1210,17 @@ html, body, #root {
|
|
|
940
1210
|
min-width: 200px;
|
|
941
1211
|
max-width: 280px;
|
|
942
1212
|
padding: 4px;
|
|
943
|
-
background:
|
|
944
|
-
border: 1px solid
|
|
1213
|
+
background: var(--bg-chrome);
|
|
1214
|
+
border: 1px solid var(--border);
|
|
945
1215
|
border-radius: 8px;
|
|
946
|
-
box-shadow: 0 6px 20px
|
|
1216
|
+
box-shadow: 0 6px 20px var(--shadow-color);
|
|
947
1217
|
z-index: 300;
|
|
948
1218
|
}
|
|
949
1219
|
.voice-source-head {
|
|
950
1220
|
font-size: 10px;
|
|
951
1221
|
text-transform: uppercase;
|
|
952
1222
|
letter-spacing: 0.04em;
|
|
953
|
-
color:
|
|
1223
|
+
color: var(--text-muted);
|
|
954
1224
|
padding: 4px 8px 6px;
|
|
955
1225
|
}
|
|
956
1226
|
.voice-source-item {
|
|
@@ -962,17 +1232,17 @@ html, body, #root {
|
|
|
962
1232
|
border: none;
|
|
963
1233
|
border-radius: 5px;
|
|
964
1234
|
background: transparent;
|
|
965
|
-
color:
|
|
1235
|
+
color: var(--text);
|
|
966
1236
|
font-size: 12px;
|
|
967
1237
|
text-align: left;
|
|
968
1238
|
cursor: pointer;
|
|
969
1239
|
}
|
|
970
|
-
.voice-source-item:hover { background:
|
|
971
|
-
.voice-source-item.active { color:
|
|
1240
|
+
.voice-source-item:hover { background: var(--bg-raised); }
|
|
1241
|
+
.voice-source-item.active { color: var(--accent); }
|
|
972
1242
|
.voice-source-check {
|
|
973
1243
|
flex: 0 0 12px;
|
|
974
1244
|
width: 12px;
|
|
975
|
-
color:
|
|
1245
|
+
color: var(--accent);
|
|
976
1246
|
font-size: 11px;
|
|
977
1247
|
}
|
|
978
1248
|
.voice-source-label {
|
|
@@ -983,7 +1253,7 @@ html, body, #root {
|
|
|
983
1253
|
.voice-source-empty {
|
|
984
1254
|
padding: 6px 8px;
|
|
985
1255
|
font-size: 11px;
|
|
986
|
-
color:
|
|
1256
|
+
color: var(--text-muted);
|
|
987
1257
|
}
|
|
988
1258
|
|
|
989
1259
|
/* Spoken-replies titlebar control */
|
|
@@ -993,13 +1263,13 @@ html, body, #root {
|
|
|
993
1263
|
align-items: center;
|
|
994
1264
|
}
|
|
995
1265
|
.speak-btn.active {
|
|
996
|
-
color:
|
|
997
|
-
border-color:
|
|
1266
|
+
color: var(--accent);
|
|
1267
|
+
border-color: var(--accent);
|
|
998
1268
|
}
|
|
999
1269
|
.speak-pct {
|
|
1000
1270
|
font-size: 9px;
|
|
1001
1271
|
margin-left: 3px;
|
|
1002
|
-
color:
|
|
1272
|
+
color: var(--warning);
|
|
1003
1273
|
}
|
|
1004
1274
|
.speak-caret {
|
|
1005
1275
|
padding: 0 3px;
|
|
@@ -1007,10 +1277,10 @@ html, body, #root {
|
|
|
1007
1277
|
min-width: 0;
|
|
1008
1278
|
}
|
|
1009
1279
|
.speak-stop {
|
|
1010
|
-
color:
|
|
1011
|
-
border-color:
|
|
1280
|
+
color: var(--danger);
|
|
1281
|
+
border-color: var(--danger);
|
|
1012
1282
|
}
|
|
1013
|
-
.speak-stop:hover { background:
|
|
1283
|
+
.speak-stop:hover { background: var(--danger-bg); }
|
|
1014
1284
|
.speak-error {
|
|
1015
1285
|
position: absolute;
|
|
1016
1286
|
top: 100%;
|
|
@@ -1023,9 +1293,9 @@ html, body, #root {
|
|
|
1023
1293
|
line-height: 1.3;
|
|
1024
1294
|
white-space: normal;
|
|
1025
1295
|
word-break: break-word;
|
|
1026
|
-
background:
|
|
1027
|
-
color:
|
|
1028
|
-
border: 1px solid
|
|
1296
|
+
background: var(--danger-bg);
|
|
1297
|
+
color: var(--danger);
|
|
1298
|
+
border: 1px solid var(--danger);
|
|
1029
1299
|
z-index: 60;
|
|
1030
1300
|
}
|
|
1031
1301
|
.speak-menu {
|
|
@@ -1036,17 +1306,17 @@ html, body, #root {
|
|
|
1036
1306
|
min-width: 220px;
|
|
1037
1307
|
max-width: 280px;
|
|
1038
1308
|
padding: 6px;
|
|
1039
|
-
background:
|
|
1040
|
-
border: 1px solid
|
|
1309
|
+
background: var(--bg-chrome);
|
|
1310
|
+
border: 1px solid var(--border);
|
|
1041
1311
|
border-radius: 8px;
|
|
1042
|
-
box-shadow: 0 6px 20px
|
|
1312
|
+
box-shadow: 0 6px 20px var(--shadow-color);
|
|
1043
1313
|
z-index: 300;
|
|
1044
1314
|
}
|
|
1045
1315
|
.speak-menu-head {
|
|
1046
1316
|
font-size: 10px;
|
|
1047
1317
|
text-transform: uppercase;
|
|
1048
1318
|
letter-spacing: 0.04em;
|
|
1049
|
-
color:
|
|
1319
|
+
color: var(--text-muted);
|
|
1050
1320
|
padding: 6px 6px 4px;
|
|
1051
1321
|
}
|
|
1052
1322
|
.speak-menu-item {
|
|
@@ -1058,33 +1328,33 @@ html, body, #root {
|
|
|
1058
1328
|
border: none;
|
|
1059
1329
|
border-radius: 5px;
|
|
1060
1330
|
background: transparent;
|
|
1061
|
-
color:
|
|
1331
|
+
color: var(--text);
|
|
1062
1332
|
font-size: 12px;
|
|
1063
1333
|
text-align: left;
|
|
1064
1334
|
cursor: pointer;
|
|
1065
1335
|
}
|
|
1066
|
-
.speak-menu-item:hover { background:
|
|
1067
|
-
.speak-menu-item.active { color:
|
|
1336
|
+
.speak-menu-item:hover { background: var(--bg-raised); }
|
|
1337
|
+
.speak-menu-item.active { color: var(--accent); }
|
|
1068
1338
|
.speak-menu-check {
|
|
1069
1339
|
flex: 0 0 12px;
|
|
1070
1340
|
width: 12px;
|
|
1071
|
-
color:
|
|
1341
|
+
color: var(--accent);
|
|
1072
1342
|
font-size: 11px;
|
|
1073
1343
|
}
|
|
1074
1344
|
.speak-select {
|
|
1075
1345
|
width: 100%;
|
|
1076
1346
|
margin: 2px 0 4px;
|
|
1077
1347
|
padding: 4px 6px;
|
|
1078
|
-
background:
|
|
1079
|
-
color:
|
|
1080
|
-
border: 1px solid
|
|
1348
|
+
background: var(--bg-raised);
|
|
1349
|
+
color: var(--text);
|
|
1350
|
+
border: 1px solid var(--border);
|
|
1081
1351
|
border-radius: 5px;
|
|
1082
1352
|
font-size: 12px;
|
|
1083
1353
|
}
|
|
1084
1354
|
.speak-rate {
|
|
1085
1355
|
width: 100%;
|
|
1086
1356
|
margin: 2px 0 6px;
|
|
1087
|
-
accent-color:
|
|
1357
|
+
accent-color: var(--accent);
|
|
1088
1358
|
}
|
|
1089
1359
|
.speak-menu-row {
|
|
1090
1360
|
display: flex;
|
|
@@ -1094,14 +1364,14 @@ html, body, #root {
|
|
|
1094
1364
|
.speak-menu-btn {
|
|
1095
1365
|
flex: 1;
|
|
1096
1366
|
padding: 5px 6px;
|
|
1097
|
-
background:
|
|
1098
|
-
color:
|
|
1099
|
-
border: 1px solid
|
|
1367
|
+
background: var(--bg-surface);
|
|
1368
|
+
color: var(--text);
|
|
1369
|
+
border: 1px solid var(--border);
|
|
1100
1370
|
border-radius: 5px;
|
|
1101
1371
|
font-size: 12px;
|
|
1102
1372
|
cursor: pointer;
|
|
1103
1373
|
}
|
|
1104
|
-
.speak-menu-btn:hover { border-color:
|
|
1374
|
+
.speak-menu-btn:hover { border-color: var(--accent); color: var(--text-bright); }
|
|
1105
1375
|
|
|
1106
1376
|
/* Editor panel */
|
|
1107
1377
|
.editor-panel {
|
|
@@ -1109,7 +1379,7 @@ html, body, #root {
|
|
|
1109
1379
|
width: 100%;
|
|
1110
1380
|
height: 100%;
|
|
1111
1381
|
overflow: hidden;
|
|
1112
|
-
background:
|
|
1382
|
+
background: var(--bg-editor);
|
|
1113
1383
|
}
|
|
1114
1384
|
|
|
1115
1385
|
.editor-tree {
|
|
@@ -1117,17 +1387,17 @@ html, body, #root {
|
|
|
1117
1387
|
display: flex;
|
|
1118
1388
|
flex-direction: column;
|
|
1119
1389
|
flex-shrink: 0;
|
|
1120
|
-
background:
|
|
1121
|
-
border-right: 1px solid
|
|
1390
|
+
background: var(--bg-app);
|
|
1391
|
+
border-right: 1px solid var(--border-subtle);
|
|
1122
1392
|
}
|
|
1123
1393
|
|
|
1124
1394
|
.editor-tree-header {
|
|
1125
1395
|
padding: 8px 12px;
|
|
1126
1396
|
font-size: 11px;
|
|
1127
1397
|
font-weight: 600;
|
|
1128
|
-
color:
|
|
1398
|
+
color: var(--text-muted);
|
|
1129
1399
|
letter-spacing: 0.5px;
|
|
1130
|
-
border-bottom: 1px solid
|
|
1400
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1131
1401
|
flex-shrink: 0;
|
|
1132
1402
|
}
|
|
1133
1403
|
|
|
@@ -1142,7 +1412,7 @@ html, body, #root {
|
|
|
1142
1412
|
}
|
|
1143
1413
|
|
|
1144
1414
|
.editor-tree-content::-webkit-scrollbar-thumb {
|
|
1145
|
-
background:
|
|
1415
|
+
background: var(--bg-surface);
|
|
1146
1416
|
border-radius: 3px;
|
|
1147
1417
|
}
|
|
1148
1418
|
|
|
@@ -1152,19 +1422,19 @@ html, body, #root {
|
|
|
1152
1422
|
padding: 3px 0;
|
|
1153
1423
|
cursor: pointer;
|
|
1154
1424
|
font-size: 12px;
|
|
1155
|
-
color:
|
|
1425
|
+
color: var(--text);
|
|
1156
1426
|
white-space: nowrap;
|
|
1157
1427
|
overflow: hidden;
|
|
1158
1428
|
text-overflow: ellipsis;
|
|
1159
1429
|
}
|
|
1160
1430
|
|
|
1161
1431
|
.tree-node:hover {
|
|
1162
|
-
background:
|
|
1432
|
+
background: color-mix(in srgb, var(--accent) 8%, transparent);
|
|
1163
1433
|
}
|
|
1164
1434
|
|
|
1165
1435
|
.tree-node.selected {
|
|
1166
|
-
background:
|
|
1167
|
-
color:
|
|
1436
|
+
background: color-mix(in srgb, var(--accent) 15%, transparent);
|
|
1437
|
+
color: var(--text-bright);
|
|
1168
1438
|
}
|
|
1169
1439
|
|
|
1170
1440
|
.tree-icon {
|
|
@@ -1172,7 +1442,7 @@ html, body, #root {
|
|
|
1172
1442
|
text-align: center;
|
|
1173
1443
|
flex-shrink: 0;
|
|
1174
1444
|
font-size: 10px;
|
|
1175
|
-
color:
|
|
1445
|
+
color: var(--text-muted);
|
|
1176
1446
|
}
|
|
1177
1447
|
|
|
1178
1448
|
.tree-file-icon {
|
|
@@ -1193,7 +1463,7 @@ html, body, #root {
|
|
|
1193
1463
|
}
|
|
1194
1464
|
|
|
1195
1465
|
.editor-tree-divider:hover {
|
|
1196
|
-
background:
|
|
1466
|
+
background: var(--accent);
|
|
1197
1467
|
}
|
|
1198
1468
|
|
|
1199
1469
|
.editor-main {
|
|
@@ -1210,36 +1480,36 @@ html, body, #root {
|
|
|
1210
1480
|
gap: 4px;
|
|
1211
1481
|
padding: 0 8px;
|
|
1212
1482
|
height: 32px;
|
|
1213
|
-
background:
|
|
1214
|
-
border-bottom: 1px solid
|
|
1483
|
+
background: var(--bg-chrome);
|
|
1484
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1215
1485
|
flex-shrink: 0;
|
|
1216
1486
|
}
|
|
1217
1487
|
|
|
1218
1488
|
.editor-tab {
|
|
1219
1489
|
font-size: 12px;
|
|
1220
|
-
color:
|
|
1490
|
+
color: var(--text);
|
|
1221
1491
|
padding: 4px 10px;
|
|
1222
1492
|
border-radius: 3px;
|
|
1223
1493
|
}
|
|
1224
1494
|
|
|
1225
1495
|
.editor-tab.active {
|
|
1226
|
-
color:
|
|
1227
|
-
background:
|
|
1496
|
+
color: var(--text-bright);
|
|
1497
|
+
background: var(--bg-surface);
|
|
1228
1498
|
}
|
|
1229
1499
|
|
|
1230
1500
|
.editor-save-btn {
|
|
1231
1501
|
margin-left: auto;
|
|
1232
1502
|
padding: 2px 10px;
|
|
1233
1503
|
font-size: 11px;
|
|
1234
|
-
background:
|
|
1235
|
-
color:
|
|
1504
|
+
background: var(--accent);
|
|
1505
|
+
color: var(--on-accent);
|
|
1236
1506
|
border: none;
|
|
1237
1507
|
border-radius: 3px;
|
|
1238
1508
|
cursor: pointer;
|
|
1239
1509
|
}
|
|
1240
1510
|
|
|
1241
1511
|
.editor-save-btn:hover {
|
|
1242
|
-
background:
|
|
1512
|
+
background: var(--accent-hover);
|
|
1243
1513
|
}
|
|
1244
1514
|
|
|
1245
1515
|
.editor-monaco-container {
|
|
@@ -1252,7 +1522,7 @@ html, body, #root {
|
|
|
1252
1522
|
display: flex;
|
|
1253
1523
|
align-items: center;
|
|
1254
1524
|
justify-content: center;
|
|
1255
|
-
color:
|
|
1525
|
+
color: var(--text-muted);
|
|
1256
1526
|
font-size: 13px;
|
|
1257
1527
|
}
|
|
1258
1528
|
|
|
@@ -1260,7 +1530,7 @@ html, body, #root {
|
|
|
1260
1530
|
.agent-picker-overlay {
|
|
1261
1531
|
position: fixed;
|
|
1262
1532
|
inset: 0;
|
|
1263
|
-
background:
|
|
1533
|
+
background: var(--overlay-bg);
|
|
1264
1534
|
display: flex;
|
|
1265
1535
|
align-items: center;
|
|
1266
1536
|
justify-content: center;
|
|
@@ -1268,8 +1538,8 @@ html, body, #root {
|
|
|
1268
1538
|
}
|
|
1269
1539
|
|
|
1270
1540
|
.agent-picker-modal {
|
|
1271
|
-
background:
|
|
1272
|
-
border: 1px solid
|
|
1541
|
+
background: var(--bg-raised);
|
|
1542
|
+
border: 1px solid var(--border);
|
|
1273
1543
|
border-radius: 12px;
|
|
1274
1544
|
padding: 32px 40px;
|
|
1275
1545
|
min-width: 360px;
|
|
@@ -1282,7 +1552,7 @@ html, body, #root {
|
|
|
1282
1552
|
.agent-picker-brand {
|
|
1283
1553
|
font-size: 22px;
|
|
1284
1554
|
font-weight: 700;
|
|
1285
|
-
color:
|
|
1555
|
+
color: var(--accent);
|
|
1286
1556
|
margin-bottom: 20px;
|
|
1287
1557
|
letter-spacing: 0.5px;
|
|
1288
1558
|
}
|
|
@@ -1294,15 +1564,15 @@ html, body, #root {
|
|
|
1294
1564
|
gap: 8px;
|
|
1295
1565
|
padding: 10px 16px;
|
|
1296
1566
|
margin-bottom: 20px;
|
|
1297
|
-
background:
|
|
1298
|
-
border: 1px solid
|
|
1567
|
+
background: var(--bg-chrome);
|
|
1568
|
+
border: 1px solid var(--border-subtle);
|
|
1299
1569
|
border-radius: 8px;
|
|
1300
1570
|
cursor: pointer;
|
|
1301
1571
|
transition: border-color 0.15s;
|
|
1302
1572
|
}
|
|
1303
1573
|
|
|
1304
1574
|
.agent-picker-cwd:hover {
|
|
1305
|
-
border-color:
|
|
1575
|
+
border-color: var(--accent);
|
|
1306
1576
|
}
|
|
1307
1577
|
|
|
1308
1578
|
.agent-picker-cwd-icon {
|
|
@@ -1312,7 +1582,7 @@ html, body, #root {
|
|
|
1312
1582
|
.agent-picker-cwd-path {
|
|
1313
1583
|
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
1314
1584
|
font-size: 12px;
|
|
1315
|
-
color:
|
|
1585
|
+
color: var(--text);
|
|
1316
1586
|
flex: 1;
|
|
1317
1587
|
text-align: left;
|
|
1318
1588
|
overflow: hidden;
|
|
@@ -1322,13 +1592,13 @@ html, body, #root {
|
|
|
1322
1592
|
|
|
1323
1593
|
.agent-picker-cwd-change {
|
|
1324
1594
|
font-size: 11px;
|
|
1325
|
-
color:
|
|
1595
|
+
color: var(--accent);
|
|
1326
1596
|
flex-shrink: 0;
|
|
1327
1597
|
}
|
|
1328
1598
|
|
|
1329
1599
|
.agent-picker-title {
|
|
1330
1600
|
font-size: 11px;
|
|
1331
|
-
color:
|
|
1601
|
+
color: var(--text-muted);
|
|
1332
1602
|
margin-bottom: 12px;
|
|
1333
1603
|
text-transform: uppercase;
|
|
1334
1604
|
letter-spacing: 1px;
|
|
@@ -1346,8 +1616,8 @@ html, body, #root {
|
|
|
1346
1616
|
justify-content: space-between;
|
|
1347
1617
|
gap: 16px;
|
|
1348
1618
|
padding: 14px 18px;
|
|
1349
|
-
background:
|
|
1350
|
-
border: 1px solid
|
|
1619
|
+
background: var(--bg-chrome);
|
|
1620
|
+
border: 1px solid var(--border-subtle);
|
|
1351
1621
|
border-radius: 8px;
|
|
1352
1622
|
cursor: pointer;
|
|
1353
1623
|
transition: all 0.15s;
|
|
@@ -1355,27 +1625,27 @@ html, body, #root {
|
|
|
1355
1625
|
}
|
|
1356
1626
|
|
|
1357
1627
|
.agent-picker-item:hover {
|
|
1358
|
-
border-color:
|
|
1359
|
-
background:
|
|
1628
|
+
border-color: var(--accent);
|
|
1629
|
+
background: var(--bg-chrome-hi);
|
|
1360
1630
|
}
|
|
1361
1631
|
|
|
1362
1632
|
.agent-picker-name {
|
|
1363
1633
|
font-size: 14px;
|
|
1364
1634
|
font-weight: 600;
|
|
1365
|
-
color:
|
|
1635
|
+
color: var(--text-bright);
|
|
1366
1636
|
flex-shrink: 0;
|
|
1367
1637
|
}
|
|
1368
1638
|
|
|
1369
1639
|
.agent-picker-desc {
|
|
1370
1640
|
font-size: 11px;
|
|
1371
|
-
color:
|
|
1641
|
+
color: var(--text-muted);
|
|
1372
1642
|
text-align: right;
|
|
1373
1643
|
}
|
|
1374
1644
|
|
|
1375
1645
|
.agent-picker-hint {
|
|
1376
1646
|
margin-top: 20px;
|
|
1377
1647
|
font-size: 11px;
|
|
1378
|
-
color:
|
|
1648
|
+
color: var(--text-dim);
|
|
1379
1649
|
}
|
|
1380
1650
|
|
|
1381
1651
|
.agent-picker-option {
|
|
@@ -1384,21 +1654,21 @@ html, body, #root {
|
|
|
1384
1654
|
align-items: center;
|
|
1385
1655
|
gap: 8px;
|
|
1386
1656
|
font-size: 12px;
|
|
1387
|
-
color:
|
|
1657
|
+
color: var(--text);
|
|
1388
1658
|
cursor: pointer;
|
|
1389
1659
|
user-select: none;
|
|
1390
1660
|
}
|
|
1391
1661
|
|
|
1392
1662
|
.agent-picker-option input[type="checkbox"] {
|
|
1393
1663
|
cursor: pointer;
|
|
1394
|
-
accent-color:
|
|
1664
|
+
accent-color: var(--accent);
|
|
1395
1665
|
}
|
|
1396
1666
|
|
|
1397
1667
|
/* ─── Remote (SSH) connect ───────────────────────── */
|
|
1398
1668
|
|
|
1399
1669
|
.remote-section-label {
|
|
1400
1670
|
font-size: 10px;
|
|
1401
|
-
color:
|
|
1671
|
+
color: var(--text-muted);
|
|
1402
1672
|
text-transform: uppercase;
|
|
1403
1673
|
letter-spacing: 1px;
|
|
1404
1674
|
text-align: left;
|
|
@@ -1450,29 +1720,29 @@ html, body, #root {
|
|
|
1450
1720
|
|
|
1451
1721
|
.remote-toggle-label {
|
|
1452
1722
|
font-size: 12px;
|
|
1453
|
-
color:
|
|
1723
|
+
color: var(--text-muted);
|
|
1454
1724
|
}
|
|
1455
1725
|
|
|
1456
1726
|
.remote-toggle-btn {
|
|
1457
1727
|
flex: 1;
|
|
1458
1728
|
padding: 8px 10px;
|
|
1459
|
-
background:
|
|
1460
|
-
border: 1px solid
|
|
1729
|
+
background: var(--bg-chrome);
|
|
1730
|
+
border: 1px solid var(--border-subtle);
|
|
1461
1731
|
border-radius: 8px;
|
|
1462
|
-
color:
|
|
1732
|
+
color: var(--text);
|
|
1463
1733
|
font-size: 12px;
|
|
1464
1734
|
cursor: pointer;
|
|
1465
1735
|
transition: all 0.15s;
|
|
1466
1736
|
}
|
|
1467
1737
|
|
|
1468
1738
|
.remote-toggle-btn:hover {
|
|
1469
|
-
border-color:
|
|
1739
|
+
border-color: var(--accent);
|
|
1470
1740
|
}
|
|
1471
1741
|
|
|
1472
1742
|
.remote-toggle-btn.is-active {
|
|
1473
|
-
border-color:
|
|
1474
|
-
background:
|
|
1475
|
-
color:
|
|
1743
|
+
border-color: var(--accent);
|
|
1744
|
+
background: var(--bg-chrome-hi);
|
|
1745
|
+
color: var(--text-bright);
|
|
1476
1746
|
font-weight: 600;
|
|
1477
1747
|
}
|
|
1478
1748
|
|
|
@@ -1484,25 +1754,25 @@ html, body, #root {
|
|
|
1484
1754
|
.remote-input {
|
|
1485
1755
|
flex: 1;
|
|
1486
1756
|
padding: 10px 12px;
|
|
1487
|
-
background:
|
|
1488
|
-
border: 1px solid
|
|
1757
|
+
background: var(--bg-chrome);
|
|
1758
|
+
border: 1px solid var(--border-subtle);
|
|
1489
1759
|
border-radius: 8px;
|
|
1490
|
-
color:
|
|
1760
|
+
color: var(--text-bright);
|
|
1491
1761
|
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
1492
1762
|
font-size: 12px;
|
|
1493
1763
|
outline: none;
|
|
1494
1764
|
}
|
|
1495
1765
|
|
|
1496
1766
|
.remote-input:focus {
|
|
1497
|
-
border-color:
|
|
1767
|
+
border-color: var(--accent);
|
|
1498
1768
|
}
|
|
1499
1769
|
|
|
1500
1770
|
.remote-btn {
|
|
1501
1771
|
padding: 10px 16px;
|
|
1502
|
-
background:
|
|
1772
|
+
background: var(--accent);
|
|
1503
1773
|
border: none;
|
|
1504
1774
|
border-radius: 8px;
|
|
1505
|
-
color:
|
|
1775
|
+
color: var(--on-accent);
|
|
1506
1776
|
font-size: 12px;
|
|
1507
1777
|
font-weight: 600;
|
|
1508
1778
|
cursor: pointer;
|
|
@@ -1517,21 +1787,21 @@ html, body, #root {
|
|
|
1517
1787
|
margin-top: 18px;
|
|
1518
1788
|
background: none;
|
|
1519
1789
|
border: none;
|
|
1520
|
-
color:
|
|
1790
|
+
color: var(--accent);
|
|
1521
1791
|
font-size: 12px;
|
|
1522
1792
|
cursor: pointer;
|
|
1523
1793
|
}
|
|
1524
1794
|
|
|
1525
1795
|
.remote-status {
|
|
1526
1796
|
padding: 24px 8px;
|
|
1527
|
-
color:
|
|
1797
|
+
color: var(--text);
|
|
1528
1798
|
font-size: 13px;
|
|
1529
1799
|
}
|
|
1530
1800
|
|
|
1531
1801
|
.remote-status-sub {
|
|
1532
1802
|
margin-top: 6px;
|
|
1533
1803
|
font-size: 11px;
|
|
1534
|
-
color:
|
|
1804
|
+
color: var(--text-muted);
|
|
1535
1805
|
word-break: break-word;
|
|
1536
1806
|
}
|
|
1537
1807
|
|
|
@@ -1539,8 +1809,8 @@ html, body, #root {
|
|
|
1539
1809
|
width: 22px;
|
|
1540
1810
|
height: 22px;
|
|
1541
1811
|
margin: 0 auto 14px;
|
|
1542
|
-
border: 2px solid
|
|
1543
|
-
border-top-color:
|
|
1812
|
+
border: 2px solid var(--border-subtle);
|
|
1813
|
+
border-top-color: var(--accent);
|
|
1544
1814
|
border-radius: 50%;
|
|
1545
1815
|
animation: remote-spin 0.8s linear infinite;
|
|
1546
1816
|
}
|
|
@@ -1551,15 +1821,15 @@ html, body, #root {
|
|
|
1551
1821
|
|
|
1552
1822
|
.remote-target-line {
|
|
1553
1823
|
font-size: 13px;
|
|
1554
|
-
color:
|
|
1824
|
+
color: var(--text);
|
|
1555
1825
|
margin-bottom: 4px;
|
|
1556
1826
|
}
|
|
1557
1827
|
|
|
1558
1828
|
.remote-note {
|
|
1559
1829
|
font-size: 11px;
|
|
1560
|
-
color:
|
|
1561
|
-
background:
|
|
1562
|
-
border: 1px solid
|
|
1830
|
+
color: var(--warning);
|
|
1831
|
+
background: color-mix(in srgb, var(--warning) 8%, transparent);
|
|
1832
|
+
border: 1px solid color-mix(in srgb, var(--warning) 25%, transparent);
|
|
1563
1833
|
border-radius: 8px;
|
|
1564
1834
|
padding: 8px 12px;
|
|
1565
1835
|
margin: 8px 0;
|
|
@@ -1569,7 +1839,7 @@ html, body, #root {
|
|
|
1569
1839
|
|
|
1570
1840
|
.remote-error {
|
|
1571
1841
|
font-size: 13px;
|
|
1572
|
-
color:
|
|
1842
|
+
color: var(--danger);
|
|
1573
1843
|
margin-bottom: 4px;
|
|
1574
1844
|
}
|
|
1575
1845
|
|
|
@@ -1585,7 +1855,7 @@ html, body, #root {
|
|
|
1585
1855
|
.remote-pw-hint {
|
|
1586
1856
|
margin-top: 6px;
|
|
1587
1857
|
font-size: 10px;
|
|
1588
|
-
color:
|
|
1858
|
+
color: var(--text-muted);
|
|
1589
1859
|
text-align: left;
|
|
1590
1860
|
}
|
|
1591
1861
|
|
|
@@ -1593,7 +1863,7 @@ html, body, #root {
|
|
|
1593
1863
|
.settings-overlay {
|
|
1594
1864
|
position: fixed;
|
|
1595
1865
|
inset: 0;
|
|
1596
|
-
background:
|
|
1866
|
+
background: var(--overlay-bg);
|
|
1597
1867
|
display: flex;
|
|
1598
1868
|
align-items: center;
|
|
1599
1869
|
justify-content: center;
|
|
@@ -1601,8 +1871,8 @@ html, body, #root {
|
|
|
1601
1871
|
}
|
|
1602
1872
|
|
|
1603
1873
|
.settings-dialog {
|
|
1604
|
-
background:
|
|
1605
|
-
border: 1px solid
|
|
1874
|
+
background: var(--bg-raised);
|
|
1875
|
+
border: 1px solid var(--border);
|
|
1606
1876
|
border-radius: 8px;
|
|
1607
1877
|
padding: 24px;
|
|
1608
1878
|
width: 480px;
|
|
@@ -1611,23 +1881,23 @@ html, body, #root {
|
|
|
1611
1881
|
}
|
|
1612
1882
|
|
|
1613
1883
|
.settings-dialog h3 {
|
|
1614
|
-
color:
|
|
1884
|
+
color: var(--text-bright);
|
|
1615
1885
|
margin-bottom: 16px;
|
|
1616
1886
|
font-size: 16px;
|
|
1617
1887
|
}
|
|
1618
1888
|
|
|
1619
1889
|
/* About section inside the Settings dialog. */
|
|
1620
1890
|
.settings-about {
|
|
1621
|
-
border-top: 1px solid
|
|
1891
|
+
border-top: 1px solid var(--border-subtle);
|
|
1622
1892
|
padding-top: 16px;
|
|
1623
1893
|
}
|
|
1624
1894
|
.settings-about .about-name {
|
|
1625
|
-
color:
|
|
1895
|
+
color: var(--text-bright);
|
|
1626
1896
|
font-size: 14px;
|
|
1627
1897
|
font-weight: 600;
|
|
1628
1898
|
}
|
|
1629
1899
|
.settings-about .about-copyright {
|
|
1630
|
-
color:
|
|
1900
|
+
color: var(--text-soft);
|
|
1631
1901
|
font-size: 12px;
|
|
1632
1902
|
margin: 6px 0 8px;
|
|
1633
1903
|
}
|
|
@@ -1637,13 +1907,13 @@ html, body, #root {
|
|
|
1637
1907
|
}
|
|
1638
1908
|
|
|
1639
1909
|
.settings-section h4 {
|
|
1640
|
-
color:
|
|
1910
|
+
color: var(--text);
|
|
1641
1911
|
font-size: 13px;
|
|
1642
1912
|
margin-bottom: 8px;
|
|
1643
1913
|
}
|
|
1644
1914
|
|
|
1645
1915
|
.settings-hint {
|
|
1646
|
-
color:
|
|
1916
|
+
color: var(--text-muted);
|
|
1647
1917
|
font-size: 11px;
|
|
1648
1918
|
display: block;
|
|
1649
1919
|
margin-bottom: 12px;
|
|
@@ -1651,7 +1921,7 @@ html, body, #root {
|
|
|
1651
1921
|
|
|
1652
1922
|
.settings-dialog label {
|
|
1653
1923
|
display: block;
|
|
1654
|
-
color:
|
|
1924
|
+
color: var(--text);
|
|
1655
1925
|
font-size: 12px;
|
|
1656
1926
|
margin-bottom: 12px;
|
|
1657
1927
|
}
|
|
@@ -1661,21 +1931,139 @@ html, body, #root {
|
|
|
1661
1931
|
width: 100%;
|
|
1662
1932
|
margin-top: 4px;
|
|
1663
1933
|
padding: 6px 10px;
|
|
1664
|
-
background:
|
|
1665
|
-
border: 1px solid
|
|
1934
|
+
background: var(--bg-chrome);
|
|
1935
|
+
border: 1px solid var(--border);
|
|
1666
1936
|
border-radius: 4px;
|
|
1667
|
-
color:
|
|
1937
|
+
color: var(--text);
|
|
1668
1938
|
font-size: 13px;
|
|
1669
1939
|
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
1670
1940
|
}
|
|
1671
1941
|
|
|
1672
1942
|
.settings-dialog input:focus {
|
|
1673
1943
|
outline: none;
|
|
1674
|
-
border-color:
|
|
1944
|
+
border-color: var(--accent);
|
|
1675
1945
|
}
|
|
1676
1946
|
|
|
1677
1947
|
.settings-dialog input::placeholder {
|
|
1678
|
-
color:
|
|
1948
|
+
color: var(--text-dim);
|
|
1949
|
+
}
|
|
1950
|
+
|
|
1951
|
+
/* Checkbox rows: <input><span>label</span><span class="settings-hint">.
|
|
1952
|
+
The class was used by the dialog but never styled, so the box inherited the
|
|
1953
|
+
full-width text-input rule above and rendered stretched and centred above its
|
|
1954
|
+
own label. Two columns: the box, then label on row 1 and hint on row 2. */
|
|
1955
|
+
.settings-checkbox {
|
|
1956
|
+
display: grid;
|
|
1957
|
+
grid-template-columns: auto 1fr;
|
|
1958
|
+
align-items: center;
|
|
1959
|
+
column-gap: 8px;
|
|
1960
|
+
cursor: pointer;
|
|
1961
|
+
}
|
|
1962
|
+
|
|
1963
|
+
.settings-checkbox input[type='checkbox'] {
|
|
1964
|
+
display: inline-block;
|
|
1965
|
+
width: auto;
|
|
1966
|
+
margin: 0;
|
|
1967
|
+
padding: 0;
|
|
1968
|
+
accent-color: var(--accent);
|
|
1969
|
+
cursor: pointer;
|
|
1970
|
+
}
|
|
1971
|
+
|
|
1972
|
+
.settings-checkbox > span {
|
|
1973
|
+
grid-column: 2;
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1976
|
+
.settings-checkbox .settings-hint {
|
|
1977
|
+
margin-top: 2px;
|
|
1978
|
+
margin-bottom: 0;
|
|
1979
|
+
}
|
|
1980
|
+
|
|
1981
|
+
/* Appearance picker — a swatch tile per scheme, grouped by mode when syncing. */
|
|
1982
|
+
.theme-group-label {
|
|
1983
|
+
font-size: 10px;
|
|
1984
|
+
font-weight: 600;
|
|
1985
|
+
letter-spacing: 0.06em;
|
|
1986
|
+
text-transform: uppercase;
|
|
1987
|
+
color: var(--text-muted);
|
|
1988
|
+
margin: 10px 0 6px;
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1991
|
+
.theme-options {
|
|
1992
|
+
display: grid;
|
|
1993
|
+
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
|
|
1994
|
+
gap: 8px;
|
|
1995
|
+
margin-bottom: 8px;
|
|
1996
|
+
}
|
|
1997
|
+
|
|
1998
|
+
.theme-option {
|
|
1999
|
+
display: flex;
|
|
2000
|
+
flex-direction: column;
|
|
2001
|
+
align-items: stretch;
|
|
2002
|
+
gap: 7px;
|
|
2003
|
+
padding: 8px 8px 7px;
|
|
2004
|
+
background: var(--bg-chrome);
|
|
2005
|
+
border: 1px solid var(--border-subtle);
|
|
2006
|
+
border-radius: 8px;
|
|
2007
|
+
color: var(--text-muted);
|
|
2008
|
+
font-family: inherit;
|
|
2009
|
+
font-size: 11.5px;
|
|
2010
|
+
text-align: center;
|
|
2011
|
+
cursor: pointer;
|
|
2012
|
+
transition: border-color 0.13s ease, color 0.13s ease;
|
|
2013
|
+
}
|
|
2014
|
+
|
|
2015
|
+
.theme-option:hover {
|
|
2016
|
+
border-color: var(--border-strong);
|
|
2017
|
+
color: var(--text);
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
.theme-option.active {
|
|
2021
|
+
border-color: var(--accent);
|
|
2022
|
+
color: var(--text-bright);
|
|
2023
|
+
font-weight: 600;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
/* A miniature of the scheme: background, a surface bar, an accent dot and a
|
|
2027
|
+
text line. Colours come from the theme's own palette via inline styles, so
|
|
2028
|
+
this must not reference the token layer. */
|
|
2029
|
+
.theme-swatch {
|
|
2030
|
+
position: relative;
|
|
2031
|
+
display: block;
|
|
2032
|
+
height: 38px;
|
|
2033
|
+
border-radius: 5px;
|
|
2034
|
+
border: 1px solid var(--border);
|
|
2035
|
+
overflow: hidden;
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
.theme-swatch-bar {
|
|
2039
|
+
position: absolute;
|
|
2040
|
+
inset: 0 0 auto 0;
|
|
2041
|
+
height: 9px;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
.theme-swatch-dot {
|
|
2045
|
+
position: absolute;
|
|
2046
|
+
left: 7px;
|
|
2047
|
+
top: 16px;
|
|
2048
|
+
width: 8px;
|
|
2049
|
+
height: 8px;
|
|
2050
|
+
border-radius: 50%;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
.theme-swatch-line {
|
|
2054
|
+
position: absolute;
|
|
2055
|
+
left: 20px;
|
|
2056
|
+
top: 19px;
|
|
2057
|
+
right: 8px;
|
|
2058
|
+
height: 3px;
|
|
2059
|
+
border-radius: 2px;
|
|
2060
|
+
opacity: 0.65;
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2063
|
+
.theme-option-label {
|
|
2064
|
+
overflow: hidden;
|
|
2065
|
+
text-overflow: ellipsis;
|
|
2066
|
+
white-space: nowrap;
|
|
1679
2067
|
}
|
|
1680
2068
|
|
|
1681
2069
|
.settings-actions {
|
|
@@ -1694,23 +2082,23 @@ html, body, #root {
|
|
|
1694
2082
|
}
|
|
1695
2083
|
|
|
1696
2084
|
.btn-primary {
|
|
1697
|
-
background:
|
|
1698
|
-
color:
|
|
1699
|
-
border-color:
|
|
2085
|
+
background: var(--accent);
|
|
2086
|
+
color: var(--on-accent);
|
|
2087
|
+
border-color: var(--accent);
|
|
1700
2088
|
}
|
|
1701
2089
|
|
|
1702
2090
|
.btn-primary:hover {
|
|
1703
|
-
background:
|
|
2091
|
+
background: var(--accent-hover);
|
|
1704
2092
|
}
|
|
1705
2093
|
|
|
1706
2094
|
.btn-secondary {
|
|
1707
|
-
background:
|
|
1708
|
-
color:
|
|
1709
|
-
border-color:
|
|
2095
|
+
background: var(--bg-surface);
|
|
2096
|
+
color: var(--text);
|
|
2097
|
+
border-color: var(--border);
|
|
1710
2098
|
}
|
|
1711
2099
|
|
|
1712
2100
|
.btn-secondary:hover {
|
|
1713
|
-
border-color:
|
|
2101
|
+
border-color: var(--border-strong);
|
|
1714
2102
|
}
|
|
1715
2103
|
|
|
1716
2104
|
.btn-ghost {
|
|
@@ -1720,16 +2108,16 @@ html, body, #root {
|
|
|
1720
2108
|
cursor: pointer;
|
|
1721
2109
|
border: none;
|
|
1722
2110
|
background: transparent;
|
|
1723
|
-
color:
|
|
2111
|
+
color: var(--text-muted);
|
|
1724
2112
|
}
|
|
1725
2113
|
|
|
1726
2114
|
.btn-ghost:hover {
|
|
1727
|
-
background:
|
|
1728
|
-
color:
|
|
2115
|
+
background: var(--bg-surface);
|
|
2116
|
+
color: var(--text);
|
|
1729
2117
|
}
|
|
1730
2118
|
|
|
1731
2119
|
.btn-danger:hover {
|
|
1732
|
-
color:
|
|
2120
|
+
color: var(--danger);
|
|
1733
2121
|
}
|
|
1734
2122
|
|
|
1735
2123
|
/* Profile list */
|
|
@@ -1746,18 +2134,18 @@ html, body, #root {
|
|
|
1746
2134
|
justify-content: space-between;
|
|
1747
2135
|
padding: 8px 12px;
|
|
1748
2136
|
border-radius: 6px;
|
|
1749
|
-
border: 1px solid
|
|
2137
|
+
border: 1px solid var(--border-subtle);
|
|
1750
2138
|
cursor: pointer;
|
|
1751
2139
|
transition: border-color 0.15s;
|
|
1752
2140
|
}
|
|
1753
2141
|
|
|
1754
2142
|
.profile-item:hover {
|
|
1755
|
-
border-color:
|
|
2143
|
+
border-color: var(--border);
|
|
1756
2144
|
}
|
|
1757
2145
|
|
|
1758
2146
|
.profile-item.active {
|
|
1759
|
-
border-color:
|
|
1760
|
-
background:
|
|
2147
|
+
border-color: var(--accent);
|
|
2148
|
+
background: color-mix(in srgb, var(--accent) 5%, transparent);
|
|
1761
2149
|
}
|
|
1762
2150
|
|
|
1763
2151
|
.profile-info {
|
|
@@ -1771,22 +2159,22 @@ html, body, #root {
|
|
|
1771
2159
|
width: 8px;
|
|
1772
2160
|
height: 8px;
|
|
1773
2161
|
border-radius: 50%;
|
|
1774
|
-
background:
|
|
2162
|
+
background: var(--border);
|
|
1775
2163
|
flex-shrink: 0;
|
|
1776
2164
|
}
|
|
1777
2165
|
|
|
1778
2166
|
.profile-dot.active {
|
|
1779
|
-
background:
|
|
2167
|
+
background: var(--success);
|
|
1780
2168
|
}
|
|
1781
2169
|
|
|
1782
2170
|
.profile-name {
|
|
1783
|
-
color:
|
|
2171
|
+
color: var(--text-bright);
|
|
1784
2172
|
font-size: 13px;
|
|
1785
2173
|
font-weight: 500;
|
|
1786
2174
|
}
|
|
1787
2175
|
|
|
1788
2176
|
.profile-url {
|
|
1789
|
-
color:
|
|
2177
|
+
color: var(--text-muted);
|
|
1790
2178
|
font-size: 11px;
|
|
1791
2179
|
font-family: 'JetBrains Mono', 'Fira Code', monospace;
|
|
1792
2180
|
}
|
|
@@ -1804,7 +2192,7 @@ html, body, #root {
|
|
|
1804
2192
|
flex-direction: column;
|
|
1805
2193
|
height: 100%;
|
|
1806
2194
|
min-height: 0;
|
|
1807
|
-
background: linear-gradient(180deg,
|
|
2195
|
+
background: linear-gradient(180deg, var(--ticket-grad-top) 0%, var(--ticket-grad-bot) 100%);
|
|
1808
2196
|
}
|
|
1809
2197
|
|
|
1810
2198
|
/* ── header ── */
|
|
@@ -1813,7 +2201,7 @@ html, body, #root {
|
|
|
1813
2201
|
align-items: flex-start;
|
|
1814
2202
|
justify-content: space-between;
|
|
1815
2203
|
padding: 16px 16px 14px;
|
|
1816
|
-
border-bottom: 1px solid
|
|
2204
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1817
2205
|
}
|
|
1818
2206
|
.ticket-drawer-heading {
|
|
1819
2207
|
display: flex;
|
|
@@ -1824,8 +2212,8 @@ html, body, #root {
|
|
|
1824
2212
|
width: 34px;
|
|
1825
2213
|
height: 34px;
|
|
1826
2214
|
border-radius: 9px;
|
|
1827
|
-
background:
|
|
1828
|
-
border: 1px solid
|
|
2215
|
+
background: color-mix(in srgb, var(--accent) 14%, transparent);
|
|
2216
|
+
border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
|
|
1829
2217
|
display: flex;
|
|
1830
2218
|
align-items: center;
|
|
1831
2219
|
justify-content: center;
|
|
@@ -1840,15 +2228,15 @@ html, body, #root {
|
|
|
1840
2228
|
.ticket-drawer-title {
|
|
1841
2229
|
font-size: 14px;
|
|
1842
2230
|
font-weight: 650;
|
|
1843
|
-
color:
|
|
2231
|
+
color: var(--text-ticket);
|
|
1844
2232
|
letter-spacing: 0.01em;
|
|
1845
2233
|
}
|
|
1846
2234
|
.ticket-drawer-subtitle {
|
|
1847
2235
|
font-size: 11.5px;
|
|
1848
|
-
color:
|
|
2236
|
+
color: var(--text-ticket-muted);
|
|
1849
2237
|
}
|
|
1850
2238
|
.ticket-drawer-subtitle strong {
|
|
1851
|
-
color:
|
|
2239
|
+
color: var(--accent);
|
|
1852
2240
|
font-weight: 600;
|
|
1853
2241
|
}
|
|
1854
2242
|
/* "+ New" action in the header (replaces the old footer button). */
|
|
@@ -1860,9 +2248,9 @@ html, body, #root {
|
|
|
1860
2248
|
gap: 3px;
|
|
1861
2249
|
padding: 5px 11px;
|
|
1862
2250
|
border-radius: 7px;
|
|
1863
|
-
background:
|
|
1864
|
-
border: 1px solid
|
|
1865
|
-
color:
|
|
2251
|
+
background: color-mix(in srgb, var(--accent) 14%, transparent);
|
|
2252
|
+
border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
|
|
2253
|
+
color: var(--accent-soft);
|
|
1866
2254
|
font-family: inherit;
|
|
1867
2255
|
font-size: 12px;
|
|
1868
2256
|
font-weight: 600;
|
|
@@ -1870,15 +2258,15 @@ html, body, #root {
|
|
|
1870
2258
|
transition: background 0.13s ease, border-color 0.13s ease, color 0.13s ease, transform 0.06s ease;
|
|
1871
2259
|
}
|
|
1872
2260
|
.ticket-drawer-new:hover {
|
|
1873
|
-
background:
|
|
1874
|
-
border-color:
|
|
1875
|
-
color:
|
|
2261
|
+
background: color-mix(in srgb, var(--accent) 22%, transparent);
|
|
2262
|
+
border-color: color-mix(in srgb, var(--accent) 50%, transparent);
|
|
2263
|
+
color: var(--accent-softer);
|
|
1876
2264
|
}
|
|
1877
2265
|
.ticket-drawer-new:active {
|
|
1878
2266
|
transform: translateY(1px);
|
|
1879
2267
|
}
|
|
1880
2268
|
.ticket-drawer-warn {
|
|
1881
|
-
color:
|
|
2269
|
+
color: var(--warning);
|
|
1882
2270
|
}
|
|
1883
2271
|
/* ── body ── */
|
|
1884
2272
|
.ticket-drawer-body {
|
|
@@ -1898,17 +2286,17 @@ html, body, #root {
|
|
|
1898
2286
|
.ticket-field-label {
|
|
1899
2287
|
font-size: 10.5px;
|
|
1900
2288
|
font-weight: 600;
|
|
1901
|
-
color:
|
|
2289
|
+
color: var(--text-ticket-muted);
|
|
1902
2290
|
text-transform: uppercase;
|
|
1903
2291
|
letter-spacing: 0.07em;
|
|
1904
2292
|
}
|
|
1905
2293
|
|
|
1906
2294
|
.ticket-field input,
|
|
1907
2295
|
.ticket-field textarea {
|
|
1908
|
-
background:
|
|
1909
|
-
border: 1px solid
|
|
2296
|
+
background: var(--bg-well);
|
|
2297
|
+
border: 1px solid var(--border-subtle);
|
|
1910
2298
|
border-radius: 8px;
|
|
1911
|
-
color:
|
|
2299
|
+
color: var(--text-ticket);
|
|
1912
2300
|
font-size: 13px;
|
|
1913
2301
|
font-family: inherit;
|
|
1914
2302
|
padding: 9px 11px;
|
|
@@ -1917,12 +2305,12 @@ html, body, #root {
|
|
|
1917
2305
|
}
|
|
1918
2306
|
.ticket-field input::placeholder,
|
|
1919
2307
|
.ticket-field textarea::placeholder {
|
|
1920
|
-
color:
|
|
2308
|
+
color: var(--text-placeholder);
|
|
1921
2309
|
}
|
|
1922
2310
|
.ticket-field input:focus,
|
|
1923
2311
|
.ticket-field textarea:focus {
|
|
1924
|
-
border-color:
|
|
1925
|
-
box-shadow: 0 0 0 3px
|
|
2312
|
+
border-color: var(--accent);
|
|
2313
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent);
|
|
1926
2314
|
}
|
|
1927
2315
|
.ticket-input-title {
|
|
1928
2316
|
font-size: 14px !important;
|
|
@@ -1943,10 +2331,10 @@ html, body, #root {
|
|
|
1943
2331
|
display: inline-flex;
|
|
1944
2332
|
align-items: center;
|
|
1945
2333
|
gap: 6px;
|
|
1946
|
-
background:
|
|
1947
|
-
border: 1px solid
|
|
2334
|
+
background: var(--bg-well);
|
|
2335
|
+
border: 1px solid var(--border-subtle);
|
|
1948
2336
|
border-radius: 999px;
|
|
1949
|
-
color:
|
|
2337
|
+
color: var(--text-ticket-dim);
|
|
1950
2338
|
font-size: 12px;
|
|
1951
2339
|
font-family: inherit;
|
|
1952
2340
|
font-weight: 550;
|
|
@@ -1955,8 +2343,8 @@ html, body, #root {
|
|
|
1955
2343
|
transition: background 0.13s ease, border-color 0.13s ease, color 0.13s ease;
|
|
1956
2344
|
}
|
|
1957
2345
|
.ticket-seg:hover {
|
|
1958
|
-
border-color:
|
|
1959
|
-
color:
|
|
2346
|
+
border-color: var(--border);
|
|
2347
|
+
color: var(--text-bright);
|
|
1960
2348
|
}
|
|
1961
2349
|
.ticket-seg-dot {
|
|
1962
2350
|
width: 7px;
|
|
@@ -1969,9 +2357,9 @@ html, body, #root {
|
|
|
1969
2357
|
}
|
|
1970
2358
|
|
|
1971
2359
|
.ticket-drawer-error {
|
|
1972
|
-
background:
|
|
1973
|
-
border: 1px solid
|
|
1974
|
-
color:
|
|
2360
|
+
background: color-mix(in srgb, var(--danger) 13%, transparent);
|
|
2361
|
+
border: 1px solid color-mix(in srgb, var(--danger) 38%, transparent);
|
|
2362
|
+
color: var(--danger);
|
|
1975
2363
|
font-size: 12px;
|
|
1976
2364
|
border-radius: 8px;
|
|
1977
2365
|
padding: 8px 10px;
|
|
@@ -1984,12 +2372,12 @@ html, body, #root {
|
|
|
1984
2372
|
justify-content: space-between;
|
|
1985
2373
|
gap: 8px;
|
|
1986
2374
|
padding: 12px 16px;
|
|
1987
|
-
border-top: 1px solid
|
|
1988
|
-
background:
|
|
2375
|
+
border-top: 1px solid var(--border-subtle);
|
|
2376
|
+
background: var(--footer-veil);
|
|
1989
2377
|
}
|
|
1990
2378
|
.ticket-drawer-hint {
|
|
1991
2379
|
font-size: 11px;
|
|
1992
|
-
color:
|
|
2380
|
+
color: var(--text-muted);
|
|
1993
2381
|
}
|
|
1994
2382
|
.ticket-drawer-footer-btns {
|
|
1995
2383
|
display: flex;
|
|
@@ -2007,20 +2395,20 @@ html, body, #root {
|
|
|
2007
2395
|
}
|
|
2008
2396
|
.ticket-btn-secondary {
|
|
2009
2397
|
background: transparent;
|
|
2010
|
-
color:
|
|
2011
|
-
border: 1px solid
|
|
2398
|
+
color: var(--text-bright);
|
|
2399
|
+
border: 1px solid var(--border-subtle);
|
|
2012
2400
|
}
|
|
2013
2401
|
.ticket-btn-secondary:hover {
|
|
2014
|
-
background:
|
|
2015
|
-
border-color:
|
|
2402
|
+
background: var(--hover-veil);
|
|
2403
|
+
border-color: var(--border);
|
|
2016
2404
|
}
|
|
2017
2405
|
.ticket-btn-primary {
|
|
2018
|
-
background: linear-gradient(180deg,
|
|
2019
|
-
color:
|
|
2020
|
-
border: 1px solid
|
|
2406
|
+
background: linear-gradient(180deg, var(--accent-grad-top) 0%, var(--accent) 100%);
|
|
2407
|
+
color: var(--on-accent);
|
|
2408
|
+
border: 1px solid var(--accent);
|
|
2021
2409
|
}
|
|
2022
2410
|
.ticket-btn-primary:hover:not(:disabled) {
|
|
2023
|
-
background: linear-gradient(180deg,
|
|
2411
|
+
background: linear-gradient(180deg, var(--accent-grad-top-hi) 0%, var(--accent-hover) 100%);
|
|
2024
2412
|
}
|
|
2025
2413
|
.ticket-btn-primary:active:not(:disabled) {
|
|
2026
2414
|
transform: translateY(1px);
|
|
@@ -2039,15 +2427,15 @@ html, body, #root {
|
|
|
2039
2427
|
|
|
2040
2428
|
/* ── drawer badge / back button ── */
|
|
2041
2429
|
.ticket-drawer-badge {
|
|
2042
|
-
color:
|
|
2430
|
+
color: var(--accent);
|
|
2043
2431
|
}
|
|
2044
2432
|
.ticket-drawer-back {
|
|
2045
2433
|
width: 34px;
|
|
2046
2434
|
height: 34px;
|
|
2047
2435
|
border-radius: 9px;
|
|
2048
|
-
background:
|
|
2049
|
-
border: 1px solid
|
|
2050
|
-
color:
|
|
2436
|
+
background: color-mix(in srgb, var(--accent) 10%, transparent);
|
|
2437
|
+
border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
|
|
2438
|
+
color: var(--accent);
|
|
2051
2439
|
font-size: 22px;
|
|
2052
2440
|
line-height: 1;
|
|
2053
2441
|
cursor: pointer;
|
|
@@ -2055,7 +2443,7 @@ html, body, #root {
|
|
|
2055
2443
|
transition: background 0.12s ease;
|
|
2056
2444
|
}
|
|
2057
2445
|
.ticket-drawer-back:hover {
|
|
2058
|
-
background:
|
|
2446
|
+
background: color-mix(in srgb, var(--accent) 20%, transparent);
|
|
2059
2447
|
}
|
|
2060
2448
|
|
|
2061
2449
|
/* ── ticket list ── */
|
|
@@ -2068,7 +2456,7 @@ html, body, #root {
|
|
|
2068
2456
|
gap: 7px;
|
|
2069
2457
|
}
|
|
2070
2458
|
.ticket-list-msg {
|
|
2071
|
-
color:
|
|
2459
|
+
color: var(--text-ticket-muted);
|
|
2072
2460
|
font-size: 12.5px;
|
|
2073
2461
|
padding: 16px 4px;
|
|
2074
2462
|
text-align: center;
|
|
@@ -2084,8 +2472,8 @@ html, body, #root {
|
|
|
2084
2472
|
padding: 7px 4px;
|
|
2085
2473
|
background: none;
|
|
2086
2474
|
border: none;
|
|
2087
|
-
border-top: 1px solid
|
|
2088
|
-
color:
|
|
2475
|
+
border-top: 1px solid var(--border-well);
|
|
2476
|
+
color: var(--text-ticket-muted);
|
|
2089
2477
|
font-family: inherit;
|
|
2090
2478
|
font-size: 11.5px;
|
|
2091
2479
|
font-weight: 600;
|
|
@@ -2095,7 +2483,7 @@ html, body, #root {
|
|
|
2095
2483
|
transition: color 0.13s ease;
|
|
2096
2484
|
}
|
|
2097
2485
|
.ticket-done-toggle:hover {
|
|
2098
|
-
color:
|
|
2486
|
+
color: var(--text);
|
|
2099
2487
|
}
|
|
2100
2488
|
.ticket-done-caret {
|
|
2101
2489
|
display: inline-block;
|
|
@@ -2110,8 +2498,8 @@ html, body, #root {
|
|
|
2110
2498
|
min-width: 18px;
|
|
2111
2499
|
padding: 1px 6px;
|
|
2112
2500
|
border-radius: 9px;
|
|
2113
|
-
background:
|
|
2114
|
-
color:
|
|
2501
|
+
background: var(--bg-chip);
|
|
2502
|
+
color: var(--text-ticket-dim);
|
|
2115
2503
|
font-size: 11px;
|
|
2116
2504
|
font-weight: 600;
|
|
2117
2505
|
text-align: center;
|
|
@@ -2126,32 +2514,32 @@ html, body, #root {
|
|
|
2126
2514
|
text-align: center;
|
|
2127
2515
|
}
|
|
2128
2516
|
.ticket-empty-icon {
|
|
2129
|
-
color:
|
|
2517
|
+
color: var(--text-dim);
|
|
2130
2518
|
margin-bottom: 4px;
|
|
2131
2519
|
}
|
|
2132
2520
|
.ticket-empty-title {
|
|
2133
2521
|
font-size: 13.5px;
|
|
2134
2522
|
font-weight: 600;
|
|
2135
|
-
color:
|
|
2523
|
+
color: var(--text-ticket-dim);
|
|
2136
2524
|
}
|
|
2137
2525
|
.ticket-empty-hint {
|
|
2138
2526
|
font-size: 12px;
|
|
2139
|
-
color:
|
|
2527
|
+
color: var(--text-muted);
|
|
2140
2528
|
}
|
|
2141
2529
|
|
|
2142
2530
|
/* ── ticket card ── */
|
|
2143
2531
|
.ticket-card {
|
|
2144
2532
|
display: flex;
|
|
2145
2533
|
align-items: stretch;
|
|
2146
|
-
background:
|
|
2147
|
-
border: 1px solid
|
|
2534
|
+
background: var(--bg-well);
|
|
2535
|
+
border: 1px solid var(--border-well);
|
|
2148
2536
|
border-radius: 10px;
|
|
2149
2537
|
overflow: hidden;
|
|
2150
2538
|
transition: border-color 0.13s ease, background 0.13s ease;
|
|
2151
2539
|
}
|
|
2152
2540
|
.ticket-card:hover {
|
|
2153
|
-
border-color:
|
|
2154
|
-
background:
|
|
2541
|
+
border-color: var(--border-hover);
|
|
2542
|
+
background: var(--bg-well-hi);
|
|
2155
2543
|
}
|
|
2156
2544
|
/* Clickable body of the card — opens the editor. */
|
|
2157
2545
|
.ticket-card-open {
|
|
@@ -2182,14 +2570,14 @@ html, body, #root {
|
|
|
2182
2570
|
justify-content: center;
|
|
2183
2571
|
background: transparent;
|
|
2184
2572
|
border: none;
|
|
2185
|
-
border-left: 1px solid
|
|
2186
|
-
color:
|
|
2573
|
+
border-left: 1px solid var(--border-well);
|
|
2574
|
+
color: var(--text-muted);
|
|
2187
2575
|
cursor: pointer;
|
|
2188
2576
|
transition: background 0.13s ease, color 0.13s ease, transform 0.06s ease;
|
|
2189
2577
|
}
|
|
2190
2578
|
.ticket-card-send:hover {
|
|
2191
|
-
background:
|
|
2192
|
-
color:
|
|
2579
|
+
background: var(--bg-inset-hi);
|
|
2580
|
+
color: var(--accent);
|
|
2193
2581
|
}
|
|
2194
2582
|
.ticket-card-send:active {
|
|
2195
2583
|
transform: scale(0.9);
|
|
@@ -2210,7 +2598,7 @@ html, body, #root {
|
|
|
2210
2598
|
.ticket-card-title {
|
|
2211
2599
|
font-size: 13px;
|
|
2212
2600
|
font-weight: 550;
|
|
2213
|
-
color:
|
|
2601
|
+
color: var(--text-ticket);
|
|
2214
2602
|
white-space: nowrap;
|
|
2215
2603
|
overflow: hidden;
|
|
2216
2604
|
text-overflow: ellipsis;
|
|
@@ -2229,7 +2617,7 @@ html, body, #root {
|
|
|
2229
2617
|
}
|
|
2230
2618
|
.ticket-card-date {
|
|
2231
2619
|
font-size: 11px;
|
|
2232
|
-
color:
|
|
2620
|
+
color: var(--text-muted);
|
|
2233
2621
|
}
|
|
2234
2622
|
.ticket-card-pri {
|
|
2235
2623
|
align-self: center;
|
|
@@ -2246,11 +2634,11 @@ html, body, #root {
|
|
|
2246
2634
|
/* ─── Terminal "Copy as email table" context menu + toast ─── */
|
|
2247
2635
|
.term-context-menu {
|
|
2248
2636
|
z-index: 1000;
|
|
2249
|
-
background:
|
|
2250
|
-
border: 1px solid
|
|
2637
|
+
background: var(--bg-raised);
|
|
2638
|
+
border: 1px solid var(--border-dim);
|
|
2251
2639
|
border-radius: 6px;
|
|
2252
2640
|
padding: 4px;
|
|
2253
|
-
box-shadow: 0 8px 24px
|
|
2641
|
+
box-shadow: 0 8px 24px var(--shadow-color);
|
|
2254
2642
|
min-width: 180px;
|
|
2255
2643
|
}
|
|
2256
2644
|
.term-context-menu button {
|
|
@@ -2260,13 +2648,13 @@ html, body, #root {
|
|
|
2260
2648
|
background: transparent;
|
|
2261
2649
|
border: none;
|
|
2262
2650
|
border-radius: 4px;
|
|
2263
|
-
color:
|
|
2651
|
+
color: var(--text-bright);
|
|
2264
2652
|
font-size: 13px;
|
|
2265
2653
|
padding: 7px 10px;
|
|
2266
2654
|
cursor: pointer;
|
|
2267
2655
|
}
|
|
2268
2656
|
.term-context-menu button:hover {
|
|
2269
|
-
background:
|
|
2657
|
+
background: var(--bg-surface);
|
|
2270
2658
|
}
|
|
2271
2659
|
/* Always-visible utility button (top-right) — opens the snapshot panel. */
|
|
2272
2660
|
.term-util-btn {
|
|
@@ -2280,9 +2668,9 @@ html, body, #root {
|
|
|
2280
2668
|
align-items: center;
|
|
2281
2669
|
justify-content: center;
|
|
2282
2670
|
border-radius: 6px;
|
|
2283
|
-
background:
|
|
2284
|
-
border: 1px solid
|
|
2285
|
-
color:
|
|
2671
|
+
background: var(--bg-surface);
|
|
2672
|
+
border: 1px solid var(--border-dim);
|
|
2673
|
+
color: var(--text-bright);
|
|
2286
2674
|
font-size: 16px;
|
|
2287
2675
|
line-height: 1;
|
|
2288
2676
|
cursor: pointer;
|
|
@@ -2291,7 +2679,7 @@ html, body, #root {
|
|
|
2291
2679
|
}
|
|
2292
2680
|
.term-util-btn:hover {
|
|
2293
2681
|
opacity: 1;
|
|
2294
|
-
background:
|
|
2682
|
+
background: var(--bg-surface-hi);
|
|
2295
2683
|
}
|
|
2296
2684
|
|
|
2297
2685
|
/* Snapshot panel: a frozen, selectable copy of the screen text. */
|
|
@@ -2301,8 +2689,8 @@ html, body, #root {
|
|
|
2301
2689
|
z-index: 20;
|
|
2302
2690
|
display: flex;
|
|
2303
2691
|
flex-direction: column;
|
|
2304
|
-
background:
|
|
2305
|
-
border: 1px solid
|
|
2692
|
+
background: var(--bg-chrome);
|
|
2693
|
+
border: 1px solid var(--border-dim);
|
|
2306
2694
|
}
|
|
2307
2695
|
.term-snapshot-head {
|
|
2308
2696
|
display: flex;
|
|
@@ -2310,23 +2698,23 @@ html, body, #root {
|
|
|
2310
2698
|
justify-content: space-between;
|
|
2311
2699
|
gap: 12px;
|
|
2312
2700
|
padding: 8px 12px;
|
|
2313
|
-
background:
|
|
2314
|
-
border-bottom: 1px solid
|
|
2315
|
-
color:
|
|
2701
|
+
background: var(--bg-raised);
|
|
2702
|
+
border-bottom: 1px solid var(--border-dim);
|
|
2703
|
+
color: var(--text-soft);
|
|
2316
2704
|
font-size: 12px;
|
|
2317
2705
|
}
|
|
2318
2706
|
.term-snapshot-x {
|
|
2319
2707
|
background: transparent;
|
|
2320
2708
|
border: none;
|
|
2321
|
-
color:
|
|
2709
|
+
color: var(--text-soft);
|
|
2322
2710
|
font-size: 14px;
|
|
2323
2711
|
cursor: pointer;
|
|
2324
2712
|
padding: 2px 6px;
|
|
2325
2713
|
border-radius: 4px;
|
|
2326
2714
|
}
|
|
2327
2715
|
.term-snapshot-x:hover {
|
|
2328
|
-
background:
|
|
2329
|
-
color:
|
|
2716
|
+
background: var(--bg-surface);
|
|
2717
|
+
color: var(--text-bright);
|
|
2330
2718
|
}
|
|
2331
2719
|
.term-snapshot-text {
|
|
2332
2720
|
flex: 1;
|
|
@@ -2337,33 +2725,33 @@ html, body, #root {
|
|
|
2337
2725
|
white-space: pre;
|
|
2338
2726
|
user-select: text;
|
|
2339
2727
|
cursor: text;
|
|
2340
|
-
color:
|
|
2341
|
-
background:
|
|
2728
|
+
color: var(--text-bright);
|
|
2729
|
+
background: var(--bg-chrome);
|
|
2342
2730
|
font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', monospace;
|
|
2343
2731
|
font-size: 13px;
|
|
2344
2732
|
line-height: 1.4;
|
|
2345
2733
|
}
|
|
2346
2734
|
.term-snapshot-text::selection {
|
|
2347
|
-
background:
|
|
2735
|
+
background: var(--selection-bg);
|
|
2348
2736
|
}
|
|
2349
2737
|
.term-snapshot-actions {
|
|
2350
2738
|
display: flex;
|
|
2351
2739
|
gap: 6px;
|
|
2352
2740
|
padding: 8px 12px;
|
|
2353
|
-
background:
|
|
2354
|
-
border-top: 1px solid
|
|
2741
|
+
background: var(--bg-raised);
|
|
2742
|
+
border-top: 1px solid var(--border-dim);
|
|
2355
2743
|
}
|
|
2356
2744
|
.term-snapshot-actions button {
|
|
2357
|
-
background:
|
|
2358
|
-
border: 1px solid
|
|
2745
|
+
background: var(--bg-surface);
|
|
2746
|
+
border: 1px solid var(--border-dim);
|
|
2359
2747
|
border-radius: 5px;
|
|
2360
|
-
color:
|
|
2748
|
+
color: var(--text-bright);
|
|
2361
2749
|
font-size: 12.5px;
|
|
2362
2750
|
padding: 6px 12px;
|
|
2363
2751
|
cursor: pointer;
|
|
2364
2752
|
}
|
|
2365
2753
|
.term-snapshot-actions button:hover {
|
|
2366
|
-
background:
|
|
2754
|
+
background: var(--bg-surface-hi);
|
|
2367
2755
|
}
|
|
2368
2756
|
.term-snapshot-done {
|
|
2369
2757
|
margin-left: auto;
|
|
@@ -2373,13 +2761,13 @@ html, body, #root {
|
|
|
2373
2761
|
bottom: 24px;
|
|
2374
2762
|
right: 24px;
|
|
2375
2763
|
z-index: 1000;
|
|
2376
|
-
background:
|
|
2377
|
-
border: 1px solid
|
|
2378
|
-
color:
|
|
2764
|
+
background: var(--bg-raised);
|
|
2765
|
+
border: 1px solid var(--accent);
|
|
2766
|
+
color: var(--text-bright);
|
|
2379
2767
|
font-size: 13px;
|
|
2380
2768
|
padding: 9px 14px;
|
|
2381
2769
|
border-radius: 6px;
|
|
2382
|
-
box-shadow: 0 8px 24px
|
|
2770
|
+
box-shadow: 0 8px 24px var(--shadow-color);
|
|
2383
2771
|
pointer-events: none;
|
|
2384
2772
|
}
|
|
2385
2773
|
|
|
@@ -2390,16 +2778,16 @@ html, body, #root {
|
|
|
2390
2778
|
.observer-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
|
|
2391
2779
|
.observer-switch-track {
|
|
2392
2780
|
width: 34px; height: 19px; border-radius: 10px;
|
|
2393
|
-
background:
|
|
2781
|
+
background: var(--switch-track); position: relative; transition: background 0.15s ease;
|
|
2394
2782
|
display: inline-block; flex-shrink: 0;
|
|
2395
2783
|
}
|
|
2396
2784
|
.observer-switch-thumb {
|
|
2397
2785
|
position: absolute; top: 2px; left: 2px; width: 15px; height: 15px;
|
|
2398
|
-
border-radius: 50%; background:
|
|
2786
|
+
border-radius: 50%; background: var(--switch-thumb); transition: transform 0.15s ease;
|
|
2399
2787
|
}
|
|
2400
|
-
.observer-switch input:checked + .observer-switch-track { background:
|
|
2788
|
+
.observer-switch input:checked + .observer-switch-track { background: var(--success); }
|
|
2401
2789
|
.observer-switch input:checked + .observer-switch-track .observer-switch-thumb {
|
|
2402
|
-
transform: translateX(15px); background:
|
|
2790
|
+
transform: translateX(15px); background: var(--on-accent);
|
|
2403
2791
|
}
|
|
2404
2792
|
.observer-switch input:disabled + .observer-switch-track { opacity: 0.5; }
|
|
2405
2793
|
|
|
@@ -2417,14 +2805,14 @@ html, body, #root {
|
|
|
2417
2805
|
font: inherit;
|
|
2418
2806
|
color: inherit;
|
|
2419
2807
|
cursor: pointer;
|
|
2420
|
-
background:
|
|
2421
|
-
border: 1px solid
|
|
2422
|
-
border-left: 3px solid
|
|
2808
|
+
background: var(--bg-well);
|
|
2809
|
+
border: 1px solid var(--border-well);
|
|
2810
|
+
border-left: 3px solid var(--border-strong);
|
|
2423
2811
|
border-radius: 9px;
|
|
2424
2812
|
padding: 9px 26px 9px 12px;
|
|
2425
2813
|
transition: border-color 0.12s ease, background 0.12s ease;
|
|
2426
2814
|
}
|
|
2427
|
-
.obs-card:hover { background:
|
|
2815
|
+
.obs-card:hover { background: var(--bg-well-hi); border-color: var(--border-hover); border-left-width: 3px; }
|
|
2428
2816
|
.obs-card:active { transform: scale(0.995); }
|
|
2429
2817
|
|
|
2430
2818
|
.obs-card-top {
|
|
@@ -2450,7 +2838,7 @@ html, body, #root {
|
|
|
2450
2838
|
.obs-chip-dot { width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; }
|
|
2451
2839
|
.obs-card-cat {
|
|
2452
2840
|
font-size: 10px;
|
|
2453
|
-
color:
|
|
2841
|
+
color: var(--text-muted);
|
|
2454
2842
|
letter-spacing: 0.05em;
|
|
2455
2843
|
text-transform: uppercase;
|
|
2456
2844
|
white-space: nowrap;
|
|
@@ -2461,19 +2849,19 @@ html, body, #root {
|
|
|
2461
2849
|
margin-left: auto;
|
|
2462
2850
|
flex-shrink: 0;
|
|
2463
2851
|
font-size: 10px;
|
|
2464
|
-
color:
|
|
2852
|
+
color: var(--text-dim);
|
|
2465
2853
|
font-variant-numeric: tabular-nums;
|
|
2466
2854
|
}
|
|
2467
2855
|
.obs-card-title {
|
|
2468
2856
|
font-size: 12.5px;
|
|
2469
2857
|
font-weight: 600;
|
|
2470
|
-
color:
|
|
2858
|
+
color: var(--text-bright);
|
|
2471
2859
|
line-height: 1.4;
|
|
2472
2860
|
word-break: break-word;
|
|
2473
2861
|
}
|
|
2474
2862
|
.obs-card-body {
|
|
2475
2863
|
font-size: 11.5px;
|
|
2476
|
-
color:
|
|
2864
|
+
color: var(--text-soft);
|
|
2477
2865
|
line-height: 1.5;
|
|
2478
2866
|
word-break: break-word;
|
|
2479
2867
|
}
|
|
@@ -2481,9 +2869,9 @@ html, body, #root {
|
|
|
2481
2869
|
.obs-card-facts { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
2482
2870
|
.obs-fact {
|
|
2483
2871
|
font-size: 10px;
|
|
2484
|
-
color:
|
|
2485
|
-
background:
|
|
2486
|
-
border: 1px solid
|
|
2872
|
+
color: var(--text-muted);
|
|
2873
|
+
background: var(--bg-chip-soft);
|
|
2874
|
+
border: 1px solid var(--border-well);
|
|
2487
2875
|
border-radius: 5px;
|
|
2488
2876
|
padding: 1px 6px;
|
|
2489
2877
|
font-variant-numeric: tabular-nums;
|
|
@@ -2493,7 +2881,7 @@ html, body, #root {
|
|
|
2493
2881
|
right: 10px;
|
|
2494
2882
|
top: 10px;
|
|
2495
2883
|
font-size: 10px;
|
|
2496
|
-
color:
|
|
2884
|
+
color: var(--text-dim);
|
|
2497
2885
|
transition: transform 0.12s ease;
|
|
2498
2886
|
}
|
|
2499
2887
|
.obs-card-caret.open { transform: rotate(90deg); }
|
|
@@ -2505,24 +2893,24 @@ html, body, #root {
|
|
|
2505
2893
|
gap: 8px;
|
|
2506
2894
|
padding: 3px 12px 3px 14px;
|
|
2507
2895
|
font-size: 11px;
|
|
2508
|
-
color:
|
|
2896
|
+
color: var(--text-muted);
|
|
2509
2897
|
line-height: 1.45;
|
|
2510
2898
|
}
|
|
2511
2899
|
.obs-line-dot {
|
|
2512
2900
|
flex-shrink: 0;
|
|
2513
2901
|
width: 4px; height: 4px;
|
|
2514
2902
|
border-radius: 50%;
|
|
2515
|
-
background:
|
|
2903
|
+
background: var(--switch-track);
|
|
2516
2904
|
align-self: center;
|
|
2517
2905
|
}
|
|
2518
|
-
.obs-line.health { color:
|
|
2519
|
-
.obs-line.health .obs-line-dot { background:
|
|
2906
|
+
.obs-line.health { color: var(--warning); }
|
|
2907
|
+
.obs-line.health .obs-line-dot { background: var(--warning); }
|
|
2520
2908
|
.obs-line-text { min-width: 0; word-break: break-word; }
|
|
2521
2909
|
.obs-line-time {
|
|
2522
2910
|
margin-left: auto;
|
|
2523
2911
|
flex-shrink: 0;
|
|
2524
2912
|
font-size: 10px;
|
|
2525
|
-
color:
|
|
2913
|
+
color: var(--text-dim);
|
|
2526
2914
|
font-variant-numeric: tabular-nums;
|
|
2527
2915
|
}
|
|
2528
2916
|
|
|
@@ -2533,12 +2921,12 @@ html, body, #root {
|
|
|
2533
2921
|
justify-content: space-between;
|
|
2534
2922
|
gap: 10px;
|
|
2535
2923
|
padding: 8px 14px;
|
|
2536
|
-
border-bottom: 1px solid
|
|
2924
|
+
border-bottom: 1px solid var(--border-well);
|
|
2537
2925
|
}
|
|
2538
2926
|
.obs-sensitivity {
|
|
2539
2927
|
display: inline-flex;
|
|
2540
|
-
background:
|
|
2541
|
-
border: 1px solid
|
|
2928
|
+
background: var(--bg-well);
|
|
2929
|
+
border: 1px solid var(--border-well);
|
|
2542
2930
|
border-radius: 7px;
|
|
2543
2931
|
padding: 2px;
|
|
2544
2932
|
gap: 2px;
|
|
@@ -2547,7 +2935,7 @@ html, body, #root {
|
|
|
2547
2935
|
appearance: none;
|
|
2548
2936
|
border: none;
|
|
2549
2937
|
background: transparent;
|
|
2550
|
-
color:
|
|
2938
|
+
color: var(--text-muted);
|
|
2551
2939
|
font: inherit;
|
|
2552
2940
|
font-size: 10.5px;
|
|
2553
2941
|
font-weight: 600;
|
|
@@ -2557,8 +2945,8 @@ html, body, #root {
|
|
|
2557
2945
|
transition: background 0.12s ease, color 0.12s ease;
|
|
2558
2946
|
white-space: nowrap;
|
|
2559
2947
|
}
|
|
2560
|
-
.obs-sens-btn:hover { color:
|
|
2561
|
-
.obs-sens-btn.active { background:
|
|
2948
|
+
.obs-sens-btn:hover { color: var(--text-soft); }
|
|
2949
|
+
.obs-sens-btn.active { background: var(--bg-selected); color: var(--text-bright); }
|
|
2562
2950
|
|
|
2563
2951
|
/* "reviewing" bouncing dots */
|
|
2564
2952
|
.obs-reviewing {
|
|
@@ -2566,13 +2954,13 @@ html, body, #root {
|
|
|
2566
2954
|
align-items: center;
|
|
2567
2955
|
gap: 3px;
|
|
2568
2956
|
font-size: 10.5px;
|
|
2569
|
-
color:
|
|
2957
|
+
color: var(--accent);
|
|
2570
2958
|
letter-spacing: 0.03em;
|
|
2571
2959
|
}
|
|
2572
2960
|
.obs-reviewing-dot {
|
|
2573
2961
|
width: 4px; height: 4px;
|
|
2574
2962
|
border-radius: 50%;
|
|
2575
|
-
background:
|
|
2963
|
+
background: var(--accent);
|
|
2576
2964
|
animation: obs-dot-bounce 1.1s ease-in-out infinite;
|
|
2577
2965
|
}
|
|
2578
2966
|
.obs-reviewing-dot:nth-child(2) { animation-delay: 0.15s; }
|
|
@@ -2584,13 +2972,13 @@ html, body, #root {
|
|
|
2584
2972
|
|
|
2585
2973
|
/* Pulsing eye badge while a model review is in flight */
|
|
2586
2974
|
.obs-badge { position: relative; }
|
|
2587
|
-
.obs-badge.reviewing { color:
|
|
2975
|
+
.obs-badge.reviewing { color: var(--accent); }
|
|
2588
2976
|
.obs-badge.reviewing::after {
|
|
2589
2977
|
content: '';
|
|
2590
2978
|
position: absolute;
|
|
2591
2979
|
inset: -1px;
|
|
2592
2980
|
border-radius: inherit;
|
|
2593
|
-
border: 1px solid
|
|
2981
|
+
border: 1px solid var(--accent);
|
|
2594
2982
|
animation: obs-badge-pulse 1.6s ease-out infinite;
|
|
2595
2983
|
pointer-events: none;
|
|
2596
2984
|
}
|