@celestea/studio 2.7.1

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 (240) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app.d.ts +111 -0
  3. package/dist/app.js +219 -0
  4. package/dist/auth/api-token.d.ts +76 -0
  5. package/dist/auth/api-token.js +172 -0
  6. package/dist/auth/htpasswd.d.ts +22 -0
  7. package/dist/auth/htpasswd.js +61 -0
  8. package/dist/auth/index.d.ts +14 -0
  9. package/dist/auth/index.js +14 -0
  10. package/dist/auth/page.d.ts +19 -0
  11. package/dist/auth/page.js +73 -0
  12. package/dist/auth/rate-limit.d.ts +27 -0
  13. package/dist/auth/rate-limit.js +47 -0
  14. package/dist/auth/token.d.ts +49 -0
  15. package/dist/auth/token.js +112 -0
  16. package/dist/config.d.ts +78 -0
  17. package/dist/config.js +72 -0
  18. package/dist/deployment.d.ts +92 -0
  19. package/dist/deployment.js +154 -0
  20. package/dist/fake-runtime-adapter.d.ts +37 -0
  21. package/dist/fake-runtime-adapter.js +276 -0
  22. package/dist/handlers/auth.d.ts +24 -0
  23. package/dist/handlers/auth.js +155 -0
  24. package/dist/handlers/common.d.ts +76 -0
  25. package/dist/handlers/common.js +127 -0
  26. package/dist/handlers/config-shape.d.ts +76 -0
  27. package/dist/handlers/config-shape.js +227 -0
  28. package/dist/handlers/config.d.ts +26 -0
  29. package/dist/handlers/config.js +161 -0
  30. package/dist/handlers/context-shape.d.ts +33 -0
  31. package/dist/handlers/context-shape.js +59 -0
  32. package/dist/handlers/dialog.d.ts +22 -0
  33. package/dist/handlers/dialog.js +292 -0
  34. package/dist/handlers/exec.d.ts +22 -0
  35. package/dist/handlers/exec.js +131 -0
  36. package/dist/handlers/fs-read.d.ts +63 -0
  37. package/dist/handlers/fs-read.js +159 -0
  38. package/dist/handlers/fs.d.ts +57 -0
  39. package/dist/handlers/fs.js +153 -0
  40. package/dist/handlers/grants-shape.d.ts +45 -0
  41. package/dist/handlers/grants-shape.js +130 -0
  42. package/dist/handlers/grants.d.ts +21 -0
  43. package/dist/handlers/grants.js +267 -0
  44. package/dist/handlers/health.d.ts +37 -0
  45. package/dist/handlers/health.js +139 -0
  46. package/dist/handlers/index.d.ts +40 -0
  47. package/dist/handlers/index.js +85 -0
  48. package/dist/handlers/permissions.d.ts +9 -0
  49. package/dist/handlers/permissions.js +183 -0
  50. package/dist/handlers/plugins.d.ts +18 -0
  51. package/dist/handlers/plugins.js +23 -0
  52. package/dist/handlers/prompts.d.ts +12 -0
  53. package/dist/handlers/prompts.js +120 -0
  54. package/dist/handlers/providers.d.ts +12 -0
  55. package/dist/handlers/providers.js +178 -0
  56. package/dist/handlers/questions.d.ts +23 -0
  57. package/dist/handlers/questions.js +115 -0
  58. package/dist/handlers/session-model.d.ts +38 -0
  59. package/dist/handlers/session-model.js +105 -0
  60. package/dist/handlers/session-move.d.ts +22 -0
  61. package/dist/handlers/session-move.js +188 -0
  62. package/dist/handlers/session-tools.d.ts +19 -0
  63. package/dist/handlers/session-tools.js +75 -0
  64. package/dist/handlers/sessions.d.ts +32 -0
  65. package/dist/handlers/sessions.js +242 -0
  66. package/dist/handlers/usage.d.ts +26 -0
  67. package/dist/handlers/usage.js +77 -0
  68. package/dist/handlers/worker.d.ts +12 -0
  69. package/dist/handlers/worker.js +82 -0
  70. package/dist/handlers/workspaces.d.ts +12 -0
  71. package/dist/handlers/workspaces.js +88 -0
  72. package/dist/harness.test-util.d.ts +101 -0
  73. package/dist/harness.test-util.js +176 -0
  74. package/dist/index.d.ts +33 -0
  75. package/dist/index.js +33 -0
  76. package/dist/main.d.ts +13 -0
  77. package/dist/main.js +35 -0
  78. package/dist/plugins.d.ts +105 -0
  79. package/dist/plugins.js +97 -0
  80. package/dist/question-registry.d.ts +124 -0
  81. package/dist/question-registry.js +212 -0
  82. package/dist/question-rows.d.ts +32 -0
  83. package/dist/question-rows.js +43 -0
  84. package/dist/replay/compare.d.ts +47 -0
  85. package/dist/replay/compare.js +89 -0
  86. package/dist/replay/e2e-replay.d.ts +46 -0
  87. package/dist/replay/e2e-replay.js +91 -0
  88. package/dist/replay/expect-compact.d.ts +31 -0
  89. package/dist/replay/expect-compact.js +92 -0
  90. package/dist/replay/fixtures.d.ts +52 -0
  91. package/dist/replay/fixtures.js +53 -0
  92. package/dist/replay/host.d.ts +32 -0
  93. package/dist/replay/host.js +62 -0
  94. package/dist/replay/index.d.ts +16 -0
  95. package/dist/replay/index.js +16 -0
  96. package/dist/replay/probes.d.ts +55 -0
  97. package/dist/replay/probes.js +225 -0
  98. package/dist/replay/report.d.ts +13 -0
  99. package/dist/replay/report.js +103 -0
  100. package/dist/replay/session-e2e.d.ts +44 -0
  101. package/dist/replay/session-e2e.js +91 -0
  102. package/dist/routes.d.ts +47 -0
  103. package/dist/routes.js +59 -0
  104. package/dist/runtime/attachments-llm.d.ts +13 -0
  105. package/dist/runtime/attachments-llm.js +37 -0
  106. package/dist/runtime/boot-recovery.d.ts +32 -0
  107. package/dist/runtime/boot-recovery.js +71 -0
  108. package/dist/runtime/context-snapshot.d.ts +59 -0
  109. package/dist/runtime/context-snapshot.js +113 -0
  110. package/dist/runtime/engine-grants.d.ts +121 -0
  111. package/dist/runtime/engine-grants.js +338 -0
  112. package/dist/runtime/engine-permissions.d.ts +29 -0
  113. package/dist/runtime/engine-permissions.js +92 -0
  114. package/dist/runtime/engine-plugins.d.ts +189 -0
  115. package/dist/runtime/engine-plugins.js +292 -0
  116. package/dist/runtime/engine-profile.d.ts +28 -0
  117. package/dist/runtime/engine-profile.js +88 -0
  118. package/dist/runtime/engine-session.d.ts +9 -0
  119. package/dist/runtime/engine-session.js +9 -0
  120. package/dist/runtime/fallback-contract.d.ts +32 -0
  121. package/dist/runtime/fallback-contract.js +10 -0
  122. package/dist/runtime/fallback-host.d.ts +134 -0
  123. package/dist/runtime/fallback-host.js +299 -0
  124. package/dist/runtime/host-autowake.d.ts +79 -0
  125. package/dist/runtime/host-autowake.js +86 -0
  126. package/dist/runtime/image-downgrade.d.ts +49 -0
  127. package/dist/runtime/image-downgrade.js +90 -0
  128. package/dist/runtime/inbox-message.d.ts +11 -0
  129. package/dist/runtime/inbox-message.js +20 -0
  130. package/dist/runtime/index.d.ts +17 -0
  131. package/dist/runtime/index.js +17 -0
  132. package/dist/runtime/ledger-view.d.ts +40 -0
  133. package/dist/runtime/ledger-view.js +56 -0
  134. package/dist/runtime/llm-assembly.d.ts +66 -0
  135. package/dist/runtime/llm-assembly.js +114 -0
  136. package/dist/runtime/offline-llm.d.ts +71 -0
  137. package/dist/runtime/offline-llm.js +132 -0
  138. package/dist/runtime/provider-target.d.ts +10 -0
  139. package/dist/runtime/provider-target.js +10 -0
  140. package/dist/runtime/question-host.d.ts +33 -0
  141. package/dist/runtime/question-host.js +41 -0
  142. package/dist/runtime/question-view.d.ts +48 -0
  143. package/dist/runtime/question-view.js +76 -0
  144. package/dist/runtime/real-runtime-adapter.d.ts +95 -0
  145. package/dist/runtime/real-runtime-adapter.js +553 -0
  146. package/dist/runtime/recovery-audit.d.ts +81 -0
  147. package/dist/runtime/recovery-audit.js +95 -0
  148. package/dist/runtime/recovery-view.d.ts +36 -0
  149. package/dist/runtime/recovery-view.js +63 -0
  150. package/dist/runtime/session-compose.d.ts +235 -0
  151. package/dist/runtime/session-compose.js +350 -0
  152. package/dist/runtime/session-grants.d.ts +36 -0
  153. package/dist/runtime/session-grants.js +69 -0
  154. package/dist/runtime/session-lifecycle.d.ts +40 -0
  155. package/dist/runtime/session-lifecycle.js +86 -0
  156. package/dist/runtime/session-publisher.d.ts +40 -0
  157. package/dist/runtime/session-publisher.js +48 -0
  158. package/dist/runtime/session-release.d.ts +53 -0
  159. package/dist/runtime/session-release.js +80 -0
  160. package/dist/runtime/test-util.d.ts +78 -0
  161. package/dist/runtime/test-util.js +162 -0
  162. package/dist/runtime/watchdog-view.d.ts +33 -0
  163. package/dist/runtime/watchdog-view.js +45 -0
  164. package/dist/runtime/worker-bridge.d.ts +76 -0
  165. package/dist/runtime/worker-bridge.js +156 -0
  166. package/dist/runtime/worker-live.d.ts +22 -0
  167. package/dist/runtime/worker-live.js +25 -0
  168. package/dist/runtime/worker-recovery.d.ts +35 -0
  169. package/dist/runtime/worker-recovery.js +64 -0
  170. package/dist/runtime/worker-table.d.ts +58 -0
  171. package/dist/runtime/worker-table.js +70 -0
  172. package/dist/runtime-adapter.d.ts +421 -0
  173. package/dist/runtime-adapter.js +76 -0
  174. package/dist/serial-queue.d.ts +16 -0
  175. package/dist/serial-queue.js +22 -0
  176. package/dist/server.d.ts +44 -0
  177. package/dist/server.js +119 -0
  178. package/dist/settings.d.ts +23 -0
  179. package/dist/settings.js +31 -0
  180. package/dist/sse.d.ts +67 -0
  181. package/dist/sse.js +186 -0
  182. package/dist/static.d.ts +20 -0
  183. package/dist/static.js +120 -0
  184. package/dist/store/builtin-sections.d.ts +52 -0
  185. package/dist/store/builtin-sections.js +118 -0
  186. package/dist/store/celestea-home.d.ts +12 -0
  187. package/dist/store/celestea-home.js +11 -0
  188. package/dist/store/fs-json.d.ts +51 -0
  189. package/dist/store/fs-json.js +119 -0
  190. package/dist/store/grants-audit.d.ts +84 -0
  191. package/dist/store/grants-audit.js +109 -0
  192. package/dist/store/grants-service.d.ts +44 -0
  193. package/dist/store/grants-service.js +41 -0
  194. package/dist/store/grants-tokens.d.ts +62 -0
  195. package/dist/store/grants-tokens.js +105 -0
  196. package/dist/store/grants.d.ts +113 -0
  197. package/dist/store/grants.js +238 -0
  198. package/dist/store/index.d.ts +36 -0
  199. package/dist/store/index.js +36 -0
  200. package/dist/store/mode.d.ts +35 -0
  201. package/dist/store/mode.js +41 -0
  202. package/dist/store/permissions.d.ts +61 -0
  203. package/dist/store/permissions.js +139 -0
  204. package/dist/store/prompts-compose.d.ts +56 -0
  205. package/dist/store/prompts-compose.js +62 -0
  206. package/dist/store/prompts-template.d.ts +26 -0
  207. package/dist/store/prompts-template.js +99 -0
  208. package/dist/store/prompts.d.ts +142 -0
  209. package/dist/store/prompts.js +273 -0
  210. package/dist/store/provider-probe.d.ts +81 -0
  211. package/dist/store/provider-probe.js +154 -0
  212. package/dist/store/providers.d.ts +97 -0
  213. package/dist/store/providers.js +219 -0
  214. package/dist/store/result.d.ts +29 -0
  215. package/dist/store/result.js +30 -0
  216. package/dist/store/session-id.d.ts +119 -0
  217. package/dist/store/session-id.js +220 -0
  218. package/dist/store/session-meta.d.ts +41 -0
  219. package/dist/store/session-meta.js +66 -0
  220. package/dist/store/session-ops.d.ts +109 -0
  221. package/dist/store/session-ops.js +264 -0
  222. package/dist/store/session-tools.d.ts +42 -0
  223. package/dist/store/session-tools.js +69 -0
  224. package/dist/store/sessions.d.ts +162 -0
  225. package/dist/store/sessions.js +307 -0
  226. package/dist/store/validate.d.ts +13 -0
  227. package/dist/store/validate.js +38 -0
  228. package/dist/store/workspaces.d.ts +67 -0
  229. package/dist/store/workspaces.js +228 -0
  230. package/dist/user-questions.d.ts +58 -0
  231. package/dist/user-questions.js +157 -0
  232. package/dist/version.d.ts +14 -0
  233. package/dist/version.js +52 -0
  234. package/package.json +38 -0
  235. package/webdist/assets/index-Bngs7gUm.js +98 -0
  236. package/webdist/assets/index-Bu6ci_rN.css +1 -0
  237. package/webdist/assets/katex-CCbS2qAY.js +257 -0
  238. package/webdist/assets/mhchem-CnUN8HwY.js +1 -0
  239. package/webdist/build-meta.json +7 -0
  240. package/webdist/index.html +261 -0
