oh-my-agent-web 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +86 -447
  2. package/dist/server/approval/read-only.js +107 -0
  3. package/dist/server/approval/rules.js +85 -0
  4. package/dist/server/approval/scope.js +150 -0
  5. package/dist/server/brand.js +2 -0
  6. package/dist/server/cli-config.js +52 -0
  7. package/dist/server/cli-info.js +101 -0
  8. package/dist/server/cli.js +304 -0
  9. package/dist/server/engine/builtin.js +61 -0
  10. package/dist/server/engine/catalog.js +8 -0
  11. package/dist/server/engine/codex-approvals.js +45 -0
  12. package/dist/server/engine/codex-map.js +298 -0
  13. package/dist/server/engine/codex-sessions.js +159 -0
  14. package/dist/server/engine/codex-transport.js +49 -0
  15. package/dist/server/engine/codex.js +314 -0
  16. package/dist/server/engine/dsh-history.js +195 -0
  17. package/dist/server/engine/dsh-log.js +245 -0
  18. package/dist/server/engine/dsh-map.js +221 -0
  19. package/dist/server/engine/dsh-sessions.js +207 -0
  20. package/dist/server/engine/dsh-transport.js +37 -0
  21. package/dist/server/engine/dsh.js +284 -0
  22. package/dist/server/engine/fake.js +231 -0
  23. package/dist/server/engine/jsonrpc-stdio.js +241 -0
  24. package/dist/server/engine/model-registry-reload.js +115 -0
  25. package/dist/server/engine/pi-events.js +148 -0
  26. package/dist/server/engine/pi-rename.js +14 -0
  27. package/dist/server/engine/pi-sdk.js +343 -0
  28. package/dist/server/engine/pi-session-model.js +23 -0
  29. package/dist/server/engine/pi-thinking.js +34 -0
  30. package/dist/server/engine/pi-transcript.js +225 -0
  31. package/dist/server/engine/pi-version.js +11 -0
  32. package/dist/server/engine/port.js +1 -0
  33. package/dist/server/engine/registry.js +47 -0
  34. package/dist/server/engine/scratch.js +13 -0
  35. package/dist/server/engine/suggestion-guidance.js +9 -0
  36. package/dist/server/engine/switchable.js +22 -0
  37. package/dist/server/engine/wiring.js +107 -0
  38. package/dist/server/files/dir-routes.js +40 -0
  39. package/dist/server/files/file-search.js +63 -0
  40. package/dist/server/files/file-service.js +232 -0
  41. package/dist/server/files/files-routes.js +182 -0
  42. package/dist/server/files/git-info.js +186 -0
  43. package/dist/server/http/auth-routes.js +99 -0
  44. package/dist/server/http/auth.js +191 -0
  45. package/dist/server/http/aux-routes.js +24 -0
  46. package/dist/server/http/compress.js +75 -0
  47. package/dist/server/http/health-and-static.js +33 -0
  48. package/dist/server/http/live-routes.js +113 -0
  49. package/dist/server/http/login-page.js +200 -0
  50. package/dist/server/index.js +342 -520
  51. package/dist/server/markers/actions.js +262 -0
  52. package/dist/server/protocol-parse.js +201 -0
  53. package/dist/server/protocol-settings.js +1 -0
  54. package/dist/server/protocol.js +6 -0
  55. package/dist/server/providers/catalog-store.js +85 -0
  56. package/dist/server/providers/catalog-writes.js +197 -0
  57. package/dist/server/providers/catalog.js +77 -0
  58. package/dist/server/providers/enabled-models.js +118 -0
  59. package/dist/server/providers/import-models.js +69 -0
  60. package/dist/server/providers/import-routes.js +136 -0
  61. package/dist/server/providers/model-test.js +52 -0
  62. package/dist/server/providers/probe.js +64 -0
  63. package/dist/server/providers/provider-handlers.js +203 -0
  64. package/dist/server/providers/provider-store.js +327 -0
  65. package/dist/server/providers/request-headers.js +7 -0
  66. package/dist/server/providers/validate.js +241 -0
  67. package/dist/server/push/push-routes.js +114 -0
  68. package/dist/server/push/push.js +120 -0
  69. package/dist/server/session/approval-bridge.js +103 -0
  70. package/dist/server/session/attachment-resolve.js +21 -0
  71. package/dist/server/session/client-view.js +82 -0
  72. package/dist/server/session/conversation-create.js +65 -0
  73. package/dist/server/session/delete-session.js +84 -0
  74. package/dist/server/session/engine-switch.js +108 -0
  75. package/dist/server/session/lock.js +82 -0
  76. package/dist/server/session/model-controller.js +111 -0
  77. package/dist/server/session/notices.js +31 -0
  78. package/dist/server/session/pi-opener.js +123 -0
  79. package/dist/server/session/pi-refresh.js +51 -0
  80. package/dist/server/session/pi-sessions-provider.js +46 -0
  81. package/dist/server/session/pi-sessions.js +272 -0
  82. package/dist/server/session/refresh-actions.js +42 -0
  83. package/dist/server/session/rename-session.js +23 -0
  84. package/dist/server/session/runtime-services.js +28 -0
  85. package/dist/server/session/runtime-types.js +1 -0
  86. package/dist/server/session/runtime.js +358 -0
  87. package/dist/server/session/session-stats.js +88 -0
  88. package/dist/server/session/settings.js +367 -0
  89. package/dist/server/session/snapshot-for.js +7 -0
  90. package/dist/server/session/stats-refresher.js +50 -0
  91. package/dist/server/session/switch-conversation.js +86 -0
  92. package/dist/server/session/throttle.js +14 -0
  93. package/dist/server/session/turn-events.js +126 -0
  94. package/dist/server/session/turn-finish.js +79 -0
  95. package/dist/server/session/turn-markers.js +26 -0
  96. package/dist/server/session/turn-queue.js +111 -0
  97. package/dist/server/session/turn-send.js +88 -0
  98. package/dist/server/session/turn-watchdog.js +77 -0
  99. package/dist/server/sessions/session-routes.js +17 -0
  100. package/dist/server/skills/skill-routes.js +28 -0
  101. package/dist/server/skills/skill-store.js +134 -0
  102. package/dist/server/snapshot/fan-out.js +10 -0
  103. package/dist/server/snapshot/messages.js +75 -0
  104. package/dist/server/snapshot/sender.js +62 -0
  105. package/dist/server/snapshot/state.js +193 -0
  106. package/dist/server/terminal/terminal-routes.js +176 -0
  107. package/dist/server/terminal/terminal-session.js +140 -0
  108. package/dist/server/uploads/upload-routes.js +64 -0
  109. package/dist/server/uploads/upload-store.js +115 -0
  110. package/dist/server/util/data-dir.js +36 -0
  111. package/dist/server/util/env.js +140 -0
  112. package/dist/server/util/ids.js +28 -0
  113. package/dist/server/util/log-file.js +67 -0
  114. package/dist/server/util/log.js +52 -0
  115. package/dist/server/util/origin.js +75 -0
  116. package/dist/server/util/paths.js +60 -0
  117. package/dist/server/util/pricing-index.js +121 -0
  118. package/dist/server/util/pricing.js +214 -0
  119. package/dist/server/util/startup.js +34 -0
  120. package/dist/server/util/upstream-version.js +140 -0
  121. package/dist/server/util/usage.js +19 -0
  122. package/dist/server/util/version.js +50 -0
  123. package/dist/server/ws/handle-message.js +95 -0
  124. package/package.json +49 -63
  125. package/web/dist/apple-touch-icon-precomposed.png +0 -0
  126. package/web/dist/apple-touch-icon.png +0 -0
  127. package/web/dist/assets/abnfDiagram-WEYOIA3C-NLp09iEC.js +1 -0
  128. package/web/dist/assets/arc-DviL9o3c.js +1 -0
  129. package/web/dist/assets/architecture-WOLXFQ4H-fjsM_Sy3.js +1 -0
  130. package/web/dist/assets/architectureDiagram-ZHVYKT53-Cn3B4TE8.js +36 -0
  131. package/web/dist/assets/array-BifhSqXX.js +1 -0
  132. package/web/dist/assets/blockDiagram-RJAE7QA3-CIuvxWvi.js +140 -0
  133. package/web/dist/assets/c4Diagram-XDPPPE54-DvdKmEpF.js +38 -0
  134. package/web/dist/assets/channel-C3AQ6nAs.js +1 -0
  135. package/web/dist/assets/chunk-2E7WHVMD-HNNASGCS.js +88 -0
  136. package/web/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  137. package/web/dist/assets/chunk-4EMNKR2T-Cg-eRwBE.js +1 -0
  138. package/web/dist/assets/chunk-55XCU76K-BweiisZL.js +1 -0
  139. package/web/dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  140. package/web/dist/assets/chunk-7S6XSTFO-BCzIiP-6.js +2 -0
  141. package/web/dist/assets/chunk-AQDTSKZB-Dl0NRFuU.js +72 -0
  142. package/web/dist/assets/chunk-DSNLSHJZ-zhHCjjN9.js +129 -0
  143. package/web/dist/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
  144. package/web/dist/assets/chunk-HAGFOTED-BDQqU2EH.js +62 -0
  145. package/web/dist/assets/chunk-HNE4Q36P-B-qRzMjX.js +1 -0
  146. package/web/dist/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
  147. package/web/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  148. package/web/dist/assets/chunk-NGNAAXSQ-C2Wy9Xmz.js +136 -0
  149. package/web/dist/assets/chunk-NQOKRVIF-CNcvhMn_.js +213 -0
  150. package/web/dist/assets/chunk-UHW7PFBP-Dwr8LUzr.js +1 -0
  151. package/web/dist/assets/chunk-VQ5W62QI-O8sN6jJu.js +1 -0
  152. package/web/dist/assets/chunk-WQQL4CDK-B6-59Zg2.js +10 -0
  153. package/web/dist/assets/chunk-XXDRQBXY-DvSbeUlZ.js +1 -0
  154. package/web/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  155. package/web/dist/assets/chunk-YZO67HFG-BXpKYKsw.js +1 -0
  156. package/web/dist/assets/chunk-ZAUX2LTX-B1Z5VSkz.js +1 -0
  157. package/web/dist/assets/chunk-ZCHMQSOR-h_5mBLIA.js +2 -0
  158. package/web/dist/assets/classDiagram-v2-4MYWR3UA-Dr6JnaaV.js +217 -0
  159. package/web/dist/assets/cose-bilkent-JH36ORCC-36ShkR7R.js +1 -0
  160. package/web/dist/assets/cynefin-EF2NZ3EQ-Dg6bI7pC.js +1 -0
  161. package/web/dist/assets/cynefinDiagram-WF24UDRP-B0YHpBlR.js +62 -0
  162. package/web/dist/assets/cytoscape.esm-BegBNzOV.js +321 -0
  163. package/web/dist/assets/dagre-NK4GIZVX-Cx3mn7YS.js +4 -0
  164. package/web/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  165. package/web/dist/assets/diagram-CBK3MWTC-l8aZG_Bm.js +24 -0
  166. package/web/dist/assets/diagram-I5XIIV2D-Bd5f14_h.js +24 -0
  167. package/web/dist/assets/diagram-ODIL2UCW-hBsxCYUj.js +30 -0
  168. package/web/dist/assets/diagram-PFBEJUXE-BgpIBUYl.js +3 -0
  169. package/web/dist/assets/diagram-RJA3I4VV-CDU1gUVD.js +41 -0
  170. package/web/dist/assets/diagram-TYUNFSNR-Iuxh7Tqf.js +200 -0
  171. package/web/dist/assets/dist-C86cKTuE.js +1 -0
  172. package/web/dist/assets/ebnfDiagram-V4P3TTPT-Cms0HFKh.js +1 -0
  173. package/web/dist/assets/elk-QONTBCTQ-B7yEy0PQ.js +27 -0
  174. package/web/dist/assets/erDiagram-KYQIGQAA-CL48j4aU.js +99 -0
  175. package/web/dist/assets/eventmodeling-K75KTNOO-CFvkaejh.js +1 -0
  176. package/web/dist/assets/flowDiagram-IUGLLWBU-6UyKXpqG.js +1 -0
  177. package/web/dist/assets/ganttDiagram-R7GPNTJY-vdMr-0ZV.js +292 -0
  178. package/web/dist/assets/gitGraph-VSP46ZUC-2z85Wuwo.js +1 -0
  179. package/web/dist/assets/gitGraphDiagram-PDYL7XHY-BY4GPiqC.js +106 -0
  180. package/web/dist/assets/graphlib-DS17s2tU.js +1 -0
  181. package/web/dist/assets/index-Bjn56a2i.js +76 -0
  182. package/web/dist/assets/index-Drp6e5iU.css +1 -0
  183. package/web/dist/assets/info-OHQRW6UA-ECzkYTx-.js +1 -0
  184. package/web/dist/assets/infoDiagram-MVDRKAX5-DDk5EAeb.js +2 -0
  185. package/web/dist/assets/init-C-OQMol4.js +1 -0
  186. package/web/dist/assets/ishikawaDiagram-HPEHV2GE-9yPH4J94.js +70 -0
  187. package/web/dist/assets/journeyDiagram-BOSHW7O7-BPTIap3l.js +139 -0
  188. package/web/dist/assets/kanban-definition-FNSA4HC5-BbADHrA8.js +89 -0
  189. package/web/dist/assets/katex-B_JcIwqj.js +257 -0
  190. package/web/dist/assets/line-CHV9_4lL.js +1 -0
  191. package/web/dist/assets/linear-C-eZsBTv.js +1 -0
  192. package/web/dist/assets/mermaid-parser.core-BiAhX1l1.js +7 -0
  193. package/web/dist/assets/mermaid.core-BxP_A_zj.js +44 -0
  194. package/web/dist/assets/mindmap-definition-6OY57UG3-BMWlit95.js +98 -0
  195. package/web/dist/assets/ordinal-BDEzSJ7C.js +1 -0
  196. package/web/dist/assets/packet-JDAUHWVQ-FVApuKOp.js +1 -0
  197. package/web/dist/assets/path-fybaL0A-.js +1 -0
  198. package/web/dist/assets/pegDiagram-ECIUJNBX-WjWJvDHM.js +1 -0
  199. package/web/dist/assets/pie-XZMESJXO-BGCZnvhp.js +1 -0
  200. package/web/dist/assets/pieDiagram-GNMPY74T-DJpAC_JC.js +39 -0
  201. package/web/dist/assets/quadrantDiagram-D57K4MC3-hxx5c7oq.js +7 -0
  202. package/web/dist/assets/radar-ABXABTNO-BU9Shc-O.js +1 -0
  203. package/web/dist/assets/railroad-I3PHUGI6-pWj8d-G4.js +1 -0
  204. package/web/dist/assets/railroad-abnf-LNEFI6M7-D7HZBTAj.js +1 -0
  205. package/web/dist/assets/railroad-ebnf-DWYD2UWJ-CKiXJSuM.js +1 -0
  206. package/web/dist/assets/railroad-peg-JR7BVNR7-DB3VJHgR.js +1 -0
  207. package/web/dist/assets/railroadDiagram-Y72NRBL7-Cev7Y65k.js +1 -0
  208. package/web/dist/assets/requirementDiagram-EQYSW5RA-CqbwMLD8.js +84 -0
  209. package/web/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  210. package/web/dist/assets/sankeyDiagram-SY24JHO5-V2cyVi8q.js +40 -0
  211. package/web/dist/assets/sequenceDiagram-BLEHNHQU-By6NJOPM.js +169 -0
  212. package/web/dist/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  213. package/web/dist/assets/src-Da91fG3g.js +1 -0
  214. package/web/dist/assets/stateDiagram-v2-A6IESKWZ-BnPGX5UI.js +291 -0
  215. package/web/dist/assets/swimlanes-B3ENRKFQ-C58BpIpm.js +1 -0
  216. package/web/dist/assets/swimlanesDiagram-AYQRV4AK-RaivxSsc.js +8 -0
  217. package/web/dist/assets/timeline-definition-JXYKGLGB-Hgo1DhnS.js +120 -0
  218. package/web/dist/assets/treeView-D4JQ5SDB-DF0dfjqB.js +1 -0
  219. package/web/dist/assets/treemap-SAJKECNS-CSSM5FqB.js +1 -0
  220. package/web/dist/assets/usecaseDiagram-WPOLBNNX-BkBBD1NY.js +328 -0
  221. package/web/dist/assets/vennDiagram-Q3Y3IDCW-Bm28keX_.js +34 -0
  222. package/web/dist/assets/wardley-7MLQ67FV-By7KgEQX.js +1 -0
  223. package/web/dist/assets/wardleyDiagram-IVAIDKWA-oVtIrnGa.js +78 -0
  224. package/web/dist/assets/xychartDiagram-4URNHDU4-aI8FH4g2.js +7 -0
  225. package/web/dist/favicon-32.png +0 -0
  226. package/web/dist/favicon.ico +0 -0
  227. package/web/dist/favicon.svg +20 -8
  228. package/web/dist/icons/apple-touch-icon-180.png +0 -0
  229. package/web/dist/icons/icon-192.png +0 -0
  230. package/web/dist/icons/icon-512.png +0 -0
  231. package/web/dist/icons/icon-maskable-512.png +0 -0
  232. package/web/dist/index.html +21 -27
  233. package/web/dist/manifest.webmanifest +17 -0
  234. package/web/dist/maskable.svg +25 -0
  235. package/web/dist/sw.js +40 -0
  236. package/bin/oh-my-agent-web-ps.mjs +0 -203
  237. package/bin/oh-my-agent-web-ws.mjs +0 -593
  238. package/bin/oh-my-agent-web.mjs +0 -321
  239. package/bin/update-check.mjs +0 -142
  240. package/dist/server/codex-client.js +0 -310
  241. package/dist/server/codex-supervisor.js +0 -446
  242. package/dist/server/fs-service.js +0 -144
  243. package/dist/server/request-inspector.js +0 -458
  244. package/dist/shared/protocol.js +0 -112
  245. package/scripts/manage-server.mjs +0 -155
  246. package/scripts/omaw.mjs +0 -74
  247. package/shared/protocol.ts +0 -228
  248. package/web/dist/assets/index-B8-VzDf2.css +0 -1
  249. package/web/dist/assets/index-DeC2eiiq.js +0 -42
  250. package/web/dist/assets/markdown-CYXe6JZx.js +0 -55
