@pheem49/mint 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/CLAUDE.md +1 -1
  2. package/Cargo.lock +291 -11
  3. package/Cargo.toml +1 -1
  4. package/README.md +71 -9
  5. package/ROADMAP.md +30 -0
  6. package/Release_Note.md +579 -465
  7. package/crates/mint-cli/Cargo.toml +3 -1
  8. package/crates/mint-cli/src/agent/approval_prompts.rs +16 -3
  9. package/crates/mint-cli/src/agent/live_status.rs +367 -118
  10. package/crates/mint-cli/src/agent/markdown_render.rs +601 -61
  11. package/crates/mint-cli/src/agent.rs +452 -215
  12. package/crates/mint-cli/src/commands/agent.rs +16 -21
  13. package/crates/mint-cli/src/commands/eval.rs +9 -5
  14. package/crates/mint-cli/src/commands/git.rs +204 -0
  15. package/crates/mint-cli/src/commands/integrations.rs +28 -0
  16. package/crates/mint-cli/src/commands/knowledge.rs +1 -0
  17. package/crates/mint-cli/src/commands/mod.rs +37 -2
  18. package/crates/mint-cli/src/commands/tailnet_web.rs +235 -0
  19. package/crates/mint-cli/src/image.rs +26 -3
  20. package/crates/mint-cli/src/interactive/chat_tui.rs +4742 -0
  21. package/crates/mint-cli/src/interactive/command_ui.rs +477 -0
  22. package/crates/mint-cli/src/interactive/format.rs +8 -0
  23. package/crates/mint-cli/src/interactive/input_box.rs +38 -2
  24. package/crates/mint-cli/src/interactive/picker.rs +180 -37
  25. package/crates/mint-cli/src/interactive/resume_picker.rs +686 -0
  26. package/crates/mint-cli/src/interactive/slash_commands.rs +868 -450
  27. package/crates/mint-cli/src/interactive/thought_viewer.rs +286 -0
  28. package/crates/mint-cli/src/interactive.rs +400 -136
  29. package/crates/mint-cli/src/main.rs +84 -23
  30. package/crates/mint-cli/src/markdown.rs +12 -5
  31. package/crates/mint-cli/src/onboard.rs +32 -30
  32. package/crates/mint-cli/src/plugins_cli.rs +8 -5
  33. package/crates/mint-cli/src/setup.rs +10 -8
  34. package/crates/mint-cli/src/terminal_theme.rs +187 -0
  35. package/crates/mint-cli/src/updater.rs +56 -21
  36. package/crates/mint-core/src/agent/agent_loop.rs +1 -0
  37. package/crates/mint-core/src/agent/chat.rs +843 -177
  38. package/crates/mint-core/src/agent/code_tools.rs +83 -2
  39. package/crates/mint-core/src/agent/memory.rs +658 -20
  40. package/crates/mint-core/src/agent/skills.rs +1 -1
  41. package/crates/mint-core/src/api_server/routes/chat.rs +31 -5
  42. package/crates/mint-core/src/api_server/routes/linked_folders.rs +118 -3
  43. package/crates/mint-core/src/api_server/routes/misc.rs +10 -14
  44. package/crates/mint-core/src/api_server/routes/sessions.rs +44 -0
  45. package/crates/mint-core/src/api_server.rs +22 -3
  46. package/crates/mint-core/src/avatar_bridge.rs +2 -0
  47. package/crates/mint-core/src/browser/cdp.rs +74 -83
  48. package/crates/mint-core/src/browser/evidence.rs +260 -0
  49. package/crates/mint-core/src/browser/input.rs +1 -1
  50. package/crates/mint-core/src/browser/interact.rs +98 -124
  51. package/crates/mint-core/src/browser/lifecycle.rs +75 -4
  52. package/crates/mint-core/src/browser/mod.rs +16 -2
  53. package/crates/mint-core/src/browser/navigate.rs +27 -19
  54. package/crates/mint-core/src/browser/observe.js +40 -0
  55. package/crates/mint-core/src/browser/session.rs +1558 -0
  56. package/crates/mint-core/src/git/branches.rs +348 -0
  57. package/crates/mint-core/src/git/checkpoint.rs +40 -0
  58. package/crates/mint-core/src/git/diff.rs +206 -0
  59. package/crates/mint-core/src/git/mod.rs +10 -2
  60. package/crates/mint-core/src/integrations/channels.rs +1 -0
  61. package/crates/mint-core/src/lib.rs +22 -14
  62. package/crates/mint-core/src/live_sync.rs +28 -9
  63. package/crates/mint-core/src/media/auto_shorts.rs +1 -0
  64. package/crates/mint-core/src/media/gemini_live.rs +12 -1
  65. package/crates/mint-core/src/media/mic_transcribe.rs +1 -0
  66. package/crates/mint-core/src/media/subtitle.rs +1 -0
  67. package/crates/mint-core/src/orchestration/context_render.rs +1 -0
  68. package/crates/mint-core/src/orchestration/memory_skill.rs +6 -1
  69. package/crates/mint-core/src/orchestration/mod.rs +1024 -271
  70. package/crates/mint-core/src/orchestration/tools/browser.rs +16 -139
  71. package/crates/mint-core/src/orchestration/tools/misc.rs +2 -1
  72. package/crates/mint-core/src/orchestration/tools/web.rs +1 -1
  73. package/crates/mint-core/src/prompts/agent.rs +58 -29
  74. package/crates/mint-core/src/prompts/chat.rs +1 -1
  75. package/crates/mint-core/src/prompts/persona.rs +1 -1
  76. package/crates/mint-core/src/prompts/tool_catalog.rs +93 -25
  77. package/crates/mint-core/src/search/linked_folders/index.rs +732 -0
  78. package/crates/mint-core/src/search/linked_folders.rs +391 -130
  79. package/crates/mint-core/src/slash/mod.rs +470 -22
  80. package/crates/mint-core/src/slash/model_fetcher.rs +12 -3
  81. package/crates/mint-core/src/slash/models.rs +66 -10
  82. package/crates/mint-core/src/system/config.rs +230 -0
  83. package/crates/mint-core/src/system/workspace.rs +228 -0
  84. package/crates/mint-core/src/system.rs +1 -0
  85. package/crates/mint-core/tests/memory_persistence.rs +39 -0
  86. package/mint-presentation-demo.mp4 +0 -0
  87. package/out/web/assets/CliSessionsView-BxUVWEEL.js +1 -0
  88. package/out/web/assets/CliSessionsView-CBDTXuQv.css +1 -0
  89. package/out/web/assets/CodeReviewPage-DkMgfcos.css +1 -0
  90. package/out/web/assets/CodeReviewPage-jKlmLJwT.js +3 -0
  91. package/out/web/assets/CommandPalette-DnwPA5hy.js +1 -0
  92. package/out/web/assets/ImageStudioPanel-BR1XFwhR.js +1 -0
  93. package/out/web/assets/ImageStudioPanel-D0lnhQV5.css +1 -0
  94. package/out/web/assets/LinkedFoldersView-bi-CWQ-I.js +1 -0
  95. package/out/web/assets/McpRegistryPicker-D5tEFnyq.js +1 -0
  96. package/out/web/assets/McpServersView-BGG1dhFM.js +1 -0
  97. package/out/web/assets/MintDashboard-BIglDEWX.js +20 -0
  98. package/out/web/assets/MintDashboard-DSMywSgs.css +1 -0
  99. package/out/web/assets/ModelPanel-CbJ1PFoZ.js +1 -0
  100. package/out/web/assets/PicturesLibrary-CQP0fLP1.css +1 -0
  101. package/out/web/assets/PicturesLibrary-DoYN7T1p.js +1 -0
  102. package/out/web/assets/PluginsView-CU1HWXGk.js +1 -0
  103. package/out/web/assets/ScheduledTasksView-Bnl36y2N.js +1 -0
  104. package/out/web/assets/SettingsWindow-DhWLAn9T.css +1 -0
  105. package/out/web/assets/SettingsWindow-Dw8L01pw.js +2 -0
  106. package/out/web/assets/SkillsView-cnl8aY5p.js +2 -0
  107. package/out/web/assets/ToolSurfacePage-CgsQw6l5.css +1 -0
  108. package/out/web/assets/ToolSurfacePage-Cz2VJAPZ.js +37 -0
  109. package/out/web/assets/VeoStudioPanel-D4JnERWR.js +4 -0
  110. package/out/web/assets/VeoStudioPanel-DOj7_WR3.css +1 -0
  111. package/out/web/assets/WorkspacePanel-CbJ1PFoZ.js +1 -0
  112. package/out/web/assets/{abnfDiagram-VCTEODGH-DAOBA7ZG.js → abnfDiagram-VCTEODGH-ByMyfanq.js} +1 -1
  113. package/out/web/assets/{architecture-7GRP2DOG-CgSwQOPQ.js → architecture-7GRP2DOG-CLq2kEOB.js} +1 -1
  114. package/out/web/assets/{architectureDiagram-5GKGNRK7-CYp3yupP.js → architectureDiagram-5GKGNRK7-6PoVSmNG.js} +1 -1
  115. package/out/web/assets/{blockDiagram-NRAW4CY4-CyWybDWr.js → blockDiagram-NRAW4CY4-cKw9mAKi.js} +1 -1
  116. package/out/web/assets/{c4Diagram-UCG6FXSJ-BvY3U709.js → c4Diagram-UCG6FXSJ-Cqy8N5Ge.js} +1 -1
  117. package/out/web/assets/{chunk-75Z2AOVW-TLXCoZYv.js → chunk-75Z2AOVW-3qybijF5.js} +1 -1
  118. package/out/web/assets/chunk-CKBBP62Z-cIrXq6jN.js +2 -0
  119. package/out/web/assets/{chunk-CLGD4ZFX-xjsKtNS7.js → chunk-CLGD4ZFX-CndDQkww.js} +1 -1
  120. package/out/web/assets/chunk-DSNCTWBM-Cc4NxvgD.js +2 -0
  121. package/out/web/assets/chunk-DU6HZSFF-drzh6GsU.js +128 -0
  122. package/out/web/assets/{chunk-F27PBJKO-BFpgF55A.js → chunk-F27PBJKO-FiY35l4v.js} +1 -1
  123. package/out/web/assets/{chunk-G27WJ6UU-DfF7qW-C.js → chunk-G27WJ6UU-Bjt9Il4A.js} +1 -1
  124. package/out/web/assets/{chunk-GMAD6QVW-C-558kh_.js → chunk-GMAD6QVW-Bppi3Ctd.js} +1 -1
  125. package/out/web/assets/{chunk-JQ64N6SF-wJmeGKAw.js → chunk-JQ64N6SF-DGg5kcEV.js} +1 -1
  126. package/out/web/assets/{chunk-LCL6LL3I-C1wHD8Ie.js → chunk-LCL6LL3I-CCYcjd7p.js} +1 -1
  127. package/out/web/assets/{chunk-OBVCFTLP-BsRTPBqs.js → chunk-OBVCFTLP-DJeNil5M.js} +1 -1
  128. package/out/web/assets/{chunk-P2QGCYS3-HZIiM7Ni.js → chunk-P2QGCYS3-lRzkRjBB.js} +1 -1
  129. package/out/web/assets/{chunk-POPQ4Y6H-Dk9wvVb0.js → chunk-POPQ4Y6H-DouASMBW.js} +1 -1
  130. package/out/web/assets/{chunk-PWAF6VOD-BmjYLNbq.js → chunk-PWAF6VOD-DMmD1vVf.js} +1 -1
  131. package/out/web/assets/{chunk-R7TYR2AO-CaHIf-lK.js → chunk-R7TYR2AO-CYLA5UC5.js} +1 -1
  132. package/out/web/assets/{chunk-RHFEMEQ7-_T561hOU.js → chunk-RHFEMEQ7-BiXwEcUT.js} +1 -1
  133. package/out/web/assets/{chunk-SVP7TREG-CM-GGYoY.js → chunk-SVP7TREG-BV-zPslF.js} +1 -1
  134. package/out/web/assets/{chunk-TEH6E4GO-K2A8Vg2C.js → chunk-TEH6E4GO-B2RGEohZ.js} +1 -1
  135. package/out/web/assets/classDiagram-DTDB5LWJ-Dq0smRWk.js +1 -0
  136. package/out/web/assets/classDiagram-v2-JRS7N3AN-Dq0smRWk.js +1 -0
  137. package/out/web/assets/config-C-ZFtipU.css +1 -0
  138. package/out/web/assets/config-eEDngJXO.js +1 -0
  139. package/out/web/assets/core-hQ2VA9Ti.js +1 -0
  140. package/out/web/assets/{cynefin-OW5HDTMX-ClzaB6cc.js → cynefin-OW5HDTMX-Cas4csHM.js} +1 -1
  141. package/out/web/assets/{cynefinDiagram-5FMLGOSQ-D_JzZBzf.js → cynefinDiagram-5FMLGOSQ-Bbpj66Y3.js} +1 -1
  142. package/out/web/assets/{dagre-3AP2YEHR-BDuUeMHj.js → dagre-3AP2YEHR-B0-2RDEd.js} +1 -1
  143. package/out/web/assets/{diagram-S7CK7UJ4-DgtcfE8P.js → diagram-S7CK7UJ4-BdzEjUyH.js} +1 -1
  144. package/out/web/assets/{diagram-UQ7AKVKN-DTLoEYti.js → diagram-UQ7AKVKN-CJDwyPxF.js} +1 -1
  145. package/out/web/assets/{diagram-VSXAHHWV-ChGl9pXz.js → diagram-VSXAHHWV-BxaG1r_B.js} +1 -1
  146. package/out/web/assets/{diagram-VX7I27RA-Be8DWz0S.js → diagram-VX7I27RA-BMmUqm8f.js} +1 -1
  147. package/out/web/assets/{diagram-Z3DM3KII-BMXjRTOF.js → diagram-Z3DM3KII-CFtd03eE.js} +1 -1
  148. package/out/web/assets/dist-js-Bf2bhoku.js +1 -0
  149. package/out/web/assets/{ebnfDiagram-PWID7BFC-8Q9pl1CJ.js → ebnfDiagram-PWID7BFC-DwAen1hO.js} +1 -1
  150. package/out/web/assets/{erDiagram-SSCWMZ5O-DjH8Lnkn.js → erDiagram-SSCWMZ5O-BCZSHACj.js} +1 -1
  151. package/out/web/assets/event-ChBVpRy0.js +1 -0
  152. package/out/web/assets/{eventmodeling-NTZA5JFV-BKUH_DOp.js → eventmodeling-NTZA5JFV-XHStE4E_.js} +1 -1
  153. package/out/web/assets/fira-code-latin-600-normal-BmSSHshu.woff +0 -0
  154. package/out/web/assets/fira-code-latin-600-normal-CvYZpPHg.woff2 +0 -0
  155. package/out/web/assets/fira-code-symbols2-600-normal-Dvq6IQE5.woff +0 -0
  156. package/out/web/assets/flowDiagram-A5DVABFB-BLg7nEcd.js +1 -0
  157. package/out/web/assets/{ganttDiagram-EL5Y4UJY-D7fZKJNM.js → ganttDiagram-EL5Y4UJY-BAEu1Cql.js} +1 -1
  158. package/out/web/assets/{gitGraph-4MIJSDKK-BypWaaBU.js → gitGraph-4MIJSDKK-r32Vyper.js} +1 -1
  159. package/out/web/assets/{gitGraphDiagram-WWUBYQGX-DWiw_3bq.js → gitGraphDiagram-WWUBYQGX-z9o9qt6V.js} +1 -1
  160. package/out/web/assets/index-Btsf4L8M.css +1 -0
  161. package/out/web/assets/index-D8D9MeRA.js +11 -0
  162. package/out/web/assets/{info-A6RAGUB7-KkAUxT4j.js → info-A6RAGUB7-BvLaC2cw.js} +1 -1
  163. package/out/web/assets/{infoDiagram-RXCK75RN-BNb6E48y.js → infoDiagram-RXCK75RN-Be6WAXXw.js} +1 -1
  164. package/out/web/assets/{ishikawaDiagram-5VMMS53U-Caa-JoAK.js → ishikawaDiagram-5VMMS53U-DZjoHJHC.js} +1 -1
  165. package/out/web/assets/{journeyDiagram-EYS64GPL-DOrmFGz6.js → journeyDiagram-EYS64GPL-CtVkjkGm.js} +1 -1
  166. package/out/web/assets/{kanban-definition-3QL26DDD-BOWCYcK0.js → kanban-definition-3QL26DDD-CW5FMv1w.js} +1 -1
  167. package/out/web/assets/lucide-react-Ip3L6Jtn.js +1 -0
  168. package/out/web/assets/markdown-BSeeUbJH.js +38 -0
  169. package/out/web/assets/{mermaid-parser.core-BQqjCkS_.js → mermaid-parser.core-aUgCqsZ5.js} +3 -3
  170. package/out/web/assets/mermaid.core-D57sEiSL.js +11 -0
  171. package/out/web/assets/{mindmap-definition-FBJOCRG2-jTceWpr0.js → mindmap-definition-FBJOCRG2-DAmSpM3a.js} +1 -1
  172. package/out/web/assets/modelManager-tMVmJVAW.js +2 -0
  173. package/out/web/assets/oauthManager-9jxicDWJ.js +1 -0
  174. package/out/web/assets/{packet-AYTQ26CC-CJ5RXgol.js → packet-AYTQ26CC-DJ27iIoJ.js} +1 -1
  175. package/out/web/assets/{pegDiagram-XKGWAZYB-y8wMtd0y.js → pegDiagram-XKGWAZYB-Bj3ii-gS.js} +1 -1
  176. package/out/web/assets/{pie-WAS4IAKB-72fTBbl4.js → pie-WAS4IAKB-DG5mCUbc.js} +1 -1
  177. package/out/web/assets/{pieDiagram-E7YTZNPT-e0O02qWq.js → pieDiagram-E7YTZNPT-BrJLPnDA.js} +1 -1
  178. package/out/web/assets/prompt-latin-700-normal-BfbftDSq.woff +0 -0
  179. package/out/web/assets/prompt-latin-700-normal-I2gc831J.woff2 +0 -0
  180. package/out/web/assets/prompt-thai-700-normal-Cb5ilR-c.woff +0 -0
  181. package/out/web/assets/prompt-thai-700-normal-Cg4aQ0Nn.woff2 +0 -0
  182. package/out/web/assets/{quadrantDiagram-AXDQQJYC-C9phYLom.js → quadrantDiagram-AXDQQJYC-3x_TmF3j.js} +1 -1
  183. package/out/web/assets/{radar-RG4KPBEZ-BAU2hzUT.js → radar-RG4KPBEZ-CrXaTTuV.js} +1 -1
  184. package/out/web/assets/{railroad-74A4TZTK-B0bCAVHC.js → railroad-74A4TZTK-BpqMH9BE.js} +1 -1
  185. package/out/web/assets/{railroad-abnf-HS5TGJTU-WhxO7ndE.js → railroad-abnf-HS5TGJTU-DHI0uLlV.js} +1 -1
  186. package/out/web/assets/{railroad-ebnf-LZEXJU2U-BkA0m7-F.js → railroad-ebnf-LZEXJU2U-CQCb316y.js} +1 -1
  187. package/out/web/assets/{railroad-peg-WCYAUIDC-BsVpHIaj.js → railroad-peg-WCYAUIDC-Ph1giKkH.js} +1 -1
  188. package/out/web/assets/{railroadDiagram-O6MQD6OU-CyOLN65Q.js → railroadDiagram-O6MQD6OU-BRq6wIxx.js} +1 -1
  189. package/out/web/assets/{requirementDiagram-EFPCY7ZU-DQXJ7Dud.js → requirementDiagram-EFPCY7ZU-DIJj6G1g.js} +1 -1
  190. package/out/web/assets/{sankeyDiagram-P5KCCOFB-B2XLyIIc.js → sankeyDiagram-P5KCCOFB-DZajSryq.js} +1 -1
  191. package/out/web/assets/{sequenceDiagram-WJ2MYXX4-DGQY4wwm.js → sequenceDiagram-WJ2MYXX4-DxJCWyZS.js} +1 -1
  192. package/out/web/assets/{stateDiagram-HBIQ2CUA-DHZpDwNy.js → stateDiagram-HBIQ2CUA-k6voi8Vf.js} +1 -1
  193. package/out/web/assets/stateDiagram-v2-4QOOHH4V-DeEc0lGZ.js +1 -0
  194. package/out/web/assets/studio-B1mk40wD.js +1 -0
  195. package/out/web/assets/{swimlanes-XN3QIQJK-Bn_jcZz-.js → swimlanes-XN3QIQJK-igYhTjXB.js} +1 -1
  196. package/out/web/assets/swimlanesDiagram-VK2B7HYN-DpVik9v7.js +8 -0
  197. package/out/web/assets/{timeline-definition-24CTP7MA-CdTERuJZ.js → timeline-definition-24CTP7MA-Dke2p93p.js} +1 -1
  198. package/out/web/assets/{treeView-Q6P3EWNA-TKBKQG6R.js → treeView-Q6P3EWNA-hNELnXUs.js} +1 -1
  199. package/out/web/assets/{treemap-WGGIJYW6-BP7gQoiC.js → treemap-WGGIJYW6-D2B6wDsx.js} +1 -1
  200. package/out/web/assets/{vennDiagram-4TSXK5OY-BHUmxDuK.js → vennDiagram-4TSXK5OY-CDkW7rUP.js} +1 -1
  201. package/out/web/assets/{wardley-WFR3VGLG-9bct5AAN.js → wardley-WFR3VGLG-BECdXETi.js} +1 -1
  202. package/out/web/assets/{wardleyDiagram-VM6X3IG4-BfJwDDso.js → wardleyDiagram-VM6X3IG4-B5BycpQ4.js} +1 -1
  203. package/out/web/assets/window-5qYXKoW7.js +1 -0
  204. package/out/web/assets/{xychartDiagram-S5SC5T6Z-Dqd9Mvpo.js → xychartDiagram-S5SC5T6Z-CtJS3b--.js} +1 -1
  205. package/out/web/index-web.html +3 -4
  206. package/out/web/index.html +3 -4
  207. package/package.json +17 -6
  208. package/skills-lock.json +36 -0
  209. package/slash-commands.json +9 -0
  210. package/src/renderer/index-web.html +1 -0
  211. package/src/renderer/index.html +1 -0
  212. package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  213. package/src/renderer/shared/agentProgress.ts +168 -3
  214. package/src/renderer/shared/components/AgentActivityDrawer.tsx +6 -6
  215. package/src/renderer/shared/components/AgentActivityTable.tsx +192 -132
  216. package/src/renderer/shared/components/ArtifactPreviewPanel.tsx +4 -4
  217. package/src/renderer/shared/components/AuthGate.tsx +4 -9
  218. package/src/renderer/shared/components/CalculationCard.tsx +41 -15
  219. package/src/renderer/shared/components/ChatMessageItem.tsx +20 -21
  220. package/src/renderer/shared/components/ChatPanel.tsx +432 -193
  221. package/src/renderer/shared/components/ChunkErrorBoundary.tsx +198 -49
  222. package/src/renderer/shared/components/CliSessionsView.tsx +495 -0
  223. package/src/renderer/shared/components/CodeReviewPage.tsx +565 -0
  224. package/src/renderer/shared/components/CommandPalette.tsx +8 -8
  225. package/src/renderer/shared/components/DashboardSidebar.tsx +862 -125
  226. package/src/renderer/shared/components/DesktopTitlebar.tsx +345 -0
  227. package/src/renderer/shared/components/DiffReviewModal.tsx +3 -3
  228. package/src/renderer/shared/components/GitBranchSelector.tsx +442 -0
  229. package/src/renderer/shared/components/ImageGenCard.tsx +31 -12
  230. package/src/renderer/shared/components/ImageSearchCard.tsx +59 -38
  231. package/src/renderer/shared/components/ImageStudioPanel.tsx +40 -41
  232. package/src/renderer/shared/components/InlineThoughtNote.tsx +27 -0
  233. package/src/renderer/shared/components/LinkedFoldersView.tsx +365 -46
  234. package/src/renderer/shared/components/McpRegistryPicker.tsx +1 -1
  235. package/src/renderer/shared/components/McpServersView.tsx +24 -22
  236. package/src/renderer/shared/components/MermaidCard.tsx +14 -8
  237. package/src/renderer/shared/components/MintDashboard.tsx +1141 -508
  238. package/src/renderer/shared/components/ModelSelectorPopover.tsx +535 -214
  239. package/src/renderer/shared/components/PlanChecklistWidget.tsx +1 -1
  240. package/src/renderer/shared/components/PluginsView.tsx +1 -1
  241. package/src/renderer/shared/components/RewindModal.tsx +6 -6
  242. package/src/renderer/shared/components/RunSummaryDashboard.tsx +3 -3
  243. package/src/renderer/shared/components/ScheduledTasksView.tsx +4 -4
  244. package/src/renderer/shared/components/ScreenCaptureDialog.css +221 -0
  245. package/src/renderer/shared/components/ScreenCaptureDialog.tsx +199 -0
  246. package/src/renderer/shared/components/Settings/AgentsTab.tsx +34 -39
  247. package/src/renderer/shared/components/Settings/AudioTab.tsx +8 -8
  248. package/src/renderer/shared/components/Settings/AutomationTab.tsx +8 -58
  249. package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +368 -0
  250. package/src/renderer/shared/components/Settings/GeneralTab.tsx +335 -81
  251. package/src/renderer/shared/components/Settings/MemoryTab.tsx +3 -3
  252. package/src/renderer/shared/components/Settings/PluginsTab.tsx +20 -12
  253. package/src/renderer/shared/components/Settings/ProfileTab.tsx +29 -5
  254. package/src/renderer/shared/components/Settings/SearchableModelCombobox.tsx +411 -0
  255. package/src/renderer/shared/components/Settings/ThemeTab.tsx +401 -158
  256. package/src/renderer/shared/components/SkillsView.tsx +41 -16
  257. package/src/renderer/shared/components/SlashSuggestions.tsx +3 -2
  258. package/src/renderer/shared/components/SourcesBlock.tsx +44 -32
  259. package/src/renderer/shared/components/StockCard.tsx +58 -24
  260. package/src/renderer/shared/components/SubagentDagView.tsx +4 -4
  261. package/src/renderer/shared/components/TerminalDock.tsx +241 -0
  262. package/src/renderer/shared/components/ThinkingBlock.tsx +14 -8
  263. package/src/renderer/shared/components/ToolSurfacePage.tsx +520 -0
  264. package/src/renderer/shared/components/UiFeatureCard.tsx +267 -0
  265. package/src/renderer/shared/components/UiGridCard.tsx +188 -0
  266. package/src/renderer/shared/components/UiMockupWidget.tsx +149 -0
  267. package/src/renderer/shared/components/VeoStudioPanel.tsx +13 -29
  268. package/src/renderer/shared/components/WeatherCard.tsx +3 -3
  269. package/src/renderer/shared/components/WorkspaceContextPopover.tsx +133 -0
  270. package/src/renderer/shared/components/WorkspaceSelector.tsx +149 -0
  271. package/src/renderer/shared/constants/config.ts +28 -3
  272. package/src/renderer/shared/constants/models.ts +189 -2
  273. package/src/renderer/shared/conversation/coordinator.test.ts +27 -0
  274. package/src/renderer/shared/conversation/coordinator.ts +82 -0
  275. package/src/renderer/shared/conversation/syncView.test.ts +46 -0
  276. package/src/renderer/shared/conversation/syncView.ts +43 -0
  277. package/src/renderer/shared/conversation/useConversationCoordinator.ts +106 -0
  278. package/src/renderer/shared/css/agent-observability.css +35 -3
  279. package/src/renderer/shared/css/auth-gate.css +2 -2
  280. package/src/renderer/shared/css/chat-ui-cards.css +495 -0
  281. package/src/renderer/shared/css/code-review.css +823 -0
  282. package/src/renderer/shared/css/code-sessions.css +452 -0
  283. package/src/renderer/shared/css/file-changes.css +132 -0
  284. package/src/renderer/shared/css/image-studio.css +16 -16
  285. package/src/renderer/shared/css/management-views.css +277 -27
  286. package/src/renderer/shared/css/model-selector.css +442 -42
  287. package/src/renderer/shared/css/settings/agents.css +1 -1
  288. package/src/renderer/shared/css/settings/automation.css +13 -13
  289. package/src/renderer/shared/css/settings/general.css +526 -5
  290. package/src/renderer/shared/css/settings/plugins.css +5 -5
  291. package/src/renderer/shared/css/settings/profile.css +331 -1
  292. package/src/renderer/shared/css/settings/theme.css +651 -3
  293. package/src/renderer/shared/css/veo-studio.css +16 -15
  294. package/src/renderer/shared/fonts.ts +19 -37
  295. package/src/renderer/shared/platform.test.ts +34 -0
  296. package/src/renderer/shared/platform.ts +173 -6
  297. package/src/renderer/shared/theme/themeManager.ts +144 -0
  298. package/src/renderer/shared/theme/themes.ts +116 -0
  299. package/src/renderer/shared/theme/tokens.css +318 -0
  300. package/src/renderer/shared/types.ts +82 -1
  301. package/src/renderer/shared/utils/agentActivity.ts +126 -5
  302. package/src/renderer/shared/utils/cardJson.test.ts +35 -0
  303. package/src/renderer/shared/utils/cardJson.ts +30 -0
  304. package/src/renderer/shared/utils/fileIcons.ts +1 -1
  305. package/src/renderer/shared/utils/markdown.tsx +329 -80
  306. package/src/renderer/shared/utils/markdown.webImages.test.tsx +40 -0
  307. package/src/renderer/shared/utils/providers.ts +8 -3
  308. package/src/renderer/shared/utils/screenCapture.ts +43 -0
  309. package/src/renderer/shared/utils/slashCommandProcessor.ts +4 -1
  310. package/src/renderer/shared/utils/ui.ts +4 -64
  311. package/src/renderer/src/App.tsx +7 -0
  312. package/src/renderer/src/components/BrowserShell.tsx +108 -0
  313. package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +91 -0
  314. package/src/renderer/src/components/Live2DStage.tsx +32 -9
  315. package/src/renderer/src/components/MintDashboard.tsx +4 -2
  316. package/src/renderer/src/components/ModelPanel.tsx +2 -1
  317. package/src/renderer/src/components/PicturesLibrary.tsx +3 -2
  318. package/src/renderer/src/components/ScreenPicker.css +190 -0
  319. package/src/renderer/src/components/ScreenPicker.tsx +185 -540
  320. package/src/renderer/src/components/SettingsWindow.tsx +40 -2
  321. package/src/renderer/src/components/SpotlightWindow.tsx +1 -0
  322. package/src/renderer/src/components/WidgetWindow.tsx +27 -3
  323. package/src/renderer/src/components/WorkspacePanel.tsx +61 -43
  324. package/src/renderer/src/components/browser-shell.css +185 -0
  325. package/src/renderer/src/components/browser-suggestions-popup.css +55 -0
  326. package/src/renderer/src/components/liveTranslateFrames.test.ts +23 -0
  327. package/src/renderer/src/components/liveTranslateFrames.ts +34 -0
  328. package/src/renderer/src/css/app-shell.css +394 -113
  329. package/src/renderer/src/css/chat.css +1926 -380
  330. package/src/renderer/src/css/dashboard.css +11 -0
  331. package/src/renderer/src/css/desktop-tools.css +730 -0
  332. package/src/renderer/src/css/misc.css +19 -22
  333. package/src/renderer/src/css/model.css +49 -48
  334. package/src/renderer/src/css/pictures.css +144 -136
  335. package/src/renderer/src/css/settings/base.css +357 -123
  336. package/src/renderer/src/css/sidebar-workspace.css +930 -291
  337. package/src/renderer/src/css/spotlight.css +15 -26
  338. package/src/renderer/src/css/tool-surfaces.css +728 -0
  339. package/src/renderer/src/css/widget.css +35 -7
  340. package/src/renderer/src/env.d.ts +3 -0
  341. package/src/renderer/src/hooks/useProviderModels.ts +2 -9
  342. package/src/renderer/src/index.css +53 -46
  343. package/src/renderer/src/main.tsx +11 -0
  344. package/src/renderer/src/tauri.ts +201 -30
  345. package/src/renderer/src-web/App.tsx +40 -0
  346. package/src/renderer/src-web/components/MintDashboard.tsx +4 -2
  347. package/src/renderer/src-web/components/PicturesLibrary.tsx +3 -2
  348. package/src/renderer/src-web/components/PullToRefresh.tsx +107 -0
  349. package/src/renderer/src-web/components/SettingsWindow.tsx +28 -2
  350. package/src/renderer/src-web/css/app-shell.css +174 -96
  351. package/src/renderer/src-web/css/chat.css +1519 -316
  352. package/src/renderer/src-web/css/dashboard.css +11 -0
  353. package/src/renderer/src-web/css/misc.css +17 -17
  354. package/src/renderer/src-web/css/mobile.css +678 -0
  355. package/src/renderer/src-web/css/model.css +46 -46
  356. package/src/renderer/src-web/css/pictures.css +81 -34
  357. package/src/renderer/src-web/css/pull-to-refresh.css +54 -0
  358. package/src/renderer/src-web/css/settings/base.css +316 -100
  359. package/src/renderer/src-web/css/settings/mobile.css +320 -0
  360. package/src/renderer/src-web/css/sidebar-workspace.css +545 -100
  361. package/src/renderer/src-web/css/spotlight.css +9 -26
  362. package/src/renderer/src-web/css/widget.css +0 -5
  363. package/src/renderer/src-web/env.d.ts +3 -0
  364. package/src/renderer/src-web/hooks/useProviderModels.ts +2 -9
  365. package/src/renderer/src-web/index.css +53 -96
  366. package/src/renderer/src-web/main.tsx +11 -0
  367. package/src/renderer/src-web/tauri.ts +200 -30
  368. package/vite.config.web.ts +1 -0
  369. package/out/web/assets/MintDashboard-DWSqucgb.js +0 -57
  370. package/out/web/assets/SettingsWindow-DFM2aj5B.js +0 -2
  371. package/out/web/assets/chunk-CKBBP62Z-nr1uKPj9.js +0 -2
  372. package/out/web/assets/chunk-DSNCTWBM-Dtj8Rqsd.js +0 -2
  373. package/out/web/assets/chunk-DU6HZSFF-2tv5K1wT.js +0 -128
  374. package/out/web/assets/classDiagram-DTDB5LWJ-BdSFArgw.js +0 -1
  375. package/out/web/assets/classDiagram-v2-JRS7N3AN-BdSFArgw.js +0 -1
  376. package/out/web/assets/core-DImejIUG.js +0 -1
  377. package/out/web/assets/dist-js-BxuKEVWM.js +0 -1
  378. package/out/web/assets/event-BNl8Zahw.js +0 -1
  379. package/out/web/assets/fira-code-cyrillic-400-normal-UC0NFL4U.woff2 +0 -0
  380. package/out/web/assets/fira-code-cyrillic-400-normal-dc1q3VD7.woff +0 -0
  381. package/out/web/assets/fira-code-cyrillic-500-normal-Bu7VCL72.woff +0 -0
  382. package/out/web/assets/fira-code-cyrillic-500-normal-CX35h3Mg.woff2 +0 -0
  383. package/out/web/assets/fira-code-cyrillic-ext-400-normal-Buh61xzB.woff +0 -0
  384. package/out/web/assets/fira-code-cyrillic-ext-400-normal-txZ9Fk_1.woff2 +0 -0
  385. package/out/web/assets/fira-code-cyrillic-ext-500-normal-CYRspHgm.woff2 +0 -0
  386. package/out/web/assets/fira-code-cyrillic-ext-500-normal-CwtLmSFD.woff +0 -0
  387. package/out/web/assets/fira-code-greek-400-normal-B2Gh_Y8s.woff2 +0 -0
  388. package/out/web/assets/fira-code-greek-400-normal-DobhaxvF.woff +0 -0
  389. package/out/web/assets/fira-code-greek-500-normal-CVO0IRNt.woff2 +0 -0
  390. package/out/web/assets/fira-code-greek-500-normal-DEXIWiey.woff +0 -0
  391. package/out/web/assets/fira-code-greek-ext-400-normal-DR7mBgIM.woff2 +0 -0
  392. package/out/web/assets/fira-code-greek-ext-400-normal-DSPUheWg.woff +0 -0
  393. package/out/web/assets/fira-code-greek-ext-500-normal-BO3iq16n.woff2 +0 -0
  394. package/out/web/assets/fira-code-greek-ext-500-normal-CMiNLXER.woff +0 -0
  395. package/out/web/assets/fira-code-latin-ext-400-normal-DG73JjOf.woff +0 -0
  396. package/out/web/assets/fira-code-latin-ext-400-normal-KSMg0QLl.woff2 +0 -0
  397. package/out/web/assets/fira-code-latin-ext-500-normal-CaANqXjI.woff +0 -0
  398. package/out/web/assets/fira-code-latin-ext-500-normal-Crd9e_oI.woff2 +0 -0
  399. package/out/web/assets/flowDiagram-A5DVABFB-BpnHUSU7.js +0 -1
  400. package/out/web/assets/index-CVRg270z.css +0 -1
  401. package/out/web/assets/index-DxZQr9yD.js +0 -10
  402. package/out/web/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  403. package/out/web/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  404. package/out/web/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  405. package/out/web/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  406. package/out/web/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  407. package/out/web/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  408. package/out/web/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  409. package/out/web/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  410. package/out/web/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  411. package/out/web/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  412. package/out/web/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  413. package/out/web/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  414. package/out/web/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  415. package/out/web/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  416. package/out/web/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  417. package/out/web/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  418. package/out/web/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  419. package/out/web/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  420. package/out/web/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  421. package/out/web/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  422. package/out/web/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  423. package/out/web/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  424. package/out/web/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  425. package/out/web/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  426. package/out/web/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  427. package/out/web/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  428. package/out/web/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  429. package/out/web/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  430. package/out/web/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  431. package/out/web/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  432. package/out/web/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  433. package/out/web/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  434. package/out/web/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  435. package/out/web/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  436. package/out/web/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  437. package/out/web/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  438. package/out/web/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  439. package/out/web/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  440. package/out/web/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  441. package/out/web/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  442. package/out/web/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  443. package/out/web/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  444. package/out/web/assets/kanit-latin-400-normal-BUlsQXH3.woff2 +0 -0
  445. package/out/web/assets/kanit-latin-400-normal-HVZWrfev.woff +0 -0
  446. package/out/web/assets/kanit-latin-500-normal-CX_4XcKi.woff2 +0 -0
  447. package/out/web/assets/kanit-latin-500-normal-qBha86O4.woff +0 -0
  448. package/out/web/assets/kanit-latin-600-normal-0lS78yAd.woff2 +0 -0
  449. package/out/web/assets/kanit-latin-600-normal-DlacpeTg.woff +0 -0
  450. package/out/web/assets/kanit-latin-ext-400-normal-B2xPf58u.woff2 +0 -0
  451. package/out/web/assets/kanit-latin-ext-400-normal-CHvNKHHD.woff +0 -0
  452. package/out/web/assets/kanit-latin-ext-500-normal-BFdWrG22.woff +0 -0
  453. package/out/web/assets/kanit-latin-ext-500-normal-EHs3suD6.woff2 +0 -0
  454. package/out/web/assets/kanit-latin-ext-600-normal-BBDzoLaj.woff +0 -0
  455. package/out/web/assets/kanit-latin-ext-600-normal-DAX3wtuq.woff2 +0 -0
  456. package/out/web/assets/kanit-thai-400-normal-D2nliXKa.woff +0 -0
  457. package/out/web/assets/kanit-thai-400-normal-D80Pglro.woff2 +0 -0
  458. package/out/web/assets/kanit-thai-500-normal-BB8gri04.woff2 +0 -0
  459. package/out/web/assets/kanit-thai-500-normal-Iy_w0a80.woff +0 -0
  460. package/out/web/assets/kanit-thai-600-normal-Bj6oiaDc.woff2 +0 -0
  461. package/out/web/assets/kanit-thai-600-normal-wbTlPO7I.woff +0 -0
  462. package/out/web/assets/kanit-vietnamese-400-normal-DRI8YWyb.woff2 +0 -0
  463. package/out/web/assets/kanit-vietnamese-400-normal-dow6Bnto.woff +0 -0
  464. package/out/web/assets/kanit-vietnamese-500-normal-BzTrpCM3.woff2 +0 -0
  465. package/out/web/assets/kanit-vietnamese-500-normal-T1ndT7MF.woff +0 -0
  466. package/out/web/assets/kanit-vietnamese-600-normal-Bi7fw3I4.woff2 +0 -0
  467. package/out/web/assets/kanit-vietnamese-600-normal-DXCRAa_8.woff +0 -0
  468. package/out/web/assets/mali-latin-400-normal-ByPcZ8Gx.woff +0 -0
  469. package/out/web/assets/mali-latin-400-normal-Cuc6Ykl8.woff2 +0 -0
  470. package/out/web/assets/mali-latin-500-normal-B01M-LP6.woff2 +0 -0
  471. package/out/web/assets/mali-latin-500-normal-Thgqw_9f.woff +0 -0
  472. package/out/web/assets/mali-latin-600-normal-B9TiUNpT.woff2 +0 -0
  473. package/out/web/assets/mali-latin-600-normal-CycpQCwU.woff +0 -0
  474. package/out/web/assets/mali-latin-ext-400-normal-DUVdJQO4.woff +0 -0
  475. package/out/web/assets/mali-latin-ext-400-normal-iCG1ALuJ.woff2 +0 -0
  476. package/out/web/assets/mali-latin-ext-500-normal-BfJE4UMZ.woff2 +0 -0
  477. package/out/web/assets/mali-latin-ext-500-normal-FoLEyOKS.woff +0 -0
  478. package/out/web/assets/mali-latin-ext-600-normal-BTvIfiCp.woff2 +0 -0
  479. package/out/web/assets/mali-latin-ext-600-normal-DAQcLVmD.woff +0 -0
  480. package/out/web/assets/mali-thai-400-normal-BO7A3bLZ.woff2 +0 -0
  481. package/out/web/assets/mali-thai-400-normal-CX9VrjTn.woff +0 -0
  482. package/out/web/assets/mali-thai-500-normal-Cph2qha9.woff +0 -0
  483. package/out/web/assets/mali-thai-500-normal-D89rMT77.woff2 +0 -0
  484. package/out/web/assets/mali-thai-600-normal-DPgXT6rZ.woff +0 -0
  485. package/out/web/assets/mali-thai-600-normal-DlTx3OsB.woff2 +0 -0
  486. package/out/web/assets/mali-vietnamese-400-normal-DUKxzXaz.woff2 +0 -0
  487. package/out/web/assets/mali-vietnamese-400-normal-gFDLvsOK.woff +0 -0
  488. package/out/web/assets/mali-vietnamese-500-normal--OY07q2c.woff +0 -0
  489. package/out/web/assets/mali-vietnamese-500-normal-KDrNRwfW.woff2 +0 -0
  490. package/out/web/assets/mali-vietnamese-600-normal-CtTMUU7T.woff +0 -0
  491. package/out/web/assets/mali-vietnamese-600-normal-DFlJr66u.woff2 +0 -0
  492. package/out/web/assets/mermaid.core-DYGGlqOf.js +0 -11
  493. package/out/web/assets/mitr-latin-400-normal-Cb18vPmZ.woff +0 -0
  494. package/out/web/assets/mitr-latin-400-normal-CwbkLQ4a.woff2 +0 -0
  495. package/out/web/assets/mitr-latin-500-normal-B4JOhzAi.woff +0 -0
  496. package/out/web/assets/mitr-latin-500-normal-BmClOow2.woff2 +0 -0
  497. package/out/web/assets/mitr-latin-ext-400-normal-B3CPG7Yo.woff2 +0 -0
  498. package/out/web/assets/mitr-latin-ext-400-normal-DTx65hiC.woff +0 -0
  499. package/out/web/assets/mitr-latin-ext-500-normal-B_Diajz1.woff2 +0 -0
  500. package/out/web/assets/mitr-latin-ext-500-normal-DYOsVaVT.woff +0 -0
  501. package/out/web/assets/mitr-thai-400-normal-CS4Do6aM.woff +0 -0
  502. package/out/web/assets/mitr-thai-400-normal-CXWaAdVj.woff2 +0 -0
  503. package/out/web/assets/mitr-thai-500-normal-CVdBrEVH.woff2 +0 -0
  504. package/out/web/assets/mitr-thai-500-normal-CW_B5D-i.woff +0 -0
  505. package/out/web/assets/mitr-vietnamese-400-normal-CPMGWyoC.woff2 +0 -0
  506. package/out/web/assets/mitr-vietnamese-400-normal-Z6XhIpdY.woff +0 -0
  507. package/out/web/assets/mitr-vietnamese-500-normal-CDrv0585.woff2 +0 -0
  508. package/out/web/assets/mitr-vietnamese-500-normal-CMQWyq-Z.woff +0 -0
  509. package/out/web/assets/noto-sans-thai-latin-400-normal-BaWBrqFP.woff2 +0 -0
  510. package/out/web/assets/noto-sans-thai-latin-400-normal-Dh_FJjOB.woff +0 -0
  511. package/out/web/assets/noto-sans-thai-latin-500-normal-BC04jsmm.woff +0 -0
  512. package/out/web/assets/noto-sans-thai-latin-500-normal-fyBKClF1.woff2 +0 -0
  513. package/out/web/assets/noto-sans-thai-latin-600-normal-CemcjnVR.woff2 +0 -0
  514. package/out/web/assets/noto-sans-thai-latin-600-normal-Dbc-dNO6.woff +0 -0
  515. package/out/web/assets/noto-sans-thai-latin-ext-400-normal-B-1H0YkH.woff +0 -0
  516. package/out/web/assets/noto-sans-thai-latin-ext-400-normal-nBP59pVw.woff2 +0 -0
  517. package/out/web/assets/noto-sans-thai-latin-ext-500-normal-B-ZWb8SZ.woff2 +0 -0
  518. package/out/web/assets/noto-sans-thai-latin-ext-500-normal-CrEHO7C8.woff +0 -0
  519. package/out/web/assets/noto-sans-thai-latin-ext-600-normal-PkMZo0xa.woff +0 -0
  520. package/out/web/assets/noto-sans-thai-latin-ext-600-normal-maHHBsez.woff2 +0 -0
  521. package/out/web/assets/noto-sans-thai-thai-400-normal-BEOmKAI1.woff2 +0 -0
  522. package/out/web/assets/noto-sans-thai-thai-400-normal-Dxb_unuU.woff +0 -0
  523. package/out/web/assets/noto-sans-thai-thai-500-normal-BOGXO2tw.woff +0 -0
  524. package/out/web/assets/noto-sans-thai-thai-500-normal-CU_X86GQ.woff2 +0 -0
  525. package/out/web/assets/noto-sans-thai-thai-600-normal-CmgB8_JK.woff +0 -0
  526. package/out/web/assets/noto-sans-thai-thai-600-normal-Cs73sVjl.woff2 +0 -0
  527. package/out/web/assets/oauthManager-DNiwM8Rn.js +0 -2
  528. package/out/web/assets/oauthManager-DuamS1Av.css +0 -1
  529. package/out/web/assets/outfit-latin-300-normal-AWLfuCom.woff +0 -0
  530. package/out/web/assets/outfit-latin-300-normal-CRYTwY6m.woff2 +0 -0
  531. package/out/web/assets/outfit-latin-400-normal-BGsTXAXT.woff2 +0 -0
  532. package/out/web/assets/outfit-latin-400-normal-DMwTpYkH.woff +0 -0
  533. package/out/web/assets/outfit-latin-500-normal-ClnHRwRh.woff +0 -0
  534. package/out/web/assets/outfit-latin-500-normal-DKnIMDSk.woff2 +0 -0
  535. package/out/web/assets/outfit-latin-600-normal-B7SfZ07L.woff2 +0 -0
  536. package/out/web/assets/outfit-latin-600-normal-BEfTtDA7.woff +0 -0
  537. package/out/web/assets/outfit-latin-ext-300-normal-BYS6Dpvq.woff2 +0 -0
  538. package/out/web/assets/outfit-latin-ext-300-normal-CMIMshEd.woff +0 -0
  539. package/out/web/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2 +0 -0
  540. package/out/web/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff +0 -0
  541. package/out/web/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff +0 -0
  542. package/out/web/assets/outfit-latin-ext-500-normal-zeox_O30.woff2 +0 -0
  543. package/out/web/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2 +0 -0
  544. package/out/web/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff +0 -0
  545. package/out/web/assets/preload-helper-D0uHx7FM.js +0 -1
  546. package/out/web/assets/prompt-latin-ext-400-normal-1pHbN9uy.woff +0 -0
  547. package/out/web/assets/prompt-latin-ext-400-normal-DdSafGZ9.woff2 +0 -0
  548. package/out/web/assets/prompt-latin-ext-500-normal--EZ1um7s.woff2 +0 -0
  549. package/out/web/assets/prompt-latin-ext-500-normal-D-lI1EVT.woff +0 -0
  550. package/out/web/assets/prompt-latin-ext-600-normal-C8b50x67.woff +0 -0
  551. package/out/web/assets/prompt-latin-ext-600-normal-Cg9L7iJU.woff2 +0 -0
  552. package/out/web/assets/prompt-vietnamese-400-normal-BCPzsgPT.woff2 +0 -0
  553. package/out/web/assets/prompt-vietnamese-400-normal-D4pLyeNK.woff +0 -0
  554. package/out/web/assets/prompt-vietnamese-500-normal-DmzxmPwa.woff2 +0 -0
  555. package/out/web/assets/prompt-vietnamese-500-normal-w_sS_j2F.woff +0 -0
  556. package/out/web/assets/prompt-vietnamese-600-normal-1dyohtNh.woff +0 -0
  557. package/out/web/assets/prompt-vietnamese-600-normal-7QWjJBsF.woff2 +0 -0
  558. package/out/web/assets/sarabun-latin-400-normal-DmguIS-7.woff +0 -0
  559. package/out/web/assets/sarabun-latin-400-normal-URPBxl-K.woff2 +0 -0
  560. package/out/web/assets/sarabun-latin-500-normal-BjUTcdxu.woff2 +0 -0
  561. package/out/web/assets/sarabun-latin-500-normal-CJexTAnl.woff +0 -0
  562. package/out/web/assets/sarabun-latin-600-normal-9FonlkKx.woff +0 -0
  563. package/out/web/assets/sarabun-latin-600-normal-DMD3TROr.woff2 +0 -0
  564. package/out/web/assets/sarabun-latin-ext-400-normal-BbP7GpLL.woff2 +0 -0
  565. package/out/web/assets/sarabun-latin-ext-400-normal-BsmTn0SS.woff +0 -0
  566. package/out/web/assets/sarabun-latin-ext-500-normal-Cot16Bd2.woff +0 -0
  567. package/out/web/assets/sarabun-latin-ext-500-normal-DE1LysqI.woff2 +0 -0
  568. package/out/web/assets/sarabun-latin-ext-600-normal-0tXu9x_i.woff +0 -0
  569. package/out/web/assets/sarabun-latin-ext-600-normal-BRxjKUQ6.woff2 +0 -0
  570. package/out/web/assets/sarabun-thai-400-normal-C2DaJlKK.woff2 +0 -0
  571. package/out/web/assets/sarabun-thai-400-normal-CH-UbWgg.woff +0 -0
  572. package/out/web/assets/sarabun-thai-500-normal-BVssjame.woff2 +0 -0
  573. package/out/web/assets/sarabun-thai-500-normal-C3iDLEzi.woff +0 -0
  574. package/out/web/assets/sarabun-thai-600-normal-3dIAQ-_s.woff2 +0 -0
  575. package/out/web/assets/sarabun-thai-600-normal-DWKeTe6a.woff +0 -0
  576. package/out/web/assets/sarabun-vietnamese-400-normal-DPfkSCMy.woff +0 -0
  577. package/out/web/assets/sarabun-vietnamese-400-normal-igdrzAGY.woff2 +0 -0
  578. package/out/web/assets/sarabun-vietnamese-500-normal-CpRVvGRU.woff +0 -0
  579. package/out/web/assets/sarabun-vietnamese-500-normal-Dpe7Br9m.woff2 +0 -0
  580. package/out/web/assets/sarabun-vietnamese-600-normal-BMbOgAW-.woff +0 -0
  581. package/out/web/assets/sarabun-vietnamese-600-normal-DkxrOlLB.woff2 +0 -0
  582. package/out/web/assets/stateDiagram-v2-4QOOHH4V-s6P9g2_b.js +0 -1
  583. package/out/web/assets/swimlanesDiagram-VK2B7HYN-CV9fOLrV.js +0 -8
  584. package/out/web/assets/tauri-CNrHQ2Gb.js +0 -3
  585. package/out/web/assets/window-DkIhgI7B.js +0 -1
