@0xmaxma/claude-gateway 2.0.4 → 2.0.6

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 (276) hide show
  1. package/README.md +10 -1
  2. package/dist/agent/builtin-commands.d.ts +1 -1
  3. package/dist/agent/builtin-commands.d.ts.map +1 -1
  4. package/dist/agent/builtin-commands.js +3 -2
  5. package/dist/agent/builtin-commands.js.map +1 -1
  6. package/dist/agent/runner.d.ts +123 -9
  7. package/dist/agent/runner.d.ts.map +1 -1
  8. package/dist/agent/runner.js +215 -182
  9. package/dist/agent/runner.js.map +1 -1
  10. package/dist/agent/session-compaction-scheduler.d.ts +22 -0
  11. package/dist/agent/session-compaction-scheduler.d.ts.map +1 -0
  12. package/dist/agent/session-compaction-scheduler.js +40 -0
  13. package/dist/agent/session-compaction-scheduler.js.map +1 -0
  14. package/dist/agent/skill-learning/index.d.ts.map +1 -1
  15. package/dist/agent/skill-learning/index.js +27 -8
  16. package/dist/agent/skill-learning/index.js.map +1 -1
  17. package/dist/agent/skill-learning/reviewer.d.ts +3 -1
  18. package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
  19. package/dist/agent/skill-learning/reviewer.js +6 -2
  20. package/dist/agent/skill-learning/reviewer.js.map +1 -1
  21. package/dist/agent/turn-stream.d.ts +3 -1
  22. package/dist/agent/turn-stream.d.ts.map +1 -1
  23. package/dist/agent/turn-stream.js +8 -4
  24. package/dist/agent/turn-stream.js.map +1 -1
  25. package/dist/api/gateway-router.d.ts +2 -0
  26. package/dist/api/gateway-router.d.ts.map +1 -1
  27. package/dist/api/gateway-router.js +323 -16
  28. package/dist/api/gateway-router.js.map +1 -1
  29. package/dist/api/memory-activity.d.ts +18 -0
  30. package/dist/api/memory-activity.d.ts.map +1 -0
  31. package/dist/api/memory-activity.js +97 -0
  32. package/dist/api/memory-activity.js.map +1 -0
  33. package/dist/api/router.js +11 -11
  34. package/dist/api/router.js.map +1 -1
  35. package/dist/api/slack-webhook-router.js +1 -1
  36. package/dist/api/slack-webhook-router.js.map +1 -1
  37. package/dist/api/voice-router.d.ts +1 -0
  38. package/dist/api/voice-router.d.ts.map +1 -1
  39. package/dist/api/voice-router.js +129 -7
  40. package/dist/api/voice-router.js.map +1 -1
  41. package/dist/config/claude-settings.d.ts +14 -0
  42. package/dist/config/claude-settings.d.ts.map +1 -1
  43. package/dist/config/claude-settings.js +20 -0
  44. package/dist/config/claude-settings.js.map +1 -1
  45. package/dist/orchestration/agent-cli-session.d.ts +46 -0
  46. package/dist/orchestration/agent-cli-session.d.ts.map +1 -0
  47. package/dist/orchestration/agent-cli-session.js +121 -0
  48. package/dist/orchestration/agent-cli-session.js.map +1 -0
  49. package/dist/orchestration/agent-tool-schemas.d.ts +6 -0
  50. package/dist/orchestration/agent-tool-schemas.d.ts.map +1 -0
  51. package/dist/orchestration/agent-tool-schemas.js +23 -0
  52. package/dist/orchestration/agent-tool-schemas.js.map +1 -0
  53. package/dist/orchestration/bridge.d.ts +6 -3
  54. package/dist/orchestration/bridge.d.ts.map +1 -1
  55. package/dist/orchestration/bridge.js +31 -14
  56. package/dist/orchestration/bridge.js.map +1 -1
  57. package/dist/orchestration/browser-voice.d.ts +14 -0
  58. package/dist/orchestration/browser-voice.d.ts.map +1 -0
  59. package/dist/orchestration/browser-voice.js +30 -0
  60. package/dist/orchestration/browser-voice.js.map +1 -0
  61. package/dist/orchestration/compact-measurements.d.ts +21 -0
  62. package/dist/orchestration/compact-measurements.d.ts.map +1 -0
  63. package/dist/orchestration/compact-measurements.js +62 -0
  64. package/dist/orchestration/compact-measurements.js.map +1 -0
  65. package/dist/orchestration/config.d.ts +4 -0
  66. package/dist/orchestration/config.d.ts.map +1 -1
  67. package/dist/orchestration/config.js +1 -1
  68. package/dist/orchestration/config.js.map +1 -1
  69. package/dist/orchestration/context-delivery.d.ts +32 -0
  70. package/dist/orchestration/context-delivery.d.ts.map +1 -0
  71. package/dist/orchestration/context-delivery.js +101 -0
  72. package/dist/orchestration/context-delivery.js.map +1 -0
  73. package/dist/orchestration/context-footprint.d.ts +14 -0
  74. package/dist/orchestration/context-footprint.d.ts.map +1 -0
  75. package/dist/orchestration/context-footprint.js +57 -0
  76. package/dist/orchestration/context-footprint.js.map +1 -0
  77. package/dist/orchestration/conversation-intake.d.ts +10 -6
  78. package/dist/orchestration/conversation-intake.d.ts.map +1 -1
  79. package/dist/orchestration/conversation-intake.js +22 -8
  80. package/dist/orchestration/conversation-intake.js.map +1 -1
  81. package/dist/orchestration/dashboard-charts.d.ts +32 -0
  82. package/dist/orchestration/dashboard-charts.d.ts.map +1 -0
  83. package/dist/orchestration/dashboard-charts.js +77 -0
  84. package/dist/orchestration/dashboard-charts.js.map +1 -0
  85. package/dist/orchestration/dashboard-reader-worker.d.ts +2 -0
  86. package/dist/orchestration/dashboard-reader-worker.d.ts.map +1 -0
  87. package/dist/orchestration/dashboard-reader-worker.js +173 -0
  88. package/dist/orchestration/dashboard-reader-worker.js.map +1 -0
  89. package/dist/orchestration/dashboard-reader.d.ts +15 -0
  90. package/dist/orchestration/dashboard-reader.d.ts.map +1 -0
  91. package/dist/orchestration/dashboard-reader.js +87 -0
  92. package/dist/orchestration/dashboard-reader.js.map +1 -0
  93. package/dist/orchestration/decision-context.d.ts +15 -0
  94. package/dist/orchestration/decision-context.d.ts.map +1 -0
  95. package/dist/orchestration/decision-context.js +57 -0
  96. package/dist/orchestration/decision-context.js.map +1 -0
  97. package/dist/orchestration/display-stream.d.ts +21 -2
  98. package/dist/orchestration/display-stream.d.ts.map +1 -1
  99. package/dist/orchestration/display-stream.js +61 -8
  100. package/dist/orchestration/display-stream.js.map +1 -1
  101. package/dist/orchestration/inference-errors.d.ts.map +1 -1
  102. package/dist/orchestration/inference-errors.js +19 -21
  103. package/dist/orchestration/inference-errors.js.map +1 -1
  104. package/dist/orchestration/mutation-recovery.d.ts +13 -0
  105. package/dist/orchestration/mutation-recovery.d.ts.map +1 -0
  106. package/dist/orchestration/mutation-recovery.js +49 -0
  107. package/dist/orchestration/mutation-recovery.js.map +1 -0
  108. package/dist/orchestration/native-compact.d.ts +8 -0
  109. package/dist/orchestration/native-compact.d.ts.map +1 -0
  110. package/dist/orchestration/native-compact.js +33 -0
  111. package/dist/orchestration/native-compact.js.map +1 -0
  112. package/dist/orchestration/notification-mailbox.d.ts +3 -1
  113. package/dist/orchestration/notification-mailbox.d.ts.map +1 -1
  114. package/dist/orchestration/notification-mailbox.js +4 -2
  115. package/dist/orchestration/notification-mailbox.js.map +1 -1
  116. package/dist/orchestration/process-turn.d.ts +16 -2
  117. package/dist/orchestration/process-turn.d.ts.map +1 -1
  118. package/dist/orchestration/process-turn.js +78 -14
  119. package/dist/orchestration/process-turn.js.map +1 -1
  120. package/dist/orchestration/progress-review.d.ts +8 -18
  121. package/dist/orchestration/progress-review.d.ts.map +1 -1
  122. package/dist/orchestration/progress-review.js +12 -14
  123. package/dist/orchestration/progress-review.js.map +1 -1
  124. package/dist/orchestration/provider-message.d.ts +7 -0
  125. package/dist/orchestration/provider-message.d.ts.map +1 -0
  126. package/dist/orchestration/provider-message.js +63 -0
  127. package/dist/orchestration/provider-message.js.map +1 -0
  128. package/dist/orchestration/response-errors.d.ts +6 -0
  129. package/dist/orchestration/response-errors.d.ts.map +1 -0
  130. package/dist/orchestration/response-errors.js +88 -0
  131. package/dist/orchestration/response-errors.js.map +1 -0
  132. package/dist/orchestration/response-schema.d.ts +33 -0
  133. package/dist/orchestration/response-schema.d.ts.map +1 -0
  134. package/dist/orchestration/response-schema.js +61 -0
  135. package/dist/orchestration/response-schema.js.map +1 -0
  136. package/dist/orchestration/runtime.d.ts +79 -0
  137. package/dist/orchestration/runtime.d.ts.map +1 -1
  138. package/dist/orchestration/runtime.js +415 -68
  139. package/dist/orchestration/runtime.js.map +1 -1
  140. package/dist/orchestration/session-compaction.d.ts +59 -0
  141. package/dist/orchestration/session-compaction.d.ts.map +1 -0
  142. package/dist/orchestration/session-compaction.js +212 -0
  143. package/dist/orchestration/session-compaction.js.map +1 -0
  144. package/dist/orchestration/skills.d.ts.map +1 -1
  145. package/dist/orchestration/skills.js +3 -2
  146. package/dist/orchestration/skills.js.map +1 -1
  147. package/dist/orchestration/source-policy.d.ts +1 -1
  148. package/dist/orchestration/source-policy.d.ts.map +1 -1
  149. package/dist/orchestration/source-policy.js +1 -1
  150. package/dist/orchestration/speech.d.ts +15 -17
  151. package/dist/orchestration/speech.d.ts.map +1 -1
  152. package/dist/orchestration/speech.js +90 -30
  153. package/dist/orchestration/speech.js.map +1 -1
  154. package/dist/orchestration/store.d.ts +2 -0
  155. package/dist/orchestration/store.d.ts.map +1 -1
  156. package/dist/orchestration/store.js +16 -1
  157. package/dist/orchestration/store.js.map +1 -1
  158. package/dist/orchestration/tasks/driver.d.ts.map +1 -1
  159. package/dist/orchestration/tasks/driver.js +8 -3
  160. package/dist/orchestration/tasks/driver.js.map +1 -1
  161. package/dist/orchestration/tasks/pool.d.ts.map +1 -1
  162. package/dist/orchestration/tasks/pool.js +8 -4
  163. package/dist/orchestration/tasks/pool.js.map +1 -1
  164. package/dist/orchestration/tasks/service.d.ts +48 -1
  165. package/dist/orchestration/tasks/service.d.ts.map +1 -1
  166. package/dist/orchestration/tasks/service.js +41 -17
  167. package/dist/orchestration/tasks/service.js.map +1 -1
  168. package/dist/orchestration/token-ledger.d.ts +132 -0
  169. package/dist/orchestration/token-ledger.d.ts.map +1 -0
  170. package/dist/orchestration/token-ledger.js +233 -0
  171. package/dist/orchestration/token-ledger.js.map +1 -0
  172. package/dist/orchestration/token-usage.d.ts +46 -0
  173. package/dist/orchestration/token-usage.d.ts.map +1 -0
  174. package/dist/orchestration/token-usage.js +102 -0
  175. package/dist/orchestration/token-usage.js.map +1 -0
  176. package/dist/orchestration/tool-activity.d.ts.map +1 -1
  177. package/dist/orchestration/tool-activity.js +5 -3
  178. package/dist/orchestration/tool-activity.js.map +1 -1
  179. package/dist/orchestration/tool-name.d.ts +10 -0
  180. package/dist/orchestration/tool-name.d.ts.map +1 -0
  181. package/dist/orchestration/tool-name.js +14 -0
  182. package/dist/orchestration/tool-name.js.map +1 -0
  183. package/dist/orchestration/transcript-checkpoint.d.ts +14 -0
  184. package/dist/orchestration/transcript-checkpoint.d.ts.map +1 -0
  185. package/dist/orchestration/transcript-checkpoint.js +83 -0
  186. package/dist/orchestration/transcript-checkpoint.js.map +1 -0
  187. package/dist/orchestration/unanswered-inputs.d.ts +6 -0
  188. package/dist/orchestration/unanswered-inputs.d.ts.map +1 -0
  189. package/dist/orchestration/unanswered-inputs.js +18 -0
  190. package/dist/orchestration/unanswered-inputs.js.map +1 -0
  191. package/dist/session/process.d.ts +10 -0
  192. package/dist/session/process.d.ts.map +1 -1
  193. package/dist/session/process.js +91 -9
  194. package/dist/session/process.js.map +1 -1
  195. package/dist/session/request-tool-capture.d.ts +31 -0
  196. package/dist/session/request-tool-capture.d.ts.map +1 -0
  197. package/dist/session/request-tool-capture.js +194 -0
  198. package/dist/session/request-tool-capture.js.map +1 -0
  199. package/dist/session/runtime-profile.d.ts +7 -3
  200. package/dist/session/runtime-profile.d.ts.map +1 -1
  201. package/dist/session/runtime-profile.js +3 -1
  202. package/dist/session/runtime-profile.js.map +1 -1
  203. package/dist/session/store.d.ts +7 -0
  204. package/dist/session/store.d.ts.map +1 -1
  205. package/dist/session/store.js +27 -0
  206. package/dist/session/store.js.map +1 -1
  207. package/dist/shell/tailer.d.ts +7 -5
  208. package/dist/shell/tailer.d.ts.map +1 -1
  209. package/dist/shell/tailer.js +6 -17
  210. package/dist/shell/tailer.js.map +1 -1
  211. package/dist/types.d.ts +3 -0
  212. package/dist/types.d.ts.map +1 -1
  213. package/dist/ui/cli-viewer-ui.js +1 -1
  214. package/dist/ui/dashboard-charts.d.ts +3 -0
  215. package/dist/ui/dashboard-charts.d.ts.map +1 -0
  216. package/dist/ui/dashboard-charts.js +130 -0
  217. package/dist/ui/dashboard-charts.js.map +1 -0
  218. package/dist/ui/dashboard-client.d.ts +3 -0
  219. package/dist/ui/dashboard-client.d.ts.map +1 -0
  220. package/dist/ui/dashboard-client.js +184 -0
  221. package/dist/ui/dashboard-client.js.map +1 -0
  222. package/dist/ui/dashboard-controls.d.ts +4 -0
  223. package/dist/ui/dashboard-controls.d.ts.map +1 -0
  224. package/dist/ui/dashboard-controls.js +27 -0
  225. package/dist/ui/dashboard-controls.js.map +1 -0
  226. package/dist/ui/dashboard-presentation.d.ts +12 -0
  227. package/dist/ui/dashboard-presentation.d.ts.map +1 -0
  228. package/dist/ui/dashboard-presentation.js +62 -0
  229. package/dist/ui/dashboard-presentation.js.map +1 -0
  230. package/dist/ui/dashboard-range.d.ts +5 -0
  231. package/dist/ui/dashboard-range.d.ts.map +1 -0
  232. package/dist/ui/dashboard-range.js +36 -0
  233. package/dist/ui/dashboard-range.js.map +1 -0
  234. package/dist/ui/dashboard-theme.d.ts +6 -0
  235. package/dist/ui/dashboard-theme.d.ts.map +1 -0
  236. package/dist/ui/dashboard-theme.js +562 -0
  237. package/dist/ui/dashboard-theme.js.map +1 -0
  238. package/dist/ui/memory-activity.d.ts +4 -0
  239. package/dist/ui/memory-activity.d.ts.map +1 -0
  240. package/dist/ui/memory-activity.js +115 -0
  241. package/dist/ui/memory-activity.js.map +1 -0
  242. package/dist/ui/token-report-client.d.ts +3 -0
  243. package/dist/ui/token-report-client.d.ts.map +1 -0
  244. package/dist/ui/token-report-client.js +34 -0
  245. package/dist/ui/token-report-client.js.map +1 -0
  246. package/dist/ui/token-report.d.ts +90 -0
  247. package/dist/ui/token-report.d.ts.map +1 -0
  248. package/dist/ui/token-report.js +203 -0
  249. package/dist/ui/token-report.js.map +1 -0
  250. package/dist/ui/web-ui.d.ts +1 -1
  251. package/dist/ui/web-ui.d.ts.map +1 -1
  252. package/dist/ui/web-ui.js +129 -409
  253. package/dist/ui/web-ui.js.map +1 -1
  254. package/dist/voice/replay.d.ts +8 -0
  255. package/dist/voice/replay.d.ts.map +1 -0
  256. package/dist/voice/replay.js +48 -0
  257. package/dist/voice/replay.js.map +1 -0
  258. package/dist/voice/session.d.ts +9 -0
  259. package/dist/voice/session.d.ts.map +1 -1
  260. package/dist/voice/session.js +72 -14
  261. package/dist/voice/session.js.map +1 -1
  262. package/mcp/lazy-connector.test.ts +58 -0
  263. package/mcp/lazy-connector.ts +67 -0
  264. package/mcp/lazy-tools.test.ts +152 -0
  265. package/mcp/lazy-tools.ts +41 -0
  266. package/mcp/server.ts +53 -34
  267. package/mcp/tools/discord/commands.ts +2 -0
  268. package/mcp/tools/tasks/module.ts +1 -12
  269. package/mcp/tools/telegram/receiver-server.ts +45 -31
  270. package/mcp/tools/telegram/session-browser.ts +10 -0
  271. package/package.json +2 -1
  272. package/resource/dashboard/OFL.txt +93 -0
  273. package/resource/dashboard/poppins-300.woff2 +0 -0
  274. package/resource/dashboard/poppins-400.woff2 +0 -0
  275. package/resource/dashboard/poppins-500.woff2 +0 -0
  276. package/resource/dashboard/poppins-600.woff2 +0 -0
