scream-code 0.11.1 → 0.11.3

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 (29) hide show
  1. package/dist/{app-p7tymZds.mjs → app-D6B25mE5.mjs} +89 -11
  2. package/dist/main.mjs +1 -1
  3. package/dist/public/assets/index-BJI4roHX.css +1 -0
  4. package/dist/public/assets/{index-_4G7zaK5.js → index-mUEA7L6U.js} +28 -29
  5. package/dist/public/assets/index-mUEA7L6U.js.map +1 -0
  6. package/dist/public/index.html +2 -2
  7. package/package.json +1 -1
  8. package/dist/public/assets/bash-Yzrsuije.js +0 -2
  9. package/dist/public/assets/bash-Yzrsuije.js.map +0 -1
  10. package/dist/public/assets/css-DPfMkruS.js +0 -2
  11. package/dist/public/assets/css-DPfMkruS.js.map +0 -1
  12. package/dist/public/assets/diff-D97Zzqfu.js +0 -2
  13. package/dist/public/assets/diff-D97Zzqfu.js.map +0 -1
  14. package/dist/public/assets/html-GMplVEZG.js +0 -2
  15. package/dist/public/assets/html-GMplVEZG.js.map +0 -1
  16. package/dist/public/assets/index-DZO0r34N.css +0 -1
  17. package/dist/public/assets/index-_4G7zaK5.js.map +0 -1
  18. package/dist/public/assets/javascript-wDzz0qaB.js +0 -2
  19. package/dist/public/assets/javascript-wDzz0qaB.js.map +0 -1
  20. package/dist/public/assets/json-Cp-IABpG.js +0 -2
  21. package/dist/public/assets/json-Cp-IABpG.js.map +0 -1
  22. package/dist/public/assets/python-B6aJPvgy.js +0 -2
  23. package/dist/public/assets/python-B6aJPvgy.js.map +0 -1
  24. package/dist/public/assets/typescript-BPQ3VLAy.js +0 -2
  25. package/dist/public/assets/typescript-BPQ3VLAy.js.map +0 -1
  26. package/dist/public/assets/vue-DVfSmUF7.js +0 -2
  27. package/dist/public/assets/vue-DVfSmUF7.js.map +0 -1
  28. package/dist/public/assets/yaml-Buea-lGh.js +0 -2
  29. package/dist/public/assets/yaml-Buea-lGh.js.map +0 -1
@@ -76030,6 +76030,52 @@ function canSplitAfterContext(messages, index) {
76030
76030
  /** Max consecutive compaction failures before auto-compaction is
76031
76031
  * disabled for the remainder of the turn. Resets each turn. */
76032
76032
  const MAX_CONSECUTIVE_FAILURES = 3;
76033
+ /** Truncate tool call arguments to a brief summary for the compaction history. */
76034
+ function truncateArgsForSummary(args) {
76035
+ if (args === null || args === void 0) return "";
76036
+ try {
76037
+ const parsed = JSON.parse(args);
76038
+ if (typeof parsed !== "object" || parsed === null) return "";
76039
+ const entries = Object.entries(parsed);
76040
+ const parts = [];
76041
+ for (const [key, value] of entries) {
76042
+ const valStr = typeof value === "string" ? value.length > 50 ? `"${value.slice(0, 50)}…"` : `"${value}"` : String(value);
76043
+ parts.push(`${key}=${valStr}`);
76044
+ }
76045
+ return parts.slice(0, 3).join(", ");
76046
+ } catch {
76047
+ return args.slice(0, 80);
76048
+ }
76049
+ }
76050
+ /** Extract a brief tool-call history from compacted messages so the model
76051
+ * knows what was already tried after compaction. Prevents repeating
76052
+ * failed approaches. */
76053
+ function formatToolCallHistory(messages) {
76054
+ const resultStatus = /* @__PURE__ */ new Map();
76055
+ for (const msg of messages) if (msg.role === "tool" && msg.toolCallId !== void 0) resultStatus.set(msg.toolCallId, msg.isError === true);
76056
+ const entries = [];
76057
+ for (const msg of messages) {
76058
+ if (msg.role !== "assistant" || msg.toolCalls.length === 0) continue;
76059
+ for (const tc of msg.toolCalls) {
76060
+ const isError = resultStatus.get(tc.id) ?? false;
76061
+ const argsSummary = truncateArgsForSummary(tc.arguments);
76062
+ entries.push({
76063
+ name: tc.name,
76064
+ argsSummary,
76065
+ isError
76066
+ });
76067
+ }
76068
+ }
76069
+ if (entries.length === 0) return "";
76070
+ return [
76071
+ "## Recent Tool Calls",
76072
+ "",
76073
+ ...entries.slice(-15).map((e) => {
76074
+ const status = e.isError ? "error" : "success";
76075
+ return `- ${e.name}(${e.argsSummary}) -> ${status}`;
76076
+ })
76077
+ ].join("\n");
76078
+ }
76033
76079
  /** Minimal system prompt used during compaction. The full agent system
76034
76080
  * prompt contains tool descriptions and runtime injections that contradict
76035
76081
  * the compaction instruction ("DO NOT CALL ANY TOOLS"). This compact prompt
@@ -76284,7 +76330,8 @@ var FullCompaction = class {
76284
76330
  const messagesToCompactForOps = originalHistory.slice(0, compactedCount);
76285
76331
  const fileOps = createFileOps();
76286
76332
  for (const msg of messagesToCompactForOps) extractFileOpsFromMessage(msg, fileOps);
76287
- const processedSummary = this.postProcessSummary(summary, fileOps);
76333
+ const toolCallHistory = formatToolCallHistory(messagesToCompactForOps);
76334
+ const processedSummary = this.postProcessSummary(summary, fileOps, toolCallHistory);
76288
76335
  const tokensAfter = estimateTokens$1(processedSummary) + estimateTokensForMessages(recent);
76289
76336
  const result = {
76290
76337
  summary: processedSummary,
@@ -76397,7 +76444,7 @@ var FullCompaction = class {
76397
76444
  * compression. Without this, both are lost after compaction because the
76398
76445
  * original messages containing them are removed from the context window.
76399
76446
  */
76400
- postProcessSummary(summary, fileOps) {
76447
+ postProcessSummary(summary, fileOps, toolCallHistory) {
76401
76448
  const todos = this.agent.tools.storeData()["todo"] ?? [];
76402
76449
  const sections = [summary.trim()];
76403
76450
  if (todos.length > 0) {
@@ -76412,6 +76459,7 @@ var FullCompaction = class {
76412
76459
  }
76413
76460
  const filesSection = formatFileOperations(fileOps);
76414
76461
  if (filesSection.length > 0) sections.push(filesSection);
76462
+ if (toolCallHistory.length > 0) sections.push(toolCallHistory);
76415
76463
  return sections.join("\n\n");
76416
76464
  }
76417
76465
  };
@@ -76518,7 +76566,7 @@ const DEFAULT_CONFIG = {
76518
76566
  keepRecentTokens: 4e4,
76519
76567
  pruneMinReclaimTokens: 2e4,
76520
76568
  minContentTokens: 100,
76521
- minContextUsageRatio: .5,
76569
+ minContextUsageRatio: .3,
76522
76570
  truncatedMarker: "[Old tool result content cleared]",
76523
76571
  uselessMarker: "[Uneventful result elided]",
76524
76572
  noMatchesMarker: "[no matches]"
@@ -77865,8 +77913,15 @@ const TOOL_OUTPUT_EMPTY_TEXT = "Tool output is empty.";
77865
77913
  /** Maximum token count for tool results persisted in conversation history.
77866
77914
  * Results exceeding this limit are truncated to avoid bloating every
77867
77915
  * subsequent API request with stale data. The model can re-read the
77868
- * full content via read_file when needed. */
77869
- const MAX_TOOL_RESULT_TOKENS = 8e3;
77916
+ * full content via read_file when needed.
77917
+ *
77918
+ * Lowered from 8000 to 5000 to reduce input-context pressure on long
77919
+ * sessions. When input grows large, the available output space
77920
+ * (context_window - input_tokens) shrinks, causing the model to hit
77921
+ * max_tokens before emitting a tool call. Smaller tool-result footprints
77922
+ * leave more room for output. The current turn always sees the full
77923
+ * result via streaming; only the history copy is truncated. */
77924
+ const MAX_TOOL_RESULT_TOKENS = 5e3;
77870
77925
  const TOOL_TRUNCATION_NOTICE = "\n[content truncated — use read_file to re-read if needed]";
77871
77926
  var ContextMemory = class {
77872
77927
  agent;
@@ -96038,10 +96093,25 @@ function parseEnvBudget(raw) {
96038
96093
  }
96039
96094
  /**
96040
96095
  * Compute the effective `max_completion_tokens` cap.
96041
- */
96096
+ *
96097
+ * Aligned with oh-my-pi's approach: use a reasonable output-token cap
96098
+ * instead of the full context window. `max_context_tokens` is the total
96099
+ * (input + output) budget, not the output-only budget. Using it as
96100
+ * max_tokens tells the API "generate up to 128K output tokens", which is
96101
+ * incorrect - the actual max output is much smaller. The API server
96102
+ * clamps it to context_window - input_tokens, which shrinks as context
96103
+ * grows, causing "max_tokens limit - no tool call" errors on long
96104
+ * sessions.
96105
+ *
96106
+ * The 64K cap matches oh-my-pi's OUTPUT_CAP_WHEN_UNKNOWN and is well
96107
+ * above any current model's real output limit (typically 8K-32K), so it
96108
+ * never artificially limits output while preventing the context-window
96109
+ * value from being used directly.
96110
+ */
96111
+ const OUTPUT_TOKEN_CAP = 64e3;
96042
96112
  function computeCompletionBudgetCap(args) {
96043
96113
  const maxCtx = args.capability?.max_context_tokens ?? 0;
96044
- const cap = args.budget.hardCap ?? (maxCtx > 0 ? maxCtx : args.budget.fallback ?? DEFAULT_UNKNOWN_CONTEXT_FALLBACK);
96114
+ const cap = args.budget.hardCap ?? (maxCtx > 0 ? Math.min(maxCtx, OUTPUT_TOKEN_CAP) : args.budget.fallback ?? DEFAULT_UNKNOWN_CONTEXT_FALLBACK);
96045
96115
  return Math.max(MIN_FLOOR, cap);
96046
96116
  }
96047
96117
  /**
@@ -120218,7 +120288,7 @@ function optionalBuildString(value) {
120218
120288
  return typeof value === "string" && value.length > 0 ? value : void 0;
120219
120289
  }
120220
120290
  const SCREAM_BUILD_INFO = {
120221
- version: optionalBuildString("0.11.1"),
120291
+ version: optionalBuildString("0.11.3"),
120222
120292
  channel: optionalBuildString(""),
120223
120293
  commit: optionalBuildString(""),
120224
120294
  buildTarget: optionalBuildString("darwin-arm64")
@@ -125398,13 +125468,17 @@ function findProjectRoot(startDir) {
125398
125468
  let dir = resolve(startDir);
125399
125469
  let markerDir;
125400
125470
  while (true) {
125401
- if (existsSync(resolve(dir, ".git"))) return dir;
125471
+ const hasGit = existsSync(resolve(dir, ".git"));
125402
125472
  if (markerDir === void 0) {
125403
125473
  for (const marker of PROJECT_ROOT_MARKERS) if (existsSync(resolve(dir, marker))) {
125404
125474
  markerDir = dir;
125405
125475
  break;
125406
125476
  }
125407
125477
  }
125478
+ if (hasGit) {
125479
+ if (markerDir === void 0 || markerDir === dir) return dir;
125480
+ return PROJECT_ROOT_MARKERS.some((m) => existsSync(resolve(dir, m))) ? dir : markerDir;
125481
+ }
125408
125482
  const parent = dirname$1(dir);
125409
125483
  if (parent === dir) break;
125410
125484
  dir = parent;
@@ -126958,7 +127032,7 @@ var ThinkingComponent = class {
126958
127032
  this.stopSpinner();
126959
127033
  }
126960
127034
  dispose() {
126961
- this.stopSpinner();
127035
+ this.finalize();
126962
127036
  }
126963
127037
  setExpanded(expanded) {
126964
127038
  if (this.expanded === expanded) return;
@@ -148086,7 +148160,11 @@ async function runWebServer(opts) {
148086
148160
  }
148087
148161
  ws.send(JSON.stringify({ type: "server_empty" }));
148088
148162
  });
148089
- await new Promise((resolve) => {
148163
+ await new Promise((resolve, reject) => {
148164
+ httpServer.once("error", (err) => {
148165
+ if (err.code === "EADDRINUSE") reject(/* @__PURE__ */ new Error(`端口 ${opts.port} 已被占用,请先关闭占用该端口的进程,或使用 --port <port> 指定其他端口。`));
148166
+ else reject(err);
148167
+ });
148090
148168
  httpServer.listen(opts.port, "127.0.0.1", resolve);
148091
148169
  });
