@deepseek-insight/dsi 0.5.8 → 0.5.10

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 (181) hide show
  1. package/README.md +27 -60
  2. package/bin/dsi.mjs +108 -8
  3. package/build/client/_app/immutable/assets/0.B-x78bUH.css +2 -0
  4. package/build/client/_app/immutable/assets/2.DHY7FpOZ.css +1 -0
  5. package/build/client/_app/immutable/chunks/{CJ_zvTBg.js → 1KjP5PPV.js} +1 -1
  6. package/build/client/_app/immutable/chunks/{BAZKJuQw.js → 4BUyCMHs.js} +1 -1
  7. package/build/client/_app/immutable/chunks/{qEGLx2Wc.js → 5BuKkouu.js} +1 -1
  8. package/build/client/_app/immutable/chunks/{Cj-Zm41R.js → 5W1abxrJ.js} +1 -1
  9. package/build/client/_app/immutable/chunks/{DlQrSOw4.js → 7Qwz4TD3.js} +1 -1
  10. package/build/client/_app/immutable/chunks/{2irkVCIh.js → B3Lta-Nn.js} +1 -1
  11. package/build/client/_app/immutable/chunks/{Dr0pcX_F.js → B5bIZjCh.js} +1 -1
  12. package/build/client/_app/immutable/chunks/{CZXl7qUb.js → BDws8KMN.js} +1 -1
  13. package/build/client/_app/immutable/chunks/{CmbEK4CY.js → BFYiBR8b.js} +1 -1
  14. package/build/client/_app/immutable/chunks/{BI4pMaIG.js → BK9wQfnJ.js} +1 -1
  15. package/build/client/_app/immutable/chunks/{Beo7Z46k.js → BKMUCRSB.js} +1 -1
  16. package/build/client/_app/immutable/chunks/BLOKPG58.js +1 -0
  17. package/build/client/_app/immutable/chunks/{D16vkywU.js → BNCXVe_Y.js} +1 -1
  18. package/build/client/_app/immutable/chunks/{DtBGId5S.js → BO15_-NJ.js} +1 -1
  19. package/build/client/_app/immutable/chunks/{CfZ7uSQe.js → BOGXkyy3.js} +1 -1
  20. package/build/client/_app/immutable/chunks/{BhNEBkk_.js → BP1EDRMh.js} +1 -1
  21. package/build/client/_app/immutable/chunks/{Bn9NRi0R.js → BQFPW2iU.js} +1 -1
  22. package/build/client/_app/immutable/chunks/{D7fX-3xy.js → BS84xqUl.js} +1 -1
  23. package/build/client/_app/immutable/chunks/{DVXVVWkX.js → BhMqa9V0.js} +1 -1
  24. package/build/client/_app/immutable/chunks/{OmE6SGvs.js → BnEcDyty.js} +1 -1
  25. package/build/client/_app/immutable/chunks/{D4gq_dik.js → BoJ5ww2X.js} +1 -1
  26. package/build/client/_app/immutable/chunks/{BnF5Jm-h.js → BtWgux0k.js} +1 -1
  27. package/build/client/_app/immutable/chunks/BuVjHIij.js +1 -0
  28. package/build/client/_app/immutable/chunks/{CA_WNCsl.js → C7xeaPF2.js} +1 -1
  29. package/build/client/_app/immutable/chunks/{GBaNblmo.js → CA7VtFsM.js} +1 -1
  30. package/build/client/_app/immutable/chunks/{9TvT6fta.js → CIZRvqf3.js} +1 -1
  31. package/build/client/_app/immutable/chunks/{DuM1hSCa.js → CKk3hDrH.js} +1 -1
  32. package/build/client/_app/immutable/chunks/CM2YlsBZ.js +1 -0
  33. package/build/client/_app/immutable/chunks/CNIDhcUc.js +2 -0
  34. package/build/client/_app/immutable/chunks/{DzVMo6mB.js → CQNMOuVz.js} +1 -1
  35. package/build/client/_app/immutable/chunks/{wFIeY1Cf.js → CVJBb63S.js} +1 -1
  36. package/build/client/_app/immutable/chunks/CWCyOfZL.js +1 -0
  37. package/build/client/_app/immutable/chunks/{Dg_UWGX7.js → CWJVj28H.js} +1 -1
  38. package/build/client/_app/immutable/chunks/{sIEmSkn6.js → CWRt23V2.js} +1 -1
  39. package/build/client/_app/immutable/chunks/{DWDfcLfy.js → CXDjw6BI.js} +1 -1
  40. package/build/client/_app/immutable/chunks/{BBKpNcUe.js → CbmGLQlS.js} +1 -1
  41. package/build/client/_app/immutable/chunks/{raVGrKQy.js → CfKp2keY.js} +4 -4
  42. package/build/client/_app/immutable/chunks/{LWre5GKl.js → CfPrYC2A.js} +1 -1
  43. package/build/client/_app/immutable/chunks/{zpcgJjUg.js → CfqeI44h.js} +1 -1
  44. package/build/client/_app/immutable/chunks/{BJL7RCQE.js → CjMviqoD.js} +1 -1
  45. package/build/client/_app/immutable/chunks/Ct7xT-0E.js +1 -0
  46. package/build/client/_app/immutable/chunks/{DGarjVZC.js → CwpTIVX4.js} +1 -1
  47. package/build/client/_app/immutable/chunks/{C1JXY9b5.js → D-p2gaJO.js} +1 -1
  48. package/build/client/_app/immutable/chunks/{CWVpRRWx.js → D2Punuji.js} +1 -1
  49. package/build/client/_app/immutable/chunks/{CWKM3f5q.js → D9XozwcM.js} +1 -1
  50. package/build/client/_app/immutable/chunks/DChUx8Ds.js +1 -0
  51. package/build/client/_app/immutable/chunks/DFZg0vdm.js +8 -0
  52. package/build/client/_app/immutable/chunks/{BOfSXrr7.js → DHChdxxK.js} +1 -1
  53. package/build/client/_app/immutable/chunks/DKLs56Hm.js +1 -0
  54. package/build/client/_app/immutable/chunks/{D0I62FkS.js → DTVIMflS.js} +1 -1
  55. package/build/client/_app/immutable/chunks/{D8-5qLJg.js → DVsJyQaB.js} +1 -1
  56. package/build/client/_app/immutable/chunks/{Btk-1DaX.js → D_4vyw9k.js} +1 -1
  57. package/build/client/_app/immutable/chunks/{CPgSxomx.js → Da0rl5Rb.js} +1 -1
  58. package/build/client/_app/immutable/chunks/{DPKol_4Z.js → DfxnqpU2.js} +1 -1
  59. package/build/client/_app/immutable/chunks/DnA33f7e.js +3 -0
  60. package/build/client/_app/immutable/chunks/{6GKQw8m6.js → DrLWFO8Z.js} +1 -1
  61. package/build/client/_app/immutable/chunks/{DITEY8D_.js → DtdNJetN.js} +1 -1
  62. package/build/client/_app/immutable/chunks/{DLOOos_8.js → Dufckt0T.js} +1 -1
  63. package/build/client/_app/immutable/chunks/{DAS1CLuE.js → DzNl4lTU.js} +1 -1
  64. package/build/client/_app/immutable/chunks/E-1cXrsM.js +1 -0
  65. package/build/client/_app/immutable/chunks/{DYqsupvX.js → FDKaBHdO.js} +1 -1
  66. package/build/client/_app/immutable/chunks/FmeCgKwk.js +1 -0
  67. package/build/client/_app/immutable/chunks/{BrTsmS-o.js → KCYBrblk.js} +5 -5
  68. package/build/client/_app/immutable/chunks/N_z8g1dA.js +1 -0
  69. package/build/client/_app/immutable/chunks/{DbcKN35_.js → NxBjh70M.js} +1 -1
  70. package/build/client/_app/immutable/chunks/{B1YSaoU7.js → T453H1uG.js} +1 -1
  71. package/build/client/_app/immutable/chunks/{DqwfDHZH.js → XM-sjL-p.js} +1 -1
  72. package/build/client/_app/immutable/chunks/{CcL1k2On.js → _OxPZn8v.js} +1 -1
  73. package/build/client/_app/immutable/chunks/{DvCMcJ3P.js → dg-Ik0Xp.js} +1 -1
  74. package/build/client/_app/immutable/chunks/{Cd6K7Y8m.js → eNqKaSDb.js} +1 -1
  75. package/build/client/_app/immutable/chunks/{mVHw7KEX.js → hFCLiR2C.js} +1 -1
  76. package/build/client/_app/immutable/chunks/{Rh9cy7xg.js → pRzztTzl.js} +1 -1
  77. package/build/client/_app/immutable/chunks/{Cb1pwoev.js → qDr7l6ST.js} +1 -1
  78. package/build/client/_app/immutable/chunks/{nDMCpPkF.js → tziyL5EM.js} +1 -1
  79. package/build/client/_app/immutable/chunks/{UNxFjlik.js → wRPKccfz.js} +1 -1
  80. package/build/client/_app/immutable/entry/app.BQBFBQPC.js +2 -0
  81. package/build/client/_app/immutable/entry/start.Cz8Ti8Dy.js +1 -0
  82. package/build/client/_app/immutable/nodes/0.Cl1RKBMO.js +1 -0
  83. package/build/client/_app/immutable/nodes/1.D8GGUpeE.js +1 -0
  84. package/build/client/_app/immutable/nodes/2.LG4wpZ6R.js +174 -0
  85. package/build/client/_app/immutable/workers/settings-css-worker-DRH2OcAG.js +93 -0
  86. package/build/client/_app/immutable/workers/settings-html-worker-DQLddT9h.js +506 -0
  87. package/build/client/_app/immutable/workers/settings-json-worker-D_Dqrls5.js +62 -0
  88. package/build/client/_app/immutable/workers/settings-ts-worker-DkYoA6bF.js +67738 -0
  89. package/build/client/_app/version.json +1 -1
  90. package/build/env.js +2 -2
  91. package/build/handler.js +9 -9
  92. package/build/index.js +9 -9
  93. package/build/server/chunks/chunks/{app-config.svelte.js-Co9jacqT.js → app-config.svelte.js-BkhuJ9bF.js} +2 -2
  94. package/build/server/chunks/chunks/{config.js-BBYogCe7.js → config.js-D2vQdial.js} +9 -2
  95. package/build/server/chunks/chunks/{db.js-C4EPtpZT.js → db.js-Cya8uRCD.js} +2 -2
  96. package/build/server/chunks/chunks/{db2.js-BYr2lzQs.js → db2.js-CPqi0hcH.js} +2 -2
  97. package/build/server/chunks/chunks/{dsh-connection.js-D52KwDXm.js → dsh-connection.js-DlwhJZaV.js} +3 -3
  98. package/build/server/chunks/chunks/{exports.js-DMiPee3x.js → exports.js-DH_tjtdv.js} +4 -4
  99. package/build/server/chunks/chunks/git-probe.js-nfLEa58f.js +219 -0
  100. package/build/server/chunks/chunks/image-limits.js-CUdJ0f7r.js +41 -0
  101. package/build/server/chunks/chunks/{insight-config.js-BAitz0O1.js → insight-config.js-BwcV3Bct.js} +5 -159
  102. package/build/server/chunks/chunks/{internal.js-CLhwhxSl.js → internal.js-Cuz_sBks.js} +6 -5
  103. package/build/server/chunks/chunks/{internal2.js-D-DAuSVh.js → internal2.js-BcS47nI-.js} +2 -2
  104. package/build/server/chunks/chunks/{image-limits.js-BMPZ55kJ.js → permission-state.js-yvwUSnug.js} +8 -41
  105. package/build/server/chunks/chunks/runtime.js-BPLc5RLR.js +854 -0
  106. package/build/server/chunks/chunks/{server.js-DoCd0fEo.js → server.js-11-pxAWV.js} +73 -2
  107. package/build/server/chunks/chunks/settings-document.js-BIwLIxnE.js +162 -0
  108. package/build/server/chunks/chunks/{shared.js-C4-Py8s_.js → shared.js-HQ0rfhm4.js} +4 -4
  109. package/build/server/chunks/chunks/{state.js-Ct3UbrbR.js → state.js-CwHEPfXH.js} +42 -10
  110. package/build/server/chunks/chunks/{utils.js-tOWCe9Wk.js → utils.js-CAdNO8Tu.js} +6 -6
  111. package/build/server/chunks/chunks/{watcher.js-CZl6B1Gm.js → watcher.js-CmpeTgh-.js} +4 -4
  112. package/build/server/chunks/entries/endpoints/api/a2a/_id_/{_server.ts.js-BiJNs-w9.js → _server.ts.js-D5AWBpBQ.js} +7 -6
  113. package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-DpYiPNfK.js → _server.ts.js-BZvM0qV8.js} +9 -8
  114. package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-hsrqtyai.js → _server.ts.js-CwQ8v1Gr.js} +9 -8
  115. package/build/server/chunks/entries/endpoints/api/config/{_server.ts.js-C22-pOYW.js → _server.ts.js-DRFbC3XB.js} +6 -5
  116. package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-GB8GCnt9.js → _server.ts.js-1NUslX2J.js} +7 -6
  117. package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-1f1lp4p6.js → _server.ts.js-BaNBBHLR.js} +7 -6
  118. package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-bQ6fWiaE.js → _server.ts.js-CW2NY_YQ.js} +7 -6
  119. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-Dpn0vlL4.js → _server.ts.js-QA9zJsqt.js} +7 -6
  120. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-BCKU6r0e.js → _server.ts.js-CVXZhV9H.js} +7 -6
  121. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-B6CP7Ox-.js → _server.ts.js-Cit4Casr.js} +7 -6
  122. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-CuIGYst7.js → _server.ts.js-CyjB1woG.js} +7 -6
  123. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-BJk9GfEb.js → _server.ts.js-DllJ8vBI.js} +9 -7
  124. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-BRjJibko.js → _server.ts.js-BNnAmzy2.js} +7 -6
  125. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-Du0XmI7X.js → _server.ts.js-BM_jJMFG.js} +7 -6
  126. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-BmxbonR_.js → _server.ts.js-qKiwUxSN.js} +7 -6
  127. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-B03gh2aZ.js → _server.ts.js-CZ0zXTiV.js} +7 -6
  128. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-BO9Iy5Ki.js → _server.ts.js-3o3S3pHm.js} +7 -6
  129. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-qr2peU-n.js → _server.ts.js-DsCnz_8J.js} +7 -6
  130. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-D4PIEynR.js → _server.ts.js-6QBc29c0.js} +7 -6
  131. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-CcBAtZWB.js → _server.ts.js-Cur_rwoa.js} +7 -6
  132. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-CE1gTwwX.js → _server.ts.js-BBRIvxEV.js} +7 -6
  133. package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-GugaguYO.js → _server.ts.js-HXmuGYk_.js} +7 -6
  134. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-D7ZCMRXo.js → _server.ts.js-BtF78EDX.js} +7 -6
  135. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file-bytes/{_server.ts.js-BeLFfBNx.js → _server.ts.js-DaxAqI2r.js} +7 -6
  136. package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-CUMrE1yT.js → _server.ts.js-Cp3JRhml.js} +7 -6
  137. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-CPTg8pND.js → _server.ts.js-DCHNOxOw.js} +7 -6
  138. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-ikZ2NK35.js → _server.ts.js-CTCYuknC.js} +7 -6
  139. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-DO-sihfI.js → _server.ts.js-B1O7CmG7.js} +7 -6
  140. package/build/server/chunks/entries/endpoints/api/prompts/_id_/{_server.ts.js-CtWIL8u1.js → _server.ts.js-CMAYot0u.js} +7 -6
  141. package/build/server/chunks/entries/endpoints/api/prompts/{_server.ts.js-CCV5F65b.js → _server.ts.js-Bk-I6Cmq.js} +7 -6
  142. package/build/server/chunks/entries/endpoints/api/prompts/use/{_server.ts.js-5zjPgL0k.js → _server.ts.js-CWdigZaS.js} +7 -6
  143. package/build/server/chunks/entries/endpoints/api/settings/{_server.ts.js-DGy6xjPE.js → _server.ts.js-BgZ3eon4.js} +6 -5
  144. package/build/server/chunks/entries/endpoints/api/workspace/file-write/_server.ts.js-CMDHM8Ts.js +109 -0
  145. package/build/server/chunks/entries/endpoints/api/workspace/git-events/_server.ts.js-DsrelTvu.js +295 -0
  146. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/_server.ts.js-Bjo1hSe3.js +87 -0
  147. package/build/server/chunks/entries/endpoints/api/workspace/git-map/_server.ts.js-kbPAnTV6.js +75 -0
  148. package/build/server/chunks/entries/endpoints/api/workspace/git-status/_server.ts.js-CGSk5JWn.js +80 -0
  149. package/build/server/chunks/entries/hooks.server.js-B7FsvqtT.js +307 -0
  150. package/build/server/chunks/entries/pages/_error.svelte.js-BcGj5uWu.js +183 -0
  151. package/build/server/chunks/entries/pages/{_page.server.ts.js-BGXwU4Ay.js → _page.server.ts.js-CNU4x-f1.js} +5 -4
  152. package/build/server/chunks/entries/pages/{_page.svelte.js-BxAPMhC5.js → _page.svelte.js-vy-eThLC.js} +5297 -392
  153. package/build/server/chunks/{handler-D4tuQz0Q.js → handler-uNq08tmU.js} +8 -8
  154. package/build/server/chunks/{index.js-Bj9XVTa8.js → index.js-vyc3xio1.js} +35 -35
  155. package/build/server/chunks/{manifest.js-zxk8d3d8.js → manifest.js-Cx3f-cHu.js} +72 -44
  156. package/build/server/chunks/nodes/{0.js-DCyDo8-C.js → 0.js-BRdcKR1I.js} +3 -3
  157. package/build/server/chunks/nodes/1.js-Dp8B4lMj.js +9 -0
  158. package/build/server/chunks/nodes/2.js-D_OTrlKi.js +26 -0
  159. package/package.json +6 -3
  160. package/build/client/_app/immutable/assets/0.DqFt8jIM.css +0 -2
  161. package/build/client/_app/immutable/assets/2.dKbN8ToR.css +0 -1
  162. package/build/client/_app/immutable/chunks/BoyJtMif.js +0 -1
  163. package/build/client/_app/immutable/chunks/Bp4uuUjI.js +0 -3
  164. package/build/client/_app/immutable/chunks/CDt9a7EA.js +0 -2
  165. package/build/client/_app/immutable/chunks/CV7-m-Xm.js +0 -1
  166. package/build/client/_app/immutable/chunks/CsHVnZCH.js +0 -1
  167. package/build/client/_app/immutable/chunks/D1qzYj9m.js +0 -1
  168. package/build/client/_app/immutable/chunks/DXeGLmed.js +0 -8
  169. package/build/client/_app/immutable/chunks/ESmLJICu.js +0 -1
  170. package/build/client/_app/immutable/chunks/PaZBB01u.js +0 -1
  171. package/build/client/_app/immutable/chunks/UmdltqoE.js +0 -1
  172. package/build/client/_app/immutable/chunks/i0VQdJtv.js +0 -1
  173. package/build/client/_app/immutable/entry/app.CQ41dis3.js +0 -2
  174. package/build/client/_app/immutable/entry/start.DjPg9fbN.js +0 -1
  175. package/build/client/_app/immutable/nodes/0.B_ZEZy7b.js +0 -1
  176. package/build/client/_app/immutable/nodes/1.-77Wm-KY.js +0 -1
  177. package/build/client/_app/immutable/nodes/2.B4TGPB8b.js +0 -69
  178. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/save/_server.ts.js-CO9iOVa4.js +0 -110
  179. package/build/server/chunks/entries/pages/_error.svelte.js-B6WyZdis.js +0 -41
  180. package/build/server/chunks/nodes/1.js-DK1imDS5.js +0 -9
  181. package/build/server/chunks/nodes/2.js-YT-YLp-v.js +0 -24
