atoo-studio 0.0.1 → 0.0.2

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 (408) hide show
  1. package/LICENSE +21 -0
  2. package/README.github.md +322 -0
  3. package/README.md +112 -0
  4. package/README.npm.md +112 -0
  5. package/bin/atoo-studio.js +90 -0
  6. package/dist/src/agents/claude-code-terminal/adapter.d.ts +42 -0
  7. package/dist/src/agents/claude-code-terminal/adapter.js +166 -0
  8. package/dist/src/agents/claude-code-terminal/index.d.ts +13 -0
  9. package/dist/src/agents/claude-code-terminal/index.js +45 -0
  10. package/dist/src/agents/claude-code-terminal/spawner.d.ts +9 -0
  11. package/dist/src/agents/claude-code-terminal/spawner.js +37 -0
  12. package/dist/src/agents/claude-code-terminal-chatro/adapter.d.ts +51 -0
  13. package/dist/src/agents/claude-code-terminal-chatro/adapter.js +301 -0
  14. package/dist/src/agents/claude-code-terminal-chatro/index.d.ts +13 -0
  15. package/dist/src/agents/claude-code-terminal-chatro/index.js +45 -0
  16. package/dist/src/agents/claude-code-terminal-chatro/jsonl-watcher.d.ts +67 -0
  17. package/dist/src/agents/claude-code-terminal-chatro/jsonl-watcher.js +431 -0
  18. package/dist/src/agents/claude-code-terminal-chatro/spawner.d.ts +9 -0
  19. package/dist/src/agents/claude-code-terminal-chatro/spawner.js +37 -0
  20. package/dist/src/agents/codex-terminal/adapter.d.ts +40 -0
  21. package/dist/src/agents/codex-terminal/adapter.js +160 -0
  22. package/dist/src/agents/codex-terminal/index.d.ts +13 -0
  23. package/dist/src/agents/codex-terminal/index.js +47 -0
  24. package/dist/src/agents/codex-terminal/spawner.d.ts +9 -0
  25. package/dist/src/agents/codex-terminal/spawner.js +56 -0
  26. package/dist/src/agents/codex-terminal-chatro/adapter.d.ts +58 -0
  27. package/dist/src/agents/codex-terminal-chatro/adapter.js +266 -0
  28. package/dist/src/agents/codex-terminal-chatro/index.d.ts +13 -0
  29. package/dist/src/agents/codex-terminal-chatro/index.js +50 -0
  30. package/dist/src/agents/codex-terminal-chatro/jsonl-watcher.d.ts +36 -0
  31. package/dist/src/agents/codex-terminal-chatro/jsonl-watcher.js +205 -0
  32. package/dist/src/agents/codex-terminal-chatro/spawner.d.ts +9 -0
  33. package/dist/src/agents/codex-terminal-chatro/spawner.js +57 -0
  34. package/dist/src/agents/lib/chain-builder.d.ts +21 -0
  35. package/dist/src/agents/lib/chain-builder.js +139 -0
  36. package/dist/src/agents/lib/claude/fs-sessions.d.ts +31 -0
  37. package/dist/src/agents/lib/claude/fs-sessions.js +329 -0
  38. package/dist/src/agents/lib/claude/jsonl-writer.d.ts +32 -0
  39. package/dist/src/agents/lib/claude/jsonl-writer.js +342 -0
  40. package/dist/src/agents/lib/claude/workspace-trust.d.ts +1 -0
  41. package/dist/src/agents/lib/claude/workspace-trust.js +29 -0
  42. package/dist/src/agents/lib/codex/fs-sessions.d.ts +34 -0
  43. package/dist/src/agents/lib/codex/fs-sessions.js +255 -0
  44. package/dist/src/agents/lib/codex/jsonl-mapper.d.ts +11 -0
  45. package/dist/src/agents/lib/codex/jsonl-mapper.js +154 -0
  46. package/dist/src/agents/lib/codex/jsonl-writer.d.ts +8 -0
  47. package/dist/src/agents/lib/codex/jsonl-writer.js +440 -0
  48. package/dist/src/agents/lib/fs-tracking.d.ts +36 -0
  49. package/dist/src/agents/lib/fs-tracking.js +109 -0
  50. package/dist/src/agents/lib/pty-activity-tracker.d.ts +37 -0
  51. package/dist/src/agents/lib/pty-activity-tracker.js +105 -0
  52. package/dist/src/agents/lib/session-id-utils.d.ts +46 -0
  53. package/dist/src/agents/lib/session-id-utils.js +147 -0
  54. package/dist/src/agents/lib/session-precreate.d.ts +17 -0
  55. package/dist/src/agents/lib/session-precreate.js +177 -0
  56. package/dist/src/agents/registry.d.ts +72 -0
  57. package/dist/src/agents/registry.js +337 -0
  58. package/dist/src/agents/types.d.ts +135 -0
  59. package/dist/src/agents/types.js +1 -0
  60. package/dist/src/auth/crypto-key.d.ts +6 -0
  61. package/dist/src/auth/crypto-key.js +45 -0
  62. package/dist/src/auth/middleware.d.ts +18 -0
  63. package/dist/src/auth/middleware.js +54 -0
  64. package/dist/src/auth/password.d.ts +2 -0
  65. package/dist/src/auth/password.js +12 -0
  66. package/dist/src/auth/session.d.ts +10 -0
  67. package/dist/src/auth/session.js +33 -0
  68. package/dist/src/auth/totp.d.ts +12 -0
  69. package/dist/src/auth/totp.js +61 -0
  70. package/dist/src/auth/webauthn.d.ts +6 -0
  71. package/dist/src/auth/webauthn.js +117 -0
  72. package/dist/src/config.d.ts +10 -0
  73. package/dist/src/config.js +16 -0
  74. package/dist/src/database/connection-manager.d.ts +25 -0
  75. package/dist/src/database/connection-manager.js +211 -0
  76. package/dist/src/database/discovery/container.d.ts +6 -0
  77. package/dist/src/database/discovery/container.js +226 -0
  78. package/dist/src/database/discovery/env-parser.d.ts +9 -0
  79. package/dist/src/database/discovery/env-parser.js +525 -0
  80. package/dist/src/database/discovery/local-files.d.ts +6 -0
  81. package/dist/src/database/discovery/local-files.js +58 -0
  82. package/dist/src/database/discovery/port-scan.d.ts +7 -0
  83. package/dist/src/database/discovery/port-scan.js +61 -0
  84. package/dist/src/database/drivers/cassandra.d.ts +12 -0
  85. package/dist/src/database/drivers/cassandra.js +91 -0
  86. package/dist/src/database/drivers/clickhouse.d.ts +11 -0
  87. package/dist/src/database/drivers/clickhouse.js +127 -0
  88. package/dist/src/database/drivers/elasticsearch.d.ts +12 -0
  89. package/dist/src/database/drivers/elasticsearch.js +169 -0
  90. package/dist/src/database/drivers/influxdb.d.ts +14 -0
  91. package/dist/src/database/drivers/influxdb.js +194 -0
  92. package/dist/src/database/drivers/memcached.d.ts +11 -0
  93. package/dist/src/database/drivers/memcached.js +117 -0
  94. package/dist/src/database/drivers/mongodb.d.ts +12 -0
  95. package/dist/src/database/drivers/mongodb.js +128 -0
  96. package/dist/src/database/drivers/mysql.d.ts +11 -0
  97. package/dist/src/database/drivers/mysql.js +112 -0
  98. package/dist/src/database/drivers/neo4j.d.ts +11 -0
  99. package/dist/src/database/drivers/neo4j.js +158 -0
  100. package/dist/src/database/drivers/postgresql.d.ts +11 -0
  101. package/dist/src/database/drivers/postgresql.js +133 -0
  102. package/dist/src/database/drivers/redis.d.ts +11 -0
  103. package/dist/src/database/drivers/redis.js +91 -0
  104. package/dist/src/database/drivers/sqlite.d.ts +10 -0
  105. package/dist/src/database/drivers/sqlite.js +100 -0
  106. package/dist/src/database/query-stream.d.ts +5 -0
  107. package/dist/src/database/query-stream.js +75 -0
  108. package/dist/src/database/types.d.ts +71 -0
  109. package/dist/src/database/types.js +1 -0
  110. package/dist/src/events/index.d.ts +3 -0
  111. package/dist/src/events/index.js +3 -0
  112. package/dist/src/events/types.d.ts +214 -0
  113. package/dist/src/events/types.js +22 -0
  114. package/dist/src/events/wire.d.ts +114 -0
  115. package/dist/src/events/wire.js +296 -0
  116. package/dist/src/fs-monitor-types.d.ts +24 -0
  117. package/dist/src/fs-monitor-types.js +1 -0
  118. package/dist/src/fs-monitor.d.ts +80 -0
  119. package/dist/src/fs-monitor.js +637 -0
  120. package/dist/src/handlers/auth.d.ts +1 -0
  121. package/dist/src/handlers/auth.js +170 -0
  122. package/dist/src/handlers/changes.d.ts +1 -0
  123. package/dist/src/handlers/changes.js +203 -0
  124. package/dist/src/handlers/containers.d.ts +12 -0
  125. package/dist/src/handlers/containers.js +379 -0
  126. package/dist/src/handlers/databases.d.ts +3 -0
  127. package/dist/src/handlers/databases.js +327 -0
  128. package/dist/src/handlers/environments.d.ts +3 -0
  129. package/dist/src/handlers/environments.js +286 -0
  130. package/dist/src/handlers/github.d.ts +1 -0
  131. package/dist/src/handlers/github.js +153 -0
  132. package/dist/src/handlers/projects.d.ts +1 -0
  133. package/dist/src/handlers/projects.js +895 -0
  134. package/dist/src/handlers/ssh.d.ts +1 -0
  135. package/dist/src/handlers/ssh.js +162 -0
  136. package/dist/src/handlers/users.d.ts +1 -0
  137. package/dist/src/handlers/users.js +195 -0
  138. package/dist/src/index.d.ts +1 -0
  139. package/dist/src/index.js +228 -0
  140. package/dist/src/mcp/config.d.ts +32 -0
  141. package/dist/src/mcp/config.js +227 -0
  142. package/dist/src/mcp/server.d.ts +1 -0
  143. package/dist/src/mcp/server.js +574 -0
  144. package/dist/src/serial/cuse-device.d.ts +19 -0
  145. package/dist/src/serial/cuse-device.js +260 -0
  146. package/dist/src/serial/manager.d.ts +63 -0
  147. package/dist/src/serial/manager.js +206 -0
  148. package/dist/src/serial/pty-pair.d.ts +16 -0
  149. package/dist/src/serial/pty-pair.js +68 -0
  150. package/dist/src/services/fs-browser.d.ts +14 -0
  151. package/dist/src/services/fs-browser.js +98 -0
  152. package/dist/src/services/git-ops.d.ts +78 -0
  153. package/dist/src/services/git-ops.js +288 -0
  154. package/dist/src/services/github-ops.d.ts +104 -0
  155. package/dist/src/services/github-ops.js +192 -0
  156. package/dist/src/services/obfuscation.d.ts +2 -0
  157. package/dist/src/services/obfuscation.js +16 -0
  158. package/dist/src/services/preview/headless-backend.d.ts +62 -0
  159. package/dist/src/services/preview/headless-backend.js +698 -0
  160. package/dist/src/services/preview/injected-scripts.d.ts +9 -0
  161. package/dist/src/services/preview/injected-scripts.js +232 -0
  162. package/dist/src/services/preview/preview-backend.d.ts +92 -0
  163. package/dist/src/services/preview/preview-backend.js +15 -0
  164. package/dist/src/services/preview/universal-setter.d.ts +7 -0
  165. package/dist/src/services/preview/universal-setter.js +46 -0
  166. package/dist/src/services/preview-manager.d.ts +50 -0
  167. package/dist/src/services/preview-manager.js +216 -0
  168. package/dist/src/services/project-watcher.d.ts +6 -0
  169. package/dist/src/services/project-watcher.js +307 -0
  170. package/dist/src/services/remote-fs-browser.d.ts +11 -0
  171. package/dist/src/services/remote-fs-browser.js +50 -0
  172. package/dist/src/services/remote-git-ops.d.ts +71 -0
  173. package/dist/src/services/remote-git-ops.js +215 -0
  174. package/dist/src/services/session-search.d.ts +56 -0
  175. package/dist/src/services/session-search.js +303 -0
  176. package/dist/src/services/ssh-manager.d.ts +44 -0
  177. package/dist/src/services/ssh-manager.js +359 -0
  178. package/dist/src/session-writer.d.ts +9 -0
  179. package/dist/src/session-writer.js +66 -0
  180. package/dist/src/spawner.d.ts +56 -0
  181. package/dist/src/spawner.js +135 -0
  182. package/dist/src/state/db.d.ts +214 -0
  183. package/dist/src/state/db.js +897 -0
  184. package/dist/src/state/store.d.ts +37 -0
  185. package/dist/src/state/store.js +108 -0
  186. package/dist/src/state/types.d.ts +13 -0
  187. package/dist/src/state/types.js +1 -0
  188. package/dist/src/web/devtools-proxy.d.ts +7 -0
  189. package/dist/src/web/devtools-proxy.js +176 -0
  190. package/dist/src/web/port-proxy.d.ts +15 -0
  191. package/dist/src/web/port-proxy.js +124 -0
  192. package/dist/src/web/preview-ws.d.ts +5 -0
  193. package/dist/src/web/preview-ws.js +207 -0
  194. package/dist/src/web/server.d.ts +6 -0
  195. package/dist/src/web/server.js +1694 -0
  196. package/dist/src/ws/agent-ws.d.ts +5 -0
  197. package/dist/src/ws/agent-ws.js +93 -0
  198. package/frontend/dist/assets/_basePickBy-B-LibQ4-.js +1 -0
  199. package/frontend/dist/assets/_baseUniq-CprifHap.js +1 -0
  200. package/frontend/dist/assets/_createAssigner-ByDUqGii.js +1 -0
  201. package/frontend/dist/assets/abap-DuT-3z4x.js +1 -0
  202. package/frontend/dist/assets/addon-fit-CxQet2ja.js +1 -0
  203. package/frontend/dist/assets/addon-web-links-D_jRkPIl.js +1 -0
  204. package/frontend/dist/assets/apex-B-em86xX.js +1 -0
  205. package/frontend/dist/assets/api-SUPuHhSY.js +2 -0
  206. package/frontend/dist/assets/arc-Z0_eVteO.js +1 -0
  207. package/frontend/dist/assets/architecture-PBZL5I3N-hvVXGhqd.js +1 -0
  208. package/frontend/dist/assets/architectureDiagram-2XIMDMQ5-DiHPxX4j.js +36 -0
  209. package/frontend/dist/assets/array-CwG8vNfn.js +1 -0
  210. package/frontend/dist/assets/auth-store-R7eW5SVu.js +1 -0
  211. package/frontend/dist/assets/azcli-Bg9wQloi.js +1 -0
  212. package/frontend/dist/assets/bat-BM46z99L.js +1 -0
  213. package/frontend/dist/assets/bicep-DcBsJUfh.js +2 -0
  214. package/frontend/dist/assets/blockDiagram-WCTKOSBZ-C40u_hLo.js +132 -0
  215. package/frontend/dist/assets/c4Diagram-IC4MRINW-Ct7LjWFQ.js +10 -0
  216. package/frontend/dist/assets/cameligo-zw7JTtim.js +1 -0
  217. package/frontend/dist/assets/channel-ClCsE6HN.js +1 -0
  218. package/frontend/dist/assets/chunk-4BX2VUAB-zZ6P90VO.js +1 -0
  219. package/frontend/dist/assets/chunk-55IACEB6-DXllTDQl.js +1 -0
  220. package/frontend/dist/assets/chunk-7E7YKBS2-7zRaOLjj.js +1 -0
  221. package/frontend/dist/assets/chunk-7R4GIKGN-Csst1274.js +80 -0
  222. package/frontend/dist/assets/chunk-C72U2L5F-_JbQPbLN.js +1 -0
  223. package/frontend/dist/assets/chunk-CFjPhJqf.js +1 -0
  224. package/frontend/dist/assets/chunk-EGIJ26TM-B--aFyPw.js +1 -0
  225. package/frontend/dist/assets/chunk-FMBD7UC4-DVR34RNb.js +15 -0
  226. package/frontend/dist/assets/chunk-GEFDOKGD-CnmN6cC8.js +2 -0
  227. package/frontend/dist/assets/chunk-JSJVCQXG-CWxHBzeJ.js +1 -0
  228. package/frontend/dist/assets/chunk-KX2RTZJC-DkRk56s7.js +1 -0
  229. package/frontend/dist/assets/chunk-KYZI473N-DCCsG2dK.js +53 -0
  230. package/frontend/dist/assets/chunk-L3YUKLVL-C-DkZTMr.js +1 -0
  231. package/frontend/dist/assets/chunk-MX3YWQON-OUdzv5sZ.js +1 -0
  232. package/frontend/dist/assets/chunk-NQ4KR5QH-Bpu9FsM7.js +220 -0
  233. package/frontend/dist/assets/chunk-O4XLMI2P-BMLK6_ib.js +7 -0
  234. package/frontend/dist/assets/chunk-OZEHJAEY-CNNiJtG0.js +1 -0
  235. package/frontend/dist/assets/chunk-PQ6SQG4A-evVHD3KM.js +1 -0
  236. package/frontend/dist/assets/chunk-PU5JKC2W-DPFTYuvl.js +70 -0
  237. package/frontend/dist/assets/chunk-QZHKN3VN-JRdddPvu.js +1 -0
  238. package/frontend/dist/assets/chunk-R5LLSJPH-CHQzVVOV.js +1 -0
  239. package/frontend/dist/assets/chunk-WL4C6EOR-BNFU6IIi.js +189 -0
  240. package/frontend/dist/assets/chunk-XIRO2GV7-98T93G85.js +1 -0
  241. package/frontend/dist/assets/chunk-XZSTWKYB-BcW3cyNp.js +94 -0
  242. package/frontend/dist/assets/chunk-YBOYWFTD-BgKO1qAJ.js +1 -0
  243. package/frontend/dist/assets/classDiagram-VBA2DB6C-DikXzgcD.js +1 -0
  244. package/frontend/dist/assets/classDiagram-v2-RAHNMMFH-D7E3tQUK.js +1 -0
  245. package/frontend/dist/assets/clojure-FspFoNNQ.js +1 -0
  246. package/frontend/dist/assets/clone-mOXuZa7C.js +1 -0
  247. package/frontend/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
  248. package/frontend/dist/assets/coffee-13n8Bk2W.js +1 -0
  249. package/frontend/dist/assets/cose-bilkent-S5V4N54A-zUOWQqLe.js +1 -0
  250. package/frontend/dist/assets/cpp-BVm2xGEs.js +1 -0
  251. package/frontend/dist/assets/csharp-D2kAWmUm.js +1 -0
  252. package/frontend/dist/assets/csp-Ezvgpf0e.js +1 -0
  253. package/frontend/dist/assets/css-CYxRwcFy.js +3 -0
  254. package/frontend/dist/assets/css.worker-Cd5h-ZOL.js +89 -0
  255. package/frontend/dist/assets/cssMode-CrXej49V.js +1 -0
  256. package/frontend/dist/assets/cypher-jg3SGErc.js +1 -0
  257. package/frontend/dist/assets/cytoscape.esm-kyyvzxNV.js +321 -0
  258. package/frontend/dist/assets/dagre-DH4bgZO7.js +1 -0
  259. package/frontend/dist/assets/dagre-KLK3FWXG-DNSqDkwT.js +4 -0
  260. package/frontend/dist/assets/dart-179jqhK4.js +1 -0
  261. package/frontend/dist/assets/defaultLocale-Dda4OpKy.js +1 -0
  262. package/frontend/dist/assets/diagram-E7M64L7V-RqPNT5Vs.js +24 -0
  263. package/frontend/dist/assets/diagram-IFDJBPK2-B-5NRyaE.js +43 -0
  264. package/frontend/dist/assets/diagram-P4PSJMXO-BrP69Hk0.js +24 -0
  265. package/frontend/dist/assets/dist-CU_Nb1G5.js +1 -0
  266. package/frontend/dist/assets/dockerfile-CIAtSGxS.js +1 -0
  267. package/frontend/dist/assets/ecl-CGVKfDxD.js +1 -0
  268. package/frontend/dist/assets/editor-Br_kD0ds.css +1 -0
  269. package/frontend/dist/assets/editor.api2-YXkDn0Gm.js +872 -0
  270. package/frontend/dist/assets/editor.main-fBaXZjJ0.js +6 -0
  271. package/frontend/dist/assets/elixir-BZ-6w0y3.js +1 -0
  272. package/frontend/dist/assets/erDiagram-INFDFZHY-BYiB9NYg.js +70 -0
  273. package/frontend/dist/assets/flow9-CVuOjTMv.js +1 -0
  274. package/frontend/dist/assets/flowDiagram-PKNHOUZH-Cwq47rsR.js +162 -0
  275. package/frontend/dist/assets/freemarker2-DM-pztJU.js +3 -0
  276. package/frontend/dist/assets/fsharp-q0pGJYr6.js +1 -0
  277. package/frontend/dist/assets/ganttDiagram-A5KZAMGK-Dnx3szD9.js +292 -0
  278. package/frontend/dist/assets/gitGraph-HDMCJU4V-COlTQ7bA.js +1 -0
  279. package/frontend/dist/assets/gitGraphDiagram-K3NZZRJ6-BaUxboNc.js +65 -0
  280. package/frontend/dist/assets/go-dzSPfdEO.js +1 -0
  281. package/frontend/dist/assets/graphlib-kEFlkt3U.js +1 -0
  282. package/frontend/dist/assets/graphql-CG4OUoEV.js +1 -0
  283. package/frontend/dist/assets/handlebars-BbK53Vec.js +1 -0
  284. package/frontend/dist/assets/hcl-Cy14JPk3.js +1 -0
  285. package/frontend/dist/assets/html-DYtTQNOG.js +1 -0
  286. package/frontend/dist/assets/html.worker-BjVEKLoU.js +502 -0
  287. package/frontend/dist/assets/htmlMode-C6GTouth.js +1 -0
  288. package/frontend/dist/assets/index-DMLxes_u.js +157 -0
  289. package/frontend/dist/assets/index-DmzeqkB1.css +1 -0
  290. package/frontend/dist/assets/info-3K5VOQVL-DBtHyA4C.js +1 -0
  291. package/frontend/dist/assets/infoDiagram-LFFYTUFH-yBXLgMPI.js +2 -0
  292. package/frontend/dist/assets/ini-Pbg8HGVD.js +1 -0
  293. package/frontend/dist/assets/init-D6KNwrax.js +1 -0
  294. package/frontend/dist/assets/ishikawaDiagram-PHBUUO56-Bld4two_.js +70 -0
  295. package/frontend/dist/assets/java-BmVu6Qrl.js +1 -0
  296. package/frontend/dist/assets/javascript-PbfQEdcJ.js +1 -0
  297. package/frontend/dist/assets/journeyDiagram-4ABVD52K-4HyMd4R2.js +139 -0
  298. package/frontend/dist/assets/json.worker-DqU5Wxnl.js +58 -0
  299. package/frontend/dist/assets/jsonMode-CASsGppE.js +7 -0
  300. package/frontend/dist/assets/julia-3cGnieBq.js +1 -0
  301. package/frontend/dist/assets/kanban-definition-K7BYSVSG-DpgsZmpG.js +89 -0
  302. package/frontend/dist/assets/katex-CEw3x5bf.js +261 -0
  303. package/frontend/dist/assets/kotlin-BuWkVcfV.js +1 -0
  304. package/frontend/dist/assets/less-CJ_VPy2C.js +2 -0
  305. package/frontend/dist/assets/lexon-BygAuZPu.js +1 -0
  306. package/frontend/dist/assets/line-CA_wh_TY.js +1 -0
  307. package/frontend/dist/assets/linear-BAcLW45z.js +1 -0
  308. package/frontend/dist/assets/liquid-kz84dle6.js +1 -0
  309. package/frontend/dist/assets/lspLanguageFeatures-C7hAHFn1.js +4 -0
  310. package/frontend/dist/assets/lua-C8Xs3dCx.js +1 -0
  311. package/frontend/dist/assets/m3-DTJeKBk4.js +1 -0
  312. package/frontend/dist/assets/markdown-QCgx8JqZ.js +1 -0
  313. package/frontend/dist/assets/math-D0YcMJAn.js +1 -0
  314. package/frontend/dist/assets/mdx-yRw0ap-E.js +1 -0
  315. package/frontend/dist/assets/mermaid-parser.core-DAeTodBQ.js +4 -0
  316. package/frontend/dist/assets/mindmap-definition-YRQLILUH-CoNlFyVl.js +68 -0
  317. package/frontend/dist/assets/mips-DopWaYgE.js +1 -0
  318. package/frontend/dist/assets/monaco.contribution-DeY0Qei-.js +2 -0
  319. package/frontend/dist/assets/msdax-BDis4ARV.js +1 -0
  320. package/frontend/dist/assets/mysql-BV6MLsOI.js +1 -0
  321. package/frontend/dist/assets/objective-c-B1UuzKs6.js +1 -0
  322. package/frontend/dist/assets/ordinal-jM7S0YHN.js +1 -0
  323. package/frontend/dist/assets/packet-RMMSAZCW-FF6-Tmai.js +1 -0
  324. package/frontend/dist/assets/pascal-BkvESCrc.js +1 -0
  325. package/frontend/dist/assets/pascaligo-lTy0kZYr.js +1 -0
  326. package/frontend/dist/assets/path-DNPd7Py7.js +1 -0
  327. package/frontend/dist/assets/perl-CrtUPXLV.js +1 -0
  328. package/frontend/dist/assets/pgsql-B9IbNWx2.js +1 -0
  329. package/frontend/dist/assets/php-CXvQBY2p.js +1 -0
  330. package/frontend/dist/assets/pie-UPGHQEXC-CFvXY2o-.js +1 -0
  331. package/frontend/dist/assets/pieDiagram-SKSYHLDU-CM_hbCcn.js +30 -0
  332. package/frontend/dist/assets/pla-DxBxuqWu.js +1 -0
  333. package/frontend/dist/assets/postiats-OkEuT5YF.js +1 -0
  334. package/frontend/dist/assets/powerquery-CMx5Tq4K.js +1 -0
  335. package/frontend/dist/assets/powershell-CstRxrEc.js +1 -0
  336. package/frontend/dist/assets/preload-helper-D4M6sveU.js +1 -0
  337. package/frontend/dist/assets/protobuf-Bx0Z-uRj.js +2 -0
  338. package/frontend/dist/assets/pug--W8vanWl.js +1 -0
  339. package/frontend/dist/assets/python-DA0rnlw3.js +1 -0
  340. package/frontend/dist/assets/qsharp-CRtr0YbN.js +1 -0
  341. package/frontend/dist/assets/quadrantDiagram-337W2JSQ-B3n3IUhC.js +7 -0
  342. package/frontend/dist/assets/r-C6E1d6iv.js +1 -0
  343. package/frontend/dist/assets/radar-KQ55EAFF-MPZu7SdX.js +1 -0
  344. package/frontend/dist/assets/razor-yd73uata.js +1 -0
  345. package/frontend/dist/assets/redis-Dx13voP3.js +1 -0
  346. package/frontend/dist/assets/redshift-D66HwlyV.js +1 -0
  347. package/frontend/dist/assets/requirementDiagram-Z7DCOOCP-CorP7L7F.js +73 -0
  348. package/frontend/dist/assets/restructuredtext-DQT2NKJ2.js +1 -0
  349. package/frontend/dist/assets/rough.esm-DxAX5Vpo.js +1 -0
  350. package/frontend/dist/assets/ruby-iFXI8hwH.js +1 -0
  351. package/frontend/dist/assets/rust-CSKiei34.js +1 -0
  352. package/frontend/dist/assets/sankeyDiagram-WA2Y5GQK-RDx6Bd-B.js +10 -0
  353. package/frontend/dist/assets/sb-Bo3ttdP2.js +1 -0
  354. package/frontend/dist/assets/scala-BC1D-Nxp.js +1 -0
  355. package/frontend/dist/assets/scheme-Z4OAo4Lv.js +1 -0
  356. package/frontend/dist/assets/scss-BvrdPs6B.js +3 -0
  357. package/frontend/dist/assets/sequenceDiagram-2WXFIKYE-JMqJSFq6.js +145 -0
  358. package/frontend/dist/assets/shell-Bh_aCyF-.js +1 -0
  359. package/frontend/dist/assets/solidity-CWHj6tSe.js +1 -0
  360. package/frontend/dist/assets/sophia-raoNtKtm.js +1 -0
  361. package/frontend/dist/assets/sparql-XzmoGnue.js +1 -0
  362. package/frontend/dist/assets/sql-BD0i9Gvg.js +1 -0
  363. package/frontend/dist/assets/src-Bn-kKzs7.js +1 -0
  364. package/frontend/dist/assets/st-DtVKyms6.js +1 -0
  365. package/frontend/dist/assets/stateDiagram-RAJIS63D-CgFfENdy.js +1 -0
  366. package/frontend/dist/assets/stateDiagram-v2-FVOUBMTO-C4Hh2P-U.js +1 -0
  367. package/frontend/dist/assets/swift--UZs77wT.js +1 -0
  368. package/frontend/dist/assets/systemverilog-CDnBSWUd.js +1 -0
  369. package/frontend/dist/assets/tcl-DdCEuTHZ.js +1 -0
  370. package/frontend/dist/assets/timeline-definition-YZTLITO2-BnatPBR5.js +61 -0
  371. package/frontend/dist/assets/treemap-KZPCXAKY-qb1Pl9la.js +1 -0
  372. package/frontend/dist/assets/ts.worker-DyPAEIuH.js +67719 -0
  373. package/frontend/dist/assets/tsMode-iuvyEpyO.js +11 -0
  374. package/frontend/dist/assets/twig-SSL-Altf.js +1 -0
  375. package/frontend/dist/assets/typescript-17918Hud.js +1 -0
  376. package/frontend/dist/assets/typespec-BT7S0ETg.js +1 -0
  377. package/frontend/dist/assets/vb-CrIgucua.js +1 -0
  378. package/frontend/dist/assets/vennDiagram-LZ73GAT5-DygS4Zzd.js +34 -0
  379. package/frontend/dist/assets/wgsl-BeKc3oEp.js +298 -0
  380. package/frontend/dist/assets/workers-DTfwKVoM.js +1 -0
  381. package/frontend/dist/assets/xml-CBMr_Wbw.js +1 -0
  382. package/frontend/dist/assets/xterm-BrP-ENHg.css +1 -0
  383. package/frontend/dist/assets/xterm-CBX2m0YM.js +36 -0
  384. package/frontend/dist/assets/xychartDiagram-JWTSCODW-D6wY1Jwd.js +7 -0
  385. package/frontend/dist/assets/yaml-CTjCH7Bv.js +1 -0
  386. package/frontend/dist/fonts/inter-300.ttf +0 -0
  387. package/frontend/dist/fonts/inter-400.ttf +0 -0
  388. package/frontend/dist/fonts/inter-500.ttf +0 -0
  389. package/frontend/dist/fonts/inter-600.ttf +0 -0
  390. package/frontend/dist/fonts/inter-700.ttf +0 -0
  391. package/frontend/dist/index.html +49 -0
  392. package/frontend/dist/logo_192x192.png +0 -0
  393. package/frontend/dist/logo_32x32.png +0 -0
  394. package/frontend/dist/logo_512x512.png +0 -0
  395. package/frontend/dist/logo_64x64.png +0 -0
  396. package/frontend/dist/logobg_192x192.png +0 -0
  397. package/frontend/dist/logobg_512x512.png +0 -0
  398. package/frontend/dist/logobg_64x64.png +0 -0
  399. package/frontend/dist/manifest.json +25 -0
  400. package/frontend/dist/sw.js +22 -0
  401. package/package.json +74 -7
  402. package/preload/Makefile +12 -0
  403. package/preload/atoo-studio-preload.c +647 -0
  404. package/preload/atoo-studio-preload.so +0 -0
  405. package/setup-cuse.sh +260 -0
  406. package/setup.sh +81 -0
  407. package/src/serial/native/binding.gyp +10 -0
  408. package/src/serial/native/pty_pair.c +222 -0