148092
148170
  const url = `http://localhost:${opts.port}`;
package/dist/main.mjs CHANGED
@@ -6,7 +6,7 @@ const __dirname = __cjsShimDirname(__filename);
6
6
  import "./suppress-sqlite-warning-C2VB0doZ.mjs";
7
7
  //#region src/main.ts
8
8
  try {
9
- (await import("./app-p7tymZds.mjs")).main();
9
+ (await import("./app-D6B25mE5.mjs")).main();
10
10
  } catch (error) {
11
11
  process.stderr.write(`${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
12
12
  process.exit(1);
@@ -0,0 +1 @@
1
+ .context-ring[data-v-3ffc343b]{display:inline-flex;align-items:center;line-height:0;flex-shrink:0}.ring-track[data-v-3ffc343b]{stroke:var(--color-line)}.ring-value[data-v-3ffc343b]{stroke:var(--v1d95ffa8);transition:stroke-dashoffset var(--dur-slow) var(--ease-out),stroke var(--dur-base)}.ui-dialog-overlay[data-v-4562f775]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:var(--space-3)}.ui-dialog[data-v-4562f775]{width:100%;max-width:480px;max-height:80vh;overflow:auto;background:var(--color-surface-raised);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl, 0 12px 40px rgba(0, 0, 0, .25));display:flex;flex-direction:column}.ui-dialog-header[data-v-4562f775]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-line);flex-shrink:0}.ui-dialog-title[data-v-4562f775]{font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.ui-dialog-close[data-v-4562f775]{border:none;background:transparent;color:var(--color-text-muted);font-size:var(--font-size-base);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-md);line-height:1;transition:background var(--dur-fast),color var(--dur-fast)}.ui-dialog-close[data-v-4562f775]:hover{background:var(--color-hover);color:var(--color-text)}.ui-dialog-body[data-v-4562f775]{padding:var(--space-2) var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.ui-dialog-footer[data-v-4562f775]{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-line);flex-shrink:0}.dialog-enter-active[data-v-4562f775],.dialog-leave-active[data-v-4562f775]{transition:opacity var(--dur-base) var(--ease-out)}.dialog-enter-active .ui-dialog[data-v-4562f775],.dialog-leave-active .ui-dialog[data-v-4562f775]{transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.dialog-enter-from[data-v-4562f775],.dialog-leave-to[data-v-4562f775]{opacity:0}.dialog-enter-from .ui-dialog[data-v-4562f775],.dialog-leave-to .ui-dialog[data-v-4562f775]{transform:scale(.96) translateY(8px);opacity:0}.svg-icon[data-v-0a0ac222]{display:block;flex:0 0 auto}.topbar[data-v-6c220d1f]{grid-area:topbar;height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 24px;background:var(--color-surface);border-bottom:1px solid var(--color-line);min-width:0;z-index:var(--z-dock)}.agent-heading[data-v-6c220d1f],.actions[data-v-6c220d1f],.agent-copy span[data-v-6c220d1f],.action-chip[data-v-6c220d1f],.connection[data-v-6c220d1f],.theme-toggle[data-v-6c220d1f]{display:flex;align-items:center}.agent-heading[data-v-6c220d1f]{gap:12px;min-width:0}.agent-mark[data-v-6c220d1f]{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:var(--color-accent);background:var(--color-accent-soft)}.agent-copy[data-v-6c220d1f]{display:flex;flex-direction:column;min-width:0}.agent-copy strong[data-v-6c220d1f]{font-size:15px;letter-spacing:-.01em}.agent-copy span[data-v-6c220d1f]{gap:7px;color:var(--color-text-muted);font-size:12px;margin-top:3px}.agent-copy i[data-v-6c220d1f]{width:7px;height:7px;border-radius:50%;background:var(--color-success)}.agent-copy i.busy[data-v-6c220d1f]{animation:pulse-6c220d1f 1.2s infinite}.actions[data-v-6c220d1f]{justify-content:flex-end;gap:8px;min-width:0}.action-chip[data-v-6c220d1f],.status-chip[data-v-6c220d1f]{height:34px;gap:7px;padding:0 11px;border:1px solid var(--color-line);border-radius:9px;background:var(--color-surface);color:var(--color-text-muted);font-size:12px;white-space:nowrap}button.action-chip[data-v-6c220d1f]{cursor:pointer}button.action-chip[data-v-6c220d1f]:hover{border-color:var(--color-accent-bd);color:var(--color-accent);background:var(--color-accent-soft)}button.action-chip[data-v-6c220d1f]:disabled{pointer-events:none}.status-chip[data-v-6c220d1f],.model[data-v-6c220d1f]{color:var(--color-accent);background:var(--color-accent-soft);border-color:var(--color-accent-bd)}.truncate[data-v-6c220d1f]{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-toggle[data-v-6c220d1f]{padding:3px;gap:1px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface-sunken)}.theme-toggle button[data-v-6c220d1f]{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--color-text-faint);cursor:pointer}.theme-toggle button.active[data-v-6c220d1f]{color:var(--color-accent);background:var(--color-surface);box-shadow:var(--shadow-xs)}.connection[data-v-6c220d1f]{gap:7px;padding-left:4px;color:var(--color-text-muted);font-size:12px;white-space:nowrap}.connection.connected[data-v-6c220d1f]{color:var(--color-success)}.connection.connecting[data-v-6c220d1f],.connection.reconnecting[data-v-6c220d1f]{color:var(--color-warning)}.connection.disconnected[data-v-6c220d1f]{color:var(--color-danger)}.mobile-menu[data-v-6c220d1f]{display:none;width:36px;height:36px;place-items:center;border:1px solid var(--color-line);border-radius:9px;background:var(--color-surface);color:var(--color-text)}.diff-body[data-v-6c220d1f]{margin:0;padding:16px;max-height:55vh;overflow:auto;white-space:pre-wrap;font:12px/1.6 var(--font-mono)}.diff-empty[data-v-6c220d1f]{padding:28px;text-align:center;color:var(--color-text-muted)}@keyframes pulse-6c220d1f{50%{opacity:.3}}@media(max-width:1400px){.action-chip.git span[data-v-6c220d1f]:last-child,.action-chip.context[data-v-6c220d1f],.status-chip[data-v-6c220d1f]{display:none}.truncate[data-v-6c220d1f]{max-width:110px}}@media(max-width:900px){.action-chip.git[data-v-6c220d1f],.action-chip.model[data-v-6c220d1f]{display:none}}@media(max-width:640px){.topbar[data-v-6c220d1f]{padding:0 14px;height:64px}.mobile-menu[data-v-6c220d1f]{display:grid}.agent-mark[data-v-6c220d1f]{display:none}.agent-copy strong[data-v-6c220d1f]{font-size:14px}.agent-copy span[data-v-6c220d1f]{display:none}.connection span[data-v-6c220d1f],.theme-toggle button[data-v-6c220d1f]:not(.active){display:none}.actions[data-v-6c220d1f]{gap:5px}}.chat-header[data-v-5addc6d6]{min-height:88px;display:flex;align-items:center;gap:18px;padding:17px 24px;background:var(--color-surface);border-bottom:1px solid var(--color-line);flex-shrink:0}.title-area[data-v-5addc6d6]{flex:1;min-width:0}.title-copy[data-v-5addc6d6]{min-width:0}.title-line[data-v-5addc6d6]{display:flex;align-items:center;gap:7px;min-width:0}h1[data-v-5addc6d6]{margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:20px;line-height:1.3;font-weight:700;letter-spacing:-.02em}.status-line[data-v-5addc6d6]{display:flex;align-items:center;gap:7px;margin-top:7px;color:var(--color-text-muted);font-size:12px}.status-dot[data-v-5addc6d6]{width:7px;height:7px;border-radius:50%;background:var(--color-success)}.status-dot.busy[data-v-5addc6d6]{background:var(--color-accent);animation:pulse-5addc6d6 1.2s infinite}.title-input[data-v-5addc6d6]{width:min(620px,100%);height:40px;padding:0 12px;border:1px solid var(--color-accent-bd);border-radius:9px;background:var(--color-surface-sunken);color:var(--color-text);font:700 18px var(--font-ui);outline:none;box-shadow:0 0 0 3px var(--color-accent-soft)}.header-actions[data-v-5addc6d6]{display:flex;align-items:center;gap:8px}.text-action[data-v-5addc6d6],.icon-action[data-v-5addc6d6]{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;border:1px solid var(--color-line);border-radius:9px;background:var(--color-surface);color:var(--color-text-muted);font-size:12px;cursor:pointer}.text-action[data-v-5addc6d6]{padding:0 12px}.icon-action[data-v-5addc6d6]{width:36px;padding:0}.icon-action.edit[data-v-5addc6d6]{width:28px;height:28px;border:0;opacity:0}.chat-header:hover .icon-action.edit[data-v-5addc6d6],.icon-action.edit[data-v-5addc6d6]:focus-visible{opacity:1}.text-action[data-v-5addc6d6]:hover,.icon-action[data-v-5addc6d6]:hover{color:var(--color-accent);border-color:var(--color-accent-bd);background:var(--color-accent-soft)}.text-action.dimmed[data-v-5addc6d6]{opacity:.4}.text-action.dimmed[data-v-5addc6d6]:hover{opacity:.7}@keyframes pulse-5addc6d6{50%{opacity:.3}}@media(max-width:640px){.chat-header[data-v-5addc6d6]{min-height:72px;padding:12px 14px}h1[data-v-5addc6d6]{font-size:17px}.status-line[data-v-5addc6d6]{margin-top:4px}.text-action[data-v-5addc6d6]{width:36px;padding:0}.text-action span[data-v-5addc6d6]{display:none}.icon-action.edit[data-v-5addc6d6]{opacity:1}}.code-block[data-v-c1bb01df]{background:var(--color-surface-sunken);border:1px solid var(--color-line);border-radius:8px;margin:.75em 0;overflow:hidden}.code-header[data-v-c1bb01df]{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--color-surface);border-bottom:1px solid var(--color-line);font-size:12px}.code-lang[data-v-c1bb01df]{color:var(--color-text-muted);text-transform:lowercase;font-family:SF Mono,Cascadia Code,monospace}.code-copy[data-v-c1bb01df]{background:transparent;border:1px solid var(--color-line);color:var(--color-text-muted);border-radius:4px;padding:2px 8px;cursor:pointer;font-size:12px}.code-copy[data-v-c1bb01df]:hover{color:var(--color-text);border-color:var(--color-text-muted)}.code-content[data-v-c1bb01df] pre{margin:0;padding:12px;overflow-x:auto;font-size:13px;line-height:1.6}.code-content[data-v-c1bb01df] code{font-family:SF Mono,Cascadia Code,monospace}.code-content[data-v-c1bb01df] .line{display:block}.code-content[data-v-c1bb01df] .line.add{background:#23863633}.code-content[data-v-c1bb01df] .line.del{background:#da363333}.code-content[data-v-c1bb01df] .shiki-fallback{margin:0;padding:12px;overflow-x:auto;font-size:13px;line-height:1.6;font-family:SF Mono,Cascadia Code,monospace}.markdown-body[data-v-ab83c5f2] .md-p{margin:.6em 0}.markdown-body[data-v-ab83c5f2] .md-h1,.markdown-body[data-v-ab83c5f2] .md-h2,.markdown-body[data-v-ab83c5f2] .md-h3{margin:1em 0 .5em;font-weight:600}.markdown-body[data-v-ab83c5f2] .md-h1{font-size:1.5em;border-bottom:1px solid var(--color-line);padding-bottom:.3em}.markdown-body[data-v-ab83c5f2] .md-h2{font-size:1.3em}.markdown-body[data-v-ab83c5f2] .md-h3{font-size:1.15em}.markdown-body[data-v-ab83c5f2] .md-ul,.markdown-body[data-v-ab83c5f2] .md-ol{margin:.6em 0;padding-left:1.5em}.markdown-body[data-v-ab83c5f2] .md-li{margin:.25em 0}.markdown-body[data-v-ab83c5f2] .md-task{list-style:none;margin-left:-1.2em}.markdown-body[data-v-ab83c5f2] .md-checkbox{margin-right:6px;vertical-align:middle}.markdown-body[data-v-ab83c5f2] .md-blockquote{margin:.6em 0;padding-left:1em;border-left:3px solid var(--color-accent);color:var(--color-text-muted)}.markdown-body[data-v-ab83c5f2] .md-code{background:var(--color-surface-sunken);padding:.15em .35em;border-radius:4px;font-family:var(--font-mono);font-size:.9em}.markdown-body[data-v-ab83c5f2] .md-a{color:var(--color-info);text-decoration:none}.markdown-body[data-v-ab83c5f2] .md-a:hover{text-decoration:underline}.markdown-body[data-v-ab83c5f2] .md-hr{border:none;border-top:1px solid var(--color-line);margin:1em 0}.markdown-body[data-v-ab83c5f2] .md-strong{font-weight:600}.markdown-body[data-v-ab83c5f2] .md-em{font-style:italic}.markdown-body[data-v-ab83c5f2] .md-del{text-decoration:line-through}.markdown-body[data-v-ab83c5f2] .md-img{max-width:100%;border-radius:8px}.markdown-body[data-v-ab83c5f2] .md-table{border-collapse:collapse;width:100%;margin:.6em 0;font-size:.9em}.markdown-body[data-v-ab83c5f2] .md-th,.markdown-body[data-v-ab83c5f2] .md-td{border:1px solid var(--color-line);padding:6px 10px;text-align:left}.markdown-body[data-v-ab83c5f2] .md-th{background:var(--color-surface-sunken);font-weight:600}.markdown-body[data-v-ab83c5f2] .md-html{margin:.6em 0}.tool-card[data-v-5d0f42c5]{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;font-size:var(--font-size-sm);animation:tool-in-5d0f42c5 var(--dur-msg-assistant) var(--ease-out) both;transition:border-color var(--dur-base)}@keyframes tool-in-5d0f42c5{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.tool-card[data-v-5d0f42c5]{animation:none}}.tool-card.is-error[data-v-5d0f42c5]{border-color:var(--color-danger)}.tool-header[data-v-5d0f42c5]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--color-surface-raised);transition:background var(--dur-fast)}.tool-header[data-v-5d0f42c5]:hover{background:var(--color-hover)}.tool-card.is-error .tool-header[data-v-5d0f42c5]{background:var(--color-danger-soft)}.status-dot[data-v-5d0f42c5]{width:16px;height:16px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.status-dot.ok[data-v-5d0f42c5]{background:var(--color-success-soft);color:var(--color-success)}.status-dot.error[data-v-5d0f42c5]{background:var(--color-danger-soft);color:var(--color-danger)}.status-dot.running[data-v-5d0f42c5]{background:var(--color-accent);animation:pulse-dot-5d0f42c5 1.2s var(--ease-out) infinite}.status-dot.suspended[data-v-5d0f42c5]{background:var(--color-line-strong)}@keyframes pulse-dot-5d0f42c5{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.tool-name[data-v-5d0f42c5]{font-family:var(--font-mono);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text);flex-shrink:0}.tool-params[data-v-5d0f42c5]{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tool-chevron[data-v-5d0f42c5]{color:var(--color-text-faint);font-size:var(--font-size-xs);transition:transform var(--dur-base) var(--ease-out);flex-shrink:0}.tool-chevron.open[data-v-5d0f42c5]{transform:rotate(90deg)}.tool-collapse[data-v-5d0f42c5]{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-out)}.tool-collapse.open[data-v-5d0f42c5]{grid-template-rows:1fr}.tool-collapse-inner[data-v-5d0f42c5]{overflow:hidden;min-height:0}.tool-body[data-v-5d0f42c5]{padding:var(--space-2) var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.tool-args[data-v-5d0f42c5],.tool-result[data-v-5d0f42c5]{margin:0;padding:var(--space-2) var(--space-3);background:var(--color-surface-sunken);border:1px solid var(--color-line);border-radius:var(--radius-md);overflow-x:auto;max-height:320px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5}.tool-result[data-v-5d0f42c5]{color:var(--color-text)}.tool-card.is-error .tool-result[data-v-5d0f42c5]{color:var(--color-danger);border-color:var(--color-danger)}.tool-running-hint[data-v-5d0f42c5]{color:var(--color-text-faint);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2)}.diff-lines[data-v-147edc06]{font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5;width:max-content;min-width:100%;overflow-x:auto}.dl[data-v-147edc06]{display:flex;align-items:flex-start;min-height:18px;white-space:pre;width:100%}.dl-gutter[data-v-147edc06]{flex:none;width:36px;padding:0 6px;text-align:right;color:var(--color-text-faint);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.dl-gutter.new[data-v-147edc06]{border-right:1px solid var(--color-line)}.dl-sign[data-v-147edc06]{flex:none;width:16px;text-align:center;-webkit-user-select:none;user-select:none}.dl-text[data-v-147edc06]{flex:none;padding-right:14px;white-space:pre;color:var(--color-text)}.dl-add[data-v-147edc06]{background:var(--color-success-soft);box-shadow:inset 2px 0 0 var(--color-success)}.dl-add .dl-sign[data-v-147edc06]{color:var(--color-success)}.dl-del[data-v-147edc06]{background:var(--color-danger-soft);box-shadow:inset 2px 0 0 var(--color-danger)}.dl-del .dl-sign[data-v-147edc06]{color:var(--color-danger)}.dl-context .dl-sign[data-v-147edc06]{color:var(--color-text-faint)}.tool-card[data-v-95ab1624]{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;font-size:var(--font-size-sm);animation:tool-in-95ab1624 var(--dur-msg-assistant) var(--ease-out) both;transition:border-color var(--dur-base)}@keyframes tool-in-95ab1624{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.tool-card[data-v-95ab1624]{animation:none}}.tool-card.is-error[data-v-95ab1624]{border-color:var(--color-danger)}.tool-header[data-v-95ab1624]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--color-surface-raised);transition:background var(--dur-fast)}.tool-header[data-v-95ab1624]:hover{background:var(--color-hover)}.tool-card.is-error .tool-header[data-v-95ab1624]{background:var(--color-danger-soft)}.status-dot[data-v-95ab1624]{width:16px;height:16px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.status-dot.ok[data-v-95ab1624]{background:var(--color-success-soft);color:var(--color-success)}.status-dot.error[data-v-95ab1624]{background:var(--color-danger-soft);color:var(--color-danger)}.status-dot.running[data-v-95ab1624]{background:var(--color-accent);animation:pulse-dot-95ab1624 1.2s var(--ease-out) infinite}.status-dot.suspended[data-v-95ab1624]{background:var(--color-line-strong)}@keyframes pulse-dot-95ab1624{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.tool-name[data-v-95ab1624]{font-family:var(--font-mono);font-weight:600;font-size:var(--font-size-sm);color:var(--color-text);flex-shrink:0}.tool-filepath[data-v-95ab1624]{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;direction:rtl;text-align:left}.diff-chip[data-v-95ab1624]{flex-shrink:0;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface-sunken);border:1px solid var(--color-line);border-radius:var(--radius-full);padding:1px var(--space-2)}.tool-chevron[data-v-95ab1624]{color:var(--color-text-faint);font-size:var(--font-size-xs);transition:transform var(--dur-base) var(--ease-out);flex-shrink:0}.tool-chevron.open[data-v-95ab1624]{transform:rotate(90deg)}.tool-collapse[data-v-95ab1624]{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-out)}.tool-collapse.open[data-v-95ab1624]{grid-template-rows:1fr}.tool-collapse-inner[data-v-95ab1624]{overflow:hidden;min-height:0}.tool-body[data-v-95ab1624]{padding:var(--space-2) var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);overflow-x:auto}.tool-result[data-v-95ab1624]{margin:0;padding:var(--space-2) var(--space-3);background:var(--color-surface-sunken);border:1px solid var(--color-line);border-radius:var(--radius-md);overflow-x:auto;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text)}.tool-card.is-error .tool-result[data-v-95ab1624]{color:var(--color-danger);border-color:var(--color-danger)}.tool-running-hint[data-v-95ab1624]{color:var(--color-text-faint);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2)}.tool-process[data-v-a044c3b3]{overflow:hidden;border:1px solid var(--color-line);border-radius:13px;background:var(--color-surface);box-shadow:0 2px 8px #14231806}.tool-process.error[data-v-a044c3b3]{border-color:color-mix(in srgb,var(--color-danger) 42%,var(--color-line))}.process-head[data-v-a044c3b3]{width:100%;min-height:58px;display:flex;align-items:center;gap:11px;padding:10px 13px;border:0;background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer}.process-head[data-v-a044c3b3]:hover{background:var(--color-hover)}.process-icon[data-v-a044c3b3]{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border-radius:9px;color:var(--color-accent);background:var(--color-accent-soft)}.process-icon.error[data-v-a044c3b3]{color:var(--color-danger);background:var(--color-danger-soft)}.process-icon.running[data-v-a044c3b3]{animation:pulse-a044c3b3 1.2s infinite}.process-copy[data-v-a044c3b3]{display:flex;flex-direction:column;flex-shrink:0}.process-copy strong[data-v-a044c3b3]{font-size:12px}.process-copy small[data-v-a044c3b3]{margin-top:3px;color:var(--color-text-faint);font-size:10px}.tool-names[data-v-a044c3b3]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font:10px var(--font-mono);text-align:right}.count[data-v-a044c3b3]{min-width:22px;height:22px;display:grid;place-items:center;border-radius:11px;color:var(--color-accent);background:var(--color-accent-soft);font-size:10px}.chevron[data-v-a044c3b3]{color:var(--color-text-faint);transition:transform var(--dur-base) var(--ease-out)}.open .chevron[data-v-a044c3b3]{transform:rotate(180deg)}.process-collapse[data-v-a044c3b3]{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-out)}.open .process-collapse[data-v-a044c3b3]{grid-template-rows:1fr}.process-inner[data-v-a044c3b3]{min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px;padding:0 10px;background:var(--color-surface-sunken)}.open .process-inner[data-v-a044c3b3]{padding-top:10px;padding-bottom:10px;border-top:1px solid var(--color-line)}@keyframes pulse-a044c3b3{50%{opacity:.35}}@media(max-width:640px){.tool-names[data-v-a044c3b3]{display:none}.process-head[data-v-a044c3b3]{padding:9px 10px}}.thinking-block[data-v-890e0460]{width:100%;margin-top:var(--space-2);font-weight:425;animation:think-in-890e0460 var(--dur-msg-assistant) var(--ease-out) both}@keyframes think-in-890e0460{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.thinking-block[data-v-890e0460]{animation:none}}.thinking-teaser[data-v-890e0460]{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-2);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-faint);font-size:var(--font-size-sm);text-align:left;transition:background var(--dur-fast),color var(--dur-fast)}.thinking-teaser[data-v-890e0460]:hover{background:var(--color-hover);color:var(--color-text-muted)}.teaser-icon[data-v-890e0460]{flex-shrink:0}.teaser-text[data-v-890e0460]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;mask-image:linear-gradient(to right,#000 70%,transparent);-webkit-mask-image:linear-gradient(to right,#000 70%,transparent)}.teaser-open[data-v-890e0460]{flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-faint)}.thinking-stream[data-v-890e0460]{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.stream-header[data-v-890e0460]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface-raised)}.stream-dot[data-v-890e0460]{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-accent);animation:think-pulse-890e0460 1.2s var(--ease-out) infinite}@keyframes think-pulse-890e0460{0%,to{opacity:1}50%{opacity:.3}}.stream-body[data-v-890e0460]{max-height:calc(5 * 1.6 * var(--font-size-sm));overflow-y:auto;padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word}.thinking-overlay[data-v-890e0460]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:var(--z-modal);display:flex;justify-content:flex-end}.thinking-panel[data-v-890e0460]{width:min(440px,92vw);height:100%;background:var(--color-surface-raised);border-left:1px solid var(--color-line);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:slide-in-890e0460 var(--dur-slow) var(--ease-out)}@keyframes slide-in-890e0460{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.panel-header[data-v-890e0460]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-line);font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.panel-close[data-v-890e0460]{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-base);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.panel-close[data-v-890e0460]:hover{background:var(--color-hover);color:var(--color-text)}.panel-body[data-v-890e0460]{flex:1;overflow-y:auto;padding:var(--space-4);font-size:var(--font-size-sm);font-weight:425;line-height:1.7;color:var(--color-text-muted);white-space:pre-wrap;word-break:break-word}.message[data-v-0268f952]{width:100%;padding:18px 32px;animation:message-in-0268f952 var(--dur-msg-user) var(--ease-out) both}.message.user[data-v-0268f952]{display:flex;justify-content:flex-end;padding-top:22px}.user-wrap[data-v-0268f952]{max-width:min(76%,680px);display:flex;flex-direction:column;align-items:flex-end}.user-bubble[data-v-0268f952]{padding:13px 17px;border:1px solid var(--color-accent-bd);border-radius:17px 17px 5px;background:var(--color-accent-soft);color:var(--color-text);line-height:1.65;white-space:pre-wrap;word-break:break-word}.assistant-wrap[data-v-0268f952]{width:100%}.assistant-brand[data-v-0268f952]{display:flex;align-items:center;gap:10px;margin-bottom:13px}.assistant-avatar[data-v-0268f952]{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--color-accent-soft)}.assistant-avatar img[data-v-0268f952]{width:23px;height:23px;object-fit:contain;transition:visibility 0s}.assistant-brand>div[data-v-0268f952]{display:flex;flex:1;flex-direction:column}.assistant-brand strong[data-v-0268f952]{font-size:13px}.assistant-brand span[data-v-0268f952]{display:flex;align-items:center;gap:5px;margin-top:3px;color:var(--color-text-muted);font-size:10px}.assistant-brand i[data-v-0268f952]{width:5px;height:5px;border-radius:50%;background:var(--color-success)}.assistant-brand i.streaming[data-v-0268f952]{background:var(--color-accent);animation:pulse-0268f952 1.1s infinite}.assistant-brand time[data-v-0268f952]{color:var(--color-text-faint);font-size:10px}.assistant-body[data-v-0268f952]{padding-left:44px;display:flex;flex-direction:column;gap:13px;min-width:0;color:var(--color-text);line-height:1.75}.assistant-content[data-v-0268f952]{width:100%}.message.error .assistant-body[data-v-0268f952]{color:var(--color-danger)}.streaming-cursor[data-v-0268f952]{width:8px;height:18px;border-radius:2px;background:var(--color-accent);animation:pulse-0268f952 1s steps(2) infinite}.message-meta[data-v-0268f952]{min-height:20px;display:flex;align-items:center;gap:8px;margin-top:2px;color:var(--color-text-faint);font-size:10px}.user-meta[data-v-0268f952]{justify-content:flex-end;margin:5px 4px 0}.message-meta button[data-v-0268f952]{display:inline-flex;align-items:center;gap:4px;border:0;border-radius:5px;padding:3px 5px;background:transparent;color:var(--color-text-faint);font-size:10px;cursor:pointer;opacity:0}.message:hover .message-meta button[data-v-0268f952],.message-meta button[data-v-0268f952]:focus-visible{opacity:1}.message-meta button[data-v-0268f952]:hover{color:var(--color-accent);background:var(--color-accent-soft)}@keyframes message-in-0268f952{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes pulse-0268f952{50%{opacity:.3}}@media(prefers-reduced-motion:reduce){.message[data-v-0268f952]{animation:none}}@media(max-width:640px){.message[data-v-0268f952]{padding:14px}.user-wrap[data-v-0268f952]{max-width:88%}.assistant-body[data-v-0268f952]{padding-left:0}.message-meta button[data-v-0268f952]{opacity:1}}.empty-state[data-v-e4fea2d2]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8) var(--space-4);color:var(--color-text-muted)}.empty-logo[data-v-e4fea2d2]{display:flex;align-items:center;justify-content:center;width:72px;height:72px;background:var(--color-accent-soft);border:1px solid var(--color-accent-bd);border-radius:var(--radius-xl);box-shadow:0 0 24px var(--color-accent-glow),var(--shadow-sm);overflow:hidden}.logo-img[data-v-e4fea2d2]{width:48px;height:48px;object-fit:contain}.empty-title[data-v-e4fea2d2]{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em;background:linear-gradient(120deg,var(--color-text) 30%,var(--color-accent) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.empty-subtitle[data-v-e4fea2d2]{margin:0;font-size:var(--font-size-base)}.suggestions[data-v-e4fea2d2]{display:flex;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;justify-content:center}.suggestion-card[data-v-e4fea2d2]{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-6);min-width:128px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);transition:border-color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.suggestion-card[data-v-e4fea2d2]:hover{border-color:var(--color-accent-bd, var(--color-accent));background:var(--color-accent-soft, var(--color-hover));box-shadow:var(--shadow-md),0 0 16px var(--color-accent-glow);transform:translateY(-2px)}.suggestion-card[data-v-e4fea2d2]:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.suggestion-icon[data-v-e4fea2d2]{font-size:var(--font-size-2xl)}.suggestion-title[data-v-e4fea2d2]{white-space:nowrap}.empty-workdir[data-v-e4fea2d2]{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-5);padding:var(--space-1) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-full);background:var(--color-surface);box-shadow:var(--shadow-xs);font-size:var(--font-size-xs);max-width:80%}.workdir-label[data-v-e4fea2d2]{color:var(--color-text-faint);flex-shrink:0}.workdir-path[data-v-e4fea2d2]{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}@media(max-width:640px){.suggestions[data-v-e4fea2d2]{flex-direction:column;width:100%;max-width:320px}.suggestion-card[data-v-e4fea2d2]{flex-direction:row;justify-content:flex-start;min-width:0}}.message-list-wrapper[data-v-4c7d81fb]{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.message-list[data-v-4c7d81fb]{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:12px 0 8px;overscroll-behavior:contain;background:var(--color-surface)}.scroll-to-bottom[data-v-4c7d81fb]{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:36px;height:36px;border-radius:50%;border:1px solid var(--color-line);background:var(--color-surface-raised);color:var(--color-text-muted);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px #0000001f;z-index:10;transition:background .15s,color .15s}.scroll-to-bottom[data-v-4c7d81fb]:hover{background:var(--color-accent-soft);color:var(--color-accent)}.scroll-btn-enter-active[data-v-4c7d81fb],.scroll-btn-leave-active[data-v-4c7d81fb]{transition:opacity .2s,transform .2s}.scroll-btn-enter-from[data-v-4c7d81fb],.scroll-btn-leave-to[data-v-4c7d81fb]{opacity:0;transform:translate(-50%) translateY(8px)}.message-skeleton[data-v-4c7d81fb]{display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-5);animation:sk-in-4c7d81fb var(--dur-base) var(--ease-out) both}@keyframes sk-in-4c7d81fb{0%{opacity:0}to{opacity:1}}.sk-avatar[data-v-4c7d81fb]{width:28px;height:28px;border-radius:var(--radius-full);flex-shrink:0}.sk-body[data-v-4c7d81fb]{flex:1;min-width:0;padding-top:var(--space-1)}.sk-line[data-v-4c7d81fb]{height:12px;border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.sk-w-60[data-v-4c7d81fb]{width:60%}.sk-w-90[data-v-4c7d81fb]{width:90%}.sk-w-40[data-v-4c7d81fb]{width:40%}.sk-avatar[data-v-4c7d81fb],.sk-line[data-v-4c7d81fb]{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface-raised) 50%,var(--color-surface) 75%);background-size:200% 100%;animation:sk-shimmer-4c7d81fb 1.2s linear infinite}@keyframes sk-shimmer-4c7d81fb{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.sk-avatar[data-v-4c7d81fb],.sk-line[data-v-4c7d81fb]{animation:none}}.picker-backdrop[data-v-af964b7d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-overlay) - 1)}.model-picker[data-v-af964b7d]{position:absolute;bottom:100%;left:var(--space-4);margin-bottom:var(--space-2);z-index:var(--z-overlay);display:flex;flex-direction:column;width:320px;max-width:calc(100vw - var(--space-8));max-height:60vh;background:var(--color-surface-raised);border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.picker-search[data-v-af964b7d]{margin:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);font-family:inherit}.picker-search[data-v-af964b7d]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.picker-search[data-v-af964b7d]::placeholder{color:var(--color-text-faint)}.picker-list[data-v-af964b7d]{flex:1;overflow-y:auto;min-height:0;padding:0 var(--space-2) var(--space-2)}.picker-empty[data-v-af964b7d]{padding:var(--space-4);text-align:center;color:var(--color-text-faint);font-size:var(--font-size-sm)}.picker-group-title[data-v-af964b7d]{padding:var(--space-2) var(--space-2) var(--space-1);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em}.picker-row[data-v-af964b7d]{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-size:var(--font-size-sm);font-family:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast)}.picker-row[data-v-af964b7d]:hover{background:var(--color-surface-sunken)}.picker-row.active[data-v-af964b7d]{background:var(--color-accent-soft);border-color:var(--color-accent-bd)}.row-main[data-v-af964b7d]{flex:1;display:flex;flex-direction:column;min-width:0}.row-name[data-v-af964b7d]{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-alias[data-v-af964b7d]{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta[data-v-af964b7d]{flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-faint)}.row-check[data-v-af964b7d]{flex-shrink:0;color:var(--color-accent);font-weight:700}.picker-thinking[data-v-af964b7d]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-line);background:var(--color-surface)}.thinking-label[data-v-af964b7d]{flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.thinking-options[data-v-af964b7d]{display:flex;gap:var(--space-1);flex-wrap:wrap}.thinking-btn[data-v-af964b7d]{padding:2px 10px;border:1px solid var(--color-line);border-radius:var(--radius-full);background:var(--color-surface-raised);color:var(--color-text-muted);font-size:var(--font-size-xs);font-family:inherit;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.thinking-btn[data-v-af964b7d]:hover{border-color:var(--color-line-strong);color:var(--color-text)}.thinking-btn.active[data-v-af964b7d]{background:var(--color-accent-soft);border-color:var(--color-accent-bd);color:var(--color-accent);font-weight:600}@media(max-width:640px){.model-picker[data-v-af964b7d]{left:var(--space-2);right:var(--space-2);width:auto;max-height:70vh}}.slash-menu[data-v-54d5c512]{position:absolute;bottom:calc(100% + var(--space-2));left:var(--space-4);right:var(--space-4);max-width:480px;background:var(--color-surface-raised);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .18));padding:var(--space-1);z-index:var(--z-overlay);display:flex;flex-direction:column;overflow:hidden}.slash-item[data-v-54d5c512]{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;text-align:left;font-size:var(--font-size-sm);color:var(--color-text);transition:background var(--dur-fast)}.slash-item.active[data-v-54d5c512],.slash-item[data-v-54d5c512]:hover{background:var(--color-hover)}.slash-name[data-v-54d5c512]{font-family:var(--font-mono);font-weight:600;color:var(--color-accent);flex-shrink:0}.slash-aliases[data-v-54d5c512]{font-weight:400;color:var(--color-text-faint);margin-left:var(--space-2);font-size:var(--font-size-xs)}.slash-desc[data-v-54d5c512]{flex:1;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slash-badge[data-v-54d5c512]{font-size:var(--font-size-xs);color:var(--color-info);border:1px solid var(--color-info);border-radius:var(--radius-full);padding:0 var(--space-2);flex-shrink:0}.slash-badge-input[data-v-54d5c512]{color:var(--color-accent);border-color:var(--color-accent-bd);background:var(--color-accent-soft)}.slash-hint[data-v-54d5c512]{padding:var(--space-1) var(--space-3) var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-faint);border-top:1px solid var(--color-line);margin-top:var(--space-1)}.composer[data-v-e1e7e9dd]{position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.composer[data-v-e1e7e9dd]:focus-within{border-color:var(--color-accent-bd);box-shadow:var(--shadow-sm),0 0 0 3px var(--color-accent-soft)}.composer-input[data-v-e1e7e9dd]{width:100%;background:transparent;border:none;padding:var(--space-1) 0;color:var(--color-text);font-size:var(--font-size-base);font-family:inherit;line-height:1.5;resize:none;min-height:32px;max-height:25vh}.composer-input[data-v-e1e7e9dd]:focus{outline:none}.composer-input[data-v-e1e7e9dd]::placeholder{color:var(--color-text-faint);opacity:.8}.composer-footer[data-v-e1e7e9dd]{display:flex;align-items:center;gap:var(--space-3)}.composer-pills[data-v-e1e7e9dd]{flex:1;display:flex;align-items:center;gap:var(--space-2);min-width:0;overflow-x:auto;scrollbar-width:none}.composer-pills[data-v-e1e7e9dd]::-webkit-scrollbar{display:none}.pill[data-v-e1e7e9dd]{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 10px;border-radius:var(--radius-full);border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-xs);font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.pill-model[data-v-e1e7e9dd]{font-family:var(--font-mono);color:var(--color-accent);border-color:var(--color-accent-bd);background:var(--color-accent-soft)}.pill-btn[data-v-e1e7e9dd]{cursor:pointer;transition:filter var(--dur-fast),transform var(--dur-fast)}.pill-btn[data-v-e1e7e9dd]:hover{filter:brightness(1.1);transform:translateY(-1px)}.picker-enter-active[data-v-e1e7e9dd],.picker-leave-active[data-v-e1e7e9dd]{transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.picker-enter-from[data-v-e1e7e9dd],.picker-leave-to[data-v-e1e7e9dd]{opacity:0;transform:translateY(6px)}.perm-manual[data-v-e1e7e9dd]{color:var(--color-text-muted);border-color:var(--color-line-strong);background:var(--color-surface-raised)}.perm-auto[data-v-e1e7e9dd]{color:var(--color-success);border-color:var(--color-success);background:var(--color-success-soft)}.perm-yolo[data-v-e1e7e9dd]{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-soft)}.pill-ring .ring-label[data-v-e1e7e9dd]{font-size:var(--font-size-xs)}.pill-queue[data-v-e1e7e9dd]{color:var(--color-info);border-color:var(--color-info);background:var(--color-info-soft)}.quick-chip[data-v-e1e7e9dd]{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-full);border:1px solid var(--color-line);background:var(--color-surface-sunken);font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}.quick-chip[data-v-e1e7e9dd]:hover{border-color:var(--color-accent-bd);color:var(--color-accent);background:var(--color-accent-soft)}.chip-icon[data-v-e1e7e9dd]{font-weight:700}.send-btn[data-v-e1e7e9dd]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);color:var(--color-on-accent);font-size:var(--font-size-sm);cursor:pointer;box-shadow:var(--shadow-xs);transition:filter var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast)}.send-btn[data-v-e1e7e9dd]:hover:not(:disabled){filter:brightness(1.08);box-shadow:var(--shadow-sm),0 0 12px var(--color-accent-glow)}.send-btn[data-v-e1e7e9dd]:active:not(:disabled){transform:scale(.94)}.composer-actions[data-v-e1e7e9dd]{display:flex;align-items:center;flex-shrink:0}.composer[data-v-e1e7e9dd]{gap:14px;min-height:132px;padding:18px 19px 14px;border-radius:16px;border-color:var(--color-line-strong);box-shadow:0 8px 24px #1620180f}.composer-input[data-v-e1e7e9dd]{min-height:54px;padding:0;font-size:14px;line-height:1.65}.composer-footer[data-v-e1e7e9dd]{justify-content:space-between;min-width:0}.composer-quick-actions[data-v-e1e7e9dd],.composer-actions[data-v-e1e7e9dd]{display:flex;align-items:center;gap:7px;min-width:0}.composer-quick-actions[data-v-e1e7e9dd]{flex:1;overflow-x:auto;scrollbar-width:none}.composer-quick-actions[data-v-e1e7e9dd]::-webkit-scrollbar{display:none}.quick-action[data-v-e1e7e9dd]{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;flex-shrink:0;border:0;border-radius:8px;background:transparent;color:var(--color-text-muted);font-size:11px;cursor:pointer}.quick-action[data-v-e1e7e9dd]:hover{color:var(--color-accent);background:var(--color-accent-soft)}.permission-label[data-v-e1e7e9dd],.queue-label[data-v-e1e7e9dd]{padding:3px 8px;border:1px solid var(--color-line);border-radius:var(--radius-full);color:var(--color-text-muted);background:var(--color-surface-sunken);font-size:10px;white-space:nowrap}.model-select[data-v-e1e7e9dd]{max-width:230px;height:34px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--color-line);border-radius:9px;background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:11px;white-space:nowrap}.model-select span[data-v-e1e7e9dd]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-select.clickable[data-v-e1e7e9dd]{cursor:pointer}.model-select.clickable[data-v-e1e7e9dd]:hover{color:var(--color-accent);border-color:var(--color-accent-bd)}.context-label[data-v-e1e7e9dd]{height:34px;display:grid;place-items:center}.send-btn[data-v-e1e7e9dd]{width:40px;height:40px;border-radius:11px;background:var(--color-accent)}.stop-btn[data-v-e1e7e9dd]{height:38px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:1px solid var(--color-danger);border-radius:10px;background:var(--color-danger-soft);color:var(--color-danger);font-size:11px;cursor:pointer}@media(max-width:640px){.composer[data-v-e1e7e9dd]{min-height:116px;padding:14px}.quick-action span[data-v-e1e7e9dd],.permission-label[data-v-e1e7e9dd],.context-label[data-v-e1e7e9dd]{display:none}.model-select[data-v-e1e7e9dd]{max-width:145px}.stop-btn span[data-v-e1e7e9dd]{display:none}}.ui-btn[data-v-e28e57b8]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);font-family:inherit;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out)}.ui-btn[data-v-e28e57b8]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-soft)}.ui-btn[data-v-e28e57b8]:not(:disabled):active{transform:scale(.97)}.ui-btn[data-v-e28e57b8]:disabled{opacity:.45;cursor:not-allowed}.ui-btn--sm[data-v-e28e57b8]{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.ui-btn--md[data-v-e28e57b8]{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.ui-btn--primary[data-v-e28e57b8]{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);color:var(--color-on-accent);border-color:var(--color-accent);box-shadow:var(--shadow-xs)}.ui-btn--primary[data-v-e28e57b8]:not(:disabled):hover{filter:brightness(1.08);box-shadow:var(--shadow-sm),0 0 12px var(--color-accent-glow)}.ui-btn--danger[data-v-e28e57b8]{background:var(--color-danger);color:#fff;border-color:var(--color-danger);box-shadow:var(--shadow-xs)}.ui-btn--danger[data-v-e28e57b8]:not(:disabled):hover{filter:brightness(1.1)}.ui-btn--secondary[data-v-e28e57b8]{background:var(--color-surface);color:var(--color-text);border-color:var(--color-line)}.ui-btn--secondary[data-v-e28e57b8]:not(:disabled):hover{border-color:var(--color-line-strong);background:var(--color-surface-raised)}.ui-btn--ghost[data-v-e28e57b8]{background:transparent;color:var(--color-text-muted);border-color:transparent}.ui-btn--ghost[data-v-e28e57b8]:not(:disabled):hover{background:var(--color-hover);color:var(--color-text)}.approval-card[data-v-b031b650]{border:1px solid var(--color-warning);border-radius:var(--radius-lg);background:var(--color-surface-raised);box-shadow:var(--shadow-md);overflow:hidden}.approval-minibar[data-v-b031b650]{width:100%;padding:var(--space-2) var(--space-4);background:var(--color-warning-soft);color:var(--color-warning);border:none;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;text-align:left}.approval-header[data-v-b031b650]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-warning-soft)}.approval-icon[data-v-b031b650]{color:var(--color-warning);flex-shrink:0}.approval-title[data-v-b031b650]{display:flex;align-items:baseline;gap:var(--space-2);flex:1;min-width:0}.tool-name[data-v-b031b650]{font-family:var(--font-mono);font-weight:700;font-size:var(--font-size-sm);color:var(--color-text);flex-shrink:0}.action-summary[data-v-b031b650]{font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.approval-count[data-v-b031b650]{flex-shrink:0;font-size:var(--font-size-xs);font-weight:700;color:var(--color-warning);background:var(--color-warning-soft);border:1px solid var(--color-warning);border-radius:var(--radius-full);padding:0 var(--space-2)}.icon-btn[data-v-b031b650]{flex-shrink:0;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);line-height:1.6}.icon-btn[data-v-b031b650]:hover{background:var(--color-hover);color:var(--color-text)}.approval-action[data-v-b031b650]{margin:var(--space-3);margin-bottom:0;padding:var(--space-2) var(--space-3);background:var(--color-surface-sunken);border:1px solid var(--color-line);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.feedback-area[data-v-b031b650]{padding:var(--space-2) var(--space-3) 0}.feedback-input[data-v-b031b650]{width:100%;background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--color-text);font-family:inherit;font-size:var(--font-size-sm);resize:vertical}.feedback-input[data-v-b031b650]:focus{outline:none;border-color:var(--color-warning)}.approval-buttons[data-v-b031b650]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);flex-wrap:wrap}.approval-buttons kbd[data-v-b031b650]{font-family:var(--font-mono);font-size:10px;background:var(--color-surface-sunken);border:1px solid var(--color-line);border-radius:var(--radius-xs);padding:0 var(--space-1);margin-right:var(--space-1)}.ui-btn--primary kbd[data-v-b031b650]{background:#00000026;border-color:transparent}.feedback-active[data-v-b031b650]{border-color:var(--color-warning)!important;background:var(--color-warning-soft)!important}.busy-indicator[data-v-b031b650]{display:inline-flex;align-items:center;gap:var(--space-1);margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-muted)}.spinner[data-v-b031b650]{width:12px;height:12px;border:2px solid var(--color-line-strong);border-top-color:var(--color-warning);border-radius:var(--radius-full);animation:spin-b031b650 .8s linear infinite}@keyframes spin-b031b650{to{transform:rotate(360deg)}}.sidebar[data-v-a4c1783b]{grid-area:sidebar;width:var(--sidebar-width);height:100%;min-height:0;display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-line);overflow:hidden;transition:width var(--dur-slow) var(--ease-out);z-index:calc(var(--z-dock) + 1)}.brand-head[data-v-a4c1783b]{height:var(--topbar-height);display:flex;align-items:center;gap:12px;padding:0 20px;border-bottom:1px solid var(--color-line);flex-shrink:0}.brand-symbol[data-v-a4c1783b]{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--color-accent-soft)}.brand-symbol img[data-v-a4c1783b]{width:26px;height:26px;object-fit:contain}.brand-copy[data-v-a4c1783b]{flex:1;display:flex;min-width:0;flex-direction:column}.brand-copy strong[data-v-a4c1783b]{font-size:16px}.brand-copy span[data-v-a4c1783b]{margin-top:3px;color:var(--color-text-muted);font-size:11px}.collapse-btn[data-v-a4c1783b],.square-action[data-v-a4c1783b],.filter-btn[data-v-a4c1783b],.session-actions button[data-v-a4c1783b]{display:grid;place-items:center;border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer}.collapse-btn[data-v-a4c1783b]{width:34px;height:34px;border-radius:9px}.primary-actions[data-v-a4c1783b]{display:flex;gap:9px;padding:20px 18px 12px}.new-session[data-v-a4c1783b]{flex:1;height:48px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:11px;background:var(--color-accent);color:var(--color-on-accent);font-weight:650;cursor:pointer;box-shadow:0 5px 14px var(--color-accent-glow)}.new-session[data-v-a4c1783b]:hover{background:var(--color-accent-hover)}.square-action[data-v-a4c1783b]{width:48px;border-radius:11px}.search-row[data-v-a4c1783b]{display:flex;gap:8px;padding:0 18px 17px;border-bottom:1px solid var(--color-line)}.search-box[data-v-a4c1783b]{flex:1;min-width:0;height:42px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:pointer;text-align:left}.search-box span[data-v-a4c1783b]{flex:1}kbd[data-v-a4c1783b]{padding:2px 6px;border:1px solid var(--color-line);border-radius:5px;background:var(--color-surface);color:var(--color-text-faint);font:10px var(--font-mono)}.filter-btn[data-v-a4c1783b]{width:42px;border-radius:10px}.list-heading[data-v-a4c1783b]{display:flex;justify-content:space-between;padding:17px 20px 8px;color:var(--color-text-muted);font-size:12px;font-weight:650}.session-list[data-v-a4c1783b]{flex:1;min-height:100px;overflow:auto;padding:0 12px 14px}.group-label[data-v-a4c1783b]{padding:10px 8px 6px;color:var(--color-text-faint);font-size:11px;font-weight:600}.session-item[data-v-a4c1783b]{position:relative;display:flex;align-items:center;gap:10px;min-height:66px;margin:3px 0;padding:10px 11px;border:1px solid transparent;border-radius:11px;cursor:pointer}.session-item[data-v-a4c1783b]:hover{background:var(--color-hover)}.session-item.active[data-v-a4c1783b]{border-color:var(--color-accent-bd);background:var(--color-accent-soft);box-shadow:0 2px 8px #0b8f3f0f}.session-icon[data-v-a4c1783b]{width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;border-radius:9px;color:var(--color-text-muted);background:var(--color-surface-sunken)}.session-item.active .session-icon[data-v-a4c1783b]{color:var(--color-accent);background:var(--color-surface)}.session-info[data-v-a4c1783b]{flex:1;min-width:0}.session-title-row[data-v-a4c1783b]{display:flex;align-items:center;gap:8px}.session-title-row strong[data-v-a4c1783b]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}time[data-v-a4c1783b]{color:var(--color-text-faint);font-size:10px;white-space:nowrap}.session-meta[data-v-a4c1783b]{display:flex;align-items:center;justify-content:space-between;margin-top:6px;color:var(--color-text-faint);font-size:11px}.live[data-v-a4c1783b]{display:flex;align-items:center;gap:4px;color:var(--color-accent)}.live i[data-v-a4c1783b]{width:5px;height:5px;border-radius:50%;background:var(--color-accent)}.session-actions[data-v-a4c1783b]{position:absolute;right:8px;top:7px;display:flex;gap:3px;opacity:0;padding:2px;border-radius:7px;background:var(--color-surface);box-shadow:var(--shadow-sm)}.session-item:hover .session-actions[data-v-a4c1783b]{opacity:1}.session-actions button[data-v-a4c1783b]{width:25px;height:25px;border:0;border-radius:6px}.session-actions button[data-v-a4c1783b]:hover{color:var(--color-accent);background:var(--color-accent-soft)}.session-actions button.danger[data-v-a4c1783b]:hover{color:var(--color-danger);background:var(--color-danger-soft)}.view-all[data-v-a4c1783b]{width:100%;height:37px;display:flex;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;color:var(--color-accent);font-size:12px;font-weight:600;cursor:pointer}.empty[data-v-a4c1783b]{display:flex;flex-direction:column;align-items:center;gap:7px;padding:36px 12px;color:var(--color-text-faint)}.empty strong[data-v-a4c1783b]{color:var(--color-text-muted);font-size:13px}.empty span[data-v-a4c1783b]{font-size:11px}.agent-card[data-v-a4c1783b]{margin:0 18px 14px;padding:14px;border:1px solid var(--color-line);border-radius:13px;background:var(--color-surface-sunken);flex-shrink:0}.agent-card-head[data-v-a4c1783b]{display:flex;align-items:center;gap:10px}.agent-avatar[data-v-a4c1783b]{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:var(--color-accent);background:var(--color-accent-soft)}.agent-card-head>div[data-v-a4c1783b]{display:flex;flex-direction:column;min-width:0}.agent-card-head strong[data-v-a4c1783b]{font-size:13px}.agent-card-head span[data-v-a4c1783b]{display:flex;align-items:center;gap:5px;margin-top:3px;color:var(--color-text-muted);font-size:11px}.agent-card-head i[data-v-a4c1783b]{width:6px;height:6px;border-radius:50%;background:var(--color-success)}.agent-card-head i.busy[data-v-a4c1783b]{background:var(--color-accent);animation:pulse-a4c1783b 1.2s infinite}dl[data-v-a4c1783b]{display:grid;gap:7px;margin:13px 0 9px}dl div[data-v-a4c1783b]{display:flex;justify-content:space-between;gap:10px;font-size:11px}dt[data-v-a4c1783b]{color:var(--color-text-muted)}dd[data-v-a4c1783b]{max-width:165px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-weight:550}.usage-track[data-v-a4c1783b]{height:4px;overflow:hidden;border-radius:4px;background:var(--color-line)}.usage-track i[data-v-a4c1783b]{display:block;height:100%;border-radius:4px;background:var(--color-accent)}.agent-card>button[data-v-a4c1783b]{width:100%;height:34px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface);color:var(--color-text-muted);font-size:11px;cursor:pointer}.agent-card>button[data-v-a4c1783b]:hover{color:var(--color-accent);border-color:var(--color-accent-bd)}.sidebar-footer[data-v-a4c1783b]{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--color-line);flex-shrink:0}.sidebar-footer button[data-v-a4c1783b]{height:38px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:9px;background:transparent;color:var(--color-text-muted);cursor:pointer}.sidebar-footer button[data-v-a4c1783b]:hover{color:var(--color-accent);background:var(--color-accent-soft)}.dialog-copy[data-v-a4c1783b]{margin:0;color:var(--color-text-muted);font-size:13px}@keyframes pulse-a4c1783b{50%{opacity:.3}}@media(min-width:641px){.sidebar.collapsed[data-v-a4c1783b]{width:var(--sidebar-width-collapsed)}.sidebar.collapsed .brand-head[data-v-a4c1783b]{justify-content:center;padding:0}.sidebar.collapsed .brand-copy[data-v-a4c1783b],.sidebar.collapsed .brand-symbol[data-v-a4c1783b],.sidebar.collapsed .new-session span[data-v-a4c1783b],.sidebar.collapsed .square-action[data-v-a4c1783b],.sidebar.collapsed .search-row[data-v-a4c1783b],.sidebar.collapsed .list-heading[data-v-a4c1783b],.sidebar.collapsed .group-label[data-v-a4c1783b],.sidebar.collapsed .session-info[data-v-a4c1783b],.sidebar.collapsed .session-actions[data-v-a4c1783b],.sidebar.collapsed .view-all[data-v-a4c1783b],.sidebar.collapsed .agent-card[data-v-a4c1783b],.sidebar.collapsed .sidebar-footer span[data-v-a4c1783b]{display:none}.sidebar.collapsed .primary-actions[data-v-a4c1783b]{padding:16px 10px}.sidebar.collapsed .new-session[data-v-a4c1783b]{width:44px;flex:none}.sidebar.collapsed .session-list[data-v-a4c1783b]{padding:0 9px}.sidebar.collapsed .session-item[data-v-a4c1783b]{justify-content:center;min-height:48px;padding:7px}.sidebar.collapsed .sidebar-footer[data-v-a4c1783b]{grid-template-columns:1fr;padding:10px}}@media(max-height:820px){.agent-card dl div[data-v-a4c1783b]:nth-child(3),.agent-card .usage-track[data-v-a4c1783b]{display:none}.agent-card[data-v-a4c1783b]{padding:11px 13px}}@media(max-width:640px){.sidebar[data-v-a4c1783b]{position:fixed;inset:0 auto 0 0;width:min(340px,88vw);transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-out);box-shadow:none}.sidebar.mobile-open[data-v-a4c1783b]{transform:translate(0);box-shadow:var(--shadow-xl)}.collapse-btn[data-v-a4c1783b]{display:none}}.panel-section[data-v-de9e6346]{padding:17px;border:1px solid var(--color-line);border-radius:14px;background:var(--color-surface);box-shadow:0 2px 8px #14231808}.section-heading[data-v-de9e6346]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px;color:var(--color-accent)}.section-heading>div[data-v-de9e6346]{display:flex;flex-direction:column;min-width:0}.section-heading span[data-v-de9e6346]{color:var(--color-text);font-size:14px;font-weight:700}.section-heading small[data-v-de9e6346]{margin-top:4px;color:var(--color-text-faint);font-size:10px;font-weight:400}.status-pill[data-v-de9e6346]{flex-shrink:0;padding:5px 8px;border-radius:999px;font-size:10px!important;font-weight:700}.status-pill.is-active[data-v-de9e6346]{color:var(--color-success);background:var(--color-success-soft)}.status-pill.is-paused[data-v-de9e6346]{color:var(--color-warning);background:var(--color-warning-soft)}.status-pill.is-blocked[data-v-de9e6346]{color:var(--color-danger);background:var(--color-danger-soft)}.status-pill.is-complete[data-v-de9e6346]{color:var(--color-info);background:var(--color-info-soft)}.empty-state[data-v-de9e6346]{padding:16px 10px;border:1px dashed var(--color-line);border-radius:10px;color:var(--color-text-faint);font-size:11px;text-align:center}.goal-form[data-v-de9e6346]{display:grid;gap:11px}.goal-form label[data-v-de9e6346]{display:grid;gap:5px;min-width:0}.goal-form label>span[data-v-de9e6346],.budget-title[data-v-de9e6346]{color:var(--color-text-muted);font-size:11px;font-weight:650}.goal-form label small[data-v-de9e6346],.budget-title small[data-v-de9e6346]{color:var(--color-text-faint);font-size:9px;font-weight:400}textarea[data-v-de9e6346],input[data-v-de9e6346],select[data-v-de9e6346]{width:100%;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface-sunken);color:var(--color-text);font:11px/1.5 var(--font-ui)}textarea[data-v-de9e6346]{min-height:58px;padding:9px;resize:vertical}input[data-v-de9e6346],select[data-v-de9e6346]{height:34px;padding:0 9px}textarea[data-v-de9e6346]:focus,input[data-v-de9e6346]:focus,select[data-v-de9e6346]:focus{border-color:var(--color-accent-bd);outline:none}.refine-row[data-v-de9e6346]{display:flex;align-items:center;gap:8px}.refine-row small[data-v-de9e6346]{color:var(--color-success);font-size:9px}.budget-grid[data-v-de9e6346]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.time-budget[data-v-de9e6346]{display:grid;grid-template-columns:minmax(0,1fr) 84px;align-items:end;gap:8px}button[data-v-de9e6346]{border-radius:8px;cursor:pointer;font-size:11px;font-weight:650}.primary[data-v-de9e6346]{min-height:36px;border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.primary.small[data-v-de9e6346]{min-height:32px;padding:0 11px}.secondary[data-v-de9e6346]{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:1px solid var(--color-line);background:var(--color-surface-sunken);color:var(--color-text-muted)}.secondary[data-v-de9e6346]:hover{border-color:var(--color-accent-bd);color:var(--color-accent)}.danger[data-v-de9e6346]{min-height:32px;padding:0 10px;border:1px solid transparent;background:var(--color-danger-soft);color:var(--color-danger)}.objective[data-v-de9e6346],.criterion[data-v-de9e6346]{margin-bottom:11px}.objective small[data-v-de9e6346],.criterion small[data-v-de9e6346]{color:var(--color-text-faint);font-size:9px;font-weight:650;text-transform:uppercase}.objective p[data-v-de9e6346],.criterion p[data-v-de9e6346]{margin-top:4px;color:var(--color-text);font-size:12px;line-height:1.55;overflow-wrap:anywhere}.criterion p[data-v-de9e6346]{color:var(--color-text-muted);font-size:11px}.reason[data-v-de9e6346]{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;padding:9px;border-radius:8px;background:var(--color-warning-soft);color:var(--color-warning);font-size:10px}.metrics[data-v-de9e6346]{display:grid;gap:10px;padding:11px;border-radius:10px;background:var(--color-surface-sunken)}.metric>div[data-v-de9e6346]{display:flex;justify-content:space-between;gap:8px;font-size:10px}.metric span[data-v-de9e6346]{color:var(--color-text-muted)}.metric strong[data-v-de9e6346]{color:var(--color-text);font-weight:600;text-align:right}.metric>i[data-v-de9e6346]{display:block;height:4px;margin-top:5px;overflow:hidden;border-radius:4px;background:var(--color-line)}.metric>i b[data-v-de9e6346]{display:block;height:100%;border-radius:4px;background:var(--color-accent)}.budget-warning[data-v-de9e6346]{margin-top:9px;padding:7px 9px;border-radius:8px;color:var(--color-danger);background:var(--color-danger-soft);font-size:10px}.notes[data-v-de9e6346]{margin-top:11px;color:var(--color-text-muted);font-size:10px}.notes summary[data-v-de9e6346]{cursor:pointer;font-weight:650}.notes ol[data-v-de9e6346]{display:grid;gap:8px;margin-top:9px;padding-left:0;list-style:none}.notes li[data-v-de9e6346]{display:grid;grid-template-columns:68px minmax(0,1fr);gap:7px;line-height:1.45}.notes time[data-v-de9e6346]{color:var(--color-text-faint);font-family:var(--font-mono);font-size:9px}.notes span[data-v-de9e6346]{overflow-wrap:anywhere}.actions[data-v-de9e6346],.edit-actions[data-v-de9e6346]{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.actions .danger[data-v-de9e6346]{margin-left:auto}.edit-actions[data-v-de9e6346]{justify-content:flex-end;margin-top:1px}.form-error[data-v-de9e6346]{margin-top:10px;color:var(--color-danger);font-size:10px;line-height:1.4;overflow-wrap:anywhere}.pending-copy[data-v-de9e6346]{margin-top:10px;color:var(--color-info);font-size:10px;line-height:1.4}@media(max-height:850px){.panel-section[data-v-de9e6346]{padding:14px}}.panel-section[data-v-e8a85d5d]{padding:17px;border:1px solid var(--color-line);border-radius:14px;background:var(--color-surface);box-shadow:0 2px 8px #14231808}.section-heading[data-v-e8a85d5d]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}.section-heading>div[data-v-e8a85d5d]{display:flex;flex-direction:column}.section-heading span[data-v-e8a85d5d]{color:var(--color-text);font-size:14px;font-weight:700}.section-heading small[data-v-e8a85d5d]{margin-top:4px;color:var(--color-text-faint);font-size:10px;font-weight:400}.count-pill[data-v-e8a85d5d]{min-width:38px;padding:5px 8px;border-radius:999px;color:var(--color-success)!important;background:var(--color-success-soft);font:700 10px var(--font-mono)!important;text-align:center}.empty-state[data-v-e8a85d5d]{min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px;border:1px dashed var(--color-line);border-radius:10px;color:var(--color-text-faint);text-align:center}.empty-state span[data-v-e8a85d5d]{color:var(--color-text-muted);font-size:11px;font-weight:650}.empty-state small[data-v-e8a85d5d]{max-width:220px;font-size:9px;line-height:1.45}.todo-groups[data-v-e8a85d5d]{display:grid;gap:13px}.todo-group h4[data-v-e8a85d5d]{margin:0 0 6px;color:var(--color-text-faint);font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}ol[data-v-e8a85d5d]{display:grid;gap:4px;margin:0;padding:0;list-style:none}li[data-v-e8a85d5d]{display:grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:start;gap:7px;padding:7px 8px;border-radius:8px;color:var(--color-text-muted);background:var(--color-surface-sunken);font-size:10px;line-height:1.45}.status-symbol[data-v-e8a85d5d]{color:var(--color-text-faint);font:700 12px var(--font-mono);text-align:center}.todo-title[data-v-e8a85d5d]{overflow-wrap:anywhere}li small[data-v-e8a85d5d]{padding-top:1px;color:var(--color-text-faint);font-size:8px;white-space:nowrap}li.is-in_progress[data-v-e8a85d5d]{color:var(--color-text);background:var(--color-accent-soft)}li.is-in_progress .status-symbol[data-v-e8a85d5d],li.is-in_progress small[data-v-e8a85d5d]{color:var(--color-accent)}li.is-done .status-symbol[data-v-e8a85d5d]{color:var(--color-success)}li.is-done .todo-title[data-v-e8a85d5d]{color:var(--color-text-faint);text-decoration:line-through}@media(max-height:850px){.panel-section[data-v-e8a85d5d]{padding:14px}}.rightbar[data-v-a2ce5a5d]{width:var(--rightbar-width);height:100%;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:14px;padding:14px 14px 20px;background:var(--color-bg);border-left:1px solid var(--color-line)}.panel-section[data-v-a2ce5a5d]{padding:17px;border:1px solid var(--color-line);border-radius:14px;background:var(--color-surface);box-shadow:0 2px 8px #14231808}.section-heading[data-v-a2ce5a5d]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px;color:var(--color-accent)}.section-heading>div[data-v-a2ce5a5d]{display:flex;flex-direction:column}.section-heading span[data-v-a2ce5a5d]{color:var(--color-text);font-size:14px;font-weight:700}.section-heading small[data-v-a2ce5a5d]{margin-top:4px;color:var(--color-text-faint);font-size:10px;font-weight:400}.tool-grid[data-v-a2ce5a5d]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.tool-card[data-v-a2ce5a5d]{min-height:92px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding:13px;border:1px solid var(--color-line);border-radius:11px;background:var(--color-surface-sunken);color:var(--color-text);cursor:pointer;text-align:left}.tool-card>span[data-v-a2ce5a5d]{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:var(--color-accent);background:var(--color-accent-soft)}.tool-card strong[data-v-a2ce5a5d]{font-size:12px}.tool-card small[data-v-a2ce5a5d]{color:var(--color-text-faint);font:10px var(--font-mono)}.tool-card[data-v-a2ce5a5d]:hover{border-color:var(--color-accent-bd);background:var(--color-accent-soft);transform:translateY(-1px)}.more-tools[data-v-a2ce5a5d]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.more-tools button[data-v-a2ce5a5d]{height:34px;display:flex;align-items:center;gap:7px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--color-text-muted);font-size:11px;cursor:pointer}.more-tools button[data-v-a2ce5a5d]:hover{color:var(--color-accent);background:var(--color-accent-soft)}@media(max-height:850px){.panel-section[data-v-a2ce5a5d]{padding:14px}}.info-row[data-v-407030a3]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-line);font-size:var(--font-size-sm)}.info-row[data-v-407030a3]:last-child{border-bottom:none}.info-row-model[data-v-407030a3]{justify-content:flex-start;flex-direction:column;gap:var(--space-1)}.info-key[data-v-407030a3]{color:var(--color-text-muted);flex-shrink:0}.info-val[data-v-407030a3]{color:var(--color-text);text-align:right;word-break:break-all}.info-row-model .info-val[data-v-407030a3]{text-align:left}.mono[data-v-407030a3]{font-family:var(--font-mono)}.info-subhead[data-v-407030a3]{margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em}.info-empty[data-v-407030a3]{padding:var(--space-4);text-align:center;color:var(--color-text-faint);font-size:var(--font-size-sm)}.sd-search-wrap[data-v-62760c4c]{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.sd-icon[data-v-62760c4c]{flex-shrink:0;font-size:var(--font-size-base);opacity:.6}.sd-input[data-v-62760c4c]{flex:1;min-width:0;font-size:var(--font-size-base);color:var(--color-text);background:none;border:none;outline:none;padding:var(--space-1) 0}.sd-input[data-v-62760c4c]::placeholder{color:var(--color-text-muted)}.sd-list[data-v-62760c4c]{max-height:360px;overflow-y:auto;padding:var(--space-1);margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-4)) 0}.sd-row[data-v-62760c4c]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:none;cursor:pointer;text-align:left;color:var(--color-text);transition:background var(--dur-fast)}.sd-row[data-v-62760c4c]:hover,.sd-row.on[data-v-62760c4c]{background:var(--color-surface-sunken)}.sd-row.active .sd-title[data-v-62760c4c]{color:var(--color-accent)}.sd-title[data-v-62760c4c]{font-size:var(--font-size-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.sd-meta[data-v-62760c4c]{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-faint)}.sd-active[data-v-62760c4c]{color:var(--color-accent)}.sd-empty[data-v-62760c4c]{padding:var(--space-5) var(--space-3);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.sd-hint[data-v-62760c4c]{font-size:var(--font-size-xs);color:var(--color-text-muted)}.resize-handle[data-v-11060aea]{flex-shrink:0;width:4px;margin-left:-2px;margin-right:-2px;cursor:col-resize;position:relative;z-index:5;transition:background var(--dur-fast)}.resize-handle[data-v-11060aea]:hover,.resize-handle.dragging[data-v-11060aea]{background:var(--color-accent);opacity:.6}.workbench[data-v-9db10bb3]{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:var(--topbar-height) minmax(0,1fr);grid-template-areas:"sidebar topbar" "sidebar body";height:100vh;height:100dvh;overflow:hidden;background:var(--color-bg);color:var(--color-text)}.workbench.sidebar-is-collapsed[data-v-9db10bb3]{grid-template-columns:var(--sidebar-width-collapsed) minmax(0,1fr)}.workbench-body[data-v-9db10bb3]{grid-area:body;display:flex;min-width:0;min-height:0;overflow:hidden}.chat-inset[data-v-9db10bb3]{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;margin:14px 0 14px 14px;overflow:hidden;border:1px solid var(--color-line);border-radius:15px;background:var(--color-surface);box-shadow:0 3px 12px #12221609}.composer-dock[data-v-9db10bb3]{flex-shrink:0;display:flex;flex-direction:column;gap:8px;padding:10px 24px 18px;background:var(--color-surface)}.rightbar-host[data-v-9db10bb3]{flex-shrink:0}.sidebar-resize[data-v-9db10bb3]{position:fixed;top:0;bottom:0;left:var(--sidebar-width);z-index:calc(var(--z-dock) + 3)}.sidebar-backdrop[data-v-9db10bb3]{display:none}@media(max-width:1100px){.rightbar-host[data-v-9db10bb3]{display:none}.chat-inset[data-v-9db10bb3]{margin-right:14px}}@media(max-width:640px){.workbench[data-v-9db10bb3],.workbench.sidebar-is-collapsed[data-v-9db10bb3]{grid-template-columns:minmax(0,1fr);grid-template-rows:64px minmax(0,1fr);grid-template-areas:"topbar" "body"}.sidebar-resize[data-v-9db10bb3]{display:none}.sidebar-backdrop[data-v-9db10bb3]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f14106b;z-index:calc(var(--z-overlay) - 1);animation:backdrop-in-9db10bb3 var(--dur-slow) var(--ease-out)}.chat-inset[data-v-9db10bb3]{margin:8px;border-radius:12px}.composer-dock[data-v-9db10bb3]{padding:8px}@keyframes backdrop-in-9db10bb3{0%{opacity:0}to{opacity:1}}}.toast-container[data-v-7200727f]{position:fixed;top:var(--space-5);right:var(--space-5);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast[data-v-7200727f]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-line);background:var(--color-surface-raised);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .18));font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;pointer-events:auto;max-width:380px;animation:toast-in-7200727f var(--dur-base) var(--ease-out)}@keyframes toast-in-7200727f{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-icon[data-v-7200727f]{flex-shrink:0;font-weight:700;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:11px}.toast--info .toast-icon[data-v-7200727f]{background:var(--color-accent-soft);color:var(--color-accent)}.toast--success .toast-icon[data-v-7200727f]{background:var(--color-success-soft);color:var(--color-success)}.toast--error .toast-icon[data-v-7200727f]{background:var(--color-danger-soft);color:var(--color-danger)}.toast--warning .toast-icon[data-v-7200727f]{background:var(--color-warning-soft);color:var(--color-warning)}.toast--error[data-v-7200727f]{border-color:var(--color-danger)}.toast-enter-active[data-v-7200727f],.toast-leave-active[data-v-7200727f]{transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.toast-enter-from[data-v-7200727f],.toast-leave-to[data-v-7200727f]{opacity:0;transform:translate(20px)}.app[data-v-ba168d5b]{position:relative}:root{--accent-primary: #79eb00;--accent-primary-light: #2da44e;--surface-light: #f6f7f9;--surface-dark: #161b22;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 999px;--font-ui: "Inter", -apple-system, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 22px;--z-base: 0;--z-dock: 20;--z-overlay: 50;--z-modal: 100;--z-toast: 200;--dur-fast: .12s;--dur-base: .16s;--dur-slow: .24s;--dur-slower: .32s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-msg-user: .2s;--dur-msg-assistant: .25s;--sidebar-width: 360px;--sidebar-width-collapsed: 64px;--rightbar-width: 360px;--topbar-height: 76px}:root,[data-theme=dark]{--color-bg: #0d1117;--color-surface: var(--surface-dark);--color-surface-raised: #1c2330;--color-surface-sunken: #0a0d12;--color-text: #e6edf3;--color-text-muted: #8b949e;--color-text-faint: #6e7681;--color-line: #30363d;--color-line-strong: #444c56;--color-selected: rgba(121, 235, 0, .16);--color-hover: rgba(177, 186, 196, .08);--color-accent: var(--accent-primary);--color-accent-hover: #8eff1f;--color-accent-soft: rgba(121, 235, 0, .14);--color-accent-bd: rgba(121, 235, 0, .4);--color-accent-glow: rgba(121, 235, 0, .22);--color-on-accent: #0d1117;--color-success: #3fb950;--color-success-soft: rgba(63, 185, 80, .14);--color-warning: #d29922;--color-warning-soft: rgba(210, 153, 34, .16);--color-danger: #f85149;--color-danger-soft: rgba(248, 81, 73, .14);--color-info: #58a6ff;--color-info-soft: rgba(88, 166, 255, .14);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6)}[data-theme=light]{--color-bg: #f7f8f7;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-sunken: #f5f7f5;--color-text: #182019;--color-text-muted: #667069;--color-text-faint: #98a19b;--color-line: #e7ebe8;--color-line-strong: #d6ddd8;--color-selected: rgba(11, 143, 63, .1);--color-hover: rgba(11, 143, 63, .055);--color-accent: #0b8f3f;--color-accent-hover: #087735;--color-accent-soft: rgba(22, 163, 74, .09);--color-accent-bd: rgba(11, 143, 63, .3);--color-accent-glow: rgba(34, 197, 94, .22);--color-on-accent: #ffffff;--color-success: #2da44e;--color-success-soft: rgba(45, 164, 78, .12);--color-warning: #9a6700;--color-warning-soft: rgba(154, 103, 0, .14);--color-danger: #cf222e;--color-danger-soft: rgba(207, 34, 46, .1);--color-info: #0969da;--color-info-soft: rgba(9, 105, 218, .1);--shadow-xs: 0 1px 2px rgba(26, 29, 33, .06);--shadow-sm: 0 1px 3px rgba(26, 29, 33, .1), 0 1px 2px rgba(26, 29, 33, .06);--shadow-md: 0 4px 12px rgba(26, 29, 33, .12);--shadow-lg: 0 8px 24px rgba(26, 29, 33, .14);--shadow-xl: 0 16px 48px rgba(26, 29, 33, .18)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:var(--font-ui);font-size:var(--font-size-base);background:var(--color-bg);color:var(--color-text)}#app{height:100%}button{font-family:inherit}button:disabled,[role=button][aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}:focus-visible{outline:2px solid var(--color-accent-bd);outline-offset:2px;border-radius:var(--radius-xs)}.ripple-host{position:relative;overflow:hidden}.ripple-ink{position:absolute;border-radius:var(--radius-full);background:currentColor;opacity:.16;transform:scale(0);pointer-events:none;animation:ripple-spread .48s var(--ease-out) forwards}@keyframes ripple-spread{to{transform:scale(1);opacity:0}}html.theme-transition,html.theme-transition *,html.theme-transition *:before,html.theme-transition *:after{transition:background-color var(--dur-slow) var(--ease-in-out),color var(--dur-slow) var(--ease-in-out),border-color var(--dur-slow) var(--ease-in-out),box-shadow var(--dur-slow) var(--ease-in-out)!important}@media(prefers-reduced-motion:reduce){.ripple-ink{animation:none;opacity:0}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-line-strong);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@supports (padding-bottom: env(safe-area-inset-bottom)){.composer-dock{padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom))}}