@@ -24,6 +24,7 @@
24
24
  min-width: 0;
25
25
  padding: 20px;
26
26
  overflow-y: auto;
27
+ overflow-x: hidden;
27
28
  display: flex;
28
29
  flex-direction: column;
29
30
  gap: 16px;
@@ -32,6 +33,13 @@
32
33
  will-change: transform;
33
34
  }
34
35
 
36
+ /* Every chat item must be able to shrink inside a narrow conversation panel.
37
+ Individual code/output blocks provide their own horizontal scrolling. */
38
+ .chat-container > * {
39
+ min-width: 0;
40
+ max-width: 100%;
41
+ }
42
+
35
43
  .chat-container::-webkit-scrollbar {
36
44
  width: 6px;
37
45
  }
@@ -41,7 +49,7 @@
41
49
  }
42
50
 
43
51
  .chat-container::-webkit-scrollbar-thumb {
44
- background: rgba(255, 255, 255, 0.1);
52
+ background: var(--bg-surface-hover);
45
53
  border-radius: var(--radius-lg);
46
54
  }
47
55
 
@@ -81,6 +89,22 @@
81
89
  transition: all 0.3s ease;
82
90
  }
83
91
 
92
+ /* Allow selecting text inside the main chat and settings areas despite global user-select:none */
93
+
94
+ .chat-container,
95
+ .chat-container *,
96
+ .message-bubble,
97
+ .message-bubble *,
98
+ .bubble-wrapper,
99
+ .bubble-wrapper *,
100
+ .settings-content,
101
+ .settings-content * {
102
+ -webkit-user-select: text !important;
103
+ -moz-user-select: text !important;
104
+ -ms-user-select: text !important;
105
+ user-select: text !important;
106
+ }
107
+
84
108
  .bubble-wrapper {
85
109
  display: flex;
86
110
  flex-direction: column;
@@ -97,7 +121,7 @@
97
121
  }