@@ -0,0 +1 @@
1
+ @font-face{font-family:Inter;font-weight:300;font-style:normal;font-display:swap;src:url(/fonts/inter-300.ttf)format("truetype")}@font-face{font-family:Inter;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/inter-400.ttf)format("truetype")}@font-face{font-family:Inter;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/inter-500.ttf)format("truetype")}@font-face{font-family:Inter;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/inter-600.ttf)format("truetype")}@font-face{font-family:Inter;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/inter-700.ttf)format("truetype")}:root{--bg-base:#0a0b0f;--bg-surface:#12131a;--bg-surface-2:#1a1b25;--bg-surface-3:#22232f;--bg-hover:#2a2b3a;--border:#2a2c3e;--border-subtle:#1e2030;--text-primary:#e2e4f0;--text-secondary:#8b8ea3;--text-muted:#5a5d74;--accent-blue:#5b8af5;--accent-blue-dim:#3a5faa;--accent-green:#4ade80;--accent-green-dim:#4ade8026;--accent-amber:#fbbf24;--accent-amber-dim:#fbbf2426;--accent-red:#f87171;--accent-red-dim:#f8717126;--accent-purple:#a78bfa;--accent-purple-dim:#a78bfa26;--accent-cyan:#22d3ee;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--sidebar-w:260px;--topbar-h:44px;--font-mono:"JetBrains Mono", monospace;--font-sans:"Inter", "DM Sans", sans-serif;--transition-fast:.12s ease;--transition-med:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);font-size:13px;line-height:1.5}body.dragging iframe{pointer-events:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}button{cursor:pointer;color:inherit;font-family:inherit;font-size:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:6px 10px}input:focus,textarea:focus,select:focus{border-color:var(--accent-blue)}#app{grid-template-columns:var(--sidebar-w) 5px 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"sidebar sidebar-split topbar""sidebar sidebar-split main";width:100vw;height:100vh;display:grid}.sidebar-vsplit{cursor:col-resize;z-index:11;background:0 0;grid-area:sidebar-split;position:relative}.sidebar-vsplit:after{content:"";background:var(--border);border-radius:1px;width:1px;transition:all .15s;position:absolute;top:30%;bottom:30%;left:2px}.sidebar-vsplit:hover{background:#5b8af514}.sidebar-vsplit:hover:after,.sidebar-vsplit.dragging:after{background:var(--accent-cyan);width:2px;top:20%;bottom:20%;left:1px}.sidebar-vsplit.dragging{background:#5b8af51f}#sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:10;flex-direction:column;grid-area:sidebar;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border-subtle);min-height:var(--topbar-h);align-items:center;gap:10px;padding:10px 14px;display:flex}@media (display-mode:standalone){.sidebar-header{display:none}}#app.standalone .sidebar-header{display:none}#app.standalone .sidebar-pwa-collapse-btn{display:flex}.sidebar-logo{align-items:center;gap:6px;display:flex}.sidebar-logo-icon{flex-shrink:0;width:28px;height:28px}.sidebar-logo-text{font-family:var(--font-sans);letter-spacing:-.3px;color:var(--text-primary);font-size:16px;font-weight:600;line-height:1}.sidebar-logo-badge{font-family:var(--font-sans);letter-spacing:1.5px;text-transform:uppercase;background:linear-gradient(135deg,#22d3ee,#38bdf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-top:1px;font-size:8px;font-weight:700;line-height:1}.sidebar-logo-sub{color:var(--text-muted);font-size:9px;font-family:var(--font-sans);letter-spacing:.3px;margin-top:2px;font-weight:400}.global-status{border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 14px;display:grid}.status-chip{border-radius:var(--radius-md);background:var(--bg-surface-2);cursor:pointer;transition:background var(--transition-fast);flex-direction:column;align-items:center;padding:8px 4px;display:flex}.status-chip:hover{background:var(--bg-surface-3)}.status-chip-count{font-family:var(--font-mono);font-size:18px;font-weight:700;line-height:1}.status-chip-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:3px;font-size:9px}.status-chip.needs-attention .status-chip-count{color:var(--accent-amber)}.status-chip.active .status-chip-count{color:var(--accent-green)}.status-chip.open-chats .status-chip-count{color:var(--accent-blue)}.sidebar-collapse-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:12px;display:flex}.sidebar-collapse-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.sidebar-collapse-btn{transform:rotate(180deg)}.sidebar-collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;color:var(--text-muted);letter-spacing:.5px;-webkit-user-select:none;user-select:none;cursor:pointer;flex:1;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:none}#app.sidebar-collapsed{grid-template-columns:auto 0 1fr}#app.sidebar-collapsed .sidebar-vsplit{display:none}#sidebar.collapsed{width:56px;min-width:0}#sidebar.collapsed .sidebar-header{flex-direction:column;align-items:center;gap:4px;padding:10px 4px}#sidebar.collapsed .sidebar-logo-text,#sidebar.collapsed .sidebar-logo-badge,#sidebar.collapsed .sidebar-logo-sub,#sidebar.collapsed .project-list-header,#sidebar.collapsed .project-path,#sidebar.collapsed .project-badges,#sidebar.collapsed .project-info{display:none}#sidebar.collapsed .sidebar-collapse-btn{margin:0;transform:rotate(0)}#sidebar.collapsed .sidebar-collapsed-label{display:flex}#sidebar.collapsed .global-status{grid-template-columns:1fr;gap:3px;padding:6px}#sidebar.collapsed .status-chip{flex-direction:column;gap:1px;padding:5px 4px}#sidebar.collapsed .status-chip-count{font-size:14px}#sidebar.collapsed .status-chip-label{display:none}#sidebar.collapsed .project-list{flex-direction:column;align-items:center;gap:3px;padding:4px 6px;display:flex}#sidebar.collapsed .project-item{border-radius:var(--radius-md);justify-content:center;align-items:center;gap:0;width:44px;height:44px;margin-bottom:0;padding:0;position:relative}#sidebar.collapsed .project-item .project-dot{display:none}#sidebar.collapsed .project-item.active:before{border-radius:0 2px 2px 0;width:3px;height:50%;top:50%;left:0;transform:translateY(-50%)}.project-square-icon{border-radius:var(--radius-sm);background:var(--bg-surface-3);width:34px;height:34px;font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:none;position:relative}#sidebar.collapsed .project-square-icon{display:flex}.project-square-notif{border:2px solid var(--bg-surface);border-radius:50%;width:8px;height:8px;display:none;position:absolute;top:-3px;right:-3px}.project-square-notif.attention{background:var(--accent-amber);box-shadow:0 0 6px var(--accent-amber);animation:1.5s infinite pulse-dot;display:block}.project-square-notif.active{background:var(--accent-green);box-shadow:0 0 4px var(--accent-green);display:block}#sidebar.collapsed .project-item[title]:hover:after{content:attr(title);background:var(--bg-surface-3);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);white-space:nowrap;z-index:100;pointer-events:none;font-size:11px;font-family:var(--font-sans);padding:4px 10px;font-weight:500;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.project-list-header{justify-content:space-between;align-items:center;padding:10px 16px 6px;display:flex}.sidebar-pwa-collapse-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:none;transform:rotate(180deg)}.sidebar-pwa-collapse-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}#sidebar.collapsed .sidebar-pwa-collapse-btn{transform:rotate(0)}.project-list-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:600}.project-add-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:16px;display:flex}.project-add-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.project-list{flex:1;padding:4px 8px;overflow-y:auto}.project-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;display:flex;position:relative}.project-item:hover{background:var(--bg-surface-2)}.project-item.has-attention{border-left:2px solid var(--accent-amber);background:#fbbf240f}.project-item.has-attention:hover{background:#fbbf241a}.project-item.active{background:var(--bg-surface-3)}.project-item.active:before{content:"";background:var(--accent-blue);border-radius:0 2px 2px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.project-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.project-dot.active{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.project-dot.attention{background:var(--accent-amber);box-shadow:0 0 6px var(--accent-amber);animation:1.5s infinite pulse-dot}.project-dot.open{background:var(--text-muted)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.project-info{flex:1;min-width:0}.project-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.project-path{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.project-badges{flex-shrink:0;gap:4px;display:flex}.badge{font-family:var(--font-mono);border-radius:3px;padding:2px 5px;font-size:9px;font-weight:600;line-height:1}.badge-attention{background:var(--accent-amber-dim);color:var(--accent-amber)}.badge-active{background:var(--accent-green-dim);color:var(--accent-green)}.badge-chats{background:var(--accent-blue-dim);color:var(--accent-blue)}.badge-tui{background:var(--accent-purple-dim);color:var(--accent-purple)}.badge-git{background:var(--accent-blue-dim);color:var(--accent-blue);font-size:10px}.worktree-sub-item{border-left:1px solid var(--border-dim);margin-left:18px;border-radius:0 var(--radius-md) var(--radius-md) 0!important;margin-bottom:0!important;padding-top:5px!important;padding-bottom:5px!important;padding-left:30px!important}.worktree-sub-item .project-dot{width:6px;height:6px}.worktree-sub-item .project-name{font-size:12px;font-weight:400}.worktree-sub-item .project-path{font-size:9px}.worktree-sub-item .badge{padding:2px 5px;font-size:9px}.worktree-icon{color:var(--text-muted);margin-right:4px;font-size:11px}.worktree-sub-item.active .worktree-icon{color:var(--accent-blue)}#sidebar.collapsed .worktree-sub-item{display:none}#topbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:5;grid-area:topbar;align-items:center;gap:12px;padding:0 16px;display:flex}.topbar-project-name{margin-right:4px;font-size:14px;font-weight:600}.topbar-breadcrumb{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.topbar-spacer{flex:1}.topbar-actions{align-items:center;gap:6px;display:flex}.topbar-btn{border-radius:var(--radius-sm);transition:all var(--transition-fast);color:var(--text-secondary);align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:500;display:flex}.topbar-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.topbar-btn.primary{background:var(--accent-blue);color:#fff}.topbar-btn.primary:hover{filter:brightness(1.1)}.topbar-update-dot{background:var(--accent-cyan);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:4px;animation:2s ease-in-out infinite topbar-dot-pulse;display:inline-block}@keyframes topbar-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.cert-dialog-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cert-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:480px;max-width:95vw;max-height:85vh;overflow-y:auto;box-shadow:0 16px 48px #00000080}.cert-dialog-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.cert-dialog-title{font-family:var(--font-sans);color:var(--text-primary);font-size:15px;font-weight:600}.cert-dialog-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;font-size:14px;display:flex}.cert-dialog-close:hover{background:var(--bg-surface-3);color:var(--text-primary)}.cert-dialog-body{padding:16px 20px 20px}.cert-dialog-desc{color:var(--text-secondary);margin-bottom:16px;font-size:12px;line-height:1.6}.cert-dialog-desc strong{color:var(--text-primary)}.cert-dialog-step{color:var(--text-primary);align-items:center;gap:10px;margin:16px 0 8px;font-size:13px;font-weight:600;display:flex}.cert-dialog-step-num{background:var(--accent-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.cert-dialog-download-btn{border-radius:var(--radius-sm);background:var(--accent-blue);color:#fff;cursor:pointer;transition:filter var(--transition-fast);align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.cert-dialog-download-btn:hover{filter:brightness(1.15)}.cert-dialog-tabs{background:var(--bg-surface-2);border-radius:var(--radius-sm);gap:2px;margin-bottom:10px;padding:2px;display:flex}.cert-dialog-tab{color:var(--text-muted);text-align:center;cursor:pointer;transition:all var(--transition-fast);border-radius:3px;flex:1;padding:5px 8px;font-size:11px;font-weight:500}.cert-dialog-tab:hover{color:var(--text-secondary)}.cert-dialog-tab.active{background:var(--bg-surface-3);color:var(--text-primary)}.cert-dialog-instructions{color:var(--text-secondary);padding-left:20px;font-size:12px;line-height:1.8;list-style:decimal}.cert-dialog-instructions li{padding:1px 0}.cert-dialog-instructions code,.cert-dialog-instructions li:nth-child(n){font-family:var(--font-mono);font-size:11px}#main{grid-area:main;position:relative;overflow:hidden}.workspace{height:100%;display:grid;overflow:hidden}.workspace.layout-default{--lp-width:240px;--rp-width:300px;grid-template-columns:var(--lp-width) 5px 1fr 5px var(--rp-width);grid-template-rows:1fr;grid-template-areas:"left-panel lsplit center rsplit right-panel"}.workspace.layout-wide{--lp-width:220px;--rp-width:300px;--pp-width:380px;grid-template-columns:var(--lp-width) 5px 1fr 5px var(--rp-width) 5px var(--pp-width);grid-template-rows:1fr;grid-template-areas:"left-panel lsplit center rsplit right-panel psplit preview-panel"}.panel-vsplit{cursor:col-resize;z-index:6;background:0 0;position:relative}.panel-vsplit-left{grid-area:lsplit}.panel-vsplit-right{grid-area:rsplit}.panel-vsplit:after{content:"";background:var(--border);border-radius:1px;width:1px;transition:all .15s;position:absolute;top:30%;bottom:30%;left:2px}.panel-vsplit:hover{background:#5b8af514}.panel-vsplit:hover:after,.panel-vsplit.dragging:after{background:var(--accent-cyan);width:2px;top:20%;bottom:20%;left:1px}.panel-vsplit.dragging{background:#5b8af51f}.panel-vsplit-preview{grid-area:psplit;display:none}.workspace.layout-wide .panel-vsplit-preview{display:block}.left-panel{border-right:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;grid-area:left-panel;display:flex;overflow:hidden}.lp-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px 6px;display:flex}.lp-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:600}.lp-change-count{font-family:var(--font-mono);background:var(--accent-amber-dim);color:var(--accent-amber);border-radius:8px;padding:1px 6px;font-size:9px;font-weight:600}.lp-root-label{font-family:var(--font-mono);background:var(--accent-blue-dim,#3b82f626);color:var(--accent-blue,#3b82f6);border-radius:8px;padding:1px 6px;font-size:9px;font-weight:600}.lp-toolbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:1px;padding:4px 8px 6px;display:flex}.lp-toolbar-group{background:var(--bg-surface-2);border-radius:var(--radius-sm);align-items:center;gap:1px;display:flex;overflow:hidden}.lp-toolbar-sep{background:var(--border-subtle);flex-shrink:0;width:1px;height:18px;margin:0 4px}.lp-tb-btn{width:26px;height:24px;color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;justify-content:center;align-items:center;font-size:11px;display:flex;position:relative}.lp-tb-btn:hover{color:var(--text-primary);background:var(--bg-surface-3)}.lp-tb-btn.active{color:var(--accent-blue);background:#5b8af51a}.lp-tb-btn.disabled{opacity:.25;pointer-events:none}.lp-tb-btn[title]:hover:after{content:attr(title);background:var(--bg-surface-3);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);white-space:nowrap;z-index:30;pointer-events:none;font-size:10px;font-family:var(--font-sans);padding:3px 8px;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.lp-toolbar-actions{background:var(--bg-surface-2);border-radius:var(--radius-sm);align-items:center;gap:1px;margin-left:auto;display:flex;overflow:hidden}.lp-tb-action{height:24px;font-size:10px;font-weight:500;font-family:var(--font-mono);color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:3px;padding:0 7px;display:flex}.lp-tb-action:hover{color:var(--text-primary);background:var(--bg-surface-3)}.lp-tb-action.danger:hover{color:var(--accent-red);background:var(--accent-red-dim)}.lp-tb-action+.lp-tb-action{border-left:1px solid var(--border-subtle)}.panel-tab-bar{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-2);flex-shrink:0;display:flex}.panel-tab{text-align:center;color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;border-bottom:2px solid #0000;flex:1;padding:8px 0;font-size:11px;font-weight:500}.panel-tab:hover{color:var(--text-secondary)}.panel-tab.active{color:var(--text-primary);border-bottom-color:var(--accent-blue)}.panel-content{flex:1;padding:0;position:relative;overflow-y:auto}.upload-overlay{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0b0feb;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.upload-overlay-icon{color:var(--accent-blue);font-size:32px;animation:1.2s ease-in-out infinite upload-bounce}@keyframes upload-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.upload-overlay-title{color:var(--text-primary);font-size:13px;font-weight:600}.upload-overlay-progress-bar{background:var(--bg-surface-2);border-radius:2px;width:70%;max-width:180px;height:4px;overflow:hidden}.upload-overlay-progress-fill{background:var(--accent-blue);border-radius:2px;height:100%;transition:width .2s}.upload-overlay-stats{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:11px}.upload-overlay-file{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:80%;font-size:10px;font-family:var(--font-mono);overflow:hidden}.file-tree-item{padding:3px 10px 3px calc(10px + var(--depth,0) * 16px);cursor:pointer;transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:flex;position:relative}.file-tree-item:hover{background:var(--bg-surface-3)}.file-tree-item.selected{background:var(--bg-hover)}.file-tree-icon{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;line-height:0;display:flex}.file-tree-icon svg{width:16px;height:16px}.file-tree-arrow{text-align:center;width:14px;color:var(--text-muted);flex-shrink:0;font-size:17px;line-height:1}.file-tree-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.file-tree-name.folder{font-weight:500}.file-tree-name.file{color:var(--text-secondary)}.file-git-badge{font-family:var(--font-mono);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:14px;font-size:9px;font-weight:700;line-height:1;display:flex}.file-git-badge.M{color:var(--accent-amber);background:var(--accent-amber-dim)}.file-git-badge.A{color:var(--accent-green);background:var(--accent-green-dim)}.file-git-badge.D{color:var(--accent-red);background:var(--accent-red-dim)}.file-git-badge.R{color:var(--accent-purple);background:var(--accent-purple-dim)}.file-git-badge.U,.file-git-badge.staged{color:var(--accent-cyan);background:#22d3ee26}.file-git-badge.untracked{color:var(--accent-green);background:var(--accent-green-dim)}.file-git-badge.ignored{color:var(--text-muted);background:#80808026}.file-tree-item.dir-dirty>.file-tree-name{color:var(--accent-amber)}.dir-dirty-dot{background:var(--accent-amber);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:auto}.file-git-badge.D~.file-tree-name{opacity:.5;text-decoration:line-through}.file-tree-item:has(.file-git-badge.D) .file-tree-name{opacity:.5;text-decoration:line-through}.file-flat-item{cursor:pointer;transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:flex}.file-flat-item:hover{background:var(--bg-surface-3)}.file-flat-path{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:11px;overflow:hidden}.file-flat-name{color:var(--text-primary)}.stash-panel{border-top:1px solid var(--border-subtle);background:var(--bg-surface-2);flex-shrink:0;max-height:0;transition:max-height .25s;overflow:hidden}.stash-panel.open{max-height:180px;overflow-y:auto}.stash-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-2);z-index:2;justify-content:space-between;align-items:center;padding:6px 10px;display:flex;position:sticky;top:0}.stash-header-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:600}.stash-item{cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:flex}.stash-item:hover{background:var(--bg-surface-3)}.stash-icon{color:var(--accent-purple);flex-shrink:0;font-size:12px}.stash-name{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.stash-actions{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0;gap:4px;display:flex}.stash-item:hover .stash-actions{opacity:1}.stash-action-btn{font-size:9px;font-family:var(--font-mono);color:var(--text-muted);transition:all var(--transition-fast);border-radius:3px;padding:2px 6px;font-weight:500}.stash-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.stash-action-btn.apply:hover{color:var(--accent-green)}.stash-action-btn.drop:hover{color:var(--accent-red)}.lp-splitter{cursor:row-resize;z-index:6;background:0 0;flex-shrink:0;height:5px;transition:background .1s;position:relative}.lp-splitter:after{content:"";background:var(--border);border-radius:1px;height:1px;transition:all .15s;position:absolute;top:2px;left:30%;right:30%}.lp-splitter:hover{background:#5b8af514}.lp-splitter:hover:after,.lp-splitter.dragging:after{background:var(--accent-blue);height:2px;top:1px;left:20%;right:20%}.lp-splitter.dragging{background:#5b8af51f}.git-history-panel{background:var(--bg-surface);flex-direction:column;min-height:80px;display:flex;overflow:hidden}.gh-branch-bar{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-2);flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.gh-branch-icon{color:var(--accent-purple);flex-shrink:0;font-size:14px;line-height:1}.gh-branch-select{min-width:0;font-family:var(--font-mono);background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 8 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L4 4L7 1' stroke='%235a5d74' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;flex:1;padding:3px 20px 3px 6px;font-size:11px;font-weight:500}.gh-branch-select:focus{border-color:var(--accent-blue)}.gh-branch-select option{background:var(--bg-surface-2);color:var(--text-primary)}.gh-branch-actions{flex-shrink:0;gap:2px;display:flex}.gh-branch-btn{border-radius:var(--radius-sm);width:24px;height:22px;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:11px;display:flex}.gh-branch-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.gh-branch-btn.active{color:var(--accent-blue);background:#5b8af51a}.gh-branch-sep{background:var(--border);flex-shrink:0;width:1px;height:14px}.gh-branch-bar{flex-wrap:wrap;position:relative}.gh-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:4px;padding:3px 10px;display:flex}.gh-toolbar-actions{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);align-items:center;display:flex;overflow:hidden}.gh-tb-action{width:26px;height:22px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;font-size:13px;display:flex}.gh-tb-action:hover{color:var(--text-primary);background:var(--bg-surface-3)}.gh-tb-action.danger:hover{color:var(--accent-red);background:var(--accent-red-dim)}.gh-tb-action+.gh-tb-action{border-left:1px solid var(--border-subtle)}.center-tabs.worktree-active{background:#a67fe60f;border-bottom-color:#a67fe640}.center-tabs.worktree-active .center-tab.active{border-bottom-color:var(--accent-purple,#a67fe6)}.gh-commit-list{flex:1;padding:0;overflow-y:auto}.gh-commit{cursor:pointer;gap:0;padding:0;transition:background 60ms;display:flex;position:relative}.gh-commit:hover{background:var(--bg-surface-2)}.gh-commit.selected{background:var(--bg-surface-3)}.gh-graph{flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex;position:relative}.gh-graph-line{background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.gh-commit:first-child .gh-graph-line{top:50%}.gh-commit:last-child .gh-graph-line{bottom:50%}.gh-commit:only-child .gh-graph-line{display:none}.gh-graph-dot{background:var(--bg-surface-3);border:2px solid var(--accent-blue);z-index:2;border-radius:50%;flex-shrink:0;width:10px;height:10px;position:relative}.gh-commit.head .gh-graph-dot{background:var(--accent-blue);width:12px;height:12px;box-shadow:0 0 6px #5b8af580}.gh-commit.merge .gh-graph-dot{border-color:var(--accent-purple);background:var(--accent-purple-dim)}.gh-commit-body{border-bottom:1px solid var(--border-subtle);flex:1;min-width:0;padding:7px 10px 7px 2px}.gh-commit:last-child .gh-commit-body{border-bottom:none}.gh-commit-msg{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;line-height:1.3;overflow:hidden}.gh-commit.head .gh-commit-msg{color:var(--accent-blue)}.gh-commit-meta{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);align-items:center;gap:8px;margin-top:2px;display:flex}.gh-commit-hash{color:var(--accent-cyan);cursor:pointer;font-weight:500}.gh-commit-hash:hover{text-decoration:underline}.gh-commit-author{color:var(--text-secondary)}.gh-commit-date{color:var(--text-muted);margin-left:auto}.gh-commit-expand{width:16px;height:16px;color:var(--text-muted);cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin-right:2px;font-size:9px;transition:all .15s;display:inline-flex}.gh-commit-expand:hover{background:var(--bg-surface-3);color:var(--text-primary)}.gh-commit-expand.open{color:var(--accent-blue);transform:rotate(90deg)}.gh-commit-file-count{font-family:var(--font-mono);background:var(--bg-surface-3);color:var(--text-muted);border-radius:8px;flex-shrink:0;margin-left:4px;padding:1px 5px;font-size:9px;font-weight:600}.gh-commit-files{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:2px 0 6px 34px;display:none}.gh-commit-files.open{display:block}.gh-file-item{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:6px;padding:3px 10px 3px 6px;font-size:11px;transition:background 60ms;display:flex}.gh-file-item:hover{background:var(--bg-surface-2);color:var(--text-primary)}.gh-file-status{text-align:center;border-radius:2px;flex-shrink:0;width:14px;padding:0 2px;font-size:9px;font-weight:700;line-height:16px}.gh-file-status.added{color:var(--accent-green);background:var(--accent-green-dim)}.gh-file-status.modified{color:var(--accent-amber);background:var(--accent-amber-dim)}.gh-file-status.deleted{color:var(--accent-red);background:var(--accent-red-dim)}.gh-file-status.renamed{color:var(--accent-purple);background:var(--accent-purple-dim)}.gh-file-path{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.gh-file-path-dir{color:var(--text-muted)}.gh-file-path-old{color:var(--text-muted);margin-right:2px;text-decoration:line-through}.gh-file-stats{flex-shrink:0;gap:4px;margin-left:auto;font-size:10px;display:flex}.gh-file-add{color:var(--accent-green)}.gh-file-del{color:var(--accent-red)}.commit-info-grid{grid-template-columns:auto 1fr;gap:6px 12px;margin-bottom:14px;font-size:12px;display:grid}.commit-info-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding-top:2px;font-size:10px;font-weight:600}.commit-info-value{color:var(--text-primary);font-family:var(--font-mono);word-break:break-all;font-size:11px}.commit-info-msg{background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-secondary);white-space:pre-wrap;max-height:200px;margin-bottom:14px;padding:10px 12px;font-size:11px;line-height:1.6;overflow-y:auto}.commit-info-file-list{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface-2);max-height:200px;overflow-y:auto}.commit-info-file-list .gh-file-item{padding:4px 10px}.commit-info-file-list .gh-file-item:not(:last-child){border-bottom:1px solid var(--border-subtle)}.gh-commit-refs{vertical-align:middle;gap:4px;margin-left:6px;display:inline-flex}.gh-ref-badge{font-family:var(--font-mono);border-radius:3px;padding:1px 5px;font-size:9px;font-weight:600;line-height:1.2}.gh-ref-badge.head-badge{background:var(--accent-blue-dim);color:var(--accent-blue);border:1px solid #5b8af54d}.gh-ref-badge.branch-badge{background:var(--accent-purple-dim);color:var(--accent-purple)}.gh-ref-badge.tag-badge{background:var(--accent-amber-dim);color:var(--accent-amber)}.gh-ref-badge.remote-badge{color:var(--accent-blue-dim);background:#5b8af51a;border:1px solid #5b8af533;align-items:center;gap:3px;display:inline-flex}.gh-cloud-icon{flex-shrink:0;width:11px;height:11px}.gh-empty{height:100%;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;display:flex}.gh-empty-icon{opacity:.3;font-size:24px}.gh-empty-title{color:var(--text-secondary);font-size:12px;font-weight:600}.ctx-menu{z-index:300;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;padding:4px 0;font-size:12px;animation:.1s ctx-in;position:fixed;overflow:hidden;box-shadow:0 10px 40px #00000080,inset 0 0 0 1px #ffffff08}@keyframes ctx-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ctx-item{cursor:pointer;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:10px;padding:6px 14px 6px 12px;transition:background 60ms;display:flex}.ctx-item:hover{background:var(--accent-blue);color:#fff}.ctx-item:hover .ctx-shortcut{color:#fff9}.ctx-item:hover .ctx-icon{color:#fff}.ctx-item.danger{color:var(--accent-red)}.ctx-item.danger:hover{background:var(--accent-red);color:#fff}.ctx-item.disabled{opacity:.35;pointer-events:none}.ctx-icon{text-align:center;width:18px;color:var(--text-muted);flex-shrink:0;font-size:12px}.ctx-label{flex:1}.ctx-shortcut{font-family:var(--font-mono);color:var(--text-muted);margin-left:16px;font-size:10px}.ctx-sep{background:var(--border-subtle);height:1px;margin:4px 0}.ctx-group-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:4px 12px 2px;font-size:9px;font-weight:600}.file-tree-item.renaming .file-tree-name,.file-flat-item.renaming .file-flat-path{display:none}.rename-input{background:var(--bg-base);border:1px solid var(--accent-blue);min-width:0;height:20px;color:var(--text-primary);font-size:12px;font-family:var(--font-sans);border-radius:2px;outline:none;flex:1;padding:0 4px}.file-tree-item.focused,.file-flat-item.focused{background:var(--bg-surface-3);outline:1px solid var(--accent-blue-dim);outline-offset:-1px}.file-tree-item[draggable=true],.file-flat-item[draggable=true]{cursor:grab}.file-tree-item.dragging,.file-flat-item.dragging{opacity:.35;cursor:grabbing}.file-tree-item.drop-target{outline:1px dashed var(--accent-blue);outline-offset:-1px;border-radius:var(--radius-sm);background:#5b8af526}.file-tree-item.drop-above:before{content:"";top:-1px;left:calc(10px + var(--depth,0) * 16px);background:var(--accent-blue);z-index:5;pointer-events:none;border-radius:1px;height:2px;position:absolute;right:8px}.file-tree-item.drop-below:after{content:"";bottom:-1px;left:calc(10px + var(--depth,0) * 16px);background:var(--accent-blue);z-index:5;pointer-events:none;border-radius:1px;height:2px;position:absolute;right:8px}.panel-content.drop-root{outline:2px dashed var(--accent-blue);outline-offset:-3px;background:#5b8af50a}.drag-ghost{pointer-events:none;z-index:500;background:var(--bg-surface-2);border:1px solid var(--accent-blue);border-radius:var(--radius-sm);color:var(--text-primary);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex;position:fixed;top:-999px;left:-999px;box-shadow:0 6px 20px #0006}.git-change-item{font-family:var(--font-mono);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:8px;padding:4px 12px;font-size:11px;display:flex}.git-change-item:hover{background:var(--bg-surface-3)}.git-status{text-align:center;flex-shrink:0;width:14px;font-weight:700}.git-status.M{color:var(--accent-amber)}.git-status.A{color:var(--accent-green)}.git-status.D{color:var(--accent-red)}.git-status.U{color:var(--accent-cyan)}.git-change-file{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.center-panel{background:var(--bg-base);flex-direction:column;grid-area:center;display:flex;overflow:hidden}.center-tabs{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:stretch;display:flex;overflow-x:auto}.center-tab{white-space:nowrap;color:var(--text-muted);border-right:1px solid var(--border-subtle);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:6px;padding:7px 14px;font-size:12px;display:flex;position:relative}.center-tab:hover{background:var(--bg-surface-2);color:var(--text-secondary)}.center-tab.active{background:var(--bg-base);color:var(--text-primary)}.center-tab.active:after{content:"";background:var(--accent-blue);height:2px;position:absolute;bottom:0;left:0;right:0}.center-tab.terminal-type.active{background:#0d0e14}.center-tab.terminal-type.active:after{background:var(--accent-green)}.center-tab .tab-dot{border-radius:50%;width:6px;height:6px}.center-tab .tab-dot.attention{background:var(--accent-amber);animation:1.5s infinite pulse-dot}.center-tab .tab-dot.active{background:var(--accent-green)}.center-tab .tab-dot.open{background:var(--text-muted)}.center-tab .tab-agent-icon{flex:none;width:12px;height:12px}.center-tab .tab-agent-icon.attention{fill:var(--accent-amber);animation:1.5s infinite pulse-dot}.center-tab .tab-agent-icon.active{fill:var(--accent-green)}.center-tab .tab-agent-icon.open{fill:var(--text-muted)}.center-tab .tab-term-icon{font-family:var(--font-mono);color:var(--accent-green);font-size:10px;font-weight:700}.tab-dragging{opacity:.4!important}.tab-drop-before:before{content:"";background:var(--accent-blue);z-index:2;border-radius:1px;width:2px;position:absolute;top:2px;bottom:2px;left:-1px}.tab-drop-after:after{content:"";background:var(--accent-blue);z-index:2;border-radius:1px;width:2px;position:absolute;top:2px;bottom:2px;right:-1px}.center-tab.active.tab-drop-after:after,.editor-tab.tab-drop-before:before,.editor-tab.tab-drop-after:after{top:2px;bottom:2px}.file-tree-highlight{transition:background .3s;background:var(--accent-blue-dim,#5b8af526)!important}.tab-close{opacity:0;width:16px;height:16px;transition:all var(--transition-fast);border-radius:3px;justify-content:center;align-items:center;font-size:14px;display:flex}.center-tab:hover .tab-close{opacity:.5}.tab-close:hover{background:var(--bg-hover);opacity:1!important}.tab-warn{color:var(--accent-amber);margin-left:4px;font-size:12px}.center-tab-sep{background:var(--border);flex-shrink:0;align-self:stretch;width:1px;margin:4px 0}.center-tab-add{color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;padding:7px 10px;font-size:14px;display:flex}.center-tab-add:hover{color:var(--text-primary);background:var(--bg-surface-2)}.center-tab-add .add-label{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3px}.center-content{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.sessions-area{flex-direction:column;flex:1;min-height:120px;display:flex;overflow:hidden}.editor-area{flex-direction:column;height:0;min-height:0;transition:none;display:flex;overflow:hidden}.editor-area.open{min-height:100px}.editor-tabs{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:stretch;display:flex;overflow-x:auto}.editor-tab{white-space:nowrap;color:var(--text-muted);border-right:1px solid var(--border-subtle);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:6px;max-width:180px;padding:5px 10px 5px 12px;font-size:11px;display:flex;position:relative}.editor-tab:hover{background:var(--bg-surface-2);color:var(--text-secondary)}.editor-tab.active{background:var(--bg-base);color:var(--text-primary)}.editor-tab.active:after{content:"";background:var(--accent-cyan);height:2px;position:absolute;bottom:0;left:0;right:0}.editor-tab-icon{color:var(--text-muted);flex-shrink:0;font-size:11px}.editor-tab-name{text-overflow:ellipsis;overflow:hidden}.editor-tab-modified{background:var(--accent-amber);border-radius:50%;flex-shrink:0;width:6px;height:6px}.editor-tab-close{opacity:0;width:16px;height:16px;transition:all var(--transition-fast);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.editor-tab:hover .editor-tab-close{opacity:.5}.editor-tab-close:hover{background:var(--bg-hover);opacity:1!important}.editor-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:6px;padding:3px 12px;display:flex}.editor-view-group{gap:0;display:flex}.ev-btn{color:var(--text-muted);border:1px solid var(--border);transition:all var(--transition-fast);cursor:pointer;padding:3px 10px;font-size:10px;font-weight:500}.ev-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.ev-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.ev-btn+.ev-btn{border-left:none}.ev-btn:hover{color:var(--text-secondary);background:var(--bg-surface-2)}.ev-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.ev-btn.disabled{opacity:.3;pointer-events:none}.editor-filepath{font-family:var(--font-mono);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:10px;overflow:hidden}.editor-content{background:var(--bg-base);flex:1;position:relative;overflow:auto}.editor-source{font-family:var(--font-mono);counter-reset:line-num;padding:8px 0;font-size:12px;line-height:1.65}.editor-line{min-height:20px;padding:0 12px 0 0;display:flex}.editor-line:hover{background:var(--bg-surface-2)}.editor-line-num{text-align:right;width:44px;color:var(--text-muted);opacity:.4;-webkit-user-select:none;user-select:none;flex-shrink:0;padding-right:12px;font-size:11px}.editor-line-code{white-space:pre;color:var(--text-secondary);flex:1}.syn-kw{color:var(--accent-purple)}.syn-str{color:var(--accent-green)}.syn-fn{color:var(--accent-blue)}.syn-cm{color:var(--text-muted);font-style:italic}.syn-num{color:var(--accent-amber)}.syn-type{color:var(--accent-cyan)}.syn-op{color:var(--accent-red)}.editor-diff{font-family:var(--font-mono);padding:8px 0;font-size:12px;line-height:1.65}.diff-line{min-height:20px;padding:0 12px 0 0;display:flex}.diff-line.added{background:#34d39914}.diff-line.removed{background:#ef444414}.diff-line.hunk{background:var(--bg-surface-2);color:var(--accent-blue);font-style:italic}.diff-gutter{text-align:right;width:44px;color:var(--text-muted);opacity:.4;-webkit-user-select:none;user-select:none;flex-shrink:0;padding-right:12px;font-size:11px}.diff-marker{text-align:center;flex-shrink:0;width:16px;font-weight:700}.diff-line.added .diff-marker{color:var(--accent-green)}.diff-line.removed .diff-marker{color:var(--accent-red)}.diff-code{white-space:pre;color:var(--text-secondary);flex:1}.diff-line.added .diff-code{color:var(--accent-green)}.diff-line.removed .diff-code{color:var(--accent-red)}.editor-rendered{height:100%;padding:16px;overflow:auto}.editor-rendered img{border-radius:var(--radius-sm);max-width:100%}.editor-rendered .md-preview{color:var(--text-primary);font-size:13px;line-height:1.7}.editor-rendered .md-preview h1,.editor-rendered .md-preview h2,.editor-rendered .md-preview h3{color:var(--text-primary);margin:16px 0 8px}.editor-rendered .md-preview h1{border-bottom:1px solid var(--border-subtle);padding-bottom:6px;font-size:22px}.editor-rendered .md-preview h2{font-size:18px}.editor-rendered .md-preview h3{font-size:15px}.editor-rendered .md-preview p{margin:8px 0}.editor-rendered .md-preview code{font-family:var(--font-mono);background:var(--bg-surface-3);border-radius:3px;padding:1px 5px;font-size:12px}.editor-rendered .md-preview pre{background:var(--bg-surface-2);border-radius:var(--radius-sm);margin:12px 0;padding:12px;overflow-x:auto}.editor-rendered .md-preview pre code{background:0 0;padding:0}.editor-rendered .md-preview a{color:var(--accent-blue);text-decoration:none}.editor-rendered .md-preview a:hover{text-decoration:underline}.editor-rendered .md-preview ul,.editor-rendered .md-preview ol{margin:8px 0;padding-left:24px}.editor-rendered .md-preview li{margin:4px 0}.editor-rendered .md-preview li::marker{color:var(--text-muted)}.editor-rendered .md-preview blockquote{border-left:3px solid var(--border-subtle);color:var(--text-secondary);margin:12px 0;padding:4px 16px}.editor-rendered .md-preview blockquote p{margin:4px 0}.editor-rendered .md-preview hr{border:none;border-top:1px solid var(--border-subtle);margin:16px 0}.editor-rendered .md-preview table{border-collapse:collapse;width:100%;margin:12px 0}.editor-rendered .md-preview th,.editor-rendered .md-preview td{border:1px solid var(--border-subtle);text-align:left;padding:6px 12px}.editor-rendered .md-preview th{background:var(--bg-surface-2);font-weight:600}.editor-rendered .md-preview tr:nth-child(2n){background:var(--bg-surface-1,#ffffff05)}.editor-rendered .md-preview img{border-radius:var(--radius-sm);max-width:100%}.editor-rendered .md-preview strong{color:var(--text-primary);font-weight:600}.editor-rendered .md-preview em{font-style:italic}.editor-rendered .md-preview h4{color:var(--text-primary);margin:12px 0 6px;font-size:14px}.editor-rendered .md-preview h5,.editor-rendered .md-preview h6{color:var(--text-secondary);margin:10px 0 4px;font-size:13px}.editor-rendered .md-preview input[type=checkbox]{margin-right:6px}.editor-rendered .mermaid-block{background:var(--bg-surface-2);border-radius:var(--radius-sm);justify-content:center;margin:12px 0;padding:16px;display:flex}.editor-rendered .mermaid-block.mermaid-rendered svg{max-width:100%}.editor-rendered .mermaid-block.mermaid-error{color:var(--accent-red);font-family:var(--font-mono);white-space:pre-wrap;font-size:12px}.editor-rendered .html-frame{border-radius:var(--radius-sm);background:#fff;border:none;width:100%;height:100%}.editor-rendered .pdf-placeholder,.editor-rendered .media-placeholder{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.editor-rendered .media-icon{opacity:.3;font-size:48px}.editor-rendered .media-label{font-size:13px}.editor-content:has(.binary-placeholder){overflow:hidden}.binary-placeholder{color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.binary-placeholder-icon{opacity:.25;color:var(--text-secondary);font-size:48px}.binary-placeholder-title{color:var(--text-primary);font-size:16px;font-weight:600}.binary-placeholder-info{font-size:12px;font-family:var(--font-mono);color:var(--text-secondary)}.binary-placeholder-msg{color:var(--text-muted);margin-bottom:4px;font-size:13px}.editor-content:has(.hex-viewer){overflow:hidden}.hex-viewer{font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-base);outline:none;flex-direction:column;font-size:12px;display:flex;position:absolute;inset:0}.hex-header{border-bottom:1px solid var(--border-subtle);color:var(--text-muted);-webkit-user-select:none;user-select:none;background:var(--bg-surface-1);flex-shrink:0;align-items:center;gap:0;padding:4px 12px;font-size:11px;display:flex}.hex-header .hex-bytes-hdr{letter-spacing:.3px}.hex-header .hex-info{color:var(--text-secondary);white-space:nowrap;margin-left:auto;font-size:11px}.hex-body{flex:1;min-height:0;overflow:auto}.hex-row{white-space:nowrap;gap:0;padding:0 12px;line-height:20px;display:flex}.hex-row:hover{background:var(--bg-surface-1)}.hex-offset{color:var(--text-muted);-webkit-user-select:none;user-select:none;min-width:80px;display:inline-block}.hex-bytes{align-items:center;min-width:430px;display:inline-flex}.hex-ascii{align-items:center;min-width:140px;display:inline-flex}.hex-bytes .hb{text-align:center;cursor:pointer;width:21px;color:var(--text-primary);border-radius:2px;display:inline-block}.hex-bytes .hb.he{cursor:default}.hex-bytes .hg{width:8px;display:inline-block}.hex-ascii .ab{text-align:center;cursor:pointer;width:8.4px;color:var(--accent-secondary);border-radius:2px;display:inline-block}.hex-bytes .hb:hover,.hex-ascii .ab:hover{background:var(--bg-surface-2)}.hx-cur{outline:1.5px solid var(--accent-primary);outline-offset:-1px;background:#5b8af526!important}.hx-sel{background:#5b8af538!important}.hx-sel.hx-cur{background:#5b8af559!important}.hx-edit{color:#f0a050!important}.hx-match{background:#ffd2002e!important}.hx-amatch{background:#fa06!important}.hex-search{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-1);flex-direction:column;flex-shrink:0;gap:4px;padding:6px 12px;display:flex}.hex-search-row{align-items:center;gap:4px;font-size:11px;display:flex}.hex-search-label{color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0;width:50px}.hex-search-input{border:1px solid var(--border-subtle);background:var(--bg-base);min-width:0;color:var(--text-primary);font-family:var(--font-mono);border-radius:3px;outline:none;flex:1;max-width:260px;padding:3px 6px;font-size:11px}.hex-search-input:focus{border-color:var(--accent-primary)}.hex-sbtn{border:1px solid var(--border-subtle);background:var(--bg-surface-2);color:var(--text-secondary);cursor:pointer;white-space:nowrap;font-size:11px;font-family:var(--font-mono);border-radius:3px;padding:2px 8px}.hex-sbtn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.hex-sbtn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.hex-search-count{color:var(--text-muted);white-space:nowrap;padding:0 4px;font-size:11px}.hex-search-close{margin-left:auto}.editor-splitter{cursor:row-resize;z-index:6;background:0 0;flex-shrink:0;height:5px;display:none;position:relative}.editor-area.open+.editor-splitter{display:block}.editor-splitter:after{content:"";background:var(--border);border-radius:1px;height:1px;transition:all .15s;position:absolute;top:2px;left:30%;right:30%}.editor-splitter:hover{background:#5b8af514}.editor-splitter:hover:after,.editor-splitter.dragging:after{background:var(--accent-cyan);height:2px;top:1px;left:20%;right:20%}.editor-splitter.dragging{background:#5b8af51f}.chat-area{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.fork-divider{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:12px;margin:-4px 0;display:flex;position:relative}.fork-divider-line{background:0 0;height:1px;transition:background .15s;position:absolute;top:50%;left:0;right:0}.fork-divider-btn{z-index:1;opacity:0;background:var(--bg-tertiary,#2a2a2a);border:1px solid var(--border-secondary,#444);color:var(--text-secondary,#aaa);white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:2px 10px;font-size:11px;transition:opacity .15s;display:flex;position:relative}.fork-divider:hover .fork-divider-line{background:var(--border-secondary,#444)}.fork-divider:hover .fork-divider-btn{opacity:1}.fork-divider-label{font-weight:500}.fork-divider-hint{opacity:.6;font-size:10px}.fork-divider.shift-hover .fork-divider-line{background:var(--accent-red,#e55)}.fork-divider.shift-hover .fork-divider-btn{border-color:var(--accent-red,#e55);color:var(--accent-red,#e55)}.fork-divider.range-start .fork-divider-line{background:var(--accent-red,#e55);height:2px}.fork-divider.range-start .fork-divider-btn{opacity:1;border-color:var(--accent-red,#e55);color:var(--accent-red,#e55);background:var(--bg-tertiary,#2a2a2a)}.fork-divider.range-active:hover .fork-divider-btn{border-color:var(--accent-purple,#a78bfa);color:var(--accent-purple,#a78bfa)}.fork-divider.range-disabled{cursor:not-allowed;opacity:.3}.fork-divider.range-disabled:hover .fork-divider-btn{opacity:0}.chat-msg{gap:10px;max-width:85%;animation:.2s msg-in;display:flex}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-msg.user{flex-direction:row-reverse;align-self:flex-end}.chat-avatar{border-radius:var(--radius-sm);width:26px;height:26px;font-family:var(--font-mono);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.chat-avatar.claude{background:var(--accent-purple-dim);color:var(--accent-purple)}.chat-avatar.you{background:var(--accent-blue-dim);color:var(--accent-blue)}.chat-bubble{border-radius:var(--radius-md);overflow-wrap:break-word;word-wrap:break-word;min-width:0;max-height:25vh;padding:10px 14px;font-size:13px;line-height:1.6;overflow-y:auto}.chat-msg.assistant .chat-bubble{background:var(--bg-surface);border:1px solid var(--border-subtle)}.chat-msg.user .chat-bubble{background:var(--accent-blue-dim);border:1px solid #5b8af540}.chat-attachment-img{border-radius:var(--radius-sm);max-width:300px;max-height:300px;margin-bottom:8px;display:block}.chat-attach-chip-inline{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:4px;margin-bottom:6px;padding:3px 10px;font-size:11px;display:inline-flex}.chat-bubble-toolbar{float:right;gap:4px;margin-left:8px;display:flex}.chat-bubble-btn{font-size:9px;font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;background:var(--bg-surface-3);opacity:0;text-transform:uppercase;letter-spacing:.5px;border-radius:3px;align-items:center;padding:2px 6px;transition:opacity .15s,color .15s;display:flex}.chat-bubble:hover .chat-bubble-btn,.chat-thinking:hover .chat-bubble-btn,.chat-tool-use:hover .chat-bubble-btn{opacity:.7}.chat-bubble-btn:hover{color:var(--accent-cyan);background:var(--bg-surface-2);opacity:1!important}.chat-bubble-btn.copied{color:var(--accent-green);opacity:1!important}.chat-text-raw{white-space:pre-wrap;font-family:var(--font-mono);font-size:12px;line-height:1.5}.md-content{color:var(--text-primary);word-wrap:break-word;overflow-wrap:break-word;min-width:0;font-size:13px;line-height:1.7;overflow:hidden}.md-content>:first-child{margin-top:0}.md-content>:last-child{margin-bottom:0}.md-content h1,.md-content h2,.md-content h3,.md-content h4{color:var(--text-primary);margin:16px 0 8px;font-weight:600;line-height:1.3}.md-content h1{border-bottom:1px solid var(--border);padding-bottom:6px;font-size:1.4em}.md-content h2{border-bottom:1px solid var(--border);padding-bottom:4px;font-size:1.2em}.md-content h3{font-size:1.05em}.md-content h4{color:var(--text-secondary);font-size:1em}.md-content p{margin:8px 0}.md-content ul,.md-content ol{margin:8px 0;padding-left:24px}.md-content li{margin:4px 0}.md-content li>ul,.md-content li>ol{margin:2px 0}.md-content code{background:var(--bg-surface-3);color:var(--text-primary);font-size:.9em;font-family:var(--font-mono);border-radius:4px;padding:2px 6px}.md-content pre{border:1px solid var(--border);border-radius:var(--radius-sm);background:#0d1117;margin:10px 0;padding:12px 16px;line-height:1.5;position:relative;overflow-x:auto}.md-content pre code{color:var(--text-secondary);background:0 0;border-radius:0;padding:0;font-size:12px}.md-content pre code.hljs{background:0 0;padding:0}.code-toolbar{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:6px;display:flex}.code-lang-label{color:var(--text-muted);opacity:.5;text-transform:uppercase;letter-spacing:.5px;font-size:10px}.code-copy-btn{color:var(--text-muted);cursor:pointer;opacity:0;background:#ffffff0f;border-radius:3px;align-items:center;padding:2px 4px;transition:opacity .15s,color .15s;display:flex}pre:hover .code-copy-btn{opacity:.7}.code-copy-btn:hover{color:var(--accent-cyan);opacity:1!important}.code-copy-btn.copied{color:var(--accent-green);opacity:1!important}.md-content blockquote{border-left:3px solid var(--accent-green);color:var(--text-muted);background:var(--bg-surface-2);border-radius:0 4px 4px 0;margin:8px 0;padding:4px 16px}.md-content blockquote p{margin:4px 0}.md-content a{color:var(--accent-blue);text-decoration:none}.md-content a:hover{text-decoration:underline}.md-content hr{border:none;border-top:1px solid var(--border);margin:16px 0}.md-content table{border-collapse:collapse;width:100%;margin:10px 0;display:block;overflow-x:auto}.md-content th,.md-content td{border:1px solid var(--border);text-align:left;padding:6px 12px}.md-content th{background:var(--bg-surface-2);color:var(--text-primary);font-weight:600}.md-content tr:nth-child(2n){background:var(--bg-surface-2)}.md-content strong{color:var(--text-primary);font-weight:600}.md-content em{color:var(--text-secondary)}.md-content img{border-radius:6px;max-width:100%}.chat-tool-use{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:8px;padding:8px 12px;font-size:11px;animation:.2s msg-in;display:flex}.chat-tool-use .tool-icon{color:var(--accent-cyan)}.chat-raw-btn{color:var(--text-muted);cursor:pointer;opacity:0;vertical-align:middle;text-transform:uppercase;letter-spacing:.5px;margin-left:8px;font-size:9px;transition:opacity .15s;display:inline-block}.chat-msg:hover .chat-raw-btn,.chat-tool-use:hover .chat-raw-btn{opacity:.7}.chat-raw-btn:hover{color:var(--accent-cyan);opacity:1!important}.chat-thinking{background:var(--bg-surface-2);border-left:3px solid var(--accent-purple);border-radius:var(--radius-sm);color:var(--text-muted);margin:4px 0;padding:10px 14px;font-size:12px;font-style:italic;animation:.2s msg-in;position:relative}.chat-thinking-header{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-purple);margin-bottom:6px;font-size:10px;font-style:normal;font-weight:600}.chat-thinking .chat-bubble-toolbar{top:8px;right:8px}.chat-thinking .md-content,.chat-thinking .chat-text-raw{color:var(--text-muted);font-style:italic}.chat-tool-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.chat-tool-name{color:var(--accent-cyan);font-size:11px;font-weight:600}.chat-tool-command{background:var(--bg-surface-3);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-primary);white-space:pre-wrap;word-break:break-all;padding:4px 8px;font-size:11px}.chat-tool-filepath{font-family:var(--font-mono);color:var(--text-secondary);padding:2px 0;font-size:11px}.chat-tool-details{margin-top:4px}.chat-tool-details summary{color:var(--text-muted);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;font-size:10px}.chat-tool-details pre{background:var(--bg-surface-3);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;max-height:300px;margin:4px 0 0;padding:6px 8px;font-size:11px;overflow:auto}.chat-tool-output{margin-top:4px}.chat-tool-output pre{background:var(--bg-surface-3);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;max-height:200px;color:var(--text-secondary);margin:0;padding:6px 8px;font-size:11px;overflow:auto}.chat-tool-output.error pre{color:var(--accent-red,#f87171)}.chat-tool-output summary{color:var(--text-muted);cursor:pointer;font-size:10px}.chat-tool-use.pending{border-style:dashed;border-color:var(--accent-cyan)}.chat-tool-pending{color:var(--accent-cyan);font-size:10px;animation:1.5s ease-in-out infinite pulse-text}@keyframes pulse-text{0%,to{opacity:.5}50%{opacity:1}}.chat-question-panel{background:var(--bg-surface-2);border:1px solid var(--accent-blue);border-radius:var(--radius-md);margin:8px 0;padding:14px;animation:.2s msg-in}.chat-question-header{color:var(--accent-blue);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:10px;font-weight:600}.chat-question-text{color:var(--text-primary);margin-bottom:10px;font-size:13px}.chat-question-options{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.chat-question-option{background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.chat-question-option:hover{border-color:var(--accent-blue-dim)}.chat-question-option.selected{border-color:var(--accent-blue);background:#58a6ff0f}.chat-question-radio{border:2px solid var(--border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-top:1px;display:flex}.chat-question-radio-inner{width:8px;height:8px;transition:background var(--transition-fast);background:0 0;border-radius:50%}.chat-question-option.selected .chat-question-radio{border-color:var(--accent-blue)}.chat-question-option.selected .chat-question-radio-inner{background:var(--accent-blue)}.chat-question-option-label{color:var(--text-primary);font-size:12px;font-weight:500}.chat-question-option-desc{color:var(--text-muted);margin-top:1px;font-size:11px}.chat-question-custom-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);outline:none;margin-top:6px;padding:6px 10px;font-family:inherit;font-size:12px}.chat-question-custom-input:focus{border-color:var(--accent-blue)}.chat-question-buttons{gap:8px;display:flex}.chat-question-submit{background:var(--accent-green);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition-fast);border:none;padding:5px 16px;font-family:inherit;font-size:12px;font-weight:500}.chat-question-submit:disabled{opacity:.4;cursor:default}.chat-question-skip{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:5px 16px;font-family:inherit;font-size:12px}.chat-question-skip:hover{color:var(--text-secondary);border-color:var(--border-strong)}.chat-question-answered{flex-wrap:wrap;gap:12px;margin:4px 0;padding:6px 12px;font-size:11px;display:flex}.chat-question-answered-header{color:var(--text-muted);text-transform:uppercase}.chat-question-answered-value{color:var(--text-secondary)}.chat-plan-approval{background:var(--surface-secondary);border:1px solid var(--border);border-radius:var(--radius);margin:8px 0;padding:12px}.chat-plan-header{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600}.chat-plan-content{color:var(--text-secondary);max-height:400px;margin-bottom:12px;font-size:13px;line-height:1.5;overflow-y:auto}.chat-plan-content h1,.chat-plan-content h2,.chat-plan-content h3{color:var(--text-primary);margin:12px 0 4px}.chat-plan-content h1{font-size:16px}.chat-plan-content h2{font-size:14px}.chat-plan-content h3{font-size:13px}.chat-plan-content ul,.chat-plan-content ol{margin:4px 0;padding-left:20px}.chat-plan-content code{background:var(--surface-tertiary);border-radius:3px;padding:1px 4px;font-size:12px}.chat-plan-content pre{margin:6px 0}.chat-plan-buttons{gap:8px;display:flex}.chat-plan-approve{background:var(--accent-green);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:5px 16px;font-family:inherit;font-size:12px;font-weight:500}.chat-plan-deny{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:5px 16px;font-family:inherit;font-size:12px}.chat-plan-deny:hover{color:var(--text-secondary);border-color:var(--border-strong)}.chat-plan-responded{color:var(--text-muted);align-items:center;gap:6px;margin:4px 0;padding:6px 12px;font-size:12px;display:flex}.chat-tool-approval{background:var(--bg-surface-2);border:1px solid var(--accent-amber);border-radius:var(--radius-md);margin:8px 0;padding:12px;animation:.2s msg-in}.chat-tool-approval-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.chat-tool-approval-icon{color:var(--accent-amber);font-size:14px;font-family:var(--font-mono);font-weight:700}.chat-tool-approval-name{font-family:var(--font-mono);color:var(--accent-cyan);font-size:13px;font-weight:600}.chat-tool-approval-desc{color:var(--text-muted);margin-bottom:6px;font-size:12px}.chat-tool-approval-command{background:var(--bg-surface);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);color:var(--text-primary);white-space:pre-wrap;word-break:break-all;max-height:200px;margin-bottom:8px;padding:8px 10px;line-height:1.5;overflow:auto}.chat-tool-approval-prompt{color:var(--accent-green);-webkit-user-select:none;user-select:none}.chat-tool-approval-meta{gap:6px;margin-bottom:8px;display:flex}.chat-tool-approval-tag{color:var(--text-muted);background:var(--bg-surface-3);border-radius:var(--radius-sm);padding:1px 6px;font-size:10px}.chat-tool-approval-field{background:var(--bg-surface);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);margin-bottom:4px;padding:6px 10px;overflow:auto}.chat-tool-approval-field-label{color:var(--text-muted);font-size:11px}.chat-tool-approval-field-value{color:var(--text-primary)}.chat-tool-approval-other-params{margin-bottom:8px}.chat-tool-approval-other-params summary{color:var(--text-muted);cursor:pointer;margin-bottom:4px;font-size:11px}.chat-tool-approval-other-params pre{background:var(--bg-surface);border-radius:var(--radius-sm);max-height:200px;color:var(--text-muted);padding:8px;font-size:11px;overflow:auto}.chat-tool-approval-buttons{gap:8px;display:flex}.chat-tool-approval-allow{background:var(--accent-green);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:4px 16px;font-family:inherit;font-size:12px}.chat-tool-approval-deny{background:var(--accent-red);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:4px 16px;font-family:inherit;font-size:12px}.chat-status-line{text-align:center;color:var(--text-muted);font-size:11px;font-family:var(--font-mono);padding:4px 0}.chat-status-line .waiting-indicator{background:var(--accent-amber-dim);color:var(--accent-amber);border-radius:20px;align-items:center;gap:6px;padding:5px 14px;font-weight:600;display:inline-flex}.msg-attachments{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.msg-attachment{font-size:11px;font-family:var(--font-mono);border-radius:var(--radius-sm);background:#00000026;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.chat-input-bar{border-top:1px solid var(--border-subtle);background:var(--bg-surface);flex-shrink:0;align-items:flex-end;gap:8px;padding:10px 16px;display:flex}.chat-input{border-radius:var(--radius-md);background:var(--bg-surface-2);border:1px solid var(--border);resize:none;field-sizing:content;flex:1;min-height:36px;max-height:calc(7em + 16px);padding:8px 14px;font-family:inherit;font-size:13px;line-height:1.4;overflow-y:auto}.chat-input:focus{border-color:var(--accent-blue)}.chat-send-btn{border-radius:var(--radius-md);background:var(--accent-blue);color:#fff;width:36px;height:36px;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:16px;display:flex}.chat-send-btn:hover{filter:brightness(1.15)}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-attach-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.chat-mic-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);transition:all var(--transition-fast);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:0;padding:2px 0 0;line-height:1;display:flex}.mic-icon{font-size:15px}.mic-lang{opacity:.7;font-size:10px}.chat-mic-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.chat-mic-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.chat-mic-btn.recording{color:#fff;background:#e53935;animation:1s ease-in-out infinite mic-pulse}.chat-mic-btn.recording .mic-lang{opacity:1}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.5}}.mic-lang-picker{background:var(--bg-surface-2);border:1px solid var(--border-primary);border-radius:var(--radius-md);z-index:100;flex-direction:column;gap:2px;margin-bottom:6px;padding:4px;display:flex;position:absolute;bottom:100%;right:40px;box-shadow:0 4px 12px #0000004d}.mic-lang-option{border-radius:var(--radius-sm);color:var(--text-primary);text-align:left;white-space:nowrap;transition:background var(--transition-fast);padding:6px 12px;font-size:13px}.mic-lang-option:hover{background:var(--bg-surface-3)}.mic-lang-option.active{background:var(--accent-blue);color:#fff}.chat-attach-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex;position:relative}.chat-attach-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.chat-attachments{background:var(--bg-surface);border-top:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;gap:6px;padding:6px 16px 2px;display:none}.chat-attachments.has-items{display:flex}.chat-attach-chip{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:6px;max-width:220px;padding:4px 8px 4px 6px;font-size:11px;animation:.15s chip-in;display:flex}@keyframes chip-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.chat-attach-chip-icon{flex-shrink:0;font-size:14px}.chat-attach-chip-name{white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-mono);min-width:0;font-size:10px;overflow:hidden}.chat-attach-chip-size{color:var(--text-muted);flex-shrink:0;font-size:9px}.chat-attach-chip-remove{width:16px;height:16px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.chat-attach-chip-remove:hover{background:var(--accent-red-dim);color:var(--accent-red)}.chat-attach-chip-thumb{object-fit:cover;border-radius:3px;flex-shrink:0;width:28px;height:28px}.chat-status-bar{background:var(--bg-surface);border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:10px;font-family:var(--font-mono);flex-shrink:0;align-items:center;gap:12px;padding:4px 16px 5px;display:flex}.chat-status-bar select{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-surface-2);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%235a5d74'/%3E%3C/svg%3E");background-position:right 3px center;background-repeat:no-repeat;border:none;border-radius:3px;outline:none;padding:1px 14px 1px 4px;font-size:10px}.chat-status-bar select option{background:var(--bg-surface-2);color:var(--text-primary)}.chat-status-bar select:hover{color:var(--text-secondary)}.chat-status-bar select:focus{color:var(--text-primary)}.chat-status-item{white-space:nowrap;align-items:center;gap:4px;display:flex}.chat-status-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-family:var(--font-sans)}.chat-status-sep{background:var(--border-subtle);flex-shrink:0;width:1px;height:10px}.chat-status-tokens{align-items:center;gap:6px;margin-left:auto;display:flex}.chat-token-bar-track{background:var(--bg-surface-3);border-radius:2px;flex-shrink:0;width:48px;height:3px;overflow:hidden}.chat-token-bar-fill{background:var(--accent-blue-dim);border-radius:2px;height:100%;transition:width .3s}.session-view-toggle{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:6px;margin-bottom:8px;padding:3px 12px;display:flex}.svt-btn{color:var(--text-muted);border:1px solid var(--border);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:500;display:flex}.svt-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.svt-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none}.svt-btn:hover{color:var(--text-secondary);background:var(--bg-surface-2)}.svt-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.svt-btn .svt-icon{font-size:10px;line-height:1}.svt-filter-btn{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;align-items:center;gap:4px;padding:3px 10px;font-size:10px;font-weight:500;display:flex}.svt-filter-btn:hover{color:var(--text-secondary);background:var(--bg-surface-2)}.svt-filter-btn.active{color:var(--accent-cyan);background:#22d3ee14;border-color:#22d3ee4d}.svt-filter-icon{font-size:10px}.svt-tags{flex-shrink:1;align-items:center;gap:4px;min-width:0;margin-left:8px;display:flex;overflow:hidden}.svt-tag-badge{color:var(--accent-purple);background:var(--accent-purple-dim);white-space:nowrap;letter-spacing:.02em;border:1px solid #a78bfa40;border-radius:10px;padding:1px 7px;font-size:9px;font-weight:500;line-height:1.4;display:inline-block}.svt-description-panel{background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);flex-shrink:0;max-height:200px;padding:8px 12px;overflow-y:auto}.svt-description-content{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5}.chat-collapsed-indicator{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);align-items:center;gap:6px;margin:2px 0;padding:4px 14px;display:flex}.chat-collapsed-indicator:hover{background:var(--bg-surface-2);color:var(--text-secondary)}.chat-collapsed-count{background:var(--bg-surface-3);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:600}.chat-subagent-bubble{background:var(--bg-secondary,#1e1e2e);border:1px solid var(--border-subtle,#333);border-radius:10px;min-width:200px;max-width:85%;padding:8px 12px}.chat-subagent-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:2px 0;display:flex}.chat-subagent-header:hover{opacity:.85}.chat-subagent-chevron{color:var(--text-muted);font-size:9px;transition:transform .15s;display:inline-block}.chat-subagent-chevron.expanded{transform:rotate(90deg)}.chat-subagent-label{color:var(--accent-blue,#7ab3f0);font-size:12px;font-weight:600;font-family:var(--font-mono)}.chat-subagent-stats{gap:8px;margin-left:auto;display:flex}.chat-subagent-stat{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);background:var(--bg-tertiary,#2a2a3a);border-radius:8px;padding:1px 6px}.chat-subagent-summary{color:var(--text-secondary,#aaa);text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:12px;line-height:1.4;overflow:hidden}.chat-subagent-messages{border-top:1px solid var(--border-subtle,#333);flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;display:flex}.chat-subagent-messages .chat-msg{padding:2px 0}.chat-subagent-messages .chat-avatar{width:20px;min-width:20px;height:20px;font-size:9px}.chat-subagent-messages .chat-bubble{font-size:12px}.chat-subagent-messages .chat-tool-use,.chat-subagent-messages .chat-thinking{font-size:11px}.tui-collapsed{color:var(--text-muted);cursor:pointer;padding:3px 0;font-size:11px;transition:color .1s}.tui-collapsed:hover{color:var(--text-secondary)}.tui-view{background:#0a0b0f;flex:1;overflow:hidden}.tui-line{white-space:pre-wrap;word-break:break-word}.tui-prompt{color:var(--accent-blue);font-weight:600}.tui-prompt-text{color:var(--text-primary)}.tui-response{color:#b4b8cf;padding-left:2px}.tui-tool{color:var(--accent-cyan);align-items:center;gap:6px;padding:2px 0;display:flex}.tui-tool-icon{color:var(--accent-green)}.tui-tool-path{color:var(--accent-amber)}.tui-separator{border:none;border-top:1px solid var(--border-subtle);opacity:.4;margin:6px 0}.tui-status{padding:4px 0;font-weight:600}.tui-status.waiting{color:var(--accent-amber)}.tui-status.running{color:var(--accent-green)}.tui-cost{color:var(--text-muted);padding:2px 0 4px;font-size:10px}.tui-input-bar{border-top:1px solid var(--border-subtle);background:#0d0e14;flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;display:flex}.tui-input-prompt{font-family:var(--font-mono);color:var(--accent-blue);flex-shrink:0;font-size:12px;font-weight:600}.tui-input{font-family:var(--font-mono);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);background:#161822;outline:none;flex:1;padding:6px 10px;font-size:12px}.tui-input:focus{border-color:var(--accent-blue)}.terminal-output{background:#0a0b0f;flex:1;overflow:hidden}.terminal-drop-active{outline:2px solid var(--accent,#5b8af5);outline-offset:-2px}.right-panel{border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;grid-area:right-panel;display:flex;overflow:hidden}.workspace.rp-collapsed.layout-default{grid-template-columns:var(--lp-width) 5px 1fr 0 auto}.workspace.rp-collapsed.layout-wide{grid-template-columns:var(--lp-width) 5px 1fr 0 auto 5px var(--pp-width)}.workspace.rp-collapsed .panel-vsplit-right{display:none}.right-panel.collapsed{width:32px}.right-panel.collapsed .session-list,.right-panel.collapsed .rp-header-title{display:none}.right-panel.collapsed .rp-collapse-btn{transform:rotate(180deg)}.right-panel.collapsed .rp-collapsed-label{display:flex}.rp-collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;color:var(--text-muted);letter-spacing:.5px;-webkit-user-select:none;user-select:none;cursor:pointer;flex:1;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:none}.rp-header{background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:6px;min-height:33px;padding:0 10px;display:flex}.rp-header-title{color:var(--text-primary);flex:1;font-size:11px;font-weight:500}.rp-collapse-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.rp-collapse-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.rp-tabs{flex:1;gap:2px;min-width:0;display:flex}.rp-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;padding:4px 8px;font-size:11px;font-weight:500}.rp-tab:hover:not(.disabled),.rp-tab.active{background:var(--bg-surface-3);color:var(--text-primary)}.rp-tab.disabled{opacity:.35;cursor:not-allowed}.right-panel.collapsed .rp-tabs,.right-panel.collapsed .gh-list-container{display:none}.gh-list-container{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.gh-filters-bar{border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:6px;padding:8px 10px;display:flex}.gh-state-filters{align-items:center;gap:2px;display:flex}.gh-add-issue-btn{margin-left:auto;padding:1px 7px;font-size:13px;font-weight:600}.gh-state-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;padding:3px 8px;font-size:10px;font-weight:500}.gh-state-btn:hover{background:var(--bg-surface-2);color:var(--text-primary)}.gh-state-btn.active{background:var(--bg-surface-3);color:var(--text-primary);border-color:var(--border-subtle)}.gh-search-wrap{position:relative}.gh-search-input{background:var(--bg-surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);box-sizing:border-box;outline:none;padding:4px 8px;font-size:11px}.gh-search-input:focus{border-color:var(--accent-blue)}.gh-search-input::placeholder{color:var(--text-muted)}.gh-search-spinner{border:2px solid var(--border-subtle);border-top-color:var(--accent-blue);border-radius:50%;width:12px;height:12px;animation:.6s linear infinite gh-spin;position:absolute;top:50%;right:8px;transform:translateY(-50%)}@keyframes gh-spin{to{transform:translateY(-50%)rotate(360deg)}}.gh-list-scroll{flex:1;min-height:0;overflow-y:auto}.gh-list-loading,.gh-list-empty{color:var(--text-muted);justify-content:center;align-items:center;padding:24px;font-size:12px;display:flex}.gh-card{cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-subtle);box-sizing:border-box;align-items:flex-start;gap:8px;height:72px;padding:8px 10px;display:flex;overflow:hidden}.gh-card:hover{background:var(--bg-surface-2)}.gh-card-state-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.gh-card-state-dot.open{background:var(--accent-green);box-shadow:0 0 4px var(--accent-green)}.gh-card-state-dot.closed{background:var(--accent-red,#e5534b)}.gh-card-state-dot.merged{background:var(--accent-purple,#a371f7)}.gh-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gh-card-title-row{align-items:baseline;gap:4px;min-width:0;display:flex}.gh-card-number{color:var(--text-muted);flex-shrink:0;font-size:11px}.gh-card-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.gh-card-labels{flex-wrap:wrap;gap:3px;display:flex}.gh-label{white-space:nowrap;border-radius:10px;padding:1px 5px;font-size:9px;font-weight:500;line-height:1.4;display:inline-block}.gh-card-meta{color:var(--text-muted);gap:8px;font-size:10px;display:flex}.gh-card-action-btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-subtle);color:var(--text-muted);background:0 0;flex-shrink:0;align-self:center;padding:3px 8px;font-size:10px;font-weight:500}.gh-card-action-btn:hover:not(:disabled){background:var(--bg-surface-3);color:var(--text-primary)}.gh-card-action-btn:disabled{opacity:.5;cursor:not-allowed}.gh-card-action-btn.open:hover:not(:disabled){border-color:var(--accent-red,#e5534b);color:var(--accent-red,#e5534b)}.gh-card-action-btn.closed:hover:not(:disabled){border-color:var(--accent-green);color:var(--accent-green)}.gh-card-actions{flex-direction:row;flex-shrink:0;align-self:center;gap:3px;display:flex}.gh-action-analyse:hover:not(:disabled){border-color:var(--accent-blue,#58a6ff);color:var(--accent-blue,#58a6ff)}.gh-action-autofix:hover:not(:disabled){border-color:var(--accent-green,#3fb950);color:var(--accent-green,#3fb950)}.gh-action-review:hover:not(:disabled){border-color:var(--accent-purple,#bc8cff);color:var(--accent-purple,#bc8cff)}.gh-draft-badge{border-radius:var(--radius-sm);background:var(--bg-surface-3);color:var(--text-muted);flex-shrink:0;padding:1px 4px;font-size:9px}.gh-pr-branch{align-items:center;gap:4px;min-width:0;font-size:10px;display:flex}.gh-branch-name{font-family:var(--font-mono,monospace);color:var(--accent-blue);white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-size:10px;overflow:hidden}.gh-branch-arrow{color:var(--text-muted);flex-shrink:0}.gh-diff-stat{flex-shrink:0;gap:3px;display:flex}.gh-additions{color:var(--accent-green);font-size:10px;font-family:var(--font-mono,monospace)}.gh-deletions{color:var(--accent-red,#e5534b);font-size:10px;font-family:var(--font-mono,monospace)}.gh-review-badge{flex-shrink:0;font-size:10px}.gh-review-badge.approved{color:var(--accent-green)}.gh-review-badge.changes_requested{color:var(--accent-red,#e5534b)}.gh-review-badge.review_required{color:var(--text-muted)}.gh-action-github{color:var(--text-secondary)!important}.gh-action-github:hover:not(:disabled){background:var(--bg-surface-3)!important;color:var(--text-primary)!important}.issue-split-view{flex-direction:column;height:100%;display:flex;overflow:hidden}.issue-detail-panel{flex-direction:column;height:35%;min-height:120px;max-height:50%;display:flex;overflow:hidden}.issue-split-divider{background:var(--border);cursor:row-resize;height:4px;transition:background var(--transition-fast);flex-shrink:0}.issue-split-divider:hover{background:var(--accent-blue)}.issue-split-agent{flex-direction:column;flex:1;min-height:100px;display:flex;overflow:hidden}.issue-action-bar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:4px;padding:4px 8px;display:flex}.issue-action-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-2);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;padding:3px 10px;font-size:11px}.issue-action-btn:hover:not(:disabled){background:var(--bg-surface-3);color:var(--text-primary)}.issue-action-btn:disabled{opacity:.5;cursor:default}.issue-action-analyse:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue)}.issue-action-autofix:hover:not(:disabled){border-color:var(--accent-green);color:var(--accent-green)}.issue-action-review:hover:not(:disabled){border-color:var(--accent-purple);color:var(--accent-purple)}.issue-action-close:hover:not(:disabled){border-color:var(--accent-red);color:var(--accent-red)}.issue-action-reopen:hover:not(:disabled){border-color:var(--accent-green);color:var(--accent-green)}.issue-action-github:hover:not(:disabled){border-color:var(--text-muted)}.issue-action-worktree:hover:not(:disabled){border-color:var(--accent-yellow);color:var(--accent-yellow)}.issue-detail-content{flex:1;padding:12px 16px;font-size:13px;line-height:1.5;overflow-y:auto}.issue-detail-loading,.issue-detail-error{text-align:center;color:var(--text-muted);padding:24px;font-size:12px}.issue-detail-error{color:var(--accent-red)}.issue-detail-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;display:flex}.issue-detail-state{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.issue-detail-state.open{background:var(--accent-green-dim);color:var(--accent-green)}.issue-detail-state.closed{background:var(--accent-red-dim);color:var(--accent-red)}.issue-detail-state.merged{background:var(--accent-purple-dim);color:var(--accent-purple)}.issue-detail-author{color:var(--text-secondary);font-size:12px;font-weight:500}.issue-detail-time{color:var(--text-muted);font-size:11px}.issue-detail-labels{flex-wrap:wrap;gap:4px;display:flex}.issue-detail-label{border-radius:10px;padding:1px 6px;font-size:10px;font-weight:500}.issue-detail-pr-info{align-items:center;gap:6px;margin-bottom:12px;font-size:12px;display:flex}.issue-detail-branch{font-family:var(--font-mono);background:var(--bg-surface-3);border-radius:var(--radius-sm);color:var(--accent-blue);padding:1px 6px;font-size:11px}.issue-detail-arrow{color:var(--text-muted)}.issue-detail-diff{margin-left:4px}.issue-detail-add{color:var(--accent-green);margin-right:4px;font-size:11px}.issue-detail-del{color:var(--accent-red);font-size:11px}.issue-detail-body{color:var(--text-primary);font-size:13px;line-height:1.6}.issue-detail-body.issue-detail-empty{color:var(--text-muted);font-style:italic}.issue-detail-body.markdown-body pre{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin:8px 0;padding:8px 12px;overflow-x:auto}.issue-detail-body.markdown-body code{font-family:var(--font-mono);font-size:12px}.issue-detail-body.markdown-body p{margin:6px 0}.issue-detail-body.markdown-body ul,.issue-detail-body.markdown-body ol{margin:6px 0;padding-left:20px}.issue-detail-body.markdown-body blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin:8px 0;padding-left:12px}.issue-detail-body.markdown-body img{border-radius:var(--radius-sm);max-width:100%}.issue-detail-body.markdown-body a{color:var(--accent-blue);text-decoration:none}.issue-detail-body.markdown-body a:hover{text-decoration:underline}.issue-detail-body.markdown-body h1,.issue-detail-body.markdown-body h2,.issue-detail-body.markdown-body h3{color:var(--text-primary);margin:12px 0 6px}.issue-detail-comments{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.issue-detail-comments-header{color:var(--text-secondary);margin-bottom:12px;font-size:12px;font-weight:600}.issue-detail-comment{background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:12px;padding:8px 12px}.issue-detail-comment-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.issue-detail-comment-author{color:var(--text-primary);font-size:12px;font-weight:600}.issue-detail-comment-time{color:var(--text-muted);font-size:11px}.issue-detail-comment-body{color:var(--text-primary);font-size:13px;line-height:1.5}.issue-detail-comment-body p{margin:4px 0}.issue-detail-comment-body pre{background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);margin:6px 0;padding:6px 10px;overflow-x:auto}.issue-detail-comment-body code{font-family:var(--font-mono);font-size:12px}.svt-issue-badge{background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent-blue);white-space:nowrap;text-overflow:ellipsis;max-width:250px;padding:2px 8px;font-size:11px;overflow:hidden}.mobile-git-tabs{background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:2px;padding:6px 10px;display:flex}.mobile-git-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:5px 12px;font-size:12px;font-weight:500}.mobile-git-tab:hover:not(.disabled),.mobile-git-tab.active{background:var(--bg-surface-3);color:var(--text-primary)}.mobile-git-tab.disabled{opacity:.35;cursor:not-allowed}.session-list{flex:1;padding:6px 8px;overflow-y:auto}.session-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:flex-start;gap:8px;margin-bottom:2px;padding:8px 10px;display:flex}.session-item:hover{background:var(--bg-surface-2)}.session-item.session-running{border-left:3px solid var(--accent-green);background:#4ade800d}.session-item.session-running.session-open{cursor:default}.session-item.session-open{opacity:1}.session-agent-icon{opacity:.7;flex-shrink:0;width:14px;height:14px;margin-top:2px}.session-item:hover .session-agent-icon{opacity:1}.session-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.session-status-dot.live{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.session-status-dot.waiting{background:var(--accent-amber);animation:1.5s infinite pulse-dot}.session-status-dot.ended{background:var(--text-muted)}.session-info{flex:1;min-width:0}.session-title{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.session-meta{font-family:var(--font-mono);color:var(--text-muted);gap:8px;margin-top:2px;font-size:10px;display:flex}.session-uuid{font-family:var(--font-mono);color:var(--text-muted);opacity:.6;text-overflow:ellipsis;white-space:nowrap;max-width:160px;margin-top:1px;font-size:9px;overflow:hidden}.session-resume-btn{font-family:var(--font-mono);background:var(--bg-surface-3);color:var(--text-secondary);transition:all var(--transition-fast);border-radius:3px;flex-shrink:0;margin-top:2px;padding:2px 8px;font-size:10px}.session-resume-btn:hover{background:var(--accent-blue);color:#fff}.session-item.session-historical{opacity:.7}.session-item.session-historical:hover{opacity:1}.session-chain-carousel{min-width:0;position:relative;overflow:hidden}.session-chain-scroll{scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.session-chain-scroll::-webkit-scrollbar{display:none}.session-chain-slide{scroll-snap-align:start;box-sizing:border-box;flex:0 0 100%;min-width:0;max-width:100%;overflow:hidden}.session-chain-dots{justify-content:center;gap:4px;padding:3px 0 2px;display:flex}.session-chain-dot{background:var(--text-muted);opacity:.4;cursor:pointer;width:6px;height:6px;transition:all var(--transition-fast);border:none;border-radius:50%;padding:0}.session-chain-dot:hover{opacity:.8}.session-chain-dot.active{opacity:1;background:var(--accent-blue);transform:scale(1.3)}.session-fork-link{font-family:var(--font-mono);color:var(--accent-blue);opacity:.7;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:9px;overflow:hidden}.session-fork-link:hover{opacity:1;text-decoration:underline}.session-open-label{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;margin-top:2px;font-size:10px}.session-highlight{animation:1.5s ease-out session-flash}@keyframes session-flash{0%{background:var(--accent-blue)}to{background:0 0}}.session-resume-btn:disabled{opacity:.4;cursor:not-allowed}.session-resume-btn:disabled:hover{background:var(--bg-surface-3);color:var(--text-secondary)}.preview-panel{border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;grid-area:preview-panel;display:flex;overflow:hidden}.preview-frame-container{flex:1;padding:8px;position:relative;overflow:hidden}.preview-iframe{border-radius:var(--radius-md);border:none;width:calc(100% - 16px);height:calc(100% - 16px);position:absolute;top:8px;left:8px}.preview-iframe.hidden{display:none}.preview-placeholder{border:2px dashed var(--border);border-radius:var(--radius-md);width:100%;height:100%;color:var(--text-muted);letter-spacing:.3px;justify-content:center;align-items:center;font-size:13px;display:flex}.preview-bottom-bar{border-top:1px solid var(--border-subtle);background:var(--bg-surface-2);flex-shrink:0}.preview-url-bar{border-bottom:1px solid var(--border-subtle);align-items:center;gap:6px;padding:5px 10px;display:flex}.preview-url-input{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);flex:1;padding:4px 8px;font-size:11px}.preview-refresh-btn{border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast);flex-shrink:0;padding:4px 8px}.preview-refresh-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.preview-mode-btn{border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-surface-3);border:1px solid var(--border);cursor:pointer;text-align:center;min-width:20px;transition:all var(--transition-fast);flex-shrink:0;padding:3px 6px;font-size:10px;font-weight:700}.preview-mode-btn:hover{color:var(--text-primary);border-color:var(--accent-cyan)}.preview-tab-row{align-items:stretch;display:flex;overflow-x:auto}.preview-tab{font-size:10px;font-family:var(--font-mono);white-space:nowrap;color:var(--text-muted);border-right:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:5px;max-width:160px;padding:4px 10px;display:flex;position:relative}.preview-tab:hover{background:var(--bg-surface-3);color:var(--text-secondary)}.preview-tab.active{color:var(--text-primary);background:var(--bg-surface)}.preview-tab.active:before{content:"";background:var(--accent-cyan);height:2px;position:absolute;top:0;left:0;right:0}.preview-tab-label{text-overflow:ellipsis;overflow:hidden}.preview-tab-close{opacity:0;width:14px;height:14px;transition:all var(--transition-fast);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.preview-tab:hover .preview-tab-close{opacity:.5}.preview-tab-close:hover{background:var(--bg-hover);opacity:1!important}.preview-tab-add{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;padding:4px 10px;font-size:12px}.preview-tab-add:hover{color:var(--text-primary);background:var(--bg-surface-3)}.preview-frame-container.responsive{background:var(--bg-base);padding:20px;display:flex;overflow:auto}.preview-frame-container.responsive .preview-responsive-viewport-sizer{flex-shrink:0;margin:auto;position:relative;overflow:visible}.preview-responsive-viewport{box-shadow:0 0 0 1px var(--border), 0 4px 24px #0000004d;background:#fff;border-radius:2px;flex-shrink:0;position:relative;overflow:hidden}.preview-responsive-viewport .preview-iframe{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.preview-responsive-viewport .preview-iframe.hidden{display:none}.preview-viewport-dims{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;pointer-events:none;position:absolute;bottom:-22px;left:50%;transform:translate(-50%)}.preview-resize-handle{z-index:10;position:absolute}.preview-resize-handle-n{cursor:n-resize;height:10px;top:-5px;left:12px;right:12px}.preview-resize-handle-s{cursor:s-resize;height:10px;bottom:-5px;left:12px;right:12px}.preview-resize-handle-e{cursor:e-resize;width:10px;top:12px;bottom:12px;right:-5px}.preview-resize-handle-w{cursor:w-resize;width:10px;top:12px;bottom:12px;left:-5px}.preview-resize-handle-nw{cursor:nw-resize;width:14px;height:14px;top:-5px;left:-5px}.preview-resize-handle-ne{cursor:ne-resize;width:14px;height:14px;top:-5px;right:-5px}.preview-resize-handle-sw{cursor:sw-resize;width:14px;height:14px;bottom:-5px;left:-5px}.preview-resize-handle-se{cursor:se-resize;width:14px;height:14px;bottom:-5px;right:-5px}.preview-drag-overlay{z-index:20;background:0 0;position:absolute;inset:0}.preview-responsive-toolbar{border-bottom:1px solid var(--border-subtle);align-items:center;gap:6px;padding:4px 10px;display:flex}.preview-responsive-toggle{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;flex-shrink:0;padding:3px 6px;font-size:12px}.preview-responsive-toggle:hover{color:var(--text-primary)}.preview-responsive-toggle.active{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#00c8c814}.preview-device-select{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;max-width:130px;padding:3px 6px;font-size:10px}.preview-device-select:focus{border-color:var(--accent-cyan);outline:none}.preview-zoom-select{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;width:75px;padding:3px 6px;font-size:10px}.preview-zoom-select:focus{border-color:var(--accent-cyan);outline:none}.preview-frame-select{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;width:110px;padding:3px 6px;font-size:10px}.preview-frame-select:focus{border-color:var(--accent-cyan);outline:none}.preview-dim-input{width:52px;font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border);text-align:center;-moz-appearance:textfield;padding:3px 5px;font-size:10px}.preview-dim-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.preview-dim-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.preview-dim-input:focus{border-color:var(--accent-cyan);outline:none}.preview-dim-input.invalid,.preview-dim-input.invalid:focus{border-color:var(--accent-yellow)}.preview-dim-group{align-items:center;display:inline-flex;position:relative}.preview-dim-warn{color:var(--accent-yellow);flex-shrink:0;margin-left:1px;font-size:11px}.preview-dim-separator{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}.preview-rotate-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;padding:3px 6px;font-size:12px}.preview-rotate-btn:hover{color:var(--text-primary)}.preview-screenshot-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;padding:3px 6px;font-size:12px}.preview-screenshot-btn:hover{color:var(--text-primary)}.preview-screenshot-btn:disabled{opacity:.3;cursor:default}.preview-screenshot-btn.recording{color:var(--accent-red);animation:1.5s infinite pulse-dot}.preview-screenshot-btn.active{color:var(--accent-green)}.preview-areal-inputs{color:var(--text-muted);align-items:center;gap:4px;font-size:10px;display:inline-flex}.preview-areal-inputs label{font-family:var(--font-mono);align-items:center;gap:2px;display:inline-flex}.preview-areal-inputs input{width:42px;font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);color:var(--text-primary);text-align:center;padding:2px 4px;font-size:10px}.areal-overlay{z-index:15;position:absolute;inset:0}.areal-selection{border:1.5px dashed var(--accent-cyan);pointer-events:none;position:absolute;box-shadow:0 0 0 9999px #00000073}.areal-handle{background:var(--accent-cyan);pointer-events:none;border:1px solid #0000004d;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%)}.areal-dims-label{font-family:var(--font-mono);color:var(--accent-cyan);text-shadow:0 1px 2px #000c;white-space:nowrap;pointer-events:none;font-size:10px;position:absolute;transform:translate(-50%,4px)}.canvas-viewer-wrapper{outline:none;position:relative;overflow:hidden}.preview-frame-container:not(.responsive) .canvas-viewer-wrapper{width:calc(100% - 16px);height:calc(100% - 16px);position:absolute;top:8px;left:8px}.canvas-viewer{cursor:default;image-rendering:auto;display:block}.preview-responsive-viewport .canvas-viewer-wrapper,.preview-responsive-viewport .canvas-viewer{width:100%;height:100%}.canvas-viewer-hidden-input{opacity:0;pointer-events:none;border:none;outline:none;width:1px;height:1px;padding:0;position:absolute;top:0;left:0}.preview-connection-bar{border-bottom:1px solid var(--border-subtle);align-items:center;gap:4px;padding:5px 10px;display:flex}.preview-connection-proto{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;width:55px;padding:3px 4px;font-size:10px}.preview-connection-sep{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}.preview-connection-host{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);flex:1;min-width:80px;padding:4px 8px;font-size:11px}.preview-connection-port{width:60px;font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);text-align:center;-moz-appearance:textfield;padding:4px 8px;font-size:11px}.preview-connection-port::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.preview-connection-port::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.preview-connection-btn{border-radius:var(--radius-sm);background:var(--accent-cyan);color:#000;cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0;padding:4px 10px;font-size:10px;font-weight:600}.preview-connection-btn:hover{filter:brightness(1.1)}.preview-connection-btn.reload,.preview-connection-btn.home{background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border);padding:3px 8px;font-size:13px;line-height:1}.preview-connection-btn.reload:hover,.preview-connection-btn.home:hover{color:var(--text-primary);border-color:var(--text-muted)}.preview-connection-status{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:10px}.preview-connection-status.connected{color:var(--accent-green)}.preview-main-area{flex:1;min-height:0;display:flex;overflow:hidden}.preview-main-area>.preview-frame-container{flex:1;min-width:0}.preview-quality-select{border-radius:var(--radius-sm);font-size:10px;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-subtle);cursor:pointer;outline:none;flex-shrink:0;padding:2px 4px}.preview-quality-select:hover{color:var(--text-primary);border-color:var(--text-muted)}.preview-quality-select:focus{border-color:var(--accent-cyan)}.preview-devtools-toggle{border-radius:var(--radius-sm);font-size:10px;font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;flex-shrink:0;padding:3px 6px}.preview-devtools-toggle:hover{color:var(--text-primary)}.preview-devtools-toggle.active{color:var(--accent-cyan);border-color:var(--accent-cyan);background:#00c8c814}.preview-dialog-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.preview-dialog-modal,.preview-filechooser-modal{background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-direction:column;gap:10px;min-width:280px;max-width:400px;padding:16px 20px;display:flex;box-shadow:0 8px 32px #0006}.preview-dialog-type{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.preview-dialog-message{color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:200px;font-size:13px;overflow-y:auto}.preview-dialog-input{border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:var(--font-mono);outline:none;padding:6px 8px}.preview-dialog-input:focus{border-color:var(--accent-cyan)}.preview-dialog-buttons{justify-content:flex-end;gap:8px;display:flex}.preview-dialog-btn{border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);cursor:pointer;border:1px solid var(--border-default);transition:all var(--transition-fast);padding:5px 14px}.preview-dialog-btn.ok{background:var(--accent-cyan);color:var(--bg-surface-2);border-color:var(--accent-cyan)}.preview-dialog-btn.ok:hover{opacity:.85}.preview-dialog-btn.cancel{color:var(--text-muted);background:0 0}.preview-dialog-btn.cancel:hover{color:var(--text-primary);border-color:var(--text-muted)}.preview-filechooser-modal.dragging{border-color:var(--accent-cyan);background:#00c8c80d}.preview-filechooser-drop{border:2px dashed var(--border-default);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.preview-filechooser-modal.dragging .preview-filechooser-drop{border-color:var(--accent-cyan);color:var(--accent-cyan)}.preview-filechooser-or{text-align:center;color:var(--text-muted);font-size:11px}.preview-filechooser-status{text-align:center;color:var(--accent-cyan);padding:16px;font-size:13px}.preview-download-bar{z-index:90;flex-direction:column;gap:4px;max-width:360px;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.preview-download-notification{background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);align-items:center;gap:8px;padding:6px 10px;display:flex;box-shadow:0 4px 16px #0000004d}.preview-download-filename{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.preview-download-progress{color:var(--text-muted);font-size:11px}.preview-download-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:16px;line-height:1}.preview-download-dismiss:hover{color:var(--text-primary)}.preview-overlay-backdrop{z-index:99;position:absolute;inset:0}.preview-select-overlay{z-index:100;background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-direction:column;max-height:260px;display:flex;overflow:hidden;box-shadow:0 4px 16px #0006}.preview-select-search{border:none;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-primary);font-size:12px;font-family:var(--font-mono);outline:none;padding:6px 8px}.preview-select-list{flex:1;overflow-y:auto}.preview-select-optgroup{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:4px 8px 2px}.preview-select-option{color:var(--text-primary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:5px 10px;font-size:12px;overflow:hidden}.preview-select-option:hover{background:var(--bg-hover)}.preview-select-option.selected{color:var(--accent-cyan);background:#00c8c81f}.preview-select-option.disabled{color:var(--text-muted);cursor:default;opacity:.5}.preview-picker-overlay{z-index:100;background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:10px;display:flex;box-shadow:0 4px 16px #0006}.preview-picker-overlay input{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:var(--font-mono);padding:4px 6px}.preview-picker-buttons{justify-content:flex-end;gap:6px;display:flex}.preview-tooltip{z-index:110;background:var(--bg-surface-2);color:var(--text-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:11px;font-family:var(--font-mono);white-space:pre-wrap;pointer-events:none;max-width:300px;padding:4px 8px;box-shadow:0 2px 8px #0000004d}.preview-context-menu{z-index:100;background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);min-width:140px;padding:4px 0;box-shadow:0 4px 16px #0006}.preview-context-menu-item{color:var(--text-primary);cursor:pointer;white-space:nowrap;padding:5px 12px;font-size:12px}.preview-context-menu-item:hover{background:var(--bg-hover)}.preview-context-menu-separator{background:var(--border-subtle);height:1px;margin:3px 0}.preview-devtools-sidebar{border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;flex-shrink:0;display:flex;position:relative}.preview-devtools-resize-handle{cursor:col-resize;z-index:10;width:6px;position:absolute;top:0;bottom:0;left:-3px}.preview-devtools-resize-handle:hover{background:var(--accent-cyan);opacity:.4}.preview-devtools-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-2);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.preview-devtools-title{font-size:11px;font-weight:600;font-family:var(--font-mono);color:var(--text-secondary)}.preview-devtools-close{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:flex}.preview-devtools-close:hover{color:var(--text-primary);background:var(--bg-surface-3)}.preview-devtools-content{flex:1;min-height:0;overflow:hidden}.preview-devtools-iframe{border:none;width:100%;height:100%}.preview-devtools-error{color:var(--accent-red);font-size:12px;font-family:var(--font-mono);padding:16px}.preview-devtools-loading{color:var(--text-muted);padding:16px;font-size:12px}.overview-screen{height:100%;padding:24px;overflow-y:auto}.overview-header{margin-bottom:20px}.overview-title{margin-bottom:4px;font-size:20px;font-weight:700}.overview-subtitle{color:var(--text-muted);font-size:13px}.overview-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.overview-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-med);padding:16px;position:relative;overflow:hidden}.overview-card:hover{border-color:var(--border);transform:translateY(-1px);box-shadow:0 4px 20px #0000004d}.overview-card.has-attention{border-color:#fbbf244d}.overview-card.has-attention:before{content:"";background:var(--accent-amber);height:2px;position:absolute;top:0;left:0;right:0}.oc-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.oc-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.oc-dot.active{background:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.oc-dot.attention{background:var(--accent-amber);box-shadow:0 0 8px var(--accent-amber);animation:1.5s infinite pulse-dot}.oc-dot.open{background:var(--text-muted)}.oc-name{font-size:15px;font-weight:600}.oc-path{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:10px;font-size:11px;overflow:hidden}.oc-badges{gap:6px;margin-bottom:4px;display:flex}.oc-badges .badge{padding:3px 7px;font-size:10px}.oc-sessions{border-top:1px solid var(--border-subtle);margin-top:10px;padding-top:10px}.oc-session-line{align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.oc-session-dot{border-radius:50%;width:6px;height:6px}.oc-session-dot.live{background:var(--accent-green)}.oc-session-dot.waiting{background:var(--accent-amber);animation:1.5s infinite pulse-dot}.oc-session-dot.ended{background:var(--text-muted)}.oc-session-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text-secondary);flex:1;overflow:hidden}.oc-session-time{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}.modal-overlay{z-index:9999;background:#0009;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:8px;min-width:340px;max-width:440px;padding:20px 24px}.confirm-dialog-title{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:600}.confirm-dialog-message{color:var(--text-secondary);word-break:break-word;margin-bottom:20px;font-size:12px;line-height:1.5}.confirm-dialog-actions{justify-content:flex-end;gap:8px;display:flex}.confirm-dialog-btn{cursor:pointer;border:1px solid var(--border-subtle);border-radius:4px;padding:6px 16px;font-size:12px;font-weight:500;transition:background .15s}.confirm-dialog-btn.cancel{background:var(--bg-surface-3);color:var(--text-secondary)}.confirm-dialog-btn.cancel:hover{background:var(--bg-surface-4)}.confirm-dialog-btn.danger{background:var(--accent-red);color:#fff;border-color:var(--accent-red)}.confirm-dialog-btn.danger:hover{opacity:.85}.confirm-dialog-btn.primary{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.confirm-dialog-btn.primary:hover{opacity:.85}.confirm-dialog-btn:disabled{opacity:.4;cursor:default}.confirm-dialog-btn.secondary{background:var(--bg-surface-3);color:var(--text-primary)}.confirm-dialog-btn.secondary:hover{background:var(--bg-surface-4)}.session-switch-details{background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:12px;padding:10px}.session-switch-uuid{color:var(--text-muted);margin-bottom:8px;font-size:12px}.session-switch-uuid code{word-break:break-all;font-size:11px}.session-switch-prompt{font-size:13px}.session-switch-prompt pre{background:var(--bg-surface-2);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;max-height:200px;margin:6px 0 0;padding:8px;font-size:12px;overflow-y:auto}.session-switch-actions{gap:8px}.session-switch-modal{max-width:520px}.input-dialog-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:13px;font-family:var(--font-mono);outline:none;margin-bottom:16px;padding:8px 12px}.input-dialog-input:focus{border-color:var(--accent-blue)}.input-dialog-textarea{resize:vertical;min-height:60px;max-height:200px;line-height:1.5}.worktree-form{margin-bottom:16px}.worktree-label{display:block}.worktree-label-text{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px;display:block}.worktree-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);gap:0;display:flex;overflow:hidden}.worktree-toggle-btn{background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border:none;flex:1;padding:5px 12px;font-size:12px;transition:all .15s}.worktree-toggle-btn.active{background:var(--accent-blue);color:#fff}.worktree-toggle-btn:not(.active):hover{background:var(--bg-surface-3)}.worktree-default-path{font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;margin-bottom:12px;padding:6px 10px;font-size:11px;overflow:hidden}.session-loading-overlay{background:var(--bg-surface-2);z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.15s fade-in;display:flex;position:absolute;inset:0}.session-loading-overlay .spinner{border:3px solid var(--border);border-top-color:var(--accent-purple);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.session-loading-overlay .spinner-label{color:var(--text-muted);font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:420px;max-width:90%;padding:24px;animation:.2s modal-in}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-title{margin-bottom:16px;font-size:16px;font-weight:600}.modal-field{margin-bottom:12px}.modal-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px;display:block}.modal-field input,.modal-field select{width:100%;padding:8px 12px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.modal-btn{border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:7px 16px;font-weight:500}.modal-btn.cancel{background:var(--bg-surface-3)}.modal-btn.cancel:hover{background:var(--bg-hover)}.modal-btn.confirm{background:var(--accent-blue);color:#fff}.modal-btn.confirm:hover{filter:brightness(1.1)}.modal-btn.danger{background:var(--accent-red);color:#fff}.modal-btn.danger:hover{filter:brightness(1.1)}.remote-list{max-height:240px;margin-bottom:12px;overflow-y:auto}.remote-item{border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:8px;padding:8px 10px;display:flex}.remote-item:hover{background:var(--bg-surface-2)}.remote-item-icon{color:var(--accent-purple);text-align:center;flex-shrink:0;width:20px;font-size:14px}.remote-item-info{flex:1;min-width:0}.remote-item-name{color:var(--text-primary);font-size:12px;font-weight:600}.remote-item-url{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.remote-item-actions{flex-shrink:0;gap:4px;display:flex}.remote-action-btn{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-muted);transition:all var(--transition-fast);cursor:pointer;justify-content:center;align-items:center;font-size:12px;display:flex}.remote-action-btn:hover{background:var(--bg-surface-3);color:var(--text-primary)}.remote-action-btn.delete:hover{color:var(--accent-red)}.remote-empty{text-align:center;color:var(--text-muted);padding:20px 0;font-size:12px}.remote-add-form{background:var(--bg-surface-2);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding:10px;display:flex}.remote-add-row{gap:6px;display:flex}.remote-add-row input{flex:1;padding:6px 10px;font-size:11px}.remote-add-row input:first-child{max-width:100px}.remote-sep{border:none;border-top:1px solid var(--border-subtle);margin:6px 0}.add-menu{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);z-index:50;min-width:200px;margin-top:4px;animation:.15s menu-in;display:none;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 8px 30px #0006}.add-menu.visible{display:block}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.add-menu-item{cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:10px 14px;display:flex}.add-menu-item:hover{background:var(--bg-surface-3)}.add-menu-item+.add-menu-item{border-top:1px solid var(--border-subtle)}.add-menu-icon{text-align:center;width:24px;color:var(--accent-blue);flex-shrink:0;font-size:16px}.add-menu-label{font-size:12px;font-weight:500}.add-menu-desc{color:var(--text-muted);margin-top:1px;font-size:10px}.modal-toggle-row{gap:8px;margin-bottom:16px;display:flex}.modal-toggle-pill{border-radius:var(--radius-md);background:var(--bg-surface-2);border:1px solid var(--border);cursor:pointer;transition:all var(--transition-fast);text-align:center;flex:1;padding:10px 12px}.modal-toggle-pill:hover{border-color:var(--accent-blue-dim);background:var(--bg-surface-3)}.modal-toggle-pill.active{border-color:var(--accent-blue);background:#5b8af514}.modal-toggle-pill .toggle-icon{margin-bottom:4px;font-size:18px;display:block}.modal-toggle-pill .toggle-label{font-size:12px;font-weight:600}.modal-toggle-pill .toggle-desc{color:var(--text-muted);margin-top:2px;font-size:10px}.modal-toggle-pill.active .toggle-label{color:var(--accent-blue)}.agent-picker-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:200px;max-width:90%;padding:0;animation:.2s modal-in}.agent-picker-modal .modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.agent-picker-modal .modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.agent-picker-modal .modal-close:hover{color:var(--text-primary)}.agent-picker-grid{flex-wrap:wrap;justify-content:center;gap:12px;padding:16px;display:flex}.agent-picker-btn{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;width:90px;height:90px;transition:all var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px 4px;display:flex}.agent-picker-btn:hover{border-color:var(--accent-blue);background:#5b8af514}.agent-picker-icon{object-fit:contain;border-radius:4px;width:32px;height:32px}.agent-picker-name{color:var(--text-primary);text-align:center;font-size:10px;font-weight:600;line-height:1.2}.agent-picker-mode{color:var(--text-muted);text-align:center;font-size:9px;line-height:1.2}.agent-picker-btn-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.agent-picker-coming-soon{color:var(--text-muted);text-align:center;font-size:8px;font-style:italic;line-height:1.2}.agent-picker-loading{color:var(--text-muted);padding:20px;font-size:12px}.git-toggle-row{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.git-toggle-label-group{flex-direction:column;display:flex}.git-toggle-main{font-size:12px;font-weight:500}.git-toggle-sub{color:var(--text-muted);margin-top:1px;font-size:10px}.toggle-switch{cursor:pointer;flex-shrink:0;width:36px;height:20px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-track{background:var(--bg-surface-3);border:1px solid var(--border);transition:all var(--transition-fast);border-radius:10px;position:absolute;inset:0}.toggle-switch input:checked+.toggle-track{background:var(--accent-blue);border-color:var(--accent-blue)}.toggle-thumb{width:14px;height:14px;transition:transform var(--transition-fast);pointer-events:none;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle-switch input:checked~.toggle-thumb{transform:translate(16px)}.remote-url-field{opacity:0;max-height:0;margin-top:0;transition:max-height .2s,opacity .15s,margin .2s;overflow:hidden}.remote-url-field.visible{opacity:1;max-height:80px;margin-top:10px}.folder-browser{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface-2);max-height:200px;margin-top:6px;overflow-y:auto}.folder-browser-bar{border-bottom:1px solid var(--border);background:var(--bg-surface-3);color:var(--text-muted);z-index:1;align-items:center;gap:4px;padding:6px 8px;font-size:11px;display:flex;position:sticky;top:0}.folder-browser-bar button{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;padding:2px 6px;font-family:inherit;font-size:11px}.folder-browser-bar button:hover{background:var(--bg-surface-3);color:var(--text-primary)}.folder-browser-path{text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:JetBrains Mono,monospace;overflow:hidden}.folder-browser-list{padding:2px 0}.folder-browser-item{cursor:pointer;color:var(--text-secondary);transition:background var(--transition-fast);align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex}.folder-browser-item:hover{background:var(--bg-surface-3);color:var(--text-primary)}.folder-browser-item.selected{background:var(--accent-blue-dim);color:var(--accent-blue)}.folder-browser-icon{opacity:.7;flex-shrink:0;font-size:13px}.folder-browser-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.folder-browser-empty{text-align:center;color:var(--text-muted);padding:12px;font-size:11px}.folder-browser-new{font-size:14px;font-weight:700}.folder-browser-new-row{border-bottom:1px solid var(--border-subtle);gap:6px;padding:4px 8px;display:flex}.folder-browser-new-input{font-size:11px;font-family:var(--font-mono);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;flex:1;padding:4px 8px}.folder-browser-new-input:focus{border-color:var(--accent-blue)}.folder-browser-new-ok{background:var(--accent-blue);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:4px 10px;font-size:11px}.modal-path-row{align-items:center;gap:6px;display:flex}.modal-path-row input{flex:1}.modal-browse-btn{background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);padding:8px 12px;font-family:inherit;font-size:12px}.modal-browse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toast-container{z-index:200;flex-direction:column;gap:6px;display:flex;position:fixed;top:12px;right:12px}.toast{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:10px;max-width:340px;padding:10px 14px;font-size:12px;animation:.3s toast-in;display:flex;box-shadow:0 8px 30px #0006}@keyframes toast-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast.attention{border-left:3px solid var(--accent-amber)}.toast.info{border-left:3px solid var(--accent-blue)}.toast.success{border-left:3px solid var(--accent-green)}.toast-project{font-weight:600}.toast-message{color:var(--text-secondary)}.resize-handle{z-index:5;position:absolute}.resize-handle-h{cursor:col-resize;width:4px;top:0;bottom:0}.resize-handle-v{cursor:row-resize;height:4px;left:0;right:0}.resize-handle:hover{background:var(--accent-blue);opacity:.5}.hidden{display:none!important}.fade-text{color:var(--text-muted)}.empty-state{height:100%;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex}.empty-state-icon{opacity:.3;margin-bottom:4px;font-size:32px}.empty-state-title{color:var(--text-secondary);font-size:14px;font-weight:600}.empty-state-desc{max-width:240px;font-size:12px}.start-page{z-index:1000;background:var(--bg-base);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.start-page-inner{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:600px;padding:40px;display:flex}.start-logo{font-family:var(--font-mono);color:var(--accent-blue);letter-spacing:4px;font-size:48px;font-weight:700}.start-subtitle{color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:24px;font-size:14px}.start-label{color:var(--text-secondary);margin-bottom:8px;font-size:16px;font-weight:600}.start-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;width:100%;display:grid}.start-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);padding:20px}.start-card:hover{border-color:var(--accent-blue);background:var(--bg-surface-2)}.start-card-name{color:var(--text-primary);margin-bottom:4px;font-size:15px;font-weight:600}.start-card-count{color:var(--text-muted);font-size:12px}.start-new-btn{background:var(--bg-surface-2);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);margin-top:12px;padding:10px 24px;font-size:13px}.start-new-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.env-selector{margin-right:8px;position:relative}.env-selector-btn{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:12px;font-family:var(--font-sans);transition:border-color var(--transition-fast);align-items:center;gap:6px;padding:4px 10px;display:flex}.env-selector-btn:hover{border-color:var(--accent-blue)}.env-selector-arrow{color:var(--text-muted);font-size:10px}.env-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);z-index:100;min-width:200px;margin-top:4px;display:none;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 8px 24px #0006}.env-dropdown.visible{display:block}.env-dropdown-list{max-height:240px;overflow-y:auto}.env-dropdown-item{cursor:pointer;color:var(--text-primary);transition:background var(--transition-fast);align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.env-dropdown-item:hover{background:var(--bg-hover)}.env-dropdown-item.active{background:var(--bg-surface-3);color:var(--accent-blue)}.env-dropdown-sep{background:var(--border);height:1px;margin:2px 0}.env-dropdown-icon{text-align:center;width:16px;color:var(--text-muted)}.env-dropdown-new{color:var(--text-secondary)}.env-dropdown-new:hover{color:var(--accent-blue)}.env-dropdown-count{color:var(--text-muted);margin-left:auto;font-size:11px}.connect-env-list,.connect-proj-list{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-base);max-height:240px;overflow-y:auto}.connect-item{cursor:pointer;border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);padding:10px 14px}.connect-item:last-child{border-bottom:none}.connect-item:hover{background:var(--bg-hover)}.connect-item-name{color:var(--text-primary);font-weight:500}.connect-item-sub{color:var(--text-muted);margin-top:2px;font-size:11px}.connect-back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:4px 0;font-size:12px}.connect-back:hover{color:var(--accent-blue)}.device-status-bar{color:#fff;pointer-events:none;z-index:17;justify-content:space-between;align-items:flex-start;font-family:system-ui,-apple-system,sans-serif;display:flex;position:absolute;top:0;left:0;right:0}.device-status-bar svg{display:block}.preview-mockup-toolbar{border-bottom:1px solid var(--border-subtle);color:var(--text-muted);align-items:center;gap:6px;padding:4px 10px;font-size:10px;display:flex}.preview-mockup-toolbar label{align-items:center;gap:3px;display:inline-flex}.preview-mockup-toolbar input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:20px;height:20px;padding:0}.preview-mockup-toolbar input[type=checkbox]{margin:0}.preview-mockup-toolbar select{border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);color:var(--text-secondary);padding:2px 4px;font-size:10px}.preview-mockup-size-input{text-align:center;border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);width:32px;color:var(--text-secondary);font-size:10px;font-family:var(--font-mono);padding:2px 4px}.preview-mockup-header{cursor:text;text-align:center;-webkit-user-select:none;user-select:none;text-shadow:0 2px 8px #0000004d;white-space:nowrap;padding:0 20px}.preview-mockup-header-input{text-align:center;text-shadow:0 2px 8px #0000004d;background:0 0;border:none;border-bottom:2px solid #fff6;outline:none;font-weight:700}.auth-loading{height:100vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.auth-page{background:var(--bg-base);justify-content:center;align-items:center;height:100vh;display:flex}.auth-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:360px;max-width:90vw;padding:32px 36px}.auth-title{color:var(--text-primary);text-align:center;margin-bottom:4px;font-size:22px;font-weight:700}.auth-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:20px;font-size:13px;line-height:1.4}.auth-field{margin-bottom:12px}.auth-field input,.settings-form input,.settings-form select{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);box-sizing:border-box;outline:none;padding:9px 12px;font-size:13px}.auth-field input:focus,.settings-form input:focus,.settings-form select:focus{border-color:var(--accent-blue)}.auth-btn{background:var(--accent-blue);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;margin-top:8px;padding:10px;font-size:13px;font-weight:600;transition:opacity .15s}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn-secondary{background:var(--bg-surface-3);border:1px solid var(--border)}.auth-btn-danger{background:var(--accent-red)}.auth-btn-small{width:auto;margin-top:4px;padding:6px 14px}.auth-divider{color:var(--text-muted);align-items:center;gap:12px;margin:16px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-error{color:var(--accent-red);background:var(--accent-red-dim);border-radius:var(--radius-sm);margin:6px 0;padding:6px 10px;font-size:12px}.auth-success{color:var(--accent-green);background:var(--accent-green-dim);border-radius:var(--radius-sm);margin:6px 0;padding:6px 10px;font-size:12px}.user-menu{position:relative}.user-menu-trigger{cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0}.user-avatar{background:var(--accent-blue-dim);width:28px;height:28px;color:var(--accent-blue);border:1px solid var(--accent-blue);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.user-menu-dropdown{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);z-index:10000;min-width:200px;padding:4px 0;position:absolute;top:36px;right:0;box-shadow:0 8px 24px #0006}.user-menu-header{padding:10px 14px}.user-menu-name{color:var(--text-primary);font-size:13px;font-weight:600}.user-menu-role{color:var(--text-muted);text-transform:capitalize;font-size:11px}.user-menu-divider{background:var(--border);height:1px;margin:4px 0}.user-menu-item{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:13px;display:block}.user-menu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.user-menu-logout,.user-menu-logout:hover{color:var(--accent-red)}.modal.settings-modal{flex-direction:column;width:560px;max-height:80vh;padding:0;display:flex}.modal.settings-modal .modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal.settings-modal .modal-header h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.modal.settings-modal .modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.modal.settings-modal .modal-close:hover{color:var(--text-primary)}.modal.settings-modal .modal-body{padding:16px 20px;overflow-y:auto}.settings-section{margin-bottom:20px}.settings-section h3{color:var(--text-primary);margin-bottom:10px;font-size:13px;font-weight:600}.settings-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.settings-section-header h3{margin-bottom:0}.settings-info{color:var(--text-secondary);margin-bottom:12px;font-size:12px;line-height:1.5}.settings-form{flex-direction:column;gap:10px;margin-top:8px;display:flex}.settings-form-actions{justify-content:flex-end;gap:8px;display:flex}.settings-form-inline{flex-direction:row;align-items:center}.settings-form-inline select{flex:1}.settings-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:16px;display:flex}.settings-tabs button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;font-size:12px;font-weight:500;transition:all .15s}.settings-tabs button.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.settings-tabs button:hover:not(:disabled){color:var(--text-primary)}.settings-tabs button:disabled{opacity:.35;cursor:not-allowed}.totp-qr{border-radius:var(--radius-md);background:#fff;width:200px;height:200px;margin:12px auto;padding:8px;display:block}.users-table{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:12px}.users-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);padding:8px 10px;font-weight:600}.users-table td{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding:8px 10px}.role-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.role-admin{background:var(--accent-purple-dim);color:var(--accent-purple)}.role-basic{background:var(--accent-blue-dim);color:var(--accent-blue)}.mfa-badge{background:var(--accent-green-dim);color:var(--accent-green);border-radius:8px;margin-right:4px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.mfa-none{color:var(--text-muted)}.user-actions{flex-wrap:wrap;gap:4px;display:flex}.action-btn{border-radius:var(--radius-sm);background:var(--bg-surface-3);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;padding:3px 8px;font-size:11px}.action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.action-btn-danger{color:var(--accent-red)}.action-btn-danger:hover{background:var(--accent-red-dim);color:var(--accent-red)}.container-manager{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:calc(100vw - 48px);max-width:1600px;height:calc(100vh - 48px);animation:.15s ease-out modal-in;display:flex;overflow:hidden}.container-manager-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;padding:12px 16px;display:flex}.container-manager-header h2{color:var(--text-primary);white-space:nowrap;margin:0;font-size:15px;font-weight:600}.container-manager-tabs{background:var(--bg-surface-2);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.container-manager-tab{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:5px 14px;font-size:12px;font-weight:500}.container-manager-tab:hover:not(.disabled){background:var(--bg-surface-3);color:var(--text-primary)}.container-manager-tab.active{background:var(--accent-blue);color:#fff}.container-manager-tab.disabled{opacity:.35;cursor:not-allowed;pointer-events:auto}.container-manager-refresh{border:1px solid var(--border);background:var(--bg-surface-2);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:4px 8px;font-size:14px}.container-manager-refresh:hover{background:var(--bg-surface-3);color:var(--text-primary)}.container-manager-subtabs{border-bottom:1px solid var(--border);flex-shrink:0;gap:0;padding:0 16px;display:flex}.container-manager-subtab{color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;font-size:12px;font-weight:500}.container-manager-subtab:hover{color:var(--text-primary);background:var(--bg-surface-2)}.container-manager-subtab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.container-manager-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.container-manager-content{flex:1;min-height:0;padding:0;overflow-y:auto}.container-manager-body.has-bottom .container-manager-content{flex:.6}.container-manager-bottom{border-top:1px solid var(--border);flex-direction:column;flex:.4;min-height:150px;display:flex}.container-manager-bottom-header{background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.container-manager-bottom-title{color:var(--text-secondary);font-size:12px;font-weight:500}.container-manager-bottom-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.container-manager-bottom-close:hover{color:var(--text-primary)}.container-manager-bottom-content{flex:1;min-height:0;overflow:hidden}.container-manager-empty,.container-manager-error{text-align:center;padding:24px;font-size:13px}.container-manager-empty{color:var(--text-muted)}.container-manager-error{color:var(--accent-red)}.container-table{border-collapse:collapse;width:100%;font-size:12px}.container-table thead{z-index:1;position:sticky;top:0}.container-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-surface-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:500}.container-table td{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);text-overflow:ellipsis;white-space:nowrap;max-width:300px;padding:7px 12px;overflow:hidden}.container-table tr:hover td{background:var(--bg-surface-2)}.container-name-cell{color:var(--text-primary);font-weight:500}.container-id-cell{font-family:JetBrains Mono,monospace;font-size:11px}.container-image-cell{max-width:200px}.container-ports-cell{max-width:180px;font-size:11px}.container-created-cell{color:var(--text-muted);font-size:11px}.container-mount-cell{max-width:250px;font-family:JetBrains Mono,monospace;font-size:11px}.container-config-cell{max-width:300px;font-size:11px}.container-status{border-radius:var(--radius-sm);padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.container-status-running{color:var(--accent-green);background:#4ade8026}.container-status-stopped{color:var(--accent-red);background:#f8717126}.container-status-paused{color:var(--accent-amber);background:#fbbf2426}.container-actions-cell{white-space:nowrap;align-items:center;gap:2px;display:flex}.container-action-btn{border:1px solid var(--border);background:var(--bg-surface-2);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:3px 6px;font-size:11px;line-height:1}.container-action-btn:hover:not(:disabled){background:var(--bg-surface-3);color:var(--text-primary)}.container-action-btn:disabled{opacity:.35;cursor:not-allowed}.container-action-btn.danger{color:var(--accent-red)}.container-action-btn.danger:hover:not(:disabled){background:#f8717126}.container-inspect-json{background:var(--bg-base);color:var(--text-secondary);border-radius:var(--radius-sm);max-height:300px;margin:0;padding:12px;font-family:JetBrains Mono,monospace;font-size:11px;overflow:auto}.container-terminal{width:100%;height:100%;overflow:hidden}.container-stats{height:100%;padding:12px;overflow-y:auto}.container-stats-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.container-stats-card{background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px}.container-stats-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;font-size:10px}.container-stats-value{color:var(--text-primary);margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:16px;font-weight:600}.container-stats-sublabel{color:var(--text-muted);margin-top:4px;font-size:11px}.container-stats-bar{background:var(--bg-surface-3);border-radius:2px;height:4px;overflow:hidden}.container-stats-bar-fill{border-radius:2px;height:100%;transition:width .5s}.container-stats-bar-fill.cpu{background:var(--accent-blue)}.container-stats-bar-fill.memory{background:var(--accent-amber)}.container-stats-loading,.container-stats-error{text-align:center;padding:16px;font-size:12px}.container-stats-loading{color:var(--text-muted)}.container-stats-error{color:var(--accent-red)}.mobile-app{background:var(--bg-base);flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.mobile-topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;min-height:52px;padding:10px 16px;display:flex}.mobile-topbar-left{align-items:center;gap:10px;display:flex}.mobile-topbar-right{align-items:center;gap:8px;display:flex}.mobile-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:6px;display:flex}.mobile-hamburger span{background:var(--text-secondary);border-radius:1px;width:20px;height:2px;transition:all .3s;display:block}.mobile-hamburger.active span:first-child{transform:rotate(45deg)translate(5px,5px)}.mobile-hamburger.active span:nth-child(2){opacity:0}.mobile-hamburger.active span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}.mobile-logo{align-items:center;gap:8px;display:flex}.mobile-logo-icon{width:28px;height:28px}.mobile-logo-text{font-family:var(--font-mono);color:var(--text-primary);letter-spacing:-.5px;font-size:14px;font-weight:700}.mobile-logo-a{color:var(--accent-green)}.mobile-logo-sub{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;font-size:9px;font-weight:400}.mobile-topbar-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface-2);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.mobile-topbar-btn:active{background:var(--bg-surface-3)}.mobile-badge{background:var(--accent-red);color:#fff;border:2px solid var(--bg-surface);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-3px;right:-3px}.mobile-avatar{background:linear-gradient(135deg, var(--accent-green), var(--accent-blue));width:32px;height:32px;color:var(--bg-base);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.mobile-context-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);scrollbar-width:none;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex;overflow-x:auto}.mobile-context-bar::-webkit-scrollbar{display:none}.mobile-ctx-chip{background:var(--bg-surface-2);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;cursor:pointer;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.mobile-ctx-chip.active{border-color:var(--accent-green);color:var(--accent-green);background:var(--accent-green-dim)}.mobile-ctx-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.mobile-ctx-dot.status-active{background:var(--accent-green);box-shadow:0 0 6px #4ade8080}.mobile-ctx-dot.status-attention{background:var(--accent-amber)}.mobile-ctx-dot.status-open{background:var(--text-muted)}.mobile-main{flex:1;position:relative;overflow:hidden}.mobile-view{-webkit-overflow-scrolling:touch;padding:12px 16px 20px;position:absolute;inset:0;overflow:hidden auto}.mobile-view-active{animation:.2s mobile-fadeUp}@keyframes mobile-fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mobile-section-hdr{justify-content:space-between;align-items:center;margin-top:16px;margin-bottom:10px;display:flex}.mobile-section-hdr:first-child{margin-top:0}.mobile-section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);font-size:11px;font-weight:600}.mobile-section-action{color:var(--accent-green);cursor:pointer;font-size:11px;font-family:var(--font-sans);background:0 0;border:none}.mobile-stats-row{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;display:grid}.mobile-stat-card{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;padding:12px 10px}.mobile-stat-val{font-family:var(--font-mono);font-size:22px;font-weight:700;line-height:1}.mobile-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:10px}.mobile-list-item{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.mobile-list-item:active{border-color:var(--bg-hover)}.mobile-li-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.mobile-li-body{flex:1;min-width:0}.mobile-li-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.mobile-li-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.mobile-li-right{text-align:right;flex-shrink:0}.mobile-li-val{font-family:var(--font-mono);font-size:12px;font-weight:600}.mobile-li-unit{color:var(--text-muted);font-size:10px}.mobile-status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.mobile-status-dot.green{background:var(--accent-green);box-shadow:0 0 6px #4ade8080}.mobile-status-dot.red{background:var(--accent-red)}.mobile-status-dot.amber{background:var(--accent-amber)}.mobile-status-dot.blue{background:var(--accent-blue)}.mobile-tag{font-family:var(--font-mono);white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:10px}.mobile-tag.tag-green{background:var(--accent-green-dim);color:var(--accent-green)}.mobile-tag.tag-amber{background:var(--accent-amber-dim);color:var(--accent-amber)}.mobile-tag.tag-red{background:var(--accent-red-dim);color:var(--accent-red)}.mobile-tag.tag-blue{color:var(--accent-blue);background:#5b8af526}.mobile-tag.tag-purple{background:var(--accent-purple-dim);color:var(--accent-purple)}.mobile-tag.tag-muted{background:var(--bg-surface-3);color:var(--text-muted)}.mobile-proxy-row{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);font-family:var(--font-mono);align-items:center;gap:10px;margin-bottom:8px;padding:10px 14px;font-size:11px;display:flex}.mobile-proxy-method{background:var(--accent-green-dim);color:var(--accent-green);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700}.mobile-proxy-route{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mobile-proxy-target{color:var(--text-muted);font-size:10px}.mobile-quick-actions{flex-wrap:wrap;gap:8px;display:flex}.mobile-quick-btn{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--accent-green);font-size:12px;font-family:var(--font-sans);cursor:pointer;padding:8px 16px}.mobile-quick-btn:active{background:var(--bg-surface-3)}.mobile-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.mobile-empty-icon{margin-bottom:12px;font-size:32px}.mobile-empty-title{color:var(--text-primary);font-size:14px;font-weight:600}.mobile-empty-desc{color:var(--text-muted);margin-top:4px;font-size:12px}.mobile-bottom-nav{background:var(--bg-surface);border-top:1px solid var(--border);padding:6px 0;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));z-index:100;flex-shrink:0;justify-content:space-around;align-items:center;display:flex}.mobile-nav-item{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;display:flex;position:relative}.mobile-nav-icon{color:var(--text-muted);align-items:center;height:24px;font-size:20px;transition:color .15s;display:flex;position:relative}.mobile-nav-label{font-size:9px;font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;transition:color .15s}.mobile-nav-item.active .mobile-nav-icon,.mobile-nav-item.active .mobile-nav-label{color:var(--accent-green)}.mobile-nav-item.active:after{content:"";background:var(--accent-green);border-radius:0 0 2px 2px;width:20px;height:2px;position:absolute;top:-7px}.mobile-nav-badge{background:var(--accent-red);color:#fff;border:2px solid var(--bg-surface);border-radius:50%;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 3px;font-size:8px;font-weight:700;display:flex;position:absolute;top:-6px;right:-10px}.mobile-drawer-overlay{z-index:200;opacity:0;pointer-events:none;background:#0009;transition:opacity .25s;position:fixed;inset:0}.mobile-drawer-overlay.open{opacity:1;pointer-events:auto}.mobile-drawer{background:var(--bg-surface);border-right:1px solid var(--border);z-index:201;-webkit-overflow-scrolling:touch;flex-direction:column;width:280px;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-header{border-bottom:1px solid var(--border);padding:16px}.mobile-drawer-user{align-items:center;gap:10px;display:flex}.mobile-drawer-avatar{background:linear-gradient(135deg, var(--accent-green), var(--accent-blue));width:40px;height:40px;color:var(--bg-base);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.mobile-drawer-name{font-size:14px;font-weight:600}.mobile-drawer-role{color:var(--text-muted);font-size:11px}.mobile-drawer-section{border-bottom:1px solid var(--border);padding:12px 16px}.mobile-drawer-section-title{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px;font-size:10px}.mobile-drawer-item{border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.mobile-drawer-item:active{background:var(--bg-surface-3)}.mobile-drawer-item.active{background:var(--accent-green-dim);color:var(--accent-green)}.mobile-drawer-item.nested{padding-left:28px}.mobile-drawer-item-icon{text-align:center;width:20px;font-size:15px}.mobile-drawer-item-count{font-family:var(--font-mono);color:var(--text-muted);margin-left:auto;font-size:10px}.mobile-drawer-danger{color:var(--accent-red)}.mobile-sheet-overlay{z-index:300;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s;position:fixed;inset:0}.mobile-sheet-overlay.open{opacity:1;pointer-events:auto}.mobile-sheet{background:var(--bg-surface);border-top:1px solid var(--border);z-index:301;-webkit-overflow-scrolling:touch;max-height:85vh;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:16px 16px 0 0;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.mobile-sheet.open{transform:translateY(0)}.mobile-sheet-handle{background:var(--bg-hover);border-radius:2px;width:36px;height:4px;margin:10px auto}.mobile-sheet-content{padding:0 16px 20px}.mobile-sheet-title{margin-bottom:12px;font-size:16px;font-weight:700}.mobile-sheet-actions{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.mobile-sheet-action-btn{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);flex-direction:column;align-items:center;gap:4px;padding:12px 8px;font-size:11px;display:flex}.mobile-sheet-action-btn:active{background:var(--bg-surface-3)}.mobile-sheet-action-icon{font-size:20px}.mobile-sheet-action-danger{color:var(--accent-red)}.mobile-sheet-details{margin-top:12px}.mobile-sheet-detail-title{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px;font-size:11px}.mobile-sheet-detail-grid{font-family:var(--font-mono);color:var(--text-secondary);grid-template-columns:auto 1fr;gap:4px 12px;font-size:11px;line-height:2;display:grid}.mobile-sheet-detail-label{color:var(--text-muted)}.mobile-agent-card{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;margin-bottom:10px;padding:14px;transition:border-color .15s}.mobile-agent-card:active{border-color:var(--bg-hover)}.mobile-agent-card-row{align-items:center;gap:10px;display:flex}.mobile-agent-card-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.mobile-agent-card-body{flex:1;min-width:0}.mobile-agent-card-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.mobile-agent-card-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.mobile-agent-card-meta{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.mobile-agent-card-chevron{color:var(--text-muted);flex-shrink:0;font-size:16px}.mobile-agents-chat{flex-direction:column;height:100%;display:flex}.mobile-agents-chat-header{flex-shrink:0;align-items:center;gap:10px;margin-bottom:8px;display:flex}.mobile-back-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:18px}.mobile-agents-chat-title{flex:1;font-size:14px;font-weight:600}.mobile-agent-mode-bar{flex-shrink:0;gap:4px;margin-bottom:8px;display:flex}.mobile-mode-btn{border:1px solid var(--border);background:var(--bg-surface-2);color:var(--text-muted);cursor:pointer;font-size:11px;font-family:var(--font-sans);border-radius:6px;padding:4px 12px}.mobile-mode-btn.active{background:var(--accent-green-dim);color:var(--accent-green);border-color:var(--accent-green)}.mobile-agents-chat-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:hidden auto}.mobile-tui-view{height:100%;min-height:200px}.mobile-sessions-panel .session-panel-item{margin-bottom:8px}.mobile-files{flex-direction:column;gap:12px;display:flex}.mobile-files-editor{border-top:1px solid var(--border);min-height:300px;padding-top:8px}.mobile-terminal-tabs{gap:4px;margin-bottom:8px;display:flex}.mobile-term-tab{background:var(--bg-surface-3);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;border-bottom:none;border-radius:6px 6px 0 0;padding:6px 14px;font-size:10px}.mobile-term-tab.active{color:var(--accent-green);background:#000}.mobile-terminal-output{border:1px solid var(--border);border-radius:var(--radius-lg);background:#000;min-height:calc(100dvh - 260px);overflow:auto}.mobile-app .left-panel,.mobile-app .file-tree-container{width:100%!important;max-width:100%!important}.mobile-app .git-panel{width:100%!important;max-width:100%!important;height:auto!important}.mobile-app .chat-area{padding:0}.mobile-app .chat-input-container{padding:8px 0}.mobile-app .chat-msg{max-width:92%}.mobile-app .editor-container{height:300px;min-height:200px}.mobile-app .editor-tabs-bar{scrollbar-width:none;overflow-x:auto}.mobile-app .editor-tabs-bar::-webkit-scrollbar{display:none}.mobile-app .sessions-container{padding:0}.mobile-app .panel-vsplit,.mobile-app .sidebar-vsplit,.mobile-app .lp-splitter,.mobile-app .editor-splitter{display:none!important}.mobile-app .modal-overlay .modal-content,.mobile-app .container-manager-modal{width:95vw!important;max-width:95vw!important;max-height:90vh!important;margin:5vh auto!important}.workspace.layout-carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:2px;height:100%;display:flex;overflow:auto hidden}.workspace.layout-carousel::-webkit-scrollbar{display:none}.workspace.layout-carousel{scrollbar-width:none}.carousel-slide{scroll-snap-align:center;border-right:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;flex:none;height:100%;display:flex;position:relative;overflow:hidden}.carousel-slide:last-child{border-right:none}.carousel-slide-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);white-space:nowrap;flex:none;padding:4px 12px;font-size:10px;font-weight:600}.carousel-slide.slide-explorer-editor{scroll-snap-align:start;width:clamp(600px,55vw,1000px)}.carousel-slide.slide-sessions{width:clamp(500px,50vw,900px)}.carousel-slide.slide-terminals{width:clamp(400px,40vw,750px)}.carousel-slide.slide-preview{scroll-snap-align:end;width:clamp(500px,100% - 80px,1400px)}.carousel-explorer-editor{flex:auto;min-height:0;display:flex;overflow:hidden}.carousel-explorer-pane{border-right:1px solid var(--border-subtle);flex-direction:column;flex:0 0 240px;display:flex;overflow:hidden}.carousel-explorer-pane .file-tree,.carousel-explorer-pane .git-history{flex:50%;min-height:0}.carousel-editor-pane{flex:auto;min-height:0;overflow:hidden}.carousel-editor-pane .editor-area{flex:auto;height:100%!important}.carousel-sessions-layout{flex:auto;min-height:0;display:flex;overflow:hidden}.carousel-agents-col{flex-direction:column;flex:auto;min-width:0;display:flex;overflow:hidden}.carousel-panels-col{border-left:1px solid var(--border-subtle);background:var(--bg-surface);flex-direction:column;flex:0 0 280px;display:flex;overflow:hidden}.carousel-panels-col .rp-header{flex:none}.carousel-panels-col .sessions-panel,.carousel-panels-col .github-panel{flex:auto;min-height:0;overflow-y:auto}.carousel-agents-header,.carousel-terminals-header{background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);flex:none;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.carousel-area-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:600}.carousel-single-agent,.carousel-single-terminal{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.carousel-agent-tab{color:var(--text-secondary);background:var(--bg-surface-3);border-bottom:1px solid var(--border-subtle);flex:none;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.carousel-tui-view,.carousel-terminal-view{flex:auto;min-height:0;overflow:hidden}.vcarousel-layout{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.vcarousel-stack{flex-direction:column;flex:none;display:flex}.vcarousel-stack-top{border-bottom:1px solid var(--border)}.vcarousel-stack-bottom{border-top:1px solid var(--border)}.vcarousel-tab{color:var(--text-muted);background:var(--bg-surface-2);border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;text-align:left;transition:all var(--transition-fast);align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-size:11px;display:flex}.vcarousel-tab:last-child{border-bottom:none}.vcarousel-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.vcarousel-tab-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.vcarousel-layout .tab-dot,.carousel-single-agent .tab-dot,.carousel-single-terminal .tab-dot{border-radius:50%;flex:none;width:7px;height:7px}.vcarousel-layout .tab-dot.active,.carousel-single-agent .tab-dot.active{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.vcarousel-layout .tab-dot.attention,.carousel-single-agent .tab-dot.attention{background:var(--accent-amber);box-shadow:0 0 6px var(--accent-amber);animation:1.5s infinite pulse-dot}.vcarousel-layout .tab-dot.open,.carousel-single-agent .tab-dot.open{background:var(--text-muted)}.vcarousel-layout .tab-agent-icon,.carousel-single-agent .tab-agent-icon{flex:none;width:14px;height:14px}.vcarousel-layout .tab-agent-icon.active,.carousel-single-agent .tab-agent-icon.active{fill:var(--accent-green);filter:drop-shadow(0 0 4px var(--accent-green))}.vcarousel-layout .tab-agent-icon.attention,.carousel-single-agent .tab-agent-icon.attention{fill:var(--accent-amber);filter:drop-shadow(0 0 4px var(--accent-amber));animation:1.5s infinite pulse-dot}.vcarousel-layout .tab-agent-icon.open,.carousel-single-agent .tab-agent-icon.open{fill:var(--text-muted)}.vcarousel-tab:has(.tab-dot.attention){background:var(--accent-amber-dim)}.vcarousel-tab:has(.tab-dot.active){color:var(--text-secondary)}.vcarousel-peek:has(.tab-dot.attention){background:var(--accent-amber-dim)}.vcarousel-active-header:has(.tab-dot.attention){border-left-color:var(--accent-amber);background:linear-gradient(90deg, var(--accent-amber-dim), var(--bg-surface-3) 60%)}.vcarousel-active-header:has(.tab-dot.active){border-left-color:var(--accent-green)}.vcarousel-close{width:18px;height:18px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);flex:none;justify-content:center;align-items:center;margin-left:auto;font-size:14px;line-height:1;display:inline-flex}.vcarousel-close:hover{background:var(--accent-red-dim);color:var(--accent-red)}.vcarousel-peek{cursor:pointer;transition:background var(--transition-fast);flex:0 0 50px;position:relative;overflow:hidden}.vcarousel-peek:hover{background:var(--bg-hover)}.vcarousel-peek-header{color:var(--text-muted);align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.vcarousel-peek-fade{flex:auto;position:relative}.vcarousel-peek-top{border-bottom:1px solid var(--border);background:var(--bg-surface-2);flex-direction:column-reverse;display:flex}.vcarousel-peek-top .vcarousel-peek-fade{background:linear-gradient(to top, var(--bg-surface-2), transparent)}.vcarousel-peek-bottom{border-top:1px solid var(--border);background:var(--bg-surface-2);flex-direction:column;display:flex}.vcarousel-peek-bottom .vcarousel-peek-fade{background:linear-gradient(to bottom, var(--bg-surface-2), transparent)}.vcarousel-active{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.vcarousel-active-header{color:var(--text-primary);background:var(--bg-surface-3);border-bottom:1px solid var(--border-subtle);border-left:2px solid var(--accent-blue);flex:none;align-items:center;gap:6px;padding:5px 10px;font-size:11px;display:flex}@keyframes vcarousel-slide-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes vcarousel-slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.vcarousel-enter-down{animation:.2s ease-out vcarousel-slide-down}.vcarousel-enter-up{animation:.2s ease-out vcarousel-slide-up}.carousel-mini-btn{background:var(--bg-surface-3);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:2px 8px;font-size:10px}.carousel-mini-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.carousel-empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.carousel-empty-icon{opacity:.4;font-size:24px}.carousel-empty-text{font-size:12px}.workspace.layout-carousel:before,.workspace.layout-carousel:after{content:"";z-index:10;pointer-events:none;flex:0 0 24px;width:24px;position:sticky;top:0;bottom:0}.workspace.layout-carousel:before{background:linear-gradient(to right, var(--bg-base), transparent);left:0}.workspace.layout-carousel:after{background:linear-gradient(to left, var(--bg-base), transparent);right:0}.topbar-btn.active{background:var(--accent-blue-dim);color:var(--accent-blue)}.database-explorer{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:calc(100vw - 48px);max-width:1600px;height:calc(100vh - 48px);animation:.15s ease-out modal-in;display:flex;overflow:hidden}.database-explorer-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;padding:12px 16px;display:flex}.database-explorer-header h2{color:var(--text-primary);white-space:nowrap;margin:0;font-size:15px;font-weight:600}.database-explorer-main{flex:1;min-height:0;display:flex;overflow:hidden}.database-explorer-sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;min-width:200px;display:flex;overflow-y:auto}.database-explorer-sidebar-section{border-bottom:1px solid var(--border-subtle);padding:8px 0}.database-explorer-sidebar-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;gap:6px;padding:4px 12px 6px;font-size:11px;font-weight:600;display:flex}.database-explorer-badge{background:var(--bg-surface-3);color:var(--text-secondary);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.database-explorer-conn-item{cursor:pointer;color:var(--text-secondary);transition:background var(--transition-fast);align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.database-explorer-conn-item:hover{background:var(--bg-surface-2)}.database-explorer-conn-item.active{background:var(--accent-blue-dim);color:var(--accent-blue)}.database-explorer-conn-icon{flex-shrink:0;font-size:14px}.database-explorer-conn-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.database-explorer-conn-disconnect{color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast);background:0 0;border:none;padding:0 2px;font-size:12px}.database-explorer-conn-item:hover .database-explorer-conn-disconnect{opacity:1}.database-explorer-conn-disconnect:hover{color:var(--accent-red)}.database-explorer-disc-item{color:var(--text-secondary);align-items:center;gap:8px;padding:5px 12px;font-size:12px;display:flex}.database-explorer-disc-info{flex:1;align-items:center;gap:6px;display:flex;overflow:hidden}.database-explorer-disc-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.database-explorer-source-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}.database-explorer-source-badge.local{background:var(--accent-green-dim);color:var(--accent-green)}.database-explorer-source-badge.container{background:var(--accent-blue-dim);color:var(--accent-blue)}.database-explorer-source-badge.manual{background:var(--bg-surface-3);color:var(--text-secondary)}.database-explorer-connect-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;flex-shrink:0;padding:2px 8px;font-size:12px}.database-explorer-connect-btn:hover{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.database-explorer-add-btn{border:1px dashed var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;margin:8px 12px;padding:8px;font-size:12px}.database-explorer-add-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.database-explorer-add-btn.active{border-color:var(--accent-blue);color:var(--accent-blue);background:var(--accent-blue-dim)}.database-explorer-empty-hint{text-align:center;color:var(--text-muted);padding:12px;font-size:12px}.database-explorer-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.database-explorer-error{color:var(--accent-red);border-bottom:1px solid var(--border);background:#ff3c3c1a;padding:8px 16px;font-size:12px}.database-explorer-placeholder{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.database-explorer-subtabs{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:0;padding:0 16px;display:flex}.database-explorer-conn-label{color:var(--text-muted);margin-left:auto;padding:4px 0;font-size:11px}.database-explorer-content-body{flex:1;min-height:0;display:flex;overflow:hidden}.database-explorer-tables{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:200px;min-width:150px;display:flex;overflow:hidden}.database-explorer-main-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.database-table-list{flex-direction:column;height:100%;display:flex}.database-table-list-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;padding:8px 10px}.database-table-list-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:11px;font-weight:600}.database-table-filter{border:none;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);width:100%;color:var(--text-primary);box-sizing:border-box;outline:none;padding:6px 10px;font-size:12px}.database-table-filter:focus{background:var(--bg-surface-2)}.database-table-list-items{flex:1;overflow-y:auto}.database-table-item{cursor:pointer;color:var(--text-secondary);transition:background var(--transition-fast);align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.database-table-item:hover{background:var(--bg-surface-2)}.database-table-item.active{background:var(--accent-blue-dim);color:var(--accent-blue)}.database-table-icon{color:var(--text-muted);flex-shrink:0;font-size:11px}.database-table-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.database-table-count{color:var(--text-muted);flex-shrink:0;font-size:10px}.database-query-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.database-query-editor{border-bottom:1px solid var(--border);flex-shrink:0;padding:12px}.database-query-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-2);width:100%;color:var(--text-primary);font-family:var(--font-mono);resize:vertical;box-sizing:border-box;outline:none;min-height:60px;padding:8px 10px;font-size:13px}.database-query-input:focus{border-color:var(--accent-blue)}.database-query-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.database-query-run-btn{background:var(--accent-blue);color:#fff;cursor:pointer;border-radius:var(--radius-sm);transition:opacity var(--transition-fast);border:none;padding:6px 16px;font-size:12px;font-weight:500}.database-query-run-btn:hover{opacity:.9}.database-query-run-btn:disabled{opacity:.5;cursor:not-allowed}.database-query-export-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;padding:6px 12px;font-size:12px}.database-query-export-btn:hover{background:var(--bg-surface-2);color:var(--text-primary)}.database-query-stats{color:var(--text-muted);margin-left:auto;font-size:11px}.database-query-error{color:var(--accent-red);border-radius:var(--radius-sm);background:#ff3c3c14;border:1px solid #ff3c3c33;margin:8px 12px;padding:8px 12px;font-size:12px}.database-results-container{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.database-results-table-wrapper{flex:1;overflow:auto}.database-results-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:12px}.database-results-table th{background:var(--bg-surface-2);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;z-index:1;padding:6px 10px;font-weight:600;position:sticky;top:0}.database-results-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-family:var(--font-mono);padding:4px 10px;font-size:11px;overflow:hidden}.database-results-table tr:hover td{background:var(--bg-surface-2)}.database-results-rownum{-webkit-user-select:none;user-select:none;width:36px;color:var(--text-muted)!important;text-align:right!important;padding-right:8px!important;font-size:10px!important}.database-schema-viewer{flex:1;padding:16px;overflow-y:auto}.database-schema-title{color:var(--text-primary);margin:0 0 16px;font-size:15px;font-weight:600}.database-schema-section{margin-bottom:20px}.database-schema-section h4{color:var(--text-secondary);margin:0 0 8px;font-size:12px;font-weight:600}.database-schema-section code{background:var(--bg-surface-2);color:var(--accent-blue);border-radius:3px;padding:1px 4px;font-size:11px}.database-add-connection{max-width:500px;padding:24px}.database-add-connection h3{color:var(--text-primary);margin:0 0 20px;font-size:15px;font-weight:600}.database-add-form{flex-direction:column;gap:12px;display:flex}.database-form-row{flex-direction:column;gap:4px;display:flex}.database-form-row label{color:var(--text-secondary);font-size:12px;font-weight:500}.database-form-row-inline{gap:12px;display:flex}.database-form-input,.database-form-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-2);color:var(--text-primary);outline:none;padding:7px 10px;font-size:13px}.database-form-input:focus,.database-form-select:focus{border-color:var(--accent-blue)}.database-form-select{cursor:pointer;appearance:auto}.database-form-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.database-form-cancel{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;padding:7px 16px;font-size:12px}.database-form-cancel:hover{background:var(--bg-surface-2)}.database-tree{flex-direction:column;height:100%;display:flex;overflow-y:auto}.database-tree-section{border-bottom:1px solid var(--border-subtle);padding:4px 0}.database-tree-section-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;gap:6px;padding:6px 12px 4px;font-size:10px;font-weight:700;display:flex}.database-tree-item{cursor:pointer;color:var(--text-secondary);transition:background var(--transition-fast);white-space:nowrap;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:flex;overflow:hidden}.database-tree-item:hover{background:var(--bg-surface-2)}.database-tree-connection.active{background:var(--accent-blue-dim);color:var(--accent-blue)}.database-tree-arrow{text-align:center;width:12px;color:var(--text-muted);flex-shrink:0;font-size:9px}.database-tree-icon{text-align:center;flex-shrink:0;width:16px;font-size:12px}.database-tree-label{text-overflow:ellipsis;flex:1;overflow:hidden}.database-tree-meta{color:var(--text-muted);flex-shrink:0;margin-left:auto;font-size:10px}.database-tree-action{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:11px}.database-tree-item:hover .database-tree-action{opacity:1}.database-tree-action:hover{color:var(--accent-red)}.database-tree-children{padding-left:16px}.database-tree-table{padding-left:4px}.database-tree-column{color:var(--text-muted);cursor:default;padding-left:4px;font-size:11px}.database-tree-column .database-tree-icon{font-size:10px}.database-tree-col-type{color:var(--accent-blue);font-size:10px;font-family:var(--font-mono);opacity:.7;flex-shrink:0;margin-left:auto}.database-tree-col-null{color:var(--text-muted);margin-left:2px;font-size:9px}.database-tree-loading{color:var(--text-muted);cursor:default;font-size:11px;font-style:italic}.database-tree-discovered{padding-left:12px}.database-tree-connect-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:all var(--transition-fast);background:0 0;flex-shrink:0;padding:1px 6px;font-size:11px}.database-tree-item:hover .database-tree-connect-btn{opacity:1}.database-tree-connect-btn:hover{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.database-monaco-container{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.database-query-history{border:1px solid var(--border);background:var(--bg-surface-2);border-radius:var(--radius-sm);max-height:200px;margin:0 12px 4px;overflow-y:auto}.database-query-history-item{cursor:pointer;font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);padding:6px 10px}.database-query-history-item:hover{background:var(--bg-surface-3);color:var(--text-primary)}.database-query-history-item:last-child{border-bottom:none}.database-results-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.database-results-sortable:hover{color:var(--accent-blue)}.database-results-sort-icon{color:var(--accent-blue);font-size:10px}.database-null-value{color:var(--text-muted);opacity:.6;font-style:italic}.database-query-export-btn.active{background:var(--accent-blue-dim);color:var(--accent-blue);border-color:var(--accent-blue)}.database-explorer-statusbar{border-top:1px solid var(--border);background:var(--bg-surface-2);color:var(--text-muted);flex-shrink:0;align-items:center;gap:16px;padding:4px 16px;font-size:11px;display:flex}.database-explorer-status-item{align-items:center;gap:4px;display:flex}.database-explorer-error{align-items:center;gap:8px;display:flex}.database-explorer-error-close{color:var(--accent-red);cursor:pointer;opacity:.7;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:14px}.database-explorer-error-close:hover{opacity:1}.database-query-tab{align-items:center;gap:6px;display:inline-flex;position:relative}.database-query-tab-close{color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--transition-fast);font-size:10px;line-height:1}.database-query-tab:hover .database-query-tab-close{opacity:1}.database-query-tab-close:hover{color:var(--accent-red)}.database-query-tab-add{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:4px 8px;font-size:14px}.database-query-tab-add:hover{color:var(--accent-blue)}.database-tree-readonly{background:var(--accent-yellow-dim,#ffc80026);color:var(--accent-yellow,#e8a500);letter-spacing:.3px;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:9px;font-weight:700}.database-tree-action-visible{opacity:.5!important}.database-tree-item:hover .database-tree-action-visible{opacity:1!important}.database-results-filter-row th{background:var(--bg-surface-2);padding:2px 4px}.database-results-filter-input{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-primary);font-size:11px;font-family:var(--font-mono);box-sizing:border-box;border-radius:3px;outline:none;padding:3px 6px}.database-results-filter-input:focus{border-color:var(--accent-blue)}.database-results-filter-input::placeholder{color:var(--text-muted);opacity:.6}.database-results-editable{cursor:text}.database-results-editable:hover{outline:1px dashed var(--accent-blue);outline-offset:-1px;background:var(--accent-blue-dim)!important}.database-results-edit-input{border:1px solid var(--accent-blue);background:var(--bg-surface);width:100%;color:var(--text-primary);font-family:var(--font-mono);box-sizing:border-box;border-radius:2px;outline:none;padding:2px 4px;font-size:11px}@media (width<=768px){.database-explorer{border-radius:0;width:100vw;max-width:none;height:100vh}.database-explorer-main{flex-direction:column}.database-explorer-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:200px;overflow-y:auto}.database-explorer-content-body{flex-direction:column}.database-explorer-tables{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:120px}.database-explorer-subtabs{flex-wrap:wrap;gap:2px;padding:4px 8px}.database-explorer-conn-label{display:none}.database-query-editor{padding:8px}.database-monaco-container{height:80px!important}.database-query-actions{flex-wrap:wrap;gap:4px}.database-results-table td,.database-results-table th{max-width:150px;padding:3px 6px;font-size:10px}.database-add-connection{max-width:none;padding:12px}.database-form-row-inline{flex-direction:column;gap:8px}.database-tree-item{padding:5px 8px}.database-schema-viewer{padding:8px}}@media (width<=480px){.database-explorer-header{gap:8px;padding:8px 12px}.database-explorer-header h2{font-size:13px}.database-explorer-sidebar{max-height:150px}.database-query-export-btn{padding:4px 8px;font-size:11px}}.help-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:560px;max-width:90vw;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.help-modal-header{background:var(--bg-surface-2);border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.help-modal-tabs{gap:4px;display:flex}.help-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:6px 14px;font-size:12px;font-weight:500}.help-tab:hover,.help-tab.active{background:var(--bg-surface-3);color:var(--text-primary)}.help-modal-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:flex}.help-modal-close:hover{background:var(--bg-surface-3);color:var(--text-primary)}.help-modal-body{flex:1;padding:16px;overflow-y:auto}.help-shortcuts-table{border-collapse:collapse;width:100%}.help-shortcuts-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle);padding:6px 10px;font-size:11px;font-weight:600}.help-shortcuts-table td{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);padding:8px 10px;font-size:13px}.help-shortcuts-table tr:last-child td{border-bottom:none}.help-kbd{font-size:12px;font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 8px;display:inline-block}.help-system{flex-direction:column;gap:12px;display:flex}.help-system-platform{color:var(--text-secondary);font-size:13px}.help-system-platform strong{color:var(--text-primary)}.help-system-loading,.help-system-error{color:var(--text-muted);text-align:center;padding:20px 0;font-size:13px}.help-system-error{color:var(--text-danger,#e55)}.help-system-table{border-collapse:collapse;width:100%}.help-system-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle);padding:6px 10px;font-size:11px;font-weight:600}.help-system-category-row td{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:none;padding:12px 10px 4px;font-size:11px;font-weight:600}.help-system-name{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:6px 10px;font-size:13px;font-weight:500}.help-system-required{color:var(--text-warning,#fa0);border-radius:var(--radius-sm);vertical-align:middle;background:#ffaa001a;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:500;display:inline-block}.help-system-desc{color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);padding:6px 10px;font-size:13px}.help-system-status{border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:6px 10px;font-size:12px}.help-system-ok{color:var(--text-success,#4c6)}.help-system-missing{color:var(--text-danger,#e55)}.help-about{flex-direction:column;gap:20px;display:flex}.help-about-logo{align-items:center;gap:14px;display:flex}.help-about-icon{border-radius:var(--radius-md);width:48px;height:48px}.help-about-title{color:var(--text-primary);font-size:20px;font-weight:700}.help-about-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.help-about-section{flex-direction:column;gap:4px;display:flex}.help-about-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.help-about-value{color:var(--text-secondary);font-size:13px;line-height:1.5}.help-about-creator{color:var(--accent-cyan);font-size:16px;font-weight:600}.help-about-link{color:var(--accent-blue);font-size:13px;text-decoration:none}.help-about-link:hover{text-decoration:underline}.help-about-license-text{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);white-space:pre-wrap;max-height:200px;margin-top:4px;padding:10px 12px;line-height:1.5;overflow-y:auto}.help-about-features{color:var(--text-secondary);margin:0;padding-left:20px;font-size:13px;line-height:1.8}.help-about-version-badge{font-size:12px;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);white-space:nowrap;margin-left:auto;padding:2px 8px}.help-update-section{border-radius:var(--radius-md);background:var(--bg-surface-2);border:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.help-update-section.has-update{border-color:var(--accent-cyan);background:color-mix(in srgb, var(--accent-cyan) 6%, var(--bg-surface-2))}.help-update-info{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.help-update-uptodate{color:var(--text-muted)}.help-update-dot{background:var(--accent-cyan);border-radius:50%;flex-shrink:0;width:8px;height:8px}.help-update-current{color:var(--text-muted);font-size:12px}.help-update-btn{color:var(--bg-primary);background:var(--accent-cyan);border-radius:var(--radius-sm);cursor:pointer;border:none;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:600;transition:opacity .15s}.help-update-btn:hover{opacity:.85}.help-update-btn:disabled{opacity:.5;cursor:default}.help-update-result{border-radius:var(--radius-sm);width:100%;padding:6px 10px;font-size:12px}.help-update-result.success{color:var(--accent-green,#4ade80);background:color-mix(in srgb, var(--accent-green,#4ade80) 10%, transparent)}.help-update-result.error{color:var(--accent-red,#f87171);background:color-mix(in srgb, var(--accent-red,#f87171) 10%, transparent)}.gh-publish-btn{color:var(--accent-blue);border-radius:var(--radius-sm);cursor:pointer;height:22px;transition:all var(--transition-fast);background:#5b8af526;border:1px solid #0000;margin-left:auto;padding:2px 10px;font-size:11px;font-weight:600}.gh-publish-btn.has-changes{border-color:var(--accent-amber-dim)}.gh-publish-btn:hover{background:#5b8af540}.gh-publish-btn:disabled{opacity:.5;cursor:not-allowed}.changes-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.changes-toolbar{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.changes-count{color:var(--text-muted);font-size:11px}.changes-delete-all-btn{border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;padding:2px 8px;font-size:11px}.changes-delete-all-btn:hover{color:var(--accent-red);border-color:var(--accent-red)}.changes-delete-all-btn:disabled{opacity:.5;cursor:not-allowed}.changes-list{flex:1;min-height:0;overflow-y:auto}.changes-empty{color:var(--text-muted);justify-content:center;align-items:center;padding:24px;font-size:12px;display:flex}.changes-card{border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast)}.changes-card:hover{background:var(--bg-surface-2)}.changes-card-header{align-items:center;gap:6px;min-height:28px;padding:6px 10px;display:flex}.changes-card-chevron{color:var(--text-muted);flex-shrink:0;width:10px;font-size:10px}.changes-card-headline{flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.changes-card-short{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.changes-card-tags{flex-wrap:wrap;gap:3px;display:inline-flex}.changes-tag{color:var(--accent-blue);white-space:nowrap;background:#5b8af526;border-radius:3px;padding:1px 5px;font-size:10px}.changes-card-right{color:var(--text-muted);flex-shrink:0;align-items:center;gap:6px;font-size:11px;display:flex}.changes-card-files{color:var(--accent-blue);font-size:11px}.changes-card-time{font-size:11px}.changes-card-delete{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:1px 3px;font-size:11px;line-height:1}.changes-card-delete:hover{color:var(--accent-red);background:#ff50501a}.changes-card-delete:disabled{opacity:.5;cursor:not-allowed}.changes-card-long{color:var(--text-muted);word-break:break-word;padding:0 10px 8px 26px;font-size:11px;line-height:1.5}
@@ -0,0 +1 @@
1
+ import"./chunk-XZSTWKYB-BcW3cyNp.js";import{n as e}from"./chunk-EGIJ26TM-B--aFyPw.js";export{e as createInfoServices};
@@ -0,0 +1,2 @@
1
+ import{g as e,h as t}from"./src-Bn-kKzs7.js";import{c as n}from"./chunk-7R4GIKGN-Csst1274.js";import{l as r}from"./index-DMLxes_u.js";import"./chunk-XZSTWKYB-BcW3cyNp.js";import"./chunk-R5LLSJPH-CHQzVVOV.js";import"./chunk-7E7YKBS2-7zRaOLjj.js";import"./chunk-EGIJ26TM-B--aFyPw.js";import"./chunk-C72U2L5F-_JbQPbLN.js";import"./chunk-XIRO2GV7-98T93G85.js";import"./chunk-L3YUKLVL-C-DkZTMr.js";import"./chunk-OZEHJAEY-CNNiJtG0.js";import{t as i}from"./mermaid-parser.core-DAeTodBQ.js";var a={parse:t(async t=>{let n=await i(`info`,t);e.debug(n)},`parse`)},o={version:`11.13.0`},s={parser:a,db:{getVersion:t(()=>o.version,`getVersion`)},renderer:{draw:t((t,i,a)=>{e.debug(`rendering info diagram
2
+ `+t);let o=r(i);n(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
+ var e={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}]},t={defaultToken:``,tokenPostfix:`.ini`,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,`metatag`],[/(^\w+)(\s*)(\=)/,[`key`,``,`delimiter`]],{include:`@whitespace`},[/\d+/,`number`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string."`],[/'/,`string`,`@string.'`]],whitespace:[[/[ \t\r\n]+/,``],[/^\s*[#;].*$/,`comment`]],string:[[/[^\\"']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/["']/,{cases:{"$#==$S2":{token:`string`,next:`@pop`},"@default":`string`}}]]}};export{e as conf,t as language};
@@ -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);break}return this}export{e as t};
@@ -0,0 +1,70 @@
1
+ import{h as e}from"./src-Bn-kKzs7.js";import{B as t,C as n,V as r,W as i,_ as a,a as o,b as s,c,s as l,v as u}from"./chunk-7R4GIKGN-Csst1274.js";import{f as d}from"./chunk-GEFDOKGD-CnmN6cC8.js";import"./dist-CU_Nb1G5.js";import{t as f}from"./rough.esm-DxAX5Vpo.js";import{l as p}from"./index-DMLxes_u.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());break}},`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;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.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}else return!1}else if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e===!1?!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,o()}getRoot(){return this.root}addNode(e,t){let n=l.sanitizeText(t,s());if(!this.root){this.baseLevel=e,this.root={text:n,children:[]},this.stack=[{level:0,node:this.root}],i(n);return}let r=e-(this.baseLevel??0);for(r<=0&&(r=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=r;)this.stack.pop();let a=this.stack[this.stack.length-1].node,o={text:n,children:[]};a.children.push(o),this.stack.push({level:r,node:o})}getAccTitle(){return u()}setAccTitle(e){r(e)}getAccDescription(){return a()}setAccDescription(e){t(e)}getDiagramTitle(){return n()}setDiagramTitle(e){i(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;c(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=s(),{look:o,handDrawnSeed:c,themeVariables:l}=a,u=d(a.fontSize)[0]??_,m=o===`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);return}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 @@
1
+ var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`<`,close:`>`}],folding:{markers:{start:RegExp(`^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))`),end:RegExp(`^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))`)}}},t={defaultToken:``,tokenPostfix:`.java`,keywords:`abstract.continue.for.new.switch.assert.default.goto.package.synchronized.boolean.do.if.private.this.break.double.implements.protected.throw.byte.else.import.public.throws.case.enum.instanceof.return.transient.catch.extends.int.short.try.char.final.interface.static.void.class.finally.long.strictfp.volatile.const.float.native.super.while.true.false.yield.record.sealed.non-sealed.permits`.split(`.`),operators:`=.>.<.!.~.?.:.==.<=.>=.!=.&&.||.++.--.+.-.*./.&.|.^.%.<<.>>.>>>.+=.-=.*=./=.&=.|=.^=.%=.<<=.>>=.>>>=`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[`non-sealed`,`keyword.non-sealed`],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`identifier`}}],{include:`@whitespace`},[/[{}()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/@\s*[a-zA-Z_\$][\w\$]*/,`annotation`],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,`number.float`],[/0[xX](@hexdigits)[Ll]?/,`number.hex`],[/0(@octaldigits)[Ll]?/,`number.octal`],[/0[bB](@binarydigits)[Ll]?/,`number.binary`],[/(@digits)[fFdD]/,`number.float`],[/(@digits)[lL]?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/"""/,`string`,`@multistring`],[/"/,`string`,`@string`],[/'[^\\']'/,`string`],[/(')(@escapes)(')/,[`string`,`string.escape`,`string`]],[/'/,`string.invalid`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@javadoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],javadoc:[[/[^\/*]+/,`comment.doc`],[/\/\*/,`comment.doc.invalid`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],multistring:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"""/,`string`,`@pop`],[/./,`string`]]}};export{e as conf,t as language};
@@ -0,0 +1 @@
1
+ import"./editor.api2-YXkDn0Gm.js";import{conf as e,language as t}from"./typescript-17918Hud.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};