hypercore-cli 1.1.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/LICENSE +92 -21
  2. package/README.md +8 -1
  3. package/dist/App-YMX7FSXR.js +1 -0
  4. package/dist/api-ELP6F4NC.js +1 -0
  5. package/dist/auth-SICBMA3P.js +1 -0
  6. package/dist/auth-X6CUT3DW.js +1 -0
  7. package/dist/background-ACODXSUG.js +1 -0
  8. package/dist/backlog-JD2IM336.js +1 -0
  9. package/dist/chunk-2QI2IU2V.js +1 -0
  10. package/dist/chunk-3KFRDIPQ.js +1 -0
  11. package/dist/chunk-42C5J7PN.js +1 -0
  12. package/dist/chunk-4D7XVJ7Q.js +1 -0
  13. package/dist/chunk-5KUSGQP2.js +1 -0
  14. package/dist/chunk-5OEFAGD5.js +1 -0
  15. package/dist/chunk-AUQ64BK2.js +1 -0
  16. package/dist/chunk-AV244H5C.js +1 -0
  17. package/dist/chunk-BQVBEFS4.js +1 -0
  18. package/dist/chunk-BYWQLFP2.js +1 -0
  19. package/dist/chunk-C6YL7UHE.js +1 -0
  20. package/dist/chunk-COITWWZJ.js +1 -0
  21. package/dist/chunk-CR7UUJVX.js +1 -0
  22. package/dist/chunk-E3MULLBX.js +1 -0
  23. package/dist/chunk-EZHYVJGQ.js +1 -0
  24. package/dist/chunk-FAMURNNH.js +1 -0
  25. package/dist/chunk-FGP56E4W.js +1 -0
  26. package/dist/chunk-FHGATV5B.js +1 -0
  27. package/dist/chunk-I2G27Y5P.js +1 -0
  28. package/dist/chunk-IKF43TX2.js +1 -0
  29. package/dist/chunk-INSPHCBN.js +1 -0
  30. package/dist/chunk-JHMV366T.js +1 -0
  31. package/dist/chunk-L52HX5SX.js +1 -0
  32. package/dist/chunk-LQMDUKIE.js +1 -0
  33. package/dist/chunk-M3MTKGA5.js +1 -0
  34. package/dist/chunk-MPO54FU3.js +1 -0
  35. package/dist/chunk-PVKCZI6A.js +1 -0
  36. package/dist/chunk-Q7KEPCYL.js +1 -0
  37. package/dist/chunk-ROBZ6PAL.js +1 -0
  38. package/dist/chunk-RXB5BS2N.js +1 -0
  39. package/dist/chunk-RZ3HNYMT.js +1 -0
  40. package/dist/chunk-UCGLRMTG.js +1 -0
  41. package/dist/chunk-UEHJVRKB.js +1 -0
  42. package/dist/chunk-UZYX5GGF.js +1 -0
  43. package/dist/chunk-XQJBB725.js +1 -0
  44. package/dist/chunk-YXCRL6K3.js +1 -0
  45. package/dist/claude-US2QPRBA.js +1 -0
  46. package/dist/commands-EKPWCB3T.js +1 -0
  47. package/dist/commands-GYNKP5WV.js +1 -0
  48. package/dist/commands-QHJLREPM.js +1 -0
  49. package/dist/config-2OUL5FLS.js +1 -0
  50. package/dist/config-loader-N7IBWN2P.js +1 -0
  51. package/dist/diagnose-NLHN4SAJ.js +1 -0
  52. package/dist/display-RYAW2GFB.js +1 -0
  53. package/dist/extractor-3KTM2IUL.js +1 -0
  54. package/dist/feature-flag-VVIF5FJG.js +1 -0
  55. package/dist/history-3R2UHRDQ.js +1 -0
  56. package/dist/index.js +1 -402
  57. package/dist/instance-registry-I5AIVJE2.js +1 -0
  58. package/dist/keybindings-RN3A7CRW.js +1 -0
  59. package/dist/loader-3IKPXP4R.js +1 -0
  60. package/dist/network-K5HRJE44.js +1 -0
  61. package/dist/notify-O6FNVHC4.js +1 -0
  62. package/dist/openai-compat-IPCMINVF.js +1 -0
  63. package/dist/panels-2R5YEFXH.js +1 -0
  64. package/dist/permissions-5O7KVAXU.js +1 -0
  65. package/dist/prompt-VWFPFM4N.js +1 -0
  66. package/dist/quality-GPQD25UL.js +1 -0
  67. package/dist/repl-CL4SYHU4.js +1 -0
  68. package/dist/roadmap-QRZODSNJ.js +1 -0
  69. package/dist/server-PKOHK5M2.js +1 -0
  70. package/dist/session-5HDDQQP6.js +1 -0
  71. package/dist/skills-DXWSVJSU.js +1 -0
  72. package/dist/store-WXXTKTTL.js +1 -0
  73. package/dist/team-N2GF4YYS.js +1 -0
  74. package/dist/telemetry-NT4UZLBS.js +1 -0
  75. package/dist/test-runner-F6B6RH3S.js +1 -0
  76. package/dist/theme-JJJ6ABR2.js +1 -0
  77. package/dist/upgrade-RUG3R7R5.js +1 -0
  78. package/dist/verify-6OGRY2PR.js +1 -0
  79. package/dist/version-4RHTDUNQ.js +1 -0
  80. package/dist/web/static/app.js +1 -562
  81. package/dist/web/static/index.html +114 -126
  82. package/dist/web/static/mirror.css +1 -1001
  83. package/dist/web/static/mirror.html +155 -178
  84. package/dist/web/static/mirror.js +1 -1125
  85. package/dist/web/static/onboard.css +1 -302
  86. package/dist/web/static/onboard.html +121 -145
  87. package/dist/web/static/onboard.js +1 -300
  88. package/dist/web/static/style.css +1 -602
  89. package/dist/web/static/utils.js +1 -0
  90. package/dist/web/static/workspace.css +1 -1568
  91. package/dist/web/static/workspace.html +369 -402
  92. package/dist/web/static/workspace.js +1 -1683
  93. package/dist/web-CIC7ZKBM.js +1 -0
  94. package/package.json +26 -4
  95. package/dist/api-JHHOZTL6.js +0 -162
  96. package/dist/auth-5QFJLW7J.js +0 -21
  97. package/dist/background-2EGCAAQH.js +0 -14
  98. package/dist/backlog-Q2NZCLNY.js +0 -24
  99. package/dist/chunk-2CMSCWQW.js +0 -162
  100. package/dist/chunk-4DVYJAJL.js +0 -57
  101. package/dist/chunk-5GDYH676.js +0 -271
  102. package/dist/chunk-5NLVGLD7.js +0 -66
  103. package/dist/chunk-6XTEAFZQ.js +0 -575
  104. package/dist/chunk-AQBSMYLT.js +0 -2025
  105. package/dist/chunk-BE46C7JW.js +0 -46
  106. package/dist/chunk-CLKIMCXZ.js +0 -139
  107. package/dist/chunk-DN4ASQ26.js +0 -167
  108. package/dist/chunk-DUWREZXK.js +0 -173
  109. package/dist/chunk-FCW3K6F2.js +0 -263
  110. package/dist/chunk-GFORWAMW.js +0 -251
  111. package/dist/chunk-GH7E2OJE.js +0 -223
  112. package/dist/chunk-GU2FZQ6A.js +0 -69
  113. package/dist/chunk-I7WI3BMB.js +0 -161
  114. package/dist/chunk-IOPKN5GD.js +0 -190
  115. package/dist/chunk-LBVHDGZE.js +0 -133
  116. package/dist/chunk-MGLJ53QN.js +0 -219
  117. package/dist/chunk-NETIY5UB.js +0 -134
  118. package/dist/chunk-NP47L7LG.js +0 -288
  119. package/dist/chunk-O6MG7TOH.js +0 -58
  120. package/dist/chunk-OPZYEVYR.js +0 -150
  121. package/dist/chunk-R3GPQC7I.js +0 -393
  122. package/dist/chunk-R5T3A2NQ.js +0 -166
  123. package/dist/chunk-RKB2JOV2.js +0 -43
  124. package/dist/chunk-RNG3K465.js +0 -80
  125. package/dist/chunk-TGTYKBGC.js +0 -86
  126. package/dist/chunk-UCX4VZCT.js +0 -681
  127. package/dist/chunk-WHLVZCQY.js +0 -245
  128. package/dist/chunk-Y6HMJZDJ.js +0 -1505
  129. package/dist/chunk-ZSBHUGWR.js +0 -262
  130. package/dist/claude-4BX3MJSK.js +0 -12
  131. package/dist/commands-2X4OB5RF.js +0 -128
  132. package/dist/commands-GLBCEVQK.js +0 -1044
  133. package/dist/commands-IINRNBYX.js +0 -232
  134. package/dist/config-RSNQJQPS.js +0 -8
  135. package/dist/config-loader-SXO674TF.js +0 -24
  136. package/dist/diagnose-7UPLS7I4.js +0 -12
  137. package/dist/display-IIUBEYWN.js +0 -58
  138. package/dist/extractor-D3XWOAXI.js +0 -129
  139. package/dist/history-6I6FADAU.js +0 -180
  140. package/dist/index.d.ts +0 -1
  141. package/dist/instance-registry-J7UJ7U4Z.js +0 -15
  142. package/dist/keybindings-PDXIOV3O.js +0 -15
  143. package/dist/loader-GKEYT6Y7.js +0 -58
  144. package/dist/network-JYGHQXAR.js +0 -279
  145. package/dist/notify-HPTALZDC.js +0 -14
  146. package/dist/openai-compat-R7EKWG6Z.js +0 -12
  147. package/dist/permissions-JUKXMNDH.js +0 -10
  148. package/dist/prompt-UWHSZU4P.js +0 -166
  149. package/dist/quality-ST7PPNFR.js +0 -16
  150. package/dist/repl-QHIZ2JGF.js +0 -3374
  151. package/dist/roadmap-5OBEKROY.js +0 -17
  152. package/dist/server-HCNIP7ZQ.js +0 -57
  153. package/dist/session-5EBECDUP.js +0 -21
  154. package/dist/skills-HBQQTYO4.js +0 -175
  155. package/dist/store-FKUTR7GW.js +0 -25
  156. package/dist/team-7BBBP5YQ.js +0 -385
  157. package/dist/telemetry-6R4EIE6O.js +0 -30
  158. package/dist/test-runner-AUAGIBNM.js +0 -619
  159. package/dist/theme-3SYJ3UQA.js +0 -14
  160. package/dist/upgrade-MZFH7OCN.js +0 -83
  161. package/dist/verify-JUDKTPKZ.js +0 -14
  162. package/dist/web-KS3FUGJA.js +0 -39