package/README.md CHANGED
@@ -1,44 +1,43 @@
1
1
  # DeepSeek Insight
2
2
 
3
- DeepSeek Insight (DSI) is the insight layer and conversation surface for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`). The harness already keeps meticulous records about its own behavior and decisions — dated engineering notes, published docs, and an append-only session log. DSI reads those records and turns them into answers, timelines, and metrics a newcomer (human or agent) can act on. And because reading is only half of developer experience, it also gives you a place to **talk back**: a conversation page that speaks the harness's own wire protocol.
3
+ DeepSeek Insight (DSI) is the insight layer and conversation surface for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`). And because reading is only half of developer experience, it also gives you a place to **talk back**: a conversation page that speaks the harness's own wire protocol.
4
4
 
5
- > Insight does not re-parse 210k lines of source to answer "why". It reads the notebook, the manuals, and the ledger the harness already writes — and when you want to *use* the harness, it hands you the same chat box you know, wired to the Host's native RPC and live event stream.
5
+ ## Run
6
6
 
7
- ## Status
7
+ The whole DX loop lives in the home page: pick a preset + workspace, press **+ New chat** and watch your agent work.
8
+ > tool chips pass/fail with durations and receipts, reasoning folds open, older turns load as you scroll up, and when a turn needs permission the approval card answers it with one click.
8
9
 