@@ -0,0 +1 @@
1
+ :root{--mono:"SF Mono", "JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--sans:"Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-bubble:22px;--r-dialog:24px;--r-menu:20px;--r-card:var(--r-lg);--r-badge:24px;--r-pill:999px;--r-tip:8px;--radius:var(--r-md);--field-label-w:148px;--sp-flow:16px;--sp-flow-answer:8px;--sp-composer-gap:6px;--sp-composer-side:16px;--sp-dock-inset:8px;--composer-text-max-h:336px;--chat-col:clamp(680px, 64%, 920px);--chat-col-live:var(--chat-col-user,var(--chat-col));--hairline:.5px;--s-white:#fff;--s-gray-25:#fafafa;--s-gray-50:#f4f4f4;--s-gray-100:#e8e8e8;--s-gray-300:#b8b8b8;--s-gray-500:#999;--s-gray-600:#6a6a6a;--s-gray-700:#555;--s-gray-900:#111;--s-black:#000;--s-green-500:#16a34a;--s-orange-500:#c2410c;--s-red-600:#b91c1c}:root,[data-theme=mono]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--c-accent-h:0;--c-accent-chroma:0;--c-accent:var(--interactive-accent);--c-accent-strong:var(--interactive-accent-strong);--c-accent-soft:var(--interactive-accent-soft);--c-accent-ring:var(--interactive-accent-ring);--c-accent-fg:var(--interactive-accent-fg);--c-bg:var(--bg-base);--c-surface:var(--bg-layer-1);--c-surface-raised:var(--bg-surface-raised);--c-border-subtle:var(--border-l1);--c-border-strong:var(--border-l3);--c-text-1:var(--label-primary);--c-text-2:var(--label-secondary);--c-text-3:var(--label-tertiary);--c-code-bg:var(--bg-code);--c-scroll-thumb:var(--scroll-thumb);--c-overlay:var(--overlay);--c-ok:var(--state-ok);--c-warn:var(--state-warn);--c-err:var(--state-err);--c-ok-dim:#0000000f;--c-err-dim:#0000001a;--c-warn-dim:#0000000d;--c-live:var(--state-live);--c-live-dim:#16a34a2e;--c-grant:var(--state-grant);--c-grant-soft:#c2410c1a;--c-grant-danger:#b91c1c;--c-grant-idle:#b8b8b8;--c-layer-2:var(--bg-layer-2);--c-hairline-l2:var(--border-l2);--c-sweep:#00000013;--row-h:24px;--lead-box:16px;--lead-gap:6px;--fs-secondary:13px;--lh-secondary:20px;--card-radius:var(--r-lg);--card-gutter:30px;--code-lh:18px;--shadow-panel:0 1px 2px #0000000f, 0 8px 24px #00000017;--tap-min:44px;--topbar-h-mobile:56px;--drawer-w:min(86vw, 320px);--safe-b:env(safe-area-inset-bottom,0px);--hl-comment:#888;--hl-keyword:#222;--hl-string:#444;--hl-number:#333;--hl-title:#111;--hl-attr:#555;--hl-builtin:#444;--hl-literal:#222;--hl-meta:#666;--hl-type:#333;--bg-base:var(--s-gray-25);--bg-layer-1:var(--s-white);--bg-layer-2:#0000000a;--bg-layer-3:var(--s-gray-50);--bg-surface-raised:var(--s-white);--bg-code:var(--s-gray-50);--border-l1:var(--s-gray-100);--border-l2:var(--s-gray-100);--border-l3:var(--s-gray-300);--border-l4:var(--s-gray-900);--label-primary:var(--s-gray-900);--label-secondary:var(--s-gray-700);--label-tertiary:var(--s-gray-500);--label-caption:var(--s-gray-500);--state-ok:#3a3a3a;--state-warn:var(--s-gray-600);--state-err:var(--s-black);--state-live:var(--s-green-500);--state-grant:var(--s-orange-500);--interactive-accent:var(--s-gray-900);--interactive-accent-strong:var(--s-black);--interactive-accent-soft:#0000000e;--interactive-accent-ring:#00000047;--interactive-accent-fg:var(--s-white);--interactive-bg-hover:var(--s-gray-50);--overlay:#1116;--scroll-thumb:#d0d0d0;--bubble-bg:var(--bg-layer-1);--bubble-fg:var(--label-primary);--bubble-user-bg:var(--interactive-accent);--bubble-user-fg:var(--interactive-accent-fg);--input-bg:var(--bg-code);--menu-bg:var(--bg-surface-raised);--sidebar-fill:var(--bg-layer-1);--tip-bg:var(--bg-surface-raised);--composer-bg:var(--bg-layer-1);--topbar-bg:var(--bg-layer-1)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--s-white:#1c1c1c;--s-gray-25:#131313;--s-gray-50:#232323;--s-gray-100:#343434;--s-gray-300:#5a5a5a;--s-gray-500:#8a8a8a;--s-gray-600:#a0a0a0;--s-gray-700:#bdbdbd;--s-gray-900:#ededed;--s-black:#fff;--s-green-500:#4ade80;--s-orange-500:#fb923c;--s-red-600:#f87171;--bg-layer-2:#ffffff0f;--bg-code:#1a1a1a;--interactive-accent:#ededed;--interactive-accent-strong:#fff;--interactive-accent-soft:#ffffff14;--interactive-accent-ring:#ffffff52;--interactive-accent-fg:#131313;--interactive-bg-hover:#2a2a2a;--overlay:#0000008c;--scroll-thumb:#3a3a3a;--state-ok:#bdbdbd;--state-warn:#a0a0a0;--state-err:#fff;--c-ok-dim:#ffffff14;--c-err-dim:#ffffff1f;--c-warn-dim:#ffffff0f;--c-live-dim:#4ade8033;--c-grant-soft:#fb923c24;--c-sweep:#ffffff17;--shadow-panel:0 1px 2px #0006, 0 8px 24px #00000080}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--c-bg);color:var(--c-text-1);font:14px / 1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}::selection{background:var(--c-accent-ring)}.hidden{display:none!important}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--c-scroll-thumb);border-radius:var(--r-sm);border:2px solid var(--c-bg)}::-webkit-scrollbar-thumb:hover{background:var(--c-border-strong)}::-webkit-scrollbar-track{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--c-scroll-thumb) transparent}button{font:inherit}.btn{border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-raised);color:var(--c-text-1);cursor:pointer;white-space:nowrap;padding:6px 14px;transition:background .12s,border-color .12s,color .12s}.btn:hover{background:var(--c-surface-raised);border-color:var(--c-border-strong)}.btn:disabled{opacity:.4;cursor:default}.btn:focus-visible{outline:2px solid var(--c-accent-ring);outline-offset:1px}.btn-accent{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-fg);font-weight:600}.btn-accent:hover{background:var(--c-accent-strong);border-color:var(--c-accent-strong)}.btn-quiet{color:var(--c-text-2);background:0 0;border-color:#0000}.btn-quiet:hover{background:var(--c-surface-raised);color:var(--c-text-1)}.btn-soft{color:var(--c-accent);border-color:var(--c-accent-ring);background:0 0}.btn-soft:hover{background:var(--c-accent-soft);border-color:var(--c-accent-ring)}.btn-mini{color:var(--c-text-3);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:2px 6px;font-size:12px}.btn-mini:hover{color:var(--c-text-2);background:var(--c-surface-raised)}.btn-theme{font-family:var(--mono);font-size:12px}input,textarea,select{background:var(--c-code-bg);border:1px solid var(--c-border-subtle);border-radius:var(--r-md);color:var(--c-text-1);font:inherit;outline:none;padding:6px 10px;font-size:13px;transition:border-color .12s}input:focus,textarea:focus,select:focus{border-color:var(--c-accent)}input::placeholder,textarea::placeholder{color:var(--c-text-3)}select{cursor:pointer}@keyframes pulse{50%{opacity:.35}}@keyframes caret{50%{opacity:.25}}#app{flex-direction:column;height:100vh;display:flex}#topbar{background:var(--topbar-bg);border-bottom:var(--hairline) solid var(--border-l2);flex:none;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.topbar-left{align-items:center;gap:10px;display:flex}.logo{border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface-raised);justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.logo span{border:1.5px solid var(--c-accent);border-radius:var(--r-sm);width:8px;height:8px;display:block}.brand{letter-spacing:.4px;font-size:15px;font-weight:600}.brand-tag{color:var(--c-text-3);font-size:11px;font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);padding:1px 5px}.topbar-right{align-items:center;gap:8px;display:flex}#layout{flex:1;min-height:0;display:flex}#sidebar{background:var(--sidebar-fill);border-right:var(--hairline) solid var(--border-l2);flex-direction:column;flex:none;width:316px;display:flex;overflow-y:auto}#app.sidebar-collapsed #sidebar,#app.sidebar-collapsed #sidebarResizer{display:none}.sidebar-resizer{cursor:col-resize;z-index:5;touch-action:none;background:0 0;flex:0 0 6px;transition:background .12s;position:relative}.sidebar-resizer:after{content:"";position:absolute;top:0;bottom:0;left:-3px;right:-3px}.sidebar-resizer:hover,body.resizing .sidebar-resizer{background:var(--c-accent-soft);box-shadow:inset 1px 0 0 var(--c-accent-ring), inset -1px 0 0 var(--c-accent-ring)}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.side-sec{padding:4px 0 10px}.side-sec-foot{border-bottom:none;padding:8px 12px}.side-sec-head{align-items:center;gap:8px;padding:8px 12px 6px;display:flex}.side-sec-head h3{color:var(--c-text-2);letter-spacing:1px;text-transform:uppercase;margin:0;font-size:12px;font-weight:600}.sec-note{color:var(--c-text-3);font-size:11px;font-family:var(--mono)}.side-sec-head .btn-mini{margin-left:auto}.side-body{flex-direction:column;gap:6px;padding:0 12px;display:flex}.side-note{color:var(--c-text-3);padding:2px 0;font-size:12px}.side-note.err{color:var(--c-err)}#main{flex-direction:column;flex:1;min-width:0;display:flex}.chat-shell{min-width:0;margin:var(--sp-dock-inset);background:var(--bg-layer-1);border:var(--hairline) solid var(--border-l1);border-radius:var(--r-shell);--r-shell:var(--r-lg);flex-direction:column;flex:none;display:flex;position:relative}.chat-shell>:first-child{border-top-left-radius:var(--r-shell);border-top-right-radius:var(--r-shell)}.chat-shell>:last-child{border-bottom-left-radius:var(--r-shell);border-bottom-right-radius:var(--r-shell)}#messages{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}#messages:focus{outline:none}.empty-hint{text-align:center;color:var(--c-text-3);flex-direction:column;align-items:center;gap:6px;margin:auto;padding-bottom:40px;display:flex}.empty-hint.hidden{display:none}.empty-mark{color:var(--c-border-strong);font-size:40px;line-height:1}.empty-title{color:var(--c-text-2);letter-spacing:1px;font-size:16px}.empty-sub{font-size:12.5px}#statusbar{border-top:var(--hairline) solid var(--border-l2);background:var(--composer-bg);color:var(--c-text-2);font-size:12px;font-family:var(--mono);flex:none;justify-content:space-between;align-items:center;padding:5px 14px;display:flex}.sb-left,.sb-right{align-items:center;gap:8px;display:flex}.sb-sep{color:var(--c-text-3)}.dot{background:var(--c-text-3);border-radius:50%;flex:none;width:7px;height:7px}.dot.ok{background:var(--c-ok)}.dot.busy{background:var(--c-accent);animation:1.2s ease-in-out infinite pulse}.dot.err{background:var(--c-err)}#inputbar{background:var(--composer-bg);flex-wrap:wrap;flex:none;align-items:stretch;gap:10px;padding:10px 14px 12px;display:flex}#input{resize:none;min-height:52px;max-height:var(--composer-text-max-h);background:var(--input-bg);flex:1;padding:10px 12px;font-size:14px}.input-box{flex:auto;min-width:0;display:flex;position:relative}.input-box #input{flex:auto;min-width:0;padding-left:40px}#btnAttach.attach-inline{border-radius:var(--r-sm);justify-content:center;align-items:center;width:28px;min-width:0;height:28px;padding:0;display:inline-flex;position:absolute;bottom:6px;left:6px}#btnAttach.attach-inline svg{width:16px;height:16px;display:block}.input-side{flex-direction:row;flex:none;align-items:flex-end;gap:8px;display:flex}#btnSend{min-width:88px;padding:9px 14px}.tool-item{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);background:var(--c-surface-raised);cursor:default;padding:7px 10px}.tool-item:hover{border-color:var(--c-border-strong)}.tool-item-name{font-family:var(--mono);color:var(--c-accent);font-size:12.5px;font-weight:600}.tool-item-desc{color:var(--c-text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;display:-webkit-box;overflow:hidden}.sess-item{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);background:var(--c-surface-raised);cursor:pointer;padding:7px 10px;transition:border-color .12s,background .12s}.sess-item:hover{border-color:var(--c-border-strong)}.sess-item.active{border-color:var(--c-accent-ring);background:var(--c-accent-soft)}.sess-title{color:var(--c-text-1);align-items:center;gap:8px;font-size:13px;display:flex}.sess-title .sess-live{background:var(--c-ok);border-radius:50%;flex:none;width:6px;height:6px}.sess-title .sess-idle{background:var(--c-text-3);border-radius:50%;flex:none;width:6px;height:6px}.sess-meta{color:var(--c-text-3);font-size:11.5px;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.mcol{width:100%;max-width:clamp(560px, calc(100vw - var(--sidebar-w,316px) - 140px), 1400px);flex-direction:column;margin:0 auto;display:flex}.msg{flex-direction:column;display:flex}.msg.user{align-items:flex-end}.msg.assistant{align-items:stretch}.msg-caption{color:var(--c-text-3);font-size:11.5px;font-family:var(--mono);align-items:center;gap:8px;margin-bottom:4px;display:flex}.msg-caption .who{color:var(--c-text-2)}.msg.user .msg-caption{flex-direction:row-reverse}.bubble{border-radius:var(--r-bubble);background:var(--bubble-bg);width:-moz-fit-content;width:fit-content;max-width:72%;padding:10px 16px;box-shadow:0 1px 2px #0000000d}.msg.user .bubble{background:var(--bubble-user-bg);color:var(--bubble-user-fg);margin-left:auto}.msg.user .bubble .content{color:inherit}.msg.user .bubble a{color:var(--c-accent-fg);text-decoration:underline}.msg.assistant .bubble{max-width:100%}.msg.tool .bubble,.msg.info .bubble,.msg.think-seg .bubble{width:100%;max-width:100%}.msg.tool .bubble,.msg.think-seg .bubble{box-shadow:none;background:0 0;border-radius:0;padding:0}.msg.assistant .bubble.streaming{box-shadow:0 0 0 1px var(--c-accent-ring)}.toolcards{flex-direction:column;gap:6px;margin:8px 0;display:flex}.toolcard{padding-left:var(--card-gutter);background:var(--c-code-bg);border-radius:var(--r-card);font-family:var(--mono);font-size:12px;line-height:var(--code-lh);position:relative;overflow:hidden}.toolcard>summary.toolcard-head{cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:calc(-1 * var(--card-gutter));padding:9px 14px 9px var(--card-gutter);border-top-left-radius:var(--r-card);border-top-right-radius:var(--r-card);max-height:150px;list-style:none;overflow-y:auto}.toolcard>summary.toolcard-head::-webkit-details-marker{display:none}.toolcard:not(.running)>.toolcard-head{border-bottom:.5px solid var(--c-hairline-l2)}.toolcard-head{align-items:center;gap:3px;display:flex}.toolcard-head:hover{color:var(--c-text-2)}.toolcard-row1{align-items:center;gap:8px;width:100%;display:flex;position:relative}.toolcard-fold{width:16px;height:16px;color:var(--c-text-3);flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.toolcard-fold>svg{transform-origin:50%;width:14px;height:14px;transition:transform .1s;display:block}.toolcard-fold[data-fold=collapsed]>svg{transform:rotate(0)}.toolcard-fold[data-fold=expanded]>svg{transform:rotate(90deg)}.toolcard-args-preview,.toolcard-result-preview{width:100%;font-family:var(--mono);color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;padding:8px 14px 0 0;font-size:11px;line-height:16px;overflow:hidden}.toolcard-result-preview{color:var(--c-text-2);padding-top:6px}.toolcard.err .toolcard-result-preview{color:var(--c-err)}.toolcard.ok .toolcard-result-preview{color:var(--c-ok)}.toolcard-head .step-tag{font-family:var(--mono);color:var(--c-text-3);flex:none;font-size:11px}.toolcard-name{font-family:var(--mono);color:var(--c-accent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.toolcard-state{height:var(--row-h);border-radius:var(--r-badge);font-family:var(--mono);font-size:12px;line-height:var(--code-lh);color:var(--c-text-2);background:var(--c-layer-2);flex:none;align-items:center;gap:4px;margin-left:auto;padding:0 8px;display:inline-flex}.toolcard.ok .toolcard-state{color:var(--c-ok)}.toolcard.err .toolcard-state,.toolcard.deny .toolcard-state{color:var(--c-err)}.toolcard-body{flex-direction:column;display:flex}.toolcard:not([open])>.toolcard-body{display:none}.toolcard.running>.toolcard-head{position:relative;overflow:hidden}.toolcard.running>.toolcard-head:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--c-sweep) 55%, transparent 100%);pointer-events:none;width:300px;animation:2.6s ease-out infinite think-row-sweep;position:absolute;top:0;bottom:0;left:-300px}.tool-args,.tool-out{color:var(--c-text-2);font-family:var(--mono);font-size:12px;line-height:var(--code-lh);white-space:pre;background:0 0;max-height:260px;margin:0;padding:12px 14px 12px 0;overflow:auto}.tool-out{color:var(--c-text-1);border-top:.5px solid var(--c-hairline-l2)}.toolcard-result-preview.has{border-top:.5px solid var(--c-hairline-l2);margin-top:2px}.tool-out.err-c{color:var(--c-err)}.toolcard-head::-webkit-scrollbar-thumb{border-radius:var(--r-sm);background-clip:padding-box;border:2px solid #0000}.tool-args::-webkit-scrollbar-thumb{border-radius:var(--r-sm);background-clip:padding-box;border:2px solid #0000}.tool-out::-webkit-scrollbar-thumb{border-radius:var(--r-sm);background-clip:padding-box;border:2px solid #0000}.toolcard-head::-webkit-scrollbar-track{margin:6px}.tool-args::-webkit-scrollbar-track{margin:6px}.tool-out::-webkit-scrollbar-track{margin:6px}.content{overflow-wrap:anywhere}.content>:first-child{margin-top:0}.content>:last-child{margin-bottom:0}.content p{margin:0 0 .7em}.content h1,.content h2,.content h3,.content h4{margin:.9em 0 .5em;font-weight:600;line-height:1.35}.content h1{font-size:1.3em}.content h2{font-size:1.18em}.content h3{font-size:1.08em}.content ul,.content ol{margin:0 0 .7em;padding-left:1.5em}.content li{margin:.15em 0}.content a{color:var(--c-accent);text-decoration:none}.content a:hover{text-decoration:underline}.content blockquote{border-left:2px solid var(--c-border-strong);color:var(--c-text-2);margin:.6em 0;padding:2px 12px}.content hr{border:none;border-top:1px solid var(--c-border-subtle);margin:.9em 0}.content table{border-collapse:collapse;margin:.6em 0;font-size:13px}.content th,.content td{border:1px solid var(--c-border-subtle);padding:4px 10px}.content th{background:var(--c-surface-raised);color:var(--c-text-2)}.content img{border-radius:var(--r-md);max-width:100%}.content code{font-family:var(--mono);font-size:12.5px}.content :not(pre)>code{background:var(--c-code-bg);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);padding:0 5px;font-size:12px}.content pre{background:var(--c-code-bg);border:1px solid var(--c-border-subtle);border-radius:var(--r-md);margin:.7em 0;padding:10px 12px;overflow-x:auto}.content pre code{background:0 0;border:none;padding:0;font-size:12.5px}.content pre code.hljs{color:inherit;background:0 0}.content .hljs-comment,.content .hljs-quote{color:var(--hl-comment);font-style:italic}.content .hljs-keyword,.content .hljs-selector-tag,.content .hljs-doctag{color:var(--hl-keyword)}.content .hljs-string,.content .hljs-regexp{color:var(--hl-string)}.content .hljs-number,.content .hljs-literal{color:var(--hl-number)}.content .hljs-title,.content .hljs-title.function_,.content .hljs-section{color:var(--hl-title)}.content .hljs-attr,.content .hljs-attribute,.content .hljs-variable,.content .hljs-template-variable{color:var(--hl-attr)}.content .hljs-built_in{color:var(--hl-builtin)}.content .hljs-meta{color:var(--hl-meta)}.content .hljs-type,.content .hljs-title.class_{color:var(--hl-type)}.content .hljs-name{color:var(--hl-title)}.content .hljs-deletion{color:var(--c-err)}.content .hljs-addition{color:var(--c-ok)}.bubble.streaming .content:after{content:"▍";color:var(--c-accent);animation:1s steps(2,end) infinite caret}.err-inline{color:var(--c-err);white-space:pre-wrap;font-size:12.5px;font-family:var(--mono);margin-top:8px}.modal{z-index:50;background:var(--c-overlay);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-box{background:var(--c-surface-raised);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);width:min(660px,100%);max-height:86vh;box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.modal-head{border-bottom:1px solid var(--c-border-subtle);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.modal-head h3{margin:0;font-size:14px;font-weight:600}.modal-actions{align-items:center;gap:6px;display:flex}.modal-body{padding:12px 14px;overflow-y:auto}.modal-actions .btn-mini{flex:none}.cfg-form{flex-direction:column;gap:10px;display:flex}.cfg-field,.prov-field{grid-template-columns:var(--field-label-w,148px) minmax(0, 1fr);align-items:start;gap:4px 10px;display:grid}.cfg-field .cfg-label,.prov-field-label{color:var(--c-text-2);font-size:12.5px;font-family:var(--mono);text-align:left;white-space:nowrap;text-overflow:ellipsis;padding-top:7px;overflow:hidden}.cfg-input{width:100%;min-width:0}.cfg-sys{resize:vertical;min-height:96px;font-size:12.5px}.cfg-hint{color:var(--c-text-3);grid-column:2;font-size:11.5px}.cfg-actions{border-top:1px solid var(--c-border-subtle);justify-content:flex-end;gap:10px;padding-top:10px;display:flex}.cfg-status{font-size:12px;font-family:var(--mono);white-space:pre-wrap;word-break:break-all}.cfg-status.ok{color:var(--c-ok)}.cfg-status.err{color:var(--c-err)}.cfg-hintline{color:var(--c-text-3);font-size:11.5px;font-family:var(--mono);margin-top:10px;padding-top:8px}.cfg-hintline:empty{display:none}.msg.tool .msg-caption .who{color:var(--c-text-3)}.restore-note{text-align:center;color:var(--c-text-3);padding:6px 0 0;font-size:12px}.restore-fold{text-align:center;color:var(--c-text-3);font-size:11.5px;font-family:var(--mono);margin-bottom:14px;padding:2px 0 12px}.live-sep{color:var(--c-text-3);font-size:11px;font-family:var(--mono);-webkit-user-select:none;user-select:none;align-items:center;gap:12px;margin:4px 0 2px;display:flex}.live-sep:before,.live-sep:after{content:"";background:var(--c-border-subtle);flex:1;height:1px}.live-sep span{letter-spacing:1px;white-space:nowrap}.content.restore-tool{white-space:pre-wrap;word-break:break-all;font-family:var(--mono);color:var(--c-text-2);font-size:12px}.msg.think-seg .msg-caption .who{color:var(--c-text-2)}.think-seg-bubble{width:100%;max-width:100%;color:var(--c-text-3);background:0 0;border:none;border-radius:0;padding:0}.think-seg-body{padding:4px 0 4px calc(var(--lead-box) + var(--lead-gap));color:var(--c-text-3);font-family:var(--sans);font-size:var(--fs-secondary);line-height:var(--lh-secondary);white-space:pre-wrap;word-break:break-word;max-height:320px;overflow-y:auto}.msg.info .msg-caption .who{color:var(--c-text-3)}.info-bubble{border-radius:var(--r-card);border-left:2px solid var(--c-warn);background:var(--c-layer-2);width:100%;max-width:100%;box-shadow:none;padding:8px 12px}.msg.info.err .info-bubble{border-left-color:var(--c-err);background:var(--c-err-dim)}.info-content{font-size:var(--fs-secondary);line-height:var(--lh-secondary);color:var(--c-text-2);white-space:pre-wrap;word-break:break-word}.toolcard-copy{color:var(--c-text-2);cursor:pointer;font-family:var(--mono);font-size:12px;line-height:var(--code-lh);background:0 0;border:none;flex:none;padding:0}.toolcard-copy:hover{color:var(--c-text-1)}.switch-progress{z-index:95;pointer-events:none;background:linear-gradient(90deg, transparent 0%, var(--c-accent) 50%, transparent 100%);background-repeat:no-repeat;background-size:40% 100%;height:2px;animation:1.1s linear infinite switchSlide;position:fixed;top:0;left:0;right:0}@keyframes switchSlide{0%{background-position:-40% 0}to{background-position:140% 0}}.msg.think-seg .think-head{align-items:center;gap:var(--lead-gap);height:var(--row-h);padding-left:calc(var(--lead-box) + var(--lead-gap));font-family:var(--sans);font-size:var(--fs-secondary);line-height:var(--row-h);color:var(--c-text-2);cursor:pointer;-webkit-user-select:none;user-select:none;margin:0;display:flex;position:relative;overflow:hidden}.msg.think-seg .think-head:hover{color:var(--c-text-1)}.msg.think-seg .think-head:before{content:"";width:var(--lead-box);height:var(--lead-box);color:var(--c-text-3);background:linear-gradient(currentColor,currentColor) 50%/1.5px 10px no-repeat,linear-gradient(currentColor,currentColor) 50%/10px 1.5px no-repeat;transition:opacity .1s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.msg.think-seg .think-head:hover:before{opacity:0}.msg.think-seg .think-head:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:2px;border-radius:var(--r-sm)}.think-fold-mark{width:var(--lead-box);height:var(--lead-box);color:var(--c-text-3);opacity:0;justify-content:center;align-items:center;line-height:1;transition:opacity .1s;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.think-fold-mark svg{transform-origin:50%;width:14px;height:14px;transition:transform .1s;display:block}.think-fold-mark[data-fold=collapsed] svg{transform:rotate(0)}.think-fold-mark[data-fold=expanded] svg{transform:rotate(90deg)}.msg.think-seg .think-head:hover .think-fold-mark{opacity:1}.msg.think-seg .think-head:focus-visible .think-fold-mark{opacity:1}.msg.think-seg[data-state=running] .think-head:after{content:"";top:0;bottom:0;pointer-events:none;background:linear-gradient(90deg, transparent 0%, var(--c-sweep) 55%, transparent 100%);width:300px;animation:2.6s ease-out infinite think-row-sweep;position:absolute;left:-300px}@keyframes think-row-sweep{0%{left:-300px}90%,to{left:100%}}.msg.think-seg[data-state=running] .think-head:before{animation:1.6s linear infinite think-mark-spin}@keyframes think-mark-spin{0%{transform:translateY(-50%)rotate(0)}to{transform:translateY(-50%)rotate(360deg)}}.think-time{font-family:var(--mono);color:var(--c-text-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.think-seg-folded{padding:2px 0 2px calc(var(--lead-box) + var(--lead-gap));font-size:12px;line-height:var(--lh-secondary);color:var(--c-text-3);display:none}.msg.think-seg.collapsed .think-seg-body{display:none}.msg.think-seg.collapsed .think-seg-folded{display:block}.ts-dot{width:10px;height:10px;color:var(--c-text-3);flex:none;display:inline-block;position:relative}.ts-dot:before{content:"";opacity:.1;background:currentColor;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.ts-dot:after{content:"";background:currentColor;border-radius:50%;position:absolute;top:20%;bottom:20%;left:20%;right:20%}.toolcard.ok .ts-dot{color:var(--c-ok)}.toolcard.err .ts-dot,.toolcard.deny .ts-dot{color:var(--c-err)}.toolcard.running .ts-dot{color:var(--c-accent)}.toolcard.running .ts-dot:after{animation:1s infinite state-chase}@keyframes state-chase{0%,12.4%{opacity:1}12.5%,24.9%{opacity:.6}25%,37.4%{opacity:.35}37.5%,to{opacity:.15}}.toolcard-row1 .ts-dot{left:calc(-1 * var(--card-gutter) + 8px);position:absolute;top:50%;transform:translateY(-50%)}#statusline,.statusline{background:var(--composer-bg);font-family:var(--mono);color:var(--c-text-2);-webkit-user-select:none;user-select:none;flex-direction:column;flex:none;gap:1px;padding:5px 14px 4px;font-size:11.5px;display:flex}.sl-row{align-items:center;gap:8px;min-height:16px;display:flex}.sl-row-main{flex-wrap:nowrap;min-width:0;overflow:hidden}.sl-row-sub{color:var(--c-text-3)}.sl-sep{color:var(--c-text-3);opacity:.6}.sl-end{flex:none;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.sl-ctx{font-variant-numeric:tabular-nums;color:var(--c-text-1);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.sl-model{color:var(--c-text-1);border-radius:var(--r-badge);text-overflow:ellipsis;white-space:nowrap;border:1px solid #0000;max-width:46ch;height:28px;padding:0 8px;overflow:hidden}.sl-effort{color:var(--c-text-2);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);padding:0 6px;font-size:10.5px;line-height:14px}.sl-effort:empty{display:none}.sl-tps,.sl-steps,.sl-cache{font-variant-numeric:tabular-nums;border-radius:var(--r-badge);background:var(--c-layer-2);padding:1px 7px}.sl-hint{color:var(--c-warn);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10.5px;overflow:hidden}.sl-ring{cursor:pointer;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.sl-ring svg{display:block}.sl-ring circle{fill:none;stroke-width:2px}.sl-ring .sl-ring-track{stroke:var(--c-border-subtle)}.sl-ring .sl-ring-prog{stroke:var(--c-ok);transition:stroke-dashoffset .35s,stroke .2s}.sl-ring.warn .sl-ring-prog{stroke:var(--c-warn);animation:1.2s ease-in-out infinite pulse}#statusline.sl-stale .sl-model,#statusline.sl-stale .sl-ctx,#statusline.sl-stale .sl-effort,#statusline.sl-stale .sl-mode,#statusline.sl-stale .sl-tps,#statusline.sl-stale .sl-steps,#statusline.sl-stale .sl-cache{opacity:.55}#statusline{position:relative;container-type:inline-size}#statusline:before{content:"";background:linear-gradient(to top, var(--bg-base), transparent);pointer-events:none;height:36px;position:absolute;bottom:100%;left:0;right:0}.sl-model,.sl-effort,.sl-mode{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.sl-model{color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;max-width:46ch;overflow:hidden}.sl-effort,.sl-mode{color:var(--c-text-2);border:1px solid var(--c-border-subtle);border-radius:var(--r-badge);height:28px;padding:0 8px;font-size:11px;line-height:26px}.sl-effort:empty,.sl-mode:empty{display:none}.sl-mode.exec{color:var(--c-text-1);border-color:var(--c-accent-ring);background:var(--c-accent-soft)}.sl-model:hover,.sl-effort:hover,.sl-mode:hover{color:var(--c-text-1);border-color:var(--c-accent-ring)}.sl-model:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-effort:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-mode:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-popup{z-index:40;background:var(--c-surface-raised);border:1px solid var(--c-border-strong);border-radius:var(--r-menu);width:min(360px,100vw - 40px);box-shadow:var(--shadow-panel);flex-direction:column;display:flex;position:absolute;bottom:calc(100% - 2px);left:14px;overflow:hidden}.sl-popup-title{color:var(--c-text-3);letter-spacing:1px;border-bottom:1px solid var(--c-border-subtle);background:var(--c-surface);padding:7px 12px;font-size:11.5px}.sl-popup-body{flex-direction:column;gap:2px;max-height:260px;padding:6px;display:flex;overflow-y:auto}.sl-popup-loading,.sl-popup-note{color:var(--c-text-3);padding:6px 8px;font-size:12px}.sl-popup-error,.sl-popup-status.err{color:var(--c-err)}.sl-popup-status.busy{color:var(--c-accent)}.sl-popup-error,.sl-popup-status{white-space:pre-wrap;word-break:break-all;border-top:1px solid var(--c-border-subtle);margin-top:4px;padding:6px 8px;font-size:12px}.sl-opt{border-radius:var(--r-sm);width:100%;color:var(--c-text-1);cursor:pointer;text-align:left;font:inherit;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:6px 8px;display:flex}.sl-opt:hover{background:var(--c-accent-soft);border-color:var(--c-accent-ring)}.sl-opt.current{background:var(--c-surface);border-color:var(--c-accent-ring)}.sl-opt-name{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.sl-opt-val{font-family:var(--mono);color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;text-align:right;flex:auto;font-size:10.5px;overflow:hidden}.sl-opt-tag{color:var(--c-accent);border:1px solid var(--c-accent-ring);border-radius:var(--r-sm);font-size:10px;font-family:var(--mono);flex:none;padding:0 4px}.sl-popup-sep{color:var(--c-text-3);letter-spacing:1px;border-top:1px solid var(--c-border-subtle);margin-top:4px;padding:6px 8px 2px;font-size:10.5px}.sl-group{color:var(--c-text-3);letter-spacing:1px;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:7px 8px 2px;font-size:10.5px;display:flex}.sl-group+.sl-group{border-top:1px solid var(--c-border-subtle);margin-top:4px}.sl-group-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sl-group.cur .sl-group-name{color:var(--c-text-1)}.sl-group-id{font-family:var(--mono);color:var(--c-text-3);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);text-overflow:ellipsis;white-space:nowrap;max-width:14ch;padding:0 4px;font-size:9.5px;overflow:hidden}.sl-group-tag{font-family:var(--mono);color:var(--c-accent);border:1px solid var(--c-accent-ring);border-radius:var(--r-sm);padding:0 4px;font-size:9.5px}:root{--mi-deepseek:#3f5cf0;--mi-openai:#0f8a72;--mi-glm:#6d4df0;--mi-claude:#c26340;--mi-gemini:#1a8fe3;--mi-qwen:#b83fd0;--mi-meta:#1552b8;--mi-mistral:#cc5200;--mi-grok:#3f3f46;--mi-kimi:#0b7285;--mi-cohere:#2f8f4e;--mi-ollama:#6b7280}@media (prefers-color-scheme:dark){:root{--mi-deepseek:#8fa4ff;--mi-openai:#4fc3a6;--mi-glm:#a992ff;--mi-claude:#e79b78;--mi-gemini:#7cc0ff;--mi-qwen:#e79bff;--mi-meta:#7fa8ff;--mi-mistral:#ff9a66;--mi-grok:#c4c4cc;--mi-kimi:#5fd0e0;--mi-cohere:#7ed99a;--mi-ollama:#a8b4c4}}.sl-micon{vertical-align:-2px;width:12px;height:12px;color:var(--c-text-3);flex:none;margin-right:4px;display:inline-block}.sl-micon svg{display:block}.sl-micon-deepseek{color:var(--mi-deepseek)}.sl-micon-openai{color:var(--mi-openai)}.sl-micon-glm{color:var(--mi-glm)}.sl-micon-claude{color:var(--mi-claude)}.sl-micon-gemini{color:var(--mi-gemini)}.sl-micon-qwen{color:var(--mi-qwen)}.sl-micon-meta{color:var(--mi-meta)}.sl-micon-mistral{color:var(--mi-mistral)}.sl-micon-grok{color:var(--mi-grok)}.sl-micon-kimi{color:var(--mi-kimi)}.sl-micon-cohere{color:var(--mi-cohere)}.sl-micon-ollama{color:var(--mi-ollama)}.sl-opt.sub{padding-left:20px;position:relative}.sl-opt.sub:before{content:"";background:var(--c-border-strong);width:6px;height:1px;position:absolute;top:50%;left:9px}.sl-popup-textrow{gap:6px;padding:2px;display:flex}.sl-popup-input{flex:1;min-width:0}.sl-grant{border-radius:var(--r-badge);height:28px}@container (width<=360px){.sl-mode-label,.sl-grant-badge,.sl-perm-badge{display:none}.sl-model{max-width:22ch}}.sl-mode-icon{display:none}.sl-mode-btn{height:16px;font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);color:var(--c-text-2);cursor:pointer;background:0 0;flex:none;align-items:center;padding:0 6px;font-size:10.5px;line-height:15px;display:inline-flex}.sl-mode-btn:hover{background:var(--c-accent-soft);color:var(--c-text-1);border-color:var(--c-accent-ring)}.sl-mode-btn:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-mode-btn.hidden{display:none}.sl-stop{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);width:18px;height:18px;color:var(--c-text-2);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;padding:0;line-height:0;display:inline-flex}.sl-stop svg{display:block}.sl-stop:hover{background:var(--c-accent-soft);color:var(--c-text-1);border-color:var(--c-accent-ring)}.sl-stop:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-stop:disabled{opacity:.45;cursor:default;color:var(--c-text-2);border-color:var(--c-border-subtle);background:0 0}.ctx-scrim{z-index:90}.ctx-card{gap:0;width:min(920px,100vw - 40px);max-height:88vh;padding:0;overflow:hidden}.ctx-head{border-bottom:1px solid var(--c-border-subtle);align-items:center;gap:8px;padding:10px 14px;display:flex}.ctx-title{font-size:14px;font-weight:600}.ctx-tag{color:var(--c-text-3);letter-spacing:1px;border:1px solid var(--c-border-subtle);border-radius:999px;padding:1px 7px;font-size:10.5px}.ctx-close{margin-left:auto}.ctx-meta{color:var(--c-text-2);background:var(--c-surface);border-bottom:1px solid var(--c-border-subtle);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px;font-size:12px;display:flex}.ctx-model{font-family:var(--mono);color:var(--c-text-1)}.ctx-sep{color:var(--c-text-3)}.ctx-usage-text{font-family:var(--mono)}.ctx-counts{color:var(--c-text-3)}.ctx-badge{color:var(--c-text-3);white-space:nowrap;border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);margin-left:2px;padding:0 4px;font-size:10px}.ctx-body{padding:10px 14px 14px;overflow-y:auto}.ctx-body-inner{flex-direction:column;gap:14px;display:flex}.ctx-foot{color:var(--c-text-3);background:var(--c-surface);border-top:1px solid var(--c-border-subtle);padding:7px 14px;font-size:11px}.ctx-note{color:var(--c-text-3);padding:2px 2px 4px;font-size:12px}.ctx-error{color:var(--c-err);padding:4px 2px;font-size:12.5px}.ctx-sec{flex-direction:column;gap:4px;display:flex}.ctx-sec-head{letter-spacing:1px;color:var(--c-text-2);border-bottom:1px solid var(--c-border-subtle);align-items:center;gap:8px;padding-bottom:4px;font-size:11.5px;display:flex}.ctx-sec-name{font-weight:600}.ctx-count{color:var(--c-text-3);letter-spacing:0;font-size:11px}.ctx-fold>summary{cursor:pointer;border-radius:var(--r-sm);list-style:none}.ctx-fold>summary::-webkit-details-marker{display:none}.ctx-fold>summary:before{content:"▸";color:var(--c-text-3);flex:none;font-size:9px;transition:transform .18s}.ctx-fold[open]>summary:before{transform:rotate(90deg)}.ctx-fold>summary:hover{background:var(--c-accent-soft)}.ctx-fold-head,.ctx-tool-head,.ctx-msg-head{align-items:baseline;gap:8px;padding:5px 6px;font-size:12px;display:flex}.ctx-fold-name{color:var(--c-text-1);font-weight:600}.ctx-fold-head .ctx-count{margin-left:auto}.ctx-pre{font-family:var(--mono);color:var(--c-text-1);background:var(--c-code-bg);border-radius:var(--r-md);white-space:pre-wrap;word-break:break-word;max-height:340px;margin:2px 0 4px;padding:8px 10px;font-size:12px;line-height:1.55;overflow:auto}.ctx-pre-schema,.ctx-pre-msg{max-height:280px;margin-left:18px}.ctx-tools{flex-direction:column;display:flex}.ctx-tool-idx{font-family:var(--mono);color:var(--c-text-3);flex:none;font-size:11px}.ctx-tool-name{font-family:var(--mono);color:var(--c-text-1);flex:none}.ctx-tool-desc{min-width:0;color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.ctx-group{flex-direction:column;gap:1px;padding:2px 0 6px;display:flex}.ctx-group-head{color:var(--c-text-2);align-items:center;gap:8px;padding:4px 6px;font-size:11.5px;display:flex}.ctx-group-name{font-weight:600}.ctx-msg-idx{font-family:var(--mono);color:var(--c-text-3);flex:none;font-size:11px}.ctx-msg-tool{font-family:var(--mono);color:var(--c-text-2);background:var(--c-code-bg);border-radius:var(--r-sm);flex:none;padding:1px 5px;font-size:11px}.ctx-msg-head .ctx-count{flex:none}.ctx-msg-preview{min-width:0;color:var(--c-text-2);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}@media (max-height:640px){.ctx-card{max-height:94vh}.ctx-pre{max-height:220px}}.settings-page{z-index:50;background:var(--c-overlay);justify-content:center;align-items:flex-start;padding:34px 24px 24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.settings-shell{background:var(--c-surface-raised);border-radius:var(--r-lg);width:min(920px,100%);box-shadow:var(--shadow-panel);flex-direction:column;display:flex;overflow:hidden}.settings-head{background:var(--c-surface);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.settings-head h3{letter-spacing:.5px;margin:0;font-size:15px;font-weight:600}.settings-actions{align-items:center;gap:6px;display:flex}.settings-layout{min-height:460px;max-height:72vh;display:flex;overflow:hidden}.settings-nav{border-right:1px solid var(--c-border-subtle);background:var(--c-surface);flex-direction:column;flex:0 0 148px;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.settings-nav-item{border-radius:var(--r-md);color:var(--c-text-2);text-align:left;cursor:pointer;font-size:13px;font-family:var(--sans);background:0 0;border:1px solid #0000;padding:8px 12px;transition:background .12s,border-color .12s,color .12s}.settings-nav-item:hover{background:var(--c-accent-soft);color:var(--c-text-1)}.settings-nav-item.active{background:var(--c-accent-soft);border-color:var(--c-accent-ring);color:var(--c-text-1);font-weight:600}.settings-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.settings-pane{flex-direction:column;padding:0;display:none}.settings-pane.active{display:flex}.settings-pane-head{align-items:center;gap:10px;padding:10px 16px 8px;display:flex}.settings-pane-head h4{color:var(--c-text-2);margin:0;font-size:13px;font-weight:600}.settings-sec-note{color:var(--c-text-3);font-size:11.5px;font-family:var(--mono)}.settings-pane-head .btn-mini{margin-left:auto}.settings-pane-head .btn-mini+.btn-mini{margin-left:0}.settings-pane-body{padding:14px 16px}.tools-table{border-collapse:collapse;width:100%;font-size:12.5px}.tools-table th,.tools-table td{text-align:left;vertical-align:top;padding:6px 10px}.tools-table tbody tr{border-top:1px solid var(--c-border-subtle)}.tools-table th{background:var(--c-surface-raised);color:var(--c-text-2);font-family:var(--mono);letter-spacing:.5px;font-size:11.5px}.tools-table .tools-name{font-family:var(--mono);color:var(--c-accent);white-space:nowrap;width:30%;font-weight:600}.tools-table .tools-desc{color:var(--c-text-2);word-break:break-word}.prov-table{border-collapse:collapse;width:100%;font-size:12.5px}.prov-table th,.prov-table td{text-align:left;vertical-align:middle;padding:7px 10px}.prov-table tbody tr{border-top:1px solid var(--c-border-subtle)}.prov-table thead th{background:var(--c-surface-raised);color:var(--c-text-3);font-family:var(--mono);letter-spacing:.8px;font-size:11px;font-weight:600}.prov-table tbody tr:nth-child(2n){background:var(--c-surface)}.prov-table tbody tr:hover{background:var(--c-accent-soft)}.prov-table tbody tr.is-default td{border-left:2px solid var(--c-accent-ring)}.prov-name{color:var(--c-text-1);font-size:13px;font-weight:600}.prov-td-note{color:var(--c-text-2);max-width:220px}.prov-td-fmt{font-family:var(--mono);color:var(--c-text-2);white-space:nowrap;font-size:11.5px}.prov-td-models{font-family:var(--mono);text-align:center;color:var(--c-text-2)}.prov-td-state{white-space:nowrap}.prov-td-ops{white-space:nowrap;text-align:right}.prov-td-ops .btn-mini+.btn-mini{margin-left:4px}.prov-badge{color:var(--c-accent);font-size:10px;font-family:var(--mono);border:1px solid var(--c-accent-ring);border-radius:var(--r-sm);margin-right:4px;padding:0 5px}.prov-badge.key{color:var(--c-ok);border-color:var(--c-ok)}.btn-mini.danger{color:var(--c-err)}.btn-mini.danger:hover{background:var(--c-err-dim);color:var(--c-err)}.prov-table tbody tr.prov-row{cursor:pointer}.prov-table tbody tr.prov-row.expanded{background:var(--c-accent-soft)}.prov-table tbody tr.prov-panel-row,.prov-table tbody tr.prov-panel-row:hover{background:0 0}.prov-table tbody tr.prov-panel-row>td{border-top:none;padding:0}.prov-inline{opacity:0;visibility:hidden;max-height:0;transition:max-height .24s,opacity .2s,visibility 0s linear .24s;overflow:hidden}.prov-panel-row.open .prov-inline{opacity:1;visibility:visible;transition:max-height .24s,opacity .2s,visibility linear}.prov-inline .prov-form{background:var(--c-surface);padding:10px 12px 12px}.prov-default-card{border-radius:var(--r-lg);background:var(--c-surface-raised);margin-top:16px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.prov-default-head{background:var(--c-surface);align-items:baseline;gap:10px;padding:8px 12px;display:flex}.prov-default-title{color:var(--c-text-1);font-size:12.5px;font-weight:600}.prov-default-note{color:var(--c-text-3);font-size:11px;font-family:var(--mono)}.prov-default-body{align-items:center;gap:10px;padding:10px 12px;display:flex}.prov-default-label{color:var(--c-text-2);flex:none;font-size:12px}.prov-default-sel{max-width:400px}.prov-default-msg{color:var(--c-text-3);font-size:11.5px}.prov-default-msg.ok{color:var(--c-ok)}.prov-default-msg.err{color:var(--c-err)}.prov-list-msg{padding:4px 0;font-size:12px}.prov-list-msg.err{color:var(--c-err)}.prov-modal{width:min(600px,100vw - 40px);max-height:84vh;overflow-y:auto}.prov-editor-status{font-size:12px;font-family:var(--mono);min-height:16px;margin-bottom:8px}.prov-editor-status.ok{color:var(--c-ok)}.prov-editor-status.err{color:var(--c-err)}.prov-field{margin-bottom:8px}.prov-urlrow{align-items:center;gap:6px;display:flex}.prov-urlrow input{flex:1;min-width:0}.prov-models-head{align-items:center;gap:8px;margin:12px 0 6px;display:flex}.prov-models-title{color:var(--c-text-2);font-size:12.5px;font-weight:600}.prov-models-head .btn-mini{margin-left:auto}.prov-model-row{border-radius:var(--r-md);background:var(--c-surface);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;padding:6px 8px;display:flex}.prov-model-row>input{flex:40%;min-width:140px}.prov-model-adv{flex:100%;margin-top:2px}.prov-model-adv summary{cursor:pointer;color:var(--c-text-3);-webkit-user-select:none;user-select:none;padding:2px 0;font-size:11px}.prov-model-adv-body{grid-template-columns:120px minmax(0,1fr);gap:6px 10px;padding:8px 0 2px;display:grid}.prov-adv-label{color:var(--c-text-3);text-align:left;font-size:11px;line-height:30px}.prov-effort-chips{flex-wrap:wrap;align-items:center;gap:6px;min-height:30px;display:flex}.prov-effort-chip{border:1px solid var(--c-border-strong);color:var(--c-text-2);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:999px;padding:4px 14px;font-size:11.5px}.prov-effort-chip:hover{border-color:var(--c-accent-ring);color:var(--c-text-1)}.prov-effort-chip.on{background:var(--c-accent-soft);border-color:var(--c-accent-ring);color:var(--c-text-1);font-weight:600}.prov-picker{width:min(520px,100vw - 40px)}.prov-picker-list{border-radius:var(--r-lg);background:var(--c-surface);flex-direction:column;gap:2px;max-height:320px;padding:6px;display:flex;overflow-y:auto}.prov-picker-row{border-radius:var(--r-sm);cursor:pointer;color:var(--c-text-1);align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.prov-picker-row:hover{background:var(--c-accent-soft)}.prov-picker-row.existing{opacity:.55;cursor:default}.prov-picker-row.existing:hover{background:0 0}.prov-picker-cb{accent-color:var(--c-accent);flex:none}.prov-picker-id{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prov-picker-tag{font-size:10px;font-family:var(--mono);color:var(--c-text-3);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex:none;margin-left:auto;padding:0 5px}.prov-picker-count{color:var(--c-text-3);font-size:11.5px;font-family:var(--mono)}.cfg-hint{padding-left:2px}.prompts-scope{align-items:center;gap:6px;margin-bottom:10px;display:flex}.prompts-scope-btn{border:1px solid var(--c-border-subtle);color:var(--c-text-2);cursor:pointer;background:0 0;border-radius:999px;padding:3px 14px;font-size:12px}.prompts-scope-btn:hover{border-color:var(--c-accent-ring);color:var(--c-text-1)}.prompts-scope-btn.active{background:var(--c-accent-soft);border-color:var(--c-accent-ring);color:var(--c-text-1);font-weight:600}.prompts-ws-sel{max-width:220px}.prompts-table{border-collapse:collapse;width:100%;font-size:12.5px}.prompts-table th,.prompts-table td{text-align:left;vertical-align:middle;padding:7px 10px}.prompts-table tbody tr{border-top:1px solid var(--c-border-subtle)}.prompts-table thead th{background:var(--c-surface-raised);color:var(--c-text-3);font-family:var(--mono);letter-spacing:.8px;font-size:11px;font-weight:600}.prompts-table tbody tr:nth-child(2n){background:var(--c-surface)}.prompts-table tbody tr:hover{background:var(--c-accent-soft)}.prompts-table tbody tr.is-active td{border-left:2px solid var(--c-ok)}.prompt-name{color:var(--c-text-1);font-weight:600}.prompt-badge{font-size:10px;font-family:var(--mono);border:1px solid var(--c-accent-ring);border-radius:var(--r-sm);color:var(--c-accent);margin-left:6px;padding:0 5px}.prompt-badge.active{color:var(--c-ok);border-color:var(--c-ok)}.prompt-badge.def{color:var(--c-text-2);border-color:var(--c-border-strong)}.prompts-td-scope{color:var(--c-text-2);font-size:11.5px}.prompts-td-state{white-space:nowrap}.prompts-td-ops{text-align:right;white-space:nowrap}.prompts-td-ops .btn-mini+.btn-mini{margin-left:4px}.prompts-note{color:var(--c-text-3);margin-top:8px;font-size:11px}.prompt-modal{width:min(640px,100vw - 40px);max-height:86vh;overflow-y:auto}.prompt-vars{border-radius:var(--r-md);background:var(--c-code-bg);margin-bottom:10px}.prompt-vars summary{cursor:pointer;color:var(--c-text-2);-webkit-user-select:none;user-select:none;padding:6px 10px;font-size:12px;list-style:none}.prompt-vars summary::-webkit-details-marker{display:none}.prompt-vars summary:before{content:"▸ ";color:var(--c-text-3)}.prompt-vars[open] summary:before{content:"▾ "}.prompt-vars-table{border-collapse:collapse;width:100%;font-size:11.5px}.prompt-vars-table td{padding:3px 10px}.prompt-var-code{font-family:var(--mono);color:var(--c-accent);width:40%}.prompt-var-desc{color:var(--c-text-2)}.prompt-secs{flex-direction:column;gap:8px;margin-top:4px;display:flex}.prompt-sec-row{border-radius:var(--r-md);background:var(--c-surface);padding:6px 8px}.prompt-sec-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.prompt-sec-name{color:var(--c-text-1);font-size:12.5px;font-weight:600}.prompt-sec-scope{color:var(--c-text-3);font-size:10px;font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);padding:0 4px}.prompt-inherit-label{color:var(--c-text-2);cursor:pointer;align-items:center;gap:4px;margin-left:auto;font-size:11px;display:flex}.prompt-inherit{accent-color:var(--c-accent)}.prompt-sec-row.inherited .prompt-sec-ta{opacity:.5}.prompt-sec-ta{resize:vertical;min-height:56px;font-size:12px;font-family:var(--mono)}.arc-wrap{flex-direction:column;gap:10px;display:flex}.arc-ws{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);background:var(--c-surface);overflow:hidden}.arc-ws-head{cursor:pointer;color:var(--c-text-2);background:var(--c-accent-soft);align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;font-weight:600;list-style:none;display:flex}.arc-ws-head::-webkit-details-marker{display:none}.arc-ws-head:before{content:"";border-right:1.5px solid var(--c-text-2);border-bottom:1.5px solid var(--c-text-2);flex:none;width:6px;height:6px;transition:transform .12s;transform:rotate(-45deg)}.arc-ws[open]>.arc-ws-head:before{transform:rotate(45deg)}.arc-ws-name{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.arc-ws-count{font-family:var(--mono);color:var(--c-text-3);border:1px solid var(--c-border-subtle);border-radius:999px;flex:none;margin-left:auto;padding:1px 7px;font-size:11px}.arc-row{border-top:1px solid var(--c-border-subtle);align-items:center;gap:10px;padding:8px 10px;display:flex}.arc-row:hover{background:var(--c-accent-soft)}.arc-main{flex:auto;min-width:0}.arc-title{color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.arc-id{font-family:var(--mono);color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.arc-actions{flex:none;align-items:center;gap:4px;display:flex}.arc-actions .btn-mini{flex:none}#messages{gap:0;min-height:0;padding:0;position:relative;overflow:hidden}.sess-pane{scrollbar-gutter:stable;min-height:0;padding:var(--sp-flow) max(var(--sp-composer-side), calc((100% - var(--chat-col-live)) / 2));gap:var(--sp-flow);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.sess-pane[hidden]{display:none}.sess-pane:focus{outline:none}.sess-pane.is-worker{background:repeating-linear-gradient(135deg, transparent, transparent 18px, var(--c-accent-soft) 18px, var(--c-accent-soft) 19px)}.chatcol-resizer{top:0;bottom:0;right:calc(max(var(--sp-composer-side), (100% - var(--chat-col-live)) / 2) - 5px);z-index:1;cursor:col-resize;touch-action:none;justify-content:center;align-items:center;width:10px;display:flex;position:absolute}.chatcol-resizer:focus-visible{outline:none}.chatcol-resizer:after{content:"";border-radius:var(--r-pill);background:var(--c-accent-soft);width:3px;height:44px;box-shadow:inset 0 0 0 var(--hairline) var(--c-accent-ring);opacity:0;transition:opacity .12s}.chatcol-resizer:hover:after,body.resizing-col .chatcol-resizer:after{opacity:1}.chatcol-resizer:focus-visible:after{opacity:1}body.resizing-col{cursor:col-resize;-webkit-user-select:none;user-select:none}.session-bar{min-width:0;max-width:100%;color:var(--c-text-2);background:0 0;flex:0 auto;align-items:center;gap:8px;padding:0;font-size:11.5px;display:flex;overflow:hidden}.sess-bar-lead{font-family:var(--mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--c-text-3);flex:none;font-size:10px}.sess-bar-name{min-width:0;color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-weight:600;overflow:hidden}.sess-bar-kind{font-family:var(--mono);letter-spacing:1px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);color:var(--c-text-2);flex:none;padding:0 5px;font-size:9.5px}.sess-bar-kind.hidden{display:none}.sess-bar-state{font-family:var(--mono);color:var(--c-text-3);flex:none;font-size:11px}.sess-bar-state.busy{color:var(--c-text-1)}.sess-bar-state.busy:before{content:"";background:var(--c-live);border-radius:50%;width:6px;height:6px;margin-right:5px;animation:1.2s ease-in-out infinite pulse;display:inline-block}.sess-bar-others{white-space:nowrap;flex:auto;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.sess-bar-sep{color:var(--c-text-3)}.sess-bar-note{color:var(--c-text-3);font-size:11px}.sess-bar-chip{border:1px solid var(--c-border-subtle);background:var(--c-surface);max-width:190px;color:var(--c-text-2);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:none;padding:0 8px;font-size:10.5px;line-height:13px;transition:background .12s,border-color .12s;overflow:hidden}.sess-bar-chip:hover{background:var(--c-accent-soft);border-color:var(--c-border-strong)}.sess-dot{background:var(--c-text-3);border-radius:50%;flex:none;width:7px;height:7px;transition:background .15s,box-shadow .15s}.sess-dot.live,.sess-dot.busy{background:var(--c-live);box-shadow:0 0 0 2px var(--c-live-dim);animation:1.2s ease-in-out infinite pulse}#inputbar.interject{box-shadow:inset 0 1px 0 var(--c-accent-ring)}#inputbar.interject #input{border:1px solid var(--c-border-strong);background:var(--c-surface)}#inputbar.interject:before{content:"插话";font-family:var(--mono);letter-spacing:1.2px;color:var(--c-text-3);margin-top:-2px;margin-left:8px;font-size:9.5px;position:absolute}#inputbar.readonly #input{opacity:.85}.msg.user.interject .bubble{border:1px solid var(--c-border-strong);background:var(--c-surface)}.interject-note{border:1px solid var(--c-hairline-l2);background:var(--c-layer-2);font-size:11px;line-height:var(--code-lh);color:var(--c-text-3);font-family:var(--mono);border-radius:999px;align-self:flex-start;margin:-10px 0 0;padding:1px 10px}.interject-note.ok{color:var(--c-text-2)}.interject-note.err{color:var(--c-err);border-color:var(--c-border-strong)}.statusline.sl-live .sl-ring-prog{stroke:var(--c-accent)}.ws-worker-details{margin-top:14px}.ws-worker-summary{cursor:pointer;letter-spacing:1.2px;text-transform:uppercase;color:var(--c-text-3);align-items:center;gap:8px;padding:2px 2px 6px;font-size:10.5px;font-weight:600;list-style:none;display:flex}.ws-worker-summary::-webkit-details-marker{display:none}.ws-worker-summary:after{content:"▾";color:var(--c-text-3);margin-left:auto;font-size:10px;transition:transform .15s}.ws-worker-details:not([open]) .ws-worker-summary:after{transform:rotate(-90deg)}.ws-worker-wid{font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);color:var(--c-text-2);flex:none;padding:0 4px;font-size:9.5px}.ws-worker-title{min-width:0;color:var(--c-text-1);letter-spacing:0;text-transform:none;text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:11.5px;font-weight:500;overflow:hidden}.ws-worker-state{font-family:var(--mono);color:var(--c-text-3);flex:none;font-size:10px}.ws-worker-state.busy{color:var(--c-text-1)}.msg.user.steering .bubble,.msg.user.interject:not(.queued) .bubble{border:1px solid var(--c-border-strong);background:var(--c-surface);box-shadow:inset 3px 0 0 var(--c-accent-ring)}.msg.user.steering .who:after{content:" · 下一步送达";color:var(--c-text-3);font-weight:400}.msg.user.queued .bubble{border:1px solid var(--c-border-strong);background:var(--c-bg);box-shadow:inset 3px 0 0 var(--c-border-strong)}.msg.user.queued .who:after{content:" · 下一回合送达";color:var(--c-text-3);font-weight:400}.msg.inbox .bubble.inbox-bubble{border:1px solid var(--c-border-strong);background:var(--c-surface);border-radius:var(--r-md);border-top-width:3px}.msg.inbox .who{font-family:var(--mono);letter-spacing:.6px;color:var(--c-text-2);font-size:10.5px}.msg.inbox .inbox-lane{font-family:var(--mono);letter-spacing:.8px;border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);color:var(--c-text-3);padding:0 4px;font-size:9.5px}.msg.inbox .inbox-content{font-family:var(--mono);color:var(--c-text-2);white-space:pre-wrap;font-size:12px}.msg.inbox .inbox-fold{margin:0}.msg.inbox .inbox-fold-head{cursor:pointer;font-family:var(--mono);letter-spacing:.6px;color:var(--c-text-2);align-items:center;gap:8px;font-size:10.5px;list-style:none;display:flex}.msg.inbox .inbox-fold-head::-webkit-details-marker{display:none}.msg.inbox .inbox-fold-head:before{content:"▸";color:var(--c-text-3);font-size:9px;transition:transform .12s}.msg.inbox .inbox-fold[open]>.inbox-fold-head:before{transform:rotate(90deg)}.msg.inbox .inbox-fold-title{font-weight:600}.msg.inbox .inbox-fold-src{color:var(--c-text-3)}.msg.inbox .inbox-fold>.inbox-content{max-height:320px;margin-top:6px;overflow:auto}.msg.inbox.inbox-memory .bubble.inbox-bubble{box-shadow:inset 4px 0 0 var(--c-text-2);border-top-color:var(--c-border-strong)}.msg.inbox.inbox-memory .inbox-fold-title{color:var(--c-text-2)}.msg.inbox.inbox-skill .bubble.inbox-bubble{box-shadow:inset 4px 0 0 var(--c-text-3)}.msg.inbox.inbox-skill .inbox-fold-title{color:var(--c-text-3)}.msg.inbox.inbox-receipt .bubble.inbox-bubble{box-shadow:inset 4px 0 0 var(--c-accent-ring)}.msg.inbox.inbox-receipt .inbox-fold-title{color:var(--c-text-2)}.msg.inbox.inbox-steering .bubble.inbox-bubble{box-shadow:inset 4px 0 0 var(--c-accent-ring)}.msg.inbox.inbox-compact .bubble.inbox-bubble{box-shadow:inset 4px 0 0 var(--c-border-strong)}#btnMode.queue{background:var(--c-bg);border-style:solid}.ws-worker-parent{font-family:var(--mono);letter-spacing:.4px;color:var(--c-text-2);cursor:pointer;align-items:center;gap:6px;padding:4px 6px 2px;font-size:10.5px;display:flex}.ws-worker-parent:hover{color:var(--c-text-1)}.ws-lineage-mark{color:var(--c-text-3)}.ws-worker-parent-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.ws-worker-row.child{border-left:1px solid var(--c-border-subtle);border-radius:0 var(--r-md) var(--r-md) 0;margin-left:14px}.ws-worker-row.child:hover{border-left-color:var(--c-border-strong)}.sess-worker-count{font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);color:var(--c-text-3);flex:none;padding:0 4px;font-size:9.5px}.ws-newsess{justify-content:center;align-items:center;gap:6px;width:100%;margin-bottom:8px;padding:6px 10px;font-size:12.5px;display:flex}.ws-newsess svg{color:var(--c-accent)}.ws-toolrow{align-items:center;gap:6px;padding:0 2px 8px;display:flex}.ws-search{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);background:var(--c-code-bg);min-width:0;color:var(--c-text-3);flex:auto;align-items:center;gap:5px;padding:4px 8px;display:flex}.ws-search svg{flex:none}.ws-search-input{min-width:0;color:var(--c-text-1);background:0 0;border:none;outline:none;flex:auto;padding:0;font-size:12px}.ws-toolbtn{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);color:var(--c-text-2);cursor:pointer;font-family:var(--mono);background:0 0;flex:none;align-items:center;gap:4px;padding:5px 7px;font-size:10.5px;display:flex}.ws-toolbtn:hover{border-color:var(--c-accent-ring);color:var(--c-text-1);background:var(--c-accent-soft)}.ws-divider{display:none}.ws-tree{flex-direction:column;gap:6px;display:flex}.ws-node{border-radius:var(--r-md);background:var(--c-surface-raised);box-shadow:0 1px 2px #0000000a}.ws-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:6px 8px;list-style:none;display:flex}.ws-head::-webkit-details-marker{display:none}.ws-head:hover{background:var(--c-accent-soft)}.ws-head>svg{color:var(--c-accent);flex:none}.ws-name{min-width:0;color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12.5px;font-weight:600;overflow:hidden}.ws-count{font-family:var(--mono);color:var(--c-text-3);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex:none;padding:0 4px;font-size:10px}.ws-body{max-height:900px;padding:2px 0;transition:max-height .22s,padding .22s;overflow:hidden}.ws-details:not([open])>.ws-body{max-height:0;padding:0;display:block}.sess-leaf{cursor:pointer;align-items:center;gap:7px;padding:5px 8px 5px 22px;transition:background .12s;display:flex}.sess-leaf:hover{background:var(--c-accent-soft)}.sess-leaf.active{background:var(--c-accent-soft);box-shadow:inset 2px 0 0 var(--c-accent-ring)}.sess-leaf.sel{box-shadow:inset 2px 0 0 var(--c-accent-ring)}.sess-leaf>svg{color:var(--c-text-3);flex:none}.sess-leaf-name{min-width:0;color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12.5px;overflow:hidden}.sess-leaf-meta{max-width:38%;font-family:var(--mono);color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-size:10px;overflow:hidden}.sess-kebab{cursor:pointer;color:var(--c-text-3);border-radius:var(--r-sm);background:0 0;border:none;flex:none;padding:0 3px;font-size:13px;line-height:1}.sess-kebab:hover{color:var(--c-text-1);background:var(--c-surface)}.sess-check{accent-color:var(--c-accent);cursor:pointer;flex:none;margin:0}.sess-batchbar{background:var(--c-accent-soft);border-radius:var(--r-md);align-items:center;gap:8px;margin-top:8px;padding:6px 10px;display:none}.sess-batchbar.active{display:flex}.sess-batchbar-count{font-family:var(--mono);color:var(--c-text-1);flex:auto;font-size:11px}.sess-batchbar .btn-danger{padding:3px 10px;font-size:12px}.sess-menu{z-index:60;background:var(--c-surface-raised);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);min-width:168px;box-shadow:var(--shadow-panel);flex-direction:column;padding:4px;display:flex;position:absolute}.sess-menu-item{text-align:left;color:var(--c-text-1);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:7px 10px;font-size:12.5px}.sess-menu-item:hover:not(:disabled){background:var(--c-accent-soft)}.sess-menu-item.danger{color:var(--c-err)}.sess-menu-item.danger:hover:not(:disabled){background:var(--c-err-dim)}.sess-menu-item:disabled{opacity:.45;cursor:default}.modal-scrim{z-index:80;background:var(--c-overlay);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-card{background:var(--c-surface-raised);border-radius:var(--r-lg);width:min(440px,100vw - 40px);box-shadow:var(--shadow-panel);flex-direction:column;gap:10px;padding:16px;display:flex}.modal-card-title{font-size:14px;font-weight:600}.modal-card-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.ws-fs{width:min(560px,100vw - 40px);max-height:88vh;overflow-y:auto}.ws-fs-crumbs{border-radius:var(--r-md);background:var(--c-code-bg);flex-wrap:nowrap;align-items:center;gap:4px;min-height:30px;padding:6px 8px;display:flex;overflow-x:auto}.ws-fs-crumb{cursor:pointer;font-family:var(--mono);color:var(--c-accent);border-radius:var(--r-sm);white-space:nowrap;background:0 0;border:none;flex:none;padding:1px 4px;font-size:12px}.ws-fs-crumb:hover{background:var(--c-accent-soft)}.ws-fs-crumb.cur{color:var(--c-text-1);cursor:default;font-weight:600}.ws-fs-crumb.cur:hover{background:0 0}.ws-fs-tree{border-radius:var(--r-lg);background:var(--c-surface);flex-direction:column;flex:0 0 340px;align-content:flex-start;gap:2px;height:340px;padding:6px;display:flex;overflow-y:auto}.ws-fs-tree>*{flex:none}.ws-fs-dir{border-radius:var(--r-sm);cursor:pointer;color:var(--c-text-1);flex:none;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.ws-fs-dir:hover{background:var(--c-accent-soft)}.ws-fs-dir-icon{color:var(--c-accent);flex:none;align-items:center;display:inline-flex}.ws-fs-dir-icon svg{display:block}.ws-fs-dir-name{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ws-fs-addr{gap:6px;display:flex}.ws-fs-addr input{flex:1;min-width:0}.ws-fs-name input{width:100%}.ws-fs-status{font-size:11.5px;font-family:var(--mono);min-height:14px;color:var(--c-text-3)}.ws-fs .ws-fs-status{min-height:32px}.ws-fs-status.ok{color:var(--c-ok)}.ws-fs-status.err{color:var(--c-err)}.confirm-card{width:min(420px,100vw - 40px)}.confirm-message{color:var(--c-text-1);white-space:pre-wrap;word-break:break-word;padding:2px 0 4px;font-size:13px;line-height:1.65}.btn-danger{background:var(--c-err);border-color:var(--c-err);color:#fcf7f7;color:color(display-p3 .984165 .96983 .967709);color:lab(97.6342% 1.52686 .820148);font-weight:600}.btn-danger:hover{background:var(--c-err);filter:brightness(1.15)}.btn-danger:disabled{opacity:.4;cursor:default;filter:none}.ws-worker-group{margin-top:14px;padding-top:2px}.ws-worker-head{letter-spacing:1.2px;text-transform:uppercase;color:var(--c-text-3);align-items:center;gap:8px;padding:2px 2px 6px;font-size:10.5px;font-weight:600;display:flex}.ws-worker-count{font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);padding:0 5px;font-size:10px}.ws-worker-row{border-radius:var(--r-md);cursor:pointer;align-items:center;gap:7px;padding:5px 8px;transition:background .12s;display:flex}.ws-worker-row:hover{background:var(--c-accent-soft)}.ws-worker-row.active{background:var(--c-accent-soft);box-shadow:inset 2px 0 0 var(--c-accent-ring)}.ws-worker-name{min-width:0;color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12px;overflow:hidden}.ws-worker-meta{max-width:45%;font-family:var(--mono);color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-size:10px;overflow:hidden}.sl-grant{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);width:18px;height:18px;color:var(--c-grant-idle);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;padding:0;line-height:0;display:inline-flex;position:relative}.sl-grant svg{display:block}.sl-grant svg path{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linejoin:round}.sl-grant:hover{background:var(--c-accent-soft);border-color:var(--c-accent-ring)}.sl-grant:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-grant.granted{color:var(--c-grant);border-color:var(--c-grant)}.sl-grant.granted svg path{fill:var(--c-grant);stroke:var(--c-grant)}.sl-grant.granted:hover{background:var(--c-grant-soft)}.sl-grant-badge{border-radius:var(--r-sm);background:var(--c-grant);color:#fff;min-width:11px;height:11px;font-family:var(--mono);text-align:center;padding:0 2px;font-size:8.5px;line-height:11px;display:none;position:absolute;top:-5px;right:-5px}.sl-grant.granted .sl-grant-badge:not(:empty){display:block}.sl-grant-dot{background:var(--c-grant);width:6px;height:6px;box-shadow:0 0 0 1px var(--c-surface);border-radius:50%;display:none;position:absolute;bottom:-3px;right:-3px}.sl-grant.has-expiring .sl-grant-dot{display:block}.sl-popup.grant-popup{width:min(460px,100vw - 40px);position:fixed;top:0;bottom:auto;left:0;right:auto;overflow:hidden}.sl-popup.grant-popup .sl-popup-body{flex:auto;gap:0;min-height:0;max-height:none;padding:8px 10px 10px;overflow-y:auto}.sl-popup.grant-popup .sl-popup-body>*{flex:none}.grant-presets{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface);flex-direction:column;gap:4px;margin:0 0 8px;padding:6px;display:flex}.grant-presets-head{align-items:baseline;gap:8px;padding:0 2px 1px;display:flex}.grant-presets-title{letter-spacing:1px;color:var(--c-text-2);font-size:11px;font-weight:600}.grant-presets-ttl-note{text-align:right;color:var(--c-text-3);flex:auto;font-size:10px}.grant-preset{text-align:left;background:var(--c-surface-raised);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);width:100%;color:var(--c-text-1);font:inherit;cursor:pointer;flex-direction:column;gap:2px;padding:5px 7px;display:flex}.grant-preset:hover:not(:disabled){background:var(--c-accent-soft);border-color:var(--c-accent-ring)}.grant-preset:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.grant-preset:disabled{opacity:.5;cursor:default}.grant-preset.on{border-color:var(--c-grant);background:var(--c-grant-soft)}.grant-preset-top{align-items:center;gap:6px;display:flex}.grant-preset-label{font-size:12px;font-weight:600}.grant-preset-tag{font-family:var(--mono);border:1px solid var(--c-grant);border-radius:var(--r-sm);color:var(--c-grant);flex:none;padding:0 4px;font-size:9.5px;line-height:14px}.grant-preset-tag.busy{border-color:var(--c-accent);color:var(--c-accent)}.grant-preset-ttl{font-family:var(--mono);color:var(--c-text-3);flex:none;margin-left:auto;font-size:10px}.grant-preset-hint{color:var(--c-text-3);font-size:10.5px;line-height:1.45}.grant-intro{color:var(--c-text-3);padding:0 2px 6px;font-size:11.5px;line-height:1.55}.grant-preview{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-code-bg);color:var(--c-text-1);margin:0 0 8px;padding:6px 8px;font-size:11.5px;line-height:1.5}.grant-preview-label{color:var(--c-text-3);letter-spacing:1px;margin-bottom:2px;font-size:10.5px;display:block}.grant-row{border-top:1px solid var(--c-border-subtle);padding:7px 2px}.grant-row.expired{opacity:.5}.grant-row-head{align-items:center;gap:8px;display:flex}.grant-row-name{color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.grant-badge{font-family:var(--mono);border:1px solid var(--c-border-strong);border-radius:var(--r-sm);color:var(--c-text-3);flex:none;padding:0 5px;font-size:10px;line-height:15px}.grant-badge.on{color:var(--c-grant);border-color:var(--c-grant);background:var(--c-grant-soft)}.grant-badge.expired{color:var(--c-text-3);border-color:var(--c-border-subtle);text-decoration:line-through}.grant-impact{color:var(--c-text-3);margin-top:2px;font-size:11px;line-height:1.5}.grant-detail{font-family:var(--mono);color:var(--c-text-2);word-break:break-all;margin-top:2px;font-size:11px;line-height:1.5}.grant-row-actions{align-items:center;gap:6px;margin-top:5px;display:flex}.grant-row-actions .grant-spacer{flex:auto}.grant-input{width:100%;font-family:var(--mono);margin-top:5px;font-size:11.5px}.grant-hosts-row{gap:6px;margin-top:5px;display:flex}.grant-hosts-row .grant-input{flex:auto;min-width:0;margin-top:0}.grant-err{color:var(--c-err);margin-top:3px;font-size:11px;line-height:1.5}.grant-ttl{font-family:var(--mono);font-size:11px}.grant-foot{border-top:1px solid var(--c-border-subtle);align-items:center;gap:8px;margin-top:6px;padding-top:8px;display:flex}.grant-foot-note{color:var(--c-text-3);flex:auto;font-size:10.5px;line-height:1.5}.btn-mini.grant-danger-btn{border-color:var(--c-grant-danger);color:var(--c-grant-danger)}.confirm-message{white-space:pre-wrap}.confirm-note{color:var(--c-text-3);margin-top:6px;font-size:11.5px;line-height:1.5}.confirm-snapshot-label{color:var(--c-text-3);letter-spacing:1px;margin-top:8px;font-size:10.5px}.confirm-snapshot{background:var(--c-code-bg);border:1px solid var(--c-border-subtle);border-radius:var(--r-md);max-height:180px;font-family:var(--mono);color:var(--c-text-2);white-space:pre-wrap;word-break:break-all;margin:4px 0 0;padding:6px 8px;font-size:11px;overflow:auto}.confirm-word-row{align-items:center;gap:8px;margin-top:8px;display:flex}.confirm-word-row label{color:var(--c-text-2);flex:none;font-size:11.5px}.confirm-word-row input{flex:auto;min-width:0}.confirm-word-hint{color:var(--c-text-3);margin-top:3px;font-size:10.5px}.sess-leaf-grant{color:var(--c-grant);flex:none;align-items:center;margin-left:2px;line-height:0;display:inline-flex}.sess-leaf-grant svg{display:block}.sess-leaf-grant svg path{fill:var(--c-grant);stroke:var(--c-grant);stroke-width:1.2px;stroke-linejoin:round}.sess-leaf-grant.danger{color:var(--c-grant-danger)}.sess-leaf-grant.danger svg path{fill:var(--c-grant-danger);stroke:var(--c-grant-danger)}.sl-perm{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);max-width:18ch;height:18px;color:var(--c-text-2);font-family:var(--mono);cursor:pointer;background:0 0;flex:none;align-items:center;gap:4px;padding:0 6px;font-size:10.5px;line-height:16px;display:inline-flex}.sl-perm:hover{background:var(--c-accent-soft);border-color:var(--c-accent-ring);color:var(--c-text-1)}.sl-perm:focus-visible{outline:1px solid var(--c-accent-ring);outline-offset:1px}.sl-perm.hidden{display:none}.sl-perm-icon{flex:none;display:block}.sl-perm-badge{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sl-popup.perm-popup{width:min(420px,100vw - 40px);position:fixed;top:0;bottom:auto;left:0;right:auto}.sl-popup-note.perm-risk{color:var(--c-warn)}.perm-toolbar{align-items:center;gap:var(--sp-flow);margin-bottom:6px;display:flex}.perm-max{font-family:var(--mono);color:var(--c-text-3);font-size:11.5px}.perm-toolbar .btn-mini{margin-left:auto}.perm-status{min-height:16px;padding:2px 0;font-size:12px}.perm-status.ok{color:var(--c-ok)}.perm-status.err{color:var(--c-err)}.perm-list{flex-direction:column;gap:8px;display:flex}.perm-card{background:var(--bg-layer-1);border:var(--hairline) solid var(--border-l1);border-radius:var(--r-card);padding:10px 12px}.perm-card-head{align-items:center;gap:8px;display:flex}.perm-card-title{color:var(--c-text-1);font-size:13px;font-weight:600}.perm-card-id{font-family:var(--mono);color:var(--c-text-3);font-size:11px}.perm-badge{color:var(--c-text-2);border:var(--hairline) solid var(--border-l1);border-radius:var(--r-badge);padding:0 6px;font-size:10.5px}.perm-card-ops{gap:4px;margin-left:auto;display:inline-flex}.perm-chips{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.perm-chip{color:var(--c-text-3);border:var(--hairline) solid var(--border-l1);border-radius:var(--r-badge);padding:1px 7px;font-size:10.5px}.perm-chip.on{color:var(--c-text-1);border-color:var(--border-l3)}.perm-chip.deny{color:var(--c-grant);border-color:var(--c-grant)}.perm-roots{flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;display:flex}.perm-roots-label{color:var(--c-text-3);font-size:11px}.perm-root{font-family:var(--mono);color:var(--c-text-2);background:var(--bg-code);border-radius:var(--r-sm);padding:1px 6px;font-size:10.5px}.perm-card-note{color:var(--c-text-3);margin-top:6px;font-size:11px}.perm-editor{border-top:var(--hairline) solid var(--border-l1);margin-top:10px;padding-top:10px}.perm-editor.hidden{display:none}.perm-editor-title{color:var(--c-text-1);margin-bottom:6px;font-size:12.5px;font-weight:600}.perm-field-body{flex-direction:column;gap:4px;min-width:0;display:flex}.perm-switches{flex-wrap:wrap;gap:10px;display:flex}.perm-switch{color:var(--c-text-1);align-items:center;gap:4px;font-size:12px;display:inline-flex}.perm-roots-edit,.perm-roots-list{flex-direction:column;gap:4px;display:flex}.perm-root-row,.perm-addrow{align-items:center;gap:6px;display:flex}.perm-addrow .cfg-input{flex:1;min-width:0}.perm-tools{flex-wrap:wrap;gap:4px 10px;max-height:132px;display:flex;overflow-y:auto}.perm-tool{font-family:var(--mono);color:var(--c-text-2);align-items:center;gap:4px;font-size:11px;display:inline-flex}.perm-editor-status{white-space:pre-wrap;word-break:break-word;min-height:16px;margin-top:6px;font-size:12px}.perm-editor-status.ok{color:var(--c-ok)}.perm-editor-status.err{color:var(--c-err)}.plug-sec+.plug-sec{margin-top:var(--sp-flow);border-top:var(--hairline) solid var(--border-l1);padding-top:var(--sp-flow)}.plug-sec-head{align-items:baseline;gap:var(--sp-flow-answer);margin-bottom:var(--sp-flow-answer);display:flex}.plug-sec-title{color:var(--label-primary,var(--c-text-1));margin:0;font-size:13px;font-weight:600}.plug-sec-note{color:var(--c-text-3);font-size:11.5px}.plug-list,.plug-host-list{flex-direction:column;gap:8px;display:flex}.plug-row,.plug-host{align-items:center;gap:var(--sp-flow-answer);background:var(--bg-layer-1);border:var(--hairline) solid var(--border-l1);border-radius:var(--r-card);padding:10px 12px;display:flex}.plug-row-main{flex:1;min-width:0}.plug-row-label{color:var(--c-text-1);align-items:baseline;gap:6px;font-size:13px;font-weight:600;display:flex}.plug-row-hint{color:var(--c-text-3);margin-top:2px;font-size:11.5px}.plug-host-ver{font-family:var(--mono);color:var(--c-text-3);font-size:10.5px;font-weight:400}.plug-badge{color:var(--c-text-2);background:var(--bg-layer-3);border:var(--hairline) solid var(--border-l1);border-radius:var(--r-badge);flex:none;padding:1px 8px;font-size:10.5px}.plug-empty{color:var(--c-text-3);padding:6px 2px;font-size:12px}.plug-switch{cursor:pointer;flex:none;width:34px;height:18px;position:relative}.plug-switch-input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;top:0;bottom:0;left:0;right:0}.plug-switch-track{border:var(--hairline) solid var(--border-l3);background:var(--bg-layer-3);pointer-events:none;border-radius:999px;transition:background .12s,border-color .12s;position:absolute;top:0;bottom:0;left:0;right:0}.plug-switch-track:after{content:"";background:var(--bg-layer-1);border:var(--hairline) solid var(--border-l1);border-radius:999px;width:12px;height:12px;transition:transform .12s,background .12s;position:absolute;top:2px;left:2px}.plug-switch-input:checked+.plug-switch-track{background:var(--interactive-accent);border-color:var(--interactive-accent)}.plug-switch-input:checked+.plug-switch-track:after{background:var(--interactive-accent-fg);border-color:var(--interactive-accent);transform:translate(16px)}.plug-switch-input:focus-visible+.plug-switch-track{outline:1px solid var(--interactive-accent-ring);outline-offset:1px}.plug-switch-input:disabled+.plug-switch-track{opacity:.5}.plug-status{min-height:16px;color:var(--label-secondary,var(--c-text-2));margin-top:8px;padding:2px 0;font-size:12px}.plug-status.ok{color:var(--state-ok,var(--c-ok))}.plug-status.err{color:var(--state-err,var(--c-err))}#main{position:relative}.railv3{z-index:20;pointer-events:none;width:1px;position:absolute}.railv3-item{width:4px;height:var(--barh,5px);background:var(--c-text-3);opacity:.5;pointer-events:none;border:1px solid #0000;border-radius:999px;transition:width 85ms ease-out,opacity .12s,background .12s,border-color .12s;position:absolute;left:0}.railv3-item.is-hover{transition-duration:45ms,.12s,.12s,.12s}.railv3-item.is-reply{background:var(--c-accent)}.railv3-item.is-center{background:var(--c-text-1);box-shadow:0 0 0 1px var(--c-accent-ring)}.railv3-item.railv3-fold.is-center{background:var(--c-accent-soft);box-shadow:0 0 0 1px var(--c-accent-ring);color:var(--c-text-1)}.railv3-item.is-hover{opacity:1;background:var(--c-accent-strong);border-color:var(--c-accent-ring)}.railv3-item.railv3-fold{border:1px solid var(--c-border-subtle);color:var(--c-text-3);text-align:center;opacity:.7;background:0 0;justify-content:center;align-items:center;font-size:8px;line-height:1;display:flex}.railv3-item.railv3-fold.is-hover{background:var(--c-accent-soft);border-style:solid;border-color:var(--c-accent-ring);color:var(--c-text-1)}.railv3-thin .railv3-item{opacity:.4}.railv3-thin .railv3-item.is-hover{opacity:1}.railv3-thin .railv3-item.is-center{opacity:.8}.railv3-card{z-index:40;background:var(--c-surface-raised);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);width:280px;box-shadow:var(--shadow-panel);pointer-events:none;flex-direction:column;gap:6px;padding:8px 10px;animation:.14s ease-out railv3-pop;display:flex;position:fixed}@keyframes railv3-pop{0%{opacity:0;transform:translateY(3px)}}.railv3-card-q,.railv3-card-a{color:var(--c-text-1);white-space:pre-wrap;word-break:break-word;align-items:baseline;gap:6px;font-size:12px;display:flex}.railv3-card-a{color:var(--c-text-2)}.railv3-card-noa{color:var(--c-text-3);font-style:italic}.railv3-card-tag{font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);color:var(--c-text-3);flex:none;padding:0 4px;font-size:10px;font-weight:700}.railv3-card-q .railv3-card-tag{color:var(--c-accent);border-color:var(--c-accent-ring)}.railv3-card-sep{background:var(--c-border-subtle);height:1px}.hint-card{z-index:60;background:var(--tip-bg);border:1px solid var(--c-border-strong);border-radius:var(--r-tip);max-width:min(50vw,100vw - 24px);box-shadow:var(--shadow-panel);color:var(--c-text-1);pointer-events:none;padding:6px 9px;font-size:11.5px;line-height:1.45;animation:.14s ease-out hint-pop;position:fixed}@keyframes hint-pop{0%{opacity:0;transform:translateY(3px)}}.hint-card-text{align-items:baseline;gap:6px;display:flex}.hint-card-tag{font-family:var(--mono);color:var(--c-text-2);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex:none;padding:0 4px;font-size:9.5px;font-weight:700}.hint-card-body{word-break:break-word;min-width:0}.msg.question .bubble{width:100%;max-width:100%;box-shadow:none;background:0 0;border-radius:0;padding:0}.q-card{background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-panel);font-size:var(--fs-secondary);line-height:var(--lh-secondary);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.q-head{align-items:baseline;gap:10px;display:flex}.q-title{color:var(--c-text-1);overflow-wrap:anywhere;flex:auto;font-weight:600}.q-intent{background:var(--c-layer-2);color:var(--c-text-2);white-space:nowrap;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:500}.q-timer{font-family:var(--mono);color:var(--c-text-3);white-space:nowrap;flex:none;font-size:11.5px}.q-items{flex-direction:column;gap:12px;display:flex}.q-item{flex-direction:column;gap:6px;display:flex}.q-question{color:var(--c-text-1);overflow-wrap:anywhere;font-weight:500}.q-detail{color:var(--c-text-2);overflow-wrap:anywhere;font-size:12.5px}.q-options{flex-direction:column;gap:4px;display:flex}.q-opt{border-radius:var(--r-md);cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:8px;padding:6px 10px;transition:background-color .12s,border-color .12s;display:flex}.q-opt:hover{background:var(--c-layer-2)}.q-opt.is-approve{border-color:var(--c-border-strong)}.q-opt-input{accent-color:var(--c-accent);cursor:pointer;flex:none;margin:2px 0 0}.q-opt-text{flex-direction:column;gap:1px;min-width:0;display:flex}.q-opt-label{color:var(--c-text-1);overflow-wrap:anywhere}.q-opt-desc{color:var(--c-text-3);overflow-wrap:anywhere;font-size:12px}.q-custom-input{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);background:var(--c-bg);width:100%;color:var(--c-text-1);padding:6px 10px;font-family:inherit;font-size:13px}.q-custom-input:focus{border-color:var(--c-border-strong);outline:none}.q-actions{justify-content:flex-end;gap:8px;display:flex}.q-hint{color:var(--c-text-2);overflow-wrap:anywhere;font-size:12px}.q-hint:empty,.q-result:empty{display:none}.q-result{border-top:.5px solid var(--c-hairline-l2);color:var(--c-text-2);overflow-wrap:anywhere;padding-top:8px;font-size:12.5px}.q-card[data-state=done] .q-actions,.q-card[data-state=expired] .q-actions,.q-card[data-state=closed] .q-actions{display:none}.q-card[data-state=done],.q-card[data-state=expired],.q-card[data-state=closed]{box-shadow:none;background:var(--c-code-bg)}.q-card[data-state=done] .q-opt,.q-card[data-state=expired] .q-opt,.q-card[data-state=closed] .q-opt{cursor:default}.q-card[data-state=done] .q-options,.q-card[data-state=expired] .q-options,.q-card[data-state=closed] .q-options{opacity:.72}.q-card[data-state=sending] .q-actions{opacity:.6}@media (max-width:640px){.q-head{flex-direction:column;gap:2px}.q-card{padding:10px 12px}.q-submit{min-height:var(--tap-min);width:100%}.q-actions{flex-direction:column}}.attach-file{display:none}.attach-tray{overscroll-behavior-x:contain;border:var(--hairline) solid var(--border-l1);border-radius:var(--r-md);background:var(--c-surface-raised);flex-wrap:nowrap;flex:0 0 100%;align-items:center;gap:6px;min-width:0;max-height:56px;padding:4px 6px;display:flex;overflow:auto hidden}.attach-note{flex:0 0 100%;order:-1}.attach-tray.hidden,.attach-tray.collapsed .attach-item:not(.attach-mode){display:none}.attach-mode{color:var(--c-text-3);cursor:pointer;font-family:var(--mono);background:0 0;border:none;flex:none;align-items:center;gap:4px;padding:0 2px;font-size:11px;line-height:1;display:inline-flex}.attach-mode:hover{color:var(--c-text-1)}.attach-mode-fold{font-size:10px}.attach-note{color:var(--c-warn);padding:2px 4px;font-size:12px}.attach-note.hidden{display:none}.attach-grid{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.attach-item{border:1px solid var(--c-border-subtle);border-radius:var(--r-md);background:var(--c-surface-raised);align-items:center;gap:8px;max-width:260px;padding:6px;display:flex}.attach-item.err{border-color:var(--c-err)}.attach-thumb{border-radius:var(--r-sm);object-fit:cover;background:var(--c-layer-2);cursor:zoom-in;flex:0 0 44px;width:44px;height:44px}.attach-thumb-meta{color:var(--c-text-3);cursor:default;justify-content:center;align-items:center;font-size:12px;display:flex}.attach-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.attach-name{color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.attach-sub{color:var(--c-text-3);font-size:11px}.attach-item.err .attach-sub{color:var(--c-err)}.attach-remove{color:var(--c-text-3);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.attach-remove:hover{color:var(--c-err)}.attach-lightbox{z-index:4000;background:var(--c-overlay);cursor:zoom-out;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.attach-lightbox-img{object-fit:contain;max-width:90vw;max-height:90vh}#inputbar.drop-active{outline:1px solid var(--c-accent);outline-offset:-3px}.btn-icon{min-width:32px}.quote-block{border-left:2px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface-raised);margin:0 0 6px;padding:4px 10px}.quote-block:last-child{margin-bottom:0}.quote-head{font-family:var(--mono);color:var(--c-text-3);margin-bottom:2px;font-size:10px}.quote-body{color:var(--c-text-2);white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;font-size:12px;overflow:auto}.quote-float{z-index:30;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface-raised);color:var(--c-text-1);cursor:pointer;box-shadow:var(--shadow-panel);padding:3px 10px;font-size:12px;line-height:1.4;position:fixed}.quote-float:hover{background:var(--c-accent-soft)}.quote-float.hidden{display:none}.quote-tray{pointer-events:none;flex-wrap:wrap;gap:6px;padding:4px 6px;display:flex;position:absolute;left:0;right:0}.quote-tray.hidden{display:none}.quote-chip{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface-raised);max-width:100%;color:var(--c-text-2);pointer-events:auto;align-items:center;gap:6px;padding:3px 6px 3px 8px;font-size:11.5px;display:inline-flex}.quote-chip-src{color:var(--c-accent);font-family:var(--mono);font-size:10px}.quote-chip-text{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.quote-chip-bytes{color:var(--c-text-3);font-family:var(--mono);font-size:10px}.quote-chip-remove{color:var(--c-text-3);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.quote-chip-remove:hover{color:var(--c-text-1)}.preview-host{z-index:35;pointer-events:none;width:min(560px,46vw);position:fixed;top:0;bottom:0;right:0}.preview-host.hidden{display:none}.preview-note{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);color:var(--c-warn);white-space:nowrap;flex:none;margin-left:8px;padding:1px 6px;font-size:11px}.preview-panel{pointer-events:auto;background:var(--c-surface-raised);border-left:1px solid var(--c-border-subtle);height:100%;box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.preview-head{border-bottom:1px solid var(--c-border-subtle);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.preview-title{white-space:nowrap;font-size:13px;font-weight:600}.preview-path{min-width:0;color:var(--c-text-3);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.preview-close{color:var(--c-text-3);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:16px;line-height:1}.preview-close:hover{color:var(--c-text-1)}.preview-body{flex:auto;min-height:0;padding:10px 12px;overflow:auto}.preview-actions{border-top:1px solid var(--c-border-subtle);gap:8px;padding:8px 12px;display:flex}.preview-action{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface-raised);color:var(--c-text-2);cursor:pointer;padding:3px 8px;font-size:12px}.preview-action:hover{border-color:var(--c-border-strong);color:var(--c-text-1)}.preview-code,.preview-diff{white-space:pre;font-family:var(--mono);margin:0;font-size:12px;overflow:auto}.preview-diff-line.add{color:var(--hl-string)}.preview-diff-line.del{color:var(--hl-keyword)}.preview-diff-line.hunk{color:var(--c-text-3)}.preview-img img{border-radius:var(--r-md);max-width:100%}.preview-degrade-reason{color:var(--c-text-2);font-size:12.5px;line-height:1.5}.preview-md{color:var(--c-text-1);font-size:13px}.toolcard-preview{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface-raised);color:var(--c-text-2);cursor:pointer;align-self:flex-start;margin:2px 0 6px;padding:2px 8px;font-size:12px}.toolcard-preview:hover{border-color:var(--c-border-strong);color:var(--c-text-1)}.cmd-popup{z-index:40;border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-raised);min-width:320px;max-width:min(520px,80vw);max-height:320px;box-shadow:var(--shadow-panel);padding:4px;position:fixed;overflow-y:auto}.cmd-popup.hidden{display:none}.cmd-row{border-radius:var(--r-sm);cursor:pointer;align-items:baseline;gap:8px;padding:5px 8px;display:flex}.cmd-row.active{background:var(--c-accent-soft)}.cmd-row.dir .cmd-name{color:var(--c-accent)}.cmd-row.dir .cmd-desc{color:var(--c-accent);opacity:.8}.cmd-name{font-family:var(--mono);color:var(--c-text-1);flex:none;font-size:12.5px}.cmd-desc{color:var(--c-text-2);min-width:0;font-size:12px}.cmd-args{font-family:var(--mono);color:var(--c-text-3);flex:none;margin-left:auto;font-size:11px}.msg.exec .bubble{width:100%;max-width:100%}.bubble.exec-bubble{background:var(--c-code-bg);border:1px solid var(--c-border-subtle);border-radius:var(--r-md);padding:8px 10px}.exec-cmd{font-family:var(--mono);color:var(--c-text-1);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12.5px}.exec-block{flex-direction:column;gap:6px;display:flex}.exec-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.exec-head .exec-cmd{flex:auto;min-width:0}.exec-code{font-family:var(--mono);font-size:11px}.exec-code.ok{color:var(--c-ok)}.exec-code.err{color:var(--c-err)}.exec-dur{font-family:var(--mono);color:var(--c-text-3);font-size:11px}.exec-sandbox{color:var(--c-text-3);font-size:11px}.exec-stream{border-top:1px solid var(--c-border-subtle);padding-top:4px}.exec-stream-label{color:var(--c-text-3);font-size:10.5px;font-family:var(--mono)}.exec-stream-body{font-family:var(--mono);color:var(--c-text-1);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:12px}.exec-stream.err .exec-stream-body{color:var(--c-err)}.msg.exec.exec-note .bubble{background:var(--c-surface-raised);border:none}.goal-bar{z-index:25;border:1px solid var(--c-accent-ring);background:var(--c-surface-raised);max-width:min(760px,82vw);box-shadow:var(--shadow-panel);border-radius:999px;align-items:center;gap:8px;padding:5px 10px;display:inline-flex;position:fixed;top:44px;left:50%;transform:translate(-50%)}.goal-bar.hidden{display:none}.goal-tag{font-family:var(--mono);color:var(--c-accent);border:1px solid var(--c-accent-ring);border-radius:var(--r-sm);flex:none;padding:0 4px;font-size:10px}.goal-text{color:var(--c-text-1);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.goal-done{color:var(--c-text-3);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:12px}.goal-done:hover{color:var(--c-text-1)}.sl-goal{border:1px solid var(--c-accent-ring);background:var(--c-accent-soft);max-width:200px;height:16px;color:var(--c-accent);font-size:10.5px;font-family:var(--mono);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 6px;display:inline-flex}.sl-goal.hidden{display:none}.sl-goal-badge{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn-workbench{justify-content:center;align-items:center;padding:6px 8px;display:inline-flex}.btn-workbench svg{display:block}.wb-menu{z-index:60;border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-raised);min-width:240px;box-shadow:var(--shadow-panel);padding:4px;position:fixed}.wb-menu.hidden{display:none}.wb-menu-item{border-radius:var(--r-sm);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;width:100%;padding:7px 10px;display:flex}.wb-menu-item:hover{background:var(--c-accent-soft)}.wb-menu-label{color:var(--c-text-1);font-size:13px}.wb-menu-desc{color:var(--c-text-3);font-size:11.5px}.wb-host{z-index:24;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.wb-host.hidden{display:none}.wb-dock{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.wb-zone{pointer-events:none}.wb-zone.bottom{flex-direction:row;align-items:stretch;padding:0 4px 4px;display:flex;position:absolute;bottom:0;left:0;right:0}.wb-zone.right{top:0;right:0;bottom:var(--wb-bottom-h,0px);flex-direction:row;align-items:stretch;padding:4px 4px 0 0;display:flex;position:absolute}.wb-panel{pointer-events:auto;border:var(--hairline) solid var(--border-l1);border-radius:var(--r-md);background:var(--c-surface-raised);flex-direction:column;flex:none;min-width:0;min-height:0;display:flex;overflow:hidden}.wb-panel.focused{border-color:var(--c-accent-ring)}.wb-head{border-bottom:var(--hairline) solid var(--border-l1);background:var(--c-layer-2);flex:none;align-items:center;gap:6px;padding:5px 8px;display:flex}.wb-title{min-width:0;color:var(--c-text-2);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12px;overflow:hidden}.wb-btn{color:var(--c-text-3);cursor:pointer;background:0 0;border:none;flex:none;padding:0 3px;font-size:13px;line-height:1}.wb-btn:hover{color:var(--c-text-1)}.wb-body{flex:auto;min-height:0;padding:6px 8px;overflow:auto}.wb-resizer{z-index:2;pointer-events:auto;background:0 0;flex:0 0 5px;position:relative}.wb-resizer.right{cursor:col-resize}.wb-resizer.bottom{cursor:row-resize}.wb-resizer:hover{background:var(--c-accent-soft)}.wb-crumbs{align-items:center;gap:6px;min-width:0;margin-bottom:6px;display:flex}.wb-crumb{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface-raised);color:var(--c-text-2);cursor:pointer;flex:none;padding:2px 6px;font-size:11.5px}.wb-crumb-cur{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);color:var(--c-text-3);background:0 0;border:none;flex:auto;overflow:hidden}.wb-list{flex-direction:column;display:flex}.wb-row{border-radius:var(--r-sm);cursor:pointer;color:var(--c-text-2);align-items:center;gap:8px;padding:3px 6px;font-size:12px;display:flex}.wb-row:hover{background:var(--c-layer-2)}.wb-row.sel{background:var(--c-accent-soft);color:var(--c-text-1)}.wb-row.dir .wb-name{color:var(--c-accent)}.wb-icon{flex:none}.wb-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.wb-size,.wb-time{font-family:var(--mono);color:var(--c-text-3);flex:none;font-size:10.5px}.wb-time{text-align:right;min-width:96px}.wb-notice{color:var(--c-warn);padding:4px 2px;font-size:12px}.wb-placeholder{color:var(--c-text-3);padding:4px 2px;font-size:12px}.wb-drop-hint{z-index:3;color:var(--c-accent);background:var(--c-accent-soft);border:1px solid var(--c-accent-ring);pointer-events:none;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute}.wb-drop-hint.right{width:40%;top:0;bottom:0;right:0}.wb-drop-hint.bottom{height:40%;bottom:0;left:0;right:0}.wb-term-note{color:var(--c-text-3);padding:2px 2px 6px;font-size:11px}.wb-term-row{gap:6px;margin-bottom:6px;display:flex}.wb-term-input{min-width:0;font-family:var(--mono);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-code-bg);color:var(--c-text-1);flex:auto;padding:4px 8px;font-size:12px}.wb-term-run{border:1px solid var(--c-border-strong);border-radius:var(--r-sm);color:var(--c-text-1);padding:3px 10px}.wb-term-outwrap{flex-direction:column;gap:8px;display:flex}.wb-term-line{border-top:1px solid var(--c-border-subtle);padding-top:4px}.wb-term-cmd{font-family:var(--mono);color:var(--c-text-1);gap:6px;font-size:12px;display:flex}.wb-term-prompt{color:var(--c-accent)}.wb-term-out{font-family:var(--mono);color:var(--c-text-2);white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0;font-size:11.5px}.wb-term-out.err{color:var(--c-err)}.wb-term-meta{font-family:var(--mono);color:var(--c-text-3);font-size:10.5px}.wb-term-meta.err{color:var(--c-err)}.wb-url-row{gap:6px;margin-bottom:6px;display:flex}.wb-url-input{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-code-bg);min-width:0;color:var(--c-text-1);flex:auto;padding:4px 8px;font-size:12px}.wb-url-open{border:1px solid var(--c-border-strong);border-radius:var(--r-sm);color:var(--c-text-1);padding:3px 10px}.wb-url-external{color:var(--c-accent);margin-top:4px}.wb-frame{border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-layer-2);width:100%;height:calc(100% - 34px);min-height:200px}.ws-strip{top:var(--sp-flow);z-index:25;max-width:calc((100% - min(var(--chat-col), 100%)) / 2 - 20px);max-height:calc(100% - var(--sp-flow) * 2);pointer-events:none;font-family:var(--mono);flex-direction:column;align-items:flex-start;gap:4px;display:flex;position:absolute;left:8px;overflow:hidden}.ws-strip.hidden{display:none}.ws-strip-head{align-items:center;gap:4px;display:flex}.ws-strip-lead{letter-spacing:1.1px;text-transform:uppercase;color:var(--c-text-3);border:var(--hairline) solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface);white-space:nowrap;padding:0 5px;font-size:9.5px}.ws-strip-count{color:var(--c-text-3);border:var(--hairline) solid var(--c-border-subtle);border-radius:var(--r-sm);background:var(--c-surface);padding:0 4px;font-size:9.5px}.ws-strip-list{scrollbar-width:none;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;max-width:100%;display:flex;overflow:hidden auto}.ws-strip-list::-webkit-scrollbar{display:none}.ws-strip-row{pointer-events:auto;border:var(--hairline) solid var(--c-border-subtle);border-radius:var(--r-badge);background:var(--c-surface);min-width:0;max-width:100%;color:var(--c-text-2);font-family:var(--mono);cursor:pointer;align-items:center;gap:5px;padding:1px 7px;font-size:10px;line-height:15px;transition:background .12s,border-color .12s;display:inline-flex}.ws-strip-row:hover{background:var(--c-accent-soft);border-color:var(--c-border-strong);color:var(--c-text-1)}.ws-strip-row .sess-dot{width:6px;height:6px}.ws-strip-wid{color:var(--c-text-1);letter-spacing:.3px;flex:none}.ws-strip-title{text-overflow:ellipsis;white-space:nowrap;text-transform:none;flex:0 auto;min-width:0;overflow:hidden}.ws-strip-meta{color:var(--c-text-3);flex:none}.ws-strip-row.settled{opacity:.72}@media (max-width:1024px){.ws-strip{display:none}}html{-webkit-text-size-adjust:100%}button,[role=button],.sess-leaf,.sl-opt,.sl-ring,.think-head,.toolcard-head,.grant-preset,.settings-nav-item{-webkit-tap-highlight-color:transparent;touch-action:manipulation}@supports (height:100dvh){#app{height:100dvh}}#sessionBar{overscroll-behavior-x:contain;max-width:100%;overflow:hidden}.sess-pane,.msg,.bubble,.content{min-width:0}@media (max-width:1024px){#topbar .btn,#statusbar .btn,.side-sec .btn-mini,#btnSend,#input{min-height:var(--tap-min)}.sl-ring{width:var(--tap-min);height:var(--tap-min);margin-left:calc(-1 * (var(--tap-min) - 14px) / 2);flex:none}.sl-model,.sl-effort,.sl-mode,#btnMode{min-height:var(--tap-min);min-width:var(--tap-min);align-items:center;display:inline-flex}.sl-effort,.sl-mode{padding:0 8px}.sl-grant,.sl-stop{width:var(--tap-min);height:var(--tap-min)}.sl-grant svg{width:14px;height:14px}#btnAttach.attach-inline{width:var(--tap-min);height:var(--tap-min)}.input-box #input{padding-left:calc(var(--tap-min) + 8px)}.sess-leaf,.ws-head{min-height:var(--tap-min)}.sess-kebab{min-width:var(--tap-min);min-height:var(--tap-min)}.think-head{height:auto;min-height:var(--tap-min)}.toolcard-head{min-height:var(--tap-min)}.toolcard-copy{min-width:var(--tap-min);min-height:var(--tap-min)}.sl-opt,.grant-preset,.grant-row-actions .btn,.settings-nav-item{min-height:var(--tap-min)}.sl-popup,.sl-popup.grant-popup{max-width:calc(100vw - 16px)}#input,input,select,textarea{font-size:16px}.chat-shell{margin:4px}.sess-pane{padding:16px 14px}.chatcol-resizer{display:none}.toolcard{--card-gutter:26px}}@media (max-width:640px){#topbar{height:var(--topbar-h-mobile);gap:6px;padding:6px 10px}.topbar-left{gap:8px;min-width:0}.brand{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.brand-tag{display:none}.topbar-right{flex:none;gap:4px}#topbar .btn{min-width:var(--tap-min);min-height:var(--tap-min);padding:0 10px;font-size:12px}#topbar #btnSidebar{justify-content:center;align-items:center;font-size:0;display:inline-flex}#topbar #btnSidebar:before{content:"";border-radius:var(--r-sm);background:currentColor;width:18px;height:2px;box-shadow:0 -6px,0 6px}#app{--sidebar-w:0px!important}#sidebar{top:var(--topbar-h-mobile);z-index:61;box-shadow:var(--shadow-panel);overscroll-behavior:contain;padding-bottom:var(--safe-b);will-change:transform;transition:transform .18s;position:fixed;bottom:0;left:0;transform:translate(-100%);width:var(--drawer-w)!important}#app.drawer-open #sidebar{transform:none}#app.sidebar-collapsed #sidebar{display:flex}#app.sidebar-collapsed #sidebarResizer,.sidebar-resizer{display:none}.sidebar-scrim{inset:var(--topbar-h-mobile) 0 0 0;background:var(--c-overlay);z-index:60;position:fixed}.sidebar-scrim.hidden{display:none}#statusline,.statusline{padding:2px 10px;font-size:12px}.sl-row-main{min-height:var(--tap-min);flex-wrap:nowrap;gap:6px}.sl-row-sub{flex-wrap:nowrap;gap:6px;min-height:16px;overflow:hidden}.sl-model{flex:0 auto;max-width:40vw}.sl-effort{flex:none;font-size:11px}.sl-hint{flex:0 auto;min-width:0}.sl-hint:empty{display:none}.sl-tps,.sl-cache,.sl-steps{white-space:nowrap}#inputbar{padding:8px 10px calc(8px + var(--safe-b));gap:8px}#input{max-height:32dvh;font-size:16px}#btnSend{min-width:72px;padding:0 12px}#btnMode{min-width:32px;padding:0 6px}#btnMode .sl-mode-icon{display:block}#btnMode .sl-mode-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sl-end,.input-side{gap:6px}.chat-shell{border-radius:var(--r-md);--r-shell:var(--r-md);margin:2px}.sess-pane{padding:12px 10px}.msg.user .bubble{max-width:100%}.toolcard{--card-gutter:22px}.tool-args,.tool-out{max-height:200px}.content pre{max-width:100%}.think-seg-body{max-height:240px}.sl-popup{width:auto;max-width:none;max-height:min(64dvh,460px);left:8px;right:8px}.sl-popup-body{flex:auto;min-height:0;max-height:none;overflow-y:auto}.sl-opt{padding:8px 10px}.sl-opt.sub{padding-left:22px}.sl-group{min-height:30px}.sl-popup-textrow{flex-wrap:wrap}.sl-popup-input{min-height:var(--tap-min);flex:100%}.sl-popup.grant-popup,.sl-popup.perm-popup{border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:var(--safe-b);width:auto!important;max-width:none!important;max-height:78dvh!important;top:auto!important;bottom:0!important;left:0!important;right:0!important}.grant-row-actions{flex-wrap:wrap}.grant-ttl{font-size:16px}.settings-shell{border-radius:0;width:100%;height:100dvh;max-height:100dvh}.settings-layout{flex-direction:column}.settings-nav{overscroll-behavior-x:contain;border-right:none;border-bottom:1px solid var(--c-border-subtle);flex-direction:row;gap:4px;padding:6px 8px;overflow-x:auto}.settings-nav-item{min-height:var(--tap-min);white-space:nowrap}.settings-content{padding:10px}.settings-head{padding:8px 10px}}@media (hover:none){.msg.think-seg .think-head:before{opacity:0}.think-fold-mark{opacity:1}.btn:active,.sl-opt:active,.sess-leaf:active,.toolcard-head:active,.grant-preset:active,.settings-nav-item:active{background:var(--c-accent-soft)}.sl-model:active,.sl-effort:active,.toolcard-copy:active{color:var(--c-text-1);border-color:var(--c-accent-ring)}}