@@ -0,0 +1 @@
1
+ .xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}:root{--bg:#fff;--bg-elev:#f7f8fa;--bg-elev-2:#eef1f5;--border:#e2e6ec;--border-strong:#cfd6df;--text:#1b2530;--text-dim:#4a5a6a;--text-faint:#7b8794;--accent:#1f6feb;--accent-dim:#9dc0f5;--green:#1a7f37;--amber:#b06a00;--red:#c62828;--speed-bg:#e7f5ff;--speed-fg:#1971c2;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--radius:10px;--gap:12px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;font:16px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#root{height:100%}.app{gap:var(--gap);height:100%;padding:var(--gap);flex-direction:column;min-width:0;display:flex}.workspace{gap:var(--gap);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.topbar{flex:none;align-items:center;gap:8px;min-width:0;display:flex}.brand{letter-spacing:.02em;font-weight:600}.topbar-spacer{flex:auto;min-width:0}.main{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-width:0;min-height:0;padding:var(--gap);flex:auto;position:relative;overflow-y:auto}.chip{border:1px solid var(--border);color:var(--text-dim);border-radius:999px;flex:none;padding:2px 8px;font-size:14px}.chip-open,.chip-run-streaming{border-color:var(--accent-dim);color:var(--accent)}.chip-closed,.chip-run-error{border-color:var(--red);color:var(--red)}.chip-run-awaiting_approval{border-color:var(--amber);color:var(--amber)}.chip-quiet{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;max-width:40ch;overflow:hidden}.mono,.tool-output{font-family:var(--mono)}.notices{flex-direction:column;flex:none;gap:4px;min-width:0;display:flex}.notice{border-left:3px solid var(--border-strong);color:var(--text-dim);background:var(--bg-elev);overflow-wrap:anywhere;border-radius:0 6px 6px 0;padding:4px 10px;font-size:14.5px}.notice-warn{border-color:var(--amber);color:var(--amber)}.notice-error{border-color:var(--red);color:var(--red)}.error-bar{color:var(--red);flex:none;font-size:14.5px}.composer{flex:none;align-items:flex-end;gap:8px;min-width:0;display:flex;position:relative}.composer-input{resize:vertical;background:var(--bg-elev);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);min-height:44px;max-height:240px;line-height:1.5;font:inherit;flex:auto;padding:10px 104px 10px 12px;overflow-y:auto}.composer-actions{align-items:center;gap:6px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.btn.btn-send{background:var(--bg-elev-2);color:var(--text-faint);border:1px solid var(--border);cursor:not-allowed;border-radius:8px;padding:4px 10px;font-size:14px;font-weight:600}.btn.btn-send:not(:disabled){color:#fff;cursor:pointer;background:#2f6feb;border-color:#2f6feb}.btn.btn-send:not(:disabled):hover{background:#3b7bf5}.composer-input:focus{outline:1px solid var(--accent-dim)}.btn{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border-strong);cursor:pointer;font:inherit;border-radius:8px;flex:none;padding:8px 14px}.btn:hover:not(:disabled){border-color:var(--accent-dim)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent-dim);border-color:var(--accent)}.empty{color:var(--text-dim);min-width:0}.empty code{font-family:var(--mono);background:var(--bg-elev-2);color:var(--accent);border-radius:4px;padding:1px 5px}.empty-hint{color:var(--text-faint);margin-left:8px;font-size:14.5px}@media (prefers-color-scheme:light){:root{--bg:#fff;--bg-elev:#f7f8fa;--bg-elev-2:#eef1f5;--border:#d8dee4;--border-strong:#c3ccd6;--text:#1f2328;--text-dim:#57606a;--text-faint:#6e7781;--accent:#0969da;--accent-dim:#6ea8fe;--green:#1a7f37;--amber:#9a6700;--red:#cf222e;--speed-bg:#e7f5ff;--speed-fg:#1971c2}}.chip-select{appearance:none;background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:999px;max-width:26ch;padding:2px 8px;font-size:14px}.chip-select:hover{border-color:var(--accent-dim)}select:focus{border-color:var(--accent-dim);outline:none}select:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent)}.chip-warn{border-color:color-mix(in srgb, var(--yellow,#d9a441) 60%, transparent);color:var(--yellow,#d9a441)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}::-webkit-scrollbar-track{background:0 0}.main,.outline-panel-list,.preview-body,.tool-output{scrollbar-gutter:stable}.appbar[hidden]{display:none}.sidebar{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);--side-pad:10px;width:232px;min-width:0;min-height:0;padding:var(--side-pad);flex-direction:column;flex:none;gap:8px;display:flex}.sidebar-head{flex:none;align-items:center;gap:8px;min-width:0;display:flex}.sidebar-title{font:inherit;min-width:0;color:var(--text-dim);text-align:left;cursor:pointer;background:0 0;border:none;flex:0 auto;padding:0;font-size:14.5px;font-weight:600}.sidebar-title:hover{color:var(--accent)}.btn-new{background:0 0;border:none;border-radius:6px;padding:1px 6px;font-size:17px;font-weight:500;line-height:1}.btn-new:hover:not(:disabled){background:var(--bg-elev-2);border-color:#0000}.sidebar-list{flex-direction:column;flex:auto;gap:4px;min-width:0;min-height:0;display:flex;overflow-y:auto}.sidebar-empty{color:var(--text-faint);padding:4px 2px;font-size:14.5px}.sidebar-item{text-align:left;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:stretch;gap:2px;min-width:0;padding:6px 8px;display:flex}.sidebar-item:hover{border-color:var(--border-strong)}.sidebar-item-active{background:var(--bg-elev-2);border-color:var(--accent-dim)}.sidebar-item-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-item-meta{color:var(--text-faint);font-size:13.5px}@media (width<=720px){.app{flex-direction:column}.sidebar{width:100%;max-height:none}}.sidebar-section{color:var(--text-faint);letter-spacing:.04em;align-items:center;gap:6px;min-width:0;margin:10px 0 2px;font-size:13.5px;display:flex}.sidebar-section-tag{border:1px solid var(--border);border-radius:999px;padding:0 6px;font-size:12.5px}.proj{min-width:0}.proj-head{cursor:pointer;color:var(--text-dim);border-radius:6px;align-items:center;gap:6px;min-width:0;padding:4px 6px;font-size:14.5px;display:flex}.proj-head:hover{background:var(--bg-elev-2)}.proj-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.proj-name-input{border:none;border-bottom:1px solid var(--accent-dim);background:var(--bg-elev);height:20px;color:var(--text);font:inherit;cursor:text;outline:none;padding:0 2px;font-weight:600}.proj-count{color:var(--text-faint);flex:none;font-size:13px}.proj-body{flex-direction:column;gap:2px;min-width:0;padding:2px 0 4px 10px;display:flex}.pi-row{border-radius:6px;align-items:baseline;gap:6px;min-width:0;padding:3px 6px;display:flex}.pi-row-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);flex:auto;font-size:14.5px;overflow:hidden}.pi-row-time{color:var(--text-faint);flex:none;font-size:13px}.pi-row-more{color:var(--text-faint);font-size:13.5px}.pi-row{text-align:left;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;width:100%}.pi-row:hover{background:var(--bg-elev-2);border-color:var(--border)}.pi-row-active{background:var(--bg-elev-2);border-color:var(--accent-dim)}.proj-more{border:1px solid var(--border);width:20px;height:20px;color:var(--text-dim);cursor:pointer;font:inherit;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.proj-more:hover{border-color:var(--accent-dim);color:var(--accent)}.proj-chevron{width:16px;height:16px;color:var(--text-faint);flex:none;justify-content:center;align-items:center;margin-right:6px;display:inline-flex}.proj-folder{width:100%;height:100%;display:block}.proj-chevron-open{color:var(--text-dim)}.proj-head:hover .proj-chevron{color:var(--text)}.proj-head{align-items:center;gap:4px;display:flex}.proj-name{color:var(--text);font-weight:600}.proj-more{opacity:0}.proj-head:hover .proj-more,.proj-head:focus-within .proj-more{opacity:1}.pi-row{border-left:2px solid #0000;border-radius:0 6px 6px 0;padding-left:10px;position:relative}.pi-row-active{border-left-color:var(--accent);background:var(--bg-elev-2)}.pi-row-active .pi-row-title{color:var(--text)}.side-host{flex-direction:column;flex:none;min-width:0;display:flex;position:relative}.side-host>.sidebar{flex:auto;width:100%;min-height:0}.side-resizer{cursor:col-resize;z-index:5;background:0 0;width:7px;height:100%;position:absolute;top:0;right:-3px}.side-resizer:hover,.side-resizer:active{background:color-mix(in srgb, var(--accent) 35%, transparent)}.side-expand{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);width:26px;color:var(--text-dim);font:inherit;cursor:pointer;flex:none;align-self:stretch;font-size:17px}.side-expand:hover{color:var(--accent);border-color:var(--accent-dim)}.activity-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);flex-direction:column;flex:none;align-items:center;gap:4px;width:44px;padding:6px 0;display:flex}.activity-btn{width:32px;height:32px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:17px;display:inline-flex}.activity-btn:hover{background:var(--bg-elev-2);color:var(--text)}.pi-running{color:var(--accent);white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.pi-ring{border:1.5px solid color-mix(in srgb, var(--accent) 30%, transparent);border-top-color:var(--accent);border-radius:50%;width:9px;height:9px;animation:.8s linear infinite pi-spin}@keyframes pi-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.pi-ring{border-top-color:var(--accent);animation:none}}.side-collapse{z-index:6;border:1px solid var(--border);background:var(--bg-elev);width:18px;height:34px;color:var(--text-faint);cursor:pointer;opacity:.55;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:opacity .12s,color .12s;display:inline-flex;position:absolute;top:50%;right:-10px;transform:translateY(-50%)}.side-collapse svg{width:12px;height:12px}.side-collapse:hover,.side-collapse:focus-visible{opacity:1;color:var(--accent);border-color:var(--accent-dim)}.is-mobile-shell .side-collapse{display:none}@media (hover:none),(pointer:coarse){.proj-head .proj-more{opacity:1;width:32px;height:32px;font-size:17px}.proj-menu-item{min-height:36px;font-size:15px}}.proj-menu{border:1px solid var(--border-strong,var(--border));background:var(--bg-elev-2);border-radius:8px;flex-direction:column;gap:1px;margin:2px 0 6px 6px;padding:4px;display:flex;box-shadow:0 10px 28px #00000059}.proj-menu-item{width:100%;color:var(--text-dim);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:14px;display:flex}.proj-menu-item:hover:not(:disabled){background:var(--bg-elev);color:var(--text)}.proj-menu-item:disabled{opacity:.45;cursor:not-allowed}.proj-menu-danger{color:var(--red)}.pi-row-more{width:100%;color:var(--text-faint);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:3px 8px;font-size:14px}.pi-row-more:hover{color:var(--accent);background:var(--bg-elev-2)}.proj-pin{opacity:.85;flex:none;font-size:12px;line-height:1}.new-project{flex-direction:column;gap:10px;width:min(720px,94vw);height:auto;max-height:min(640px,84vh);padding:14px 16px 16px;display:flex;overflow:hidden}.new-project-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;padding-bottom:8px;display:flex}.new-project-bar{flex-wrap:wrap;flex:none;align-items:center;gap:6px;margin-top:2px;display:flex}.new-project-input{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);border-radius:8px;flex:240px;padding:6px 9px;font-size:14.5px}.new-project-list{flex-direction:column;flex:auto;gap:2px;min-height:120px;display:flex;overflow:auto}.new-project-row{border-radius:6px;align-items:center;gap:8px;padding:2px 4px;display:flex}.new-project-row:hover{background:var(--bg-elev-2)}.new-project-name{text-align:left;min-width:0;color:var(--text);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:auto;padding:3px 2px;font-size:14.5px;overflow:hidden}.new-project-foot{border-top:1px solid var(--border);flex:none;padding-top:6px}.side-files{border-top:1px solid var(--border);min-height:0;margin-left:calc(var(--side-pad,10px) * -1);margin-right:calc(var(--side-pad,10px) * -1);padding-left:var(--side-pad,10px);padding-right:var(--side-pad,10px);flex-direction:column;flex:none;gap:4px;margin-top:0;padding-top:0;display:flex}.side-files-head{flex:none;align-items:center;gap:0;min-width:0;display:flex}.side-files-title{color:var(--text-dim);font-family:inherit;font-size:14.5px;font-weight:600;line-height:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0}.side-files-title:hover{color:var(--accent)}.side-files-select-row{flex:none;align-items:center;gap:4px;width:100%;min-width:0;display:flex}.side-files-select-row .files-branch{flex:0 auto;min-width:0;max-width:92px}.files-branch-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.side-files-select{border:1px solid var(--border);background:var(--bg-elev);min-width:112px;color:var(--text-dim);font:inherit;text-align:left;text-align-last:left;text-overflow:ellipsis;cursor:pointer;appearance:none;opacity:.95;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 12px) calc(50% - 1px),calc(100% - 8px) calc(50% - 1px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-radius:7px;flex:auto;padding:3px 18px 3px 8px;font-size:13.5px;line-height:1.4}.side-files-select:focus{color:var(--text);opacity:1}.side-files-body{flex:auto;min-height:0;display:flex;overflow:hidden}.side-files-body .filetree{flex:auto}.side-files-body .files-search-list{flex:auto;min-height:0}.side-files-term{color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;flex:none;padding:1px 5px;font-family:ui-monospace,monospace;font-size:13px;line-height:1.3}.side-files-term:hover{color:var(--accent);background:var(--bg-elev-2)}.side-split{cursor:row-resize;background:0 0;flex:none;height:0;margin:-8px 0;position:relative}.side-split:before{content:"";height:8px;position:absolute;top:-4px;left:0;right:0}.side-split:after{content:"";background:0 0;height:1px;transition:height .12s,background .12s;position:absolute;top:0;left:0;right:0}.side-split:hover:after,.side-split:active:after{background:var(--accent-dim);height:3px}.proj-menu-floating{z-index:90;width:220px;max-height:min(70vh,560px);margin:0;position:fixed;overflow:auto}.pi-row-wrap{align-items:center;min-width:0;display:flex;position:relative}.pi-row-wrap>.pi-row{flex:auto;min-width:0}.pi-more,.pi-archive{width:20px;height:20px;color:var(--text-faint);font:inherit;cursor:pointer;visibility:hidden;opacity:0;background:0 0;border:none;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;transition:opacity 90ms linear;display:inline-flex}.pi-more{font-size:15px}.pi-archive{font-size:13px}.pi-more:hover,.pi-archive:hover{background:var(--bg-elev-2);color:var(--text)}@media (hover:hover){.pi-row-time{text-align:right;flex:none;min-width:30px}.pi-more,.pi-archive{position:absolute;top:50%;transform:translateY(-50%)}.pi-more{right:0}.pi-archive{right:22px}.pi-row-wrap:hover .pi-more,.pi-row-wrap:hover .pi-archive,.pi-row-wrap:focus-within .pi-more,.pi-row-wrap:focus-within .pi-archive{visibility:visible;opacity:1}.pi-row-wrap:hover .pi-row-time,.pi-row-wrap:focus-within .pi-row-time{visibility:hidden;min-width:46px}}.pi-menu{border:1px solid var(--border-strong,var(--border));background:var(--bg-elev-2);border-radius:8px;flex-direction:column;gap:1px;width:210px;padding:4px;display:flex;box-shadow:0 12px 32px #00000073}.archived{border-top:1px solid var(--border);flex:none;margin-top:4px;padding-top:4px}.archived-head{width:100%;color:var(--text-faint);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;font-size:14px;display:flex}.archived-head:hover{background:var(--bg-elev-2);color:var(--text)}.archived-caret{width:10px;color:var(--text-faint)}.archived-list{flex-direction:column;gap:1px;max-height:180px;padding:2px 0 4px;display:flex;overflow:auto}.archived-row{align-items:center;gap:6px;min-width:0;padding:2px 6px;display:flex}.archived-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);flex:auto;font-size:14px;overflow:hidden}.pi-archive:hover{background:var(--bg-elev-2);color:var(--accent)}.is-mobile-shell .pi-archive{display:none}.is-mobile-shell .pi-more{visibility:visible;opacity:1;width:36px;height:36px;font-size:18px;right:0}.is-mobile-shell .pi-row-wrap,.is-mobile-shell .pi-row{min-height:40px}.is-mobile-shell .pi-row{align-items:center}.switch-hint{top:calc(var(--appbar-h,46px) + 8px);z-index:50;border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text-dim);white-space:nowrap;pointer-events:none;opacity:0;border-radius:999px;padding:4px 12px;font-size:14px;line-height:1.4;animation:.12s ease-out .15s forwards switch-hint-in;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000059}@keyframes switch-hint-in{0%{opacity:0}to{opacity:1}}.pi-row-title-input{border:none;border-bottom:1px solid var(--accent);min-width:0;color:var(--text);font:inherit;background:0 0;border-radius:0;outline:none;flex:auto;padding:0 0 1px;font-size:12.5px;line-height:1.2}.archived-entry{width:100%;color:var(--text-faint);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-top:4px;padding:6px;font-size:14px;display:flex}.archived-entry:hover{color:var(--text);background:var(--bg-elev-2)}.archived-view{flex-direction:column;flex:auto;gap:6px;height:auto;min-height:0;display:flex}.archived-view-head{flex:none;align-items:center;gap:6px;padding:2px 0;display:flex}.archived-back{border:1px solid var(--border);background:var(--bg-elev);width:22px;height:22px;color:var(--text-dim);font:inherit;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.archived-view-title{color:var(--text);font-size:14.5px;font-weight:600}.archived-view-list{flex-direction:column;flex:auto;gap:6px;min-height:120px;display:flex;overflow:auto}.archived-group-title{color:var(--text-faint);align-items:center;gap:6px;padding:4px 6px 2px;font-size:13.5px;font-weight:600;display:flex}.archived-group-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.archived-group-select{opacity:.55;flex:none;padding:1px 7px;font-size:12.5px}.archived-group:hover .archived-group-select,.archived-group-select:focus-visible{opacity:1}.archived-open{min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:auto;align-items:center;gap:8px;padding:4px 6px;font-size:14.5px;display:flex}.archived-open:hover{background:var(--bg-elev-2)}.archived-time{color:var(--text-faint);flex:none;font-size:13px}.sidebar-list-hidden{display:none}.archived-entry-icon{color:var(--text-faint);cursor:pointer;visibility:hidden;opacity:0;background:0 0;border:none;border-radius:5px;flex:none;padding:2px 4px;font-size:14px;line-height:1;transition:opacity 90ms linear}.sidebar-head:hover .archived-entry-icon,.sidebar-head:focus-within .archived-entry-icon{visibility:visible;opacity:1}.archived-entry-icon:hover{color:var(--text);background:var(--bg-elev-2)}@media (hover:none),(pointer:coarse){.archived-entry-icon{visibility:visible;opacity:1;padding:4px 6px;font-size:16px}}.archived-bulk{border:1px solid var(--border);background:var(--bg-elev);border-radius:8px;flex:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.archived-bulk-count{color:var(--text-dim);font-size:13.5px}.archived-row-on{background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:6px}.archived-row input[type=checkbox]{flex:none;margin:0}.archived-entry-icon-on,.sidebar-head:hover .archived-entry-icon-on{visibility:visible;opacity:1;color:var(--accent);background:var(--bg-elev-2)}.workspace{position:relative}.outline{z-index:8;pointer-events:none;flex-direction:row-reverse;align-items:flex-start;gap:6px;display:flex;position:absolute;top:56px;bottom:96px;right:6px}.outline-rail{pointer-events:auto;background:color-mix(in srgb, var(--bg-elev) 70%, transparent);border-radius:10px;flex-direction:column;gap:7px;max-height:100%;padding:6px 4px;display:flex;overflow:auto}.outline-dot{border:1.5px solid var(--text-faint);cursor:pointer;background:0 0;border-radius:2px;width:9px;height:9px;padding:0}.outline-dot:hover,.outline-dot-on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 60%, transparent)}.outline-preview{pointer-events:auto;border:1px solid var(--border-strong,var(--border));background:var(--bg-elev);border-radius:10px;width:min(420px,42vw);max-height:60vh;padding:8px 10px;overflow:auto;box-shadow:0 12px 32px #00000073}.outline-item{gap:8px;padding:3px 0;font-size:14.5px;display:flex}.outline-item-answer{border-top:1px solid var(--border);color:var(--text-dim);margin-top:4px;padding-top:6px}.outline-num{width:22px;color:var(--text-faint);flex:none;font-size:13px}.outline-q{color:var(--text)}.outline-a{color:var(--text-dim)}.outline-hint{color:var(--text-faint);margin-top:6px;font-size:13px}.side-files-closed{flex:none;min-height:0}.side-files .side-files-select{flex:auto;width:auto;min-width:0}.sidebar-title{white-space:nowrap}.outline-entry{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;border-radius:4px;padding:4px 6px 4px 4px;display:block}.outline-entry:hover{background:var(--bg-elev-2)}.outline-entry-on{border-left-color:var(--accent);background:var(--bg-elev-2)}.workspace .messages{padding-right:26px}.is-mobile-shell .workspace .messages{padding-right:8px}.side-foot{border-top:1px solid var(--border);flex-direction:column;flex:none;gap:6px;min-height:0;padding-top:8px;display:flex}.side-foot-row{gap:6px;display:flex}.side-foot-icon,.big-tab-icon{width:15px;height:15px;color:inherit;flex:none;justify-content:center;align-items:center;display:inline-flex}.side-foot-icon svg,.big-tab-icon svg{width:100%;height:100%;display:block}.side-foot-label{line-height:1}.side-foot-btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);font:inherit;cursor:pointer;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;gap:5px;min-width:0;padding:5px 4px;font-size:14px;display:inline-flex}.side-foot-btn:hover{color:var(--text);border-color:var(--accent-dim)}.side-foot-btn-on{color:var(--accent);border-color:var(--accent-dim);background:var(--bg-elev-2)}.side-panel{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:6px;min-height:0;max-height:46vh;padding:8px;display:flex}.side-panel-head{flex:none;justify-content:space-between;align-items:baseline;gap:6px;font-size:14.5px;display:flex}.side-panel-count{color:var(--text-faint);font-size:13px}.side-panel-scroll{flex-direction:column;gap:4px;min-height:0;display:flex;overflow:auto}.side-panel-hint{color:var(--text-faint);font-size:13.5px;line-height:1.6}.side-model-provider{background:var(--bg-elev);color:var(--text-faint);letter-spacing:.06em;padding:4px 2px 2px;font-size:12px;position:sticky;top:0}.side-model-row{color:var(--text-dim);align-items:center;gap:5px;min-width:0;padding:2px 2px 2px 6px;font-size:14px;display:flex}.side-model-row-on{color:var(--text);font-weight:600}.side-model-check{width:10px;color:var(--accent);flex:none}.side-model-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.side-field{color:var(--text-faint);flex-direction:column;gap:3px;font-size:13px;display:flex}.side-field input,.side-field select,.side-field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:7px;min-width:0;padding:5px 7px;font-size:14px}.side-error{color:var(--red)}.side-ok{color:var(--accent);font-size:13.5px}.side-provider-list{flex-direction:column;gap:6px;min-height:0;display:flex;overflow:auto}.side-provider{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:6px 7px}.side-provider-head{flex-direction:column;gap:1px;min-width:0;display:flex}.side-provider-name{text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.side-provider-meta{color:var(--text-faint);font-size:12.5px}.side-provider-actions{gap:4px;margin-top:5px;display:flex}.modal.big-modal{width:min(1120px,94vw);height:min(760px,86vh);max-width:calc(100vw - 2 * var(--gap,16px));max-height:calc(100vh - 2 * var(--gap,16px));flex-direction:column;gap:10px;display:flex;position:relative;overflow:hidden}.big-modal-body{overscroll-behavior:contain;overflow:auto}.modal-notices{flex-direction:column;flex:none;display:flex}.modal-notices .notice{background:var(--bg-elev-2);font-size:14px}.modal-resize{cursor:nwse-resize;touch-action:none;opacity:.55;background:linear-gradient(135deg, transparent 46%, var(--border-strong) 46%, var(--border-strong) 55%, transparent 55%), linear-gradient(135deg, transparent 66%, var(--border-strong) 66%, var(--border-strong) 75%, transparent 75%);width:18px;height:18px;position:absolute;bottom:0;right:0}.modal-resize:hover{opacity:1}.big-modal-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:6px;padding-bottom:8px;display:flex}.big-tab{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:15px;display:inline-flex}.big-tab-icon{width:16px;height:16px}.big-tab:hover{color:var(--text);background:var(--bg-elev-2)}.big-tab-on{color:var(--accent);border-color:var(--accent-dim);background:var(--bg-elev-2);font-weight:600}.big-tab{white-space:nowrap}.big-modal-head{scrollbar-width:none;overflow-x:auto}.big-modal-head::-webkit-scrollbar{display:none}.big-modal-body{flex-direction:column;flex:auto;min-height:0;display:flex}.big-modal-body .side-panel{overscroll-behavior:contain;background:0 0;border:none;flex:auto;gap:10px;min-height:0;max-height:none;padding:0;overflow:auto}.big-modal-body .side-panel-scroll,.big-modal-body .side-provider-list{flex:auto}.side-provider-badge{border:1px solid var(--border);color:var(--text-faint);border-radius:999px;margin-left:6px;padding:0 6px;font-size:12px;font-weight:400}.side-field-row{gap:6px;min-width:0;display:flex}.side-field-row>.side-field{flex:1 1 0;min-width:0}.side-check{color:var(--text);align-items:center;gap:5px;margin-right:12px;font-size:14px;display:inline-flex}.side-model-edit{flex:none;margin-left:auto;padding:0 6px;font-size:12.5px}.model-editor{gap:10px}.price-seg{border:1px solid var(--border);background:var(--bg-elev-1);border-radius:8px;flex-direction:column;gap:6px;padding:6px 7px;display:flex}.price-seg .side-field>span{font-size:12px}.price-seg .side-field-row>.btn{align-self:flex-end;margin-bottom:1px}.side-provider-models{flex-direction:column;gap:1px;max-height:132px;margin-top:4px;display:flex;overflow:auto}.side-provider-model{color:var(--text-dim);align-items:center;gap:6px;min-width:0;padding:1px 0;font-size:13.5px;display:flex}.import-models{gap:8px}.import-list{flex-direction:column;flex:auto;gap:1px;min-height:0;max-height:46vh;display:flex;overflow:auto}.import-row{color:var(--text-dim);cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:2px 4px;font-size:14px;display:flex}.import-row:hover{background:var(--bg-elev-2)}.import-row-done{opacity:.5;cursor:default}.import-id{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.import-foot{flex:none;align-items:center;gap:6px;display:flex}.prov-shell{grid-template-columns:minmax(140px, var(--prov-list-width,190px)) 6px minmax(0, 1fr);border:1px solid var(--border);background:var(--bg);border-radius:10px;flex:auto;gap:0;min-height:0;display:grid;overflow:hidden}.prov-list{background:var(--bg-soft);flex-direction:column;gap:6px;min-height:0;padding:8px;display:flex}.prov-list-head{text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);justify-content:space-between;align-items:center;padding:2px 4px;font-size:13px;display:flex}.prov-list-scroll{flex-direction:column;flex:auto;gap:4px;min-height:0;display:flex;overflow:auto}.prov-item{text-align:left;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:1px;padding:6px 8px;display:flex}.prov-item:hover{background:var(--bg)}.prov-item-on{background:var(--bg);border-color:var(--accent)}.prov-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.prov-add{width:100%;margin-top:auto}.prov-builtin{color:var(--text-faint);padding:2px 4px;font-size:12.5px;line-height:1.4}.prov-detail{flex-direction:column;gap:10px;min-width:0;min-height:0;padding:10px 12px 18px;display:flex;overflow:auto}.prov-detail-split{overflow:hidden}.prov-detail-split>.side-panel{flex:auto;min-height:96px;padding:0 14px 20px 0;overflow:auto}.prov-models{border-top:1px solid var(--border);flex-direction:column;flex:none;gap:6px;min-height:0;padding-top:8px;display:flex}.prov-detail-split .prov-models{flex:none;max-height:min(46%,420px)}.prov-models-head{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.prov-models-scroll{flex-direction:column;gap:2px;min-height:0;display:flex;overflow:auto}.prov-model-row{border-radius:7px;grid-template-columns:minmax(0,1fr) 92px auto auto;align-items:center;gap:8px;padding:5px 6px;display:grid}.prov-model-row:hover{background:var(--bg-soft)}.prov-model-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-size:14.5px;overflow:hidden}.prov-model-spec{color:var(--text-faint);white-space:nowrap;justify-self:end;font-size:12.5px}@media (width<=720px){.prov-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.prov-list{border-right:none;border-bottom:1px solid var(--border);max-height:34vh}.prov-resizer{display:none}.prov-detail{min-height:0}}.prov-detail .side-panel{background:0 0;border:none;padding:0 0 16px}.prov-detail .import-foot{margin-top:12px;margin-bottom:14px;position:static}.prov-block{border-radius:8px;flex-direction:column;display:flex}.prov-block-on{background:var(--bg)}.prov-block .prov-item{border:none;border-radius:8px;padding:6px 8px}.prov-item-name{align-items:center;gap:5px;display:flex}.prov-item-warn{color:var(--text-faint);border:1px solid var(--border);border-radius:999px;padding:0 5px;font-size:11.5px;font-weight:400}.prov-models-inline{flex-direction:column;gap:1px;padding:2px 4px 6px 16px;display:flex}.prov-inline-row{color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:3px 6px;font-size:14px;display:flex}.prov-inline-row:hover{background:var(--bg-soft)}.prov-inline-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prov-dot{background:var(--border);border-radius:50%;flex:none;width:6px;height:6px}.prov-dot-on{background:var(--accent)}.prov-item-name{flex-wrap:wrap;min-width:0}.prov-item-name>span{flex:none}.prov-field-head{align-items:center;gap:8px;width:100%;display:flex}.prov-picker{flex-direction:column;flex:none;align-items:stretch;gap:8px;margin-top:6px;display:flex}.prov-picker-filter{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;padding:6px 8px;font-size:14.5px}.prov-picker .import-list{border:1px solid var(--border);border-radius:8px;max-height:260px;overflow:auto}.import-row-head{border-bottom:1px solid var(--border);font-weight:600}.prov-model-open{flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.prov-model-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.prov-model-id{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12.5px;overflow:hidden}.prov-model-open:hover .prov-model-id{color:var(--text-dim)}.prov-caret{opacity:.55;vertical-align:middle;border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;width:0;height:0;margin-right:6px;transition:transform .12s ease-out;display:inline-block}.prov-caret-open{transform:rotate(90deg)}.prov-test-pill{border:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:340px;padding:5px 8px;font-size:13px;line-height:1;overflow:hidden}.prov-test-ok{color:#1a7f43;background:#34c75929;border-color:#34c75966}.prov-test-fail{color:#b3261e;background:#ff3b3024;border-color:#ff3b3061}.prov-latency{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;text-align:center;border-radius:999px;justify-self:end;max-width:92px;padding:1px 6px;font-size:12.5px;overflow:hidden}.prov-latency-idle{color:var(--text-faint)}.prov-latency-ok{color:#1a7f43;background:#34c75924}.prov-latency-fail{color:#b3261e;background:#ff3b3024}.prov-tabs{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:4px;padding-bottom:6px;display:flex}.prov-tab{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:4px 10px;font-size:14.5px}.prov-tab:hover{background:var(--bg-soft);color:var(--text)}.prov-tab-on{background:var(--bg-soft);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.prov-model-open{color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;max-width:100%;padding:0}.prov-model-open:hover{color:var(--accent)}.prov-resizer{cursor:col-resize;background:var(--border);opacity:.5;transition:opacity .12s}.prov-resizer:hover,.prov-resizer:active{opacity:1;background:var(--accent)}.prov-checklist{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1px;max-height:240px;padding:4px;display:flex;overflow:auto}.prov-check-row{border-radius:6px;align-items:center;gap:8px;padding:3px 6px;display:flex}.prov-check-row:hover{background:var(--bg-soft)}.prov-check-on{color:var(--text)}.prov-check-row:not(.prov-check-on) .mono{color:var(--text-faint);text-decoration:line-through}.prov-check-label{cursor:pointer;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.prov-check-label .mono{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.prov-check-row .msg-action{opacity:0}.prov-check-row:hover .msg-action{opacity:1}.prov-add-row{align-items:center;gap:6px;margin-top:4px;display:flex}.prov-add-row input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:auto;padding:6px 8px;font-size:14.5px}.prov-check-actions{align-items:center;gap:2px;display:flex}.prov-check-actions .msg-action:disabled{opacity:.4;cursor:not-allowed}.prov-inline-id{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;display:block;overflow:hidden}.prov-switch{cursor:pointer;align-items:center;display:inline-flex}.prov-switch input{opacity:0;pointer-events:none;position:absolute}.prov-switch-track{background:var(--border-strong);border-radius:999px;width:34px;height:19px;transition:background .14s;position:relative}.prov-switch-track:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:transform .14s;position:absolute;top:2px;left:2px}.prov-switch input:checked+.prov-switch-track{background:var(--accent)}.prov-switch input:checked+.prov-switch-track:after{transform:translate(15px)}.prov-global-bar{flex:none;align-items:center;gap:10px;padding:0 2px 8px;display:flex}.prov-global-path{color:var(--text-faint);font-size:13px}.prov-switch-sm .prov-switch-track{width:28px;height:16px}.prov-switch-sm .prov-switch-track:after{width:12px;height:12px}.prov-switch-sm input:checked+.prov-switch-track:after{transform:translate(12px)}.appbar{border-bottom:1px solid var(--border);background:var(--bg-elev);flex:none;align-items:center;gap:8px;min-width:0;padding:6px 10px;display:flex}.app-main{flex:auto;gap:8px;min-width:0;min-height:0;padding:8px 8px 0;display:flex}.right-col{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.right-upper{flex:auto;gap:0;min-width:0;min-height:0;display:flex}.appbar-menu{flex:none;align-items:center;gap:6px;display:flex}.appbar-menu .side-foot-row{gap:4px;display:flex}.appbar-menu .side-foot-btn{border-radius:7px;flex:none;gap:5px;padding:4px 9px;font-size:12px}.appbar-menu .side-foot-btn:hover{background:var(--bg)}.appbar-slot{border:1px dashed #0000;border-radius:8px;flex:auto;min-width:0}.appbar-new{cursor:pointer;flex:none;padding:5px 12px;font-size:12.5px}.appbar-new:hover{border-color:var(--accent-dim);color:var(--accent)}.app,.app-main{gap:0;padding:0}.sidebar,.workspace,.preview-panel,.preview-rail{border-top:none;border-bottom:none;border-radius:0}.sidebar{border-left:none}.sidebar+.workspace{border-left:1px solid var(--border)}.workspace{border-right:1px solid var(--border)}.preview-panel,.preview-rail{border-right:none}.workspace .topbar,.workspace .main{border-left:none;border-right:none;border-radius:0}.workspace .main{padding:4px 0 0}.workspace,.workspace .main{background:var(--bg)}.workspace .main{border-top:none;border-bottom:none;border-radius:0}.statusbar{box-sizing:border-box;border-top:1px solid var(--border);background:var(--bg-elev);height:24px;color:var(--text-faint);white-space:nowrap;flex:none;align-items:center;gap:8px;min-width:0;padding:0 0 0 10px;font-size:12px;line-height:1;display:flex;overflow:hidden}.status-item{flex:none;align-items:center;gap:4px;display:inline-flex}.status-spacer{flex:auto}.status-path{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.status-dot{background:var(--text-faint);border-radius:50%;flex:none;width:7px;height:7px}.status-dot-open{background:var(--green)}.status-dot-closed{background:var(--red)}.status-dot-connecting{background:var(--amber)}.appbar-new-primary{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-weight:600;display:inline-flex}.appbar-new-primary:hover{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent)}.appbar-new-icon{font-size:13px;line-height:1}.workspace{padding:0 0 10px 20px}.workspace .main{padding-right:0}.workspace .messages,.workspace .composer-wrap,.workspace .sent-queue,.workspace .notices{margin-right:14px}.brand{align-items:center;gap:6px;display:inline-flex}.brand-icon{border-radius:5px;flex:none;width:20px;height:20px}.brand-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.appbar-panel-btn{cursor:pointer;flex:none;align-items:center;gap:5px;padding:5px 12px;font-size:12.5px;display:inline-flex}.appbar-panel-icon{flex:none;width:14px;height:14px}.side-foot-icon{flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:15px;line-height:1;display:inline-flex}.session-info{flex:none;position:relative}.session-info-pop{z-index:30;border:1px solid var(--border-strong);background:var(--bg);border-radius:10px;gap:18px;width:min(760px,92vw);padding:12px 14px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 40px #0000002e}.session-info-col{flex-direction:column;flex:1 1 0;gap:4px;min-width:0;display:flex}.session-info-wide{flex:1.6 1 0}.session-info-title{color:var(--text);margin-bottom:2px;font-size:12px;font-weight:600}.session-info-row{gap:8px;min-width:0;font-size:11.5px;display:flex}.session-info-label{width:76px;color:var(--text-faint);flex:none}.session-info-value{min-width:0;color:var(--text-dim);overflow-wrap:anywhere;flex:auto}.appbar-drawer-open{border:1px solid var(--border);background:var(--bg-elev);width:26px;height:26px;color:var(--text-dim);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.appbar-drawer-open:hover{color:var(--accent);border-color:var(--accent-dim)}.appbar-drawer-open svg{width:14px;height:14px}.engine-picker{flex:none;display:flex;position:relative}.engine-picker-btn{color:var(--text-dim);border-radius:7px;flex:none;gap:6px;padding:4px 9px;font-size:12px}.engine-picker-btn:hover,.engine-picker-btn.side-foot-btn-on{background:var(--bg);color:var(--text);border-color:var(--accent-dim)}.engine-picker-icon{width:100%;height:100%;display:block}.engine-picker-badge{border:1px solid var(--accent-dim);color:var(--accent);letter-spacing:.04em;border-radius:5px;flex:none;padding:1px 5px;font-size:10px;font-weight:600;line-height:1.5}.engine-picker-name{text-overflow:ellipsis;white-space:nowrap;max-width:16ch;line-height:1;overflow:hidden}.engine-picker-chevron{opacity:.7;flex:none;width:12px;height:12px}.engine-pop{z-index:40;border:1px solid var(--border);background:var(--bg-elev);border-radius:12px;flex-direction:column;gap:6px;width:min(340px,100vw - 24px);padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000038}.engine-pop-head{align-items:baseline;gap:8px;min-width:0;padding:2px 4px 4px;display:flex}.engine-pop-title{color:var(--text);flex:none;font-size:12px;font-weight:600}.engine-pop-note{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);font-size:11px;overflow:hidden}.engine-option{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:3px;padding:8px 10px;display:flex}.engine-option:hover:not(:disabled){background:var(--bg);border-color:var(--border)}.engine-option-on{background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:var(--accent-dim);cursor:default}.engine-option:disabled{opacity:.45;cursor:not-allowed}.engine-option-top{align-items:center;gap:7px;min-width:0;display:flex}.engine-option-badge{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);letter-spacing:.04em;border-radius:5px;flex:none;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.6}.engine-option-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.engine-option-version{color:var(--text-dim);flex:none;font-size:10.5px}.engine-option-tail{color:var(--accent);flex:none;align-items:center;margin-left:auto;display:inline-flex}.engine-picker-check{width:14px;height:14px}.engine-option-desc{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.engine-option-caps{color:var(--text-dim);opacity:.85;font-size:10.5px}.engine-pop-hint{color:var(--warn,#b8860b);padding:4px 4px 2px;font-size:11px}@media (width<=720px){.engine-picker-name{display:none}}.is-mobile-shell .engine-picker-btn{border-color:#0000;gap:0;padding:4px 6px}.is-mobile-shell .engine-picker-btn .side-foot-icon,.is-mobile-shell .engine-picker-chevron{display:none}.is-mobile-shell .engine-picker-badge{letter-spacing:.02em;border:none;border-radius:0;padding:0;font-size:12px;font-weight:600;line-height:1}.is-mobile-shell .engine-pop{top:calc(var(--appbar-h,46px) + 4px);width:auto;max-height:calc(100dvh - var(--appbar-h,46px) - 16px);position:fixed;left:8px;right:8px;overflow:auto}.is-mobile-shell .appbar{gap:6px;padding:6px 8px}.is-mobile-shell .appbar .brand{gap:4px}.is-mobile-shell .appbar .brand-name{display:none}.is-mobile-shell .appbar .brand-icon{width:18px}.is-mobile-shell .appbar .appbar-new-icon{display:none}.is-mobile-shell .appbar .appbar-new{gap:4px;padding:4px 10px;font-size:12.5px}.is-mobile-shell .appbar .appbar-menu .side-foot-label{display:none}.is-mobile-shell .appbar .appbar-menu .side-foot-row{gap:2px}.is-mobile-shell .appbar .appbar-menu .side-foot-btn{padding:3px 4px}.is-mobile-shell .appbar .appbar-menu .side-foot-icon{width:15px;height:15px}@media (width<=340px){.appbar .appbar-menu .side-foot-btn{padding:3px}}.terminal-panel{border:1px solid var(--border);background:var(--bg-elev);border-radius:0;flex-direction:column;flex:none;gap:6px;width:min(560px,42vw);min-height:0;padding:8px;display:flex}.terminal-head{flex:none;align-items:center;gap:6px;font-size:14.5px;display:flex}.terminal-host{background:#0d1117;border-radius:0;flex:auto;min-height:0;overflow:hidden}.terminal-host .xterm{height:100%;padding:4px}.skills{flex-direction:column;flex:auto;gap:8px;min-height:0;display:flex}.skills-bar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.skills-body{flex:auto;gap:10px;min-height:0;display:flex}.skills-list{flex-direction:column;flex:46%;gap:2px;min-width:0;display:flex;overflow:auto}.skill-row{border-radius:7px;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.skill-row:hover{background:var(--bg-elev-2)}.skill-row-off{opacity:.55}.skill-main{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:auto;gap:1px;min-width:0;padding:0;display:flex}.skill-name{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;overflow:hidden}.skill-desc{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.skill-state{color:var(--text-faint);flex:none;font-size:12.5px}.skill-state-on{color:var(--accent)}.skill-detail{border-left:1px solid var(--border);flex-direction:column;flex:54%;gap:6px;min-width:0;min-height:0;padding-left:10px;display:flex}.skill-detail-head{align-items:baseline;gap:8px;min-width:0;display:flex}.skill-files{flex-wrap:wrap;flex:none;gap:4px;max-height:120px;display:flex;overflow:auto}.skill-file{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:100%;padding:1px 6px;font-size:13px;overflow:hidden}.skill-file-on{color:var(--accent);border-color:var(--accent-dim)}.skill-preview{background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;border-radius:8px;flex:auto;min-height:0;margin:0;padding:8px 10px;font-size:14px;line-height:1.6;overflow:auto}.messages{gap:var(--gap);flex-direction:column;min-width:0;padding-top:32px;display:flex}.is-mobile-shell .messages{padding-top:24px}.more-before{color:var(--text-faint);text-align:center;font-size:14px}.md{overflow-wrap:anywhere;word-break:break-word;min-width:0}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md pre{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;max-width:100%;padding:8px 10px;overflow-x:auto}.md code{font-family:var(--mono);background:var(--bg-elev-2);border-radius:4px;padding:1px 4px;font-size:14.5px}.md pre code{background:0 0;padding:0}.md-link{color:var(--accent)}.tool{border:1px solid var(--border-strong);background:var(--bg-elev);border-radius:8px;min-width:0;padding:6px 10px}.tool-head{cursor:pointer;flex-wrap:nowrap;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.tool-name{color:var(--accent);font-family:var(--mono);flex:none;font-size:14.5px}.tool-args{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-dim);font-family:var(--mono);flex:0 auto;font-size:14.5px;overflow:hidden}.tool-status{color:var(--text-faint);flex:none;margin-left:auto;font-size:14px}.tool-status-ok{color:var(--green)}.tool-status-running{color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.tool-spinner{border:2px solid color-mix(in srgb, var(--accent) 30%, transparent);border-top-color:var(--accent);border-radius:50%;flex:none;width:12px;height:12px;animation:.8s linear infinite tool-spin}@keyframes tool-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tool-spinner{animation-duration:2.4s}}.tool-status-failed{color:var(--red)}.tool-output{background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;color:var(--text-dim);border-radius:6px;margin:8px 0 0;padding:8px 10px;font-size:14.5px;overflow:auto}.tool-command{border:1px solid var(--border);background:var(--bg);border-radius:6px;margin-top:8px;overflow:hidden}.tool-command-head{align-items:center;gap:8px;padding:2px 8px 0;display:flex}.tool-command-label{color:var(--text-faint);font-size:13.5px}.tool-command-copy{margin-left:auto}.tool-command-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;font-family:var(--mono);color:var(--text);-webkit-user-select:text;user-select:text;margin:0;padding:4px 8px 8px;font-size:14.5px;overflow:auto}.tool-truncated{color:var(--amber);margin-top:6px;font-size:14px}.block-error{border:1px solid var(--red);color:var(--text);background:color-mix(in srgb, var(--red) 12%, transparent);overflow-wrap:anywhere;border-radius:8px;gap:8px;min-width:0;padding:8px 10px;display:flex}.block-error-code{font-family:var(--mono);color:var(--red);flex:none;font-size:14.5px}.composer-wrap{flex-direction:column;flex:none;gap:6px;min-width:0;display:flex}.quick-row{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.quick-chip{background:var(--bg-elev);max-width:100%;color:var(--text-dim);border:1px solid var(--border);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:7px;flex:none;padding:3px 10px;font-size:13px;overflow:hidden}.quick-chip:hover:not(:disabled){border-color:var(--accent-dim);color:var(--text)}.quick-chip:disabled{opacity:.45;cursor:not-allowed}.settings-stack{flex-direction:column;gap:12px;width:100%;min-width:0;max-width:820px;margin:0;padding:16px;display:flex}.settings-panel{border:1px solid var(--border);background:var(--bg-elev);border-radius:12px;flex-direction:column;flex:none;gap:10px;min-width:0;padding:14px 16px;display:flex}.settings-head{color:var(--text);align-items:baseline;gap:8px;font-size:15px;font-weight:600;display:flex}.settings-sub{color:var(--text-faint);font-size:13px;font-weight:400}.settings-toggle{color:var(--text-dim);align-items:center;gap:6px;font-size:14.5px;display:flex}.settings-textarea{resize:vertical;background:var(--bg);width:100%;min-height:96px;max-height:240px;color:var(--text);border:1px solid var(--border);font:inherit;border-radius:8px;padding:8px 10px;font-size:14.5px;line-height:1.55}.settings-hint{color:var(--text-faint);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.settings-actions{justify-content:flex-end;gap:8px;display:flex}.settings-row{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.settings-field{color:var(--text-dim);align-items:center;gap:5px;font-size:14.5px;display:inline-flex}.settings-number{background:var(--bg);width:58px;height:30px;color:var(--text);border:1px solid var(--border);font:inherit;font-variant-numeric:tabular-nums;text-align:right;border-radius:8px;padding:0 8px;font-size:14.5px}.settings-number:focus{border-color:var(--accent-dim);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);outline:none}.btn-tiny{padding:3px 8px;font-size:14px}.action-row{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin-top:4px;display:flex}.action-btn{background:var(--bg-elev-2);max-width:100%;color:var(--text);border:1px solid var(--accent-dim);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:none;padding:5px 12px;font-size:14.5px;overflow:hidden}.action-btn:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent)}.action-btn:disabled{opacity:.45;cursor:not-allowed}.attach-row{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.attach-chip{background:var(--bg-elev);border:1px solid var(--border-strong);max-width:100%;color:var(--text-dim);border-radius:8px;align-items:center;gap:6px;min-width:0;padding:3px 6px 3px 3px;font-size:14px;display:inline-flex}.attach-thumb{object-fit:cover;border:1px solid var(--border);border-radius:5px;flex:none;width:28px;height:28px}.attach-kind{flex:none;padding:0 4px}.attach-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.attach-size{color:var(--text-faint);flex:none}.attach-remove{color:var(--text-faint);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:16px;line-height:1}.attach-remove:hover{color:var(--red)}.attach-hint{color:var(--text-faint);font-size:14px}.attach-error{color:var(--red);overflow-wrap:anywhere;font-size:14px}.btn-queue{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:14.5px}.btn-queue:hover{color:var(--text);border-color:var(--accent-dim)}.tool-image-wrap{width:fit-content;max-width:100%;margin:2px 0;display:block}.tool-image{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-width:100%;max-height:360px;display:block}.tool-image-wrap:hover .tool-image{border-color:var(--accent-dim)}.tool:has(.tool-image-wrap)>details{margin-bottom:2px}.action-think{font-style:normal}.action-think:disabled{opacity:.45;cursor:not-allowed}.action-row-host{flex:none;margin-right:14px;padding:0 12px}.action-row-host:empty{display:none}.newchat-hero{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100%;padding:24px 12px;display:flex}.newchat-meta{flex-direction:column;gap:6px;min-width:0;display:flex}.newchat-brand{align-items:center;gap:10px;min-width:0;display:flex}.newchat-icon{border-radius:10px;flex:none;width:38px;height:38px}.newchat-brand-text{flex-direction:column;gap:1px;min-width:0;display:flex}.newchat-name{color:var(--text);white-space:nowrap;font-size:22px;font-weight:700;line-height:1.15}.newchat-versions{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;line-height:1.3;overflow:hidden}.newchat-version-link{color:inherit;border-bottom:1px solid #0000;text-decoration:none}.newchat-version-link:hover{color:var(--text-dim);border-bottom-color:currentColor}.newchat-version-link:focus-visible{outline:2px solid var(--accent,currentColor);outline-offset:2px;border-radius:3px}.newchat-version-badge{border:1px solid var(--red);color:var(--red);white-space:nowrap;border-radius:999px;margin-left:5px;padding:0 5px;font-size:11px;font-weight:600;line-height:1.5;display:inline-block;position:relative;top:-1px}.newchat-hello{color:var(--text-dim);text-align:center;margin:0;font-size:24px;font-weight:600;line-height:1.4}.is-mobile-shell .newchat-hero{gap:14px;padding:16px 8px}.is-mobile-shell .newchat-hello{font-size:21px}.btn.btn-send,.btn.btn-queue,.btn.btn-stop{border-radius:8px;justify-content:center;min-width:72px;min-height:30px;padding:6px 14px;font-size:14.5px;line-height:1.4}.btn.btn-queue{background:color-mix(in srgb, var(--yellow,#d9a441) 16%, var(--bg-elev));border-color:color-mix(in srgb, var(--yellow,#d9a441) 55%, var(--border));color:color-mix(in srgb, var(--yellow,#d9a441) 78%, var(--text))}.btn.btn-queue:hover:not(:disabled){background:color-mix(in srgb, var(--yellow,#d9a441) 26%, var(--bg-elev));border-color:var(--yellow,#d9a441)}.btn.btn-stop{background:color-mix(in srgb, var(--red) 14%, var(--bg-elev));border-color:var(--red);color:var(--red)}.btn.btn-stop:hover:not(:disabled){background:color-mix(in srgb, var(--red) 24%, var(--bg-elev))}.status-toggle{color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:2px;padding:0 3px;font-size:10px;display:inline-flex}.status-toggle-icon{text-align:center;width:10px;font-size:11px;line-height:1;display:inline-block}.status-toggle:hover{color:var(--text);background:var(--bg-elev-2)}.is-mobile-shell .statusbar{scrollbar-width:none;white-space:nowrap;overflow-x:auto}.is-mobile-shell .statusbar::-webkit-scrollbar{display:none}.is-mobile-shell .statusbar .status-conv{display:none}.status-context-wrap{display:inline-flex;position:relative}.status-usage-pop{z-index:60;border:1px solid var(--border-strong,var(--border));background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:4px;min-width:200px;max-width:calc(100vw - 16px);padding:8px 10px;display:flex;position:fixed;bottom:46px;right:auto;box-shadow:0 12px 32px #00000059}.status-usage-title{color:var(--text-dim);border-bottom:1px solid var(--border);padding-bottom:4px;font-size:11px;font-weight:600}.status-usage-row{color:var(--text-faint);justify-content:space-between;gap:16px;font-size:11.5px;display:flex}.status-usage-row .mono{color:var(--text)}.is-mobile-shell .statusbar{justify-content:flex-start;gap:10px;height:32px;padding:0 0 0 10px;font-size:13px}.is-mobile-shell .statusbar>.status-toggle{margin-left:auto;padding:0 4px;font-size:12px;position:static;transform:none}.is-mobile-shell .statusbar .tool-chip{height:22px;padding:0 5px;font-size:13px;line-height:22px}.is-mobile-shell .statusbar .tool-chip .tool-icon,.is-mobile-shell .statusbar .thinking-value{font-size:13px}.is-mobile-shell .statusbar .model-caret{font-size:11px}.is-mobile-shell .statusbar>.status-spacer,.is-mobile-shell .statusbar .status-ico,.is-mobile-shell .statusbar .status-queued,.is-mobile-shell .statusbar .status-running{display:none}.is-mobile-shell .statusbar>.status-path{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;max-width:42vw;overflow:hidden}.status-running{align-items:center;gap:5px;display:inline-flex}.status-spinner{border:1.4px solid var(--border-strong,var(--border));border-radius:50%;flex:none;width:8px;height:8px}.status-running.is-working .status-spinner{border-color:color-mix(in srgb, var(--accent) 28%, transparent);border-top-color:var(--accent);animation:.8s linear infinite status-spin}@keyframes status-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.status-running.is-working .status-spinner{border-color:var(--accent);animation:none}}.status-context{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;flex:none;align-items:center;gap:5px;padding:0 2px;font-size:12px;line-height:1.1;display:inline-flex}.status-context:hover{color:var(--text)}.status-ring{flex:none;width:12px;height:12px;transform:rotate(-90deg)}.status-ring-bg{fill:none;stroke:var(--border);stroke-width:2.6px}.status-ring-fg{fill:none;stroke:var(--accent);stroke-width:2.6px;stroke-linecap:round;transition:stroke-dasharray .2s ease-out}.status-context-used{color:var(--text);font-variant-numeric:tabular-nums;font-weight:650}.status-context-total{color:var(--text-faint);font-variant-numeric:tabular-nums}.is-mobile-shell .status-context{padding:2px 7px 2px 5px;font-size:12.5px}.is-mobile-shell .status-ring{width:15px;height:15px}@media (width<=380px){.statusbar .status-toggle-label,.statusbar .status-context-total{display:none}.statusbar>.status-path{max-width:34vw}}.status-controls{flex:none;align-items:center;gap:5px;min-width:0;display:inline-flex}.statusbar .tool-chip{height:17px;color:var(--text-dim);background:0 0;border:none;border-radius:5px;padding:0 3px;font-size:11.5px;line-height:17px}.statusbar .tool-chip:hover:not(:disabled){background:var(--bg-elev-2);color:var(--text)}.statusbar .tool-chip-warn{color:var(--yellow,#d9a441);border:none}.statusbar .tool-chip .tool-icon{font-size:11px}.statusbar .model-trigger{max-width:190px}.statusbar .thinking-value{font-size:11.5px}.statusbar .model-caret{font-size:10px}.push-panel{flex-direction:column;gap:10px;min-height:0;display:flex}.push-head,.push-foot{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.push-list{flex-direction:column;gap:8px;min-height:0;display:flex;overflow:auto}.push-row{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.push-row-on{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.push-row-main{flex:auto;min-width:0}.push-row-name{font-size:15px;font-weight:600}.push-row-meta{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.push-row-endpoint{color:var(--text-faint);word-break:break-all;-webkit-user-select:text;user-select:text;font-size:12.5px;line-height:1.35}.push-env,.push-devices{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.push-devices .push-list{max-height:46vh}.push-env-title{color:var(--text);font-size:14.5px;font-weight:650}.push-env-chips{flex-wrap:wrap;gap:6px;display:flex}.push-env-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:13.5px;display:inline-flex}.push-env-chip em{font-style:normal;font-weight:600}.push-tag-ok{color:var(--green,#1a9f5b)}.push-tag-off{color:var(--text-faint)}.push-env-actions{flex-wrap:wrap;gap:6px;display:flex}.push-env-actions .btn-primary-tiny{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);font-weight:600}.sent-queue{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:4px;padding:6px 10px;font-size:14px;display:flex}.sent-queue-head{color:var(--text-faint);align-items:center;gap:6px;font-size:13.5px;display:flex}.sent-item{align-items:center;gap:8px;min-width:0;display:flex}.sent-tag{border:1px solid var(--accent-dim);color:var(--accent);border-radius:6px;flex:none;padding:0 7px;font-size:12.5px;line-height:1.6}.sent-tag-queue{border-color:var(--border-strong);color:var(--text-faint)}.sent-tag-steer{border-color:var(--accent-dim);color:var(--accent)}.sent-text{text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim);overflow:hidden}.pending-sends{flex-direction:column;gap:6px;display:flex}.pending-item{opacity:.85;border-style:dashed}.pending-item .msg-head{margin-bottom:2px}.pending-queue{opacity:.7}.msg{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-width:0;padding:10px 12px}.msg-user{border-color:color-mix(in srgb, var(--accent) 28%, var(--border));background:color-mix(in srgb, var(--accent) 13%, transparent)}.msg-head{color:var(--text-faint);align-items:baseline;gap:8px;margin-bottom:6px;font-size:14px;display:flex}.msg-role{color:var(--text-dim);font-weight:600}.msg-model{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-size:14px;font-weight:600;overflow:hidden}.msg-live{white-space:nowrap;align-items:center;gap:6px;font-size:12px;line-height:1.5;display:inline-flex}.msg-live-tokens{color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;font-size:12px;display:inline-flex}.msg-live-arrow{color:var(--text-dim);letter-spacing:0;font-size:10.5px}.msg-live-rate{background:var(--speed-bg);color:var(--speed-fg);font-variant-numeric:tabular-nums;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:600}.msg-body{flex-direction:column;gap:8px;min-width:0;display:flex}.msg-user{border-radius:12px;align-self:stretch;width:100%;max-width:none}.msg-assistant{background:0 0;border-color:#0000;padding-left:0;padding-right:0}.msg{position:relative}.msg.msg-user{background:0 0;border:none;padding:0}.msg-user>.msg-bubble{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--border));background:color-mix(in srgb, var(--accent) 13%, transparent);border-radius:12px;padding:10px 12px}.msg-user-foot{justify-content:flex-end;align-items:center;gap:6px;min-width:0;margin-top:4px;display:flex}.msg-user-foot>.msg-action,.msg-user-foot>.msg-foot-copy{opacity:0;transition:opacity .12s}.msg:hover .msg-user-foot>.msg-action,.msg:hover .msg-user-foot>.msg-foot-copy,.msg-user-foot:focus-within>.msg-action,.msg-user-foot:focus-within>.msg-foot-copy,.is-mobile-shell .msg-user-foot>.msg-action,.is-mobile-shell .msg-user-foot>.msg-foot-copy{opacity:1}.msg-head .msg-action{padding:1px 6px;font-size:13px}.msg-action{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-faint);font:inherit;cursor:pointer;white-space:nowrap;border-radius:7px;padding:2px 8px;font-size:13.5px}.msg-action:hover{color:var(--text);border-color:var(--accent-dim)}.msg-action.is-copied,.msg-action.is-copied:hover,.msg-foot-copy.is-copied,.msg-foot-copy.is-copied:hover{color:var(--green);border-color:color-mix(in srgb, var(--green) 45%, transparent);background:color-mix(in srgb, var(--green) 10%, transparent)}.msg-user-foot>.msg-action,.msg-user-foot>.msg-foot-copy{color:color-mix(in srgb, var(--text-faint) 72%, var(--bg));background:0 0;border:0;border-radius:4px;padding:0;font-size:11.5px;line-height:1.6}.msg-user-foot>.msg-action:hover,.msg-user-foot>.msg-foot-copy:hover{color:var(--text-dim);background:0 0;border:0}.msg-user-foot>.msg-action.is-copied,.msg-user-foot>.msg-action.is-copied:hover{color:var(--green);background:0 0}.notice{align-items:flex-start;gap:8px;display:flex}.notice-text{overflow-wrap:anywhere;flex:auto;min-width:0}.notice-close{width:18px;height:18px;color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.notice-close:hover{background:var(--bg-elev-2);color:var(--text)}.msg-tools-toggle{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-faint);font:inherit;cursor:pointer;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:3px 10px;font-size:13.5px;display:inline-flex}.msg-tools-toggle:hover{color:var(--text);border-color:var(--accent-dim)}.msg-process,.msg-process-body{flex-direction:column;gap:8px;min-width:0;display:flex}.process-group{border-left:2px solid var(--accent-dim);background:color-mix(in srgb, var(--accent) 4%, transparent);border-radius:6px;flex-direction:column;gap:6px;min-width:0;padding:6px 8px 6px 10px;display:flex}.process-group .thinking-block,.process-group .tool{background:0 0;border:0;transition:background .12s}.process-group .thinking-block:hover,.process-group .tool:hover{background:color-mix(in srgb, var(--text) 2%, transparent)}.msg-process-meta{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12.5px}.msg-tools-caret{border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:4px solid;width:0;height:0;transition:transform .12s}.msg-tools-caret-open{transform:rotate(90deg)}.thinking-block{border:1px solid var(--border);background:var(--bg-elev);border-radius:8px;overflow:hidden}.thinking-index{background:color-mix(in srgb, var(--accent) 12%, transparent);min-width:18px;color:var(--accent);font-variant-numeric:tabular-nums;text-align:center;border-radius:4px;flex:none;padding:0 4px;font-size:12.5px;line-height:1.5}.thinking-head{width:100%;color:var(--text-faint);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;min-width:0;padding:4px 8px;font-size:14px;display:flex}.thinking-head:hover{color:var(--text-dim)}.thinking-preview{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.thinking-caret{flex:none;font-size:12px}.thinking-label{color:var(--text-dim);flex:none;font-weight:600}.thinking-duration{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.thinking-body{border-top:1px solid var(--border);color:var(--text-dim);white-space:pre-wrap;overflow-wrap:anywhere;padding:6px 10px 8px;font-size:14px;line-height:1.6}.msg-foot{border-top:1px dashed var(--border);color:var(--text-faint);align-items:center;gap:10px;min-width:0;margin-top:8px;padding-top:6px;font-size:13px;display:flex}.msg-usage{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.msg-foot-copy{color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;flex:none;padding:0 2px;font-size:11.5px;line-height:1.4}.msg-foot-copy:hover{color:var(--text-dim);background:0 0}.msg-foot-stamp{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-faint);opacity:.72;flex:none;font-size:11.5px}@media (width<=600px){.msg-foot{flex-wrap:wrap;gap:6px 8px;font-size:12.5px}.msg-usage{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.msg-foot-stamp{margin-left:auto;font-size:11px}.msg-user-foot>.msg-action,.msg-user-foot>.msg-foot-copy,.msg-foot-copy{font-size:11px}}.file-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);flex-direction:column;flex:none;gap:6px;width:260px;min-width:0;min-height:0;padding:8px;display:flex}.file-panel-head{flex:none;align-items:center;gap:6px;font-weight:600;display:flex}.chip-on{border-color:var(--accent-dim);color:var(--accent)}.filetree{flex-direction:column;flex:auto;gap:1px;min-width:0;min-height:0;display:flex;overflow:auto}.filetree-root{color:var(--text-faint);overflow-wrap:anywhere;padding:2px 4px 6px;font-size:13.5px}.filetree-row{width:100%;color:var(--text-dim);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;min-width:0;padding:3px 6px;font-size:14.5px;display:flex}.filetree-row:hover{background:var(--bg-elev-2);color:var(--text)}.filetree-icon{width:10px;color:var(--text-faint);flex:none}.filetree-folder{opacity:.9;flex:none;margin-left:-3px;margin-right:-3px;font-size:12px;line-height:1}.filetree-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.filetree-hint,.filetree-empty{color:var(--text-faint);font-size:14px}.filetree-error,.file-preview-error{color:var(--red);overflow-wrap:anywhere;font-size:14px}.file-preview{flex-direction:column;width:min(920px,94vw);max-height:86vh;display:flex}.file-preview-head{align-items:center;gap:8px;min-width:0;margin-bottom:8px;display:flex}.file-preview-path{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-size:14.5px;overflow:hidden}.file-preview-meta{color:var(--text-faint);flex:none;font-size:13.5px}.file-preview-body{background:var(--bg);border:none;border-radius:0;min-height:0;margin:0;padding:8px 10px;font-size:14.5px;line-height:1.55;overflow:auto}.file-preview-line{white-space:pre;gap:10px;display:flex}.file-preview-no{text-align:right;width:3.2em;color:var(--text-faint);-webkit-user-select:none;user-select:none;flex:none}.file-preview-text{overflow-wrap:anywhere;flex:auto;min-width:0}.file-preview-line-on{background:color-mix(in srgb, var(--accent) 18%, transparent)}.file-preview-no{cursor:pointer;color:var(--text-faint);font:inherit;background:0 0;border:none;padding:0 4px 0 0}.file-preview-no:hover{color:var(--accent)}.file-preview-selection{color:var(--text-faint);flex:none;font-size:14px}.file-preview-hint{color:var(--text-faint);margin-top:6px;font-size:14px}.filetree-item{align-items:center;min-width:0;display:flex;position:relative}.filetree-item>.filetree-row{flex:auto;min-width:0;padding-right:54px}.filetree-mention{border:1px solid var(--border);background:var(--bg-elev-2);color:var(--accent);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:3px;padding:1px 6px;font-size:13.5px;display:none;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.filetree-item:hover .filetree-mention,.filetree-mention:focus-visible{display:inline-flex}.filetree-mention:hover{border-color:var(--accent-dim);background:var(--bg-elev)}.file-preview{resize:both;min-width:520px;min-height:320px;overflow:hidden}.modal.file-preview-full{resize:none;max-width:none;max-height:none;position:fixed;inset:10px;width:calc(100vw - 20px)!important;height:calc(100vh - 20px)!important}.file-preview-md{background:var(--bg);border:none;border-radius:0;flex:auto;min-height:0;padding:4px 8px 12px;overflow:auto}.preview-mode{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.preview-mode button{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:none;padding:3px 10px;font-size:14px}.preview-mode-on{background:var(--bg-elev-2);color:var(--text);font-weight:600}.file-preview-line-clickable{cursor:pointer}.file-preview-line-clickable:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.file-preview-path{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;max-width:42%;overflow:hidden}.preview-mode button{white-space:nowrap}.file-fold{width:12px;height:12px;color:var(--text-faint);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.file-fold:hover{color:var(--accent)}.file-fold-empty{cursor:default;visibility:hidden}.file-fold-summary{background:var(--bg-elev-2);color:var(--text-faint);-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;margin-left:8px;padding:0 6px;font-size:12.5px}.file-media{background:#0d1117;border-radius:0;justify-content:center;align-items:center;min-height:0;padding:10px;display:flex;overflow:auto}.file-video{background:#000;border-radius:0;max-width:100%;max-height:min(70vh,620px)}.file-audio{width:min(560px,100%)}.files-toolbar{flex:none;align-items:center;gap:2px;min-width:0;margin-left:auto;display:flex}.files-tool{width:22px;height:20px;color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;font-size:10.5px;line-height:1;display:inline-flex}.files-tool svg{width:14px;height:14px}.files-tool:hover:not(:disabled){color:var(--text);background:var(--bg-elev-2)}.files-tool-on{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.files-tool:disabled{opacity:.4;cursor:not-allowed}.files-branch{border:1px solid var(--border);max-width:96px;color:var(--text-dim);font:inherit;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border-radius:5px;flex:none;align-items:center;gap:3px;padding:1px 6px 1px 4px;font-size:10.5px;display:inline-flex;overflow:hidden}.files-branch:hover,.files-branch-open{color:var(--text);border-color:var(--border-strong,var(--border));background:var(--bg-elev-2)}.files-branch:disabled{opacity:.5;cursor:default}.files-branch svg{width:12px;height:12px;color:var(--text-faint);flex:none}.files-branch-menu{width:240px}.files-branch-menu-head{border-bottom:1px solid var(--border);align-items:center;gap:6px;margin-bottom:3px;padding:2px 4px 4px 8px;display:flex}.files-branch-menu-title{min-width:0;color:var(--text-faint);flex:auto;font-size:11px}.files-branch-refresh{width:20px;height:18px;color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;padding:0;font-size:12px;line-height:1}.files-branch-refresh:hover{color:var(--accent);background:var(--bg-elev-2)}.files-branch-list{flex-direction:column;gap:1px;display:flex}.files-branch-item{padding:4px 8px 4px 4px;font-size:12.5px}.files-branch-tick{width:12px;color:var(--accent);text-align:center;flex:none;font-size:11px}.files-branch-item-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.files-branch-item-current .files-branch-item-name{color:var(--text)}.files-branch-pending{color:var(--text-faint);flex:none;font-size:10.5px}.files-branch-hint{color:var(--text-faint);padding:4px 8px 6px;font-size:11.5px}.files-branch-error{border-top:1px solid var(--border);color:var(--red);word-break:break-word;margin-top:3px;padding:4px 8px;font-size:11px;line-height:1.4}.files-branch-confirm{flex-direction:column;gap:5px;padding:2px 8px 6px;display:flex}.files-branch-confirm-text{color:var(--text-dim);font-size:11.5px;line-height:1.5}.files-branch-confirm-text b{color:var(--text);font-weight:600}.files-branch-confirm-files{color:var(--text-faint);flex-direction:column;gap:1px;margin:0;padding:0;font-family:ui-monospace,monospace;font-size:10.5px;list-style:none;display:flex}.files-branch-confirm-files li{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.files-branch-confirm-more{font-family:inherit}.files-branch-confirm-actions{gap:4px;margin-top:2px;display:flex}.files-branch-btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);font:inherit;cursor:pointer;border-radius:5px;flex:auto;padding:3px 6px;font-size:11.5px}.files-branch-btn:hover:not(:disabled){color:var(--text);background:var(--bg-elev-2)}.files-branch-btn:disabled{opacity:.5;cursor:default}.files-branch-btn-primary{border-color:color-mix(in srgb, var(--red) 55%, var(--border));color:var(--red)}.files-branch-btn-primary:hover:not(:disabled){color:var(--red);background:color-mix(in srgb, var(--red) 12%, transparent)}.files-search{border:1px solid var(--border);background:var(--bg-elev);width:100%;color:var(--text);font:inherit;border-radius:7px;outline:none;flex:none;padding:4px 8px;font-size:12px}.files-search:focus{border-color:var(--accent-dim)}.files-search-list{flex-direction:column;flex:auto;gap:1px;min-height:0;display:flex;overflow:auto}.files-search-row{width:100%;color:var(--text-dim);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:baseline;gap:8px;min-width:0;padding:3px 6px;font-size:12px;display:flex}.files-search-row:hover{background:var(--bg-elev-2);color:var(--text)}.files-search-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.files-search-path{min-width:0;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;text-align:right;flex:auto;font-size:10.5px;overflow:hidden}.files-search-more{color:var(--text-faint);padding:4px 6px;font-size:10.5px}.preview-panel{background:var(--bg-elev);border:none;border-radius:0;flex-direction:column;flex:none;gap:6px;min-height:0;padding:6px;display:flex;position:relative}.preview-panel-full{z-index:30;height:calc(100vh - 20px);position:fixed;inset:10px;box-shadow:0 20px 60px #0000008c;width:calc(100vw - 20px)!important}.preview-resizer{cursor:col-resize;z-index:5;width:7px;height:100%;position:absolute;top:0;left:-3px}.preview-resizer:hover,.preview-resizer:active{background:color-mix(in srgb, var(--accent) 35%, transparent)}.preview-tabs{flex:none;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto}.preview-tab{border:1px solid var(--border);background:var(--bg);border-radius:7px;align-items:center;min-width:0;max-width:180px;display:inline-flex}.preview-tab-on{border-color:var(--accent-dim);background:var(--bg-elev-2)}.preview-tab-name{color:var(--text-dim);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;min-width:0;padding:2px 6px;font-size:13.5px;overflow:hidden}.preview-tab-on .preview-tab-name{color:var(--text)}.preview-tab-x{color:var(--text-faint);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 5px;font-size:14px}.preview-tab-x:hover{color:var(--red)}.preview-body{flex:auto;min-height:0;display:flex}.file-viewer{flex-direction:column;flex:auto;gap:6px;min-width:0;min-height:0;display:flex}.preview-arrow{background:var(--bg-elev-2);width:30px;height:30px;color:var(--text-dim);font:inherit;cursor:pointer;border:none;border-radius:9px;flex:none;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.preview-arrow:hover{background:var(--bg-elev);color:var(--text)}.preview-collapsed{border-radius:0;align-self:flex-start;width:34px;height:34px;margin-top:6px}.preview-slot{flex:auto;min-width:0;min-height:0;display:flex}.preview-slot-hidden{display:none}.terminal-panel-embedded{background:0 0;border:none;flex:auto;width:100%;min-width:0;min-height:0;padding:0}.preview-tab-icon{border:1px solid var(--border);min-width:18px;color:var(--text-faint);text-align:center;vertical-align:1px;border-radius:4px;margin-right:5px;padding:0 3px;font-family:ui-monospace,monospace;font-size:11.5px;line-height:1.4;display:inline-block}.preview-tab-on .preview-tab-icon{color:var(--accent);border-color:var(--accent-dim)}.file-image-wrap{background-color:#0d1117;background-image:linear-gradient(45deg,#161b22 25%,#0000 25%),linear-gradient(-45deg,#161b22 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#161b22 75%),linear-gradient(-45deg,#0000 75%,#161b22 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border:none;border-radius:0;flex:auto;justify-content:center;align-items:center;min-height:0;padding:8px;display:flex;overflow:auto}.file-image{object-fit:contain;border-radius:0;max-width:100%;max-height:100%}.preview-rail{flex-direction:column;flex:none;align-self:stretch;align-items:center;gap:8px;width:34px;min-height:0;padding-top:6px;display:flex}.preview-rail .outline{pointer-events:auto;flex-direction:column;flex:auto;align-items:center;min-height:0;display:flex;position:static}.preview-rail .outline-rail{background:0 0;border-radius:0;gap:8px;padding:0;overflow:auto}.preview-panel,.preview-rail{background:var(--bg)!important}.preview-panel-wide{flex:auto;min-width:0;width:auto!important}.btn-wide-on{border-color:var(--accent-dim);color:var(--accent);background:var(--bg-elev-2)}.preview-wide-icon{width:13px;height:13px;display:block}.modal-backdrop{z-index:50;overscroll-behavior:contain;padding:var(--gap);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--border-strong);overscroll-behavior:contain;border-radius:12px;width:min(560px,100%);max-height:80vh;padding:16px;overflow:auto}.modal-title{margin:0 0 8px;font-size:18px}.modal-risk{color:var(--amber);margin:0 0 12px}.modal-facts{grid-template-columns:auto 1fr;gap:4px 12px;min-width:0;margin:0 0 16px;display:grid}.modal-facts dt{color:var(--text-faint);font-size:14.5px}.modal-facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.jump-bottom{z-index:9;border:1px solid var(--border);background:var(--bg-elev-2);width:fit-content;color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow,0 6px 18px #00000047);border-radius:999px;margin:-44px 16px 0 auto;padding:5px 12px;font-size:14.5px;display:block;position:sticky;bottom:12px}.jump-bottom:hover{border-color:var(--accent-dim);color:var(--accent)}.tpl-modal{flex-direction:column;gap:8px;width:min(1080px,94vw);max-height:88vh;display:flex}.tpl-head{align-items:center;gap:8px;min-width:0;display:flex}.tpl-title{font-size:17px}.tpl-icon{flex:none;font-size:19px;line-height:1}.tpl-badge{border:1px solid var(--accent-dim);color:var(--accent);border-radius:999px;flex:none;padding:1px 8px;font-size:13px}.tpl-hint{color:var(--text-faint);font-size:14px}.tpl-grid{flex:auto;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;min-height:0;padding:2px;display:grid;overflow:auto}.tpl-card{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;align-items:stretch;min-height:92px;display:flex;position:relative}.tpl-card:hover{border-color:var(--accent-dim)}.tpl-card-main{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:auto;align-items:flex-start;gap:4px;min-width:0;padding:10px 12px;display:flex}.tpl-name{font-size:15px;font-weight:600}.tpl-desc{color:var(--text-faint);overflow-wrap:anywhere;font-size:13.5px;line-height:1.5}.tpl-edit{background:var(--bg-elev-2);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:1px 5px;font-size:13px;display:none;position:absolute;top:4px;right:4px}.tpl-card:hover .tpl-edit{display:block}.tpl-card-new{color:var(--text-dim);cursor:pointer;font:inherit;text-align:left;background:0 0;border-style:dashed;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}.tpl-foot{border-top:1px solid var(--border);flex:none;align-items:center;gap:8px;padding-top:6px;display:flex}.tpl-editor{flex-direction:column;gap:10px;width:min(760px,94vw);max-height:88vh;display:flex}.tpl-field{flex-direction:column;flex:none;gap:5px;min-height:0;display:flex}.tpl-field-grow{flex:auto;min-height:160px}.tpl-label{color:var(--text-faint);font-size:14px}.tpl-input,.tpl-textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:8px 10px;font-size:15px}.tpl-textarea{resize:vertical;flex:auto;min-height:160px;line-height:1.65}.tpl-error{color:var(--red);font-size:14px}.tpl-foot-editor{padding-top:8px}.btn-danger{border-color:color-mix(in srgb, var(--red) 55%, transparent);color:var(--red)}.btn-primary{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);font-weight:600}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 24%, transparent)}.composer-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tool-chip{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);font:inherit;cursor:pointer;border-radius:7px;align-items:center;gap:4px;padding:1px 7px;font-size:12.5px;display:inline-flex}.tool-chip:hover{border-color:var(--accent-dim);color:var(--text)}.tool-select{cursor:pointer;max-width:240px}.tool-sep{background:var(--border);flex:none;width:1px;height:14px}.tool-group{align-items:center;gap:5px;min-width:0;display:inline-flex}.tool-icon{opacity:.85;flex:none;font-size:13px}.tool-static{color:var(--text-faint);cursor:default}.model-current{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.model-pop{z-index:40;border:1px solid var(--border-strong);background:var(--bg-elev);border-radius:10px;flex-direction:column;width:min(380px,82vw);max-height:52vh;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 12px 32px #00000059}.model-filter{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:8px;margin:8px;padding:6px 8px;font-size:14.5px}.model-list{flex:auto;min-height:0;padding-bottom:4px;overflow:auto}.model-provider{color:var(--text-faint);letter-spacing:.06em;padding:8px 10px 4px;font-size:12.5px}.model-item{width:100%;color:var(--text-dim);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;min-width:0;padding:6px 12px;font-size:14.5px;display:flex}.model-empty,.model-foot{color:var(--text-faint);padding:6px 12px;font-size:13px}.model-foot{border-top:1px solid var(--border)}.tool-chip-warn{border-color:color-mix(in srgb, var(--yellow,#d9a441) 60%, transparent);color:var(--yellow,#d9a441)}.composer-topbar{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.composer-topbar .quick-row{flex-wrap:wrap}.model-picker{min-width:0;position:relative}.model-trigger{gap:5px;min-width:0;max-width:260px}.model-trigger-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-caret{color:var(--text-faint);flex:none;font-size:12px}.model-menu{z-index:20;border:1px solid var(--border-strong,var(--border));background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:2px;width:min(300px,78vw);max-height:52vh;padding:6px;display:flex;position:fixed;box-shadow:0 14px 40px #00000073}.model-filter{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:8px;flex:none;padding:6px 9px;font-size:14.5px}.model-list{flex-direction:column;gap:0;min-height:0;display:flex;overflow:auto}.model-group-title{background:var(--bg-elev);color:var(--text-faint);letter-spacing:.06em;padding:6px 4px 3px;font-size:12.5px;position:sticky;top:0}.model-item{width:100%;color:var(--text-dim);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;min-width:0;padding:6px 8px;font-size:14.5px;display:flex}.model-item:hover{background:var(--bg-elev-2);color:var(--text)}.model-item-on{color:var(--text);font-weight:600}.model-check{width:12px;color:var(--accent);flex:none}.model-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-empty{color:var(--text-faint);padding:8px;font-size:14px}.thinking-picker{cursor:pointer;cursor:pointer;gap:3px;position:relative}.thinking-select{opacity:0;width:100%;height:100%;color:inherit;font:inherit;cursor:pointer;appearance:none;background:0 0;border:none;outline:none;position:absolute;inset:0}.thinking-picker:focus-within{outline:2px solid var(--accent-dim);outline-offset:1px}.thinking-caret{color:var(--text-faint);flex:none;font-size:10px}.model-sheet-backdrop,.model-sheet-close{display:none}.is-mobile-shell .model-sheet-backdrop{z-index:30;background:#00000073;display:block;position:fixed;inset:0}.is-mobile-shell .model-menu{border:none;border-top:1px solid var(--border-strong,var(--border));width:100vw;max-height:72dvh;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));z-index:31;border-radius:14px 14px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -12px 40px #00000073}.is-mobile-shell .model-sheet-close{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);cursor:pointer;border-radius:999px;justify-content:center;align-self:flex-end;align-items:center;gap:6px;padding:6px 14px;font-size:15px;display:flex}.is-mobile-shell .model-item{padding-top:11px;padding-bottom:11px;font-size:17px}.model-row{align-items:center;gap:2px;min-width:0;display:flex}.model-row .model-item{flex:1;min-width:0}.model-pin{font:inherit;cursor:pointer;opacity:0;filter:grayscale();background:0 0;border:none;border-radius:6px;flex:none;padding:4px;font-size:12px;line-height:1;transition:opacity .12s}.model-row:hover .model-pin,.model-pin:focus-visible{opacity:.7}.model-pin-on{opacity:1;filter:none}.model-pin:hover{opacity:1}.is-mobile-shell .model-pin{opacity:.55;padding:6px;font-size:14px}.hljs-comment,.hljs-quote{color:#6a737d;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag{color:#0033b3}.hljs-string,.hljs-regexp{color:#a31515}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-selector-attr{color:#0451a5}.hljs-number,.hljs-built_in,.hljs-type,.hljs-symbol{color:#098658}.hljs-title,.hljs-title.function_,.hljs-section{color:#795e26}.hljs-title.class_,.hljs-class .hljs-title,.hljs-selector-id,.hljs-selector-class,.hljs-bullet,.hljs-link{color:#267f99}.hljs-variable,.hljs-template-variable,.hljs-params{color:#001080}.hljs-tag,.hljs-name{color:#0b7285}.hljs-meta,.hljs-meta .hljs-keyword{color:#6a737d}.hljs-deletion{color:#82071e;background:#ff818229}.hljs-addition{color:#116329;background:#2ea04326}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}.md-pre{margin:10px 0;position:relative}.md-pre pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin:0;padding:10px 12px;font-size:14.5px;line-height:1.55;overflow-x:auto}.md-lang{z-index:1;background:var(--bg-elev-2);color:var(--text-faint);letter-spacing:.04em;text-transform:lowercase;pointer-events:none;border-radius:999px;padding:0 6px;font-size:12.5px;position:absolute;top:6px;right:8px}.md-img{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-width:100%;max-height:520px;margin:8px 0;display:block}.md-img-blocked{color:var(--text-faint);font-size:14px}.mermaid-block{border:1px solid var(--border);background:var(--bg);border-radius:8px;margin:10px 0;overflow:hidden}.mermaid-head{border-bottom:1px solid var(--border);background:var(--bg-elev);align-items:center;gap:4px;padding:4px 8px;display:flex}.mermaid-lang{color:var(--text-faint);letter-spacing:.04em;font-size:13px}.mermaid-btn{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 8px;font-size:13.5px}.mermaid-btn-on{background:var(--bg-elev-2);border-color:var(--border);color:var(--text)}.mermaid-btn:disabled{opacity:.45;cursor:not-allowed}.mermaid-svg{justify-content:center;padding:10px;display:flex;overflow:auto}.mermaid-svg svg{max-width:100%;height:auto}.mermaid-source{color:var(--text-dim);margin:0;padding:8px 10px;font-size:14px;line-height:1.55;overflow:auto}.mermaid-error{border-top:1px solid var(--border);color:var(--red);padding:6px 10px;font-size:13.5px}.md table{border-collapse:collapse;width:max-content;max-width:100%;margin:10px 0;font-size:14.5px;line-height:1.5;display:block;overflow-x:auto}.md thead{background:var(--bg-elev-2)}.md th,.md td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:5px 10px}.md th{color:var(--text);white-space:nowrap;font-weight:600}.md tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--bg-elev-2) 45%, transparent)}.md td code,.md th code{white-space:nowrap}.is-mobile-shell .appbar{flex-wrap:wrap;gap:6px;padding:6px 8px}.is-mobile-shell .appbar .brand{font-size:16px}.is-mobile-shell .side-host{z-index:40;border-radius:0;position:fixed;top:0;bottom:0;left:0;box-shadow:0 0 0 100vmax #00000059;width:min(86vw,320px)!important}.is-mobile-shell .activity-bar{width:40px}.is-mobile-shell .preview-panel{z-index:30;border:none;border-radius:0;position:fixed;inset:0;width:100%!important}.is-mobile-shell .preview-resizer,.is-mobile-shell .preview-rail{display:none}.is-mobile-shell .workspace{padding:0 8px 8px}.is-mobile-shell .workspace .main{padding:0 4px}.is-mobile-shell .composer-topbar{flex-wrap:wrap}.is-mobile-shell .composer-topbar .tool-sep{display:none}.is-mobile-shell .composer-input{padding-right:92px}.is-mobile-shell .msg-user{max-width:none}.is-mobile-shell .modal.big-modal,.is-mobile-shell .modal.tpl-modal,.is-mobile-shell .modal.new-project,.is-mobile-shell .modal.file-preview{border-radius:0;width:100vw;height:100vh;max-height:none}.is-mobile-shell .outline{display:none}@media (width>=401px) and (width<=600px){.side-host{max-width:42vw}}@media (width<=480px){.composer-tools .tool-chip,.quick-chip{padding:3px 8px;font-size:14px}.statusbar{font-size:12px}}.side-backdrop{display:none}.is-mobile-shell .side-host>.sidebar{height:auto;max-height:none}.is-mobile-shell .side-host{height:100dvh;padding-top:var(--appbar-h,46px);overscroll-behavior:contain;max-width:100vw;box-shadow:none;background:var(--bg);top:0;left:0;right:0;overflow-y:auto;width:100vw!important}.is-mobile-shell .appbar{z-index:45;position:relative}.is-mobile-shell .side-backdrop{z-index:39;background:#0006;display:block;position:fixed;inset:0}.is-mobile-shell .side-resizer{display:none}.is-mobile-shell .modal.big-modal{width:100vw;height:auto;max-height:calc(100dvh - var(--appbar-h,46px) - 16px);border-radius:0}.is-mobile-shell .modal-resize{display:none}.is-mobile-shell .big-modal-body{padding:8px}.is-mobile-shell .quick-row{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.is-mobile-shell .quick-row::-webkit-scrollbar{display:none}.is-mobile-shell .quick-chip{flex:none}.is-mobile-shell .prov-detail{padding:8px 8px 16px}.is-mobile-shell .prov-model-row{grid-template-columns:minmax(0,1fr) 66px auto auto;gap:6px}.is-mobile-shell .prov-global-bar{flex-wrap:wrap;gap:6px}.is-mobile-shell .composer-wrap{padding:6px 8px 8px}.is-mobile-shell .side-host .side-files{max-height:34vh}.is-mobile-shell .composer{flex-direction:column;align-items:stretch;gap:6px}.is-mobile-shell .composer-input{min-height:52px;padding:10px 12px;font-size:18px;line-height:1.45}.is-mobile-shell .composer-actions{justify-content:flex-end;position:static;transform:none}.is-mobile-shell .btn.btn-send{padding:8px 16px;font-size:16px}.is-mobile-shell .action-row{flex-wrap:wrap;gap:6px}.is-mobile-shell .appbar .session-info,.is-mobile-shell .appbar .appbar-slot{flex:auto}.is-mobile-shell .activity-bar,.is-mobile-shell .side-host .side-files,.is-mobile-shell .side-host .side-split,.is-mobile-shell .side-host .archived-entry{display:none}.is-mobile-shell .side-host .sidebar{padding-top:env(safe-area-inset-top,0);width:100%}.is-mobile-shell .side-host .sidebar-head{z-index:2;background:var(--bg-elev);border-bottom:1px solid var(--border);margin:-10px -10px 0;padding:10px;position:sticky;top:0}.is-mobile-shell .side-host .pi-row,.is-mobile-shell .side-host .session-row{padding-left:10px;padding-right:10px}.is-mobile-shell .appbar-drawer{border:1px solid var(--border);background:var(--bg-elev);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;padding:4px 9px;font-size:17px;line-height:1.1;display:inline-flex}.is-mobile-shell .composer-template-btn,.is-mobile-shell .composer-approval-btn,.is-mobile-shell .composer-tools .tool-sep{display:none}.is-mobile-shell .composer-tools{gap:6px}.is-mobile-shell .modal.new-project{height:auto;max-height:calc(100dvh - var(--appbar-h,46px) - 24px)}.is-mobile-shell .modal-backdrop{z-index:60;padding-top:calc(var(--appbar-h,46px) + 8px);padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));align-items:flex-start}.is-mobile-shell .new-project-list{min-height:40vh}.is-mobile-shell .msg-live{gap:4px;font-size:11.5px}.is-mobile-shell .msg-live-rate{padding:0 5px;font-size:11px}
@@ -0,0 +1 @@
1
+ import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{w as createInfoServices}from"./mermaid-parser.core-BiAhX1l1.js";
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./mermaid-parser.core-BiAhX1l1.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-Da91fG3g.js";import{c as r}from"./chunk-DSNLSHJZ-zhHCjjN9.js";import{a as i}from"./mermaid.core-BxP_A_zj.js";var a={parse:t(async t=>{let r=await e(`info`,t);n.debug(r)},`parse`)},o={version:`12.2.0`},s={parser:a,db:{getVersion:t(()=>o.version,`getVersion`)},renderer:{draw:t((e,t,a)=>{n.debug(`rendering info diagram
2
+ `+e);let o=i(t);r(o,100,400,!0),o.append(`g`).append(`text`).attr(`x`,100).attr(`y`,40).attr(`class`,`version`).attr(`font-size`,32).style(`text-anchor`,`middle`).text(`v${a}`)},`draw`)}};export{s as diagram};
@@ -0,0 +1 @@
1
+ function e(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}export{e as t};
@@ -0,0 +1,70 @@
1
+ import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-Da91fG3g.js";import{C as t,H as n,U as r,_ as i,a,b as o,c as s,q as c,s as l,v as u}from"./chunk-DSNLSHJZ-zhHCjjN9.js";import{m as d}from"./chunk-7S6XSTFO-BCzIiP-6.js";import{t as f}from"./rough.esm-Dy-Kn_BL.js";import{a as p}from"./mermaid.core-BxP_A_zj.js";var m=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,4],r=[1,14],i=[1,12],a=[1,13],o=[6,7,8],s=[1,20],c=[1,18],l=[1,19],u=[6,7,11],d=[1,6,13,14],f=[1,23],p=[1,24],m=[1,6,7,11,13,14],h={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:`error`,6:`SPACELINE`,7:`NL`,8:`ISHIKAWA`,11:`EOF`,13:`SPACELIST`,14:`TEXT`},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 15:r.addNode(a[s-1].length,a[s].trim());break;case 16:r.addNode(0,a[s].trim())}},`anonymous`),table:[{3:1,4:2,5:3,6:[1,5],8:n},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:n},{6:r,7:[1,10],9:9,12:11,13:i,14:a},t(o,[2,3]),{1:[2,2]},t(o,[2,4]),t(o,[2,5]),{1:[2,6],6:r,12:15,13:i,14:a},{6:r,9:16,12:11,13:i,14:a},{6:s,7:c,10:17,11:l},t(u,[2,18],{14:[1,21]}),t(u,[2,16]),t(u,[2,17]),{6:s,7:c,10:22,11:l},{1:[2,7],6:r,12:15,13:i,14:a},t(d,[2,14],{7:f,11:p}),t(m,[2,8]),t(m,[2,9]),t(m,[2,10]),t(u,[2,15]),t(d,[2,13],{7:f,11:p}),t(m,[2,11]),t(m,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
+ `+h.showPosition()+`
3
+ Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};h.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
5
+ `+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e!==!1&&e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:e(function(e,t,n,r){switch(n){case 0:return 6;case 1:return 8;case 2:return 8;case 3:return 6;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},`anonymous`),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}}})();function g(){this.yy={}}return e(g,`Parser`),g.prototype=h,h.Parser=g,new g})();m.parser=m;var h=m,g=class{constructor(){this.stack=[],this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{e(this,`IshikawaDB`)}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,a()}getRoot(){return this.root}addNode(e,t){let n=l.sanitizeText(t,o());if(!this.root){this.root={text:n,children:[]},this.stack=[{level:0,node:this.root}],c(n);return}this.baseLevel??=e;let r=e-this.baseLevel+1;for(r<=0&&(r=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=r;)this.stack.pop();let i=this.stack[this.stack.length-1].node,a={text:n,children:[]};i.children.push(a),this.stack.push({level:r,node:a})}getAccTitle(){return u()}setAccTitle(e){r(e)}getAccDescription(){return i()}setAccDescription(e){n(e)}getDiagramTitle(){return t()}setDiagramTitle(e){c(e)}},_=14,v=250,y=30,b=60,x=5,S=82*Math.PI/180,C=Math.cos(S),w=Math.sin(S),T=e((e,t,n)=>{let r=e.node().getBBox(),i=r.width+t*2,a=r.height+t*2;s(e,a,i,n),e.attr(`viewBox`,`${r.x-t} ${r.y-t} ${i} ${a}`)},`applyPaddedViewBox`),E=e((e,t,n,r)=>{let i=r.db.getRoot();if(!i)return;let a=o(),{look:s,handDrawnSeed:c,themeVariables:l}=a,u=d(a.fontSize)[0]??_,m=s===`handDrawn`,h=i.children??[],g=a.ishikawa?.diagramPadding??20,y=a.ishikawa?.useMaxWidth??!1,b=p(t),x=b.append(`g`).attr(`class`,`ishikawa`),S=m?f.svg(b.node()):void 0,C=S?{roughSvg:S,seed:c??0,lineColor:l?.lineColor??`#333`,fillColor:l?.mainBkg??`#fff`}:void 0,w=`ishikawa-arrow-${t}`;m||x.append(`defs`).append(`marker`).attr(`id`,w).attr(`viewBox`,`0 0 10 10`).attr(`refX`,0).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 10 0 L 0 5 L 10 10 Z`).attr(`class`,`ishikawa-arrow`);let E=0,k=v,A=m?void 0:L(x,E,k,E,k,`ishikawa-spine`);if(O(x,E,k,i.text,u,C),!h.length){m&&L(x,E,k,E,k,`ishikawa-spine`,C),T(b,g,y);return}E-=20;let j=h.filter((e,t)=>t%2==0),N=h.filter((e,t)=>t%2==1),P=D(j),F=D(N),I=P.total+F.total,R=v,z=v;if(I>0){let e=v*2,t=v*.3;R=Math.max(t,e*(P.total/I)),z=Math.max(t,e*(F.total/I))}let B=u*2;R=Math.max(R,P.max*B),z=Math.max(z,F.max*B),k=Math.max(R,v),A&&A.attr(`y1`,k).attr(`y2`,k),x.select(`.ishikawa-head-group`).attr(`transform`,`translate(0,${k})`);let V=Math.ceil(h.length/2);for(let e=0;e<V;e++){let t=x.append(`g`).attr(`class`,`ishikawa-pair`);for(let[n,r,i]of[[h[e*2],-1,R],[h[e*2+1],1,z]])n&&M(t,n,E,k,r,i,u,C);E=t.selectAll(`text`).nodes().reduce((e,t)=>Math.min(e,t.getBBox().x),1/0)}if(m)L(x,E,k,0,k,`ishikawa-spine`,C);else{A.attr(`x1`,E);let e=`url(#${w})`;x.selectAll(`line.ishikawa-branch, line.ishikawa-sub-branch`).attr(`marker-start`,e)}T(b,g,y)},`draw`),D=e(t=>{let n=e(e=>e.children.reduce((e,t)=>e+1+n(t),0),`countDescendants`);return t.reduce((e,t)=>{let r=n(t);return e.total+=r,e.max=Math.max(e.max,r),e},{total:0,max:0})},`sideStats`),O=e((e,t,n,r,i,a)=>{let o=Math.max(6,Math.floor(110/(i*.6))),s=e.append(`g`).attr(`class`,`ishikawa-head-group`).attr(`transform`,`translate(${t},${n})`),c=F(s,P(r,o),0,0,`ishikawa-head-label`,`start`,i),l=c.node().getBBox(),u=Math.max(60,l.width+6),d=Math.max(40,l.height*2+40),f=`M 0 ${-d/2} L 0 ${d/2} Q ${u*2.4} 0 0 ${-d/2} Z`;if(a){let e=a.roughSvg.path(f,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:`hachure`,fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});s.insert(()=>e,`:first-child`).attr(`class`,`ishikawa-head`)}else s.insert(`path`,`:first-child`).attr(`class`,`ishikawa-head`).attr(`d`,f);c.attr(`transform`,`translate(${(u-l.width)/2-l.x+3},${-l.y-l.height/2})`)},`drawHead`),k=e((t,n)=>{let r=[],i=[],a=e((e,t,o)=>{let s=n===-1?[...e].reverse():e;for(let e of s){let n=r.length,s=e.children??[];r.push({depth:o,text:P(e.text,15),parentIndex:t,childCount:s.length}),o%2==0?(i.push(n),s.length&&a(s,n,o+1)):(s.length&&a(s,n,o+1),i.push(n))}},`walk`);return a(t,-1,2),{entries:r,yOrder:i}},`flattenTree`),A=e((e,t,n,r,i,a,o)=>{let s=e.append(`g`).attr(`class`,`ishikawa-label-group`),c=F(s,t,n,r+11*i,`ishikawa-label cause`,`middle`,a).node().getBBox();if(o){let e=o.roughSvg.rectangle(c.x-20,c.y-2,c.width+40,c.height+4,{roughness:1.5,seed:o.seed,fill:o.fillColor,fillStyle:`hachure`,fillWeight:2.5,hachureGap:5,stroke:o.lineColor,strokeWidth:2});s.insert(()=>e,`:first-child`).attr(`class`,`ishikawa-label-box`)}else s.insert(`rect`,`:first-child`).attr(`class`,`ishikawa-label-box`).attr(`x`,c.x-20).attr(`y`,c.y-2).attr(`width`,c.width+40).attr(`height`,c.height+4)},`drawCauseLabel`),j=e((e,t,n,r,i,a)=>{let o=Math.sqrt(r*r+i*i);if(o===0)return;let s=r/o,c=i/o,l=-c*6,u=s*6,d=t,f=n,p=`M ${d} ${f} L ${d-s*6*2+l} ${f-c*6*2+u} L ${d-s*6*2-l} ${f-c*6*2-u} Z`,m=a.roughSvg.path(p,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:`solid`,stroke:a.lineColor,strokeWidth:1});e.append(()=>m)},`drawArrowMarker`),M=e((e,t,n,r,i,a,o,s)=>{let c=t.children??[],l=a*(c.length?1:.2),u=-C*l,d=w*l*i,f=n+u,p=r+d;if(L(e,n,r,f,p,`ishikawa-branch`,s),s&&j(e,n,r,n-f,r-p,s),A(e,t.text,f,p,i,o,s),!c.length)return;let{entries:m,yOrder:h}=k(c,i),g=m.length,_=Array(g);for(let[e,t]of h.entries())_[t]=r+d*((e+1)/(g+1));let v=new Map;v.set(-1,{x0:n,y0:r,x1:f,y1:p,childCount:c.length,childrenDrawn:0});let S=-C,T=w*i,E=i<0?`ishikawa-label up`:`ishikawa-label down`;for(let[t,n]of m.entries()){let r=_[t],i=v.get(n.parentIndex),a=e.append(`g`).attr(`class`,`ishikawa-sub-group`),c=0,l=0,u=0;if(n.depth%2==0){let e=i.y1-i.y0;c=I(i.x0,i.x1,e?(r-i.y0)/e:.5),l=r,u=c-(n.childCount>0?b+n.childCount*x:y),L(a,c,r,u,r,`ishikawa-sub-branch`,s),s&&j(a,c,r,1,0,s),F(a,n.text,u,r,`ishikawa-label align`,`end`,o)}else{let e=i.childrenDrawn++;c=I(i.x0,i.x1,(i.childCount-e)/(i.childCount+1)),l=i.y0,u=c+S*((r-l)/T),L(a,c,l,u,r,`ishikawa-sub-branch`,s),s&&j(a,c,l,c-u,l-r,s),F(a,n.text,u,r,E,`end`,o)}n.childCount>0&&v.set(t,{x0:c,y0:l,x1:u,y1:r,childCount:n.childCount,childrenDrawn:0})}},`drawBranch`),N=e(e=>e.split(/<br\s*\/?>|\n/),`splitLines`),P=e((e,t)=>{if(e.length<=t)return e;let n=[];for(let r of e.split(/\s+/)){let e=n.length-1;e>=0&&n[e].length+1+r.length<=t?n[e]+=` `+r:n.push(r)}return n.join(`
7
+ `)},`wrapText`),F=e((e,t,n,r,i,a,o)=>{let s=N(t),c=o*1.05,l=e.append(`text`).attr(`class`,i).attr(`text-anchor`,a).attr(`x`,n).attr(`y`,r-(s.length-1)*c/2);for(let[e,t]of s.entries())l.append(`tspan`).attr(`x`,n).attr(`dy`,e===0?0:c).text(t);return l},`drawMultilineText`),I=e((e,t,n)=>e+(t-e)*n,`lerp`),L=e((e,t,n,r,i,a,o)=>{if(o){let s=o.roughSvg.line(t,n,r,i,{roughness:1.5,seed:o.seed,stroke:o.lineColor,strokeWidth:2});e.append(()=>s).attr(`class`,a)}else return e.append(`line`).attr(`class`,a).attr(`x1`,t).attr(`y1`,n).attr(`x2`,r).attr(`y2`,i)},`drawLine`),R={parser:h,get db(){return new g},renderer:{draw:E},styles:e(e=>`
8
+ .ishikawa .ishikawa-spine,
9
+ .ishikawa .ishikawa-branch,
10
+ .ishikawa .ishikawa-sub-branch {
11
+ stroke: ${e.lineColor};
12
+ stroke-width: 2;
13
+ fill: none;
14
+ }
15
+
16
+ .ishikawa .ishikawa-sub-branch {
17
+ stroke-width: 1;
18
+ }
19
+
20
+ .ishikawa .ishikawa-arrow {
21
+ fill: ${e.lineColor};
22
+ }
23
+
24
+ .ishikawa .ishikawa-head {
25
+ fill: ${e.mainBkg};
26
+ stroke: ${e.lineColor};
27
+ stroke-width: 2;
28
+ }
29
+
30
+ .ishikawa .ishikawa-label-box {
31
+ fill: ${e.mainBkg};
32
+ stroke: ${e.lineColor};
33
+ stroke-width: 2;
34
+ }
35
+
36
+ .ishikawa text {
37
+ font-family: ${e.fontFamily};
38
+ font-size: ${e.fontSize};
39
+ fill: ${e.textColor};
40
+ }
41
+
42
+ .ishikawa .ishikawa-head-label {
43
+ font-weight: 600;
44
+ text-anchor: middle;
45
+ dominant-baseline: middle;
46
+ font-size: 14px;
47
+ }
48
+
49
+ .ishikawa .ishikawa-label {
50
+ text-anchor: end;
51
+ }
52
+
53
+ .ishikawa .ishikawa-label.cause {
54
+ text-anchor: middle;
55
+ dominant-baseline: middle;
56
+ }
57
+
58
+ .ishikawa .ishikawa-label.align {
59
+ text-anchor: end;
60
+ dominant-baseline: middle;
61
+ }
62
+
63
+ .ishikawa .ishikawa-label.up {
64
+ dominant-baseline: baseline;
65
+ }
66
+
67
+ .ishikawa .ishikawa-label.down {
68
+ dominant-baseline: hanging;
69
+ }
70
+ `,`getStyles`)};export{R as diagram};
@@ -0,0 +1,139 @@
1
+ import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{p as t}from"./src-Da91fG3g.js";import{C as n,H as r,U as i,_ as a,a as o,b as s,c,q as l,v as u}from"./chunk-DSNLSHJZ-zhHCjjN9.js";import{t as d}from"./arc-DviL9o3c.js";import{t as f}from"./chunk-5VM5RSS4-ZNzvKenW.js";import{a as p,n as m,o as h,s as g}from"./chunk-55XCU76K-BweiisZL.js";var _=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[6,8,10,11,12,14,16,17,18],r=[1,9],i=[1,10],a=[1,11],o=[1,12],s=[1,13],c=[1,14],l={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:`error`,4:`journey`,6:`EOF`,8:`SPACE`,10:`NEWLINE`,11:`title`,12:`acc_title`,13:`acc_title_value`,14:`acc_descr`,15:`acc_descr_value`,16:`acc_descr_multiline_value`,17:`section`,18:`taskName`,19:`taskData`},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return a[s-1];case 2:this.$=[];break;case 3:a[s-1].push(a[s]),this.$=a[s-1];break;case 4:case 5:this.$=a[s];break;case 6:case 7:this.$=[];break;case 8:r.setDiagramTitle(a[s].substr(6)),this.$=a[s].substr(6);break;case 9:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 10:case 11:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 12:r.addSection(a[s].substr(8)),this.$=a[s].substr(8);break;case 13:r.addTask(a[s-1],a[s]),this.$=`task`}},`anonymous`),table:[{3:1,4:[1,2]},{1:[3]},t(n,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:i,14:a,16:o,17:s,18:c},t(n,[2,7],{1:[2,1]}),t(n,[2,3]),{9:15,11:r,12:i,14:a,16:o,17:s,18:c},t(n,[2,5]),t(n,[2,6]),t(n,[2,8]),{13:[1,16]},{15:[1,17]},t(n,[2,11]),t(n,[2,12]),{19:[1,18]},t(n,[2,4]),t(n,[2,9]),t(n,[2,10]),t(n,[2,13])],defaultActions:{},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
+ `+h.showPosition()+`
3
+ Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};l.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
+ `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
5
+ `+t+`^`},`showPosition`),test_match:e(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:e(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e!==!1&&e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:e(function(){return this.next()||this.lex()},`lex`),begin:e(function(e){this.conditionStack.push(e)},`begin`),popState:e(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:e(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:e(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:e(function(e){this.begin(e)},`pushState`),stateStackSize:e(function(){return this.conditionStack.length},`stateStackSize`),options:{"case-insensitive":!0},performAction:e(function(e,t,n,r){switch(n){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin(`acc_title`),12;case 8:return this.popState(),`acc_title_value`;case 9:return this.begin(`acc_descr`),14;case 10:return this.popState(),`acc_descr_value`;case 11:this.begin(`acc_descr_multiline`);break;case 12:this.popState();break;case 13:return`acc_descr_multiline_value`;case 14:return 17;case 15:return 18;case 16:return 19;case 17:return`:`;case 18:return 6;case 19:return`INVALID`}},`anonymous`),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}}})();function u(){this.yy={}}return e(u,`Parser`),u.prototype=l,l.Parser=u,new u})();_.parser=_;var v=_,y=``,b=[],x=[],S=[],C=e(function(){b.length=0,x.length=0,y=``,S.length=0,o()},`clear`),w=e(function(e){y=e,b.push(e)},`addSection`),T=e(function(){return b},`getSections`),E=e(function(){let e=A(),t=0;for(;!e&&t<100;)e=A(),t++;return x.push(...S),x},`getTasks`),D=e(function(){let e=[];return x.forEach(t=>{t.people&&e.push(...t.people)}),[...new Set(e)].sort()},`updateActors`),O=e(function(e,t){let n=t.substr(1).split(`:`),r=0,i=[];n.length===1?(r=Number(n[0]),i=[]):(r=Number(n[0]),i=n[1].split(`,`));let a=i.map(e=>e.trim()),o={section:y,type:y,people:a,task:e,score:r};S.push(o)},`addTask`),k=e(function(e){let t={section:y,type:y,description:e,task:e,classes:[]};x.push(t)},`addTaskOrg`),A=e(function(){let t=e(function(e){return S[e].processed},`compileTask`),n=!0;for(let[e,r]of S.entries())t(e),n&&=r.processed;return n},`compileTasks`),j={getConfig:e(()=>s().journey,`getConfig`),clear:C,setDiagramTitle:l,getDiagramTitle:n,setAccTitle:i,getAccTitle:u,setAccDescription:r,getAccDescription:a,addSection:w,getSections:T,getTasks:E,addTask:O,addTaskOrg:k,getActors:e(function(){return D()},`getActors`)},M=e(e=>`.label {
7
+ font-family: ${e.fontFamily};
8
+ color: ${e.textColor};
9
+ }
10
+ .mouth {
11
+ stroke: #666;
12
+ }
13
+
14
+ line {
15
+ stroke: ${e.textColor}
16
+ }
17
+
18
+ .legend {
19
+ fill: ${e.textColor};
20
+ font-family: ${e.fontFamily};
21
+ }
22
+
23
+ .label text {
24
+ fill: #333;
25
+ }
26
+ .label {
27
+ color: ${e.textColor}
28
+ }
29
+
30
+ .face {
31
+ ${e.faceColor?`fill: ${e.faceColor}`:`fill: #FFF8DC`};
32
+ stroke: #999;
33
+ }
34
+
35
+ .node rect,
36
+ .node circle,
37
+ .node ellipse,
38
+ .node polygon,
39
+ .node path {
40
+ fill: ${e.mainBkg};
41
+ stroke: ${e.nodeBorder};
42
+ stroke-width: 1px;
43
+ }
44
+
45
+ .node .label {
46
+ text-align: center;
47
+ }
48
+ .node.clickable {
49
+ cursor: pointer;
50
+ }
51
+
52
+ .arrowheadPath {
53
+ fill: ${e.arrowheadColor};
54
+ }
55
+
56
+ .edgePaths .path {
57
+ stroke: ${e.lineColor};
58
+ stroke-width: 1.5px;
59
+ }
60
+
61
+ .flowchart-link {
62
+ stroke: ${e.lineColor};
63
+ fill: none;
64
+ }
65
+
66
+ .edgeLabel {
67
+ background-color: ${e.edgeLabelBackground};
68
+ rect {
69
+ opacity: 0.5;
70
+ }
71
+ text-align: center;
72
+ }
73
+
74
+ .cluster rect {
75
+ }
76
+
77
+ .cluster text {
78
+ fill: ${e.titleColor};
79
+ }
80
+
81
+ div.mermaidTooltip {
82
+ position: absolute;
83
+ text-align: center;
84
+ max-width: 200px;
85
+ padding: 2px;
86
+ font-family: ${e.fontFamily};
87
+ font-size: 12px;
88
+ background: ${e.tertiaryColor};
89
+ border: 1px solid ${e.border2};
90
+ border-radius: 2px;
91
+ pointer-events: none;
92
+ z-index: 100;
93
+ }
94
+
95
+ .task-type-0, .section-type-0 {
96
+ ${e.fillType0?`fill: ${e.fillType0}`:``};
97
+ }
98
+ .task-type-1, .section-type-1 {
99
+ ${e.fillType0?`fill: ${e.fillType1}`:``};
100
+ }
101
+ .task-type-2, .section-type-2 {
102
+ ${e.fillType0?`fill: ${e.fillType2}`:``};
103
+ }
104
+ .task-type-3, .section-type-3 {
105
+ ${e.fillType0?`fill: ${e.fillType3}`:``};
106
+ }
107
+ .task-type-4, .section-type-4 {
108
+ ${e.fillType0?`fill: ${e.fillType4}`:``};
109
+ }
110
+ .task-type-5, .section-type-5 {
111
+ ${e.fillType0?`fill: ${e.fillType5}`:``};
112
+ }
113
+ .task-type-6, .section-type-6 {
114
+ ${e.fillType0?`fill: ${e.fillType6}`:``};
115
+ }
116
+ .task-type-7, .section-type-7 {
117
+ ${e.fillType0?`fill: ${e.fillType7}`:``};
118
+ }
119
+
120
+ .actor-0 {
121
+ ${e.actor0?`fill: ${e.actor0}`:``};
122
+ }
123
+ .actor-1 {
124
+ ${e.actor1?`fill: ${e.actor1}`:``};
125
+ }
126
+ .actor-2 {
127
+ ${e.actor2?`fill: ${e.actor2}`:``};
128
+ }
129
+ .actor-3 {
130
+ ${e.actor3?`fill: ${e.actor3}`:``};
131
+ }
132
+ .actor-4 {
133
+ ${e.actor4?`fill: ${e.actor4}`:``};
134
+ }
135
+ .actor-5 {
136
+ ${e.actor5?`fill: ${e.actor5}`:``};
137
+ }
138
+ ${f()}
139
+ `,`getStyles`),N=e(function(e,t){return p(e,t)},`drawRect`),P=e(function(t,n){let r=t.append(`circle`).attr(`cx`,n.cx).attr(`cy`,n.cy).attr(`class`,`face`).attr(`r`,15).attr(`stroke-width`,2).attr(`overflow`,`visible`),i=t.append(`g`);i.append(`circle`).attr(`cx`,n.cx-5).attr(`cy`,n.cy-5).attr(`r`,1.5).attr(`stroke-width`,2).attr(`fill`,`#666`).attr(`stroke`,`#666`),i.append(`circle`).attr(`cx`,n.cx+5).attr(`cy`,n.cy-5).attr(`r`,1.5).attr(`stroke-width`,2).attr(`fill`,`#666`).attr(`stroke`,`#666`);function a(e){let t=d().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(15/2).outerRadius(15/2.2);e.append(`path`).attr(`class`,`mouth`).attr(`d`,t).attr(`transform`,`translate(`+n.cx+`,`+(n.cy+2)+`)`)}e(a,`smile`);function o(e){let t=d().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(15/2).outerRadius(15/2.2);e.append(`path`).attr(`class`,`mouth`).attr(`d`,t).attr(`transform`,`translate(`+n.cx+`,`+(n.cy+7)+`)`)}e(o,`sad`);function s(e){e.append(`line`).attr(`class`,`mouth`).attr(`stroke`,2).attr(`x1`,n.cx-5).attr(`y1`,n.cy+7).attr(`x2`,n.cx+5).attr(`y2`,n.cy+7).attr(`class`,`mouth`).attr(`stroke-width`,`1px`).attr(`stroke`,`#666`)}return e(s,`ambivalent`),n.score>3?a(i):n.score<3?o(i):s(i),r},`drawFace`),F=e(function(e,t){let n=e.append(`circle`);return n.attr(`cx`,t.cx),n.attr(`cy`,t.cy),n.attr(`class`,`actor-`+t.pos),n.attr(`fill`,t.fill),n.attr(`stroke`,t.stroke),n.attr(`r`,t.r),n.class!==void 0&&n.attr(`class`,n.class),t.title!==void 0&&n.append(`title`).text(t.title),n},`drawCircle`),I=e(function(e,t){return h(e,t)},`drawText`),L=e(function(t,n){function r(e,t,n,r,i){return e+`,`+t+` `+(e+n)+`,`+t+` `+(e+n)+`,`+(t+r-i)+` `+(e+n-i*1.2)+`,`+(t+r)+` `+e+`,`+(t+r)}e(r,`genPoints`);let i=t.append(`polygon`);i.attr(`points`,r(n.x,n.y,50,20,7)),i.attr(`class`,`labelBox`),n.y+=n.labelMargin,n.x+=.5*n.labelMargin,I(t,n)},`drawLabel`),R=e(function(e,t,n){let r=e.append(`g`),i=g();i.x=t.x,i.y=t.y,i.fill=t.fill,i.width=n.width*t.taskCount+n.diagramMarginX*(t.taskCount-1),i.height=n.height,i.class=`journey-section section-type-`+t.num,i.rx=3,i.ry=3,N(r,i),H(n)(t.text,r,i.x,i.y,i.width,i.height,{class:`journey-section section-type-`+t.num},n,t.colour)},`drawSection`),z=-1,B=e(function(e,t,n,r){let i=t.x+n.width/2,a=e.append(`g`);z++,a.append(`line`).attr(`id`,r+`-task`+z).attr(`x1`,i).attr(`y1`,t.y).attr(`x2`,i).attr(`y2`,450).attr(`class`,`task-line`).attr(`stroke-width`,`1px`).attr(`stroke-dasharray`,`4 2`).attr(`stroke`,`#666`),P(a,{cx:i,cy:300+(5-t.score)*30,score:t.score});let o=g();o.x=t.x,o.y=t.y,o.fill=t.fill,o.width=n.width,o.height=n.height,o.class=`task task-type-`+t.num,o.rx=3,o.ry=3,N(a,o);let s=t.x+14;t.people.forEach(e=>{let n=t.actors[e].color,r={cx:s,cy:t.y,r:7,fill:n,stroke:`#000`,title:e,pos:t.actors[e].position};F(a,r),s+=10}),H(n)(t.task,a,o.x,o.y,o.width,o.height,{class:`task`},n,t.colour)},`drawTask`),V=e(function(e,t){m(e,t)},`drawBackgroundRect`),H=(function(){function t(e,t,n,r,a,o,s,c){i(t.append(`text`).attr(`x`,n+a/2).attr(`y`,r+o/2+5).style(`font-color`,c).style(`text-anchor`,`middle`).text(e),s)}e(t,`byText`);function n(e,t,n,r,a,o,s,c,l){let{taskFontSize:u,taskFontFamily:d}=c,f=e.split(/<br\s*\/?>/gi);for(let e=0;e<f.length;e++){let c=e*u-u*(f.length-1)/2,p=t.append(`text`).attr(`x`,n+a/2).attr(`y`,r).attr(`fill`,l).style(`text-anchor`,`middle`).style(`font-size`,u).style(`font-family`,d);p.append(`tspan`).attr(`x`,n+a/2).attr(`dy`,c).text(f[e]),p.attr(`y`,r+o/2).attr(`dominant-baseline`,`central`).attr(`alignment-baseline`,`central`),i(p,s)}}e(n,`byTspan`);function r(e,t,r,a,o,s,c,l){let u=t.append(`switch`),d=u.append(`foreignObject`).attr(`x`,r).attr(`y`,a).attr(`width`,o).attr(`height`,s).attr(`position`,`fixed`).append(`xhtml:div`).style(`display`,`table`).style(`height`,`100%`).style(`width`,`100%`);d.append(`div`).attr(`class`,`label`).style(`display`,`table-cell`).style(`text-align`,`center`).style(`vertical-align`,`middle`).text(e),n(e,u,r,a,o,s,c,l),i(d,c)}e(r,`byFo`);function i(e,t){for(let n in t)n in t&&e.attr(n,t[n])}return e(i,`_setTextAttrs`),function(e){return e.textPlacement===`fo`?r:e.textPlacement===`old`?t:n}})(),U={drawRect:N,drawCircle:F,drawSection:R,drawText:I,drawLabel:L,drawTask:B,drawBackgroundRect:V,initGraphics:e(function(e,t){z=-1,e.append(`defs`).append(`marker`).attr(`id`,t+`-arrowhead`).attr(`refX`,5).attr(`refY`,2).attr(`markerWidth`,6).attr(`markerHeight`,4).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0,0 V 4 L6,2 Z`)},`initGraphics`)},W=e(function(e){Object.keys(e).forEach(function(t){J[t]=e[t]})},`setConf`),G={},K=0;function q(e){let t=s().journey,n=t.maxLabelWidth;K=0;let r=60;Object.keys(G).forEach(i=>{let a=G[i].color,o={cx:20,cy:r,r:7,fill:a,stroke:`#000`,pos:G[i].position};U.drawCircle(e,o);let s=e.append(`text`).attr(`visibility`,`hidden`).text(i),c=s.node().getBoundingClientRect().width;s.remove();let l=[];if(c<=n)l=[i];else{let t=i.split(` `),r=``;s=e.append(`text`).attr(`visibility`,`hidden`),t.forEach(e=>{let t=r?`${r} ${e}`:e;if(s.text(t),s.node().getBoundingClientRect().width>n){if(r&&l.push(r),r=e,s.text(e),s.node().getBoundingClientRect().width>n){let t=``;for(let r of e)t+=r,s.text(t+`-`),s.node().getBoundingClientRect().width>n&&(l.push(t.slice(0,-1)+`-`),t=r);r=t}}else r=t}),r&&l.push(r),s.remove()}l.forEach((n,i)=>{let a={x:40,y:r+7+i*20,fill:`#666`,text:n,textMargin:t.boxTextMargin??5},o=U.drawText(e,a).node().getBoundingClientRect().width;o>K&&o>t.leftMargin-o&&(K=o)}),r+=Math.max(20,l.length*20)})}e(q,`drawActorLegend`);var J=s().journey,Y=0,ee=e(function(e,n,r,i){let a=s(),o=a.journey.titleColor,l=a.journey.titleFontSize,u=a.journey.titleFontFamily,d=a.securityLevel,f;d===`sandbox`&&(f=t(`#i`+n));let p=t(d===`sandbox`?f.nodes()[0].contentDocument.body:`body`);X.init();let m=p.select(`#`+n);U.initGraphics(m,n);let h=i.db.getTasks(),g=i.db.getDiagramTitle(),_=i.db.getActors();for(let e in G)delete G[e];let v=0;_.forEach(e=>{G[e]={color:J.actorColours[v%J.actorColours.length],position:v},v++}),q(m),Y=J.leftMargin+K,X.insert(0,0,Y,Object.keys(G).length*50),te(m,h,0,n);let y=X.getBounds();g&&m.append(`text`).text(g).attr(`x`,Y).attr(`font-size`,l).attr(`font-weight`,`bold`).attr(`y`,25).attr(`fill`,o).attr(`font-family`,u);let b=y.stopy-y.starty+2*J.diagramMarginY,x=Y+y.stopx+2*J.diagramMarginX;c(m,b,x,J.useMaxWidth),m.append(`line`).attr(`x1`,Y).attr(`y1`,J.height*4).attr(`x2`,x-Y-4).attr(`y2`,J.height*4).attr(`stroke-width`,4).attr(`stroke`,`black`).attr(`marker-end`,`url(#`+n+`-arrowhead)`);let S=g?70:0;m.attr(`viewBox`,`${y.startx} -25 ${x} ${b+S}`),m.attr(`preserveAspectRatio`,`xMinYMin meet`),m.attr(`height`,b+S+25)},`draw`),X={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:e(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},`init`),updateVal:e(function(e,t,n,r){e[t]=e[t]===void 0?n:r(n,e[t])},`updateVal`),updateBounds:e(function(t,n,r,i){let a=s().journey,o=this,c=0;function l(s){return e(function(e){c++;let l=o.sequenceItems.length-c+1;o.updateVal(e,`starty`,n-l*a.boxMargin,Math.min),o.updateVal(e,`stopy`,i+l*a.boxMargin,Math.max),o.updateVal(X.data,`startx`,t-l*a.boxMargin,Math.min),o.updateVal(X.data,`stopx`,r+l*a.boxMargin,Math.max),s!==`activation`&&(o.updateVal(e,`startx`,t-l*a.boxMargin,Math.min),o.updateVal(e,`stopx`,r+l*a.boxMargin,Math.max),o.updateVal(X.data,`starty`,n-l*a.boxMargin,Math.min),o.updateVal(X.data,`stopy`,i+l*a.boxMargin,Math.max))},`updateItemBounds`)}e(l,`updateFn`),this.sequenceItems.forEach(l())},`updateBounds`),insert:e(function(e,t,n,r){let i=Math.min(e,n),a=Math.max(e,n),o=Math.min(t,r),s=Math.max(t,r);this.updateVal(X.data,`startx`,i,Math.min),this.updateVal(X.data,`starty`,o,Math.min),this.updateVal(X.data,`stopx`,a,Math.max),this.updateVal(X.data,`stopy`,s,Math.max),this.updateBounds(i,o,a,s)},`insert`),bumpVerticalPos:e(function(e){this.verticalPos+=e,this.data.stopy=this.verticalPos},`bumpVerticalPos`),getVerticalPos:e(function(){return this.verticalPos},`getVerticalPos`),getBounds:e(function(){return this.data},`getBounds`)},Z=J.sectionFills,Q=J.sectionColours,te=e(function(e,t,n,r){let i=s().journey,a=``,o=n+(i.height*2+i.diagramMarginY),c=0,l=`#CCC`,u=`black`,d=0;for(let[n,s]of t.entries()){if(a!==s.section){l=Z[c%Z.length],d=c%Z.length,u=Q[c%Q.length];let r=0,o=s.section;for(let e=n;e<t.length&&t[e].section==o;e++)r+=1;let f={x:n*i.taskMargin+n*i.width+Y,y:50,text:s.section,fill:l,num:d,colour:u,taskCount:r};U.drawSection(e,f,i),a=s.section,c++}let f=s.people.reduce((e,t)=>(G[t]&&(e[t]=G[t]),e),{});s.x=n*i.taskMargin+n*i.width+Y,s.y=o,s.width=i.diagramMarginX,s.height=i.diagramMarginY,s.colour=u,s.fill=l,s.num=d,s.actors=f,U.drawTask(e,s,i,r),X.insert(s.x,s.y,s.x+s.width+i.taskMargin,450)}},`drawTasks`),$={setConf:W,draw:ee},ne={parser:v,db:j,renderer:$,styles:M,init:e(e=>{$.setConf(e.journey),j.clear()},`init`)};export{ne as diagram};