@@ -0,0 +1,562 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dashboardFontLink = exports.dashboardTheme = exports.dashboardIconUrl = void 0;
4
+ /** Favicon rendered from the original main-branch brandmark (35px at 4x). */
5
+ exports.dashboardIconUrl = "data:image/png;base64,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";
6
+ /** Shared tokens from the approved pastel dashboard direction. */
7
+ exports.dashboardTheme = String.raw `
8
+ :root{color-scheme:dark;--bg:#101113;--side:#141517;--panel:#181a1d;--raised:#202226;--line:#2b2e33;--text:#eeeef0;--muted:#989da7;--accent:#ff935c;--accentbg:#35261f;--green:#78d5aa;--greenbg:#1e3029;--blue:#8dbdff;--bluebg:#202c3f;--yellow:#ebc978;--yellowbg:#342e20;--red:#efa19e;--redbg:#362426;--shadow:0 24px 100px #0008;--radius:14px}
9
+
10
+ [data-theme=light]{color-scheme:light;--bg:#f5f5f4;--side:#fafaf9;--panel:#fff;--raised:#f0f1f2;--line:#e2e3e5;--text:#202226;--muted:#686d76;--accent:#b94815;--accentbg:#fff0e6;--green:#217451;--greenbg:#eaf7ef;--blue:#3264a7;--bluebg:#edf3fe;--yellow:#87621b;--yellowbg:#fff5de;--red:#a84140;--redbg:#fff0f0;--shadow:0 24px 100px #28282a22}
11
+
12
+ *{box-sizing:border-box}
13
+ body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
14
+ button,input,select{font:inherit}
15
+ button,a,input,select{ -webkit-tap-highlight-color:transparent}
16
+ button{cursor:pointer;color:inherit}
17
+ button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
18
+ button{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:8px 12px;display:inline-flex;gap:8px;align-items:center;justify-content:center}
19
+ button:hover{background:var(--raised)}
20
+ button:disabled{opacity:.4;cursor:not-allowed}
21
+ .primary{background:var(--accent);border-color:var(--accent);color:#1b130e;font-weight:650}
22
+ [data-theme=light] .primary{color:white}
23
+ .primary:hover{filter:brightness(1.08);background:var(--accent)}
24
+ .quiet{background:transparent;border-color:transparent}
25
+ .danger{color:var(--red)}
26
+ svg.icon{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
27
+ .small{font-size:12px}
28
+ .muted{color:var(--muted)}
29
+ .mono{font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
30
+ .row{display:flex;align-items:center;gap:10px}
31
+ .between{justify-content:space-between}
32
+ .wrap{flex-wrap:wrap}
33
+ .gap{gap:16px}
34
+ h1,h2,h3,p{margin:0}
35
+ h1{font-size:30px;letter-spacing:-1px;font-weight:650;line-height:1.2}
36
+ h2{font-size:16px;letter-spacing:-.2px;font-weight:620}
37
+ h3{font-size:14px;font-weight:600}
38
+ a{color:var(--accent);text-decoration:none}
39
+ .layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}
40
+ .sidebar{background:var(--side);border-right:1px solid var(--line);padding:28px 16px 16px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:224px;z-index:20}
41
+ .brand{padding:0 10px 26px;gap:11px;line-height:1.2;letter-spacing:-.4px;font-size:16px;font-weight:680}
42
+ .brandmark{width:34px;height:34px;border-radius:10px;background:var(--accentbg);color:var(--accent);display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent)}
43
+ .brand small{display:block;font-size:11px;color:var(--muted);font-weight:450;letter-spacing:.8px;margin-top:5px}
44
+ .navlabel{font-size:10px;color:var(--muted);letter-spacing:1.4px;font-weight:650;margin:24px 12px 10px}
45
+ .nav{display:flex;flex-direction:column;gap:5px}
46
+ .nav button{justify-content:flex-start;border-color:transparent;background:transparent;color:var(--muted);padding:11px 12px;font-weight:520}
47
+ .nav button:hover{background:var(--raised);color:var(--text)}
48
+ .nav button.active{background:var(--accentbg);color:var(--accent)}
49
+ .count{margin-left:auto;background:var(--raised);padding:0px 7px;border-radius:5px;font-size:11px;color:var(--muted)}
50
+ .sidebarfoot{margin-top:auto;padding-top:28px}
51
+ .instance{border:1px solid var(--line);padding:13px;border-radius:10px}
52
+ .dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;flex-shrink:0}
53
+ .main{grid-column:2;min-width:0}
54
+ .topbar{height:70px;padding:0 38px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:12px}
55
+ .breadcrumb{color:var(--muted);font-size:12px}
56
+ .breadcrumb span{margin-left:12px;color:var(--text)}
57
+ .pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;font-size:11px;white-space:nowrap;font-weight:550;background:var(--raised);color:var(--muted)}
58
+ .pill.green{color:var(--green);background:var(--greenbg)}
59
+ .pill.orange{color:var(--accent);background:var(--accentbg)}
60
+ .pill.blue{color:var(--blue);background:var(--bluebg)}
61
+ .pill.yellow{color:var(--yellow);background:var(--yellowbg)}
62
+ .pill.red{color:var(--red);background:var(--redbg)}
63
+ .page{max-width:1460px;margin:auto;padding:36px 38px 48px}
64
+ .heading{margin-bottom:26px}
65
+ .heading p{color:var(--muted);margin-top:9px}
66
+ .eyebrow{text-transform:uppercase;letter-spacing:1.6px;color:var(--accent);font-size:10px;font-weight:650;margin-bottom:10px}
67
+ .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
68
+ .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden}
69
+ .stat{padding:20px}
70
+ .stat-label{color:var(--muted);font-size:12px}
71
+ .statvalue{font-size:30px;font-weight:600;letter-spacing:-.8px;margin:12px 0 6px;line-height:1.2}
72
+ .statvalue small{font-size:13px;font-weight:450;letter-spacing:0;color:var(--muted)}
73
+ .stat-foot{font-size:11px;color:var(--muted)}
74
+ .spark{width:70px;height:26px;fill:none;stroke:var(--green);stroke-width:1.7}
75
+ .columns{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:22px}
76
+ .cardhead{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}
77
+ .cardhead p{color:var(--muted);font-size:12px;margin-top:4px}
78
+ .padded{padding:0 22px 22px}
79
+ .chart{position:relative}
80
+ .chart svg{display:block;width:100%;height:175px}
81
+ .legend{display:flex;gap:17px;font-size:11px;color:var(--muted)}
82
+ .legend i{display:inline-block;width:7px;height:7px;border-radius:3px;background:var(--accent);margin-right:5px}
83
+ .chartlabels{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:9px}
84
+ .notice{background:var(--yellowbg);border:1px solid color-mix(in srgb,var(--yellow) 20%,transparent);padding:15px;border-radius:10px}
85
+ .notice p{font-size:12px;margin:7px 0 12px;color:var(--muted)}
86
+ .separator{height:1px;background:var(--line);margin:20px 0}
87
+ .stack{display:grid;gap:12px}
88
+ .activity{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
89
+ .activity:last-child{border:0}
90
+ .avatar{height:32px;width:32px;border-radius:9px;background:var(--bluebg);color:var(--blue);display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}
91
+ .avatar.orange{background:var(--accentbg);color:var(--accent)}
92
+ .activity p{font-size:12px;color:var(--muted);margin-top:4px}
93
+ .activity time{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}
94
+ .section{margin-top:24px}
95
+ .tablewrap{overflow:auto}
96
+ table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}
97
+ th{font-size:10px;color:var(--muted);font-weight:550;letter-spacing:.6px;text-transform:uppercase;padding:11px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--raised) 35%,transparent)}
98
+ td{padding:15px 22px;border-bottom:1px solid var(--line);font-size:12px}
99
+ tbody tr:last-child td{border:0}
100
+ tbody tr[data-detail]{cursor:pointer}
101
+ tbody tr[data-detail]:hover{background:var(--raised)}
102
+ td strong{font-weight:550}
103
+ td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
104
+ .tablefoot{padding:13px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
105
+ .bar{height:6px;background:var(--raised);border-radius:4px;overflow:hidden}
106
+ .bar span{display:block;height:100%;background:var(--accent);border-radius:4px}
107
+ .progressrow{margin-bottom:19px}
108
+ .progressrow .row{margin-bottom:8px;font-size:12px}
109
+ .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px}
110
+ .tabs button{border:none;background:transparent;border-radius:0;color:var(--muted);padding:12px 14px;border-bottom:2px solid transparent}
111
+ .tabs button.selected{color:var(--accent);border-bottom-color:var(--accent)}
112
+ input,select{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px 12px;min-width:0}
113
+ .search{max-width:320px;width:100%}
114
+ .filters{margin-bottom:18px}
115
+ .empty{text-align:center;color:var(--muted);padding:40px}
116
+ .token-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
117
+ .swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
118
+ .swatch{height:58px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}
119
+ .swatches p{font-size:11px}
120
+ .swatches code{font-size:10px;color:var(--muted)}
121
+ .spec{padding:22px}
122
+ .spec h2{margin-bottom:8px}
123
+ .spec>p{color:var(--muted);font-size:12px;margin-bottom:20px}
124
+ .type-line{border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}
125
+ .type-line:last-child{border:0}
126
+ .type-line code{color:var(--muted);font-size:11px}
127
+ .designgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
128
+ .timeline{border-left:1px solid var(--line);margin-left:7px;padding-left:22px}
129
+ .step{padding-bottom:26px;position:relative}
130
+ .step:before{content:'';position:absolute;left:-27px;top:6px;width:8px;height:8px;border-radius:100%;background:var(--blue);border:2px solid var(--panel)}
131
+ .step p{color:var(--muted);font-size:12px;margin-top:6px}
132
+ .code{font:12px/1.6 ui-monospace,SFMono-Regular,monospace;background:var(--bg);border:1px solid var(--line);padding:12px;border-radius:8px;white-space:pre-wrap;margin-top:12px}
133
+ .drawerback{position:fixed;inset:0;background:#0006;z-index:50;display:none}
134
+ .drawerback.open{display:block}
135
+ .drawer{position:absolute;right:0;top:0;bottom:0;width:min(540px,100%);background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow);padding:26px;overflow:auto}
136
+ .drawer h1{font-size:24px;margin:24px 0 10px}
137
+ .drawer .pill{margin-bottom:24px}
138
+ .drawer dl{display:grid;grid-template-columns:100px 1fr;font-size:12px;gap:10px;margin:20px 0}
139
+ .drawer dt{color:var(--muted)}
140
+ .drawer dd{margin:0}
141
+ .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 18px;background:var(--raised);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);z-index:100;display:none}
142
+ .preview{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:4px 8px;letter-spacing:.3px}
143
+ .mobilemenu{display:none}
144
+ .footer{display:flex;justify-content:space-between;margin-top:28px;color:var(--muted);font-size:10px}
145
+ .metric-note{border-left:2px solid var(--accent);padding-left:12px;font-size:12px;color:var(--muted);margin-top:20px}
146
+ .ds-spaces{display:flex;align-items:end;gap:20px;min-height:70px}
147
+ .ds-spaces span{display:block;background:var(--accentbg);border-top:2px solid var(--accent);width:28px}
148
+ .ds-spaces small{display:block;margin-top:8px;color:var(--muted);font-size:10px}
149
+ button.link{padding:0;border:0;background:none;color:var(--accent);font-size:12px}
150
+ .statuslist>.row{padding:14px 0;border-bottom:1px solid var(--line)}
151
+ .statuslist>.row:last-child{border:0}
152
+ .keycap{border:1px solid var(--line);padding:1px 5px;border-radius:4px;font-size:10px}
153
+ .memoryrow{padding:20px;border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
154
+ .memoryrow p{color:var(--muted);font-size:12px;margin-top:5px}
155
+
156
+ @media(min-width:1600px){.page{padding-top:44px}
157
+ }
158
+ @media(max-width:1100px){.columns{grid-template-columns:1fr}
159
+ .stats{grid-template-columns:repeat(2,1fr)}
160
+ .page{padding:28px 24px}
161
+ .topbar{padding:0 24px}
162
+ .designgrid{grid-template-columns:1fr}
163
+ }
164
+ @media(max-width:760px){.layout{grid-template-columns:1fr}
165
+ .main{grid-column:1}
166
+ .sidebar{transform:translateX(-100%);box-shadow:var(--shadow)}
167
+ body.menuopen .sidebar{transform:translateX(0)}
168
+ .mobilemenu{display:inline-flex}
169
+ .topbar{padding:0 16px;height:62px}
170
+ .breadcrumb{display:none}
171
+ .page{padding:24px 16px}
172
+ .heading{align-items:flex-start}
173
+ .heading h1{font-size:26px}
174
+ .heading>.row{flex-wrap:wrap}
175
+ .stats{gap:10px}
176
+ .stat{padding:16px}
177
+ .statvalue{font-size:26px}
178
+ .token-grid{grid-template-columns:1fr}
179
+ .swatches{grid-template-columns:repeat(2,1fr)}
180
+ .preview{max-width:150px;text-align:center}
181
+ .footer{gap:12px}
182
+ .filters{flex-wrap:wrap}
183
+ .cardhead{padding:18px}
184
+ .topbar .pill{display:none}
185
+ }
186
+ @media(prefers-reduced-motion:no-preference){button,.sidebar{transition:background .15s,transform .2s}
187
+ .page{animation:reveal .22s ease}
188
+ @keyframes reveal{from{opacity:.5;transform:translateY(4px)}
189
+ to{opacity:1;transform:none}
190
+ }
191
+ }
192
+
193
+
194
+ /* V3: a white workspace with violet controls and pastel category surfaces. */
195
+ :root,[data-theme=light]{color-scheme:light;--bg:#f5f6f8;--side:#fff;--panel:#fff;--raised:#f5f6f8;--line:#dddfeb;--text:#333;--muted:#535768;--accent:#6161ff;--accentbg:#e7ecff;--green:#226149;--greenbg:#e5f6dc;--blue:#355a80;--bluebg:#dff4fc;--yellow:#785622;--yellowbg:#fff0d8;--red:#9c405d;--redbg:#fce8ef;--shadow:0 12px 42px #35386612;--radius:24px;--mint:var(--palette-mint);--sky:var(--palette-sky);--peach:var(--palette-peach);--lavender:var(--palette-lavender);--pink:var(--palette-pink);--prism:conic-gradient(#8181ff,#4dc2cb,#a5db88,#f8e094,#f3a0d2,#8181ff)}
196
+
197
+ [data-theme=dark]{color-scheme:dark;--bg:#171824;--side:#1d1f2e;--panel:#222536;--raised:#2a2e42;--line:#393e57;--text:#f1f1f8;--muted:#b2b7cc;--accent:#a5a5ff;--accentbg:#353858;--green:#abd8b3;--greenbg:#293e33;--blue:#adcce9;--bluebg:#2b3b51;--yellow:#e4c792;--yellowbg:#443b2a;--red:#f1afc3;--redbg:#473044;--shadow:0 12px 42px #0002;--mint:#263b30;--sky:#253a4b;--peach:#423328;--lavender:#3a2f4b;--pink:#412a3b}
198
+
199
+ body{font-family:Poppins,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:13px;letter-spacing:-.01em}
200
+ h1{font-size:44px;line-height:1.2;letter-spacing:-.035em;font-weight:400}
201
+ h2{font-size:17px;font-weight:500;letter-spacing:-.02em}
202
+ h3{font-weight:500}
203
+ .mono{font-variant-numeric:tabular-nums}
204
+ .layout{grid-template-columns:242px minmax(0,1fr)}
205
+ .sidebar{width:242px;padding:30px 18px 18px}
206
+ .brand{font-size:15px;font-weight:600;padding:0 8px 24px;gap:10px}
207
+ .brandmark{border:0;border-radius:12px;background:var(--prism);color:#333;width:35px;height:35px}
208
+ .brand small{font-size:9px;letter-spacing:1.1px;margin-top:6px}
209
+ .navlabel{font-weight:500;letter-spacing:1.5px;font-size:9px;margin-top:28px}
210
+ .nav{gap:6px}
211
+ .nav button{font-size:12px;font-weight:500;padding:12px 13px;border-radius:8px}
212
+ .nav button.active{background:var(--accentbg);color:var(--accent)}
213
+ .count{font-size:10px;border-radius:6px;background:var(--raised)}
214
+ .instance{border-radius:16px;background:var(--raised);border:0;padding:16px}
215
+ .avatar{border-radius:10px}
216
+ .topbar{height:80px;background:var(--panel);border:0;padding:0 36px}
217
+ .preview{border-radius:6px;padding:5px 9px;font-size:9px}
218
+ .breadcrumb{font-size:11px}
219
+ .page{max-width:1440px;padding:34px 36px 44px}
220
+ .heading{margin-bottom:28px;gap:20px}
221
+ .heading p{font-size:13px;line-height:1.7;max-width:690px;margin-top:13px}
222
+ .eyebrow{font-size:9px;letter-spacing:1.6px;color:var(--muted);font-weight:500;margin-bottom:12px}
223
+ .gradient-title{background:linear-gradient(95deg,#398ca8,#6161ff 58%,#8950ca);background-clip:text;-webkit-background-clip:text;color:transparent}
224
+ .heading>button{flex-shrink:0}
225
+
226
+ button{border-radius:160px;padding:10px 17px;font-size:12px;font-weight:500;min-height:38px}
227
+ .primary,[data-theme=light] .primary{color:#fff;background:#6161ff;border-color:#6161ff}
228
+ .primary:hover{background:#5050e7;filter:none}
229
+ .quiet{border-color:transparent}
230
+ .danger{color:var(--red)}
231
+ button.link{font-size:11px;min-height:32px}
232
+ .pill{border-radius:6px;font-size:10px;padding:5px 9px;font-weight:500}
233
+ .pill.orange{background:var(--accentbg);color:var(--accent)}
234
+ .pill.green{background:var(--greenbg)}
235
+
236
+ .stats{gap:16px;margin-bottom:28px}
237
+ .stats .stat{border:0;padding:24px;border-radius:24px}
238
+ .stats .stat:nth-child(1){background:var(--mint)}
239
+ .stats .stat:nth-child(2){background:var(--sky)}
240
+ .stats .stat:nth-child(3){background:var(--lavender)}
241
+ .stats .stat:nth-child(4){background:var(--peach)}
242
+ .stat-label{font-size:11px;color:var(--text)}
243
+ .stat .icon{width:17px;height:17px;color:var(--text);opacity:.65}
244
+ .statvalue{font-size:36px;font-weight:400;letter-spacing:-.03em;margin:13px 0 9px}
245
+ .statvalue small{font-size:12px}
246
+ .stat-foot{font-size:10px;line-height:1.7}
247
+ .spark{width:48px;stroke:var(--text);opacity:.5}
248
+ .columns{gap:24px;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr)}
249
+ .card{box-shadow:0 3px 14px #35386604}
250
+ .cardhead{padding:24px}
251
+ .cardhead p{font-size:11px;line-height:1.7}
252
+ .padded{padding:0 24px 24px}
253
+ .notice{background:var(--peach);border:0;border-radius:16px;padding:20px}
254
+ .notice p{font-size:12px;line-height:1.8;margin:10px 0 16px}
255
+ .notice button{background:#6161ff;color:white;border-color:#6161ff}
256
+ .separator{margin:22px 0}
257
+ .metric-note{font-size:11px;border-left:2px solid var(--accentbg);line-height:1.7}
258
+ .chart svg{height:180px}
259
+ .legend{font-size:10px}
260
+ .chartlabels{font-size:9px}
261
+ .section{margin-top:26px}
262
+ th{font-size:9px;padding:13px 24px;background:var(--raised);letter-spacing:.6px}
263
+ td{padding:18px 24px;font-size:11px}
264
+ td strong{font-weight:500}
265
+ td small{font-size:10px}
266
+ .tablefoot{padding:14px 24px;font-size:10px}
267
+ tbody tr[data-detail]:hover{background:var(--accentbg)}
268
+ .tabs{gap:6px;border:0;flex-wrap:wrap}
269
+ .tabs button{border:1px solid var(--line);border-radius:160px;padding:9px 16px}
270
+ .tabs button.selected{color:white;background:#6161ff;border-color:#6161ff}
271
+ input,select{border-radius:6px;padding:10px 13px;font-size:12px}
272
+ .spec{padding:26px}
273
+ .spec>p{font-size:12px;line-height:1.75}
274
+ .swatch{border-radius:12px;height:68px}
275
+ .type-line{flex-wrap:wrap}
276
+ .type-line code{white-space:nowrap}
277
+ .ds-spaces{flex-wrap:wrap}
278
+ .drawer{padding:30px}
279
+ .drawer h1{font-size:28px;font-weight:400;line-height:1.35}
280
+ .drawer dd{overflow-wrap:anywhere}
281
+ .drawer .pill{margin-bottom:16px}
282
+ .drawer .code{background:var(--raised);border-radius:12px;border:0;padding:16px}
283
+ .footer{font-size:10px;line-height:1.6}
284
+ .page{animation:none}
285
+ .design-link{text-decoration:underline;text-underline-offset:4px;font-size:12px}
286
+ .board-sample{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}
287
+ .note{border-radius:16px;min-height:110px;padding:16px;background:var(--mint);font-size:12px;color:var(--text)}
288
+ .note:nth-child(2){background:var(--sky)}
289
+ .note:nth-child(3){background:var(--lavender)}
290
+ .note .icon{margin-bottom:12px;display:block}
291
+ .memoryrow{border-radius:16px}
292
+ .toast{border-radius:160px}
293
+
294
+ @media(max-width:1150px){.columns{grid-template-columns:1fr}
295
+ .page{padding:28px}
296
+ .topbar{padding:0 28px}
297
+ .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
298
+ .designgrid{grid-template-columns:1fr}
299
+ .heading h1{font-size:38px}
300
+ }
301
+ @media(max-width:760px){.layout{grid-template-columns:1fr}
302
+ .main{grid-column:1}
303
+ .page{padding:24px 16px}
304
+ .topbar{padding:0 16px;height:64px}
305
+ .heading h1{font-size:34px}
306
+ .stats{gap:12px}
307
+ .stats .stat{padding:18px;border-radius:20px}
308
+ .statvalue{font-size:28px}
309
+ .stat-label{font-size:10px}
310
+ .spark{display:none}
311
+ .cardhead{padding:20px;flex-wrap:wrap}
312
+ .padded{padding:0 20px 22px}
313
+ .spec{padding:22px}
314
+ .columns{grid-template-columns:minmax(0,1fr)}
315
+ .designgrid{grid-template-columns:minmax(0,1fr)}
316
+ .preview{max-width:175px}
317
+ .drawer{padding:22px}
318
+ .token-grid{grid-template-columns:1fr}
319
+ .footer,.tablefoot{flex-wrap:wrap;gap:12px}
320
+ .board-sample{grid-template-columns:1fr}
321
+ .heading>button{align-self:flex-start}
322
+ }
323
+
324
+
325
+
326
+ body{padding:0}
327
+ .rainbow{background:none;-webkit-text-fill-color:var(--text);animation:none}
328
+ .shell-content{padding:32px 36px;max-width:1600px;margin:auto}
329
+ .sidebar .tabs{display:flex;flex-direction:column;border:0;margin:0;gap:6px}
330
+ .sidebar .tab{justify-content:flex-start;border:0;border-radius:8px;background:none;color:var(--muted);padding:12px 14px;font-size:12px}
331
+ .sidebar .tab.active{background:var(--accentbg);color:var(--accent)}
332
+ .sidebar .tab:focus-visible{outline:2px solid var(--accent)}
333
+ .topbar h1{font-size:16px;letter-spacing:0}
334
+ .meta{margin:0;font-size:11px;color:var(--muted)}
335
+ .meta span{color:var(--text)}
336
+ #top-right{float:none;display:flex;align-items:center;gap:12px}
337
+ #logout-btn{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:160px;padding:8px 16px}
338
+ #refresh-indicator{color:var(--muted);font-size:10px}
339
+ .table-wrap{overflow:auto;border:1px solid var(--line);border-radius:24px;background:var(--panel)}
340
+ table{margin:0;white-space:normal}
341
+ th{background:var(--raised);color:var(--muted);border-color:var(--line)}
342
+ td,tr.session-row td{background:transparent;color:var(--text);border-color:var(--line)}
343
+ tr.session-row:hover td{background:var(--raised)}
344
+ .ts{color:var(--muted);overflow-wrap:anywhere}
345
+ .session-id{font-size:11px;overflow-wrap:anywhere;font-family:ui-monospace,monospace}
346
+ .badge{border-radius:6px;font-size:10px;font-weight:500}
347
+ .badge-green,.badge-haiku{background:var(--greenbg);color:var(--green)}
348
+ .badge-red{background:var(--redbg);color:var(--red)}
349
+ .badge-gray,.badge-model{background:var(--raised);color:var(--muted)}
350
+ .badge-blue,.badge-sonnet{background:var(--bluebg);color:var(--blue)}
351
+ .badge-purple,.badge-opus,.badge-fable{background:var(--accentbg);color:var(--accent)}
352
+ .btn-stream{border:1px solid var(--line);border-radius:160px;padding:7px 12px;color:var(--accent);background:var(--panel);font-size:11px;display:inline-flex;align-items:center;gap:6px}
353
+ .agent-badge{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:12px}
354
+ .agent-name{color:var(--text)}
355
+ .proc-tree{background:var(--panel);border:1px solid var(--line);border-radius:24px;color:var(--text);padding:20px;overflow:auto}
356
+ .proc-row{color:var(--text)}
357
+ .kb-toolbar,.dreams-toolbar{background:var(--panel);color:var(--text);border-color:var(--line);padding:16px;border-radius:16px}
358
+ .kb-toolbar input,.kb-toolbar select,.dreams-toolbar select{background:var(--panel);color:var(--text);border-color:var(--line)}
359
+ .kb-container{background:var(--panel);border-color:var(--line)}
360
+ .kb-note,.dream-card{background:var(--panel);color:var(--text);border-color:var(--line)}
361
+ .empty{padding:32px;text-align:center;color:var(--muted)}
362
+ .dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}
363
+ .dash-stat{padding:24px;border-radius:24px;background:var(--mint)}
364
+ .dash-stat:nth-child(2){background:var(--sky)}
365
+ .dash-stat:nth-child(3){background:var(--lavender)}
366
+ .dash-stat:nth-child(4){background:var(--peach)}
367
+ /* Hard-locked summary-box colors, bound to the box by label (not by index) so
368
+ each box keeps its own color regardless of ordering or theme/state cycling. */
369
+ .cards .card.box-agent,.session-token-totals .dash-stat.box-agent{background:var(--mint)}
370
+ .cards .card.box-worker,.session-token-totals .dash-stat.box-worker{background:var(--sky)}
371
+ .cards .card.box-total,.session-token-totals .dash-stat.box-total{background:var(--lavender)}
372
+ .cards .card.box-context,.session-token-totals .dash-stat.box-context{background:var(--pink)}
373
+ .dash-stat strong{display:block;font-size:32px;font-weight:400;margin-top:12px}
374
+ .dash-stat span{font-size:11px}.card-cached{display:block;font-size:12px;font-weight:400;margin-top:6px;color:var(--muted);flex-basis:100%}.dash-drawer .session-token-totals{grid-template-columns:repeat(3,minmax(0,1fr))}.session-token-totals .dash-stat{padding:18px}.session-token-totals .dash-stat strong{font-size:28px}@media(max-width:520px){.dash-drawer .session-token-totals{grid-template-columns:1fr}.session-token-totals .dash-stat{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-token-totals .dash-stat strong{margin-top:0}}
375
+ .dash-panel{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:24px;margin:24px 0}
376
+ .dash-panel h2{margin:0 0 16px;color:var(--text)}
377
+ .view>h2{margin:0 0 18px;color:var(--text)}
378
+ .dash-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;color:var(--muted);font-size:11px}
379
+ .dash-drawer-back{display:none;position:fixed;inset:0;z-index:100;background:#22253655}
380
+ .dash-drawer-back.open{display:block}
381
+ .dash-drawer{background:var(--panel);position:absolute;inset:0 0 0 auto;width:min(800px,100%);padding:28px;overflow:auto;box-shadow:var(--shadow)}
382
+ .dash-drawer h1{font-size:26px;margin:22px 0 10px}
383
+ .dash-drawer h2{margin:24px 0 12px;color:var(--text)}
384
+ .dash-drawer pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--raised);padding:16px;border-radius:12px;font:12px/1.7 ui-monospace,monospace;max-height:480px;overflow:auto}
385
+ .dash-drawer details{border-bottom:1px solid var(--line);padding:16px 0}
386
+ .dash-drawer summary{cursor:pointer}.dash-drawer .turn-disclosure{padding:14px;border:1px solid var(--line)}.turn-disclosure>summary{font-size:13px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.turn-disclosure[open]>summary{margin-bottom:14px}.turn-disclosure>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
387
+ .dash-drawer p{overflow-wrap:anywhere}
388
+ .dash-drawer dl{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;font-size:12px}
389
+ .dash-drawer dd{margin:0;overflow-wrap:anywhere}
390
+ .dash-drawer dt{color:var(--muted)}
391
+ .dash-task-title{font-weight:500;color:var(--text)}
392
+ .dash-tools{max-width:230px;overflow-wrap:anywhere}
393
+ .dash-tools summary{white-space:nowrap}
394
+ .dash-tools .ts{display:block;max-height:180px;overflow:auto}
395
+ .dash-page-title{margin:0 0 12px}
396
+ .dash-subtitle{color:var(--muted);line-height:1.7}
397
+ .dash-filter{margin:18px 0;display:flex;gap:12px;flex-wrap:wrap}
398
+ .dash-filter input{flex:1;min-width:160px;max-width:380px}
399
+ .error{background:var(--yellowbg);color:var(--yellow);border-radius:12px;padding:16px}
400
+ .live-note{font-size:11px;color:var(--muted);margin:18px 0}
401
+ .dash-mini-list{display:grid;gap:12px}.session-task-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}.session-task-row:last-child{border-bottom:0}.session-task-title{flex:1 1 260px;min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.6;font-weight:500}.session-task-row>.status-badge{flex:0 0 auto;margin-top:1px}.session-tasks .dash-mini-list{gap:0}
402
+ .dash-mini-list button{border-radius:12px;text-align:left;justify-content:space-between;width:100%}
403
+ .top-grid{display:block}
404
+ .top-grid>div{margin-bottom:24px}
405
+ .pty-viewer{margin:24px 0}
406
+ .theme-toggle{padding:8px 12px}
407
+ #dash-menu{display:none;align-items:center;justify-content:center;width:36px;height:36px;padding:8px;flex:none}
408
+ #dash-menu .icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
409
+ #dashboard-sidebar,#sidebar-brand{cursor:pointer}
410
+ #sidebar-brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
411
+ @media(min-width:761px){
412
+ [data-sidebar-collapsed=true] .layout{grid-template-columns:76px minmax(0,1fr)}
413
+ [data-sidebar-collapsed=true] .sidebar{width:76px;padding:30px 10px 18px}
414
+ [data-sidebar-collapsed=true] .sidebar .brand{padding:0 0 24px;justify-content:center}
415
+ [data-sidebar-collapsed=true] .sidebar .brand>div:not(.brandmark),[data-sidebar-collapsed=true] .sidebar .navlabel,[data-sidebar-collapsed=true] .sidebar .sidebarfoot{display:none}
416
+ [data-sidebar-collapsed=true] .sidebar .tab{justify-content:center;font-size:0;padding:14px 0;gap:0}
417
+ [data-sidebar-collapsed=true] .sidebar .tab .icon{width:20px;height:20px;flex:none}
418
+ }
419
+
420
+ .sidebarfoot{font-size:11px;color:var(--muted)}
421
+
422
+ @media(max-width:1100px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
423
+ }
424
+ @media(max-width:760px){#dash-menu{display:inline-flex}.shell-content{padding:24px 16px}
425
+ .dash-grid{gap:12px}
426
+ .dash-stat{padding:18px}
427
+ .dash-stat strong{font-size:26px}
428
+ .meta{display:none}
429
+ .topbar{gap:6px}
430
+ .topbar h1{font-size:13px}
431
+ #top-right{gap:6px}
432
+ #refresh-indicator{max-width:88px}
433
+ .dash-drawer{padding:22px}
434
+ .dash-pager{flex-wrap:wrap}
435
+ .sidebar{z-index:90}
436
+ .topbar .mobilemenu{z-index:91}
437
+ }
438
+
439
+
440
+ /* Shared operational components: bounded columns and theme-aware legacy panels. */
441
+ [hidden]{display:none!important}
442
+ .identity-badge{display:inline-flex;align-items:center;max-width:100%;padding:4px 9px;border-radius:7px;font-size:11px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:hsl(var(--agent-hue) 60% 94%);color:hsl(var(--agent-hue) 55% 30%);border:1px solid hsl(var(--agent-hue) 45% 85%)}
443
+ [data-theme=dark] .identity-badge{background:hsl(var(--agent-hue) 30% 21%);color:hsl(var(--agent-hue) 65% 80%);border-color:hsl(var(--agent-hue) 30% 35%)}
444
+ .channel-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap;margin-top:6px}
445
+ .channel-badge svg{width:14px;height:14px;flex:none;fill:currentColor}
446
+ .table-wrap,.table-scroll{width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;scrollbar-gutter:auto}
447
+ .data-table{table-layout:fixed;width:100%;white-space:normal}
448
+ .data-table td,.data-table th{padding:14px 16px;vertical-align:top;word-break:normal;overflow-wrap:break-word;font-size:12px}
449
+ .data-table th{font-size:10px;white-space:normal}
450
+ .data-table .btn-stream{font-size:11px;white-space:nowrap;padding:7px 10px}
451
+ .data-table .dash-task-title{white-space:normal;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;border:0;background:none;padding:0;font-size:12px;line-height:1.6;border-radius:0;margin-bottom:8px}
452
+ .cell-clip{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
453
+ .short-id{font:11px ui-monospace,monospace;white-space:nowrap;color:var(--muted)}
454
+ .data-table .session-id{word-break:normal;overflow-wrap:normal;font-family:inherit}
455
+ .data-table .ts{font-size:10px;line-height:1.6;color:var(--muted)}
456
+ .data-table td{font-variant-numeric:tabular-nums}
457
+ .dash-tools details{font-size:11px}.dash-tools details[open]{max-width:100%}
458
+ .dash-tools .ts{white-space:normal;overflow-wrap:anywhere}
459
+ .kb-toolbar,.dream-run,.dream-prop,.proc-tree{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:16px}
460
+ .kb-toolbar{gap:14px;align-items:center;flex-wrap:wrap}
461
+ .kb-toolbar button,.kb-zoom button,.dream-accept-btn,.dream-accept-all,#kb-source,#kb-demo-size,#kb-search,#dreams-agent{font:inherit;font-size:12px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 12px;min-height:38px}
462
+ .kb-toolbar button:hover,.kb-zoom button:hover,.dream-accept-btn:hover{background:var(--raised);border-color:var(--accent)}
463
+ .kb-stage{background:radial-gradient(ellipse 70% 62% at 50% 42%,#16203a 0%,#0d1322 55%,#070a12 100%);border-color:var(--line);border-radius:16px}
464
+ .dream-run-head .agent,.dream-prop .file,.proc-tree .proc-orchestrator,.proc-tree .proc-mcp{color:var(--accent)}
465
+ .dream-run-head .when,.dream-meta,.dreams-empty,.dream-prop .score,.dream-prop .reason,.proc-tree .proc-label,#kb-search-count{color:var(--muted)}
466
+ .dream-summary,.dream-prop .content,.dream-prop .anchor{color:var(--text);background:var(--raised)}
467
+ .dream-badge.auto,.dream-badge.propose,.dream-badge.outcome{background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:3px 8px}
468
+ .proc-tree .proc-summary,.proc-tree .proc-claude{color:var(--text)}
469
+ .proc-tree .proc-pty,.proc-tree .proc-receiver{color:var(--green)}
470
+ .proc-tree .proc-orphan{color:var(--red)}
471
+ #view-system h2{color:var(--text)}
472
+ .proc-tree{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8}
473
+ .dream-run-head{gap:10px}.dream-run-head .when{font:11px inherit;margin-left:auto}
474
+
475
+ .dream-prop .op.add,.prop-status.applied,.prop-status.applied-auto{color:var(--green)}
476
+ .dream-prop .op.replace,.dream-prop .anchor,.prop-status.pending{color:var(--accent)}
477
+ .dream-prop .op.remove,.prop-status.failed{color:var(--red)}
478
+ .dream-accept-all:hover{background:var(--raised)}
479
+ .kb-note,.kb-note-head,.kb-note-body{background:var(--panel);color:var(--text);border-color:var(--line)}
480
+
481
+ .range-toggle{display:inline-flex;gap:3px;background:var(--raised);padding:4px;border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}.range-toggle button{border:0;background:transparent;color:var(--muted);padding:7px 13px;border-radius:7px;font:inherit;cursor:pointer}.range-toggle button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 4px #0001;font-weight:650}
482
+ .tool-name-list{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}.tool-name-list li{padding:7px 10px;background:var(--raised);border:1px solid var(--line);border-radius:7px;min-width:0}.tool-name-list code{font:12px/1.6 ui-monospace,monospace;color:var(--text);overflow-wrap:anywhere}
483
+ .status-badge{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:0;border:0;border-radius:0;min-height:0;background:transparent;color:var(--status-color);font-size:12px;font-weight:500;line-height:1.6;letter-spacing:0;white-space:normal;vertical-align:middle}.status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
484
+ tr[data-dash-agent],.turn-row{cursor:pointer}tr[data-dash-agent]:hover,.turn-row:hover{background:var(--raised)}tr[data-dash-agent]:focus-visible,.turn-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.short-id,.session-id{overflow-wrap:anywhere;white-space:normal;color:var(--text);font-size:12px}.dash-tools{overflow-wrap:anywhere}.detail-block{padding:14px;border:1px solid var(--line);border-radius:10px;margin:12px 0}.detail-block h3{margin:0 0 8px}
485
+ /* Memory activity keeps column sizes stable as live records change. */
486
+ .memory-table{table-layout:fixed;width:100%}.memory-table th,.memory-table td{white-space:normal;overflow-wrap:anywhere;vertical-align:top;padding:14px 16px}.memory-table .identity-badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}.memory-table .status-badge{white-space:normal}.memory-table button{white-space:nowrap}.memory-table tr[data-memory-id]{cursor:pointer}.memory-table tr[data-memory-id]:hover{background:var(--raised)}
487
+ #memory-drawer{overflow-x:hidden}#memory-drawer .table-wrap{max-width:100%;overflow-x:auto}#memory-drawer pre{white-space:pre-wrap;overflow-wrap:anywhere}#memory-stats{grid-template-columns:repeat(3,minmax(0,1fr))}#memory-stats .dash-stat{padding:18px}#memory-stats .dash-stat strong{font-size:26px;margin-top:6px}@media(max-width:520px){#memory-stats{grid-template-columns:1fr}}
488
+ #view-dreams .heading h2{color:var(--text)}.memory-schedules{margin:16px 0 20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.memory-schedules>summary{padding:14px 18px;font-weight:500;color:var(--text);cursor:pointer}.memory-schedules[open]>summary{border-bottom:1px solid var(--line)}#memory-schedule-table{padding:0 12px 12px}#memory-schedule-table .table-wrap{margin-top:12px}#memory-error[hidden]{display:none}
489
+
490
+ .memory-activity-label{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:500;line-height:1.4;color:var(--activity-color)}
491
+ .memory-activity-label::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
492
+ .memory-activity-label.memory-dream{--activity-color:var(--accent)}
493
+ .memory-activity-label.session-compaction{--activity-color:var(--blue)}
494
+ /* One filter component shared with the Turn details report. */
495
+ .turn-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;font:15px/1.7 system-ui,-apple-system,"Noto Sans Thai",sans-serif}
496
+ .turn-filters .range-toggle button,.turn-filters select,.turn-filters input{font-size:12px}
497
+ .turn-filters input{flex:1;min-width:160px;max-width:380px}
498
+ .report-toolbar.turn-filters{align-items:stretch}
499
+ .turn-filters>select,.turn-filters>input{height:48px;margin:0;align-self:stretch}
500
+ .memory-filters{flex-wrap:nowrap;gap:12px;margin:20px 0 12px;max-width:100%;overflow-x:auto;padding:6px 6px 8px}
501
+ .memory-filters .range-toggle{flex:0 0 auto;flex-wrap:nowrap;white-space:nowrap}
502
+ .memory-filters #memory-agent{flex:0 0 auto;width:160px}
503
+
504
+ /* Drawer chrome must not inherit report section/card decoration. */
505
+ .dash-drawer{margin:0;border:0;border-radius:0;height:100%;max-height:100%;font:13px/1.6 Poppins,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
506
+ .dash-drawer .drawer-actions{display:flex;justify-content:flex-end;margin:0 0 16px}
507
+ .dash-drawer .drawer-close{font:500 12px/1.5 Poppins,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;border-radius:160px;min-height:38px;padding:8px 14px}
508
+ .dash-drawer .drawer-actions+h1{margin-top:0}
509
+ .dash-drawer h3{font-size:14px;font-weight:600;margin:18px 0 8px}
510
+ .dash-drawer .muted{font-size:12px}
511
+ button.theme-toggle{width:38px;height:38px;min-height:38px;flex:0 0 38px;padding:9px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
512
+ .theme-toggle svg{display:block;flex-shrink:0}.theme-toggle .theme-sun{display:none}
513
+ [data-theme=dark] .theme-toggle .theme-moon{display:none}[data-theme=dark] .theme-toggle .theme-sun{display:block}
514
+ #report-theme{margin-left:auto}
515
+
516
+ /* Shared chart colors: distribution roles and the existing light-theme pastel palette. */
517
+ :root{--token-agent:#329eda;--token-worker:#9661d9;--token-report:#ea8a23;--palette-mint:#e2f8d3;--palette-sky:#dff6ff;--palette-peach:#fff0e3;--palette-lavender:#eddff7;--palette-pink:#fbe0ef;--palette-yellow:#fff0d8}
518
+ .identity-badge,.agent-column{--agent-fill:hsl(var(--agent-hue) 60% 94%);--agent-ink:hsl(var(--agent-hue) 55% 30%);--agent-border:hsl(var(--agent-hue) 45% 85%)}
519
+ [data-theme=dark] .identity-badge,[data-theme=dark] .agent-column{--agent-fill:hsl(var(--agent-hue) 30% 21%);--agent-ink:hsl(var(--agent-hue) 65% 80%);--agent-border:hsl(var(--agent-hue) 30% 35%)}
520
+ .identity-badge,[data-theme=dark] .identity-badge{background:var(--agent-fill);color:var(--agent-ink);border-color:var(--agent-border)}
521
+ /* Overview charts share card sizing, range controls and numeric typography. */
522
+ #overview-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
523
+ #overview-charts .overview-chart-card{margin:0;padding:24px;min-width:0;overflow:visible}
524
+ .chart-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
525
+ .chart-card-header h2{margin:0;font-size:17px;font-weight:550;line-height:1.5}
526
+ .chart-range{margin-left:auto;flex-wrap:nowrap;font-size:12px}.chart-range button{padding:6px 9px;min-height:30px}
527
+ .chart-period{margin:0 0 22px;min-height:20px}.chart-content{min-height:274px;min-width:0}.chart-content>.empty{min-height:220px;display:flex;align-items:center;justify-content:center}
528
+ .chart-status{margin:4px 0 0!important;min-height:0}.chart-status:empty{display:none}
529
+ .activity-frame,.agent-column-plot{display:flex;gap:10px;height:216px;padding-top:16px}
530
+ .chart-y-labels{width:40px;flex:none;display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;height:180px;padding-top:4px}
531
+ .activity-plot{position:relative;flex:1;min-width:0;height:190px}.activity-plot>svg{display:block;width:100%;height:190px;overflow:visible}
532
+ .chart-hit-grid{position:absolute;inset:0;display:grid}.chart-hit{position:relative;outline:none;background:transparent}
533
+ .chart-line-dot{display:none;position:absolute;width:8px;height:8px;transform:translate(-50%,-50%);border:2px solid var(--panel);border-radius:50%;background:var(--dot-color);box-shadow:0 0 0 1px var(--dot-color);pointer-events:none}
534
+ .chart-hit:hover .chart-line-dot,.chart-hit:focus-visible .chart-line-dot{display:block}
535
+ .chart-popover{text-align:left;width:max-content;max-width:calc(100vw - 32px);display:none;position:absolute;z-index:5;top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);font-size:12px;line-height:1.7;white-space:nowrap;pointer-events:none;color:var(--text)}
536
+ .chart-tooltip-row{display:grid;grid-template-columns:auto auto;gap:16px;align-items:baseline;margin-top:4px}.chart-tooltip-row>span{color:var(--muted)}.chart-tooltip-row>strong{font-weight:650;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.chart-tooltip-detail{font-weight:400}.chart-popover>strong{display:block;margin-bottom:6px;color:var(--muted);font-weight:500}
537
+ .chart-popover.align-left{left:0}.chart-popover.align-right{right:0}
538
+ .chart-hit:hover .chart-popover,.chart-hit:focus-visible .chart-popover,.agent-bar-space:hover~.chart-popover,.agent-column:focus-visible .chart-popover{display:block}
539
+ .chart-x-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:8px}
540
+ .chart-key{display:flex;gap:18px;font-size:12px;margin:18px 0 10px;color:var(--muted)}.chart-key span{display:inline-flex;align-items:center;gap:7px}
541
+ .chart-key i,.model-chart-legend i,.reuse-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
542
+ .agent-columns{flex:1;min-width:0;display:flex;justify-content:space-evenly;gap:0;position:relative;border-bottom:1px solid var(--line);height:180px;background:repeating-linear-gradient(to top,transparent 0,transparent 88px,var(--line) 89px,transparent 90px)}
543
+ .agent-column{--agent-chart-color:hsl(var(--agent-hue) 55% 52%);min-width:0;flex:1;text-align:center;position:relative;outline-offset:3px}.agent-bar-space{width:32px;margin:0 auto;height:180px;display:flex;justify-content:center;align-items:flex-end}
544
+ .agent-bar{position:relative;width:32px;flex:none;display:flex;flex-direction:column;border-radius:5px 5px 0 0;background:var(--agent-chart-color);border:0}.agent-bar>span:not(.chart-popover):not(.agent-bar-total){display:block;flex-shrink:0}.agent-bar>span:first-child{border-radius:5px 5px 0 0}
545
+ .agent-bar-total{pointer-events:none;position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:600;white-space:nowrap}
546
+ .agent-column>.chart-popover{left:50%;transform:translateX(-50%);top:4px}.agent-column:first-child>.chart-popover{left:0;transform:none}.agent-column:last-child>.chart-popover{left:auto;right:0;transform:none}.agent-column:only-child>.chart-popover{left:50%;right:auto;transform:translateX(-50%)}.agent-bar-label{display:flex;align-items:center;justify-content:center;gap:5px;padding:0 4px;margin-top:10px;min-width:0;font-size:11px;color:var(--muted)}.agent-bar-label>i{width:6px;height:6px;flex:none;border-radius:50%;background:var(--agent-chart-color)}.agent-bar-label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
547
+
548
+ .model-donut-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:center;min-height:230px}.model-donut{position:relative;width:min(100%,220px);justify-self:center}.model-donut svg{display:block;width:100%;height:auto}.model-donut circle:hover,.model-donut circle:focus{filter:brightness(.82);outline:none}
549
+ .model-tooltip{top:0;left:50%;transform:translateX(-50%);width:max-content;max-width:240px;white-space:normal;overflow-wrap:anywhere}.donut-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.donut-center strong{font-size:24px;font-weight:600}.donut-center span{font-size:11px;color:var(--muted)}
550
+ .model-chart-legend,.reuse-legend{list-style:none;margin:0;padding:0;min-width:0;flex:1}.model-chart-legend li{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:4px 8px;align-items:center;margin:13px 0;font-size:11px}.model-chart-legend li>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-chart-legend li>small{grid-column:2/4;color:var(--muted)}.model-chart-legend i{border:1px solid var(--line)}.model-chart-legend strong,.reuse-legend strong{font-weight:600;font-variant-numeric:tabular-nums}
551
+ .reuse-key{gap:12px;flex-wrap:wrap}.reuse-summary{font-size:12px;margin:10px 0}.reuse-summary>strong{color:var(--token-agent);font-size:18px;font-weight:600}.chart-content>.live-note{margin-bottom:0;font-size:11px;line-height:1.7}
552
+ #overview-attention-panel[hidden]{display:none}
553
+ @media(max-width:1200px){.model-donut-layout{gap:8px}.donut-center strong{font-size:21px}.reuse-headline{gap:12px}.reuse-headline>strong{font-size:36px}}
554
+ @media(max-width:1000px){#overview-charts{grid-template-columns:1fr}}
555
+ @media(max-width:520px){#overview-charts .overview-chart-card{padding:18px}.chart-card-header h2{font-size:16px}.chart-card-header{gap:8px}.chart-range button{padding:5px 7px}.model-donut-layout{grid-template-columns:1fr;gap:0}.model-chart-legend{width:100%;max-width:none}.reuse-legend li{font-size:11px;gap:7px}.reuse-headline>strong{font-size:34px}.chart-period{font-size:10px}}
556
+
557
+ .kb-toolbar button{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:160px;padding:8px 14px;font-size:12px;min-height:38px}
558
+ .kb-toolbar button:hover{background:var(--raised)}
559
+ #kb-source,#kb-demo-size,#kb-search{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px 12px;font:12px/1.5 Poppins,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:38px}
560
+ `;
561
+ exports.dashboardFontLink = '<link rel="icon" type="image/png" href="' + exports.dashboardIconUrl + '">' + "<script>(function(){var i=location.pathname.lastIndexOf('/dashboard');if(i<0)return;var l=document.createElement('link');l.rel='stylesheet';l.href=location.pathname.slice(0,i)+'/dashboard/fonts.css';document.head.appendChild(l);})();</script>";
562
+ //# sourceMappingURL=dashboard-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-theme.js","sourceRoot":"","sources":["../../src/ui/dashboard-theme.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AAChE,QAAA,gBAAgB,GAAG,wsnBAAwsnB,CAAC;AACzunB,kEAAkE;AACrD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyiBvC,CAAC;AACW,QAAA,iBAAiB,GAAG,0CAA0C,GAAC,wBAAgB,GAAC,IAAI,GAAG,oPAAoP,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Memory maintenance shares the dashboard theme, but owns its refresh and drawer state. */
2
+ export declare const memoryActivityHtml: string;
3
+ export declare const memoryActivityClient: string;
4
+ //# sourceMappingURL=memory-activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-activity.d.ts","sourceRoot":"","sources":["../../src/ui/memory-activity.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,QAY9B,CAAC;AACF,eAAO,MAAM,oBAAoB,QAgGhC,CAAC"}