9
- DSI is a fast-iterating POC. Its host-facing code tracks the DeepSeek Harness wire — currently **0.1.3-alpha.1** (ledger v2, the follow's `assistantStream` channel); when the host jumps editions, [the release KBs](dev/kb/releases/) record what moved and what DSI owed.
10
+ ### What you'll see
10
11
 
11
- ## What it does
12
+ Everything on the page is **real harness activity**, not a mock — every chip, diff, and reply is read straight from the running harness.
12
13
 
13
- One line per capability; the linked decision record carries the full story and evidence.
14
+ - **Conversation, with receipts.** Each tool the agent runs shows as a chip that passes or fails, with its duration and its receipt; open it to see exactly what ran. Reasoning folds away until you want it, and long sessions load older turns as you scroll up.
15
+ - **One-click approvals.** When the agent asks permission — run this command, edit that file — an approval card appears in the flow; answer it right there, no tab-switching.
16
+ - **The workspace explorer, with git diff.** A side panel shows the files your agent is touching. Changed files are flagged and pulsing while the agent works; click one and you get a **real git diff** — additions in green, removals in red — rendered from the file's live buffer, so it updates as the agent edits and refreshes if you (or anything else) change the file underneath.
17
+ - **Presets and workspaces.** Start each chat with the right agent for the job — a coder, a researcher, a generalist — pointed at the right folder.
18
+ - **Many conversations, one page.** Conversations live in panels you can open side by side; compare two runs, or keep a scratch chat next to the main one.
19
+ - **Your language.** The interface speaks English, Chinese, and Indonesian.
14
20
 
15
- - **Conversation page** — session list, streaming replies, ledger-first cold loads, mux-drop resync, over the DSH Host's native RPC. [ADR-0002](dev/architectural-decission/2026-08-21%20-%20The%20Conversation%20Page%20%E2%80%94%20Talk%20to%20the%20Harness%2C%20the%20Way%20the%20Harness%20Talks.md)
16
- - **Honest inspector** — tool calls as lifecycle chips with wire-time durations and expandable args/results, collapsed reasoning, sanitized markdown, context-injection chips that ride inside the turn they feed. [ADR-0003](dev/architectural-decission/2026-08-21%20-%20The%20Honest%20Inspector%20%E2%80%94%20From%20Talking%20Back%20to%20Seeing%20What%20the%20Agent%20Did.md), [the context chips](dev/kb/chat-workspace/2026-08-31%20-%20The%20Context%20Injection%20Chips%20%E2%80%94%20Five%20Producers%2C%20One%20Open%20Family%2C%20Zero%20Noise.md), [the turn kept whole](dev/architectural-decission/2026-09-03%20-%20The%20Turn%20Kept%20Whole%20%E2%80%94%20A%20Mid-Turn%20Notice%20Rides%20Inside%20the%20Turn%20It%20Fed.md)
17
- - **Answerer** — approval and question frames render as answerer cards over the host's client-response carrier; lost races settle honestly ("answered elsewhere"). [ADR-0004](dev/architectural-decission/2026-08-21%20-%20The%20Answerer%20%E2%80%94%20When%20the%20Harness%20Asks%2C%20the%20Page%20Answers.md), [the plan review card](dev/architectural-decission/2026-08-31%20-%20The%20Plan%20Review%20Card%20%E2%80%94%20The%20Question%20Card%20Reads%20the%20Wire%27s%20Intent.md), [the question-to-user card](dev/kb/chat-workspace/2026-08-31%20-%20The%20Question-to-User%20Card%20%E2%80%94%20One%20Ask%2C%20Five%20Phases%2C%20Zero%20Silent%20Deaths.md)
18
- - **Panel floor** — N conversation panels on one page; widths, zoom, and selection persist; paste-to-add and paste-to-replace; new panels join beside the focus. [ADR-0006](dev/architectural-decission/2026-08-24%20-%20The%20Panel%20Floor%20%E2%80%94%20Many%20Conversations%2C%20One%20Page.md), [the focused slot](dev/architectural-decission/2026-08-31%20-%20The%20Focused%20Slot%20%E2%80%94%20New%20Panels%20Join%20Beside%20the%20Focus%2C%20Not%20the%20Front.md), [the Rplc button](dev/architectural-decission/2026-09-01%20-%20The%20Rplc%20Button%20%E2%80%94%20Paste%20Replaces%20the%20Active%20Panel.md)
19
- - **App sidebar** — workspace-aware session list with filter pills, collapse/resize, a dual-purpose `+ New chat` (Add | Replace), and placement as config. [ADR-0005](dev/architectural-decission/2026-08-23%20-%20The%20Workspace%20Question%20%E2%80%94%20Attributes%2C%20Not%20Trees.md), [the movable rail](dev/architectural-decission/2026-08-26%20-%20The%20Movable%20Rail%20%E2%80%94%20Sidebar%20Placement%20as%20Config.md), [the sessions spine group](dev/architectural-decission/2026-09-01%20-%20The%20Sessions%20Spine%20Group%20%E2%80%94%20A%20Collapsible%20Spine%20With%20Its%20Own%20Filters.md), [the aligned spine](dev/architectural-decission/2026-09-01%20-%20The%20Aligned%20Spine%20%E2%80%94%20The%20Depth%20Cue%20Lives%20in%20the%20Workspace%20Slot.md)
20
- - **Access chip** — Read Only / Workspace Write / Full access, read from the harness's knob events and switched through the native command wire, risk-gated. [ADR-0007](dev/architectural-decission/2026-08-25%20-%20The%20Access%20Chip%20%E2%80%94%20Read%20the%20Knobs%2C%20Write%20the%20Command.md)
21
- - **Slash commands** — `/permission`, `/new`, … intercepted with OCI parser semantics and executed host-side, never reaching the model. [the slash menu](dev/architectural-decission/2026-08-30%20-%20The%20Slash%20Menu%20%E2%80%94%20The%20Composer%20Reads%20the%20Host%27s%20Own%20Directory.md), [three sources, one ladder](dev/kb/prompts/2026-08-30%20-%20The%20Slash%20Menu%20%E2%80%94%20Three%20Sources%2C%20One%20Ladder%2C%20and%20the%20Help%20Card.md)
22
- - **a2a delegation** — `@session-<id>` mention with a correlation signature; a durable ledger settles each exchange at an honest tier (`replied_exact` … `gone`), burning zero LLM tokens. [the a2a signature](dev/architectural-decission/2026-08-26%20-%20The%20a2a%20Signature%20%E2%80%94%20Correlation%20IDs%20and%20the%20Delegation%20Ledger.md), [talking to another agent](dev/kb/live-conversation/2026-08-26%20-%20Talking%20to%20Another%20Agent%20%E2%80%94%20session.prompt%20Delegation%20and%20the%20%40session%20Mention.md), [the mention watcher](dev/architectural-decission/2026-08-26%20-%20The%20Mention%20Watcher%20%E2%80%94%20Watermark%20Notifications%20for%20%40session%20Mentions.md)
23
- - **Prompt library & macro** — `?` find-and-insert ranked by use; `!` runs a saved row section by section through the command executor. [the suggest strip](dev/architectural-decission/2026-08-28%20-%20The%20Suggest%20Strip%20%E2%80%94%20Bringing%20OCI%27s%20Prompt%20Library%20to%20the%20DSI%20Composer.md), [the prompt macro](dev/architectural-decission/2026-08-29%20-%20The%20Prompt%20Macro%20%E2%80%94%20Bang%20Runs%20the%20Shelf%2C%20Line%20by%20Line.md), [the sectioned row](dev/architectural-decission/2026-08-29%20-%20The%20Sectioned%20Row%20%E2%80%94%20The%20Macro%20Reads%20Blocks%2C%20Not%20Lines.md)
24
- - **Prompt sync** — a checkmark on each panel composer joins the broadcast: one sidebar-footer box mirrors its draft into every checked panel, submits through each panel's own ladder, and cancel restores every pre-broadcast draft. [the prompt sync](dev/architectural-decission/2026-09-04%20-%20The%20Prompt%20Sync%20%E2%80%94%20One%20Sidebar%20Box%20Speaks%20to%20Every%20Checked%20Panel.md)
25
- - **Fork & lineage** — one click branches a conversation at its last completed turn — or at any turn, from the turn itself; sub-agents file under their spawner. [the fork button](dev/architectural-decission/2026-09-01%20-%20The%20Fork%20Button%20%E2%80%94%20One%20Loaded%20Context%2C%20Many%20Tasks.md), [fork lineage is family](dev/architectural-decission/2026-09-01%20-%20Fork%20Lineage%20Is%20Family%20%E2%80%94%20The%20Edge%20Owns%20the%20Layout.md), [the lineage pin](dev/architectural-decission/2026-08-27%20-%20The%20Lineage%20Pin%20%E2%80%94%20Sub-Agents%20Below%20Their%20Spawner%2C%20Swap-Proof.md), [the fork-here button](dev/architectural-decission/2026-09-02%20-%20The%20Fork-Here%20Button%20%E2%80%94%20Any%20Completed%20Turn%20Becomes%20a%20Starting%20Line.md)
26
- - **Transcript fidelity** — the system prompt as a chip, workflow runs as one card, todos as progress, run_code as a plan, composer attachments, draft persistence. [the silent header](dev/architectural-decission/2026-09-01%20-%20The%20Silent%20Header%20%E2%80%94%20Why%20DSI%20Never%20Showed%20the%20System%20Prompt.md), [the orchestration card](dev/architectural-decission/2026-08-31%20-%20The%20Orchestration%20Card%20%E2%80%94%20Workflow%20Runs%20Fold%20into%20One%20Entry%2C%20Not%20Four%20Chips.md), [the todo card](dev/architectural-decission/2026-08-26%20-%20The%20Todo%20Card%20%E2%80%94%20Reading%20todo_write%20as%20Progress%2C%20Not%20a%20Snapshot%20Dump.md), [the code chip](dev/architectural-decission/2026-08-26%20-%20The%20Code%20Chip%20%E2%80%94%20Reading%20run_code%20as%20a%20Plan%2C%20Not%20a%20Wall%20of%20JSON.md), [the attachment draft](dev/architectural-decission/2026-08-26%20-%20The%20Attachment%20Draft%20%E2%80%94%20OCI%27s%20Hands%20on%20a%20DSH%20Spine.md)
27
- - **Reading side** — decision timelines reconstruct any topic's proposed → implemented/rejected → archived trail; architecture notes cited by path; health metrics via `scripts/metrics.sh`; ground truth (planned) — session-log replay. [ADR-0001](dev/architectural-decission/2026-08-20%20-%20Read%20the%20Harness%27s%20Own%20Memory%2C%20Not%20Its%20Whole%20Source.md)
21
+ ### Run from npm
28
22
 
29
- ## Run
23
+ Install [Node.js](https://nodejs.org) (>= 22.19), open a terminal, and run the **recommended one-liner**:
30
24
 
31
- The whole DX loop lives in the page: open it, press **+ New chat**, pick a preset, and watch your agent work — tool chips pass/fail with durations and receipts, reasoning folds open, older turns load as you scroll up, and when a turn needs permission the approval card answers it with one click.
25
+ ```sh
26
+ npx @deepseek-insight/dsi@latest dsh --sync --zai
27
+ ```
32
28
 
33
- ### Run from npm
29
+ What that single command does, in plain words:
34
30
 
35
- Install `Node.js`, then run:
31
+ - `npx @deepseek-insight/dsi@latest` — fetches the newest published DSI and runs it, **no install step**; nothing is added to your project, and `@latest` is what keeps it the latest.
32
+ - `dsh` — talk to the harness side: this subcommand starts the **DSH host** (`dsh web`) and the **DSI page** together, as one pair.
33
+ - `--sync` — copies the harness one-time launch token into DSI config (`~/.dsi/settings.yaml`) so the page can speak to the host, then serves both in the foreground — **one window, one Ctrl-C stops both**.
34
+ - `--zai` — **optional.** It bootstraps the GLM (Z.AI) provider into the harness settings (`~/.dsh/settings.yaml`). **If you do not have a GLM account, simply leave it off** — DSI will use whatever provider your harness is already configured with:
36
35
 
37
36
  ```sh
38
- npx @deepseek-insight/dsi web
37
+ npx @deepseek-insight/dsi@latest dsh --sync
39
38
  ```
40
39
 
41
- The package-spec form needs the package published to a registry; until then the same launcher runs from a packed global install — `pnpm pack`, then `npm install -g ./deepseek-insight-dsi-<version>.tgz`, then `dsi web` (or `npx dsi web`). DSI is a guest of a running harness: `dsh web` must be up on `http://127.0.0.1:3080`, with its one-time token in `~/.dsi/settings.yaml` (`dsh.authToken`). See [DSI on pnpm — Build, dsi web, and npx](dev/kb/setup/2026-09-01%20-%20DSI%20on%20pnpm%20%E2%80%94%20Build%2C%20dsi%20web%2C%20and%20npx.md) for the full run story.
40
+ When it is up, your browser opens the page by itself (default `http://127.0.0.1:5174`). Run it again later and DSI even cleans up after a lost previous run: `dsi dsh --sync-kills`.
42
41
 
43
42
  ### Run from source
44
43
 
@@ -47,12 +46,10 @@ git clone git@gitlab.com:wharsojo.dev/deepseek-insight.git
47
46
  cd deepseek-insight
48
47
  pnpm install
49
48
  pnpm run build
50
- pnpm dsi web
49
+ pnpm dsi dsh --sync
51
50
  ```
52
51
 
53
- `pnpm run build` prepares the web assets. `pnpm dsi web` serves those built assets without rebuilding. For development with hot reload: `pnpm dev` (also `http://localhost:5174`).
54
-
55
- ## Testing
52
+ Hacking on DSI itself? `pnpm dsi dsh --sync --dev` serves the Vite dev server (hot reload) instead of the build, and the usual gates apply:
56
53
 
57
54
  ```sh
58
55
  pnpm check # svelte-check, 0 errors
@@ -61,37 +58,7 @@ npx playwright test # e2e on a stubbed DSH wire — no harness need
61
58
  DSH_LIVE=1 pnpm run test:live # only with `dsh web` running on :3080
62
59
  ```
63
60
 
64
- ## Documentation
65
-
66
- - [ADR-0001 — Read the Harness's Own Memory, Not Its Whole Source](dev/architectural-decission/2026-08-20%20-%20Read%20the%20Harness%27s%20Own%20Memory%2C%20Not%20Its%20Whole%20Source.md)
67
- - [ADR-0002 — The Conversation Page: Talk to the Harness, the Way the Harness Talks](dev/architectural-decission/2026-08-21%20-%20The%20Conversation%20Page%20%E2%80%94%20Talk%20to%20the%20Harness%2C%20the%20Way%20the%20Harness%20Talks.md)
68
- - [ADR-0003 — The Honest Inspector: From Talking Back to Seeing What the Agent Did](dev/architectural-decission/2026-08-21%20-%20The%20Honest%20Inspector%20%E2%80%94%20From%20Talking%20Back%20to%20Seeing%20What%20the%20Agent%20Did.md)
69
- - [ADR-0004 — The Answerer: When the Harness Asks, the Page Answers](dev/architectural-decission/2026-08-21%20-%20The%20Answerer%20%E2%80%94%20When%20the%20Harness%20Asks%2C%20the%20Page%20Answers.md)
70
- - [ADR-0005 — The Workspace Question: Attributes, Not Trees](dev/architectural-decission/2026-08-23%20-%20The%20Workspace%20Question%20%E2%80%94%20Attributes%2C%20Not%20Trees.md)
71
- - [ADR-0006 — The Panel Floor: Many Conversations, One Page](dev/architectural-decission/2026-08-24%20-%20The%20Panel%20Floor%20%E2%80%94%20Many%20Conversations%2C%20One%20Page.md)
72
- - [ADR-0007 — The Access Chip: Read the Knobs, Write the Command](dev/architectural-decission/2026-08-25%20-%20The%20Access%20Chip%20%E2%80%94%20Read%20the%20Knobs%2C%20Write%20the%20Command.md)
73
- - Wire guides: [DSH 0.1.2 Wire — Auth, Slash RPC, and the remote.mux Carrier](dev/gateways/dsh-gateway-0.1.2-wire.md) (hosts ≥ 0.1.2 — the wire DSI speaks today) · [DSH Gateway & Live Event Streaming](dev/gateways/dsh-gateway-live-streaming.md) (0.1.0–0.1.1, the background read)
74
- - Onboarding: [Setup DSH with the Z.AI provider](dev/onboard/setup-deepseek-harness-zai.md) · [Create 3 agent presets (app-dev, research, main)](dev/onboard/create-3-agents-presets.md)
75
- - KB notes: [dev/kb/](dev/kb) — setup, live conversation, chat workspace, prompts, releases
76
-
77
- ## Project layout
78
-
79
- ```
80
- deepseek-insight/
81
- ├── docs/
82
- │ ├── architectural-decission/ # ADRs — the decisions and their evidence
83
- │ ├── gateways/ # wire-protocol inspector guides (verified live)
84
- │ ├── kb/ # KB notes (setup, live conversation, chat workspace, prompts, releases)
85
- │ ├── onboard/ # hands-on setup guides, written from real installs
86
- │ └── specs/ # feature specs (PRD, Tasks, Karpathy context)
87
- ├── scripts/ # reproducible metrics & wire spikes
88
- ├── src/ # SvelteKit app — the conversation page (ADR-0002)
89
- │ ├── lib/server/ # dsh-rpc + dsh-connection (the only host-facing code)
90
- │ ├── lib/services/conversation/ # event mapping + client store + poll orchestrator
91
- │ ├── lib/components/ # chat + message components (presentational)
92
- │ └── routes/ # pages + /api/dsh/* HTTP surface
93
- └── tests/ # unit (vitest), live (DSH_LIVE-gated), e2e (Playwright)
94
- ```
61
+ The deeper story — architecture decisions (ADRs), wire-protocol guides, and KB notes — lives in [`dev/`](dev).
95
62
 
96
63
  ## License
97
64
 
package/bin/dsi.mjs CHANGED
@@ -14,6 +14,7 @@
14
14
  // `dsi dsh --sync-kills` sweeps orphans a lost previous run left behind.
15
15
 
16
16
  import { spawn, spawnSync } from 'node:child_process';
17
+ import net from 'node:net';
17
18
  import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
18
19
  import { homedir } from 'node:os';
19
20
  import path from 'node:path';
@@ -21,16 +22,58 @@ import { fileURLToPath } from 'node:url';
21
22
 
22
23
  import { parse, stringify } from 'yaml';
23
24
 
25
+ // Layman-facing help: wrapped near 76 columns, continuation lines indented,
26
+ // the recommended one-liner first. --zai is optional on purpose — no GLM
27
+ // account, no problem, the flag can simply be dropped.
24
28
  const USAGE = [
25
- 'usage: dsi web (PORT env default 5174, HOST env default 127.0.0.1)',
26
- ' dsi zai add the ZAI provider + default model to ~/.dsh/settings.yaml',
27
- ' dsi dsh --token <token> store the dsh launch token as dsh.authToken in ~/.dsi/settings.yaml',
28
- ' dsi dsh --sync [--zai] [--dev] run dsh-web-synced.sh (dsh web + token sync) AND serve dsi; --zai bootstraps the ZAI provider first, --dev serves the Vite dev server instead of the build (needs a full checkout: pnpm install)',
29
-
30
- ' dsi dsh --sync-kills kill orphaned dsh/dsi processes from an earlier run'
29
+ 'usage: dsi <command>',
30
+ '',
31
+ ' Recommended first run (fetches and serves the latest DSI):',
32
+ '',
33
+ ' npx @deepseek-insight/dsi@latest dsh --sync --zai',
34
+ '',
35
+ ' One command, one window: it starts the DSH host AND the DSI page',
36
+ ' together in the foreground — one Ctrl-C stops both. What the flags',
37
+ ' mean:',
38
+ '',
39
+ ' --sync sync the one-time launch token into ~/.dsi/settings.yaml,',
40
+ ' then serve host + page as one pair',
41
+ ' --zai bootstrap the GLM (Z.AI) provider into ~/.dsh/settings.yaml',
42
+ ' before the host boots. No GLM account? Skip it — drop this',
43
+ ' flag and keep whatever provider you already configured:',
44
+ '',
45
+ ' npx @deepseek-insight/dsi@latest dsh --sync',
46
+ '',
47
+ ' Ports: `dsi dsh --sync` serves the DSI page on 5174 and opens your',
48
+ ' browser there. With --dev the Vite dev server takes 5175 instead',
49
+ ' and the browser follows. Override with PORT=<n>.',
50
+ '',
51
+ ' All commands:',
52
+ '',
53
+ ' dsi web',
54
+ ' serve the built DSI page alone (PORT env default 5174,',
55
+ ' HOST env default 127.0.0.1)',
56
+ ' dsi zai',
57
+ ' add the ZAI provider + default model to',
58
+ ' ~/.dsh/settings.yaml',
59
+ ' dsi dsh --token <token>',
60
+ ' store the dsh launch token as dsh.authToken in',
61
+ ' ~/.dsi/settings.yaml',
62
+ ' dsi dsh --sync [--zai] [--dev]',
63
+ ' run dsh-web-synced.sh (dsh web + token sync) AND serve',
64
+ ' dsi — see the recommended command above. --zai',
65
+ ' bootstraps the ZAI provider first; --dev serves the',
66
+ ' Vite dev server instead of the build (needs a full',
67
+ ' checkout: pnpm install)',
68
+ ' dsi dsh --sync-kills',
69
+ ' kill orphaned dsh/dsi processes left by an earlier run'
31
70
  ].join('\n');
32
71
 
33
72
  const command = process.argv[2];
73
+ if (command === '--help' || command === '-h' || command === 'help') {
74
+ console.log(USAGE);
75
+ process.exit(0);
76
+ }
34
77
  if (command !== 'web' && command !== 'zai' && command !== 'dsh') {
35
78
  console.error(command === undefined ? 'dsi: missing command' : `dsi: unknown command "${command}"`);
36
79
  console.error(USAGE);
@@ -185,22 +228,79 @@ function dshWebVersion() {
185
228
  return typeof version === 'string' && version !== '' ? version : 'latest';
186
229
  }
187
230
 
231
+ /** True when something is already listening on 127.0.0.1:port. Probed with
232
+ * Node's own net stack — no lsof/ss/netstat needed, so it behaves the same
233
+ * on macOS and Linux. Returns false on any other probe error (the host's
234
+ * own boot error is the honest reporter in that case). */
235
+ function portInUse(port) {
236
+ return new Promise((resolve) => {
237
+ const probe = net.createServer();
238
+ probe.once('error', (error) => resolve(error.code === 'EADDRINUSE'));
239
+ probe.once('listening', () => probe.close(() => resolve(false)));
240
+ probe.listen(port, '127.0.0.1');
241
+ });
242
+ }
243
+
244
+ /** The dsh host hard-fails on a busy 3080 with a long Cordis stack; catch
245
+ * it before the pair spawns. First sweep the known orphan shapes
246
+ * (pkill -f — same BSD/procps flag set on macOS and Linux), wait for the
247
+ * socket to actually free, then give up with a one-line hint if something
248
+ * foreign still holds the port. */
249
+ async function preflightHostPort(hostPort = 3080) {
250
+ if (!(await portInUse(hostPort))) return;
251
+ console.log(`dsi dsh: port ${hostPort} is busy — sweeping orphaned dsh/dsi processes`);
252
+ killOrphans();
253
+ for (let waited = 0; waited < 5000; waited += 250) {
254
+ if (!(await portInUse(hostPort))) {
255
+ console.log(`dsi dsh: port ${hostPort} is free — continuing`);
256
+ return;
257
+ }
258
+ await new Promise((resolve) => setTimeout(resolve, 250));
259
+ }
260
+ console.error(`dsi dsh: port ${hostPort} is still in use by a process the sweep does not own — free it yourself, then re-run`);
261
+ process.exit(64);
262
+ }
263
+
264
+ /** Open the default browser at url once the pair has had a moment to boot.
265
+ * Best-effort only: a missing or failing opener never disturbs the pair —
266
+ * the URL is already on screen in the logs. Detached + unref: the opener
267
+ * is fire-and-forget and must not hold this process alive. */
268
+ function openBrowser(url, delayMs = 2000) {
269
+ setTimeout(() => {
270
+ const opener = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open';
271
+ try {
272
+ spawn(opener, [url], { stdio: 'ignore', detached: true }).on('error', () => {}).unref();
273
+ } catch {
274
+ // no opener on this host — the printed URL is the fallback
275
+ }
276
+ }, delayMs);
277
+ }
278
+
188
279
  /** Run the PAIR in the foreground: scripts/dsh-web-synced.sh (dsh web plus
189
280
  * the live token watcher) as the host, then the dsi build — or, with dev,
190
281
  * the Vite dev server (`pnpm dev`'s surface) — as the UI. The pair shares
191
282
  * one lifecycle — a signal or one child's exit tears down the other, so no
192
283
  * orphan survives a Ctrl-C or a crash. */
193
- function runSyncedPair(extraArgs, dev = false) {
284
+ async function runSyncedPair(extraArgs, dev = false) {
194
285
  const script = path.join(packageRoot, 'scripts', 'dsh-web-synced.sh');
195
286
  if (!existsSync(script)) {
196
287
  console.error(`dsi dsh: no sync script at ${script}`);
197
288
  process.exit(66);
198
289
  }
290
+ await preflightHostPort();
199
291
  const host = spawn('/bin/sh', [script, ...extraArgs], {
200
292
  stdio: 'inherit',
201
293
  env: { ...process.env, DSH_WEB_VERSION: dshWebVersion() }
202
294
  });
203
- const ui = dev ? startDsiDevServer('5175') : startDsiServer('5175');
295
+ // UI port: the built server takes 5174 — the same port `dsi web` uses,
296
+ // so plain `dsi dsh --sync` listens on ONE port. --dev's Vite dev server
297
+ // takes 5175 instead (vite.config.ts pins 5174 strictPort, so pair mode
298
+ // passes 5175 explicitly), giving the two-port dev shape.
299
+ const uiPort = process.env.PORT ?? (dev ? '5175' : '5174');
300
+ const ui = dev ? startDsiDevServer(uiPort) : startDsiServer(uiPort);
301
+ // The browser follows the UI: the built page (5174) — or, in --dev mode,
302
+ // the dev server (5175).
303
+ openBrowser(`http://localhost:${uiPort}/`);
204
304
  for (const signal of ['SIGINT', 'SIGTERM']) {
205
305
  process.on(signal, () => {
206
306
  host.kill(signal);
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-neutral-400:oklch(70.8% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-surface:#f8f9fa;--color-surface-alt:#f1f3f5;--color-surface-hover:#e9ecef;--color-surface-border:#dee2e6;--color-surface-elevated:#fff;--color-text-primary:#212529;--color-text-secondary:#6c757d;--color-text-muted:#adb5bd;--color-accent-blue:#3b82f6;--color-accent-purple:#8b5cf6;--color-accent-purple-soft:#9f88fb;--color-accent-purple-ink:#2e1065;--color-accent-rose:#f43f5e;--color-accent-cyan:#06b6d4;--color-status-fail:#ef4444}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--si-run:#b91c1c}svg{color:var(--color-accent-purple)}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.\!collapse{visibility:collapse!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-5{top:calc(var(--spacing) * 5)}.top-8{top:calc(var(--spacing) * 8)}.top-full{top:100%}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-5{right:calc(var(--spacing) * 5)}.right-full{right:100%}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1\/2{bottom:50%}.bottom-\[50vh\]{bottom:50vh}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.z-1000,.z-\[1000\]{z-index:1000}.z-auto{z-index:auto}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-px{margin-top:1px}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.ml-1{margin-left:var(--spacing)}.ml-\[-2px\]{margin-left:-2px}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-16{height:calc(var(--spacing) * 16)}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[50px\]{height:50px}.h-\[62px\]{height:62px}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[28rem\]{max-height:28rem}.max-h-\[30rem\]{max-height:30rem}.max-h-\[60vh\]{max-height:60vh}.max-h-\[calc\(100vh-80px\)\]{max-height:calc(100vh - 80px)}.min-h-0{min-height:0}.min-h-\[2\.75rem\]{min-height:2.75rem}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-15{width:calc(var(--spacing) * 15)}.w-24{width:calc(var(--spacing) * 24)}.w-36{width:calc(var(--spacing) * 36)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[62px\]{width:62px}.w-\[200px\]{width:200px}.w-full{width:100%}.w-max{width:max-content}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[16rem\]{max-width:16rem}.max-w-\[80\%\]{max-width:80%}.max-w-\[80vw\]{max-width:80vw}.max-w-\[85\%\]{max-width:85%}.max-w-\[min\(100\%\,1600px\)\]{max-width:min(100%,1600px)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-72{min-width:calc(var(--spacing) * 72)}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.resize{resize:both}.resize-none{resize:none}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-0\.5{column-gap:calc(var(--spacing) * .5)}.gap-x-1{column-gap:var(--spacing)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[16px\]{border-radius:16px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-br-sm{border-bottom-right-radius:var(--radius-sm)}.rounded-bl-sm{border-bottom-left-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-\[\#7c3aed\]\/30{border-color:oklab(54.1337% .0963843 -.226968/.3)}.border-\[var\(--color-surface-border\)\]{border-color:var(--color-surface-border)}.border-accent-blue\/20{border-color:#3b82f633}@supports (color:color-mix(in lab, red, red)){.border-accent-blue\/20{border-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.border-accent-blue\/30{border-color:#3b82f64d}@supports (color:color-mix(in lab, red, red)){.border-accent-blue\/30{border-color:color-mix(in oklab, var(--color-accent-blue) 30%, transparent)}}.border-accent-purple\/30{border-color:#8b5cf64d}@supports (color:color-mix(in lab, red, red)){.border-accent-purple\/30{border-color:color-mix(in oklab, var(--color-accent-purple) 30%, transparent)}}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-600{border-color:var(--color-emerald-600)}.border-green-300{border-color:var(--color-green-300)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-500\/20{border-color:#62748e33}@supports (color:color-mix(in lab, red, red)){.border-slate-500\/20{border-color:color-mix(in oklab, var(--color-slate-500) 20%, transparent)}}.border-surface-border{border-color:var(--color-surface-border)}.border-surface-border\/30{border-color:#dee2e64d}@supports (color:color-mix(in lab, red, red)){.border-surface-border\/30{border-color:color-mix(in oklab, var(--color-surface-border) 30%, transparent)}}.border-surface-border\/50{border-color:#dee2e680}@supports (color:color-mix(in lab, red, red)){.border-surface-border\/50{border-color:color-mix(in oklab, var(--color-surface-border) 50%, transparent)}}.bg-\[\#7c3aed\]\/10{background-color:oklab(54.1337% .0963843 -.226968/.1)}.bg-\[\#DDD3B0\]{background-color:#ddd3b0}.bg-\[\#E9E3C9\]{background-color:#e9e3c9}.bg-\[\#F5F5DC\]{background-color:beige}.bg-\[\#FDF5E6\]{background-color:#fdf5e6}.bg-\[var\(--color-surface-elevated\)\]{background-color:var(--color-surface-elevated)}.bg-accent-blue\/10{background-color:#3b82f61a}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/10{background-color:color-mix(in oklab, var(--color-accent-blue) 10%, transparent)}}.bg-accent-blue\/15{background-color:#3b82f626}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/15{background-color:color-mix(in oklab, var(--color-accent-blue) 15%, transparent)}}.bg-accent-blue\/20{background-color:#3b82f633}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/20{background-color:color-mix(in oklab, var(--color-accent-blue) 20%, transparent)}}.bg-accent-blue\/30{background-color:#3b82f64d}@supports (color:color-mix(in lab, red, red)){.bg-accent-blue\/30{background-color:color-mix(in oklab, var(--color-accent-blue) 30%, transparent)}}.bg-accent-cyan\/10{background-color:#06b6d41a}@supports (color:color-mix(in lab, red, red)){.bg-accent-cyan\/10{background-color:color-mix(in oklab, var(--color-accent-cyan) 10%, transparent)}}.bg-accent-purple-ink{background-color:var(--color-accent-purple-ink)}.bg-accent-purple-soft{background-color:var(--color-accent-purple-soft)}.bg-accent-purple\/20{background-color:#8b5cf633}@supports (color:color-mix(in lab, red, red)){.bg-accent-purple\/20{background-color:color-mix(in oklab, var(--color-accent-purple) 20%, transparent)}}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-green-50{background-color:var(--color-green-50)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-500\/5{background-color:#62748e0d}@supports (color:color-mix(in lab, red, red)){.bg-slate-500\/5{background-color:color-mix(in oklab, var(--color-slate-500) 5%, transparent)}}.bg-slate-500\/10{background-color:#62748e1a}@supports (color:color-mix(in lab, red, red)){.bg-slate-500\/10{background-color:color-mix(in oklab, var(--color-slate-500) 10%, transparent)}}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-800\/90{background-color:#1d293de6}@supports (color:color-mix(in lab, red, red)){.bg-slate-800\/90{background-color:color-mix(in oklab, var(--color-slate-800) 90%, transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/40{background-color:#0f172b66}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/40{background-color:color-mix(in oklab, var(--color-slate-900) 40%, transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-surface-alt{background-color:var(--color-surface-alt)}.bg-surface-border{background-color:var(--color-surface-border)}.bg-surface-elevated{background-color:var(--color-surface-elevated)}.bg-surface\/60{background-color:#f8f9fa99}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-\[linear-gradient\(90deg\,\#E6F4D7\,\#FDF5E6_65\%\,\#FEF9EF\)\]{background-image:linear-gradient(90deg,#e6f4d7,#fdf5e6 65%,#fef9ef)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.\[padding\:0_10px\]{padding:0 10px}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-10{padding:calc(var(--spacing) * 10)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1{padding-left:var(--spacing)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#7c3aed\]{color:#7c3aed}.text-\[color\:var\(--color-text-secondary\,\#6c757d\)\]{color:var(--color-text-secondary,#6c757d)}.text-\[var\(--color-accent-purple\)\]{color:var(--color-accent-purple)}.text-\[var\(--color-text-primary\)\]{color:var(--color-text-primary)}.text-\[var\(--color-text-secondary\)\]{color:var(--color-text-secondary)}.text-accent-blue{color:var(--color-accent-blue)}.text-accent-purple{color:var(--color-accent-purple)}.text-accent-purple-ink{color:var(--color-accent-purple-ink)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-700\/80{color:#b75000cc}@supports (color:color-mix(in lab, red, red)){.text-amber-700\/80{color:color-mix(in oklab, var(--color-amber-700) 80%, transparent)}}.text-amber-800{color:var(--color-amber-800)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-neutral-400{color:var(--color-neutral-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-text-muted{color:var(--color-text-muted)}.text-text-muted\/60{color:#adb5bd99}@supports (color:color-mix(in lab, red, red)){.text-text-muted\/60{color:color-mix(in oklab, var(--color-text-muted) 60%, transparent)}}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-slate-300{-webkit-text-decoration-color:var(--color-slate-300);-webkit-text-decoration-color:var(--color-slate-300);-webkit-text-decoration-color:var(--color-slate-300);text-decoration-color:var(--color-slate-300)}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent-purple-ink\/30{--tw-ring-color:#2e10654d}@supports (color:color-mix(in lab, red, red)){.ring-accent-purple-ink\/30{--tw-ring-color:color-mix(in oklab, var(--color-accent-purple-ink) 30%, transparent)}}.ring-amber-200{--tw-ring-color:var(--color-amber-200)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-red-300{--tw-ring-color:var(--color-red-300)}.ring-slate-100{--tw-ring-color:var(--color-slate-100)}.ring-slate-200{--tw-ring-color:var(--color-slate-200)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,transform\]{transition-property:background-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/bubble\:text-\[\#7c3aed\]:is(:where(.group\/bubble):hover *){color:#7c3aed}.group-hover\/bubble\:opacity-100:is(:where(.group\/bubble):hover *),.group-hover\/diagram\:opacity-100:is(:where(.group\/diagram):hover *),.group-hover\/featurespec\:opacity-100:is(:where(.group\/featurespec):hover *),.group-hover\/markdown\:opacity-100:is(:where(.group\/markdown):hover *),.group-hover\/reasoning\:opacity-100:is(:where(.group\/reasoning):hover *),.group-hover\/table\:opacity-100:is(:where(.group\/table):hover *),.group-hover\/terminal\:opacity-100:is(:where(.group\/terminal):hover *){opacity:1}}.placeholder\:text-slate-400::placeholder{color:var(--color-slate-400)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-\[\#7c3aed\]\/20:hover{background-color:oklab(54.1337% .0963843 -.226968/.2)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:bg-slate-500\/20:hover{background-color:#62748e33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-slate-500\/20:hover{background-color:color-mix(in oklab, var(--color-slate-500) 20%, transparent)}}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:bg-surface-hover:hover{background-color:var(--color-surface-hover)}.hover\:text-\[color\:var\(--color-text-primary\,\#212529\)\]:hover{color:var(--color-text-primary,#212529)}.hover\:text-accent-purple:hover{color:var(--color-accent-purple)}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-text-muted:hover{color:var(--color-text-muted)}.hover\:text-text-primary:hover{color:var(--color-text-primary)}@media (hover:hover){.hover\:group-hover\/bubble\:text-\[\#7c3aed\]:hover:is(:where(.group\/bubble):hover *){color:#7c3aed}}}.focus\:border-slate-500:focus{border-color:var(--color-slate-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-slate-400:focus{--tw-ring-color:var(--color-slate-400)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:opacity-100:focus-visible{opacity:1}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-slate-50:disabled{background-color:var(--color-slate-50)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media (pointer:coarse){.pointer-coarse\:opacity-100{opacity:1}}}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-surface-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.scrollbar-none{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}body{background-color:var(--color-surface);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.md-content{overflow-wrap:break-word;word-break:break-word;min-width:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.md-content table{border-collapse:collapse;white-space:nowrap;background:#8b5cf60a;border:1px solid #8b5cf633;border-radius:.5em;width:100%;margin:.5em 0;display:block;overflow:auto hidden}.md-content p{margin-top:.5em;margin-bottom:.25em}.md-content ul{margin:.2em 0;padding-left:1.5em;list-style-type:disc}.md-content ol{margin:.2em 0;padding-left:1.5em;list-style-type:decimal}.md-content li{display:list-item}.md-content h1,.md-content h2,.md-content h3{color:var(--color-text-primary);margin:.75em 0 .3em;font-weight:800}.md-content h1{font-size:1.25em}.md-content h2{font-size:1.1em}.md-content h3{font-size:1em}.md-content blockquote{color:var(--color-text-secondary);border-left:3px solid #8b5cf666;margin:.5em 0;padding:.3em .75em}.md-content strong{color:var(--color-text-primary);font-weight:600}.md-content em{color:#7c3aed}.md-content hr{border:none;border-top:1px solid var(--color-surface-border);margin:.5em 0}.md-content a{color:var(--color-accent-blue);text-underline-offset:2px;text-decoration:underline}.md-content th{color:var(--color-text-primary);background:#8b5cf61f}.md-content th,.md-content td{text-align:left;border:1px solid #8b5cf626;padding:.35em .6em}.md-content tbody tr:nth-child(2n){background:#8b5cf608}.md-content tbody tr:hover{background:#8b5cf614}.md-content code:not(pre code),.md-content :not(pre)>code{color:#7c3aed;background:#8b5cf614;border-radius:.3em;padding:.15em .35em;font-family:SF Mono,Fira Code,JetBrains Mono,monospace;font-size:.8em}.md-content pre{border:1px solid var(--color-surface-border);background:#f1f3f5;border-radius:.5em;max-width:100%;margin:.5em 0;padding:.5em;font-size:.8em;overflow-x:auto}.md-content pre code{color:#212529;font-family:SF Mono,Fira Code,JetBrains Mono,monospace}[data-testid=assistant-turn] .md-content>:last-child{margin-bottom:.25em}[data-testid=assistant-turn] .md-content>:first-child{margin-top:.5em}.md-content .mermaid-diagram{justify-content:center;margin:.5em 0;padding:.5em;display:flex;overflow-x:auto}.md-content .mermaid-diagram svg{max-width:100%;height:auto}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -0,0 +1 @@
1
+ .status.svelte-x2ntn8{flex-shrink:0;justify-content:center;align-items:center;width:.5rem;height:.5rem;display:inline-flex}.status.run.svelte-x2ntn8{gap:.0625rem}.bar.svelte-x2ntn8{background:var(--si-run,#b91c1c);border-radius:9999px;width:.125rem;height:100%;animation:1.1s ease-in-out infinite svelte-x2ntn8-ss-stream}.bar.svelte-x2ntn8:nth-child(2){animation-delay:.18s}.bar.svelte-x2ntn8:nth-child(3){animation-delay:.36s}@keyframes svelte-x2ntn8-ss-stream{0%,to{height:30%}50%{height:100%}}@media (prefers-reduced-motion:reduce){.bar.svelte-x2ntn8{animation:none}.bar.svelte-x2ntn8:first-child{height:55%}.bar.svelte-x2ntn8:nth-child(2){height:100%}.bar.svelte-x2ntn8:nth-child(3){height:35%}}.status.idle.svelte-x2ntn8:after{content:"";background:var(--si-idle,#52606d);border-radius:9999px;width:.5rem;height:.5rem}.status.delegated.run.svelte-x2ntn8 .bar:where(.svelte-x2ntn8){background:var(--si-run-delegated,#b91c1c)}.status.delegated.idle.svelte-x2ntn8:after{background:var(--si-idle-delegated,#b91c1c)}.status.svelte-x2ntn8{position:relative}.badge.svelte-x2ntn8{color:#fff;text-align:center;background:#b91c1c;border-radius:9999px;min-width:.5rem;padding:0 .0625rem;font-size:.5rem;font-weight:600;line-height:.625rem;position:absolute;top:-.375rem;left:.4375rem}.title-chip.svelte-ds4wzl{white-space:nowrap;flex:auto;align-items:center;gap:.1875rem;min-width:0;padding:.125rem .375rem;line-height:1;display:flex}.chip-label.svelte-ds4wzl{text-overflow:ellipsis;min-width:0;overflow:hidden}.title-chip.dead.svelte-ds4wzl{color:#991b1b;--si-idle:#991b1b;background:0 0;border-color:#991b1b}.ws-chip.svelte-u6vikv{align-items:center;gap:var(--wsc-gap,.1875rem);width:var(--wsc-width,auto);max-width:var(--wsc-max-width,6.5rem);font-size:var(--wsc-font-size,.75rem);padding:var(--wsc-padding,.15rem .375rem);vertical-align:middle;white-space:nowrap;border:1px solid var(--wsc-border,color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a));background:var(--wsc-bg,color-mix(in srgb, var(--color-accent-blue,#3b82f6) 8%, transparent));color:var(--wsc-fg,color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a));border-radius:9999px;flex-shrink:0;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.ws-chip.svelte-u6vikv svg{color:inherit;flex-shrink:0}.ws-chip.ghost.svelte-u6vikv{border-color:var(--wsc-border,#52606d73);background:var(--wsc-bg,var(--si-chip-ghost-bg,color-mix(in srgb, var(--color-surface-alt,#f1f3f5) 35%, transparent)));color:var(--wsc-fg,var(--si-chip-ghost,#52606d))}.chip-label.svelte-u6vikv{text-overflow:ellipsis;min-width:0;overflow:hidden}.ws-slot.svelte-1weslq2{flex-shrink:0;width:6.5rem}.ws-slot.branch.svelte-1weslq2{color:var(--color-text-muted,#adb5bd);align-items:center;display:inline-flex;overflow:hidden}.ws-slot.branch.fork.svelte-1weslq2{color:#00a802}.ws-slot.branch.doc-child.svelte-1weslq2{color:maroon}.ws-slot.branch.ws-child.svelte-1weslq2{color:#06c}.tree-line.svelte-1weslq2{flex:1;height:10px;position:relative}.tree-line.svelte-1weslq2:before{content:"";border-bottom:2px solid;border-left:2px solid;border-bottom-left-radius:5px;position:absolute;inset:0 3px 0 0}.tree-line.svelte-1weslq2:after{content:"";border-top:2px solid;border-right:2px solid;width:4px;height:4px;position:absolute;top:7px;right:1.5px;transform:rotate(45deg)}.label.svelte-1weslq2{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.group-rows.svelte-y4gy65{flex-direction:column;gap:.125rem;display:flex}.row.svelte-y4gy65{min-width:0;color:var(--color-text-primary,#212529);border-radius:.3rem;align-items:center;gap:.3rem;padding:.25rem .375rem;font-size:.75rem;transition:background-color .15s;display:flex}.row.current.svelte-y4gy65{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 30%, #fff);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);font-weight:600}.row.panel-row.svelte-y4gy65{cursor:pointer}.row.panel-row.svelte-y4gy65 .label,.row.panel-row.svelte-y4gy65 .ws{color:#9400d3}.row.panel-row.dead.svelte-y4gy65:not(.current) .label,.row.panel-row.dead.svelte-y4gy65:not(.current) .ws{color:#991b1b}.row.panel-row.svelte-y4gy65 .row-btn{color:#9400d3;opacity:.7}.row.panel-row.dead.svelte-y4gy65:not(.current) .row-btn{color:#991b1b}.row.ghost-row.svelte-y4gy65{cursor:pointer;opacity:.88;font-size:.6875rem}.row.ghost-row.svelte-y4gy65:hover{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 20%, #fff);opacity:1}.row.ghost-row.svelte-y4gy65:focus-visible{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 20%, #fff);outline-offset:-2px;outline:2px solid #1e3a8a}.adopt-hint.svelte-y4gy65{color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 30%, #1e3a8a);opacity:0;flex-shrink:0;font-size:.5625rem;font-style:italic;transition:opacity .15s}.row.ghost-row.svelte-y4gy65:hover .adopt-hint:where(.svelte-y4gy65),.row.ghost-row.svelte-y4gy65:focus-visible .adopt-hint:where(.svelte-y4gy65){opacity:1}.spawned-by.svelte-y4gy65{text-overflow:ellipsis;white-space:nowrap;max-width:7rem;color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 30%, #1e3a8a);flex-shrink:0;align-items:center;gap:.125rem;font-size:.5625rem;display:inline-flex;overflow:hidden}.spawned-by.svelte-y4gy65 svg{flex-shrink:0}.row.panel-row.svelte-y4gy65:hover{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 20%, #fff)}.row.panel-row.svelte-y4gy65:focus-visible{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 20%, #fff);outline-offset:-2px;outline:2px solid #1e3a8a}.row.current.panel-row.svelte-y4gy65:hover,.row.current.panel-row.svelte-y4gy65:focus-visible{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 34%, #fff)}.row.dead.svelte-y4gy65:not(.current){color:#991b1b;--si-idle:#991b1b}.row-actions.svelte-y4gy65{flex-shrink:0;align-items:center;gap:.125rem;margin-right:-.25rem;display:inline-flex}.row-btn{width:1.125rem;height:1.125rem;color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.row.panel-row.svelte-y4gy65:hover .row-btn,.row-btn:focus-visible{opacity:1}.row-btn:hover,.row-btn:focus-visible{background:var(--color-surface-hover,#0000001a);outline:none}.row.current.svelte-y4gy65 .row-btn:hover,.row.current.svelte-y4gy65 .row-btn:focus-visible{background:#00000014}.seg-group.svelte-akbq14{flex-shrink:0;align-items:stretch;display:flex}.seg.svelte-akbq14{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);color:#52606d;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:.15rem .275rem;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.seg.svelte-akbq14 svg{display:block}.seg.svelte-akbq14:disabled{cursor:default;opacity:.6}.seg.left.svelte-akbq14{border-radius:9999px 0 0 9999px}.seg.right.svelte-akbq14{border-left-width:0;border-radius:0 9999px 9999px 0}.seg.svelte-akbq14:not(:disabled):hover{border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, #fff)}.seg.svelte-akbq14:focus-visible{outline-offset:-2px;outline:2px solid #1e3a8a}.pane.svelte-1pi3b2j{flex-direction:column;flex:none;max-height:50%;margin-top:.125rem;display:flex}.panel-group.svelte-1pi3b2j{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);background:linear-gradient(180deg, color-mix(in srgb, var(--color-accent-blue,#3b82f6) 14%, #fff), color-mix(in srgb, var(--color-accent-blue,#3b82f6) 7%, #fff));border-radius:.5rem;flex-direction:column;flex:auto;gap:.125rem;min-height:0;padding:.25rem;display:flex}.panel-container.svelte-1pi3b2j{flex:auto;min-height:0;overflow-y:auto}.group-head-row.svelte-1pi3b2j{flex-shrink:0;align-items:center;gap:.25rem;min-width:0;display:flex}.group-head.svelte-1pi3b2j{min-width:0;color:var(--color-text-primary,#212529);cursor:pointer;background:0 0;border:none;border-radius:.375rem;flex:auto;align-items:center;gap:.375rem;padding:.25rem .375rem;font-size:.6875rem;line-height:1.25;transition:background-color .15s;display:flex}.group-head.svelte-1pi3b2j:hover{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 18%, #fff)}.group-head.svelte-1pi3b2j:focus-visible{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 18%, #fff);outline-offset:-2px;outline:2px solid #1e3a8a}.group-head.svelte-1pi3b2j svg{color:#1e3a8a;flex-shrink:0}.head-title.svelte-1pi3b2j{white-space:nowrap;color:#1e3a8a;flex:auto;align-items:center;min-width:0;font-weight:600;display:flex;overflow:hidden}.pill.svelte-mm9fzx{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);color:#52606d;cursor:pointer;white-space:nowrap;background:0 0;border-radius:9999px;align-items:center;gap:.25rem;max-width:9rem;padding:.25rem .5rem;font-size:.625rem;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.pill.svelte-mm9fzx:hover{border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, #fff)}.pill.on.svelte-mm9fzx{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a);border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a);color:#fff}.pill.count-only.svelte-mm9fzx:not(.on){color:var(--color-text-primary,#212529);background:#9acd32;border-color:#648520}.pill.count-only.svelte-mm9fzx:not(.on):hover{color:var(--color-text-primary,#212529);background:#83ae2b;border-color:#55711c}.pill.svelte-1f6ce44{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);color:#52606d;cursor:pointer;white-space:nowrap;background:0 0;border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem;font-size:.625rem;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.pill.svelte-1f6ce44:hover{border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, #fff)}.blank-group.svelte-1f6ce44{flex-shrink:0;align-items:stretch;display:flex}.pill.left.svelte-1f6ce44{border-radius:9999px 0 0 9999px}.pill.mid.svelte-1f6ce44{border-left-width:0;border-radius:0}.pill.right.svelte-1f6ce44{border-left-width:0;border-radius:0 9999px 9999px 0}.pill.on.svelte-1f6ce44{color:var(--color-text-primary,#212529);background:#9acd32;border-color:#648520}.pill.on.svelte-1f6ce44:hover{color:var(--color-text-primary,#212529);background:#83ae2b;border-color:#55711c}.pill.svelte-1f6ce44 svg{flex-shrink:0}.pill.on.svelte-1f6ce44 svg{color:inherit}.icon-btn.svelte-zmx0en{width:22px;height:22px;color:var(--color-text-secondary,#6c757d);background:0 0;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:inline-flex}.icon-btn.svelte-zmx0en:hover,.icon-btn.svelte-zmx0en:focus-visible{color:var(--color-accent-blue,#3b82f6);background:var(--color-surface-hover,#0000000d);outline:none}.panel.svelte-zmx0en{z-index:60;border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-elevated,#fff);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex;position:fixed;box-shadow:0 4px 16px #0000001f}.panel-head.svelte-zmx0en{justify-content:space-between;align-items:center;display:flex}.panel-title.svelte-zmx0en{color:var(--color-text-primary,#212529);font-size:.75rem;font-weight:600}.hidden-toggle.svelte-zmx0en{border:1px solid var(--color-surface-border,#dee2e6);color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border-radius:999px;padding:.0625rem .5rem;font-size:.625rem}.hidden-toggle[aria-pressed=true].svelte-zmx0en{color:var(--color-accent-blue,#3b82f6);border-color:var(--color-accent-blue,#3b82f6)}.crumbs.svelte-zmx0en{white-space:nowrap;align-items:center;gap:.125rem;padding-bottom:.125rem;display:flex;overflow-x:auto}.crumb.svelte-zmx0en{color:var(--color-accent-blue,#3b82f6);cursor:pointer;background:0 0;border:none;border-radius:.25rem;align-items:center;gap:.1875rem;padding:.0625rem .25rem;font-size:.6875rem;display:inline-flex}.crumb.svelte-zmx0en:hover{background:var(--color-surface-hover,#0000000d)}.crumb.current.svelte-zmx0en{color:var(--color-text-primary,#212529);cursor:default;font-weight:600}.crumb-sep.svelte-zmx0en{color:var(--color-text-secondary,#6c757d);flex-shrink:0}.rows.svelte-zmx0en{border:1px solid var(--color-surface-border,#dee2e6);border-radius:.375rem;flex-direction:column;max-height:240px;padding:.25rem;display:flex;overflow-y:auto}.row.svelte-zmx0en{width:100%;color:var(--color-text-primary,#212529);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.25rem;align-items:center;gap:.375rem;padding:.3125rem .375rem;font-size:.75rem;display:flex}.row.svelte-zmx0en:hover,.row.svelte-zmx0en:focus-visible{background:var(--color-surface-hover,#0000000d);outline:none}.row.hidden.svelte-zmx0en{opacity:.55}.row-name.svelte-zmx0en{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.row-chev.svelte-zmx0en{color:var(--color-text-secondary,#6c757d);flex-shrink:0}.hint.svelte-zmx0en{color:var(--color-text-secondary,#6c757d);font-size:.6875rem}.panel-actions.svelte-zmx0en{justify-content:flex-end;gap:.375rem;display:flex}.btn.svelte-zmx0en{cursor:pointer;border-radius:.375rem;padding:.375rem .75rem;font-size:.75rem}.btn.ghost.svelte-zmx0en{border:1px solid var(--color-surface-border,#dee2e6);color:var(--color-text-secondary,#6c757d);background:0 0}.btn.ghost.svelte-zmx0en:hover{color:var(--color-text-primary,#212529)}.btn.solid.svelte-zmx0en{border:1px solid var(--color-accent-blue,#3b82f6);background:var(--color-accent-blue,#3b82f6);color:#fff;font-weight:500}.btn.solid.svelte-zmx0en:disabled,.btn.ghost.svelte-zmx0en:disabled{opacity:.55;cursor:default}.target.svelte-zmx0en{color:var(--color-text-secondary,#6c757d);overflow-wrap:anywhere;margin:0;font-size:.625rem}.mono.svelte-zmx0en{font-family:ui-monospace,monospace;font-weight:400}.error.svelte-zmx0en{color:var(--color-status-fail,#ef4444);overflow-wrap:anywhere;font-size:.6875rem}.meta.svelte-xp425j{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.menu.svelte-1x5rzx5{background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);border-radius:.5rem;flex-direction:column;gap:.25rem;min-width:13rem;max-width:16rem;padding:.375rem;display:flex;box-shadow:0 .5rem 1.25rem #00000026}.row.svelte-1x5rzx5{width:100%;color:var(--color-text-primary,#212529);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.375rem .5rem;font-size:.75rem;line-height:1.3;display:block}.row.svelte-1x5rzx5:hover:not(:disabled),.row.svelte-1x5rzx5:focus-visible:not(:disabled){background:var(--color-surface-hover,#e9ecef)}.row.svelte-1x5rzx5:disabled{opacity:.5;cursor:default}.row.danger.svelte-1x5rzx5{color:var(--color-accent-rose,#f43f5e)}.row.danger.svelte-1x5rzx5:hover:not(:disabled),.row.danger.svelte-1x5rzx5:focus-visible:not(:disabled){background:color-mix(in srgb, var(--color-accent-rose,#f43f5e) 12%, transparent)}.row.primary.svelte-1x5rzx5{color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 60%, #1e3a8a);font-weight:600}.pane.svelte-1x5rzx5{flex-direction:column;gap:.375rem;display:flex}.pane.svelte-1x5rzx5 input:where(.svelte-1x5rzx5){border:1px solid var(--color-surface-border,#dee2e6);width:100%;color:var(--color-text-primary,#212529);background:var(--color-surface-elevated,#fff);border-radius:.375rem;padding:.375rem .5rem;font-size:.75rem}.row-set.svelte-1x5rzx5{justify-content:flex-end;gap:.25rem;display:flex}.cost.svelte-1x5rzx5{color:var(--color-text-secondary,#6c757d);margin:0;font-size:.6875rem;line-height:1.35}.error.svelte-1x5rzx5{color:var(--color-accent-rose,#f43f5e);margin:0;font-size:.6875rem}.header.svelte-1x74v2r{align-items:center;gap:.25rem;min-width:0;display:flex;position:relative}.header.svelte-1x74v2r .ws-chip.menuable{cursor:context-menu}.header.svelte-1x74v2r .ws-chip.menuable:hover{--wsc-border:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 80%, #1e3a8a)}.header.svelte-1x74v2r .ws-chip.ghost{--wsc-bg:transparent}.menu-anchor.svelte-1x74v2r{z-index:40;position:absolute;top:100%;left:.375rem}.head.svelte-1x74v2r{min-width:0;color:var(--color-text-primary,#212529);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.375rem;flex:auto;align-items:center;gap:.375rem;padding:.25rem .375rem;font-size:.6875rem;line-height:1.25;transition:background-color .15s;display:flex}.head.svelte-1x74v2r:hover{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 18%, #fff)}.head.svelte-1x74v2r:focus-visible{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 18%, #fff);outline:2px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);outline-offset:-2px}.head.svelte-1x74v2r>svg{color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);flex-shrink:0}.chip.svelte-1x74v2r{vertical-align:middle;white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;gap:.1875rem;max-width:6.5rem;padding:.15rem .375rem;font-size:.75em;line-height:1;display:inline-flex}.chip.svelte-1x74v2r svg{flex-shrink:0}.chip-label.svelte-1x74v2r{text-overflow:ellipsis;min-width:0;overflow:hidden}.chip.agent.svelte-1x74v2r{color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);border-color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);background:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 8%, transparent)}.summary.svelte-1x74v2r{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);font-weight:600;overflow:hidden}.placeholder.svelte-1x74v2r{color:var(--color-text-secondary,#6c757d);font-weight:400}.pill.svelte-1wj0ebt{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);color:#52606d;cursor:pointer;white-space:nowrap;background:0 0;border-radius:9999px;align-items:center;gap:.25rem;max-width:9rem;padding:.25rem .5rem;font-size:.625rem;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.pill.svelte-1wj0ebt:hover{border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, #fff)}.pill.on.svelte-1wj0ebt{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a);border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a);color:#fff}.pill.preset.reg.svelte-1wj0ebt:not(.on){color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);border-color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);background:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 8%, transparent)}.pill.preset.reg.svelte-1wj0ebt:not(.on):hover{color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);border-color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);background:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 12%, #fff)}.pill.preset.on.svelte-1wj0ebt{background:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 75%, #4c1d95);border-color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 75%, #4c1d95);color:#fff}.pill.svelte-1wj0ebt svg{flex-shrink:0}.pill.on.svelte-1wj0ebt svg{color:inherit}.label.svelte-1wj0ebt{text-overflow:ellipsis;min-width:0;overflow:hidden}.count.svelte-1wj0ebt{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.5625rem}.pill.svelte-dam7rh{cursor:pointer;--wsc-fg:#52606d;--wsc-border:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);--wsc-bg:transparent;--wsc-font-size:.625rem;--wsc-padding:.25rem .5rem;--wsc-gap:.25rem;--wsc-max-width:9rem;background:0 0;border:none;padding:0;display:inline-flex}.pill.svelte-dam7rh:not(.on):hover{--wsc-fg:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);--wsc-border:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);--wsc-bg:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, #fff)}.pill.reg.svelte-dam7rh:not(.on){--wsc-fg:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);--wsc-border:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);--wsc-bg:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 8%, transparent)}.pill.on.svelte-dam7rh{--wsc-fg:#fff;--wsc-border:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a);--wsc-bg:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a)}.pill.ghost.svelte-dam7rh:not(.on){--wsc-border:#52606d73}.pill.ghost.svelte-dam7rh:not(.on):hover{--wsc-fg:#495057;--wsc-border:#52606d}.pill.ghost.on.svelte-dam7rh{--wsc-fg:#495057;--wsc-border:#52606d;--wsc-bg:var(--color-surface-hover,#e9ecef)}.count.svelte-dam7rh{font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.5625rem}.divider.svelte-dam7rh{background:var(--color-surface-border,#dee2e6);flex-shrink:0;width:1px;height:.75rem}.filters.svelte-txyks4{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);background:linear-gradient(135deg,#0000,#6d05ff42);border-radius:.5rem;flex-direction:column;align-items:stretch;gap:.25rem;min-width:0;margin:.125rem 0;padding:.25rem;display:flex}.pills.svelte-txyks4{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;display:flex}.row.svelte-vv7jet{min-width:0;color:var(--color-text-primary,#212529);border-radius:.375rem;align-items:center;gap:.3rem;padding:.3rem .5rem;font-size:.75rem;transition:background-color .15s;display:flex}.row.child.svelte-vv7jet .label{font-size:.6875rem}a.row.svelte-vv7jet:hover,a.row.svelte-vv7jet:focus-visible{background:var(--color-surface-hover,#e9ecef);outline:none}.time.svelte-vv7jet{color:var(--color-text-muted,#adb5bd);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.625rem}.cal.svelte-qbc0wr{z-index:50;background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);-webkit-user-select:none;user-select:none;border-radius:.5rem;width:14rem;margin-top:.25rem;padding:.5rem;position:absolute;top:100%;right:0;box-shadow:0 .5rem 1rem #00000026}.cal-head.svelte-qbc0wr{justify-content:space-between;align-items:center;margin-bottom:.25rem;padding:0 .25rem;display:flex}.cal-nav.svelte-qbc0wr{color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.25rem;transition:background-color .15s,color .15s;display:inline-flex}.cal-nav.svelte-qbc0wr:hover{background:var(--color-surface-hover,#e9ecef);color:var(--color-text-primary,#212529)}.cal-month.svelte-qbc0wr{color:var(--color-text-primary,#212529);font-size:.6875rem;font-weight:600}.cal-row.svelte-qbc0wr{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.cal-days.svelte-qbc0wr{margin-bottom:.125rem}.cal-day-head.svelte-qbc0wr{color:var(--color-text-secondary,#6c757d);padding:.125rem 0;font-size:.5625rem;font-weight:600}.cal-day.svelte-qbc0wr{width:1.75rem;height:1.75rem;color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;font-size:.625rem;transition:background-color .15s;display:flex;position:relative}.cal-day.svelte-qbc0wr:hover{background:var(--color-surface-hover,#e9ecef)}.cal-day.empty.svelte-qbc0wr{cursor:default;background:0 0}.cal-day.selected.svelte-qbc0wr{background:var(--color-accent-purple,#8b5cf6);color:#fff;font-weight:600}.cal-day.today.svelte-qbc0wr{color:var(--color-accent-purple,#8b5cf6);font-weight:600}.cal-dot.svelte-qbc0wr{background:var(--color-accent-purple,#8b5cf6);border-radius:9999px;width:.25rem;height:.25rem;position:absolute;bottom:.125rem;left:50%;transform:translate(-50%)}.cal-foot.svelte-qbc0wr{border-top:1px solid color-mix(in srgb, var(--color-surface-border,#dee2e6) 30%, transparent);justify-content:center;margin-top:.25rem;padding-top:.25rem;display:flex}.cal-clear.svelte-qbc0wr{color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border:none;padding:.125rem .5rem;font-size:.625rem;transition:color .15s}.cal-clear.svelte-qbc0wr:hover{color:var(--color-text-primary,#212529)}.wrap.svelte-tnppsm{flex-shrink:0;position:relative}.badge.svelte-tnppsm{border:1px solid color-mix(in srgb, var(--color-surface-border,#dee2e6) 75%, transparent);background:var(--color-surface-elevated,#fff);height:1.375rem;color:var(--color-text-secondary,#6c757d);border-radius:.375rem;align-items:center;gap:.125rem;padding:0 .25rem 0 .375rem;font-size:.6875rem;transition:color .15s,background-color .15s;display:flex}.badge.svelte-tnppsm:hover{background:var(--color-surface-hover,#e9ecef)}.badge.active.svelte-tnppsm{color:#8a2be2}.trigger.svelte-tnppsm{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.trigger.svelte-tnppsm:focus-visible{outline-offset:1px;border-radius:.25rem;outline:2px solid #1e3a8a}.label.svelte-tnppsm{white-space:nowrap;line-height:1}.clear.svelte-tnppsm{color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;padding:.125rem;transition:color .15s,background-color .15s;display:inline-flex}.clear.svelte-tnppsm:hover{color:var(--color-status-fail,#ef4444);background:#ef44441a}.anchor.svelte-tnppsm{position:relative}.pane.svelte-1ckjre5{flex-direction:column;flex:auto;min-height:0;display:flex}.spine-group.svelte-1ckjre5{border:1px solid color-mix(in srgb, var(--color-surface-border,#dee2e6) 75%, transparent);background:linear-gradient(45deg,#10b98142,#0000);border-radius:.5rem;flex-direction:column;flex:1;gap:.125rem;min-height:0;padding:.25rem;display:flex}.group-head.svelte-1ckjre5{flex-shrink:0;align-items:center;gap:.25rem;min-width:0;display:flex}.group-toggle.svelte-1ckjre5{min-width:0;color:var(--color-text-primary,#212529);cursor:pointer;background:0 0;border:none;border-radius:.375rem;flex-shrink:0;align-items:center;gap:.25rem;padding:.1875rem .375rem;font-size:.6875rem;font-weight:600;line-height:1.25;transition:background-color .15s;display:inline-flex}.group-toggle.svelte-1ckjre5:hover{background:var(--color-surface-hover,#e9ecef)}.group-toggle.svelte-1ckjre5:focus-visible{background:var(--color-surface-hover,#e9ecef);outline-offset:-2px;outline:2px solid #1e3a8a}.group-toggle.svelte-1ckjre5 svg{color:var(--color-text-secondary,#6c757d);flex-shrink:0}.head-title.svelte-1ckjre5{text-overflow:ellipsis;white-space:nowrap;color:#8a2be2;min-width:0;overflow:hidden}.filter-input.svelte-1ckjre5{border:1px solid color-mix(in srgb, var(--color-surface-border,#dee2e6) 75%, transparent);background:var(--color-surface-elevated,#fff);min-width:0;height:1.375rem;color:var(--color-text-primary,#212529);border-radius:.375rem;flex:1;padding:0 .375rem;font-size:.6875rem}.filter-input.svelte-1ckjre5::placeholder{color:var(--color-text-secondary,#6c757d)}.filter-input.svelte-1ckjre5:focus-visible{outline-offset:-1px;outline:2px solid #1e3a8a}.row-btn.svelte-1ckjre5{width:1.125rem;height:1.125rem;color:var(--color-text-primary,#212529);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,opacity .15s;display:inline-flex}.row-btn.svelte-1ckjre5:hover,.row-btn.svelte-1ckjre5:focus-visible{opacity:1;background:var(--color-surface-hover,#e9ecef);outline:none}.row-btn.active.svelte-1ckjre5{opacity:1;color:#1e3a8a}.group-rows.svelte-1ckjre5{flex-direction:column;flex:auto;gap:.125rem;min-height:0;display:flex;overflow-y:auto}.hint.svelte-1ckjre5{color:var(--color-text-secondary,#6c757d);padding:.5rem;font-size:.6875rem}hr.svelte-1k0m3nb{border:none;border-top:1px solid color-mix(in srgb, var(--color-surface-border,#dee2e6) 75%, transparent);flex-shrink:0;margin:0}.list.svelte-1k0m3nb{flex-direction:column;flex:1;gap:.125rem;min-height:0;display:flex;overflow:hidden}.new-chat.svelte-lgkb7b{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 15%, #fff);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);cursor:pointer;border-radius:.375rem;transition:background-color .15s,border-color .15s}.new-chat.svelte-lgkb7b:not(:disabled):hover{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 22%, #fff);border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 65%, #1e3a8a);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 55%, #1e3a8a)}.new-chat.svelte-lgkb7b:disabled{cursor:default;opacity:.6}.seg-group.svelte-lgkb7b{flex-shrink:0;align-items:stretch;display:flex}.seg.svelte-lgkb7b{border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 35%, #fff);color:#52606d;cursor:pointer;white-space:nowrap;background:0 0;align-items:center;padding:.15rem .35rem;font-size:.6rem;line-height:1;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.seg.svelte-lgkb7b:disabled{cursor:default;opacity:.6}.seg.left.svelte-lgkb7b{border-radius:9999px 0 0 9999px}.seg.right.svelte-lgkb7b{border-left-width:0;border-radius:0 9999px 9999px 0}.seg.svelte-lgkb7b:not(:disabled):hover{border-color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, #fff)}.seg.on.svelte-lgkb7b{color:var(--color-text-primary,#212529);background:#9acd32;border-color:#648520}.seg.on.svelte-lgkb7b:not(:disabled):hover{color:var(--color-text-primary,#212529);background:#83ae2b;border-color:#55711c}.slash-menu.svelte-hiff6x{z-index:5;background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);border-radius:.5rem .5rem 0 0;flex-direction:column;max-height:calc(100dvh - 10rem);font-size:.75rem;display:flex;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -6px 16px #0000001f}.slash-section-label.svelte-hiff6x{color:var(--color-text-muted,#868e96);text-transform:uppercase;letter-spacing:.04em;align-items:baseline;gap:.375rem;padding:.375rem .5rem .125rem;font-size:.625rem;font-weight:600;display:flex}.slash-section-kind.svelte-hiff6x{text-transform:none;letter-spacing:0;color:var(--color-text-muted,#adb5bd);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.slash-row.svelte-hiff6x{width:100%;color:var(--color-text-primary,#212529);cursor:pointer;text-align:left;background:0 0;border:none;align-items:baseline;gap:.375rem;padding:.125rem .5rem;font-size:.75rem;display:flex}.slash-row.svelte-hiff6x:hover,.slash-row.active.svelte-hiff6x{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 10%, transparent)}.slash-name.svelte-hiff6x{flex-shrink:0;font-weight:600}.slash-desc.svelte-hiff6x{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-secondary,#6c757d);overflow:hidden}.slash-hint.svelte-hiff6x{color:var(--color-text-muted,#adb5bd);text-overflow:ellipsis;white-space:nowrap;flex-basis:100%;font-size:.6875rem;overflow:hidden}.slash-row.svelte-hiff6x{flex-wrap:wrap}.slash-badge.svelte-hiff6x{background:var(--color-surface-hover,#e9ecef);color:var(--color-text-secondary,#6c757d);border-radius:9999px;flex-shrink:0;padding:0 .3rem;font-size:.625rem;line-height:1.4}.slash-status.svelte-hiff6x{color:var(--color-text-muted,#868e96);padding:.375rem .5rem}.slash-error.svelte-hiff6x{color:#b91c1c}.strip-tip.svelte-xf8nks{z-index:10002;background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);pointer-events:none;border-radius:.375rem;padding:.25rem;position:fixed;transform:translateY(-100%);box-shadow:0 4px 12px #0000001f}.strip-tip-md.svelte-xf8nks{word-break:break-word;max-height:70vh;color:var(--color-text-primary,#212529);margin:0;padding:.25rem .375rem;font-family:inherit;font-size:.75rem;line-height:1.4;overflow-y:auto}.strip-tip-md.svelte-xf8nks p:first-child{margin-top:0}.strip-tip-md.svelte-xf8nks p:last-child{margin-bottom:0}.strip-tip-md.svelte-xf8nks p,.strip-tip-md.svelte-xf8nks ul,.strip-tip-md.svelte-xf8nks ol{margin:.25em 0}.strip-tip-md.svelte-xf8nks code{font-size:.6875rem}.strip-chip.svelte-1ylllv7{background:var(--color-surface,#f8f9fa);align-items:center;width:100%;max-width:100%;display:flex;position:relative}.strip-chip.active.svelte-1ylllv7{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 10%, transparent)}.strip-pick.svelte-1ylllv7{color:var(--color-text-primary,#212529);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:.375rem;min-width:0;max-width:100%;padding:.125rem .5rem;font-size:.75rem;display:flex}.strip-label.svelte-1ylllv7{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hl.svelte-1ylllv7{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--color-accent-blue,#3b82f6);text-decoration-color:var(--color-accent-blue,#3b82f6);text-underline-offset:2px;background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 14%, transparent);border-radius:2px}.strip-ml.svelte-1ylllv7,.strip-count.svelte-1ylllv7{color:var(--color-text-muted,#868e96);flex-shrink:0}.strip-menu.svelte-1ylllv7,.strip-step.svelte-1ylllv7{flex-shrink:0;position:relative}.strip-step-btn.svelte-1ylllv7{color:var(--color-text-muted,#868e96);cursor:pointer;background:0 0;border:none;padding:.125rem .25rem;font-size:.75rem;line-height:1}.strip-step-btn.svelte-1ylllv7:hover{color:var(--color-accent-blue,#3b82f6)}.strip-menu-btn.svelte-1ylllv7{color:var(--color-text-muted,#868e96);cursor:pointer;background:0 0;border:none;padding:.125rem .25rem;font-size:.75rem;line-height:1}.strip-menu-btn.svelte-1ylllv7:hover{color:var(--color-text-primary,#212529)}.strip-menu-pop.svelte-1ylllv7{z-index:10001;background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);border-radius:.375rem;padding:.5rem;position:fixed;box-shadow:0 4px 12px #0000001f}.strip-menu-form.svelte-1ylllv7{flex-direction:column;gap:.375rem;display:flex}.strip-menu-field.svelte-1ylllv7{color:var(--color-text-muted,#868e96);flex-direction:column;gap:.125rem;font-size:.75rem;display:flex}.strip-menu-input.svelte-1ylllv7{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-elevated,#fff);color:var(--color-text-primary,#212529);border-radius:.25rem;padding:.25rem .375rem;font-size:.75rem}.strip-menu-text.svelte-1ylllv7{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-elevated,#fff);color:var(--color-text-primary,#212529);white-space:nowrap;resize:none;box-sizing:border-box;border-radius:.25rem;width:100%;padding:.25rem .375rem;font-size:.75rem;overflow-x:auto}.strip-menu-actions.svelte-1ylllv7{gap:.5rem;margin-top:.5rem;display:flex}.strip-menu-save.svelte-1ylllv7{background:var(--color-accent-blue,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:.25rem;flex:1;padding:.25rem .5rem;font-size:.75rem}.strip-menu-save.svelte-1ylllv7:hover{background:#2563eb}.strip-menu-delete.svelte-1ylllv7{border:1px solid var(--color-surface-border,#dee2e6);color:var(--color-text-primary,#212529);cursor:pointer;background:0 0;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem}.strip-menu-delete.svelte-1ylllv7:hover{background:var(--color-surface-hover,#e9ecef)}.suggest-strip.svelte-17pdojr{z-index:5;background:var(--color-surface-elevated,#fff);flex-direction:column;max-height:calc(100dvh - 8rem);font-size:.75rem;display:flex;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -6px 16px #0000001f}.strip-manage.svelte-17pdojr{color:var(--color-text-muted,#868e96);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-self:flex-start;padding:.125rem .5rem;font-size:.75rem}.strip-manage.svelte-17pdojr:hover{color:var(--color-accent-blue,#3b82f6)}button.svelte-ec7sz9 svg{color:inherit}.footer.svelte-x4ykdr{border-top:1px solid var(--color-surface-border,#dee2e6);flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.footer-create.svelte-x4ykdr{align-items:center;gap:.375rem;display:flex}.footer-version.svelte-x4ykdr{letter-spacing:.05em;color:var(--color-text-secondary,#6c757d);white-space:nowrap;flex-direction:column;flex-shrink:0;gap:.0625rem;font-size:.625rem;font-weight:600;line-height:1.2;display:flex}.sessions.svelte-1nppouf{flex-direction:column;flex:1;min-height:0;display:flex}.hint.svelte-1nppouf{color:var(--color-text-secondary,#6c757d);padding:.5rem;font-size:.6875rem}.hint.error.svelte-1nppouf{color:var(--color-status-fail,#ef4444)}.rail-header-group.svelte-ild1n1{align-items:center;gap:.375rem;min-width:0;margin-right:auto;display:flex}.rail-title.svelte-ild1n1{text-transform:uppercase;letter-spacing:.05em;color:#4b5563;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:600;overflow:hidden}.rail-header-actions.svelte-ijmtbh{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.icon-btn.svelte-ijmtbh{width:22px;height:22px;color:var(--color-text-secondary,#6c757d);background:0 0;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:inline-flex}.icon-btn.svelte-ijmtbh:hover,.icon-btn.svelte-ijmtbh:focus-visible{color:var(--color-accent-purple,#8b5cf6);background:var(--color-surface-hover,#0000000d);outline:none}.about-backdrop.svelte-2dj481{z-index:10007;background:#0006;position:fixed;inset:0}.about-modal.svelte-2dj481{z-index:10008;text-align:center;--about-gradient:linear-gradient(120deg, #ffe9d6, #c7ddf8, #e4d5f7, #c3f0dc, #ffe9d6);background:var(--about-gradient);border:1px solid var(--color-surface-border,#dee2e6);background-size:300% 300%;border-radius:.5rem;width:90%;max-width:24rem;padding:1.25rem 1.5rem 1.5rem;animation:12s ease-in-out infinite svelte-2dj481-about-gradient-pan;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 16px #0000001f}@keyframes svelte-2dj481-about-gradient-pan{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@media (prefers-reduced-motion:reduce){.about-modal.svelte-2dj481{animation:none}}.about-close.svelte-2dj481{width:20px;height:20px;color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border-radius:.25rem;justify-content:center;align-items:center;font-size:.875rem;line-height:1;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.about-close.svelte-2dj481:hover{color:var(--color-text-primary,#212529);background:var(--color-surface-hover,#0000000d)}.about-title.svelte-2dj481{letter-spacing:.06em;color:var(--color-text-primary,#212529);margin:0;font-size:1.125rem;font-weight:700}.about-subtitle.svelte-2dj481{color:#4b5563;margin:.5rem 0 0;font-size:.8125rem;font-weight:500}.about-credit.svelte-2dj481{color:#4b5563;margin:1rem 0 0;font-size:.75rem}.about-link.svelte-2dj481{color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);margin-top:.375rem;font-size:.75rem;text-decoration:none;display:inline-block}.about-link.svelte-2dj481:hover{text-decoration:underline}.about-trigger.svelte-1djxfw6{width:18px;height:18px;color:var(--color-accent-purple,#8b5cf6);border:1.5px solid var(--color-accent-purple,#8b5cf6);cursor:pointer;background:#ffffff8c;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.625rem;font-weight:700;line-height:1;transition:color .15s,box-shadow .15s;animation:8s ease-in-out infinite svelte-1djxfw6-about-ring-cycle;display:inline-flex;box-shadow:0 0 0 2px #8b5cf62e}@keyframes svelte-1djxfw6-about-ring-cycle{0%,to{background:#ffffff8c;border-color:#8b5cf6}25%{background:#ffe9d6bf;border-color:#f6ad7b}50%{background:#c7ddf8bf;border-color:#60a5fa}75%{background:#c3f0dcbf;border-color:#34d399}}.about-trigger.svelte-1djxfw6:hover,.about-trigger.svelte-1djxfw6:focus-visible{color:#7c3aed;background:#ffffffd9;border-color:#7c3aed;outline:none;animation:none;box-shadow:0 0 0 3px #8b5cf659}@media (prefers-reduced-motion:reduce){.about-trigger.svelte-1djxfw6{animation:none}}.rail-header.svelte-184i93r{--rail-gradient:linear-gradient(120deg, #ffe9d6, #c7ddf8, #e4d5f7, #c3f0dc, #ffe9d6);background:var(--rail-gradient);background-size:300% 300%;border:thin solid #ffa9003d;border-radius:.25rem;justify-content:space-between;align-items:center;gap:.375rem;padding:.5rem;animation:12s ease-in-out infinite svelte-184i93r-rail-header-gradient;display:flex}@keyframes svelte-184i93r-rail-header-gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@media (prefers-reduced-motion:reduce){.rail-header.svelte-184i93r{animation:none}}.rail-wrap.svelte-113gpvg{flex-shrink:0;height:100%;min-height:0;display:flex}.rail.svelte-113gpvg{background:var(--color-surface-elevated,#fff);flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.rail-embedded.svelte-113gpvg{width:100%}.rail-collapsed.svelte-113gpvg{--rail-gradient:linear-gradient(120deg, #ffe9d6, #c7ddf8, #e4d5f7, #c3f0dc, #ffe9d6);background:var(--rail-gradient);background-size:300% 300%;animation:12s ease-in-out infinite svelte-113gpvg-rail-header-gradient}@keyframes svelte-113gpvg-rail-header-gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@media (prefers-reduced-motion:reduce){.rail-collapsed.svelte-113gpvg{animation:none}}.rail-collapsed.svelte-113gpvg{border:none;border-right:1px solid var(--color-surface-border,#dee2e6);color:#4b5563;flex-direction:column;flex-shrink:0;align-items:center;gap:.25rem;width:34px;min-width:34px;height:100%;padding:.5rem 0;display:flex}.stub-expand.svelte-113gpvg{min-height:0;color:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.25rem;transition:color .15s,background-color .15s;display:flex}.stub-expand.svelte-113gpvg:hover,.stub-expand.svelte-113gpvg:focus-visible{color:var(--color-accent-purple,#8b5cf6);background:var(--color-surface-hover,#00000008);outline:none}.rail-collapsed.svelte-113gpvg .rail-collapsed-label{text-transform:uppercase;letter-spacing:.05em;writing-mode:vertical-rl;font-size:.5625rem;font-weight:600}.rail-gutter.svelte-113gpvg{cursor:col-resize;flex-shrink:0;width:6px;transition:background-color .15s}.rail-gutter.svelte-113gpvg:hover{background:var(--color-accent-blue,#3b82f6);opacity:.25}.stick-toggle.svelte-fe1hyx{width:1.5rem;height:1.5rem;color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:color .15s,border-color .15s,background-color .15s;display:flex}.stick-toggle.svelte-fe1hyx:hover{color:maroon;border-color:#80000066}.stick-toggle.on.svelte-fe1hyx{color:maroon;background:#80000014;border-color:#80000073}.stick-toggle.svelte-fe1hyx svg{color:inherit;flex-shrink:0}.streaming-indicator.svelte-5t6kwy{color:#ef4444;pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;bottom:1rem;right:.25rem;transform:translateY(50%)}.streaming-indicator.centered.svelte-5t6kwy{position:static;bottom:auto;right:auto;transform:none}.dot.svelte-5t6kwy{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite svelte-5t6kwy-dot-bounce}.dot-2.svelte-5t6kwy{animation-delay:.2s}.dot-3.svelte-5t6kwy{animation-delay:.4s}@keyframes svelte-5t6kwy-dot-bounce{0%,80%,to{opacity:.2;transform:scale(.7)}40%{opacity:1;transform:scale(1.2)}}.command-help.svelte-1tbbgiz{z-index:5;background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);color:var(--color-text-secondary,#6c757d);border-radius:.5rem .5rem 0 0;flex-direction:column;gap:.375rem;padding:.5rem .625rem;font-size:.75rem;display:flex;position:absolute;bottom:100%;left:0;right:0;box-shadow:0 -6px 16px #0000001f}.help-usage.svelte-1tbbgiz{align-items:center;gap:.5rem;display:flex}.help-usage.svelte-1tbbgiz code:where(.svelte-1tbbgiz){color:var(--color-text-primary,#212529);font-size:.8125rem;font-weight:600}.help-tag.svelte-1tbbgiz{background:var(--color-accent-blue,#3b82f6);color:#fff;text-transform:uppercase;border-radius:9999px;padding:0 .375rem;font-size:.625rem;font-weight:600}.help-summary.svelte-1tbbgiz{margin:0;line-height:1.35}.help-params.svelte-1tbbgiz{flex-direction:column;gap:.125rem;margin:0;display:flex}.help-params.svelte-1tbbgiz dt:where(.svelte-1tbbgiz){float:left;margin-right:.5rem}.help-params.svelte-1tbbgiz dt:where(.svelte-1tbbgiz) code:where(.svelte-1tbbgiz){color:var(--color-accent-purple,#8b5cf6)}.help-params.svelte-1tbbgiz dd:where(.svelte-1tbbgiz){margin:0;line-height:1.35;overflow:hidden}.help-examples.svelte-1tbbgiz{flex-direction:column;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}.help-examples.svelte-1tbbgiz li:where(.svelte-1tbbgiz){align-items:baseline;gap:.5rem;line-height:1.35;display:flex}.help-examples.svelte-1tbbgiz code:where(.svelte-1tbbgiz){color:var(--color-accent-blue,#3b82f6);white-space:nowrap}.help-note.svelte-1tbbgiz{color:var(--color-text-secondary,#6c757d);margin:0;line-height:1.35}.help-hint.svelte-1tbbgiz{color:var(--color-text-muted,#adb5bd);margin:0}.mgr-text-cell.svelte-144v1my{max-width:28rem}.mgr-text-cell.mgr-stacked.svelte-144v1my .mgr-label-tag:where(.svelte-144v1my){margin-bottom:.25rem;display:block}.mgr-text-cell.mgr-stacked.svelte-144v1my .mgr-line2:where(.svelte-144v1my){display:block}.mgr-label-tag.svelte-144v1my{background:var(--color-surface-alt,#f1f3f5);color:var(--color-text-secondary,#495057);border-radius:.25rem;margin-right:.375rem;padding:0 .375rem;font-size:.6875rem;display:inline-block}.mgr-preview.svelte-144v1my{white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:bottom}.mgr-ml.svelte-144v1my{color:var(--color-text-muted,#adb5bd);font-size:.6875rem}.mgr-sticky.svelte-1kuoadm{z-index:5;margin:0 calc(-1 * var(--mgr-bleed,1rem));background:var(--color-surface-elevated,#fff);position:sticky;top:0;box-shadow:0 1px 4px #8b5cf614}.mgr-edit-portal.svelte-1kuoadm{display:contents}.mgr-sticky-bar.svelte-1kuoadm{justify-content:space-between;align-items:center;gap:.5rem;padding:.375rem .75rem;display:flex}.mgr-title.svelte-1kuoadm{flex:1;margin:0;font-size:1rem}.mgr-head-table.svelte-1kuoadm{border-collapse:collapse;table-layout:fixed;background:0 0;border:none;border-radius:0;width:100%;margin:0}.mgr-head-table.svelte-1kuoadm thead:where(.svelte-1kuoadm) th:where(.svelte-1kuoadm){border-left:none;border-right:none}.mgr-head-table.svelte-1kuoadm th:where(.svelte-1kuoadm){text-align:left;color:var(--color-text-primary);text-transform:uppercase;white-space:nowrap;background:#8b5cf61f;border:1px solid #8b5cf626;padding:.35em .6em;font-size:.6875rem;font-weight:600}.mgr-unselect-all.svelte-1kuoadm{cursor:pointer;color:var(--color-text-muted,#888);background:0 0;border:none;padding:0;font-size:.875rem;line-height:1}.mgr-unselect-all.svelte-1kuoadm:hover{color:var(--color-accent-blue,#3b82f6)}.mgr-toolbar.svelte-1kuoadm{align-items:center;gap:.375rem;display:flex}.mgr-autosel.svelte-1kuoadm{border:1px solid var(--color-border,#ced4da);background:var(--color-surface,#fff);width:3.25rem;color:var(--color-text,#212529);border-radius:.375rem;padding:.25rem .375rem;font-size:.75rem}.mgr-search.svelte-1kuoadm{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface,#f8f9fa);border-radius:.25rem;width:14rem;padding:.25rem .5rem;font-size:.75rem}.mgr-search.svelte-1kuoadm:disabled{opacity:.4;cursor:not-allowed}.mgr-btn.svelte-1kuoadm{border:1px solid var(--color-surface-border,#dee2e6);cursor:pointer;background:var(--color-surface,#f8f9fa);border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem}.mgr-btn.svelte-1kuoadm:hover{background:var(--color-surface-alt,#f1f3f5)}.mgr-btn-add.svelte-1kuoadm{color:var(--color-accent-blue,#3b82f6)}.mgr-btn-save.svelte-1kuoadm{color:#16a34a}.mgr-btn-cancel.svelte-1kuoadm{color:var(--color-text-muted,#888)}.mgr-btn-danger.svelte-1kuoadm{color:#dc2626}.mgr-btn-danger.svelte-1kuoadm:disabled{opacity:.4;cursor:not-allowed;color:var(--color-text-muted,#888)}.mgr-btn-toggle.active.svelte-1kuoadm{background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, transparent);border-color:var(--color-accent-blue,#3b82f6);color:var(--color-accent-blue,#3b82f6)}.mgr-btn-edit.svelte-1kuoadm{font-size:.6875rem}.mgr-close.svelte-1kuoadm{color:var(--color-text-muted,#888);cursor:pointer;background:0 0;border:none;padding:0 .375rem;font-size:1.25rem;line-height:1}.mgr-close.svelte-1kuoadm:hover{color:var(--color-text-primary,#212529)}.mgr-error.svelte-1kuoadm{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:.25rem;margin-bottom:.5rem;padding:.375rem .5rem}.mgr-add-row.svelte-1kuoadm{flex-wrap:wrap;align-items:flex-start;gap:.375rem;margin-bottom:.75rem;display:flex}.mgr-add-text.svelte-1kuoadm{border:1px solid var(--color-surface-border,#dee2e6);resize:vertical;border-radius:.25rem;flex:1;min-width:16rem;padding:.25rem;font-family:inherit;font-size:.75rem}.mgr-add-label.svelte-1kuoadm{border:1px solid var(--color-surface-border,#dee2e6);border-radius:.25rem;width:10rem;padding:.25rem;font-size:.75rem}.mgr-table.svelte-1kuoadm{border-collapse:collapse;table-layout:fixed;background:#8b5cf60a;border:1px solid #8b5cf633;border-radius:.5em;width:100%;margin:0 0 .5em;overflow:hidden}.mgr-table.svelte-1kuoadm th:where(.svelte-1kuoadm):first-child,.mgr-table.svelte-1kuoadm td:where(.svelte-1kuoadm):first-child{width:2rem}.mgr-table.svelte-1kuoadm th:where(.svelte-1kuoadm):nth-child(2),.mgr-table.svelte-1kuoadm td:where(.svelte-1kuoadm):nth-child(2){width:4.5rem}.mgr-table.svelte-1kuoadm th:where(.svelte-1kuoadm):nth-child(3),.mgr-table.svelte-1kuoadm td:where(.svelte-1kuoadm):nth-child(3){width:auto}.mgr-table.svelte-1kuoadm th:where(.svelte-1kuoadm):nth-child(4),.mgr-table.svelte-1kuoadm td:where(.svelte-1kuoadm):nth-child(4){width:3.5rem}.mgr-table.svelte-1kuoadm th:where(.svelte-1kuoadm):nth-child(5),.mgr-table.svelte-1kuoadm td:where(.svelte-1kuoadm):nth-child(5){width:5rem}.mgr-table.svelte-1kuoadm th:where(.svelte-1kuoadm){text-align:left;border-bottom:1px solid var(--color-surface-border,#dee2e6);text-transform:uppercase;color:var(--color-text-muted,#888);white-space:nowrap;padding:.375rem .5rem;font-size:.6875rem;font-weight:600}.mgr-table.svelte-1kuoadm td:where(.svelte-1kuoadm){text-align:left;vertical-align:top;border:1px solid #8b5cf626;padding:.35em .6em}.mgr-body-table.svelte-1kuoadm tbody:where(.svelte-1kuoadm) tr:where(.svelte-1kuoadm):nth-child(2n){background:#8b5cf608}.mgr-body-table.svelte-1kuoadm tbody:where(.svelte-1kuoadm) tr:where(.svelte-1kuoadm):hover td:where(.svelte-1kuoadm){background:#8b5cf614}.mgr-table.svelte-1kuoadm tr.sel:where(.svelte-1kuoadm) td:where(.svelte-1kuoadm){background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 14%, #8b5cf60a)}.mgr-sel-col.svelte-1kuoadm{width:2rem}.mgr-check.svelte-1kuoadm{cursor:pointer;accent-color:var(--color-accent-blue,#3b82f6)}.mgr-sort-btn.svelte-1kuoadm{font:inherit;color:inherit;cursor:pointer;text-transform:inherit;background:0 0;border:none}.mgr-sort-btn.active.svelte-1kuoadm{color:var(--color-accent-blue,#3b82f6)}.mgr-count.svelte-1kuoadm{white-space:nowrap;font-variant-numeric:tabular-nums}.mgr-macro-toggle.svelte-1kuoadm{cursor:pointer;color:var(--color-text-muted,#888);background:0 0;border:none;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;line-height:1}.mgr-macro-toggle.svelte-1kuoadm:hover{background:var(--color-surface-alt,#f1f3f5)}.mgr-macro-toggle.on.svelte-1kuoadm{color:var(--color-accent-blue,#3b82f6);font-weight:600}.mgr-macro-col.svelte-1kuoadm{white-space:nowrap;text-align:center;color:var(--color-text-muted,#888);font-size:.75rem}.mgr-editing.svelte-1kuoadm td:where(.svelte-1kuoadm){background:#8b5cf629!important}.mgr-edit-backdrop.svelte-1kuoadm{z-index:10005;background:#00000059;position:fixed;inset:0}.mgr-edit-dialog.svelte-1kuoadm{z-index:10006;background:var(--color-surface-elevated,#fff);border:1px solid #8b5cf64d;border-radius:.5rem;flex-direction:column;gap:.625rem;width:min(90vw,34rem);padding:1rem;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0000002e}.mgr-edit-dialog.svelte-1kuoadm h3:where(.svelte-1kuoadm){margin:0 0 .25rem;font-size:.9375rem}.mgr-field.svelte-1kuoadm{flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.mgr-field.svelte-1kuoadm>span:where(.svelte-1kuoadm){text-transform:uppercase;color:var(--color-text-muted,#888);font-size:.6875rem;font-weight:600}.mgr-field-pair.svelte-1kuoadm{flex-direction:row;align-items:flex-start;gap:1rem}.mgr-field-macro.svelte-1kuoadm{gap:.375rem}.mgr-edit-macro.svelte-1kuoadm{width:1rem;height:1rem;margin-top:.125rem}.mgr-edit-uses.svelte-1kuoadm{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface,#f8f9fa);border-radius:.25rem;width:6rem;padding:.25rem .5rem;font-size:.75rem}.mgr-edit-label.svelte-1kuoadm,.mgr-edit-text.svelte-1kuoadm{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface,#f8f9fa);border-radius:.25rem;padding:.25rem;font-family:inherit;font-size:.75rem}.mgr-edit-text.svelte-1kuoadm{resize:vertical;min-height:5rem}.mgr-edit-actions.svelte-1kuoadm{justify-content:flex-end;gap:.375rem;margin-top:.25rem;display:flex}.mgr-footer.svelte-1kuoadm{text-align:center;color:var(--color-text-muted,#888);padding:.5rem;font-size:.6875rem}.mgr-loading.svelte-1kuoadm,.mgr-empty.svelte-1kuoadm{text-align:center;color:var(--color-text-muted,#888);padding:2rem}.mgr-backdrop.svelte-13xs6jp{z-index:10003;background:#0006;position:fixed;inset:0}.mgr-modal.svelte-13xs6jp{z-index:10004;background:var(--color-surface-elevated,#fff);border:1px solid var(--color-surface-border,#dee2e6);border-radius:.5rem;width:90%;max-width:60rem;min-height:min(28rem,80vh);max-height:80vh;padding:0 1rem 1rem;font-size:.8125rem;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.cancel-btn.svelte-1gevkmd svg,.send-btn.svelte-1gevkmd svg,.prompt-sync-check.svelte-1gevkmd svg{color:inherit}.prompt-sync-check.on.svelte-1gevkmd{color:#9acd32}.prompt-sync-check.on.svelte-1gevkmd:hover{color:#6c9023;background-color:#f3f9e6}.agent-chip.svelte-mhnbss{border:1px solid color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);white-space:nowrap;color:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 50%, #4c1d95);background:color-mix(in srgb, var(--color-accent-purple,#8b5cf6) 8%, transparent);border-radius:9999px;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.75rem;line-height:1;display:inline-flex}.chip-button.svelte-c1qaf4 svg,.chip-button.svelte-1h02qiz svg,.chip-button.svelte-ts2c91 svg,.chip-button.svelte-1p1wfzw svg{color:var(--color-accent-purple)}.chip-button.svelte-1gttfnp svg{color:var(--color-red-600)}.floating-anchor-btn.svelte-1ebzurb{cursor:pointer;pointer-events:auto;border-radius:9999px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition:background .15s,color .15s,transform .1s;display:flex;box-shadow:0 2px 8px #00000026}.floating-anchor-btn.svelte-1ebzurb:hover{transform:scale(1.08)}.tone-cyan.svelte-1ebzurb{border:1px solid var(--color-accent-cyan,#06b6d4);background:color-mix(in srgb, var(--color-accent-cyan,#06b6d4) 12%, transparent);color:var(--color-accent-cyan,#06b6d4)}.tone-cyan.svelte-1ebzurb:hover{color:var(--color-text-primary,#fff)}.tone-cyan.active.svelte-1ebzurb{background:var(--color-accent-cyan,#06b6d4);color:#fff;border-color:var(--color-accent-cyan,#06b6d4)}.floating-anchor-btn.svelte-1ebzurb svg{color:inherit}.floating-anchor-btn.svelte-1gmo090{cursor:pointer;pointer-events:auto;border-radius:9999px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition:background .15s,color .15s,transform .1s;display:flex;box-shadow:0 2px 8px #00000026}.floating-anchor-btn.svelte-1gmo090:hover{transform:scale(1.08)}.tone-blue.svelte-1gmo090{border:1px solid var(--color-accent-blue,#3b82f6);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 12%, transparent);color:var(--color-accent-blue,#3b82f6)}.tone-blue.svelte-1gmo090:hover{color:var(--color-text-primary,#fff)}.tone-blue.draining.svelte-1gmo090{background:var(--color-accent-blue,#3b82f6);color:#fff;border-color:var(--color-accent-blue,#3b82f6);cursor:wait}.floating-anchor-btn.svelte-1gmo090 svg{color:inherit}.floating-anchor-btn.svelte-1gmo090 .spin{animation:1s linear infinite svelte-1gmo090-bte-rotate}@keyframes svelte-1gmo090-bte-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.floating-anchor-btn.svelte-1gmo090 .spin{animation:none}}.floating-anchor-btn.svelte-dnm04b{cursor:pointer;pointer-events:auto;border-radius:9999px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition:background .15s,color .15s,transform .1s;display:flex;box-shadow:0 2px 8px #00000026}.floating-anchor-btn.svelte-dnm04b:hover{transform:scale(1.08)}.tone-purple.svelte-dnm04b{border:1px solid var(--color-accent-purple,#a855f7);background:color-mix(in srgb, var(--color-accent-purple,#a855f7) 12%, transparent);color:var(--color-accent-purple,#a855f7)}.tone-purple.svelte-dnm04b:hover{color:var(--color-text-primary,#fff)}.tone-purple.active.svelte-dnm04b{background:var(--color-accent-purple,#a855f7);color:#fff;border-color:var(--color-accent-purple,#a855f7)}.floating-anchor-btn.svelte-dnm04b svg{color:inherit}.relative.svelte-ntohaz{position:relative}.floating-anchor-btn.svelte-ntohaz{cursor:pointer;pointer-events:auto;border-radius:9999px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition:background .15s,color .15s,transform .1s;display:flex;box-shadow:0 2px 8px #00000026}.floating-anchor-btn.svelte-ntohaz:hover{transform:scale(1.08)}.tone-maroon.svelte-ntohaz{color:maroon;background:#8000001f;border:1px solid maroon}.tone-maroon.svelte-ntohaz:hover{color:var(--color-text-primary,#fff)}.tone-maroon.active.svelte-ntohaz{color:#fff;background:maroon;border-color:maroon}.floating-anchor-btn.svelte-ntohaz svg{color:inherit}.shelf-item.svelte-ntohaz{border-radius:.25rem;align-items:center;gap:.25rem;padding:.125rem .25rem;display:flex}.shelf-item.svelte-ntohaz:hover{background:#80000014}.shelf-divider.svelte-ntohaz{border:none;border-top:1px solid var(--color-surface-border,#dee2e6);width:100%;margin:.125rem 0}.shelf-item.svelte-ntohaz .shelf-copy{width:1.125rem;height:1.125rem;color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.shelf-item.svelte-ntohaz .shelf-copy:hover{opacity:1;background:var(--color-surface-hover,#0000001a)}.shelf-pick.svelte-ntohaz{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex:1;align-items:center;padding:.25rem;font-size:.75rem;display:flex}.shelf-pick.svelte-ntohaz:hover{background:#80000014}.shelf-pick-path.svelte-ntohaz{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:16rem;font-weight:600;overflow:hidden}.stats-bar.svelte-1bg5es8{text-align:center;color:#7c3aed;opacity:.75;white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;height:1.5rem;padding:0 .375rem;font-size:.75rem;display:flex;overflow:hidden}.segment.svelte-1bg5es8{text-overflow:ellipsis;flex-shrink:1;overflow:hidden}.sep.svelte-1bg5es8{opacity:.5;flex-shrink:0}.macro-run.svelte-zl61ov{margin:0 .5rem .25rem;font-size:.75rem}.macro-chip.svelte-zl61ov{color:#1d4ed8;background:#3b82f61a;border-radius:6px;align-items:center;gap:.375rem;padding:.125rem .5rem;display:flex}.macro-chip[data-phase=failed].svelte-zl61ov{color:#b91c1c;background:#ef44441f}.macro-chip[data-phase=stopped].svelte-zl61ov{color:#4b5563;background:#6b72801f}.macro-chip-label.svelte-zl61ov{color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:.25rem;min-width:0;padding:.125rem 0;font-size:.75rem;display:flex}.macro-chip-text.svelte-zl61ov{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.macro-chip-caret.svelte-zl61ov{opacity:.7;flex-shrink:0}.macro-stop.svelte-zl61ov{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;flex-shrink:0;padding:0 .375rem;font-size:.6875rem;line-height:1.4}.macro-stop.svelte-zl61ov:hover{background:#ef44441f}.macro-close.svelte-zl61ov{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;flex-shrink:0;padding:0 .25rem;font-size:.75rem;line-height:1.4}.macro-close.svelte-zl61ov:hover{opacity:1}.macro-sheet.svelte-zl61ov{background:var(--color-surface-elevated,#fff);border:1px solid #3b82f640;border-radius:6px;flex-direction:column;gap:.125rem;margin-top:.25rem;padding:.375rem .5rem;display:flex}.macro-row.svelte-zl61ov{align-items:baseline;gap:.375rem;min-width:0;display:flex}.macro-row.query-row.svelte-zl61ov .macro-line-text:where(.svelte-zl61ov){opacity:.8;font-style:italic}.macro-mark.svelte-zl61ov{text-align:center;flex-shrink:0;width:1.1em}.macro-line-text.svelte-zl61ov{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-primary,#212529);flex:1;overflow:hidden}.macro-line-n.svelte-zl61ov{color:var(--color-text-muted,#868e96);flex-shrink:0;font-size:.6875rem}.macro-line-note.svelte-zl61ov{text-overflow:ellipsis;white-space:nowrap;max-width:45%;color:var(--color-text-muted,#868e96);flex-shrink:0;overflow:hidden}.macro-empty.svelte-zl61ov{color:var(--color-text-muted,#868e96);padding:.125rem 0}.macro-controls.svelte-zl61ov{gap:.5rem;margin-top:.25rem;display:flex}.macro-controls.svelte-zl61ov button:where(.svelte-zl61ov){border:1px solid var(--color-surface-border,#dee2e6);color:var(--color-text-primary,#212529);cursor:pointer;background:0 0;border-radius:.25rem;padding:.125rem .5rem;font-size:.75rem}.macro-controls.svelte-zl61ov button:where(.svelte-zl61ov):hover{background:var(--color-surface-hover,#e9ecef)}.goal-bar.svelte-k3rmjz{margin:0 .5rem .25rem;font-size:.75rem}.goal-chip.svelte-k3rmjz{color:#047857;background:#10b9811a;border-radius:6px;align-items:center;gap:.375rem;padding:.125rem .5rem;display:flex}.goal-chip[data-phase=paused].svelte-k3rmjz{color:#4b5563;background:#6b72801f}.goal-chip[data-phase=blocked].svelte-k3rmjz{color:#b45309;background:#f59e0b24}.goal-chip-label.svelte-k3rmjz{color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:.25rem;min-width:0;padding:.125rem 0;font-size:.75rem;display:flex}.goal-chip-glyph.svelte-k3rmjz{text-align:center;flex-shrink:0;width:1.1em}.goal-chip-text.svelte-k3rmjz{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.goal-chip-caret.svelte-k3rmjz{opacity:.7;flex-shrink:0}.goal-action.svelte-k3rmjz{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;flex-shrink:0;padding:0 .375rem;font-size:.6875rem;line-height:1.4}.goal-action.svelte-k3rmjz:hover{background:#0000000f}.goal-clear.svelte-k3rmjz{opacity:.7;border:none;padding:0 .25rem;font-size:.75rem}.goal-clear.svelte-k3rmjz:hover{opacity:1;background:0 0}.goal-edit-form.svelte-k3rmjz{background:var(--color-surface-elevated,#fff);border:1px solid #10b9814d;border-radius:6px;flex-direction:column;gap:.25rem;margin-top:.25rem;padding:.375rem .5rem;display:flex}.goal-edit-label.svelte-k3rmjz{color:var(--color-text-muted,#868e96);flex-direction:column;gap:.125rem;font-size:.6875rem;display:flex}.goal-edit-label.svelte-k3rmjz textarea:where(.svelte-k3rmjz),.goal-edit-label.svelte-k3rmjz input:where(.svelte-k3rmjz){border:1px solid var(--color-surface-border,#dee2e6);border-radius:.25rem;padding:.125rem .25rem;font-size:.75rem}.goal-sheet.svelte-k3rmjz{background:var(--color-surface-elevated,#fff);border:1px solid #10b9814d;border-radius:6px;flex-direction:column;gap:.125rem;margin-top:.25rem;padding:.375rem .5rem;display:flex}.goal-row.svelte-k3rmjz{align-items:baseline;gap:.375rem;min-width:0;display:flex}.goal-key.svelte-k3rmjz{width:4.5rem;color:var(--color-text-muted,#868e96);flex-shrink:0}.goal-value.svelte-k3rmjz{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;color:var(--color-text-primary,#212529);flex:1}.goal-controls.svelte-k3rmjz{gap:.5rem;margin-top:.25rem;display:flex}.goal-controls.svelte-k3rmjz button:where(.svelte-k3rmjz){border:1px solid var(--color-surface-border,#dee2e6);color:var(--color-text-primary,#212529);cursor:pointer;background:0 0;border-radius:.25rem;padding:.125rem .5rem;font-size:.75rem}.goal-controls.svelte-k3rmjz button:where(.svelte-k3rmjz):hover{background:var(--color-surface-hover,#e9ecef)}.command-note.svelte-18u549u{color:#047857;background:#10b9811f;border-radius:6px;margin:0 .5rem .25rem;padding:.25rem .5rem;font-size:.75rem}.command-note-error.svelte-18u549u{color:#b91c1c;background:#ef44441f}.composer-error.svelte-18u549u{flex-direction:column;gap:.125rem;display:flex}.composer-error-hint.svelte-18u549u{opacity:.85}.composer-area.svelte-18u549u{position:relative}.composer-stick.svelte-18u549u{z-index:20;margin-bottom:-2rem;position:absolute;bottom:100%;right:.5rem}.floating-stick.svelte-18u549u{z-index:20;background:var(--color-surface,#fff);border-radius:8px;padding:.125rem;position:absolute;bottom:1.75rem;right:.5rem;box-shadow:0 1px 4px #00000026}.settings-editor-body.svelte-cqvzi6{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.settings-toolbar.svelte-cqvzi6{border-bottom:1px solid var(--panel-border,#2a2a2a);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.settings-title.svelte-cqvzi6{font-weight:600}.settings-state.svelte-cqvzi6{opacity:.7;flex:1}.settings-error.svelte-cqvzi6{color:#ffb4bb;background:#45161c;margin:0;padding:.4rem .75rem;font-size:.8rem}.settings-editor-host.svelte-cqvzi6{flex:1;min-height:0}.markdown-panel.svelte-db6jsb{height:100%;padding:1rem 1.25rem;overflow:auto}.injected-doc.svelte-147nwn4{flex-direction:column;height:100%;display:flex}.doc-toolbar.svelte-147nwn4{border-bottom:1px solid var(--color-surface-border,#dee2e6);align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.75rem;display:flex}.doc-title.svelte-147nwn4{color:maroon;font-weight:600}.doc-state.svelte-147nwn4{color:var(--color-text-secondary,#6c757d)}.doc-toolbar.svelte-147nwn4 button:where(.svelte-147nwn4){color:inherit;cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:.875rem}.doc-missing.svelte-147nwn4{color:var(--color-text-secondary,#6c757d);padding:1rem 1.25rem;font-size:.75rem}.doc-editor-host.svelte-147nwn4{flex:1;min-height:0}.actions.svelte-14l0ymn{align-items:center;gap:.25rem;margin-left:auto;display:inline-flex}.head-btn.svelte-14l0ymn{border:1px solid var(--color-border,#d0d7de);width:1.25rem;height:1.25rem;color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.head-btn.svelte-14l0ymn:hover,.head-btn.svelte-14l0ymn:focus-visible{background:var(--color-surface-secondary,#f1f3f5);color:var(--color-text-primary,#212529)}.explorer-toolbar.svelte-b18z79{background:var(--color-surface-primary,#fff);flex-shrink:0;justify-content:flex-start;align-items:center;gap:.25rem;width:100%;display:flex}.tabs.svelte-b18z79{align-items:center;gap:.125rem;margin-right:.375rem;display:inline-flex}.tab.svelte-b18z79{color:var(--color-text-secondary,#6c757d);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.25rem;padding:.05rem .4rem;font-size:.75rem}.tab.active.svelte-b18z79{border-color:var(--color-border,#d0d7de);background:var(--color-surface-secondary,#f1f3f5);color:var(--color-text-primary,#212529);font-weight:600}.fti.svelte-hurohb{--fti-paper:var(--color-bg,#fff);flex-shrink:0}.fti.code.svelte-hurohb,.fti.html.svelte-hurohb,.fti.markdown.svelte-hurohb{color:#4176e6}.fti.excel.svelte-hurohb{color:#22c55e}.fti.image.svelte-hurohb,.fti.video.svelte-hurohb{color:#8b76f6}.fti.other.svelte-hurohb{color:#cfd3d6}.fti.pdf.svelte-hurohb{color:#ec1313}.fti.ppt.svelte-hurohb{color:#f59e0b}.fti.word.svelte-hurohb{color:#5686fe}.fold.svelte-hurohb,.mark.svelte-hurohb{fill:var(--fti-paper)}.tree.svelte-hbtlo6{margin:0;padding:0;list-style:none}.tree.svelte-hbtlo6 ul:where(.svelte-hbtlo6){margin:0;padding:0 0 0 .75rem;list-style:none}.row-line.svelte-hbtlo6{min-width:0}.row.svelte-hbtlo6{font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:.25rem;max-width:100%;padding:.1rem .25rem;display:inline-flex;overflow:hidden}.caret.svelte-hbtlo6{flex-shrink:0;justify-content:center;align-items:center;width:.75rem;display:inline-flex}.entry-icon.svelte-hbtlo6{flex-shrink:0;align-items:center;display:inline-flex}.entry-icon.svelte-hbtlo6 svg{color:inherit}.dir.svelte-hbtlo6 .entry-icon:where(.svelte-hbtlo6){color:#7c3aed}.row.repo.svelte-hbtlo6 .entry-icon:where(.svelte-hbtlo6){color:#f7ad31}.row.repo.svelte-hbtlo6 .entry-name:where(.svelte-hbtlo6){color:#ff4500;font-weight:600}.row.hot.svelte-hbtlo6 .entry-name:where(.svelte-hbtlo6),.row.changed.svelte-hbtlo6 .entry-name:where(.svelte-hbtlo6){color:#d2691e;font-weight:600}.entry-name.svelte-hbtlo6{text-overflow:ellipsis;overflow:hidden}.note.svelte-hbtlo6{color:var(--color-text-muted,#6b7280);padding:.1rem .25rem;font-size:.75rem}.note.fail.svelte-hbtlo6{color:#b91c1c}.repo-head.svelte-yuc21i{font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;max-width:100%;font-weight:600;display:inline-flex}.repo-head.svelte-yuc21i .caret:where(.svelte-yuc21i){color:#ff4500;flex-shrink:0;justify-content:center;align-items:center;width:.75rem;display:inline-flex}.repo-head.svelte-yuc21i .caret:where(.svelte-yuc21i) svg{color:inherit}.tree.svelte-yuc21i{margin:0;padding:0;list-style:none}.row.svelte-yuc21i{font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:.25rem;max-width:100%;padding:.1rem .25rem;display:inline-flex;overflow:hidden}.caret.svelte-yuc21i{flex-shrink:0;justify-content:center;align-items:center;width:.75rem;display:inline-flex}.repo-group.svelte-yuc21i{margin-bottom:.5rem}.repo-head.svelte-yuc21i{color:#ff4500;text-overflow:ellipsis;white-space:nowrap;padding:.1rem .25rem;font-weight:600;overflow:hidden}.change-code.svelte-yuc21i{font-family:var(--font-mono,monospace);color:#d2691e;justify-content:center;width:1.5rem;font-size:.6875rem}.row.svelte-yuc21i .entry-name:where(.svelte-yuc21i){color:#d2691e;font-weight:600}.entry-name.svelte-yuc21i{text-overflow:ellipsis;overflow:hidden}.note.svelte-yuc21i{color:var(--color-text-muted,#6b7280);padding:.1rem .25rem;font-size:.75rem}.tree.svelte-yuc21i .note:where(.svelte-yuc21i){margin-left:1rem}.note.fail.svelte-yuc21i{color:#b91c1c}.explorer.svelte-v4uero{flex-direction:column;gap:.25rem;height:100%;padding:.5rem;font-size:.8125rem;display:flex;position:relative;overflow:hidden}.tree-scroll.svelte-v4uero{flex:1;min-height:0;overflow:auto}.changes.svelte-v4uero{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.file-toolbar.svelte-cqlxfy{align-items:center;gap:.5rem;display:flex}.dirty.svelte-cqlxfy{color:#b45309;flex-shrink:0;font-size:.6875rem}.save-btn.svelte-cqlxfy{border:1px solid var(--color-border,#d0d7de);cursor:pointer;background:0 0;border-radius:.25rem;flex-shrink:0;padding:.1rem .5rem;font-size:.6875rem}.save-btn.svelte-cqlxfy:disabled{opacity:.5;cursor:not-allowed}.seg-group.svelte-cqlxfy{flex-shrink:0;display:inline-flex}.seg-group.svelte-cqlxfy .seg:where(.svelte-cqlxfy){border:1px solid var(--color-border,#d0d7de);cursor:pointer;background:0 0;padding:.1rem .5rem;font-size:.6875rem}.seg-group.svelte-cqlxfy .seg.left:where(.svelte-cqlxfy){border-radius:.25rem 0 0 .25rem}.seg-group.svelte-cqlxfy .seg.right:where(.svelte-cqlxfy){border-left:none;border-radius:0 .25rem .25rem 0}.seg-group.svelte-cqlxfy .seg.on:where(.svelte-cqlxfy){background:var(--color-accent-blue,#3b82f6);border-color:var(--color-accent-blue,#3b82f6);color:#fff}.seg-group.svelte-cqlxfy .seg:where(.svelte-cqlxfy):disabled{opacity:.5;cursor:not-allowed}.stale.svelte-cqlxfy{color:var(--color-text-muted,#6b7280);flex-shrink:0;font-size:.6875rem}.copy-slot.svelte-cqlxfy{flex-shrink:0;align-items:center;display:inline-flex}.copy-slot.push.svelte-cqlxfy{margin-left:auto}.tabs.svelte-cqlxfy{gap:.125rem;margin-left:auto;display:inline-flex}.tabs.svelte-cqlxfy button:where(.svelte-cqlxfy){border:1px solid var(--color-border,#d0d7de);cursor:pointer;background:0 0;border-radius:.25rem;padding:.1rem .5rem;font-size:.6875rem}.tabs.svelte-cqlxfy button.active:where(.svelte-cqlxfy){background:var(--color-accent-blue,#3b82f6);border-color:var(--color-accent-blue,#3b82f6);color:#fff}.file-panel.svelte-1pgc8hn{flex-direction:column;gap:.25rem;height:100%;padding:.5rem;font-size:.8125rem;display:flex;overflow:auto}.note.svelte-1pgc8hn{color:var(--color-text-muted,#6b7280);font-size:.75rem}.note.fail.svelte-1pgc8hn{color:#b91c1c}.file-editor-host.svelte-1pgc8hn{border:1px solid var(--color-border,#d0d7de);border-radius:.25rem;flex:1;min-height:8rem}.img-preview.svelte-1pgc8hn{object-fit:contain;border:1px solid var(--color-border,#d0d7de);background:repeating-conic-gradient(#f0f0f0 0% 25%,#fff 0% 50%) 50%/16px 16px;border-radius:.25rem;max-width:100%;max-height:100%}.html-frame.svelte-1pgc8hn{border:1px solid var(--color-border,#d0d7de);background:#fff;border-radius:.25rem;flex:1;width:100%;min-height:12rem}.gutter.svelte-gujdub{cursor:col-resize;background:0 0;border:none;flex:0 0 6px;align-self:stretch;width:6px;padding:0;transition:background-color .15s;display:block}.gutter.svelte-gujdub:hover,.gutter.svelte-gujdub:active{background:var(--color-accent-blue,#3b82f6)}.gutter.svelte-gujdub:focus-visible{outline:2px solid var(--color-accent-blue,#3b82f6);outline-offset:-2px}.panels-viewport.svelte-1yjbji0{background:var(--color-surface-secondary,#f1f3f5);flex:1;min-width:0;overflow:auto hidden}.zoom-frame.svelte-1yjbji0{height:100%}.panels-row.svelte-1yjbji0{width:max-content;transform:scale(var(--zoom,1));transform-origin:0 0;height:calc(100% / var(--zoom,1));align-items:stretch;padding:4px;display:flex}.panel-header.svelte-1xanvl9{min-height:1.75rem;color:var(--color-text-secondary,#6c757d);border-bottom:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-primary,#fff);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.25rem .5rem;font-size:.6875rem;display:flex}.panel-header.selected.svelte-1xanvl9{background:#fdf5e6}.label.svelte-1xanvl9{white-space:nowrap;align-items:center;gap:.25rem;min-width:0;display:inline-flex;overflow:hidden}.id.svelte-1xanvl9{letter-spacing:.01em;flex-shrink:0}.actions.svelte-1xanvl9{flex-shrink:0;align-items:center;gap:.125rem;display:inline-flex}.hdr-btn.svelte-1xanvl9{width:1.25rem;height:1.25rem;color:var(--color-text-secondary,#6c757d);cursor:pointer;background:0 0;border:none;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hdr-btn.svelte-1xanvl9:hover,.hdr-btn.svelte-1xanvl9:focus-visible{background:var(--color-surface-secondary,#f1f3f5);color:var(--color-text-primary,#212529)}.hdr-btn.svelte-1xanvl9:disabled{opacity:.5;cursor:not-allowed}.column.svelte-1cuodug{background:var(--color-surface-primary,#fff);border-right:1px solid var(--color-surface-border,#dee2e6);flex-direction:column;flex-shrink:0;height:100%;display:flex;position:relative}.width-badge.svelte-1cuodug{z-index:5;pointer-events:none;border:1px solid color-mix(in srgb, var(--color-accent-blue,#3b82f6) 50%, #1e3a8a);background:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 10%, #fff);color:color-mix(in srgb, var(--color-accent-blue,#3b82f6) 30%, #1e3a8a);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:1;border-radius:.375rem;padding:.125rem .375rem;font-size:.6875rem;line-height:1.25;position:absolute;top:2.5rem;right:.875rem}.width-badge.fading.svelte-1cuodug{opacity:0;transition:opacity 10s linear}@media (prefers-reduced-motion:reduce){.width-badge.fading.svelte-1cuodug{transition:none}}.column.selected.svelte-1cuodug:after{content:"";z-index:5;pointer-events:none;-webkit-mask-composite:xor;background:linear-gradient(135deg,#60a5fa 0%,#a78bfa 45%,lch(38.63% 66.68 19.97) 100%);border-radius:.75rem;padding:5px;position:absolute;inset:-3px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.body.svelte-1cuodug{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.rail-column.svelte-s09nms{background:var(--color-surface-elevated,#fff);flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:visible}.rail-gutter.svelte-s09nms{cursor:col-resize;flex-shrink:0;width:6px;transition:background-color .15s}.rail-gutter.svelte-s09nms:hover{background:var(--color-accent-blue,#3b82f6);opacity:.25}.empty-floor.svelte-z8g5d9{text-align:center;pointer-events:none;color:var(--color-text-secondary,#6c757d);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:flex;position:absolute;inset:0}.empty-floor.svelte-z8g5d9 .hint:where(.svelte-z8g5d9){opacity:.8;font-size:.75rem}.add-panel.svelte-10hagb1{align-items:center;gap:.375rem;display:flex}.add-panel.svelte-10hagb1 input:where(.svelte-10hagb1){border:1px solid var(--color-surface-border,#dee2e6);min-width:0;color:var(--color-text-primary,#212529);background:var(--color-surface-primary,#fff);border-radius:.375rem;flex:1;padding:.25rem .5rem;font-family:ui-monospace,monospace;font-size:.75rem}.add-panel.svelte-10hagb1 input:where(.svelte-10hagb1):focus-visible{outline:2px solid var(--color-accent-blue,#3b82f6);outline-offset:-1px}.add-panel.svelte-10hagb1 button:where(.svelte-10hagb1){border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-secondary,#f1f3f5);color:var(--color-text-primary,#212529);cursor:pointer;border-radius:.375rem;flex-shrink:0;padding:.25rem .625rem;font-size:.75rem}.add-panel.svelte-10hagb1 button:where(.svelte-10hagb1):focus-visible{outline:2px solid var(--color-accent-blue,#3b82f6);outline-offset:-1px}.slider-width.svelte-1clwddj{color:var(--color-text-secondary,#6c757d);flex-direction:column;gap:.25rem;font-size:.6875rem;display:flex}.caption.svelte-1clwddj{justify-content:space-between;display:flex}.px.svelte-1clwddj{font-variant-numeric:tabular-nums;color:var(--color-text-primary,#212529)}.slider-width.svelte-1clwddj input:where(.svelte-1clwddj){width:100%;accent-color:var(--color-accent-blue,#3b82f6)}.slider-width.svelte-1clwddj input:where(.svelte-1clwddj):focus-visible{outline:2px solid var(--color-accent-blue,#3b82f6);outline-offset:2px}.slider-zoom.svelte-9i0zv0{color:var(--color-text-secondary,#6c757d);flex-direction:column;gap:.25rem;font-size:.6875rem;display:flex}.caption.svelte-9i0zv0{justify-content:space-between;display:flex}.pct.svelte-9i0zv0{font-variant-numeric:tabular-nums;color:var(--color-text-primary,#212529)}.slider-zoom.svelte-9i0zv0 input:where(.svelte-9i0zv0){width:100%;accent-color:var(--color-accent-blue,#3b82f6)}.slider-zoom.svelte-9i0zv0 input:where(.svelte-9i0zv0):focus-visible{outline:2px solid var(--color-accent-blue,#3b82f6);outline-offset:2px}.tray-buttons.svelte-1cnxsid{justify-content:flex-end;align-items:center;gap:.375rem;display:flex}.tray.svelte-xu2fbc{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-primary,#fff);border-radius:.5rem;flex-direction:column;gap:.625rem;min-width:15rem;padding:.75rem;display:flex;position:absolute;top:calc(100% + .375rem);right:0;box-shadow:0 4px 16px #0000001f}.controlbar.svelte-vs008k{z-index:30;position:fixed;top:.5rem;right:.75rem}.trigger.svelte-vs008k{border:1px solid var(--color-surface-border,#dee2e6);background:var(--color-surface-primary,#fff);width:1.75rem;height:1.75rem;color:var(--color-text-secondary,#6c757d);cursor:pointer;opacity:.65;border-radius:.375rem;justify-content:center;align-items:center;margin-left:auto;transition:opacity .15s,color .15s;display:inline-flex;box-shadow:0 1px 2px #00000014}.controlbar.svelte-vs008k:hover .trigger:where(.svelte-vs008k),.controlbar.open.svelte-vs008k .trigger:where(.svelte-vs008k),.trigger.svelte-vs008k:focus-visible{opacity:1;color:var(--color-text-primary,#212529)}.conversation-page.svelte-1uha8ag{background-color:#fff}.panel-manager-body.svelte-1uha8ag{--mgr-bleed:0rem;height:100%;padding:0;font-size:.8125rem;overflow-y:auto}.floor.svelte-1uha8ag{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.panel-error.svelte-1uha8ag{text-align:center;color:#b91c1c;background:#fef2f2;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;padding:1rem;font-size:.8125rem;display:flex}.panel-error.svelte-1uha8ag button:where(.svelte-1uha8ag){color:#b91c1c;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:.375rem;padding:.25rem .75rem;font-size:.75rem}.panel-loading.svelte-1uha8ag{height:100%;color:var(--color-text-secondary,#6c757d);justify-content:center;align-items:center;font-size:.875rem;display:flex}