98
122
 
99
123
  .message-time {
100
- font-size: 0.72rem;
124
+ font-size: 0.78rem;
101
125
  color: var(--text-muted);
102
126
  margin-top: 4px;
103
127
  margin-bottom: 2px;
@@ -115,13 +139,13 @@
115
139
  display: inline-flex;
116
140
  align-items: center;
117
141
  gap: 6px;
118
- background: var(--surface-bg, rgba(255, 255, 255, 0.04));
119
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
142
+ background: var(--bg-surface-soft);
143
+ border: 1px solid var(--border-default);
120
144
  border-radius: var(--radius-full, 999px);
121
145
  padding: 2px 9px 2px 7px;
122
- font-size: 0.72rem;
146
+ font-size: 0.78rem;
123
147
  font-family: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
124
- color: var(--text-muted, #94a3b8);
148
+ color: var(--text-secondary);
125
149
  line-height: 1.3;
126
150
  user-select: none;
127
151
  transition: all 0.15s ease;
@@ -132,9 +156,9 @@
132
156
  }
133
157
 
134
158
  .provider-model-chip:hover {
135
- background: var(--panel-raised, rgba(255, 255, 255, 0.07));
136
- border-color: var(--border-light, rgba(255, 255, 255, 0.16));
137
- color: var(--text-main, #f1f5f9);
159
+ background: var(--bg-surface-hover);
160
+ border-color: var(--border-strong);
161
+ color: var(--text-primary);
138
162
  }
139
163
 
140
164
  .provider-chip-dot {
@@ -181,24 +205,26 @@
181
205
  .provider-chip-name {
182
206
  font-weight: 600;
183
207
  text-transform: lowercase;
184
- opacity: 0.85;
208
+ color: var(--text-primary);
209
+ opacity: 0.9;
185
210
  }
186
211
 
187
212
  .provider-chip-divider {
188
- opacity: 0.35;
213
+ opacity: 0.5;
189
214
  font-size: 0.68rem;
190
215
  margin: 0 1px;
216
+ color: var(--text-muted);
191
217
  }
192
218
 
193
219
  .provider-chip-model {
194
- font-weight: 450;
195
- color: var(--text-chat, var(--text-main, #e2e8f0));
220
+ font-weight: 500;
221
+ color: var(--text-primary);
196
222
  }
197
223
 
198
224
  .message-timestamp {
199
- font-size: 0.72rem;
200
- color: var(--text-muted, #64748b);
201
- opacity: 0.8;
225
+ font-size: 0.78rem;
226
+ color: var(--text-muted);
227
+ opacity: 1;
202
228
  user-select: none;
203
229
  }
204
230
 
@@ -209,7 +235,7 @@
209
235
  white-space: nowrap;
210
236
  border: 0;
211
237
  background: transparent;
212
- color: var(--accent);
238
+ color: var(--interactive-fg);
213
239
  font-weight: 600;
214
240
  font: inherit;
215
241
  line-height: 1.2;
@@ -219,7 +245,7 @@
219
245
 
220
246
  .provider-badge:hover,
221
247
  .provider-badge.is-open {
222
- color: var(--accent-hover);
248
+ color: var(--interactive-fg-hover);
223
249
  text-decoration: underline;
224
250
  text-underline-offset: 2px;
225
251
  }
@@ -328,7 +354,7 @@
328
354
  }
329
355
 
330
356
  .ai-list-bullet {
331
- color: var(--accent-hover);
357
+ color: var(--interactive-fg-hover);
332
358
  font-weight: 700;
333
359
  line-height: 1.5;
334
360
  }
@@ -339,8 +365,8 @@
339
365
 
340
366
  .user-message .message-bubble {
341
367
  background: linear-gradient(135deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 70%, #000000) 100%);
342
- color: white;
343
- border-bottom-right-radius: var(--radius-xs);
368
+ color: var(--text-on-accent);
369
+ border-radius: 22px 22px 6px 22px;
344
370
  box-shadow: var(--glow-accent-md), inset 1px 1px 0 rgba(255, 255, 255, 0.2);
345
371
  }
346
372
 
@@ -379,7 +405,7 @@
379
405
  gap: 8px;
380
406
  width: 100%;
381
407
  font-family: inherit;
382
- font-size: 0.94rem;
408
+ font-size: 1rem;
383
409
  line-height: 1.7;
384
410
  letter-spacing: 0.01em;
385
411
  word-break: break-word;
@@ -390,11 +416,12 @@
390
416
 
391
417
  .chat-paragraph {
392
418
  margin: 0;
393
- margin-bottom: 6px;
394
- line-height: 1.7;
419
+ margin-bottom: 8px;
420
+ line-height: 1.74;
421
+ letter-spacing: 0.005em;
395
422
  white-space: pre-wrap;
396
423
  word-break: break-word;
397
- color: var(--text-chat, var(--text-main));
424
+ color: var(--text-chat);
398
425
  }
399
426
 
400
427
  .chat-paragraph:last-child {
@@ -402,61 +429,51 @@
402
429
  }
403
430
 
404
431
  .chat-heading {
405
- font-weight: 700;
406
- color: var(--text-chat, var(--text-main));
407
- margin-top: 14px;
408
- margin-bottom: 6px;
432
+ font-weight: 600;
433
+ color: var(--text-main);
434
+ margin-top: 16px;
435
+ margin-bottom: 8px;
409
436
  line-height: 1.45;
437
+ letter-spacing: -0.015em;
410
438
  }
411
439
 
412
- .chat-heading-1 { font-size: 1.25rem; color: var(--text-chat, var(--text-main)); }
440
+ .chat-heading-1 { font-size: 1.3rem; color: var(--text-main); }
413
441
 
414
- .chat-heading-2 { font-size: 1.15rem; color: var(--text-chat, var(--text-main)); }
442
+ .chat-heading-2 { font-size: 1.18rem; color: var(--text-main); }
415
443
 
416
- .chat-heading-3 { font-size: 1.05rem; color: var(--text-chat, var(--text-main)); }
444
+ .chat-heading-3 { font-size: 1.06rem; color: var(--text-main); }
417
445
 
418
446
  .chat-section-title {
419
447
  font-size: 1.02rem;
420
- font-weight: 700;
421
- color: var(--text-chat, var(--text-main));
448
+ font-weight: 600;
449
+ color: var(--text-main);
422
450
  padding-bottom: 2px;
423
- margin-top: 12px;
424
- margin-bottom: 6px;
451
+ margin-top: 14px;
452
+ margin-bottom: 8px;
425
453
  }
426
454
 
427
455
  .chat-list-item {
428
456
  display: flex;
429
457
  align-items: flex-start;
430
- gap: 8px;
431
- margin: 3px 0 3px 4px;
432
- line-height: 1.7;
458
+ gap: 10px;
459
+ margin: 4px 0 4px 4px;
460
+ line-height: 1.74;
433
461
  }
434
462
 
435
463
  .chat-list-bullet {
436
- position: relative;
437
464
  display: inline-flex;
438
465
  align-items: center;
439
466
  justify-content: center;
440
467
  flex-shrink: 0;
441
- height: 1.7em;
442
468
  width: 14px;
443
- font-size: 0.94rem;
444
- line-height: 1.7;
445
- color: transparent;
469
+ font-size: 1.1rem;
470
+ line-height: 1.6;
471
+ color: var(--text-muted);
446
472
  user-select: none;
447
473
  }
448
474
 
449
475
  .chat-list-bullet::before {
450
- content: '';
451
- position: absolute;
452
- top: 50%;
453
- left: 50%;
454
- transform: translate(-50%, -50%);
455
- width: 7px;
456
- height: 7px;
457
- border-radius: 50%;
458
- background-color: var(--accent, #10b981);
459
- box-shadow: 0 0 5px color-mix(in srgb, var(--accent, #10b981) 35%, transparent);
476
+ display: none;
460
477
  }
461
478
 
462
479
  .chat-list-number {
@@ -477,7 +494,7 @@
477
494
  }
478
495
 
479
496
  .chat-link {
480
- color: var(--accent-hover, #34d399);
497
+ color: var(--interactive-fg-hover);
481
498
  text-decoration: underline;
482
499
  text-underline-offset: 3px;
483
500
  word-break: break-all;
@@ -491,17 +508,18 @@
491
508
 
492
509
  .chat-bold-highlight {
493
510
  font-weight: 600;
494
- color: var(--text-chat, var(--text-main));
511
+ color: var(--text-chat, var(--text-main, inherit));
495
512
  }
496
513
 
497
514
  .chat-inline-code {
498
- background: color-mix(in srgb, var(--text-chat, var(--text-main)) 12%, transparent);
499
- border: 1px solid color-mix(in srgb, var(--text-chat, var(--text-main)) 24%, transparent);
500
- padding: 2px 6px;
501
- border-radius: var(--radius-xs);
515
+ background: var(--bg-surface-soft);
516
+ border: 1px solid var(--border-default);
517
+ padding: 2px 7px;
518
+ border-radius: 6px;
502
519
  font-family: 'Fira Code', monospace;
503
- font-size: 0.88em;
504
- color: var(--text-chat, var(--text-main));
520
+ font-size: 0.86em;
521
+ color: var(--text-chat);
522
+ letter-spacing: -0.01em;
505
523
  }
506
524
 
507
525
  /* Typing Indicator */
@@ -555,16 +573,16 @@
555
573
  left: 20px;
556
574
  right: 20px;
557
575
  max-height: 250px;
558
- background: color-mix(in srgb, var(--card-bg, #18191c) 92%, #000 8%);
559
- border: 1px solid var(--border, rgba(255, 255, 255, 0.15));
576
+ background: var(--bg-overlay);
577
+ border: 1px solid var(--border-default);
560
578
  border-radius: var(--radius-2xl);
561
- box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(45, 212, 191, 0.15);
579
+ box-shadow: var(--shadow-lg);
562
580
  display: flex;
563
581
  flex-direction: column;
564
582
  overflow: hidden;
565
583
  z-index: 100;
566
- backdrop-filter: blur(16px);
567
- -webkit-backdrop-filter: blur(16px);
584
+ backdrop-filter: var(--glass-blur);
585
+ -webkit-backdrop-filter: var(--glass-blur);
568
586
  transform-origin: bottom center;
569
587
  animation: slashPopupFadeIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
570
588
  will-change: transform, opacity;
@@ -578,16 +596,16 @@
578
596
  padding: 9px 16px;
579
597
  font-size: 0.72rem;
580
598
  font-weight: 700;
581
- color: var(--accent, #2dd4bf);
582
- border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.08));
583
- background: rgba(0, 0, 0, 0.3);
599
+ color: var(--interactive-fg);
600
+ border-bottom: 1px solid var(--border-subtle);
601
+ background: var(--bg-surface-soft);
584
602
  letter-spacing: 0.04em;
585
- text-transform: uppercase;
603
+ text-transform: none;
586
604
  }
587
605
 
588
606
  .slash-suggestions-count {
589
607
  font-weight: 600;
590
- color: var(--text-muted, rgba(255, 255, 255, 0.5));
608
+ color: var(--text-muted);
591
609
  letter-spacing: 0.02em;
592
610
  text-transform: none;
593
611
  }
@@ -616,8 +634,8 @@
616
634
  font-size: 0.66rem;
617
635
  font-weight: 700;
618
636
  letter-spacing: 0.06em;
619
- text-transform: uppercase;
620
- color: var(--text-muted, rgba(255, 255, 255, 0.45));
637
+ text-transform: none;
638
+ color: var(--text-muted);
621
639
  }
622
640
 
623
641
  .slash-suggestion-item {
@@ -635,33 +653,33 @@
635
653
  }
636
654
 
637
655
  .slash-suggestion-item:hover {
638
- background: rgba(45, 212, 191, 0.06);
656
+ background: var(--bg-surface-hover);
639
657
  }
640
658
 
641
659
  .slash-suggestion-item.active {
642
- background: rgba(45, 212, 191, 0.12);
643
- box-shadow: inset 2px 0 0 var(--accent, #2dd4bf);
660
+ background: var(--bg-surface-soft);
661
+ box-shadow: inset 2px 0 0 var(--accent);
644
662
  }
645
663
 
646
664
  .slash-cmd-name {
647
665
  font-size: 0.84rem;
648
666
  font-weight: 600;
649
667
  font-family: var(--font-mono, monospace);
650
- color: var(--accent, #2dd4bf);
668
+ color: var(--interactive-fg);
651
669
  min-width: 128px;
652
670
  flex-shrink: 0;
653
671
  white-space: nowrap;
654
672
  }
655
673
 
656
674
  .slash-suggestion-item.active .slash-cmd-name {
657
- color: #5eead4;
675
+ color: var(--interactive-fg-hover);
658
676
  }
659
677
 
660
678
  .skill-badge {
661
679
  font-size: 0.7rem;
662
680
  font-weight: 600;
663
- color: var(--accent, #2dd4bf);
664
- background: rgba(45, 212, 191, 0.16);
681
+ color: var(--interactive-fg);
682
+ background: var(--accent-subtle);
665
683
  padding: 2px 7px;
666
684
  border-radius: var(--radius-sm);
667
685
  flex-shrink: 0;
@@ -678,7 +696,7 @@
678
696
  .slash-cmd-usage {
679
697
  font-size: 0.72rem;
680
698
  font-family: var(--font-mono, monospace);
681
- color: var(--text-muted, rgba(255, 255, 255, 0.4));
699
+ color: var(--text-muted);
682
700
  overflow: hidden;
683
701
  text-overflow: ellipsis;
684
702
  white-space: nowrap;
@@ -690,7 +708,7 @@
690
708
  gap: 10px;
691
709
  padding: 12px 16px;
692
710
  font-size: 0.8rem;
693
- color: var(--text-soft, rgba(255, 255, 255, 0.6));
711
+ color: var(--text-soft);
694
712
  }
695
713
 
696
714
  .slash-suggestions-empty .slash-cmd-name {
@@ -699,85 +717,19 @@
699
717
 
700
718
  .slash-suggestions-empty code {
701
719
  font-family: var(--font-mono, monospace);
702
- background: rgba(255, 255, 255, 0.08);
720
+ background: var(--bg-surface-soft);
703
721
  padding: 1px 6px;
704
722
  border-radius: var(--radius-sm);
705
723
  }
706
724
 
707
725
  .slash-cmd-desc {
708
726
  font-size: 0.8rem;
709
- color: var(--text-soft, rgba(255, 255, 255, 0.65));
727
+ color: var(--text-soft);
710
728
  overflow: hidden;
711
729
  text-overflow: ellipsis;
712
730
  white-space: nowrap;
713
731
  }
714
732
 
715
- .input-disclaimer {
716
- text-align: center;
717
- font-size: 0.7rem;
718
- color: var(--text-muted);
719
- opacity: 0.55;
720
- padding: 4px 20px 10px;
721
- margin: 0;
722
- flex-shrink: 0;
723
- line-height: 1.5;
724
- user-select: none;
725
- }
726
-
727
- /* Chat Header (Mint Agent title bar inside panel) */
728
-
729
- .chat-header {
730
- display: flex;
731
- align-items: center;
732
- gap: 12px;
733
- padding: 10px 18px;
734
- background: var(--chrome-bg);
735
- backdrop-filter: var(--glass-blur);
736
- -webkit-backdrop-filter: var(--glass-blur);
737
- border-bottom: 1px solid var(--border);
738
- position: sticky;
739
- top: 0;
740
- z-index: 50;
741
- height: 52px;
742
- flex-shrink: 0;
743
- }
744
-
745
- .chat-header-title {
746
- display: flex;
747
- align-items: center;
748
- gap: 8px;
749
- font-weight: 600;
750
- color: var(--text-main);
751
- font-size: 0.92rem;
752
- }
753
-
754
- .chat-header-logo {
755
- width: 20px;
756
- height: 20px;
757
- object-fit: contain;
758
- }
759
-
760
- .chat-header-clear-btn {
761
- margin-left: auto;
762
- flex-shrink: 0;
763
- display: flex;
764
- align-items: center;
765
- justify-content: center;
766
- width: 28px;
767
- height: 28px;
768
- border: 0;
769
- border-radius: var(--radius-sm);
770
- background: transparent;
771
- color: var(--text-muted);
772
- cursor: pointer;
773
- transition: background 0.16s ease, color 0.16s ease;
774
- }
775
-
776
- .chat-header-clear-btn:hover {
777
- background: var(--surface-strong);
778
- color: var(--text-main);
779
- }
780
-
781
733
  #chat-form {
782
734
  display: flex;
783
735
  gap: 12px;
@@ -826,7 +778,7 @@
826
778
  #chat-tool-btn,
827
779
  #screen-capture-btn {
828
780
  background: var(--accent);
829
- color: white;
781
+ color: var(--text-on-accent);
830
782
  border: none;
831
783
  width: 44px;
832
784
  height: 40px;
@@ -855,7 +807,7 @@
855
807
  }
856
808
 
857
809
  #mic-btn.listening {
858
- background: #ef4444;
810
+ background: var(--danger);
859
811
  /* Red color when listening */
860
812
  animation: pulse-mic 1.5s infinite;
861
813
  }
@@ -870,7 +822,7 @@
870
822
  #chat-tool-btn:hover,
871
823
  #screen-capture-btn:hover {
872
824
  background: color-mix(in srgb, var(--accent) 15%, transparent);
873
- color: var(--accent);
825
+ color: var(--interactive-fg);
874
826
  border-color: color-mix(in srgb, var(--accent) 40%, transparent);
875
827
  }
876
828
 
@@ -917,11 +869,11 @@
917
869
  ========================================================================== */
918
870
  .approval-card {
919
871
  width: 100%;
920
- background: var(--panel-bg, #18181b);
921
- border: 1px solid var(--border-light, rgba(255, 255, 255, 0.12));
872
+ background: var(--bg-surface-raised);
873
+ border: 1px solid var(--border-default);
922
874
  border-radius: var(--radius-xl, 14px);
923
875
  padding: 16px 18px;
924
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
876
+ box-shadow: var(--shadow-md);
925
877
  display: flex;
926
878
  flex-direction: column;
927
879
  align-items: stretch;
@@ -934,8 +886,8 @@
934
886
  }
935
887
 
936
888
  .approval-card[data-tier="dangerous"] {
937
- border-color: rgba(255, 255, 255, 0.15);
938
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
889
+ border-color: var(--border-strong);
890
+ box-shadow: var(--shadow-md);
939
891
  }
940
892
 
941
893
  .approval-card-header {
@@ -958,8 +910,8 @@
958
910
  width: 28px;
959
911
  height: 28px;
960
912
  border-radius: 7px;
961
- background: rgba(255, 255, 255, 0.06);
962
- border: 1px solid rgba(255, 255, 255, 0.1);
913
+ background: var(--bg-surface-soft);
914
+ border: 1px solid var(--border-subtle);
963
915
  display: flex;
964
916
  align-items: center;
965
917
  justify-content: center;
@@ -970,7 +922,7 @@
970
922
  .approval-title-text {
971
923
  font-size: 0.92rem;
972
924
  font-weight: 600;
973
- color: var(--text-main, #f4f4f5);
925
+ color: var(--text-main);
974
926
  letter-spacing: -0.01em;
975
927
  text-align: left;
976
928
  }
@@ -982,10 +934,10 @@
982
934
  font-size: 0.68rem;
983
935
  font-weight: 600;
984
936
  letter-spacing: 0.04em;
985
- text-transform: uppercase;
986
- background: rgba(255, 255, 255, 0.06);
987
- color: var(--text-muted, #a1a1aa);
988
- border: 1px solid rgba(255, 255, 255, 0.1);
937
+ text-transform: none;
938
+ background: var(--bg-surface-soft);
939
+ color: var(--text-muted);
940
+ border: 1px solid var(--border-subtle);
989
941
  }
990
942
 
991
943
  .approval-badge-chip.dangerous,
@@ -994,22 +946,22 @@
994
946
  .approval-badge-chip.mcp,
995
947
  .approval-badge-chip.command,
996
948
  .approval-badge-chip.default {
997
- background: rgba(255, 255, 255, 0.06);
998
- color: var(--text-muted, #a1a1aa);
999
- border-color: rgba(255, 255, 255, 0.1);
949
+ background: var(--bg-surface-soft);
950
+ color: var(--text-muted);
951
+ border-color: var(--border-subtle);
1000
952
  }
1001
953
 
1002
954
  .approval-content-box {
1003
955
  width: 100%;
1004
956
  box-sizing: border-box;
1005
- background: rgba(0, 0, 0, 0.32);
1006
- border: 1px solid rgba(255, 255, 255, 0.08);
957
+ background: var(--bg-surface-soft);
958
+ border: 1px solid var(--border-subtle);
1007
959
  border-radius: 9px;
1008
960
  padding: 10px 14px;
1009
961
  font-family: 'Fira Code', ui-monospace, monospace;
1010
962
  font-size: 0.84rem;
1011
963
  line-height: 1.5;
1012
- color: var(--text-main, #e4e4e7);
964
+ color: var(--text-main);
1013
965
  white-space: pre-wrap;
1014
966
  word-break: break-word;
1015
967
  max-height: 240px;
@@ -1031,7 +983,7 @@
1031
983
  .approval-reason-text {
1032
984
  width: 100%;
1033
985
  font-size: 0.78rem;
1034
- color: var(--text-muted, #94a3b8);
986
+ color: var(--text-muted);
1035
987
  line-height: 1.4;
1036
988
  margin-top: -4px;
1037
989
  text-align: left;
@@ -1061,8 +1013,8 @@
1061
1013
  justify-content: space-between;
1062
1014
  width: 100%;
1063
1015
  padding: 10px 13px;
1064
- background: rgba(255, 255, 255, 0.035);
1065
- border: 1px solid rgba(255, 255, 255, 0.08);
1016
+ background: var(--bg-surface-soft);
1017
+ border: 1px solid var(--border-subtle);
1066
1018
  border-radius: 10px;
1067
1019
  cursor: pointer;
1068
1020
  text-align: left;
@@ -1071,21 +1023,21 @@
1071
1023
  }
1072
1024
 
1073
1025
  .claude-choice-card:hover {
1074
- background: rgba(255, 255, 255, 0.075);
1075
- border-color: rgba(255, 255, 255, 0.22);
1026
+ background: var(--bg-surface-hover);
1027
+ border-color: var(--border-strong);
1076
1028
  transform: translateY(-1px);
1077
1029
  }
1078
1030
 
1079
1031
  .claude-choice-card.variant-approve:hover,
1080
1032
  .claude-choice-card.variant-session:hover,
1081
1033
  .claude-choice-card.variant-cancel:hover {
1082
- background: rgba(255, 255, 255, 0.075);
1083
- border-color: rgba(255, 255, 255, 0.22);
1034
+ background: var(--bg-surface-hover);
1035
+ border-color: var(--border-strong);
1084
1036
  }
1085
1037
 
1086
1038
  .claude-choice-card.selected {
1087
- background: rgba(255, 255, 255, 0.1);
1088
- border-color: rgba(255, 255, 255, 0.35);
1039
+ background: var(--bg-surface-hover);
1040
+ border-color: var(--border-strong);
1089
1041
  box-shadow: none;
1090
1042
  }
1091
1043
 
@@ -1101,29 +1053,29 @@
1101
1053
  width: 22px;
1102
1054
  height: 22px;
1103
1055
  border-radius: 6px;
1104
- background: rgba(255, 255, 255, 0.06);
1105
- border: 1px solid rgba(255, 255, 255, 0.12);
1056
+ background: var(--bg-surface-soft);
1057
+ border: 1px solid var(--border-default);
1106
1058
  display: flex;
1107
1059
  align-items: center;
1108
1060
  justify-content: center;
1109
1061
  font-family: 'Fira Code', ui-monospace, monospace;
1110
1062
  font-size: 0.72rem;
1111
1063
  font-weight: 700;
1112
- color: var(--text-muted, #a1a1aa);
1064
+ color: var(--text-muted);
1113
1065
  flex-shrink: 0;
1114
1066
  transition: all 0.15s ease;
1115
1067
  }
1116
1068
 
1117
1069
  .claude-choice-card:hover .claude-choice-key {
1118
- color: #ffffff;
1119
- border-color: rgba(255, 255, 255, 0.3);
1120
- background: rgba(255, 255, 255, 0.12);
1070
+ color: var(--text-main);
1071
+ border-color: var(--border-strong);
1072
+ background: var(--bg-surface-hover);
1121
1073
  }
1122
1074
 
1123
1075
  .claude-choice-card.selected .claude-choice-key {
1124
- background: rgba(255, 255, 255, 0.2);
1125
- color: #ffffff;
1126
- border-color: rgba(255, 255, 255, 0.4);
1076
+ background: var(--bg-surface-hover);
1077
+ color: var(--text-main);
1078
+ border-color: var(--border-strong);
1127
1079
  }
1128
1080
 
1129
1081
  .claude-choice-text {
@@ -1137,14 +1089,14 @@
1137
1089
  .claude-choice-title {
1138
1090
  font-size: 0.85rem;
1139
1091
  font-weight: 650;
1140
- color: var(--text-main, #f4f4f5);
1092
+ color: var(--text-main);
1141
1093
  line-height: 1.3;
1142
1094
  text-align: left;
1143
1095
  }
1144
1096
 
1145
1097
  .claude-choice-desc {
1146
1098
  font-size: 0.74rem;
1147
- color: var(--text-muted, #a1a1aa);
1099
+ color: var(--text-muted);
1148
1100
  line-height: 1.35;
1149
1101
  text-align: left;
1150
1102
  }
@@ -1160,12 +1112,12 @@
1160
1112
  }
1161
1113
 
1162
1114
  .claude-choice-card:hover .claude-choice-right {
1163
- color: var(--text-main, #f4f4f5);
1115
+ color: var(--text-main);
1164
1116
  transform: translateX(2px);
1165
1117
  }
1166
1118
 
1167
1119
  .claude-choice-card.selected .claude-choice-right {
1168
- color: #ffffff;
1120
+ color: var(--text-main);
1169
1121
  }
1170
1122
 
1171
1123
  .claude-choice-custom-box {
@@ -1180,10 +1132,10 @@
1180
1132
  width: 100%;
1181
1133
  box-sizing: border-box;
1182
1134
  padding: 9px 12px;
1183
- background: rgba(0, 0, 0, 0.25);
1184
- border: 1px solid rgba(255, 255, 255, 0.1);
1135
+ background: var(--bg-input);
1136
+ border: 1px solid var(--border-default);
1185
1137
  border-radius: 8px;
1186
- color: var(--text-main, #f4f4f5);
1138
+ color: var(--text-main);
1187
1139
  font-size: 0.84rem;
1188
1140
  font-family: inherit;
1189
1141
  outline: none;
@@ -1191,12 +1143,12 @@
1191
1143
  }
1192
1144
 
1193
1145
  .claude-choice-input:focus {
1194
- border-color: var(--accent, #10b981);
1195
- box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);
1146
+ border-color: var(--accent);
1147
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);
1196
1148
  }
1197
1149
 
1198
1150
  .approval-btn {
1199
- border: 1px solid rgba(255, 255, 255, 0.14);
1151
+ border: 1px solid var(--border-default);
1200
1152
  border-radius: var(--radius-sm);
1201
1153
  color: var(--text-main);
1202
1154
  cursor: pointer;
@@ -1223,6 +1175,7 @@
1223
1175
  gap: 8px;
1224
1176
  margin-bottom: 8px;
1225
1177
  margin-top: 0;
1178
+ min-width: 0;
1226
1179
  max-width: 100%;
1227
1180
  }
1228
1181
 
@@ -1259,6 +1212,7 @@
1259
1212
  border-radius: 0;
1260
1213
  color: var(--text-main);
1261
1214
  width: 100%;
1215
+ min-width: 0;
1262
1216
  max-width: 100%;
1263
1217
  padding: 4px 0;
1264
1218
  box-shadow: none;
@@ -1271,23 +1225,23 @@
1271
1225
  display: flex;
1272
1226
  align-items: center;
1273
1227
  gap: 6px;
1274
- color: var(--accent);
1228
+ color: var(--interactive-fg);
1275
1229
  font-weight: 500;
1276
1230
  transition: color 0.15s ease;
1277
1231
  }
1278
1232
 
1279
1233
  .file-changes-toggle:hover {
1280
- color: var(--accent-hover, var(--accent));
1234
+ color: var(--interactive-fg-hover);
1281
1235
  }
1282
1236
 
1283
1237
  .file-changes-rewind-btn {
1284
1238
  display: inline-flex;
1285
1239
  align-items: center;
1286
1240
  gap: 4px;
1287
- padding: 2px 8px;
1241
+ padding: 5px 10px;
1288
1242
  font-size: 0.72rem;
1289
- border-radius: var(--radius-xs, 4px);
1290
- background: var(--hover-delete-bg, rgba(239, 68, 68, 0.1));
1243
+ border-radius: var(--radius-sm, 6px);
1244
+ background: transparent;
1291
1245
  color: var(--status-error, #f87171);
1292
1246
  border: 1px solid color-mix(in srgb, var(--status-error, #ef4444) 30%, transparent);
1293
1247
  cursor: pointer;
@@ -1301,21 +1255,131 @@
1301
1255
  }
1302
1256
 
1303
1257
  .file-changes-card {
1304
- border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border)) !important;
1258
+ border: 1px solid var(--border) !important;
1305
1259
  border-radius: var(--radius-md, 8px) !important;
1306
- padding: 10px !important;
1260
+ padding: 0 !important;
1307
1261
  background: var(--surface-bg, #1e1e20) !important;
1308
1262
  margin-top: 4px;
1263
+ overflow: hidden;
1264
+ display: flex;
1265
+ flex-direction: column;
1309
1266
  }
1310
1267
 
1311
- .file-changes-item {
1268
+ .file-changes-summary-row {
1269
+ align-items: center;
1270
+ display: flex;
1271
+ gap: 12px;
1272
+ justify-content: space-between;
1273
+ min-height: 48px;
1274
+ padding: 8px 12px;
1312
1275
  border-bottom: 1px solid var(--border);
1313
- padding-bottom: 4px;
1276
+ }
1277
+
1278
+ .file-changes-summary {
1279
+ align-items: center;
1280
+ display: flex;
1281
+ gap: 8px;
1282
+ min-width: 0;
1283
+ }
1284
+
1285
+ .file-changes-summary-copy {
1286
+ display: flex;
1287
+ flex-direction: column;
1288
+ gap: 2px;
1289
+ min-width: 0;
1290
+ }
1291
+
1292
+ .file-changes-summary-icon {
1293
+ align-items: center;
1294
+ background: color-mix(in srgb, var(--accent) 12%, transparent);
1295
+ border-radius: 7px;
1296
+ color: var(--interactive-fg);
1297
+ display: inline-flex;
1298
+ flex: 0 0 30px;
1299
+ font-size: 1rem;
1300
+ font-weight: 700;
1301
+ height: 30px;
1302
+ justify-content: center;
1303
+ }
1304
+
1305
+ .file-changes-summary-label {
1306
+ color: var(--text-main);
1307
+ font-size: 0.84rem;
1308
+ font-weight: 600;
1309
+ }
1310
+
1311
+ .file-changes-summary-counts {
1312
+ display: inline-flex;
1313
+ gap: 5px;
1314
+ font-size: 0.75rem;
1315
+ line-height: 1.2;
1316
+ }
1317
+
1318
+ .file-changes-summary-actions {
1319
+ align-items: center;
1320
+ display: inline-flex;
1321
+ flex: 0 0 auto;
1322
+ gap: 7px;
1323
+ }
1324
+
1325
+ .file-changes-review-btn {
1326
+ background: color-mix(in srgb, var(--text-main) 5%, transparent);
1327
+ border: 1px solid var(--border);
1328
+ border-radius: var(--radius-xs, 5px);
1329
+ color: var(--text-main);
1330
+ cursor: pointer;
1331
+ font: inherit;
1332
+ font-size: 0.75rem;
1333
+ padding: 5px 10px;
1334
+ transition: background 0.15s ease, border-color 0.15s ease;
1335
+ }
1336
+
1337
+ .file-changes-review-btn:hover {
1338
+ background: color-mix(in srgb, var(--text-main) 10%, transparent);
1339
+ border-color: var(--border-light, var(--border));
1340
+ }
1341
+
1342
+ .file-changes-item {
1343
+ border: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
1344
+ border-radius: var(--radius-xs, 5px);
1345
+ padding: 2px 4px;
1314
1346
  }
1315
1347
 
1316
1348
  .file-changes-item:last-child {
1317
- border-bottom: none;
1318
- padding-bottom: 0;
1349
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 75%, transparent);
1350
+ }
1351
+
1352
+ .file-changes-list-container {
1353
+ padding: 0 12px 10px;
1354
+ }
1355
+
1356
+ .file-changes-show-more {
1357
+ align-items: center;
1358
+ background: color-mix(in srgb, var(--text-main) 5%, transparent);
1359
+ border: 0;
1360
+ border-radius: var(--radius-xs, 5px);
1361
+ color: var(--text-soft, var(--text-main));
1362
+ cursor: pointer;
1363
+ display: flex;
1364
+ font: inherit;
1365
+ font-size: 0.76rem;
1366
+ justify-content: flex-start;
1367
+ gap: 7px;
1368
+ padding: 7px 9px;
1369
+ text-align: left;
1370
+ }
1371
+
1372
+ .file-changes-show-more:hover {
1373
+ background: color-mix(in srgb, var(--text-main) 9%, transparent);
1374
+ }
1375
+
1376
+ .file-changes-show-more span {
1377
+ color: var(--text-muted);
1378
+ transition: transform 0.15s ease;
1379
+ }
1380
+
1381
+ .file-changes-show-more span.is-expanded {
1382
+ transform: rotate(180deg);
1319
1383
  }
1320
1384
 
1321
1385
  .file-changes-item-header {
@@ -1339,7 +1403,7 @@
1339
1403
  }
1340
1404
 
1341
1405
  .file-changes-filename.is-new {
1342
- color: var(--accent);
1406
+ color: var(--interactive-fg);
1343
1407
  }
1344
1408
 
1345
1409
  .file-changes-dirpath {
@@ -1352,7 +1416,7 @@
1352
1416
  .file-changes-badge-new {
1353
1417
  font-size: 0.68rem;
1354
1418
  font-weight: 700;
1355
- color: var(--accent);
1419
+ color: var(--interactive-fg);
1356
1420
  margin-left: 8px;
1357
1421
  padding: 1px 6px;
1358
1422
  border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
@@ -1362,7 +1426,7 @@
1362
1426
  }
1363
1427
 
1364
1428
  .file-changes-count-add {
1365
- color: var(--accent);
1429
+ color: var(--interactive-fg);
1366
1430
  font-weight: 600;
1367
1431
  }
1368
1432
 
@@ -1376,10 +1440,10 @@
1376
1440
  align-items: center;
1377
1441
  gap: 3px;
1378
1442
  padding: 1px 6px;
1379
- fontSize: 0.68rem;
1443
+ font-size: 0.68rem;
1380
1444
  border-radius: var(--radius-xs, 4px);
1381
1445
  background: color-mix(in srgb, var(--accent) 14%, transparent);
1382
- color: var(--accent);
1446
+ color: var(--interactive-fg);
1383
1447
  border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
1384
1448
  cursor: pointer;
1385
1449
  font-weight: 500;
@@ -1388,7 +1452,7 @@
1388
1452
 
1389
1453
  .file-changes-preview-btn:hover {
1390
1454
  background: color-mix(in srgb, var(--accent) 22%, transparent);
1391
- color: var(--accent-hover, var(--accent));
1455
+ color: var(--interactive-fg-hover);
1392
1456
  }
1393
1457
 
1394
1458
  .file-changes-diff-box {
@@ -1433,7 +1497,7 @@
1433
1497
  }
1434
1498
 
1435
1499
  .file-changes-diff-sign-add {
1436
- color: var(--accent);
1500
+ color: var(--interactive-fg);
1437
1501
  margin-right: 6px;
1438
1502
  user-select: none;
1439
1503
  font-weight: 600;
@@ -1441,6 +1505,203 @@
1441
1505
  min-width: 10px;
1442
1506
  }
1443
1507
 
1508
+ /* Full-panel code review view */
1509
+ .code-review-page {
1510
+ display: flex;
1511
+ flex: 1 1 auto;
1512
+ flex-direction: column;
1513
+ min-height: 0;
1514
+ overflow: hidden;
1515
+ background: var(--app-bg, var(--input-bg, #111114));
1516
+ }
1517
+
1518
+ .code-review-toolbar {
1519
+ align-items: center;
1520
+ border-bottom: 1px solid var(--border);
1521
+ display: flex;
1522
+ flex: 0 0 auto;
1523
+ gap: 14px;
1524
+ min-height: 48px;
1525
+ padding: 0 16px;
1526
+ }
1527
+
1528
+ .code-review-back,
1529
+ .code-review-tab {
1530
+ align-items: center;
1531
+ display: inline-flex;
1532
+ gap: 7px;
1533
+ }
1534
+
1535
+ .code-review-back {
1536
+ background: transparent;
1537
+ border: 0;
1538
+ color: var(--text-muted);
1539
+ cursor: pointer;
1540
+ font: inherit;
1541
+ font-size: 0.78rem;
1542
+ padding: 6px 4px;
1543
+ }
1544
+
1545
+ .code-review-back:hover { color: var(--text-main); }
1546
+
1547
+ .code-review-tab {
1548
+ align-self: stretch;
1549
+ border-bottom: 2px solid var(--accent);
1550
+ color: var(--text-main);
1551
+ font-size: 0.82rem;
1552
+ padding: 0 12px;
1553
+ }
1554
+
1555
+ .code-review-toolbar-title {
1556
+ color: var(--text-muted);
1557
+ font-size: 0.76rem;
1558
+ overflow: hidden;
1559
+ text-overflow: ellipsis;
1560
+ white-space: nowrap;
1561
+ }
1562
+
1563
+ .code-review-summary {
1564
+ align-items: center;
1565
+ border-bottom: 1px solid var(--border);
1566
+ display: flex;
1567
+ flex: 0 0 auto;
1568
+ gap: 10px;
1569
+ min-height: 42px;
1570
+ padding: 0 16px;
1571
+ color: var(--text-soft, var(--text-main));
1572
+ font-size: 0.78rem;
1573
+ }
1574
+
1575
+ .code-review-file-total {
1576
+ border-left: 1px solid var(--border);
1577
+ color: var(--text-muted);
1578
+ margin-left: 2px;
1579
+ padding-left: 10px;
1580
+ }
1581
+
1582
+ .code-review-layout {
1583
+ display: grid;
1584
+ flex: 1 1 auto;
1585
+ grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
1586
+ min-height: 0;
1587
+ }
1588
+
1589
+ .code-review-diff {
1590
+ min-width: 0;
1591
+ overflow: auto;
1592
+ }
1593
+
1594
+ .code-review-file-heading {
1595
+ align-items: center;
1596
+ background: var(--surface-bg, #1e1e20);
1597
+ border-bottom: 1px solid var(--border);
1598
+ display: flex;
1599
+ gap: 9px;
1600
+ min-height: 38px;
1601
+ padding: 0 12px;
1602
+ position: sticky;
1603
+ top: 0;
1604
+ z-index: 1;
1605
+ }
1606
+
1607
+ .code-review-filetype {
1608
+ align-items: center;
1609
+ background: color-mix(in srgb, var(--accent) 13%, transparent);
1610
+ border-radius: 4px;
1611
+ color: var(--interactive-fg);
1612
+ display: inline-flex;
1613
+ font-size: 0.58rem;
1614
+ font-weight: 700;
1615
+ height: 19px;
1616
+ justify-content: center;
1617
+ min-width: 22px;
1618
+ padding: 0 4px;
1619
+ }
1620
+
1621
+ .code-review-path {
1622
+ flex: 1 1 auto;
1623
+ font-size: 0.76rem;
1624
+ min-width: 0;
1625
+ overflow: hidden;
1626
+ text-overflow: ellipsis;
1627
+ white-space: nowrap;
1628
+ }
1629
+
1630
+ .code-review-code {
1631
+ font-family: 'Fira Code', 'Cascadia Code', Consolas, monospace;
1632
+ font-size: 0.76rem;
1633
+ line-height: 1.55;
1634
+ padding: 10px 0 24px;
1635
+ }
1636
+
1637
+ .code-review-hunk + .code-review-hunk { border-top: 1px solid var(--border); margin-top: 12px; padding-top: 12px; }
1638
+
1639
+ .code-review-line {
1640
+ align-items: stretch;
1641
+ display: grid;
1642
+ grid-template-columns: 48px 22px minmax(0, 1fr);
1643
+ min-height: 23px;
1644
+ white-space: pre-wrap;
1645
+ overflow-wrap: anywhere;
1646
+ }
1647
+
1648
+ .code-review-line.is-added { background: color-mix(in srgb, var(--accent) 13%, transparent); }
1649
+ .code-review-line.is-deleted { background: color-mix(in srgb, var(--status-error, #ef4444) 12%, transparent); }
1650
+ .code-review-line-number { color: var(--text-muted); padding-right: 10px; text-align: right; user-select: none; }
1651
+ .code-review-sign { color: var(--text-muted); text-align: center; user-select: none; }
1652
+ .code-review-line.is-added .code-review-sign { color: var(--interactive-fg); }
1653
+ .code-review-line.is-deleted .code-review-sign { color: var(--status-error, #ef4444); }
1654
+ .code-review-line code { color: var(--text-main); font: inherit; padding-right: 14px; }
1655
+
1656
+ .code-review-file-list {
1657
+ background: color-mix(in srgb, var(--surface-bg, #1e1e20) 75%, transparent);
1658
+ border-left: 1px solid var(--border);
1659
+ min-width: 0;
1660
+ overflow: auto;
1661
+ padding: 10px;
1662
+ }
1663
+
1664
+ .code-review-file-list-title {
1665
+ align-items: center;
1666
+ color: var(--text-muted);
1667
+ display: flex;
1668
+ font-size: 0.72rem;
1669
+ font-weight: 600;
1670
+ justify-content: space-between;
1671
+ padding: 3px 6px 9px;
1672
+ }
1673
+
1674
+ .code-review-file-list-title span { color: var(--text-muted); font-weight: 400; }
1675
+
1676
+ .code-review-file-option {
1677
+ align-items: center;
1678
+ background: transparent;
1679
+ border: 1px solid transparent;
1680
+ border-radius: var(--radius-xs, 5px);
1681
+ color: var(--text-main);
1682
+ cursor: pointer;
1683
+ display: flex;
1684
+ gap: 8px;
1685
+ justify-content: space-between;
1686
+ margin-bottom: 3px;
1687
+ padding: 8px 7px;
1688
+ text-align: left;
1689
+ width: 100%;
1690
+ }
1691
+
1692
+ .code-review-file-option:hover { background: color-mix(in srgb, var(--text-main) 5%, transparent); }
1693
+ .code-review-file-option.is-selected { background: color-mix(in srgb, var(--text-main) 8%, transparent); border-color: var(--border); }
1694
+ .code-review-file-option-copy { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
1695
+ .code-review-file-option-copy strong { font-size: 0.74rem; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1696
+ .code-review-file-option-copy small { color: var(--text-muted); font-size: 0.64rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1697
+ .code-review-file-option-counts { display: flex; flex: 0 0 auto; gap: 5px; font-size: 0.68rem; }
1698
+ .code-review-empty { color: var(--text-muted); font-size: 0.8rem; padding: 24px; }
1699
+
1700
+ @media (max-width: 760px) {
1701
+ .code-review-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
1702
+ .code-review-file-list { border-left: 0; border-top: 1px solid var(--border); max-height: 180px; }
1703
+ }
1704
+
1444
1705
 
1445
1706
  .agent-activity-card-history {
1446
1707
  padding-top: 0;
@@ -1539,28 +1800,27 @@
1539
1800
  .agent-activity-list {
1540
1801
  display: flex;
1541
1802
  flex-direction: column;
1542
- border: 1px solid var(--border);
1543
- border-radius: var(--radius-md);
1544
- overflow: hidden;
1545
- background: var(--panel-bg, #141416);
1803
+ gap: 6px;
1804
+ border: none;
1805
+ border-radius: 0;
1806
+ background: transparent;
1807
+ overflow: visible;
1546
1808
  }
1547
1809
 
1548
1810
  .agent-activity-item {
1549
1811
  display: flex;
1550
1812
  align-items: center;
1551
1813
  gap: 10px;
1552
- min-height: 34px;
1814
+ min-height: 36px;
1553
1815
  padding: 6px 12px;
1554
- border-bottom: 1px solid var(--border);
1816
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1817
+ border-radius: var(--radius-sm, 6px);
1818
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent);
1555
1819
  color: var(--text-soft);
1556
- font-size: 0.84rem;
1820
+ font-size: 0.82rem;
1557
1821
  transition: background 0.15s ease, color 0.15s ease;
1558
1822
  }
1559
1823
 
1560
- .agent-activity-item:last-child {
1561
- border-bottom: 0;
1562
- }
1563
-
1564
1824
  .agent-activity-item:hover {
1565
1825
  background: var(--panel-soft);
1566
1826
  color: var(--text-main);
@@ -1631,7 +1891,7 @@
1631
1891
  .agent-activity-inline-result {
1632
1892
  font-family: var(--font-mono, ui-monospace, monospace);
1633
1893
  font-size: 0.76rem;
1634
- color: var(--accent, #38bdf8);
1894
+ color: var(--interactive-fg);
1635
1895
  font-weight: 500;
1636
1896
  flex-shrink: 0;
1637
1897
  background: color-mix(in srgb, var(--accent, #38bdf8) 10%, transparent);
@@ -1649,11 +1909,11 @@
1649
1909
  }
1650
1910
 
1651
1911
  .agent-activity-status-check {
1652
- color: var(--accent, #10b981);
1912
+ color: var(--interactive-fg);
1653
1913
  }
1654
1914
 
1655
1915
  .agent-activity-status-spin {
1656
- color: var(--accent, #38bdf8);
1916
+ color: var(--interactive-fg);
1657
1917
  animation: spin 1.2s linear infinite;
1658
1918
  }
1659
1919
 
@@ -1697,11 +1957,10 @@
1697
1957
  /* ── Grouped Activity Styling ───────────────────────────── */
1698
1958
 
1699
1959
  .agent-activity-group {
1700
- border-bottom: 1px solid var(--border);
1701
- }
1702
-
1703
- .agent-activity-group:last-child {
1704
- border-bottom: 0;
1960
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1961
+ border-radius: var(--radius-sm, 6px);
1962
+ overflow: hidden;
1963
+ background: var(--bg-surface-soft, rgba(255, 255, 255, 0.03));
1705
1964
  }
1706
1965
 
1707
1966
  .agent-activity-group-header {
@@ -1745,9 +2004,9 @@
1745
2004
  font-size: 0.68rem;
1746
2005
  font-weight: 600;
1747
2006
  letter-spacing: 0.02em;
1748
- color: var(--text-muted, #94a3b8);
1749
- background: rgba(255, 255, 255, 0.05);
1750
- border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
2007
+ color: var(--text-muted);
2008
+ background: var(--bg-surface-soft);
2009
+ border: 1px solid var(--border-subtle);
1751
2010
  border-radius: 10px;
1752
2011
  }
1753
2012
 
@@ -1770,8 +2029,8 @@
1770
2029
  }
1771
2030
 
1772
2031
  .agent-activity-subitem:hover {
1773
- background: rgba(255, 255, 255, 0.04);
1774
- color: var(--text-main, #f1f5f9);
2032
+ background: var(--bg-surface-soft);
2033
+ color: var(--text-main);
1775
2034
  }
1776
2035
 
1777
2036
  .agent-activity-tree-bullet {
@@ -1829,7 +2088,7 @@
1829
2088
 
1830
2089
  .thinking-block {
1831
2090
  margin: 6px 0 10px 0;
1832
- border-radius: var(--radius-md, 8px);
2091
+ border-radius: var(--radius-xl, 16px);
1833
2092
  border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
1834
2093
  background: var(--panel-soft, rgba(255, 255, 255, 0.02));
1835
2094
  overflow: hidden;
@@ -1849,13 +2108,14 @@
1849
2108
  .thinking-block-header {
1850
2109
  display: flex;
1851
2110
  align-items: center;
1852
- gap: 8px;
2111
+ gap: 10px;
1853
2112
  width: 100%;
1854
- padding: 7px 12px;
1855
- background: transparent;
2113
+ min-height: 36px;
2114
+ padding: 6px 12px;
2115
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent);
1856
2116
  border: 0;
1857
2117
  color: var(--text-muted, #94a3b8);
1858
- font-size: 0.76rem;
2118
+ font-size: 0.82rem;
1859
2119
  font-weight: 500;
1860
2120
  cursor: pointer;
1861
2121
  text-align: left;
@@ -1864,8 +2124,8 @@
1864
2124
  }
1865
2125
 
1866
2126
  .thinking-block-header:hover {
1867
- background: rgba(255, 255, 255, 0.03);
1868
- color: var(--text-main, #f1f5f9);
2127
+ background: var(--panel-soft);
2128
+ color: var(--text-main);
1869
2129
  }
1870
2130
 
1871
2131
  .thinking-block-icon {
@@ -1944,7 +2204,7 @@
1944
2204
  font-size: 11px;
1945
2205
  font-weight: 600;
1946
2206
  letter-spacing: 0.03em;
1947
- text-transform: uppercase;
2207
+ text-transform: none;
1948
2208
  color: var(--text-muted, #94a3b8);
1949
2209
  opacity: 0.65;
1950
2210
  margin-bottom: 4px;
@@ -2002,13 +2262,8 @@
2002
2262
  .thinking-block-step-body strong {
2003
2263
  font-size: inherit;
2004
2264
  font-weight: 600;
2005
- color: var(--text-main, #e2e8f0);
2006
- opacity: 0.92;
2007
- }
2008
-
2009
- [data-theme="light"] .thinking-block-content .chat-bold-highlight {
2010
- color: var(--text-main, #334155);
2011
- opacity: 0.92;
2265
+ color: var(--text-secondary);
2266
+ opacity: 1;
2012
2267
  }
2013
2268
 
2014
2269
  .thinking-block-content .chat-list-block {
@@ -2136,6 +2391,130 @@
2136
2391
  }
2137
2392
  }
2138
2393
 
2394
+ /* Extended Thinking inherits clean neutral styling directly from .thinking-block */
2395
+
2396
+ /* Inline Thought Note (short agent notes rendered as normal plain text) */
2397
+
2398
+ .inline-thought-note {
2399
+ display: block;
2400
+ padding: 4px 0 6px 0;
2401
+ margin: 4px 0 6px 0;
2402
+ background: transparent;
2403
+ border: none;
2404
+ border-radius: 0;
2405
+ color: var(--text-main, #f1f5f9);
2406
+ font-size: 0.92rem;
2407
+ line-height: 1.6;
2408
+ animation: agent-activity-slide-up-fade 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
2409
+ }
2410
+
2411
+ .inline-thought-note-text {
2412
+ word-break: break-word;
2413
+ white-space: pre-wrap;
2414
+ color: inherit;
2415
+ font-size: inherit;
2416
+ line-height: inherit;
2417
+ }
2418
+
2419
+ .inline-thought-note .chat-formatted-body {
2420
+ font-size: inherit;
2421
+ color: inherit;
2422
+ line-height: inherit;
2423
+ }
2424
+
2425
+ .inline-thought-note .chat-formatted-body p {
2426
+ margin: 0 0 6px 0;
2427
+ color: inherit;
2428
+ font-size: inherit;
2429
+ line-height: inherit;
2430
+ }
2431
+
2432
+ .inline-thought-note .chat-formatted-body p:last-child {
2433
+ margin-bottom: 0;
2434
+ }
2435
+
2436
+ .agent-activity-timeline {
2437
+ display: flex;
2438
+ flex-direction: column;
2439
+ gap: 4px;
2440
+ margin-bottom: 8px;
2441
+ }
2442
+
2443
+ /* Unified Timeline: Extended Thinking row inside Activity Drawer */
2444
+ .agent-activity-thought-step {
2445
+ margin: 0;
2446
+ border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
2447
+ border-radius: var(--radius-sm, 6px);
2448
+ background: var(--bg-surface-soft, rgba(255, 255, 255, 0.03));
2449
+ overflow: hidden;
2450
+ }
2451
+
2452
+ .agent-activity-thought-header {
2453
+ display: flex;
2454
+ align-items: center;
2455
+ gap: 10px;
2456
+ min-height: 36px;
2457
+ padding: 6px 12px;
2458
+ border-radius: var(--radius-sm, 6px);
2459
+ cursor: pointer;
2460
+ color: var(--text-muted, #94a3b8);
2461
+ font-size: 0.82rem;
2462
+ font-weight: 500;
2463
+ background: color-mix(in srgb, var(--panel-soft) 40%, transparent);
2464
+ transition: background 0.15s ease, color 0.15s ease;
2465
+ user-select: none;
2466
+ }
2467
+
2468
+ .agent-activity-thought-header:hover {
2469
+ background: var(--panel-soft);
2470
+ color: var(--text-main, #f1f5f9);
2471
+ }
2472
+
2473
+ .agent-activity-thought-header .agent-activity-kind-icon {
2474
+ color: var(--text-muted, #94a3b8);
2475
+ }
2476
+
2477
+ .agent-activity-thought-title {
2478
+ flex: 1;
2479
+ min-width: 0;
2480
+ font-size: 0.82rem;
2481
+ font-weight: 500;
2482
+ color: var(--text-main, #f1f5f9);
2483
+ overflow: hidden;
2484
+ text-overflow: ellipsis;
2485
+ white-space: nowrap;
2486
+ letter-spacing: 0.01em;
2487
+ }
2488
+
2489
+ .agent-activity-thought-meta {
2490
+ color: var(--text-muted);
2491
+ font-weight: 500;
2492
+ }
2493
+
2494
+ .agent-activity-thought-cursor {
2495
+ display: inline-block;
2496
+ margin-left: 2px;
2497
+ color: var(--interactive-fg);
2498
+ animation: agent-thought-cursor-blink 0.9s steps(1) infinite;
2499
+ }
2500
+
2501
+ @keyframes agent-thought-cursor-blink {
2502
+ 50% { opacity: 0; }
2503
+ }
2504
+
2505
+ .agent-activity-thought-body {
2506
+ padding: 8px 12px 8px 28px;
2507
+ font-size: 0.8rem;
2508
+ line-height: 1.5;
2509
+ color: var(--text-muted, #cbd5e1);
2510
+ background: rgba(0, 0, 0, 0.12);
2511
+ border-radius: var(--radius-sm, 6px);
2512
+ margin: 2px 0 4px 0;
2513
+ max-height: 300px;
2514
+ overflow-y: auto;
2515
+ user-select: text;
2516
+ }
2517
+
2139
2518
  /* Smart Context Toggle */
2140
2519
 
2141
2520
  .smart-context-bar {
@@ -2154,7 +2533,7 @@
2154
2533
  }
2155
2534
 
2156
2535
  .smart-context-control.is-active .smart-context-label {
2157
- color: var(--accent);
2536
+ color: var(--interactive-fg);
2158
2537
  }
2159
2538
 
2160
2539
  .smart-context-label {
@@ -2182,6 +2561,7 @@
2182
2561
  cursor: pointer;
2183
2562
  top: 0; left: 0; right: 0; bottom: 0;
2184
2563
  background-color: rgba(255, 255, 255, 0.2);
2564
+ border: 1px solid transparent;
2185
2565
  transition: .4s;
2186
2566
  }
2187
2567
 
@@ -2193,15 +2573,18 @@
2193
2573
  left: 3px;
2194
2574
  bottom: 3px;
2195
2575
  background-color: white;
2576
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
2196
2577
  transition: .4s;
2197
2578
  }
2198
2579
 
2199
2580
  input:checked + .slider {
2200
2581
  background-color: var(--accent);
2582
+ border-color: color-mix(in srgb, var(--accent) 70%, var(--border-strong, rgba(255, 255, 255, 0.2)));
2201
2583
  }
2202
2584
 
2203
2585
  input:checked + .slider:before {
2204
2586
  transform: translateX(14px);
2587
+ background-color: var(--accent-contrast, #ffffff);
2205
2588
  }
2206
2589
 
2207
2590
  .slider.round {
@@ -2249,10 +2632,6 @@ input:checked + .slider:before {
2249
2632
  }
2250
2633
 
2251
2634
  .suggestion-card:hover {
2252
- /* background/shadow were a fixed purple (rgba(143, 108, 245, ...))
2253
- unrelated to border-color right below, which already used
2254
- var(--accent) — switched both to match so the whole hover state
2255
- tracks whatever accent color the user picks. */
2256
2635
  background: color-mix(in srgb, var(--accent) 8%, transparent);
2257
2636
  border-color: var(--accent);
2258
2637
  transform: translateY(-3px);
@@ -2305,7 +2684,7 @@ input:checked + .slider:before {
2305
2684
  }
2306
2685
 
2307
2686
  .conversation-panel.is-empty {
2308
- justify-content: center;
2687
+ justify-content: flex-start;
2309
2688
  }
2310
2689
 
2311
2690
  .conversation-panel.is-empty .chat-container {
@@ -2318,6 +2697,41 @@ input:checked + .slider:before {
2318
2697
  transform: translateY(-7vh);
2319
2698
  }
2320
2699
 
2700
+ .empty-chat-prompt-wrap {
2701
+ display: flex;
2702
+ flex-direction: column;
2703
+ align-items: center;
2704
+ gap: 12px;
2705
+ margin: 0 0 28px;
2706
+ }
2707
+
2708
+ .empty-chat-prompt-wrap .empty-chat-prompt {
2709
+ margin: 0;
2710
+ }
2711
+
2712
+ .empty-chat-project-badge {
2713
+ display: inline-flex;
2714
+ align-items: center;
2715
+ gap: 7px;
2716
+ padding: 5px 14px;
2717
+ background: rgba(255, 255, 255, 0.05);
2718
+ border: 1px solid rgba(255, 255, 255, 0.08);
2719
+ border-radius: 9999px;
2720
+ font-size: 0.85rem;
2721
+ color: var(--text-muted, #94a3b8);
2722
+ letter-spacing: -0.01em;
2723
+ }
2724
+
2725
+ .empty-chat-project-badge svg {
2726
+ color: var(--flavor-teal, #2dd4bf);
2727
+ flex-shrink: 0;
2728
+ }
2729
+
2730
+ .empty-chat-project-badge strong {
2731
+ color: var(--text-primary, #f1f5f9);
2732
+ font-weight: 600;
2733
+ }
2734
+
2321
2735
  .empty-chat-prompt {
2322
2736
  margin: 0 0 28px;
2323
2737
  color: var(--text-main);
@@ -2344,7 +2758,7 @@ input:checked + .slider:before {
2344
2758
  .message-bubble {
2345
2759
  padding: 10px 12px;
2346
2760
  border-radius: var(--radius-md);
2347
- font-size: 0.9rem;
2761
+ font-size: 1rem;
2348
2762
  line-height: 1.48;
2349
2763
  box-shadow: none;
2350
2764
  backdrop-filter: var(--glass-blur);
@@ -2366,14 +2780,14 @@ input:checked + .slider:before {
2366
2780
 
2367
2781
  .user-message .message-bubble {
2368
2782
  background: linear-gradient(135deg, var(--surface-strong), color-mix(in srgb, var(--accent) 16%, var(--surface-strong)));
2369
- border: 1px solid rgba(255, 255, 255, 0.08);
2370
- border-radius: var(--radius-md);
2783
+ border: 1px solid var(--border-default);
2784
+ border-radius: 22px 22px 6px 22px;
2371
2785
  color: var(--text-main);
2372
2786
  box-shadow: none;
2373
2787
  }
2374
2788
 
2375
2789
  .provider-badge {
2376
- color: var(--accent-hover);
2790
+ color: var(--interactive-fg-hover);
2377
2791
  }
2378
2792
 
2379
2793
  /* Force AI replies to render as plain inline text (no bubble/frame). */
@@ -2395,99 +2809,877 @@ input:checked + .slider:before {
2395
2809
  pointer-events: auto;
2396
2810
  }
2397
2811
 
2398
- .workspace-select-btn {
2399
- width: fit-content;
2400
- max-width: min(100%, 360px);
2401
- min-height: 34px;
2812
+ /* A compact, reviewable handoff between the latest agent run and the next prompt. */
2813
+ .composer-change-status {
2814
+ display: flex;
2815
+ align-items: center;
2816
+ justify-content: space-between;
2817
+ gap: 10px;
2818
+ max-width: calc(100% - 28px);
2819
+ min-height: 30px;
2820
+ margin: 0 auto 8px;
2821
+ padding: 5px 11px;
2822
+ color: var(--text-secondary);
2823
+ font: inherit;
2824
+ font-size: 0.72rem;
2825
+ font-weight: 600;
2826
+ line-height: 1.25;
2827
+ text-align: left;
2828
+ background: var(--bg-surface-raised);
2829
+ border: 1px solid var(--border-subtle);
2830
+ border-radius: var(--radius-full);
2831
+ box-shadow: var(--shadow-xs);
2832
+ cursor: pointer;
2833
+ transition: border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
2834
+ }
2835
+
2836
+ .composer-change-status:hover {
2837
+ color: var(--text-primary);
2838
+ border-color: var(--border-strong);
2839
+ box-shadow: var(--shadow-sm);
2840
+ }
2841
+
2842
+ .composer-change-status:focus-visible {
2843
+ outline: 2px solid var(--focus-ring);
2844
+ outline-offset: 2px;
2845
+ }
2846
+
2847
+ .composer-change-status-copy,
2848
+ .composer-change-status-counts {
2402
2849
  display: inline-flex;
2403
2850
  align-items: center;
2404
- gap: 8px;
2405
- margin: 0 0 8px 2px;
2406
- padding: 0 12px;
2851
+ min-width: 0;
2852
+ }
2853
+
2854
+ .composer-change-status-copy {
2855
+ gap: 7px;
2856
+ overflow: hidden;
2857
+ }
2858
+
2859
+ .composer-change-status-copy > span:last-child {
2860
+ overflow: hidden;
2861
+ text-overflow: ellipsis;
2862
+ white-space: nowrap;
2863
+ }
2864
+
2865
+ .composer-change-status-counts {
2866
+ flex: 0 0 auto;
2867
+ gap: 5px;
2868
+ font-family: var(--font-mono);
2869
+ font-size: 0.94em;
2870
+ }
2871
+
2872
+ .composer-change-status-counts strong {
2873
+ color: var(--status-success);
2874
+ }
2875
+
2876
+ .composer-change-status-counts em {
2877
+ color: var(--status-error);
2878
+ font-style: normal;
2879
+ }
2880
+
2881
+ .composer-change-status.is-live {
2882
+ color: var(--interactive-fg-hover);
2883
+ border-color: var(--accent-border);
2884
+ }
2885
+
2886
+ .composer-change-status-spinner {
2887
+ width: 8px;
2888
+ height: 8px;
2889
+ flex: 0 0 auto;
2890
+ border: 1.5px solid var(--accent-border);
2891
+ border-top-color: var(--interactive-fg-hover);
2892
+ border-radius: 50%;
2893
+ animation: composer-change-status-spin 700ms linear infinite;
2894
+ }
2895
+
2896
+ @keyframes composer-change-status-spin {
2897
+ to { transform: rotate(360deg); }
2898
+ }
2899
+
2900
+ @media (prefers-reduced-motion: reduce) {
2901
+ .composer-change-status,
2902
+ .composer-change-status-spinner {
2903
+ transition: none;
2904
+ animation: none;
2905
+ }
2906
+ }
2907
+
2908
+ /* Project context is the first row of the composer, not a promotional CTA. */
2909
+ .project-context-row {
2910
+ position: relative;
2911
+ min-width: 0;
2912
+ display: flex;
2913
+ align-items: center;
2914
+ gap: 6px;
2915
+ min-height: 44px;
2916
+ padding: 5px 8px;
2917
+ background: var(--input-bg);
2407
2918
  border: 1px solid var(--border);
2919
+ border-bottom: 0;
2920
+ border-radius: var(--radius-xl) var(--radius-xl) 0 0;
2921
+ }
2922
+
2923
+ .workspace-selector {
2924
+ position: relative;
2925
+ display: flex;
2926
+ min-width: 0;
2927
+ max-width: 56%;
2928
+ flex: 0 1 auto;
2929
+ }
2930
+
2931
+ .workspace-selector.needs-workspace {
2932
+ max-width: 100%;
2933
+ }
2934
+
2935
+ .workspace-select-btn {
2936
+ min-width: 0;
2937
+ min-height: 32px;
2938
+ margin: 0;
2939
+ padding: 0 10px;
2940
+ display: flex;
2941
+ align-items: center;
2942
+ gap: 7px;
2943
+ color: var(--text-primary);
2944
+ background: var(--surface-strong);
2945
+ border: 1px solid var(--border-subtle);
2408
2946
  border-radius: var(--radius-md);
2409
- background: var(--input-bg);
2410
- color: var(--text-soft);
2411
- font-size: 0.86rem;
2412
- font-weight: 650;
2947
+ text-align: left;
2413
2948
  cursor: pointer;
2949
+ transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
2414
2950
  }
2415
2951
 
2416
2952
  .workspace-select-btn:hover {
2417
- border-color: color-mix(in srgb, var(--accent) 38%, var(--border));
2418
- background: color-mix(in srgb, var(--accent) 8%, var(--input-bg));
2419
- color: var(--text-main);
2953
+ background: var(--bg-surface-hover);
2954
+ border-color: var(--border);
2955
+ }
2956
+
2957
+ .workspace-select-btn:focus-visible {
2958
+ position: relative;
2959
+ z-index: 2;
2960
+ outline: 2px solid var(--border-focus, var(--accent));
2961
+ outline-offset: -2px;
2962
+ }
2963
+
2964
+ .workspace-select-btn.needs-workspace {
2965
+ max-width: 100%;
2966
+ }
2967
+
2968
+ .workspace-select-icon {
2969
+ width: 16px;
2970
+ height: 16px;
2971
+ display: inline-flex;
2972
+ align-items: center;
2973
+ justify-content: center;
2974
+ flex: 0 0 16px;
2975
+ color: var(--interactive-fg);
2420
2976
  }
2421
2977
 
2422
- .workspace-select-btn span:nth-child(2) {
2978
+ .workspace-select-copy {
2423
2979
  min-width: 0;
2980
+ display: flex;
2981
+ flex: 0 1 auto;
2982
+ align-items: baseline;
2983
+ gap: 6px;
2984
+ }
2985
+
2986
+ .workspace-select-name {
2424
2987
  overflow: hidden;
2988
+ color: var(--text-primary);
2989
+ font-size: 0.78rem;
2990
+ font-weight: 500;
2991
+ line-height: 1.2;
2425
2992
  text-overflow: ellipsis;
2426
2993
  white-space: nowrap;
2427
2994
  }
2428
2995
 
2429
- .smart-context-bar {
2430
- min-height: 24px;
2431
- padding: 3px 10px 3px 14px;
2432
- margin: 0;
2433
- background: var(--input-bg);
2996
+ .workspace-select-chevron {
2997
+ flex: 0 0 auto;
2998
+ color: var(--text-muted);
2999
+ transition: transform 120ms ease;
3000
+ }
3001
+
3002
+ .workspace-select-btn:hover .workspace-select-chevron {
3003
+ color: var(--text-primary);
3004
+ }
3005
+
3006
+ .workspace-select-menu {
3007
+ position: absolute;
3008
+ z-index: 80;
3009
+ left: 0;
3010
+ bottom: calc(100% + 6px);
3011
+ width: min(360px, calc(100vw - 32px));
3012
+ max-height: min(420px, 65vh);
3013
+ display: flex;
3014
+ flex-direction: column;
3015
+ overflow: hidden;
3016
+ color: var(--text-primary);
3017
+ background: var(--bg-overlay);
2434
3018
  border: 1px solid var(--border);
2435
- border-bottom: 0;
2436
- border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
3019
+ border-radius: var(--radius-lg);
3020
+ box-shadow: var(--shadow-md);
3021
+ }
3022
+
3023
+ .workspace-select-search {
3024
+ min-height: 40px;
3025
+ padding: 0 12px;
2437
3026
  display: flex;
2438
- flex-wrap: wrap;
2439
- gap: 10px;
3027
+ align-items: center;
3028
+ gap: 9px;
3029
+ color: var(--text-muted);
3030
+ border-bottom: 1px solid var(--border-subtle);
2440
3031
  }
2441
3032
 
2442
- .smart-context-label {
2443
- color: var(--text-soft);
2444
- font-size: 0.76rem;
2445
- font-weight: 400;
3033
+ .workspace-select-search:focus-within {
3034
+ color: var(--interactive-fg);
3035
+ }
3036
+
3037
+ .workspace-select-search input {
3038
+ min-width: 0;
3039
+ width: 100%;
3040
+ padding: 0;
3041
+ color: var(--text-primary);
3042
+ background: transparent;
3043
+ border: 0;
3044
+ outline: none;
3045
+ font: inherit;
3046
+ font-size: 0.8rem;
2446
3047
  }
2447
3048
 
2448
- .smart-context-label span {
3049
+ .workspace-select-search input::placeholder {
2449
3050
  color: var(--text-muted);
2450
- font-size: 0.68rem;
2451
3051
  }
2452
3052
 
2453
- .voice-mode-bar {
2454
- min-height: 30px;
2455
- display: flex;
3053
+ .workspace-select-list {
3054
+ min-height: 0;
3055
+ padding: 4px;
3056
+ overflow-y: auto;
3057
+ scrollbar-width: thin;
3058
+ }
3059
+
3060
+ .workspace-select-option {
3061
+ width: 100%;
3062
+ min-width: 0;
3063
+ padding: 8px 9px;
3064
+ display: grid;
3065
+ grid-template-columns: 16px minmax(0, 1fr) 16px;
2456
3066
  align-items: center;
2457
- gap: 8px;
2458
- padding: 4px 12px;
2459
- background: color-mix(in srgb, var(--accent) 10%, var(--input-bg));
2460
- border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
2461
- border-bottom: 0;
2462
- color: var(--text-main);
2463
- font-size: 0.75rem;
3067
+ gap: 9px;
3068
+ color: var(--text-secondary);
3069
+ text-align: left;
3070
+ background: transparent;
3071
+ border: 0;
3072
+ border-radius: var(--radius-sm);
3073
+ cursor: pointer;
2464
3074
  }
2465
3075
 
2466
- .voice-mode-dot {
2467
- width: 8px;
2468
- height: 8px;
2469
- flex: 0 0 auto;
2470
- border-radius: var(--radius-full);
2471
- background: var(--accent);
2472
- box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent);
3076
+ .workspace-select-option:hover,
3077
+ .workspace-select-option:focus-visible,
3078
+ .workspace-select-option[aria-current="true"] {
3079
+ color: var(--text-primary);
3080
+ background: var(--bg-surface-hover);
3081
+ outline: none;
2473
3082
  }
2474
3083
 
2475
- .voice-mode-bar[data-state="listening"] .voice-mode-dot,
2476
- .voice-mode-bar[data-state="speaking"] .voice-mode-dot {
2477
- animation: pulse-mic 1.2s infinite;
3084
+ .workspace-select-option-icon {
3085
+ color: var(--text-muted);
2478
3086
  }
2479
3087
 
2480
- .voice-mode-transcript {
3088
+ .workspace-select-option-copy {
2481
3089
  min-width: 0;
3090
+ display: flex;
3091
+ flex-direction: column;
3092
+ gap: 2px;
3093
+ }
3094
+
3095
+ .workspace-select-option-name,
3096
+ .workspace-select-option-path {
2482
3097
  overflow: hidden;
2483
- color: var(--text-muted);
2484
3098
  text-overflow: ellipsis;
2485
3099
  white-space: nowrap;
2486
3100
  }
2487
3101
 
2488
- .toggle-switch {
2489
- width: 32px;
2490
- height: 18px;
3102
+ .workspace-select-option-name {
3103
+ color: inherit;
3104
+ font-size: 0.8rem;
3105
+ line-height: 1.25;
3106
+ }
3107
+
3108
+ .workspace-select-option-path {
3109
+ color: var(--text-muted);
3110
+ font-size: 0.66rem;
3111
+ line-height: 1.2;
3112
+ }
3113
+
3114
+ .workspace-select-current {
3115
+ color: var(--interactive-fg);
3116
+ }
3117
+
3118
+ .workspace-select-empty {
3119
+ padding: 18px 12px;
3120
+ color: var(--text-muted);
3121
+ font-size: 0.76rem;
3122
+ text-align: center;
3123
+ }
3124
+
3125
+ .workspace-select-menu-footer {
3126
+ padding: 4px;
3127
+ border-top: 1px solid var(--border-subtle);
3128
+ }
3129
+
3130
+ .workspace-select-open-folder {
3131
+ width: 100%;
3132
+ min-height: 34px;
3133
+ padding: 0 9px;
3134
+ display: flex;
3135
+ align-items: center;
3136
+ gap: 9px;
3137
+ color: var(--text-secondary);
3138
+ text-align: left;
3139
+ background: transparent;
3140
+ border: 0;
3141
+ border-radius: var(--radius-sm);
3142
+ cursor: pointer;
3143
+ font: inherit;
3144
+ font-size: 0.78rem;
3145
+ }
3146
+
3147
+ .workspace-select-open-folder:hover,
3148
+ .workspace-select-open-folder:focus-visible {
3149
+ color: var(--text-primary);
3150
+ background: var(--bg-surface-hover);
3151
+ outline: none;
3152
+ }
3153
+
3154
+ .project-context-row + .smart-context-bar {
3155
+ border-top-color: var(--border-subtle);
3156
+ border-radius: 0;
3157
+ }
3158
+
3159
+ .git-branch-selector {
3160
+ position: relative;
3161
+ display: flex;
3162
+ flex: 0 1 auto;
3163
+ min-width: 0;
3164
+ max-width: 38%;
3165
+ }
3166
+
3167
+ .git-branch-trigger {
3168
+ min-width: 0;
3169
+ min-height: 32px;
3170
+ max-width: 100%;
3171
+ padding: 0 9px;
3172
+ display: flex;
3173
+ align-items: center;
3174
+ gap: 7px;
3175
+ color: var(--text-secondary);
3176
+ background: transparent;
3177
+ border: 0;
3178
+ border-radius: var(--radius-md);
3179
+ cursor: pointer;
3180
+ }
3181
+
3182
+ .git-branch-trigger:hover:not(:disabled),
3183
+ .git-branch-trigger[aria-expanded='true'] {
3184
+ color: var(--text-primary);
3185
+ background: var(--bg-surface-hover);
3186
+ }
3187
+
3188
+ .git-branch-trigger:focus-visible {
3189
+ position: relative;
3190
+ z-index: 2;
3191
+ outline: 2px solid var(--border-focus, var(--accent));
3192
+ outline-offset: -2px;
3193
+ }
3194
+
3195
+ .git-branch-trigger:disabled {
3196
+ cursor: default;
3197
+ opacity: 0.55;
3198
+ }
3199
+
3200
+ .git-branch-icon,
3201
+ .git-branch-chevron {
3202
+ flex: 0 0 auto;
3203
+ }
3204
+
3205
+ .git-branch-icon {
3206
+ color: var(--text-muted);
3207
+ }
3208
+
3209
+ .git-branch-chevron {
3210
+ color: var(--text-muted);
3211
+ transition: transform 120ms ease;
3212
+ }
3213
+
3214
+ .git-branch-trigger[aria-expanded='true'] .git-branch-chevron {
3215
+ transform: rotate(180deg);
3216
+ }
3217
+
3218
+ .git-branch-name {
3219
+ min-width: 0;
3220
+ overflow: hidden;
3221
+ font-size: 0.76rem;
3222
+ font-weight: 500;
3223
+ line-height: 1;
3224
+ text-overflow: ellipsis;
3225
+ white-space: nowrap;
3226
+ }
3227
+
3228
+ .git-branch-dirty {
3229
+ width: 5px;
3230
+ height: 5px;
3231
+ flex: 0 0 5px;
3232
+ border-radius: 50%;
3233
+ background: var(--accent);
3234
+ }
3235
+
3236
+ .git-branch-menu {
3237
+ position: absolute;
3238
+ left: 0;
3239
+ right: auto;
3240
+ bottom: calc(100% + 8px);
3241
+ z-index: 80;
3242
+ width: min(320px, calc(100vw - 48px));
3243
+ padding: 6px;
3244
+ color: var(--text-primary);
3245
+ background: var(--bg-surface-raised);
3246
+ border: 1px solid var(--border-default);
3247
+ border-radius: var(--radius-md);
3248
+ box-shadow: var(--shadow-lg);
3249
+ overflow-y: auto;
3250
+ }
3251
+
3252
+ .git-branch-menu.align-right {
3253
+ left: auto;
3254
+ right: 0;
3255
+ }
3256
+
3257
+ .git-branch-menu.opens-down {
3258
+ top: calc(100% + 8px);
3259
+ bottom: auto;
3260
+ }
3261
+
3262
+ .git-branch-search {
3263
+ height: 34px;
3264
+ padding: 0 10px;
3265
+ display: flex;
3266
+ align-items: center;
3267
+ gap: 8px;
3268
+ color: var(--text-muted);
3269
+ background: var(--input-bg);
3270
+ border: 1px solid var(--border);
3271
+ border-radius: var(--radius-sm);
3272
+ }
3273
+
3274
+ .git-branch-search:focus-within {
3275
+ border-color: var(--border-focus, var(--accent));
3276
+ }
3277
+
3278
+ .git-branch-search input {
3279
+ min-width: 0;
3280
+ flex: 1;
3281
+ color: var(--text-primary);
3282
+ background: transparent;
3283
+ border: 0;
3284
+ outline: 0;
3285
+ font: inherit;
3286
+ font-size: 0.76rem;
3287
+ }
3288
+
3289
+ .git-branch-search input::placeholder {
3290
+ color: var(--text-muted);
3291
+ }
3292
+
3293
+ .git-branch-menu-heading {
3294
+ padding: 10px 8px 5px;
3295
+ color: var(--text-muted);
3296
+ font-size: 0.66rem;
3297
+ font-weight: 600;
3298
+ letter-spacing: 0.06em;
3299
+ text-transform: none;
3300
+ }
3301
+
3302
+ .git-branch-list {
3303
+ max-height: 180px;
3304
+ overflow-y: auto;
3305
+ }
3306
+
3307
+ .git-branch-option {
3308
+ width: 100%;
3309
+ min-height: 34px;
3310
+ padding: 6px 8px;
3311
+ display: grid;
3312
+ grid-template-columns: 18px minmax(0, 1fr) 16px;
3313
+ align-items: center;
3314
+ gap: 7px;
3315
+ color: var(--text-secondary);
3316
+ background: transparent;
3317
+ border: 0;
3318
+ border-radius: var(--radius-sm);
3319
+ text-align: left;
3320
+ cursor: pointer;
3321
+ }
3322
+
3323
+ .git-branch-option span:nth-child(2) {
3324
+ overflow: hidden;
3325
+ text-overflow: ellipsis;
3326
+ white-space: nowrap;
3327
+ }
3328
+
3329
+ .git-branch-option:hover:not(:disabled),
3330
+ .git-branch-option:focus-visible {
3331
+ color: var(--text-primary);
3332
+ background: var(--bg-surface-hover);
3333
+ outline: 0;
3334
+ }
3335
+
3336
+ .git-branch-option[aria-selected='true'] {
3337
+ color: var(--text-primary);
3338
+ background: var(--bg-surface-soft);
3339
+ }
3340
+
3341
+ .git-branch-option[aria-selected='true'] svg {
3342
+ color: var(--interactive-fg);
3343
+ }
3344
+
3345
+ .git-branch-option:disabled {
3346
+ cursor: wait;
3347
+ opacity: 0.6;
3348
+ }
3349
+
3350
+ .git-branch-option-icon {
3351
+ color: var(--text-muted);
3352
+ font-size: 0.9rem;
3353
+ }
3354
+
3355
+ .git-branch-empty {
3356
+ padding: 14px 8px;
3357
+ color: var(--text-muted);
3358
+ font-size: 0.76rem;
3359
+ text-align: center;
3360
+ }
3361
+
3362
+ .git-branch-error {
3363
+ margin-top: 6px;
3364
+ padding: 8px;
3365
+ display: flex;
3366
+ align-items: flex-start;
3367
+ justify-content: space-between;
3368
+ gap: 10px;
3369
+ color: var(--status-error, #ef4444);
3370
+ border-top: 1px solid var(--border-subtle);
3371
+ font-size: 0.7rem;
3372
+ line-height: 1.35;
3373
+ }
3374
+
3375
+ .git-branch-error button {
3376
+ padding: 0;
3377
+ color: inherit;
3378
+ background: transparent;
3379
+ border: 0;
3380
+ cursor: pointer;
3381
+ font: inherit;
3382
+ font-weight: 600;
3383
+ }
3384
+
3385
+ .git-branch-track-label {
3386
+ color: var(--text-muted);
3387
+ font-size: 0.64rem;
3388
+ text-align: right;
3389
+ }
3390
+
3391
+ .git-branch-actions {
3392
+ margin-top: 6px;
3393
+ padding-top: 6px;
3394
+ display: grid;
3395
+ border-top: 1px solid var(--border-subtle);
3396
+ }
3397
+
3398
+ .git-branch-actions button {
3399
+ min-height: 34px;
3400
+ padding: 6px 8px;
3401
+ display: flex;
3402
+ align-items: center;
3403
+ gap: 8px;
3404
+ color: var(--text-secondary);
3405
+ background: transparent;
3406
+ border: 0;
3407
+ border-radius: var(--radius-sm);
3408
+ text-align: left;
3409
+ cursor: pointer;
3410
+ }
3411
+
3412
+ .git-branch-actions button:hover,
3413
+ .git-branch-actions button:focus-visible {
3414
+ color: var(--text-primary);
3415
+ background: var(--bg-surface-hover);
3416
+ outline: 0;
3417
+ }
3418
+
3419
+ .git-branch-view-header {
3420
+ min-height: 34px;
3421
+ display: grid;
3422
+ grid-template-columns: 30px minmax(0, 1fr) auto;
3423
+ align-items: center;
3424
+ gap: 6px;
3425
+ border-bottom: 1px solid var(--border-subtle);
3426
+ }
3427
+
3428
+ .git-branch-view-header > button {
3429
+ min-width: 30px;
3430
+ height: 30px;
3431
+ padding: 0 7px;
3432
+ color: var(--text-muted);
3433
+ background: transparent;
3434
+ border: 0;
3435
+ border-radius: var(--radius-sm);
3436
+ cursor: pointer;
3437
+ }
3438
+
3439
+ .git-branch-view-header > button:hover:not(:disabled),
3440
+ .git-branch-view-header > button:focus-visible {
3441
+ color: var(--text-primary);
3442
+ background: var(--bg-surface-hover);
3443
+ outline: 0;
3444
+ }
3445
+
3446
+ .git-branch-view-header strong {
3447
+ overflow: hidden;
3448
+ font-size: 0.76rem;
3449
+ font-weight: 600;
3450
+ text-overflow: ellipsis;
3451
+ white-space: nowrap;
3452
+ }
3453
+
3454
+ .git-branch-create {
3455
+ display: grid;
3456
+ gap: 9px;
3457
+ }
3458
+
3459
+ .git-branch-create > label {
3460
+ margin-top: 3px;
3461
+ color: var(--text-muted);
3462
+ font-size: 0.68rem;
3463
+ font-weight: 600;
3464
+ }
3465
+
3466
+ .git-branch-create > input {
3467
+ height: 36px;
3468
+ padding: 0 10px;
3469
+ color: var(--text-primary);
3470
+ background: var(--input-bg);
3471
+ border: 1px solid var(--border);
3472
+ border-radius: var(--radius-sm);
3473
+ outline: 0;
3474
+ font: inherit;
3475
+ font-size: 0.76rem;
3476
+ }
3477
+
3478
+ .git-branch-create > input:focus {
3479
+ border-color: var(--border-focus, var(--accent));
3480
+ }
3481
+
3482
+ .git-branch-create > p {
3483
+ margin: 0;
3484
+ color: var(--text-muted);
3485
+ font-size: 0.68rem;
3486
+ line-height: 1.4;
3487
+ }
3488
+
3489
+ .git-branch-create > p strong {
3490
+ color: var(--text-secondary);
3491
+ font-weight: 500;
3492
+ }
3493
+
3494
+ .git-branch-create-submit {
3495
+ min-height: 34px;
3496
+ color: var(--text-on-accent);
3497
+ background: var(--accent);
3498
+ border: 0;
3499
+ border-radius: var(--radius-sm);
3500
+ cursor: pointer;
3501
+ font: inherit;
3502
+ font-size: 0.74rem;
3503
+ font-weight: 600;
3504
+ }
3505
+
3506
+ .git-branch-create-submit:hover:not(:disabled) {
3507
+ background: var(--accent-hover);
3508
+ }
3509
+
3510
+ .git-branch-create-submit:focus-visible {
3511
+ outline: 2px solid var(--border-focus, var(--accent));
3512
+ outline-offset: 2px;
3513
+ }
3514
+
3515
+ .git-branch-create-submit:disabled {
3516
+ cursor: default;
3517
+ opacity: 0.45;
3518
+ }
3519
+
3520
+ .git-branch-menu.is-graph {
3521
+ width: min(540px, calc(100vw - 48px));
3522
+ }
3523
+
3524
+ .git-graph-view {
3525
+ display: grid;
3526
+ gap: 6px;
3527
+ }
3528
+
3529
+ .git-graph-refresh {
3530
+ width: auto;
3531
+ font-size: 0.68rem;
3532
+ }
3533
+
3534
+ .git-graph-output {
3535
+ min-height: 180px;
3536
+ max-height: 330px;
3537
+ margin: 0;
3538
+ padding: 10px;
3539
+ overflow: auto;
3540
+ color: var(--text-secondary);
3541
+ background: var(--input-bg);
3542
+ border: 1px solid var(--border-subtle);
3543
+ border-radius: var(--radius-sm);
3544
+ font-family: var(--font-mono, monospace);
3545
+ font-size: 0.68rem;
3546
+ line-height: 1.65;
3547
+ tab-size: 14;
3548
+ white-space: pre;
3549
+ }
3550
+
3551
+ .git-graph-output:focus-visible {
3552
+ outline: 2px solid var(--border-focus, var(--accent));
3553
+ outline-offset: -2px;
3554
+ }
3555
+
3556
+ .git-graph-state {
3557
+ min-height: 140px;
3558
+ display: grid;
3559
+ place-items: center;
3560
+ color: var(--text-muted);
3561
+ font-size: 0.74rem;
3562
+ }
3563
+
3564
+ @media (max-width: 1100px) {
3565
+ .git-branch-menu.is-graph {
3566
+ width: min(320px, calc(100vw - 48px));
3567
+ }
3568
+ }
3569
+
3570
+ @media (max-width: 640px) {
3571
+ .workspace-selector {
3572
+ max-width: 54%;
3573
+ }
3574
+
3575
+ .git-branch-selector {
3576
+ max-width: 38%;
3577
+ }
3578
+
3579
+ .git-branch-trigger {
3580
+ padding-inline: 7px;
3581
+ }
3582
+ }
3583
+
3584
+ @media (prefers-reduced-motion: reduce) {
3585
+ .git-branch-chevron {
3586
+ transition: none;
3587
+ }
3588
+ }
3589
+
3590
+ @media (forced-colors: active) {
3591
+ .project-context-row,
3592
+ .workspace-select-btn,
3593
+ .workspace-select-menu,
3594
+ .workspace-select-search,
3595
+ .git-branch-menu,
3596
+ .git-branch-search,
3597
+ .git-branch-create > input,
3598
+ .git-graph-output {
3599
+ border-color: CanvasText;
3600
+ }
3601
+
3602
+ .git-branch-option[aria-selected='true'] {
3603
+ outline: 1px solid Highlight;
3604
+ outline-offset: -1px;
3605
+ }
3606
+
3607
+ .git-branch-dirty,
3608
+ .git-branch-create-submit {
3609
+ background: Highlight;
3610
+ color: HighlightText;
3611
+ }
3612
+ }
3613
+
3614
+ .smart-context-bar {
3615
+ min-height: 26px;
3616
+ padding: 7px 14px 6px 18px;
3617
+ margin: 0;
3618
+ background: var(--input-bg);
3619
+ border: 1px solid var(--border);
3620
+ border-bottom: 0;
3621
+ border-radius: var(--radius-xl) var(--radius-xl) 0 0;
3622
+ display: flex;
3623
+ align-items: center;
3624
+ flex-wrap: wrap;
3625
+ gap: 7px;
3626
+ }
3627
+
3628
+ .smart-context-option {
3629
+ min-height: 30px;
3630
+ padding: 4px 9px;
3631
+ display: inline-flex;
3632
+ align-items: center;
3633
+ gap: 7px;
3634
+ border: 1px solid transparent;
3635
+ border-radius: 999px;
3636
+ color: var(--text-soft);
3637
+ background: transparent;
3638
+ cursor: pointer;
3639
+ transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
3640
+ }
3641
+
3642
+ .smart-context-option:hover {
3643
+ border-color: var(--border);
3644
+ background: color-mix(in srgb, var(--surface-strong) 55%, transparent);
3645
+ }
3646
+
3647
+ .smart-context-option.is-active {
3648
+ border-color: color-mix(in srgb, var(--accent) 32%, transparent);
3649
+ background: color-mix(in srgb, var(--accent) 9%, transparent);
3650
+ color: var(--text-main);
3651
+ }
3652
+
3653
+ @media (prefers-reduced-motion: reduce) {
3654
+ .smart-context-option {
3655
+ transition: none;
3656
+ }
3657
+ }
3658
+
3659
+ .smart-context-copy {
3660
+ display: inline-flex;
3661
+ align-items: baseline;
3662
+ gap: 4px;
3663
+ white-space: nowrap;
3664
+ }
3665
+
3666
+ .smart-context-title {
3667
+ color: inherit;
3668
+ font-size: 0.74rem;
3669
+ font-weight: 500;
3670
+ }
3671
+
3672
+ .toggle-switch {
3673
+ position: relative;
3674
+ display: inline-block;
3675
+ flex: 0 0 auto;
3676
+ width: 32px;
3677
+ height: 18px;
3678
+ }
3679
+
3680
+ .toggle-switch input:focus-visible + .slider {
3681
+ outline: 2px solid var(--accent);
3682
+ outline-offset: 2px;
2491
3683
  }
2492
3684
 
2493
3685
  .slider {
@@ -2503,6 +3695,19 @@ input:checked + .slider:before {
2503
3695
 
2504
3696
  input:checked + .slider:before {
2505
3697
  transform: translateX(14px);
3698
+ background-color: var(--accent-contrast, #ffffff);
3699
+ }
3700
+
3701
+ @media (max-width: 560px) {
3702
+ .smart-context-bar {
3703
+ padding: 6px 10px 5px;
3704
+ gap: 4px;
3705
+ }
3706
+
3707
+ .smart-context-option {
3708
+ padding-inline: 7px;
3709
+ }
3710
+
2506
3711
  }
2507
3712
 
2508
3713
  #chat-form {
@@ -2512,10 +3717,10 @@ input:checked + .slider:before {
2512
3717
  grid-template-rows: auto minmax(48px, auto) 32px;
2513
3718
  align-items: end;
2514
3719
  gap: 6px;
2515
- padding: 8px;
3720
+ padding: 10px 14px 10px 14px;
2516
3721
  background: var(--input-bg);
2517
3722
  border: 1px solid var(--border);
2518
- border-radius: var(--radius-2xl);
3723
+ border-radius: var(--radius-xl);
2519
3724
  box-shadow: none;
2520
3725
  backdrop-filter: var(--glass-blur);
2521
3726
  -webkit-backdrop-filter: var(--glass-blur);
@@ -2524,6 +3729,8 @@ input:checked + .slider:before {
2524
3729
  .smart-context-bar + #chat-form {
2525
3730
  border-top-left-radius: 0;
2526
3731
  border-top-right-radius: 0;
3732
+ border-bottom-left-radius: var(--radius-xl);
3733
+ border-bottom-right-radius: var(--radius-xl);
2527
3734
  }
2528
3735
 
2529
3736
  #chat-form:focus-within {
@@ -2665,28 +3872,6 @@ input:checked + .slider:before {
2665
3872
  cursor: pointer;
2666
3873
  }
2667
3874
 
2668
- .screen-capture-eye {
2669
- position: relative;
2670
- width: 18px;
2671
- height: 11px;
2672
- border: 1.6px solid currentColor;
2673
- border-radius: 50% / 58%;
2674
- background: transparent;
2675
- }
2676
-
2677
- .screen-capture-eye::after {
2678
- content: '';
2679
- position: absolute;
2680
- width: 4px;
2681
- height: 4px;
2682
- left: 50%;
2683
- top: 50%;
2684
- border: 1.6px solid currentColor;
2685
- border-radius: 50%;
2686
- background: transparent;
2687
- transform: translate(-50%, -50%);
2688
- }
2689
-
2690
3875
  #chat-tool-btn,
2691
3876
  #send-btn,
2692
3877
  #mic-btn,
@@ -2771,11 +3956,11 @@ input:checked + .slider:before {
2771
3956
  width: fit-content;
2772
3957
  max-width: 100%;
2773
3958
  height: 32px;
2774
- padding: 0 24px 0 6px;
2775
- background: transparent;
2776
- border: 0;
2777
- border-radius: var(--radius-md);
2778
- color: var(--text-soft);
3959
+ padding: 0 16px 0 10px;
3960
+ background: var(--surface-strong);
3961
+ border: 1px solid var(--border-default);
3962
+ border-radius: var(--radius-full, 999px);
3963
+ color: var(--text-secondary);
2779
3964
  cursor: pointer;
2780
3965
  font-family: inherit;
2781
3966
  font-size: 0.78rem;
@@ -2784,6 +3969,7 @@ input:checked + .slider:before {
2784
3969
  text-overflow: ellipsis;
2785
3970
  white-space: nowrap;
2786
3971
  -webkit-app-region: no-drag;
3972
+ transition: all 0.15s ease;
2787
3973
  }
2788
3974
 
2789
3975
  .chat-provider-select:hover,
@@ -2804,7 +3990,42 @@ input:checked + .slider:before {
2804
3990
 
2805
3991
  .chat-provider-select option:checked {
2806
3992
  background: linear-gradient(var(--accent), var(--accent));
2807
- color: #ffffff;
3993
+ color: var(--accent-contrast, #ffffff);
3994
+ }
3995
+
3996
+ .voice-mode-bar {
3997
+ min-height: 30px;
3998
+ display: flex;
3999
+ align-items: center;
4000
+ gap: 8px;
4001
+ padding: 4px 12px;
4002
+ background: color-mix(in srgb, var(--accent) 10%, var(--input-bg));
4003
+ border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
4004
+ border-bottom: 0;
4005
+ color: var(--text-main);
4006
+ font-size: 0.75rem;
4007
+ }
4008
+
4009
+ .voice-mode-dot {
4010
+ width: 8px;
4011
+ height: 8px;
4012
+ flex: 0 0 auto;
4013
+ border-radius: var(--radius-full);
4014
+ background: var(--accent);
4015
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 16%, transparent);
4016
+ }
4017
+
4018
+ .voice-mode-bar[data-state="listening"] .voice-mode-dot,
4019
+ .voice-mode-bar[data-state="speaking"] .voice-mode-dot {
4020
+ animation: pulse-mic 1.2s infinite;
4021
+ }
4022
+
4023
+ .voice-mode-transcript {
4024
+ min-width: 0;
4025
+ overflow: hidden;
4026
+ color: var(--text-muted);
4027
+ text-overflow: ellipsis;
4028
+ white-space: nowrap;
2808
4029
  }
2809
4030
 
2810
4031
  #mic-btn {
@@ -2815,7 +4036,7 @@ input:checked + .slider:before {
2815
4036
  #mic-btn.voice-mode-active {
2816
4037
  background: color-mix(in srgb, var(--accent) 18%, var(--surface-strong));
2817
4038
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
2818
- color: var(--accent-hover);
4039
+ color: var(--interactive-fg-hover);
2819
4040
  }
2820
4041
 
2821
4042
  #send-btn {
@@ -2865,7 +4086,7 @@ input:checked + .slider:before {
2865
4086
 
2866
4087
  #send-btn {
2867
4088
  background: linear-gradient(135deg, var(--accent), var(--accent-hover));
2868
- color: white;
4089
+ color: var(--accent-contrast, #ffffff);
2869
4090
  box-shadow: var(--glow-accent-md);
2870
4091
  }
2871
4092
 
@@ -2890,30 +4111,291 @@ input:checked + .slider:before {
2890
4111
  .conversation-panel {
2891
4112
  position: static;
2892
4113
  width: 100%;
4114
+ height: 100%;
2893
4115
  max-height: none;
2894
4116
  transform: none;
2895
4117
  flex: 1;
2896
4118
  min-width: 0;
4119
+ min-height: 0;
4120
+ border-radius: 0;
4121
+ overflow: hidden;
2897
4122
  }
2898
4123
 
2899
4124
  .chat-container {
2900
4125
  max-height: none;
2901
4126
  }
4127
+
4128
+ .input-area {
4129
+ padding: 10px;
4130
+ }
4131
+
4132
+ #chat-form {
4133
+ min-height: auto;
4134
+ padding: 6px;
4135
+ }
2902
4136
  }
2903
4137
 
2904
4138
  /* Chat Bold Highlight styling */
2905
4139
 
2906
4140
  .chat-bold-highlight {
2907
- color: #38bdf8; /* Soft blue (sky-400) for default/dark theme */
4141
+ color: var(--text-chat, var(--text-main, inherit));
4142
+ font-weight: 600;
4143
+ }
4144
+
4145
+ .chat-bold-highlight {
4146
+ color: var(--text-primary);
4147
+ font-weight: 700;
4148
+ }
4149
+
4150
+ /* Input Disclaimer Footer */
4151
+
4152
+ .input-disclaimer {
4153
+ text-align: center;
4154
+ font-size: 0.7rem;
4155
+ color: var(--text-muted);
4156
+ opacity: 0.85;
4157
+ padding: 6px 20px 10px;
4158
+ margin: 0;
4159
+ flex-shrink: 0;
4160
+ line-height: 1.5;
4161
+ user-select: none;
4162
+ }
4163
+
4164
+ /* Floating Glass Capsule Chat Header */
4165
+
4166
+ .chat-header {
4167
+ display: flex;
4168
+ align-items: center;
4169
+ justify-content: space-between;
4170
+ gap: 12px;
4171
+ padding: 6px 14px 6px 12px;
4172
+ background: color-mix(in srgb, var(--chrome-bg, #161a22) 75%, transparent);
4173
+ backdrop-filter: blur(20px) saturate(180%);
4174
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
4175
+ border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
4176
+ border-radius: var(--radius-xl, 14px);
4177
+ box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.35),
4178
+ 0 1px 0 0 rgba(255, 255, 255, 0.04) inset;
4179
+ position: sticky;
4180
+ top: 12px;
4181
+ z-index: 50;
4182
+ height: 48px;
4183
+ flex-shrink: 0;
4184
+ margin: 0 0 10px 0;
4185
+ transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
4186
+ }
4187
+
4188
+ .chat-header:hover {
4189
+ border-color: var(--border-default, rgba(255, 255, 255, 0.16));
4190
+ box-shadow: 0 10px 30px -4px rgba(0, 0, 0, 0.45),
4191
+ 0 1px 0 0 rgba(255, 255, 255, 0.08) inset;
4192
+ }
4193
+
4194
+ .chat-header-title {
4195
+ display: flex;
4196
+ align-items: center;
4197
+ gap: 10px;
4198
+ min-width: 0;
4199
+ flex: 1;
4200
+ }
4201
+
4202
+ .chat-header-brand-group {
4203
+ display: flex;
4204
+ align-items: center;
4205
+ gap: 9px;
4206
+ min-width: 0;
4207
+ }
4208
+
4209
+ .chat-header-logo {
4210
+ width: 18px;
4211
+ height: 18px;
4212
+ object-fit: contain;
4213
+ flex-shrink: 0;
4214
+ }
4215
+
4216
+ .chat-header-title-text {
4217
+ font-size: 0.88rem;
4218
+ font-weight: 600;
4219
+ color: var(--text-primary, #f1f5f9);
4220
+ white-space: nowrap;
4221
+ overflow: hidden;
4222
+ text-overflow: ellipsis;
4223
+ max-width: 420px;
4224
+ letter-spacing: -0.01em;
4225
+ }
4226
+
4227
+ .chat-header-project-pill {
4228
+ display: inline-flex;
4229
+ align-items: center;
4230
+ gap: 5px;
4231
+ padding: 2px 8px;
4232
+ background: rgba(255, 255, 255, 0.06);
4233
+ border: 1px solid rgba(255, 255, 255, 0.08);
4234
+ border-radius: var(--radius-sm, 6px);
4235
+ font-size: 0.76rem;
4236
+ font-weight: 500;
4237
+ color: var(--text-secondary, #94a3b8);
4238
+ white-space: nowrap;
4239
+ user-select: none;
4240
+ flex-shrink: 0;
4241
+ }
4242
+
4243
+ .chat-header-project-pill svg {
4244
+ color: var(--flavor-teal, #2dd4bf);
4245
+ flex-shrink: 0;
4246
+ }
4247
+
4248
+
4249
+ .chat-header-actions {
4250
+ display: flex;
4251
+ align-items: center;
4252
+ gap: 8px;
4253
+ margin-left: auto;
4254
+ flex-shrink: 0;
4255
+ }
4256
+
4257
+ .chat-header-pill-btn {
4258
+ display: inline-flex;
4259
+ align-items: center;
4260
+ gap: 5px;
4261
+ padding: 4px 10px;
4262
+ font-size: 0.73rem;
4263
+ font-weight: 600;
4264
+ color: var(--interactive-fg);
4265
+ background: color-mix(in srgb, var(--accent, #10b981) 12%, transparent);
4266
+ border: 1px solid color-mix(in srgb, var(--accent, #10b981) 28%, transparent);
4267
+ border-radius: 999px;
4268
+ cursor: pointer;
4269
+ transition: all 0.18s ease;
4270
+ }
4271
+
4272
+ .chat-header-pill-btn:hover {
4273
+ background: color-mix(in srgb, var(--accent, #10b981) 22%, transparent);
4274
+ border-color: var(--accent, #10b981);
4275
+ transform: translateY(-0.5px);
4276
+ }
4277
+
4278
+ .chat-header-action-btn,
4279
+ .chat-header-clear-btn {
4280
+ display: flex;
4281
+ align-items: center;
4282
+ justify-content: center;
4283
+ width: 30px;
4284
+ height: 30px;
4285
+ border-radius: 8px;
4286
+ background: color-mix(in srgb, var(--bg-surface, #202632) 70%, transparent);
4287
+ border: 1px solid color-mix(in srgb, var(--border, rgba(255, 255, 255, 0.08)) 80%, transparent);
4288
+ color: var(--text-muted, #94a3b8);
4289
+ cursor: pointer;
4290
+ transition: all 0.18s ease;
4291
+ }
4292
+
4293
+ .chat-header-action-btn:hover,
4294
+ .chat-header-clear-btn:hover {
4295
+ background: color-mix(in srgb, #ef4444 14%, transparent);
4296
+ border-color: color-mix(in srgb, #ef4444 35%, transparent);
4297
+ color: #ef4444;
4298
+ transform: translateY(-0.5px);
4299
+ box-shadow: 0 2px 8px rgba(239, 68, 68, 0.2);
4300
+ }
4301
+
4302
+ .chat-header-breadcrumb {
4303
+ display: inline-flex;
4304
+ align-items: center;
4305
+ gap: 8px;
4306
+ font-size: 0.88rem;
4307
+ }
4308
+
4309
+ .chat-header-back-btn {
4310
+ display: inline-flex;
4311
+ align-items: center;
4312
+ gap: 5px;
4313
+ background: color-mix(in srgb, var(--bg-surface, #202632) 80%, transparent);
4314
+ border: 1px solid var(--border-default, rgba(255, 255, 255, 0.1));
4315
+ border-radius: var(--radius-xs, 6px);
4316
+ padding: 3px 9px;
4317
+ color: var(--text-primary);
4318
+ font-size: 0.8rem;
4319
+ font-weight: 500;
4320
+ cursor: pointer;
4321
+ transition: all 0.15s ease;
4322
+ }
4323
+
4324
+ .chat-header-back-btn:hover {
4325
+ background: var(--bg-surface-hover);
4326
+ border-color: var(--border-strong);
4327
+ color: var(--text-primary);
4328
+ transform: translateY(-0.5px);
4329
+ }
4330
+
4331
+ .chat-header-sep {
4332
+ color: var(--text-muted);
4333
+ opacity: 0.6;
4334
+ font-size: 0.8rem;
4335
+ user-select: none;
4336
+ }
4337
+
4338
+ .chat-header-session-tag {
4339
+ display: inline-flex;
4340
+ align-items: center;
4341
+ gap: 6px;
4342
+ padding: 2px 8px;
4343
+ border-radius: 6px;
4344
+ background: color-mix(in srgb, var(--accent, #10b981) 10%, transparent);
4345
+ border: 1px solid color-mix(in srgb, var(--accent, #10b981) 20%, transparent);
4346
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
4347
+ font-size: 0.8rem;
2908
4348
  font-weight: 600;
4349
+ color: var(--interactive-fg);
4350
+ }
4351
+
4352
+ /* Animations and Recording States */
4353
+
4354
+ #mic-btn.is-recording {
4355
+ color: #ef4444 !important;
4356
+ background: rgba(239, 68, 68, 0.15) !important;
4357
+ box-shadow: 0 0 12px rgba(239, 68, 68, 0.4) !important;
4358
+ animation: pulseRed 1.2s infinite alternate ease-in-out;
4359
+ }
4360
+
4361
+ .drag-drop-overlay {
4362
+ animation: pulseGlow 1.2s infinite alternate ease-in-out;
4363
+ }
4364
+
4365
+ /* TTS Speaking Badge animation */
4366
+
4367
+ .tts-btn {
4368
+ border-radius: var(--radius-xs);
2909
4369
  }
2910
4370
 
2911
- [data-theme="light"] .chat-bold-highlight {
2912
- color: #0284c7; /* Sky-600 for light theme */
4371
+ .tts-btn:hover {
4372
+ background: rgba(255, 255, 255, 0.08);
4373
+ opacity: 1 !important;
2913
4374
  }
2914
4375
 
2915
- [data-theme="midnight"] .chat-bold-highlight {
2916
- color: #38bdf8; /* Sky-400 for midnight theme */
4376
+ @media (max-width: 760px) {
4377
+ .chat-header {
4378
+ position: fixed;
4379
+ top: 0;
4380
+ left: 0;
4381
+ right: 0;
4382
+ z-index: 200;
4383
+ background: var(--chrome-bg);
4384
+ backdrop-filter: var(--glass-blur);
4385
+ -webkit-backdrop-filter: var(--glass-blur);
4386
+ border-bottom: 1px solid var(--border);
4387
+ border-top: 0;
4388
+ border-left: 0;
4389
+ border-right: 0;
4390
+ border-radius: 0;
4391
+ margin: 0;
4392
+ height: 52px;
4393
+ padding: 10px 16px;
4394
+ box-shadow: none;
4395
+ }
4396
+ .chat-header-title-text {
4397
+ max-width: 180px;
4398
+ }
2917
4399
  }
2918
4400
 
2919
4401
  /* System Event Divider with Pill */
@@ -2930,11 +4412,7 @@ input:checked + .slider:before {
2930
4412
  .system-event-line {
2931
4413
  flex: 1;
2932
4414
  height: 1px;
2933
- border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
2934
- }
2935
-
2936
- [data-theme="light"] .system-event-line {
2937
- border-bottom: 1px dashed rgba(0, 0, 0, 0.1);
4415
+ border-bottom: 1px dashed var(--border-default);
2938
4416
  }
2939
4417
 
2940
4418
  .system-event-pill {
@@ -2942,25 +4420,19 @@ input:checked + .slider:before {
2942
4420
  align-items: center;
2943
4421
  gap: 6px;
2944
4422
  padding: 4px 14px;
2945
- background: var(--panel-raised, rgba(30, 41, 59, 0.6));
2946
- border: 1px solid rgba(255, 255, 255, 0.08);
4423
+ background: var(--bg-surface-raised);
4424
+ border: 1px solid var(--border-default);
2947
4425
  border-radius: var(--radius-full);
2948
- color: var(--text-soft, #94a3b8);
4426
+ color: var(--text-secondary);
2949
4427
  font-size: 0.78rem;
2950
4428
  font-weight: 500;
2951
4429
  margin: 0 12px;
2952
4430
  white-space: nowrap;
2953
- box-shadow: var(--shadow-xs);
2954
- }
2955
-
2956
- [data-theme="light"] .system-event-pill {
2957
- background: #f1f5f9;
2958
- border-color: rgba(0, 0, 0, 0.06);
2959
- color: #475569;
4431
+ box-shadow: var(--shadow-sm);
2960
4432
  }
2961
4433
 
2962
4434
  .system-event-pill svg {
2963
- color: var(--accent, #38bdf8);
4435
+ color: var(--interactive-fg);
2964
4436
  }
2965
4437
 
2966
4438
  /* Stop button styling overrides for ChatPanel */
@@ -3006,23 +4478,97 @@ input:checked + .slider:before {
3006
4478
  }
3007
4479
 
3008
4480
  .msg-action-btn:hover {
3009
- background: var(--surface-bg, rgba(255, 255, 255, 0.08));
3010
- border-color: var(--border, rgba(255, 255, 255, 0.1));
3011
- color: var(--text-main, #f8fafc);
4481
+ background: var(--bg-surface-hover);
4482
+ border-color: var(--border-default);
4483
+ color: var(--text-primary);
3012
4484
  opacity: 1;
3013
4485
  }
3014
4486
 
3015
4487
  .msg-action-btn.is-copied {
3016
- color: var(--accent, #10b981) !important;
4488
+ color: var(--interactive-fg) !important;
3017
4489
  background: color-mix(in srgb, var(--accent, #10b981) 12%, transparent);
3018
4490
  border-color: color-mix(in srgb, var(--accent, #10b981) 25%, transparent);
3019
4491
  opacity: 1 !important;
3020
4492
  }
3021
4493
 
3022
4494
  .msg-action-btn.is-speaking {
3023
- color: var(--accent, #10b981) !important;
4495
+ color: var(--interactive-fg) !important;
3024
4496
  background: color-mix(in srgb, var(--accent, #10b981) 12%, transparent);
3025
4497
  border-color: color-mix(in srgb, var(--accent, #10b981) 25%, transparent);
3026
4498
  animation: aura-breathe-bar 1.8s infinite ease-in-out;
3027
4499
  opacity: 1 !important;
3028
4500
  }
4501
+
4502
+ /* Light Theme High-Contrast & Depth Enhancements */
4503
+
4504
+ [data-theme="light"] .chat-header {
4505
+ background: rgba(255, 255, 255, 0.94);
4506
+ border: 1px solid rgba(15, 23, 42, 0.12);
4507
+ box-shadow: 0 4px 18px -2px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.04);
4508
+ }
4509
+
4510
+ [data-theme="light"] .chat-header:hover {
4511
+ border-color: rgba(15, 23, 42, 0.22);
4512
+ box-shadow: 0 6px 24px -2px rgba(15, 23, 42, 0.12);
4513
+ }
4514
+
4515
+ [data-theme="light"] .chat-header-title-text {
4516
+ color: #0f172a;
4517
+ }
4518
+
4519
+ [data-theme="light"] .chat-header-action-btn {
4520
+ background: #f1f5f9;
4521
+ border-color: rgba(15, 23, 42, 0.12);
4522
+ color: #475569;
4523
+ }
4524
+
4525
+ [data-theme="light"] .chat-header-action-btn:hover {
4526
+ background: #fee2e2;
4527
+ border-color: #fca5a5;
4528
+ color: #dc2626;
4529
+ }
4530
+
4531
+ [data-theme="light"] .smart-context-bar,
4532
+ [data-theme="light"] #chat-form {
4533
+ background: #ffffff;
4534
+ border-color: rgba(15, 23, 42, 0.16);
4535
+ box-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.06);
4536
+ }
4537
+
4538
+ [data-theme="light"] .smart-context-bar {
4539
+ border-bottom: 0;
4540
+ }
4541
+
4542
+ [data-theme="light"] .smart-context-option {
4543
+ color: #334155;
4544
+ }
4545
+
4546
+ [data-theme="light"] .smart-context-option.is-active {
4547
+ color: #0f172a;
4548
+ border-color: color-mix(in srgb, var(--accent) 38%, transparent);
4549
+ background: color-mix(in srgb, var(--accent) 10%, white);
4550
+ }
4551
+
4552
+ [data-theme="light"] .slider {
4553
+ background-color: #cbd5e1;
4554
+ }
4555
+
4556
+ [data-theme="light"] .input-disclaimer {
4557
+ color: #475569;
4558
+ opacity: 1;
4559
+ }
4560
+
4561
+ [data-theme="light"] #chat-tool-btn,
4562
+ [data-theme="light"] #screen-capture-btn,
4563
+ [data-theme="light"] #mic-btn {
4564
+ background: #f1f5f9;
4565
+ border: 1px solid rgba(15, 23, 42, 0.1);
4566
+ color: #334155;
4567
+ }
4568
+
4569
+ [data-theme="light"] #chat-tool-btn:hover,
4570
+ [data-theme="light"] #screen-capture-btn:hover,
4571
+ [data-theme="light"] #mic-btn:hover {
4572
+ background: #e2e8f0;
4573
+ color: #0f172a;
4574
+ }