@@ -1,1568 +1 @@
1
- /* ===== Hypercore Workspace — 主题系统 ===== */
2
-
3
- /* --- Dark Theme (默认) --- */
4
- :root, [data-theme="dark"] {
5
- --wb-bg: #0d1117;
6
- --wb-bg-secondary: #161b22;
7
- --wb-bg-tertiary: #1c2128;
8
- --wb-bg-hover: #21262d;
9
- --wb-border: #30363d;
10
- --wb-text: #e6edf3;
11
- --wb-text-dim: #8b949e;
12
- --wb-text-muted: #484f58;
13
- --wb-accent: #58a6ff;
14
- --wb-accent-dim: #1f6feb;
15
- --wb-green: #3fb950;
16
- --wb-red: #f85149;
17
- --wb-orange: #d29922;
18
- --wb-purple: #bc8cff;
19
- --wb-magenta: #f778ba;
20
- --wb-cyan: #39d2c0;
21
-
22
- --wb-sidebar-w: 220px;
23
- --wb-context-w: 260px;
24
- --wb-header-h: 44px;
25
- --wb-footer-h: 28px;
26
- --wb-radius: 6px;
27
- --wb-radius-sm: 4px;
28
- }
29
-
30
- /* --- Light Theme --- */
31
- [data-theme="light"] {
32
- --wb-bg: #ffffff;
33
- --wb-bg-secondary: #f6f8fa;
34
- --wb-bg-tertiary: #eaeef2;
35
- --wb-bg-hover: #d0d7de;
36
- --wb-border: #d0d7de;
37
- --wb-text: #1f2328;
38
- --wb-text-dim: #656d76;
39
- --wb-text-muted: #8b949e;
40
- --wb-accent: #0969da;
41
- --wb-accent-dim: #218bff;
42
- --wb-green: #1a7f37;
43
- --wb-red: #cf222e;
44
- --wb-orange: #9a6700;
45
- --wb-purple: #8250df;
46
- --wb-magenta: #bf3989;
47
- --wb-cyan: #0e8a7e;
48
- }
49
-
50
- /* --- High Contrast Theme --- */
51
- [data-theme="high-contrast"] {
52
- --wb-bg: #000000;
53
- --wb-bg-secondary: #0a0a0a;
54
- --wb-bg-tertiary: #151515;
55
- --wb-bg-hover: #252525;
56
- --wb-border: #ffffff;
57
- --wb-text: #ffffff;
58
- --wb-text-dim: #cccccc;
59
- --wb-text-muted: #999999;
60
- --wb-accent: #71b7ff;
61
- --wb-accent-dim: #409eff;
62
- --wb-green: #56d364;
63
- --wb-red: #ff7b72;
64
- --wb-orange: #e3b341;
65
- --wb-purple: #d2a8ff;
66
- --wb-magenta: #ff9bce;
67
- --wb-cyan: #56d4dd;
68
- }
69
-
70
- * {
71
- margin: 0;
72
- padding: 0;
73
- box-sizing: border-box;
74
- }
75
-
76
- body {
77
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
78
- font-size: 13px;
79
- line-height: 1.5;
80
- color: var(--wb-text);
81
- background: var(--wb-bg);
82
- height: 100vh;
83
- overflow: hidden;
84
- display: flex;
85
- flex-direction: column;
86
- }
87
-
88
- /* ===== Header ===== */
89
-
90
- .wb-header {
91
- height: var(--wb-header-h);
92
- background: var(--wb-bg-secondary);
93
- border-bottom: 1px solid var(--wb-border);
94
- display: flex;
95
- align-items: center;
96
- justify-content: space-between;
97
- padding: 0 16px;
98
- flex-shrink: 0;
99
- }
100
-
101
- .wb-header-left {
102
- display: flex;
103
- align-items: center;
104
- gap: 12px;
105
- }
106
-
107
- .wb-logo {
108
- font-weight: 700;
109
- font-size: 14px;
110
- color: var(--wb-cyan);
111
- }
112
-
113
- .wb-badge {
114
- font-size: 11px;
115
- padding: 2px 8px;
116
- background: var(--wb-bg-tertiary);
117
- border: 1px solid var(--wb-border);
118
- border-radius: 12px;
119
- color: var(--wb-text-dim);
120
- }
121
-
122
- .wb-header-center {
123
- display: flex;
124
- align-items: center;
125
- }
126
-
127
- .wb-status {
128
- display: flex;
129
- align-items: center;
130
- gap: 6px;
131
- font-size: 12px;
132
- color: var(--wb-text-dim);
133
- }
134
-
135
- .wb-dot {
136
- width: 8px;
137
- height: 8px;
138
- border-radius: 50%;
139
- display: inline-block;
140
- }
141
-
142
- .wb-dot-connected { background: var(--wb-green); }
143
- .wb-dot-disconnected { background: var(--wb-red); }
144
- .wb-dot-connecting { background: var(--wb-orange); animation: pulse 1.5s infinite; }
145
-
146
- @keyframes pulse {
147
- 0%, 100% { opacity: 1; }
148
- 50% { opacity: 0.4; }
149
- }
150
-
151
- .wb-btn-icon {
152
- background: none;
153
- border: none;
154
- font-size: 16px;
155
- cursor: pointer;
156
- padding: 4px;
157
- border-radius: var(--wb-radius-sm);
158
- }
159
-
160
- .wb-btn-icon:hover {
161
- background: var(--wb-bg-hover);
162
- }
163
-
164
- /* ===== Main Layout ===== */
165
-
166
- .wb-main {
167
- flex: 1;
168
- display: grid;
169
- grid-template-columns: var(--wb-sidebar-w) 1fr var(--wb-context-w);
170
- overflow: hidden;
171
- }
172
-
173
- /* ===== Sidebar ===== */
174
-
175
- .wb-sidebar {
176
- background: var(--wb-bg-secondary);
177
- border-right: 1px solid var(--wb-border);
178
- display: flex;
179
- flex-direction: column;
180
- overflow-y: auto;
181
- }
182
-
183
- .wb-nav {
184
- display: flex;
185
- flex-direction: column;
186
- padding: 8px;
187
- gap: 2px;
188
- }
189
-
190
- .wb-nav-item {
191
- display: flex;
192
- align-items: center;
193
- gap: 8px;
194
- padding: 8px 12px;
195
- background: none;
196
- border: none;
197
- border-radius: var(--wb-radius);
198
- color: var(--wb-text-dim);
199
- font-size: 13px;
200
- cursor: pointer;
201
- text-align: left;
202
- transition: all 0.15s;
203
- }
204
-
205
- .wb-nav-item:hover {
206
- background: var(--wb-bg-hover);
207
- color: var(--wb-text);
208
- }
209
-
210
- .wb-nav-item.active {
211
- background: var(--wb-accent-dim);
212
- color: #fff;
213
- }
214
-
215
- .wb-sidebar-section {
216
- padding: 12px;
217
- border-top: 1px solid var(--wb-border);
218
- }
219
-
220
- .wb-section-title {
221
- font-size: 11px;
222
- font-weight: 600;
223
- text-transform: uppercase;
224
- letter-spacing: 0.5px;
225
- color: var(--wb-text-muted);
226
- margin-bottom: 8px;
227
- }
228
-
229
- .wb-shortcuts {
230
- display: flex;
231
- flex-direction: column;
232
- gap: 2px;
233
- }
234
-
235
- .wb-shortcut {
236
- display: flex;
237
- align-items: center;
238
- gap: 6px;
239
- padding: 5px 8px;
240
- background: none;
241
- border: none;
242
- border-radius: var(--wb-radius-sm);
243
- color: var(--wb-text-dim);
244
- font-size: 12px;
245
- cursor: pointer;
246
- text-align: left;
247
- }
248
-
249
- .wb-shortcut:hover {
250
- background: var(--wb-bg-hover);
251
- color: var(--wb-text);
252
- }
253
-
254
- .wb-session-info {
255
- font-size: 11px;
256
- color: var(--wb-text-muted);
257
- }
258
-
259
- .wb-session-id {
260
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
261
- }
262
-
263
- /* ===== Content Area ===== */
264
-
265
- .wb-content {
266
- display: flex;
267
- flex-direction: column;
268
- overflow: hidden;
269
- background: var(--wb-bg);
270
- }
271
-
272
- .wb-tab-panel {
273
- display: none;
274
- flex-direction: column;
275
- flex: 1;
276
- overflow: hidden;
277
- }
278
-
279
- .wb-tab-panel.active {
280
- display: flex;
281
- }
282
-
283
- .wb-panel-header {
284
- padding: 10px 16px;
285
- font-size: 13px;
286
- font-weight: 600;
287
- border-bottom: 1px solid var(--wb-border);
288
- display: flex;
289
- align-items: center;
290
- gap: 8px;
291
- flex-shrink: 0;
292
- }
293
-
294
- .wb-path-display {
295
- font-family: 'SF Mono', Monaco, monospace;
296
- font-size: 11px;
297
- color: var(--wb-text-dim);
298
- margin-left: auto;
299
- }
300
-
301
- .wb-empty {
302
- padding: 24px;
303
- text-align: center;
304
- color: var(--wb-text-muted);
305
- }
306
-
307
- /* ===== Chat Panel ===== */
308
-
309
- .wb-chat-messages {
310
- flex: 1;
311
- overflow-y: auto;
312
- padding: 16px;
313
- display: flex;
314
- flex-direction: column;
315
- gap: 12px;
316
- }
317
-
318
- .wb-welcome-msg {
319
- text-align: center;
320
- padding: 40px 20px;
321
- color: var(--wb-text-dim);
322
- }
323
-
324
- .wb-welcome-icon {
325
- font-size: 48px;
326
- margin-bottom: 12px;
327
- }
328
-
329
- .wb-welcome-text {
330
- font-size: 20px;
331
- font-weight: 600;
332
- color: var(--wb-text);
333
- margin-bottom: 8px;
334
- }
335
-
336
- .wb-welcome-sub {
337
- font-size: 13px;
338
- }
339
-
340
- /* Chat Messages */
341
- .wb-msg {
342
- display: flex;
343
- flex-direction: column;
344
- gap: 4px;
345
- max-width: 85%;
346
- animation: fadeIn 0.2s ease;
347
- }
348
-
349
- @keyframes fadeIn {
350
- from { opacity: 0; transform: translateY(4px); }
351
- to { opacity: 1; transform: translateY(0); }
352
- }
353
-
354
- .wb-msg-user {
355
- align-self: flex-end;
356
- }
357
-
358
- .wb-msg-assistant {
359
- align-self: flex-start;
360
- }
361
-
362
- .wb-msg-header {
363
- display: flex;
364
- align-items: center;
365
- gap: 6px;
366
- font-size: 11px;
367
- color: var(--wb-text-muted);
368
- }
369
-
370
- .wb-msg-source {
371
- font-size: 10px;
372
- padding: 1px 5px;
373
- border-radius: 3px;
374
- font-weight: 600;
375
- }
376
-
377
- .wb-msg-source-cli {
378
- background: var(--wb-accent-dim);
379
- color: var(--wb-accent);
380
- }
381
-
382
- .wb-msg-source-gui {
383
- background: #2d1b4e;
384
- color: var(--wb-purple);
385
- }
386
-
387
- .wb-msg-body {
388
- padding: 10px 14px;
389
- border-radius: var(--wb-radius);
390
- font-size: 13px;
391
- line-height: 1.6;
392
- white-space: pre-wrap;
393
- word-break: break-word;
394
- }
395
-
396
- .wb-msg-user .wb-msg-body {
397
- background: var(--wb-accent-dim);
398
- color: #fff;
399
- border-bottom-right-radius: 2px;
400
- }
401
-
402
- .wb-msg-assistant .wb-msg-body {
403
- background: var(--wb-bg-secondary);
404
- border: 1px solid var(--wb-border);
405
- border-bottom-left-radius: 2px;
406
- }
407
-
408
- /* Tool calls */
409
- .wb-msg-tool {
410
- align-self: flex-start;
411
- max-width: 90%;
412
- }
413
-
414
- .wb-tool-badge {
415
- display: inline-flex;
416
- align-items: center;
417
- gap: 4px;
418
- padding: 4px 10px;
419
- background: var(--wb-bg-tertiary);
420
- border: 1px solid var(--wb-border);
421
- border-radius: var(--wb-radius);
422
- font-size: 12px;
423
- color: var(--wb-orange);
424
- font-family: 'SF Mono', Monaco, monospace;
425
- }
426
-
427
- /* Streaming indicator */
428
- .wb-streaming {
429
- display: inline-block;
430
- width: 6px;
431
- height: 14px;
432
- background: var(--wb-accent);
433
- animation: blink 0.8s infinite;
434
- margin-left: 2px;
435
- vertical-align: middle;
436
- }
437
-
438
- @keyframes blink {
439
- 0%, 50% { opacity: 1; }
440
- 51%, 100% { opacity: 0; }
441
- }
442
-
443
- /* ===== Chat Input ===== */
444
-
445
- .wb-chat-input-area {
446
- display: flex;
447
- align-items: flex-end;
448
- gap: 8px;
449
- padding: 12px 16px;
450
- border-top: 1px solid var(--wb-border);
451
- background: var(--wb-bg-secondary);
452
- flex-shrink: 0;
453
- }
454
-
455
- .wb-chat-input {
456
- flex: 1;
457
- resize: none;
458
- background: var(--wb-bg);
459
- border: 1px solid var(--wb-border);
460
- border-radius: var(--wb-radius);
461
- padding: 10px 14px;
462
- color: var(--wb-text);
463
- font-family: inherit;
464
- font-size: 13px;
465
- line-height: 1.5;
466
- max-height: 150px;
467
- outline: none;
468
- transition: border-color 0.15s;
469
- }
470
-
471
- .wb-chat-input:focus {
472
- border-color: var(--wb-accent);
473
- }
474
-
475
- .wb-chat-input::placeholder {
476
- color: var(--wb-text-muted);
477
- }
478
-
479
- .wb-btn-send {
480
- width: 36px;
481
- height: 36px;
482
- display: flex;
483
- align-items: center;
484
- justify-content: center;
485
- background: var(--wb-accent-dim);
486
- color: #fff;
487
- border: none;
488
- border-radius: var(--wb-radius);
489
- font-size: 14px;
490
- cursor: pointer;
491
- flex-shrink: 0;
492
- transition: background 0.15s;
493
- }
494
-
495
- .wb-btn-send:hover {
496
- background: var(--wb-accent);
497
- }
498
-
499
- .wb-btn-send:disabled {
500
- opacity: 0.4;
501
- cursor: not-allowed;
502
- }
503
-
504
- /* ===== Files Panel ===== */
505
-
506
- .wb-file-list {
507
- flex: 1;
508
- overflow-y: auto;
509
- padding: 8px;
510
- }
511
-
512
- .wb-file-item {
513
- display: flex;
514
- align-items: center;
515
- gap: 8px;
516
- padding: 6px 12px;
517
- border-radius: var(--wb-radius-sm);
518
- cursor: pointer;
519
- font-size: 13px;
520
- color: var(--wb-text);
521
- }
522
-
523
- .wb-file-item:hover {
524
- background: var(--wb-bg-hover);
525
- }
526
-
527
- .wb-file-icon {
528
- font-size: 14px;
529
- width: 20px;
530
- text-align: center;
531
- }
532
-
533
- .wb-file-name {
534
- flex: 1;
535
- overflow: hidden;
536
- text-overflow: ellipsis;
537
- white-space: nowrap;
538
- }
539
-
540
- .wb-file-size {
541
- font-size: 11px;
542
- color: var(--wb-text-muted);
543
- }
544
-
545
- /* ===== Memory Panel ===== */
546
-
547
- .wb-memory-stats {
548
- padding: 12px 16px;
549
- border-bottom: 1px solid var(--wb-border);
550
- }
551
-
552
- .wb-memory-stat {
553
- display: flex;
554
- justify-content: space-between;
555
- padding: 4px 0;
556
- font-size: 12px;
557
- }
558
-
559
- .wb-memory-stat-label {
560
- color: var(--wb-text-dim);
561
- }
562
-
563
- .wb-memory-stat-value {
564
- color: var(--wb-text);
565
- font-weight: 600;
566
- }
567
-
568
- .wb-memory-list {
569
- flex: 1;
570
- overflow-y: auto;
571
- padding: 8px 16px;
572
- }
573
-
574
- .wb-memory-item {
575
- padding: 8px 0;
576
- border-bottom: 1px solid var(--wb-border);
577
- font-size: 12px;
578
- }
579
-
580
- .wb-memory-category {
581
- font-size: 10px;
582
- padding: 1px 5px;
583
- border-radius: 3px;
584
- background: var(--wb-bg-tertiary);
585
- color: var(--wb-accent);
586
- margin-right: 6px;
587
- }
588
-
589
- .wb-memory-content {
590
- color: var(--wb-text);
591
- margin-top: 4px;
592
- }
593
-
594
- .wb-memory-tags {
595
- margin-top: 4px;
596
- color: var(--wb-text-muted);
597
- font-size: 11px;
598
- }
599
-
600
- /* ===== Tools Panel ===== */
601
-
602
- .wb-tool-list {
603
- flex: 1;
604
- overflow-y: auto;
605
- padding: 8px 16px;
606
- }
607
-
608
- .wb-tool-item {
609
- padding: 8px 0;
610
- border-bottom: 1px solid var(--wb-border);
611
- }
612
-
613
- .wb-tool-name {
614
- font-family: 'SF Mono', Monaco, monospace;
615
- font-size: 12px;
616
- color: var(--wb-green);
617
- font-weight: 600;
618
- }
619
-
620
- .wb-tool-desc {
621
- font-size: 12px;
622
- color: var(--wb-text-dim);
623
- margin-top: 2px;
624
- overflow: hidden;
625
- text-overflow: ellipsis;
626
- white-space: nowrap;
627
- }
628
-
629
- /* ===== Context Panel ===== */
630
-
631
- .wb-context {
632
- background: var(--wb-bg-secondary);
633
- border-left: 1px solid var(--wb-border);
634
- overflow-y: auto;
635
- padding: 8px 0;
636
- }
637
-
638
- .wb-context-section {
639
- padding: 10px 16px;
640
- border-bottom: 1px solid var(--wb-border);
641
- }
642
-
643
- .wb-context-item {
644
- display: flex;
645
- justify-content: space-between;
646
- align-items: center;
647
- padding: 3px 0;
648
- }
649
-
650
- .wb-ctx-label {
651
- font-size: 12px;
652
- color: var(--wb-text-muted);
653
- }
654
-
655
- .wb-ctx-value {
656
- font-size: 12px;
657
- color: var(--wb-text);
658
- text-align: right;
659
- overflow: hidden;
660
- text-overflow: ellipsis;
661
- white-space: nowrap;
662
- max-width: 160px;
663
- }
664
-
665
- .wb-ctx-mono {
666
- font-family: 'SF Mono', Monaco, monospace;
667
- font-size: 11px;
668
- }
669
-
670
- /* ===== Footer ===== */
671
-
672
- .wb-footer {
673
- height: var(--wb-footer-h);
674
- background: var(--wb-bg-secondary);
675
- border-top: 1px solid var(--wb-border);
676
- display: flex;
677
- align-items: center;
678
- padding: 0 16px;
679
- gap: 24px;
680
- font-size: 11px;
681
- color: var(--wb-text-muted);
682
- flex-shrink: 0;
683
- }
684
-
685
- /* ===== Scrollbar ===== */
686
-
687
- ::-webkit-scrollbar {
688
- width: 6px;
689
- }
690
-
691
- ::-webkit-scrollbar-track {
692
- background: transparent;
693
- }
694
-
695
- ::-webkit-scrollbar-thumb {
696
- background: var(--wb-border);
697
- border-radius: 3px;
698
- }
699
-
700
- ::-webkit-scrollbar-thumb:hover {
701
- background: var(--wb-text-muted);
702
- }
703
-
704
- /* ===== Responsive ===== */
705
-
706
- @media (max-width: 1024px) {
707
- .wb-main {
708
- grid-template-columns: 1fr;
709
- }
710
- .wb-sidebar, .wb-context {
711
- display: none;
712
- }
713
- }
714
-
715
- @media (max-width: 1400px) and (min-width: 1025px) {
716
- .wb-main {
717
- grid-template-columns: var(--wb-sidebar-w) 1fr;
718
- }
719
- .wb-context {
720
- display: none;
721
- }
722
- }
723
-
724
- /* ===== Token Bar ===== */
725
-
726
- .wb-token-bar {
727
- height: 4px;
728
- background: var(--wb-bg);
729
- border-radius: 2px;
730
- margin-bottom: 8px;
731
- overflow: hidden;
732
- }
733
-
734
- .wb-token-bar-fill {
735
- height: 100%;
736
- background: linear-gradient(90deg, var(--wb-accent), var(--wb-cyan));
737
- border-radius: 2px;
738
- transition: width 0.5s ease;
739
- }
740
-
741
- .wb-ctx-highlight {
742
- color: var(--wb-cyan);
743
- font-weight: 600;
744
- }
745
-
746
- /* ===== Search Box ===== */
747
-
748
- .wb-search-box {
749
- display: flex;
750
- align-items: center;
751
- gap: 4px;
752
- margin-left: auto;
753
- }
754
-
755
- .wb-search-input {
756
- background: var(--wb-bg);
757
- border: 1px solid var(--wb-border);
758
- border-radius: var(--wb-radius-sm);
759
- padding: 4px 8px;
760
- color: var(--wb-text);
761
- font-size: 12px;
762
- width: 180px;
763
- outline: none;
764
- transition: border-color 0.15s;
765
- }
766
-
767
- .wb-search-input:focus {
768
- border-color: var(--wb-accent);
769
- }
770
-
771
- .wb-search-btn {
772
- background: none;
773
- border: none;
774
- font-size: 14px;
775
- cursor: pointer;
776
- padding: 2px 4px;
777
- }
778
-
779
- /* ===== Tool Call Details ===== */
780
-
781
- .wb-tool-detail {
782
- align-self: flex-start;
783
- max-width: 90%;
784
- animation: fadeIn 0.2s ease;
785
- }
786
-
787
- .wb-tool-header {
788
- display: flex;
789
- align-items: center;
790
- gap: 8px;
791
- padding: 6px 12px;
792
- background: var(--wb-bg-tertiary);
793
- border: 1px solid var(--wb-border);
794
- border-radius: var(--wb-radius);
795
- cursor: pointer;
796
- transition: background 0.15s;
797
- }
798
-
799
- .wb-tool-header:hover {
800
- background: var(--wb-bg-hover);
801
- }
802
-
803
- .wb-tool-header .wb-tool-name {
804
- font-family: 'SF Mono', Monaco, monospace;
805
- font-size: 12px;
806
- color: var(--wb-orange);
807
- }
808
-
809
- .wb-tool-header .wb-tool-chevron {
810
- font-size: 10px;
811
- color: var(--wb-text-muted);
812
- transition: transform 0.2s;
813
- margin-left: auto;
814
- }
815
-
816
- .wb-tool-header.expanded .wb-tool-chevron {
817
- transform: rotate(90deg);
818
- }
819
-
820
- .wb-tool-params {
821
- display: none;
822
- margin-top: 4px;
823
- padding: 8px 12px;
824
- background: var(--wb-bg);
825
- border: 1px solid var(--wb-border);
826
- border-radius: var(--wb-radius-sm);
827
- font-family: 'SF Mono', Monaco, monospace;
828
- font-size: 11px;
829
- color: var(--wb-text-dim);
830
- white-space: pre-wrap;
831
- word-break: break-all;
832
- max-height: 200px;
833
- overflow-y: auto;
834
- }
835
-
836
- .wb-tool-params.visible {
837
- display: block;
838
- }
839
-
840
- .wb-tool-status {
841
- display: inline-flex;
842
- align-items: center;
843
- gap: 4px;
844
- padding: 3px 8px;
845
- font-size: 11px;
846
- border-radius: 3px;
847
- margin-top: 4px;
848
- }
849
-
850
- .wb-tool-status-ok {
851
- background: rgba(63, 185, 80, 0.15);
852
- color: var(--wb-green);
853
- }
854
-
855
- .wb-tool-status-err {
856
- background: rgba(248, 81, 73, 0.15);
857
- color: var(--wb-red);
858
- }
859
-
860
- /* ===== File Preview Modal ===== */
861
-
862
- .wb-modal-overlay {
863
- display: none;
864
- position: fixed;
865
- inset: 0;
866
- background: rgba(0, 0, 0, 0.6);
867
- z-index: 1000;
868
- align-items: center;
869
- justify-content: center;
870
- backdrop-filter: blur(2px);
871
- }
872
-
873
- .wb-modal-overlay.visible {
874
- display: flex;
875
- }
876
-
877
- .wb-modal {
878
- background: var(--wb-bg-secondary);
879
- border: 1px solid var(--wb-border);
880
- border-radius: 8px;
881
- width: min(80vw, 800px);
882
- max-height: 80vh;
883
- display: flex;
884
- flex-direction: column;
885
- box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
886
- animation: modalIn 0.2s ease;
887
- }
888
-
889
- @keyframes modalIn {
890
- from { opacity: 0; transform: scale(0.95); }
891
- to { opacity: 1; transform: scale(1); }
892
- }
893
-
894
- .wb-modal-header {
895
- display: flex;
896
- align-items: center;
897
- justify-content: space-between;
898
- padding: 12px 16px;
899
- border-bottom: 1px solid var(--wb-border);
900
- flex-shrink: 0;
901
- }
902
-
903
- .wb-modal-title {
904
- font-family: 'SF Mono', Monaco, monospace;
905
- font-size: 13px;
906
- color: var(--wb-accent);
907
- font-weight: 600;
908
- }
909
-
910
- .wb-modal-close {
911
- background: none;
912
- border: none;
913
- font-size: 20px;
914
- color: var(--wb-text-dim);
915
- cursor: pointer;
916
- line-height: 1;
917
- padding: 0 4px;
918
- }
919
-
920
- .wb-modal-close:hover {
921
- color: var(--wb-text);
922
- }
923
-
924
- .wb-modal-body {
925
- flex: 1;
926
- overflow: auto;
927
- padding: 16px;
928
- margin: 0;
929
- background: var(--wb-bg);
930
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
931
- font-size: 12px;
932
- line-height: 1.6;
933
- color: var(--wb-text);
934
- white-space: pre;
935
- tab-size: 2;
936
- }
937
-
938
- /* ===== Code blocks in messages ===== */
939
-
940
- .wb-msg-body pre {
941
- background: var(--wb-bg);
942
- border: 1px solid var(--wb-border);
943
- border-radius: var(--wb-radius-sm);
944
- padding: 10px;
945
- overflow-x: auto;
946
- margin: 8px 0;
947
- }
948
-
949
- .wb-msg-body code {
950
- font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
951
- font-size: 12px;
952
- }
953
-
954
- .wb-msg-body :not(pre) > code {
955
- background: var(--wb-bg-tertiary);
956
- padding: 1px 5px;
957
- border-radius: 3px;
958
- color: var(--wb-cyan);
959
- }
960
-
961
- .wb-msg-body p {
962
- margin: 4px 0;
963
- }
964
-
965
- .wb-msg-body h1, .wb-msg-body h2, .wb-msg-body h3 {
966
- margin: 12px 0 6px;
967
- font-weight: 600;
968
- }
969
-
970
- .wb-msg-body h1 { font-size: 16px; }
971
- .wb-msg-body h2 { font-size: 14px; }
972
- .wb-msg-body h3 { font-size: 13px; color: var(--wb-text-dim); }
973
-
974
- .wb-msg-body ul, .wb-msg-body ol {
975
- margin: 4px 0;
976
- padding-left: 20px;
977
- }
978
-
979
- .wb-msg-body li {
980
- margin: 2px 0;
981
- }
982
-
983
- .wb-msg-body hr {
984
- border: none;
985
- border-top: 1px solid var(--wb-border);
986
- margin: 8px 0;
987
- }
988
-
989
- .wb-msg-body a {
990
- color: var(--wb-accent);
991
- text-decoration: none;
992
- }
993
-
994
- .wb-msg-body a:hover {
995
- text-decoration: underline;
996
- }
997
-
998
- .wb-msg-body blockquote {
999
- border-left: 3px solid var(--wb-accent-dim);
1000
- padding-left: 12px;
1001
- color: var(--wb-text-dim);
1002
- margin: 8px 0;
1003
- }
1004
-
1005
- /* ===== File item enhancements ===== */
1006
-
1007
- .wb-file-item {
1008
- transition: background 0.1s;
1009
- }
1010
-
1011
- .wb-file-item-active {
1012
- background: var(--wb-bg-hover);
1013
- border-left: 2px solid var(--wb-accent);
1014
- padding-left: 10px;
1015
- }
1016
-
1017
- /* ===== Nav Divider ===== */
1018
-
1019
- .wb-nav-divider {
1020
- height: 1px;
1021
- background: var(--wb-border);
1022
- margin: 6px 8px;
1023
- }
1024
-
1025
- /* ===== Shared Form Elements ===== */
1026
-
1027
- .wb-input {
1028
- background: var(--wb-bg);
1029
- border: 1px solid var(--wb-border);
1030
- border-radius: var(--wb-radius-sm);
1031
- padding: 6px 10px;
1032
- color: var(--wb-text);
1033
- font-size: 12px;
1034
- outline: none;
1035
- transition: border-color 0.15s;
1036
- width: 100%;
1037
- }
1038
-
1039
- .wb-input:focus { border-color: var(--wb-accent); }
1040
-
1041
- .wb-input-sm { width: auto; min-width: 80px; }
1042
- .wb-input-xs { width: auto; min-width: 60px; padding: 3px 6px; font-size: 11px; }
1043
-
1044
- .wb-select {
1045
- background: var(--wb-bg);
1046
- border: 1px solid var(--wb-border);
1047
- border-radius: var(--wb-radius-sm);
1048
- padding: 6px 10px;
1049
- color: var(--wb-text);
1050
- font-size: 12px;
1051
- outline: none;
1052
- }
1053
-
1054
- .wb-btn-primary {
1055
- background: var(--wb-accent-dim);
1056
- color: #fff;
1057
- border: none;
1058
- border-radius: var(--wb-radius-sm);
1059
- padding: 6px 14px;
1060
- font-size: 12px;
1061
- cursor: pointer;
1062
- white-space: nowrap;
1063
- transition: background 0.15s;
1064
- }
1065
-
1066
- .wb-btn-primary:hover { background: var(--wb-accent); }
1067
-
1068
- .wb-btn-sm { padding: 4px 10px; font-size: 11px; }
1069
- .wb-btn-xs { padding: 2px 6px; font-size: 10px; background: var(--wb-bg-tertiary); color: var(--wb-text-dim); border: 1px solid var(--wb-border); border-radius: 3px; cursor: pointer; }
1070
- .wb-btn-xs:hover { background: var(--wb-bg-hover); color: var(--wb-text); }
1071
-
1072
- .wb-btn-danger {
1073
- background: rgba(248, 81, 73, 0.2);
1074
- color: var(--wb-red);
1075
- border: 1px solid var(--wb-red);
1076
- border-radius: var(--wb-radius-sm);
1077
- padding: 4px 10px;
1078
- font-size: 11px;
1079
- cursor: pointer;
1080
- }
1081
-
1082
- .wb-btn-danger:hover { background: rgba(248, 81, 73, 0.35); }
1083
-
1084
- .wb-form-group { margin-bottom: 10px; }
1085
- .wb-form-group label { display: block; font-size: 11px; color: var(--wb-text-dim); margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.5px; }
1086
- .wb-form-row { display: flex; gap: 8px; align-items: center; }
1087
- .wb-form-divider { text-align: center; color: var(--wb-text-muted); font-size: 12px; padding: 8px 0; }
1088
- .wb-form-actions { display: flex; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--wb-border); }
1089
- .wb-modal-form { padding: 16px; }
1090
- .wb-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 48px 24px; color: var(--wb-text-muted); gap: 12px; }
1091
- .wb-empty-icon { font-size: 36px; }
1092
-
1093
- /* ===== Team Tab ===== */
1094
-
1095
- .wb-team-join {
1096
- padding: 24px;
1097
- display: flex;
1098
- justify-content: center;
1099
- }
1100
-
1101
- .wb-team-join-card {
1102
- background: var(--wb-bg-secondary);
1103
- border: 1px solid var(--wb-border);
1104
- border-radius: 8px;
1105
- padding: 24px;
1106
- max-width: 480px;
1107
- width: 100%;
1108
- }
1109
-
1110
- .wb-team-join-card h3 {
1111
- font-size: 14px;
1112
- margin-bottom: 16px;
1113
- color: var(--wb-text);
1114
- }
1115
-
1116
- .wb-team-content {
1117
- display: flex;
1118
- flex-direction: column;
1119
- flex: 1;
1120
- overflow: hidden;
1121
- }
1122
-
1123
- .wb-team-info-bar {
1124
- display: flex;
1125
- align-items: center;
1126
- gap: 12px;
1127
- padding: 8px 16px;
1128
- background: var(--wb-bg-secondary);
1129
- border-bottom: 1px solid var(--wb-border);
1130
- flex-shrink: 0;
1131
- }
1132
-
1133
- .wb-team-name {
1134
- font-weight: 600;
1135
- font-size: 13px;
1136
- color: var(--wb-cyan);
1137
- }
1138
-
1139
- .wb-team-code {
1140
- font-family: 'SF Mono', Monaco, monospace;
1141
- font-size: 11px;
1142
- padding: 2px 8px;
1143
- background: var(--wb-bg-tertiary);
1144
- border: 1px solid var(--wb-border);
1145
- border-radius: 3px;
1146
- color: var(--wb-text-dim);
1147
- cursor: pointer;
1148
- }
1149
-
1150
- .wb-team-code:hover { color: var(--wb-text); }
1151
-
1152
- .wb-team-online {
1153
- font-size: 11px;
1154
- color: var(--wb-green);
1155
- margin-left: auto;
1156
- }
1157
-
1158
- /* Sub-tabs */
1159
-
1160
- .wb-team-subtabs {
1161
- display: flex;
1162
- gap: 0;
1163
- border-bottom: 1px solid var(--wb-border);
1164
- flex-shrink: 0;
1165
- }
1166
-
1167
- .wb-subtab {
1168
- padding: 8px 16px;
1169
- background: none;
1170
- border: none;
1171
- border-bottom: 2px solid transparent;
1172
- color: var(--wb-text-dim);
1173
- font-size: 12px;
1174
- cursor: pointer;
1175
- transition: all 0.15s;
1176
- }
1177
-
1178
- .wb-subtab:hover { color: var(--wb-text); }
1179
- .wb-subtab.active { color: var(--wb-accent); border-bottom-color: var(--wb-accent); }
1180
-
1181
- .wb-subtab-panel { display: none; flex: 1; overflow-y: auto; }
1182
- .wb-subtab-panel.active { display: flex; flex-direction: column; }
1183
-
1184
- /* Members */
1185
-
1186
- .wb-member-list {
1187
- padding: 8px 16px;
1188
- }
1189
-
1190
- .wb-member-item {
1191
- display: flex;
1192
- align-items: center;
1193
- gap: 10px;
1194
- padding: 8px 0;
1195
- border-bottom: 1px solid var(--wb-border);
1196
- font-size: 13px;
1197
- }
1198
-
1199
- .wb-member-dot {
1200
- width: 8px;
1201
- height: 8px;
1202
- border-radius: 50%;
1203
- flex-shrink: 0;
1204
- }
1205
-
1206
- .wb-member-dot-online { background: var(--wb-green); }
1207
- .wb-member-dot-offline { background: var(--wb-text-muted); }
1208
-
1209
- .wb-member-name { flex: 1; color: var(--wb-text); }
1210
- .wb-member-role {
1211
- font-size: 10px;
1212
- padding: 1px 6px;
1213
- border-radius: 3px;
1214
- background: var(--wb-bg-tertiary);
1215
- color: var(--wb-text-dim);
1216
- }
1217
-
1218
- /* Kanban */
1219
-
1220
- .wb-kanban-header {
1221
- display: flex;
1222
- justify-content: flex-end;
1223
- padding: 8px 12px;
1224
- flex-shrink: 0;
1225
- }
1226
-
1227
- .wb-task-add-form {
1228
- display: flex;
1229
- gap: 8px;
1230
- padding: 0 12px 8px;
1231
- align-items: center;
1232
- flex-shrink: 0;
1233
- }
1234
-
1235
- .wb-kanban {
1236
- display: flex;
1237
- gap: 8px;
1238
- padding: 0 12px 12px;
1239
- flex: 1;
1240
- overflow-x: auto;
1241
- min-height: 0;
1242
- }
1243
-
1244
- .wb-kanban-col {
1245
- flex: 1;
1246
- min-width: 160px;
1247
- background: var(--wb-bg-secondary);
1248
- border: 1px solid var(--wb-border);
1249
- border-radius: var(--wb-radius);
1250
- display: flex;
1251
- flex-direction: column;
1252
- max-height: 100%;
1253
- }
1254
-
1255
- .wb-kanban-col-header {
1256
- padding: 8px 10px;
1257
- font-size: 11px;
1258
- font-weight: 600;
1259
- text-transform: uppercase;
1260
- color: var(--wb-text-dim);
1261
- border-bottom: 1px solid var(--wb-border);
1262
- flex-shrink: 0;
1263
- }
1264
-
1265
- .wb-kanban-cards {
1266
- flex: 1;
1267
- overflow-y: auto;
1268
- padding: 6px;
1269
- display: flex;
1270
- flex-direction: column;
1271
- gap: 4px;
1272
- }
1273
-
1274
- .wb-task-card {
1275
- background: var(--wb-bg);
1276
- border: 1px solid var(--wb-border);
1277
- border-radius: var(--wb-radius-sm);
1278
- padding: 8px 10px;
1279
- cursor: pointer;
1280
- transition: border-color 0.15s;
1281
- border-left: 3px solid var(--wb-text-muted);
1282
- }
1283
-
1284
- .wb-task-card:hover { border-color: var(--wb-accent); }
1285
-
1286
- .wb-task-card[data-priority="S"] { border-left-color: var(--wb-red); }
1287
- .wb-task-card[data-priority="A"] { border-left-color: var(--wb-orange); }
1288
- .wb-task-card[data-priority="B"] { border-left-color: var(--wb-accent); }
1289
- .wb-task-card[data-priority="C"] { border-left-color: var(--wb-text-muted); }
1290
-
1291
- .wb-task-title { font-size: 12px; color: var(--wb-text); margin-bottom: 4px; }
1292
- .wb-task-meta { display: flex; gap: 6px; align-items: center; }
1293
-
1294
- .wb-task-priority {
1295
- font-size: 10px;
1296
- font-weight: 700;
1297
- padding: 0 4px;
1298
- border-radius: 2px;
1299
- }
1300
-
1301
- .wb-task-assignee {
1302
- font-size: 10px;
1303
- color: var(--wb-text-dim);
1304
- margin-left: auto;
1305
- }
1306
-
1307
- /* Team Chat */
1308
-
1309
- .wb-team-chat-messages {
1310
- flex: 1;
1311
- overflow-y: auto;
1312
- padding: 12px 16px;
1313
- display: flex;
1314
- flex-direction: column;
1315
- gap: 8px;
1316
- }
1317
-
1318
- .wb-team-chat-msg {
1319
- font-size: 12px;
1320
- }
1321
-
1322
- .wb-team-chat-sender {
1323
- font-weight: 600;
1324
- color: var(--wb-cyan);
1325
- margin-right: 6px;
1326
- }
1327
-
1328
- .wb-team-chat-time {
1329
- font-size: 10px;
1330
- color: var(--wb-text-muted);
1331
- margin-left: 6px;
1332
- }
1333
-
1334
- .wb-team-chat-text { color: var(--wb-text); }
1335
-
1336
- .wb-team-chat-typing {
1337
- padding: 0 16px;
1338
- font-size: 11px;
1339
- color: var(--wb-text-muted);
1340
- min-height: 16px;
1341
- flex-shrink: 0;
1342
- }
1343
-
1344
- .wb-team-chat-input {
1345
- display: flex;
1346
- gap: 8px;
1347
- padding: 8px 16px;
1348
- border-top: 1px solid var(--wb-border);
1349
- flex-shrink: 0;
1350
- }
1351
-
1352
- /* ===== Network Tab ===== */
1353
-
1354
- .wb-network-content {
1355
- flex: 1;
1356
- overflow-y: auto;
1357
- padding: 0 16px 16px;
1358
- }
1359
-
1360
- .wb-network-section {
1361
- padding: 12px 0;
1362
- border-bottom: 1px solid var(--wb-border);
1363
- }
1364
-
1365
- .wb-profile-field {
1366
- margin-bottom: 10px;
1367
- }
1368
-
1369
- .wb-profile-field label {
1370
- font-size: 11px;
1371
- color: var(--wb-text-dim);
1372
- text-transform: uppercase;
1373
- letter-spacing: 0.5px;
1374
- display: block;
1375
- margin-bottom: 4px;
1376
- }
1377
-
1378
- .wb-tag-list {
1379
- display: flex;
1380
- flex-wrap: wrap;
1381
- gap: 4px;
1382
- margin-bottom: 4px;
1383
- }
1384
-
1385
- .wb-tag {
1386
- display: inline-flex;
1387
- align-items: center;
1388
- gap: 4px;
1389
- padding: 2px 8px;
1390
- background: var(--wb-bg-tertiary);
1391
- border: 1px solid var(--wb-border);
1392
- border-radius: 12px;
1393
- font-size: 11px;
1394
- color: var(--wb-text);
1395
- }
1396
-
1397
- .wb-tag-remove {
1398
- cursor: pointer;
1399
- color: var(--wb-text-muted);
1400
- font-size: 12px;
1401
- line-height: 1;
1402
- }
1403
-
1404
- .wb-tag-remove:hover { color: var(--wb-red); }
1405
-
1406
- .wb-tag-add {
1407
- display: flex;
1408
- gap: 4px;
1409
- align-items: center;
1410
- }
1411
-
1412
- /* Rounds */
1413
-
1414
- .wb-round-list {
1415
- display: flex;
1416
- flex-direction: column;
1417
- gap: 6px;
1418
- }
1419
-
1420
- .wb-round-card {
1421
- background: var(--wb-bg-secondary);
1422
- border: 1px solid var(--wb-border);
1423
- border-radius: var(--wb-radius);
1424
- overflow: hidden;
1425
- }
1426
-
1427
- .wb-round-header {
1428
- display: flex;
1429
- align-items: center;
1430
- gap: 8px;
1431
- padding: 8px 12px;
1432
- cursor: pointer;
1433
- transition: background 0.15s;
1434
- }
1435
-
1436
- .wb-round-header:hover { background: var(--wb-bg-hover); }
1437
-
1438
- .wb-round-time { font-size: 11px; color: var(--wb-text-dim); }
1439
- .wb-round-matches { font-size: 11px; color: var(--wb-accent); margin-left: auto; }
1440
- .wb-round-status {
1441
- font-size: 10px;
1442
- padding: 1px 6px;
1443
- border-radius: 3px;
1444
- }
1445
-
1446
- .wb-round-status-completed { background: rgba(63,185,80,0.15); color: var(--wb-green); }
1447
- .wb-round-status-running { background: rgba(210,153,34,0.15); color: var(--wb-orange); }
1448
- .wb-round-status-failed { background: rgba(248,81,73,0.15); color: var(--wb-red); }
1449
-
1450
- .wb-round-detail {
1451
- display: none;
1452
- padding: 8px 12px;
1453
- border-top: 1px solid var(--wb-border);
1454
- font-size: 12px;
1455
- }
1456
-
1457
- .wb-round-detail.visible { display: block; }
1458
-
1459
- .wb-match-pair {
1460
- padding: 6px 0;
1461
- border-bottom: 1px solid var(--wb-border);
1462
- }
1463
-
1464
- .wb-match-pair:last-child { border-bottom: none; }
1465
-
1466
- .wb-match-names { font-weight: 600; color: var(--wb-cyan); font-size: 12px; }
1467
- .wb-match-reason { color: var(--wb-text-dim); font-size: 11px; margin-top: 2px; }
1468
- .wb-match-score { font-size: 10px; color: var(--wb-orange); }
1469
-
1470
- /* Digest */
1471
-
1472
- .wb-digest-area {
1473
- display: flex;
1474
- flex-direction: column;
1475
- gap: 8px;
1476
- }
1477
-
1478
- .wb-digest-card {
1479
- background: var(--wb-bg-secondary);
1480
- border: 1px solid var(--wb-border);
1481
- border-radius: var(--wb-radius);
1482
- padding: 12px;
1483
- }
1484
-
1485
- .wb-digest-partner { font-weight: 600; color: var(--wb-cyan); font-size: 13px; margin-bottom: 6px; }
1486
- .wb-digest-value { font-size: 12px; color: var(--wb-text); margin-bottom: 6px; }
1487
-
1488
- .wb-digest-actions {
1489
- font-size: 11px;
1490
- color: var(--wb-text-dim);
1491
- }
1492
-
1493
- .wb-digest-actions li { margin: 2px 0; }
1494
-
1495
- .wb-digest-insights {
1496
- font-size: 11px;
1497
- color: var(--wb-purple);
1498
- margin-top: 6px;
1499
- }
1500
-
1501
- /* ===== Toast Notifications ===== */
1502
-
1503
- .wb-toast-container {
1504
- position: fixed;
1505
- top: 56px;
1506
- right: 16px;
1507
- z-index: 2000;
1508
- display: flex;
1509
- flex-direction: column;
1510
- gap: 6px;
1511
- pointer-events: none;
1512
- }
1513
-
1514
- .wb-toast {
1515
- padding: 8px 16px;
1516
- border-radius: var(--wb-radius);
1517
- font-size: 12px;
1518
- color: #fff;
1519
- pointer-events: auto;
1520
- animation: toastIn 0.25s ease;
1521
- max-width: 320px;
1522
- word-break: break-word;
1523
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
1524
- }
1525
-
1526
- .wb-toast-info { background: var(--wb-accent-dim); }
1527
- .wb-toast-error { background: rgba(248, 81, 73, 0.9); }
1528
- .wb-toast-success { background: rgba(63, 185, 80, 0.9); }
1529
- .wb-toast-warning { background: rgba(210, 153, 34, 0.9); }
1530
-
1531
- .wb-toast-out {
1532
- animation: toastOut 0.3s ease forwards;
1533
- }
1534
-
1535
- @keyframes toastIn {
1536
- from { opacity: 0; transform: translateX(20px); }
1537
- to { opacity: 1; transform: translateX(0); }
1538
- }
1539
-
1540
- @keyframes toastOut {
1541
- from { opacity: 1; transform: translateX(0); }
1542
- to { opacity: 0; transform: translateX(20px); }
1543
- }
1544
-
1545
- /* ===== Loading Spinner ===== */
1546
-
1547
- .wb-spinner {
1548
- display: inline-block;
1549
- width: 16px;
1550
- height: 16px;
1551
- border: 2px solid var(--wb-border);
1552
- border-top-color: var(--wb-accent);
1553
- border-radius: 50%;
1554
- animation: spin 0.6s linear infinite;
1555
- }
1556
-
1557
- @keyframes spin {
1558
- to { transform: rotate(360deg); }
1559
- }
1560
-
1561
- /* ===== Button disabled state ===== */
1562
-
1563
- .wb-btn-primary:disabled,
1564
- .wb-btn-sm:disabled {
1565
- opacity: 0.5;
1566
- cursor: not-allowed;
1567
- pointer-events: none;
1568
- }
1
+ :root,[data-theme=dark]{--wb-bg: #0d1117;--wb-bg-secondary: #161b22;--wb-bg-tertiary: #1c2128;--wb-bg-hover: #21262d;--wb-border: #30363d;--wb-text: #e6edf3;--wb-text-dim: #8b949e;--wb-text-muted: #484f58;--wb-accent: #58a6ff;--wb-accent-dim: #1f6feb;--wb-green: #3fb950;--wb-red: #f85149;--wb-orange: #d29922;--wb-purple: #bc8cff;--wb-magenta: #f778ba;--wb-cyan: #39d2c0;--wb-sidebar-w: 220px;--wb-context-w: 260px;--wb-header-h: 44px;--wb-footer-h: 28px;--wb-radius: 6px;--wb-radius-sm: 4px}[data-theme=light]{--wb-bg: #ffffff;--wb-bg-secondary: #f6f8fa;--wb-bg-tertiary: #eaeef2;--wb-bg-hover: #d0d7de;--wb-border: #d0d7de;--wb-text: #1f2328;--wb-text-dim: #656d76;--wb-text-muted: #8b949e;--wb-accent: #0969da;--wb-accent-dim: #218bff;--wb-green: #1a7f37;--wb-red: #cf222e;--wb-orange: #9a6700;--wb-purple: #8250df;--wb-magenta: #bf3989;--wb-cyan: #0e8a7e}[data-theme=high-contrast]{--wb-bg: #000000;--wb-bg-secondary: #0a0a0a;--wb-bg-tertiary: #151515;--wb-bg-hover: #252525;--wb-border: #ffffff;--wb-text: #ffffff;--wb-text-dim: #cccccc;--wb-text-muted: #999999;--wb-accent: #71b7ff;--wb-accent-dim: #409eff;--wb-green: #56d364;--wb-red: #ff7b72;--wb-orange: #e3b341;--wb-purple: #d2a8ff;--wb-magenta: #ff9bce;--wb-cyan: #56d4dd}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:13px;line-height:1.5;color:var(--wb-text);background:var(--wb-bg);height:100vh;overflow:hidden;display:flex;flex-direction:column}.wb-header{height:var(--wb-header-h);background:var(--wb-bg-secondary);border-bottom:1px solid var(--wb-border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0}.wb-header-left{display:flex;align-items:center;gap:12px}.wb-logo{font-weight:700;font-size:14px;color:var(--wb-cyan)}.wb-badge{font-size:11px;padding:2px 8px;background:var(--wb-bg-tertiary);border:1px solid var(--wb-border);border-radius:12px;color:var(--wb-text-dim)}.wb-header-center{display:flex;align-items:center}.wb-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--wb-text-dim)}.wb-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.wb-dot-connected{background:var(--wb-green)}.wb-dot-disconnected{background:var(--wb-red)}.wb-dot-connecting{background:var(--wb-orange);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.wb-btn-icon{background:none;border:none;font-size:16px;cursor:pointer;padding:4px;border-radius:var(--wb-radius-sm)}.wb-btn-icon:hover{background:var(--wb-bg-hover)}.wb-main{flex:1;display:grid;grid-template-columns:var(--wb-sidebar-w) 1fr var(--wb-context-w);overflow:hidden}.wb-sidebar{background:var(--wb-bg-secondary);border-right:1px solid var(--wb-border);display:flex;flex-direction:column;overflow-y:auto}.wb-nav{display:flex;flex-direction:column;padding:8px;gap:2px}.wb-nav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:none;border:none;border-radius:var(--wb-radius);color:var(--wb-text-dim);font-size:13px;cursor:pointer;text-align:left;transition:all .15s}.wb-nav-item:hover{background:var(--wb-bg-hover);color:var(--wb-text)}.wb-nav-item.active{background:var(--wb-accent-dim);color:#fff}.wb-sidebar-section{padding:12px;border-top:1px solid var(--wb-border)}.wb-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--wb-text-muted);margin-bottom:8px}.wb-shortcuts{display:flex;flex-direction:column;gap:2px}.wb-shortcut{display:flex;align-items:center;gap:6px;padding:5px 8px;background:none;border:none;border-radius:var(--wb-radius-sm);color:var(--wb-text-dim);font-size:12px;cursor:pointer;text-align:left}.wb-shortcut:hover{background:var(--wb-bg-hover);color:var(--wb-text)}.wb-session-info{font-size:11px;color:var(--wb-text-muted)}.wb-session-id{font-family:SF Mono,Monaco,Cascadia Code,monospace}.wb-content{display:flex;flex-direction:column;overflow:hidden;background:var(--wb-bg)}.wb-tab-panel{display:none;flex-direction:column;flex:1;overflow:hidden}.wb-tab-panel.active{display:flex}.wb-panel-header{padding:10px 16px;font-size:13px;font-weight:600;border-bottom:1px solid var(--wb-border);display:flex;align-items:center;gap:8px;flex-shrink:0}.wb-path-display{font-family:SF Mono,Monaco,monospace;font-size:11px;color:var(--wb-text-dim);margin-left:auto}.wb-empty{padding:24px;text-align:center;color:var(--wb-text-muted)}.wb-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.wb-welcome-msg{text-align:center;padding:40px 20px;color:var(--wb-text-dim)}.wb-welcome-icon{font-size:48px;margin-bottom:12px}.wb-welcome-text{font-size:20px;font-weight:600;color:var(--wb-text);margin-bottom:8px}.wb-welcome-sub{font-size:13px}.wb-msg{display:flex;flex-direction:column;gap:4px;max-width:85%;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.wb-msg-user{align-self:flex-end}.wb-msg-assistant{align-self:flex-start}.wb-msg-header{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--wb-text-muted)}.wb-msg-source{font-size:10px;padding:1px 5px;border-radius:3px;font-weight:600}.wb-msg-source-cli{background:var(--wb-accent-dim);color:var(--wb-accent)}.wb-msg-source-gui{background:#2d1b4e;color:var(--wb-purple)}.wb-msg-body{padding:10px 14px;border-radius:var(--wb-radius);font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.wb-msg-user .wb-msg-body{background:var(--wb-accent-dim);color:#fff;border-bottom-right-radius:2px}.wb-msg-assistant .wb-msg-body{background:var(--wb-bg-secondary);border:1px solid var(--wb-border);border-bottom-left-radius:2px}.wb-msg-tool{align-self:flex-start;max-width:90%}.wb-tool-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--wb-bg-tertiary);border:1px solid var(--wb-border);border-radius:var(--wb-radius);font-size:12px;color:var(--wb-orange);font-family:SF Mono,Monaco,monospace}.wb-streaming{display:inline-block;width:6px;height:14px;background:var(--wb-accent);animation:blink .8s infinite;margin-left:2px;vertical-align:middle}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.wb-chat-input-area{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--wb-border);background:var(--wb-bg-secondary);flex-shrink:0}.wb-chat-input{flex:1;resize:none;background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius);padding:10px 14px;color:var(--wb-text);font-family:inherit;font-size:13px;line-height:1.5;max-height:150px;outline:none;transition:border-color .15s}.wb-chat-input:focus{border-color:var(--wb-accent)}.wb-chat-input::placeholder{color:var(--wb-text-muted)}.wb-btn-send{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--wb-accent-dim);color:#fff;border:none;border-radius:var(--wb-radius);font-size:14px;cursor:pointer;flex-shrink:0;transition:background .15s}.wb-btn-send:hover{background:var(--wb-accent)}.wb-btn-send:disabled{opacity:.4;cursor:not-allowed}.wb-file-list{flex:1;overflow-y:auto;padding:8px}.wb-file-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--wb-radius-sm);cursor:pointer;font-size:13px;color:var(--wb-text)}.wb-file-item:hover{background:var(--wb-bg-hover)}.wb-file-icon{font-size:14px;width:20px;text-align:center}.wb-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-file-size{font-size:11px;color:var(--wb-text-muted)}.wb-memory-stats{padding:12px 16px;border-bottom:1px solid var(--wb-border)}.wb-memory-stat{display:flex;justify-content:space-between;padding:4px 0;font-size:12px}.wb-memory-stat-label{color:var(--wb-text-dim)}.wb-memory-stat-value{color:var(--wb-text);font-weight:600}.wb-memory-list{flex:1;overflow-y:auto;padding:8px 16px}.wb-memory-item{padding:8px 0;border-bottom:1px solid var(--wb-border);font-size:12px}.wb-memory-category{font-size:10px;padding:1px 5px;border-radius:3px;background:var(--wb-bg-tertiary);color:var(--wb-accent);margin-right:6px}.wb-memory-content{color:var(--wb-text);margin-top:4px}.wb-memory-tags{margin-top:4px;color:var(--wb-text-muted);font-size:11px}.wb-tool-list{flex:1;overflow-y:auto;padding:8px 16px}.wb-tool-item{padding:8px 0;border-bottom:1px solid var(--wb-border)}.wb-tool-name{font-family:SF Mono,Monaco,monospace;font-size:12px;color:var(--wb-green);font-weight:600}.wb-tool-desc{font-size:12px;color:var(--wb-text-dim);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-context{background:var(--wb-bg-secondary);border-left:1px solid var(--wb-border);overflow-y:auto;padding:8px 0}.wb-context-section{padding:10px 16px;border-bottom:1px solid var(--wb-border)}.wb-context-item{display:flex;justify-content:space-between;align-items:center;padding:3px 0}.wb-ctx-label{font-size:12px;color:var(--wb-text-muted)}.wb-ctx-value{font-size:12px;color:var(--wb-text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.wb-ctx-mono{font-family:SF Mono,Monaco,monospace;font-size:11px}.wb-footer{height:var(--wb-footer-h);background:var(--wb-bg-secondary);border-top:1px solid var(--wb-border);display:flex;align-items:center;padding:0 16px;gap:24px;font-size:11px;color:var(--wb-text-muted);flex-shrink:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--wb-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--wb-text-muted)}@media(max-width:1024px){.wb-main{grid-template-columns:1fr}.wb-sidebar,.wb-context{display:none}}@media(max-width:1400px)and (min-width:1025px){.wb-main{grid-template-columns:var(--wb-sidebar-w) 1fr}.wb-context{display:none}}.wb-token-bar{height:4px;background:var(--wb-bg);border-radius:2px;margin-bottom:8px;overflow:hidden}.wb-token-bar-fill{height:100%;background:linear-gradient(90deg,var(--wb-accent),var(--wb-cyan));border-radius:2px;transition:width .5s ease}.wb-ctx-highlight{color:var(--wb-cyan);font-weight:600}.wb-search-box{display:flex;align-items:center;gap:4px;margin-left:auto}.wb-search-input{background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);padding:4px 8px;color:var(--wb-text);font-size:12px;width:180px;outline:none;transition:border-color .15s}.wb-search-input:focus{border-color:var(--wb-accent)}.wb-search-btn{background:none;border:none;font-size:14px;cursor:pointer;padding:2px 4px}.wb-tool-detail{align-self:flex-start;max-width:90%;animation:fadeIn .2s ease}.wb-tool-header{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--wb-bg-tertiary);border:1px solid var(--wb-border);border-radius:var(--wb-radius);cursor:pointer;transition:background .15s}.wb-tool-header:hover{background:var(--wb-bg-hover)}.wb-tool-header .wb-tool-name{font-family:SF Mono,Monaco,monospace;font-size:12px;color:var(--wb-orange)}.wb-tool-header .wb-tool-chevron{font-size:10px;color:var(--wb-text-muted);transition:transform .2s;margin-left:auto}.wb-tool-header.expanded .wb-tool-chevron{transform:rotate(90deg)}.wb-tool-params{display:none;margin-top:4px;padding:8px 12px;background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);font-family:SF Mono,Monaco,monospace;font-size:11px;color:var(--wb-text-dim);white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.wb-tool-params.visible{display:block}.wb-tool-status{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:11px;border-radius:3px;margin-top:4px}.wb-tool-status-ok{background:#3fb95026;color:var(--wb-green)}.wb-tool-status-err{background:#f8514926;color:var(--wb-red)}.wb-modal-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.wb-modal-overlay.visible{display:flex}.wb-modal{background:var(--wb-bg-secondary);border:1px solid var(--wb-border);border-radius:8px;width:min(80vw,800px);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 16px 48px #0006;animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.wb-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--wb-border);flex-shrink:0}.wb-modal-title{font-family:SF Mono,Monaco,monospace;font-size:13px;color:var(--wb-accent);font-weight:600}.wb-modal-close{background:none;border:none;font-size:20px;color:var(--wb-text-dim);cursor:pointer;line-height:1;padding:0 4px}.wb-modal-close:hover{color:var(--wb-text)}.wb-modal-body{flex:1;overflow:auto;padding:16px;margin:0;background:var(--wb-bg);font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:12px;line-height:1.6;color:var(--wb-text);white-space:pre;tab-size:2}.wb-prompt-modal{width:min(560px,92vw)}.wb-prompt-message{color:var(--wb-text);font-size:13px;line-height:1.6;margin-bottom:12px;white-space:pre-wrap}.wb-prompt-fallback{margin-bottom:12px;padding:10px 12px;border-radius:var(--wb-radius-sm);border:1px solid var(--wb-border);background:var(--wb-bg);color:var(--wb-text-dim);font-size:12px;white-space:pre-wrap}.wb-prompt-options{display:flex;flex-direction:column;gap:8px}.wb-prompt-option{width:100%;text-align:left;padding:12px;border:1px solid var(--wb-border);border-radius:var(--wb-radius);background:var(--wb-bg);color:var(--wb-text);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.wb-prompt-option:hover,.wb-prompt-option:focus{border-color:var(--wb-accent);background:var(--wb-bg-hover);transform:translateY(-1px);outline:none}.wb-prompt-option-name{display:block;font-weight:600}.wb-prompt-option-desc{display:block;margin-top:4px;font-size:12px;color:var(--wb-text-dim)}.wb-prompt-actions{justify-content:flex-end;gap:8px}.wb-prompt-validation{min-height:18px;margin-top:6px;font-size:12px;color:var(--wb-red)}.wb-btn-secondary{background:var(--wb-bg);color:var(--wb-text);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);padding:6px 14px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.wb-btn-secondary:hover{background:var(--wb-bg-hover);border-color:var(--wb-accent)}.wb-msg-body pre{background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);padding:10px;overflow-x:auto;margin:8px 0}.wb-msg-body code{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:12px}.wb-msg-body :not(pre)>code{background:var(--wb-bg-tertiary);padding:1px 5px;border-radius:3px;color:var(--wb-cyan)}.wb-msg-body p{margin:4px 0}.wb-msg-body h1,.wb-msg-body h2,.wb-msg-body h3{margin:12px 0 6px;font-weight:600}.wb-msg-body h1{font-size:16px}.wb-msg-body h2{font-size:14px}.wb-msg-body h3{font-size:13px;color:var(--wb-text-dim)}.wb-msg-body ul,.wb-msg-body ol{margin:4px 0;padding-left:20px}.wb-msg-body li{margin:2px 0}.wb-msg-body hr{border:none;border-top:1px solid var(--wb-border);margin:8px 0}.wb-msg-body a{color:var(--wb-accent);text-decoration:none}.wb-msg-body a:hover{text-decoration:underline}.wb-msg-body blockquote{border-left:3px solid var(--wb-accent-dim);padding-left:12px;color:var(--wb-text-dim);margin:8px 0}.wb-file-item{transition:background .1s}.wb-file-item-active{background:var(--wb-bg-hover);border-left:2px solid var(--wb-accent);padding-left:10px}.wb-nav-divider{height:1px;background:var(--wb-border);margin:6px 8px}.wb-input{background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);padding:6px 10px;color:var(--wb-text);font-size:12px;outline:none;transition:border-color .15s;width:100%}.wb-input:focus{border-color:var(--wb-accent)}.wb-input-sm{width:auto;min-width:80px}.wb-input-xs{width:auto;min-width:60px;padding:3px 6px;font-size:11px}.wb-select{background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);padding:6px 10px;color:var(--wb-text);font-size:12px;outline:none}.wb-btn-primary{background:var(--wb-accent-dim);color:#fff;border:none;border-radius:var(--wb-radius-sm);padding:6px 14px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .15s}.wb-btn-primary:hover{background:var(--wb-accent)}.wb-btn-sm{padding:4px 10px;font-size:11px}.wb-btn-xs{padding:2px 6px;font-size:10px;background:var(--wb-bg-tertiary);color:var(--wb-text-dim);border:1px solid var(--wb-border);border-radius:3px;cursor:pointer}.wb-btn-xs:hover{background:var(--wb-bg-hover);color:var(--wb-text)}.wb-btn-danger{background:#f8514933;color:var(--wb-red);border:1px solid var(--wb-red);border-radius:var(--wb-radius-sm);padding:4px 10px;font-size:11px;cursor:pointer}.wb-btn-danger:hover{background:#f8514959}.wb-form-group{margin-bottom:10px}.wb-form-group label{display:block;font-size:11px;color:var(--wb-text-dim);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.wb-form-row{display:flex;gap:8px;align-items:center}.wb-form-divider{text-align:center;color:var(--wb-text-muted);font-size:12px;padding:8px 0}.wb-form-actions{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid var(--wb-border)}.wb-modal-form{padding:16px}.wb-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--wb-text-muted);gap:12px}.wb-empty-icon{font-size:36px}.wb-team-join{padding:24px;display:flex;justify-content:center}.wb-team-join-card{background:var(--wb-bg-secondary);border:1px solid var(--wb-border);border-radius:8px;padding:24px;max-width:480px;width:100%}.wb-team-join-card h3{font-size:14px;margin-bottom:16px;color:var(--wb-text)}.wb-team-content{display:flex;flex-direction:column;flex:1;overflow:hidden}.wb-team-info-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--wb-bg-secondary);border-bottom:1px solid var(--wb-border);flex-shrink:0}.wb-team-name{font-weight:600;font-size:13px;color:var(--wb-cyan)}.wb-team-code{font-family:SF Mono,Monaco,monospace;font-size:11px;padding:2px 8px;background:var(--wb-bg-tertiary);border:1px solid var(--wb-border);border-radius:3px;color:var(--wb-text-dim);cursor:pointer}.wb-team-code:hover{color:var(--wb-text)}.wb-team-online{font-size:11px;color:var(--wb-green);margin-left:auto}.wb-team-subtabs{display:flex;gap:0;border-bottom:1px solid var(--wb-border);flex-shrink:0}.wb-subtab{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--wb-text-dim);font-size:12px;cursor:pointer;transition:all .15s}.wb-subtab:hover{color:var(--wb-text)}.wb-subtab.active{color:var(--wb-accent);border-bottom-color:var(--wb-accent)}.wb-subtab-panel{display:none;flex:1;overflow-y:auto}.wb-subtab-panel.active{display:flex;flex-direction:column}.wb-member-list{padding:8px 16px}.wb-member-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--wb-border);font-size:13px}.wb-member-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wb-member-dot-online{background:var(--wb-green)}.wb-member-dot-offline{background:var(--wb-text-muted)}.wb-member-name{flex:1;color:var(--wb-text)}.wb-member-role{font-size:10px;padding:1px 6px;border-radius:3px;background:var(--wb-bg-tertiary);color:var(--wb-text-dim)}.wb-kanban-header{display:flex;justify-content:flex-end;padding:8px 12px;flex-shrink:0}.wb-task-add-form{display:flex;gap:8px;padding:0 12px 8px;align-items:center;flex-shrink:0}.wb-kanban{display:flex;gap:8px;padding:0 12px 12px;flex:1;overflow-x:auto;min-height:0}.wb-kanban-col{flex:1;min-width:160px;background:var(--wb-bg-secondary);border:1px solid var(--wb-border);border-radius:var(--wb-radius);display:flex;flex-direction:column;max-height:100%}.wb-kanban-col-header{padding:8px 10px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--wb-text-dim);border-bottom:1px solid var(--wb-border);flex-shrink:0}.wb-kanban-cards{flex:1;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:4px}.wb-task-card{background:var(--wb-bg);border:1px solid var(--wb-border);border-radius:var(--wb-radius-sm);padding:8px 10px;cursor:pointer;transition:border-color .15s;border-left:3px solid var(--wb-text-muted)}.wb-task-card:hover{border-color:var(--wb-accent)}.wb-task-card[data-priority=S]{border-left-color:var(--wb-red)}.wb-task-card[data-priority=A]{border-left-color:var(--wb-orange)}.wb-task-card[data-priority=B]{border-left-color:var(--wb-accent)}.wb-task-card[data-priority=C]{border-left-color:var(--wb-text-muted)}.wb-task-title{font-size:12px;color:var(--wb-text);margin-bottom:4px}.wb-task-meta{display:flex;gap:6px;align-items:center}.wb-task-priority{font-size:10px;font-weight:700;padding:0 4px;border-radius:2px}.wb-task-assignee{font-size:10px;color:var(--wb-text-dim);margin-left:auto}.wb-team-chat-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.wb-team-chat-msg{font-size:12px}.wb-team-chat-sender{font-weight:600;color:var(--wb-cyan);margin-right:6px}.wb-team-chat-time{font-size:10px;color:var(--wb-text-muted);margin-left:6px}.wb-team-chat-text{color:var(--wb-text)}.wb-team-chat-typing{padding:0 16px;font-size:11px;color:var(--wb-text-muted);min-height:16px;flex-shrink:0}.wb-team-chat-input{display:flex;gap:8px;padding:8px 16px;border-top:1px solid var(--wb-border);flex-shrink:0}.wb-network-content{flex:1;overflow-y:auto;padding:0 16px 16px}.wb-network-section{padding:12px 0;border-bottom:1px solid var(--wb-border)}.wb-profile-field{margin-bottom:10px}.wb-profile-field label{font-size:11px;color:var(--wb-text-dim);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:4px}.wb-tag-list{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.wb-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--wb-bg-tertiary);border:1px solid var(--wb-border);border-radius:12px;font-size:11px;color:var(--wb-text)}.wb-tag-remove{cursor:pointer;color:var(--wb-text-muted);font-size:12px;line-height:1}.wb-tag-remove:hover{color:var(--wb-red)}.wb-tag-add{display:flex;gap:4px;align-items:center}.wb-round-list{display:flex;flex-direction:column;gap:6px}.wb-round-card{background:var(--wb-bg-secondary);border:1px solid var(--wb-border);border-radius:var(--wb-radius);overflow:hidden}.wb-round-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .15s}.wb-round-header:hover{background:var(--wb-bg-hover)}.wb-round-time{font-size:11px;color:var(--wb-text-dim)}.wb-round-matches{font-size:11px;color:var(--wb-accent);margin-left:auto}.wb-round-status{font-size:10px;padding:1px 6px;border-radius:3px}.wb-round-status-completed{background:#3fb95026;color:var(--wb-green)}.wb-round-status-running{background:#d2992226;color:var(--wb-orange)}.wb-round-status-failed{background:#f8514926;color:var(--wb-red)}.wb-round-detail{display:none;padding:8px 12px;border-top:1px solid var(--wb-border);font-size:12px}.wb-round-detail.visible{display:block}.wb-match-pair{padding:6px 0;border-bottom:1px solid var(--wb-border)}.wb-match-pair:last-child{border-bottom:none}.wb-match-names{font-weight:600;color:var(--wb-cyan);font-size:12px}.wb-match-reason{color:var(--wb-text-dim);font-size:11px;margin-top:2px}.wb-match-score{font-size:10px;color:var(--wb-orange)}.wb-digest-area{display:flex;flex-direction:column;gap:8px}.wb-digest-card{background:var(--wb-bg-secondary);border:1px solid var(--wb-border);border-radius:var(--wb-radius);padding:12px}.wb-digest-partner{font-weight:600;color:var(--wb-cyan);font-size:13px;margin-bottom:6px}.wb-digest-value{font-size:12px;color:var(--wb-text);margin-bottom:6px}.wb-digest-actions{font-size:11px;color:var(--wb-text-dim)}.wb-digest-actions li{margin:2px 0}.wb-digest-insights{font-size:11px;color:var(--wb-purple);margin-top:6px}.wb-toast-container{position:fixed;top:56px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:6px;pointer-events:none}.wb-toast{padding:8px 16px;border-radius:var(--wb-radius);font-size:12px;color:#fff;pointer-events:auto;animation:toastIn .25s ease;max-width:320px;word-break:break-word;box-shadow:0 4px 12px #0006}.wb-toast-info{background:var(--wb-accent-dim)}.wb-toast-error{background:#f85149e6}.wb-toast-success{background:#3fb950e6}.wb-toast-warning{background:#d29922e6}.wb-toast-out{animation:toastOut .3s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.wb-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--wb-border);border-top-color:var(--wb-accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.wb-btn-primary:disabled,.wb-btn-sm:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}